From 849ee4d900e1a80549a9ef43628864f96a48dbf5 Mon Sep 17 00:00:00 2001
From: Default email <noreply+nixpkgs@lukegb.com>
Date: Thu, 8 Apr 2021 18:26:57 +0200
Subject: [PATCH] Project import generated by Copybara.

GitOrigin-RevId: 9e377a6ce42dccd9b624ae4ce8f978dc892ba0e2
---
 third_party/nixpkgs/.github/CODEOWNERS        |    6 +-
 .../builders/images/dockertools.section.md    |    4 +
 .../nixpkgs/maintainers/maintainer-list.nix   |   34 +
 third_party/nixpkgs/maintainers/team-list.nix |   10 +
 .../doc/manual/release-notes/rl-2105.xml      |   10 +
 .../nixos/modules/hardware/video/amdgpu.nix   |    9 -
 .../nixpkgs/nixos/modules/module-list.nix     |    4 +-
 .../nixos/modules/programs/droidcam.nix       |   16 +
 .../modules/services/audio/snapserver.nix     |   17 +-
 .../services/cluster/kubernetes/kubelet.nix   |    2 +-
 .../desktops/pipewire/bluez-monitor.conf.json |    8 +-
 .../services/display-managers/greetd.nix      |  106 +
 .../nixos/modules/services/misc/gitlab.nix    |    3 +-
 .../modules/services/misc/home-assistant.nix  |   21 +-
 .../modules/services/misc/packagekit.nix      |   91 +-
 .../monitoring/prometheus/exporters.nix       |    1 +
 .../prometheus/exporters/bitcoin.nix          |   82 +
 .../services/network-filesystems/samba.nix    |    1 -
 .../modules/services/networking/gvpe.nix      |    2 +-
 .../modules/services/networking/libreswan.nix |    6 +-
 .../services/networking/mullvad-vpn.nix       |    2 +-
 .../modules/services/networking/nomad.nix     |    2 +-
 .../modules/services/networking/quagga.nix    |    2 +-
 .../nixos/modules/services/networking/rxe.nix |    4 +-
 .../modules/services/networking/tailscale.nix |    1 +
 .../modules/services/networking/wg-quick.nix  |    8 +-
 .../modules/services/system/cloud-init.nix    |    2 +-
 .../modules/services/web-apps/discourse.nix   | 1035 +++
 .../modules/services/web-apps/discourse.xml   |  323 +
 .../services/web-servers/nginx/default.nix    |   14 +
 .../modules/system/boot/initrd-openvpn.nix    |    2 +-
 .../modules/tasks/network-interfaces.nix      |    2 +-
 third_party/nixpkgs/nixos/tests/all-tests.nix |    5 +-
 third_party/nixpkgs/nixos/tests/discourse.nix |  197 +
 .../nixpkgs/nixos/tests/docker-tools.nix      |    8 +
 .../nixpkgs/nixos/tests/kernel-generic.nix    |   37 +
 .../nixpkgs/nixos/tests/kernel-latest.nix     |   17 -
 .../nixpkgs/nixos/tests/kernel-lts.nix        |   17 -
 .../nixpkgs/nixos/tests/kernel-testing.nix    |   17 -
 .../nixos/tests/prometheus-exporters.nix      |   18 +
 third_party/nixpkgs/nixos/tests/snapcast.nix  |    4 +
 ...ystemd-networkd-ipv6-prefix-delegation.nix |    2 +-
 .../audio/bitwig-studio/bitwig-studio3.nix    |    4 +-
 .../applications/audio/ft2-clone/default.nix  |    4 +-
 .../audio/netease-music-tui/cargo-lock.patch  |  952 ++-
 .../audio/netease-music-tui/default.nix       |    8 +-
 .../netease-music-tui/update-cargo-lock.sh    |   20 +
 .../applications/audio/noisetorch/default.nix |    7 +-
 .../applications/audio/snapcast/default.nix   |   10 +-
 .../pkgs/applications/editors/emacs/27.nix    |    4 +-
 .../emacs/tramp-detect-wrapped-gvfsd.patch    |   11 +-
 .../editors/sublime/2/default.nix             |    4 +-
 .../applications/misc/blucontrol/wrapper.nix  |   32 +
 .../pkgs/applications/misc/cura/plugins.nix   |   31 +-
 .../applications/misc/dbeaver/default.nix     |    4 +-
 .../misc/font-manager/default.nix             |   14 +-
 .../pkgs/applications/misc/free42/default.nix |   27 +-
 .../misc/metadata-cleaner/default.nix         |    4 +-
 .../pkgs/applications/misc/mupdf/default.nix  |   56 +-
 .../pkgs/applications/misc/openlp/default.nix |   86 +
 .../pkgs/applications/misc/openlp/lib.nix     |  103 +
 .../pkgs/applications/misc/qcad/default.nix   |   25 +-
 .../pkgs/applications/misc/viking/default.nix |   67 +-
 .../networking/appgate-sdp/default.nix        |    4 +-
 .../browsers/chromium/upstream-info.json      |    6 +-
 .../networking/browsers/palemoon/default.nix  |    4 +-
 .../networking/cluster/kube3d/default.nix     |    6 +-
 .../networking/cluster/nerdctl/default.nix    |    6 +-
 .../networking/cluster/qbec/default.nix       |    4 +-
 .../networking/cluster/terraform/default.nix  |    4 +-
 .../networking/cluster/velero/default.nix     |    4 +-
 .../instant-messengers/zoom-us/default.nix    |    4 +-
 .../networking/pcloud/default.nix             |    7 +-
 .../networking/sniffers/wireshark/default.nix |    2 +-
 .../networking/sync/rclone/default.nix        |   13 +-
 .../applications/office/pyspread/default.nix  |   65 +-
 .../applications/office/trilium/default.nix   |    6 +-
 .../radio/multimon-ng/default.nix             |   23 +-
 .../science/biology/meme-suite/default.nix    |   21 +
 .../science/math/geogebra/geogebra6.nix       |   10 +-
 .../science/misc/root/default.nix             |    4 +-
 .../robotics/qgroundcontrol/default.nix       |    4 +-
 .../applications/search/recoll/default.nix    |   10 +-
 .../version-management/gitkraken/default.nix  |    4 +-
 .../version-management/gitlab/data.json       |   12 +-
 .../version-management/gitlab/default.nix     |    6 +-
 .../version-management/gitlab/gitaly/Gemfile  |    2 +-
 .../gitlab/gitaly/Gemfile.lock                |    4 +-
 .../gitlab/gitaly/default.nix                 |   20 +-
 .../gitlab/gitaly/gemset.nix                  |    6 +-
 .../gitlab/gitlab-workhorse/default.nix       |   18 +-
 .../version-management/gitlab/rubyEnv/Gemfile |   48 +-
 .../gitlab/rubyEnv/Gemfile.lock               |  172 +-
 .../gitlab/rubyEnv/gemset.nix                 |  369 +-
 .../version-management/gitlab/update.py       |   10 +-
 .../version-management/gitlab/yarnPkgs.nix    | 1776 ++--
 .../redmine/0001-python3.patch                |    4 +-
 .../version-management/redmine/Gemfile        |   41 +-
 .../version-management/redmine/Gemfile.lock   |  182 +-
 .../version-management/redmine/default.nix    |    4 +-
 .../version-management/redmine/gemset.nix     |  227 +-
 .../pkgs/applications/video/mpv/default.nix   |    4 +-
 .../virtualization/crun/default.nix           |   14 +-
 .../virtualization/umoci/default.nix          |    8 +-
 .../window-managers/dwl/default.nix           |   21 +-
 .../applications/window-managers/i3/wsr.nix   |   33 +
 .../window-managers/labwc/default.nix         |   12 +-
 .../window-managers/sway/default.nix          |    9 +-
 .../sway/load-configuration-from-etc.patch    |   38 +-
 .../applications/window-managers/sway/wsr.nix |   33 +
 .../window-managers/wayfire/applications.nix  |   33 +-
 .../build-fhs-userenv-bubblewrap/default.nix  |    2 +-
 .../pkgs/build-support/docker/default.nix     |   23 +-
 .../pkgs/build-support/docker/examples.nix    |   13 +
 .../pkgs/build-support/fetchzip/default.nix   |   11 +-
 .../rust/build-rust-crate/build-crate.nix     |   14 +-
 .../rust/build-rust-crate/configure-crate.nix |    2 +-
 .../pkgs/data/fonts/input-fonts/default.nix   |   84 +-
 .../pkgs/data/fonts/julia-mono/default.nix    |    4 +-
 .../pkgs/data/fonts/paratype-pt/mono.nix      |    2 +-
 .../pkgs/data/fonts/paratype-pt/sans.nix      |    2 +-
 .../pkgs/data/fonts/paratype-pt/serif.nix     |    2 +-
 .../nixpkgs/pkgs/data/themes/yaru/default.nix |    4 +-
 .../pkgs/desktops/plasma-5/default.nix        |    1 +
 .../desktops/plasma-5/qqc2-breeze-style.nix   |   26 +
 ...arent-sources-when-looking-up-schema.patch |   25 -
 .../xfce/applications/mousepad/default.nix    |   10 +-
 .../pkgs/development/compilers/go/1.15.nix    |    4 +-
 .../development/compilers/ispc/default.nix    |   21 +-
 .../compilers/llvm/12/clang/default.nix       |    2 +-
 .../compilers/llvm/12/compiler-rt.nix         |    2 +-
 .../development/compilers/llvm/12/default.nix |    4 +-
 .../compilers/llvm/12/libc++/default.nix      |    2 +-
 .../compilers/llvm/12/libc++abi.nix           |    2 +-
 .../compilers/llvm/12/libunwind.nix           |    2 +-
 .../development/compilers/llvm/12/lld.nix     |    2 +-
 .../development/compilers/llvm/12/lldb.nix    |    2 +-
 .../development/compilers/llvm/12/llvm.nix    |    4 +-
 .../development/compilers/llvm/12/openmp.nix  |    2 +-
 .../development/compilers/reason/default.nix  |    8 +-
 .../compilers/sjasmplus/default.nix           |   32 +
 .../development/interpreters/erlang/R23.nix   |    4 +-
 .../development/interpreters/ruby/default.nix |    6 +-
 .../interpreters/ruby/patchsets.nix           |    2 +-
 .../interpreters/supercollider/default.nix    |   13 +-
 .../development/libraries/entt/default.nix    |    4 +-
 .../development/libraries/flatpak/default.nix |   10 +
 .../libraries/libdmapsharing/default.nix      |   95 +
 .../libraries/libpg_query/default.nix         |   31 +
 .../libraries/libplacebo/default.nix          |    5 +-
 .../libraries/libraspberrypi/default.nix      |    6 +-
 .../libraries/physics/yoda/default.nix        |    6 +-
 .../libraries/pipewire/default.nix            |   10 +-
 .../libraries/rabbitmq-c/default.nix          |    4 +-
 .../science/astronomy/indilib/default.nix     |    2 +-
 .../astronomy/indilib/indi-3rdparty.nix       |    2 +-
 .../libraries/science/math/mkl/default.nix    |  172 +-
 .../science/math/mkl/test/default.nix         |   18 +-
 .../development/libraries/tracker/default.nix |   10 +-
 .../libraries/uriparser/default.nix           |    6 +-
 .../pkgs/development/libraries/v8/default.nix |   34 +-
 .../development/libraries/v8/gcc_arm.patch    |   31 +
 .../development/libraries/wlroots/0.12.nix    |   57 +
 .../development/libraries/wlroots/default.nix |   10 +-
 .../development/libraries/x264/default.nix    |    6 +-
 .../node-packages/node-packages.json          |    2 +
 .../node-packages/node-packages.nix           | 7176 ++++++++++-------
 .../ocaml-modules/merlin-extend/default.nix   |    2 +
 .../ocaml-modules/minisat/default.nix         |    8 +-
 .../ocaml-modules/ocamlnet/default.nix        |    8 +-
 .../ocaml-modules/sqlite3/default.nix         |    5 +-
 ...IDR-Lite-prevent-leading-zeroes-ipv4.patch |   53 -
 .../python-modules/HAP-python/default.nix     |    5 +-
 .../adafruit-platformdetect/default.nix       |    4 +-
 .../python-modules/aiodiscover/default.nix    |   43 +
 .../python-modules/async-dns/default.nix      |   52 +
 .../asyncio-nats-client/default.nix           |   50 +
 .../python-modules/awesomeversion/default.nix |    4 +-
 .../python-modules/aws-adfs/default.nix       |    4 +-
 .../python-modules/awslambdaric/default.nix   |   35 +
 .../python-modules/bokeh/default.nix          |    4 +-
 .../python-modules/boto3/default.nix          |    4 +-
 .../python-modules/botocore/default.nix       |    4 +-
 .../python-modules/buildbot/default.nix       |    7 +-
 .../python-modules/buildbot/pkg.nix           |    2 +-
 .../python-modules/buildbot/plugins.nix       |   10 +-
 .../python-modules/buildbot/worker.nix        |    2 +-
 .../python-modules/cairocffi/default.nix      |    5 +-
 .../python-modules/cairocffi/generic.nix      |    2 +-
 .../python-modules/configargparse/default.nix |   10 +-
 .../python-modules/docx2python/default.nix    |   30 +
 .../python-modules/fido2/default.nix          |   14 +-
 .../python-modules/fipy/default.nix           |   65 +-
 .../python-modules/gdown/default.nix          |    3 +-
 .../google-api-core/default.nix               |    4 +-
 .../google-auth-httplib2/default.nix          |    4 +-
 .../google-auth-oauthlib/default.nix          |    4 +-
 .../python-modules/google-auth/default.nix    |    4 +-
 .../google-cloud-asset/default.nix            |    5 +
 .../default.nix                               |    4 +-
 .../google-cloud-core/default.nix             |    4 +-
 .../google-cloud-dataproc/default.nix         |    4 +-
 .../google-cloud-error-reporting/default.nix  |    4 +-
 .../google-cloud-firestore/default.nix        |    4 +-
 .../google-cloud-logging/default.nix          |    4 +-
 .../google-cloud-monitoring/default.nix       |    7 +-
 .../google-cloud-org-policy/default.nix       |    8 +-
 .../google-cloud-pubsub/default.nix           |    4 +-
 .../google-cloud-secret-manager/default.nix   |    4 +-
 .../google-cloud-spanner/default.nix          |    4 +-
 .../google-cloud-speech/default.nix           |    4 +-
 .../google-cloud-storage/default.nix          |    6 +-
 .../google-cloud-testutils/default.nix        |    8 +-
 .../google-cloud-texttospeech/default.nix     |    4 +-
 .../google-cloud-translate/default.nix        |    4 +-
 .../default.nix                               |    4 +-
 .../google-cloud-vision/default.nix           |    4 +-
 .../default.nix                               |    4 +-
 .../googleapis-common-protos/default.nix      |    4 +-
 .../python-modules/gssapi/default.nix         |    6 +-
 .../python-modules/hetzner/default.nix        |    4 +-
 .../python-modules/holidays/default.nix       |   25 +-
 .../homepluscontrol/default.nix               |   43 +
 .../internetarchive/default.nix               |    7 +-
 .../python-modules/lark-parser/default.nix    |   26 +-
 .../python-modules/localimport/default.nix    |   23 +
 .../python-modules/makefun/default.nix        |   32 +
 .../python-modules/nats-python/default.nix    |   46 +
 .../python-modules/nodepy-runtime/default.nix |   47 +
 .../python-modules/openhomedevice/default.nix |   37 +
 .../python-modules/pubnub/default.nix         |   17 +-
 .../python-modules/pychromecast/default.nix   |    4 +-
 .../python-modules/pymodbus/default.nix       |   15 +-
 .../python-modules/pysmappee/default.nix      |    4 +-
 .../python-modules/pytest-raises/default.nix  |   30 +
 .../python-modules/pytube/default.nix         |    5 +-
 .../python-modules/pywebview/default.nix      |   40 +-
 .../requests-aws4auth/default.nix             |    5 +-
 .../python-modules/riprova/default.nix        |   29 +
 .../python-modules/ronin/default.nix          |   34 +
 .../python-modules/sagemaker/default.nix      |    4 +-
 .../python-modules/screenlogicpy/default.nix  |   28 +
 .../python-modules/smartypants/default.nix    |   14 +-
 .../python-modules/smartypants/hgtags         |   17 +
 .../python-modules/solo-python/default.nix    |    3 +
 .../python-modules/transitions/default.nix    |   12 +-
 .../python-modules/wakeonlan/default.nix      |   47 +-
 .../python-modules/xknx/default.nix           |    4 +-
 .../python-modules/yalexs/default.nix         |   58 +
 .../python-modules/ytmusicapi/default.nix     |    4 +-
 .../ruby-modules/bundix/default.nix           |    2 +-
 .../ruby-modules/gem-config/default.nix       |    6 +-
 .../tools/analysis/radare2/cutter.nix         |   63 -
 .../tools/analysis/radare2/default.nix        |  209 +-
 .../tools/analysis/radare2/update.py          |   53 +-
 .../tools/analysis/rizin/cutter.nix           |   44 +
 .../tools/analysis/rizin/default.nix          |   69 +
 .../tools/analysis/tfsec/default.nix          |    4 +-
 .../tools/build-managers/gradle/default.nix   |   54 +-
 .../tools/build-managers/rebar3/default.nix   |   43 +-
 .../build-managers/sbt-extras/default.nix     |    6 +-
 .../tools/build-managers/sbt/default.nix      |    4 +-
 .../jenkins/default.nix                       |    4 +-
 .../laminar/default.nix                       |    2 +-
 .../pkgs/development/tools/cue/default.nix    |    6 +-
 .../development/tools/dapr/cli/default.nix    |    6 +-
 .../tools/documentation/gi-docgen/default.nix |    2 +-
 .../pkgs/development/tools/ginkgo/default.nix |    6 +-
 .../tools/go-containerregistry/default.nix    |   31 +
 .../development/tools/go-swagger/default.nix  |    6 +-
 .../development/tools/krankerl/default.nix    |   49 +
 .../development/tools/misc/act/default.nix    |    6 +-
 .../tools/misc/terracognita/default.nix       |    4 +-
 .../pkgs/development/tools/packer/default.nix |    4 +-
 .../development/tools/packet-cli/default.nix  |    6 +-
 .../tools/rust/cargo-deny/default.nix         |    6 +-
 .../tools/rust/cargo-feature/default.nix      |   24 +
 .../development/tools/sd-local/default.nix    |    4 +-
 .../pkgs/development/tools/tracy/default.nix  |   11 +-
 .../pkgs/development/tools/vendir/default.nix |    4 +-
 .../development/tools/vultr-cli/default.nix   |    4 +-
 .../pkgs/development/web/nodejs/v15.nix       |    4 +-
 .../pkgs/games/antsimulator/default.nix       |   29 +
 .../nixpkgs/pkgs/games/cockatrice/default.nix |    6 +-
 .../pkgs/games/devilutionx/default.nix        |    8 +-
 .../nixpkgs/pkgs/games/sm64ex/default.nix     |    6 +-
 .../nixpkgs/pkgs/games/uhexen2/default.nix    |   66 +
 .../nixpkgs/pkgs/games/unciv/default.nix      |    4 +-
 .../pkgs/games/warzone2100/default.nix        |   29 +-
 .../nixpkgs/pkgs/games/wesnoth/default.nix    |    4 +-
 .../pkgs/misc/drivers/foo2zjs/default.nix     |    7 +-
 .../pkgs/misc/rkdeveloptool/default.nix       |    9 +-
 .../nixpkgs/pkgs/misc/uboot/default.nix       |    1 +
 .../pkgs/misc/vim-plugins/generated.nix       |  498 +-
 .../pkgs/misc/vim-plugins/overrides.nix       |    2 +-
 .../pkgs/misc/vim-plugins/vim-plugin-names    |    5 +-
 .../os-specific/darwin/macfuse/default.nix    |    6 +
 .../linux/firmware/raspberrypi/default.nix    |    4 +-
 .../os-specific/linux/joycond/default.nix     |   37 +
 .../pkgs/os-specific/linux/kernel/generic.nix |    5 +-
 .../os-specific/linux/kernel/linux-4.14.nix   |    4 +-
 .../os-specific/linux/kernel/linux-4.19.nix   |    4 +-
 .../os-specific/linux/kernel/linux-4.4.nix    |    4 +-
 .../os-specific/linux/kernel/linux-4.9.nix    |    4 +-
 .../os-specific/linux/kernel/linux-5.10.nix   |    4 +-
 .../os-specific/linux/kernel/linux-5.11.nix   |    4 +-
 .../os-specific/linux/kernel/linux-5.4.nix    |    4 +-
 .../os-specific/linux/kernel/linux-lqx.nix    |    4 +-
 .../os-specific/linux/kernel/linux-rpi.nix    |    6 +-
 .../linux/kernel/linux-testing.nix            |    8 +-
 .../os-specific/linux/kernel/linux-xanmod.nix |   27 +
 .../os-specific/linux/kernel/linux-zen.nix    |    4 +-
 .../pkgs/os-specific/linux/libcap/default.nix |    4 +-
 .../linux/libcap/no-shared-lib.patch          |   22 -
 .../linux/multipath-tools/default.nix         |   10 +-
 .../linux/raspberrypi-eeprom/default.nix      |    7 +-
 .../os-specific/linux/trace-cmd/default.nix   |   10 +-
 .../linux/trace-cmd/fix-Makefiles.patch       |   24 +-
 .../linux/trace-cmd/kernelshark.nix           |   11 +-
 .../pkgs/os-specific/linux/trace-cmd/src.nix  |    5 -
 .../linux/vendor-reset/default.nix            |   35 +
 .../os-specific/linux/xpadneo/default.nix     |   11 +-
 .../pkgs/servers/adguardhome/default.nix      |    4 +-
 .../pkgs/servers/home-assistant/appdaemon.nix |    2 +-
 .../pkgs/servers/home-assistant/cli.nix       |    2 +-
 .../home-assistant/component-packages.nix     |   23 +-
 .../pkgs/servers/home-assistant/default.nix   |   59 +-
 .../pkgs/servers/home-assistant/frontend.nix  |    6 +-
 .../pkgs/servers/irc/ircd-hybrid/default.nix  |    4 +-
 .../pkgs/servers/matterbridge/default.nix     |    4 +-
 .../pkgs/servers/monitoring/loki/default.nix  |   19 +-
 .../prometheus/bitcoin-exporter.nix           |   42 +
 .../servers/monitoring/sensu-go/default.nix   |    6 +-
 .../pkgs/servers/monitoring/zabbix/agent2.nix |    2 +-
 .../servers/monitoring/zabbix/versions.nix    |   13 +-
 .../pkgs/servers/mqtt/mosquitto/default.nix   |   47 +-
 .../pkgs/servers/nzbhydra2/default.nix        |    4 +-
 third_party/nixpkgs/pkgs/servers/plex/raw.nix |    6 +-
 .../servers/rtsp-simple-server/default.nix    |    6 +-
 .../pkgs/servers/sickbeard/sickgear.nix       |    4 +-
 .../nixpkgs/pkgs/servers/teleport/default.nix |   13 +-
 .../discourse/action_mailer_ca_cert.patch     |   12 +
 .../web-apps/discourse/admin_create.patch     |   48 +
 .../servers/web-apps/discourse/default.nix    |  234 +
 .../web-apps/discourse/disable_jhead.patch    |   12 +
 .../discourse/mail_receiver/default.nix       |   39 +
 .../web-apps/discourse/nixos_defaults.patch   |   13 +
 .../web-apps/discourse/rubyEnv/Gemfile        |  248 +
 .../web-apps/discourse/rubyEnv/Gemfile.lock   |  561 ++
 .../web-apps/discourse/rubyEnv/gemset.nix     | 2272 ++++++
 .../unicorn_logging_and_timeout.patch         |   25 +
 .../pkgs/servers/web-apps/discourse/update.py |  164 +
 .../nixpkgs/pkgs/servers/x11/xorg/default.nix |    6 +-
 .../pkgs/servers/x11/xorg/tarballs.list       |    2 +-
 .../pkgs/servers/zigbee2mqtt/default.nix      |    2 +
 .../nixpkgs/pkgs/shells/fish/default.nix      |    6 +-
 .../pkgs/shells/zsh/oh-my-zsh/default.nix     |    6 +-
 .../zsh/zsh-clipboard/clipboard.plugin.zsh    |   40 +
 .../pkgs/shells/zsh/zsh-clipboard/default.nix |   27 +
 .../pkgs/tools/admin/awscli/default.nix       |    4 +-
 .../pkgs/tools/admin/exoscale-cli/default.nix |    4 +-
 .../pkgs/tools/admin/fioctl/default.nix       |    6 +-
 .../tools/admin/nomachine-client/default.nix  |   12 +-
 .../pkgs/tools/archivers/p7zip/default.nix    |    4 +-
 .../tools/filesystems/sshfs-fuse/common.nix   |   61 +
 .../tools/filesystems/sshfs-fuse/default.nix  |   74 +-
 .../sshfs-fuse/fix-fuse-darwin-h.patch        |   14 +
 .../misc/betterdiscord-installer/default.nix  |   32 +
 .../nixpkgs/pkgs/tools/misc/fzf/default.nix   |    6 +-
 .../nixpkgs/pkgs/tools/misc/grit/default.nix  |   23 +
 .../nixpkgs/pkgs/tools/misc/mcfly/default.nix |    6 +-
 .../nixpkgs/pkgs/tools/misc/polar/Gemfile     |    7 +
 .../pkgs/tools/misc/polar/Gemfile.lock        |   27 +
 .../nixpkgs/pkgs/tools/misc/polar/default.nix |   73 +
 .../nixpkgs/pkgs/tools/misc/polar/gemset.nix  |   75 +
 .../pkgs/tools/misc/poweralertd/default.nix   |   42 +
 .../pkgs/tools/misc/svtplay-dl/default.nix    |    4 +-
 .../pkgs/tools/misc/topgrade/default.nix      |    6 +-
 .../pkgs/tools/misc/uwuify/default.nix        |    6 +-
 .../pkgs/tools/misc/youtube-dl/default.nix    |    4 +-
 .../tools/misc/yubikey-manager/default.nix    |    7 +-
 .../pkgs/tools/networking/connman/connman.nix |    2 +-
 .../pkgs/tools/networking/gobgp/default.nix   |    4 +-
 .../tools/networking/linkchecker/default.nix  |    1 +
 .../pkgs/tools/networking/openssh/copyid.nix  |   11 +
 .../pkgs/tools/networking/saldl/default.nix   |    4 +-
 .../{cutter => tcp-cutter}/default.nix        |    5 +-
 .../pkgs/tools/networking/ytcc/default.nix    |    4 +-
 .../appimagekit/default.nix                   |   48 +-
 .../package-management/appimagekit/nix.patch  |  224 +-
 .../pkgs/tools/security/ghidra/default.nix    |    6 +-
 .../pkgs/tools/security/pwncat/default.nix    |    6 +-
 .../nixpkgs/pkgs/tools/security/zsteg/Gemfile |    2 +
 .../pkgs/tools/security/zsteg/Gemfile.lock    |   19 +
 .../pkgs/tools/security/zsteg/default.nix     |   16 +
 .../pkgs/tools/security/zsteg/gemset.nix      |   44 +
 .../pkgs/tools/system/nats-top/default.nix    |   25 +
 .../pkgs/tools/system/natscli/default.nix     |   25 +
 .../pkgs/tools/system/nkeys/default.nix       |   25 +
 .../text/gpt2tc/0001-add-python-shebang.patch |   10 +
 .../text/gpt2tc/0002-fix-download-url.patch   |   11 +
 .../pkgs/tools/text/gpt2tc/default.nix        |   47 +
 .../ec2instanceconnectcli/default.nix         |    4 +-
 .../google-compute-engine/default.nix         |    7 +-
 .../nixpkgs/pkgs/top-level/aliases.nix        |    3 +
 .../nixpkgs/pkgs/top-level/all-packages.nix   |  154 +-
 .../nixpkgs/pkgs/top-level/perl-packages.nix  |   13 +-
 .../nixpkgs/pkgs/top-level/php-packages.nix   |    8 +-
 .../pkgs/top-level/python-packages.nix        |   39 +-
 409 files changed, 16636 insertions(+), 6496 deletions(-)
 delete mode 100644 third_party/nixpkgs/nixos/modules/hardware/video/amdgpu.nix
 create mode 100644 third_party/nixpkgs/nixos/modules/programs/droidcam.nix
 create mode 100644 third_party/nixpkgs/nixos/modules/services/display-managers/greetd.nix
 create mode 100644 third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
 create mode 100644 third_party/nixpkgs/nixos/modules/services/web-apps/discourse.nix
 create mode 100644 third_party/nixpkgs/nixos/modules/services/web-apps/discourse.xml
 create mode 100644 third_party/nixpkgs/nixos/tests/discourse.nix
 create mode 100644 third_party/nixpkgs/nixos/tests/kernel-generic.nix
 delete mode 100644 third_party/nixpkgs/nixos/tests/kernel-latest.nix
 delete mode 100644 third_party/nixpkgs/nixos/tests/kernel-lts.nix
 delete mode 100644 third_party/nixpkgs/nixos/tests/kernel-testing.nix
 create mode 100644 third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh
 create mode 100644 third_party/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix
 create mode 100644 third_party/nixpkgs/pkgs/applications/misc/openlp/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/applications/misc/openlp/lib.nix
 create mode 100644 third_party/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix
 create mode 100644 third_party/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix
 create mode 100644 third_party/nixpkgs/pkgs/desktops/plasma-5/qqc2-breeze-style.nix
 delete mode 100644 third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/allow-checking-parent-sources-when-looking-up-schema.patch
 create mode 100644 third_party/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/libraries/libdmapsharing/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/libraries/libpg_query/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/libraries/v8/gcc_arm.patch
 create mode 100644 third_party/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix
 delete mode 100644 third_party/nixpkgs/pkgs/development/perl-modules/Net-CIDR-Lite-prevent-leading-zeroes-ipv4.patch
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/async-dns/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/asyncio-nats-client/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/docx2python/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/homepluscontrol/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/localimport/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/makefun/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/nats-python/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/nodepy-runtime/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/openhomedevice/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/pytest-raises/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/riprova/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/ronin/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/smartypants/hgtags
 create mode 100644 third_party/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
 delete mode 100644 third_party/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/tools/krankerl/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/games/antsimulator/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/games/uhexen2/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/os-specific/linux/joycond/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix
 delete mode 100644 third_party/nixpkgs/pkgs/os-specific/linux/libcap/no-shared-lib.patch
 delete mode 100644 third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/src.nix
 create mode 100644 third_party/nixpkgs/pkgs/os-specific/linux/vendor-reset/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/admin_create.patch
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/mail_receiver/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/nixos_defaults.patch
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
 create mode 100644 third_party/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
 create mode 100755 third_party/nixpkgs/pkgs/servers/web-apps/discourse/update.py
 create mode 100644 third_party/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh
 create mode 100644 third_party/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/fix-fuse-darwin-h.patch
 create mode 100644 third_party/nixpkgs/pkgs/tools/misc/betterdiscord-installer/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/misc/grit/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/misc/polar/Gemfile
 create mode 100644 third_party/nixpkgs/pkgs/tools/misc/polar/Gemfile.lock
 create mode 100644 third_party/nixpkgs/pkgs/tools/misc/polar/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/misc/polar/gemset.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/misc/poweralertd/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/networking/openssh/copyid.nix
 rename third_party/nixpkgs/pkgs/tools/networking/{cutter => tcp-cutter}/default.nix (80%)
 create mode 100644 third_party/nixpkgs/pkgs/tools/security/zsteg/Gemfile
 create mode 100644 third_party/nixpkgs/pkgs/tools/security/zsteg/Gemfile.lock
 create mode 100644 third_party/nixpkgs/pkgs/tools/security/zsteg/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/security/zsteg/gemset.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/system/nats-top/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/system/natscli/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/system/nkeys/default.nix
 create mode 100644 third_party/nixpkgs/pkgs/tools/text/gpt2tc/0001-add-python-shebang.patch
 create mode 100644 third_party/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch
 create mode 100644 third_party/nixpkgs/pkgs/tools/text/gpt2tc/default.nix

diff --git a/third_party/nixpkgs/.github/CODEOWNERS b/third_party/nixpkgs/.github/CODEOWNERS
index b68e8436fe..b15d89219f 100644
--- a/third_party/nixpkgs/.github/CODEOWNERS
+++ b/third_party/nixpkgs/.github/CODEOWNERS
@@ -94,6 +94,10 @@
 /pkgs/applications/science/math/R   @peti
 /pkgs/development/r-modules         @peti
 
+# Ruby
+/pkgs/development/interpreters/ruby @marsam
+/pkgs/development/ruby-modules      @marsam
+
 # Rust
 /pkgs/development/compilers/rust @Mic92 @LnL7 @zowoq
 /pkgs/build-support/rust @andir @danieldk @zowoq
@@ -135,7 +139,7 @@
 /pkgs/development/libraries/qt-5 @ttuegel
 
 # PostgreSQL and related stuff
-/pkgs/servers/sql/postgresql @thoughtpolice
+/pkgs/servers/sql/postgresql @thoughtpolice @marsam
 /nixos/modules/services/databases/postgresql.xml @thoughtpolice
 /nixos/modules/services/databases/postgresql.nix @thoughtpolice
 /nixos/tests/postgresql.nix @thoughtpolice
diff --git a/third_party/nixpkgs/doc/builders/images/dockertools.section.md b/third_party/nixpkgs/doc/builders/images/dockertools.section.md
index 23662f9bbf..2d21eb1c2e 100644
--- a/third_party/nixpkgs/doc/builders/images/dockertools.section.md
+++ b/third_party/nixpkgs/doc/builders/images/dockertools.section.md
@@ -147,6 +147,10 @@ Create a Docker image with many of the store paths being on their own layer to i
 
 : Shell commands to run while building the final layer, without access to most of the layer contents. Changes to this layer are "on top" of all the other layers, so can create additional directories and files.
 
+`fakeRootCommands` _optional_
+
+: 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.
+
 ### 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/third_party/nixpkgs/maintainers/maintainer-list.nix b/third_party/nixpkgs/maintainers/maintainer-list.nix
index d7747768cd..e4264fbd30 100644
--- a/third_party/nixpkgs/maintainers/maintainer-list.nix
+++ b/third_party/nixpkgs/maintainers/maintainer-list.nix
@@ -698,6 +698,16 @@
     githubId = 1078530;
     name = "Alexandre Peyroux";
   };
+  applePrincess = {
+    email = "appleprincess@appleprincess.io";
+    github = "applePrincess";
+    githubId = 17154507;
+    name = "Lein Matsumaru";
+    keys = [{
+      longkeyid = "rsa4096/0xAAA50652F0479205";
+      fingerprint = "BF8B F725 DA30 E53E 7F11  4ED8 AAA5 0652 F047 9205";
+   }];
+  };
   ar1a = {
     email = "aria@ar1as.space";
     github = "ar1a";
@@ -2781,6 +2791,12 @@
     githubId = 1753498;
     name = "Dejan Lukan";
   };
+  electrified = {
+    email = "ed@maidavale.org";
+    github = "electrified";
+    githubId = 103082;
+    name = "Ed Brindley";
+  };
   elliottvillars = {
     email = "elliottvillars@gmail.com";
     github = "elliottvillars";
@@ -3689,6 +3705,12 @@
     githubId = 343415;
     name = "Greg Roodt";
   };
+  gschwartz = {
+    email = "gsch@pennmedicine.upenn.edu";
+    github = "GregorySchwartz";
+    githubId = 2490088;
+    name = "Gregory Schwartz";
+  };
   gtrunsec = {
     email = "gtrunsec@hardenedlinux.org";
     github = "GTrunSec";
@@ -8145,6 +8167,12 @@
     githubId = 16779;
     name = "Rickard Nilsson";
   };
+  riey = {
+    email = "creeper844@gmail.com";
+    github = "Riey";
+    githubId = 14910534;
+    name = "Riey";
+  };
   rika = {
     email = "rika@paymentswit.ch";
     github = "NekomimiScience";
@@ -8693,6 +8721,12 @@
     githubId = 19472270;
     name = "Sebastian";
   };
+  sebbadk = {
+    email = "sebastian@sebba.dk";
+    github = "SEbbaDK";
+    githubId = 1567527;
+    name = "Sebastian Hyberts";
+  };
   sellout = {
     email = "greg@technomadic.org";
     github = "sellout";
diff --git a/third_party/nixpkgs/maintainers/team-list.nix b/third_party/nixpkgs/maintainers/team-list.nix
index 8acf68ac3a..39c9b76718 100644
--- a/third_party/nixpkgs/maintainers/team-list.nix
+++ b/third_party/nixpkgs/maintainers/team-list.nix
@@ -87,6 +87,16 @@ with lib.maintainers; {
     scope = "Maintain GNOME desktop environment and platform.";
   };
 
+  home-assistant = {
+    members = [
+      fab
+      globin
+      hexa
+      mic92
+    ];
+    scope = "Maintain the Home Assistant ecosystem";
+  };
+
   jitsi = {
     members = [
       mmilata
diff --git a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
index ba42601096..b5290b374f 100644
--- a/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
+++ b/third_party/nixpkgs/nixos/doc/manual/release-notes/rl-2105.xml
@@ -118,6 +118,16 @@
        <xref linkend="opt-services.samba-wsdd.enable" /> Web Services Dynamic Discovery host daemon
      </para>
    </listitem>
+   <listitem>
+     <para>
+       <link xlink:href="https://www.discourse.org/">Discourse</link>, a
+       modern and open source discussion platform.
+     </para>
+     <para>
+       See the <link linkend="module-services-discourse">Discourse
+       section of the NixOS manual</link> for more information.
+     </para>
+   </listitem>
   </itemizedlist>
 
  </section>
diff --git a/third_party/nixpkgs/nixos/modules/hardware/video/amdgpu.nix b/third_party/nixpkgs/nixos/modules/hardware/video/amdgpu.nix
deleted file mode 100644
index 42fc8fa362..0000000000
--- a/third_party/nixpkgs/nixos/modules/hardware/video/amdgpu.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-{ config, lib, ... }:
-
-with lib;
-{
-  config = mkIf (elem "amdgpu" config.services.xserver.videoDrivers) {
-    boot.blacklistedKernelModules = [ "radeon" ];
-  };
-}
-
diff --git a/third_party/nixpkgs/nixos/modules/module-list.nix b/third_party/nixpkgs/nixos/modules/module-list.nix
index e113322123..6f600a608d 100644
--- a/third_party/nixpkgs/nixos/modules/module-list.nix
+++ b/third_party/nixpkgs/nixos/modules/module-list.nix
@@ -74,7 +74,6 @@
   ./hardware/sata.nix
   ./hardware/wooting.nix
   ./hardware/uinput.nix
-  ./hardware/video/amdgpu.nix
   ./hardware/video/amdgpu-pro.nix
   ./hardware/video/ati.nix
   ./hardware/video/capture/mwprocapture.nix
@@ -126,6 +125,7 @@
   ./programs/dconf.nix
   ./programs/digitalbitbox/default.nix
   ./programs/dmrconfig.nix
+  ./programs/droidcam.nix
   ./programs/environment.nix
   ./programs/evince.nix
   ./programs/file-roller.nix
@@ -357,6 +357,7 @@
   ./services/development/jupyter/default.nix
   ./services/development/jupyterhub/default.nix
   ./services/development/lorri.nix
+  ./services/display-managers/greetd.nix
   ./services/editors/emacs.nix
   ./services/editors/infinoted.nix
   ./services/games/factorio.nix
@@ -896,6 +897,7 @@
   ./services/web-apps/calibre-web.nix
   ./services/web-apps/convos.nix
   ./services/web-apps/cryptpad.nix
+  ./services/web-apps/discourse.nix
   ./services/web-apps/documize.nix
   ./services/web-apps/dokuwiki.nix
   ./services/web-apps/engelsystem.nix
diff --git a/third_party/nixpkgs/nixos/modules/programs/droidcam.nix b/third_party/nixpkgs/nixos/modules/programs/droidcam.nix
new file mode 100644
index 0000000000..9843a1f5be
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/programs/droidcam.nix
@@ -0,0 +1,16 @@
+{ lib, pkgs, config, ... }:
+
+with lib;
+
+{
+  options.programs.droidcam = {
+    enable = mkEnableOption "DroidCam client";
+  };
+
+  config = lib.mkIf config.programs.droidcam.enable {
+    environment.systemPackages = [ pkgs.droidcam ];
+
+    boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
+    boot.kernelModules = [ "v4l2loopback" "snd-aloop" ];
+  };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/audio/snapserver.nix b/third_party/nixpkgs/nixos/modules/services/audio/snapserver.nix
index a261b87607..f96b5f3e19 100644
--- a/third_party/nixpkgs/nixos/modules/services/audio/snapserver.nix
+++ b/third_party/nixpkgs/nixos/modules/services/audio/snapserver.nix
@@ -65,7 +65,7 @@ let
 
 in {
   imports = [
-    (mkRenamedOptionModule [ "services" "snapserver" "controlPort"] [ "services" "snapserver" "tcp" "port" ])
+    (mkRenamedOptionModule [ "services" "snapserver" "controlPort" ] [ "services" "snapserver" "tcp" "port" ])
   ];
 
   ###### interface
@@ -200,12 +200,21 @@ in {
             location = mkOption {
               type = types.oneOf [ types.path types.str ];
               description = ''
-                The location of the pipe, file, Librespot/Airplay/process binary, or a TCP address.
-                Use an empty string for alsa.
+                For type <literal>pipe</literal> or <literal>file</literal>, the path to the pipe or file.
+                For type <literal>librespot</literal>, <literal>airplay</literal> or <literal>process</literal>, the path to the corresponding binary.
+                For type <literal>tcp</literal>, the <literal>host:port</literal> address to connect to or listen on.
+                For type <literal>meta</literal>, a list of stream names in the form <literal>/one/two/...</literal>. Don't forget the leading slash.
+                For type <literal>alsa</literal>, use an empty string.
+              '';
+              example = literalExample ''
+                "/path/to/pipe"
+                "/path/to/librespot"
+                "192.168.1.2:4444"
+                "/MyTCP/Spotify/MyPipe"
               '';
             };
             type = mkOption {
-              type = types.enum [ "pipe" "librespot" "airplay" "file" "process" "tcp" "alsa" "spotify" ];
+              type = types.enum [ "pipe" "librespot" "airplay" "file" "process" "tcp" "alsa" "spotify" "meta" ];
               default = "pipe";
               description = ''
                 The type of input stream.
diff --git a/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix b/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 7efcf8ac6c..b5346b1cd4 100644
--- a/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/third_party/nixpkgs/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -266,7 +266,7 @@ in
           gitMinimal
           openssh
           util-linux
-          iproute
+          iproute2
           ethtool
           thin-provisioning-tools
           iptables
diff --git a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
index 4d50cb9f1a..bd00571bc3 100644
--- a/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
+++ b/third_party/nixpkgs/nixos/modules/services/desktops/pipewire/bluez-monitor.conf.json
@@ -8,7 +8,13 @@
         }
       ],
       "actions": {
-        "update-props": {}
+        "update-props": {
+          "bluez5.reconnect-profiles": [
+            "hfp_hf",
+            "hsp_hs",
+            "a2dp_sink"
+          ]
+        }
       }
     },
     {
diff --git a/third_party/nixpkgs/nixos/modules/services/display-managers/greetd.nix b/third_party/nixpkgs/nixos/modules/services/display-managers/greetd.nix
new file mode 100644
index 0000000000..c3072bf099
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/display-managers/greetd.nix
@@ -0,0 +1,106 @@
+{ config, lib, pkgs, ... }:
+with lib;
+
+let
+  cfg = config.services.greetd;
+  tty = "tty${toString cfg.vt}";
+  settingsFormat = pkgs.formats.toml {};
+in
+{
+  options.services.greetd = {
+    enable = mkEnableOption "greetd";
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.greetd.greetd;
+      defaultText = "pkgs.greetd.greetd";
+      description = "The greetd package that should be used.";
+    };
+
+    settings = mkOption {
+      type = settingsFormat.type;
+      example = literalExample ''
+        {
+          default_session = {
+            command = "''${pkgs.greetd.greetd}/bin/agreety --cmd sway";
+          };
+        }
+      '';
+      description = ''
+        greetd configuration (<link xlink:href="https://man.sr.ht/~kennylevinsen/greetd/">documentation</link>)
+        as a Nix attribute set.
+      '';
+    };
+
+    vt = mkOption  {
+      type = types.int;
+      default = 1;
+      description = ''
+        The virtual console (tty) that greetd should use. This option also disables getty on that tty.
+      '';
+    };
+
+    restart = mkOption {
+      type = types.bool;
+      default = !(cfg.settings ? initial_session);
+      defaultText = "!(config.services.greetd.settings ? initial_session)";
+      description = ''
+        Wether to restart greetd when it terminates (e.g. on failure).
+        This is usually desirable so a user can always log in, but should be disabled when using 'settings.initial_session' (autologin),
+        because every greetd restart will trigger the autologin again.
+      '';
+    };
+  };
+  config = mkIf cfg.enable {
+
+    services.greetd.settings.terminal.vt = mkDefault cfg.vt;
+    services.greetd.settings.default_session = mkDefault "greeter";
+
+    security.pam.services.greetd = {
+      allowNullPassword = true;
+      startSession = true;
+    };
+
+    # This prevents nixos-rebuild from killing greetd by activating getty again
+    systemd.services."autovt@${tty}".enable = false;
+
+    systemd.services.greetd = {
+      unitConfig = {
+        Wants = [
+          "systemd-user-sessions.service"
+        ];
+        After = [
+          "systemd-user-sessions.service"
+          "plymouth-quit-wait.service"
+          "getty@${tty}.service"
+        ];
+        Conflicts = [
+          "getty@${tty}.service"
+        ];
+      };
+
+      serviceConfig = {
+        ExecStart = "${pkgs.greetd.greetd}/bin/greetd --config ${settingsFormat.generate "greetd.toml" cfg.settings}";
+
+        Restart = mkIf cfg.restart "always";
+
+        # Defaults from greetd upstream configuration
+        IgnoreSIGPIPE = false;
+        SendSIGHUP = true;
+        TimeoutStopSec = "30s";
+        KeyringMode = "shared";
+      };
+
+      # Don't kill a user session when using nixos-rebuild
+      restartIfChanged = false;
+
+      wantedBy = [ "graphical.target" ];
+    };
+
+    systemd.defaultUnit = "graphical.target";
+
+    users.users.greeter.isSystemUser = true;
+  };
+
+  meta.maintainers = with maintainers; [ queezle ];
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix b/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
index b8bb4059dc..f86653f3ea 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/gitlab.nix
@@ -119,8 +119,9 @@ let
       backup = {
         path = cfg.backup.path;
         keep_time = cfg.backup.keepTime;
+      } // (optionalAttrs (cfg.backup.uploadOptions != {}) {
         upload = cfg.backup.uploadOptions;
-      };
+      });
       gitlab_shell = {
         path = "${cfg.packages.gitlab-shell}";
         hooks_path = "${cfg.statePath}/shell/hooks";
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/home-assistant.nix b/third_party/nixpkgs/nixos/modules/services/misc/home-assistant.nix
index 35a6e29963..2787c975b3 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/home-assistant.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/home-assistant.nix
@@ -50,10 +50,15 @@ let
   # List of components used in config
   extraComponents = filter useComponent availableComponents;
 
-  package = if (cfg.autoExtraComponents && cfg.config != null)
+  testedPackage = if (cfg.autoExtraComponents && cfg.config != null)
     then (cfg.package.override { inherit extraComponents; })
     else cfg.package;
 
+  # overridePythonAttrs has to be applied after override
+  package = testedPackage.overridePythonAttrs (oldAttrs: {
+    doCheck = false;
+  });
+
   # If you are changing this, please update the description in applyDefaultConfig
   defaultConfig = {
     homeassistant.time_zone = config.time.timeZone;
@@ -63,7 +68,7 @@ let
   };
 
 in {
-  meta.maintainers = with maintainers; [ dotlambda ];
+  meta.maintainers = teams.home-assistant.members;
 
   options.services.home-assistant = {
     enable = mkEnableOption "Home Assistant";
@@ -183,13 +188,9 @@ in {
     };
 
     package = mkOption {
-      default = pkgs.home-assistant.overridePythonAttrs (oldAttrs: {
-        doCheck = false;
-      });
+      default = pkgs.home-assistant;
       defaultText = literalExample ''
-        pkgs.home-assistant.overridePythonAttrs (oldAttrs: {
-          doCheck = false;
-        })
+        pkgs.home-assistant
       '';
       type = types.package;
       example = literalExample ''
@@ -198,10 +199,12 @@ in {
         }
       '';
       description = ''
-        Home Assistant package to use. By default the tests are disabled, as they take a considerable amout of time to complete.
+        Home Assistant package to use. Tests are automatically disabled, as they take a considerable amout of time to complete.
         Override <literal>extraPackages</literal> or <literal>extraComponents</literal> in order to add additional dependencies.
         If you specify <option>config</option> and do not set <option>autoExtraComponents</option>
         to <literal>false</literal>, overriding <literal>extraComponents</literal> will have no effect.
+        Avoid <literal>home-assistant.overridePythonAttrs</literal> if you use
+        <literal>autoExtraComponents</literal>.
       '';
     };
 
diff --git a/third_party/nixpkgs/nixos/modules/services/misc/packagekit.nix b/third_party/nixpkgs/nixos/modules/services/misc/packagekit.nix
index 325c4e84e0..93bd206bd9 100644
--- a/third_party/nixpkgs/nixos/modules/services/misc/packagekit.nix
+++ b/third_party/nixpkgs/nixos/modules/services/misc/packagekit.nix
@@ -1,55 +1,60 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
-
   cfg = config.services.packagekit;
 
-  packagekitConf = ''
-    [Daemon]
-    DefaultBackend=${cfg.backend}
-    KeepCache=false
-  '';
+  inherit (lib)
+    mkEnableOption mkOption mkIf mkRemovedOptionModule types
+    listToAttrs recursiveUpdate;
 
-  vendorConf = ''
-    [PackagesNotFound]
-    DefaultUrl=https://github.com/NixOS/nixpkgs
-    CodecUrl=https://github.com/NixOS/nixpkgs
-    HardwareUrl=https://github.com/NixOS/nixpkgs
-    FontUrl=https://github.com/NixOS/nixpkgs
-    MimeUrl=https://github.com/NixOS/nixpkgs
-  '';
+  iniFmt = pkgs.formats.ini { };
+
+  confFiles = [
+    (iniFmt.generate "PackageKit.conf" (recursiveUpdate
+      {
+        Daemon = {
+          DefaultBackend = "test_nop";
+          KeepCache = false;
+        };
+      }
+      cfg.settings))
+
+    (iniFmt.generate "Vendor.conf" (recursiveUpdate
+      {
+        PackagesNotFound = rec {
+          DefaultUrl = "https://github.com/NixOS/nixpkgs";
+          CodecUrl = DefaultUrl;
+          HardwareUrl = DefaultUrl;
+          FontUrl = DefaultUrl;
+          MimeUrl = DefaultUrl;
+        };
+      }
+      cfg.vendorSettings))
+  ];
 
 in
-
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "packagekit" "backend" ] "The only backend that doesn't blow up is `test_nop`.")
+  ];
 
-  options = {
+  options.services.packagekit = {
+    enable = mkEnableOption ''
+      PackageKit provides a cross-platform D-Bus abstraction layer for
+      installing software. Software utilizing PackageKit can install
+      software regardless of the package manager.
+    '';
 
-    services.packagekit = {
-      enable = mkEnableOption
-        ''
-          PackageKit provides a cross-platform D-Bus abstraction layer for
-          installing software. Software utilizing PackageKit can install
-          software regardless of the package manager.
-        '';
+    settings = mkOption {
+      type = iniFmt.type;
+      default = { };
+      description = "Additional settings passed straight through to PackageKit.conf";
+    };
 
-      # TODO: integrate with PolicyKit if the nix backend matures to the point
-      # where it will require elevated permissions
-      backend = mkOption {
-        type = types.enum [ "test_nop" ];
-        default = "test_nop";
-        description = ''
-          PackageKit supports multiple different backends and <literal>auto</literal> which
-          should do the right thing.
-          </para>
-          <para>
-          On NixOS however, we do not have a backend compatible with nix 2.0
-          (refer to <link xlink:href="https://github.com/NixOS/nix/issues/233">this issue</link> so we have to force
-          it to <literal>test_nop</literal> for now.
-        '';
-      };
+    vendorSettings = mkOption {
+      type = iniFmt.type;
+      default = { };
+      description = "Additional settings passed straight through to Vendor.conf";
     };
   };
 
@@ -59,7 +64,9 @@ in
 
     systemd.packages = with pkgs; [ packagekit ];
 
-    environment.etc."PackageKit/PackageKit.conf".text = packagekitConf;
-    environment.etc."PackageKit/Vendor.conf".text = vendorConf;
+    environment.etc = listToAttrs (map
+      (e:
+        lib.nameValuePair "PackageKit/${e.name}" { source = e; })
+      confFiles);
   };
 }
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
index 0b65b4865b..e0c5ceccfc 100644
--- a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -25,6 +25,7 @@ let
     "artifactory"
     "bind"
     "bird"
+    "bitcoin"
     "blackbox"
     "collectd"
     "dnsmasq"
diff --git a/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
new file mode 100644
index 0000000000..43721f70b4
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/bitcoin.nix
@@ -0,0 +1,82 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.bitcoin;
+in
+{
+  port = 9332;
+  extraOpts = {
+    rpcUser = mkOption {
+      type = types.str;
+      default = "bitcoinrpc";
+      description = ''
+        RPC user name.
+      '';
+    };
+
+    rpcPasswordFile = mkOption {
+      type = types.path;
+      description = ''
+        File containing RPC password.
+      '';
+    };
+
+    rpcScheme = mkOption {
+      type = types.enum [ "http" "https" ];
+      default = "http";
+      description = ''
+        Whether to connect to bitcoind over http or https.
+      '';
+    };
+
+    rpcHost = mkOption {
+      type = types.str;
+      default = "localhost";
+      description = ''
+        RPC host.
+      '';
+    };
+
+    rpcPort = mkOption {
+      type = types.port;
+      default = 8332;
+      description = ''
+        RPC port number.
+      '';
+    };
+
+    refreshSeconds = mkOption {
+      type = types.ints.unsigned;
+      default = 300;
+      description = ''
+        How often to ask bitcoind for metrics.
+      '';
+    };
+
+    extraEnv = mkOption {
+      type = types.attrsOf types.str;
+      default = {};
+      description = ''
+        Extra environment variables for the exporter.
+      '';
+    };
+  };
+  serviceOpts = {
+    script = ''
+      export BITCOIN_RPC_PASSWORD=$(cat ${cfg.rpcPasswordFile})
+      exec ${pkgs.prometheus-bitcoin-exporter}/bin/bitcoind-monitor.py
+    '';
+
+    environment = {
+      BITCOIN_RPC_USER = cfg.rpcUser;
+      BITCOIN_RPC_SCHEME = cfg.rpcScheme;
+      BITCOIN_RPC_HOST = cfg.rpcHost;
+      BITCOIN_RPC_PORT = toString cfg.rpcPort;
+      METRICS_ADDR = cfg.listenAddress;
+      METRICS_PORT = toString cfg.port;
+      REFRESH_SECONDS = toString cfg.refreshSeconds;
+    } // cfg.extraEnv;
+  };
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/network-filesystems/samba.nix b/third_party/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
index d6e2904b3c..78ea245cb3 100644
--- a/third_party/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
+++ b/third_party/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
@@ -156,7 +156,6 @@ in
       securityType = mkOption {
         type = types.str;
         default = "user";
-        example = "share";
         description = "Samba security type";
       };
 
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/gvpe.nix b/third_party/nixpkgs/nixos/modules/services/networking/gvpe.nix
index b851facf1e..4fad37ba15 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/gvpe.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/gvpe.nix
@@ -27,7 +27,7 @@ let
     text = ''
       #! /bin/sh
 
-      export PATH=$PATH:${pkgs.iproute}/sbin
+      export PATH=$PATH:${pkgs.iproute2}/sbin
 
       ip link set $IFNAME up
       ip address add ${cfg.ipAddress} dev $IFNAME
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/libreswan.nix b/third_party/nixpkgs/nixos/modules/services/networking/libreswan.nix
index 7a25769e06..81bc4e1cf9 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/libreswan.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/libreswan.nix
@@ -91,7 +91,7 @@ in
       description = "Internet Key Exchange (IKE) Protocol Daemon for IPsec";
       path = [
         "${pkgs.libreswan}"
-        "${pkgs.iproute}"
+        "${pkgs.iproute2}"
         "${pkgs.procps}"
         "${pkgs.nssTools}"
         "${pkgs.iptables}"
@@ -115,8 +115,8 @@ in
         ExecStart = "${libexec}/pluto --config ${configFile} --nofork \$PLUTO_OPTIONS";
         ExecStop = "${libexec}/whack --shutdown";
         ExecStopPost = [
-          "${pkgs.iproute}/bin/ip xfrm policy flush"
-          "${pkgs.iproute}/bin/ip xfrm state flush"
+          "${pkgs.iproute2}/bin/ip xfrm policy flush"
+          "${pkgs.iproute2}/bin/ip xfrm state flush"
           "${ipsec} --stopnflog"
         ];
         ExecReload = "${libexec}/whack --listen";
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix b/third_party/nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix
index 6f595ca4be..8ce71f26b3 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/mullvad-vpn.nix
@@ -28,7 +28,7 @@ with lib;
         "systemd-resolved.service"
       ];
       path = [
-        pkgs.iproute
+        pkgs.iproute2
         # Needed for ping
         "/run/wrappers"
       ];
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/nomad.nix b/third_party/nixpkgs/nixos/modules/services/networking/nomad.nix
index 9f1b443b89..48689f1195 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/nomad.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/nomad.nix
@@ -119,7 +119,7 @@ in
       path = cfg.extraPackages ++ (with pkgs; [
         # Client mode requires at least the following:
         coreutils
-        iproute
+        iproute2
         iptables
       ]);
 
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/quagga.nix b/third_party/nixpkgs/nixos/modules/services/networking/quagga.nix
index 5acdd5af8f..7c169fe62d 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/quagga.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/quagga.nix
@@ -164,7 +164,7 @@ in
                   preStart = ''
                     install -m 0755 -o quagga -g quagga -d /run/quagga
 
-                    ${pkgs.iproute}/bin/ip route flush proto zebra
+                    ${pkgs.iproute2}/bin/ip route flush proto zebra
                   '';
                 }
               else
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/rxe.nix b/third_party/nixpkgs/nixos/modules/services/networking/rxe.nix
index c7d174a00d..868e2c81cc 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/rxe.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/rxe.nix
@@ -39,11 +39,11 @@ in {
         Type = "oneshot";
         RemainAfterExit = true;
         ExecStart = map ( x:
-          "${pkgs.iproute}/bin/rdma link add rxe_${x} type rxe netdev ${x}"
+          "${pkgs.iproute2}/bin/rdma link add rxe_${x} type rxe netdev ${x}"
           ) cfg.interfaces;
 
         ExecStop = map ( x:
-          "${pkgs.iproute}/bin/rdma link delete rxe_${x}"
+          "${pkgs.iproute2}/bin/rdma link delete rxe_${x}"
           ) cfg.interfaces;
       };
     };
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/tailscale.nix b/third_party/nixpkgs/nixos/modules/services/networking/tailscale.nix
index 1a1474595b..9a28a266a9 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/tailscale.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/tailscale.nix
@@ -28,6 +28,7 @@ in {
     systemd.packages = [ cfg.package ];
     systemd.services.tailscaled = {
       wantedBy = [ "multi-user.target" ];
+      path = [ pkgs.openresolv ];
       serviceConfig.Environment = "PORT=${toString cfg.port}";
     };
   };
diff --git a/third_party/nixpkgs/nixos/modules/services/networking/wg-quick.nix b/third_party/nixpkgs/nixos/modules/services/networking/wg-quick.nix
index 02fe40a22a..3b76de5854 100644
--- a/third_party/nixpkgs/nixos/modules/services/networking/wg-quick.nix
+++ b/third_party/nixpkgs/nixos/modules/services/networking/wg-quick.nix
@@ -57,7 +57,7 @@ let
 
       preUp = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns add foo
+          ${pkgs.iproute2}/bin/ip netns add foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
@@ -68,7 +68,7 @@ let
 
       preDown = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns del foo
+          ${pkgs.iproute2}/bin/ip netns del foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
@@ -79,7 +79,7 @@ let
 
       postUp = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns add foo
+          ${pkgs.iproute2}/bin/ip netns add foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
@@ -90,7 +90,7 @@ let
 
       postDown = mkOption {
         example = literalExample ''
-          ${pkgs.iproute}/bin/ip netns del foo
+          ${pkgs.iproute2}/bin/ip netns del foo
         '';
         default = "";
         type = with types; coercedTo (listOf str) (concatStringsSep "\n") lines;
diff --git a/third_party/nixpkgs/nixos/modules/services/system/cloud-init.nix b/third_party/nixpkgs/nixos/modules/services/system/cloud-init.nix
index f83db30c1f..eb82b738e4 100644
--- a/third_party/nixpkgs/nixos/modules/services/system/cloud-init.nix
+++ b/third_party/nixpkgs/nixos/modules/services/system/cloud-init.nix
@@ -5,7 +5,7 @@ with lib;
 let cfg = config.services.cloud-init;
     path = with pkgs; [
       cloud-init
-      iproute
+      iproute2
       nettools
       openssh
       shadow
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.nix b/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.nix
new file mode 100644
index 0000000000..03ea002c9d
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.nix
@@ -0,0 +1,1035 @@
+{ config, options, lib, pkgs, utils, ... }:
+
+let
+  json = pkgs.formats.json {};
+
+  cfg = config.services.discourse;
+
+  postgresqlPackage = if config.services.postgresql.enable then
+                        config.services.postgresql.package
+                      else
+                        pkgs.postgresql;
+
+  # We only want to create a database if we're actually going to connect to it.
+  databaseActuallyCreateLocally = cfg.database.createLocally && cfg.database.host == null;
+
+  tlsEnabled = (cfg.enableACME
+                || cfg.sslCertificate != null
+                || cfg.sslCertificateKey != null);
+in
+{
+  options = {
+    services.discourse = {
+      enable = lib.mkEnableOption "Discourse, an open source discussion platform";
+
+      package = lib.mkOption {
+        type = lib.types.package;
+        default = pkgs.discourse;
+        defaultText = "pkgs.discourse";
+        description = ''
+          The discourse package to use.
+        '';
+      };
+
+      hostname = lib.mkOption {
+        type = lib.types.str;
+        default = if config.networking.domain != null then
+                    config.networking.fqdn
+                  else
+                    config.networking.hostName;
+        defaultText = "config.networking.fqdn";
+        example = "discourse.example.com";
+        description = ''
+          The hostname to serve Discourse on.
+        '';
+      };
+
+      secretKeyBaseFile = lib.mkOption {
+        type = with lib.types; nullOr path;
+        default = null;
+        example = "/run/keys/secret_key_base";
+        description = ''
+          The path to a file containing the
+          <literal>secret_key_base</literal> secret.
+
+          Discourse uses <literal>secret_key_base</literal> to encrypt
+          the cookie store, which contains session data, and to digest
+          user auth tokens.
+
+          Needs to be a 64 byte long string of hexadecimal
+          characters. You can generate one by running
+
+          <screen>
+          <prompt>$ </prompt>openssl rand -hex 64 >/path/to/secret_key_base_file
+          </screen>
+
+          This should be a string, not a nix path, since nix paths are
+          copied into the world-readable nix store.
+        '';
+      };
+
+      sslCertificate = lib.mkOption {
+        type = with lib.types; nullOr path;
+        default = null;
+        example = "/run/keys/ssl.cert";
+        description = ''
+          The path to the server SSL certificate. Set this to enable
+          SSL.
+        '';
+      };
+
+      sslCertificateKey = lib.mkOption {
+        type = with lib.types; nullOr path;
+        default = null;
+        example = "/run/keys/ssl.key";
+        description = ''
+          The path to the server SSL certificate key. Set this to
+          enable SSL.
+        '';
+      };
+
+      enableACME = lib.mkOption {
+        type = lib.types.bool;
+        default = cfg.sslCertificate == null && cfg.sslCertificateKey == null;
+        defaultText = "true, unless services.discourse.sslCertificate and services.discourse.sslCertificateKey are set.";
+        description = ''
+          Whether an ACME certificate should be used to secure
+          connections to the server.
+        '';
+      };
+
+      backendSettings = lib.mkOption {
+        type = with lib.types; attrsOf (nullOr (oneOf [ str int bool float ]));
+        default = {};
+        example = lib.literalExample ''
+          {
+            max_reqs_per_ip_per_minute = 300;
+            max_reqs_per_ip_per_10_seconds = 60;
+            max_asset_reqs_per_ip_per_10_seconds = 250;
+            max_reqs_per_ip_mode = "warn+block";
+          };
+        '';
+        description = ''
+          Additional settings to put in the
+          <filename>discourse.conf</filename> file.
+
+          Look in the
+          <link xlink:href="https://github.com/discourse/discourse/blob/master/config/discourse_defaults.conf">discourse_defaults.conf</link>
+          file in the upstream distribution to find available options.
+
+          Setting an option to <literal>null</literal> means
+          <quote>define variable, but leave right-hand side
+          empty</quote>.
+        '';
+      };
+
+      siteSettings = lib.mkOption {
+        type = json.type;
+        default = {};
+        example = lib.literalExample ''
+          {
+            required = {
+              title = "My Cats";
+              site_description = "Discuss My Cats (and be nice plz)";
+            };
+            login = {
+              enable_github_logins = true;
+              github_client_id = "a2f6dfe838cb3206ce20";
+              github_client_secret._secret = /run/keys/discourse_github_client_secret;
+            };
+          };
+        '';
+        description = ''
+          Discourse site settings. These are the settings that can be
+          changed from the UI. This only defines their default values:
+          they can still be overridden from the UI.
+
+          Available settings can be found by looking in the
+          <link xlink:href="https://github.com/discourse/discourse/blob/master/config/site_settings.yml">site_settings.yml</link>
+          file of the upstream distribution. To find a setting's path,
+          you only need to care about the first two levels; i.e. its
+          category and name. See the example.
+
+          Settings 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>config/nixos_site_settings.json</filename> file,
+          the <literal>login.github_client_secret</literal> key will
+          be set to the contents of the
+          <filename>/run/keys/discourse_github_client_secret</filename>
+          file.
+        '';
+      };
+
+      admin = {
+        email = lib.mkOption {
+          type = lib.types.str;
+          example = "admin@example.com";
+          description = ''
+            The admin user email address.
+          '';
+        };
+
+        username = lib.mkOption {
+          type = lib.types.str;
+          example = "admin";
+          description = ''
+            The admin user username.
+          '';
+        };
+
+        fullName = lib.mkOption {
+          type = lib.types.str;
+          description = ''
+            The admin user's full name.
+          '';
+        };
+
+        passwordFile = lib.mkOption {
+          type = lib.types.path;
+          description = ''
+            A path to a file containing the admin user's password.
+
+            This should be a string, not a nix path, since nix paths are
+            copied into the world-readable nix store.
+          '';
+        };
+      };
+
+      nginx.enable = lib.mkOption {
+        type = lib.types.bool;
+        default = true;
+        description = ''
+          Whether an <literal>nginx</literal> virtual host should be
+          set up to serve Discourse. Only disable if you're planning
+          to use a different web server, which is not recommended.
+        '';
+      };
+
+      database = {
+        pool = lib.mkOption {
+          type = lib.types.int;
+          default = 8;
+          description = ''
+            Database connection pool size.
+          '';
+        };
+
+        host = lib.mkOption {
+          type = with lib.types; nullOr str;
+          default = null;
+          description = ''
+            Discourse database hostname. <literal>null</literal> means <quote>prefer
+            local unix socket connection</quote>.
+          '';
+        };
+
+        passwordFile = lib.mkOption {
+          type = with lib.types; nullOr path;
+          default = null;
+          description = ''
+            File containing the Discourse database user password.
+
+            This should be a string, not a nix path, since nix paths are
+            copied into the world-readable nix store.
+          '';
+        };
+
+        createLocally = lib.mkOption {
+          type = lib.types.bool;
+          default = true;
+          description = ''
+            Whether a database should be automatically created on the
+            local host. Set this to <literal>false</literal> if you plan
+            on provisioning a local database yourself. This has no effect
+            if <option>services.discourse.database.host</option> is customized.
+          '';
+        };
+
+        name = lib.mkOption {
+          type = lib.types.str;
+          default = "discourse";
+          description = ''
+            Discourse database name.
+          '';
+        };
+
+        username = lib.mkOption {
+          type = lib.types.str;
+          default = "discourse";
+          description = ''
+            Discourse database user.
+          '';
+        };
+      };
+
+      redis = {
+        host = lib.mkOption {
+          type = lib.types.str;
+          default = "localhost";
+          description = ''
+            Redis server hostname.
+          '';
+        };
+
+        passwordFile = lib.mkOption {
+          type = with lib.types; nullOr path;
+          default = null;
+          description = ''
+            File containing the Redis password.
+
+            This should be a string, not a nix path, since nix paths are
+            copied into the world-readable nix store.
+          '';
+        };
+
+        dbNumber = lib.mkOption {
+          type = lib.types.int;
+          default = 0;
+          description = ''
+            Redis database number.
+          '';
+        };
+
+        useSSL = lib.mkOption {
+          type = lib.types.bool;
+          default = cfg.redis.host != "localhost";
+          description = ''
+            Connect to Redis with SSL.
+          '';
+        };
+      };
+
+      mail = {
+        notificationEmailAddress = lib.mkOption {
+          type = lib.types.str;
+          default = "${if cfg.mail.incoming.enable then "notifications" else "noreply"}@${cfg.hostname}";
+          defaultText = ''
+            "notifications@`config.services.discourse.hostname`" if
+            config.services.discourse.mail.incoming.enable is "true",
+            otherwise "noreply`config.services.discourse.hostname`"
+          '';
+          description = ''
+            The <literal>from:</literal> email address used when
+            sending all essential system emails. The domain specified
+            here must have SPF, DKIM and reverse PTR records set
+            correctly for email to arrive.
+          '';
+        };
+
+        contactEmailAddress = lib.mkOption {
+          type = lib.types.str;
+          default = "";
+          description = ''
+            Email address of key contact responsible for this
+            site. Used for critical notifications, as well as on the
+            <literal>/about</literal> contact form for urgent matters.
+          '';
+        };
+
+        outgoing = {
+          serverAddress = lib.mkOption {
+            type = lib.types.str;
+            default = "localhost";
+            description = ''
+              The address of the SMTP server Discourse should use to
+              send email.
+            '';
+          };
+
+          port = lib.mkOption {
+            type = lib.types.int;
+            default = 25;
+            description = ''
+              The port of the SMTP server Discourse should use to
+              send email.
+            '';
+          };
+
+          username = lib.mkOption {
+            type = with lib.types; nullOr str;
+            default = null;
+            description = ''
+              The username of the SMTP server.
+            '';
+          };
+
+          passwordFile = lib.mkOption {
+            type = lib.types.nullOr lib.types.path;
+            default = null;
+            description = ''
+              A file containing the password of the SMTP server account.
+
+              This should be a string, not a nix path, since nix paths
+              are copied into the world-readable nix store.
+            '';
+          };
+
+          domain = lib.mkOption {
+            type = lib.types.str;
+            default = cfg.hostname;
+            description = ''
+              HELO domain to use for outgoing mail.
+            '';
+          };
+
+          authentication = lib.mkOption {
+            type = with lib.types; nullOr (enum ["plain" "login" "cram_md5"]);
+            default = null;
+            description = ''
+              Authentication type to use, see http://api.rubyonrails.org/classes/ActionMailer/Base.html
+            '';
+          };
+
+          enableStartTLSAuto = lib.mkOption {
+            type = lib.types.bool;
+            default = true;
+            description = ''
+              Whether to try to use StartTLS.
+            '';
+          };
+
+          opensslVerifyMode = lib.mkOption {
+            type = lib.types.str;
+            default = "peer";
+            description = ''
+              How OpenSSL checks the certificate, see http://api.rubyonrails.org/classes/ActionMailer/Base.html
+            '';
+          };
+        };
+
+        incoming = {
+          enable = lib.mkOption {
+            type = lib.types.bool;
+            default = false;
+            description = ''
+              Whether to set up Postfix to receive incoming mail.
+            '';
+          };
+
+          replyEmailAddress = lib.mkOption {
+            type = lib.types.str;
+            default = "%{reply_key}@${cfg.hostname}";
+            defaultText = "%{reply_key}@`config.services.discourse.hostname`";
+            description = ''
+              Template for reply by email incoming email address, for
+              example: %{reply_key}@reply.example.com or
+              replies+%{reply_key}@example.com
+            '';
+          };
+
+          mailReceiverPackage = lib.mkOption {
+            type = lib.types.package;
+            default = pkgs.discourse-mail-receiver;
+            defaultText = "pkgs.discourse-mail-receiver";
+            description = ''
+              The discourse-mail-receiver package to use.
+            '';
+          };
+
+          apiKeyFile = lib.mkOption {
+            type = lib.types.nullOr lib.types.path;
+            default = null;
+            description = ''
+              A file containing the Discourse API key used to add
+              posts and messages from mail. If left at its default
+              value <literal>null</literal>, one will be automatically
+              generated.
+
+              This should be a string, not a nix path, since nix paths
+              are copied into the world-readable nix store.
+            '';
+          };
+        };
+      };
+
+      plugins = lib.mkOption {
+        type = lib.types.listOf lib.types.package;
+        default = [];
+        example = ''
+          [
+            (pkgs.fetchFromGitHub {
+              owner = "discourse";
+              repo = "discourse-spoiler-alert";
+              rev = "e200cfa571d252cab63f3d30d619b370986e4cee";
+              sha256 = "0ya69ix5g77wz4c9x9gmng6l25ghb5xxlx3icr6jam16q14dzc33";
+            })
+          ];
+        '';
+        description = ''
+          <productname>Discourse</productname> plugins to install as a
+          list of derivations. As long as a plugin supports the
+          standard install method, packaging it should only require
+          fetching its source with an appropriate fetcher.
+        '';
+      };
+
+      sidekiqProcesses = lib.mkOption {
+        type = lib.types.int;
+        default = 1;
+        description = ''
+          How many Sidekiq processes should be spawned.
+        '';
+      };
+
+      unicornTimeout = lib.mkOption {
+        type = lib.types.int;
+        default = 30;
+        description = ''
+          Time in seconds before a request to Unicorn times out.
+
+          This can be raised if the system Discourse is running on is
+          too slow to handle many requests within 30 seconds.
+        '';
+      };
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = (cfg.database.host != null) -> (cfg.database.passwordFile != null);
+        message = "When services.gitlab.database.host is customized, services.discourse.database.passwordFile must be set!";
+      }
+      {
+        assertion = cfg.hostname != "";
+        message = "Could not automatically determine hostname, set service.discourse.hostname manually.";
+      }
+    ];
+
+
+    # Default config values are from `config/discourse_defaults.conf`
+    # upstream.
+    services.discourse.backendSettings = lib.mapAttrs (_: lib.mkDefault) {
+      db_pool = cfg.database.pool;
+      db_timeout = 5000;
+      db_connect_timeout = 5;
+      db_socket = null;
+      db_host = cfg.database.host;
+      db_backup_host = null;
+      db_port = null;
+      db_backup_port = 5432;
+      db_name = cfg.database.name;
+      db_username = if databaseActuallyCreateLocally then "discourse" else cfg.database.username;
+      db_password = cfg.database.passwordFile;
+      db_prepared_statements = false;
+      db_replica_host = null;
+      db_replica_port = null;
+      db_advisory_locks = true;
+
+      inherit (cfg) hostname;
+      backup_hostname = null;
+
+      smtp_address = cfg.mail.outgoing.serverAddress;
+      smtp_port = cfg.mail.outgoing.port;
+      smtp_domain = cfg.mail.outgoing.domain;
+      smtp_user_name = cfg.mail.outgoing.username;
+      smtp_password = cfg.mail.outgoing.passwordFile;
+      smtp_authentication = cfg.mail.outgoing.authentication;
+      smtp_enable_start_tls = cfg.mail.outgoing.enableStartTLSAuto;
+      smtp_openssl_verify_mode = cfg.mail.outgoing.opensslVerifyMode;
+
+      load_mini_profiler = true;
+      mini_profiler_snapshots_period = 0;
+      mini_profiler_snapshots_transport_url = null;
+      mini_profiler_snapshots_transport_auth_key = null;
+
+      cdn_url = null;
+      cdn_origin_hostname = null;
+      developer_emails = null;
+
+      redis_host = cfg.redis.host;
+      redis_port = 6379;
+      redis_slave_host = null;
+      redis_slave_port = 6379;
+      redis_db = cfg.redis.dbNumber;
+      redis_password = cfg.redis.passwordFile;
+      redis_skip_client_commands = false;
+      redis_use_ssl = cfg.redis.useSSL;
+
+      message_bus_redis_enabled = false;
+      message_bus_redis_host = "localhost";
+      message_bus_redis_port = 6379;
+      message_bus_redis_slave_host = null;
+      message_bus_redis_slave_port = 6379;
+      message_bus_redis_db = 0;
+      message_bus_redis_password = null;
+      message_bus_redis_skip_client_commands = false;
+
+      enable_cors = false;
+      cors_origin = "";
+      serve_static_assets = false;
+      sidekiq_workers = 5;
+      rtl_css = false;
+      connection_reaper_age = 30;
+      connection_reaper_interval = 30;
+      relative_url_root = null;
+      message_bus_max_backlog_size = 100;
+      secret_key_base = cfg.secretKeyBaseFile;
+      fallback_assets_path = null;
+
+      s3_bucket = null;
+      s3_region = null;
+      s3_access_key_id = null;
+      s3_secret_access_key = null;
+      s3_use_iam_profile = null;
+      s3_cdn_url = null;
+      s3_endpoint = null;
+      s3_http_continue_timeout = null;
+      s3_install_cors_rule = null;
+
+      max_user_api_reqs_per_minute = 20;
+      max_user_api_reqs_per_day = 2880;
+      max_admin_api_reqs_per_key_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;
+      force_anonymous_min_queue_seconds = 1;
+      force_anonymous_min_per_10_seconds = 3;
+      background_requests_max_queue_length = 0.5;
+      reject_message_bus_queue_seconds = 0.1;
+      disable_search_queue_threshold = 1;
+      max_old_rebakes_per_15_minutes = 300;
+      max_logster_logs = 1000;
+      refresh_maxmind_db_during_precompile_days = 2;
+      maxmind_backup_path = null;
+      maxmind_license_key = null;
+      enable_performance_http_headers = false;
+      enable_js_error_reporting = true;
+      mini_scheduler_workers = 5;
+      compress_anon_cache = false;
+      anon_cache_store_threshold = 2;
+      allowed_theme_repos = null;
+      enable_email_sync_demon = false;
+      max_digests_enqueued_per_30_mins_per_site = 10000;
+    };
+
+    services.redis.enable = lib.mkDefault (cfg.redis.host == "localhost");
+
+    services.postgresql = lib.mkIf databaseActuallyCreateLocally {
+      enable = true;
+      ensureUsers = [{ name = "discourse"; }];
+    };
+
+    # The postgresql module doesn't currently support concepts like
+    # objects owners and extensions; for now we tack on what's needed
+    # here.
+    systemd.services.discourse-postgresql =
+      let
+        pgsql = config.services.postgresql;
+      in
+        lib.mkIf databaseActuallyCreateLocally {
+          after = [ "postgresql.service" ];
+          bindsTo = [ "postgresql.service" ];
+          wantedBy = [ "discourse.service" ];
+          partOf = [ "discourse.service" ];
+          path = [
+            pgsql.package
+          ];
+          script = ''
+            set -o errexit -o pipefail -o nounset -o errtrace
+            shopt -s inherit_errexit
+
+            psql -tAc "SELECT 1 FROM pg_database WHERE datname = 'discourse'" | grep -q 1 || psql -tAc 'CREATE DATABASE "discourse" OWNER "discourse"'
+            psql '${cfg.database.name}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
+            psql '${cfg.database.name}' -tAc "CREATE EXTENSION IF NOT EXISTS hstore"
+          '';
+
+          serviceConfig = {
+            User = pgsql.superUser;
+            Type = "oneshot";
+            RemainAfterExit = true;
+          };
+        };
+
+    systemd.services.discourse = {
+      wantedBy = [ "multi-user.target" ];
+      after = [
+        "redis.service"
+        "postgresql.service"
+        "discourse-postgresql.service"
+      ];
+      bindsTo = [
+        "redis.service"
+      ] ++ lib.optionals (cfg.database.host == null) [
+        "postgresql.service"
+        "discourse-postgresql.service"
+      ];
+      path = cfg.package.runtimeDeps ++ [
+        postgresqlPackage
+        pkgs.replace
+        cfg.package.rake
+      ];
+      environment = cfg.package.runtimeEnv // {
+        UNICORN_TIMEOUT = builtins.toString cfg.unicornTimeout;
+        UNICORN_SIDEKIQS = builtins.toString cfg.sidekiqProcesses;
+      };
+
+      preStart =
+        let
+          discourseKeyValue = lib.generators.toKeyValue {
+            mkKeyValue = lib.flip lib.generators.mkKeyValueDefault " = " {
+              mkValueString = v: with builtins;
+                if isInt           v then toString v
+                else if isString   v then ''"${v}"''
+                else if true  ==   v then "true"
+                else if false ==   v then "false"
+                else if null  ==   v then ""
+                else if isFloat    v then lib.strings.floatToString v
+                else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
+            };
+          };
+
+          discourseConf = pkgs.writeText "discourse.conf" (discourseKeyValue cfg.backendSettings);
+
+          mkSecretReplacement = file:
+            lib.optionalString (file != null) ''
+              (
+                  password=$(<'${file}')
+                  replace-literal -fe '${file}' "$password" /run/discourse/config/discourse.conf
+              )
+            '';
+        in ''
+          set -o errexit -o pipefail -o nounset -o errtrace
+          shopt -s inherit_errexit
+
+          umask u=rwx,g=rx,o=
+
+          cp -r ${cfg.package}/share/discourse/config.dist/* /run/discourse/config/
+          cp -r ${cfg.package}/share/discourse/public.dist/* /run/discourse/public/
+          cp -r ${cfg.package}/share/discourse/plugins.dist/* /run/discourse/plugins/
+          ${lib.concatMapStrings (p: "ln -sf ${p} /run/discourse/plugins/") cfg.plugins}
+          ln -sf /var/lib/discourse/uploads /run/discourse/public/uploads
+          ln -sf /var/lib/discourse/backups /run/discourse/public/backups
+
+          (
+              umask u=rwx,g=,o=
+
+              ${utils.genJqSecretsReplacementSnippet
+                  cfg.siteSettings
+                  "/run/discourse/config/nixos_site_settings.json"
+              }
+              install -T -m 0400 -o discourse ${discourseConf} /run/discourse/config/discourse.conf
+              ${mkSecretReplacement cfg.database.passwordFile}
+              ${mkSecretReplacement cfg.mail.outgoing.passwordFile}
+              ${mkSecretReplacement cfg.redis.passwordFile}
+              ${mkSecretReplacement cfg.secretKeyBaseFile}
+          )
+
+          discourse-rake db:migrate >>/var/log/discourse/db_migration.log
+          chmod -R u+w /run/discourse/tmp/
+
+          export ADMIN_EMAIL="${cfg.admin.email}"
+          export ADMIN_NAME="${cfg.admin.fullName}"
+          export ADMIN_USERNAME="${cfg.admin.username}"
+          export ADMIN_PASSWORD="$(<${cfg.admin.passwordFile})"
+          discourse-rake admin:create_noninteractively
+
+          discourse-rake themes:update
+          discourse-rake uploads:regenerate_missing_optimized
+        '';
+
+      serviceConfig = {
+        Type = "simple";
+        User = "discourse";
+        Group = "discourse";
+        RuntimeDirectory = map (p: "discourse/" + p) [
+          "config"
+          "home"
+          "tmp"
+          "assets/javascripts/plugins"
+          "public"
+          "plugins"
+          "sockets"
+        ];
+        RuntimeDirectoryMode = 0750;
+        StateDirectory = map (p: "discourse/" + p) [
+          "uploads"
+          "backups"
+        ];
+        StateDirectoryMode = 0750;
+        LogsDirectory = "discourse";
+        TimeoutSec = "infinity";
+        Restart = "on-failure";
+        WorkingDirectory = "${cfg.package}/share/discourse";
+
+        RemoveIPC = true;
+        PrivateTmp = true;
+        NoNewPrivileges = true;
+        RestrictSUIDSGID = true;
+        ProtectSystem = "strict";
+        ProtectHome = "read-only";
+
+        ExecStart = "${cfg.package.rubyEnv}/bin/bundle exec config/unicorn_launcher -E production -c config/unicorn.conf.rb";
+      };
+    };
+
+    services.nginx = lib.mkIf cfg.nginx.enable {
+      enable = true;
+      additionalModules = [ pkgs.nginxModules.brotli ];
+
+      recommendedTlsSettings = true;
+      recommendedOptimisation = true;
+      recommendedGzipSettings = true;
+      recommendedProxySettings = true;
+
+      upstreams.discourse.servers."unix:/run/discourse/sockets/unicorn.sock" = {};
+
+      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
+        # 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;
+
+        # see: https://meta.discourse.org/t/x/74060
+        proxy_buffer_size 8k;
+      '';
+
+      virtualHosts.${cfg.hostname} = {
+        inherit (cfg) sslCertificate sslCertificateKey enableACME;
+        forceSSL = lib.mkDefault tlsEnabled;
+
+        root = "/run/discourse/public";
+
+        locations =
+          let
+            proxy = { extraConfig ? "" }: {
+              proxyPass = "http://discourse";
+              extraConfig = extraConfig + ''
+                proxy_set_header X-Request-Start "t=''${msec}";
+              '';
+            };
+            cache = time: ''
+              expires ${time};
+              add_header Cache-Control public,immutable;
+            '';
+            cache_1y = cache "1y";
+            cache_1d = cache "1d";
+          in
+            {
+              "/".tryFiles = "$uri @discourse";
+              "@discourse" = proxy {};
+              "^~ /backups/".extraConfig = ''
+                internal;
+              '';
+              "/favicon.ico" = {
+                return = "204";
+                extraConfig = ''
+                  access_log off;
+                  log_not_found off;
+                '';
+              };
+              "~ ^/uploads/short-url/" = proxy {};
+              "~ ^/secure-media-uploads/" = proxy {};
+              "~* (fonts|assets|plugins|uploads)/.*\.(eot|ttf|woff|woff2|ico|otf)$".extraConfig = cache_1y + ''
+                add_header Access-Control-Allow-Origin *;
+              '';
+              "/srv/status" = proxy {
+                extraConfig = ''
+                  access_log off;
+                  log_not_found off;
+                '';
+              };
+              "~ ^/javascripts/".extraConfig = cache_1d;
+              "~ ^/assets/(?<asset_path>.+)$".extraConfig = cache_1y + ''
+                # asset pipeline enables this
+                brotli_static on;
+                gzip_static on;
+              '';
+              "~ ^/plugins/".extraConfig = cache_1y;
+              "~ /images/emoji/".extraConfig = cache_1y;
+              "~ ^/uploads/" = proxy {
+                extraConfig = cache_1y + ''
+                  proxy_set_header X-Sendfile-Type X-Accel-Redirect;
+                  proxy_set_header X-Accel-Mapping /run/discourse/public/=/downloads/;
+
+                  # custom CSS
+                  location ~ /stylesheet-cache/ {
+                      try_files $uri =404;
+                  }
+                  # this allows us to bypass rails
+                  location ~* \.(gif|png|jpg|jpeg|bmp|tif|tiff|ico|webp)$ {
+                      try_files $uri =404;
+                  }
+                  # SVG needs an extra header attached
+                  location ~* \.(svg)$ {
+                  }
+                  # thumbnails & optimized images
+                  location ~ /_?optimized/ {
+                      try_files $uri =404;
+                  }
+                '';
+              };
+              "~ ^/admin/backups/" = proxy {
+                extraConfig = ''
+                  proxy_set_header X-Sendfile-Type X-Accel-Redirect;
+                  proxy_set_header X-Accel-Mapping /run/discourse/public/=/downloads/;
+                '';
+              };
+              "~ ^/(svg-sprite/|letter_avatar/|letter_avatar_proxy/|user_avatar|highlight-js|stylesheets|theme-javascripts|favicon/proxied|service-worker)" = proxy {
+                extraConfig = ''
+                  # if Set-Cookie is in the response nothing gets cached
+                  # this is double bad cause we are not passing last modified in
+                  proxy_ignore_headers "Set-Cookie";
+                  proxy_hide_header "Set-Cookie";
+                  proxy_hide_header "X-Discourse-Username";
+                  proxy_hide_header "X-Runtime";
+
+                  # note x-accel-redirect can not be used with proxy_cache
+                  proxy_cache discourse;
+                  proxy_cache_key "$scheme,$host,$request_uri";
+                  proxy_cache_valid 200 301 302 7d;
+                  proxy_cache_valid any 1m;
+                '';
+              };
+              "/message-bus/" = proxy {
+                extraConfig = ''
+                  proxy_http_version 1.1;
+                  proxy_buffering off;
+                '';
+              };
+              "/downloads/".extraConfig = ''
+                internal;
+                alias /run/discourse/public/;
+              '';
+            };
+      };
+    };
+
+    systemd.services.discourse-mail-receiver-setup = lib.mkIf cfg.mail.incoming.enable (
+      let
+        mail-receiver-environment = {
+          MAIL_DOMAIN = cfg.hostname;
+          DISCOURSE_BASE_URL = "http${lib.optionalString tlsEnabled "s"}://${cfg.hostname}";
+          DISCOURSE_API_KEY = "@api-key@";
+          DISCOURSE_API_USERNAME = "system";
+        };
+        mail-receiver-json = json.generate "mail-receiver.json" mail-receiver-environment;
+      in
+        {
+          before = [ "postfix.service" ];
+          after = [ "discourse.service" ];
+          wantedBy = [ "discourse.service" ];
+          partOf = [ "discourse.service" ];
+          path = [
+            cfg.package.rake
+            pkgs.jq
+          ];
+          preStart = lib.optionalString (cfg.mail.incoming.apiKeyFile == null) ''
+            set -o errexit -o pipefail -o nounset -o errtrace
+            shopt -s inherit_errexit
+
+            if [[ ! -e /var/lib/discourse-mail-receiver/api_key ]]; then
+                discourse-rake api_key:create_master[email-receiver] >/var/lib/discourse-mail-receiver/api_key
+            fi
+          '';
+          script =
+            let
+              apiKeyPath =
+                if cfg.mail.incoming.apiKeyFile == null then
+                  "/var/lib/discourse-mail-receiver/api_key"
+                else
+                  cfg.mail.incoming.apiKeyFile;
+            in ''
+              set -o errexit -o pipefail -o nounset -o errtrace
+              shopt -s inherit_errexit
+
+              export api_key=$(<'${apiKeyPath}')
+
+              jq <${mail-receiver-json} \
+                 '.DISCOURSE_API_KEY = $ENV.api_key' \
+                 >'/run/discourse-mail-receiver/mail-receiver-environment.json'
+            '';
+
+          serviceConfig = {
+            Type = "oneshot";
+            RemainAfterExit = true;
+            RuntimeDirectory = "discourse-mail-receiver";
+            RuntimeDirectoryMode = "0700";
+            StateDirectory = "discourse-mail-receiver";
+            User = "discourse";
+            Group = "discourse";
+          };
+        });
+
+    services.discourse.siteSettings = {
+      required = {
+        notification_email = cfg.mail.notificationEmailAddress;
+        contact_email = cfg.mail.contactEmailAddress;
+      };
+      email = {
+        manual_polling_enabled = cfg.mail.incoming.enable;
+        reply_by_email_enabled = cfg.mail.incoming.enable;
+        reply_by_email_address = cfg.mail.incoming.replyEmailAddress;
+      };
+    };
+
+    services.postfix = lib.mkIf cfg.mail.incoming.enable {
+      enable = true;
+      sslCert = if cfg.sslCertificate != null then cfg.sslCertificate else "";
+      sslKey = if cfg.sslCertificateKey != null then cfg.sslCertificateKey else "";
+
+      origin = cfg.hostname;
+      relayDomains = [ cfg.hostname ];
+      config = {
+        smtpd_recipient_restrictions = "check_policy_service unix:private/discourse-policy";
+        append_dot_mydomain = lib.mkDefault false;
+        compatibility_level = "2";
+        smtputf8_enable = false;
+        smtpd_banner = lib.mkDefault "ESMTP server";
+        myhostname = lib.mkDefault cfg.hostname;
+        mydestination = lib.mkDefault "localhost";
+      };
+      transport = ''
+        ${cfg.hostname} discourse-mail-receiver:
+      '';
+      masterConfig = {
+        "discourse-mail-receiver" = {
+          type = "unix";
+          privileged = true;
+          chroot = false;
+          command = "pipe";
+          args = [
+            "user=discourse"
+            "argv=${cfg.mail.incoming.mailReceiverPackage}/bin/receive-mail"
+            "\${recipient}"
+          ];
+        };
+        "discourse-policy" = {
+          type = "unix";
+          privileged = true;
+          chroot = false;
+          command = "spawn";
+          args = [
+            "user=discourse"
+            "argv=${cfg.mail.incoming.mailReceiverPackage}/bin/discourse-smtp-fast-rejection"
+          ];
+        };
+      };
+    };
+
+    users.users = {
+      discourse = {
+        group = "discourse";
+        isSystemUser = true;
+      };
+    } // (lib.optionalAttrs cfg.nginx.enable {
+      ${config.services.nginx.user}.extraGroups = [ "discourse" ];
+    });
+
+    users.groups = {
+      discourse = {};
+    };
+
+    environment.systemPackages = [
+      cfg.package.rake
+    ];
+  };
+
+  meta.doc = ./discourse.xml;
+  meta.maintainers = [ lib.maintainers.talyz ];
+}
diff --git a/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.xml b/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.xml
new file mode 100644
index 0000000000..bae5624232
--- /dev/null
+++ b/third_party/nixpkgs/nixos/modules/services/web-apps/discourse.xml
@@ -0,0 +1,323 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="module-services-discourse">
+ <title>Discourse</title>
+ <para>
+   <link xlink:href="https://www.discourse.org/">Discourse</link> is a
+   modern and open source discussion platform.
+ </para>
+
+ <section xml:id="module-services-discourse-basic-usage">
+   <title>Basic usage</title>
+   <para>
+     A minimal configuration using Let's Encrypt for TLS certificates looks like this:
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  <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.acceptTerms">security.acme.acceptTerms</link> = true;
+</programlisting>
+   </para>
+
+   <para>
+     Provided a proper DNS setup, you'll be able to connect to the
+     instance at <literal>discourse.example.com</literal> and log in
+     using the credentials provided in
+     <literal>services.discourse.admin</literal>.
+   </para>
+ </section>
+
+ <section xml:id="module-services-discourse-tls">
+   <title>Using a regular TLS certificate</title>
+   <para>
+     To set up TLS using a regular certificate and key on file, use
+     the <xref linkend="opt-services.discourse.sslCertificate" />
+     and <xref linkend="opt-services.discourse.sslCertificateKey" />
+     options:
+
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  <link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
+  <link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+</programlisting>
+
+   </para>
+ </section>
+
+ <section xml:id="module-services-discourse-database">
+   <title>Database access</title>
+   <para>
+     <productname>Discourse</productname> uses
+     <productname>PostgreSQL</productname> to store most of its
+     data. A database will automatically be enabled and a database
+     and role created unless <xref
+     linkend="opt-services.discourse.database.host" /> is changed from
+     its default of <literal>null</literal> or <xref
+     linkend="opt-services.discourse.database.createLocally" /> is set
+     to <literal>false</literal>.
+   </para>
+
+   <para>
+     External database access can also be configured by setting
+     <xref linkend="opt-services.discourse.database.host" />, <xref
+     linkend="opt-services.discourse.database.username" /> and <xref
+     linkend="opt-services.discourse.database.passwordFile" /> as
+     appropriate. Note that you need to manually create a database
+     called <literal>discourse</literal> (or the name you chose in
+     <xref linkend="opt-services.discourse.database.name" />) and
+     allow the configured database user full access to it.
+   </para>
+ </section>
+
+ <section xml:id="module-services-discourse-mail">
+   <title>Email</title>
+   <para>
+     In addition to the basic setup, you'll want to configure an SMTP
+     server <productname>Discourse</productname> can use to send user
+     registration and password reset emails, among others. You can
+     also optionally let <productname>Discourse</productname> receive
+     email, which enables people to reply to threads and conversations
+     via email.
+   </para>
+
+   <para>
+     A basic setup which assumes you want to use your configured <link
+     linkend="opt-services.discourse.hostname">hostname</link> as
+     email domain can be done like this:
+
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  <link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
+  <link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  mail.outgoing = {
+    <link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
+    <link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
+  };
+  <link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+</programlisting>
+
+     This assumes you have set up an MX record for the address you've
+     set in <link linkend="opt-services.discourse.hostname">hostname</link> and
+     requires proper SPF, DKIM and DMARC configuration to be done for
+     the domain you're sending from, in order for email to be reliably delivered.
+   </para>
+
+   <para>
+     If you want to use a different domain for your outgoing email
+     (for example <literal>example.com</literal> instead of
+     <literal>discourse.example.com</literal>) you should set
+     <xref linkend="opt-services.discourse.mail.notificationEmailAddress" /> and
+     <xref linkend="opt-services.discourse.mail.contactEmailAddress" /> manually.
+   </para>
+
+   <note>
+     <para>
+       Setup of TLS for incoming email is currently only configured
+       automatically when a regular TLS certificate is used, i.e. when
+       <xref linkend="opt-services.discourse.sslCertificate" /> and
+       <xref linkend="opt-services.discourse.sslCertificateKey" /> are
+       set.
+     </para>
+   </note>
+
+ </section>
+
+ <section xml:id="module-services-discourse-settings">
+   <title>Additional settings</title>
+   <para>
+     Additional site settings and backend settings, for which no
+     explicit <productname>NixOS</productname> options are provided,
+     can be set in <xref linkend="opt-services.discourse.siteSettings" /> and
+     <xref linkend="opt-services.discourse.backendSettings" /> respectively.
+   </para>
+
+   <section xml:id="module-services-discourse-site-settings">
+     <title>Site settings</title>
+     <para>
+       <quote>Site settings</quote> are the settings that can be
+       changed through the <productname>Discourse</productname>
+       UI. Their <emphasis>default</emphasis> values can be set using
+       <xref linkend="opt-services.discourse.siteSettings" />.
+     </para>
+
+     <para>
+       Settings are expressed as a Nix attribute set which matches the
+       structure of the configuration in
+       <link xlink:href="https://github.com/discourse/discourse/blob/master/config/site_settings.yml">config/site_settings.yml</link>.
+       To find a setting's path, you only need to care about the first
+       two levels; i.e. its category (e.g. <literal>login</literal>)
+       and name (e.g. <literal>invite_only</literal>).
+     </para>
+
+     <para>
+       Settings 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.
+     </para>
+   </section>
+
+   <section xml:id="module-services-discourse-backend-settings">
+     <title>Backend settings</title>
+     <para>
+       Settings are expressed as a Nix attribute set which matches the
+       structure of the configuration in
+       <link xlink:href="https://github.com/discourse/discourse/blob/stable/config/discourse_defaults.conf">config/discourse.conf</link>.
+       Empty parameters can be defined by setting them to
+       <literal>null</literal>.
+     </para>
+   </section>
+
+   <section xml:id="module-services-discourse-settings-example">
+     <title>Example</title>
+     <para>
+       The following example sets the title and description of the
+       <productname>Discourse</productname> instance and enables
+       <productname>GitHub</productname> login in the site settings,
+       and changes a few request limits in the backend settings:
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  <link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
+  <link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  mail.outgoing = {
+    <link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
+    <link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
+  };
+  <link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
+  <link linkend="opt-services.discourse.siteSettings">siteSettings</link> = {
+    required = {
+      title = "My Cats";
+      site_description = "Discuss My Cats (and be nice plz)";
+    };
+    login = {
+      enable_github_logins = true;
+      github_client_id = "a2f6dfe838cb3206ce20";
+      github_client_secret._secret = /run/keys/discourse_github_client_secret;
+    };
+  };
+  <link linkend="opt-services.discourse.backendSettings">backendSettings</link> = {
+    max_reqs_per_ip_per_minute = 300;
+    max_reqs_per_ip_per_10_seconds = 60;
+    max_asset_reqs_per_ip_per_10_seconds = 250;
+    max_reqs_per_ip_mode = "warn+block";
+  };
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+</programlisting>
+     </para>
+     <para>
+       In the resulting site settings file, the
+       <literal>login.github_client_secret</literal> key will be set
+       to the contents of the
+       <filename>/run/keys/discourse_github_client_secret</filename>
+       file.
+     </para>
+   </section>
+ </section>
+  <section xml:id="module-services-discourse-plugins">
+    <title>Plugins</title>
+    <para>
+      You can install <productname>Discourse</productname> plugins
+      using the <xref linkend="opt-services.discourse.plugins" />
+      option. As long as a plugin supports the standard install
+      method, packaging it should only require fetching its source
+      with an appropriate fetcher.
+    </para>
+
+    <para>
+      Some plugins provide <link
+      linkend="module-services-discourse-site-settings">site
+      settings</link>. Their defaults can be configured using <xref
+      linkend="opt-services.discourse.siteSettings" />, just like
+      regular site settings. To find the names of these settings, look
+      in the <literal>config/settings.yml</literal> file of the plugin
+      repo.
+    </para>
+
+    <para>
+      For example, to add the <link
+      xlink:href="https://github.com/discourse/discourse-spoiler-alert">discourse-spoiler-alert</link>
+      plugin and disable it by default:
+
+<programlisting>
+services.discourse = {
+  <link linkend="opt-services.discourse.enable">enable</link> = true;
+  <link linkend="opt-services.discourse.hostname">hostname</link> = "discourse.example.com";
+  <link linkend="opt-services.discourse.sslCertificate">sslCertificate</link> = "/path/to/ssl_certificate";
+  <link linkend="opt-services.discourse.sslCertificateKey">sslCertificateKey</link> = "/path/to/ssl_certificate_key";
+  admin = {
+    <link linkend="opt-services.discourse.admin.email">email</link> = "admin@example.com";
+    <link linkend="opt-services.discourse.admin.username">username</link> = "admin";
+    <link linkend="opt-services.discourse.admin.fullName">fullName</link> = "Administrator";
+    <link linkend="opt-services.discourse.admin.passwordFile">passwordFile</link> = "/path/to/password_file";
+  };
+  mail.outgoing = {
+    <link linkend="opt-services.discourse.mail.outgoing.serverAddress">serverAddress</link> = "smtp.emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.port">port</link> = 587;
+    <link linkend="opt-services.discourse.mail.outgoing.username">username</link> = "user@emailprovider.com";
+    <link linkend="opt-services.discourse.mail.outgoing.passwordFile">passwordFile</link> = "/path/to/smtp_password_file";
+  };
+  <link linkend="opt-services.discourse.mail.incoming.enable">mail.incoming.enable</link> = true;
+  <link linkend="opt-services.discourse.mail.incoming.enable">plugins</link> = [
+    (pkgs.fetchFromGitHub {
+      owner = "discourse";
+      repo = "discourse-spoiler-alert";
+      rev = "e200cfa571d252cab63f3d30d619b370986e4cee";
+      sha256 = "0ya69ix5g77wz4c9x9gmng6l25ghb5xxlx3icr6jam16q14dzc33";
+    })
+  ];
+  <link linkend="opt-services.discourse.siteSettings">siteSettings</link> = {
+    plugins = {
+      spoiler_enabled = false;
+    };
+  };
+  <link linkend="opt-services.discourse.secretKeyBaseFile">secretKeyBaseFile</link> = "/path/to/secret_key_base_file";
+};
+</programlisting>
+
+    </para>
+  </section>
+</chapter>
diff --git a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
index f011b52723..52fcce6d17 100644
--- a/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
+++ b/third_party/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
@@ -397,6 +397,9 @@ in
         default = pkgs.nginxStable;
         defaultText = "pkgs.nginxStable";
         type = types.package;
+        apply = p: p.override {
+          modules = p.modules ++ cfg.additionalModules;
+        };
         description = "
           Nginx package to use. This defaults to the stable version. Note
           that the nginx team recommends to use the mainline version which
@@ -404,6 +407,17 @@ in
         ";
       };
 
+      additionalModules = mkOption {
+        default = [];
+        type = types.listOf (types.attrsOf types.anything);
+        example = literalExample "[ pkgs.nginxModules.brotli ]";
+        description = ''
+          Additional <link xlink:href="https://www.nginx.com/resources/wiki/modules/">third-party nginx modules</link>
+          to install. Packaged modules are available in
+          <literal>pkgs.nginxModules</literal>.
+        '';
+      };
+
       logError = mkOption {
         default = "stderr";
         type = types.str;
diff --git a/third_party/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix b/third_party/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix
index e59bc7b667..b35fb0b57c 100644
--- a/third_party/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix
+++ b/third_party/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix
@@ -55,7 +55,7 @@ in
     # The shared libraries are required for DNS resolution
     boot.initrd.extraUtilsCommands = ''
       copy_bin_and_libs ${pkgs.openvpn}/bin/openvpn
-      copy_bin_and_libs ${pkgs.iproute}/bin/ip
+      copy_bin_and_libs ${pkgs.iproute2}/bin/ip
 
       cp -pv ${pkgs.glibc}/lib/libresolv.so.2 $out/lib
       cp -pv ${pkgs.glibc}/lib/libnss_dns.so.2 $out/lib
diff --git a/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix b/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
index b5d9784965..f501f85b2a 100644
--- a/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
+++ b/third_party/nixpkgs/nixos/modules/tasks/network-interfaces.nix
@@ -1144,7 +1144,7 @@ in
 
     environment.systemPackages =
       [ pkgs.host
-        pkgs.iproute
+        pkgs.iproute2
         pkgs.iputils
         pkgs.nettools
       ]
diff --git a/third_party/nixpkgs/nixos/tests/all-tests.nix b/third_party/nixpkgs/nixos/tests/all-tests.nix
index 62188ddf9e..58b2ba7fa5 100644
--- a/third_party/nixpkgs/nixos/tests/all-tests.nix
+++ b/third_party/nixpkgs/nixos/tests/all-tests.nix
@@ -88,6 +88,7 @@ in
   croc = handleTest ./croc.nix {};
   deluge = handleTest ./deluge.nix {};
   dhparams = handleTest ./dhparams.nix {};
+  discourse = handleTest ./discourse.nix {};
   dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
   dnscrypt-wrapper = handleTestOn ["x86_64-linux"] ./dnscrypt-wrapper {};
   doas = handleTest ./doas.nix {};
@@ -193,9 +194,7 @@ in
   keepalived = handleTest ./keepalived.nix {};
   keepassxc = handleTest ./keepassxc.nix {};
   kerberos = handleTest ./kerberos/default.nix {};
-  kernel-latest = handleTest ./kernel-latest.nix {};
-  kernel-lts = handleTest ./kernel-lts.nix {};
-  kernel-testing = handleTest ./kernel-testing.nix {};
+  kernel-generic = handleTest ./kernel-generic.nix {};
   kernel-latest-ath-user-regd = handleTest ./kernel-latest-ath-user-regd.nix {};
   keycloak = discoverTests (import ./keycloak.nix);
   keymap = handleTest ./keymap.nix {};
diff --git a/third_party/nixpkgs/nixos/tests/discourse.nix b/third_party/nixpkgs/nixos/tests/discourse.nix
new file mode 100644
index 0000000000..3c965550fe
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/discourse.nix
@@ -0,0 +1,197 @@
+# This tests Discourse by:
+#  1. logging in as the admin user
+#  2. sending a private message to the admin user through the API
+#  3. replying to that message via email.
+
+import ./make-test-python.nix (
+  { pkgs, lib, ... }:
+  let
+    certs = import ./common/acme/server/snakeoil-certs.nix;
+    clientDomain = "client.fake.domain";
+    discourseDomain = certs.domain;
+    adminPassword = "eYAX85qmMJ5GZIHLaXGDAoszD7HSZp5d";
+    secretKeyBase = "381f4ac6d8f5e49d804dae72aa9c046431d2f34c656a705c41cd52fed9b4f6f76f51549f0b55db3b8b0dded7a00d6a381ebe9a4367d2d44f5e743af6628b4d42";
+    admin = {
+      email = "alice@${clientDomain}";
+      username = "alice";
+      fullName = "Alice Admin";
+      passwordFile = "${pkgs.writeText "admin-pass" adminPassword}";
+    };
+  in
+  {
+    name = "discourse";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ talyz ];
+    };
+
+    nodes.discourse =
+      { nodes, ... }:
+      {
+        virtualisation.memorySize = 2048;
+
+        imports = [ common/user-account.nix ];
+
+        security.pki.certificateFiles = [
+          certs.ca.cert
+        ];
+
+        networking.extraHosts = ''
+          127.0.0.1 ${discourseDomain}
+          ${nodes.client.config.networking.primaryIPAddress} ${clientDomain}
+        '';
+
+        services.postfix = {
+          enableSubmission = true;
+          enableSubmissions = true;
+          submissionsOptions = {
+            smtpd_sasl_auth_enable = "yes";
+            smtpd_client_restrictions = "permit";
+          };
+        };
+
+        environment.systemPackages = [ pkgs.jq ];
+
+        services.discourse = {
+          enable = true;
+          inherit admin;
+          hostname = discourseDomain;
+          sslCertificate = "${certs.${discourseDomain}.cert}";
+          sslCertificateKey = "${certs.${discourseDomain}.key}";
+          secretKeyBaseFile = "${pkgs.writeText "secret-key-base" secretKeyBase}";
+          enableACME = false;
+          mail.outgoing.serverAddress = clientDomain;
+          mail.incoming.enable = true;
+          siteSettings = {
+            posting = {
+              min_post_length = 5;
+              min_first_post_length = 5;
+              min_personal_message_post_length = 5;
+            };
+          };
+          unicornTimeout = 900;
+        };
+
+        networking.firewall.allowedTCPPorts = [ 25 465 ];
+      };
+
+    nodes.client =
+      { nodes, ... }:
+      {
+        imports = [ common/user-account.nix ];
+
+        security.pki.certificateFiles = [
+          certs.ca.cert
+        ];
+
+        networking.extraHosts = ''
+          127.0.0.1 ${clientDomain}
+          ${nodes.discourse.config.networking.primaryIPAddress} ${discourseDomain}
+        '';
+
+        services.dovecot2 = {
+          enable = true;
+          protocols = [ "imap" ];
+          modules = [ pkgs.dovecot_pigeonhole ];
+        };
+
+        services.postfix = {
+          enable = true;
+          origin = clientDomain;
+          relayDomains = [ clientDomain ];
+          config = {
+            compatibility_level = "2";
+            smtpd_banner = "ESMTP server";
+            myhostname = clientDomain;
+            mydestination = clientDomain;
+          };
+        };
+
+        environment.systemPackages =
+          let
+            replyToEmail = pkgs.writeScriptBin "reply-to-email" ''
+              #!${pkgs.python3.interpreter}
+              import imaplib
+              import smtplib
+              import ssl
+              import email.header
+              from email import message_from_bytes
+              from email.message import EmailMessage
+
+              with imaplib.IMAP4('localhost') as imap:
+                  imap.login('alice', 'foobar')
+                  imap.select()
+                  status, data = imap.search(None, 'ALL')
+                  assert status == 'OK'
+
+                  nums = data[0].split()
+                  assert len(nums) == 1
+
+                  status, msg_data = imap.fetch(nums[0], '(RFC822)')
+                  assert status == 'OK'
+
+              msg = email.message_from_bytes(msg_data[0][1])
+              subject = str(email.header.make_header(email.header.decode_header(msg['Subject'])))
+              reply_to = email.header.decode_header(msg['Reply-To'])[0][0]
+              message_id = email.header.decode_header(msg['Message-ID'])[0][0]
+              date = email.header.decode_header(msg['Date'])[0][0]
+
+              ctx = ssl.create_default_context()
+              with smtplib.SMTP_SSL(host='${discourseDomain}', context=ctx) as smtp:
+                  reply = EmailMessage()
+                  reply['Subject'] = 'Re: ' + subject
+                  reply['To'] = reply_to
+                  reply['From'] = 'alice@${clientDomain}'
+                  reply['In-Reply-To'] = message_id
+                  reply['References'] = message_id
+                  reply['Date'] = date
+                  reply.set_content("Test reply.")
+
+                  smtp.send_message(reply)
+                  smtp.quit()
+            '';
+          in
+            [ replyToEmail ];
+
+        networking.firewall.allowedTCPPorts = [ 25 ];
+      };
+
+
+    testScript = { nodes }:
+      let
+        request = builtins.toJSON {
+          title = "Private message";
+          raw = "This is a test message.";
+          target_usernames = admin.username;
+          archetype = "private_message";
+        };
+      in ''
+        discourse.start()
+        client.start()
+
+        discourse.wait_for_unit("discourse.service")
+        discourse.wait_for_file("/run/discourse/sockets/unicorn.sock")
+        discourse.wait_until_succeeds("curl -sS -f https://${discourseDomain}")
+        discourse.succeed(
+            "curl -sS -f https://${discourseDomain}/session/csrf -c cookie -b cookie -H 'Accept: application/json' | jq -r '\"X-CSRF-Token: \" + .csrf' > csrf_token",
+            "curl -sS -f https://${discourseDomain}/session -c cookie -b cookie -H @csrf_token -H 'Accept: application/json' -d 'login=${nodes.discourse.config.services.discourse.admin.username}' -d \"password=${adminPassword}\" | jq -e '.user.username == \"${nodes.discourse.config.services.discourse.admin.username}\"'",
+            "curl -sS -f https://${discourseDomain}/login -v -H 'Accept: application/json' -c cookie -b cookie 2>&1 | grep ${nodes.discourse.config.services.discourse.admin.username}",
+        )
+
+        client.wait_for_unit("postfix.service")
+        client.wait_for_unit("dovecot2.service")
+
+        discourse.succeed(
+            "sudo -u discourse discourse-rake api_key:create_master[master] >api_key",
+            'curl -sS -f https://${discourseDomain}/posts -X POST -H "Content-Type: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" -d \'${request}\' ',
+        )
+
+        client.wait_until_succeeds("reply-to-email")
+
+        discourse.wait_until_succeeds(
+            'curl -sS -f https://${discourseDomain}/topics/private-messages/system -H "Accept: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" | jq -e \'if .topic_list.topics[0].id != null then .topic_list.topics[0].id else null end\' >topic_id'
+        )
+        discourse.succeed(
+            'curl -sS -f https://${discourseDomain}/t/$(<topic_id) -H "Accept: application/json" -H "Api-Key: $(<api_key)" -H "Api-Username: system" | jq -e \'if .post_stream.posts[1].cooked == "<p>Test reply.</p>" then true else null end\' '
+        )
+      '';
+  })
diff --git a/third_party/nixpkgs/nixos/tests/docker-tools.nix b/third_party/nixpkgs/nixos/tests/docker-tools.nix
index a0e81b613c..80d527b453 100644
--- a/third_party/nixpkgs/nixos/tests/docker-tools.nix
+++ b/third_party/nixpkgs/nixos/tests/docker-tools.nix
@@ -313,5 +313,13 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         docker.succeed(
             "docker images --format '{{.Repository}}' | grep -F '${examples.prefixedLayeredImage.imageName}'"
         )
+
+    with subtest("buildLayeredImage supports running chown with fakeRootCommands"):
+        docker.succeed(
+            "docker load --input='${examples.layeredImageWithFakeRootCommands}'"
+        )
+        docker.succeed(
+            "docker run --rm ${examples.layeredImageWithFakeRootCommands.imageName} sh -c 'stat -c '%u' /home/jane | grep -E ^1000$'"
+        )
   '';
 })
diff --git a/third_party/nixpkgs/nixos/tests/kernel-generic.nix b/third_party/nixpkgs/nixos/tests/kernel-generic.nix
new file mode 100644
index 0000000000..fbead1dc23
--- /dev/null
+++ b/third_party/nixpkgs/nixos/tests/kernel-generic.nix
@@ -0,0 +1,37 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+with pkgs.lib;
+
+let
+  makeKernelTest = version: linuxPackages: (import ./make-test-python.nix ({ pkgs, ... }: {
+    name = "kernel-${version}";
+    meta = with pkgs.lib.maintainers; {
+      maintainers = [ nequissimus ];
+    };
+
+    machine = { ... }:
+      {
+        boot.kernelPackages = linuxPackages;
+      };
+
+    testScript =
+      ''
+        assert "Linux" in machine.succeed("uname -s")
+        assert "${linuxPackages.kernel.modDirVersion}" in machine.succeed("uname -a")
+      '';
+  }));
+in
+with pkgs; {
+  linux_4_4 = makeKernelTest "4.4" linuxPackages_4_4;
+  linux_4_9 = makeKernelTest "4.9" linuxPackages_4_9;
+  linux_4_14 = makeKernelTest "4.14" linuxPackages_4_14;
+  linux_4_19 = makeKernelTest "4.19" linuxPackages_4_19;
+  linux_5_4 = makeKernelTest "5.4" linuxPackages_5_4;
+  linux_5_10 = makeKernelTest "5.10" linuxPackages_5_10;
+  linux_5_11 = makeKernelTest "5.11" linuxPackages_5_11;
+
+  linux_testing = makeKernelTest "testing" linuxPackages_testing;
+}
diff --git a/third_party/nixpkgs/nixos/tests/kernel-latest.nix b/third_party/nixpkgs/nixos/tests/kernel-latest.nix
deleted file mode 100644
index 323dde267a..0000000000
--- a/third_party/nixpkgs/nixos/tests/kernel-latest.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "kernel-latest";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      boot.kernelPackages = pkgs.linuxPackages_latest;
-    };
-
-  testScript =
-    ''
-      assert "Linux" in machine.succeed("uname -s")
-      assert "${pkgs.linuxPackages_latest.kernel.version}" in machine.succeed("uname -a")
-    '';
-})
diff --git a/third_party/nixpkgs/nixos/tests/kernel-lts.nix b/third_party/nixpkgs/nixos/tests/kernel-lts.nix
deleted file mode 100644
index 9b03e9db6d..0000000000
--- a/third_party/nixpkgs/nixos/tests/kernel-lts.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "kernel-lts";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      boot.kernelPackages = pkgs.linuxPackages;
-    };
-
-  testScript =
-    ''
-      assert "Linux" in machine.succeed("uname -s")
-      assert "${pkgs.linuxPackages.kernel.version}" in machine.succeed("uname -a")
-    '';
-})
diff --git a/third_party/nixpkgs/nixos/tests/kernel-testing.nix b/third_party/nixpkgs/nixos/tests/kernel-testing.nix
deleted file mode 100644
index 017007c0ae..0000000000
--- a/third_party/nixpkgs/nixos/tests/kernel-testing.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ...} : {
-  name = "kernel-testing";
-  meta = with pkgs.lib.maintainers; {
-    maintainers = [ nequissimus ];
-  };
-
-  machine = { pkgs, ... }:
-    {
-      boot.kernelPackages = pkgs.linuxPackages_testing;
-    };
-
-  testScript =
-    ''
-      assert "Linux" in machine.succeed("uname -s")
-      assert "${pkgs.linuxPackages_testing.kernel.modDirVersion}" in machine.succeed("uname -a")
-    '';
-})
diff --git a/third_party/nixpkgs/nixos/tests/prometheus-exporters.nix b/third_party/nixpkgs/nixos/tests/prometheus-exporters.nix
index a43dca4fe1..62c0080dd5 100644
--- a/third_party/nixpkgs/nixos/tests/prometheus-exporters.nix
+++ b/third_party/nixpkgs/nixos/tests/prometheus-exporters.nix
@@ -136,6 +136,24 @@ let
       '';
     };
 
+    bitcoin = {
+      exporterConfig = {
+        enable = true;
+        rpcUser = "bitcoinrpc";
+        rpcPasswordFile = pkgs.writeText "password" "hunter2";
+      };
+      metricProvider = {
+        services.bitcoind.default.enable = true;
+        services.bitcoind.default.rpc.users.bitcoinrpc.passwordHMAC = "e8fe33f797e698ac258c16c8d7aadfbe$872bdb8f4d787367c26bcfd75e6c23c4f19d44a69f5d1ad329e5adf3f82710f7";
+      };
+      exporterTest = ''
+        wait_for_unit("prometheus-bitcoin-exporter.service")
+        wait_for_unit("bitcoind-default.service")
+        wait_for_open_port(9332)
+        succeed("curl -sSf http://localhost:9332/metrics | grep -q '^bitcoin_blocks '")
+      '';
+    };
+
     blackbox = {
       exporterConfig = {
         enable = true;
diff --git a/third_party/nixpkgs/nixos/tests/snapcast.nix b/third_party/nixpkgs/nixos/tests/snapcast.nix
index 2fef636251..ef35d586c9 100644
--- a/third_party/nixpkgs/nixos/tests/snapcast.nix
+++ b/third_party/nixpkgs/nixos/tests/snapcast.nix
@@ -34,6 +34,10 @@ in {
             type = "tcp";
             location = "127.0.0.1:${toString tcpStreamPort}";
           };
+          meta = {
+            type = "meta";
+            location = "/mpd/bluetooth/tcp";
+          };
         };
       };
     };
diff --git a/third_party/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix b/third_party/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
index 5831c8692f..94f17605e0 100644
--- a/third_party/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
+++ b/third_party/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
@@ -43,7 +43,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
       # Everyone on the "isp" machine will be able to add routes to the kernel.
       security.wrappers.add-dhcpd-lease = {
         source = pkgs.writeShellScript "add-dhcpd-lease" ''
-          exec ${pkgs.iproute}/bin/ip -6 route replace "$1" via "$2"
+          exec ${pkgs.iproute2}/bin/ip -6 route replace "$1" via "$2"
         '';
         capabilities = "cap_net_admin+ep";
       };
diff --git a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index fac816649c..28b5ef438e 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwig-studio";
-  version = "3.3.6";
+  version = "3.3.7";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/${pname}-${version}.deb";
-    sha256 = "sha256-k7L6CU2lY9192tfaWtVOxq9BCY7FZZdxmHT8EA+ZFsk=";
+    sha256 = "13jr45kzv0xjhhqk30qpq793349qyx8jpas4kl6i6bk3xfrd3fbz";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper wrapGAppsHook ];
diff --git a/third_party/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix b/third_party/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
index 2ebff030b4..8391a75099 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.44_fix";
+  version = "1.46";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "sha256-2HhG2cDzAvpSm655M1KQnjbfVvqqOZDz2ty7xnttskA=";
+    sha256 = "sha256-Y6FgIbNCsxnM/B2bEB7oufBjU1BnBYaz7/oysWttIOc=";
   };
 
   # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch b/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch
index 2b3366476d..f47c233d6a 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/cargo-lock.patch
@@ -1,25 +1,25 @@
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 0000000..45720a8
+index 0000000..f191345
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,2303 @@
+@@ -0,0 +1,2649 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
 +name = "addr2line"
-+version = "0.14.0"
++version = "0.14.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7c0929d69e78dd9bf5408269919fcbcaeb2e35e5d43e5815517cdc6a8e11a423"
++checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
 +dependencies = [
 + "gimli",
 +]
 +
 +[[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 = "aho-corasick"
@@ -31,10 +31,22 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
-+name = "alsa-sys"
-+version = "0.1.2"
++name = "alsa"
++version = "0.5.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58"
++checksum = "75c4da790adcb2ce5e758c064b4f3ec17a30349f9961d3e5e6c9688b052a9e18"
++dependencies = [
++ "alsa-sys",
++ "bitflags",
++ "libc",
++ "nix",
++]
++
++[[package]]
++name = "alsa-sys"
++version = "0.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527"
 +dependencies = [
 + "libc",
 + "pkg-config",
@@ -62,7 +74,7 @@ index 0000000..45720a8
 + "flate2",
 + "futures-core",
 + "memchr",
-+ "pin-project-lite 0.2.0",
++ "pin-project-lite 0.2.6",
 +]
 +
 +[[package]]
@@ -73,9 +85,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "backtrace"
-+version = "0.3.55"
++version = "0.3.56"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ef5140344c85b01f9bbb4d4b7288a8aa4b3287ccef913a14bcc78a1063623598"
++checksum = "9d117600f438b1707d4e4ae15d3595657288f8235a0eb593e80ecc98ab34e1bc"
 +dependencies = [
 + "addr2line",
 + "cfg-if 1.0.0",
@@ -141,15 +153,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "bumpalo"
-+version = "3.4.0"
++version = "3.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
++checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe"
 +
 +[[package]]
 +name = "byteorder"
-+version = "1.3.4"
++version = "1.4.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
 +
 +[[package]]
 +name = "bytes"
@@ -168,6 +180,12 @@ index 0000000..45720a8
 +checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
 +
 +[[package]]
++name = "bytes"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
++
++[[package]]
 +name = "cassowary"
 +version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -175,9 +193,18 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.66"
++version = "1.0.67"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48"
++checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd"
++dependencies = [
++ "jobserver",
++]
++
++[[package]]
++name = "cesu8"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
 +
 +[[package]]
 +name = "cexpr"
@@ -209,15 +236,15 @@ index 0000000..45720a8
 + "libc",
 + "num-integer",
 + "num-traits 0.2.14",
-+ "time 0.1.44",
++ "time 0.1.43",
 + "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "clang-sys"
-+version = "1.0.3"
++version = "1.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0659001ab56b791be01d4b729c44376edc6718cf389a502e579b77b758f3296c"
++checksum = "f54d78e30b388d4815220c8dd03fea5656b6c6d32adb59e89061552a102f8da1"
 +dependencies = [
 + "glob",
 + "libc",
@@ -231,6 +258,16 @@ index 0000000..45720a8
 +checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688"
 +
 +[[package]]
++name = "combine"
++version = "4.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cc4369b5e4c0cddf64ad8981c0111e7df4f7078f4d6ba98fb31f2e17c4c57b7e"
++dependencies = [
++ "bytes 1.0.1",
++ "memchr",
++]
++
++[[package]]
 +name = "config"
 +version = "0.9.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -239,18 +276,18 @@ index 0000000..45720a8
 + "lazy_static 1.4.0",
 + "nom 4.2.3",
 + "rust-ini",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde-hjson",
 + "serde_json",
-+ "toml",
++ "toml 0.4.10",
 + "yaml-rust",
 +]
 +
 +[[package]]
 +name = "const_fn"
-+version = "0.4.4"
++version = "0.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd51eab21ab4fd6a3bf889e2d0958c0a6e3a61ad04260325e919e652a2a62826"
++checksum = "076a6803b0dacd6a88cfe64deba628b01533ff5ef265687e6938280c1afd0a28"
 +
 +[[package]]
 +name = "constant_time_eq"
@@ -260,13 +297,13 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "cookie"
-+version = "0.14.3"
++version = "0.14.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "784ad0fbab4f3e9cef09f20e0aea6000ae08d2cb98ac4c0abc53df18803d702f"
++checksum = "03a5d7b21829bc7b4bf4754a978a241ae54ea55a40f92bb20216e54096f4b951"
 +dependencies = [
 + "percent-encoding",
-+ "time 0.2.23",
-+ "version_check 0.9.2",
++ "time 0.2.26",
++ "version_check 0.9.3",
 +]
 +
 +[[package]]
@@ -279,9 +316,9 @@ index 0000000..45720a8
 + "idna",
 + "log",
 + "publicsuffix",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_json",
-+ "time 0.2.23",
++ "time 0.2.26",
 + "url",
 +]
 +
@@ -309,9 +346,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "coreaudio-rs"
-+version = "0.9.1"
++version = "0.10.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491"
++checksum = "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88"
 +dependencies = [
 + "bitflags",
 + "coreaudio-sys",
@@ -328,18 +365,26 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "cpal"
-+version = "0.10.0"
++version = "0.13.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3ded070249be850b5b59e1e3a44a70b8ae395e0e5c65b487131d8909a8208120"
++checksum = "8351ddf2aaa3c583fa388029f8b3d26f3c7035a20911fdd5f2e2ed7ab57dad25"
 +dependencies = [
-+ "alsa-sys",
++ "alsa",
 + "core-foundation-sys 0.6.2",
 + "coreaudio-rs",
-+ "failure",
++ "jni",
++ "js-sys",
 + "lazy_static 1.4.0",
 + "libc",
-+ "num-traits 0.2.14",
++ "mach",
++ "ndk",
++ "ndk-glue",
++ "nix",
++ "oboe",
++ "parking_lot",
 + "stdweb 0.1.3",
++ "thiserror",
++ "web-sys",
 + "winapi 0.3.9",
 +]
 +
@@ -354,9 +399,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "crossbeam-utils"
-+version = "0.8.1"
++version = "0.8.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d"
++checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49"
 +dependencies = [
 + "autocfg",
 + "cfg-if 1.0.0",
@@ -364,6 +409,41 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "darling"
++version = "0.10.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858"
++dependencies = [
++ "darling_core",
++ "darling_macro",
++]
++
++[[package]]
++name = "darling_core"
++version = "0.10.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b"
++dependencies = [
++ "fnv",
++ "ident_case",
++ "proc-macro2",
++ "quote",
++ "strsim",
++ "syn",
++]
++
++[[package]]
++name = "darling_macro"
++version = "0.10.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72"
++dependencies = [
++ "darling_core",
++ "quote",
++ "syn",
++]
++
++[[package]]
 +name = "dbus"
 +version = "0.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -374,6 +454,17 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "derivative"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
 +name = "dirs"
 +version = "2.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -402,9 +493,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "dtoa"
-+version = "0.4.6"
++version = "0.4.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
++checksum = "56899898ce76aaf4a0f24d914c97ea6ed976d42fec6ad33fcbb0a1103e07b2b0"
 +
 +[[package]]
 +name = "either"
@@ -414,23 +505,14 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "encoding_rs"
-+version = "0.8.26"
++version = "0.8.28"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "801bbab217d7f79c0062f4f7205b5d4427c6d1a7bd7aafdd1475f7c59d62b283"
++checksum = "80df024fbc5ac80f87dfef0d9f5209a252f2a497f7f42944cff24d8253cac065"
 +dependencies = [
 + "cfg-if 1.0.0",
 +]
 +
 +[[package]]
-+name = "error-chain"
-+version = "0.12.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2d2f06b9cac1506ece98fe3231e3cc9c4410ec3d5b1f24ae1c8946f0742cdefc"
-+dependencies = [
-+ "version_check 0.9.2",
-+]
-+
-+[[package]]
 +name = "failure"
 +version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -454,9 +536,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "flate2"
-+version = "1.0.19"
++version = "1.0.20"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7411863d55df97a419aa64cb4d2f167103ea9d767e2c54a1868b7ac3f6b47129"
++checksum = "cd3aec53de10fe96d7d8c565eb17f2c687bb5518a2ec453b5b1252964526abe0"
 +dependencies = [
 + "cfg-if 1.0.0",
 + "crc32fast",
@@ -487,9 +569,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "form_urlencoded"
-+version = "1.0.0"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00"
++checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191"
 +dependencies = [
 + "matches",
 + "percent-encoding",
@@ -513,9 +595,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b3b0c040a1fe6529d30b3c5944b280c7f0dcb2930d2c3062bca967b602583d0"
++checksum = "7f55667319111d593ba876406af7c409c0ebb44dc4be6132a783ccf163ea14c1"
 +dependencies = [
 + "futures-channel",
 + "futures-core",
@@ -528,9 +610,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures-channel"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4b7109687aa4e177ef6fe84553af6280ef2778bdb7783ba44c9dc3399110fe64"
++checksum = "8c2dd2df839b57db9ab69c2c9d8f3e8c81984781937fe2807dc6dcf3b2ad2939"
 +dependencies = [
 + "futures-core",
 + "futures-sink",
@@ -538,15 +620,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures-core"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "847ce131b72ffb13b6109a221da9ad97a64cbe48feb1028356b836b47b8f1748"
++checksum = "15496a72fabf0e62bdc3df11a59a3787429221dd0710ba8ef163d6f7a9112c94"
 +
 +[[package]]
 +name = "futures-executor"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4caa2b2b68b880003057c1dd49f1ed937e38f22fcf6c212188a121f08cf40a65"
++checksum = "891a4b7b96d84d5940084b2a37632dd65deeae662c114ceaa2c879629c9c0ad1"
 +dependencies = [
 + "futures-core",
 + "futures-task",
@@ -555,15 +637,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures-io"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "611834ce18aaa1bd13c4b374f5d653e1027cf99b6b502584ff8c9a64413b30bb"
++checksum = "d71c2c65c57704c32f5241c1223167c2c3294fd34ac020c807ddbe6db287ba59"
 +
 +[[package]]
 +name = "futures-macro"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "77408a692f1f97bcc61dc001d752e00643408fbc922e4d634c655df50d595556"
++checksum = "ea405816a5139fb39af82c2beb921d52143f556038378d6db21183a5c37fbfb7"
 +dependencies = [
 + "proc-macro-hack",
 + "proc-macro2",
@@ -573,24 +655,21 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "futures-sink"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f878195a49cee50e006b02b93cf7e0a95a38ac7b776b4c4d9cc1207cd20fcb3d"
++checksum = "85754d98985841b7d4f5e8e6fbfa4a4ac847916893ec511a2917ccd8525b8bb3"
 +
 +[[package]]
 +name = "futures-task"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7c554eb5bf48b2426c4771ab68c6b14468b6e76cc90996f528c3338d761a4d0d"
-+dependencies = [
-+ "once_cell",
-+]
++checksum = "fa189ef211c15ee602667a6fcfe1c1fd9e07d42250d2156382820fba33c9df80"
 +
 +[[package]]
 +name = "futures-util"
-+version = "0.3.8"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d304cff4a7b99cfb7986f7d43fbe93d175e72e704a8860787cc95e9ffd85cbd2"
++checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1"
 +dependencies = [
 + "futures-channel",
 + "futures-core",
@@ -599,7 +678,7 @@ index 0000000..45720a8
 + "futures-sink",
 + "futures-task",
 + "memchr",
-+ "pin-project 1.0.2",
++ "pin-project-lite 0.2.6",
 + "pin-utils",
 + "proc-macro-hack",
 + "proc-macro-nested",
@@ -608,16 +687,27 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "getrandom"
-+version = "0.1.15"
++version = "0.1.16"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
++checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
 +dependencies = [
-+ "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
 + "libc",
 + "wasi 0.9.0+wasi-snapshot-preview1",
 +]
 +
 +[[package]]
++name = "getrandom"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8"
++dependencies = [
++ "cfg-if 1.0.0",
++ "libc",
++ "wasi 0.10.2+wasi-snapshot-preview1",
++]
++
++[[package]]
 +name = "gimli"
 +version = "0.23.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -657,18 +747,18 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "hermit-abi"
-+version = "0.1.17"
++version = "0.1.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8"
++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c"
 +dependencies = [
 + "libc",
 +]
 +
 +[[package]]
 +name = "hex"
-+version = "0.4.2"
++version = "0.4.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
++checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 +
 +[[package]]
 +name = "hound"
@@ -678,11 +768,11 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "http"
-+version = "0.2.2"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "84129d298a6d57d246960ff8eb831ca4af3f96d29e2e28848dae275408658e26"
++checksum = "7245cd7449cc792608c3c8a9eaf69bd4eabbabf802713748fd739c98b82f0747"
 +dependencies = [
-+ "bytes 0.5.6",
++ "bytes 1.0.1",
 + "fnv",
 + "itoa",
 +]
@@ -699,9 +789,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "httparse"
-+version = "1.3.4"
++version = "1.3.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
++checksum = "615caabe2c3160b313d52ccc905335f4ed5f10881dd63dc5699d47e90be85691"
 +
 +[[package]]
 +name = "httpdate"
@@ -711,9 +801,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "hyper"
-+version = "0.13.9"
++version = "0.13.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f6ad767baac13b44d4529fcf58ba2cd0995e36e7b435bc5b039de6f47e880dbf"
++checksum = "8a6f157065790a3ed2f88679250419b5cdd96e714a0d65f7797fd337186e96bb"
 +dependencies = [
 + "bytes 0.5.6",
 + "futures-channel",
@@ -725,7 +815,7 @@ index 0000000..45720a8
 + "httparse",
 + "httpdate",
 + "itoa",
-+ "pin-project 1.0.2",
++ "pin-project",
 + "socket2",
 + "tokio",
 + "tower-service",
@@ -747,10 +837,16 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
-+name = "idna"
-+version = "0.2.0"
++name = "ident_case"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
++checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
++
++[[package]]
++name = "idna"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "89829a5d69c23d348314a7ac337fe39173b61149a9864deabd260983aed48c21"
 +dependencies = [
 + "matches",
 + "unicode-bidi",
@@ -759,15 +855,24 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "indexmap"
-+version = "1.6.1"
++version = "1.6.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b"
++checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3"
 +dependencies = [
 + "autocfg",
 + "hashbrown",
 +]
 +
 +[[package]]
++name = "instant"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec"
++dependencies = [
++ "cfg-if 1.0.0",
++]
++
++[[package]]
 +name = "iovec"
 +version = "0.1.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -793,15 +898,44 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "itoa"
-+version = "0.4.6"
++version = "0.4.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
++
++[[package]]
++name = "jni"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "24967112a1e4301ca5342ea339763613a37592b8a6ce6cf2e4494537c7a42faf"
++dependencies = [
++ "cesu8",
++ "combine",
++ "jni-sys",
++ "log",
++ "thiserror",
++ "walkdir",
++]
++
++[[package]]
++name = "jni-sys"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
++
++[[package]]
++name = "jobserver"
++version = "0.1.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2"
++dependencies = [
++ "libc",
++]
 +
 +[[package]]
 +name = "js-sys"
-+version = "0.3.46"
++version = "0.3.50"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf3d7383929f7c9c7c2d0fa596f325832df98c3704f2c60553080f7127a58175"
++checksum = "2d99f9e3e84b8f67f846ef5b4cbbc3b1c29f6c759fcbce6f01aa0e73d932a24c"
 +dependencies = [
 + "wasm-bindgen",
 +]
@@ -836,20 +970,20 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "lewton"
-+version = "0.9.4"
++version = "0.10.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0"
++checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030"
 +dependencies = [
 + "byteorder",
 + "ogg",
-+ "smallvec",
++ "tinyvec",
 +]
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.81"
++version = "0.2.92"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb"
++checksum = "56d855069fafbb9b344c0f962150cd2c1187975cb1c22c1522c240d8c4986714"
 +
 +[[package]]
 +name = "libdbus-sys"
@@ -862,9 +996,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "libloading"
-+version = "0.6.6"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e9367bdfa836b7e3cf895867f7a570283444da90562980ec2263d6e1569b16bc"
++checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a"
 +dependencies = [
 + "cfg-if 1.0.0",
 + "winapi 0.3.9",
@@ -882,17 +1016,26 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "linked-hash-map"
-+version = "0.5.3"
++version = "0.5.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
++checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"
++
++[[package]]
++name = "lock_api"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312"
++dependencies = [
++ "scopeguard",
++]
 +
 +[[package]]
 +name = "log"
-+version = "0.4.11"
++version = "0.4.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
++checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"
 +dependencies = [
-+ "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
 +]
 +
 +[[package]]
@@ -920,12 +1063,6 @@ index 0000000..45720a8
 +checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
 +
 +[[package]]
-+name = "maybe-uninit"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-+
-+[[package]]
 +name = "memchr"
 +version = "2.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -949,12 +1086,13 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "minimp3"
-+version = "0.3.5"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dce0cff6a0bfd3f8b6b2350819bbddd63bc65cc45e53888bdd0ff49dde16d2d5"
++checksum = "985438f75febf74c392071a975a29641b420dd84431135a6e6db721de4b74372"
 +dependencies = [
 + "minimp3-sys",
 + "slice-deque",
++ "thiserror",
 +]
 +
 +[[package]]
@@ -968,9 +1106,9 @@ index 0000000..45720a8
 +
 +[[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",
@@ -1018,9 +1156,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "native-tls"
-+version = "0.2.6"
++version = "0.2.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6fcc7939b5edc4e4f86b1b4a04bb1498afaaf871b1a6691838ed06fcb48d3a3f"
++checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4"
 +dependencies = [
 + "lazy_static 1.4.0",
 + "libc",
@@ -1035,6 +1173,51 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "ndk"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8794322172319b972f528bf90c6b467be0079f1fa82780ffb431088e741a73ab"
++dependencies = [
++ "jni-sys",
++ "ndk-sys",
++ "num_enum",
++ "thiserror",
++]
++
++[[package]]
++name = "ndk-glue"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c5caf0c24d51ac1c905c27d4eda4fa0635bbe0de596b8f79235e0b17a4d29385"
++dependencies = [
++ "lazy_static 1.4.0",
++ "libc",
++ "log",
++ "ndk",
++ "ndk-macro",
++ "ndk-sys",
++]
++
++[[package]]
++name = "ndk-macro"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05d1c6307dc424d0f65b9b06e94f88248e6305726b14729fd67a5e47b2dc481d"
++dependencies = [
++ "darling",
++ "proc-macro-crate",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "ndk-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c44922cb3dbb1c70b5e5f443d63b64363a898564d739ba5198e3a9138442868d"
++
++[[package]]
 +name = "net2"
 +version = "0.2.37"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1047,7 +1230,7 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "netease_music_tui"
-+version = "0.1.1"
++version = "0.1.3"
 +dependencies = [
 + "base64 0.11.0",
 + "byteorder",
@@ -1065,11 +1248,11 @@ index 0000000..45720a8
 + "mp3-duration",
 + "num-bigint",
 + "openssl",
-+ "rand",
++ "rand 0.7.3",
 + "regex",
 + "reqwest",
 + "rodio",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_derive",
 + "serde_json",
 + "serde_urlencoded 0.6.1",
@@ -1082,6 +1265,18 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "nix"
++version = "0.20.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa9b4819da1bc61c0ea48b63b7bc8604064dd43013e7cc325df098d49cd7c18a"
++dependencies = [
++ "bitflags",
++ "cc",
++ "cfg-if 1.0.0",
++ "libc",
++]
++
++[[package]]
 +name = "nom"
 +version = "4.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1098,7 +1293,7 @@ index 0000000..45720a8
 +checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
 +dependencies = [
 + "memchr",
-+ "version_check 0.9.2",
++ "version_check 0.9.3",
 +]
 +
 +[[package]]
@@ -1113,6 +1308,17 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "num-derive"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
 +name = "num-integer"
 +version = "0.1.44"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1151,6 +1357,28 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "num_enum"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "226b45a5c2ac4dd696ed30fa6b94b057ad909c7b7fc2e0d0808192bced894066"
++dependencies = [
++ "derivative",
++ "num_enum_derive",
++]
++
++[[package]]
++name = "num_enum_derive"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1c0fd9eba1d5db0994a239e09c1be402d35622277e35468ba891aa5e3188ce7e"
++dependencies = [
++ "proc-macro-crate",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
 +name = "numtoa"
 +version = "0.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1158,36 +1386,59 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "object"
-+version = "0.22.0"
++version = "0.23.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
++checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
++
++[[package]]
++name = "oboe"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4cfb2390bddb9546c0f7448fd1d2abdd39e6075206f960991eb28c7fa7f126c4"
++dependencies = [
++ "jni",
++ "ndk",
++ "ndk-glue",
++ "num-derive",
++ "num-traits 0.2.14",
++ "oboe-sys",
++]
++
++[[package]]
++name = "oboe-sys"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fe069264d082fc820dfa172f79be3f2e088ecfece9b1c47b0c9fd838d2bef103"
++dependencies = [
++ "cc",
++]
 +
 +[[package]]
 +name = "ogg"
-+version = "0.7.1"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "13e571c3517af9e1729d4c63571a27edd660ade0667973bfc74a67c660c2b651"
++checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e"
 +dependencies = [
 + "byteorder",
 +]
 +
 +[[package]]
 +name = "once_cell"
-+version = "1.5.2"
++version = "1.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "13bd41f508810a131401606d54ac32a467c97172d74ba7662562ebba5ad07fa0"
++checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3"
 +
 +[[package]]
 +name = "openssl"
-+version = "0.10.32"
++version = "0.10.33"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "038d43985d1ddca7a9900630d8cd031b56e4794eecc2e9ea39dd17aa04399a70"
++checksum = "a61075b62a23fef5a29815de7536d940aa35ce96d18ce0cc5076272db678a577"
 +dependencies = [
 + "bitflags",
 + "cfg-if 1.0.0",
 + "foreign-types",
-+ "lazy_static 1.4.0",
 + "libc",
++ "once_cell",
 + "openssl-sys",
 +]
 +
@@ -1199,9 +1450,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "openssl-sys"
-+version = "0.9.60"
++version = "0.9.61"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "921fc71883267538946025deffb622905ecad223c28efbfdef9bb59a0175f3e6"
++checksum = "313752393519e876837e09e1fa183ddef0be7735868dced3196f4472d536277f"
 +dependencies = [
 + "autocfg",
 + "cc",
@@ -1211,6 +1462,31 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
++name = "parking_lot"
++version = "0.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb"
++dependencies = [
++ "instant",
++ "lock_api",
++ "parking_lot_core",
++]
++
++[[package]]
++name = "parking_lot_core"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018"
++dependencies = [
++ "cfg-if 1.0.0",
++ "instant",
++ "libc",
++ "redox_syscall 0.2.5",
++ "smallvec",
++ "winapi 0.3.9",
++]
++
++[[package]]
 +name = "peeking_take_while"
 +version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1224,38 +1500,18 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "pin-project"
-+version = "0.4.27"
++version = "1.0.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ffbc8e94b38ea3d2d8ba92aea2983b503cd75d0888d75b86bb37970b5698e15"
++checksum = "bc174859768806e91ae575187ada95c91a29e96a98dc5d2cd9a1fed039501ba6"
 +dependencies = [
-+ "pin-project-internal 0.4.27",
-+]
-+
-+[[package]]
-+name = "pin-project"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ccc2237c2c489783abd8c4c80e5450fc0e98644555b1364da68cc29aa151ca7"
-+dependencies = [
-+ "pin-project-internal 1.0.2",
++ "pin-project-internal",
 +]
 +
 +[[package]]
 +name = "pin-project-internal"
-+version = "0.4.27"
++version = "1.0.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "65ad2ae56b6abe3a1ee25f15ee605bacadb9a764edaba9c2bf4103800d4a1895"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "pin-project-internal"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8e8d2bf0b23038a4424865103a4df472855692821aab4e4f5c3312d461d9e5f"
++checksum = "a490329918e856ed1b083f244e3bfe2d8c4f336407e4ea9e1a9f479ff09049e5"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -1264,15 +1520,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "pin-project-lite"
-+version = "0.1.11"
++version = "0.1.12"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c917123afa01924fc84bb20c4c03f004d9c38e5127e3c039bbf7f4b9c76a2f6b"
++checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777"
 +
 +[[package]]
 +name = "pin-project-lite"
-+version = "0.2.0"
++version = "0.2.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6b063f57ec186e6140e2b8b6921e5f1bd89c7356dda5b33acc5401203ca6131c"
++checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905"
 +
 +[[package]]
 +name = "pin-utils"
@@ -1293,6 +1549,15 @@ index 0000000..45720a8
 +checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857"
 +
 +[[package]]
++name = "proc-macro-crate"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
++dependencies = [
++ "toml 0.5.8",
++]
++
++[[package]]
 +name = "proc-macro-hack"
 +version = "0.5.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1300,37 +1565,34 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "proc-macro-nested"
-+version = "0.1.6"
++version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
++checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086"
 +
 +[[package]]
 +name = "proc-macro2"
-+version = "1.0.24"
++version = "1.0.26"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
++checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec"
 +dependencies = [
 + "unicode-xid",
 +]
 +
 +[[package]]
 +name = "publicsuffix"
-+version = "1.5.4"
++version = "1.5.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b"
++checksum = "95b4ce31ff0a27d93c8de1849cf58162283752f065a90d508f1105fa6c9a213f"
 +dependencies = [
-+ "error-chain",
 + "idna",
-+ "lazy_static 1.4.0",
-+ "regex",
 + "url",
 +]
 +
 +[[package]]
 +name = "quote"
-+version = "1.0.8"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
++checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
 +dependencies = [
 + "proc-macro2",
 +]
@@ -1341,11 +1603,23 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 +dependencies = [
-+ "getrandom",
++ "getrandom 0.1.16",
 + "libc",
-+ "rand_chacha",
-+ "rand_core",
-+ "rand_hc",
++ "rand_chacha 0.2.2",
++ "rand_core 0.5.1",
++ "rand_hc 0.2.0",
++]
++
++[[package]]
++name = "rand"
++version = "0.8.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e"
++dependencies = [
++ "libc",
++ "rand_chacha 0.3.0",
++ "rand_core 0.6.2",
++ "rand_hc 0.3.0",
 +]
 +
 +[[package]]
@@ -1355,7 +1629,17 @@ index 0000000..45720a8
 +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
 +dependencies = [
 + "ppv-lite86",
-+ "rand_core",
++ "rand_core 0.5.1",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d"
++dependencies = [
++ "ppv-lite86",
++ "rand_core 0.6.2",
 +]
 +
 +[[package]]
@@ -1364,7 +1648,16 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
 +dependencies = [
-+ "getrandom",
++ "getrandom 0.1.16",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7"
++dependencies = [
++ "getrandom 0.2.2",
 +]
 +
 +[[package]]
@@ -1373,7 +1666,16 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
 +dependencies = [
-+ "rand_core",
++ "rand_core 0.5.1",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73"
++dependencies = [
++ "rand_core 0.6.2",
 +]
 +
 +[[package]]
@@ -1383,12 +1685,21 @@ index 0000000..45720a8
 +checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
 +
 +[[package]]
-+name = "redox_termios"
-+version = "0.1.1"
++name = "redox_syscall"
++version = "0.2.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7e891cfe48e9100a70a3b6eb652fef28920c117d366339687bd5576160db0f76"
++checksum = "94341e4e44e24f6b591b59e47a8a027df12e008d73fd5672dbea9cc22f4507d9"
 +dependencies = [
-+ "redox_syscall",
++ "bitflags",
++]
++
++[[package]]
++name = "redox_termios"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f"
++dependencies = [
++ "redox_syscall 0.2.5",
 +]
 +
 +[[package]]
@@ -1397,28 +1708,27 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "de0737333e7a9502c789a36d7c7fa6092a49895d4faa31ca5df163857ded2e9d"
 +dependencies = [
-+ "getrandom",
-+ "redox_syscall",
++ "getrandom 0.1.16",
++ "redox_syscall 0.1.57",
 + "rust-argon2",
 +]
 +
 +[[package]]
 +name = "regex"
-+version = "1.4.2"
++version = "1.4.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c"
++checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19"
 +dependencies = [
 + "aho-corasick",
 + "memchr",
 + "regex-syntax",
-+ "thread_local",
 +]
 +
 +[[package]]
 +name = "regex-syntax"
-+version = "0.6.21"
++version = "0.6.23"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189"
++checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548"
 +
 +[[package]]
 +name = "remove_dir_all"
@@ -1455,10 +1765,10 @@ index 0000000..45720a8
 + "mime_guess",
 + "native-tls",
 + "percent-encoding",
-+ "pin-project-lite 0.2.0",
-+ "serde 1.0.118",
++ "pin-project-lite 0.2.6",
++ "serde 1.0.125",
 + "serde_urlencoded 0.7.0",
-+ "time 0.2.23",
++ "time 0.2.26",
 + "tokio",
 + "tokio-socks",
 + "tokio-tls",
@@ -1471,14 +1781,13 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "rodio"
-+version = "0.10.0"
++version = "0.13.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e0e0dfa7c8b17c6428f6e992a22ea595922cc86f946191b6b59e7ce96b77262"
++checksum = "b65c2eda643191f6d1bb12ea323a9db8d9ba95374e9be3780b5a9fb5cfb8520f"
 +dependencies = [
 + "claxon",
 + "cpal",
 + "hound",
-+ "lazy_static 1.4.0",
 + "lewton",
 + "minimp3",
 +]
@@ -1529,6 +1838,15 @@ index 0000000..45720a8
 +checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
 +
 +[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
 +name = "schannel"
 +version = "0.1.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1539,10 +1857,16 @@ index 0000000..45720a8
 +]
 +
 +[[package]]
-+name = "security-framework"
-+version = "2.0.0"
++name = "scopeguard"
++version = "1.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
++
++[[package]]
++name = "security-framework"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3670b1d2fdf6084d192bc71ead7aabe6c06aa2ea3fbd9cc3ac111fa5c2b1bd84"
 +dependencies = [
 + "bitflags",
 + "core-foundation",
@@ -1553,9 +1877,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "security-framework-sys"
-+version = "2.0.0"
++version = "2.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b"
++checksum = "3676258fd3cfe2c9a0ec99ce3038798d847ce3e4bb17746373eb9f0f1ac16339"
 +dependencies = [
 + "core-foundation-sys 0.8.2",
 + "libc",
@@ -1584,9 +1908,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "serde"
-+version = "1.0.118"
++version = "1.0.125"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800"
++checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171"
 +dependencies = [
 + "serde_derive",
 +]
@@ -1606,9 +1930,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "serde_derive"
-+version = "1.0.118"
++version = "1.0.125"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df"
++checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -1617,13 +1941,13 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "serde_json"
-+version = "1.0.60"
++version = "1.0.64"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1500e84d27fe482ed1dc791a56eddc2f230046a040fa908c08bda1d9fb615779"
++checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79"
 +dependencies = [
 + "itoa",
 + "ryu",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 +]
 +
 +[[package]]
@@ -1643,7 +1967,7 @@ index 0000000..45720a8
 +dependencies = [
 + "dtoa",
 + "itoa",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "url",
 +]
 +
@@ -1656,7 +1980,7 @@ index 0000000..45720a8
 + "form_urlencoded",
 + "itoa",
 + "ryu",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 +]
 +
 +[[package]]
@@ -1701,12 +2025,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "smallvec"
-+version = "0.6.13"
++version = "1.6.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
-+dependencies = [
-+ "maybe-uninit",
-+]
++checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e"
 +
 +[[package]]
 +name = "socket2"
@@ -1721,11 +2042,11 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "standback"
-+version = "0.2.13"
++version = "0.2.17"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf906c8b8fc3f6ecd1046e01da1d8ddec83e48c8b08b84dcc02b585a6bedf5a8"
++checksum = "e113fb6f3de07a243d434a56ec6f186dfd51cb08448239fe7bcae73f87ff28ff"
 +dependencies = [
-+ "version_check 0.9.2",
++ "version_check 0.9.3",
 +]
 +
 +[[package]]
@@ -1756,7 +2077,7 @@ index 0000000..45720a8
 +dependencies = [
 + "proc-macro2",
 + "quote",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_derive",
 + "syn",
 +]
@@ -1770,7 +2091,7 @@ index 0000000..45720a8
 + "base-x",
 + "proc-macro2",
 + "quote",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_derive",
 + "serde_json",
 + "sha1",
@@ -1784,10 +2105,16 @@ index 0000000..45720a8
 +checksum = "213701ba3370744dcd1a12960caa4843b3d68b4d1c0a5d575e0d65b2ee9d16c0"
 +
 +[[package]]
-+name = "syn"
-+version = "1.0.55"
++name = "strsim"
++version = "0.9.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a571a711dddd09019ccc628e1b17fe87c59b09d513c06c026877aa708334f37a"
++checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
++
++[[package]]
++name = "syn"
++version = "1.0.68"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ce15dd3ed8aa2f8eeac4716d6ef5ab58b6b9256db41d7e1a0224c2788e8fd87"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -1808,44 +2135,44 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "tempfile"
-+version = "3.1.0"
++version = "3.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
++checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22"
 +dependencies = [
-+ "cfg-if 0.1.10",
++ "cfg-if 1.0.0",
 + "libc",
-+ "rand",
-+ "redox_syscall",
++ "rand 0.8.3",
++ "redox_syscall 0.2.5",
 + "remove_dir_all",
 + "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "termion"
-+version = "1.5.5"
++version = "1.5.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c22cec9d8978d906be5ac94bceb5a010d885c626c4c8855721a4dbd20e3ac905"
++checksum = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
 +dependencies = [
 + "libc",
 + "numtoa",
-+ "redox_syscall",
++ "redox_syscall 0.2.5",
 + "redox_termios",
 +]
 +
 +[[package]]
 +name = "thiserror"
-+version = "1.0.22"
++version = "1.0.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0e9ae34b84616eedaaf1e9dd6026dbe00dcafa92aa0c8077cb69df1fcfe5e53e"
++checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e"
 +dependencies = [
 + "thiserror-impl",
 +]
 +
 +[[package]]
 +name = "thiserror-impl"
-+version = "1.0.22"
++version = "1.0.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ba20f23e85b10754cd195504aebf6a27e2e6cbe28c17778a0c930724628dd56"
++checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -1859,42 +2186,32 @@ index 0000000..45720a8
 +checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1"
 +dependencies = [
 + "libc",
-+ "redox_syscall",
++ "redox_syscall 0.1.57",
 + "winapi 0.3.9",
 +]
 +
 +[[package]]
-+name = "thread_local"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+dependencies = [
-+ "lazy_static 1.4.0",
-+]
-+
-+[[package]]
 +name = "time"
-+version = "0.1.44"
++version = "0.1.43"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
 +dependencies = [
 + "libc",
-+ "wasi 0.10.0+wasi-snapshot-preview1",
 + "winapi 0.3.9",
 +]
 +
 +[[package]]
 +name = "time"
-+version = "0.2.23"
++version = "0.2.26"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bcdaeea317915d59b2b4cd3b5efcd156c309108664277793f5351700c02ce98b"
++checksum = "08a8cbfbf47955132d0202d1662f49b2423ae35862aee471f3ba4b133358f372"
 +dependencies = [
 + "const_fn",
 + "libc",
 + "standback",
 + "stdweb 0.4.20",
 + "time-macros",
-+ "version_check 0.9.2",
++ "version_check 0.9.3",
 + "winapi 0.3.9",
 +]
 +
@@ -1923,9 +2240,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "tinyvec"
-+version = "1.1.0"
++version = "1.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ccf8dbc19eb42fba10e8feaaec282fb50e2c14b2726d6301dbfeed0f73306a6f"
++checksum = "317cca572a0e89c3ce0ca1f1bdc9369547fe318a683418e42ac8f59d14701023"
 +dependencies = [
 + "tinyvec_macros",
 +]
@@ -1938,9 +2255,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "tokio"
-+version = "0.2.24"
++version = "0.2.25"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "099837d3464c16a808060bb3f02263b412f6fafcb5d01c533d309985fbeebe48"
++checksum = "6703a273949a90131b290be1fe7b039d0fc884aa1935860dfcbe056f28cd8092"
 +dependencies = [
 + "bytes 0.5.6",
 + "fnv",
@@ -1950,7 +2267,7 @@ index 0000000..45720a8
 + "memchr",
 + "mio",
 + "num_cpus",
-+ "pin-project-lite 0.1.11",
++ "pin-project-lite 0.1.12",
 + "slab",
 + "tokio-macros",
 +]
@@ -1999,7 +2316,7 @@ index 0000000..45720a8
 + "futures-core",
 + "futures-sink",
 + "log",
-+ "pin-project-lite 0.1.11",
++ "pin-project-lite 0.1.12",
 + "tokio",
 +]
 +
@@ -2009,24 +2326,33 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
 +dependencies = [
-+ "serde 1.0.118",
++ "serde 1.0.125",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"
++dependencies = [
++ "serde 1.0.125",
 +]
 +
 +[[package]]
 +name = "tower-service"
-+version = "0.3.0"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
++checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6"
 +
 +[[package]]
 +name = "tracing"
-+version = "0.1.22"
++version = "0.1.25"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9f47026cdc4080c07e49b37087de021820269d996f581aac150ef9e5583eefe3"
++checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f"
 +dependencies = [
 + "cfg-if 1.0.0",
 + "log",
-+ "pin-project-lite 0.2.0",
++ "pin-project-lite 0.2.6",
 + "tracing-core",
 +]
 +
@@ -2041,11 +2367,11 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "tracing-futures"
-+version = "0.2.4"
++version = "0.2.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ab7bb6f14721aa00656086e9335d363c5c8747bae02ebe32ea2c7dece5689b4c"
++checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2"
 +dependencies = [
-+ "pin-project 0.4.27",
++ "pin-project",
 + "tracing",
 +]
 +
@@ -2077,7 +2403,7 @@ index 0000000..45720a8
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
 +dependencies = [
-+ "version_check 0.9.2",
++ "version_check 0.9.3",
 +]
 +
 +[[package]]
@@ -2091,9 +2417,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "unicode-normalization"
-+version = "0.1.16"
++version = "0.1.17"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a13e63ab62dbe32aeee58d1c5408d35c36c392bba5d9d3142287219721afe606"
++checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef"
 +dependencies = [
 + "tinyvec",
 +]
@@ -2118,9 +2444,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "url"
-+version = "2.2.0"
++version = "2.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e"
++checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b"
 +dependencies = [
 + "form_urlencoded",
 + "idna",
@@ -2142,9 +2468,20 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "version_check"
-+version = "0.9.2"
++version = "0.9.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
++checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe"
++
++[[package]]
++name = "walkdir"
++version = "2.3.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
++dependencies = [
++ "same-file",
++ "winapi 0.3.9",
++ "winapi-util",
++]
 +
 +[[package]]
 +name = "want"
@@ -2164,27 +2501,27 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasi"
-+version = "0.10.0+wasi-snapshot-preview1"
++version = "0.10.2+wasi-snapshot-preview1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
++checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
 +
 +[[package]]
 +name = "wasm-bindgen"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3cd364751395ca0f68cafb17666eee36b63077fb5ecd972bbcd74c90c4bf736e"
++checksum = "83240549659d187488f91f33c0f8547cbfef0b2088bc470c116d1d260ef623d9"
 +dependencies = [
 + "cfg-if 1.0.0",
-+ "serde 1.0.118",
++ "serde 1.0.125",
 + "serde_json",
 + "wasm-bindgen-macro",
 +]
 +
 +[[package]]
 +name = "wasm-bindgen-backend"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1114f89ab1f4106e5b55e688b828c0ab0ea593a1ea7c094b141b14cbaaec2d62"
++checksum = "ae70622411ca953215ca6d06d3ebeb1e915f0f6613e3b495122878d7ebec7dae"
 +dependencies = [
 + "bumpalo",
 + "lazy_static 1.4.0",
@@ -2197,9 +2534,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasm-bindgen-futures"
-+version = "0.4.19"
++version = "0.4.23"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1fe9756085a84584ee9457a002b7cdfe0bfff169f45d2591d8be1345a6780e35"
++checksum = "81b8b767af23de6ac18bf2168b690bed2902743ddf0fb39252e36f9e2bfc63ea"
 +dependencies = [
 + "cfg-if 1.0.0",
 + "js-sys",
@@ -2209,9 +2546,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasm-bindgen-macro"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6ac8995ead1f084a8dea1e65f194d0973800c7f571f6edd70adf06ecf77084"
++checksum = "3e734d91443f177bfdb41969de821e15c516931c3c3db3d318fa1b68975d0f6f"
 +dependencies = [
 + "quote",
 + "wasm-bindgen-macro-support",
@@ -2219,9 +2556,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasm-bindgen-macro-support"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a48c72f299d80557c7c62e37e7225369ecc0c963964059509fbafe917c7549"
++checksum = "d53739ff08c8a68b0fdbcd54c372b8ab800b1449ab3c9d706503bc7dd1621b2c"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -2232,15 +2569,15 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "wasm-bindgen-shared"
-+version = "0.2.69"
++version = "0.2.73"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7e7811dd7f9398f14cc76efd356f98f03aa30419dea46aa810d71e819fc97158"
++checksum = "d9a543ae66aa233d14bb765ed9af4a33e81b8b58d1584cf1b47ff8cd0b9e4489"
 +
 +[[package]]
 +name = "web-sys"
-+version = "0.3.46"
++version = "0.3.50"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "222b1ef9334f92a21d3fb53dc3fd80f30836959a90f9274a626d7e06315ba3c3"
++checksum = "a905d57e488fec8861446d3393670fb50d27a262344013181c2cdf9fff5481be"
 +dependencies = [
 + "js-sys",
 + "wasm-bindgen",
@@ -2275,6 +2612,15 @@ index 0000000..45720a8
 +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 +
 +[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++dependencies = [
++ "winapi 0.3.9",
++]
++
++[[package]]
 +name = "winapi-x86_64-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2301,9 +2647,9 @@ index 0000000..45720a8
 +
 +[[package]]
 +name = "yaml-rust"
-+version = "0.4.4"
++version = "0.4.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
++checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85"
 +dependencies = [
-+ "linked-hash-map 0.5.3",
++ "linked-hash-map 0.5.4",
 +]
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix b/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
index 957c7b3c7f..a8f90ef34e 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "netease-music-tui";
-  version = "v0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "betta-cyber";
     repo = "netease-music-tui";
-    rev = version;
-    sha256 = "0m5b3q493d32kxznm4apn56216l07b1c49km236i03mpfvdw7m1f";
+    rev = "v${version}";
+    sha256 = "09355a6d197ckayh9833y39dsarklgpgrq3raapiv25z59di30qq";
   };
 
   cargoPatches = [ ./cargo-lock.patch ];
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ alsaLib openssl ];
 
-  cargoSha256 = "1kfbnwy3lkbhz0ggxwr5n6qd1plipkr1ycr3z2r7c0amrzzbkc7l";
+  cargoSha256 = "0f06wc7h2zjipifvxsskxvihjf6mykrjrm7yk0zf98ra079bc9g9";
 
   meta = with lib; {
     homepage = "https://github.com/betta-cyber/netease-music-tui";
diff --git a/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh b/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh
new file mode 100644
index 0000000000..b7ca4216ac
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/audio/netease-music-tui/update-cargo-lock.sh
@@ -0,0 +1,20 @@
+#!nix-shell
+#!nix-shell -i bash -p coreutils gnugrep git cargo
+
+# This updates cargo-lock.patch for the netease-music-tui version listed in
+# default.nix.
+
+set -eu -o verbose
+
+here=$PWD
+version=$(cat default.nix | grep '^  version = "' | cut -d '"' -f 2)
+checkout=$(mktemp -d)
+git clone -b "$version" --depth=1 https://github.com/betta-cyber/netease-music-tui "$checkout"
+cd "$checkout"
+
+cargo generate-lockfile
+git add -f Cargo.lock
+git diff HEAD -- Cargo.lock > "$here"/cargo-lock.patch
+
+cd "$here"
+rm -rf "$checkout"
diff --git a/third_party/nixpkgs/pkgs/applications/audio/noisetorch/default.nix b/third_party/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
index fea6e097de..6f63bf542f 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "NoiseTorch";
-  version = "0.9.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "lawl";
@@ -11,7 +11,10 @@ buildGoModule rec {
     sha256 = "1a4g112h83m55pga8kq2a1wzxpycj59v4bygyjfyi1s09q1y97qg";
   };
 
-  patches = [ ./version.patch ];
+  patches = [
+    # Get version from environment instead of git tags
+    ./version.patch
+  ];
 
   vendorSha256 = null;
 
diff --git a/third_party/nixpkgs/pkgs/applications/audio/snapcast/default.nix b/third_party/nixpkgs/pkgs/applications/audio/snapcast/default.nix
index 681601c7d8..18d073caba 100644
--- a/third_party/nixpkgs/pkgs/applications/audio/snapcast/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/audio/snapcast/default.nix
@@ -20,8 +20,8 @@ let
 
   aixlog = dependency {
     name    = "aixlog";
-    version = "1.4.0";
-    sha256  = "0f2bs5j1jjajcpa251dslnwkgglaam3b0cm6wdx5l7mbwvnmib2g";
+    version = "1.5.0";
+    sha256  = "09mnkrans9zmwfxsiwgkm0rba66c11kg5zby9x3rjic34gnmw6ay";
   };
 
   popl = dependency {
@@ -34,13 +34,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "snapcast";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner  = "badaix";
     repo   = "snapcast";
     rev    = "v${version}";
-    sha256 = "0183hhghzn0fhw2qzc1s009q7miabpcf0pxaqjdscsl8iivxqknd";
+    sha256 = "13yz8alplnqwkcns3mcli01qbyy6l3h62xx0v71ygcrz371l4g9g";
   };
 
   nativeBuildInputs = [ cmake pkg-config boost170.dev ];
@@ -64,6 +64,6 @@ stdenv.mkDerivation rec {
     description = "Synchronous multi-room audio player";
     homepage = "https://github.com/badaix/snapcast";
     maintainers = with maintainers; [ fpletz ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/27.nix b/third_party/nixpkgs/pkgs/applications/editors/emacs/27.nix
index 8bc65bad8b..b629c2d212 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/27.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/27.nix
@@ -1,6 +1,6 @@
 import ./generic.nix (rec {
-  version = "27.1";
-  sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
+  version = "27.2";
+  sha256 = "sha256-tKfMTnjmPzeGJOCRkhW5EK9bsqCvyBn60pgnLp9Awbk=";
   patches = [
     ./tramp-detect-wrapped-gvfsd.patch
   ];
diff --git a/third_party/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch b/third_party/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
index 5af6fcaba8..b27dfd47e6 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
+++ b/third_party/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
@@ -1,12 +1,11 @@
 diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
-index 34a234c..b5a471c 100644
+index 9e26c8fd6d..fa220e513c 100644
 --- a/lisp/net/tramp-gvfs.el
 +++ b/lisp/net/tramp-gvfs.el
-@@ -122,6 +122,7 @@
- 	 (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")
+@@ -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/third_party/nixpkgs/pkgs/applications/editors/sublime/2/default.nix b/third_party/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
index e46d6ef97e..7102d69513 100644
--- a/third_party/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/editors/sublime/2/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     if stdenv.hostPlatform.system == "i686-linux" then
       fetchurl {
         name = "sublimetext-2.0.2.tar.bz2";
-        url = [
+        urls = [
           "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
           "https://download.sublimetext.com/Sublime%20Text%202.0.2.tar.bz2"
         ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     else
       fetchurl {
         name = "sublimetext-2.0.2.tar.bz2";
-        url = [
+        urls = [
           "http://c758482.r82.cf2.rackcdn.com/Sublime%20Text%202.0.2.tar.bz2"
           "https://download.sublimetext.com/Sublime%20Text%202.0.2%20x64.tar.bz2"
         ];
diff --git a/third_party/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix b/third_party/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix
new file mode 100644
index 0000000000..c0c76b4ef4
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/blucontrol/wrapper.nix
@@ -0,0 +1,32 @@
+{ stdenv, lib, makeWrapper, ghcWithPackages, packages ? (_:[]) }:
+let
+  blucontrolEnv = ghcWithPackages (self: [ self.blucontrol ] ++ packages self);
+in
+  stdenv.mkDerivation {
+    pname = "blucontrol-with-packages";
+    version = blucontrolEnv.version;
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    buildCommand = ''
+      makeWrapper ${blucontrolEnv}/bin/blucontrol $out/bin/blucontrol \
+        --prefix PATH : ${lib.makeBinPath [ blucontrolEnv ]}
+    '';
+
+    # trivial derivation
+    preferLocalBuild = true;
+    allowSubstitues = false;
+
+    meta = with lib; {
+      description = "Configurable blue light filter";
+      longDescription = ''
+        This application is a blue light filter, with the main focus on configurability.
+        Configuration is done in Haskell in the style of xmonad.
+        Blucontrol makes use of monad transformers and allows monadic calculation of gamma values and recoloring. The user chooses, what will be captured in the monadic state.
+      '';
+      license = licenses.bsd3;
+      homepage = "https://github.com/jumper149/blucontrol";
+      platforms = platforms.unix;
+      maintainers = with maintainers; [ jumper149 ];
+    };
+  }
diff --git a/third_party/nixpkgs/pkgs/applications/misc/cura/plugins.nix b/third_party/nixpkgs/pkgs/applications/misc/cura/plugins.nix
index bd22cc4745..4bf7ba8d85 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/cura/plugins.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/cura/plugins.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, python3Packages, libspnav }:
 
 let
 
@@ -32,6 +32,35 @@ let
       };
     };
 
+    rawmouse = stdenv.mkDerivation rec {
+      pname = "RawMouse";
+      version = "1.0.13";
+
+      src = fetchFromGitHub {
+        owner = "smartavionics";
+        repo = pname;
+        rev = version;
+        sha256 = "1cj40pgsfcwliz47mkiqjbslkwcm34qb1pajc2mcljgflcnickly";
+      };
+
+      buildPhase = ''
+        substituteInPlace RawMouse/config.json --replace \
+          /usr/local/lib/libspnav.so ${libspnav}/lib/libspnav.so
+      '';
+
+      installPhase = ''
+        mkdir -p $out/lib/cura/plugins/RawMouse
+        cp -rv . $out/lib/cura/plugins/RawMouse/
+      '';
+
+      meta = with lib; {
+        description = "Cura plugin for HID mice such as 3Dconnexion spacemouse";
+        homepage = "https://github.com/smartavionics/RawMouse";
+        license = licenses.agpl3Plus;
+        maintainers = with maintainers; [ gebner ];
+      };
+    };
+
   };
 
 in self
diff --git a/third_party/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/third_party/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
index e65b236a5e..ad53599855 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "21.0.1"; # When updating also update fetchedMavenDeps.sha256
+  version = "21.0.2"; # When updating also update fetchedMavenDeps.sha256
 
   src = fetchFromGitHub {
     owner = "dbeaver";
     repo = "dbeaver";
     rev = version;
-    sha256 = "sha256-9l8604STqmdoUjD+EJCp4aDk4juKsPCmFnD/WYpajxo=";
+    sha256 = "sha256-3EMSiEq1wdg4dxBU90RVVv0Hrf5dXPc1MPI0+WMk48k=";
   };
 
   fetchedMavenDeps = stdenv.mkDerivation {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/third_party/nixpkgs/pkgs/applications/misc/font-manager/default.nix
index 3efef45531..766ec9a55d 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/font-manager/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/font-manager/default.nix
@@ -1,17 +1,18 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, gettext, python3,
-  pkg-config, libxml2, json-glib , sqlite, itstool, librsvg, yelp-tools,
-  vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection
+  pkg-config, libxml2, json-glib , sqlite, itstool, yelp-tools,
+  vala, gtk3, gnome3, desktop-file-utils, wrapGAppsHook, gobject-introspection,
+  libsoup, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.7.9";
+  version = "0.8.5-1";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "master";
     rev = version;
-    sha256 = "1nc0i824v2szz0j9a5rwl8gygih15xbxnxpnx9d3wr0yq9057q6q";
+    sha256 = "1p0hfnf06892hn25a6zv8fnhbh4ln11nn2fv1vjqs63rr59fprbk";
   };
 
   nativeBuildInputs = [
@@ -33,9 +34,10 @@ stdenv.mkDerivation rec {
     libxml2
     json-glib
     sqlite
-    librsvg
     gtk3
     gnome3.adwaita-icon-theme
+    libsoup
+    webkitgtk
   ];
 
   postPatch = ''
@@ -55,7 +57,7 @@ stdenv.mkDerivation rec {
 
       Font Manager is NOT a professional-grade font management solution.
     '';
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/third_party/nixpkgs/pkgs/applications/misc/free42/default.nix b/third_party/nixpkgs/pkgs/applications/misc/free42/default.nix
index c48e151e8a..51867a6ace 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/free42/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/free42/default.nix
@@ -1,6 +1,8 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, makeDesktopItem
+, copyDesktopItems
 , pkg-config
 , gtk3
 , alsaLib
@@ -17,7 +19,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-Htk2NHgYVL622URx67BUtounAUopLTahaSqfAqd3+ZI=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ copyDesktopItems pkg-config ];
   buildInputs = [ gtk3 alsaLib ];
 
   postPatch = ''
@@ -55,6 +57,29 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  desktopItems = [
+    (makeDesktopItem {
+      name = "com.thomasokken.free42bin";
+      desktopName = "Free42Bin";
+      genericName = "Calculator";
+      exec = "free42bin";
+      type = "Application";
+      comment = meta.description;
+      categories = "Utility;Calculator;";
+      terminal = "false";
+    })
+    (makeDesktopItem {
+      name = "com.thomasokken.free42dec";
+      desktopName = "Free42Dec";
+      genericName = "Calculator";
+      exec = "free42dec";
+      type = "Application";
+      comment = meta.description;
+      categories = "Utility;Calculator;";
+      terminal = "false";
+    })
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/thomasokken/free42";
     description = "A software clone of HP-42S Calculator";
diff --git a/third_party/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix b/third_party/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
index de715bf315..b1b77a53ea 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/metadata-cleaner/default.nix
@@ -17,7 +17,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "metadata-cleaner";
-  version = "1.0.3";
+  version = "1.0.4";
 
   format = "other";
 
@@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "rmnvgr";
     repo = "metadata-cleaner";
     rev = "v${version}";
-    sha256 = "06dzfcnjb1xd8lk0r7bi4i784gfj8r7habbjbk2c4vn2847v71lf";
+    sha256 = "sha256-F/xh4dFX7W50kFzpWpGKyMUhxOlDO3WDXBzXVsDViY8=";
   };
 
   nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/applications/misc/mupdf/default.nix b/third_party/nixpkgs/pkgs/applications/misc/mupdf/default.nix
index 333e3cd931..21c699da3f 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/mupdf/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/mupdf/default.nix
@@ -1,11 +1,27 @@
-{ stdenv, lib, fetchurl, fetchpatch, pkg-config, freetype, harfbuzz, openjpeg
-, jbig2dec, libjpeg , darwin
+{ stdenv
+, lib
+, fetchurl
+, fetchpatch
+, pkg-config
+, freetype
+, harfbuzz
+, openjpeg
+, jbig2dec
+, libjpeg
+, darwin
 , gumbo
-, enableX11 ? true, libX11, libXext, libXi, libXrandr
-, enableCurl ? true, curl, openssl
-, enableGL ? true, freeglut, libGLU
+, enableX11 ? true
+, libX11
+, libXext
+, libXi
+, libXrandr
+, enableCurl ? true
+, curl
+, openssl
+, enableGL ? true
+, freeglut
+, libGLU
 }:
-
 let
 
   # OpenJPEG version is hardcoded in package source
@@ -13,7 +29,8 @@ let
     lib.versions.majorMinor (lib.getVersion openjpeg);
 
 
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   version = "1.18.0";
   pname = "mupdf";
 
@@ -52,17 +69,21 @@ in stdenv.mkDerivation rec {
   # Use shared libraries to decrease size
   buildFlags = [ "shared" ];
 
-  makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
+  makeFlags = [ "prefix=$(out)" "USE_SYSTEM_LIBS=yes" ]
+    ++ lib.optionals (!enableX11) [ "HAVE_X11=no" ]
+    ++ lib.optionals (!enableGL) [ "HAVE_GLUT=no" ];
+
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU gumbo ]
-                ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
-                ++ lib.optionals enableCurl [ curl openssl ]
-                ++ lib.optionals enableGL (
-                  if stdenv.isDarwin then
-                    with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
-                  else
-                    [ freeglut libGLU ])
-                ;
+  buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg gumbo ]
+    ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
+    ++ lib.optionals enableCurl [ curl openssl ]
+    ++ lib.optionals enableGL (
+    if stdenv.isDarwin then
+      with darwin.apple_sdk.frameworks; [ GLUT OpenGL ]
+    else
+      [ freeglut libGLU ]
+  )
+  ;
   outputs = [ "bin" "dev" "out" "man" "doc" ];
 
   preConfigure = ''
@@ -85,6 +106,7 @@ in stdenv.mkDerivation rec {
     EOF
 
     moveToOutput "bin" "$bin"
+  '' + lib.optionalString enableX11 ''
     ln -s "$bin/bin/mupdf-x11" "$bin/bin/mupdf"
     mkdir -p $bin/share/applications
     cat > $bin/share/applications/mupdf.desktop <<EOF
diff --git a/third_party/nixpkgs/pkgs/applications/misc/openlp/default.nix b/third_party/nixpkgs/pkgs/applications/misc/openlp/default.nix
new file mode 100644
index 0000000000..1ee4825647
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/openlp/default.nix
@@ -0,0 +1,86 @@
+# This file contains all runtime glue: Bindings to optional runtime dependencies
+# for pdfSupport, presentationSupport, and media playback.
+{ lib, mkDerivation, wrapGAppsHook, python3Packages
+
+# qt deps
+, qtbase, qtmultimedia
+
+# optional deps
+, pdfSupport ? false, mupdf  # alternatively could use ghostscript
+, presentationSupport ? false, libreoffice-unwrapped
+, vlcSupport ? false
+, gstreamerSupport ? false, gst_all_1, gstPlugins ? (gst: [
+    gst.gst-plugins-base
+    gst.gst-plugins-good
+    gst.gst-plugins-bad
+    gst.gst-plugins-ugly
+  ])
+
+#, enableMySql ? false      # Untested. If interested, contact maintainer.
+#, enablePostgreSql ? false # Untested. If interested, contact maintainer.
+#, enableJenkinsApi ? false # Untested. If interested, contact maintainer.
+}:
+
+let p = gstPlugins gst_all_1;
+# If gstreamer is activated but no plugins are given, it will at runtime
+# create the false illusion of being usable.
+in assert gstreamerSupport -> (builtins.isList p && builtins.length p > 0);
+
+let
+  # optional packages
+  libreofficePath = "${libreoffice-unwrapped}/lib/libreoffice/program";
+
+  # lib functions
+  inherit (lib.lists) optional optionals;
+  wrapSetVar = var: ''--set ${var} "''$${var}"'';
+
+  # base pkg/lib
+  baseLib = python3Packages.callPackage ./lib.nix { };
+in mkDerivation {
+  inherit (baseLib) pname version src;
+
+  nativeBuildInputs = [ python3Packages.wrapPython wrapGAppsHook ];
+  buildInputs = [ qtbase ] ++ optionals gstreamerSupport
+    ([ qtmultimedia.bin gst_all_1.gstreamer ] ++ gstPlugins gst_all_1);
+  propagatedBuildInputs = optional pdfSupport mupdf
+    ++ optional presentationSupport libreoffice-unwrapped;
+  pythonPath = [ baseLib ] ++ optional vlcSupport python3Packages.python-vlc;
+    # ++ optional enableMySql mysql-connector  # Untested. If interested, contact maintainer.
+    # ++ optional enablePostgreSql psycopg2    # Untested. If interested, contact maintainer.
+    # ++ optional enableJenkinsApi jenkinsapi  # Untested. If interested, contact maintainer.
+
+  PYTHONPATH = libreofficePath;
+  URE_BOOTSTRAP = "vnd.sun.star.pathname:${libreofficePath}/fundamentalrc";
+  UNO_PATH = libreofficePath;
+  LD_LIBRARY_PATH = libreofficePath;
+  JAVA_HOME = "${libreoffice-unwrapped.jdk.home}";
+
+  dontWrapQtApps = true;
+  dontWrapGApps = true;
+
+  # defined in gappsWrapperHook
+  wrapPrefixVariables = optionals presentationSupport
+    [ "PYTHONPATH" "LD_LIBRARY_PATH" "JAVA_HOME" ];
+  makeWrapperArgs = [
+    "\${gappsWrapperArgs[@]}"
+    "\${qtWrapperArgs[@]}"
+  ] ++ optionals presentationSupport
+    ([ "--prefix PATH : ${libreoffice-unwrapped}/bin" ]
+      ++ map wrapSetVar [ "URE_BOOTSTRAP" "UNO_PATH" ]);
+
+  installPhase = ''
+    install -D openlp.py $out/bin/openlp
+  '';
+
+  preFixup = ''
+    wrapPythonPrograms
+  '';
+
+  meta = baseLib.meta // {
+    hydraPlatforms = [ ]; # this is only the wrapper; baseLib gets built
+  };
+
+  passthru = {
+    inherit baseLib;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/openlp/lib.nix b/third_party/nixpkgs/pkgs/applications/misc/openlp/lib.nix
new file mode 100644
index 0000000000..6f0634b5c9
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/misc/openlp/lib.nix
@@ -0,0 +1,103 @@
+# This file contains the base package, some of which is compiled.
+# Runtime glue to optinal runtime dependencies is in 'default.nix'.
+{ fetchurl, lib, qt5
+
+# python deps
+, python, buildPythonPackage
+, alembic, beautifulsoup4, chardet, lxml, Mako, pyenchant
+, pyqt5_with_qtwebkit, pyxdg, sip, sqlalchemy, sqlalchemy_migrate
+}:
+
+buildPythonPackage rec {
+  pname = "openlp";
+  version = "2.4.6";
+
+  src = fetchurl {
+    url = "https://get.openlp.org/${version}/OpenLP-${version}.tar.gz";
+    sha256 = "f63dcf5f1f8a8199bf55e806b44066ad920d26c9cf67ae432eb8cdd1e761fc30";
+  };
+
+  doCheck = false;
+  # FIXME: checks must be disabled because they are lacking the qt env.
+  #        They fail like this, even if built and wrapped with all Qt and
+  #        runtime dependencies:
+  #
+  #     running install tests
+  #     qt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""
+  #     This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
+  #
+  #     Available platform plugins are: wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx.
+  #
+  # See also https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/
+
+  #checkInputs = [ mock nose ];
+  nativeBuildInputs = [ qt5.qttools ];
+  propagatedBuildInputs = [
+    alembic
+    beautifulsoup4
+    chardet
+    lxml
+    Mako
+    pyenchant
+    pyqt5_with_qtwebkit
+    pyxdg
+    sip
+    sqlalchemy
+    sqlalchemy_migrate
+  ];
+
+  prePatch = ''
+    echo 'from vlc import *' > openlp/core/ui/media/vendor/vlc.py
+  '';
+
+  dontWrapQtApps = true;
+  dontWrapGApps = true;
+  postInstall = ''
+    ( # use subshell because of cd
+      tdestdir="$out/i18n"
+      mkdir -p "$tdestdir"
+      cd ./resources/i18n
+      for file in *.ts; do
+          lconvert -i "$file" -o "$tdestdir/''${file%%ts}qm"
+      done
+    )
+  '';
+
+  preFixup = ''
+    rm -r $out/${python.sitePackages}/tests
+    rm -r $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Free church presentation software";
+    homepage = "https://openlp.org/";
+    downloadPage = "https://openlp.org/#downloads";
+    platforms = platforms.unix;
+    license = licenses.gpl2Only;
+    maintainers = [ maintainers.jorsn ];
+
+    longDescription = ''
+      OpenLP is a free church presentation software.
+
+      Features:
+
+      * Cross platform between Linux, Windows, OS X and FreeBSD
+      * Display songs, Bible verses, presentations, images, audio and video
+      * Control OpenLP remotely via the Android remote, iOS remote or mobile web browser
+      * Quickly and easily import songs from other popular presentation packages
+      * Easy enough to use to get up and running in less than 10 minutes
+
+      Remark: This pkg only supports sqlite dbs. If you wish to have support for
+            mysql or postgresql dbs, or Jenkins, please contact the maintainer.
+
+      Bugs which affect this software packaged in Nixpkgs:
+
+      1. The package must disable checks, because they are lacking the qt env.
+         (see pkg source and https://discourse.nixos.org/t/qt-plugin-path-unset-in-test-phase/)
+      2. There is a segfault on exit. Not a real problem, according to debug log, everything
+         shuts down correctly. Maybe related to https://forums.openlp.org/discussion/3620/crash-on-exit.
+         Plan: Wait for OpenLP-3, since it is already in beta 1
+         (2021-02-09; news: https://openlp.org/blog/).
+    '';
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/misc/qcad/default.nix b/third_party/nixpkgs/pkgs/applications/misc/qcad/default.nix
index 6b2418ab57..19e5d18fe9 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/qcad/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/qcad/default.nix
@@ -10,18 +10,20 @@
 , qtsvg
 , qtxmlpatterns
 , qttools
-, lib, stdenv
+, lib
+, stdenv
+, installShellFiles
 }:
 
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "qcad";
-  version = "3.26.0.1";
+  version = "3.26.1.0";
 
   src = fetchFromGitHub {
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    sha256 = "sha256-V+QlwM8BWmcarwZtqJfc+MYHOZgIH1W5R8m2EHhNJls=";
+    sha256 = "sha256-OWAc7g8DiJR3z6dUF5D0Yo3wnRKd1Xe7D1eq15NRW5c=";
   };
 
   patches = [
@@ -36,7 +38,7 @@ mkDerivationWith stdenv.mkDerivation rec {
         src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \
         src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}/qt-labs-qtscriptgenerator-${qtbase.version}.pro
     fi
- '';
+  '';
 
   qmakeFlags = [
     "MUPARSER_DIR=${muparser}"
@@ -65,15 +67,27 @@ mkDerivationWith stdenv.mkDerivation rec {
     cp -r scripts $out/lib
     cp -r plugins $out/lib/plugins
     cp -r patterns $out/lib/patterns
+    cp -r fonts $out/lib/fonts
+    cp -r libraries $out/lib/libraries
+    cp -r linetypes $out/lib/linetypes
+    cp -r ts $out/lib/ts
 
     # workaround to fix the library browser:
     rm -r $out/lib/plugins/sqldrivers
     ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/sqldrivers
 
+    rm -r $out/lib/plugins/printsupport
+    ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/printsupport
+
+    rm -r $out/lib/plugins/imageformats
+    ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/imageformats
+
     install -Dm644 scripts/qcad_icon.svg $out/share/icons/hicolor/scalable/apps/qcad.svg
 
+    installManPage qcad.1
+
     runHook postInstall
-    '';
+  '';
 
   buildInputs = [
     boost
@@ -89,6 +103,7 @@ mkDerivationWith stdenv.mkDerivation rec {
     pkg-config
     qmake
     qttools
+    installShellFiles
   ];
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/misc/viking/default.nix b/third_party/nixpkgs/pkgs/applications/misc/viking/default.nix
index 71f67baa6c..72c0fefd4e 100644
--- a/third_party/nixpkgs/pkgs/applications/misc/viking/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/misc/viking/default.nix
@@ -1,60 +1,57 @@
-{ fetchurl, fetchpatch, lib, stdenv, makeWrapper
-, pkg-config, intltool, gettext, gtk2, expat, curl
-, gpsd, bc, file, gnome-doc-utils, libexif, libxml2, libxslt, scrollkeeper
-, docbook_xml_dtd_412, gexiv2, gpsbabel, expect
+{ lib, stdenv, fetchurl
+, docbook_xml_dtd_45, docbook_xsl, intltool, itstool, libxslt, pkg-config, wrapGAppsHook, yelp-tools
+, curl, gdk-pixbuf, gtk3, json-glib, libxml2
+, gpsbabel
+, withGeoClue ? true, geoclue2
+, withGeoTag ? true, gexiv2
+, withMagic ? true, file
 , withMapnik ? false, mapnik
 , withMBTiles ? true, sqlite
-, withOAuth ? true, liboauth
 , withMd5Hash ? true, nettle
-, withGeoClue ? true, geoclue2 }:
+, withOAuth ? true, liboauth
+, withRealtimeGPSTracking ? true, gpsd
+}:
 
 stdenv.mkDerivation rec {
   pname = "viking";
-  version = "1.8";
+  version = "1.9";
 
   src = fetchurl {
-    url = "mirror://sourceforge/viking/viking/viking-${version}.tar.bz2";
-    sha256 = "1a0g0fbj4q5s9p8fv0mqvxws10q3naj81l72sz30vvqpbz6vqp45";
+    url = "mirror://sourceforge/viking/viking-${version}.tar.bz2";
+    sha256 = "0fybpy6k0vmjp231h5ckysl3c0rcnh2afznijwq6y78j4hywyjpy";
   };
 
-  patches = [
-    # Fix build without mapnik and sqlite https://github.com/viking-gps/viking/pull/79
-    (fetchpatch {
-      url = "https://github.com/viking-gps/viking/commit/995feefcb97bdb1590ed018224cf47ce197fe0c1.patch";
-      sha256 = "1xb0b76kg690fag9mw3yfj5k766jmqp1sm8q4f29n1h3nz5g8izd";
-    })
-  ];
+  nativeBuildInputs = [ docbook_xml_dtd_45 docbook_xsl intltool itstool libxslt pkg-config wrapGAppsHook yelp-tools ];
 
-  nativeBuildInputs = [ pkg-config makeWrapper ];
-  buildInputs = [ intltool gettext gtk2 expat curl gpsd bc file gnome-doc-utils
-    libexif libxml2 libxslt scrollkeeper docbook_xml_dtd_412 gexiv2
-  ] ++ lib.optional withMapnik mapnik
+  buildInputs = [ curl gdk-pixbuf gtk3 json-glib libxml2 ]
     ++ lib.optional withGeoClue geoclue2
+    ++ lib.optional withGeoTag  gexiv2
+    ++ lib.optional withMagic   file
+    ++ lib.optional withMapnik  mapnik
+    ++ lib.optional withMBTiles sqlite
     ++ lib.optional withMd5Hash nettle
-    ++ lib.optional withOAuth liboauth
-    ++ lib.optional withMBTiles sqlite;
+    ++ lib.optional withOAuth   liboauth
+    ++ lib.optional withRealtimeGPSTracking gpsd;
 
   configureFlags = [
-    "--disable-scrollkeeper"
-    (lib.enableFeature withMapnik "mapnik")
     (lib.enableFeature withGeoClue "geoclue")
-    (lib.enableFeature withMd5Hash "nettle")
-    (lib.enableFeature withOAuth "oauth")
+    (lib.enableFeature withGeoTag  "geotag")
+    (lib.enableFeature withMagic   "magic")
+    (lib.enableFeature withMapnik  "mapnik")
     (lib.enableFeature withMBTiles "mbtiles")
+    (lib.enableFeature withMd5Hash "nettle")
+    (lib.enableFeature withOAuth   "oauth")
+    (lib.enableFeature withRealtimeGPSTracking "realtime-gps-tracking")
   ];
 
-  preBuild = ''
-    sed -i help/Makefile \
-        -e 's|--noout|--noout --nonet --path "${scrollkeeper}/share/xml/scrollkeeper/dtds"|g'
-    sed -i help/Makefile -e 's|--postvalid||g'
-  '';
+  hardeningDisable = [ "format" ];
 
   doCheck = true;
 
-  postInstall = ''
-    wrapProgram $out/bin/viking \
-      --prefix PATH : "${gpsbabel}/bin" \
-      --prefix PATH : "${expect}/bin"
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${lib.makeBinPath [ gpsbabel ]}
+    )
   '';
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix b/third_party/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
index 3b5e00a7ff..f6006468d8 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/appgate-sdp/default.nix
@@ -48,6 +48,7 @@
 , python37Packages
 , stdenv
 , systemd
+, xdg-utils
 , zlib
 }:
 with lib;
@@ -92,7 +93,7 @@ let
     systemd
     zlib
   ];
-  rpath = lib.makeLibraryPath deps ;
+  rpath = lib.makeLibraryPath deps;
 in
 stdenv.mkDerivation rec {
   pname = "appgate-sdp";
@@ -171,6 +172,7 @@ stdenv.mkDerivation rec {
 
     wrapProgram $out/opt/appgate/appgate-driver --prefix PATH : ${lib.makeBinPath [ iproute2 networkmanager dnsmasq ]}
     wrapProgram $out/opt/appgate/linux/set_dns --set PYTHONPATH $PYTHONPATH
+    wrapProgram $out/bin/appgate --prefix PATH : ${xdg-utils}/bin
   '';
   meta = with lib; {
     description = "Appgate SDP (Software Defined Perimeter) desktop client";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json b/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 7660f2f9e6..94c45120cc 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -18,9 +18,9 @@
     }
   },
   "beta": {
-    "version": "90.0.4430.51",
-    "sha256": "1k87fw0pv0d2zlxm0il9b5p60gdz6l44jssmsns4zy2fmd9316wr",
-    "sha256bin64": "0q5yx7bc266azs3nl29ksz4yafvy2nmzn09ifcgr69fjkvsr1qh7",
+    "version": "90.0.4430.61",
+    "sha256": "01vssy3q64pv9rw4cdxv5rdg7yrxmhyc03a5r75fhxc95fj66iac",
+    "sha256bin64": "07l8dzyv0hav1gls3xw91q9ay2l8xxmsf7yagg940cya9ncl0lhi",
     "deps": {
       "gn": {
         "version": "2021-02-09",
diff --git a/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
index cf5f13fa74..554167c357 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -16,14 +16,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "29.1.0";
+  version = "29.1.1";
 
   src = fetchFromGitHub {
     githubBase = "repo.palemoon.org";
     owner = "MoonchildProductions";
     repo = "Pale-Moon";
     rev = "${version}_Release";
-    sha256 = "02blhk3v7gpnicd7s5l5fpqvdvj2279g3rq8xyhcd4sw6qnms8m6";
+    sha256 = "1ppdmj816zwccb0l0mgpq14ckdwg785wmqz41wran0nl63fg6i1x";
     fetchSubmodules = true;
   };
 
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
index 5cb52c4717..d0aa1029d6 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.4-k3s1" }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, k3sVersion ? "1.20.5-k3s1" }:
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "4.4.0";
+  version = "4.4.1";
 
   excludedPackages = "tools";
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     owner = "rancher";
     repo = "k3d";
     rev = "v${version}";
-    sha256 = "sha256-+9VtFHZ4ZZiX04u5YvPoQaelH9Q9oKMrbFHFFiNUxBA=";
+    sha256 = "sha256-u9P+7qNomamd4BkqWBxA6rDom0hF6t10QfDTjqOMGeE=";
   };
 
   vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
index 62c12ac8af..ef025dfc6a 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-0q3UmlXzW0fGYPc1IptuIbCMnKW4pyDm1KxkRqU2voA=";
+    sha256 = "sha256-4NIyit2HnDXWnHALGzz5KWxe4PU8CwMRwCoIlN/WX78=";
   };
 
-  vendorSha256 = "sha256-QVvID9rrOFngL94LWN75HSnyTgh3F0KaScWxMIKUqDM=";
+  vendorSha256 = "sha256-qwUAC8LURsn6C3zKzcsuFsOTurjPV9V8Z/1Y9G0eohk=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
index 485eba2721..7bcd905c99 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "qbec";
-  version = "0.14.1";
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "splunk";
     repo = "qbec";
     rev = "v${version}";
-    sha256 = "sha256-+CzY/ifH+U3I36uHXyO2FSkPCz+SWRpSPnxfd2LHHhY=";
+    sha256 = "sha256-F5xnW9069Xrl6isvmeYtfTZUZSiSq47HLs5/p3HCf6E=";
   };
 
   vendorSha256 = "sha256-wtpXqIixjRYYSIPe43Q5627g6mu05WdvwCi9cXVgCBs=";
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
index d3aeee6bc6..6cd2cf52ef 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -157,8 +157,8 @@ in rec {
   });
 
   terraform_0_14 = pluggable (generic {
-    version = "0.14.9";
-    sha256 = "0r9d28mbj7h9prr39gm5kd49l7sm8l1ab9rwrkpyhwgr119zf35b";
+    version = "0.14.10";
+    sha256 = "05vfb8hzma3qxq4w1h25mmgv96g90if214zlar0sm9fq8zsvb1yw";
     vendorSha256 = "1d93aqkjdrvabkvix6h1qaxpjzv7w1wa7xa44czdnjs2lapx4smm";
     patches = [ ./provider-path.patch ];
     passthru = { inherit plugins; };
diff --git a/third_party/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/third_party/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
index daa9f486bf..65826683d5 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "velero";
-  version = "1.5.3";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "vmware-tanzu";
     repo = "velero";
-    sha256 = "sha256-DZ6phJxc8n9LCSsER09K3j+pUJxkYrBZQaI4h+bcV94=";
+    sha256 = "sha256-YHBqIM3NV2L13w9WCzldUWmdBMec7ZndzYgGHblS8Dg=";
   };
 
   buildFlagsArray = ''
diff --git a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 1a92ca51ac..cdac4a2829 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -29,11 +29,11 @@
 assert pulseaudioSupport -> libpulseaudio != null;
 
 let
-  version = "5.5.7938.0228";
+  version = "5.6.13632.0328";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
-      sha256 = "KM8o2tgIn0lecOM4gKdTOdk/zsohlFqtNX+ca/S6FGY=";
+      sha256 = "0nskpg3rbv40jcbih95sfdr0kfv5hjv50z9jdz1cddl8v7hbqg71";
     };
   };
 
diff --git a/third_party/nixpkgs/pkgs/applications/networking/pcloud/default.nix b/third_party/nixpkgs/pkgs/applications/networking/pcloud/default.nix
index 08a8bc98e1..312734dba1 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/pcloud/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/pcloud/default.nix
@@ -26,13 +26,14 @@
 
 let
   pname = "pcloud";
-  version = "1.8.9";
+  version = "1.9.1";
+  code = "XZXB3fXZgXyQbnTkTm5XOJH9i6NsKX9lL21V";
   name = "${pname}-${version}";
 
   # Archive link's code thanks to: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=pcloud-drive
   src = fetchzip {
-    url = "https://api.pcloud.com/getpubzip?code=XZjfKzXZ6h3uGRFId48VRNHHkuqajhRvMlPV&filename=${name}.zip";
-    hash = "sha256:1bwdwfwgy3wwzlggi8qhf5q2bq2kqiqi3mgvsr9w0mxyaxxv13r8";
+    url = "https://api.pcloud.com/getpubzip?code=${code}&filename=${name}.zip";
+    hash = "sha256-vUrz4thp9tcU9T8d52DJUAbt6Jnv+E3pbUytzMR8d/E=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/third_party/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/third_party/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
index cc179dc1e1..249d58ceb6 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -74,7 +74,7 @@ in stdenv.mkDerivation {
     install -Dm644 ../image/wsicon.svg $out/share/icons/wireshark.svg
     mkdir $dev/include/{epan/{wmem,ftypes,dfilter},wsutil,wiretap} -pv
 
-    cp config.h $dev/include/
+    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/
diff --git a/third_party/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/third_party/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
index cde73fcc7c..83cc029c08 100644
--- a/third_party/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
@@ -1,4 +1,7 @@
-{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles }:
+{ lib, stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles
+, makeWrapper
+, enableCmount ? true, fuse, macfuse-stubs
+}:
 
 buildGoModule rec {
   pname = "rclone";
@@ -17,9 +20,11 @@ buildGoModule rec {
 
   outputs = [ "out" "man" ];
 
-  nativeBuildInputs = [ installShellFiles ];
+  buildInputs = lib.optional enableCmount (if stdenv.isDarwin then macfuse-stubs else fuse);
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ];
+  buildFlagsArray = lib.optionals enableCmount [ "-tags=cmount" ]
+    ++ [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ];
 
   postInstall =
     let
@@ -34,6 +39,8 @@ buildGoModule rec {
         ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
         installShellCompletion rclone.$shell
       done
+    '' + lib.optionalString (enableCmount && !stdenv.isDarwin) ''
+      wrapProgram $out/bin/rclone --prefix LD_LIBRARY_PATH : "${fuse}/lib"
     '';
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/office/pyspread/default.nix b/third_party/nixpkgs/pkgs/applications/office/pyspread/default.nix
index 0b657e38f7..54d3b8f5c3 100644
--- a/third_party/nixpkgs/pkgs/applications/office/pyspread/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/pyspread/default.nix
@@ -1,44 +1,52 @@
 { lib
-, buildPythonApplication
-, fetchPypi
+, python3
+, fetchpatch
 , makeDesktopItem
-, makePythonPath
-, dateutil
-, matplotlib
-, numpy
-, pyenchant
-, pyqt5
-, pytest
-, python
 , qtsvg
-, runtimeShell
 , wrapQtAppsHook
 }:
 
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "pyspread";
-  version = "1.99.5";
+  version = "1.99.6";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-05bC+Uvx72FAh3qxkgXm8jdb/gHRv1D/M7tjOEdE3Xg=";
+    sha256 = "sha256-B1oyWUAXn63mmVFN9brJwbHxi7I5nYrK2JJU1DjAlb8=";
   };
 
-  pythonLibs = [
+  patches = [
+    # https://gitlab.com/pyspread/pyspread/-/merge_requests/34
+    (fetchpatch {
+      name = "entry-points.patch";
+      url = "https://gitlab.com/pyspread/pyspread/-/commit/3d8da6a7a7d76f7027d77ca95fac103961d729a2.patch";
+      excludes = [ "bin/pyspread" "bin/pyspread.bat" ];
+      sha256 = "1l614k7agv339hrin23jj7s1mq576vkdfkdim6wp224k7y37bnil";
+    })
+  ];
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    qtsvg
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
     dateutil
+    markdown2
     matplotlib
     numpy
     pyenchant
     pyqt5
-  ];
-
-  nativeBuildInputs = [ wrapQtAppsHook ];
-  buildInputs = pythonLibs ++ [
-    qtsvg
+    setuptools
   ];
 
   doCheck = false; # it fails miserably with a core dump
 
+  pythonImportsCheck = [ "pyspread" ];
+
   desktopItem = makeDesktopItem rec {
     name = pname;
     exec = name;
@@ -50,20 +58,11 @@ buildPythonApplication rec {
   };
 
   postInstall = ''
-    runHook preInstall
-    install -D $out/share/applications
-    install -m 644 $desktopItem/share/applications/* $out/share/applications
-    runHook postInstall
+    install -m 444 -Dt $out/share/applications ${desktopItem}/share/applications/*
   '';
 
-  fixupPhase = ''
-    runHook preFixup
-    sed -i -e "s|#!/bin/bash|#!${runtimeShell}|" $out/bin/pyspread
-    wrapProgram $out/bin/pyspread \
-      --prefix PYTHONPATH ':' $(toPythonPath $out):${makePythonPath pythonLibs} \
-      --prefix PATH ':' ${python}/bin/ \
-      ''${qtWrapperArgs[@]}
-    runHook postFixup
+  preFixup = ''
+    makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/office/trilium/default.nix b/third_party/nixpkgs/pkgs/applications/office/trilium/default.nix
index 2680a9a6a5..32c9dc79d6 100644
--- a/third_party/nixpkgs/pkgs/applications/office/trilium/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/office/trilium/default.nix
@@ -19,16 +19,16 @@ let
     maintainers = with maintainers; [ fliegendewurst ];
   };
 
-  version = "0.46.6";
+  version = "0.46.7";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "0nxlph23gkxrn10gnm0ncsy54fzcmbqcrrk492ygfgw8a8pl4ah1";
+    sha256 = "0saqj32jcb9ga418bpdxy93hf1z8nmwzf76rfgnnac7286ciyinr";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "0z9wg84sdbpk8zhljydm05z7cqqv2ly9s921cli7rs8hcpl175cz";
+    sha256 = "0b9bbm1iyaa5wf758085m6kfbq4li1iimj11ryf9xv9fzrbc4gvs";
   };
 
 in {
diff --git a/third_party/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix b/third_party/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
index aea0944b29..67d7dbea17 100644
--- a/third_party/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/radio/multimon-ng/default.nix
@@ -1,10 +1,8 @@
-{ lib, stdenv, fetchFromGitHub, qt4, qmake4Hook, libpulseaudio }:
-let
-  version = "1.1.9";
-in
-stdenv.mkDerivation {
+{ lib, stdenv, fetchFromGitHub, cmake, libpulseaudio, libX11 }:
+
+stdenv.mkDerivation rec {
   pname = "multimon-ng";
-  inherit version;
+  version = "1.1.9";
 
   src = fetchFromGitHub {
     owner = "EliasOenal";
@@ -13,16 +11,9 @@ stdenv.mkDerivation {
     sha256 = "01716cfhxfzsab9zjply9giaa4nn4b7rm3p3vizrwi7n253yiwm2";
   };
 
-  buildInputs = [ qt4 libpulseaudio ];
+  buildInputs = [ libpulseaudio libX11 ];
 
-  nativeBuildInputs = [ qmake4Hook ];
-
-  qmakeFlags = [ "multimon-ng.pro" ];
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp multimon-ng $out/bin
-  '';
+  nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
     description = "Multimon is a digital baseband audio protocol decoder";
@@ -39,6 +30,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/EliasOenal/multimon-ng";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
-    maintainers = [ maintainers.markuskowa ];
+    maintainers = with maintainers; [ markuskowa ];
   };
 }
diff --git a/third_party/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix b/third_party/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix
new file mode 100644
index 0000000000..bfa561437e
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/science/biology/meme-suite/default.nix
@@ -0,0 +1,21 @@
+{ lib, stdenv, fetchurl, python3, perl, glibc, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "meme-suite";
+  version = "5.1.1";
+
+  src = fetchurl {
+    url = "https://meme-suite.org/meme-software/${version}/meme-${version}.tar.gz";
+    sha256 = "38d73d256d431ad4eb7da2c817ce56ff2b4e26c39387ff0d6ada088938b38eb5";
+  };
+
+  buildInputs = [ zlib ];
+  nativeBuildInputs = [ perl python3 ];
+
+  meta = with lib; {
+    description = "Motif-based sequence analysis tools";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ gschwartz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix b/third_party/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
index dc952dc232..2070800415 100644
--- a/third_party/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
 let
   pname = "geogebra";
-  version = "6-0-620-0";
+  version = "6-0-631-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/20210101214511/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+        "https://web.archive.org/web/20210406083122/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
       ];
-      sha256 = "0xxzmphbfvmhnxnc1pkjgdhccjndyzmlvvaa8xfdrvswwwk7zh43";
+      sha256 = "1k4jxcvxxjxfrdghs4a29zpp4yid2vh1mfgp8xxr3qlzxnqv92ha";
     };
 
     dontConfigure = true;
@@ -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/20210101214236/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"
       ];
-      sha256 = "13g05d45j6dn9zwxpxnln83j7w1cvcd7l8jnir30pxlmdi7h8r78";
+      sha256 = "0fa680yyz4nry1xvb9v6qqh1mib6grff5d3p7d90nyjlv101p262";
     };
 
     dontUnpack = true;
diff --git a/third_party/nixpkgs/pkgs/applications/science/misc/root/default.nix b/third_party/nixpkgs/pkgs/applications/science/misc/root/default.nix
index 9df3b0020a..ab5352975f 100644
--- a/third_party/nixpkgs/pkgs/applications/science/misc/root/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/misc/root/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "6.22.06";
+  version = "6.22.08";
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    sha256 = "0mqvj42nax0bmz8h83jjlwjm3xxjy1n0n10inc8csip9ly28fs64";
+    sha256 = "0vrgi83hrw4n9zgx873fn4ba3vk54slrwk1cl4cc4plgxzv1y1kg";
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/third_party/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index 82959e7f5e..c4d9605ddf 100644
--- a/third_party/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -6,7 +6,7 @@
 
 mkDerivation rec {
   pname = "qgroundcontrol";
-  version = "4.1.1";
+  version = "4.1.2";
 
   qtInputs = [
     qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
@@ -63,7 +63,7 @@ mkDerivation rec {
     owner = "mavlink";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1dji7jmwsrgcgzhra94wrgz67ydsdra7p10fw8gbw54gf6ncjfjm";
+    sha256 = "16q0g9b1kyan3qhhp5mmfnrx9h8q7qn83baplbiprqjgpvkxfll4";
     fetchSubmodules = true;
   };
 
diff --git a/third_party/nixpkgs/pkgs/applications/search/recoll/default.nix b/third_party/nixpkgs/pkgs/applications/search/recoll/default.nix
index 48671582fb..a07340469f 100644
--- a/third_party/nixpkgs/pkgs/applications/search/recoll/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/search/recoll/default.nix
@@ -46,10 +46,12 @@ mkDerivation rec {
     ++ lib.optionals (!withGui) [ "--disable-qtgui" "--disable-x11mon" ]
     ++ (if stdenv.isLinux then [ "--with-inotify" ] else [ "--without-inotify" ]);
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [
+    file pkg-config python3Packages.setuptools which
+  ];
 
-  buildInputs = with python3Packages; [
-    bison chmlib file python setuptools which xapian zlib
+  buildInputs = [
+    bison chmlib python3Packages.python xapian zlib
   ] ++ lib.optional withGui qtbase
     ++ lib.optional stdenv.isDarwin libiconv;
 
@@ -98,6 +100,6 @@ mkDerivation rec {
     homepage = "https://www.lesbonscomptes.com/recoll/";
     license = licenses.gpl2;
     platforms = platforms.unix;
-    maintainers = [ maintainers.jcumming ];
+    maintainers = with maintainers; [ jcumming kiyengar ];
   };
 }
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
index 4199cf0910..63fd61f667 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gitkraken";
-  version = "7.5.3";
+  version = "7.5.4";
 
   src = fetchzip {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "0vxvfq0dh6l1plqbq67gfydr8bh5w3q6d5y3bn3rdia10wa1dac6";
+    sha256 = "1laqki01zcmsl9s18dnwg3x3jbbs0xcipiyj2qlsb1sx9y4x05wm";
   };
 
   dontBuild = true;
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/data.json
index df9f225536..aa5338ea7c 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/data.json
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -1,13 +1,13 @@
 {
-  "version": "13.9.4",
-  "repo_hash": "0gwxjmph3ac5v0h5zz8664412yq09cka5p4amdbxk7hna24igksz",
+  "version": "13.10.2",
+  "repo_hash": "1q3qnfzhikbbsmzzbldwn6xvsyxr1jgv5lj7mgcji11j8qv1a625",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.9.4-ee",
+  "rev": "v13.10.2-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.9.4",
-    "GITLAB_PAGES_VERSION": "1.35.0",
+    "GITALY_SERVER_VERSION": "13.10.2",
+    "GITLAB_PAGES_VERSION": "1.36.0",
     "GITLAB_SHELL_VERSION": "13.17.0",
-    "GITLAB_WORKHORSE_VERSION": "8.63.2"
+    "GITLAB_WORKHORSE_VERSION": "13.10.2"
   }
 }
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
index b9c352a4ea..4cd64dc8ad 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, fetchFromGitLab, bundlerEnv
 , ruby, tzdata, git, nettools, nixosTests, nodejs, openssl
 , gitlabEnterprise ? false, callPackage, yarn
-, fixup_yarn_lock, replace
+, fixup_yarn_lock, replace, file
 }:
 
 let
@@ -32,6 +32,10 @@ let
         openssl = x.openssl // {
           buildInputs = [ openssl ];
         };
+        ruby-magic-static = x.ruby-magic-static // {
+          buildInputs = [ file ];
+          buildFlags = [ "--enable-system-libraries" ];
+        };
       };
     groups = [
       "default" "unicorn" "ed25519" "metrics" "development" "puma" "test" "kerberos"
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index d2b3d2ea0e..00215cc55e 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -1,6 +1,6 @@
 source 'https://rubygems.org'
 
-gem 'rugged', '~> 1.0.1'
+gem 'rugged', '~> 1.1'
 gem 'github-linguist', '~> 7.12', require: 'linguist'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'activesupport', '~> 6.0.3.4'
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index 83c5f20f73..32d761f9f3 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -183,7 +183,7 @@ GEM
     rubocop-ast (0.2.0)
       parser (>= 2.7.0.1)
     ruby-progressbar (1.10.1)
-    rugged (1.0.1)
+    rugged (1.1.0)
     sanitize (4.6.6)
       crass (~> 1.0.2)
       nokogiri (>= 1.4.4)
@@ -233,7 +233,7 @@ DEPENDENCIES
   rspec
   rspec-parameterized
   rubocop (~> 0.69)
-  rugged (~> 1.0.1)
+  rugged (~> 1.1)
   sentry-raven (~> 3.0)
   timecop
 
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 37e97522fa..260b3b4939 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -4,18 +4,6 @@
 , libgit2, openssl, zlib, pcre, http-parser }:
 
 let
-  # libgit2 was updated to 1.1.0 in nixpkgs, but gitlab doesn't support that yet.
-  # See https://github.com/NixOS/nixpkgs/pull/106909
-  libgit = libgit2.overrideAttrs (attrs: rec {
-    version = "1.0.0";
-    src = fetchFromGitHub {
-      owner = "libgit2";
-      repo = "libgit2";
-      rev = "v${version}";
-      sha256 = "06cwrw93ycpfb5kisnsa5nsy95pm11dbh0vvdjg1jn25h9q5d3vc";
-    };
-  });
-
   rubyEnv = bundlerEnv rec {
     name = "gitaly-env";
     inherit ruby;
@@ -33,17 +21,17 @@ let
       };
   };
 in buildGoModule rec {
-  version = "13.9.4";
+  version = "13.10.2";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "sha256-6ocP4SMafvLI2jfvcB8jk1AemAI/TiBQ1iaVxK7I54A=";
+    sha256 = "sha256-5CjZs5tpEEsgQGBFa8BeZ7SDhIeGKqAHWwbR8hSoCPs=";
   };
 
-  vendorSha256 = "10ssx0dvbzg70vr2sgnhzijnjxfw6533wdjxwakj62rpfayklp51";
+  vendorSha256 = "sha256-8AopoiLmg6kfvYbZDOfFWBy1o5tbnxsKxSBX20OasIE=";
 
   passthru = {
     inherit rubyEnv;
@@ -51,7 +39,7 @@ in buildGoModule rec {
 
   buildFlags = [ "-tags=static,system_libgit2" ];
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ rubyEnv.wrappedRuby libgit openssl zlib pcre http-parser ];
+  buildInputs = [ rubyEnv.wrappedRuby libgit2 openssl zlib pcre http-parser ];
   doCheck = false;
 
   postInstall = ''
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 7b4928918f..90655ef9e9 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -829,10 +829,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "056bwiwxvnbkbgsr2wqcsknnc73nqasqdnjcpgj2r61wkm8mzmbn";
+      sha256 = "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   sanitize = {
     dependencies = ["crass" "nokogiri" "nokogumbo"];
@@ -953,4 +953,4 @@
     };
     version = "2.4.2";
   };
-}
\ No newline at end of file
+}
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 64e1668ba0..ff34a2d359 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -1,18 +1,22 @@
 { lib, fetchFromGitLab, git, buildGoModule }:
-
+let
+  data = (builtins.fromJSON (builtins.readFile ../data.json));
+in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "8.63.2";
+  version = "13.10.2";
 
   src = fetchFromGitLab {
-    owner = "gitlab-org";
-    repo = "gitlab-workhorse";
-    rev = "v${version}";
-    sha256 = "1vjk7r7228p2gblx9nmqiz70ckbllg1p3bwkyfd4m49jhp13hryi";
+    owner = data.owner;
+    repo = data.repo;
+    rev = data.rev;
+    sha256 = data.repo_hash;
   };
 
-  vendorSha256 = "0hc02nxw5jp1mhpjcx1f2a2dfaq7ji4qkf5g7lbpd1rzhqwp6zsz";
+  sourceRoot = "source/workhorse";
+
+  vendorSha256 = "sha256-UCkUSv1ZjDHmTFnETU8dz4moYRDCvy6AYTTfjHBGKeE=";
   buildInputs = [ git ];
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
   doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index ec253c37b3..af00e6e7af 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -17,7 +17,7 @@ gem 'default_value_for', '~> 3.4.0'
 # Supported DBs
 gem 'pg', '~> 1.1'
 
-gem 'rugged', '~> 1.0.1'
+gem 'rugged', '~> 1.1'
 gem 'grape-path-helpers', '~> 1.6.1'
 
 gem 'faraday', '~> 1.0'
@@ -25,13 +25,13 @@ gem 'marginalia', '~> 1.10.0'
 
 # Authentication libraries
 gem 'devise', '~> 4.7.2'
-# TODO: verify ARM compile issue on 3.1.13+ version (see https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18828)
-gem 'bcrypt', '3.1.12'
+gem 'bcrypt', '~> 3.1', '>= 3.1.14'
 gem 'doorkeeper', '~> 5.5.0.rc2'
 gem 'doorkeeper-openid_connect', '~> 1.7.5'
 gem 'omniauth', '~> 1.8'
 gem 'omniauth-auth0', '~> 2.0.0'
-gem 'omniauth-azure-oauth2', '~> 0.0.9'
+gem 'omniauth-azure-activedirectory-v2', '~> 0.1'
+gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version
 gem 'omniauth-cas3', '~> 1.1.4'
 gem 'omniauth-facebook', '~> 4.0.0'
 gem 'omniauth-github', '~> 1.4'
@@ -73,6 +73,9 @@ gem 'acme-client', '~> 2.0', '>= 2.0.6'
 # Browser detection
 gem 'browser', '~> 4.2'
 
+# OS detection for usage ping
+gem 'ohai', '~> 16.10'
+
 # GPG
 gem 'gpgme', '~> 2.0.19'
 
@@ -88,7 +91,7 @@ gem 'grape-entity', '~> 0.7.1'
 gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
 
 # GraphQL API
-gem 'graphql', '~> 1.11.4'
+gem 'graphql', '~> 1.11.8'
 # 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
@@ -112,16 +115,16 @@ gem 'carrierwave', '~> 1.3'
 gem 'mini_magick', '~> 4.10.1'
 
 # for backups
-gem 'fog-aws', '~> 3.8'
+gem 'fog-aws', '~> 3.9'
 # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
 # Also see config/initializers/fog_core_patch.rb.
 gem 'fog-core', '= 2.1.0'
-gem 'fog-google', '~> 1.12'
+gem 'gitlab-fog-google', '~> 1.13', require: 'fog/google'
 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.0', require: false
+gem 'gitlab-fog-azure-rm', '~> 1.0.1', require: false
 
 # for Google storage
 gem 'google-api-client', '~> 0.33'
@@ -195,7 +198,7 @@ gem 'acts-as-taggable-on', '~> 7.0'
 gem 'sidekiq', '~> 5.2.7'
 gem 'sidekiq-cron', '~> 1.0'
 gem 'redis-namespace', '~> 1.7.0'
-gem 'gitlab-sidekiq-fetcher', '0.5.2', require: 'sidekiq-reliable-fetch'
+gem 'gitlab-sidekiq-fetcher', '0.5.5', require: 'sidekiq-reliable-fetch'
 
 # Cron Parser
 gem 'fugit', '~> 1.2.1'
@@ -233,10 +236,7 @@ gem 'connection_pool', '~> 2.0'
 gem 'redis-rails', '~> 5.0.2'
 
 # Discord integration
-gem 'discordrb-webhooks-blackst0ne', '~> 3.3', require: false
-
-# HipChat integration
-gem 'hipchat', '~> 1.5.0'
+gem 'discordrb-webhooks', '~> 3.4', require: false
 
 # Jira integration
 gem 'jira-ruby', '~> 2.1.4'
@@ -274,7 +274,10 @@ gem 'licensee', '~> 9.14.1'
 gem 'charlock_holmes', '~> 0.7.7'
 
 # Detect mime content type from content
-gem 'mimemagic', '~> 0.3.2'
+gem 'ruby-magic-static', '~> 0.3.4'
+
+# Fake version of the gem to trick bundler
+gem 'mimemagic', '~> 0.3.10'
 
 # Faster blank
 gem 'fast_blank'
@@ -309,7 +312,7 @@ gem 'pg_query', '~> 1.3.0'
 gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '0.14.0'
+gem 'gitlab-labkit', '~> 0.16.1'
 # Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0
 # because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900
 gem 'thrift', '>= 0.14.0'
@@ -321,7 +324,7 @@ gem 'gettext_i18n_rails', '~> 1.8.0'
 gem 'gettext_i18n_rails_js', '~> 1.3'
 gem 'gettext', '~> 3.3', require: false, group: :development
 
-gem 'batch-loader', '~> 1.4.0'
+gem 'batch-loader', '~> 2.0.1'
 
 # Perf bar
 gem 'peek', '~> 1.1'
@@ -341,7 +344,6 @@ end
 
 group :development do
   gem 'brakeman', '~> 4.2', require: false
-  gem 'danger', '~> 8.0.6', require: false
   gem 'lefthook', '~> 0.7', require: false
 
   gem 'letter_opener_web', '~> 1.3.4'
@@ -375,9 +377,8 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 6.0.0', require: false
+  gem 'gitlab-styles', '~> 6.1.0', require: false
 
-  gem 'scss_lint', '~> 0.59.0', require: false
   gem 'haml_lint', '~> 0.36.0', require: false
   gem 'bundler-audit', '~> 0.7.0.1', require: false
 
@@ -397,6 +398,11 @@ group :development, :test do
   gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
 end
 
+group :development, :test, :danger do
+  gem 'danger-gitlab', '~> 8.0', require: false
+  gem 'gitlab-dangerfiles', '~> 0.8.0', require: false
+end
+
 group :development, :test, :coverage do
   gem 'simplecov', '~> 0.18.5', require: false
   gem 'simplecov-cobertura', '~> 1.3.1', require: false
@@ -433,7 +439,7 @@ end
 gem 'octokit', '~> 4.15'
 
 # https://gitlab.com/gitlab-org/gitlab/issues/207207
-gem 'gitlab-mail_room', '~> 0.0.8', require: 'mail_room'
+gem 'gitlab-mail_room', '~> 0.0.9', require: 'mail_room'
 
 gem 'email_reply_trimmer', '~> 0.1'
 gem 'html2text'
@@ -482,7 +488,7 @@ gem 'flipper', '~> 0.17.1'
 gem 'flipper-active_record', '~> 0.17.1'
 gem 'flipper-active_support_cache_store', '~> 0.17.1'
 gem 'unleash', '~> 0.1.5'
-gem 'gitlab-experiment', '~> 0.4.9'
+gem 'gitlab-experiment', '~> 0.5.0'
 
 # Structured logging
 gem 'lograge', '~> 0.5'
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 1b6701e8e3..203d52ddb6 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -88,7 +88,7 @@ GEM
       asciidoctor (~> 2.0)
     asciidoctor-plantuml (0.0.12)
       asciidoctor (>= 1.5.6, < 3.0.0)
-    ast (2.4.1)
+    ast (2.4.2)
     atlassian-jwt (0.2.0)
       jwt (~> 2.1.0)
     attr_encrypted (3.1.0)
@@ -127,8 +127,8 @@ GEM
       nokogiri (~> 1.11.0.rc2)
     babosa (1.0.2)
     base32 (0.3.2)
-    batch-loader (1.4.0)
-    bcrypt (3.1.12)
+    batch-loader (2.0.1)
+    bcrypt (3.1.16)
     bcrypt_pbkdf (1.0.0)
     benchmark-ips (2.3.0)
     benchmark-memory (0.1.2)
@@ -172,6 +172,14 @@ GEM
     cbor (0.5.9.6)
     character_set (1.4.0)
     charlock_holmes (0.7.7)
+    chef-config (16.10.17)
+      addressable
+      chef-utils (= 16.10.17)
+      fuzzyurl
+      mixlib-config (>= 2.2.12, < 4.0)
+      mixlib-shellout (>= 2.0, < 4.0)
+      tomlrb (~> 1.2)
+    chef-utils (16.10.17)
     childprocess (3.0.0)
     chunky_png (1.3.5)
     citrus (3.0.2)
@@ -187,7 +195,7 @@ GEM
     concord (0.1.5)
       adamantium (~> 0.2.0)
       equalizer (~> 0.0.9)
-    concurrent-ruby (1.1.7)
+    concurrent-ruby (1.1.8)
     connection_pool (2.2.2)
     contracts (0.11.0)
     cork (0.3.0)
@@ -208,7 +216,7 @@ GEM
     css_parser (1.7.0)
       addressable
     daemons (1.3.1)
-    danger (8.0.6)
+    danger (8.2.3)
       claide (~> 1.0)
       claide-plugins (>= 0.9.2)
       colored2 (~> 3.1)
@@ -220,7 +228,10 @@ GEM
       kramdown-parser-gfm (~> 1.0)
       no_proxy_fix
       octokit (~> 4.7)
-      terminal-table (~> 1)
+      terminal-table (>= 1, < 4)
+    danger-gitlab (8.0.0)
+      danger
+      gitlab (~> 4.2, >= 4.2.0)
     database_cleaner (1.7.0)
     debugger-ruby_core_source (1.3.8)
     deckar01-task_list (2.3.1)
@@ -257,8 +268,8 @@ GEM
     diff-lcs (1.4.4)
     diff_match_patch (0.1.0)
     diffy (3.3.0)
-    discordrb-webhooks-blackst0ne (3.3.0)
-      rest-client (~> 2.0)
+    discordrb-webhooks (3.4.2)
+      rest-client (>= 2.0.0)
     docile (1.3.2)
     domain_name (0.5.20190701)
       unf (>= 0.0.5, < 1.0.0)
@@ -348,6 +359,8 @@ GEM
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
       rake
+    ffi-yajl (2.3.4)
+      libyajl2 (~> 1.2)
     flipper (0.17.1)
     flipper-active_record (0.17.1)
       activerecord (>= 4.2, < 7)
@@ -363,7 +376,7 @@ GEM
       fog-json
       ipaddress (~> 0.8)
       xml-simple (~> 1.1)
-    fog-aws (3.8.0)
+    fog-aws (3.9.0)
       fog-core (~> 2.1)
       fog-json (~> 1.1)
       fog-xml (~> 0.1)
@@ -373,12 +386,6 @@ GEM
       excon (~> 0.58)
       formatador (~> 0.2)
       mime-types
-    fog-google (1.12.0)
-      fog-core (<= 2.1.0)
-      fog-json (~> 1.2)
-      fog-xml (~> 0.1.0)
-      google-api-client (>= 0.44.2, < 0.51)
-      google-cloud-env (~> 1.2)
     fog-json (1.2.0)
       fog-core
       multi_json (~> 1.10)
@@ -403,6 +410,7 @@ GEM
     fuubar (2.2.0)
       rspec-core (~> 3.0)
       ruby-progressbar (~> 1.4)
+    fuzzyurl (0.9.0)
     gemoji (3.0.1)
     gemojione (3.3.0)
       json
@@ -423,38 +431,49 @@ GEM
     gitaly (13.9.0.pre.rc1)
       grpc (~> 1.0)
     github-markup (1.7.0)
+    gitlab (4.16.1)
+      httparty (~> 0.14, >= 0.14.0)
+      terminal-table (~> 1.5, >= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-experiment (0.4.9)
+    gitlab-dangerfiles (0.8.0)
+      danger
+    gitlab-experiment (0.5.0)
       activesupport (>= 3.0)
       scientist (~> 1.5, >= 1.5.0)
-    gitlab-fog-azure-rm (1.0.0)
+    gitlab-fog-azure-rm (1.0.1)
       azure-storage-blob (~> 2.0)
       azure-storage-common (~> 2.0)
       fog-core (= 2.1.0)
       fog-json (~> 1.2.0)
       mime-types
       ms_rest_azure (~> 0.12.0)
-    gitlab-labkit (0.14.0)
+    gitlab-fog-google (1.13.0)
+      addressable (>= 2.7.0)
+      fog-core (<= 2.1.0)
+      fog-json (~> 1.2)
+      fog-xml (~> 0.1.0)
+      google-api-client (>= 0.44.2, < 0.51)
+      google-cloud-env (~> 1.2)
+    gitlab-labkit (0.16.1)
       actionpack (>= 5.0.0, < 7.0.0)
       activesupport (>= 5.0.0, < 7.0.0)
-      gitlab-pg_query (~> 1.3)
       grpc (~> 1.19)
       jaeger-client (~> 1.1)
       opentracing (~> 0.4)
+      pg_query (~> 1.3)
       redis (> 3.0.0, < 5.0.0)
-    gitlab-license (1.3.0)
-    gitlab-mail_room (0.0.8)
+    gitlab-license (1.3.1)
+    gitlab-mail_room (0.0.9)
     gitlab-markup (1.7.1)
     gitlab-net-dns (0.9.1)
-    gitlab-pg_query (1.3.1)
     gitlab-pry-byebug (3.9.0)
       byebug (~> 11.0)
       pry (~> 0.13.0)
-    gitlab-sidekiq-fetcher (0.5.2)
+    gitlab-sidekiq-fetcher (0.5.5)
       sidekiq (~> 5)
-    gitlab-styles (6.0.0)
-      rubocop (~> 0.91.1)
+    gitlab-styles (6.1.0)
+      rubocop (~> 0.91, >= 0.91.1)
       rubocop-gitlab-security (~> 0.1.1)
       rubocop-performance (~> 1.9.2)
       rubocop-rails (~> 2.9)
@@ -520,7 +539,7 @@ GEM
       faraday (>= 1.0)
       faraday_middleware
       graphql-client
-    graphql (1.11.4)
+    graphql (1.11.8)
     graphql-client (0.16.0)
       activesupport (>= 3.0)
       graphql (~> 1.8)
@@ -574,9 +593,6 @@ GEM
       railties (>= 5.0)
     heapy (0.2.0)
       thor
-    hipchat (1.5.2)
-      httparty
-      mimemagic
     html-pipeline (2.13.2)
       activesupport (>= 2)
       nokogiri (>= 1.4)
@@ -598,7 +614,7 @@ GEM
       mime-types (~> 3.0)
       multi_xml (>= 0.5.2)
     httpclient (2.8.3)
-    i18n (1.8.7)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
     i18n_data (0.8.0)
     icalendar (2.4.1)
@@ -668,6 +684,7 @@ GEM
       actionmailer (>= 3.2)
       letter_opener (~> 1.0)
       railties (>= 3.2)
+    libyajl2 (1.2.0)
     license_finder (6.0.0)
       bundler
       rubyzip (>= 1, < 3)
@@ -711,12 +728,20 @@ GEM
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2020.0512)
-    mimemagic (0.3.5)
+    mimemagic (0.3.10)
+      nokogiri (~> 1)
+      rake
     mini_histogram (0.3.1)
     mini_magick (4.10.1)
     mini_mime (1.0.2)
     mini_portile2 (2.5.0)
     minitest (5.11.3)
+    mixlib-cli (2.1.8)
+    mixlib-config (3.0.9)
+      tomlrb
+    mixlib-log (3.0.9)
+    mixlib-shellout (3.2.5)
+      chef-utils
     ms_rest (0.7.6)
       concurrent-ruby (~> 1.0)
       faraday (>= 0.9, < 2.0.0)
@@ -737,10 +762,12 @@ GEM
       mustermann (>= 1.0.0)
     nap (1.1.0)
     nenv (0.3.0)
-    net-http-persistent (4.0.0)
+    net-http-persistent (4.0.1)
       connection_pool (~> 2.2)
     net-ldap (0.16.3)
     net-ntp (2.1.3)
+    net-scp (3.0.0)
+      net-ssh (>= 2.6.5, < 7.0.0)
     net-ssh (6.0.0)
     netrc (0.11.0)
     nio4r (2.5.4)
@@ -764,6 +791,19 @@ GEM
     octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
+    ohai (16.10.6)
+      chef-config (>= 12.8, < 17)
+      chef-utils (>= 16.0, < 17)
+      ffi (~> 1.9)
+      ffi-yajl (~> 2.2)
+      ipaddress
+      mixlib-cli (>= 1.7.0)
+      mixlib-config (>= 2.0, < 4.0)
+      mixlib-log (>= 2.0.1, < 4.0)
+      mixlib-shellout (>= 2.0, < 4.0)
+      plist (~> 3.1)
+      train-core
+      wmi-lite (~> 1.0)
     oj (3.10.6)
     omniauth (1.9.0)
       hashie (>= 3.4.6, < 3.7.0)
@@ -776,6 +816,8 @@ GEM
     omniauth-authentiq (0.3.3)
       jwt (>= 1.5)
       omniauth-oauth2 (>= 1.5)
+    omniauth-azure-activedirectory-v2 (0.1.1)
+      omniauth-oauth2
     omniauth-azure-oauth2 (0.0.10)
       jwt (>= 1.0, < 3.0)
       omniauth (~> 1.0)
@@ -855,6 +897,7 @@ GEM
       railties (>= 4.0.0)
     pg (1.2.3)
     pg_query (1.3.0)
+    plist (3.6.0)
     png_quantizator (0.2.1)
     po_to_json (1.0.1)
       json (>= 1.6.0)
@@ -1041,16 +1084,16 @@ GEM
       pg
       rails
       sqlite3
-    rubocop (0.91.1)
+    rubocop (0.93.1)
       parallel (~> 1.10)
-      parser (>= 2.7.1.1)
+      parser (>= 2.7.1.5)
       rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 1.7)
+      regexp_parser (>= 1.8)
       rexml
-      rubocop-ast (>= 0.4.0, < 1.0)
+      rubocop-ast (>= 0.6.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 2.0)
-    rubocop-ast (0.8.0)
+    rubocop-ast (1.4.1)
       parser (>= 2.7.1.5)
     rubocop-gitlab-security (0.1.1)
       rubocop (>= 0.51)
@@ -1068,6 +1111,8 @@ GEM
       i18n
     ruby-fogbugz (0.2.1)
       crack (~> 0.4)
+    ruby-magic-static (0.3.5)
+      mini_portile2 (~> 2.5.0)
     ruby-prof (1.3.1)
     ruby-progressbar (1.11.0)
     ruby-saml (1.7.2)
@@ -1079,7 +1124,7 @@ GEM
     rubyntlm (0.6.2)
     rubypants (0.2.0)
     rubyzip (2.0.0)
-    rugged (1.0.1)
+    rugged (1.1.0)
     safe_yaml (1.0.4)
     safety_net_attestation (0.4.0)
       jwt (~> 2.0)
@@ -1104,9 +1149,7 @@ GEM
     sawyer (0.8.2)
       addressable (>= 2.3.5)
       faraday (> 0.8, < 2.0)
-    scientist (1.5.0)
-    scss_lint (0.59.0)
-      sass (~> 3.5, >= 3.5.5)
+    scientist (1.6.0)
     securecompare (1.0.0)
     seed-fu (2.3.7)
       activerecord (>= 3.1)
@@ -1196,9 +1239,17 @@ GEM
       parslet (~> 1.8.0)
     toml-rb (1.0.0)
       citrus (~> 3.0, > 3.0)
+    tomlrb (1.3.0)
     tpm-key_attestation (0.9.0)
       bindata (~> 2.4)
       openssl-signature_algorithm (~> 0.4.0)
+    train-core (3.4.9)
+      addressable (~> 2.5)
+      ffi (!= 1.13.0)
+      json (>= 1.8, < 3.0)
+      mixlib-shellout (>= 2.0, < 4.0)
+      net-scp (>= 1.2, < 4.0)
+      net-ssh (>= 2.9, < 7.0)
     truncato (0.7.11)
       htmlentities (~> 4.3.1)
       nokogiri (>= 1.7.0, <= 2.0)
@@ -1235,7 +1286,7 @@ GEM
     validate_email (0.1.6)
       activemodel (>= 3.0)
       mail (>= 2.2.5)
-    validate_url (1.0.8)
+    validate_url (1.0.13)
       activemodel (>= 3.0.0)
       public_suffix
     validates_hostname (1.0.11)
@@ -1271,6 +1322,7 @@ GEM
       expression_parser
       rinku
     with_env (1.1.0)
+    wmi-lite (1.0.5)
     xml-simple (1.1.5)
     xpath (3.2.0)
       nokogiri (~> 1.8)
@@ -1302,8 +1354,8 @@ DEPENDENCIES
   aws-sdk-s3 (~> 1)
   babosa (~> 1.0.2)
   base32 (~> 0.3.0)
-  batch-loader (~> 1.4.0)
-  bcrypt (= 3.1.12)
+  batch-loader (~> 2.0.1)
+  bcrypt (~> 3.1, >= 3.1.14)
   bcrypt_pbkdf (~> 1.0)
   benchmark-ips (~> 2.3.0)
   benchmark-memory (~> 0.1)
@@ -1324,7 +1376,7 @@ DEPENDENCIES
   countries (~> 3.0)
   creole (~> 0.5.0)
   crystalball (~> 0.7.0)
-  danger (~> 8.0.6)
+  danger-gitlab (~> 8.0)
   database_cleaner (~> 1.7.0)
   deckar01-task_list (= 2.3.1)
   default_value_for (~> 3.4.0)
@@ -1335,7 +1387,7 @@ DEPENDENCIES
   devise-two-factor (~> 3.1.0)
   diff_match_patch (~> 0.1.0)
   diffy (~> 3.3)
-  discordrb-webhooks-blackst0ne (~> 3.3)
+  discordrb-webhooks (~> 3.4)
   doorkeeper (~> 5.5.0.rc2)
   doorkeeper-openid_connect (~> 1.7.5)
   ed25519 (~> 1.2)
@@ -1356,9 +1408,8 @@ DEPENDENCIES
   flipper-active_support_cache_store (~> 0.17.1)
   flowdock (~> 0.7)
   fog-aliyun (~> 0.3)
-  fog-aws (~> 3.8)
+  fog-aws (~> 3.9)
   fog-core (= 2.1.0)
-  fog-google (~> 1.12)
   fog-local (~> 0.6)
   fog-openstack (~> 1.0)
   fog-rackspace (~> 0.1.1)
@@ -1371,16 +1422,18 @@ DEPENDENCIES
   gitaly (~> 13.9.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-experiment (~> 0.4.9)
-  gitlab-fog-azure-rm (~> 1.0)
-  gitlab-labkit (= 0.14.0)
+  gitlab-dangerfiles (~> 0.8.0)
+  gitlab-experiment (~> 0.5.0)
+  gitlab-fog-azure-rm (~> 1.0.1)
+  gitlab-fog-google (~> 1.13)
+  gitlab-labkit (~> 0.16.1)
   gitlab-license (~> 1.3)
-  gitlab-mail_room (~> 0.0.8)
+  gitlab-mail_room (~> 0.0.9)
   gitlab-markup (~> 1.7.1)
   gitlab-net-dns (~> 0.9.1)
   gitlab-pry-byebug
-  gitlab-sidekiq-fetcher (= 0.5.2)
-  gitlab-styles (~> 6.0.0)
+  gitlab-sidekiq-fetcher (= 0.5.5)
+  gitlab-styles (~> 6.1.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
   gon (~> 6.2)
@@ -1393,7 +1446,7 @@ DEPENDENCIES
   grape_logging (~> 1.7)
   graphiql-rails (~> 1.4.10)
   graphlient (~> 0.4.0)
-  graphql (~> 1.11.4)
+  graphql (~> 1.11.8)
   graphql-docs (~> 1.6.0)
   grpc (~> 1.30.2)
   gssapi
@@ -1404,7 +1457,6 @@ DEPENDENCIES
   hashie
   hashie-forbidden_attributes
   health_check (~> 3.0)
-  hipchat (~> 1.5.0)
   html-pipeline (~> 2.13.2)
   html2text
   httparty (~> 0.16.4)
@@ -1433,7 +1485,7 @@ DEPENDENCIES
   marginalia (~> 1.10.0)
   memory_profiler (~> 0.9)
   method_source (~> 1.0)
-  mimemagic (~> 0.3.2)
+  mimemagic (~> 0.3.10)
   mini_magick (~> 4.10.1)
   minitest (~> 5.11.0)
   multi_json (~> 1.14.1)
@@ -1443,11 +1495,13 @@ DEPENDENCIES
   nokogiri (~> 1.11.1)
   oauth2 (~> 1.4)
   octokit (~> 4.15)
+  ohai (~> 16.10)
   oj (~> 3.10.6)
   omniauth (~> 1.8)
   omniauth-atlassian-oauth2 (~> 0.2.0)
   omniauth-auth0 (~> 2.0.0)
   omniauth-authentiq (~> 0.3.3)
+  omniauth-azure-activedirectory-v2 (~> 0.1)
   omniauth-azure-oauth2 (~> 0.0.9)
   omniauth-cas3 (~> 1.1.4)
   omniauth-facebook (~> 4.0.0)
@@ -1505,14 +1559,14 @@ DEPENDENCIES
   rspec_junit_formatter
   rspec_profiling (~> 0.0.6)
   ruby-fogbugz (~> 0.2.1)
+  ruby-magic-static (~> 0.3.4)
   ruby-prof (~> 1.3.0)
   ruby-progressbar (~> 1.10)
   ruby_parser (~> 3.15)
   rubyzip (~> 2.0.0)
-  rugged (~> 1.0.1)
+  rugged (~> 1.1)
   sanitize (~> 5.2.1)
   sassc-rails (~> 2.1.0)
-  scss_lint (~> 0.59.0)
   seed-fu (~> 2.3.7)
   selenium-webdriver (~> 3.142)
   sentry-raven (~> 3.0)
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 64d38a9a27..f6c26777f4 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -285,10 +285,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
       type = "gem";
     };
-    version = "2.4.1";
+    version = "2.4.2";
   };
   atlassian-jwt = {
     dependencies = ["jwt"];
@@ -475,20 +475,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09jaxxddqpgq8ynwd2gpjq5rkhw00zdjnqisk9qbpjgxzk6f8gwi";
+      sha256 = "17d8wwj880zar5h8zxdmw878shgmljmmv957802fw5nkg3gi3xwk";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "2.0.1";
   };
   bcrypt = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ysblqxkclmnhrd0kmb5mr8p38mbar633gdsb14b7dhkhgawgzfy";
+      sha256 = "02r1c3isfchs5fxivbq99gc3aq4vfyn8snhcy707dal1p8qz12qb";
       type = "gem";
     };
-    version = "3.1.12";
+    version = "3.1.16";
   };
   bcrypt_pbkdf = {
     groups = ["ed25519"];
@@ -703,6 +703,27 @@
     };
     version = "0.7.7";
   };
+  chef-config = {
+    dependencies = ["addressable" "chef-utils" "fuzzyurl" "mixlib-config" "mixlib-shellout" "tomlrb"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z3lashvhqy9v5b3xn8vzzf07gnjw4mgdiiryxsg6kdasvj62j8z";
+      type = "gem";
+    };
+    version = "16.10.17";
+  };
+  chef-utils = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cypir7fza7jfqaj1j1jh37d3i6bvrmm6jamjlngk3xbdbd56hm7";
+      type = "gem";
+    };
+    version = "16.10.17";
+  };
   childprocess = {
     groups = ["default" "test"];
     platforms = [];
@@ -805,10 +826,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      sha256 = "0mr23wq0szj52xnj0zcn1k0c7j4v79wlwbijkpfcscqww3l6jlg3";
       type = "gem";
     };
-    version = "1.1.7";
+    version = "1.1.8";
   };
   connection_pool = {
     groups = ["default"];
@@ -928,14 +949,25 @@
   };
   danger = {
     dependencies = ["claide" "claide-plugins" "colored2" "cork" "faraday" "faraday-http-cache" "git" "kramdown" "kramdown-parser-gfm" "no_proxy_fix" "octokit" "terminal-table"];
-    groups = ["development"];
+    groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lrifb0kbjk9033pzjnp8qqqkg2z212h8dgj71k15c6wb6rycqa7";
+      sha256 = "1nv02gq90nngnfa6hgiyyk60a31xfayk67va98k41gy9arhdkz5g";
       type = "gem";
     };
-    version = "8.0.6";
+    version = "8.2.3";
+  };
+  danger-gitlab = {
+    dependencies = ["danger" "gitlab"];
+    groups = ["danger" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a530kx5s5rbx5yx3jqay56lkksqh0yj468hcpg16faiyv8dfza9";
+      type = "gem";
+    };
+    version = "8.0.0";
   };
   database_cleaner = {
     groups = ["development" "test"];
@@ -1087,16 +1119,16 @@
     };
     version = "3.3.0";
   };
-  discordrb-webhooks-blackst0ne = {
+  discordrb-webhooks = {
     dependencies = ["rest-client"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f0dw6ci5cbrxrvvqw2kqabpzyjisd4hflbi370rpb4cakkzgw39";
+      sha256 = "0viw73jd9vs9f92a9q2vxcd29755h7w8jwz36jmvcdl2najainyg";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.2";
   };
   docile = {
     groups = ["default" "development" "test"];
@@ -1563,6 +1595,17 @@
     };
     version = "1.0.1";
   };
+  ffi-yajl = {
+    dependencies = ["libyajl2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pfmn0gprc3c15baxa9rx64pqllk64m60f5vg4gp0icpafkp0jx5";
+      type = "gem";
+    };
+    version = "2.3.4";
+  };
   flipper = {
     groups = ["default"];
     platforms = [];
@@ -1623,10 +1666,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q7n8r03akjbdz3r2bgsl6wcjvdlf0k508z8bsd9zgs43qg14vc9";
+      sha256 = "10y32rm3vcfh82p2fdr2zq8ibknx1jslmai5m0r261bdr3brkssm";
       type = "gem";
     };
-    version = "3.8.0";
+    version = "3.9.0";
   };
   fog-core = {
     dependencies = ["builder" "excon" "formatador" "mime-types"];
@@ -1639,17 +1682,6 @@
     };
     version = "2.1.0";
   };
-  fog-google = {
-    dependencies = ["fog-core" "fog-json" "fog-xml" "google-api-client" "google-cloud-env"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1cl6rprichdn1i40c2ndri1c53cfb0x2xk58l9arwip9ivkasln4";
-      type = "gem";
-    };
-    version = "1.12.0";
-  };
   fog-json = {
     dependencies = ["fog-core" "multi_json"];
     groups = ["default"];
@@ -1737,6 +1769,16 @@
     };
     version = "2.2.0";
   };
+  fuzzyurl = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03qchs33vfwbsv5awxg3acfmlcrf5xbhnbrc83fdpamwya0glbjl";
+      type = "gem";
+    };
+    version = "0.9.0";
+  };
   gemoji = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -1834,6 +1876,17 @@
     };
     version = "1.7.0";
   };
+  gitlab = {
+    dependencies = ["httparty" "terminal-table"];
+    groups = ["danger" "default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kq77304vn733xc8iipq4wpdk5qb0zwjryhm3fia3mfsrdcp1z8k";
+      type = "gem";
+    };
+    version = "4.16.1";
+  };
   gitlab-chronic = {
     dependencies = ["numerizer"];
     groups = ["default"];
@@ -1845,16 +1898,27 @@
     };
     version = "0.10.5";
   };
+  gitlab-dangerfiles = {
+    dependencies = ["danger"];
+    groups = ["danger" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09ggs890b5gfphnz7ayavs55l6xhw323spfd22dg246g0rw9vliy";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
   gitlab-experiment = {
     dependencies = ["activesupport" "scientist"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0skqg90i6qdpm7dhy8bv99gk8siwgm6mpr675790ngri1ns4f5xk";
+      sha256 = "0x4hyva7ypi2mx5jcyxac8w7ffai1pkkjc49fk3avqh4aimlibfr";
       type = "gem";
     };
-    version = "0.4.9";
+    version = "0.5.0";
   };
   gitlab-fog-azure-rm = {
     dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types" "ms_rest_azure"];
@@ -1862,41 +1926,52 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04l7ps0vvrqq8i25q7ic2zy2n8f8f1l7sn1shf5wccy1cbyj9pig";
+      sha256 = "05yc5fp45v7y6h838zrj4666ar1ddhn8i5bbdxm8j73yrn2kjnal";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
-  gitlab-labkit = {
-    dependencies = ["actionpack" "activesupport" "gitlab-pg_query" "grpc" "jaeger-client" "opentracing" "redis"];
+  gitlab-fog-google = {
+    dependencies = ["addressable" "fog-core" "fog-json" "fog-xml" "google-api-client" "google-cloud-env"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0l4sbvlk6qc0x8372rp1gc2ihmx3vp0afrm5cy55xhflq16y7sl1";
+      sha256 = "0ybmiclsdpkp1l91z6d4qkhha6cik6kgf4kzs3a2c26mhnnj6gxy";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "1.13.0";
+  };
+  gitlab-labkit = {
+    dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03i8fc1yzm5yzqxb8bxhjkhqpj17fy71vg2z02bcj4mzbj0piflx";
+      type = "gem";
+    };
+    version = "0.16.1";
   };
   gitlab-license = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04846kr8pw0fkw4mavakai978raq5d2kjna4rawxpc3dqlr897g4";
+      sha256 = "01z5pb6fg1j83p73vys2fhj7qh60zkqbgiyp4nvw013a6hjlv3qk";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   gitlab-mail_room = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05j8rpsbl2l5q4xnfh2cnws9axy1a19asg8nlw6jngba94raw5ir";
+      sha256 = "0745kls2bazgk6kbmlq1dmd42z8bgxkyn6ki9snxka8abi5kf037";
       type = "gem";
     };
-    version = "0.0.8";
+    version = "0.0.9";
   };
   gitlab-markup = {
     groups = ["default"];
@@ -1918,16 +1993,6 @@
     };
     version = "0.9.1";
   };
-  gitlab-pg_query = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1rybirjyclavp641qdx27483xx0zpmc577wdzfgdnjd7753bya7g";
-      type = "gem";
-    };
-    version = "1.3.1";
-  };
   gitlab-pry-byebug = {
     dependencies = ["byebug" "pry"];
     groups = ["development" "test"];
@@ -1949,10 +2014,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dvx2klf1a1xyf15q34fn59291v6jwx3z315rxb2dmkvcr9873m1";
+      sha256 = "055v0cxvxgy12iwhqa2xbsxa9j6ww7p1f5jqwncwsnr7l6f1f4c9";
       type = "gem";
     };
-    version = "0.5.2";
+    version = "0.5.5";
   };
   gitlab-styles = {
     dependencies = ["rubocop" "rubocop-gitlab-security" "rubocop-performance" "rubocop-rails" "rubocop-rspec"];
@@ -1960,10 +2025,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17d238cy031gnjmrk6wl3qyk5kqhqjxrb68813n4y9ia817xmwyp";
+      sha256 = "0y3livdpkdzp4cy47ycpwqa7nhrf6fb1ff2lwhh4l5n4dpqympwn";
       type = "gem";
     };
-    version = "6.0.0";
+    version = "6.1.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -2145,10 +2210,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01ldxhn59lfg5ivxc9m11v1qhw29ql95qcvwwcap49n0z7d1i3k5";
+      sha256 = "0rm59b6klp97287h01aj8hr12mhsya585as2z1sk8hq2lp51imfn";
       type = "gem";
     };
-    version = "1.11.4";
+    version = "1.11.8";
   };
   graphql-client = {
     dependencies = ["activesupport" "graphql"];
@@ -2332,17 +2397,6 @@
     };
     version = "0.2.0";
   };
-  hipchat = {
-    dependencies = ["httparty" "mimemagic"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0hgy5jav479vbzzk53lazhpjj094dcsqw6w1d6zjn52p72bwq60k";
-      type = "gem";
-    };
-    version = "1.5.2";
-  };
   html-pipeline = {
     dependencies = ["activesupport" "nokogiri"];
     groups = ["default" "development" "test"];
@@ -2455,10 +2509,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kr0bx9323fv5ys6nlhsy05kmwcbs94h6ac7ka9qqywy0vbdvrrv";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "1.8.7";
+    version = "1.8.9";
   };
   i18n_data = {
     groups = ["default"];
@@ -2758,6 +2812,16 @@
     };
     version = "1.3.4";
   };
+  libyajl2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n5j0p8dxf9xzb9n4bkdr8w0a8gg3jzrn9indri3n0fv90gcs5qi";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
   license_finder = {
     dependencies = ["rubyzip" "thor" "toml" "with_env" "xml-simple"];
     groups = ["development" "omnibus" "test"];
@@ -2953,14 +3017,15 @@
     version = "3.2020.0512";
   };
   mimemagic = {
+    dependencies = ["nokogiri" "rake"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
+      sha256 = "0cqm9n9122qpksn9v6mp0gn3lrzxhh72lwl7yb6j75gykdan6h41";
       type = "gem";
     };
-    version = "0.3.5";
+    version = "0.3.10";
   };
   mini_histogram = {
     groups = ["default" "test"];
@@ -3012,6 +3077,48 @@
     };
     version = "5.11.3";
   };
+  mixlib-cli = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ydxlfgd7nnj3rp1y70k4yk96xz5cywldjii2zbnw3sq9pippwp6";
+      type = "gem";
+    };
+    version = "2.1.8";
+  };
+  mixlib-config = {
+    dependencies = ["tomlrb"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1askip583sfnz25gywd508l3vj5wnvx9vp7gm1sfnixm7amssrwq";
+      type = "gem";
+    };
+    version = "3.0.9";
+  };
+  mixlib-log = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n5dm5iz90ijvjn59jfm8gb8hgsvbj0f1kpzbl38b02z0z4a4v7x";
+      type = "gem";
+    };
+    version = "3.0.9";
+  };
+  mixlib-shellout = {
+    dependencies = ["chef-utils"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1g99c3s5zvrwvlv3gjw5fvpdimybpfazqyszjim5kdjjbq0586hj";
+      type = "gem";
+    };
+    version = "3.2.5";
+  };
   ms_rest = {
     dependencies = ["concurrent-ruby" "faraday" "timeliness"];
     groups = ["default"];
@@ -3132,10 +3239,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sbdvkn7mzl883iykz74hgp14qj041gldf2vdk9g3gyqc843l2vr";
+      sha256 = "1yfypmfg1maf20yfd22zzng8k955iylz7iip0mgc9lazw36g8li7";
       type = "gem";
     };
-    version = "4.0.0";
+    version = "4.0.1";
   };
   net-ldap = {
     groups = ["default"];
@@ -3157,6 +3264,17 @@
     };
     version = "2.1.3";
   };
+  net-scp = {
+    dependencies = ["net-ssh"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b4h3ip8d1gkrc0znnw54hbxillk73mdnaf5pz330lmrcl1wiilg";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
   net-ssh = {
     groups = ["default"];
     platforms = [];
@@ -3272,6 +3390,17 @@
     };
     version = "4.20.0";
   };
+  ohai = {
+    dependencies = ["chef-config" "chef-utils" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "train-core" "wmi-lite"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08pc5l9p741g08x7xzbkkyi2kz5m5xr8rdj6hfna9bjzb1p80ddq";
+      type = "gem";
+    };
+    version = "16.10.6";
+  };
   oj = {
     groups = ["default"];
     platforms = [];
@@ -3326,6 +3455,17 @@
     };
     version = "0.3.3";
   };
+  omniauth-azure-activedirectory-v2 = {
+    dependencies = ["omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bgdyzjh7x9knkzaa6bl9f5fvh05nd0gqxrqassww0vqh5qgyfpy";
+      type = "gem";
+    };
+    version = "0.1.1";
+  };
   omniauth-azure-oauth2 = {
     dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
     groups = ["default"];
@@ -3667,6 +3807,16 @@
     };
     version = "1.3.0";
   };
+  plist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l";
+      type = "gem";
+    };
+    version = "3.6.0";
+  };
   png_quantizator = {
     groups = ["development" "test"];
     platforms = [];
@@ -4479,10 +4629,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19nmdwz6mc5ah0xqlj1j58ylcp9zsckb1xm7p1z51abnqhcq5c06";
+      sha256 = "0phrig25dykgi42z6mf1abllh3ws6sv7awa82hzvvvbjx2xlzd3k";
       type = "gem";
     };
-    version = "0.91.1";
+    version = "0.93.1";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -4490,10 +4640,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "165ws2vwnw33nlqgzvzzjjp1zhkc712a92lbpbjx8j83g44dmdy4";
+      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "1.4.1";
   };
   rubocop-gitlab-security = {
     dependencies = ["rubocop"];
@@ -4561,6 +4711,17 @@
     };
     version = "0.2.1";
   };
+  ruby-magic-static = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0whs2i868g1bgglrxl6aba47h8n9zqglsipskk6l83rfkm85ik3g";
+      type = "gem";
+    };
+    version = "0.3.5";
+  };
   ruby-prof = {
     groups = ["default"];
     platforms = [];
@@ -4658,10 +4819,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "056bwiwxvnbkbgsr2wqcsknnc73nqasqdnjcpgj2r61wkm8mzmbn";
+      sha256 = "04aq913plcxjw71l5r62qgz3bx3466p0wvgyfqahg5n3nybmcwqy";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.1.0";
   };
   safe_yaml = {
     groups = ["default" "test"];
@@ -4755,21 +4916,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09565ppvd851zxpspn5d5q28wqkfjyfxhvda9w80i16p3y937155";
+      sha256 = "0jklwk9aldvlmdv17m77g2f82j383alqd4jjnwn4c564q9wvz3fp";
       type = "gem";
     };
-    version = "1.5.0";
-  };
-  scss_lint = {
-    dependencies = ["sass"];
-    groups = ["development" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1s6dzk4n9pnmqciliggwpiny43vc3cx3n2d5gqa9aqng77ff7yv7";
-      type = "gem";
-    };
-    version = "0.59.0";
+    version = "1.6.0";
   };
   securecompare = {
     groups = ["default"];
@@ -5273,6 +5423,16 @@
     };
     version = "1.0.0";
   };
+  tomlrb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00x5y9h4fbvrv4xrjk4cqlkm4vq8gv73ax4alj3ac2x77zsnnrk8";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
   tpm-key_attestation = {
     dependencies = ["bindata" "openssl-signature_algorithm"];
     groups = ["default"];
@@ -5284,6 +5444,17 @@
     };
     version = "0.9.0";
   };
+  train-core = {
+    dependencies = ["addressable" "ffi" "json" "mixlib-shellout" "net-scp" "net-ssh"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pbfbmi9l5hxr1zly1bc72fk8a6by4d19wdap8q3mi3rlflqzbfp";
+      type = "gem";
+    };
+    version = "3.4.9";
+  };
   truncato = {
     dependencies = ["htmlentities" "nokogiri"];
     groups = ["default"];
@@ -5459,10 +5630,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1k0bfxzvdcf1nrqhvnyhijc4mwab9wn4qvqb0ynq6p8dj0f866zi";
+      sha256 = "1bwj34rz7961rrl545f006m2jdz1nrc0m72gfqmnb41xwsvpagbk";
       type = "gem";
     };
-    version = "1.0.8";
+    version = "1.0.13";
   };
   validates_hostname = {
     dependencies = ["activerecord" "activesupport"];
@@ -5591,6 +5762,16 @@
     };
     version = "1.1.0";
   };
+  wmi-lite = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "110dv4arvwyky6f2pq19f20f1xcjpiz3zfbals0y49ijpq8agvql";
+      type = "gem";
+    };
+    version = "1.0.5";
+  };
   xml-simple = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -5632,4 +5813,4 @@
     };
     version = "2.4.2";
   };
-}
\ No newline at end of file
+}
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/update.py b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/update.py
index f662bd3097..993dad08ec 100755
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/update.py
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/update.py
@@ -68,7 +68,10 @@ class GitLabRepo:
         version = self.rev2version(rev)
 
         passthru = {v: self.get_file(v, rev).strip() for v in ['GITALY_SERVER_VERSION', 'GITLAB_PAGES_VERSION',
-                                                               'GITLAB_SHELL_VERSION', 'GITLAB_WORKHORSE_VERSION']}
+                                                               'GITLAB_SHELL_VERSION']}
+
+        passthru["GITLAB_WORKHORSE_VERSION"] = version
+
         return dict(version=self.rev2version(rev),
                     repo_hash=self.get_git_hash(rev),
                     owner=self.owner,
@@ -181,9 +184,6 @@ def update_gitlab_shell():
     gitlab_shell_version = data['passthru']['GITLAB_SHELL_VERSION']
     _call_nix_update('gitlab-shell', gitlab_shell_version)
 
-    repo = GitLabRepo(repo='gitlab-shell')
-    gitlab_shell_dir = pathlib.Path(__file__).parent / 'gitlab-shell'
-
 
 @cli.command('update-gitlab-workhorse')
 def update_gitlab_workhorse():
@@ -192,8 +192,6 @@ def update_gitlab_workhorse():
     gitlab_workhorse_version = data['passthru']['GITLAB_WORKHORSE_VERSION']
     _call_nix_update('gitlab-workhorse', gitlab_workhorse_version)
 
-    repo = GitLabRepo('gitlab-org', 'gitlab-workhorse')
-    gitlab_workhorse_dir = pathlib.Path(__file__).parent / 'gitlab-workhorse'
 
 @cli.command('update-all')
 @click.option('--rev', default='latest', help='The rev to use (vX.Y.Z-ee), or \'latest\'')
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index 916f5f6027..8084d2ebb6 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -2,11 +2,19 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "_babel_code_frame___code_frame_7.10.4.tgz";
+      name = "_babel_code_frame___code_frame_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
-        sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+        name = "_babel_code_frame___code_frame_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz";
+        sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f";
+      };
+    }
+    {
+      name = "_babel_code_frame___code_frame_7.12.13.tgz";
+      path = fetchurl {
+        name = "_babel_code_frame___code_frame_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz";
+        sha1 = "dcfc826beef65e75c50e21d3837d7d95798dd658";
       };
     }
     {
@@ -18,19 +26,19 @@
       };
     }
     {
-      name = "_babel_core___core_7.10.2.tgz";
+      name = "_babel_core___core_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.10.2.tgz";
-        sha1 = "bd6786046668a925ac2bd2fd95b579b92a23b36a";
+        name = "_babel_core___core_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.13.tgz";
+        sha1 = "b73a87a3a3e7d142a66248bf6ad88b9ceb093425";
       };
     }
     {
-      name = "_babel_generator___generator_7.11.6.tgz";
+      name = "_babel_generator___generator_7.12.15.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.11.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz";
-        sha1 = "b868900f81b163b4d464ea24545c61cbac4dc620";
+        name = "_babel_generator___generator_7.12.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.15.tgz";
+        sha1 = "4617b5d0b25cc572474cc1aafee1edeaf9b5368f";
       };
     }
     {
@@ -90,19 +98,19 @@
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
-        sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+        name = "_babel_helper_function_name___helper_function_name_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz";
+        sha1 = "93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
-        sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz";
+        sha1 = "bc63451d403a3b3082b97e1d8b3fe5bd4091e583";
       };
     }
     {
@@ -114,35 +122,35 @@
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
-        sha1 = "ae69c83d84ee82f4b42f96e2a09410935a8f26df";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.13.tgz";
+        sha1 = "c5715695b4f8bab32660dbdcdc2341dec7e3df40";
       };
     }
     {
-      name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
-        sha1 = "4c5c54be04bd31670a7382797d75b9fa2e5b5620";
+        name = "_babel_helper_module_imports___helper_module_imports_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz";
+        sha1 = "ec67e4404f41750463e455cc3203f6a32e93fcb0";
       };
     }
     {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
-        sha1 = "b16f250229e47211abdd84b34b64737c2ab2d359";
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.13.tgz";
+        sha1 = "01afb052dcad2044289b7b20beb3fa8bd0265bea";
       };
     }
     {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
-        sha1 = "50dc96413d594f995a77905905b05893cd779673";
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz";
+        sha1 = "5c02d171b4c8615b1e7163f888c1c81c30a2aaea";
       };
     }
     {
@@ -170,35 +178,35 @@
       };
     }
     {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
-        sha1 = "d585cd9388ea06e6031e4cd44b6713cbead9e6cf";
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.13.tgz";
+        sha1 = "00ec4fb6862546bd3d0aff9aac56074277173121";
       };
     }
     {
-      name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
+      name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
-        sha1 = "0f5ccda2945277a2a7a2d3a821e15395edcf3461";
+        name = "_babel_helper_simple_access___helper_simple_access_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz";
+        sha1 = "8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
-        sha1 = "f8a491244acf6a676158ac42072911ba83ad099f";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz";
+        sha1 = "e9430be00baf3e88b0e13e6f9d4eaf2136372b05";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
-        sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.12.11.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz";
+        sha1 = "c9a1f021917dcb5ccf0d4e453e399022981fc9ed";
       };
     }
     {
@@ -210,27 +218,27 @@
       };
     }
     {
-      name = "_babel_helpers___helpers_7.10.1.tgz";
+      name = "_babel_helpers___helpers_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.1.tgz";
-        sha1 = "a6827b7cb975c9d9cef5fd61d919f60d8844a973";
+        name = "_babel_helpers___helpers_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.13.tgz";
+        sha1 = "3c75e993632e4dadc0274eae219c73eb7645ba47";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.10.4.tgz";
+      name = "_babel_highlight___highlight_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
-        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+        name = "_babel_highlight___highlight_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz";
+        sha1 = "8ab538393e00370b26271b01fa08f7f27f2e795c";
       };
     }
     {
-      name = "_babel_parser___parser_7.11.5.tgz";
+      name = "_babel_parser___parser_7.12.15.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz";
-        sha1 = "c7ff6303df71080ec7a4f5b8c003c58f1cf51037";
+        name = "_babel_parser___parser_7.12.15.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz";
+        sha1 = "2b20de7f0b4b332d9b119dd9c33409c538b8aacf";
       };
     }
     {
@@ -722,27 +730,27 @@
       };
     }
     {
-      name = "_babel_template___template_7.10.4.tgz";
+      name = "_babel_template___template_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.10.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
-        sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+        name = "_babel_template___template_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz";
+        sha1 = "530265be8a2589dbb37523844c5bcb55947fb327";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.11.5.tgz";
+      name = "_babel_traverse___traverse_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz";
-        sha1 = "be777b93b518eb6d76ee2e1ea1d143daa11e61c3";
+        name = "_babel_traverse___traverse_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.13.tgz";
+        sha1 = "689f0e4b4c08587ad26622832632735fb8c4e0c0";
       };
     }
     {
-      name = "_babel_types___types_7.11.5.tgz";
+      name = "_babel_types___types_7.12.13.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.11.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz";
-        sha1 = "d9de577d01252d77c6800cee039ee64faf75662d";
+        name = "_babel_types___types_7.12.13.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.13.tgz";
+        sha1 = "8be1aa8f2c876da11a9cf650c0ecf656913ad611";
       };
     }
     {
@@ -770,11 +778,11 @@
       };
     }
     {
-      name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
+      name = "_eslint_eslintrc___eslintrc_0.4.0.tgz";
       path = fetchurl {
-        name = "_eslint_eslintrc___eslintrc_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz";
-        sha1 = "d736d6963d7003b6514e6324bec9c602ac340318";
+        name = "_eslint_eslintrc___eslintrc_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz";
+        sha1 = "99cc0a0584d72f1df38b900fb062ba995f395547";
       };
     }
     {
@@ -786,11 +794,11 @@
       };
     }
     {
-      name = "_gitlab_eslint_plugin___eslint_plugin_8.0.0.tgz";
+      name = "_gitlab_eslint_plugin___eslint_plugin_8.1.0.tgz";
       path = fetchurl {
-        name = "_gitlab_eslint_plugin___eslint_plugin_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-8.0.0.tgz";
-        sha1 = "e8d30fd98e2102f417617d0c60ef1810520a8ac6";
+        name = "_gitlab_eslint_plugin___eslint_plugin_8.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/eslint-plugin/-/eslint-plugin-8.1.0.tgz";
+        sha1 = "a98ac4219da3316d30ee717ef0603c8fa0c4d5d8";
       };
     }
     {
@@ -802,11 +810,19 @@
       };
     }
     {
-      name = "_gitlab_svgs___svgs_1.182.0.tgz";
+      name = "_gitlab_stylelint_config___stylelint_config_2.3.0.tgz";
       path = fetchurl {
-        name = "_gitlab_svgs___svgs_1.182.0.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.182.0.tgz";
-        sha1 = "600cb577c598ff63325c3f6f049e3254abdbb580";
+        name = "_gitlab_stylelint_config___stylelint_config_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/stylelint-config/-/stylelint-config-2.3.0.tgz";
+        sha1 = "b27e8544ff52a4c5e23ff7a104c7efff1f7078f0";
+      };
+    }
+    {
+      name = "_gitlab_svgs___svgs_1.185.0.tgz";
+      path = fetchurl {
+        name = "_gitlab_svgs___svgs_1.185.0.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-1.185.0.tgz";
+        sha1 = "15b5c6d680b5fcfc2deb2a5decef427939e34ed7";
       };
     }
     {
@@ -818,11 +834,11 @@
       };
     }
     {
-      name = "_gitlab_ui___ui_27.4.6.tgz";
+      name = "_gitlab_ui___ui_28.9.1.tgz";
       path = fetchurl {
-        name = "_gitlab_ui___ui_27.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-27.4.6.tgz";
-        sha1 = "2364c2ba981024cdce32b4657c5f0eb2ae781a4d";
+        name = "_gitlab_ui___ui_28.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/@gitlab/ui/-/ui-28.9.1.tgz";
+        sha1 = "7d4d4502ff09fca19ab815504f80afbf03dd2fc1";
       };
     }
     {
@@ -937,14 +953,6 @@
         sha1 = "6a0033a1d24316a1c75184d010d864f2c681bef5";
       };
     }
-    {
-      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 = "_jest_types___types_26.5.2.tgz";
       path = fetchurl {
@@ -962,19 +970,27 @@
       };
     }
     {
-      name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz";
+      name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
       path = fetchurl {
-        name = "_mrmlnc_readdir_enhanced___readdir_enhanced_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz";
-        sha1 = "524af240d1a360527b730475ecfa1344aa540dde";
+        name = "_nodelib_fs.scandir___fs.scandir_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz";
+        sha1 = "d4b3549a5db5de2683e0c1071ab4f140904bbf69";
       };
     }
     {
-      name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
+      name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
       path = fetchurl {
-        name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz";
-        sha1 = "2b5a3ab3f918cca48a8c754c08168e3f03eba61b";
+        name = "_nodelib_fs.stat___fs.stat_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz";
+        sha1 = "a3f2dd61bab43b8db8fa108a121cfffe4c676655";
+      };
+    }
+    {
+      name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.walk___fs.walk_1.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz";
+        sha1 = "cce9396b30aa5afe9e3756608f5831adcb53d063";
       };
     }
     {
@@ -1009,6 +1025,54 @@
         sha1 = "9a48df6511cb2b472c9f596c1f37dc0af022e751";
       };
     }
+    {
+      name = "_sentry_browser___browser_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_browser___browser_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/browser/-/browser-5.30.0.tgz";
+        sha1 = "c28f49d551db3172080caef9f18791a7fd39e3b3";
+      };
+    }
+    {
+      name = "_sentry_core___core_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_core___core_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/core/-/core-5.30.0.tgz";
+        sha1 = "6b203664f69e75106ee8b5a2fe1d717379b331f3";
+      };
+    }
+    {
+      name = "_sentry_hub___hub_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_hub___hub_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz";
+        sha1 = "2453be9b9cb903404366e198bd30c7ca74cdc100";
+      };
+    }
+    {
+      name = "_sentry_minimal___minimal_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_minimal___minimal_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz";
+        sha1 = "ce3d3a6a273428e0084adcb800bc12e72d34637b";
+      };
+    }
+    {
+      name = "_sentry_types___types_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_types___types_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz";
+        sha1 = "19709bbe12a1a0115bc790b8942917da5636f402";
+      };
+    }
+    {
+      name = "_sentry_utils___utils_5.30.0.tgz";
+      path = fetchurl {
+        name = "_sentry_utils___utils_5.30.0.tgz";
+        url  = "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz";
+        sha1 = "9a5bd7ccff85ccfe7856d493bffa64cabc41e980";
+      };
+    }
     {
       name = "_sindresorhus_is___is_0.14.0.tgz";
       path = fetchurl {
@@ -1041,6 +1105,22 @@
         sha1 = "3668364647b9248a0c43d738f7b046c551311338";
       };
     }
+    {
+      name = "_stylelint_postcss_css_in_js___postcss_css_in_js_0.37.2.tgz";
+      path = fetchurl {
+        name = "_stylelint_postcss_css_in_js___postcss_css_in_js_0.37.2.tgz";
+        url  = "https://registry.yarnpkg.com/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.2.tgz";
+        sha1 = "7e5a84ad181f4234a2480803422a47b8749af3d2";
+      };
+    }
+    {
+      name = "_stylelint_postcss_markdown___postcss_markdown_0.36.2.tgz";
+      path = fetchurl {
+        name = "_stylelint_postcss_markdown___postcss_markdown_0.36.2.tgz";
+        url  = "https://registry.yarnpkg.com/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz";
+        sha1 = "0a540c4692f8dcdfc13c8e352c17e7bfee2bb391";
+      };
+    }
     {
       name = "_szmarczak_http_timer___http_timer_1.1.2.tgz";
       path = fetchurl {
@@ -1177,14 +1257,6 @@
         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_istanbul_reports___istanbul_reports_3.0.0.tgz";
       path = fetchurl {
@@ -1193,14 +1265,6 @@
         sha1 = "508b13aa344fa4976234e75dddcc34925737d821";
       };
     }
-    {
-      name = "_types_jest___jest_26.0.14.tgz";
-      path = fetchurl {
-        name = "_types_jest___jest_26.0.14.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.14.tgz";
-        sha1 = "078695f8f65cb55c5a98450d65083b2b73e5a3f3";
-      };
-    }
     {
       name = "_types_json_schema___json_schema_7.0.7.tgz";
       path = fetchurl {
@@ -1217,6 +1281,14 @@
         sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
       };
     }
+    {
+      name = "_types_mdast___mdast_3.0.3.tgz";
+      path = fetchurl {
+        name = "_types_mdast___mdast_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.3.tgz";
+        sha1 = "2d7d671b1cd1ea3deb306ea75036c2a0407d2deb";
+      };
+    }
     {
       name = "_types_minimatch___minimatch_3.0.3.tgz";
       path = fetchurl {
@@ -1225,6 +1297,14 @@
         sha1 = "3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d";
       };
     }
+    {
+      name = "_types_minimist___minimist_1.2.1.tgz";
+      path = fetchurl {
+        name = "_types_minimist___minimist_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.1.tgz";
+        sha1 = "283f669ff76d7b8260df8ab7a4262cc83d988256";
+      };
+    }
     {
       name = "_types_node___node_10.12.9.tgz";
       path = fetchurl {
@@ -1241,6 +1321,14 @@
         sha1 = "e486d0d97396d79beedd0a6e33f4534ff6b4973e";
       };
     }
+    {
+      name = "_types_parse_json___parse_json_4.0.0.tgz";
+      path = fetchurl {
+        name = "_types_parse_json___parse_json_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "2f8bb441434d163b35fb8ffdccd7138927ffb8c0";
+      };
+    }
     {
       name = "_types_parse5___parse5_5.0.0.tgz";
       path = fetchurl {
@@ -1281,22 +1369,6 @@
         sha1 = "9c088679876f374eb5983f150d4787aa6fb32d7e";
       };
     }
-    {
-      name = "_types_vfile_message___vfile_message_1.0.1.tgz";
-      path = fetchurl {
-        name = "_types_vfile_message___vfile_message_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/vfile-message/-/vfile-message-1.0.1.tgz";
-        sha1 = "e1e9895cc6b36c462d4244e64e6d0b6eaf65355a";
-      };
-    }
-    {
-      name = "_types_vfile___vfile_3.0.2.tgz";
-      path = fetchurl {
-        name = "_types_vfile___vfile_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/vfile/-/vfile-3.0.2.tgz";
-        sha1 = "19c18cd232df11ce6fa6ad80259bc86c366b09b9";
-      };
-    }
     {
       name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
       path = fetchurl {
@@ -1825,6 +1897,14 @@
         sha1 = "756749dafc732792c8ca0923f9a40564b7c59ecc";
       };
     }
+    {
+      name = "apollo_link_http___apollo_link_http_1.5.17.tgz";
+      path = fetchurl {
+        name = "apollo_link_http___apollo_link_http_1.5.17.tgz";
+        url  = "https://registry.yarnpkg.com/apollo-link-http/-/apollo-link-http-1.5.17.tgz";
+        sha1 = "499e9f1711bf694497f02c51af12d82de5d8d8ba";
+      };
+    }
     {
       name = "apollo_link___apollo_link_1.2.14.tgz";
       path = fetchurl {
@@ -1961,6 +2041,14 @@
         sha1 = "9a34410e4f4e3da23dea375be5be70f24778ec39";
       };
     }
+    {
+      name = "array_union___array_union_2.1.0.tgz";
+      path = fetchurl {
+        name = "array_union___array_union_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz";
+        sha1 = "b798420adbeb1de828d84acd8a2e23d3efe85e8d";
+      };
+    }
     {
       name = "array_uniq___array_uniq_1.0.3.tgz";
       path = fetchurl {
@@ -2041,14 +2129,6 @@
         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 = "astral_regex___astral_regex_2.0.0.tgz";
       path = fetchurl {
@@ -2098,11 +2178,11 @@
       };
     }
     {
-      name = "autoprefixer___autoprefixer_9.6.1.tgz";
+      name = "autoprefixer___autoprefixer_9.8.6.tgz";
       path = fetchurl {
-        name = "autoprefixer___autoprefixer_9.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz";
-        sha1 = "51967a02d2d2300bb01866c1611ec8348d355a47";
+        name = "autoprefixer___autoprefixer_9.8.6.tgz";
+        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz";
+        sha1 = "3b73594ca1bf9266320c5acf1588d74dea74210f";
       };
     }
     {
@@ -2242,11 +2322,11 @@
       };
     }
     {
-      name = "bail___bail_1.0.3.tgz";
+      name = "bail___bail_1.0.5.tgz";
       path = fetchurl {
-        name = "bail___bail_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/bail/-/bail-1.0.3.tgz";
-        sha1 = "63cfb9ddbac829b02a3128cd53224be78e6c21a3";
+        name = "bail___bail_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz";
+        sha1 = "b6fa133404a392cbc1f8c4bf63f5953351e7a776";
       };
     }
     {
@@ -2513,14 +2593,6 @@
         sha1 = "bf757a2da376b3447b800a16f0f1c96358138766";
       };
     }
-    {
-      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.1.tgz";
       path = fetchurl {
@@ -2649,22 +2721,6 @@
         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 = "callsite___callsite_1.0.0.tgz";
       path = fetchurl {
@@ -2673,14 +2729,6 @@
         sha1 = "280398e5d664bd74038b6f0905153e6e8af1bc20";
       };
     }
-    {
-      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.0.0.tgz";
       path = fetchurl {
@@ -2706,11 +2754,11 @@
       };
     }
     {
-      name = "camelcase_keys___camelcase_keys_4.2.0.tgz";
+      name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
       path = fetchurl {
-        name = "camelcase_keys___camelcase_keys_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz";
-        sha1 = "a2aa5fb1af688758259c32c141426d78923b9b77";
+        name = "camelcase_keys___camelcase_keys_6.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz";
+        sha1 = "5e755d6ba51aa223ec7d3d52f25778210f9dc3c0";
       };
     }
     {
@@ -2721,14 +2769,6 @@
         sha1 = "7c1d16d679a1bbe59ca02cacecfb011e201f5a1f";
       };
     }
-    {
-      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 {
@@ -2746,11 +2786,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001178.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001185.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001178.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001178.tgz";
-        sha1 = "3ad813b2b2c7d585b0be0a2440e1e233c6eabdbc";
+        name = "caniuse_lite___caniuse_lite_1.0.30001185.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001185.tgz";
+        sha1 = "3482a407d261da04393e2f0d61eefbc53be43b95";
       };
     }
     {
@@ -2777,14 +2817,6 @@
         sha1 = "98cc890ca652dd2ef0e70b37925310ff9e90fc8b";
       };
     }
-    {
-      name = "ccount___ccount_1.0.3.tgz";
-      path = fetchurl {
-        name = "ccount___ccount_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/ccount/-/ccount-1.0.3.tgz";
-        sha1 = "f1cec43f332e2ea5a569fd46f9f5bde4e6102aff";
-      };
-    }
     {
       name = "chalk___chalk_1.1.3.tgz";
       path = fetchurl {
@@ -2826,35 +2858,27 @@
       };
     }
     {
-      name = "character_entities_html4___character_entities_html4_1.1.2.tgz";
+      name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
       path = fetchurl {
-        name = "character_entities_html4___character_entities_html4_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.2.tgz";
-        sha1 = "c44fdde3ce66b52e8d321d6c1bf46101f0150610";
+        name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz";
+        sha1 = "94bc1845dce70a5bb9d2ecc748725661293d8fc1";
       };
     }
     {
-      name = "character_entities_legacy___character_entities_legacy_1.1.2.tgz";
+      name = "character_entities___character_entities_1.2.4.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.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz";
+        sha1 = "e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b";
       };
     }
     {
-      name = "character_entities___character_entities_1.2.2.tgz";
+      name = "character_reference_invalid___character_reference_invalid_1.1.4.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 = "character_reference_invalid___character_reference_invalid_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz";
+        sha1 = "083329cda0eae272ab3dbbf37e9a382c13af1560";
       };
     }
     {
@@ -3057,14 +3081,6 @@
         sha1 = "b88423a4a7c785175c784c84e87f5950820280e1";
       };
     }
-    {
-      name = "collapse_white_space___collapse_white_space_1.0.5.tgz";
-      path = fetchurl {
-        name = "collapse_white_space___collapse_white_space_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.5.tgz";
-        sha1 = "c2495b699ab1ed380d29a1091e01063e75dbbe3a";
-      };
-    }
     {
       name = "collect_v8_coverage___collect_v8_coverage_1.0.1.tgz";
       path = fetchurl {
@@ -3434,11 +3450,11 @@
       };
     }
     {
-      name = "core_js___core_js_3.8.3.tgz";
+      name = "core_js___core_js_3.9.1.tgz";
       path = fetchurl {
-        name = "core_js___core_js_3.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.8.3.tgz";
-        sha1 = "c21906e1f14f3689f93abcc6e26883550dd92dd0";
+        name = "core_js___core_js_3.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/core-js/-/core-js-3.9.1.tgz";
+        sha1 = "cec8de593db8eb2a85ffb0dbdeb312cb6e5460ae";
       };
     }
     {
@@ -3458,11 +3474,11 @@
       };
     }
     {
-      name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
+      name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
       path = fetchurl {
-        name = "cosmiconfig___cosmiconfig_5.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
-        sha1 = "040f726809c591e77a17c0a3626ca45b4f168b1a";
+        name = "cosmiconfig___cosmiconfig_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
+        sha1 = "ef9b44d773959cae63ddecd122de23853b60f8d3";
       };
     }
     {
@@ -3561,6 +3577,14 @@
         sha1 = "42005d83204b2b4a5d93b6b1a5644133b5927a02";
       };
     }
+    {
+      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_loader___css_loader_2.1.1.tgz";
       path = fetchurl {
@@ -3577,6 +3601,22 @@
         sha1 = "5f1ad43e2d8eefbfdc304fcd39a521664943e3eb";
       };
     }
+    {
+      name = "css_shorthand_properties___css_shorthand_properties_1.1.1.tgz";
+      path = fetchurl {
+        name = "css_shorthand_properties___css_shorthand_properties_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/css-shorthand-properties/-/css-shorthand-properties-1.1.1.tgz";
+        sha1 = "1c808e63553c283f289f2dd56fcee8f3337bd935";
+      };
+    }
+    {
+      name = "css_values___css_values_0.1.0.tgz";
+      path = fetchurl {
+        name = "css_values___css_values_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/css-values/-/css-values-0.1.0.tgz";
+        sha1 = "128b7ce103d4dc027a814a5d5995c54781d7b4c6";
+      };
+    }
     {
       name = "css___css_2.2.4.tgz";
       path = fetchurl {
@@ -4010,11 +4050,11 @@
       };
     }
     {
-      name = "debug___debug_4.1.1.tgz";
+      name = "debug___debug_4.3.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 = "debug___debug_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
+        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
       };
     }
     {
@@ -4257,14 +4297,6 @@
         sha1 = "806649326ceaa7caa3306d75d985ea2748ba913c";
       };
     }
-    {
-      name = "diff_sequences___diff_sequences_25.2.6.tgz";
-      path = fetchurl {
-        name = "diff_sequences___diff_sequences_25.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz";
-        sha1 = "5f467c00edd35352b7bca46d7927d60e687a76dd";
-      };
-    }
     {
       name = "diff_sequences___diff_sequences_26.5.0.tgz";
       path = fetchurl {
@@ -4297,6 +4329,14 @@
         sha1 = "fa09f0694153c8918b18ba0deafae94769fc50c4";
       };
     }
+    {
+      name = "dir_glob___dir_glob_3.0.1.tgz";
+      path = fetchurl {
+        name = "dir_glob___dir_glob_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha1 = "56dbf73d992a4a93ba1584f4534063fd2e41717f";
+      };
+    }
     {
       name = "dns_equal___dns_equal_1.0.0.tgz";
       path = fetchurl {
@@ -4402,19 +4442,19 @@
       };
     }
     {
-      name = "domelementtype___domelementtype_1.3.0.tgz";
+      name = "domelementtype___domelementtype_1.3.1.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";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz";
+        sha1 = "d048c44b37b0d10a7f2a3d5fee3f4333d790481f";
       };
     }
     {
-      name = "domelementtype___domelementtype_2.0.1.tgz";
+      name = "domelementtype___domelementtype_2.1.0.tgz";
       path = fetchurl {
-        name = "domelementtype___domelementtype_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz";
-        sha1 = "1f8bdfe91f5a78063274e803b4bdcedf6e94f94d";
+        name = "domelementtype___domelementtype_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz";
+        sha1 = "a851c080a6d1c3d94344aed151d99f669edf585e";
       };
     }
     {
@@ -4426,35 +4466,27 @@
       };
     }
     {
-      name = "domhandler___domhandler_2.4.1.tgz";
+      name = "domhandler___domhandler_2.4.2.tgz";
       path = fetchurl {
-        name = "domhandler___domhandler_2.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.1.tgz";
-        sha1 = "892e47000a99be55bbf3774ffea0561d8879c259";
+        name = "domhandler___domhandler_2.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz";
+        sha1 = "8805097e933d65e85546f726d60f5eb88b44f803";
       };
     }
     {
-      name = "dompurify___dompurify_2.2.6.tgz";
+      name = "dompurify___dompurify_2.2.7.tgz";
       path = fetchurl {
-        name = "dompurify___dompurify_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.6.tgz";
-        sha1 = "54945dc5c0b45ce5ae228705777e8e59d7b2edc4";
+        name = "dompurify___dompurify_2.2.7.tgz";
+        url  = "https://registry.yarnpkg.com/dompurify/-/dompurify-2.2.7.tgz";
+        sha1 = "a5f055a2a471638680e779bd08fc334962d11fd8";
       };
     }
     {
-      name = "domutils___domutils_1.6.2.tgz";
+      name = "domutils___domutils_1.7.0.tgz";
       path = fetchurl {
-        name = "domutils___domutils_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.6.2.tgz";
-        sha1 = "1958cc0b4c9426e9ed367fb1c8e854891b0fa3ff";
-      };
-    }
-    {
-      name = "dot_prop___dot_prop_4.2.1.tgz";
-      path = fetchurl {
-        name = "dot_prop___dot_prop_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz";
-        sha1 = "45884194a71fc2cda71cbb4bceb3a4dd2f433ba4";
+        name = "domutils___domutils_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz";
+        sha1 = "56ea341e834e06e6748af7a1cb25da67ea9f8c2a";
       };
     }
     {
@@ -4617,6 +4649,14 @@
         sha1 = "ed29634d19baba463b6ce6b80a37213eab71ec43";
       };
     }
+    {
+      name = "ends_with___ends_with_0.2.0.tgz";
+      path = fetchurl {
+        name = "ends_with___ends_with_0.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ends-with/-/ends-with-0.2.0.tgz";
+        sha1 = "2f9da98d57a50cfda4571ce4339000500f4e6b8a";
+      };
+    }
     {
       name = "engine.io_client___engine.io_client_3.2.1.tgz";
       path = fetchurl {
@@ -4674,11 +4714,11 @@
       };
     }
     {
-      name = "entities___entities_1.1.1.tgz";
+      name = "entities___entities_1.1.2.tgz";
       path = fetchurl {
-        name = "entities___entities_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz";
-        sha1 = "6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0";
+        name = "entities___entities_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz";
+        sha1 = "bdfa735299664dfafd34529ed4f8522a275fea56";
       };
     }
     {
@@ -4962,11 +5002,11 @@
       };
     }
     {
-      name = "eslint___eslint_7.19.0.tgz";
+      name = "eslint___eslint_7.21.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_7.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.19.0.tgz";
-        sha1 = "6719621b196b5fad72e43387981314e5d0dc3f41";
+        name = "eslint___eslint_7.21.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.21.0.tgz";
+        sha1 = "4ecd5b8c5b44f5dedc9b8a110b01bbfeb15d1c83";
       };
     }
     {
@@ -4994,11 +5034,11 @@
       };
     }
     {
-      name = "esquery___esquery_1.3.1.tgz";
+      name = "esquery___esquery_1.4.0.tgz";
       path = fetchurl {
-        name = "esquery___esquery_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
-        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+        name = "esquery___esquery_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
+        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
       };
     }
     {
@@ -5242,11 +5282,11 @@
       };
     }
     {
-      name = "fast_glob___fast_glob_2.2.6.tgz";
+      name = "fast_glob___fast_glob_3.2.5.tgz";
       path = fetchurl {
-        name = "fast_glob___fast_glob_2.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.6.tgz";
-        sha1 = "a5d5b697ec8deda468d85a74035290a025a95295";
+        name = "fast_glob___fast_glob_3.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz";
+        sha1 = "7939af2a656de79a4f1901903ee8adcaa7cb9661";
       };
     }
     {
@@ -5274,11 +5314,27 @@
       };
     }
     {
-      name = "fault___fault_1.0.2.tgz";
+      name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
       path = fetchurl {
-        name = "fault___fault_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz";
-        sha1 = "c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa";
+        name = "fastest_levenshtein___fastest_levenshtein_1.0.12.tgz";
+        url  = "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
+        sha1 = "9990f7d3a88cc5a9ffd1f1745745251700d497e2";
+      };
+    }
+    {
+      name = "fastq___fastq_1.10.1.tgz";
+      path = fetchurl {
+        name = "fastq___fastq_1.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz";
+        sha1 = "8b8f2ac8bf3632d67afcd65dac248d5fdc45385e";
+      };
+    }
+    {
+      name = "fault___fault_1.0.4.tgz";
+      path = fetchurl {
+        name = "fault___fault_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz";
+        sha1 = "eafcfc0a6d214fc94601e170df29954a4f842f13";
       };
     }
     {
@@ -5306,19 +5362,11 @@
       };
     }
     {
-      name = "file_entry_cache___file_entry_cache_5.0.1.tgz";
+      name = "file_entry_cache___file_entry_cache_6.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_entry_cache___file_entry_cache_6.0.0.tgz";
-      path = fetchurl {
-        name = "file_entry_cache___file_entry_cache_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.0.tgz";
-        sha1 = "7921a89c391c6d93efec2169ac6bf300c527ea0a";
+        name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
+        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
       };
     }
     {
@@ -5441,14 +5489,6 @@
         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 = "flat_cache___flat_cache_3.0.4.tgz";
       path = fetchurl {
@@ -5690,11 +5730,11 @@
       };
     }
     {
-      name = "get_stdin___get_stdin_7.0.0.tgz";
+      name = "get_stdin___get_stdin_8.0.0.tgz";
       path = fetchurl {
-        name = "get_stdin___get_stdin_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz";
-        sha1 = "8d5de98f15171a125c5e516643c7a6d0ea8a96f6";
+        name = "get_stdin___get_stdin_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz";
+        sha1 = "cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53";
       };
     }
     {
@@ -5769,14 +5809,6 @@
         sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
       };
     }
-    {
-      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_to_regexp___glob_to_regexp_0.4.1.tgz";
       path = fetchurl {
@@ -5857,6 +5889,14 @@
         sha1 = "1e564ee5c4dded2ab098b0f88f24702a3c56be13";
       };
     }
+    {
+      name = "globby___globby_11.0.2.tgz";
+      path = fetchurl {
+        name = "globby___globby_11.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz";
+        sha1 = "1af538b766a3b540ebfb58a32b2e2d5897321d83";
+      };
+    }
     {
       name = "globby___globby_6.1.0.tgz";
       path = fetchurl {
@@ -5873,14 +5913,6 @@
         sha1 = "fb2ccff9401f8600945dfada97440cca972b8680";
       };
     }
-    {
-      name = "globby___globby_9.2.0.tgz";
-      path = fetchurl {
-        name = "globby___globby_9.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz";
-        sha1 = "fd029a706c703d29bdd170f4b6db3a3f7a7cb63d";
-      };
-    }
     {
       name = "globjoin___globjoin_0.1.4.tgz";
       path = fetchurl {
@@ -5898,11 +5930,11 @@
       };
     }
     {
-      name = "gonzales_pe___gonzales_pe_4.2.3.tgz";
+      name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
       path = fetchurl {
-        name = "gonzales_pe___gonzales_pe_4.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.2.3.tgz";
-        sha1 = "41091703625433285e0aee3aa47829fc1fbeb6f2";
+        name = "gonzales_pe___gonzales_pe_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/gonzales-pe/-/gonzales-pe-4.3.0.tgz";
+        sha1 = "fe9dec5f3c557eead09ff868c65826be54d067b3";
       };
     }
     {
@@ -6009,6 +6041,14 @@
         sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
       };
     }
+    {
+      name = "hard_rejection___hard_rejection_2.1.0.tgz";
+      path = fetchurl {
+        name = "hard_rejection___hard_rejection_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz";
+        sha1 = "1c6eda5c1685c63942766d79bb40ae773cecd883";
+      };
+    }
     {
       name = "has_ansi___has_ansi_2.0.0.tgz";
       path = fetchurl {
@@ -6154,11 +6194,11 @@
       };
     }
     {
-      name = "highlight.js___highlight.js_9.13.1.tgz";
+      name = "highlight.js___highlight.js_10.6.0.tgz";
       path = fetchurl {
-        name = "highlight.js___highlight.js_9.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz";
-        sha1 = "054586d53a6863311168488a0f58d6c505ce641e";
+        name = "highlight.js___highlight.js_10.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.6.0.tgz";
+        sha1 = "0073aa71d566906965ba6e1b7be7b2682f5e18b6";
       };
     }
     {
@@ -6193,6 +6233,14 @@
         sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
       };
     }
+    {
+      name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
+      path = fetchurl {
+        name = "hosted_git_info___hosted_git_info_3.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz";
+        sha1 = "6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d";
+      };
+    }
     {
       name = "hpack.js___hpack.js_2.1.6.tgz";
       path = fetchurl {
@@ -6234,19 +6282,19 @@
       };
     }
     {
-      name = "html_tags___html_tags_3.0.0.tgz";
+      name = "html_tags___html_tags_3.1.0.tgz";
       path = fetchurl {
-        name = "html_tags___html_tags_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/html-tags/-/html-tags-3.0.0.tgz";
-        sha1 = "41f57708c9e6b7b46a00a22317d614c4a2bab166";
+        name = "html_tags___html_tags_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-tags/-/html-tags-3.1.0.tgz";
+        sha1 = "7b5e6f7e665e9fb41f30007ed9e0d41e97fb2140";
       };
     }
     {
-      name = "htmlparser2___htmlparser2_3.10.0.tgz";
+      name = "htmlparser2___htmlparser2_3.10.1.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";
+        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz";
+        sha1 = "bd679dc3f59897b6a34bb10749c855bb53a9392f";
       };
     }
     {
@@ -6433,14 +6481,6 @@
         sha1 = "9dfe713d49bf871cc59aedfce59b1992fa37a977";
       };
     }
-    {
-      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.3.0.tgz";
       path = fetchurl {
@@ -6505,14 +6545,6 @@
         sha1 = "8e2d48348742121b4a8218b7a137e9a52049dc80";
       };
     }
-    {
-      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 {
@@ -6674,27 +6706,19 @@
       };
     }
     {
-      name = "is_alphabetical___is_alphabetical_1.0.2.tgz";
+      name = "is_alphabetical___is_alphabetical_1.0.4.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_alphabetical___is_alphabetical_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz";
+        sha1 = "9e7d6b94916be22153745d184c298cbf986a686d";
       };
     }
     {
-      name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
+      name = "is_alphanumerical___is_alphanumerical_1.0.4.tgz";
       path = fetchurl {
-        name = "is_alphanumeric___is_alphanumeric_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz";
-        sha1 = "4a9cef71daf4c001c1d81d63d140cf53fd6889f4";
-      };
-    }
-    {
-      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_alphanumerical___is_alphanumerical_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz";
+        sha1 = "7eb9a2431f855f6b1ef1a78e326df515696c4dbf";
       };
     }
     {
@@ -6722,11 +6746,11 @@
       };
     }
     {
-      name = "is_buffer___is_buffer_2.0.3.tgz";
+      name = "is_buffer___is_buffer_2.0.5.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_buffer___is_buffer_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz";
+        sha1 = "ebc252e400d22ff8d77fa09888821a24a658c191";
       };
     }
     {
@@ -6770,11 +6794,11 @@
       };
     }
     {
-      name = "is_decimal___is_decimal_1.0.2.tgz";
+      name = "is_decimal___is_decimal_1.0.4.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_decimal___is_decimal_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz";
+        sha1 = "65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5";
       };
     }
     {
@@ -6793,14 +6817,6 @@
         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_docker___is_docker_2.1.1.tgz";
       path = fetchurl {
@@ -6890,11 +6906,11 @@
       };
     }
     {
-      name = "is_hexadecimal___is_hexadecimal_1.0.2.tgz";
+      name = "is_hexadecimal___is_hexadecimal_1.0.4.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_hexadecimal___is_hexadecimal_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz";
+        sha1 = "cc35c97588da4bd49a8eedd6bc4082d44dcb23a7";
       };
     }
     {
@@ -6937,14 +6953,6 @@
         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_obj___is_obj_2.0.0.tgz";
       path = fetchurl {
@@ -6993,6 +7001,14 @@
         sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
       };
     }
+    {
+      name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
+      path = fetchurl {
+        name = "is_plain_obj___is_plain_obj_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
+        sha1 = "45e42e37fccf1f40da8e5f76ee21515840c09287";
+      };
+    }
     {
       name = "is_plain_object___is_plain_object_2.0.4.tgz";
       path = fetchurl {
@@ -7073,14 +7089,6 @@
         sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
       };
     }
-    {
-      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_whitespace___is_whitespace_0.3.0.tgz";
       path = fetchurl {
@@ -7097,14 +7105,6 @@
         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 {
@@ -7353,14 +7353,6 @@
         sha1 = "6e828e25f10124433dd008fbd83348636de0972a";
       };
     }
-    {
-      name = "jest_diff___jest_diff_25.5.0.tgz";
-      path = fetchurl {
-        name = "jest_diff___jest_diff_25.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.5.0.tgz";
-        sha1 = "1dd26ed64f96667c068cef026b677dfa01afcfa9";
-      };
-    }
     {
       name = "jest_diff___jest_diff_26.5.2.tgz";
       path = fetchurl {
@@ -7401,14 +7393,6 @@
         sha1 = "275a0f01b5e47447056f1541a15ed4da14acca03";
       };
     }
-    {
-      name = "jest_get_type___jest_get_type_25.2.6.tgz";
-      path = fetchurl {
-        name = "jest_get_type___jest_get_type_25.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz";
-        sha1 = "0b0a32fab8908b44d508be81681487dbabb8d877";
-      };
-    }
     {
       name = "jest_get_type___jest_get_type_26.3.0.tgz";
       path = fetchurl {
@@ -7793,14 +7777,6 @@
         sha1 = "7fc10e375fc5ae42c4705a5cc0aa6f62be305b81";
       };
     }
-    {
-      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 = "json5___json5_1.0.1.tgz";
       path = fetchurl {
@@ -7809,6 +7785,14 @@
         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 = "jsonc_parser___jsonc_parser_2.3.1.tgz";
       path = fetchurl {
@@ -8002,11 +7986,11 @@
       };
     }
     {
-      name = "known_css_properties___known_css_properties_0.14.0.tgz";
+      name = "known_css_properties___known_css_properties_0.20.0.tgz";
       path = fetchurl {
-        name = "known_css_properties___known_css_properties_0.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.14.0.tgz";
-        sha1 = "d7032b4334a32dc22e6e46b081ec789daf18756c";
+        name = "known_css_properties___known_css_properties_0.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.20.0.tgz";
+        sha1 = "0570831661b47dd835293218381166090ff60e96";
       };
     }
     {
@@ -8105,14 +8089,6 @@
         sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
       };
     }
-    {
-      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 {
@@ -8321,14 +8297,6 @@
         sha1 = "1bafa5005de9dd6f4f26668c30ca37230cc9689c";
       };
     }
-    {
-      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.pick___lodash.pick_4.4.0.tgz";
       path = fetchurl {
@@ -8402,11 +8370,11 @@
       };
     }
     {
-      name = "log_symbols___log_symbols_3.0.0.tgz";
+      name = "log_symbols___log_symbols_4.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_symbols___log_symbols_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha1 = "69b3cc46d20f448eccdb75ea1fa733d9e821c920";
       };
     }
     {
@@ -8426,11 +8394,11 @@
       };
     }
     {
-      name = "longest_streak___longest_streak_2.0.2.tgz";
+      name = "longest_streak___longest_streak_2.0.4.tgz";
       path = fetchurl {
-        name = "longest_streak___longest_streak_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.2.tgz";
-        sha1 = "2421b6ba939a443bb9ffebf596585a50b4c38e2e";
+        name = "longest_streak___longest_streak_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz";
+        sha1 = "b8599957da5b5dab64dee3fe316fa774597d90e4";
       };
     }
     {
@@ -8474,11 +8442,11 @@
       };
     }
     {
-      name = "lowlight___lowlight_1.11.0.tgz";
+      name = "lowlight___lowlight_1.19.0.tgz";
       path = fetchurl {
-        name = "lowlight___lowlight_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.11.0.tgz";
-        sha1 = "1304d83005126d4e8b1dc0f07981e9b689ec2efc";
+        name = "lowlight___lowlight_1.19.0.tgz";
+        url  = "https://registry.yarnpkg.com/lowlight/-/lowlight-1.19.0.tgz";
+        sha1 = "b8544199cafcf10c5731b21c7458c358f79a2a97";
       };
     }
     {
@@ -8529,14 +8497,6 @@
         sha1 = "415e967046b3a7f1d185277d84aa58203726a13f";
       };
     }
-    {
-      name = "make_error___make_error_1.3.6.tgz";
-      path = fetchurl {
-        name = "make_error___make_error_1.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz";
-        sha1 = "2eb2e37ea9b67c4891f684a1394799af484cf7a2";
-      };
-    }
     {
       name = "makeerror___makeerror_1.0.11.tgz";
       path = fetchurl {
@@ -8562,11 +8522,11 @@
       };
     }
     {
-      name = "map_obj___map_obj_2.0.0.tgz";
+      name = "map_obj___map_obj_4.1.0.tgz";
       path = fetchurl {
-        name = "map_obj___map_obj_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/map-obj/-/map-obj-2.0.0.tgz";
-        sha1 = "a65cd29087a92598b8791257a523e021222ac1f9";
+        name = "map_obj___map_obj_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/map-obj/-/map-obj-4.1.0.tgz";
+        sha1 = "b91221b542734b9f14256c0132c897c5d7256fd5";
       };
     }
     {
@@ -8577,14 +8537,6 @@
         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 = "markdown_it___markdown_it_11.0.0.tgz";
       path = fetchurl {
@@ -8594,19 +8546,11 @@
       };
     }
     {
-      name = "markdown_it___markdown_it_8.4.2.tgz";
+      name = "markdown_it___markdown_it_10.0.0.tgz";
       path = fetchurl {
-        name = "markdown_it___markdown_it_8.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz";
-        sha1 = "386f98998dc15a37722aa7722084f4020bdd9b54";
-      };
-    }
-    {
-      name = "markdown_table___markdown_table_1.1.2.tgz";
-      path = fetchurl {
-        name = "markdown_table___markdown_table_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/markdown-table/-/markdown-table-1.1.2.tgz";
-        sha1 = "c78db948fa879903a41bce522e3b96f801c63786";
+        name = "markdown_it___markdown_it_10.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/markdown-it/-/markdown-it-10.0.0.tgz";
+        sha1 = "abfc64f141b1722d663402044e43927f1f50a8dc";
       };
     }
     {
@@ -8650,11 +8594,11 @@
       };
     }
     {
-      name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
+      name = "mathml_tag_names___mathml_tag_names_2.1.3.tgz";
       path = fetchurl {
-        name = "mathml_tag_names___mathml_tag_names_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.1.tgz";
-        sha1 = "6dff66c99d55ecf739ca53c492e626f1d12a33cc";
+        name = "mathml_tag_names___mathml_tag_names_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz";
+        sha1 = "4ddadd67308e780cf16a47685878ee27b736a0a3";
       };
     }
     {
@@ -8674,11 +8618,27 @@
       };
     }
     {
-      name = "mdast_util_compact___mdast_util_compact_1.0.2.tgz";
+      name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
       path = fetchurl {
-        name = "mdast_util_compact___mdast_util_compact_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-1.0.2.tgz";
-        sha1 = "c12ebe16fffc84573d3e19767726de226e95f649";
+        name = "mdast_util_from_markdown___mdast_util_from_markdown_0.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz";
+        sha1 = "d1ef2ca42bc377ecb0463a987910dae89bd9a28c";
+      };
+    }
+    {
+      name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
+      path = fetchurl {
+        name = "mdast_util_to_markdown___mdast_util_to_markdown_0.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz";
+        sha1 = "b33f67ca820d69e6cc527a93d4039249b504bebe";
+      };
+    }
+    {
+      name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
+      path = fetchurl {
+        name = "mdast_util_to_string___mdast_util_to_string_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz";
+        sha1 = "b8cfe6a713e1091cb5b728fc48885a4767f8b97b";
       };
     }
     {
@@ -8730,11 +8690,11 @@
       };
     }
     {
-      name = "meow___meow_5.0.0.tgz";
+      name = "meow___meow_9.0.0.tgz";
       path = fetchurl {
-        name = "meow___meow_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz";
-        sha1 = "dfc73d63a9afc714a5e371760eb5c88b91078aa4";
+        name = "meow___meow_9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz";
+        sha1 = "cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364";
       };
     }
     {
@@ -8762,11 +8722,11 @@
       };
     }
     {
-      name = "merge2___merge2_1.2.3.tgz";
+      name = "merge2___merge2_1.4.1.tgz";
       path = fetchurl {
-        name = "merge2___merge2_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.2.3.tgz";
-        sha1 = "7ee99dbd69bb6481689253f018488a1b902b0ed5";
+        name = "merge2___merge2_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
+        sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
       };
     }
     {
@@ -8785,6 +8745,14 @@
         sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
       };
     }
+    {
+      name = "micromark___micromark_2.11.4.tgz";
+      path = fetchurl {
+        name = "micromark___micromark_2.11.4.tgz";
+        url  = "https://registry.yarnpkg.com/micromark/-/micromark-2.11.4.tgz";
+        sha1 = "d13436138eea826383e822449c9a5c50ee44665a";
+      };
+    }
     {
       name = "micromatch___micromatch_3.1.10.tgz";
       path = fetchurl {
@@ -8865,6 +8833,14 @@
         sha1 = "7bd282e3f5842ed295bb748cdd9f1ffa2c824685";
       };
     }
+    {
+      name = "min_indent___min_indent_1.0.1.tgz";
+      path = fetchurl {
+        name = "min_indent___min_indent_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz";
+        sha1 = "a63f681673b30571fbe8bc25686ae746eefa9869";
+      };
+    }
     {
       name = "minify___minify_4.1.2.tgz";
       path = fetchurl {
@@ -8898,19 +8874,11 @@
       };
     }
     {
-      name = "minimist_options___minimist_options_3.0.2.tgz";
+      name = "minimist_options___minimist_options_4.1.0.tgz";
       path = fetchurl {
-        name = "minimist_options___minimist_options_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/minimist-options/-/minimist-options-3.0.2.tgz";
-        sha1 = "fba4c8191339e13ecf4d61beb03f070103f3d954";
-      };
-    }
-    {
-      name = "minimist___minimist_1.1.3.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.1.3.tgz";
-        sha1 = "3bedfd91a92d39016fcfaa1c681e8faa1a1efda8";
+        name = "minimist_options___minimist_options_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz";
+        sha1 = "c0655713c53a8a2ebd77ffa247d342c40f010619";
       };
     }
     {
@@ -8993,14 +8961,6 @@
         sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
       };
     }
-    {
-      name = "mkdirp___mkdirp_1.0.4.tgz";
-      path = fetchurl {
-        name = "mkdirp___mkdirp_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
-        sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
-      };
-    }
     {
       name = "mkdirp___mkdirp_0.5.5.tgz";
       path = fetchurl {
@@ -9009,6 +8969,14 @@
         sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
       };
     }
+    {
+      name = "mkdirp___mkdirp_1.0.4.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha1 = "3eb5ed62622756d79a5f0e2a221dfebad75c2f7e";
+      };
+    }
     {
       name = "mock_apollo_client___mock_apollo_client_0.5.0.tgz";
       path = fetchurl {
@@ -9081,6 +9049,14 @@
         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 {
@@ -9273,6 +9249,14 @@
         sha1 = "e66db1838b200c1dfc233225d12cb36520e234a8";
       };
     }
+    {
+      name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
+      path = fetchurl {
+        name = "normalize_package_data___normalize_package_data_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.0.tgz";
+        sha1 = "1f8a7c423b3d2e85eb36985eaf81de381d01301a";
+      };
+    }
     {
       name = "normalize_path___normalize_path_2.1.1.tgz";
       path = fetchurl {
@@ -9538,11 +9522,11 @@
       };
     }
     {
-      name = "orderedmap___orderedmap_1.0.0.tgz";
+      name = "orderedmap___orderedmap_1.1.1.tgz";
       path = fetchurl {
-        name = "orderedmap___orderedmap_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.0.0.tgz";
-        sha1 = "d90fc2ba1ed085190907d601dec6e6a53f8d41ba";
+        name = "orderedmap___orderedmap_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.1.tgz";
+        sha1 = "c618e77611b3b21d0fe3edc92586265e0059c789";
       };
     }
     {
@@ -9746,11 +9730,11 @@
       };
     }
     {
-      name = "parse_entities___parse_entities_1.2.0.tgz";
+      name = "parse_entities___parse_entities_2.0.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_entities___parse_entities_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz";
+        sha1 = "53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8";
       };
     }
     {
@@ -9761,14 +9745,6 @@
         sha1 = "f480f40434ef80741f8469099f8dea18f55a4dc9";
       };
     }
-    {
-      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_json___parse_json_5.1.0.tgz";
       path = fetchurl {
@@ -9937,6 +9913,14 @@
         sha1 = "cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f";
       };
     }
+    {
+      name = "path_type___path_type_4.0.0.tgz";
+      path = fetchurl {
+        name = "path_type___path_type_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
+        sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
+      };
+    }
     {
       name = "pbkdf2___pbkdf2_3.0.14.tgz";
       path = fetchurl {
@@ -10097,14 +10081,6 @@
         sha1 = "b40913f94eaacc2453fd30a1327ad6ee1f88b204";
       };
     }
-    {
-      name = "postcss_jsx___postcss_jsx_0.36.2.tgz";
-      path = fetchurl {
-        name = "postcss_jsx___postcss_jsx_0.36.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-jsx/-/postcss-jsx-0.36.2.tgz";
-        sha1 = "34bcd6752426a60b8df73f069e7595383060a794";
-      };
-    }
     {
       name = "postcss_less___postcss_less_3.1.4.tgz";
       path = fetchurl {
@@ -10113,14 +10089,6 @@
         sha1 = "369f58642b5928ef898ffbc1a6e93c958304c5ad";
       };
     }
-    {
-      name = "postcss_markdown___postcss_markdown_0.36.0.tgz";
-      path = fetchurl {
-        name = "postcss_markdown___postcss_markdown_0.36.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-markdown/-/postcss-markdown-0.36.0.tgz";
-        sha1 = "7f22849ae0e3db18820b7b0d5e7833f13a447560";
-      };
-    }
     {
       name = "postcss_media_query_parser___postcss_media_query_parser_0.2.3.tgz";
       path = fetchurl {
@@ -10161,14 +10129,6 @@
         sha1 = "479b46dc0c5ca3dc7fa5270851836b9ec7152f64";
       };
     }
-    {
-      name = "postcss_reporter___postcss_reporter_6.0.1.tgz";
-      path = fetchurl {
-        name = "postcss_reporter___postcss_reporter_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-6.0.1.tgz";
-        sha1 = "7c055120060a97c8837b4e48215661aafb74245f";
-      };
-    }
     {
       name = "postcss_resolve_nested_selector___postcss_resolve_nested_selector_0.1.1.tgz";
       path = fetchurl {
@@ -10178,43 +10138,35 @@
       };
     }
     {
-      name = "postcss_safe_parser___postcss_safe_parser_4.0.1.tgz";
+      name = "postcss_safe_parser___postcss_safe_parser_4.0.2.tgz";
       path = fetchurl {
-        name = "postcss_safe_parser___postcss_safe_parser_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz";
-        sha1 = "8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea";
+        name = "postcss_safe_parser___postcss_safe_parser_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz";
+        sha1 = "a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96";
       };
     }
     {
-      name = "postcss_sass___postcss_sass_0.3.5.tgz";
+      name = "postcss_sass___postcss_sass_0.4.4.tgz";
       path = fetchurl {
-        name = "postcss_sass___postcss_sass_0.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.3.5.tgz";
-        sha1 = "6d3e39f101a53d2efa091f953493116d32beb68c";
+        name = "postcss_sass___postcss_sass_0.4.4.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-sass/-/postcss-sass-0.4.4.tgz";
+        sha1 = "91f0f3447b45ce373227a98b61f8d8f0785285a3";
       };
     }
     {
-      name = "postcss_scss___postcss_scss_2.0.0.tgz";
+      name = "postcss_scss___postcss_scss_2.1.1.tgz";
       path = fetchurl {
-        name = "postcss_scss___postcss_scss_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.0.0.tgz";
-        sha1 = "248b0a28af77ea7b32b1011aba0f738bda27dea1";
+        name = "postcss_scss___postcss_scss_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-2.1.1.tgz";
+        sha1 = "ec3a75fa29a55e016b90bf3269026c53c1d2b383";
       };
     }
     {
-      name = "postcss_selector_parser___postcss_selector_parser_3.1.1.tgz";
+      name = "postcss_selector_parser___postcss_selector_parser_6.0.4.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_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_selector_parser___postcss_selector_parser_6.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz";
+        sha1 = "56075a1380a04604c38b063ea7767a129af5c2b3";
       };
     }
     {
@@ -10234,19 +10186,19 @@
       };
     }
     {
-      name = "postcss_value_parser___postcss_value_parser_4.0.0.tgz";
+      name = "postcss_value_parser___postcss_value_parser_4.1.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_value_parser___postcss_value_parser_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
+        sha1 = "443f6a20ced6481a2bda4fa8532a6e55d789a2cb";
       };
     }
     {
-      name = "postcss___postcss_7.0.30.tgz";
+      name = "postcss___postcss_7.0.35.tgz";
       path = fetchurl {
-        name = "postcss___postcss_7.0.30.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.30.tgz";
-        sha1 = "cc9378beffe46a02cbc4506a0477d05fcea9a8e2";
+        name = "postcss___postcss_7.0.35.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz";
+        sha1 = "d2be00b998f7f211d8a276974079f2e92b970e24";
       };
     }
     {
@@ -10305,14 +10257,6 @@
         sha1 = "6823e7c5900017b4bd3acf46fe9ac4b4d7bda9ea";
       };
     }
-    {
-      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 = "pretty_format___pretty_format_26.5.2.tgz";
       path = fetchurl {
@@ -10394,115 +10338,115 @@
       };
     }
     {
-      name = "prosemirror_commands___prosemirror_commands_1.0.7.tgz";
+      name = "prosemirror_collab___prosemirror_collab_1.2.2.tgz";
       path = fetchurl {
-        name = "prosemirror_commands___prosemirror_commands_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.0.7.tgz";
-        sha1 = "e5a2ba821e29ea7065c88277fe2c3d7f6b0b9d37";
+        name = "prosemirror_collab___prosemirror_collab_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-collab/-/prosemirror-collab-1.2.2.tgz";
+        sha1 = "8d2c0e82779cfef5d051154bd0836428bd6d9c4a";
       };
     }
     {
-      name = "prosemirror_dropcursor___prosemirror_dropcursor_1.1.1.tgz";
+      name = "prosemirror_commands___prosemirror_commands_1.1.7.tgz";
       path = fetchurl {
-        name = "prosemirror_dropcursor___prosemirror_dropcursor_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.1.1.tgz";
-        sha1 = "c60ed1ed6c58804a06a75db06a0d993b087b7622";
+        name = "prosemirror_commands___prosemirror_commands_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.7.tgz";
+        sha1 = "5b31ae0fe82835d36d22c780641c0b651f27dd03";
       };
     }
     {
-      name = "prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
+      name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.3.tgz";
       path = fetchurl {
-        name = "prosemirror_gapcursor___prosemirror_gapcursor_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.3.tgz";
-        sha1 = "acc6537fc5a35e9b38966f91a199a382dfc715c4";
+        name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.3.tgz";
+        sha1 = "583d6a82b4960d468132c07c40803cc1d697fda4";
       };
     }
     {
-      name = "prosemirror_history___prosemirror_history_1.0.3.tgz";
+      name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
       path = fetchurl {
-        name = "prosemirror_history___prosemirror_history_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.0.3.tgz";
-        sha1 = "5fb8591adfc272afaaf0b41bec64ee7d9522a118";
+        name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.5.tgz";
+        sha1 = "0c37fd6cbb1d7c46358c2e7397f8da9a8b5c6246";
       };
     }
     {
-      name = "prosemirror_inputrules___prosemirror_inputrules_1.0.1.tgz";
+      name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
       path = fetchurl {
-        name = "prosemirror_inputrules___prosemirror_inputrules_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.0.1.tgz";
-        sha1 = "f63305fd966379f218e82ca76a2a9b328b66dc7b";
+        name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.1.3.tgz";
+        sha1 = "4f76a1e71db4ef7cdf0e13dec6d8da2aeaecd489";
       };
     }
     {
-      name = "prosemirror_keymap___prosemirror_keymap_1.0.1.tgz";
+      name = "prosemirror_inputrules___prosemirror_inputrules_1.1.3.tgz";
       path = fetchurl {
-        name = "prosemirror_keymap___prosemirror_keymap_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.0.1.tgz";
-        sha1 = "03ef32b828e3a859dfb570eb84928bf2e5330bc2";
+        name = "prosemirror_inputrules___prosemirror_inputrules_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.3.tgz";
+        sha1 = "93f9199ca02473259c30d7e352e4c14022d54638";
       };
     }
     {
-      name = "prosemirror_markdown___prosemirror_markdown_1.3.0.tgz";
+      name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
       path = fetchurl {
-        name = "prosemirror_markdown___prosemirror_markdown_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.3.0.tgz";
-        sha1 = "a100d14c27da7d8fb70818230d786898eeadb7fa";
+        name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz";
+        sha1 = "8b481bf8389a5ac40d38dbd67ec3da2c7eac6a6d";
       };
     }
     {
-      name = "prosemirror_model___prosemirror_model_1.6.4.tgz";
+      name = "prosemirror_markdown___prosemirror_markdown_1.5.1.tgz";
       path = fetchurl {
-        name = "prosemirror_model___prosemirror_model_1.6.4.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.6.4.tgz";
-        sha1 = "2ac37a629448a7dbfd1635450e2fdd63c3450d7d";
+        name = "prosemirror_markdown___prosemirror_markdown_1.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-markdown/-/prosemirror-markdown-1.5.1.tgz";
+        sha1 = "877c7faea2225d3c52e988599bbe4457bcb3190f";
       };
     }
     {
-      name = "prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+      name = "prosemirror_model___prosemirror_model_1.13.3.tgz";
       path = fetchurl {
-        name = "prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz";
-        sha1 = "f216e0cf4809b6074aa27912449ac89897f1ae94";
+        name = "prosemirror_model___prosemirror_model_1.13.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.13.3.tgz";
+        sha1 = "3ccfde73b9c9e706933c72bdf7462906509ff1c9";
       };
     }
     {
-      name = "prosemirror_state___prosemirror_state_1.2.2.tgz";
+      name = "prosemirror_schema_list___prosemirror_schema_list_1.1.4.tgz";
       path = fetchurl {
-        name = "prosemirror_state___prosemirror_state_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.2.2.tgz";
-        sha1 = "8df26d95fd6fd327c0f9984a760e84d863204154";
+        name = "prosemirror_schema_list___prosemirror_schema_list_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.4.tgz";
+        sha1 = "471f9caf2d2bed93641d2e490434c0d2d4330df1";
       };
     }
     {
-      name = "prosemirror_tables___prosemirror_tables_0.7.10.tgz";
+      name = "prosemirror_state___prosemirror_state_1.3.4.tgz";
       path = fetchurl {
-        name = "prosemirror_tables___prosemirror_tables_0.7.10.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-0.7.10.tgz";
-        sha1 = "4b0f623422b4b8f84cdc9c559f8a87579846b3ba";
+        name = "prosemirror_state___prosemirror_state_1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.4.tgz";
+        sha1 = "4c6b52628216e753fc901c6d2bfd84ce109e8952";
       };
     }
     {
-      name = "prosemirror_transform___prosemirror_transform_1.1.3.tgz";
+      name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
       path = fetchurl {
-        name = "prosemirror_transform___prosemirror_transform_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.1.3.tgz";
-        sha1 = "28cfdf1f9ee514edc40466be7b7db39eed545fdf";
+        name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz";
+        sha1 = "ad66300cc49500455cf1243bb129c9e7d883321e";
       };
     }
     {
-      name = "prosemirror_utils___prosemirror_utils_0.7.5.tgz";
+      name = "prosemirror_transform___prosemirror_transform_1.2.12.tgz";
       path = fetchurl {
-        name = "prosemirror_utils___prosemirror_utils_0.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.7.5.tgz";
-        sha1 = "11b477647b672ec8f10679ab298a5823dad6457a";
+        name = "prosemirror_transform___prosemirror_transform_1.2.12.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.12.tgz";
+        sha1 = "4398b568faf75a1540fbf5c659ca436a8657ed6f";
       };
     }
     {
-      name = "prosemirror_view___prosemirror_view_1.6.8.tgz";
+      name = "prosemirror_view___prosemirror_view_1.18.0.tgz";
       path = fetchurl {
-        name = "prosemirror_view___prosemirror_view_1.6.8.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.6.8.tgz";
-        sha1 = "33fc1a6e2731633e5d6dc1af1967378f15810b74";
+        name = "prosemirror_view___prosemirror_view_1.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.18.0.tgz";
+        sha1 = "92d27b2583877938c529e173e6e3a0f3f6aa0e1c";
       };
     }
     {
@@ -10658,11 +10602,11 @@
       };
     }
     {
-      name = "quick_lru___quick_lru_1.1.0.tgz";
+      name = "quick_lru___quick_lru_4.0.1.tgz";
       path = fetchurl {
-        name = "quick_lru___quick_lru_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-1.1.0.tgz";
-        sha1 = "4360b17c61136ad38078397ff11416e186dcfbb8";
+        name = "quick_lru___quick_lru_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz";
+        sha1 = "5b8878f113a58217848c6482026c73e1ba57727f";
       };
     }
     {
@@ -10745,14 +10689,6 @@
         sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
       };
     }
-    {
-      name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
-      path = fetchurl {
-        name = "read_pkg_up___read_pkg_up_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz";
-        sha1 = "3ed496685dba0f8fe118d0691dc51f4a1ff96f07";
-      };
-    }
     {
       name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
       path = fetchurl {
@@ -10777,14 +10713,6 @@
         sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
       };
     }
-    {
-      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 = "read_pkg___read_pkg_5.2.0.tgz";
       path = fetchurl {
@@ -10802,11 +10730,11 @@
       };
     }
     {
-      name = "readable_stream___readable_stream_3.0.6.tgz";
+      name = "readable_stream___readable_stream_3.6.0.tgz";
       path = fetchurl {
-        name = "readable_stream___readable_stream_3.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.0.6.tgz";
-        sha1 = "351302e4c68b5abd6a2ed55376a7f9a25be3057a";
+        name = "readable_stream___readable_stream_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
       };
     }
     {
@@ -10842,11 +10770,11 @@
       };
     }
     {
-      name = "redent___redent_2.0.0.tgz";
+      name = "redent___redent_3.0.0.tgz";
       path = fetchurl {
-        name = "redent___redent_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/redent/-/redent-2.0.0.tgz";
-        sha1 = "c1b2007b42d57eb1389079b3c8333639d5e1ccaa";
+        name = "redent___redent_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz";
+        sha1 = "e557b7998316bb53c9f1f56fa626352c6963059f";
       };
     }
     {
@@ -10946,27 +10874,27 @@
       };
     }
     {
-      name = "remark_parse___remark_parse_6.0.3.tgz";
+      name = "remark_parse___remark_parse_9.0.0.tgz";
       path = fetchurl {
-        name = "remark_parse___remark_parse_6.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-6.0.3.tgz";
-        sha1 = "c99131052809da482108413f87b0ee7f52180a3a";
+        name = "remark_parse___remark_parse_9.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz";
+        sha1 = "4d20a299665880e4f4af5d90b7c7b8a935853640";
       };
     }
     {
-      name = "remark_stringify___remark_stringify_6.0.4.tgz";
+      name = "remark_stringify___remark_stringify_9.0.1.tgz";
       path = fetchurl {
-        name = "remark_stringify___remark_stringify_6.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-6.0.4.tgz";
-        sha1 = "16ac229d4d1593249018663c7bddf28aafc4e088";
+        name = "remark_stringify___remark_stringify_9.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-9.0.1.tgz";
+        sha1 = "576d06e910548b0a7191a71f27b33f1218862894";
       };
     }
     {
-      name = "remark___remark_10.0.1.tgz";
+      name = "remark___remark_13.0.0.tgz";
       path = fetchurl {
-        name = "remark___remark_10.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/remark/-/remark-10.0.1.tgz";
-        sha1 = "3058076dc41781bf505d8978c291485fe47667df";
+        name = "remark___remark_13.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/remark/-/remark-13.0.0.tgz";
+        sha1 = "d15d9bf71a402f40287ebe36067b66d54868e425";
       };
     }
     {
@@ -11001,14 +10929,6 @@
         sha1 = "5214c53a926d3552707527fbab415dbc08d06dda";
       };
     }
-    {
-      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_light___request_light_0.2.5.tgz";
       path = fetchurl {
@@ -11185,6 +11105,14 @@
         sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
       };
     }
+    {
+      name = "reusify___reusify_1.0.4.tgz";
+      path = fetchurl {
+        name = "reusify___reusify_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz";
+        sha1 = "90da382b1e126efc02146e90845a88db12925d76";
+      };
+    }
     {
       name = "rfdc___rfdc_1.1.4.tgz";
       path = fetchurl {
@@ -11218,11 +11146,11 @@
       };
     }
     {
-      name = "rope_sequence___rope_sequence_1.2.2.tgz";
+      name = "rope_sequence___rope_sequence_1.3.2.tgz";
       path = fetchurl {
-        name = "rope_sequence___rope_sequence_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.2.2.tgz";
-        sha1 = "49c4e5c2f54a48e990b050926771e2871bcb31ce";
+        name = "rope_sequence___rope_sequence_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz";
+        sha1 = "a19e02d72991ca71feb6b5f8a91154e48e3c098b";
       };
     }
     {
@@ -11241,6 +11169,14 @@
         sha1 = "b50e6b34583f3dd89329a2f23a8a2be072845911";
       };
     }
+    {
+      name = "run_parallel___run_parallel_1.1.10.tgz";
+      path = fetchurl {
+        name = "run_parallel___run_parallel_1.1.10.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz";
+        sha1 = "60a51b2ae836636c81377df16cb107351bcd13ef";
+      };
+    }
     {
       name = "run_queue___run_queue_1.0.3.tgz";
       path = fetchurl {
@@ -11409,14 +11345,6 @@
         sha1 = "5f3ca35761e47e05b206c6daff2cf814f0316b8e";
       };
     }
-    {
-      name = "semver___semver_7.3.4.tgz";
-      path = fetchurl {
-        name = "semver___semver_7.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
-        sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
-      };
-    }
     {
       name = "semver___semver_6.3.0.tgz";
       path = fetchurl {
@@ -11425,6 +11353,14 @@
         sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
       };
     }
+    {
+      name = "semver___semver_7.3.4.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz";
+        sha1 = "27aaa7d2e4ca76452f98d3add093a72c943edc97";
+      };
+    }
     {
       name = "semver___semver_5.3.0.tgz";
       path = fetchurl {
@@ -11569,6 +11505,14 @@
         sha1 = "d6b9181c1a48d397324c84871efbcfc73fc0654b";
       };
     }
+    {
+      name = "shortcss___shortcss_0.1.3.tgz";
+      path = fetchurl {
+        name = "shortcss___shortcss_0.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/shortcss/-/shortcss-0.1.3.tgz";
+        sha1 = "ee2a7904d80b7f5502c98408f4a2f313faadfb48";
+      };
+    }
     {
       name = "sigmund___sigmund_1.0.1.tgz";
       path = fetchurl {
@@ -11601,14 +11545,6 @@
         sha1 = "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55";
       };
     }
-    {
-      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 = "slash___slash_3.0.0.tgz";
       path = fetchurl {
@@ -11617,14 +11553,6 @@
         sha1 = "6539be870c165adbd5240220dbe361f1bc4d4634";
       };
     }
-    {
-      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 = "slice_ansi___slice_ansi_4.0.0.tgz";
       path = fetchurl {
@@ -11905,14 +11833,6 @@
         sha1 = "5cf48b4557becb4638d0bc4f21d23f5d19586593";
       };
     }
-    {
-      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 {
@@ -12065,14 +11985,6 @@
         sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
       };
     }
-    {
-      name = "stringify_entities___stringify_entities_1.3.2.tgz";
-      path = fetchurl {
-        name = "stringify_entities___stringify_entities_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-1.3.2.tgz";
-        sha1 = "a98417e5471fd227b3e45d3db1861c11caf668f7";
-      };
-    }
     {
       name = "strip_ansi___strip_ansi_3.0.1.tgz";
       path = fetchurl {
@@ -12154,11 +12066,11 @@
       };
     }
     {
-      name = "strip_indent___strip_indent_2.0.0.tgz";
+      name = "strip_indent___strip_indent_3.0.0.tgz";
       path = fetchurl {
-        name = "strip_indent___strip_indent_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz";
-        sha1 = "5ef8db295d01e6ed6cbf7aab96998d7822527b68";
+        name = "strip_indent___strip_indent_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz";
+        sha1 = "c32e1cee940b6b3432c771bc2c54bcce73cd3001";
       };
     }
     {
@@ -12194,27 +12106,27 @@
       };
     }
     {
-      name = "stylelint_config_recommended___stylelint_config_recommended_2.2.0.tgz";
+      name = "stylelint_declaration_strict_value___stylelint_declaration_strict_value_1.7.7.tgz";
       path = fetchurl {
-        name = "stylelint_config_recommended___stylelint_config_recommended_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-2.2.0.tgz";
-        sha1 = "46ab139db4a0e7151fd5f94af155512886c96d3f";
+        name = "stylelint_declaration_strict_value___stylelint_declaration_strict_value_1.7.7.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint-declaration-strict-value/-/stylelint-declaration-strict-value-1.7.7.tgz";
+        sha1 = "d2f0aabc7f3e701a8988207f27d9696bd1d1ed0d";
       };
     }
     {
-      name = "stylelint_scss___stylelint_scss_3.9.2.tgz";
+      name = "stylelint_scss___stylelint_scss_3.18.0.tgz";
       path = fetchurl {
-        name = "stylelint_scss___stylelint_scss_3.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.9.2.tgz";
-        sha1 = "5435174a57696ee52eae40146778a4e62f7ed3a3";
+        name = "stylelint_scss___stylelint_scss_3.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint-scss/-/stylelint-scss-3.18.0.tgz";
+        sha1 = "8f06371c223909bf3f62e839548af1badeed31e9";
       };
     }
     {
-      name = "stylelint___stylelint_10.1.0.tgz";
+      name = "stylelint___stylelint_13.9.0.tgz";
       path = fetchurl {
-        name = "stylelint___stylelint_10.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/stylelint/-/stylelint-10.1.0.tgz";
-        sha1 = "1bc4c4ce878107e7c396b19226d91ba28268911a";
+        name = "stylelint___stylelint_13.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/stylelint/-/stylelint-13.9.0.tgz";
+        sha1 = "93921ee6e11d4556b9f31131f485dc813b68e32a";
       };
     }
     {
@@ -12282,11 +12194,11 @@
       };
     }
     {
-      name = "swagger_ui_dist___swagger_ui_dist_3.43.0.tgz";
+      name = "swagger_ui_dist___swagger_ui_dist_3.44.1.tgz";
       path = fetchurl {
-        name = "swagger_ui_dist___swagger_ui_dist_3.43.0.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.43.0.tgz";
-        sha1 = "b064a2cec1d27776f9a124bc70423cfa0bbc0d3f";
+        name = "swagger_ui_dist___swagger_ui_dist_3.44.1.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.44.1.tgz";
+        sha1 = "757385a79698b8ef7045287be585671db4e4a252";
       };
     }
     {
@@ -12305,14 +12217,6 @@
         sha1 = "430637d248ba77e078883951fb9aa0eed7c63fa2";
       };
     }
-    {
-      name = "table___table_5.4.4.tgz";
-      path = fetchurl {
-        name = "table___table_5.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-5.4.4.tgz";
-        sha1 = "6e0f88fdae3692793d1077fd172a4667afe986a6";
-      };
-    }
     {
       name = "table___table_6.0.7.tgz";
       path = fetchurl {
@@ -12506,35 +12410,35 @@
       };
     }
     {
-      name = "tiptap_commands___tiptap_commands_1.4.0.tgz";
+      name = "tiptap_commands___tiptap_commands_1.17.1.tgz";
       path = fetchurl {
-        name = "tiptap_commands___tiptap_commands_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.4.0.tgz";
-        sha1 = "0cfb3ac138ee3099de56114cb119abd841fbcbe7";
+        name = "tiptap_commands___tiptap_commands_1.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap-commands/-/tiptap-commands-1.17.1.tgz";
+        sha1 = "a8974a26d87db57b2fd4fc56a552520c69e43a4a";
       };
     }
     {
-      name = "tiptap_extensions___tiptap_extensions_1.8.0.tgz";
+      name = "tiptap_extensions___tiptap_extensions_1.35.1.tgz";
       path = fetchurl {
-        name = "tiptap_extensions___tiptap_extensions_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.8.0.tgz";
-        sha1 = "3067620a024f1a9e5fae4450790b143d7ebe4394";
+        name = "tiptap_extensions___tiptap_extensions_1.35.1.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap-extensions/-/tiptap-extensions-1.35.1.tgz";
+        sha1 = "6227362b08dbad8d0ab0141b508876deca276c55";
       };
     }
     {
-      name = "tiptap_utils___tiptap_utils_1.1.1.tgz";
+      name = "tiptap_utils___tiptap_utils_1.13.1.tgz";
       path = fetchurl {
-        name = "tiptap_utils___tiptap_utils_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.1.1.tgz";
-        sha1 = "e7aad3e84eb35f7abed704d15da0420029789d0d";
+        name = "tiptap_utils___tiptap_utils_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap-utils/-/tiptap-utils-1.13.1.tgz";
+        sha1 = "f2150ded432465d66aa03a5ab333803415cddd20";
       };
     }
     {
-      name = "tiptap___tiptap_1.8.0.tgz";
+      name = "tiptap___tiptap_1.32.1.tgz";
       path = fetchurl {
-        name = "tiptap___tiptap_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.8.0.tgz";
-        sha1 = "c671188075ffa5ee4f86470f95818fd9ce6f1040";
+        name = "tiptap___tiptap_1.32.1.tgz";
+        url  = "https://registry.yarnpkg.com/tiptap/-/tiptap-1.32.1.tgz";
+        sha1 = "92b47008d163e31d25d44dc18809a7e928fe1daf";
       };
     }
     {
@@ -12674,35 +12578,19 @@
       };
     }
     {
-      name = "trim_newlines___trim_newlines_2.0.0.tgz";
+      name = "trim_newlines___trim_newlines_3.0.0.tgz";
       path = fetchurl {
-        name = "trim_newlines___trim_newlines_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-2.0.0.tgz";
-        sha1 = "b403d0b91be50c331dfc4b82eeceb22c3de16d20";
+        name = "trim_newlines___trim_newlines_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.0.tgz";
+        sha1 = "79726304a6a898aa8373427298d54c2ee8b1cb30";
       };
     }
     {
-      name = "trim_trailing_lines___trim_trailing_lines_1.1.1.tgz";
+      name = "trough___trough_1.0.5.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 = "trough___trough_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz";
+        sha1 = "b8b639cefad7d0bb2abd37d433ff8293efa5f406";
       };
     }
     {
@@ -12745,14 +12633,6 @@
         sha1 = "97a523518688f93aafad01b0e80eb803eb2abd86";
       };
     }
-    {
-      name = "ts_jest___ts_jest_26.4.1.tgz";
-      path = fetchurl {
-        name = "ts_jest___ts_jest_26.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ts-jest/-/ts-jest-26.4.1.tgz";
-        sha1 = "08ec0d3fc2c3a39e4a46eae5610b69fafa6babd0";
-      };
-    }
     {
       name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
       path = fetchurl {
@@ -12825,6 +12705,14 @@
         sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c";
       };
     }
+    {
+      name = "type_fest___type_fest_0.18.1.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz";
+        sha1 = "db4bc151a4a2cf4eebf9add5db75508db6cc841f";
+      };
+    }
     {
       name = "type_fest___type_fest_0.6.0.tgz";
       path = fetchurl {
@@ -12929,14 +12817,6 @@
         sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
       };
     }
-    {
-      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 {
@@ -12970,11 +12850,11 @@
       };
     }
     {
-      name = "unified___unified_7.1.0.tgz";
+      name = "unified___unified_9.2.0.tgz";
       path = fetchurl {
-        name = "unified___unified_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/unified/-/unified-7.1.0.tgz";
-        sha1 = "5032f1c1ee3364bd09da12e27fdd4a7553c7be13";
+        name = "unified___unified_9.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/unified/-/unified-9.2.0.tgz";
+        sha1 = "67a62c627c40589edebbf60f53edfd4d822027f8";
       };
     }
     {
@@ -13018,51 +12898,27 @@
       };
     }
     {
-      name = "unist_util_find_all_after___unist_util_find_all_after_1.0.2.tgz";
+      name = "unist_util_find_all_after___unist_util_find_all_after_3.0.2.tgz";
       path = fetchurl {
-        name = "unist_util_find_all_after___unist_util_find_all_after_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.2.tgz";
-        sha1 = "9be49cfbae5ca1566b27536670a92836bf2f8d6d";
+        name = "unist_util_find_all_after___unist_util_find_all_after_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz";
+        sha1 = "fdfecd14c5b7aea5e9ef38d5e0d5f774eeb561f6";
       };
     }
     {
-      name = "unist_util_is___unist_util_is_2.1.2.tgz";
+      name = "unist_util_is___unist_util_is_4.0.4.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_is___unist_util_is_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.4.tgz";
+        sha1 = "3e9e8de6af2eb0039a59f50c9b3e99698a924f50";
       };
     }
     {
-      name = "unist_util_remove_position___unist_util_remove_position_1.1.2.tgz";
+      name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.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_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.1.tgz";
-      path = fetchurl {
-        name = "unist_util_visit___unist_util_visit_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz";
-        sha1 = "4724aaa8486e6ee6e26d7ff3c8685960d560b1e3";
+        name = "unist_util_stringify_position___unist_util_stringify_position_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz";
+        sha1 = "cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da";
       };
     }
     {
@@ -13290,27 +13146,19 @@
       };
     }
     {
-      name = "vfile_location___vfile_location_2.0.4.tgz";
+      name = "vfile_message___vfile_message_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_2.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz";
+        sha1 = "5b43b88171d409eae58477d13f23dd41d52c371a";
       };
     }
     {
-      name = "vfile_message___vfile_message_1.1.1.tgz";
+      name = "vfile___vfile_4.2.1.tgz";
       path = fetchurl {
-        name = "vfile_message___vfile_message_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/vfile-message/-/vfile-message-1.1.1.tgz";
-        sha1 = "5833ae078a1dfa2d96e9647886cd32993ab313e1";
-      };
-    }
-    {
-      name = "vfile___vfile_3.0.1.tgz";
-      path = fetchurl {
-        name = "vfile___vfile_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/vfile/-/vfile-3.0.1.tgz";
-        sha1 = "47331d2abe3282424f4a4bb6acd20a44c4121803";
+        name = "vfile___vfile_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz";
+        sha1 = "03f1dce28fc625c625bc6514350fbdb00fa9e624";
       };
     }
     {
@@ -13466,11 +13314,11 @@
       };
     }
     {
-      name = "vue_jest___vue_jest_4.0.0_rc.0.tgz";
+      name = "vue_jest___vue_jest_4.0.1.tgz";
       path = fetchurl {
-        name = "vue_jest___vue_jest_4.0.0_rc.0.tgz";
-        url  = "https://registry.yarnpkg.com/vue-jest/-/vue-jest-4.0.0-rc.0.tgz";
-        sha1 = "0ce263c7f923441d0eeb99841620e8e9470336f4";
+        name = "vue_jest___vue_jest_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/vue-jest/-/vue-jest-4.0.1.tgz";
+        sha1 = "683efc351c24456865b1356bae69d5bb663dafb5";
       };
     }
     {
@@ -13562,11 +13410,11 @@
       };
     }
     {
-      name = "w3c_keyname___w3c_keyname_1.1.8.tgz";
+      name = "w3c_keyname___w3c_keyname_2.2.4.tgz";
       path = fetchurl {
-        name = "w3c_keyname___w3c_keyname_1.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-1.1.8.tgz";
-        sha1 = "4e2219663760fd6535b7a1550f1552d71fc9372c";
+        name = "w3c_keyname___w3c_keyname_2.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.4.tgz";
+        sha1 = "4ade6916f6290224cdbd1db8ac49eab03d0eef6b";
       };
     }
     {
@@ -13841,14 +13689,6 @@
         sha1 = "56bd5c5a5c70481cd19c571bd39ab965a5de56e8";
       };
     }
-    {
-      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_6.2.1.tgz";
       path = fetchurl {
@@ -13873,14 +13713,6 @@
         sha1 = "f1cf84fe2d5e901ebce94efaece785f187a228f2";
       };
     }
-    {
-      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 = "xdg_basedir___xdg_basedir_4.0.0.tgz";
       path = fetchurl {
@@ -14026,19 +13858,11 @@
       };
     }
     {
-      name = "yargs_parser___yargs_parser_20.2.1.tgz";
+      name = "yaml___yaml_1.10.0.tgz";
       path = fetchurl {
-        name = "yargs_parser___yargs_parser_20.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.1.tgz";
-        sha1 = "28f3773c546cdd8a69ddae68116b48a5da328e77";
-      };
-    }
-    {
-      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 = "yaml___yaml_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz";
+        sha1 = "3b593add944876077d4d683fee01081bd9fff31e";
       };
     }
     {
@@ -14057,6 +13881,14 @@
         sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
       };
     }
+    {
+      name = "yargs_parser___yargs_parser_20.2.4.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_20.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz";
+        sha1 = "b42890f14566796f85ae8e3a25290d205f154a54";
+      };
+    }
     {
       name = "yargs___yargs_13.3.2.tgz";
       path = fetchurl {
@@ -14121,5 +13953,13 @@
         sha1 = "ec7432f9415c82c73584b6b7b8c47e1b016209c6";
       };
     }
+    {
+      name = "zwitch___zwitch_1.0.5.tgz";
+      path = fetchurl {
+        name = "zwitch___zwitch_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz";
+        sha1 = "d11d7381ffed16b742f6af7b3f223d5cd9fe9920";
+      };
+    }
   ];
 }
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch b/third_party/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
index 98213c781a..c88645b85a 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
+++ b/third_party/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
@@ -44,7 +44,7 @@
              continue
 -        ui.write('<tag revision="%d" node="%s" name="%s"/>\n'
 +        ui.write(b'<tag revision="%d" node="%s" name="%s"/>\n'
-                  % (r, _x(node.hex(n)), _x(t)))
+                  % (r, _x(node.hex(n)), _u(t)))
  
  def _branches(ui, repo):
 @@ -104,136 +107,148 @@ def _branches(ui, repo):
@@ -59,7 +59,7 @@
          if lookup(r, n) in branchheads(t):
 -            ui.write('<branch revision="%d" node="%s" name="%s"/>\n'
 +            ui.write(b'<branch revision="%d" node="%s" name="%s"/>\n'
-                      % (r, _x(node.hex(n)), _x(t)))
+                      % (r, _x(node.hex(n)), _u(t)))
  
  def _manifest(ui, repo, path, rev):
      ctx = _changectx(repo, rev)
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/redmine/Gemfile b/third_party/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
index 9e844a1e01..57a1f07363 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
+++ b/third_party/nixpkgs/pkgs/applications/version-management/redmine/Gemfile
@@ -1,28 +1,34 @@
 source 'https://rubygems.org'
 
-ruby '>= 2.3.0', '< 2.7.0' if Bundler::VERSION >= '1.12.0'
-gem "bundler", ">= 1.5.0"
+ruby '>= 2.4.0', '< 2.8.0'
+gem 'bundler', '>= 1.12.0'
 
-gem 'rails', '5.2.4.5'
+gem 'rails', '5.2.5'
 gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5'
-gem "rouge", "~> 3.12.0"
-gem "request_store", "~> 1.4.1"
+gem 'rouge', '~> 3.26.0'
+gem 'request_store', '~> 1.5.0'
 gem "mini_mime", "~> 1.0.1"
 gem "actionpack-xml_parser"
-gem "roadie-rails", (RUBY_VERSION < "2.5" ? "~> 1.3.0" : "~> 2.1.0")
-gem "mimemagic"
+gem 'roadie-rails', (RUBY_VERSION < '2.5' ? '~> 1.3.0' : '~> 2.2.0')
+gem 'marcel'
 gem "mail", "~> 2.7.1"
 gem 'csv', (RUBY_VERSION < '2.5' ? ['>= 3.1.1', '<= 3.1.5'] : '~> 3.1.1')
 gem 'nokogiri', (RUBY_VERSION < '2.5' ? '~> 1.10.0' : '~> 1.11.1')
-gem "i18n", "~> 1.6.0"
+gem 'i18n', '~> 1.8.2'
 gem "rbpdf", "~> 1.20.0"
+gem 'addressable'
+gem 'rubyzip', '~> 2.3.0'
 
 # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
 gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
 
+# TOTP-based 2-factor authentication
+gem 'rotp'
+gem 'rqrcode'
+
 # Optional gem for LDAP authentication
 group :ldap do
-  gem "net-ldap", "~> 0.16.0"
+  gem 'net-ldap', '~> 0.17.0'
 end
 
 # Optional gem for OpenID authentication
@@ -33,7 +39,7 @@ end
 
 # Optional gem for exporting the gantt to a PNG file
 group :minimagick do
-  gem "mini_magick", "~> 4.9.5"
+  gem 'mini_magick', '~> 4.11.0'
 end
 
 # Optional Markdown support, not for JRuby
@@ -43,7 +49,7 @@ end
 
 # Include database gems for the database adapters NixOS supports
 gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
-gem "pg", "~> 1.1.4", :platforms => [:mri, :mingw, :x64_mingw]
+gem "pg", "~> 1.2.2", :platforms => [:mri, :mingw, :x64_mingw]
 
 group :development do
   gem "yard"
@@ -52,16 +58,17 @@ end
 group :test do
   gem "rails-dom-testing"
   gem 'mocha', '>= 1.4.0'
-  gem "simplecov", "~> 0.17.0", :require => false
+  gem 'simplecov', '~> 0.18.5', :require => false
   gem "ffi", platforms: [:mingw, :x64_mingw, :mswin]
   # For running system tests
-  gem 'puma', '~> 3.7'
-  gem "capybara", (RUBY_VERSION < "2.4" ? "~> 3.15.1" : "~> 3.25.0")
+  gem 'puma'
+  gem 'capybara', '~> 3.31.0'
   gem "selenium-webdriver"
+  gem 'webdrivers', '~> 4.4', require: false
   # RuboCop
-  gem 'rubocop', '~> 0.76.0'
-  gem 'rubocop-performance', '~> 1.5.0'
-  gem 'rubocop-rails', '~> 2.3.0'
+  gem 'rubocop', '~> 1.12.0'
+  gem 'rubocop-performance', '~> 1.10.1'
+  gem 'rubocop-rails', '~> 2.9.0'
 end
 
 local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock b/third_party/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
index c71a1b7bdd..d3afc9de34 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
+++ b/third_party/nixpkgs/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -1,19 +1,19 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    actioncable (5.2.4.5)
-      actionpack (= 5.2.4.5)
+    actioncable (5.2.5)
+      actionpack (= 5.2.5)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailer (5.2.4.5)
-      actionpack (= 5.2.4.5)
-      actionview (= 5.2.4.5)
-      activejob (= 5.2.4.5)
+    actionmailer (5.2.5)
+      actionpack (= 5.2.5)
+      actionview (= 5.2.5)
+      activejob (= 5.2.5)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (5.2.4.5)
-      actionview (= 5.2.4.5)
-      activesupport (= 5.2.4.5)
+    actionpack (5.2.5)
+      actionview (= 5.2.5)
+      activesupport (= 5.2.5)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
@@ -21,26 +21,26 @@ GEM
     actionpack-xml_parser (2.0.1)
       actionpack (>= 5.0)
       railties (>= 5.0)
-    actionview (5.2.4.5)
-      activesupport (= 5.2.4.5)
+    actionview (5.2.5)
+      activesupport (= 5.2.5)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.3)
-    activejob (5.2.4.5)
-      activesupport (= 5.2.4.5)
+    activejob (5.2.5)
+      activesupport (= 5.2.5)
       globalid (>= 0.3.6)
-    activemodel (5.2.4.5)
-      activesupport (= 5.2.4.5)
-    activerecord (5.2.4.5)
-      activemodel (= 5.2.4.5)
-      activesupport (= 5.2.4.5)
+    activemodel (5.2.5)
+      activesupport (= 5.2.5)
+    activerecord (5.2.5)
+      activemodel (= 5.2.5)
+      activesupport (= 5.2.5)
       arel (>= 9.0)
-    activestorage (5.2.4.5)
-      actionpack (= 5.2.4.5)
-      activerecord (= 5.2.4.5)
-      marcel (~> 0.3.1)
-    activesupport (5.2.4.5)
+    activestorage (5.2.5)
+      actionpack (= 5.2.5)
+      activerecord (= 5.2.5)
+      marcel (~> 1.0.0)
+    activesupport (5.2.5)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -50,7 +50,7 @@ GEM
     arel (9.0.0)
     ast (2.4.2)
     builder (3.2.4)
-    capybara (3.25.0)
+    capybara (3.31.0)
       addressable
       mini_mime (>= 0.1.3)
       nokogiri (~> 1.8)
@@ -59,6 +59,7 @@ GEM
       regexp_parser (~> 1.5)
       xpath (~> 3.2)
     childprocess (3.0.0)
+    chunky_png (1.4.0)
     concurrent-ruby (1.1.8)
     crass (1.0.6)
     css_parser (1.9.0)
@@ -69,26 +70,22 @@ GEM
     globalid (0.4.2)
       activesupport (>= 4.2.0)
     htmlentities (4.3.4)
-    i18n (1.6.0)
+    i18n (1.8.9)
       concurrent-ruby (~> 1.0)
-    jaro_winkler (1.5.4)
-    json (2.5.1)
     loofah (2.9.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
       mini_mime (>= 0.1.1)
-    marcel (0.3.3)
-      mimemagic (~> 0.3.2)
+    marcel (1.0.0)
     method_source (1.0.0)
-    mimemagic (0.3.5)
-    mini_magick (4.9.5)
-    mini_mime (1.0.2)
+    mini_magick (4.11.0)
+    mini_mime (1.0.3)
     mini_portile2 (2.5.0)
     minitest (5.14.4)
     mocha (1.12.0)
     mysql2 (0.5.3)
-    net-ldap (0.16.3)
+    net-ldap (0.17.0)
     nio4r (2.5.7)
     nokogiri (1.11.2)
       mini_portile2 (~> 2.5.0)
@@ -96,9 +93,10 @@ GEM
     parallel (1.20.1)
     parser (3.0.0.0)
       ast (~> 2.4.1)
-    pg (1.1.4)
+    pg (1.2.3)
     public_suffix (4.0.6)
-    puma (3.12.6)
+    puma (5.2.2)
+      nio4r (~> 2.0)
     racc (1.5.2)
     rack (2.2.3)
     rack-openid (1.4.2)
@@ -106,27 +104,27 @@ GEM
       ruby-openid (>= 2.1.8)
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
-    rails (5.2.4.5)
-      actioncable (= 5.2.4.5)
-      actionmailer (= 5.2.4.5)
-      actionpack (= 5.2.4.5)
-      actionview (= 5.2.4.5)
-      activejob (= 5.2.4.5)
-      activemodel (= 5.2.4.5)
-      activerecord (= 5.2.4.5)
-      activestorage (= 5.2.4.5)
-      activesupport (= 5.2.4.5)
+    rails (5.2.5)
+      actioncable (= 5.2.5)
+      actionmailer (= 5.2.5)
+      actionpack (= 5.2.5)
+      actionview (= 5.2.5)
+      activejob (= 5.2.5)
+      activemodel (= 5.2.5)
+      activerecord (= 5.2.5)
+      activestorage (= 5.2.5)
+      activesupport (= 5.2.5)
       bundler (>= 1.3.0)
-      railties (= 5.2.4.5)
+      railties (= 5.2.5)
       sprockets-rails (>= 2.0.0)
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.3.0)
       loofah (~> 2.3)
-    railties (5.2.4.5)
-      actionpack (= 5.2.4.5)
-      activesupport (= 5.2.4.5)
+    railties (5.2.5)
+      actionpack (= 5.2.5)
+      activesupport (= 5.2.5)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.19.0, < 2.0)
@@ -138,38 +136,49 @@ GEM
     rbpdf-font (1.19.1)
     redcarpet (3.5.1)
     regexp_parser (1.8.2)
-    request_store (1.4.1)
+    request_store (1.5.0)
       rack (>= 1.4)
+    rexml (3.2.4)
     roadie (4.0.0)
       css_parser (~> 1.4)
       nokogiri (~> 1.8)
-    roadie-rails (2.1.1)
-      railties (>= 5.1, < 6.1)
+    roadie-rails (2.2.0)
+      railties (>= 5.1, < 6.2)
       roadie (>= 3.1, < 5.0)
-    rouge (3.12.0)
-    rubocop (0.76.0)
-      jaro_winkler (~> 1.5.1)
+    rotp (6.2.0)
+    rouge (3.26.0)
+    rqrcode (1.2.0)
+      chunky_png (~> 1.0)
+      rqrcode_core (~> 0.2)
+    rqrcode_core (0.2.0)
+    rubocop (1.12.0)
       parallel (~> 1.10)
-      parser (>= 2.6)
+      parser (>= 3.0.0.0)
       rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.8, < 3.0)
+      rexml
+      rubocop-ast (>= 1.2.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 1.7)
-    rubocop-performance (1.5.2)
-      rubocop (>= 0.71.0)
-    rubocop-rails (2.3.2)
+      unicode-display_width (>= 1.4.0, < 3.0)
+    rubocop-ast (1.4.1)
+      parser (>= 2.7.1.5)
+    rubocop-performance (1.10.2)
+      rubocop (>= 0.90.0, < 2.0)
+      rubocop-ast (>= 0.4.0)
+    rubocop-rails (2.9.1)
+      activesupport (>= 4.2.0)
       rack (>= 1.1)
-      rubocop (>= 0.72.0)
+      rubocop (>= 0.90.0, < 2.0)
     ruby-openid (2.9.2)
     ruby-progressbar (1.11.0)
     rubyzip (2.3.0)
     selenium-webdriver (3.142.7)
       childprocess (>= 0.5, < 4.0)
       rubyzip (>= 1.2.2)
-    simplecov (0.17.1)
+    simplecov (0.18.5)
       docile (~> 1.1)
-      json (>= 1.8, < 3)
-      simplecov-html (~> 0.10.0)
-    simplecov-html (0.10.2)
+      simplecov-html (~> 0.11)
+    simplecov-html (0.12.3)
     sprockets (4.0.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
@@ -181,7 +190,11 @@ GEM
     thread_safe (0.3.6)
     tzinfo (1.2.9)
       thread_safe (~> 0.1)
-    unicode-display_width (1.6.1)
+    unicode-display_width (2.0.0)
+    webdrivers (4.6.0)
+      nokogiri (~> 1.6)
+      rubyzip (>= 1.3.0)
+      selenium-webdriver (>= 3.0, < 4.0)
     websocket-driver (0.7.3)
       websocket-extensions (>= 0.1.0)
     websocket-extensions (0.1.5)
@@ -194,36 +207,41 @@ PLATFORMS
 
 DEPENDENCIES
   actionpack-xml_parser
-  bundler (>= 1.5.0)
-  capybara (~> 3.25.0)
+  addressable
+  bundler (>= 1.12.0)
+  capybara (~> 3.31.0)
   csv (~> 3.1.1)
   ffi
-  i18n (~> 1.6.0)
+  i18n (~> 1.8.2)
   mail (~> 2.7.1)
-  mimemagic
-  mini_magick (~> 4.9.5)
+  marcel
+  mini_magick (~> 4.11.0)
   mini_mime (~> 1.0.1)
   mocha (>= 1.4.0)
   mysql2 (~> 0.5.0)
-  net-ldap (~> 0.16.0)
+  net-ldap (~> 0.17.0)
   nokogiri (~> 1.11.1)
-  pg (~> 1.1.4)
-  puma (~> 3.7)
+  pg (~> 1.2.2)
+  puma
   rack-openid
-  rails (= 5.2.4.5)
+  rails (= 5.2.5)
   rails-dom-testing
   rbpdf (~> 1.20.0)
   redcarpet (~> 3.5.1)
-  request_store (~> 1.4.1)
-  roadie-rails (~> 2.1.0)
-  rouge (~> 3.12.0)
-  rubocop (~> 0.76.0)
-  rubocop-performance (~> 1.5.0)
-  rubocop-rails (~> 2.3.0)
+  request_store (~> 1.5.0)
+  roadie-rails (~> 2.2.0)
+  rotp
+  rouge (~> 3.26.0)
+  rqrcode
+  rubocop (~> 1.12.0)
+  rubocop-performance (~> 1.10.1)
+  rubocop-rails (~> 2.9.0)
   ruby-openid (~> 2.9.2)
+  rubyzip (~> 2.3.0)
   selenium-webdriver
-  simplecov (~> 0.17.0)
+  simplecov (~> 0.18.5)
   tzinfo-data
+  webdrivers (~> 4.4)
   yard
 
 RUBY VERSION
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/redmine/default.nix b/third_party/nixpkgs/pkgs/applications/version-management/redmine/default.nix
index 37905e273d..e0559a9c48 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/redmine/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/redmine/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }:
 
 let
-  version = "4.1.2";
+  version = "4.2.0";
   rubyEnv = bundlerEnv {
     name = "redmine-env-${version}";
 
@@ -16,7 +16,7 @@ in
 
     src = fetchurl {
       url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
-      sha256 = "13i2rlkpdwkdhidpdb5r2zxwxna00r71rh248kzfhgy5a5rkj8ky";
+      sha256 = "1r87gy73dclnvcz55vziv6kbgyck0v8jlzx1wwkak8mgh32n8n19";
     };
 
     nativeBuildInputs = [ makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix b/third_party/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
index e110c1bf54..b545c9d6a3 100644
--- a/third_party/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
+++ b/third_party/nixpkgs/pkgs/applications/version-management/redmine/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1rlx5597621jmdzpf8mhfm52d0fcz1izdj94k58l4sln4gw0x73j";
+      sha256 = "16g623zz4nnwj236xms4n85jbc2b1imddqsx3gd4x4b7xqlwlw9p";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19y5y2dypqakk39smcmyslic8wnffzc0670d2zjadsrgsg850gyp";
+      sha256 = "1ifmlwlm4bs6gm3y4c701wkhyf4ym4kia44npz9fbc92ariawn2z";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dh83klnrhfi94s066ahfl2bxaqxqc0sqga71bvcgn8xmcl56bhq";
+      sha256 = "1m9wdcnkls8cs31gfic5hffnrz0l1iyk0dldwx2q2z58qhh3sw0m";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   actionpack-xml_parser = {
     dependencies = ["actionpack" "railties"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kxf9gd52hh33z6015gsfsnyavly29f15lbsljlai68r7qc2j89c";
+      sha256 = "1xlcfcbmwlmcp6vi9ay5xw9lqnj70bl1gn19hafygv9w65sw0n2i";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mb4s49vbrxyg3pba76z3llbzclm8d4zcjhalf4yrfq5y357kkya";
+      sha256 = "00k5fl4bx9qmrkwn8mdfdh8h2did0bnr3nc3g0fdyvm7ql9981jc";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qc4bjxnkjrlqpz2k7hllqk30ydad5m2q7pbqzdr0hxzycavxz7m";
+      sha256 = "1bb600bsxd0gf4vwqq2qiklg7wd37b0as6ll3k5hjy9v6izj006b";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport" "arel"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1smg691az7r2bsydfj2d46mr2d5sm0lq3ydwvfv6hl5c3y1y5jfg";
+      sha256 = "03zijqm7xdmmylzp68hadvq5rps67lsq10hnq6kpmhq496pp7wlj";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   activestorage = {
     dependencies = ["actionpack" "activerecord" "marcel"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12i3an3vxg0fqjvr4mi0b3nnsb8jpcphkmz1717nb7lsy3wm4081";
+      sha256 = "1706qircxl9agrq5423zv0i9p7gvcxcligw8vvclk049hks87gqd";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fp4gr3g25qgl01y3pd88wfh4pjc5zj3bz4v7rkxxwaxdjg7a9cc";
+      sha256 = "1bizrvn05d59l1qzwkhqvwmzicamq4p66z2ziap5ks9y6hqgqmzj";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -156,10 +156,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bq1y3gy98rqgw8z69b42isc2klb75fvlwvpi36vycf1yk0sfmmx";
+      sha256 = "0fhgnw6xgnphaka50b995mcmc2pjifmlr8ypz6dw2a6jkz3qqlcl";
       type = "gem";
     };
-    version = "3.25.0";
+    version = "3.31.0";
   };
   childprocess = {
     groups = ["default" "test"];
@@ -171,6 +171,16 @@
     };
     version = "3.0.0";
   };
+  chunky_png = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
   concurrent-ruby = {
     groups = ["default" "test"];
     platforms = [];
@@ -259,30 +269,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hfxnlyr618s25xpafw9mypa82qppjccbh292c4l3bj36az7f6wl";
+      sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32";
       type = "gem";
     };
-    version = "1.6.0";
-  };
-  jaro_winkler = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
-      type = "gem";
-    };
-    version = "1.5.4";
-  };
-  json = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
-      type = "gem";
-    };
-    version = "2.5.1";
+    version = "1.8.9";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -307,15 +297,14 @@
     version = "2.7.1";
   };
   marcel = {
-    dependencies = ["mimemagic"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nxbjmcyg8vlw6zwagf17l9y2mwkagmmkg95xybpn4bmf3rfnksx";
+      sha256 = "1vhp6lifwvqs2b0a276lj61n86c1l7d1xiswjj2w23f54gl51mpk";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "1.0.0";
   };
   method_source = {
     groups = ["default"];
@@ -327,35 +316,25 @@
     };
     version = "1.0.0";
   };
-  mimemagic = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1qfqb9w76kmpb48frbzbyvjc0dfxh5qiw1kxdbv2y2kp6fxpa1kf";
-      type = "gem";
-    };
-    version = "0.3.5";
-  };
   mini_magick = {
     groups = ["minimagick"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qy09qrd5bwh8mkbj514n5vcw9ni73218h9s3zmvbpmdwrnzi8j4";
+      sha256 = "1aj604x11d9pksbljh0l38f70b558rhdgji1s9i763hiagvvx2hs";
       type = "gem";
     };
-    version = "4.9.5";
+    version = "4.11.0";
   };
   mini_mime = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "1np6srnyagghhh2w4nyv09sz47v0i6ri3q6blicj94vgxqp12c94";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.0.3";
   };
   mini_portile2 = {
     groups = ["default" "test"];
@@ -410,13 +389,13 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13lh6qizxi8fza8py73b2dvjp9p010dvbaq7diagir9nh8plsinv";
+      sha256 = "1j19yxrz7h3hj7kiiln13c7bz7hvpdqr31bwi88dj64zifr7896n";
       type = "gem";
     };
-    version = "0.16.3";
+    version = "0.17.0";
   };
   nio4r = {
-    groups = ["default"];
+    groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
@@ -470,10 +449,10 @@
     }];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0fmnyxcyrvgdbgq7m09whgn9i8rwfybk0w8aii1nc4g5kqw0k2jy";
+      sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
       type = "gem";
     };
-    version = "1.1.4";
+    version = "1.2.3";
   };
   public_suffix = {
     groups = ["default" "test"];
@@ -486,14 +465,15 @@
     version = "4.0.6";
   };
   puma = {
+    dependencies = ["nio4r"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ypkyqhysb2vvdvkl4w923yvpmi228gld4kbargb1i2d4sa9s49a";
+      sha256 = "0wiprd0v4mjqv5p1vqaidr9ci2xm08lcxdz1k50mb1b6nrw6r74k";
       type = "gem";
     };
-    version = "3.12.6";
+    version = "5.2.2";
   };
   racc = {
     groups = ["default" "test"];
@@ -543,10 +523,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nzsm1fqqnhlvgcfrrpsmcv2znldfkyq5c9z7k08p2p54jrd8kfd";
+      sha256 = "1p0sa36sngmfkmykcv5qhpr7rzsrc42cd9flhnxjs3r5b0jsl52c";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "nokogiri"];
@@ -576,10 +556,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qwgjwfzkm4q7wby30c9r724w1sp1bywbqfmpv20lq3zdcrf1rfd";
+      sha256 = "072spzdpc8bv35nflr43i67njlriavqkrz6cgyd42adz6bqyval9";
       type = "gem";
     };
-    version = "5.2.4.5";
+    version = "5.2.5";
   };
   rainbow = {
     groups = ["default" "test"];
@@ -648,10 +628,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1963330z03fk382fi8y231ygcbnh86m91dqlp5rh1mwy9ihzzl6d";
+      sha256 = "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.5.0";
+  };
+  rexml = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      type = "gem";
+    };
+    version = "3.2.4";
   };
   roadie = {
     dependencies = ["css_parser" "nokogiri"];
@@ -670,53 +660,95 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fmn7kkbpgipjsx65rw7hqa3bwinlqykx5qf1x28ya9ag8v2q0ph";
+      sha256 = "0jjcqnp37z65dksykzwjiz149kx65nw70lyx8dkw1fm5x7yraqvh";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
+  };
+  rotp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3";
+      type = "gem";
+    };
+    version = "6.2.0";
   };
   rouge = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08fpnxbhqv5sqpnfjasl1ysxafssyq4q1yhcqamqqzmb9czj1czw";
+      sha256 = "0b4b300i3m4m4kw7w1n9wgxwy16zccnb7271miksyzd0wq5b9pm3";
       type = "gem";
     };
-    version = "3.12.0";
+    version = "3.26.0";
+  };
+  rqrcode = {
+    dependencies = ["chunky_png" "rqrcode_core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0f1cv9a9sjqc898qm3h7zmkhwglrjw5blsskbg3gsaws01d4bc47";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  rqrcode_core = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00kqasqja8zyzqvlgiwd9r0wndqk01qk5j68a8lhlz4ayrd4qy0y";
+      type = "gem";
+    };
+    version = "0.2.0";
   };
   rubocop = {
-    dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "ruby-progressbar" "unicode-display_width"];
+    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07x51ixlx76y194xsszh5lbkaqakz44ykbrjxg3qaggbs18790q0";
+      sha256 = "1i3y0h6awywx4rdmjdan908jmnyk589pndbjypxkfbkqvjx514fw";
       type = "gem";
     };
-    version = "0.76.0";
+    version = "1.12.0";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
+      type = "gem";
+    };
+    version = "1.4.1";
   };
   rubocop-performance = {
-    dependencies = ["rubocop"];
+    dependencies = ["rubocop" "rubocop-ast"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fk9nd3b24avgsqp726hy2pl1iyfjrh6jni97wkky6kqy0lq6zq2";
+      sha256 = "07c3kymvsid9aajwmmwr3n6apxgyjcbzbl2n6r5lpzkyz28jqn15";
       type = "gem";
     };
-    version = "1.5.2";
+    version = "1.10.2";
   };
   rubocop-rails = {
-    dependencies = ["rack" "rubocop"];
+    dependencies = ["activesupport" "rack" "rubocop"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q7ffsq1cjm4m949nh935kjzv4zf1pacnrl00siwh8flhcn3mmjf";
+      sha256 = "0h656la1g644g54g3gidz45p6v8i1156nw6bi66cfx7078y1339d";
       type = "gem";
     };
-    version = "2.3.2";
+    version = "2.9.1";
   };
   ruby-openid = {
     groups = ["openid"];
@@ -760,25 +792,25 @@
     version = "3.142.7";
   };
   simplecov = {
-    dependencies = ["docile" "json" "simplecov-html"];
+    dependencies = ["docile" "simplecov-html"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1135k46nik05sdab30yxb8264lqiz01c8v000g16cl9pjc4mxrdw";
+      sha256 = "0ycx5q699ycbjhp28sjbkrd62vwxlrb7fh4v2m7sjsp2qhi6cf6r";
       type = "gem";
     };
-    version = "0.17.1";
+    version = "0.18.5";
   };
   simplecov-html = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lihraa4rgxk8wbfl77fy9sf0ypk31iivly8vl3w04srd7i0clzn";
+      sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb";
       type = "gem";
     };
-    version = "0.10.2";
+    version = "0.12.3";
   };
   sprockets = {
     dependencies = ["concurrent-ruby" "rack"];
@@ -838,10 +870,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+      sha256 = "1bilbnc8j6jkb59lrf177i3p1pdyxll0n8400hzqr35vl3r3kv2m";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "2.0.0";
+  };
+  webdrivers = {
+    dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hi6pgkfwgz1bzfclyrr449xy9y2f2bcrnnnlb5ghvvrqkgn0dry";
+      type = "gem";
+    };
+    version = "4.6.0";
   };
   websocket-driver = {
     dependencies = ["websocket-extensions"];
diff --git a/third_party/nixpkgs/pkgs/applications/video/mpv/default.nix b/third_party/nixpkgs/pkgs/applications/video/mpv/default.nix
index d4fc07d1a2..99cb08a02a 100644
--- a/third_party/nixpkgs/pkgs/applications/video/mpv/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/video/mpv/default.nix
@@ -95,13 +95,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "mpv";
-  version = "0.33.0";
+  version = "0.33.1";
 
   src = fetchFromGitHub {
     owner  = "mpv-player";
     repo   = "mpv";
     rev    = "v${version}";
-    sha256 = "sha256-3l32qQBpvWVjbLp5CZtO039oDQeH7C/cNAKtJxrzlRk=";
+    sha256 = "06rw1f55zcsj78ql8w70j9ljp2qb1pv594xj7q9cmq7i92a7hq45";
   };
 
   patches = [
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/crun/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/crun/default.nix
index 15ca7c9667..1aee54c8af 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/crun/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/crun/default.nix
@@ -12,7 +12,6 @@
 , nixosTests
 , criu
 , system
-, fetchpatch
 }:
 
 let
@@ -29,6 +28,7 @@ let
     "test_pid_file.py"
     "test_preserve_fds.py"
     "test_resources"
+    "test_seccomp"
     "test_start.py"
     "test_uid_gid.py"
     "test_update.py"
@@ -38,24 +38,16 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "0.18";
+  version = "0.19";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "sha256-VjMpfj2qUQdhqdnLpZsYigfo2sM7gNl0GrE4nitp13g=";
+    sha256 = "sha256-G9asWedX03cP5Qg5HIzlSIwwqNL16kiyWairk+6Kabw=";
     fetchSubmodules = true;
   };
 
-  patches = [
-    # For 0.18 some tests switched to static builds, this was reverted after 0.18 was released
-    (fetchpatch {
-      url = "https://github.com/containers/crun/commit/d26579bfe56aa36dd522745d47a661ce8c70d4e7.patch";
-      sha256 = "1xmc0wj0j2xcg0915vxn0pplc4s94rpmw0s5g8cyf8dshfl283f9";
-    })
-  ];
-
   nativeBuildInputs = [ autoreconfHook go-md2man pkg-config python3 ];
 
   buildInputs = [ libcap libseccomp systemd yajl ]
diff --git a/third_party/nixpkgs/pkgs/applications/virtualization/umoci/default.nix b/third_party/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
index bef40bef87..82e6ca9086 100644
--- a/third_party/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
@@ -3,17 +3,18 @@
 , buildGoModule
 , go-md2man
 , installShellFiles
+, bash
 }:
 
 buildGoModule rec {
   pname = "umoci";
-  version = "0.4.6";
+  version = "0.4.7";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "umoci";
     rev = "v${version}";
-    sha256 = "0jaar26l940yh77cs31c3zndiycp85m3fz4zivcibzi68g6n6yzg";
+    sha256 = "0in8kyi4jprvbm3zsl3risbjj8b0ma62yl3rq8rcvcgypx0mn7d4";
   };
 
   vendorSha256 = null;
@@ -25,7 +26,8 @@ buildGoModule rec {
   nativeBuildInputs = [ go-md2man installShellFiles ];
 
   postInstall = ''
-    sed -i '/SHELL =/d' Makefile
+    substituteInPlace Makefile --replace \
+      '$(shell which bash)' '${lib.getBin bash}/bin/bash'
     make docs
     installManPage doc/man/*.[1-9]
   '';
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/dwl/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
index 52c0a6ae04..d8f102ed76 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/dwl/default.nix
@@ -12,8 +12,27 @@
 , patches ? [ ]
 , conf ? null
 , writeText
+, fetchpatch
 }:
 
+let
+  # Add two patches to fix compile errors with wlroots 0.13:
+  totalPatches = patches ++ [
+    # Fix the renamed constant WLR_KEY_PRESSED => WL_KEYBOARD_KEY_STATE_PRESSED
+    # https://github.com/djpohly/dwl/pull/66
+    (fetchpatch {
+      url = "https://github.com/djpohly/dwl/commit/a42613db9d9f6debfa4fb2363d75af9457d238ed.patch";
+      sha256 = "0h76hx1fhazi07gqg7sljh13f91v6bvjy7m9qqmimhvqgfwdcc0j";
+    })
+    # Use the new signature for wlr_backend_autocreate, which removes an argument:
+    # https://github.com/djpohly/dwl/pull/76
+    (fetchpatch {
+      url = "https://github.com/djpohly/dwl/commit/0ff13cf216056a36a261f4eed53c6a864989a9fb.patch";
+      sha256 = "18clpdb4il1vxf1b0cx0qrwild68s9dism8ab66zpmvxs5qag2dm";
+    })
+  ];
+in
+
 stdenv.mkDerivation rec {
   pname = "dwl";
   version = "0.2";
@@ -39,7 +58,7 @@ stdenv.mkDerivation rec {
   ];
 
   # Allow users to set their own list of patches
-  inherit patches;
+  patches = totalPatches;
 
   # Last line of config.mk enables XWayland
   prePatch = lib.optionalString enable-xwayland ''
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix b/third_party/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix
new file mode 100644
index 0000000000..97da815b5d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/i3/wsr.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, rustPlatform, libxcb, python3 }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "i3wsr";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "roosta";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1zpyncg29y8cv5nw0vgd69nywbj1ppxf6qfm4zc6zz0gk0vxy4pn";
+  };
+
+  cargoSha256 = "0snys419d32anf73jcvrq8h9kp1fq0maqcxz6ww04yg2jv6j47nc";
+
+  nativeBuildInputs = [ python3 ];
+  buildInputs = [ libxcb ];
+
+  # has not tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automatically change i3 workspace names based on their contents";
+    longDescription = ''
+      Automatically sets the workspace names to match the windows on the workspace.
+      The chosen name for a workspace is a user-defined composite of the WM_CLASS X11
+      window property for each window in a workspace.
+    '';
+    homepage = "https://github.com/roosta/i3wsr";
+    license = licenses.mit;
+    maintainers = [ maintainers.sebbadk ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/labwc/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/labwc/default.nix
index 9d39bd537f..c82eb76f6b 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/labwc/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/labwc/default.nix
@@ -8,7 +8,6 @@
 , glib
 , libinput
 , libxml2
-, pandoc
 , pango
 , wayland
 , wayland-protocols
@@ -16,20 +15,22 @@
 , libxcb
 , libxkbcommon
 , xwayland
+, libdrm
+, scdoc
 }:
 
 stdenv.mkDerivation rec {
   pname = "labwc";
-  version = "unstable-2021-02-06";
+  version = "unstable-2021-03-15";
 
   src = fetchFromGitHub {
     owner = "johanmalm";
     repo = pname;
-    rev = "4a8fcf5c6d0b730b1e2e17e544ce7d7d3c72cd13";
-    sha256 = "g1ba8dchUN393eis0VAu1bIjQfthDGLaSijSavz4lfU=";
+    rev = "fddeb74527e5b860d9c1a91a237d390041c758b6";
+    sha256 = "0rhniv5j4bypqxxj0nbpa3hclmn8znal9rldv0mrgbizn3wsbs54";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja pandoc ];
+  nativeBuildInputs = [ pkg-config meson ninja scdoc ];
   buildInputs = [
     cairo
     glib
@@ -42,6 +43,7 @@ stdenv.mkDerivation rec {
     libxcb
     libxkbcommon
     xwayland
+    libdrm
   ];
 
   mesonFlags = [ "-Dxwayland=enabled" ];
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/sway/default.nix b/third_party/nixpkgs/pkgs/applications/window-managers/sway/default.nix
index 1798c8235d..d8a1679bbe 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/sway/default.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/sway/default.nix
@@ -2,18 +2,18 @@
 , meson, ninja, pkg-config, wayland, scdoc
 , libxkbcommon, pcre, json_c, dbus, libevdev
 , pango, cairo, libinput, libcap, pam, gdk-pixbuf, librsvg
-, wlroots, wayland-protocols
+, wlroots, wayland-protocols, libdrm
 }:
 
 stdenv.mkDerivation rec {
   pname = "sway-unwrapped";
-  version = "1.5.1";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "swaywm";
     repo = "sway";
     rev = version;
-    sha256 = "1xsa3h8zhf29p0mi90baxpr76jkd9pd1gr97ky8cnjbcs4isj9j0";
+    sha256 = "0vnplva11yafhbijrk68wy7pw0psn9jm0caaymswq1s951xsn1c8";
   };
 
   patches = [
@@ -33,11 +33,12 @@ stdenv.mkDerivation rec {
   buildInputs = [
     wayland libxkbcommon pcre json_c dbus libevdev
     pango cairo libinput libcap pam gdk-pixbuf librsvg
-    wlroots wayland-protocols
+    wlroots wayland-protocols libdrm
   ];
 
   mesonFlags = [
     "-Ddefault-wallpaper=false"
+    "-Dsd-bus-provider=libsystemd"
   ];
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch b/third_party/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch
index 26a3d40d66..46a170abc0 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/sway/load-configuration-from-etc.patch
@@ -1,22 +1,26 @@
-From 26f9c65ef037892977a824f0d7d7111066856b53 Mon Sep 17 00:00:00 2001
-From: Michael Weiss <dev.primeos@gmail.com>
-Date: Sat, 27 Apr 2019 14:26:16 +0200
+From 92283df3acbffa5c1bb21f23cdd686113d905114 Mon Sep 17 00:00:00 2001
+From: Patrick Hilhorst <git@hilhorst.be>
+Date: Wed, 31 Mar 2021 21:14:13 +0200
 Subject: [PATCH] Load configs from /etc but fallback to /nix/store
 
 This change will load all configuration files from /etc, to make it easy
 to override them, but fallback to /nix/store/.../etc/sway/config to make
 Sway work out-of-the-box with the default configuration on non NixOS
 systems.
+
+Original patch by Michael Weiss, updated for Sway 1.6 by Patrick Hilhorst
+
+Co-authored-by: Michael Weiss <dev.primeos@gmail.com>
 ---
  meson.build   | 3 ++-
- sway/config.c | 1 +
- 2 files changed, 3 insertions(+), 1 deletion(-)
+ sway/config.c | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index 02b5d606..c03a9c0f 100644
+index b7a29660..8ae8ceb3 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -129,7 +129,8 @@ if scdoc.found()
+@@ -164,7 +164,8 @@ if scdoc.found()
  	endforeach
  endif
  
@@ -25,18 +29,20 @@ index 02b5d606..c03a9c0f 100644
 +add_project_arguments('-DNIX_SYSCONFDIR="/@0@"'.format(join_paths(prefix, sysconfdir)), language : 'c')
  
  version = '"@0@"'.format(meson.project_version())
- if git.found()
+ git = find_program('git', native: true, required: false)
 diff --git a/sway/config.c b/sway/config.c
-index 4cd21bbc..dd855753 100644
+index 76b9ec08..fb5b51aa 100644
 --- a/sway/config.c
 +++ b/sway/config.c
-@@ -317,6 +317,7 @@ static char *get_config_path(void) {
- 		"$XDG_CONFIG_HOME/i3/config",
- 		SYSCONFDIR "/sway/config",
- 		SYSCONFDIR "/i3/config",
-+		NIX_SYSCONFDIR "/sway/config",
+@@ -374,7 +374,8 @@ static char *get_config_path(void) {
+ 		{ .prefix = home, .config_folder = ".i3"},
+ 		{ .prefix = config_home, .config_folder = "i3"},
+ 		{ .prefix = SYSCONFDIR, .config_folder = "sway"},
+-		{ .prefix = SYSCONFDIR, .config_folder = "i3"}
++		{ .prefix = SYSCONFDIR, .config_folder = "i3"},
++		{ .prefix = NIX_SYSCONFDIR, .config_folder = "sway"},
  	};
  
- 	char *config_home = getenv("XDG_CONFIG_HOME");
+ 	size_t num_config_paths = sizeof(config_paths)/sizeof(config_paths[0]);
 -- 
-2.19.2
+2.30.1
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix b/third_party/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix
new file mode 100644
index 0000000000..15bf977f8f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/sway/wsr.nix
@@ -0,0 +1,33 @@
+{ lib, fetchFromGitHub, rustPlatform, libxcb, python3 }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "swaywsr";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "pedroscaff";
+    repo = pname;
+    rev = "6c4671c702f647395d983aaf607286db1c692db6";
+    sha256 = "0bmpbhyvgnbi5baj6v0wdxpdh9cnlzvcc44vh3vihmzsp6i5q05a";
+  };
+
+  cargoSha256 = "15wa03279lflr16a6kw7zcn3nvalnjydk9g6nj7xqxmc7zkpf0rm";
+
+  nativeBuildInputs = [ python3 ];
+  buildInputs = [ libxcb ];
+
+  # has not tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automatically change sway workspace names based on their contents";
+    longDescription = ''
+      Automatically sets the workspace names to match the windows on the workspace.
+      The chosen name for a workspace is a composite of the app_id or WM_CLASS X11
+      window property for each window in a workspace.
+    '';
+    homepage = "https://github.com/pedroscaff/swaywsr";
+    license = licenses.mit;
+    maintainers = [ maintainers.sebbadk ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix b/third_party/nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix
index 6c22227c0c..a77d3f8bf5 100644
--- a/third_party/nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix
+++ b/third_party/nixpkgs/pkgs/applications/window-managers/wayfire/applications.nix
@@ -1,23 +1,20 @@
-{ newScope, wayfirePlugins }:
+{ lib, newScope, wayfirePlugins }:
 
-let
-  self = with self; {
-    inherit wayfirePlugins;
+lib.makeExtensible (self: with self; {
+  inherit wayfirePlugins;
 
-    callPackage = newScope self;
+  callPackage = newScope self;
 
-    wayfire = callPackage ./. { };
+  wayfire = callPackage ./. { };
 
-    wcm = callPackage ./wcm.nix {
-      inherit (wayfirePlugins) wf-shell;
-    };
-
-    wrapWayfireApplication = callPackage ./wrapper.nix { };
-
-    withPlugins = selector: self // {
-      wayfire = wrapWayfireApplication wayfire selector;
-      wcm = wrapWayfireApplication wcm selector;
-    };
+  wcm = callPackage ./wcm.nix {
+    inherit (wayfirePlugins) wf-shell;
   };
-in
-self
+
+  wrapWayfireApplication = callPackage ./wrapper.nix { };
+
+  withPlugins = selector: self // {
+    wayfire = wrapWayfireApplication wayfire selector;
+    wcm = wrapWayfireApplication wcm selector;
+  };
+})
diff --git a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
index 3985eca424..1911d08d2a 100644
--- a/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
@@ -95,7 +95,7 @@ let
       if [[ $path == '/etc' ]]; then
         :
       elif [[ -L $i ]]; then
-        symlinks+=(--symlink "$(readlink "$i")" "$path")
+        symlinks+=(--symlink "$(${coreutils}/bin/readlink "$i")" "$path")
         blacklist+=("$path")
       else
         ro_mounts+=(--ro-bind "$i" "$path")
diff --git a/third_party/nixpkgs/pkgs/build-support/docker/default.nix b/third_party/nixpkgs/pkgs/build-support/docker/default.nix
index a73737cb12..b03bfcca87 100644
--- a/third_party/nixpkgs/pkgs/build-support/docker/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/docker/default.nix
@@ -7,6 +7,7 @@
   coreutils,
   docker,
   e2fsprogs,
+  fakeroot,
   findutils,
   go,
   jq,
@@ -740,6 +741,9 @@ rec {
     created ? "1970-01-01T00:00:01Z",
     # Optional bash script to run on the files prior to fixturizing the layer.
     extraCommands ? "",
+    # Optional bash script to run inside fakeroot environment.
+    # Could be used for changing ownership of files in customisation layer.
+    fakeRootCommands ? "",
     # We pick 100 to ensure there is plenty of room for extension. I
     # believe the actual maximum is 128.
     maxLayers ? 100
@@ -765,19 +769,24 @@ rec {
       customisationLayer = symlinkJoin {
         name = "${baseName}-customisation-layer";
         paths = contentsList;
-        inherit extraCommands;
+        inherit extraCommands fakeRootCommands;
+        nativeBuildInputs = [ fakeroot ];
         postBuild = ''
           mv $out old_out
           (cd old_out; eval "$extraCommands" )
 
           mkdir $out
 
-          tar \
-            --sort name \
-            --owner 0 --group 0 --mtime "@$SOURCE_DATE_EPOCH" \
-            --hard-dereference \
-            -C old_out \
-            -cf $out/layer.tar .
+          fakeroot bash -c '
+            source $stdenv/setup
+            cd old_out
+            eval "$fakeRootCommands"
+            tar \
+              --sort name \
+              --numeric-owner --mtime "@$SOURCE_DATE_EPOCH" \
+              --hard-dereference \
+              -cf $out/layer.tar .
+          '
 
           sha256sum $out/layer.tar \
             | cut -f 1 -d ' ' \
diff --git a/third_party/nixpkgs/pkgs/build-support/docker/examples.nix b/third_party/nixpkgs/pkgs/build-support/docker/examples.nix
index 9c7d468121..f6b468942f 100644
--- a/third_party/nixpkgs/pkgs/build-support/docker/examples.nix
+++ b/third_party/nixpkgs/pkgs/build-support/docker/examples.nix
@@ -484,4 +484,17 @@ rec {
     tag = "latest";
     config.Cmd = [ "${pkgs.hello}/bin/hello" ];
   };
+
+  # layered image with files owned by a user other than root
+  layeredImageWithFakeRootCommands = pkgs.dockerTools.buildLayeredImage {
+    name = "layered-image-with-fake-root-commands";
+    tag = "latest";
+    contents = [
+      pkgs.pkgsStatic.busybox
+    ];
+    fakeRootCommands = ''
+      mkdir -p ./home/jane
+      chown 1000 ./home/jane
+    '';
+  };
 }
diff --git a/third_party/nixpkgs/pkgs/build-support/fetchzip/default.nix b/third_party/nixpkgs/pkgs/build-support/fetchzip/default.nix
index b00983772e..cde4d4f579 100644
--- a/third_party/nixpkgs/pkgs/build-support/fetchzip/default.nix
+++ b/third_party/nixpkgs/pkgs/build-support/fetchzip/default.nix
@@ -5,16 +5,19 @@
 # (e.g. due to minor changes in the compression algorithm, or changes
 # in timestamps).
 
-{ fetchurl, unzip }:
+{ lib, fetchurl, unzip }:
 
 { # Optionally move the contents of the unpacked tree up one level.
   stripRoot ? true
-, url
+, url ? ""
+, urls ? []
 , extraPostFetch ? ""
 , name ? "source"
 , ... } @ args:
 
-(fetchurl ({
+(fetchurl (let
+  basename = baseNameOf (if url != "" then url else builtins.head urls);
+in {
   inherit name;
 
   recursiveHash = true;
@@ -27,7 +30,7 @@
       mkdir "$unpackDir"
       cd "$unpackDir"
 
-      renamed="$TMPDIR/${baseNameOf url}"
+      renamed="$TMPDIR/${basename}"
       mv "$downloadedFile" "$renamed"
       unpackFile "$renamed"
     ''
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index 84d1b2300f..df3129d536 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -9,12 +9,14 @@
 
   let
     baseRustcOpts =
-      [(if release then "-C opt-level=3" else "-C debuginfo=2")]
-      ++ ["-C codegen-units=$NIX_BUILD_CORES"]
-      ++ ["--remap-path-prefix=$NIX_BUILD_TOP=/" ]
-      ++ [(mkRustcDepArgs dependencies crateRenames)]
-      ++ [(mkRustcFeatureArgs crateFeatures)]
-      ++ extraRustcOpts
+      [
+        (if release then "-C opt-level=3" else "-C debuginfo=2")
+        "-C codegen-units=$NIX_BUILD_CORES"
+        "-C incremental=no"
+        "--remap-path-prefix=$NIX_BUILD_TOP=/"
+        (mkRustcDepArgs dependencies crateRenames)
+        (mkRustcFeatureArgs crateFeatures)
+      ] ++ extraRustcOpts
       ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--target ${rust.toRustTargetSpec stdenv.hostPlatform} -C linker=${stdenv.hostPlatform.config}-gcc"
       # since rustc 1.42 the "proc_macro" crate is part of the default crate prelude
       # https://github.com/rust-lang/cargo/commit/4d64eb99a4#diff-7f98585dbf9d30aa100c8318e2c77e79R1021-R1022
diff --git a/third_party/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
index d1010ac1ad..3eaba1736f 100644
--- a/third_party/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/third_party/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -24,7 +24,7 @@ let version_ = lib.splitString "-" crateVersion;
     version = lib.splitVersion (lib.head version_);
     rustcOpts = lib.foldl' (opts: opt: opts + " " + opt)
         (if release then "-C opt-level=3" else "-C debuginfo=2")
-        (["-C codegen-units=$NIX_BUILD_CORES"] ++ extraRustcOpts);
+        (["-C codegen-units=$NIX_BUILD_CORES -C incremental=no"] ++ extraRustcOpts);
     buildDeps = mkRustcDepArgs buildDependencies crateRenames;
     authors = lib.concatStringsSep ":" crateAuthors;
     optLevel = if release then 3 else 0;
diff --git a/third_party/nixpkgs/pkgs/data/fonts/input-fonts/default.nix b/third_party/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
index 9956325e15..36a18c1f8f 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/input-fonts/default.nix
@@ -1,31 +1,76 @@
-{ lib, stdenv, requireFile, unzip }:
+{ lib
+, stdenv
+, fetchzip
+, python3
+, config
+, acceptLicense ? config.input-fonts.acceptLicense or false
+}:
 
-stdenv.mkDerivation {
+let
+
+  throwLicense = throw ''
+    Input is available free of charge for private/unpublished usage. This includes things like your personal coding app or for composing plain text documents.
+    To use it, you need to agree to its license: https://input.djr.com/license/
+
+    You can express acceptance by setting acceptLicense to true in your
+    configuration. Note that this is not a free license so it requires allowing
+    unfree licenses.
+
+    configuration.nix:
+      nixpkgs.config.allowUnfree = true;
+      nixpkgs.config.input-fonts.acceptLicense = true;
+
+    config.nix:
+      allowUnfree = true;
+      input-fonts.acceptLicense = true;
+
+    If you would like to support this project, consider purchasing a license at <http://input.djr.com/buy>.
+  '';
+
+  releaseDate = "2015-06-24";
+
+in
+
+stdenv.mkDerivation rec {
   pname = "input-fonts";
-  version = "2019-11-25"; # date of the download and checksum
+  version = "1.2";
 
-  src = requireFile {
-    name = "Input-Font.zip";
-    url = "https://input.fontbureau.com/download/";
-    sha256 = "10rax2a7vzidcs7kyfg5lv5bwp9i7kvjpdcsd10p0517syijkp3b";
-  };
+  src =
+    assert !acceptLicense -> throwLicense;
+    fetchzip {
+      name = "input-fonts-${version}";
+      # Add .zip parameter so that zip unpackCmd can match it.
+      url = "https://input.djr.com/build/?fontSelection=whole&a=0&g=0&i=0&l=0&zero=0&asterisk=0&braces=0&preset=default&line-height=1.2&accept=I+do&email=&.zip";
+      sha256 = "BESZ4Bjgm2hvQ7oPpMvYSlE8EqvQjqHZtXWIovqyIzA=";
+      stripRoot = false;
 
-  nativeBuildInputs = [ unzip ];
+      extraPostFetch = ''
+        # Reset the timestamp to release date for determinism.
+        PATH=${lib.makeBinPath [ python3.pkgs.fonttools ]}:$PATH
+        for ttf_file in $out/Input_Fonts/*/*/*.ttf; do
+          ttx_file=$(dirname "$ttf_file")/$(basename "$ttf_file" .ttf).ttx
+          ttx "$ttf_file"
+          rm "$ttf_file"
+          touch -m -t ${builtins.replaceStrings [ "-" ] [ "" ] releaseDate}0000 "$ttx_file"
+          ttx --recalc-timestamp "$ttx_file"
+          rm "$ttx_file"
+        done
+      '';
+    };
 
-  phases = [ "unpackPhase" "installPhase" ];
-
-  sourceRoot = ".";
+  dontConfigure = true;
+  dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/share/fonts/truetype
     find Input_Fonts -name "*.ttf" -exec cp -a {} "$out"/share/fonts/truetype/ \;
     mkdir -p "$out"/share/doc
     cp -a *.txt "$out"/share/doc/
-  '';
 
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "15sdhqqqd4jgk80fw7ncx49avi9cxbdgyrvnrfya0066x4q4r6lv";
+    runHook postInstall
+  '';
 
   meta = with lib; {
     description = "Fonts for Code, from Font Bureau";
@@ -42,9 +87,12 @@ stdenv.mkDerivation {
       generous spacing, large punctuation, and easily distinguishable
       characters — but without the limitations of a fixed width.
     '';
-    homepage = "https://input.fontbureau.com";
+    homepage = "https://input.djr.com/";
     license = licenses.unfree;
-    maintainers = with maintainers; [ romildo ];
+    maintainers = with maintainers; [
+      jtojnar
+      romildo
+    ];
     platforms = platforms.all;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/data/fonts/julia-mono/default.nix b/third_party/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
index a096b49cbe..77083268b0 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/julia-mono/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchzip }:
 
 let
-  version = "0.034";
+  version = "0.035";
 
 in fetchzip {
   name = "JuliaMono-${version}";
   url = "https://github.com/cormullion/juliamono/releases/download/v${version}/JuliaMono.zip";
-  sha256 = "sha256:0xx3mhzs17baaich67kvwyzqg8h9ga11jrja2i8sxx4861dp1z85";
+  sha256 = "sha256:17w8rn37wadxnmakhd6mpmqdx14dsrc3qym4k9b47albl1a34i1j";
 
   postFetch = ''
     mkdir -p $out/share/fonts/truetype
diff --git a/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix b/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
index 6b1cd37024..4dd6093922 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/mono.nix
@@ -3,7 +3,7 @@
 fetchzip {
   name = "paratype-pt-mono";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/631/original/ptmono.zip"
     "http://rus.paratype.ru/system/attachments/631/original/ptmono.zip"
   ];
diff --git a/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix b/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
index d6b783ebe4..8b47dd9ee1 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/sans.nix
@@ -3,7 +3,7 @@
 fetchzip {
   name = "paratype-pt-sans";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/629/original/ptsans.zip"
     "http://rus.paratype.ru/system/attachments/629/original/ptsans.zip"
   ];
diff --git a/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix b/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
index 2b5eeafd09..a4142f757f 100644
--- a/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
+++ b/third_party/nixpkgs/pkgs/data/fonts/paratype-pt/serif.nix
@@ -3,7 +3,7 @@
 fetchzip {
   name = "paratype-pt-serif";
 
-  url = [
+  urls = [
     "https://company.paratype.com/system/attachments/634/original/ptserif.zip"
     "http://rus.paratype.ru/system/attachments/634/original/ptserif.zip"
   ];
diff --git a/third_party/nixpkgs/pkgs/data/themes/yaru/default.nix b/third_party/nixpkgs/pkgs/data/themes/yaru/default.nix
index 29176c664c..f0d2493473 100644
--- a/third_party/nixpkgs/pkgs/data/themes/yaru/default.nix
+++ b/third_party/nixpkgs/pkgs/data/themes/yaru/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "20.10.6.1";
+  version = "21.04.1";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "0kcmxfz2rfav7aj5v1vv335vqzyj0n53lbhwx0g6gxxfi0x3vv6v";
+    sha256 = "0z6k8q9b5xjx6xwirqbsqq5jjxw79ar2d61r7cgipqmbjdsjfgjz";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/default.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/default.nix
index 82985523c4..98bf4b025f 100644
--- a/third_party/nixpkgs/pkgs/desktops/plasma-5/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/default.nix
@@ -138,6 +138,7 @@ let
       plasma-workspace-wallpapers = callPackage ./plasma-workspace-wallpapers.nix {};
       polkit-kde-agent = callPackage ./polkit-kde-agent.nix {};
       powerdevil = callPackage ./powerdevil.nix {};
+      qqc2-breeze-style = callPackage ./qqc2-breeze-style.nix {};
       sddm-kcm = callPackage ./sddm-kcm.nix {};
       systemsettings = callPackage ./systemsettings.nix {};
       xdg-desktop-portal-kde = callPackage ./xdg-desktop-portal-kde.nix {};
diff --git a/third_party/nixpkgs/pkgs/desktops/plasma-5/qqc2-breeze-style.nix b/third_party/nixpkgs/pkgs/desktops/plasma-5/qqc2-breeze-style.nix
new file mode 100644
index 0000000000..420529eb17
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/desktops/plasma-5/qqc2-breeze-style.nix
@@ -0,0 +1,26 @@
+{ mkDerivation
+, lib
+, extra-cmake-modules
+, kconfig
+, kconfigwidgets
+, kdoctools
+, kguiaddons
+, kiconthemes
+, kirigami2
+, qtquickcontrols2
+, qtx11extras
+}:
+
+mkDerivation {
+  name = "qqc2-breeze-style";
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
+  buildInputs = [
+    kconfig
+    kconfigwidgets
+    kguiaddons
+    kiconthemes
+    kirigami2
+    qtquickcontrols2
+    qtx11extras
+  ];
+}
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/allow-checking-parent-sources-when-looking-up-schema.patch b/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/allow-checking-parent-sources-when-looking-up-schema.patch
deleted file mode 100644
index aa797bf42c..0000000000
--- a/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/allow-checking-parent-sources-when-looking-up-schema.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 3b06d6129033ddaa8dc455a6a572077fd63a3816 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Mon, 1 Mar 2021 17:03:07 -0300
-Subject: [PATCH] Allow checking parent sources when looking up schema
-
----
- mousepad/mousepad-settings-store.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mousepad/mousepad-settings-store.c b/mousepad/mousepad-settings-store.c
-index e5a848b..de989bd 100644
---- a/mousepad/mousepad-settings-store.c
-+++ b/mousepad/mousepad-settings-store.c
-@@ -181,7 +181,7 @@ mousepad_settings_store_add_settings (MousepadSettingsStore *self,
-   const gchar      *prefix;
- 
-   /* loop through keys in schema and store mapping of their setting name to GSettings */
--  schema = g_settings_schema_source_lookup (source, schema_id, FALSE);
-+  schema = g_settings_schema_source_lookup (source, schema_id, TRUE);
-   keys = g_settings_schema_list_keys (schema);
-   prefix = schema_id + MOUSEPAD_ID_LEN + 1;
-   for (key = keys; key && *key; key++)
--- 
-2.30.0
-
diff --git a/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix b/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
index eaac32bb5e..22fdd00cb2 100644
--- a/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
+++ b/third_party/nixpkgs/pkgs/desktops/xfce/applications/mousepad/default.nix
@@ -1,18 +1,16 @@
-{ mkXfceDerivation, gobject-introspection, vala, gtk3, gtksourceview3, xfconf }:
+{ mkXfceDerivation, gobject-introspection, vala, gtk3, gtksourceview4, xfconf }:
 
 mkXfceDerivation {
   category = "apps";
   pname = "mousepad";
-  version = "0.5.3";
+  version = "0.5.4";
   odd-unstable = false;
 
-  sha256 = "0ki5k5p24dpawkyq4k8am1fcq02njhnmhq5vf2ah1zqbc0iyl5yn";
+  sha256 = "0yrmjs6cyzm08jz8wzrx8wdxj7zdbxn6x625109ckfcfxrkp4a2f";
 
   nativeBuildInputs = [ gobject-introspection vala ];
 
-  buildInputs = [ gtk3 gtksourceview3 xfconf ];
-
-  patches = [ ./allow-checking-parent-sources-when-looking-up-schema.patch ];
+  buildInputs = [ gtk3 gtksourceview4 xfconf ];
 
   meta = {
     description = "Simple text editor for Xfce";
diff --git a/third_party/nixpkgs/pkgs/development/compilers/go/1.15.nix b/third_party/nixpkgs/pkgs/development/compilers/go/1.15.nix
index d44f28f892..7f7870b7e0 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/go/1.15.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/go/1.15.nix
@@ -11,7 +11,7 @@ let
 
   inherit (lib) optionals optionalString;
 
-  version = "1.15.10";
+  version = "1.15.11";
 
   go_bootstrap = buildPackages.callPackage ./bootstrap.nix { };
 
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "0rfx20y13cflv68nn8jci1fx34vfdn7qgyavm5hivd0h15pcmny1";
+    sha256 = "1rb1s130yqy80kcl140k5a53xhvw4fmrpmclvqygcv67si0j8nzj";
   };
 
   # perl is used for testing go vet
diff --git a/third_party/nixpkgs/pkgs/development/compilers/ispc/default.nix b/third_party/nixpkgs/pkgs/development/compilers/ispc/default.nix
index d1ac7bcd0e..fd74815871 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/ispc/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/ispc/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchpatch
 , cmake, which, m4, python3, bison, flex, llvmPackages
 
   # the default test target is sse4, but that is not supported by all Hydra agents
@@ -7,15 +7,27 @@
 
 stdenv.mkDerivation rec {
   pname   = "ispc";
-  version = "1.13.0";
+  version = "unstable-2021-04-02";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
-    rev    = "v${version}";
-    sha256 = "1l74xkpwwxc38k2ngg7mpvswziiy91yxslgfad6688hh1n5jvayd";
+    # ISPC release 1.15.0 doesn't build against LLVM 11.1, only against 11.0. So we
+    # use latest ISPC main branch for now, until they support an LLVM version we have.
+    # https://github.com/ispc/ispc/issues/2027#issuecomment-784470530
+    rev    = "3e8313568265d2adfbf95bd6b6e1a4c70ef59bed";
+    sha256 = "sha256-gvr+VpoacmwQlP5gT4MnfmKdACZWJduVMIpR0YRzseg=";
   };
 
+  patches = [
+    # Fix cmake error: `Failed to find clang++`
+    # https://github.com/ispc/ispc/pull/2055
+    (fetchpatch {
+      url = "https://github.com/erictapen/ispc/commit/338119b2f4e11fcf0b0852de296c320928e572a2.patch";
+      sha256 = "sha256-+RqDq1LMWomu/K4SgK0Nip47b1RwyM6W0cTSNGD4+m4=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake which m4 bison flex python3 ];
   buildInputs = with llvmPackages; [
     # we need to link against libclang, so we need the unwrapped
@@ -55,6 +67,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DCLANG_EXECUTABLE=${llvmPackages.clang}/bin/clang"
+    "-DCLANGPP_EXECUTABLE=${llvmPackages.clang}/bin/clang++"
     "-DISPC_INCLUDE_EXAMPLES=OFF"
     "-DISPC_INCLUDE_UTILS=OFF"
     "-DARM_ENABLED=FALSE"
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix
index d4d0ddf795..d90d019e6d 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/clang/default.nix
@@ -8,7 +8,7 @@ let
     pname = "clang";
     inherit version;
 
-    src = fetch "clang" "11ay72f81ffygil5ficq7mzplck4gffm77p0yj4ib3dgiqbb1qbw";
+    src = fetch "clang" "185r9rr254v75ja33nmm53j85lcnkj7bzsl18wvnd37jmz2nfxa5";
     inherit clang-tools-extra_src;
 
     unpackPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt.nix
index 9721879d76..e6ac77b7d2 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/compiler-rt.nix
@@ -11,7 +11,7 @@ in
 stdenv.mkDerivation rec {
   pname = "compiler-rt";
   inherit version;
-  src = fetch pname "01dvir3858qkjmqhw2h6jjagq0la0kasnwzqbyv91yixnwx8369z";
+  src = fetch pname "1x0z875nbdpzhr4qb7linm6r9swvdf6dvwqy1s22pbn4wdcw0cvf";
 
   nativeBuildInputs = [ cmake python3 llvm ];
   buildInputs = lib.optional stdenv.hostPlatform.isDarwin libcxxabi;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
index 901e9c82ee..593db716ac 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/default.nix
@@ -8,7 +8,7 @@
 
 let
   release_version = "12.0.0";
-  candidate = "rc4"; # empty or "rcN"
+  candidate = "rc5"; # empty or "rcN"
   dash-candidate = lib.optionalString (candidate != "") "-${candidate}";
   version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs
   targetConfig = stdenv.targetPlatform.config;
@@ -18,7 +18,7 @@ let
     inherit sha256;
   };
 
-  clang-tools-extra_src = fetch "clang-tools-extra" "1m1qga8m967bzqkxwx9xqkw1lkxi9dhlrn6km2k7g2yqyb6k14ag";
+  clang-tools-extra_src = fetch "clang-tools-extra" "1hga9k5m60ywmr7m69jf1v6vj1ra1n6ybv1abzlz94f5q22i1a02";
 
   tools = lib.makeExtensible (tools: let
     callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch; });
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libc++/default.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libc++/default.nix
index e910d2c96b..757651c0f4 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libc++/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libc++/default.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   pname = "libc++";
   inherit version;
 
-  src = fetch "libcxx" "0ai91zls1738502c3b2frhawmjpi73rm3m677hh540wrjp3xv0ql";
+  src = fetch "libcxx" "01abh553dvjgk5cjzzp0ghmg00laqbr4ar4frdhyhpbwhhmwc880";
 
   postUnpack = ''
     unpackFile ${libcxxabi.src}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libc++abi.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libc++abi.nix
index 70dd5af727..e35480c7bf 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libc++abi.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libc++abi.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation {
   pname = "libc++abi";
   inherit version;
 
-  src = fetch "libcxxabi" "02qp6ndagq7n48p53z93d1rrx0v0v4rsahd4vkv5frid0vm4ah9h";
+  src = fetch "libcxxabi" "0mjj4f63ix4j1b72bgzpcki7mzf3qszrq7snqhiq0c5s73skkwx0";
 
   nativeBuildInputs = [ cmake python3 ];
   buildInputs = lib.optional (!stdenv.isDarwin && !stdenv.isFreeBSD && !stdenv.hostPlatform.isWasm) libunwind;
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libunwind.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libunwind.nix
index ddfcf508fd..83e76c0c56 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libunwind.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/libunwind.nix
@@ -6,7 +6,7 @@ stdenv.mkDerivation rec {
   pname = "libunwind";
   inherit version;
 
-  src = fetch pname "1a5db1lxw98a430b8mnaclc0w98y6cc8k587kgjhn0nghl40l40i";
+  src = fetch pname "0kaq75ygzv9dqfsx27pi5a0clipdjq6a9vghhb89d8k1rf20lslh";
 
   postUnpack = ''
     unpackFile ${libcxx.src}
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/lld.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/lld.nix
index 00e30e16b6..a5e4ab834e 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/lld.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/lld.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   pname = "lld";
   inherit version;
 
-  src = fetch pname "0r9pxhvinipirv9s5k8fnsnqd30zfniwqjkvw5sac3lq29rn2lp1";
+  src = fetch pname "044lv1d9am2xmbc3pvssxkkiyxyv72n2xkgk8z3p9k72h3ay00q3";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ llvm libxml2 ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/lldb.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/lldb.nix
index f9f978c60b..67de0c1874 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/lldb.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/lldb.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (rec {
   pname = "lldb";
   inherit version;
 
-  src = fetch pname "0943gan83mldizwbhksd07w4h90z4djjpv5f8v49caz8y9113svg";
+  src = fetch pname "0q4p4s5ws1zszs3i4da5w5fnxkpny0q3fr1s1sh7jp9wcwxbxiqq";
 
   patches = [ ./lldb-procfs.patch ];
 
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/llvm.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/llvm.nix
index f70c4379c1..6e6127ba94 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/llvm.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/llvm.nix
@@ -32,8 +32,8 @@ in stdenv.mkDerivation (rec {
   pname = "llvm";
   inherit version;
 
-  src = fetch pname "1jif65i165h41cfcsfvfjy5k1yrnikg61assj5vs0f25pv1vbyvf";
-  polly_src = fetch "polly" "0hk6j6rsal3zsp1f9fla71yzbwmzz9007m63x22hy7qfiwyplvf2";
+  src = fetch pname "088dyv7hppidl3rqfsjdibvn4d3a74896fg2sz4dwaxlg19way93";
+  polly_src = fetch "polly" "1qj7gkfr1yrsrz6j086l9p6d2kyyln15fmfiab4isn96g1dhsfb5";
 
   unpackPhase = ''
     unpackFile $src
diff --git a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/openmp.nix b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/openmp.nix
index fcb91574d1..1e4618e4a1 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/llvm/12/openmp.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/llvm/12/openmp.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   pname = "openmp";
   inherit version;
 
-  src = fetch pname "07g2rsfhli3szv3chzy6y37p2176ywdb6w3k2fv9g2r416cpxjdz";
+  src = fetch pname "1d16r5whjb2n4n28rg8wn2g9krlc92q6nb0qmnnbzhqhx0rbkjfb";
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [ llvm ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/reason/default.nix b/third_party/nixpkgs/pkgs/development/compilers/reason/default.nix
index 2807ddb6b5..2293c83cc0 100644
--- a/third_party/nixpkgs/pkgs/development/compilers/reason/default.nix
+++ b/third_party/nixpkgs/pkgs/development/compilers/reason/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-reason-${version}";
-  version = "3.6.2";
+  pname = "ocaml${ocaml.version}-reason";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "reason";
-    rev = "6017d6dd930f4989177c3f7c3c20cffbaabaa49a";
-    sha256 = "17wkcl3r0ckhlki9fk0mcwbnd7kpkqm1h0xjw2j2x1097n470df0";
+    rev = "daa11255cb4716ce1c370925251021bd6e3bd974";
+    sha256 = "0m6ldrci1a4j0qv1cbwh770zni3al8qxsphl353rv19f6rblplhs";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix b/third_party/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix
new file mode 100644
index 0000000000..4221816798
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/compilers/sjasmplus/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "sjasmplus";
+  version = "1.18.2";
+
+  src = fetchFromGitHub {
+    owner = "z00m128";
+    repo = "sjasmplus";
+    rev = "v${version}";
+    sha256 = "04348zcmc0b3crzwhvj1shx6f1n3x05vs8d5qdm7qhgdfki8r74v";
+  };
+
+  buildFlags = [
+    "CC=${stdenv.cc.targetPrefix}cc"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    install -D sjasmplus $out/bin/sjasmplus
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://z00m128.github.io/sjasmplus/";
+    description = "A Z80 assembly language cross compiler. It is based on the SjASM source code by Sjoerd Mastijn";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ electrified ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/interpreters/erlang/R23.nix b/third_party/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
index 8c07c09f22..0e8e402ab3 100644
--- a/third_party/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
+++ b/third_party/nixpkgs/pkgs/development/interpreters/erlang/R23.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 = "23.2.6";
-  sha256 = "sha256-G930sNbr8h5ryI/IE+J6OKhR5ij68ZhGo1YIEjSOwGU=";
+  version = "23.3.1";
+  sha256 = "1nx9yv3l8hf37js7pqs536ywy786mxhkqba1jsmy1b3yc6xki1mq";
 }
diff --git a/third_party/nixpkgs/pkgs/development/interpreters/ruby/default.nix b/third_party/nixpkgs/pkgs/development/interpreters/ruby/default.nix
index b13c50f18d..0522f6f397 100644
--- a/third_party/nixpkgs/pkgs/development/interpreters/ruby/default.nix
+++ b/third_party/nixpkgs/pkgs/development/interpreters/ruby/default.nix
@@ -265,10 +265,10 @@ in {
   };
 
   ruby_3_0 = generic {
-    version = rubyVersion "3" "0" "0" "";
+    version = rubyVersion "3" "0" "1" "";
     sha256 = {
-      src = "0a4fmxafxvkg1m738g2lmkhipwnmd96kzqy1m9kvk3n1l50x2gm1";
-      git = "0fvnxv97m94nridlc5nvvrlg53pr5g042dkfc5ysd327s7xj4cjp";
+      src = "09vpnxxcxc46qv40xbxr9xkdpbgb0imdy25l2vpsxxlr47djb61n";
+      git = "0vricyhnnczcbsgvz65pdhi9yx1i34zarbjlc5y5mcmj01y9r7ar";
     };
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix b/third_party/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
index 3abba61bc2..dcd0a65383 100644
--- a/third_party/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/third_party/nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
@@ -11,7 +11,7 @@
     "${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.0" = ops useRailsExpress [
+  "3.0.1" = 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/third_party/nixpkgs/pkgs/development/interpreters/supercollider/default.nix b/third_party/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
index a1612680b2..b7efc37ae0 100644
--- a/third_party/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
+++ b/third_party/nixpkgs/pkgs/development/interpreters/supercollider/default.nix
@@ -1,17 +1,16 @@
-{ lib, stdenv, fetchurl, cmake, pkg-config, alsaLib
+{ lib, stdenv, mkDerivation, fetchurl, cmake, pkg-config, alsaLib
 , libjack2, libsndfile, fftw, curl, gcc
 , libXt, qtbase, qttools, qtwebengine
 , readline, qtwebsockets, useSCEL ? false, emacs
 }:
 
-let optional = lib.optional;
+let
+  inherit (lib) optional;
 in
-
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "supercollider";
   version = "3.11.2";
 
-
   src = fetchurl {
     url = "https://github.com/supercollider/supercollider/releases/download/Version-${version}/SuperCollider-${version}-Source.tar.bz2";
     sha256 = "wiwyxrxIJnHU+49RZy33Etl6amJ3I1xNojEpEDA6BQY=";
@@ -31,13 +30,11 @@ stdenv.mkDerivation rec {
       ++ optional (!stdenv.isDarwin) alsaLib
       ++ optional useSCEL emacs;
 
-  dontWrapQtApps = true;
-
   meta = with lib; {
     description = "Programming language for real time audio synthesis";
     homepage = "https://supercollider.github.io";
     maintainers = with maintainers; [ mrmebelman ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     platforms = [ "x686-linux" "x86_64-linux" ];
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/libraries/entt/default.nix b/third_party/nixpkgs/pkgs/development/libraries/entt/default.nix
index 7f98a9f112..8efc9c05ca 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/entt/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/entt/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "entt";
-  version = "3.6.0";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "skypjack";
     repo = "entt";
     rev = "v${version}";
-    sha256 = "sha256-XaQQOt3UekjE4QUUW6+W5M4tkTqeGjZDExJB1U1/gJ8=";
+    sha256 = "sha256-qDjt74nijZhXW7F7GW0CSv6JWOc/kXN7ndbkwSO0+1s=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/development/libraries/flatpak/default.nix b/third_party/nixpkgs/pkgs/development/libraries/flatpak/default.nix
index 018ffd68fa..97410fda0d 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/flatpak/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/flatpak/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchurl
+, fetchpatch
 , autoreconfHook
 , docbook_xml_dtd_45
 , docbook-xsl-nons
@@ -93,6 +94,15 @@ stdenv.mkDerivation rec {
     # https://github.com/NixOS/nixpkgs/issues/43581
     ./use-flatpak-from-path.patch
 
+    # Hardcode flatpak binary path for flatpak-spawn.
+    # When calling the portal’s Spawn command with FLATPAK_SPAWN_FLAGS_CLEAR_ENV flag,
+    # it will clear environment, including PATH, making the flatpak run fail.
+    # https://github.com/flatpak/flatpak/pull/4174
+    (fetchpatch {
+      url = "https://github.com/flatpak/flatpak/commit/495449daf6d3c072519a36c9e4bc6cc1da4d31db.patch";
+      sha256 = "gOX/sGupAE7Yg3MVrMhFXzWHpFn+izVyjtkuPzIckuY=";
+    })
+
     # Nix environment hacks should not leak into the apps.
     # https://github.com/NixOS/nixpkgs/issues/53441
     ./unset-env-vars.patch
diff --git a/third_party/nixpkgs/pkgs/development/libraries/libdmapsharing/default.nix b/third_party/nixpkgs/pkgs/development/libraries/libdmapsharing/default.nix
new file mode 100644
index 0000000000..c9759d7624
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/libraries/libdmapsharing/default.nix
@@ -0,0 +1,95 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, autoconf
+, automake
+, libtool
+, which
+, pkg-config
+, python3
+, vala
+, avahi
+, gdk-pixbuf
+, gst_all_1
+, glib
+, gtk3
+, libgee
+, check
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
+, gobject-introspection
+, libsoup
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libdmapsharing";
+  version = "3.9.10";
+
+  outputs = [ "out" "dev" "devdoc" ];
+  outputBin = "dev";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = pname;
+    rev = "${lib.toUpper pname}_${lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "04y1wjwnbw4pzg05h383d83p6an6ylwy4b4g32jmjxpfi388x33g";
+  };
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    libtool
+    which
+    pkg-config
+    python3
+    gobject-introspection
+    vala
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+  ];
+
+  buildInputs = [
+    avahi
+    gdk-pixbuf
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+  ];
+
+  propagatedBuildInputs = [
+    glib
+    libsoup
+  ];
+
+  checkInputs = [
+    libgee
+    check
+    gtk3
+  ];
+
+  configureFlags = [
+    "--enable-gtk-doc"
+  ];
+
+  # Cannot disable tests here or `check` from checkInputs would not be included.
+  # Cannot disable building the tests or docs will not build:
+  # https://gitlab.gnome.org/GNOME/libdmapsharing/-/issues/49
+  doCheck = true;
+
+  preConfigure = ''
+    NOCONFIGURE=1 ./autogen.sh
+  '';
+
+  # Tests require mDNS server.
+  checkPhase = ":";
+
+  meta = with lib; {
+    homepage = "https://www.flyn.org/projects/libdmapsharing/";
+    description = "Library that implements the DMAP family of protocols";
+    maintainers = teams.gnome.members;
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/libraries/libpg_query/default.nix b/third_party/nixpkgs/pkgs/development/libraries/libpg_query/default.nix
new file mode 100644
index 0000000000..711cfe14e1
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/libraries/libpg_query/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, which }:
+
+stdenv.mkDerivation rec {
+  pname = "libpg_query";
+  version = "13-2.0.4";
+
+  src = fetchFromGitHub {
+    owner = "pganalyze";
+    repo = "libpg_query";
+    rev = version;
+    sha256 = "0d88fh613kh1izb6w288bfh7s3db4nz8cxyhmhq3lb7gl4axs2pv";
+  };
+
+  nativeBuildInputs = [ which ];
+
+  makeFlags = [ "build" ];
+
+  installPhase = ''
+    install -Dm644 -t $out/lib libpg_query.a
+    install -Dm644 -t $out/include pg_query.h
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/pganalyze/libpg_query";
+    description = "C library for accessing the PostgreSQL parser outside of the server environment";
+    changelog = "https://github.com/pganalyze/libpg_query/raw/${version}/CHANGELOG.md";
+    license = licenses.bsd3;
+    platforms = platforms.x86_64;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/libraries/libplacebo/default.nix b/third_party/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
index 98d9c3477e..210542e0c9 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
@@ -16,14 +16,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libplacebo";
-  version = "3.120.0";
+  version = "3.120.1";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1vjcp703h0a8z70bqkx1fawhpyv3zl11c7rczyky8v4cmcihscgg";
+    sha256 = "0x7jyzsdf884jrky4yci151pk4nzsz1w88wz8sk0cqing7bpaq16";
   };
 
   nativeBuildInputs = [
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dvulkan-registry=${vulkan-headers}/share/vulkan/registry/vk.xml"
+    "-Ddemos=false"
   ];
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix b/third_party/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
index 532800ddd9..d4d69ed6af 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/libraspberrypi/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libraspberrypi";
-  version = "unstable-2021-01-11";
+  version = "unstable-2021-03-17";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "userland";
-    rev = "4a0a19b88b43e48c6b51b526b9378289fb712a4c";
-    sha256 = "0g3a1a7w717h0fwk39banzgjwphh62fx64k130w2s5885lsn5r5k";
+    rev = "3fd8527eefd8790b4e8393458efc5f94eb21a615";
+    sha256 = "099qxh4bjzwd431ffpdhzx0gzlrkdyf66wplgkwg2rrfrc9zlv5a";
   };
 
   patches = [
diff --git a/third_party/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix b/third_party/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
index bf53cfcb62..3b9057ad31 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yoda";
-  version = "1.8.5";
+  version = "1.9.0";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/yoda/YODA-${version}.tar.bz2";
-    sha256 = "1z9jmabsaddhs003zzq73fpq2absd12rnc2sa5qn45zwf62nnbjc";
+    sha256 = "1x7xi6w7lb92x8202kbaxgqg1sly534wana4f38l3gpbzw9dwmcs";
   };
 
   nativeBuildInputs = with python.pkgs; [ cython makeWrapper ];
@@ -39,7 +39,5 @@ stdenv.mkDerivation rec {
     homepage    = "https://yoda.hepforge.org";
     platforms   = lib.platforms.unix;
     maintainers = with lib.maintainers; [ veprbl ];
-    # https://gitlab.com/hepcedar/yoda/-/issues/24
-    broken      = withRootSupport;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/libraries/pipewire/default.nix b/third_party/nixpkgs/pkgs/development/libraries/pipewire/default.nix
index d685bde35e..47a85c36c2 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/pipewire/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/pipewire/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , removeReferencesTo
 , meson
 , ninja
@@ -43,7 +42,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "pipewire";
-    version = "0.3.24";
+    version = "0.3.25";
 
     outputs = [
       "out"
@@ -61,7 +60,7 @@ let
       owner = "pipewire";
       repo = "pipewire";
       rev = version;
-      hash = "sha256:PcY20FTtUtJYAwCscEs+HfkdwDksYPFZIVTVORP1ooI=";
+      hash = "sha256:EbXWcf6QLtbvm6/eXBI+PF2sTw2opYfmc+H/SMDEH1U=";
     };
 
     patches = [
@@ -75,11 +74,6 @@ let
       ./0070-installed-tests-path.patch
       # Add flag to specify configuration directory (different from the installation directory).
       ./0080-pipewire-config-dir.patch
-      # Fix JSON parser.
-      (fetchpatch {
-        url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/34800dc0191a4ee7a329eeb361a6f2ccf4a75176.diff";
-        sha256 = "0dzxzr408qqzf0252nwg14709p1lb2k826i3kdzg6djq8w98d5aj";
-      })
     ];
 
     nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix b/third_party/nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix
index 94a9adcae8..3d8fa0f95d 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/rabbitmq-c/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rabbitmq-c";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "alanxz";
     repo = "rabbitmq-c";
     rev = "v${version}";
-    sha256 = "1iv7aww4pam8497s524xjxbbxypyqd01qgrb0b429y3q9x06m4sw";
+    sha256 = "sha256-u1uOrZRiQOU/6vlLdQHypBRSCo3zw7FC1AI9v3NlBVE=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix b/third_party/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix
index da4ba218fd..f7966046fa 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/default.nix
@@ -51,6 +51,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/indilib/indi/releases/tag/v${version}";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ hjones2199 ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix b/third_party/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
index e6e82bc024..34ef408871 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/science/astronomy/indilib/indi-3rdparty.nix
@@ -59,6 +59,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/indilib/indi-3rdparty/releases/tag/v${version}";
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ hjones2199 ];
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.linux;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix b/third_party/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
index 34fea3162a..1f60f4d953 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
@@ -17,40 +17,57 @@
 let
   # Release notes and download URLs are here:
   # https://registrationcenter.intel.com/en/products/
-  version = "${year}.${spot}.${rel}";
+  version = "${mklVersion}.${rel}";
 
   # Darwin is pinned to 2019.3 because the DMG does not unpack; see here for details:
   # https://github.com/matthewbauer/undmg/issues/4
-  year = if stdenvNoCC.isDarwin then "2019" else "2020";
-  spot = if stdenvNoCC.isDarwin then "3" else "4";
-  rel = if stdenvNoCC.isDarwin then "199" else "304";
+  mklVersion = if stdenvNoCC.isDarwin then "2019.3" else "2021.1.1";
+  rel = if stdenvNoCC.isDarwin then "199" else "52";
 
-  # Replace `openmpSpot` by `spot` after 2020.
-  openmpSpot = if stdenvNoCC.isDarwin then spot else "3";
+  # Intel openmp uses its own versioning.
+  openmpVersion = if stdenvNoCC.isDarwin then "19.0.3" else "19.1.3";
+  openmpRel = "189";
 
-  rpm-ver = "${year}.${spot}-${rel}-${year}.${spot}-${rel}";
-
-  # Intel openmp uses its own versioning, but shares the spot release patch.
-  openmp = if stdenvNoCC.isDarwin then "19.0" else "19.1";
-  openmp-ver = "${openmp}.${openmpSpot}-${rel}-${openmp}.${openmpSpot}-${rel}";
+  # Thread Building Blocks release.
+  tbbRel = "119";
 
   shlibExt = stdenvNoCC.hostPlatform.extensions.sharedLibrary;
 
-in stdenvNoCC.mkDerivation {
+  oneapi-mkl = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-mkl-${mklVersion}-${mklVersion}-${rel}.x86_64.rpm";
+    hash = "sha256-G2Y7iX3UN2YUJhxcMM2KmhONf0ls9owpGlOo8hHOfqA=";
+  };
+
+  oneapi-mkl-common = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-mkl-common-${mklVersion}-${mklVersion}-${rel}.noarch.rpm";
+    hash = "sha256-HrMt2OcPIRxM8EL8SPjYTyuHJnC7RhPFUrvLhRH+7vc=";
+  };
+
+  oneapi-mkl-common-devel = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-mkl-common-devel-${mklVersion}-${mklVersion}-${rel}.noarch.rpm";
+    hash = "sha256-XDE2WFJzEcpujFmO2AvqQdipZMvKB6/G+ksBe2sE438=";
+  };
+
+  oneapi-mkl-devel = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-mkl-devel-${mklVersion}-${mklVersion}-${rel}.x86_64.rpm";
+    hash = "sha256-GhUJZ0Vr/ZXp10maie29/5ryU7zzX3F++wRCuuFcE0s=";
+  };
+
+  oneapi-openmp = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-openmp-${mklVersion}-${mklVersion}-${openmpRel}.x86_64.rpm";
+    hash = "sha256-yP2c4aQAFNRffjLoIZgWXLcNXbiez8smsgu2wXitefU=";
+  };
+
+  oneapi-tbb = fetchurl {
+    url = "https://yum.repos.intel.com/oneapi/intel-oneapi-tbb-${mklVersion}-${mklVersion}-${tbbRel}.x86_64.rpm";
+    hash = "sha256-K1BvhGoGVU2Zwy5vg2ZvJWBrSdh5uQwo0znt5039X0A=";
+  };
+
+in stdenvNoCC.mkDerivation ({
   pname = "mkl";
   inherit version;
 
-  src = if stdenvNoCC.isDarwin
-    then
-      (fetchurl {
-        url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15235/m_mkl_${version}.dmg";
-        sha256 = "14b3ciz7995sqcd6jz7hc8g2x4zwvqxmgxgni46vrlb7n523l62f";
-      })
-    else
-      (fetchurl {
-        url = "https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16917/l_mkl_${version}.tgz";
-        hash = "sha256-IxTUZTaXTb0I8qTk+emhVdx+eeJ5jHTn3fqtAKWRfqU=";
-      });
+  dontUnpack = stdenvNoCC.isLinux;
 
   nativeBuildInputs = [ validatePkgConfig ] ++ (if stdenvNoCC.isDarwin
     then
@@ -63,30 +80,15 @@ in stdenvNoCC.mkDerivation {
       tar xzvf $f
     done
   '' else ''
-    # Common stuff
-    rpmextract rpm/intel-mkl-core-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-common-c-${rpm-ver}.noarch.rpm
-    rpmextract rpm/intel-mkl-common-f-${rpm-ver}.noarch.rpm
+    rpmextract ${oneapi-mkl}
+    rpmextract ${oneapi-mkl-common}
+    rpmextract ${oneapi-mkl-common-devel}
+    rpmextract ${oneapi-mkl-devel}
+    rpmextract ${oneapi-openmp}
+    rpmextract ${oneapi-tbb}
+  '';
 
-    # Dynamic libraries
-    rpmextract rpm/intel-mkl-cluster-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-core-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-f-rt-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-rt-${rpm-ver}.x86_64.rpm
-
-    # Intel OpenMP runtime
-    rpmextract rpm/intel-openmp-${openmp-ver}.x86_64.rpm
-  '' + (if enableStatic then ''
-    # Static libraries
-    rpmextract rpm/intel-mkl-cluster-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-${rpm-ver}.x86_64.rpm
-    rpmextract rpm/intel-mkl-gnu-f-${rpm-ver}.x86_64.rpm
-  '' else ''
-    # Take care of installing dynamic-only PkgConfig files during the installPhase
-  ''
-  );
-
-  installPhase = ''
+  installPhase = if stdenvNoCC.isDarwin then ''
     for f in $(find . -name 'mkl*.pc') ; do
       bn=$(basename $f)
       substituteInPlace $f \
@@ -95,42 +97,54 @@ in stdenvNoCC.mkDerivation {
         --replace "lib/intel64_lin" "lib" \
         --replace "lib/intel64" "lib"
     done
-
     for f in $(find opt/intel -name 'mkl*iomp.pc') ; do
       substituteInPlace $f \
         --replace "../compiler/lib" "lib"
     done
-  '' +
-    (if stdenvNoCC.isDarwin then ''
-      mkdir -p $out/lib
 
-      cp -r compilers_and_libraries_${version}/mac/mkl/include $out/
+    mkdir -p $out/lib
 
-      cp -r compilers_and_libraries_${version}/licensing/mkl/en/license.txt $out/lib/
-      cp -r compilers_and_libraries_${version}/mac/compiler/lib/* $out/lib/
-      cp -r compilers_and_libraries_${version}/mac/mkl/lib/* $out/lib/
-      cp -r compilers_and_libraries_${version}/mac/tbb/lib/* $out/lib/
+    cp -r compilers_and_libraries_${version}/mac/mkl/include $out/
 
-      mkdir -p $out/lib/pkgconfig
-      cp -r compilers_and_libraries_${version}/mac/mkl/bin/pkgconfig/* $out/lib/pkgconfig
+    cp -r compilers_and_libraries_${version}/licensing/mkl/en/license.txt $out/lib/
+    cp -r compilers_and_libraries_${version}/mac/compiler/lib/* $out/lib/
+    cp -r compilers_and_libraries_${version}/mac/mkl/lib/* $out/lib/
+    cp -r compilers_and_libraries_${version}/mac/tbb/lib/* $out/lib/
+
+    mkdir -p $out/lib/pkgconfig
+    cp -r compilers_and_libraries_${version}/mac/mkl/bin/pkgconfig/* $out/lib/pkgconfig
   '' else ''
-      mkdir -p $out/lib
-      cp license.txt $out/lib/
+    for f in $(find . -name 'mkl*.pc') ; do
+      bn=$(basename $f)
+      substituteInPlace $f \
+        --replace $\{MKLROOT} "$out" \
+        --replace "lib/intel64" "lib"
 
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/include $out/
+      sed -r -i "s|^prefix=.*|prefix=$out|g" $f
+    done
 
-      mkdir -p $out/lib/pkgconfig
-  '') +
+    for f in $(find opt/intel -name 'mkl*iomp.pc') ; do
+      substituteInPlace $f --replace "../compiler/lib" "lib"
+    done
+
+    # License
+    install -Dm0655 -t $out/share/doc/mkl opt/intel/oneapi/mkl/2021.1.1/licensing/en/license.txt
+
+    # Dynamic libraries
+    install -Dm0755 -t $out/lib opt/intel/oneapi/mkl/${mklVersion}/lib/intel64/*.so*
+    install -Dm0755 -t $out/lib opt/intel/oneapi/compiler/2021.1.1/linux/compiler/lib/intel64_lin/*.so*
+    install -Dm0755 -t $out/lib opt/intel/oneapi/tbb/2021.1.1/lib/intel64/gcc4.8/*.so*
+
+    # Headers
+    cp -r opt/intel/oneapi/mkl/${mklVersion}/include $out/
+  '' +
     (if enableStatic then ''
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/compiler/lib/intel64_lin/* $out/lib/
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/* $out/lib/
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/bin/pkgconfig/* $out/lib/pkgconfig
+      install -Dm0644 -t $out/lib opt/intel/oneapi/mkl/${mklVersion}/lib/intel64/*.a
+      install -Dm0644 -t $out/lib/pkgconfig opt/intel/oneapi/mkl/2021.1.1/tools/pkgconfig/*.pc
     '' else ''
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/compiler/lib/intel64_lin/*.so* $out/lib/
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/*.so* $out/lib/
-      cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/bin/pkgconfig/*dynamic*.pc $out/lib/pkgconfig
+      cp opt/intel/oneapi/mkl/${mklVersion}/lib/intel64/*.so* $out/lib
+      install -Dm0644 -t $out/lib/pkgconfig opt/intel/oneapi/mkl/2021.1.1/tools/pkgconfig/*dynamic*.pc
     '') + ''
-
     # Setup symlinks for blas / lapack
     ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/libblas${shlibExt}
     ln -s $out/lib/libmkl_rt${shlibExt} $out/lib/libcblas${shlibExt}
@@ -159,13 +173,18 @@ in stdenvNoCC.mkDerivation {
   dontStrip = true;
   dontPatchELF = true;
 
-  passthru.tests.pkg-config = callPackage ./test { };
+  passthru.tests = {
+    pkg-config-dynamic-iomp = callPackage ./test { enableStatic = false; execution = "iomp"; };
+    pkg-config-static-iomp = callPackage ./test { enableStatic = true; execution = "iomp"; };
+    pkg-config-dynamic-seq = callPackage ./test { enableStatic = false; execution = "seq"; };
+    pkg-config-static-seq = callPackage ./test { enableStatic = true; execution = "seq"; };
+  };
 
   meta = with lib; {
-    description = "Intel Math Kernel Library";
+    description = "Intel OneAPI Math Kernel Library";
     longDescription = ''
-      Intel Math Kernel Library (Intel MKL) optimizes code with minimal effort
-      for future generations of Intel processors. It is compatible with your
+      Intel OneAPI Math Kernel Library (Intel oneMKL) optimizes code with minimal
+      effort for future generations of Intel processors. It is compatible with your
       choice of compilers, languages, operating systems, and linking and
       threading models.
     '';
@@ -174,4 +193,9 @@ in stdenvNoCC.mkDerivation {
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ bhipple ];
   };
-}
+} // lib.optionalAttrs stdenvNoCC.isDarwin {
+  src = fetchurl {
+    url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/15235/m_mkl_${version}.dmg";
+    sha256 = "14b3ciz7995sqcd6jz7hc8g2x4zwvqxmgxgni46vrlb7n523l62f";
+  };
+})
diff --git a/third_party/nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix b/third_party/nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix
index 688c0ec7c3..cb3355260d 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/science/math/mkl/test/default.nix
@@ -1,6 +1,14 @@
-{ stdenv, pkg-config, mkl }:
+{ stdenv
+, pkg-config
+, mkl
 
-stdenv.mkDerivation {
+, enableStatic ? false
+, execution ? "seq"
+}:
+
+let
+  linkType = if enableStatic then "static" else "dynamic";
+in stdenv.mkDerivation {
   pname = "mkl-test";
   version = mkl.version;
 
@@ -8,19 +16,19 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ mkl ];
+  buildInputs = [ (mkl.override { inherit enableStatic; }) ];
 
   doCheck = true;
 
   buildPhase = ''
     # Check regular Nix build.
-    gcc $(pkg-config --cflags --libs mkl-dynamic-ilp64-seq) test.c -o test
+    gcc test.c -o test $(pkg-config --cflags --libs mkl-${linkType}-ilp64-${execution})
 
     # Clear flags to ensure that we are purely relying on options
     # provided by pkg-config.
     NIX_CFLAGS_COMPILE="" \
     NIX_LDFLAGS="" \
-      gcc $(pkg-config --cflags --libs mkl-dynamic-ilp64-seq) test.c -o test
+      gcc test.c -o test $(pkg-config --cflags --libs mkl-${linkType}-ilp64-${execution})
   '';
 
   installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/libraries/tracker/default.nix b/third_party/nixpkgs/pkgs/development/libraries/tracker/default.nix
index f7fe531f28..fbc6cce51f 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/tracker/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/tracker/default.nix
@@ -27,7 +27,7 @@
 , substituteAll
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (rec {
   pname = "tracker";
   version = "3.0.3";
 
@@ -82,7 +82,8 @@ stdenv.mkDerivation rec {
     "-Ddocs=true"
   ];
 
-  doCheck = true;
+  # https://gitlab.gnome.org/GNOME/tracker/-/issues/292#note_1075369
+  doCheck = !stdenv.isi686;
 
   postPatch = ''
     patchShebangs utils/g-ir-merge/g-ir-merge
@@ -133,3 +134,8 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
   };
 }
+  // lib.optionalAttrs stdenv.isi686 {
+    # TMP: fatal error: libtracker-sparql/tracker-sparql-enum-types.h: No such file or directory
+    enableParallelBuilding = false;
+  }
+)
diff --git a/third_party/nixpkgs/pkgs/development/libraries/uriparser/default.nix b/third_party/nixpkgs/pkgs/development/libraries/uriparser/default.nix
index ad17199848..db36e31ae8 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/uriparser/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/uriparser/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, fetchpatch, cmake, gtest }:
+{ lib, stdenv, fetchurl, cmake, gtest }:
 
 stdenv.mkDerivation rec {
   pname = "uriparser";
-  version = "0.9.4";
+  version = "0.9.5";
 
   # Release tarball differs from source tarball
   src = fetchurl {
     url = "https://github.com/uriparser/uriparser/releases/download/${pname}-${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0yzqp1j6sglyrmwcasgn7zlwg841p3nbxy0h78ngq20lc7jspkdp";
+    sha256 = "0v30qr5hl3xybl9nzwaw46kblwn94w5xpri22wanrrpjlzmn306x";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/third_party/nixpkgs/pkgs/development/libraries/v8/default.nix b/third_party/nixpkgs/pkgs/development/libraries/v8/default.nix
index c79073f04e..d513e01b7a 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/v8/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/v8/default.nix
@@ -11,23 +11,23 @@ let
   deps = {
     "base/trace_event/common" = fetchgit {
       url    = "${git_url}/chromium/src/base/trace_event/common.git";
-      rev    = "936ba8a963284a6b3737cf2f0474a7131073abee";
-      sha256 = "14nr22fqdpxma1kzjflj6a865vr3hfnnm2gs4vcixyq4kmfzfcy2";
+      rev    = "dab187b372fc17e51f5b9fad8201813d0aed5129";
+      sha256 = "0dmpj9hj4xv3xb0fl1kb9hm4bhpbs2s5csx3z8cgjd5vwvhdzig4";
     };
     build = fetchgit {
       url    = "${git_url}/chromium/src/build.git";
-      rev    = "325e95d6dae64f35b160b3dc7d73218cee5ec079";
-      sha256 = "0dddyxa76p2xpjhmxif05v63i5ar6h5v684fdl667sg84f5bhhxf";
+      rev    = "26e9d485d01d6e0eb9dadd21df767a63494c8fea";
+      sha256 = "1jjvsgj0cs97d26i3ba531ic1f9gqan8x7z4aya8yl8jx02l342q";
     };
     "third_party/googletest/src" = fetchgit {
       url    = "${git_url}/external/github.com/google/googletest.git";
-      rev    = "5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081";
-      sha256 = "0gmr10042c0xybxnn6g7ndj1na1mmd3l9w7449qlcv4s8gmfs7k6";
+      rev    = "e3f0319d89f4cbf32993de595d984183b1a9fc57";
+      sha256 = "18xz71l2xjrqsc0q317whgw4xi1i5db24zcj7v04f5g6r1hyf1a5";
     };
     "third_party/icu" = fetchgit {
       url    = "${git_url}/chromium/deps/icu.git";
-      rev    = "960f195aa87acaec46e6104ec93a596da7ae0843";
-      sha256 = "073kh6gpcairgjxf3hlhpqljc13gwl2aj8fz91fv220xibwqs834";
+      rev    = "f2223961702f00a8833874b0560d615a2cc42738";
+      sha256 = "0z5p53kbrjfkjn0i12dpk55cp8976j2zk7a4wk88423s2c5w87zl";
     };
     "third_party/jinja2" = fetchgit {
       url    = "${git_url}/chromium/src/third_party/jinja2.git";
@@ -39,29 +39,31 @@ let
       rev    = "8f45f5cfa0009d2a70589bcda0349b8cb2b72783";
       sha256 = "168ppjmicfdh4i1l0l25s86mdbrz9fgxmiq1rx33x79mph41scfz";
     };
+    "third_party/zlib" = fetchgit {
+      url    = "${git_url}/chromium/src/third_party/zlib.git";
+      rev    = "156be8c52f80cde343088b4a69a80579101b6e67";
+      sha256 = "0hxbkkzmlv714fjq2jlp5dd2jc339xyh6gkjx1sz3srwv33mlk92";
+    };
   };
 
 in
 
 stdenv.mkDerivation rec {
   pname = "v8";
-  version = "7.4.255";
+  version = "8.4.255";
 
   doCheck = true;
 
   patches = [
-    (fetchpatch {
-      url = "https://raw.githubusercontent.com/RPi-Distro/chromium-browser/master/debian/patches/revert-Xclang-instcombine-lower-dbg-declare.patch";
-      sha256 = "02hczcg43m36q8j1kv5j3hq9czj9niiil9w13w22vzv2f3c67dvn";
-    })
     ./darwin.patch
+    ./gcc_arm.patch  # Fix building zlib with gcc on aarch64, from https://gist.github.com/Adenilson/d973b6fd96c7709d33ddf08cf1dcb149
   ];
 
   src = fetchFromGitHub {
     owner = "v8";
     repo = "v8";
     rev = version;
-    sha256 = "14i0c71hmffzqnq9n73dh9dnabdxhbjhzkhqpk5yv9y90bwrzi2n";
+    sha256 = "07ymw4kqbz7kv311gpk5bs5q90wj73n2q7jkyfhqk4hvhs1q5bw7";
   };
 
   postUnpack = ''
@@ -97,9 +99,7 @@ stdenv.mkDerivation rec {
     ''v8_snapshot_toolchain="//build/toolchain/linux/unbundle:default"''
   ] ++ lib.optional stdenv.cc.isClang ''clang_base_path="${stdenv.cc}"'';
 
-  # with gcc8, -Wclass-memaccess became part of -Wall and causes logging limit
-  # to be exceeded
-  NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-class-memaccess";
+  NIX_CFLAGS_COMPILE = "-O2";
 
   nativeBuildInputs = [ gn ninja pkg-config python ]
     ++ lib.optionals stdenv.isDarwin [ xcbuild darwin.DarwinTools ];
diff --git a/third_party/nixpkgs/pkgs/development/libraries/v8/gcc_arm.patch b/third_party/nixpkgs/pkgs/development/libraries/v8/gcc_arm.patch
new file mode 100644
index 0000000000..09579561fd
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/libraries/v8/gcc_arm.patch
@@ -0,0 +1,31 @@
+diff --git a/third_party/zlib/contrib/optimizations/insert_string.h b/third_party/zlib/contrib/optimizations/insert_string.h
+index 1826601..d123305 100644
+--- a/third_party/zlib/contrib/optimizations/insert_string.h
++++ b/third_party/zlib/contrib/optimizations/insert_string.h
+@@ -26,15 +26,23 @@
+   #define _cpu_crc32_u32 _mm_crc32_u32
+ 
+ #elif defined(CRC32_ARMV8_CRC32)
+-  #if defined(__clang__)
++  #if defined(__GNUC__) || defined(__clang__)
+     #undef TARGET_CPU_WITH_CRC
+-    #define __crc32cw __builtin_arm_crc32cw
++    #if defined(__clang__)
++      #define __crc32cw __builtin_arm_crc32cw
++    #elif defined(__GNUC__)
++      #define __crc32cw __builtin_aarch64_crc32cw
++    #endif
+   #endif
+ 
+   #define _cpu_crc32_u32 __crc32cw
+ 
+   #if defined(__aarch64__)
+-    #define TARGET_CPU_WITH_CRC __attribute__((target("crc")))
++    #if defined(__clang__)
++      #define TARGET_CPU_WITH_CRC __attribute__((target("crc")))
++    #elif defined(__GNUC__)
++      #define TARGET_CPU_WITH_CRC __attribute__((target("+crc")))
++    #endif
+   #else  // !defined(__aarch64__)
+     #define TARGET_CPU_WITH_CRC __attribute__((target("armv8-a,crc")))
+   #endif  // defined(__aarch64__)
diff --git a/third_party/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix b/third_party/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix
new file mode 100644
index 0000000000..66d4fab2bf
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/libraries/wlroots/0.12.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland
+, libGL, wayland-protocols, libinput, libxkbcommon, pixman
+, xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
+, libpng, ffmpeg
+}:
+
+# Fixed version derivation.
+# nixpkgs-update: no auto update
+stdenv.mkDerivation rec {
+  pname = "wlroots";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "swaywm";
+    repo = "wlroots";
+    rev = version;
+    sha256 = "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn";
+  };
+
+  # $out for the library and $examples for the example programs (in examples):
+  outputs = [ "out" "examples" ];
+
+  nativeBuildInputs = [ meson ninja pkg-config wayland ];
+
+  buildInputs = [
+    libGL wayland wayland-protocols libinput libxkbcommon pixman
+    xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa
+    libpng ffmpeg
+  ];
+
+  mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=disabled" ];
+
+  postFixup = ''
+    # Install ALL example programs to $examples:
+    # screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
+    # screenshot output-layout multi-pointer rotation tablet touch pointer
+    # simple
+    mkdir -p $examples/bin
+    cd ./examples
+    for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
+      cp "$binary" "$examples/bin/wlroots-$binary"
+    done
+  '';
+
+  meta = with lib; {
+    description = "A modular Wayland compositor library";
+    longDescription = ''
+      Pluggable, composable, unopinionated modules for building a Wayland
+      compositor; or about 50,000 lines of code you were going to write anyway.
+    '';
+    inherit (src.meta) homepage;
+    changelog = "https://github.com/swaywm/wlroots/releases/tag/${version}";
+    license     = licenses.mit;
+    platforms   = platforms.linux;
+    maintainers = with maintainers; [ primeos synthetica ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/libraries/wlroots/default.nix b/third_party/nixpkgs/pkgs/development/libraries/wlroots/default.nix
index a21179e202..a51de90d19 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/wlroots/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/wlroots/default.nix
@@ -1,18 +1,18 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland
 , libGL, wayland-protocols, libinput, libxkbcommon, pixman
 , xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
-, libpng, ffmpeg
+, libpng, ffmpeg, libuuid, xcbutilrenderutil, xwayland
 }:
 
 stdenv.mkDerivation rec {
   pname = "wlroots";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "swaywm";
     repo = "wlroots";
     rev = version;
-    sha256 = "01j38lmgs2c6fq68v8b75pkilia2wsgzgp46ivfbi9hhx47kgcfn";
+    sha256 = "01plhbnsp5yg18arz0v8fr0pr9l4w4pdzwkg9px486qdvb3s1vgy";
   };
 
   # $out for the library and $examples for the example programs (in examples):
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libGL wayland wayland-protocols libinput libxkbcommon pixman
     xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa
-    libpng ffmpeg
+    libpng ffmpeg libuuid xcbutilrenderutil xwayland
   ];
 
   mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=disabled" ];
@@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/swaywm/wlroots/releases/tag/${version}";
     license     = licenses.mit;
     platforms   = platforms.linux;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ primeos synthetica ];
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/libraries/x264/default.nix b/third_party/nixpkgs/pkgs/development/libraries/x264/default.nix
index 93d0b42a88..5b82c594b0 100644
--- a/third_party/nixpkgs/pkgs/development/libraries/x264/default.nix
+++ b/third_party/nixpkgs/pkgs/development/libraries/x264/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, lib, fetchurl, nasm }:
+{ stdenv, lib, fetchurl, nasm
+, enableShared ? !stdenv.hostPlatform.isStatic
+ }:
 
 stdenv.mkDerivation rec {
   pname = "x264";
@@ -28,7 +30,7 @@ stdenv.mkDerivation rec {
     export AS=$CC
   '';
 
-  configureFlags = [ "--enable-shared" ]
+  configureFlags = lib.optional enableShared "--enable-shared"
     ++ lib.optional (!stdenv.isi686) "--enable-pic"
     ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--cross-prefix=${stdenv.cc.targetPrefix}";
 
diff --git a/third_party/nixpkgs/pkgs/development/node-packages/node-packages.json b/third_party/nixpkgs/pkgs/development/node-packages/node-packages.json
index 959cb20d10..01f87779a8 100644
--- a/third_party/nixpkgs/pkgs/development/node-packages/node-packages.json
+++ b/third_party/nixpkgs/pkgs/development/node-packages/node-packages.json
@@ -91,10 +91,12 @@
 , "firebase-tools"
 , "fixjson"
 , "fkill-cli"
+, "fleek-cli"
 , "flood"
 , "forever"
 , "fx"
 , "ganache-cli"
+, "gatsby-cli"
 , "get-graphql-schema"
 , "git-run"
 , "git-ssb"
diff --git a/third_party/nixpkgs/pkgs/development/node-packages/node-packages.nix b/third_party/nixpkgs/pkgs/development/node-packages/node-packages.nix
index 950115f80b..505b256037 100644
--- a/third_party/nixpkgs/pkgs/development/node-packages/node-packages.nix
+++ b/third_party/nixpkgs/pkgs/development/node-packages/node-packages.nix
@@ -49,31 +49,22 @@ let
         sha512 = "o/xdK8b4P0t/xpCARgWXAeaiWeh9jeua6bP1jrcbfN39+Z4zC4x2jg4NysHNhz6spRG8dJFH3kJIUoIbs0Ckww==";
       };
     };
-    "@angular-devkit/architect-0.1102.6" = {
+    "@angular-devkit/architect-0.1102.7" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1102.6";
+      version = "0.1102.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.6.tgz";
-        sha512 = "27+5tjoUOAcm2pzo6EJhQn3lK4s9Gk0RfZFc2ygVu8PHnukXZAd4ntclGi33aPgJmt4zA2qbWq4Ytn2a/G6FMg==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1102.7.tgz";
+        sha512 = "55SduK1ZpoHDSNd5ACBFVUQ5dMNVLOznJDoec76acrDuY7EZ6bptfjcK329fBQME0Ne6Jvip7zzrmec+PBXS+g==";
       };
     };
-    "@angular-devkit/core-11.2.0" = {
+    "@angular-devkit/core-11.2.4" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "11.2.0";
+      version = "11.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.0.tgz";
-        sha512 = "qqYEH8m/bwpngoLDMFuth8ykvoHxQ3aHHnAWfRXz9NXydwSfathG0VSYCctB126sK39JKIn+xq16CQAExxNu+Q==";
-      };
-    };
-    "@angular-devkit/core-11.2.3" = {
-      name = "_at_angular-devkit_slash_core";
-      packageName = "@angular-devkit/core";
-      version = "11.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.3.tgz";
-        sha512 = "2JEGXzFqjTqVls2uIZEE0sk4VY9a/alxBAq8BFYIVbvzKsL9gAY71Ztf21zrhQrZop9qeuLJtOAbp00QyYUaQA==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.4.tgz";
+        sha512 = "98mGDV4XtKWiQ/2D6yzvOHrnJovXchaAN9AjscAHd2an8Fkiq72d9m2wREpk+2J40NWTDB6J5iesTh3qbi8+CA==";
       };
     };
     "@angular-devkit/core-11.2.6" = {
@@ -85,22 +76,22 @@ let
         sha512 = "3dA0Z6sIIxCDjZS/DucgmIKti7EZ/LgHoHgCO72Q50H5ZXbUSNBz5wGl5hVq2+gzrnFgU/0u40MIs6eptk30ZA==";
       };
     };
-    "@angular-devkit/schematics-11.2.0" = {
-      name = "_at_angular-devkit_slash_schematics";
-      packageName = "@angular-devkit/schematics";
-      version = "11.2.0";
+    "@angular-devkit/core-11.2.7" = {
+      name = "_at_angular-devkit_slash_core";
+      packageName = "@angular-devkit/core";
+      version = "11.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.0.tgz";
-        sha512 = "sMDacACJbA4pykiqgJf/RdW0damcf4mDqErGgEqs/bGG+SBUb8+wgt4cQnUwwVX5V2nMdvv7f0A84rgR6I3G2w==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-11.2.7.tgz";
+        sha512 = "oflo+LsUob5nF0PknivtRdkHH/iMbVNIPRnv/c52Nk7+FUlEx53pkLWBc2rdhTrEptBFMmrpNaa30P+TQrFNkQ==";
       };
     };
-    "@angular-devkit/schematics-11.2.3" = {
+    "@angular-devkit/schematics-11.2.4" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "11.2.3";
+      version = "11.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.3.tgz";
-        sha512 = "x/IKgZDn6z/MzQ28WF2GTP2N+n78iySQhLu6n6bpmdrFp9noi9QASzN+mAFiqSNO8XpO9oyIB5y2ERl8KBrU1g==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.4.tgz";
+        sha512 = "M9Ike1TYawOIHzenlZS1ufQbsS+Z11/doj5w/UrU0q2OEKc6U375t5qVGgKo3PLHHS8osb9aW9xYwBfVlKrryQ==";
       };
     };
     "@angular-devkit/schematics-11.2.6" = {
@@ -112,13 +103,22 @@ let
         sha512 = "bhi2+5xtVAjtr3bsXKT8pnoBamQrArd/Y20ueA4Od7cd38YT97nzTA1wyHBFG0vWd0HMyg42ZS0aycNBuOebaA==";
       };
     };
-    "@angular-devkit/schematics-cli-0.1102.0" = {
+    "@angular-devkit/schematics-11.2.7" = {
+      name = "_at_angular-devkit_slash_schematics";
+      packageName = "@angular-devkit/schematics";
+      version = "11.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-11.2.7.tgz";
+        sha512 = "cnORKnyVtsdVZ180ZZyrmCMeSH1IGK2apfgGGW3UaUZvTAtolQPrqT0RQUK8qLF/RC85xy9QYXApiAaLDUixIw==";
+      };
+    };
+    "@angular-devkit/schematics-cli-0.1102.6" = {
       name = "_at_angular-devkit_slash_schematics-cli";
       packageName = "@angular-devkit/schematics-cli";
-      version = "0.1102.0";
+      version = "0.1102.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.1102.0.tgz";
-        sha512 = "BkIoRf7L+3al+QIYWrgUlpNQP01tPSynPdTNb7z13tCHVv8Ag1CR5SJn1O8IGfFz7NxfX0Me0s7zyNTZ1QaWQQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.1102.6.tgz";
+        sha512 = "86PmafA9mYDeM08cNWHcJCEY1Yqo5aq/YaBzCak93luByDQ4Ao4Jqts9l/xBCZBGUdVrczCNzcdwr/Y/6JPPzA==";
       };
     };
     "@antora/asciidoc-loader-2.3.4" = {
@@ -274,6 +274,15 @@ let
         sha512 = "ssOPUT7euLqDXcdVv3Qs4LoL4BPtfermW1IOouaqEmj36TpHYDmYDIbKoSQxikd9vtMumFnP87OybH7sC9fJ6g==";
       };
     };
+    "@arcanis/slice-ansi-1.0.2" = {
+      name = "_at_arcanis_slash_slice-ansi";
+      packageName = "@arcanis/slice-ansi";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@arcanis/slice-ansi/-/slice-ansi-1.0.2.tgz";
+        sha512 = "lDL63z0W/L/WTgqrwVOuNyMAsTv+pvjybd21z9SWdStmQoXT59E/iVWwat3gYjcdTNBf6oHAMoyFm8dtjpXEYw==";
+      };
+    };
     "@ardatan/aggregate-error-0.0.6" = {
       name = "_at_ardatan_slash_aggregate-error";
       packageName = "@ardatan/aggregate-error";
@@ -337,13 +346,22 @@ let
         sha512 = "3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==";
       };
     };
-    "@babel/core-7.13.10" = {
+    "@babel/core-7.10.5" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.13.10";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz";
-        sha512 = "bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.5.tgz";
+        sha512 = "O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w==";
+      };
+    };
+    "@babel/core-7.13.14" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.13.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.13.14.tgz";
+        sha512 = "wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -382,13 +400,13 @@ let
         sha512 = "CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==";
       };
     };
-    "@babel/helper-compilation-targets-7.13.10" = {
+    "@babel/helper-compilation-targets-7.13.13" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.13.10";
+      version = "7.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz";
-        sha512 = "/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz";
+        sha512 = "q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==";
       };
     };
     "@babel/helper-create-class-features-plugin-7.13.11" = {
@@ -472,13 +490,13 @@ let
         sha512 = "4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==";
       };
     };
-    "@babel/helper-module-transforms-7.13.12" = {
+    "@babel/helper-module-transforms-7.13.14" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.13.12";
+      version = "7.13.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz";
-        sha512 = "7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz";
+        sha512 = "QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==";
       };
     };
     "@babel/helper-optimise-call-expression-7.12.13" = {
@@ -490,6 +508,15 @@ let
         sha512 = "BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==";
       };
     };
+    "@babel/helper-plugin-utils-7.10.4" = {
+      name = "_at_babel_slash_helper-plugin-utils";
+      packageName = "@babel/helper-plugin-utils";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
+      };
+    };
     "@babel/helper-plugin-utils-7.13.0" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
@@ -589,13 +616,13 @@ let
         sha512 = "5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==";
       };
     };
-    "@babel/parser-7.13.12" = {
+    "@babel/parser-7.13.13" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.13.12";
+      version = "7.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz";
-        sha512 = "4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz";
+        sha512 = "OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==";
       };
     };
     "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12" = {
@@ -706,6 +733,15 @@ let
         sha512 = "O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==";
       };
     };
+    "@babel/plugin-proposal-object-rest-spread-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz";
+        sha512 = "6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==";
+      };
+    };
     "@babel/plugin-proposal-object-rest-spread-7.13.8" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
@@ -832,6 +868,15 @@ let
         sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
       };
     };
+    "@babel/plugin-syntax-jsx-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-jsx";
+      packageName = "@babel/plugin-syntax-jsx";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz";
+        sha512 = "KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==";
+      };
+    };
     "@babel/plugin-syntax-jsx-7.12.13" = {
       name = "_at_babel_slash_plugin-syntax-jsx";
       packageName = "@babel/plugin-syntax-jsx";
@@ -1291,13 +1336,13 @@ let
         sha512 = "JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA==";
       };
     };
-    "@babel/preset-flow-7.12.13" = {
+    "@babel/preset-flow-7.13.13" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.12.13";
+      version = "7.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.12.13.tgz";
-        sha512 = "gcEjiwcGHa3bo9idURBp5fmJPcyFPOszPQjztXrOjUE2wWVqc6fIVJPgWPIQksaQ5XZ2HWiRsf2s1fRGVjUtVw==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.13.13.tgz";
+        sha512 = "MDtwtamMifqq3R2mC7l3A3uFalUb3NH5TIBQWjN/epEPlZktcLq4se3J+ivckKrLMGsR7H9LW8+pYuIUN9tsKg==";
       };
     };
     "@babel/preset-modules-0.1.4" = {
@@ -1336,13 +1381,13 @@ let
         sha512 = "LXJwxrHy0N3f6gIJlYbLta1D9BDtHpQeqwzM0LIfjDlr6UE/D5Mc7W4iDiQzaE+ks0sTjT26ArcHWnJVt0QiHw==";
       };
     };
-    "@babel/register-7.13.8" = {
+    "@babel/register-7.13.14" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.13.8";
+      version = "7.13.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.13.8.tgz";
-        sha512 = "yCVtABcmvQjRsX2elcZFUV5Q5kDDpHdtXKKku22hNDma60lYuhKmtp1ykZ/okRCPLT2bR5S+cA1kvtBdAFlDTQ==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.13.14.tgz";
+        sha512 = "iyw0hUwjh/fzN8qklVqZodbyWjEBOG0KdDnBOpv3zzIgK3NmuRXBmIXH39ZBdspkn8LTHvSboN+oYb4MT43+9Q==";
       };
     };
     "@babel/runtime-7.13.10" = {
@@ -1372,6 +1417,15 @@ let
         sha512 = "cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==";
       };
     };
+    "@babel/standalone-7.13.14" = {
+      name = "_at_babel_slash_standalone";
+      packageName = "@babel/standalone";
+      version = "7.13.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/standalone/-/standalone-7.13.14.tgz";
+        sha512 = "ZhIZaufaCVMuGt9yLlNTO/ORtI6xNKIHK0D/uEdVUYmS8xROOPgDPZtYesmXBA+xlArlCj5s94g4Nz4g0m0ytA==";
+      };
+    };
     "@babel/template-7.12.13" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
@@ -1381,22 +1435,22 @@ let
         sha512 = "/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==";
       };
     };
-    "@babel/traverse-7.13.0" = {
+    "@babel/traverse-7.13.13" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.13.0";
+      version = "7.13.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz";
-        sha512 = "xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz";
+        sha512 = "CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==";
       };
     };
-    "@babel/types-7.13.12" = {
+    "@babel/types-7.13.14" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.13.12";
+      version = "7.13.14";
       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/types/-/types-7.13.14.tgz";
+        sha512 = "A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==";
       };
     };
     "@braintree/sanitize-url-3.1.0" = {
@@ -1408,22 +1462,22 @@ let
         sha512 = "GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==";
       };
     };
-    "@bugsnag/browser-7.9.0" = {
+    "@bugsnag/browser-7.9.2" = {
       name = "_at_bugsnag_slash_browser";
       packageName = "@bugsnag/browser";
-      version = "7.9.0";
+      version = "7.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.9.0.tgz";
-        sha512 = "+W/oxEJJMgNRVrgcCGXYQKAf6Nu28JklU3v+w7zgPEaxnzxxUwsCj7s4534XQvj/jprP60281WsAlTDqFRprAQ==";
+        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.9.2.tgz";
+        sha512 = "vD0UEpInqoOWxqSdXhDN7wbt8hUnaqmHF/nyQK6pVYlPmBOaseexwjGBWQ1BCa4QWwK1CDDBy6sS9onUvWKsnw==";
       };
     };
-    "@bugsnag/core-7.9.0" = {
+    "@bugsnag/core-7.9.2" = {
       name = "_at_bugsnag_slash_core";
       packageName = "@bugsnag/core";
-      version = "7.9.0";
+      version = "7.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.9.0.tgz";
-        sha512 = "LjARVBusQ1ewNrHRPBrwY4ISsXf/aPjQHAixFe6fRMiLzAS0awxFweVlbdfm+Oj/ZE04J6O9n4re9TC6pVBpEA==";
+        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.9.2.tgz";
+        sha512 = "iz18qkEhrF0Bra0lpEP4VC0EJa48R+3QDDiTtfHW9fiZGKw+ADrUhwW7pHJn+LDqWfq4kMqJNuQC+8s4dV3MYg==";
       };
     };
     "@bugsnag/cuid-3.0.0" = {
@@ -1435,22 +1489,22 @@ let
         sha512 = "LOt8aaBI+KvOQGneBtpuCz3YqzyEAehd1f3nC5yr9TIYW1+IzYKa2xWS4EiMz5pPOnRPHkyyS5t/wmSmN51Gjg==";
       };
     };
-    "@bugsnag/js-7.9.0" = {
+    "@bugsnag/js-7.9.2" = {
       name = "_at_bugsnag_slash_js";
       packageName = "@bugsnag/js";
-      version = "7.9.0";
+      version = "7.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.9.0.tgz";
-        sha512 = "owMjgCdMMD/3zvojNUZRfnWcjbudmAZ0f+5oNqxUwB4oEUgDd70QfNz11/QgrfydIgQd1iAj2qLyNZ2aAdQgzg==";
+        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.9.2.tgz";
+        sha512 = "RkajX7cnlYKm4uWclf4oQKZL69A9Vo5jNyQiE7u8uFXhotHoDyHi5QLkdHOSIOZHkBGkgoRV9tkbPAJKcnJSuQ==";
       };
     };
-    "@bugsnag/node-7.9.0" = {
+    "@bugsnag/node-7.9.2" = {
       name = "_at_bugsnag_slash_node";
       packageName = "@bugsnag/node";
-      version = "7.9.0";
+      version = "7.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.9.0.tgz";
-        sha512 = "ctTJLfeNgbWZAnKbqg4w1PMsabSnmkgAY199oZLonDuu/60UWlNOcDEicDEhULD9gt2vYTZy78QsYov4LDAojQ==";
+        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.9.2.tgz";
+        sha512 = "e+tEyUBQ6e5z4WJlPAi962rnbR0f+0wxPjSoUHV5uVFg5Dkjg3ioXDdzKVbxfOEv3nVpXlMD8DrQqYe5g0O6sA==";
       };
     };
     "@bugsnag/safe-json-stringify-6.0.0" = {
@@ -1462,13 +1516,13 @@ let
         sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
       };
     };
-    "@cdktf/hcl2json-0.2.0" = {
+    "@cdktf/hcl2json-0.2.1" = {
       name = "_at_cdktf_slash_hcl2json";
       packageName = "@cdktf/hcl2json";
-      version = "0.2.0";
+      version = "0.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.2.0.tgz";
-        sha512 = "ipJDQ7S402bziTPKr6WH2rfUtvUdC82LGj5YnEHpSuGp7PySEZs0u7J4ERsUNxoXFL0ikMvRBgzH6fCi+j7LQA==";
+        url = "https://registry.npmjs.org/@cdktf/hcl2json/-/hcl2json-0.2.1.tgz";
+        sha512 = "fn2ZA+Fxdk+QfDleT7GOiZozHdic5kVR0MhFHPzTEipXw7tJlrrbqd1fH+GJFu090uzIagdUM3Y+j4w1GTOz7g==";
       };
     };
     "@chemzqm/neovim-5.2.13" = {
@@ -1903,22 +1957,22 @@ let
         sha512 = "Ydf4LidRB/EBI+YrB+cVLqIseiRfjUI/AeHBgjGMtq3GroraDu81OV7zqophRgupngoL3iS3JUMDMnxO7g39qA==";
       };
     };
-    "@expo/config-3.3.33" = {
+    "@expo/config-3.3.34" = {
       name = "_at_expo_slash_config";
       packageName = "@expo/config";
-      version = "3.3.33";
+      version = "3.3.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.33.tgz";
-        sha512 = "8AJaBUlPOrIUfyy61N+/EfGegyddNyFnu2fifQGAhi8/bK61LpfbuRz7jBi4vnEDsOO0Hvwjm+mM6rK5RTjNOA==";
+        url = "https://registry.npmjs.org/@expo/config/-/config-3.3.34.tgz";
+        sha512 = "Yekmn9sIm70vGUwugXlL/jpTQufTJXV7IrYWvFKd4B8ZwdMBFK08NY2XBwvl+jJOVdhmLe+yHc44bCmrEPb6vA==";
       };
     };
-    "@expo/config-plugins-1.0.23" = {
+    "@expo/config-plugins-1.0.24" = {
       name = "_at_expo_slash_config-plugins";
       packageName = "@expo/config-plugins";
-      version = "1.0.23";
+      version = "1.0.24";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.23.tgz";
-        sha512 = "LjglO6CHC69qYjOynRsDBKuVbL2W3UPJs6nghgJR5aNhQCZtQsc74p4NWbQEkbPEasNtGCb355PlsV2fQskFaQ==";
+        url = "https://registry.npmjs.org/@expo/config-plugins/-/config-plugins-1.0.24.tgz";
+        sha512 = "DB4CgkeZEKG2DWC0GzbLSHuWlxWZ6d3wE95Cjy6DOyR60cFyxo+1eriaxLaBCApX3KrFAdxJFsxvwK9zbCtuzQ==";
       };
     };
     "@expo/config-types-40.0.0-beta.2" = {
@@ -1939,22 +1993,22 @@ let
         sha512 = "HsukM03X5/EXSucVsLN/oLqyFq/1jAjpADkgU1HLaezFpkr+TOquI6yDwdDp1450kcm891PE/SYJ+mCdPxzDLw==";
       };
     };
-    "@expo/dev-server-0.1.59" = {
+    "@expo/dev-server-0.1.60" = {
       name = "_at_expo_slash_dev-server";
       packageName = "@expo/dev-server";
-      version = "0.1.59";
+      version = "0.1.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.59.tgz";
-        sha512 = "mDFUiJVQ1LWx7WQCGCdqiQTm/j+UooVuYZKE9OpJIjBBLPB+a/0rlu7OxU+0PyjA+xc0t5fGVgRCuij2mqzS+A==";
+        url = "https://registry.npmjs.org/@expo/dev-server/-/dev-server-0.1.60.tgz";
+        sha512 = "tm+l8enWZ//2nst6s91V+29KwXlA69bFhG6b50lTXfY++7Q0OaOsDoGl3cQaWHKo2K3MQ/7C8riIGf7q6T5wjg==";
       };
     };
-    "@expo/dev-tools-0.13.87" = {
+    "@expo/dev-tools-0.13.89" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.87";
+      version = "0.13.89";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.87.tgz";
-        sha512 = "tQF9NvKd1HsGVm2iNrLYa1hndJNSkilYTLSvJnCSNbgGQJzMCMMfcdZXpIn8Sc6iF0kQ1KIfIzeO8UL72qTNIA==";
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.89.tgz";
+        sha512 = "8qlcd46x5CJU2VR+IL3MoHY0eScLe9Io2ibzvuFK+7kNP3gQle/LU+biAKtWIfUVlp4+xzEaAiDc202RTtHhqA==";
       };
     };
     "@expo/devcert-1.0.0" = {
@@ -1966,58 +2020,58 @@ let
         sha512 = "cahGyQCmpZmHpn2U04NR9KwsOIZy7Rhsw8Fg4q+A6563lIJxbkrgPnxq/O3NQAh3ohEvOXOOnoFx0b4yycCkpQ==";
       };
     };
-    "@expo/image-utils-0.3.11" = {
+    "@expo/image-utils-0.3.12" = {
       name = "_at_expo_slash_image-utils";
       packageName = "@expo/image-utils";
-      version = "0.3.11";
+      version = "0.3.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.11.tgz";
-        sha512 = "JH5/FExvEsz9H9QsgoOEN3QYqH9V50dKjpkwTkytXLutD5Z587xSRka57pbX+d4nkHqiQBT0W8buUkbma78NYg==";
+        url = "https://registry.npmjs.org/@expo/image-utils/-/image-utils-0.3.12.tgz";
+        sha512 = "QMMAjyCJUFXI8b6AOrVC40gubkt++qYfRJdKgbegf9JHQNul/O4Q1ENWTgid+PH0EUqlMLbv6kJ6ai0ZjO08kw==";
       };
     };
-    "@expo/json-file-8.2.28-alpha.0" = {
+    "@expo/json-file-8.2.28" = {
       name = "_at_expo_slash_json-file";
       packageName = "@expo/json-file";
-      version = "8.2.28-alpha.0";
+      version = "8.2.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.28-alpha.0.tgz";
-        sha512 = "cCQdw/Nfw8doXjN3onvUnWkuJjtVxx2iUjSOLMydvgI87YpW3x05uUXOVs4P+77YFVoFS6xbki+fmKK2JSCf8w==";
+        url = "https://registry.npmjs.org/@expo/json-file/-/json-file-8.2.28.tgz";
+        sha512 = "C28McDuCIOmCmp6e2ZgIpNaT/fZG+L3/WFv5x2DCrooOQmamrkLSH/4Dib0NUmLgWVhgIhXL2hU4RB+LjzVvkQ==";
       };
     };
-    "@expo/metro-config-0.1.59" = {
+    "@expo/metro-config-0.1.60" = {
       name = "_at_expo_slash_metro-config";
       packageName = "@expo/metro-config";
-      version = "0.1.59";
+      version = "0.1.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.59.tgz";
-        sha512 = "xg9ne3z9D2zjsS6rjdNnnvsljsgcqLdM4e3oc0dmn7Bq8q+rkbCDlm22w2d7NmFIykMMDAvJdpEhTO7Vqyu7Lg==";
+        url = "https://registry.npmjs.org/@expo/metro-config/-/metro-config-0.1.60.tgz";
+        sha512 = "aA/UMZ5ga1QfF9pN1rYvwTg7ez/Ptz6vSFWyOdYM00X+egKlQFDwe8UuMKiUZUHaLFJ3XbixMLTIvDVdnVxk7w==";
       };
     };
-    "@expo/osascript-2.0.24" = {
+    "@expo/osascript-2.0.25" = {
       name = "_at_expo_slash_osascript";
       packageName = "@expo/osascript";
-      version = "2.0.24";
+      version = "2.0.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.24.tgz";
-        sha512 = "oqar3vmvxkVx1OBG7hTjTbCaVVUX2o+aEMLxZWLUiubL0ly1qxgQKEt5p3g3pzkxTft+b1oMf8bT7jMi6iOv+Q==";
+        url = "https://registry.npmjs.org/@expo/osascript/-/osascript-2.0.25.tgz";
+        sha512 = "rB+RLHCp72q0OBWmisoBswfTpyzc91OJMs3UQVWJP9mXVNJhemONt7PKjE+FinBm33uH1HCC6U7JPGigpVsJBg==";
       };
     };
-    "@expo/package-manager-0.0.39-alpha.0" = {
+    "@expo/package-manager-0.0.39" = {
       name = "_at_expo_slash_package-manager";
       packageName = "@expo/package-manager";
-      version = "0.0.39-alpha.0";
+      version = "0.0.39";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.39-alpha.0.tgz";
-        sha512 = "NLd93cG7pVmJaoWeJZsTab6jOTMvgW0UZz3NGq2mf9jbxlJUEj9QIGF/tzt4dIhtfdDFd5FbEpGRidcE3jGdOg==";
+        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.39.tgz";
+        sha512 = "2KSx1jjdDmWsnkZfWZL4TwveeIyAcORQna5VOZdd+sBalK8taMtPQEdchwAGD4mOFsFFPmpbQHwboRfXoSlbOQ==";
       };
     };
-    "@expo/plist-0.0.11" = {
+    "@expo/plist-0.0.12" = {
       name = "_at_expo_slash_plist";
       packageName = "@expo/plist";
-      version = "0.0.11";
+      version = "0.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.11.tgz";
-        sha512 = "yza93QHDkbdkdwu/PXef0eJSCMkMNdrHujK5G1viZLaZt0Rxw2s+geTyjgJsYpwqQEAoOYVpKlVymOenK+bFQg==";
+        url = "https://registry.npmjs.org/@expo/plist/-/plist-0.0.12.tgz";
+        sha512 = "anGvLk58fxfeHY2PbtH79VxhrLDPGd+173pHYYXNg9HlfbrEVLI2Vo0ZBOrr/cYr7cgU5A/WNcMphRoO/KfYZQ==";
       };
     };
     "@expo/results-1.0.0" = {
@@ -2029,13 +2083,13 @@ let
         sha512 = "qECzzXX5oJot3m2Gu9pfRDz50USdBieQVwYAzeAtQRUTD3PVeTK1tlRUoDcrK8PSruDLuVYdKkLebX4w/o55VA==";
       };
     };
-    "@expo/schemer-1.3.27-alpha.0" = {
+    "@expo/schemer-1.3.27" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.3.27-alpha.0";
+      version = "1.3.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.27-alpha.0.tgz";
-        sha512 = "RJB1VCPROzfy4XFx79PLfz5WD5QvVSA6Xq2f6CUVyxOpWwpMyQfXA2vv3ebmLJYmr67OZDa26kn3fUxQLI4BHw==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.3.27.tgz";
+        sha512 = "cuCvSo6qErgK7OOM8CoCtCsVifq+WX1wUCeu+fmSyhnZcqnz45ZTK20Ghk5bT3OrTNQipbTiCjn9RCDrkEMMkg==";
       };
     };
     "@expo/simple-spinner-1.0.2" = {
@@ -2056,13 +2110,22 @@ let
         sha512 = "LB7jWkqrHo+5fJHNrLAFdimuSXQ2MQ4lA7SQW5bf/HbsXuV2VrT/jN/M8f/KoWt0uJMGN4k/j7Opx4AvOOxSew==";
       };
     };
-    "@expo/webpack-config-0.12.63" = {
+    "@expo/webpack-config-0.12.64" = {
       name = "_at_expo_slash_webpack-config";
       packageName = "@expo/webpack-config";
-      version = "0.12.63";
+      version = "0.12.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.63.tgz";
-        sha512 = "50hG1KeahBX88X7nhb+ZBL5wHSR6U9EDlHhmYXeGK4tQcNKsfONdieNOKoYKW7LgDr3mSSO+2j7SWfNbAGHEmw==";
+        url = "https://registry.npmjs.org/@expo/webpack-config/-/webpack-config-0.12.64.tgz";
+        sha512 = "STR9ctDYG36JUIjgcGClvsi3ZU55lc2jtIxf04+0TN8IVYOCoYTF3P971zA1dd3En/q//CpgtKX/UAoimdlL9A==";
+      };
+    };
+    "@expo/xcpretty-1.1.1" = {
+      name = "_at_expo_slash_xcpretty";
+      packageName = "@expo/xcpretty";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@expo/xcpretty/-/xcpretty-1.1.1.tgz";
+        sha512 = "YospUT3y7tPheNCW0SgzbDM8KzipuWukW/qxJRX1MnlgVb1wnnsvtBrY0z/ndRCBMlZFVUu+FkNfI0qDKo8YiA==";
       };
     };
     "@fast-csv/format-4.3.5" = {
@@ -2101,22 +2164,22 @@ let
         sha512 = "XqPS7l3YoMwxdNlaYF6S2Mp0K3FmVIOIy2K3YkMc+eRxu9wFK6emr2Q/3rBhtG5u/On37NExRT7/5CTLnoi9gw==";
       };
     };
-    "@fluentui/keyboard-key-0.2.14" = {
+    "@fluentui/keyboard-key-0.2.16" = {
       name = "_at_fluentui_slash_keyboard-key";
       packageName = "@fluentui/keyboard-key";
-      version = "0.2.14";
+      version = "0.2.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.14.tgz";
-        sha512 = "SMyoMFCPRNoDeHB5MMIi8W3loDxjXsSBeQfQaaKqmph7gVN48DCky6K/xBHHDJDeqJjcmEgwPTRP8qsuuLWnqw==";
+        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.16.tgz";
+        sha512 = "T4eQ0uqhbTScsoXVx10Tlp0C2RgNdAzlbe52qJ0Tn288/Nuztda5Z/aTCRd5Rp5MRYBycjAf4iNot6ZHAP864g==";
       };
     };
-    "@fluentui/react-7.165.1" = {
+    "@fluentui/react-7.165.2" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "7.165.1";
+      version = "7.165.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.165.1.tgz";
-        sha512 = "2l/481URLxucUxQBKsXgHXPKBkhQEpJCCpGjfWf3uWwPz3X5PNMy+pujyYN6Di2LLPOfdpLf5sWTNw+DJjy2jA==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.165.2.tgz";
+        sha512 = "Mj1Vv+qVIrQ0nCsHHF5zKq5FJsGfOc2eV0+ebEH3NC4CtKoZYGaoYcQsTS8/4Ft59KOeaU6CZtl4WPIflYaSWw==";
       };
     };
     "@fluentui/react-focus-7.17.6" = {
@@ -2326,13 +2389,13 @@ let
         sha512 = "KCWBXsDfvG46GNUawRltJL4j9BMGoOG7oo3WEyCQP+SByWXiTe5cBF45SLDVQgdjljGNZhZ4Lq/7avIkF7/zDQ==";
       };
     };
-    "@grpc/grpc-js-1.2.10" = {
+    "@grpc/grpc-js-1.2.11" = {
       name = "_at_grpc_slash_grpc-js";
       packageName = "@grpc/grpc-js";
-      version = "1.2.10";
+      version = "1.2.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.10.tgz";
-        sha512 = "wj6GkNiorWYaPiIZ767xImmw7avMMVUweTvPFg4mJWOxz2180DKwfuxhJJZ7rpc1+7D3mX/v8vJdxTuIo71Ieg==";
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.11.tgz";
+        sha512 = "DZqx3nHBm2OGY7NKq4sppDEfx4nBAsQH/d/H/yxo/+BwpVLWLGs+OorpwQ+Fqd6EgpDEoi4MhqndjGUeLl/5GA==";
       };
     };
     "@grpc/grpc-js-1.2.12" = {
@@ -2974,6 +3037,15 @@ let
         sha512 = "4BPgTSkhvxPI3tbjG4BPiBq0VuNZji1Y77DRWHb09GnzsrgwBI+gpo3EI6obkyIeRuN/03wzf98W5u1iau2vpQ==";
       };
     };
+    "@josephg/resolvable-1.0.0" = {
+      name = "_at_josephg_slash_resolvable";
+      packageName = "@josephg/resolvable";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.0.tgz";
+        sha512 = "OfTtjoqB2doov5aTJxkyAMK8dXoo7CjCUQSYUEtiY34jbWduOGV7+168tmCT8COMsUEd5DMSFg/0iAOPCBTNAQ==";
+      };
+    };
     "@jsdevtools/ono-7.1.3" = {
       name = "_at_jsdevtools_slash_ono";
       packageName = "@jsdevtools/ono";
@@ -2983,13 +3055,13 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsii/spec-1.26.0" = {
+    "@jsii/spec-1.27.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.26.0";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.26.0.tgz";
-        sha512 = "wh9Z/wfQYcWE5IgUfKNBYQ9Lhye9Xh/lsRsxMQluqEsgObNqb/8JreenWviqzHzBBcvTcHHyl+G30mpmyO1PWQ==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.27.0.tgz";
+        sha512 = "mdfSlcYY9qI3kI0rK1dAN13BkHtOffhFXzOwtuZvxjhz2+8hx6DpW5nqHAWCrq+ZQuPAPxiMOVXBsA58PZ9Ycg==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -3577,6 +3649,15 @@ let
         sha512 = "Qdqeox4APsYwAQQSO68D1p75DL9an1wS8b/51m+nH98unN4jbS5bvg22WQrg+TMq2/3Mg/E5zprqfUzJD84qgw==";
       };
     };
+    "@mdx-js/util-2.0.0-next.8" = {
+      name = "_at_mdx-js_slash_util";
+      packageName = "@mdx-js/util";
+      version = "2.0.0-next.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@mdx-js/util/-/util-2.0.0-next.8.tgz";
+        sha512 = "T0BcXmNzEunFkuxrO8BFw44htvTPuAoKbLvTG41otyZBDV1Rs+JMddcUuaP5vXpTWtgD3grhcrPEwyx88RUumQ==";
+      };
+    };
     "@medv/blessed-2.0.1" = {
       name = "_at_medv_slash_blessed";
       packageName = "@medv/blessed";
@@ -3586,13 +3667,22 @@ let
         sha512 = "/NdX1Ql8hKNM0vHFJnEr/bcw6BG0ULHD3HhInpniZw5ixpl+n/QIRfMEEmLCn7acedbM1zGdZvU5ZMbn9kcF5Q==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.153" = {
+    "@microsoft/load-themed-styles-1.10.155" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.153";
+      version = "1.10.155";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.153.tgz";
-        sha512 = "Rzc4FAYYyMbZN0TeTRcUN47H/8zXhoZUBcJd2eK/93ZNAitnWGXes0nHXVMFpn+pc9Ca/uq9rCOSURjJsmUrxw==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.155.tgz";
+        sha512 = "jXcfI934j2I6lFdja5fuz8BCAXX/W+bHo0eXNAnE1qQB1UPf31fvXT2XeqazqZP45G/XqwfrUu0zeflSadx6WQ==";
+      };
+    };
+    "@microsoft/load-themed-styles-1.10.156" = {
+      name = "_at_microsoft_slash_load-themed-styles";
+      packageName = "@microsoft/load-themed-styles";
+      version = "1.10.156";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.156.tgz";
+        sha512 = "MHEgmg/y+J4I/VT0j3hf0HQ4U+XFSHvPO5lNxD4wQN6Teo/aH1EBgy5B/CU5UrDxG+Rx06MboYtX4WfucrY4Og==";
       };
     };
     "@mitmaro/errors-1.0.0" = {
@@ -3640,13 +3730,13 @@ let
         sha512 = "Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==";
       };
     };
-    "@nestjs/schematics-7.3.0" = {
+    "@nestjs/schematics-7.3.1" = {
       name = "_at_nestjs_slash_schematics";
       packageName = "@nestjs/schematics";
-      version = "7.3.0";
+      version = "7.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.3.0.tgz";
-        sha512 = "yBlg3HV944CbbrXKFMZWs9KkMjIeBLcbgetZOjaiY2AUljwF4PyNoTbV6ulHLyt6ws9mMTPBYiEoF+7V05Lmcg==";
+        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.3.1.tgz";
+        sha512 = "eyBjJstAjecpdzRuBLiqnwomwXIAEV3+kPkpaphOieRUM6nBhjnXCCl3Qf8Dul2QUQK4NOVPd8FFxWtGP5XNlg==";
       };
     };
     "@netflix/nerror-1.1.3" = {
@@ -3658,13 +3748,13 @@ let
         sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
       };
     };
-    "@netlify/build-9.13.2" = {
+    "@netlify/build-10.2.4" = {
       name = "_at_netlify_slash_build";
       packageName = "@netlify/build";
-      version = "9.13.2";
+      version = "10.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/build/-/build-9.13.2.tgz";
-        sha512 = "XhTk7Wm/l+GpE+bw7zZQpPBKV3Jsxjo1k3qCkMO3sWufN+pKmm+Z4DFRLhAKE+Vbev0wMf52HGhXEheroM5M1w==";
+        url = "https://registry.npmjs.org/@netlify/build/-/build-10.2.4.tgz";
+        sha512 = "pBeG3DEjzOLLH6ajScaYMHL/RP+d4yD/U5lwhMVdOb75KJuuSIJ0XGxguBg/BAva7s7Y99jltQBUSR2m1O2UlA==";
       };
     };
     "@netlify/cache-utils-1.0.7" = {
@@ -3676,31 +3766,31 @@ let
         sha512 = "yrdrnQkzg/qMovoFYwQ24UVt/OyHtP+t0KpQFd7eBl6gnuuGGgxFocaFFv6eKpMVwzHTsOwx/y9B/FcC3/6cfA==";
       };
     };
-    "@netlify/config-4.3.0" = {
+    "@netlify/config-5.1.0" = {
       name = "_at_netlify_slash_config";
       packageName = "@netlify/config";
-      version = "4.3.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/config/-/config-4.3.0.tgz";
-        sha512 = "jS6u5Dm3asg8zF6cYNYWfvyH3+XB3dMMm0UpC/BOLrYuXKVjP6uiIoUoUI6IjIN7gxAcotTN6RKCA5jU2Ahy5w==";
+        url = "https://registry.npmjs.org/@netlify/config/-/config-5.1.0.tgz";
+        sha512 = "HScoMDm58zS5qOemD4ad0M+3GTt8hJbpLj/YVGGH1XTCMbIiL5L+w1sx6YDjBgf4J7Y1VKwMHSHgQhFPixrsIA==";
       };
     };
-    "@netlify/framework-info-3.2.0" = {
+    "@netlify/framework-info-3.2.1" = {
       name = "_at_netlify_slash_framework-info";
       packageName = "@netlify/framework-info";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-3.2.0.tgz";
-        sha512 = "wvyTzcRMtg4Qlzn8rAjx+k4UD42TLbZdpF7dNqnL4+cBPeS04X0tc7Jhan7aigwnmiKUw6nufhkN40TInpiC6g==";
+        url = "https://registry.npmjs.org/@netlify/framework-info/-/framework-info-3.2.1.tgz";
+        sha512 = "OL/RSLbi8qd2mQebktudz3Hws/xZwf0gCgNnM3jr+vp+l3ejQXmAQd6k5zH/a9EjZLWgUyUSeMIqIjDLJKaN8Q==";
       };
     };
-    "@netlify/functions-utils-1.3.21" = {
+    "@netlify/functions-utils-1.3.22" = {
       name = "_at_netlify_slash_functions-utils";
       packageName = "@netlify/functions-utils";
-      version = "1.3.21";
+      version = "1.3.22";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.21.tgz";
-        sha512 = "Pe6DGnmOx6a/RMWCHteODdk7qYZiv4svjLbs1Uit+N2ISRbPJmaKoRFYrsnLICr1Oldcnqp6mA7CoHEpKrMsSw==";
+        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.3.22.tgz";
+        sha512 = "MKamaR0k6wiWNgJtwhAsdiRtgLdTUfVz8n41/eS2V1CAFYzk3194tffaYHtKBMAXZUORjemWZnL7yr9vwUnlJg==";
       };
     };
     "@netlify/git-utils-1.0.8" = {
@@ -3730,13 +3820,13 @@ let
         sha512 = "7L5pkXlwPfyUrmm9cu2+nOQYW1FMx6waMbl2Uj5SmxjLz5Dvt2zkUYbNU2ImNmJ10mxziv3LABSFn2k2qy2nLw==";
       };
     };
-    "@netlify/plugins-list-2.5.0" = {
+    "@netlify/plugins-list-2.6.0" = {
       name = "_at_netlify_slash_plugins-list";
       packageName = "@netlify/plugins-list";
-      version = "2.5.0";
+      version = "2.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.5.0.tgz";
-        sha512 = "45BG3E6A+540BZDG4Dul5KmoOwzw+TwiwqQSP08bKiywWtyl3IDDFoozZRp+GjhRo1+CnNVN0L9FxdxvU82UDw==";
+        url = "https://registry.npmjs.org/@netlify/plugins-list/-/plugins-list-2.6.0.tgz";
+        sha512 = "XtBrsd4M0OW3RT9O7omqBhWevPoxVfkEX9BJ2Hv5J3gpujTN6IZEYmyprxhQ+Y98r4VvZVUX8dPzR99aF15YcQ==";
       };
     };
     "@netlify/run-utils-1.0.7" = {
@@ -3793,13 +3883,13 @@ let
         sha512 = "Tt37A8tyQcEw3h4YZ4g5/Cgqya4rf/BnweDjfwPDj0BFZmfjRSH8CIZvTJd2y+R2AvLJ1b89cXVYen9uwb2A9w==";
       };
     };
-    "@netlify/zip-it-and-ship-it-3.0.1" = {
+    "@netlify/zip-it-and-ship-it-3.1.0" = {
       name = "_at_netlify_slash_zip-it-and-ship-it";
       packageName = "@netlify/zip-it-and-ship-it";
-      version = "3.0.1";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-3.0.1.tgz";
-        sha512 = "Wh3ajSR1uhtYTFCYJoevFGSvykF0hUAJwwOETC8SMfkx4H1xJ1Zt7Bs1OZ1Ee1PayJDy7vQYBwdIeWTJPz8efw==";
+        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-3.1.0.tgz";
+        sha512 = "x8Qz2ufrpz+dfv/HY4s/Xiwux4B0A4KbXp+vDdbTU8TkrIIRD9LGdzuwlCGBhTCufAWim3wARhSIZBC6+0k69w==";
       };
     };
     "@node-red/editor-api-1.2.9" = {
@@ -4090,13 +4180,13 @@ let
         sha512 = "BpGYsPgJt05M7/L/5FoE1PiAbdxXFZkX/3kDYcsvd1v6UhlnE5e96dTDr0ezX/EFwciQxf3cNV0loipsURU+WA==";
       };
     };
-    "@octokit/core-3.3.1" = {
+    "@octokit/core-3.4.0" = {
       name = "_at_octokit_slash_core";
       packageName = "@octokit/core";
-      version = "3.3.1";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/core/-/core-3.3.1.tgz";
-        sha512 = "Dc5NNQOYjgZU5S1goN6A/E500yXOfDUFRGQB8/2Tl16AcfvS3H9PudyOe3ZNE/MaVyHPIfC0htReHMJb1tMrvw==";
+        url = "https://registry.npmjs.org/@octokit/core/-/core-3.4.0.tgz";
+        sha512 = "6/vlKPP8NF17cgYXqucdshWqmMZGXkuvtcrWCgU5NOI0Pl2GjlmZyWgBMrU8zJ3v2MJlM6++CiB45VKYmhiWWg==";
       };
     };
     "@octokit/endpoint-6.0.11" = {
@@ -4171,13 +4261,13 @@ let
         sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
       };
     };
-    "@octokit/plugin-rest-endpoint-methods-4.14.0" = {
+    "@octokit/plugin-rest-endpoint-methods-5.0.0" = {
       name = "_at_octokit_slash_plugin-rest-endpoint-methods";
       packageName = "@octokit/plugin-rest-endpoint-methods";
-      version = "4.14.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-4.14.0.tgz";
-        sha512 = "QoZ469GDvFALHuxhcRA4KFGTaPeu5Z0MILGPa7irTGfYE0WfL+LFqWmULm9tuFKaKNlTcEQ7c5uJ0p4k5uvmNQ==";
+        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.0.0.tgz";
+        sha512 = "Jc7CLNUueIshXT+HWt6T+M0sySPjF32mSFQAK7UfAg8qGeRI6OM1GSBxDLwbXjkqy2NVdnqCedJcP1nC785JYg==";
       };
     };
     "@octokit/request-5.4.14" = {
@@ -4216,13 +4306,13 @@ let
         sha512 = "ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==";
       };
     };
-    "@octokit/rest-18.4.0" = {
+    "@octokit/rest-18.5.2" = {
       name = "_at_octokit_slash_rest";
       packageName = "@octokit/rest";
-      version = "18.4.0";
+      version = "18.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/rest/-/rest-18.4.0.tgz";
-        sha512 = "3bFg0vyD3O+6EukYzLTu4tUapMofSR4nYgMEOJc25sefippsatiWfNoOnx0QNj3PIXVJdW0riUjQnDwgS0JNWA==";
+        url = "https://registry.npmjs.org/@octokit/rest/-/rest-18.5.2.tgz";
+        sha512 = "Kz03XYfKS0yYdi61BkL9/aJ0pP2A/WK5vF/syhu9/kY30J8He3P68hv9GRpn8bULFx2K0A9MEErn4v3QEdbZcw==";
       };
     };
     "@octokit/types-2.16.2" = {
@@ -4684,31 +4774,22 @@ let
         sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==";
       };
     };
-    "@pm2/agent-1.0.4" = {
+    "@pm2/agent-1.0.8" = {
       name = "_at_pm2_slash_agent";
       packageName = "@pm2/agent";
-      version = "1.0.4";
+      version = "1.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.4.tgz";
-        sha512 = "cZLwaoLa45FRuetKCcoI3kHnnQ7VMLpZnmVom04MoK0cpY/RxcSarkCHSCu9V+pdARwxx96QrWdrtAJdw97dng==";
+        url = "https://registry.npmjs.org/@pm2/agent/-/agent-1.0.8.tgz";
+        sha512 = "r8mud8BhBz+a2yjlgtk+PBXUR5EQ9UKSJCs232OxfCmuBr1MZw0Mo+Kfog6WJ8OmVk99r1so9yTUK4IyrgGcMQ==";
       };
     };
-    "@pm2/agent-node-1.1.10" = {
-      name = "_at_pm2_slash_agent-node";
-      packageName = "@pm2/agent-node";
-      version = "1.1.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@pm2/agent-node/-/agent-node-1.1.10.tgz";
-        sha512 = "xRcrk7OEwhS3d/227/kKGvxgmbIi6Yyp27FzGlFNermEKhgddmFaRnmd7GRLIsBM/KB28NrwflBZulzk/mma6g==";
-      };
-    };
-    "@pm2/io-4.3.5" = {
+    "@pm2/io-5.0.0" = {
       name = "_at_pm2_slash_io";
       packageName = "@pm2/io";
-      version = "4.3.5";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@pm2/io/-/io-4.3.5.tgz";
-        sha512 = "CY/a6Nw72vrlp/FPx38l4jfEHp4gNEbo8i+WlSJ2cnWO6VE6CKmnC1zb4yQLvdP8f3EuzzoOBZVq6aGN20M82Q==";
+        url = "https://registry.npmjs.org/@pm2/io/-/io-5.0.0.tgz";
+        sha512 = "3rToDVJaRoob5Lq8+7Q2TZFruoEkdORxwzFpZaqF4bmH6Bkd7kAbdPrI/z8X6k1Meq5rTtScM7MmDgppH6aLlw==";
       };
     };
     "@pm2/js-api-0.6.7" = {
@@ -4720,13 +4801,13 @@ let
         sha512 = "jiJUhbdsK+5C4zhPZNnyA3wRI01dEc6a2GhcQ9qI38DyIk+S+C8iC3fGjcjUbt/viLYKPjlAaE+hcT2/JMQPXw==";
       };
     };
-    "@pm2/pm2-version-check-1.0.3" = {
+    "@pm2/pm2-version-check-1.0.4" = {
       name = "_at_pm2_slash_pm2-version-check";
       packageName = "@pm2/pm2-version-check";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.3.tgz";
-        sha512 = "SBuYsh+o35knItbRW97vl5/5nEc5c5DYP7PxjyPLOfmm9bMaDsVeATXjXMBy6+KLlyrYWHZxGbfXe003NnHClg==";
+        url = "https://registry.npmjs.org/@pm2/pm2-version-check/-/pm2-version-check-1.0.4.tgz";
+        sha512 = "SXsM27SGH3yTWKc2fKR4SYNxsmnvuBQ9dd6QHtEWmiZ/VqaOYPAIlS8+vMcn27YLtAEBGvNRSh3TPNvtjZgfqA==";
       };
     };
     "@pmmmwh/react-refresh-webpack-plugin-0.3.3" = {
@@ -4738,13 +4819,13 @@ let
         sha512 = "uc6FmPEegAZawSHjUMFQwU7EjaDn7zy1iD/KD/wBROL9F4378OES8MKMYHoRAKT61Fk7LxVKZSDR5VespMQiqw==";
       };
     };
-    "@primer/octicons-11.2.0" = {
+    "@primer/octicons-12.1.0" = {
       name = "_at_primer_slash_octicons";
       packageName = "@primer/octicons";
-      version = "11.2.0";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-11.2.0.tgz";
-        sha512 = "a9ORJaeu7Kt0LCaawQy8S+ZVPDe1qXJvKZraX0b6R0KXkXjL519rpGUDRiGUlskuxEpVf2kmbVYfqGDDlMGLMg==";
+        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-12.1.0.tgz";
+        sha512 = "jayKLMTCx/0zh4fjYmkxdlEgQ8STwevn5S48fkvi/03asITmBkaYAMPrUgO8VNSQkSPHIEuc3oTLXgh+JwH0UQ==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -4918,13 +4999,13 @@ let
         sha512 = "yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==";
       };
     };
-    "@rollup/plugin-node-resolve-11.2.0" = {
+    "@rollup/plugin-node-resolve-11.2.1" = {
       name = "_at_rollup_slash_plugin-node-resolve";
       packageName = "@rollup/plugin-node-resolve";
-      version = "11.2.0";
+      version = "11.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.0.tgz";
-        sha512 = "qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA==";
+        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz";
+        sha512 = "yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==";
       };
     };
     "@rollup/pluginutils-3.1.0" = {
@@ -4963,31 +5044,31 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-11.2.6" = {
+    "@schematics/angular-11.2.7" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "11.2.6";
+      version = "11.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.6.tgz";
-        sha512 = "NUtoX6Dfo2mUWVHt2zXEtlBsz88mo9N9fIPFAEpSY6U9x/jGSs+4rZ6sGRpkqm5UgVtYHzRyQINH7608HuGUuA==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-11.2.7.tgz";
+        sha512 = "LI6FkFHmwS/MCt+QENpGT/xl1Y6RMvcDqQ/efbZ3qz2W+0W0DkaPSlDmVbbNzgol+eJ7eHx4kmJr2U2r9ZOQgg==";
       };
     };
-    "@schematics/schematics-0.1102.0" = {
+    "@schematics/schematics-0.1102.6" = {
       name = "_at_schematics_slash_schematics";
       packageName = "@schematics/schematics";
-      version = "0.1102.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.1102.0.tgz";
-        sha512 = "0mN6qGnI31GVNYAKDdZ6ISiJMtN8Z0rekpJ/xNHK/lDNl/QkoJVBHDf68oEcNE8dvWMq86ULpznCdT1IBQ7YFA==";
-      };
-    };
-    "@schematics/update-0.1102.6" = {
-      name = "_at_schematics_slash_update";
-      packageName = "@schematics/update";
       version = "0.1102.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1102.6.tgz";
-        sha512 = "JJ9pwGWI5NfwK7d09uQ6zHV63Ms+8r0NsvJHjZlHFlolY04J6yFe0X7TF7/mcjKsaVKCjYIpe5VuTeam/wk5QQ==";
+        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.1102.6.tgz";
+        sha512 = "x77kbJL/HqR4gx0tbt35VCOGLyMvB7jD/x7eB1njhQRF8E/xynEOk3i+7A5VmK67QP5NJxU8BQKlPkJ55tBDmg==";
+      };
+    };
+    "@schematics/update-0.1102.7" = {
+      name = "_at_schematics_slash_update";
+      packageName = "@schematics/update";
+      version = "0.1102.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1102.7.tgz";
+        sha512 = "aSuG4VtGlcEGNIhcRS+99Sbhs+IRJn1JLOG1rWV5U5d40M/kLDsNx5O5JCXE062ga209sJc++sgLXRXn5yrEiQ==";
       };
     };
     "@segment/loosely-validate-event-2.0.0" = {
@@ -5017,13 +5098,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-3.7.7" = {
+    "@serverless/components-3.8.1" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "3.7.7";
+      version = "3.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-3.7.7.tgz";
-        sha512 = "GMo0wOyrfMiekRKZuOI046bxinM/cSsAkLivaT6J0rAG6DV+C8yZHLis5090kya50XndidiSdfshlaP0lv21lQ==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-3.8.1.tgz";
+        sha512 = "GgIsO/8fKz4tS6y7W4j90EHacyR3XkssVQncEpMt4e8gfAlr3JZBZVka2fO29Ehhx3xYxqDDWBkcVKRzPf8Iaw==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -5035,13 +5116,13 @@ let
         sha512 = "PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ==";
       };
     };
-    "@serverless/enterprise-plugin-4.5.2" = {
+    "@serverless/enterprise-plugin-4.5.3" = {
       name = "_at_serverless_slash_enterprise-plugin";
       packageName = "@serverless/enterprise-plugin";
-      version = "4.5.2";
+      version = "4.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-4.5.2.tgz";
-        sha512 = "Y/7WK0BAL7oVK3QDV9nL1qUKTC4p/gKWI8W1Ozp+P4RA9RPIqDHmdqmu8Uhc/rUS0nD64LijfLlapeXq2qITVg==";
+        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-4.5.3.tgz";
+        sha512 = "/JwlHoBSmxP8bAaWD3dIGePkJU1sLRHhEgvMyXuDo9i9tN5D6kyZypM2GUVNx4MpUR/XPJtCUgCSp5xI4aSsxg==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -5098,13 +5179,13 @@ let
         sha512 = "HhmnTtfGt4gKCNGHg0q9pioltChh+dWbdA7y1aP7vNqjwpZ/pUDAqJf/M3GFozTnhlFpwCY9Ik1tOpDkgP3oiA==";
       };
     };
-    "@serverless/utils-4.0.0" = {
+    "@serverless/utils-4.0.1" = {
       name = "_at_serverless_slash_utils";
       packageName = "@serverless/utils";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils/-/utils-4.0.0.tgz";
-        sha512 = "SNLjh3qFnKvqZZAljTHY9IuoS+UZytBqfAki+V5DsVjXEKZrAKzem1kpKF2zeARg8tHFDProM0LGFCxGDkkgxw==";
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-4.0.1.tgz";
+        sha512 = "3/+Tw/kcIpBlrPyN244Ci7IZXVhGH9WLiLZcSwL0U96g0QQBofIGbv5v2h3Q6J4rBpPUOiZJcabJc7cIvlcP6Q==";
       };
     };
     "@serverless/utils-china-1.0.14" = {
@@ -5116,6 +5197,33 @@ let
         sha512 = "7ku9ePjb+bneFV1Akmz0t8pU8hhHfPJsBjG/Kf6IjyGAQrEjN/PcY2QUDm0emdCNyCsuido1wp0DWMGiwuhC8Q==";
       };
     };
+    "@sideway/address-4.1.1" = {
+      name = "_at_sideway_slash_address";
+      packageName = "@sideway/address";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sideway/address/-/address-4.1.1.tgz";
+        sha512 = "+I5aaQr3m0OAmMr7RQ3fR9zx55sejEYR2BFJaxL+zT3VM2611X0SHvPWIbAUBZVTn/YzYKbV8gJ2oT/QELknfQ==";
+      };
+    };
+    "@sideway/formula-3.0.0" = {
+      name = "_at_sideway_slash_formula";
+      packageName = "@sideway/formula";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sideway/formula/-/formula-3.0.0.tgz";
+        sha512 = "vHe7wZ4NOXVfkoRb8T5otiENVlT7a3IAiw7H5M2+GO+9CDgcVUUsX1zalAztCmwyOr2RUTGJdgB+ZvSVqmdHmg==";
+      };
+    };
+    "@sideway/pinpoint-2.0.0" = {
+      name = "_at_sideway_slash_pinpoint";
+      packageName = "@sideway/pinpoint";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sideway/pinpoint/-/pinpoint-2.0.0.tgz";
+        sha512 = "RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==";
+      };
+    };
     "@sindresorhus/is-0.14.0" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
@@ -5170,13 +5278,13 @@ let
         sha512 = "ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==";
       };
     };
-    "@sindresorhus/transliterate-0.1.1" = {
+    "@sindresorhus/transliterate-0.1.2" = {
       name = "_at_sindresorhus_slash_transliterate";
       packageName = "@sindresorhus/transliterate";
-      version = "0.1.1";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.1.tgz";
-        sha512 = "QSdIQ5keUFAZ3KLbfbsntW39ox0Ym8183RqTwBq/ZEFoN3NQAtGV+qWaNdzKpIDHgj9J2CQ2iNDRVU11Zyr7MQ==";
+        url = "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz";
+        sha512 = "5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==";
       };
     };
     "@skorfmann/ink-confirm-input-3.0.0" = {
@@ -5224,13 +5332,13 @@ let
         sha512 = "ca2JKOnSRzYHJkhOB9gYmdRZHmd02b/uBd/S0D5W+L9nIMS7sUBV5jfhKwVgrYPIpVNIc0XCI9rxK4TfkQRpiA==";
       };
     };
-    "@snyk/code-client-3.1.5" = {
+    "@snyk/code-client-3.4.0" = {
       name = "_at_snyk_slash_code-client";
       packageName = "@snyk/code-client";
-      version = "3.1.5";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/code-client/-/code-client-3.1.5.tgz";
-        sha512 = "bJb00zZ7956MzIjW/4DPaMolk2/r7eox+5Bvq0bpcu1NFUFYYQPZeEPsPgh5YzK4te2v6W5hZBtjUUNIY+AQYg==";
+        url = "https://registry.npmjs.org/@snyk/code-client/-/code-client-3.4.0.tgz";
+        sha512 = "RY2IftAiWB7tp36Mcq7WiEwqoD8A/mqrD6N7oDWTxBOIqsH0t4djo/UibiWDJotaffO9aXXndOf3iZ/kTt+Rdg==";
       };
     };
     "@snyk/composer-lockfile-parser-1.4.1" = {
@@ -5269,6 +5377,15 @@ let
         sha512 = "E/Pfdze/WFfxwyuTFcfhQN1SwyUsc43yuCoW63RVBCaxTD6OzhVD2Pvc/Sy7BjiWUfmelzyKkIBpoow8zZX7Zg==";
       };
     };
+    "@snyk/fix-1.518.0" = {
+      name = "_at_snyk_slash_fix";
+      packageName = "@snyk/fix";
+      version = "1.518.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/fix/-/fix-1.518.0.tgz";
+        sha512 = "Cwh0wU8SxZgx1+qRgcGkMctNx9F6UCdUJYcCvKaYJNDEYQwpQat4nsLZsJeODYNx7Byh0ZnPrqakUck4qFrPvA==";
+      };
+    };
     "@snyk/gemfile-1.2.0" = {
       name = "_at_snyk_slash_gemfile";
       packageName = "@snyk/gemfile";
@@ -5323,6 +5440,15 @@ let
         sha512 = "NX8bpIu7oG5cuSSm6WvtxqcCuJs2gRjtKhtuSeF1p5TYXyESs3FXQ0nHjfY90LiyTTc+PW/UBq6SKbBA6bCBww==";
       };
     };
+    "@snyk/mix-parser-1.1.1" = {
+      name = "_at_snyk_slash_mix-parser";
+      packageName = "@snyk/mix-parser";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/mix-parser/-/mix-parser-1.1.1.tgz";
+        sha512 = "KmX4Le+1M01m6kM2UeDColzMZctrSqoMGajqcRHR3dLpCyHE3nzZzPeOWjbUVgjQlTX07oQvq9udSJGZJ/+Gdg==";
+      };
+    };
     "@snyk/rpm-parser-2.2.1" = {
       name = "_at_snyk_slash_rpm-parser";
       packageName = "@snyk/rpm-parser";
@@ -5350,6 +5476,15 @@ let
         sha512 = "hiFiSmWGLc2tOI7FfgIhVdFzO2f69im8O6p3OV4xEZ/Ss1l58vwtqudItoswsk7wj/azRlgfBW8wGu2MjoudQg==";
       };
     };
+    "@snyk/snyk-hex-plugin-1.0.0" = {
+      name = "_at_snyk_slash_snyk-hex-plugin";
+      packageName = "@snyk/snyk-hex-plugin";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@snyk/snyk-hex-plugin/-/snyk-hex-plugin-1.0.0.tgz";
+        sha512 = "ZydVdZ5kDpPDoehQnNHN3wZ6c470k5DPLJtWMoyfzlnCU2+y1rsUEdn4yhttn60RPx3JiLGwmckeDvZw8BqnGQ==";
+      };
+    };
     "@starptech/expression-parser-0.10.0" = {
       name = "_at_starptech_slash_expression-parser";
       packageName = "@starptech/expression-parser";
@@ -5647,6 +5782,24 @@ let
         sha512 = "Z6DoceYb/1xSg5+e+ZlPZ9v0N16ZvZ+wYMraFue4HYrE4ttONKtsvruIRf6t9TBR0YvSOfi1hUU0fJfBLCDYow==";
       };
     };
+    "@turist/fetch-7.1.7" = {
+      name = "_at_turist_slash_fetch";
+      packageName = "@turist/fetch";
+      version = "7.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@turist/fetch/-/fetch-7.1.7.tgz";
+        sha512 = "XP20kvfyMNlWdPVQXyuzA40LoCHbbJptikt7W+TlZ5sS+NNjk70xjXCtHBLEudp7li3JldXEFSIUzpW1a0WEhA==";
+      };
+    };
+    "@turist/time-0.0.1" = {
+      name = "_at_turist_slash_time";
+      packageName = "@turist/time";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@turist/time/-/time-0.0.1.tgz";
+        sha512 = "M2BiThcbxMxSKX8W4z5u9jKZn6datnM3+FpEU+eYw0//l31E2xhqi7vTAuJ/Sf0P3yhp66SDJgPu3bRRpvrdQQ==";
+      };
+    };
     "@types/accepts-1.3.5" = {
       name = "_at_types_slash_accepts";
       packageName = "@types/accepts";
@@ -5674,6 +5827,15 @@ let
         sha512 = "baFOhanb/hxmcOd1Uey2TfFg43kTSmM6py1Eo7Rjbv/ivcl7PXLhY0QgXGf50Hx/eskGCFqPfhs/7IZLb15C5g==";
       };
     };
+    "@types/atob-2.1.2" = {
+      name = "_at_types_slash_atob";
+      packageName = "@types/atob";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/atob/-/atob-2.1.2.tgz";
+        sha512 = "8GAYQ1jDRUQkSpHzJUqXwAkYFOxuWAOGLhIR4aPd/Y/yL12Q/9m7LsKpHKlfKdNE/362Hc9wPI1Yh6opDfxVJg==";
+      };
+    };
     "@types/babel-types-7.0.9" = {
       name = "_at_types_slash_babel-types";
       packageName = "@types/babel-types";
@@ -5791,6 +5953,15 @@ let
         sha512 = "d/aS/lPOnUSruPhgNtT8jW39fHRVTLQy9sodysP1kkG8EdAtdZu1vt8NJaYA8w/6Z9j8izkAsx1A/yJhcYR1CA==";
       };
     };
+    "@types/common-tags-1.8.0" = {
+      name = "_at_types_slash_common-tags";
+      packageName = "@types/common-tags";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/common-tags/-/common-tags-1.8.0.tgz";
+        sha512 = "htRqZr5qn8EzMelhX/Xmx142z218lLyGaeZ3YR8jlze4TATRU9huKKvuBmAJEW4LCC4pnY1N6JAm6p85fMHjhg==";
+      };
+    };
     "@types/component-emitter-1.2.10" = {
       name = "_at_types_slash_component-emitter";
       packageName = "@types/component-emitter";
@@ -5908,6 +6079,15 @@ let
         sha512 = "kM2g9Fdk/du24fKuuQhA/LBleFR4Z4JP2MVKpLxQQSzofF1uJ06D+c05zfLDAkkDO55aEeNwJih0gHrE/Ci20A==";
       };
     };
+    "@types/emscripten-1.39.4" = {
+      name = "_at_types_slash_emscripten";
+      packageName = "@types/emscripten";
+      version = "1.39.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.4.tgz";
+        sha512 = "k3LLVMFrdNA9UCvMDPWMbFrGPNb+GcPyw29ktJTo1RCN7RmxFG5XzPZcPKRlnLuLT/FRm8wp4ohvDwNY7GlROQ==";
+      };
+    };
     "@types/engine.io-3.1.5" = {
       name = "_at_types_slash_engine.io";
       packageName = "@types/engine.io";
@@ -5917,13 +6097,13 @@ let
         sha512 = "DLVpLEGTEZGBXOYoYoagHSxXkDHONc0fZouF2ayw7Q18aRu1Afwci+1CFKvPpouCUOVWP+dmCaAWpQjswe7kpg==";
       };
     };
-    "@types/eslint-7.2.7" = {
+    "@types/eslint-7.2.8" = {
       name = "_at_types_slash_eslint";
       packageName = "@types/eslint";
-      version = "7.2.7";
+      version = "7.2.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.7.tgz";
-        sha512 = "EHXbc1z2GoQRqHaAT7+grxlTJ3WE2YNeD6jlpPoRc83cCoThRY+NUWjCUZaYmk51OICkPXn2hhphcWcWXgNW0Q==";
+        url = "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.8.tgz";
+        sha512 = "RTKvBsfz0T8CKOGZMfuluDNyMFHnu5lvNr4hWEsQeHXH6FcmIDIozOyWMh36nLGMwVd5UFNXC2xztA8lln22MQ==";
       };
     };
     "@types/eslint-scope-3.7.0" = {
@@ -5953,15 +6133,6 @@ let
         sha512 = "EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==";
       };
     };
-    "@types/estree-0.0.45" = {
-      name = "_at_types_slash_estree";
-      packageName = "@types/estree";
-      version = "0.0.45";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz";
-        sha512 = "jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==";
-      };
-    };
     "@types/estree-0.0.46" = {
       name = "_at_types_slash_estree";
       packageName = "@types/estree";
@@ -5998,15 +6169,6 @@ let
         sha512 = "wLhcKh3PMlyA2cNAB9sjM1BntnhPMiM0JOBwPBqttjHev2428MLEB4AYVN+d8s2iyCVZac+o41Pflm/ZH5vLXQ==";
       };
     };
-    "@types/express-serve-static-core-4.17.18" = {
-      name = "_at_types_slash_express-serve-static-core";
-      packageName = "@types/express-serve-static-core";
-      version = "4.17.18";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz";
-        sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==";
-      };
-    };
     "@types/express-serve-static-core-4.17.19" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
@@ -6475,13 +6637,13 @@ let
         sha512 = "fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==";
       };
     };
-    "@types/node-10.17.55" = {
+    "@types/node-10.17.56" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.55";
+      version = "10.17.56";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.55.tgz";
-        sha512 = "koZJ89uLZufDvToeWO5BrC4CR4OUfHnUz2qoPs/daQH6qq3IN62QFxCTZ+bKaCE0xaoCAJYE4AXre8AbghCrhg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.56.tgz";
+        sha512 = "LuAa6t1t0Bfw4CuSR0UITsm1hP17YL+u82kfHGrHUWdhlBtH7sa7jGY5z7glGaIj/WDYDkRtgGd+KCjCzxBW1w==";
       };
     };
     "@types/node-12.12.70" = {
@@ -6493,13 +6655,13 @@ let
         sha512 = "i5y7HTbvhonZQE+GnUM2rz1Bi8QkzxdQmEv1LKOv4nWyaQk/gdeiTApuQR3PDJHX7WomAbpx2wlWSEpxXGZ/UQ==";
       };
     };
-    "@types/node-13.13.47" = {
+    "@types/node-13.13.48" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.47";
+      version = "13.13.48";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.47.tgz";
-        sha512 = "R6851wTjN1YJza8ZIeX6puNBSi/ZULHVh4WVleA7q256l+cP2EtXnKbO455fTs2ytQk3dL9qkU+Wh8l/uROdKg==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.48.tgz";
+        sha512 = "z8wvSsgWQzkr4sVuMEEOvwMdOQjiRY2Y/ZW4fDfjfe3+TfQrZqFKOthBgk2RnVEmtOKrkwdZ7uTvsxTBLjKGDQ==";
       };
     };
     "@types/node-14.11.1" = {
@@ -6511,15 +6673,6 @@ let
         sha512 = "oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw==";
       };
     };
-    "@types/node-14.14.32" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "14.14.32";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.14.32.tgz";
-        sha512 = "/Ctrftx/zp4m8JOujM5ZhwzlWLx22nbQJiVqz8/zE15gOeEW+uly3FSX4fGFpcfEvFzXcMCJwq9lGVWgyARXhg==";
-      };
-    };
     "@types/node-14.14.35" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -6529,6 +6682,15 @@ let
         sha512 = "Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==";
       };
     };
+    "@types/node-14.14.37" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.14.37";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz";
+        sha512 = "XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==";
+      };
+    };
     "@types/node-6.14.13" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -6565,13 +6727,13 @@ let
         sha512 = "o2WVNf5UhWRkxlf6eq+jMZDu7kjgpgJfl4xVNlvryc95O/6F2ld8ztKX+qu+Rjyet93WAWm5LjeX9H5FGkODvw==";
       };
     };
-    "@types/node-fetch-2.5.8" = {
+    "@types/node-fetch-2.5.9" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
-      version = "2.5.8";
+      version = "2.5.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.8.tgz";
-        sha512 = "fbjI6ja0N5ZA8TV53RUqzsKNkl9fv8Oj3T7zxW7FGv1GSH7gwJaNF8dzCjrqKaxKeUpTz4yT1DaJFq/omNpGfw==";
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.9.tgz";
+        sha512 = "6cUyqLK+JBsATAqNQqk10jURoBFrzfRCDh4kaYxg8ivKhRPIpyBgAvuY7zM/3E4AwsYJSh5HCHBCJRM4DsCTaQ==";
       };
     };
     "@types/normalize-package-data-2.4.0" = {
@@ -6655,6 +6817,15 @@ let
         sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
+    "@types/readable-stream-2.3.9" = {
+      name = "_at_types_slash_readable-stream";
+      packageName = "@types/readable-stream";
+      version = "2.3.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz";
+        sha512 = "sqsgQqFT7HmQz/V5jH1O0fvQQnXAJO46Gg9LRO/JPfjmVmGUlcx831TZZO3Y3HtWhIkzf3kTsNT0Z0kzIhIvZw==";
+      };
+    };
     "@types/request-2.48.5" = {
       name = "_at_types_slash_request";
       packageName = "@types/request";
@@ -6736,6 +6907,15 @@ let
         sha512 = "41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==";
       };
     };
+    "@types/semver-7.3.4" = {
+      name = "_at_types_slash_semver";
+      packageName = "@types/semver";
+      version = "7.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz";
+        sha512 = "+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==";
+      };
+    };
     "@types/serve-static-1.13.9" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
@@ -6799,13 +6979,13 @@ let
         sha512 = "kdU8ydio1weSvhIIh9rptZ6MdMiR2NQGFnlnZ5qQ7OiQS1ej79zK4GaJ9qX3naSTpOA7iWqwUnZCQpd7SpD1NA==";
       };
     };
-    "@types/tapable-1.0.6" = {
+    "@types/tapable-1.0.7" = {
       name = "_at_types_slash_tapable";
       packageName = "@types/tapable";
-      version = "1.0.6";
+      version = "1.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz";
-        sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.7.tgz";
+        sha512 = "0VBprVqfgFD7Ehb2vd8Lh9TG3jP98gvr8rgehQqzztZNI7o8zS8Ad4jyZneKELphpuE212D8J70LnSNQSyO6bQ==";
       };
     };
     "@types/text-table-0.2.1" = {
@@ -6835,6 +7015,15 @@ let
         sha512 = "I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==";
       };
     };
+    "@types/treeify-1.0.0" = {
+      name = "_at_types_slash_treeify";
+      packageName = "@types/treeify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/treeify/-/treeify-1.0.0.tgz";
+        sha512 = "ONpcZAEYlbPx4EtJwfTyCDQJGUpKf4sEcuySdCVjK5Fj/3vHp5HII1fqa1/+qrsLnpYELCQTfVW/awsGJePoIg==";
+      };
+    };
     "@types/uglify-js-3.13.0" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
@@ -6889,22 +7078,22 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/vscode-1.54.0" = {
+    "@types/vscode-1.55.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.54.0";
+      version = "1.55.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.54.0.tgz";
-        sha512 = "sHHw9HG4bTrnKhLGgmEiOS88OLO/2RQytUN4COX9Djv81zc0FSZsSiYaVyjNidDzUSpXsySKBkZ31lk2/FbdCg==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.55.0.tgz";
+        sha512 = "49hysH7jneTQoSC8TWbAi7nKK9Lc5osQNjmDHVosrcU8o3jecD9GrK0Qyul8q4aGPSXRfNGqIp9CBdb13akETg==";
       };
     };
-    "@types/webpack-4.41.26" = {
+    "@types/webpack-4.41.27" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.26";
+      version = "4.41.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz";
-        sha512 = "7ZyTfxjCRwexh+EJFwRUM+CDB2XvgHl4vfuqf1ZKrgGvcS5BrNvPQqJh3tsZ0P6h6Aa1qClVHaJZszLPzpqHeA==";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.27.tgz";
+        sha512 = "wK/oi5gcHi72VMTbOaQ70VcDxSQ1uX8S2tukBK9ARuGXrYM/+u4ou73roc7trXDNmCxCoerE8zruQqX/wuHszA==";
       };
     };
     "@types/webpack-sources-2.1.0" = {
@@ -6934,6 +7123,15 @@ let
         sha512 = "Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw==";
       };
     };
+    "@types/ws-7.4.1" = {
+      name = "_at_types_slash_ws";
+      packageName = "@types/ws";
+      version = "7.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.4.1.tgz";
+        sha512 = "ISCK1iFnR+jYv7+jLNX0wDqesZ/5RAeY3wUx6QaphmocphU61h+b+PHjS18TF4WIPTu/MMzxIq2PHr32o2TS5Q==";
+      };
+    };
     "@types/yargs-13.0.11" = {
       name = "_at_types_slash_yargs";
       packageName = "@types/yargs";
@@ -6979,13 +7177,13 @@ let
         sha512 = "S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==";
       };
     };
-    "@typescript-eslint/eslint-plugin-4.19.0" = {
+    "@typescript-eslint/eslint-plugin-4.21.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "4.19.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.19.0.tgz";
-        sha512 = "CRQNQ0mC2Pa7VLwKFbrGVTArfdVDdefS+gTw0oC98vSI98IX5A8EVH4BzJ2FOB0YlCmm8Im36Elad/Jgtvveaw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.21.0.tgz";
+        sha512 = "FPUyCPKZbVGexmbCFI3EQHzCZdy2/5f+jv6k2EDljGdXSRc0cKvbndd2nHZkSLqCNOPk0jB6lGzwIkglXcYVsQ==";
       };
     };
     "@typescript-eslint/experimental-utils-3.10.1" = {
@@ -6997,13 +7195,13 @@ let
         sha512 = "DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==";
       };
     };
-    "@typescript-eslint/experimental-utils-4.19.0" = {
+    "@typescript-eslint/experimental-utils-4.21.0" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "4.19.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.19.0.tgz";
-        sha512 = "9/23F1nnyzbHKuoTqFN1iXwN3bvOm/PRIXSBR3qFAYotK/0LveEOHr5JT1WZSzcD6BESl8kPOG3OoDRKO84bHA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.21.0.tgz";
+        sha512 = "cEbgosW/tUFvKmkg3cU7LBoZhvUs+ZPVM9alb25XvR0dal4qHL3SiUqHNrzoWSxaXA9gsifrYrS1xdDV6w/gIA==";
       };
     };
     "@typescript-eslint/parser-3.10.1" = {
@@ -7015,22 +7213,22 @@ let
         sha512 = "Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==";
       };
     };
-    "@typescript-eslint/parser-4.19.0" = {
+    "@typescript-eslint/parser-4.21.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "4.19.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.19.0.tgz";
-        sha512 = "/uabZjo2ZZhm66rdAu21HA8nQebl3lAIDcybUoOxoI7VbZBYavLIwtOOmykKCJy+Xq6Vw6ugkiwn8Js7D6wieA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.21.0.tgz";
+        sha512 = "eyNf7QmE5O/l1smaQgN0Lj2M/1jOuNg2NrBm1dqqQN0sVngTLyw8tdCbih96ixlhbF1oINoN8fDCyEH9SjLeIA==";
       };
     };
-    "@typescript-eslint/scope-manager-4.19.0" = {
+    "@typescript-eslint/scope-manager-4.21.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "4.19.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.19.0.tgz";
-        sha512 = "GGy4Ba/hLXwJXygkXqMzduqOMc+Na6LrJTZXJWVhRrSuZeXmu8TAnniQVKgj8uTRKe4igO2ysYzH+Np879G75g==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.21.0.tgz";
+        sha512 = "kfOjF0w1Ix7+a5T1knOw00f7uAP9Gx44+OEsNQi0PvvTPLYeXJlsCJ4tYnDj5PQEYfpcgOH5yBlw7K+UEI9Agw==";
       };
     };
     "@typescript-eslint/types-3.10.1" = {
@@ -7042,13 +7240,13 @@ let
         sha512 = "+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==";
       };
     };
-    "@typescript-eslint/types-4.19.0" = {
+    "@typescript-eslint/types-4.21.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "4.19.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.19.0.tgz";
-        sha512 = "A4iAlexVvd4IBsSTNxdvdepW0D4uR/fwxDrKUa+iEY9UWvGREu2ZyB8ylTENM1SH8F7bVC9ac9+si3LWNxcBuA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.21.0.tgz";
+        sha512 = "+OQaupjGVVc8iXbt6M1oZMwyKQNehAfLYJJ3SdvnofK2qcjfor9pEM62rVjBknhowTkh+2HF+/KdRAc/wGBN2w==";
       };
     };
     "@typescript-eslint/typescript-estree-2.34.0" = {
@@ -7069,13 +7267,13 @@ let
         sha512 = "QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==";
       };
     };
-    "@typescript-eslint/typescript-estree-4.19.0" = {
+    "@typescript-eslint/typescript-estree-4.21.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "4.19.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.19.0.tgz";
-        sha512 = "3xqArJ/A62smaQYRv2ZFyTA+XxGGWmlDYrsfZG68zJeNbeqRScnhf81rUVa6QG4UgzHnXw5VnMT5cg75dQGDkA==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.21.0.tgz";
+        sha512 = "ZD3M7yLaVGVYLw4nkkoGKumb7Rog7QID9YOWobFDMQKNl+vPxqVIW/uDk+MDeGc+OHcoG2nJ2HphwiPNajKw3w==";
       };
     };
     "@typescript-eslint/visitor-keys-3.10.1" = {
@@ -7087,13 +7285,13 @@ let
         sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
       };
     };
-    "@typescript-eslint/visitor-keys-4.19.0" = {
+    "@typescript-eslint/visitor-keys-4.21.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "4.19.0";
+      version = "4.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.19.0.tgz";
-        sha512 = "aGPS6kz//j7XLSlgpzU2SeTqHPsmRYxFztj2vPuMMFJXZudpRSehE3WCV+BaxwZFvfAqMoSd86TEuM0PQ59E/A==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.21.0.tgz";
+        sha512 = "dH22dROWGi5Z6p+Igc8bLVLmwy7vEe8r+8c+raPQU0LxgogPUrRAtRGtvBWmlr9waTu3n+QLt/qrS/hWzk1x5w==";
       };
     };
     "@uifabric/foundation-7.9.26" = {
@@ -7231,31 +7429,31 @@ let
         sha512 = "GIh+ETKezlmEWmZ/MxKuuJqdfSgYk8DlnIsMnNpbUcdxhHZFbkV2mv/0UoQaH2y0BQhBXBOt9TBJ9j4OeN3DwA==";
       };
     };
-    "@vue/compiler-core-3.0.7" = {
+    "@vue/compiler-core-3.0.11" = {
       name = "_at_vue_slash_compiler-core";
       packageName = "@vue/compiler-core";
-      version = "3.0.7";
+      version = "3.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.7.tgz";
-        sha512 = "JFohgBXoyUc3mdeI2WxlhjQZ5fakfemJkZHX8Gu/nFbEg3+lKVUZmNKWmmnp9aOzJQZKoj77LjmFxiP+P+7lMQ==";
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.11.tgz";
+        sha512 = "6sFj6TBac1y2cWCvYCA8YzHJEbsVkX7zdRs/3yK/n1ilvRqcn983XvpBbnN3v4mZ1UiQycTvOiajJmOgN9EVgw==";
       };
     };
-    "@vue/compiler-dom-3.0.7" = {
+    "@vue/compiler-dom-3.0.11" = {
       name = "_at_vue_slash_compiler-dom";
       packageName = "@vue/compiler-dom";
-      version = "3.0.7";
+      version = "3.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.7.tgz";
-        sha512 = "VnIH9EbWQm/Tkcp+8dCaNVsVvhm/vxCrIKWRkXY9215hTqOqQOvejT8IMjd2kc++nIsYMsdQk6H9qqBvoLe/Cw==";
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.11.tgz";
+        sha512 = "+3xB50uGeY5Fv9eMKVJs2WSRULfgwaTJsy23OIltKgMrynnIj8hTYY2UL97HCoz78aDw1VDXdrBQ4qepWjnQcw==";
       };
     };
-    "@vue/shared-3.0.7" = {
+    "@vue/shared-3.0.11" = {
       name = "_at_vue_slash_shared";
       packageName = "@vue/shared";
-      version = "3.0.7";
+      version = "3.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.7.tgz";
-        sha512 = "dn5FyfSc4ky424jH4FntiHno7Ss5yLkqKNmM/NXwANRnlkmqu74pnGetexDFVG5phMk9/FhwovUZCWGxsotVKg==";
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.11.tgz";
+        sha512 = "b+zB8A2so8eCE0JsxjL24J7vdGl8rzPQ09hZNhystm+KqSbKcAej1A+Hbva1rCMmTTqA+hFnUSDc5kouEo0JzA==";
       };
     };
     "@webassemblyjs/ast-1.11.0" = {
@@ -7285,15 +7483,6 @@ let
         sha512 = "C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==";
       };
     };
-    "@webassemblyjs/ast-1.9.1" = {
-      name = "_at_webassemblyjs_slash_ast";
-      packageName = "@webassemblyjs/ast";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.1.tgz";
-        sha512 = "uMu1nCWn2Wxyy126LlGqRVlhdTOsO/bsBRI4dNq3+6SiSuRKRQX6ejjKgh82LoGAPSq72lDUiQ4FWVaf0PecYw==";
-      };
-    };
     "@webassemblyjs/floating-point-hex-parser-1.11.0" = {
       name = "_at_webassemblyjs_slash_floating-point-hex-parser";
       packageName = "@webassemblyjs/floating-point-hex-parser";
@@ -7321,15 +7510,6 @@ let
         sha512 = "TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==";
       };
     };
-    "@webassemblyjs/floating-point-hex-parser-1.9.1" = {
-      name = "_at_webassemblyjs_slash_floating-point-hex-parser";
-      packageName = "@webassemblyjs/floating-point-hex-parser";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.1.tgz";
-        sha512 = "5VEKu024RySmLKTTBl9q1eO/2K5jk9ZS+2HXDBLA9s9p5IjkaXxWiDb/+b7wSQp6FRdLaH1IVGIfOex58Na2pg==";
-      };
-    };
     "@webassemblyjs/helper-api-error-1.11.0" = {
       name = "_at_webassemblyjs_slash_helper-api-error";
       packageName = "@webassemblyjs/helper-api-error";
@@ -7357,15 +7537,6 @@ let
         sha512 = "NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==";
       };
     };
-    "@webassemblyjs/helper-api-error-1.9.1" = {
-      name = "_at_webassemblyjs_slash_helper-api-error";
-      packageName = "@webassemblyjs/helper-api-error";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.1.tgz";
-        sha512 = "y1lGmfm38djrScwpeL37rRR9f1D6sM8RhMpvM7CYLzOlHVboouZokXK/G88BpzW0NQBSvCCOnW5BFhten4FPfA==";
-      };
-    };
     "@webassemblyjs/helper-buffer-1.11.0" = {
       name = "_at_webassemblyjs_slash_helper-buffer";
       packageName = "@webassemblyjs/helper-buffer";
@@ -7393,15 +7564,6 @@ let
         sha512 = "qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==";
       };
     };
-    "@webassemblyjs/helper-buffer-1.9.1" = {
-      name = "_at_webassemblyjs_slash_helper-buffer";
-      packageName = "@webassemblyjs/helper-buffer";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.1.tgz";
-        sha512 = "uS6VSgieHbk/m4GSkMU5cqe/5TekdCzQso4revCIEQ3vpGZgqSSExi4jWpTWwDpAHOIAb1Jfrs0gUB9AA4n71w==";
-      };
-    };
     "@webassemblyjs/helper-code-frame-1.11.0" = {
       name = "_at_webassemblyjs_slash_helper-code-frame";
       packageName = "@webassemblyjs/helper-code-frame";
@@ -7429,15 +7591,6 @@ let
         sha512 = "ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==";
       };
     };
-    "@webassemblyjs/helper-code-frame-1.9.1" = {
-      name = "_at_webassemblyjs_slash_helper-code-frame";
-      packageName = "@webassemblyjs/helper-code-frame";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.1.tgz";
-        sha512 = "ZQ2ZT6Evk4DPIfD+92AraGYaFIqGm4U20e7FpXwl7WUo2Pn1mZ1v8VGH8i+Y++IQpxPbQo/UyG0Khs7eInskzA==";
-      };
-    };
     "@webassemblyjs/helper-compiler-1.11.0" = {
       name = "_at_webassemblyjs_slash_helper-compiler";
       packageName = "@webassemblyjs/helper-compiler";
@@ -7483,15 +7636,6 @@ let
         sha512 = "OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==";
       };
     };
-    "@webassemblyjs/helper-fsm-1.9.1" = {
-      name = "_at_webassemblyjs_slash_helper-fsm";
-      packageName = "@webassemblyjs/helper-fsm";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.1.tgz";
-        sha512 = "J32HGpveEqqcKFS0YbgicB0zAlpfIxJa5MjxDxhu3i5ltPcVfY5EPvKQ1suRguFPehxiUs+/hfkwPEXom/l0lw==";
-      };
-    };
     "@webassemblyjs/helper-module-context-1.8.1" = {
       name = "_at_webassemblyjs_slash_helper-module-context";
       packageName = "@webassemblyjs/helper-module-context";
@@ -7510,15 +7654,6 @@ let
         sha512 = "MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==";
       };
     };
-    "@webassemblyjs/helper-module-context-1.9.1" = {
-      name = "_at_webassemblyjs_slash_helper-module-context";
-      packageName = "@webassemblyjs/helper-module-context";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.1.tgz";
-        sha512 = "IEH2cMmEQKt7fqelLWB5e/cMdZXf2rST1JIrzWmf4XBt3QTxGdnnLvV4DYoN8pJjOx0VYXsWg+yF16MmJtolZg==";
-      };
-    };
     "@webassemblyjs/helper-numbers-1.11.0" = {
       name = "_at_webassemblyjs_slash_helper-numbers";
       packageName = "@webassemblyjs/helper-numbers";
@@ -7555,15 +7690,6 @@ let
         sha512 = "R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==";
       };
     };
-    "@webassemblyjs/helper-wasm-bytecode-1.9.1" = {
-      name = "_at_webassemblyjs_slash_helper-wasm-bytecode";
-      packageName = "@webassemblyjs/helper-wasm-bytecode";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.1.tgz";
-        sha512 = "i2rGTBqFUcSXxyjt2K4vm/3kkHwyzG6o427iCjcIKjOqpWH8SEem+xe82jUk1iydJO250/CvE5o7hzNAMZf0dQ==";
-      };
-    };
     "@webassemblyjs/helper-wasm-section-1.11.0" = {
       name = "_at_webassemblyjs_slash_helper-wasm-section";
       packageName = "@webassemblyjs/helper-wasm-section";
@@ -7591,15 +7717,6 @@ let
         sha512 = "XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==";
       };
     };
-    "@webassemblyjs/helper-wasm-section-1.9.1" = {
-      name = "_at_webassemblyjs_slash_helper-wasm-section";
-      packageName = "@webassemblyjs/helper-wasm-section";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.1.tgz";
-        sha512 = "FetqzjtXZr2d57IECK+aId3D0IcGweeM0CbAnJHkYJkcRTHP+YcMb7Wmc0j21h5UWBpwYGb9dSkK/93SRCTrGg==";
-      };
-    };
     "@webassemblyjs/ieee754-1.11.0" = {
       name = "_at_webassemblyjs_slash_ieee754";
       packageName = "@webassemblyjs/ieee754";
@@ -7627,15 +7744,6 @@ let
         sha512 = "dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==";
       };
     };
-    "@webassemblyjs/ieee754-1.9.1" = {
-      name = "_at_webassemblyjs_slash_ieee754";
-      packageName = "@webassemblyjs/ieee754";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.1.tgz";
-        sha512 = "EvTG9M78zP1MmkBpUjGQHZc26DzPGZSLIPxYHCjQsBMo60Qy2W34qf8z0exRDtxBbRIoiKa5dFyWer/7r1aaSQ==";
-      };
-    };
     "@webassemblyjs/leb128-1.11.0" = {
       name = "_at_webassemblyjs_slash_leb128";
       packageName = "@webassemblyjs/leb128";
@@ -7663,15 +7771,6 @@ let
         sha512 = "ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==";
       };
     };
-    "@webassemblyjs/leb128-1.9.1" = {
-      name = "_at_webassemblyjs_slash_leb128";
-      packageName = "@webassemblyjs/leb128";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.1.tgz";
-        sha512 = "Oc04ub0vFfLnF+2/+ki3AE+anmW4sv9uNBqb+79fgTaPv6xJsOT0dhphNfL3FrME84CbX/D1T9XT8tjFo0IIiw==";
-      };
-    };
     "@webassemblyjs/utf8-1.11.0" = {
       name = "_at_webassemblyjs_slash_utf8";
       packageName = "@webassemblyjs/utf8";
@@ -7699,15 +7798,6 @@ let
         sha512 = "GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==";
       };
     };
-    "@webassemblyjs/utf8-1.9.1" = {
-      name = "_at_webassemblyjs_slash_utf8";
-      packageName = "@webassemblyjs/utf8";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.1.tgz";
-        sha512 = "llkYtppagjCodFjo0alWOUhAkfOiQPQDIc5oA6C9sFAXz7vC9QhZf/f8ijQIX+A9ToM3c9Pq85X0EX7nx9gVhg==";
-      };
-    };
     "@webassemblyjs/validation-1.11.0" = {
       name = "_at_webassemblyjs_slash_validation";
       packageName = "@webassemblyjs/validation";
@@ -7735,15 +7825,6 @@ let
         sha512 = "FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==";
       };
     };
-    "@webassemblyjs/wasm-edit-1.9.1" = {
-      name = "_at_webassemblyjs_slash_wasm-edit";
-      packageName = "@webassemblyjs/wasm-edit";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.1.tgz";
-        sha512 = "S2IaD6+x9B2Xi8BCT0eGsrXXd8UxAh2LVJpg1ZMtHXnrDcsTtIX2bDjHi40Hio6Lc62dWHmKdvksI+MClCYbbw==";
-      };
-    };
     "@webassemblyjs/wasm-gen-1.11.0" = {
       name = "_at_webassemblyjs_slash_wasm-gen";
       packageName = "@webassemblyjs/wasm-gen";
@@ -7771,15 +7852,6 @@ let
         sha512 = "cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==";
       };
     };
-    "@webassemblyjs/wasm-gen-1.9.1" = {
-      name = "_at_webassemblyjs_slash_wasm-gen";
-      packageName = "@webassemblyjs/wasm-gen";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.1.tgz";
-        sha512 = "bqWI0S4lBQsEN5FTZ35vYzfKUJvtjNnBobB1agCALH30xNk1LToZ7Z8eiaR/Z5iVECTlBndoRQV3F6mbEqE/fg==";
-      };
-    };
     "@webassemblyjs/wasm-opt-1.11.0" = {
       name = "_at_webassemblyjs_slash_wasm-opt";
       packageName = "@webassemblyjs/wasm-opt";
@@ -7798,15 +7870,6 @@ let
         sha512 = "Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==";
       };
     };
-    "@webassemblyjs/wasm-opt-1.9.1" = {
-      name = "_at_webassemblyjs_slash_wasm-opt";
-      packageName = "@webassemblyjs/wasm-opt";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.1.tgz";
-        sha512 = "gSf7I7YWVXZ5c6XqTEqkZjVs8K1kc1k57vsB6KBQscSagDNbAdxt6MwuJoMjsE1yWY1tsuL+pga268A6u+Fdkg==";
-      };
-    };
     "@webassemblyjs/wasm-parser-1.11.0" = {
       name = "_at_webassemblyjs_slash_wasm-parser";
       packageName = "@webassemblyjs/wasm-parser";
@@ -7834,15 +7897,6 @@ let
         sha512 = "9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==";
       };
     };
-    "@webassemblyjs/wasm-parser-1.9.1" = {
-      name = "_at_webassemblyjs_slash_wasm-parser";
-      packageName = "@webassemblyjs/wasm-parser";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.1.tgz";
-        sha512 = "ImM4N2T1MEIond0MyE3rXvStVxEmivQrDKf/ggfh5pP6EHu3lL/YTAoSrR7shrbKNPpeKpGesW1LIK/L4kqduw==";
-      };
-    };
     "@webassemblyjs/wast-parser-1.11.0" = {
       name = "_at_webassemblyjs_slash_wast-parser";
       packageName = "@webassemblyjs/wast-parser";
@@ -7870,15 +7924,6 @@ let
         sha512 = "qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==";
       };
     };
-    "@webassemblyjs/wast-parser-1.9.1" = {
-      name = "_at_webassemblyjs_slash_wast-parser";
-      packageName = "@webassemblyjs/wast-parser";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.1.tgz";
-        sha512 = "2xVxejXSvj3ls/o2TR/zI6p28qsGupjHhnHL6URULQRcXmryn3w7G83jQMcT7PHqUfyle65fZtWLukfdLdE7qw==";
-      };
-    };
     "@webassemblyjs/wast-printer-1.11.0" = {
       name = "_at_webassemblyjs_slash_wast-printer";
       packageName = "@webassemblyjs/wast-printer";
@@ -7906,40 +7951,31 @@ let
         sha512 = "2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==";
       };
     };
-    "@webassemblyjs/wast-printer-1.9.1" = {
-      name = "_at_webassemblyjs_slash_wast-printer";
-      packageName = "@webassemblyjs/wast-printer";
-      version = "1.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.1.tgz";
-        sha512 = "tDV8V15wm7mmbAH6XvQRU1X+oPGmeOzYsd6h7hlRLz6QpV4Ec/KKxM8OpLtFmQPLCreGxTp+HuxtH4pRIZyL9w==";
-      };
-    };
-    "@webpack-cli/configtest-1.0.1" = {
+    "@webpack-cli/configtest-1.0.2" = {
       name = "_at_webpack-cli_slash_configtest";
       packageName = "@webpack-cli/configtest";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.1.tgz";
-        sha512 = "B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ==";
+        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.0.2.tgz";
+        sha512 = "3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA==";
       };
     };
-    "@webpack-cli/info-1.2.2" = {
+    "@webpack-cli/info-1.2.3" = {
       name = "_at_webpack-cli_slash_info";
       packageName = "@webpack-cli/info";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.2.tgz";
-        sha512 = "5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ==";
+        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.2.3.tgz";
+        sha512 = "lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q==";
       };
     };
-    "@webpack-cli/serve-1.3.0" = {
+    "@webpack-cli/serve-1.3.1" = {
       name = "_at_webpack-cli_slash_serve";
       packageName = "@webpack-cli/serve";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.0.tgz";
-        sha512 = "k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw==";
+        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.3.1.tgz";
+        sha512 = "0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw==";
       };
     };
     "@wry/equality-0.1.11" = {
@@ -7978,6 +8014,42 @@ let
         sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
       };
     };
+    "@yarnpkg/core-2.4.0" = {
+      name = "_at_yarnpkg_slash_core";
+      packageName = "@yarnpkg/core";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/core/-/core-2.4.0.tgz";
+        sha512 = "FYjcPNTfDfMKLFafQPt49EY28jnYC82Z2S7oMwLPUh144BL8v8YXzb4aCnFyi5nFC5h2kcrJfZh7+Pm/qvCqGw==";
+      };
+    };
+    "@yarnpkg/fslib-2.4.0" = {
+      name = "_at_yarnpkg_slash_fslib";
+      packageName = "@yarnpkg/fslib";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.4.0.tgz";
+        sha512 = "CwffYY9owtl3uImNOn1K4jl5iIb/L16a9UZ9Q3lkBARk6tlUsPrNFX00eoUlFcLn49TTfd3zdN6higloGCyncw==";
+      };
+    };
+    "@yarnpkg/json-proxy-2.1.0" = {
+      name = "_at_yarnpkg_slash_json-proxy";
+      packageName = "@yarnpkg/json-proxy";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/json-proxy/-/json-proxy-2.1.0.tgz";
+        sha512 = "rOgCg2DkyviLgr80mUMTt9vzdf5RGOujQB26yPiXjlz4WNePLBshKlTNG9rKSoKQSOYEQcw6cUmosfOKDatrCw==";
+      };
+    };
+    "@yarnpkg/libzip-2.2.1" = {
+      name = "_at_yarnpkg_slash_libzip";
+      packageName = "@yarnpkg/libzip";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/libzip/-/libzip-2.2.1.tgz";
+        sha512 = "AYDJXrkzayoDd3ZlVgFJ+LyDX+Zj/cki3vxIpcYxejtgkl3aquVWOxlC0DD9WboBWsJFIP1MjrUbchLyh++/7A==";
+      };
+    };
     "@yarnpkg/lockfile-1.1.0" = {
       name = "_at_yarnpkg_slash_lockfile";
       packageName = "@yarnpkg/lockfile";
@@ -7987,6 +8059,33 @@ let
         sha512 = "GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==";
       };
     };
+    "@yarnpkg/parsers-2.3.0" = {
+      name = "_at_yarnpkg_slash_parsers";
+      packageName = "@yarnpkg/parsers";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/parsers/-/parsers-2.3.0.tgz";
+        sha512 = "qgz0QUgOvnhtF92kaluIhIIKBUHlYlHUBQxqh5v9+sxEQvUeF6G6PKiFlzo3E6O99XwvNEGpVu1xZPoSGyGscQ==";
+      };
+    };
+    "@yarnpkg/pnp-2.3.2" = {
+      name = "_at_yarnpkg_slash_pnp";
+      packageName = "@yarnpkg/pnp";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/pnp/-/pnp-2.3.2.tgz";
+        sha512 = "JdwHu1WBCISqJEhIwx6Hbpe8MYsYbkGMxoxolkDiAeJ9IGEe08mQcbX1YmUDV1ozSWlm9JZE90nMylcDsXRFpA==";
+      };
+    };
+    "@yarnpkg/shell-2.4.1" = {
+      name = "_at_yarnpkg_slash_shell";
+      packageName = "@yarnpkg/shell";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@yarnpkg/shell/-/shell-2.4.1.tgz";
+        sha512 = "oNNJkH8ZI5uwu0dMkJf737yMSY1WXn9gp55DqSA5wAOhKvV5DJTXFETxkVgBQhO6Bow9tMGSpvowTMD/oAW/9g==";
+      };
+    };
     "@zeit/schemas-2.6.0" = {
       name = "_at_zeit_slash_schemas";
       packageName = "@zeit/schemas";
@@ -8410,13 +8509,13 @@ let
         sha512 = "TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==";
       };
     };
-    "adm-zip-0.5.4" = {
+    "adm-zip-0.5.5" = {
       name = "adm-zip";
       packageName = "adm-zip";
-      version = "0.5.4";
+      version = "0.5.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.4.tgz";
-        sha512 = "GMQg1a1cAegh+/EgWbz+XHZrwB467iB/IgtToldvxs7Xa5Br8mPmvCeRfY/Un2fLzrlIPt6Yu7Cej+8Ut9TGPg==";
+        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.5.tgz";
+        sha512 = "IWwXKnCbirdbyXSfUDvCCrmYrOHANRZcc8NcRrvTlIApdl7PwE9oGcsYvNeJPAVY1M+70b4PxXGKIf8AEuiQ6w==";
       };
     };
     "adverb-where-0.0.9" = {
@@ -8464,15 +8563,6 @@ let
         sha1 = "d6de10d5af6132d5bd692427d46fc538539094c7";
       };
     };
-    "agent-base-4.2.1" = {
-      name = "agent-base";
-      packageName = "agent-base";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz";
-        sha512 = "JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==";
-      };
-    };
     "agent-base-4.3.0" = {
       name = "agent-base";
       packageName = "agent-base";
@@ -8581,13 +8671,22 @@ let
         sha512 = "LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==";
       };
     };
-    "ajv-7.2.3" = {
+    "ajv-7.2.4" = {
       name = "ajv";
       packageName = "ajv";
-      version = "7.2.3";
+      version = "7.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-7.2.3.tgz";
-        sha512 = "idv5WZvKVXDqKralOImQgPM9v6WOdLNa0IY3B3doOjw/YxRGT8I+allIJ6kd7Uaj+SF1xZUSU+nPM5aDNBVtnw==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-7.2.4.tgz";
+        sha512 = "nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==";
+      };
+    };
+    "ajv-8.0.5" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "8.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.0.5.tgz";
+        sha512 = "RkiLa/AeJx7+9OvniQ/qeWu0w74A8DiPPBclQ6ji3ZQkv5KamO+QGpqmi7O4JIw3rHGUXZ6CoP9tsAkn3gyazg==";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -8599,13 +8698,13 @@ let
         sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
       };
     };
-    "ajv-formats-1.5.1" = {
+    "ajv-formats-1.6.1" = {
       name = "ajv-formats";
       packageName = "ajv-formats";
-      version = "1.5.1";
+      version = "1.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-1.5.1.tgz";
-        sha512 = "s1RBVF4HZd2UjGkb6t6uWoXjf6o7j7dXPQIL7vprcIT/67bTD6+5ocsU0UKShS2qWxueGDWuGfKHfOxHWrlTQg==";
+        url = "https://registry.npmjs.org/ajv-formats/-/ajv-formats-1.6.1.tgz";
+        sha512 = "4CjkH20If1lhR5CGtqkrVg3bbOtFEG80X9v6jDOIUhbzzbB+UzPBGy8GQhUNVZ0yvMHdMpawCOcy5ydGMsagGQ==";
       };
     };
     "ajv-keywords-1.5.1" = {
@@ -8986,13 +9085,13 @@ let
         sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
       };
     };
-    "ansi-styles-5.1.0" = {
+    "ansi-styles-5.2.0" = {
       name = "ansi-styles";
       packageName = "ansi-styles";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.1.0.tgz";
-        sha512 = "osxifZo3ar56+e8tdYreU6p8FZGciBHo5O0JoDAxMUqZuyNUb+yHEwYtJZ+Z32R459jEgtwVf1u8D7qYwU0l6w==";
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz";
+        sha512 = "Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==";
       };
     };
     "ansi-term-0.0.2" = {
@@ -9121,22 +9220,22 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-cache-control-0.11.6" = {
+    "apollo-cache-control-0.12.0" = {
       name = "apollo-cache-control";
       packageName = "apollo-cache-control";
-      version = "0.11.6";
+      version = "0.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.6.tgz";
-        sha512 = "YZ+uuIG+fPy+mkpBS2qKF0v1qlzZ3PW6xZVaDukeK3ed3iAs4L/2YnkTqau3OmoF/VPzX2FmSkocX/OVd59YSw==";
+        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.12.0.tgz";
+        sha512 = "kClF5rfAm159Nboul1LxA+l58Tjz0M8L1GUknEMpZt0UHhILLAn3BfcG3ToX4TbNoR9M57kKMUcbPWLdy3Up7w==";
       };
     };
-    "apollo-datasource-0.7.3" = {
+    "apollo-datasource-0.8.0" = {
       name = "apollo-datasource";
       packageName = "apollo-datasource";
-      version = "0.7.3";
+      version = "0.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.3.tgz";
-        sha512 = "PE0ucdZYjHjUyXrFWRwT02yLcx2DACsZ0jm1Mp/0m/I9nZu/fEkvJxfsryXB6JndpmQO77gQHixf/xGCN976kA==";
+        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.8.0.tgz";
+        sha512 = "gXgsGVLuejLc138z/2jUjPAzadDQxWbcLJyBgaQsg5BaXJNkv5uW/NjiSPk00cK51hyZrb0Xx8a+L+wPk2qIBA==";
       };
     };
     "apollo-env-0.6.6" = {
@@ -9184,22 +9283,22 @@ let
         sha512 = "WJTJxLM+MRHNUxt1RTl4zD0HrLdH44F2mDzMweBj1yHL0kSt8I1WwoiF/wiGVSpnG48LZrBegCaOJeuVbJTbtw==";
       };
     };
-    "apollo-server-caching-0.5.3" = {
+    "apollo-server-caching-0.6.0" = {
       name = "apollo-server-caching";
       packageName = "apollo-server-caching";
-      version = "0.5.3";
+      version = "0.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.3.tgz";
-        sha512 = "iMi3087iphDAI0U2iSBE9qtx9kQoMMEWr6w+LwXruBD95ek9DWyj7OeC2U/ngLjRsXM43DoBDXlu7R+uMjahrQ==";
+        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.6.0.tgz";
+        sha512 = "SfjKaccrhRzUQ8TAke9FrYppp4pZV3Rp8KCs+4Ox3kGtbco68acRPJkiYYtSVc4idR8XNAUOOVfAEZVNHdZQKQ==";
       };
     };
-    "apollo-server-core-2.21.2" = {
+    "apollo-server-core-2.22.2" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.21.2";
+      version = "2.22.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.21.2.tgz";
-        sha512 = "jIXMVQPOUzIOl4El/mzSixxJ5IDrqSk3L9uJ1U+ncwiQj0IjtkkyDSuYngcgyEi+KfO2lAzxeOiAy9fIjjkC2A==";
+        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.22.2.tgz";
+        sha512 = "YPrhfN+I5vUerc4c0I6pd89fdqP5UNYCt/+MGv4bDA/a0kOCLvzylkQ3NlEepK1fewtqf4QO+S1LscC8vMmYdg==";
       };
     };
     "apollo-server-env-3.0.0" = {
@@ -9220,40 +9319,40 @@ let
         sha512 = "FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==";
       };
     };
-    "apollo-server-express-2.21.2" = {
+    "apollo-server-express-2.22.2" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.21.2";
+      version = "2.22.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.21.2.tgz";
-        sha512 = "5aNE1i/My8c9eBJg5uRyZSvE/NThm1X/fewcs4U5WpuEAMdmg/vf0oZnSZ8Nvmj7H8R2E5xiMkTm6Mv+MKOl9A==";
+        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.22.2.tgz";
+        sha512 = "MRiWF/oT6toUz909iq1I08vKfRxaqRMKS/v9kzyEXcnuudUCQ5WnxrjZEh/iMEfr7RHSQ4STjY7E/ZooPnueqA==";
       };
     };
-    "apollo-server-plugin-base-0.10.4" = {
+    "apollo-server-plugin-base-0.11.0" = {
       name = "apollo-server-plugin-base";
       packageName = "apollo-server-plugin-base";
-      version = "0.10.4";
+      version = "0.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.4.tgz";
-        sha512 = "HRhbyHgHFTLP0ImubQObYhSgpmVH4Rk1BinnceZmwudIVLKrqayIVOELdyext/QnSmmzg5W7vF3NLGBcVGMqDg==";
+        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.11.0.tgz";
+        sha512 = "Du68x0XCyQ6EWlgoL9Z+1s8fJfXgY131QbKP7ao617StQPzwB0aGCwxBDfcMt1A75VXf4TkvV1rdUH5YeJFlhQ==";
       };
     };
-    "apollo-server-types-0.6.3" = {
+    "apollo-server-types-0.7.0" = {
       name = "apollo-server-types";
       packageName = "apollo-server-types";
-      version = "0.6.3";
+      version = "0.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.3.tgz";
-        sha512 = "aVR7SlSGGY41E1f11YYz5bvwA89uGmkVUtzMiklDhZ7IgRJhysT5Dflt5IuwDxp+NdQkIhVCErUXakopocFLAg==";
+        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.7.0.tgz";
+        sha512 = "pJ6ri2N4xJ+e2PUUPHeCNpMDzHUagJyn0DDZGQmXDz6aoMlSd4B2KUvK81hHyHkw3wHk9clgcpfM9hKqbfZweA==";
       };
     };
-    "apollo-tracing-0.12.2" = {
+    "apollo-tracing-0.13.0" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
-      version = "0.12.2";
+      version = "0.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.2.tgz";
-        sha512 = "SYN4o0C0wR1fyS3+P0FthyvsQVHFopdmN3IU64IaspR/RZScPxZ3Ae8uu++fTvkQflAkglnFM0aX6DkZERBp6w==";
+        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.13.0.tgz";
+        sha512 = "28z4T+XfLQ6t696usU0nTFDxVN8BfF3o74d2p/zsT4eu1OuoyoDOEmVJqdInmVRpyTJK0tDEOjkIuDJJHZftog==";
       };
     };
     "apollo-utilities-1.3.4" = {
@@ -10255,13 +10354,13 @@ let
         sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
       };
     };
-    "async-append-only-log-3.0.7" = {
+    "async-append-only-log-3.0.8" = {
       name = "async-append-only-log";
       packageName = "async-append-only-log";
-      version = "3.0.7";
+      version = "3.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async-append-only-log/-/async-append-only-log-3.0.7.tgz";
-        sha512 = "/6W+vsTSDg+rVUAFYknugtLeNDtS8BMfJ7clMF4kGXNS5nprb+Gx+ndG1QNaD8eFeEv6lSyGMeWJ7KxHuEpkKg==";
+        url = "https://registry.npmjs.org/async-append-only-log/-/async-append-only-log-3.0.8.tgz";
+        sha512 = "y80CcN4xifsNHFDCU3aOnOZytNUX+UGXz6pkNmUzSOCNV77q+srsm6OlcM9bTwFBy5VGoUUJfOB1lo9tNB2Okg==";
       };
     };
     "async-done-1.3.2" = {
@@ -10345,6 +10444,15 @@ let
         sha512 = "aiieFW/7h3hY0Bq5d+ktDBejxuwR78vRu9hDUdR8rNhSaQ29VzPL4AoIRG7D/c7tdenwOcKvgPM6tIxB3cB6HA==";
       };
     };
+    "async-retry-ng-2.0.1" = {
+      name = "async-retry-ng";
+      packageName = "async-retry-ng";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-retry-ng/-/async-retry-ng-2.0.1.tgz";
+        sha512 = "iitlc2murdQ3/A5Re3CcplQBEf7vOmFrFQ6RFn3+/+zZUyIHYkZnnEziMSa6YIb2Bs2EJEPZWReTxjHqvQbDbw==";
+      };
+    };
     "async-settle-1.0.0" = {
       name = "async-settle";
       packageName = "async-settle";
@@ -10381,6 +10489,24 @@ let
         sha512 = "gwrRUMa6oZ1qssVupX4lgSey1PDCEbouUjCqa2/MRgaZ4gZmZfAVBZ/Nzple7r9BN+iVMJPIWrwVu00CRgjHgw==";
       };
     };
+    "asyncjs-util-1.2.4" = {
+      name = "asyncjs-util";
+      packageName = "asyncjs-util";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.4.tgz";
+        sha512 = "hIsyIeDv5LPDh+/Yv9+NDcV0z+WtHo7937abePpW9ikx9WNB75BRn/AuP2jkk3YpfxIp4mGaY6zgUm014VU7Hw==";
+      };
+    };
+    "asyncjs-util-1.2.5" = {
+      name = "asyncjs-util";
+      packageName = "asyncjs-util";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.5.tgz";
+        sha512 = "P0BY77ZZvaF+rka9mx12r9ys+U+DDz9yhIz6vbSSNhyKzFJce+jrYSRufvg7RLOH/M8XnhIDOBpagbRtRJiuGA==";
+      };
+    };
     "asynckit-0.4.0" = {
       name = "asynckit";
       packageName = "asynckit";
@@ -10570,13 +10696,13 @@ let
         sha512 = "+KBkqH7t/XE91Fqn8eyJeNIWsnhSWL8bSUqFD7TfE3FN07MTlC0nprGYp+2WfcYNz5i8Bus1vY2DHNVhtTImnw==";
       };
     };
-    "aws-sdk-2.871.0" = {
+    "aws-sdk-2.880.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.871.0";
+      version = "2.880.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.871.0.tgz";
-        sha512 = "rFd2shGgYfCzQQQeqqgZRiLuPFUm3uUlHqM40nMtbqM1y7abuOUyuOMxTHsKsbY+Bu7gRESngPTf7Iknxq9/uQ==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.880.0.tgz";
+        sha512 = "/dBk3ejw22ED2edzGfmJB83KXDA4wLIw5Hb+2YMhly+gOWecvevy0tML2+YN/cmxyTy+wT0E0sM7fm1v7kmHtw==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -11245,13 +11371,13 @@ let
         sha512 = "xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==";
       };
     };
-    "balanced-match-1.0.0" = {
+    "balanced-match-1.0.2" = {
       name = "balanced-match";
       packageName = "balanced-match";
-      version = "1.0.0";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     };
     "base-0.11.2" = {
@@ -11560,13 +11686,13 @@ let
         sha1 = "e6d5ea8c5dad001304a70b22638447f69cb2f809";
       };
     };
-    "before-after-hook-2.2.0" = {
+    "before-after-hook-2.2.1" = {
       name = "before-after-hook";
       packageName = "before-after-hook";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.0.tgz";
-        sha512 = "jH6rKQIfroBbhEXVmI7XmXe3ix5S/PgJqpzdDPnR8JGLHWNYLsYZ6tK5iWOF/Ra3oqEX0NobXGlzbiylIzVphQ==";
+        url = "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.1.tgz";
+        sha512 = "/6FKxSTWoJdbsLDF8tdIjaRiFXiE6UHsEHE3OPI/cwPURCVi1ukP0gmLn7XWEiFk5TcwQjjY5PWsU+j+tgXgmw==";
       };
     };
     "bencode-0.7.0" = {
@@ -11641,6 +11767,33 @@ let
         sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
       };
     };
+    "better-opn-2.1.1" = {
+      name = "better-opn";
+      packageName = "better-opn";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-opn/-/better-opn-2.1.1.tgz";
+        sha512 = "kIPXZS5qwyKiX/HcRvDYfmBQUa8XP17I0mYZZ0y4UhpYOSvtsLHDYqmomS+Mj20aDvD3knEiQ0ecQy2nhio3yA==";
+      };
+    };
+    "better-queue-3.8.10" = {
+      name = "better-queue";
+      packageName = "better-queue";
+      version = "3.8.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-queue/-/better-queue-3.8.10.tgz";
+        sha512 = "e3gwNZgDCnNWl0An0Tz6sUjKDV9m6aB+K9Xg//vYeo8+KiH8pWhLFxkawcXhm6FpM//GfD9IQv/kmvWCAVVpKA==";
+      };
+    };
+    "better-queue-memory-1.0.4" = {
+      name = "better-queue-memory";
+      packageName = "better-queue-memory";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/better-queue-memory/-/better-queue-memory-1.0.4.tgz";
+        sha512 = "SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA==";
+      };
+    };
     "bevent-0.1.5" = {
       name = "bevent";
       packageName = "bevent";
@@ -11812,6 +11965,15 @@ let
         sha512 = "H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA==";
       };
     };
+    "binary-search-tree-0.2.5" = {
+      name = "binary-search-tree";
+      packageName = "binary-search-tree";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-search-tree/-/binary-search-tree-0.2.5.tgz";
+        sha1 = "7dbb3b210fdca082450dad2334c304af39bdc784";
+      };
+    };
     "binaryextensions-2.3.0" = {
       name = "binaryextensions";
       packageName = "binaryextensions";
@@ -11848,6 +12010,15 @@ let
         sha512 = "6pm+Gc3uNiiJZEv0k8JDWqQlo9ki/o9UNAkLmr0EGm7hI5MboOJVIOlO1nw3YuDkLHWN78OPsaC4JhRkn2jMLw==";
       };
     };
+    "binjumper-0.1.4" = {
+      name = "binjumper";
+      packageName = "binjumper";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binjumper/-/binjumper-0.1.4.tgz";
+        sha512 = "Gdxhj+U295tIM6cO4bJO1jsvSjBVHNpj2o/OwW7pqDEtaqF6KdOxjtbo93jMMKAkP7+u09+bV8DhSqjIv4qR3w==";
+      };
+    };
     "bintrees-1.0.1" = {
       name = "bintrees";
       packageName = "bintrees";
@@ -11902,13 +12073,13 @@ let
         sha512 = "O1htyufFTYy3EO0JkHg2CLykdXEtV2ssqw47Gq9A0WByp662xpJnMEB9m43LZjsSDjIAOozWRExlFQk2hlV1XQ==";
       };
     };
-    "bipf-1.4.0" = {
+    "bipf-1.5.0" = {
       name = "bipf";
       packageName = "bipf";
-      version = "1.4.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bipf/-/bipf-1.4.0.tgz";
-        sha512 = "8b2T/OWIRI73kcPXhI+jqK+0QyxRlZ6HIzQBK8tRxIZ2NO0dBxJ4T9eeX6XsYEHy2cqM69n+rOZyVjhvRUGRig==";
+        url = "https://registry.npmjs.org/bipf/-/bipf-1.5.0.tgz";
+        sha512 = "EjpRVanEn4/Z2ilD2OeTfkWnogvxe+PZ8Gxzt7m+2xRT9rg6g1pETAdYy2vmJhNNZYX9axiV3Zf8HxuaYb0W3w==";
       };
     };
     "bitcoin-core-2.3.0" = {
@@ -12271,6 +12442,15 @@ let
         sha512 = "nXWOXtQHbfPaMl6jyEF/rmRMrcemj2qn+OCAI/uZYurjfx7Dg3baoXdPzHOL0U8Cfvn8CWxKcnM/rgxL7DR4zw==";
       };
     };
+    "bn.js-4.11.6" = {
+      name = "bn.js";
+      packageName = "bn.js";
+      version = "4.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz";
+        sha1 = "53344adb14617a13f6e8dd2ce28905d1c0ba3215";
+      };
+    };
     "bn.js-4.12.0" = {
       name = "bn.js";
       packageName = "bn.js";
@@ -12361,13 +12541,22 @@ let
         sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     };
-    "bolt03-1.2.7" = {
+    "bolt01-1.2.1" = {
+      name = "bolt01";
+      packageName = "bolt01";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt01/-/bolt01-1.2.1.tgz";
+        sha512 = "Mpk1QZofLqrJ1Sjm1vA1HKov6+ffOhCUTP5ae8UTK+U7IwbGSQTfQWu1m6waoSmUN7esQDAS2gBE6PiVaHK0ww==";
+      };
+    };
+    "bolt03-1.2.9" = {
       name = "bolt03";
       packageName = "bolt03";
-      version = "1.2.7";
+      version = "1.2.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bolt03/-/bolt03-1.2.7.tgz";
-        sha512 = "gAlWFr+/4ARfCv7GS6+xjeW1hTylKeUvhjIhVwRM0t/hAZ2z+hnnG7ZmVsmCB9bxLTR09PC9j8dnt450uqiHUA==";
+        url = "https://registry.npmjs.org/bolt03/-/bolt03-1.2.9.tgz";
+        sha512 = "2WVVcn+pQXIbDkVixZ6c6Hu0E+LiCyUnj14xQs6qEgU3Sq4NFEguAzDwuvr2B9IxwVGD+5/rH5H9RbY0+d5KlQ==";
       };
     };
     "bolt07-1.7.1" = {
@@ -12379,6 +12568,15 @@ let
         sha512 = "vZCX56PB0274YW8BuCE91xWgqCPkfndBkknYYZFajX6Zr/KByMDXKQ2t1KKSYVkzzTL0rqeLWyQKdL6gJU1zHA==";
       };
     };
+    "bolt07-1.7.2" = {
+      name = "bolt07";
+      packageName = "bolt07";
+      version = "1.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt07/-/bolt07-1.7.2.tgz";
+        sha512 = "b1ZmcU1ucTjRL/FvYUDbLqCmc1I0PRLWB+yvlI6w8l9be5JJgzaf1AmU6+yoa1eL3cqX8leWzyaVjWTjRKGfMg==";
+      };
+    };
     "bolt09-0.1.3" = {
       name = "bolt09";
       packageName = "bolt09";
@@ -12388,6 +12586,15 @@ let
         sha512 = "xFfW/ix6qSzBVGGt3jgpG/SX1LgVvGUYxA/0yC6uaPAjgqbdqmbDZzNEqMRps7Z8Vp1H3yfO5JXQuX54n/GzZg==";
       };
     };
+    "bolt09-0.1.4" = {
+      name = "bolt09";
+      packageName = "bolt09";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bolt09/-/bolt09-0.1.4.tgz";
+        sha512 = "I8GZoVvQDF7w/93XNbUD29hBoN+kiPomPb8X/D6510pjRI5/KgZ0nITH4BAymS89GTGPjI5ZavkFw3vxxRhjQQ==";
+      };
+    };
     "bonjour-3.5.0" = {
       name = "bonjour";
       packageName = "bonjour";
@@ -12406,13 +12613,13 @@ let
         sha1 = "68dff5fbe60c51eb37725ea9e3ed310dcc1e776e";
       };
     };
-    "boolean-3.0.2" = {
+    "boolean-3.0.3" = {
       name = "boolean";
       packageName = "boolean";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz";
-        sha512 = "RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==";
+        url = "https://registry.npmjs.org/boolean/-/boolean-3.0.3.tgz";
+        sha512 = "EqrTKXQX6Z3A2nRmMEIlAIfjQOgFnVO2nqZGpbcsPnYGWBwpFqzlrozU1dy+S2iqfYDLh26ef4KrgTxu9xQrxA==";
       };
     };
     "boom-2.10.1" = {
@@ -12532,13 +12739,13 @@ let
         sha512 = "eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==";
       };
     };
-    "boxen-5.0.0" = {
+    "boxen-5.0.1" = {
       name = "boxen";
       packageName = "boxen";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/boxen/-/boxen-5.0.0.tgz";
-        sha512 = "5bvsqw+hhgUi3oYGK0Vf4WpIkyemp60WBInn7+WNfoISzAqk/HX4L7WNROq38E6UR/y3YADpv6pEm4BfkeEAdA==";
+        url = "https://registry.npmjs.org/boxen/-/boxen-5.0.1.tgz";
+        sha512 = "49VBlw+PrWEF51aCmy7QIteYPIFZxSpvqBdP/2itCPPlJ49kj9zg/XPRFrdkne2W+CfwXUls8exMvu1RysZpKA==";
       };
     };
     "bplist-creator-0.0.6" = {
@@ -13162,6 +13369,15 @@ let
         sha1 = "3d253fe2f0ab70e851d728712e8cd6f914a8c002";
       };
     };
+    "buffer-to-arraybuffer-0.0.5" = {
+      name = "buffer-to-arraybuffer";
+      packageName = "buffer-to-arraybuffer";
+      version = "0.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz";
+        sha1 = "6064a40fa76eb43c723aba9ef8f6e1216d10511a";
+      };
+    };
     "buffer-writer-2.0.0" = {
       name = "buffer-writer";
       packageName = "buffer-writer";
@@ -13783,13 +13999,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001204" = {
+    "caniuse-lite-1.0.30001207" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001204";
+      version = "1.0.30001207";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz";
-        sha512 = "JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz";
+        sha512 = "UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==";
       };
     };
     "canvas-2.7.0" = {
@@ -13900,13 +14116,22 @@ let
         sha512 = "Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==";
       };
     };
-    "cbor-7.0.3" = {
+    "cbor-7.0.4" = {
       name = "cbor";
       packageName = "cbor";
-      version = "7.0.3";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cbor/-/cbor-7.0.3.tgz";
-        sha512 = "Io+lJytjYBJKgJqZQUz2bFaMPj+HtlsnT9kHSUiIJFqzWa05lm5/ycQ+NiZWpks3DR2Fz7j7axiTGeT57w/syg==";
+        url = "https://registry.npmjs.org/cbor/-/cbor-7.0.4.tgz";
+        sha512 = "9hBTn31l7+9qteBso7+HPp2R5ytqFRBd98fHK4ZTpvrba8V7CuoOsEL0S6vf7+11gubMTd3RW97lOgMTl5SNfg==";
+      };
+    };
+    "cbor-7.0.5" = {
+      name = "cbor";
+      packageName = "cbor";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cbor/-/cbor-7.0.5.tgz";
+        sha512 = "0aaAPgW92lLmypb9iCd22k7tSD1FbF6dps8VQzmIBKY6ych2gO09b2vo/SbaLTmezJuB8Kh88Rvpl/Uq52mNZg==";
       };
     };
     "ccount-1.1.0" = {
@@ -13918,22 +14143,22 @@ let
         sha512 = "vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg==";
       };
     };
-    "cdk8s-1.0.0-beta.10" = {
+    "cdk8s-1.0.0-beta.11" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "1.0.0-beta.10";
+      version = "1.0.0-beta.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.0.0-beta.10.tgz";
-        sha512 = "zyvxm1kyklUbrCD475ULXPUM+VfOU2u8UN0rSFjJN8Tziv6w6lCUxRBAeJCF/Dn00M29dWmu/F9Nda0mUb8Jcg==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-1.0.0-beta.11.tgz";
+        sha512 = "G6SIJSg6mxeEzWEWNY8NAn/jqysTPegV79mOQ6eYj1uyKYggyzP5MzuWt8fKmYShM5BTDadnCRajwDnku9LZeQ==";
       };
     };
-    "cdktf-0.2.0" = {
+    "cdktf-0.2.1" = {
       name = "cdktf";
       packageName = "cdktf";
-      version = "0.2.0";
+      version = "0.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.2.0.tgz";
-        sha512 = "0sW2NFq4AW9WdnGbQXJylZ/m9smUv5YeExjvCrEk/7hDMeEqhAue/3PWNmASG3zwBUuoC+pZ24b+OUmBXJsp+w==";
+        url = "https://registry.npmjs.org/cdktf/-/cdktf-0.2.1.tgz";
+        sha512 = "yz2eoeiSWDjf98ackXw6D0bWvdsmJ7EIxuTHbkn7hzaIJ9sDrXhVLpcTP0rolBVZ/FR8/mtFLoEdHnthIg5IcA==";
       };
     };
     "center-align-0.1.3" = {
@@ -14593,13 +14818,13 @@ let
         sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
       };
     };
-    "classnames-2.2.6" = {
+    "classnames-2.3.1" = {
       name = "classnames";
       packageName = "classnames";
-      version = "2.2.6";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz";
-        sha512 = "JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==";
+        url = "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz";
+        sha512 = "OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==";
       };
     };
     "cldr-5.8.0" = {
@@ -14953,6 +15178,15 @@ let
         sha1 = "a211e09c6a3de3ba1af27d049d301250d18812bc";
       };
     };
+    "clipanion-2.6.2" = {
+      name = "clipanion";
+      packageName = "clipanion";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clipanion/-/clipanion-2.6.2.tgz";
+        sha512 = "0tOHJNMF9+4R3qcbBL+4IxLErpaYSYvzs10aXuECDbZdJOuJHdagJMAqvLdeaUQTI/o2uSCDRpet6ywDiKOAYw==";
+      };
+    };
     "clipboard-2.0.8" = {
       name = "clipboard";
       packageName = "clipboard";
@@ -15367,13 +15601,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.26.0" = {
+    "codemaker-1.27.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.26.0";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.26.0.tgz";
-        sha512 = "oK0SdWi3CUHL7hVcDpXVBQc2xm31RCJSqg7I1wviMifD89zbvu3boAz/s5aoXbcVDKKxLOZn2w55WlGCih9HOw==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.27.0.tgz";
+        sha512 = "W5r3XLxBG2a33M3g3Sg9mOU5wPbw6hz14GfmeQsKlWoSCx8Y3CCxY8ogbh77/K34epqYh43ydybI8e7UVgD/tQ==";
       };
     };
     "codepage-1.4.0" = {
@@ -16402,15 +16636,6 @@ let
         sha1 = "c20b96d8c617748aaf1c16021760cd27fcb8cb75";
       };
     };
-    "constructs-3.3.48" = {
-      name = "constructs";
-      packageName = "constructs";
-      version = "3.3.48";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-3.3.48.tgz";
-        sha512 = "5AKrTtmiioQWloJ3WRFZb0/uR1lrRboaVE9go++XZltvRnZkN2/kQjaZ0gtFxynU5u5k9mWVtk8mNcgJ9yoRbQ==";
-      };
-    };
     "constructs-3.3.71" = {
       name = "constructs";
       packageName = "constructs";
@@ -16493,6 +16718,24 @@ let
         sha1 = "0e790b3abfef90f6ecb77ae8585db9099caf7578";
       };
     };
+    "contentful-management-7.14.0" = {
+      name = "contentful-management";
+      packageName = "contentful-management";
+      version = "7.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/contentful-management/-/contentful-management-7.14.0.tgz";
+        sha512 = "6i3lDp+1S+DZc7nv+dYGKqZ/GbhbiJakp4fS0zqCtuaQb+80k9+9a/DO1/M3QmS7t7urITYiwTVgQl8hvqAFFg==";
+      };
+    };
+    "contentful-sdk-core-6.7.0" = {
+      name = "contentful-sdk-core";
+      packageName = "contentful-sdk-core";
+      version = "6.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/contentful-sdk-core/-/contentful-sdk-core-6.7.0.tgz";
+        sha512 = "+b8UXVE249Z6WzMLXvsu3CIvN/s5xXRZ9o+zY7zDdPkIYBMW15xcs9N2ATI6ncmc+s1uj4XZij/2skflletHiw==";
+      };
+    };
     "continuable-1.1.8" = {
       name = "continuable";
       packageName = "continuable";
@@ -16619,6 +16862,15 @@ let
         sha512 = "uiApbSiNGM/kkdL9GTOLAqC4hbptObFo4wW2QRyHsKciGAfQuLU1ShZ1BIVI/+K2BE/W1AWYQMCXAsv4dyKPaw==";
       };
     };
+    "convert-hrtime-3.0.0" = {
+      name = "convert-hrtime";
+      packageName = "convert-hrtime";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-3.0.0.tgz";
+        sha512 = "7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA==";
+      };
+    };
     "convert-source-map-1.1.3" = {
       name = "convert-source-map";
       packageName = "convert-source-map";
@@ -16889,6 +17141,15 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
+    "core-js-3.10.0" = {
+      name = "core-js";
+      packageName = "core-js";
+      version = "3.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.10.0.tgz";
+        sha512 = "MQx/7TLgmmDVamSyfE+O+5BHvG1aUGj/gHhLn1wVtm2B5u1eVIPvh7vkfjwWKNCjrTJB8+He99IntSQ1qP+vYQ==";
+      };
+    };
     "core-js-3.8.3" = {
       name = "core-js";
       packageName = "core-js";
@@ -16898,22 +17159,13 @@ let
         sha512 = "KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==";
       };
     };
-    "core-js-3.9.1" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "3.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.9.1.tgz";
-        sha512 = "gSjRvzkxQc1zjM/5paAmL4idJBFzuJoo+jDjF1tStYFMV2ERfD02HhahhCGXUyHxQRG4yFKVSdO6g62eoRMcDg==";
-      };
-    };
-    "core-js-compat-3.9.1" = {
+    "core-js-compat-3.10.0" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.9.1";
+      version = "3.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz";
-        sha512 = "jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.0.tgz";
+        sha512 = "9yVewub2MXNYyGvuLnMHcN1k9RkvB7/ofktpeKTIaASyB88YYqGzUnu0ywMMhJrDHOMiTjSHWGzR+i7Wb9Z1kQ==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -17123,6 +17375,15 @@ let
         sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
       };
     };
+    "create-gatsby-1.2.0" = {
+      name = "create-gatsby";
+      packageName = "create-gatsby";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-gatsby/-/create-gatsby-1.2.0.tgz";
+        sha512 = "CXvs1wxGqU1m8PMGmcuJfi9x8koFZZu0JwQr+e7MNnUL33wQEnaLSdwFDBUT4cEqFVWXWAcGErBOZT7/XEgh7Q==";
+      };
+    };
     "create-graphback-1.0.1" = {
       name = "create-graphback";
       packageName = "create-graphback";
@@ -17150,13 +17411,13 @@ let
         sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
       };
     };
-    "create-torrent-4.5.0" = {
+    "create-torrent-4.6.0" = {
       name = "create-torrent";
       packageName = "create-torrent";
-      version = "4.5.0";
+      version = "4.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-torrent/-/create-torrent-4.5.0.tgz";
-        sha512 = "RvhI3/mMbvSGb+NbV2V1nax64fc47rRYXY8WJV47t4RfzM+P2p2zpAOYyBjKqz+CkBUexS9Mvgga4Rx53m+tyA==";
+        url = "https://registry.npmjs.org/create-torrent/-/create-torrent-4.6.0.tgz";
+        sha512 = "fIGI7w1K27XK3WSLrH7OS7A7p5me4IcXWbXSn5VNu48Hp7+HlRsQGqYGJX1DXHgpVWICoq5w8pdYQ/nENnGljQ==";
       };
     };
     "cron-1.7.2" = {
@@ -17222,13 +17483,13 @@ let
         sha512 = "eIF+IHQpRzoGd/0zPrwQmHwDC90mdvjk+hcbYhKoaRrEk4GEIDqdjs/MljmdPPoHTQudbmWS+f0hZsEpFaEvWw==";
       };
     };
-    "cross-fetch-3.1.2" = {
+    "cross-fetch-3.1.4" = {
       name = "cross-fetch";
       packageName = "cross-fetch";
-      version = "3.1.2";
+      version = "3.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.2.tgz";
-        sha512 = "+JhD65rDNqLbGmB3Gzs3HrEKC0aQnD+XA3SY6RjgkF88jV2q5cTc5+CwxlS3sdmLk98gpPt5CF9XRnPdlxZe6w==";
+        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz";
+        sha512 = "1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==";
       };
     };
     "cross-spawn-4.0.2" = {
@@ -17528,13 +17789,13 @@ let
         sha512 = "DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==";
       };
     };
-    "css-tree-1.1.2" = {
+    "css-tree-1.1.3" = {
       name = "css-tree";
       packageName = "css-tree";
-      version = "1.1.2";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz";
-        sha512 = "wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==";
+        url = "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz";
+        sha512 = "tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==";
       };
     };
     "css-what-1.0.0" = {
@@ -17600,22 +17861,22 @@ let
         sha1 = "c6d2672632a2e5c83e013e6864a42ce8defd20ae";
       };
     };
-    "cssnano-4.1.10" = {
+    "cssnano-4.1.11" = {
       name = "cssnano";
       packageName = "cssnano";
-      version = "4.1.10";
+      version = "4.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz";
-        sha512 = "5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==";
+        url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz";
+        sha512 = "6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==";
       };
     };
-    "cssnano-preset-default-4.0.7" = {
+    "cssnano-preset-default-4.0.8" = {
       name = "cssnano-preset-default";
       packageName = "cssnano-preset-default";
-      version = "4.0.7";
+      version = "4.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
-        sha512 = "x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==";
+        url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz";
+        sha512 = "LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==";
       };
     };
     "cssnano-util-get-arguments-4.0.0" = {
@@ -18221,13 +18482,13 @@ let
         sha512 = "LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==";
       };
     };
-    "d3-scale-3.2.3" = {
+    "d3-scale-3.2.4" = {
       name = "d3-scale";
       packageName = "d3-scale";
-      version = "3.2.3";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.3.tgz";
-        sha512 = "8E37oWEmEzj57bHcnjPVOBS3n4jqakOeuv1EDdQSiSrYnMCBdMd3nc4HtKk7uia8DUHcY/CGuJ42xxgtEYrX0g==";
+        url = "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.4.tgz";
+        sha512 = "PG6gtpbPCFqKbvdBEswQcJcTzHC8VEd/XzezF5e68KlkT4/ggELw/nR1tv863jY6ufKTvDlzCMZvhe06codbbA==";
       };
     };
     "d3-scale-chromatic-1.5.0" = {
@@ -18536,15 +18797,6 @@ let
         sha512 = "gz9RuhUxq3coYBrelzuFXCNyC579aO3Bm1Wlwa12/9tJr1NP0AAGxpHJYA1HZvt8X7ZdrtMzpFyNvs2Y9PFG6w==";
       };
     };
-    "data-uri-to-buffer-1.2.0" = {
-      name = "data-uri-to-buffer";
-      packageName = "data-uri-to-buffer";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz";
-        sha512 = "vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==";
-      };
-    };
     "data-uri-to-buffer-3.0.1" = {
       name = "data-uri-to-buffer";
       packageName = "data-uri-to-buffer";
@@ -19292,6 +19544,15 @@ let
         sha512 = "a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==";
       };
     };
+    "define-lazy-prop-2.0.0" = {
+      name = "define-lazy-prop";
+      packageName = "define-lazy-prop";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz";
+        sha512 = "Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==";
+      };
+    };
     "define-properties-1.1.3" = {
       name = "define-properties";
       packageName = "define-properties";
@@ -19346,15 +19607,6 @@ let
         sha1 = "c98d9bcef75674188e110969151199e39b1fa693";
       };
     };
-    "degenerator-1.0.4" = {
-      name = "degenerator";
-      packageName = "degenerator";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz";
-        sha1 = "fcf490a37ece266464d9cc431ab98c5819ced095";
-      };
-    };
     "degenerator-2.2.0" = {
       name = "degenerator";
       packageName = "degenerator";
@@ -19607,6 +19859,15 @@ let
         sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
       };
     };
+    "detect-newline-1.0.3" = {
+      name = "detect-newline";
+      packageName = "detect-newline";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-newline/-/detect-newline-1.0.3.tgz";
+        sha1 = "e97b1003877d70c09af1af35bfadff168de4920d";
+      };
+    };
     "detect-newline-2.1.0" = {
       name = "detect-newline";
       packageName = "detect-newline";
@@ -19634,6 +19895,15 @@ let
         sha512 = "qi86tE6hRcFHy8jI1m2VG+LaPUR1LhqDa5G8tVjuUXmOrpuAgqsA1pN0+ldgr3aKUH+QLI9hCY/OcRYisERejw==";
       };
     };
+    "detect-port-1.3.0" = {
+      name = "detect-port";
+      packageName = "detect-port";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz";
+        sha512 = "E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==";
+      };
+    };
     "detect-port-alt-1.1.6" = {
       name = "detect-port-alt";
       packageName = "detect-port-alt";
@@ -19850,13 +20120,22 @@ let
         sha512 = "IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==";
       };
     };
-    "diff2html-3.1.18" = {
+    "diff-sequences-25.2.6" = {
+      name = "diff-sequences";
+      packageName = "diff-sequences";
+      version = "25.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz";
+        sha512 = "Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==";
+      };
+    };
+    "diff2html-3.4.2" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.1.18";
+      version = "3.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.18.tgz";
-        sha512 = "1S3ubwa8+frMFsQ6rQLiXAkUtPoqzXdx6I/Q4I/a0pPXJQd1LfuqJY4s2ZUj2ahzODr/7nc6Bn1pWJrU1i9MEQ==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.4.2.tgz";
+        sha512 = "3H4gFSnyf+TI6hM+AIF1Y2Hk3RZ5/Rb+/IpafgDDX0loc/klLS8iQxbx7+ByfRccb09E+pTVt+g9UEM2L9ebPw==";
       };
     };
     "diff3-0.0.3" = {
@@ -20291,13 +20570,13 @@ let
         sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
       };
     };
-    "domelementtype-2.1.0" = {
+    "domelementtype-2.2.0" = {
       name = "domelementtype";
       packageName = "domelementtype";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz";
-        sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==";
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz";
+        sha512 = "DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==";
       };
     };
     "domexception-1.0.1" = {
@@ -20354,13 +20633,13 @@ let
         sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA==";
       };
     };
-    "domhandler-4.0.0" = {
+    "domhandler-4.1.0" = {
       name = "domhandler";
       packageName = "domhandler";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz";
-        sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA==";
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-4.1.0.tgz";
+        sha512 = "/6/kmsGlMY4Tup/nGVutdrK9yQi4YjWVcVeoQmixpzjOUK1U7pQkvAPHBJeUxOgxF0J8f8lwCJSlCfD0V4CMGQ==";
       };
     };
     "domino-2.1.6" = {
@@ -20408,13 +20687,13 @@ let
         sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
-    "domutils-2.5.0" = {
+    "domutils-2.5.1" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.5.0";
+      version = "2.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.5.0.tgz";
-        sha512 = "Ho16rzNMOFk2fPwChGh3D2D9OEHAfG19HgmRR2l+WLSsIstNsAYBzePH412bL0y5T44ejABIVfTHQ8nqi/tBCg==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.5.1.tgz";
+        sha512 = "hO1XwHMGAthA/1KL7c83oip/6UWo3FlUNIuWiWKltoiQ5oCOiqths8KknvY2jpOohUoUgnwa/+Rm7UpwpSbY/Q==";
       };
     };
     "dot-case-3.0.4" = {
@@ -20588,13 +20867,13 @@ let
         sha512 = "ic2BigbyUWx7/CBbsfGjf71zUNZB4edBGC3oRliSzsoNmvyVx3Ycfp1w3vp2Y78Ee0eIIkjIEO5KzW0zThDGaA==";
       };
     };
-    "draftlog-1.0.12" = {
+    "draftlog-1.0.13" = {
       name = "draftlog";
       packageName = "draftlog";
-      version = "1.0.12";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/draftlog/-/draftlog-1.0.12.tgz";
-        sha1 = "7db6a3c5b62106bb32dd4a35d67bcccb6c7d9da0";
+        url = "https://registry.npmjs.org/draftlog/-/draftlog-1.0.13.tgz";
+        sha512 = "GeMWOpXERBpfVDK6v7m0x1hPg8+g8ZsZWqJl2T17wHqrm4h8fnjiZmXcnCrmwogAc6R3YTxFXax15wezfuyCUw==";
       };
     };
     "drange-1.1.1" = {
@@ -20903,13 +21182,13 @@ let
         sha512 = "1sQ1DRtQGpglFhc3urD4olMJzt/wxlbnAAsf+WY2xHf5c50ZovivZvCXSpVgTOP9f4TzOMvelWyspyfhxQKHzQ==";
       };
     };
-    "electron-to-chromium-1.3.699" = {
+    "electron-to-chromium-1.3.708" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.699";
+      version = "1.3.708";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.699.tgz";
-        sha512 = "fjt43CPXdPYwD9ybmKbNeLwZBmCVdLY2J5fGZub7/eMPuiqQznOGNXv/wurnpXIlE7ScHnvG9Zi+H4/i6uMKmw==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.708.tgz";
+        sha512 = "+A8ggYZ5riOLMcVAuzHx6bforaPzaiLnW1QOMD2SlMYQVi7QQTyQ/WrlZoebIH9ikmgr+tLJGpNITFFCUiQcPw==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -21166,6 +21445,15 @@ let
         sha1 = "d4596e702734a93e40e9af864319eabd99ff2f0e";
       };
     };
+    "end-of-stream-1.1.0" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz";
+        sha1 = "e9353258baa9108965efc41cb0ef8ade2f3cfb07";
+      };
+    };
     "end-of-stream-1.4.4" = {
       name = "end-of-stream";
       packageName = "end-of-stream";
@@ -21238,15 +21526,6 @@ let
         sha512 = "21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA==";
       };
     };
-    "engine.io-4.0.6" = {
-      name = "engine.io";
-      packageName = "engine.io";
-      version = "4.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/engine.io/-/engine.io-4.0.6.tgz";
-        sha512 = "rf7HAVZpcRrcKEKddgIzYUnwg0g5HE1RvJaTLwkcfJmce4g+po8aMuE6vxzp6JwlK8FEq/vi0KWN6tA585DjaA==";
-      };
-    };
     "engine.io-4.1.1" = {
       name = "engine.io";
       packageName = "engine.io";
@@ -21481,13 +21760,13 @@ let
         sha512 = "46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==";
       };
     };
-    "envinfo-7.7.4" = {
+    "envinfo-7.8.1" = {
       name = "envinfo";
       packageName = "envinfo";
-      version = "7.7.4";
+      version = "7.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.7.4.tgz";
-        sha512 = "TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ==";
+        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz";
+        sha512 = "/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==";
       };
     };
     "eol-0.9.1" = {
@@ -21823,15 +22102,6 @@ let
         sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
       };
     };
-    "escape-regexp-0.0.1" = {
-      name = "escape-regexp";
-      packageName = "escape-regexp";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-regexp/-/escape-regexp-0.0.1.tgz";
-        sha1 = "f44bda12d45bbdf9cb7f862ee7e4827b3dd32254";
-      };
-    };
     "escape-regexp-component-1.0.2" = {
       name = "escape-regexp-component";
       packageName = "escape-regexp-component";
@@ -21967,13 +22237,13 @@ let
         sha512 = "W2aJbXpMNofUp0ztQaF40fveSsJBjlSCSWpy//gzfTvwC+USs/nceBrKmlJOiM8r1bLwP2EuYkCqArn/6QTIgg==";
       };
     };
-    "eslint-7.22.0" = {
+    "eslint-7.23.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.22.0";
+      version = "7.23.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz";
-        sha512 = "3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz";
+        sha512 = "kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==";
       };
     };
     "eslint-plugin-no-unsanitized-3.1.4" = {
@@ -22318,6 +22588,33 @@ let
         sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
       };
     };
+    "eth-lib-0.2.8" = {
+      name = "eth-lib";
+      packageName = "eth-lib";
+      version = "0.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz";
+        sha512 = "ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==";
+      };
+    };
+    "ethereum-bloom-filters-1.0.9" = {
+      name = "ethereum-bloom-filters";
+      packageName = "ethereum-bloom-filters";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.9.tgz";
+        sha512 = "GiK/RQkAkcVaEdxKVkPcG07PQ5vD7v2MFSHgZmBJSfMzNRHimntdBithsHAT89tAXnIpzVDWt8iaCD1DvkaxGg==";
+      };
+    };
+    "ethjs-unit-0.1.6" = {
+      name = "ethjs-unit";
+      packageName = "ethjs-unit";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz";
+        sha1 = "c665921e476e87bce2a9d588a6fe0405b2c41699";
+      };
+    };
     "eve-0.5.4" = {
       name = "eve";
       packageName = "eve";
@@ -22822,13 +23119,13 @@ let
         sha1 = "a793d3ac0cad4c6ab571e9968fbbab6cb2532929";
       };
     };
-    "expo-pwa-0.0.69" = {
+    "expo-pwa-0.0.70" = {
       name = "expo-pwa";
       packageName = "expo-pwa";
-      version = "0.0.69";
+      version = "0.0.70";
       src = fetchurl {
-        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.69.tgz";
-        sha512 = "M+pDqlgHNtPmDu0lxxKl9K/gWa0Ul7CBQtbTVe4I3EWI+rtRn+5VfEVH+1iUkavczC/vS14ovQxIlLEdfxF/pg==";
+        url = "https://registry.npmjs.org/expo-pwa/-/expo-pwa-0.0.70.tgz";
+        sha512 = "DLmNZFBpVsv6mxq43opEentBZbKWODJBwtQmQKtHVS0kzzfYH6X+wI2ZWC73cA16QiGxWROoPtLjtQUcpfSxcw==";
       };
     };
     "express-2.5.11" = {
@@ -22867,6 +23164,15 @@ let
         sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
       };
     };
+    "express-graphql-0.9.0" = {
+      name = "express-graphql";
+      packageName = "express-graphql";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-graphql/-/express-graphql-0.9.0.tgz";
+        sha512 = "wccd9Lb6oeJ8yHpUs/8LcnGjFUUQYmOG9A5BNLybRdCzGw0PeUrtBxsIR8bfiur6uSW4OvPkVDoYH06z6/N9+w==";
+      };
+    };
     "express-handlebars-3.1.0" = {
       name = "express-handlebars";
       packageName = "express-handlebars";
@@ -23245,6 +23551,24 @@ let
         sha512 = "t8HYqkuE3YEqNcyWlAfh55479aTxO+GpYwvQvJppYqyBfSmRdNIhzY2m09FKN/MENTzq4wH6heHOIvsPyMAwvQ==";
       };
     };
+    "fast-copy-2.1.1" = {
+      name = "fast-copy";
+      packageName = "fast-copy";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-copy/-/fast-copy-2.1.1.tgz";
+        sha512 = "Qod3DdRgFZ8GUIM6ygeoZYpQ0QLW9cf/FS9KhhjlYggcSZXWAemAw8BOCO5LuYCrR3Uj3qXDVTUzOUwG8C7beQ==";
+      };
+    };
+    "fast-crc32c-2.0.0" = {
+      name = "fast-crc32c";
+      packageName = "fast-crc32c";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-crc32c/-/fast-crc32c-2.0.0.tgz";
+        sha512 = "LIREwygxtxzHF11oLJ4xIVKu/ZWNgrj/QaGvaSD8ZggIsgCyCtSYevlrpWVqNau57ZwezV8K1HFBSjQ7FcRbTQ==";
+      };
+    };
     "fast-csv-4.3.6" = {
       name = "fast-csv";
       packageName = "fast-csv";
@@ -23461,13 +23785,13 @@ let
         sha512 = "483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==";
       };
     };
-    "fastpriorityqueue-0.7.0" = {
+    "fastpriorityqueue-0.7.1" = {
       name = "fastpriorityqueue";
       packageName = "fastpriorityqueue";
-      version = "0.7.0";
+      version = "0.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastpriorityqueue/-/fastpriorityqueue-0.7.0.tgz";
-        sha512 = "L5Je6LktYDK5aRJIAHO4NEyQXsihwe/+VEaI2qwyoxvuTPcyooLi9+MeLJnOzvEDwijxAXrrqqkV4cNgW55Rog==";
+        url = "https://registry.npmjs.org/fastpriorityqueue/-/fastpriorityqueue-0.7.1.tgz";
+        sha512 = "XJ+vbiXYjmxc32VEpXScAq7mBg3vqh90OjLfiuyQ0zAtXpgICdVgGjKHep1kLGQufyuCBiEYpl6ZKcw79chTpA==";
       };
     };
     "fastq-1.11.0" = {
@@ -23560,13 +23884,13 @@ let
         sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     };
-    "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==";
       };
     };
     "fetch-everywhere-1.0.5" = {
@@ -23731,6 +24055,15 @@ let
         sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
       };
     };
+    "file-type-16.3.0" = {
+      name = "file-type";
+      packageName = "file-type";
+      version = "16.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-type/-/file-type-16.3.0.tgz";
+        sha512 = "ZA0hV64611vJT42ltw0T9IDwHApQuxRdrmQZWTeDmeAUtZBBVSQW3nSQqhhW1cAgpXgqcJvm410BYHXJQ9AymA==";
+      };
+    };
     "file-type-3.9.0" = {
       name = "file-type";
       packageName = "file-type";
@@ -23929,13 +24262,13 @@ let
         sha1 = "9b311112bc6c6127a16e016c6c5d7f19e0805c5b";
       };
     };
-    "filter-obj-2.0.1" = {
+    "filter-obj-2.0.2" = {
       name = "filter-obj";
       packageName = "filter-obj";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.1.tgz";
-        sha512 = "yDEp513p7+iLdFHWBVdZFnRiOYwg8ZqmpaAiZCMjzqsbo7tCS4Qm4ulXOht337NGzkukKa9u3W4wqQ9tQPm3Ug==";
+        url = "https://registry.npmjs.org/filter-obj/-/filter-obj-2.0.2.tgz";
+        sha512 = "lO3ttPjHZRfjMcxWKb1j1eDhTFsu4meeR3lnMcnBFhk6RuLhvEiuALu2TlfL310ph4lCYYwgF/ElIjdP739tdg==";
       };
     };
     "finalhandler-1.1.1" = {
@@ -24091,6 +24424,15 @@ let
         sha512 = "YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==";
       };
     };
+    "findup-sync-4.0.0" = {
+      name = "findup-sync";
+      packageName = "findup-sync";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz";
+        sha512 = "6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==";
+      };
+    };
     "fined-1.2.0" = {
       name = "fined";
       packageName = "fined";
@@ -24136,13 +24478,13 @@ let
         sha512 = "VoPpKScAzvZ07jtciOY0bJieJwyd/VVCuo4fn3nBLh4iBagzYED7GLQeFBpMpy7HP5edEKTDo8yxaIrYrwb7hg==";
       };
     };
-    "fkill-7.1.0" = {
+    "fkill-7.1.1" = {
       name = "fkill";
       packageName = "fkill";
-      version = "7.1.0";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fkill/-/fkill-7.1.0.tgz";
-        sha512 = "l8zya4nRaXya4DJbSIkCCpJfE9+M0z8vbWDN+CynvNFIAWNZhBBS/G5c7t2l1NvtTpVcmCvnTm94bUICkRcqRQ==";
+        url = "https://registry.npmjs.org/fkill/-/fkill-7.1.1.tgz";
+        sha512 = "jFPrW3qmbPQxjbKUMGPTXbpWoX5plS0BMotAB7q9jwInFd/YdrY40/5Szt4gFroF2BfXHIVuMdQC40X8IcgL3w==";
       };
     };
     "flagged-respawn-1.0.1" = {
@@ -24298,13 +24640,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.147.0" = {
+    "flow-parser-0.148.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.147.0";
+      version = "0.148.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.147.0.tgz";
-        sha512 = "z+b/pgp2QLvsWJkzhKXU8yC5TmaNyXGRmHac3x0Swmn9uQESRXhNIJq9TPHKPPeWgFym33OLO+5BlIdy/tXRCQ==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.148.0.tgz";
+        sha512 = "m7YX6L2y0bW+bC+lH8mq3bWNS8zLdfXSkZR1Rrd9313abmBjEVYLez+D3NhYx8TnVcpJiiT28jbRVTnz/eG4ug==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -24595,13 +24937,13 @@ let
         sha512 = "DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==";
       };
     };
-    "fork-ts-checker-webpack-plugin-6.1.0" = {
+    "fork-ts-checker-webpack-plugin-6.2.0" = {
       name = "fork-ts-checker-webpack-plugin";
       packageName = "fork-ts-checker-webpack-plugin";
-      version = "6.1.0";
+      version = "6.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.1.0.tgz";
-        sha512 = "xLNufWQ1dfQUdZe48TGQlER/0OkcMnUB6lfbN9Tt13wsYyo+2DwcCbnOaPBo1PoFow/WL8pJPktGIdbJaHxAnw==";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.2.0.tgz";
+        sha512 = "DTNbOhq6lRdjYprukX54JMeYJgQ0zMow+R5BMLwWxEX2NAXthIkwnV8DBmsWjwNLSUItKZM4TCCJbtgrtKBu2Q==";
       };
     };
     "form-data-1.0.0-rc3" = {
@@ -24676,13 +25018,13 @@ let
         sha512 = "ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==";
       };
     };
-    "form-urlencoded-4.2.1" = {
+    "form-urlencoded-4.4.2" = {
       name = "form-urlencoded";
       packageName = "form-urlencoded";
-      version = "4.2.1";
+      version = "4.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.2.1.tgz";
-        sha512 = "0eFJroOH2qaqc/630d4YZpmsyKmh6sfq/1z3YMXvFab0O6teGnf8640C7gufikwbQJFaC6nPlG4d/GiYVN+Dcw==";
+        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.4.2.tgz";
+        sha512 = "6sZj0HI9tCcGuzC9W/nkHvNLAjOo1G/jjnNluChOGMwn75Po6g5nGYASxQUJeSQHLng1SpovGjQr1f4xz1PqQw==";
       };
     };
     "format-0.2.2" = {
@@ -24883,6 +25225,15 @@ let
         sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
       };
     };
+    "fs-exists-cached-1.0.0" = {
+      name = "fs-exists-cached";
+      packageName = "fs-exists-cached";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz";
+        sha1 = "cf25554ca050dc49ae6656b41de42258989dcbce";
+      };
+    };
     "fs-exists-sync-0.1.0" = {
       name = "fs-exists-sync";
       packageName = "fs-exists-sync";
@@ -25036,13 +25387,13 @@ let
         sha1 = "0b7815fc3201c6a69e14db98ce098c16935259eb";
       };
     };
-    "fs-monkey-1.0.1" = {
+    "fs-monkey-1.0.3" = {
       name = "fs-monkey";
       packageName = "fs-monkey";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.1.tgz";
-        sha512 = "fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==";
+        url = "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz";
+        sha512 = "cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==";
       };
     };
     "fs-routes-2.0.0" = {
@@ -25261,6 +25612,33 @@ let
         sha1 = "cbed2d20a40c1f5679a35908e2b9415733e78db9";
       };
     };
+    "gatsby-core-utils-2.2.0" = {
+      name = "gatsby-core-utils";
+      packageName = "gatsby-core-utils";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gatsby-core-utils/-/gatsby-core-utils-2.2.0.tgz";
+        sha512 = "7T6aVJAj0u/VUg+zKOLuxyZLS/8KDQcDeEFCkKY0d7Pd4wV/QqKRLljr0TRVkivRZHXyWQI9fM3ox5DzfkHdCQ==";
+      };
+    };
+    "gatsby-recipes-0.13.0" = {
+      name = "gatsby-recipes";
+      packageName = "gatsby-recipes";
+      version = "0.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gatsby-recipes/-/gatsby-recipes-0.13.0.tgz";
+        sha512 = "ni3J7wu45XfktDyxjL42zgjRzDqGQZX4/l541P5UbcAjdPAQJBP3qUgyPt2qhtenPYP/iZdbutXKxKjfkckcsQ==";
+      };
+    };
+    "gatsby-telemetry-2.2.0" = {
+      name = "gatsby-telemetry";
+      packageName = "gatsby-telemetry";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gatsby-telemetry/-/gatsby-telemetry-2.2.0.tgz";
+        sha512 = "Zx/MP+By8QHgm2fikfq6egmcrwREsWAg2wfqTo0CRax5WUQQWl57zX3b0bIJ+k0sFCvU4XuxP0XrytvzxkVViQ==";
+      };
+    };
     "gauge-1.2.7" = {
       name = "gauge";
       packageName = "gauge";
@@ -25603,15 +25981,6 @@ let
         sha512 = "A1B3Bh1UmL0bidM/YX2NsCOTnGJePL9rO/M+Mw3m9f2gUpfokS0hi5Eah0WSUEWZdZhIZtMjkIYS7mDfOqNHbg==";
       };
     };
-    "get-uri-2.0.4" = {
-      name = "get-uri";
-      packageName = "get-uri";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz";
-        sha512 = "v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==";
-      };
-    };
     "get-uri-3.0.2" = {
       name = "get-uri";
       packageName = "get-uri";
@@ -26053,13 +26422,13 @@ let
         sha512 = "wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==";
       };
     };
-    "global-agent-2.1.12" = {
+    "global-agent-2.2.0" = {
       name = "global-agent";
       packageName = "global-agent";
-      version = "2.1.12";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/global-agent/-/global-agent-2.1.12.tgz";
-        sha512 = "caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==";
+        url = "https://registry.npmjs.org/global-agent/-/global-agent-2.2.0.tgz";
+        sha512 = "+20KpaW6DDLqhG7JDiJpD1JvNvb8ts+TNl7BPOYcURqCrXqnN1Vf+XVOrkKJAFPqfX+oEhsdzOj1hLWkBTdNJg==";
       };
     };
     "global-cache-dir-1.0.1" = {
@@ -26360,13 +26729,13 @@ let
         sha1 = "2edeeb958084d0f8ea7988e5d995b1c7dfc14777";
       };
     };
-    "goldengate-10.0.2" = {
+    "goldengate-10.0.3" = {
       name = "goldengate";
       packageName = "goldengate";
-      version = "10.0.2";
+      version = "10.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/goldengate/-/goldengate-10.0.2.tgz";
-        sha512 = "lPzyIIgEIMC9mDfUQ/F3+5Y+UlJKxvmWOSEjomb9oNyQ25D3oaMmqv2TIPjJe9nS2hP9XzTRHImh4WQKWE3Wmw==";
+        url = "https://registry.npmjs.org/goldengate/-/goldengate-10.0.3.tgz";
+        sha512 = "zNvkjnJQWbFWtK7or4CtX0WMy2n5AfMVnob5ipf+AznwLxKX8KyqY9W4bzYpVh6Xjm9N21ZUbubsPheV3mA4qQ==";
       };
     };
     "gonzales-pe-4.3.0" = {
@@ -26648,6 +27017,24 @@ let
         sha512 = "GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w==";
       };
     };
+    "graphql-15.5.0" = {
+      name = "graphql";
+      packageName = "graphql";
+      version = "15.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql/-/graphql-15.5.0.tgz";
+        sha512 = "OmaM7y0kaK31NKG31q4YbD2beNYa6jBBKtMFT6gLYJljHLJr42IqJ8KX08u3Li/0ifzTU5HjmoOOrwa5BRLeDA==";
+      };
+    };
+    "graphql-compose-7.25.1" = {
+      name = "graphql-compose";
+      packageName = "graphql-compose";
+      version = "7.25.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-compose/-/graphql-compose-7.25.1.tgz";
+        sha512 = "TPXTe1BoQkMjp/MH93yA0SQo8PiXxJAv6Eo6K/+kpJELM9l2jZnd5PCduweuXFcKv+nH973wn/VYzYKDMQ9YoQ==";
+      };
+    };
     "graphql-config-3.0.3" = {
       name = "graphql-config";
       packageName = "graphql-config";
@@ -26657,13 +27044,13 @@ let
         sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
-    "graphql-extensions-0.12.8" = {
+    "graphql-extensions-0.13.0" = {
       name = "graphql-extensions";
       packageName = "graphql-extensions";
-      version = "0.12.8";
+      version = "0.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.8.tgz";
-        sha512 = "xjsSaB6yKt9jarFNNdivl2VOx52WySYhxPgf8Y16g6GKZyAzBoIFiwyGw5PJDlOSUa6cpmzn6o7z8fVMbSAbkg==";
+        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.13.0.tgz";
+        sha512 = "Bb7E97nvfX4gtrIdZ/i5YFlqOd6MGzrw8ED+t4wQVraYje6NQ+8P8MHMOV2WZLfbW8zsNTx8NdnnlbsdH5siag==";
       };
     };
     "graphql-subscriptions-1.2.1" = {
@@ -27413,15 +27800,6 @@ let
         sha512 = "P3uxm+8bnwcfAS/XpGie9wMmQXAQqsYhgQQKRwmWH/V6chiq0lmTy8KjQRJmYjusdMtNKGCUksdILSZy1suSpQ==";
       };
     };
-    "hast-util-to-html-7.1.2" = {
-      name = "hast-util-to-html";
-      packageName = "hast-util-to-html";
-      version = "7.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-7.1.2.tgz";
-        sha512 = "pu73bvORzdF6XZgwl9eID/0RjBb/jtRfoGRRSykpR1+o9rCdiAHpgkSukZsQBRlIqMg6ylAcd7F0F7myJUb09Q==";
-      };
-    };
     "hast-util-to-nlcst-1.2.8" = {
       name = "hast-util-to-nlcst";
       packageName = "hast-util-to-nlcst";
@@ -27593,13 +27971,22 @@ let
         sha1 = "b86ce808598e8a9d1892c571f3cedd86fc9f0653";
       };
     };
-    "highlight.js-10.7.1" = {
+    "hicat-0.8.0" = {
+      name = "hicat";
+      packageName = "hicat";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hicat/-/hicat-0.8.0.tgz";
+        sha512 = "om8L9O5XwqeSdwl5NtHgrzK3wcF4fT9T4gb/NktoH8EyoZipas/tvUZLV48xT7fQfMYr9qvb0WEutqdf0LWSqA==";
+      };
+    };
+    "highlight.js-10.7.2" = {
       name = "highlight.js";
       packageName = "highlight.js";
-      version = "10.7.1";
+      version = "10.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.1.tgz";
-        sha512 = "S6G97tHGqJ/U8DsXcEdnACbirtbx58Bx9CzIVeYli8OuswCfYI/LsXH2EiGcoGio1KAC3x4mmUwulOllJ2ZyRA==";
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.2.tgz";
+        sha512 = "oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg==";
       };
     };
     "highlight.js-8.2.0" = {
@@ -27809,15 +28196,6 @@ let
         sha1 = "c1ce7a3168c8c6614033a4b5f7877f3b225f9c38";
       };
     };
-    "html-comment-regex-1.1.2" = {
-      name = "html-comment-regex";
-      packageName = "html-comment-regex";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha512 = "P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==";
-      };
-    };
     "html-encoding-sniffer-1.0.2" = {
       name = "html-encoding-sniffer";
       packageName = "html-encoding-sniffer";
@@ -28170,13 +28548,13 @@ let
         sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
-    "http-proxy-middleware-1.0.6" = {
+    "http-proxy-middleware-1.1.0" = {
       name = "http-proxy-middleware";
       packageName = "http-proxy-middleware";
-      version = "1.0.6";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.0.6.tgz";
-        sha512 = "NyL6ZB6cVni7pl+/IT2W0ni5ME00xR0sN27AQZZrpKn1b+qRh+mLbBxIq9Cq1oGfmTc7BUq4HB77mxwCaxAYNg==";
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.1.0.tgz";
+        sha512 = "OnjU5vyVgcZVe2AjLJyMrk8YLNOC2lspCHirB5ldM+B/dwEfZ5bgVTrFyzE9R7xRWAP/i/FXtvIqKjTNEZBhBg==";
       };
     };
     "http-signature-0.11.0" = {
@@ -28998,6 +29376,15 @@ let
         sha1 = "f9393471c18a79d1724f863fa38b586370ade2a5";
       };
     };
+    "inline-style-parser-0.1.1" = {
+      name = "inline-style-parser";
+      packageName = "inline-style-parser";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz";
+        sha512 = "7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==";
+      };
+    };
     "innertext-1.0.3" = {
       name = "innertext";
       packageName = "innertext";
@@ -29340,6 +29727,15 @@ let
         sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
       };
     };
+    "inversify-5.0.5" = {
+      name = "inversify";
+      packageName = "inversify";
+      version = "5.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inversify/-/inversify-5.0.5.tgz";
+        sha512 = "60QsfPz8NAU/GZqXu8hJ+BhNf/C/c+Hp0eDc6XMIJTxBiP36AQyyQKpBkOVTLWBFDQWYVHpbbEuIsHu9dLuJDA==";
+      };
+    };
     "invert-kv-1.0.0" = {
       name = "invert-kv";
       packageName = "invert-kv";
@@ -29376,6 +29772,15 @@ let
         sha512 = "/rNd9R/qcq+4QakROCQGnOJbiQ9BKwtOVF+OWu+3pYVYgPydnAMA++VCcKxZYFCGDC70Ee+9oUvIlXI8UQoiqQ==";
       };
     };
+    "invoices-1.1.7" = {
+      name = "invoices";
+      packageName = "invoices";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invoices/-/invoices-1.1.7.tgz";
+        sha512 = "AMCHpf/7sJOjeRbTgCLLvhH41ZnUv0D809ZFJRhR2dGOfp8GxJHzfnNqtgYGxQiW0+dVK2ooBVyR+dqoEQs6mw==";
+      };
+    };
     "iota-array-1.0.0" = {
       name = "iota-array";
       packageName = "iota-array";
@@ -29844,13 +30249,13 @@ let
         sha1 = "f04374d4eee5310e9a8e113bf1495411e46176a1";
       };
     };
-    "is-docker-2.1.1" = {
+    "is-docker-2.2.0" = {
       name = "is-docker";
       packageName = "is-docker";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
-        sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.2.0.tgz";
+        sha512 = "K4GwB4i/HzhAzwP/XSlspzRdFTI9N8OxJOyOU7Y5Rz+p+WBokXWVWblaJeBkggthmoSV0OoGTH5thJNvplpkvQ==";
       };
     };
     "is-dotfile-1.0.3" = {
@@ -30024,6 +30429,15 @@ let
         sha1 = "6ca8b07b99c77998025900e555ced8ed80879a83";
       };
     };
+    "is-hex-prefixed-1.0.0" = {
+      name = "is-hex-prefixed";
+      packageName = "is-hex-prefixed";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz";
+        sha1 = "7d8d37e6ad77e5d127148913c573e082d777f554";
+      };
+    };
     "is-hexadecimal-1.0.4" = {
       name = "is-hexadecimal";
       packageName = "is-hexadecimal";
@@ -30366,6 +30780,15 @@ let
         sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==";
       };
     };
+    "is-plain-obj-3.0.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz";
+        sha512 = "gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==";
+      };
+    };
     "is-plain-object-2.0.4" = {
       name = "is-plain-object";
       packageName = "is-plain-object";
@@ -30663,15 +31086,6 @@ let
         sha512 = "3vcJecUUrpgCqc/ca0aWeNu64UGgxcvO60K/Fkr1N6RSvfGCTU60UKN68JDmKokgba0rFFJs12EnzOQa14ubKQ==";
       };
     };
-    "is-svg-3.0.0" = {
-      name = "is-svg";
-      packageName = "is-svg";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz";
-        sha512 = "gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==";
-      };
-    };
     "is-symbol-1.0.3" = {
       name = "is-symbol";
       packageName = "is-symbol";
@@ -31221,6 +31635,15 @@ let
         sha1 = "7a549bbd9ffe1585b0cd0a191e203055bee574b4";
       };
     };
+    "jest-diff-25.5.0" = {
+      name = "jest-diff";
+      packageName = "jest-diff";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz";
+        sha512 = "z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==";
+      };
+    };
     "jest-get-type-24.9.0" = {
       name = "jest-get-type";
       packageName = "jest-get-type";
@@ -31320,13 +31743,13 @@ let
         sha512 = "0soPJif+yjmzmOF+4cF2hyhxUWWpXpQntsm2joJXFFoRcQiPzsG4dbLKYqYPT3Fc6PjZ8MaLtCkDqqckVSfmRw==";
       };
     };
-    "jitdb-2.3.4" = {
+    "jitdb-2.3.5" = {
       name = "jitdb";
       packageName = "jitdb";
-      version = "2.3.4";
+      version = "2.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jitdb/-/jitdb-2.3.4.tgz";
-        sha512 = "KK20bNiuzIekY7KzH4DvKDMGOu4yGAfiPFLE6GbFZUWurXOQJAbfjvbqKmNHOTE6FA5o8pPg2dz8OvJyjByWEQ==";
+        url = "https://registry.npmjs.org/jitdb/-/jitdb-2.3.5.tgz";
+        sha512 = "Z22GkEA2GJqnJZX3sIErn/v4rW4fyk/Vj2nOJfVXhCfgZkhrGzT0MVRF9RlE4pKmm010wfp09n9jLli5bpKQ7g==";
       };
     };
     "jju-1.4.0" = {
@@ -31374,6 +31797,15 @@ let
         sha512 = "O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==";
       };
     };
+    "joi-17.4.0" = {
+      name = "joi";
+      packageName = "joi";
+      version = "17.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/joi/-/joi-17.4.0.tgz";
+        sha512 = "F4WiW2xaV6wc1jxete70Rw4V/VuMd6IN+a5ilZsxG4uYtUXWu2kq9W5P2dz30e7Gmw8RCbY/u/uk+dMPma9tAg==";
+      };
+    };
     "join-component-1.1.0" = {
       name = "join-component";
       packageName = "join-component";
@@ -31419,15 +31851,6 @@ let
         sha1 = "f6f9f099f9882bad84585c6b1004344d6fadb33c";
       };
     };
-    "jquery-3.5.1" = {
-      name = "jquery";
-      packageName = "jquery";
-      version = "3.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz";
-        sha512 = "XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==";
-      };
-    };
     "jquery-3.6.0" = {
       name = "jquery";
       packageName = "jquery";
@@ -31500,6 +31923,15 @@ let
         sha512 = "pbKLsbCfi7kriM3s1J4DDCo7jQkI58zPLHi0heXPzPlj0hjUsm+FesPUbE0DSbIVIK503A36aUBoCN7eMFedkA==";
       };
     };
+    "js-sha3-0.8.0" = {
+      name = "js-sha3";
+      packageName = "js-sha3";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz";
+        sha512 = "gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==";
+      };
+    };
     "js-string-escape-1.0.1" = {
       name = "js-string-escape";
       packageName = "js-string-escape";
@@ -31671,13 +32103,13 @@ let
         sha512 = "fAl1W0/7T2G5vURSyxBzrJ1LSdQn6Tr5UX/xD4PXDx/PDgwygedfW6El/KIj3xJ7FU61TTYnc/l/B7P49Eqt6g==";
       };
     };
-    "jsdom-16.5.1" = {
+    "jsdom-16.5.2" = {
       name = "jsdom";
       packageName = "jsdom";
-      version = "16.5.1";
+      version = "16.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz";
-        sha512 = "pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==";
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.5.2.tgz";
+        sha512 = "JxNtPt9C1ut85boCbJmffaQ06NBnzkQY/MWO3YxPW8IWS38A26z+B1oBvA9LwKrytewdfymnhi4UNH3/RAgZrg==";
       };
     };
     "jsdom-7.2.2" = {
@@ -31716,40 +32148,40 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.26.0" = {
+    "jsii-1.27.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.26.0";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.26.0.tgz";
-        sha512 = "ZUu5N8+u12VyNkPgSgvVzIhZ+aEAd531zDZK4qkth7UsGNhSy4zBz9BJMSSKnaVV0oR6Pvehhg5DJ3dCu8qJrw==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.27.0.tgz";
+        sha512 = "EP1NIeheeUw4WpGESkOK7Kb/bT9bBlOunlQuQb+KSMKYq+Zh8uWuFxzTYbt3pg/UdaVis5YD0jsdVgQFVU7ufA==";
       };
     };
-    "jsii-pacmak-1.26.0" = {
+    "jsii-pacmak-1.27.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.26.0";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.26.0.tgz";
-        sha512 = "KOKOIazxddh8CuyuLMoBURW2bj3prhzyT0qF5ojUhHrbZeuH3eulF/Sn5PaIAadmQdmCiu69DYJe2JIwY/zwjw==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.27.0.tgz";
+        sha512 = "K19kyUvFKpg6l5VaTkwFz4pgnrOR/vH69iqE6YWSJVY1i3S7dTA2mhG+dVbeB96MMnx7IUno0iKT3br/aWCtew==";
       };
     };
-    "jsii-reflect-1.26.0" = {
+    "jsii-reflect-1.27.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.26.0";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.26.0.tgz";
-        sha512 = "mlu97Xs2M+YCq3Z8z2vzLYOe3XVC3T0YBabvJjkKoNYdH6F/S5zQMVdGwfHEXv1asFv7PrrVu46Zf/dKnqULcw==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.27.0.tgz";
+        sha512 = "+E2VhlDxvEcsBj8LdBaJ0OFS6+mDaWbDNmUSZ7UPIJxDPQzRFMGlMUyymz8J0f3Y2UWKiXgLvBhzEvF9UA4fCQ==";
       };
     };
-    "jsii-rosetta-1.26.0" = {
+    "jsii-rosetta-1.27.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.26.0";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.26.0.tgz";
-        sha512 = "J/VQR8j/mD4Q5qGF0JmfvOJeNWIx0I158nvo6FsnC8aYmHyIpBPmlpKWZzUGC8fHxoD3mC8oeiFLp2Yv8BNtvQ==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.27.0.tgz";
+        sha512 = "swQz1lsB5k2v2euJfxYOtRy+SHnYS9WJ2XRkstY8/j0xMFOLNNXoWwSDrK97h3qis+yUuCHZlI6DNQzQh1NutA==";
       };
     };
     "jsii-srcmak-0.1.255" = {
@@ -31815,6 +32247,15 @@ let
         sha512 = "FD/SedD78LCdSvJaOUQAXseT8oQBb5z6IVYaQaCrVUlu9zOAr1BDdKyVYQaSD/GDsAMrXpKcOyBD4LIl8nfjHw==";
       };
     };
+    "json-file-plus-3.3.1" = {
+      name = "json-file-plus";
+      packageName = "json-file-plus";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-file-plus/-/json-file-plus-3.3.1.tgz";
+        sha512 = "wo0q1UuiV5NsDPQDup1Km8IwEeqe+olr8tkWxeJq9Bjtcp7DZ0l+yrg28fSC3DEtrE311mhTZ54QGS6oiqnZEA==";
+      };
+    };
     "json-merge-patch-0.2.3" = {
       name = "json-merge-patch";
       packageName = "json-merge-patch";
@@ -32653,13 +33094,13 @@ let
         sha1 = "1e80454250018dbad4c3fe94497d6e67b6269c77";
       };
     };
-    "keytar-7.4.0" = {
+    "keytar-7.6.0" = {
       name = "keytar";
       packageName = "keytar";
-      version = "7.4.0";
+      version = "7.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keytar/-/keytar-7.4.0.tgz";
-        sha512 = "nELmc35YjSE4ZNSFaID/743CgDt/MdV4JLX7rRewAh9mKvU72RtF3uJMY0MdMpwdDYZhmD8FSdRCD1J97lEyVg==";
+        url = "https://registry.npmjs.org/keytar/-/keytar-7.6.0.tgz";
+        sha512 = "H3cvrTzWb11+iv0NOAnoNAPgEapVZnYLVHZQyxmh7jdmVfR/c0jNNFEZ6AI38W/4DeTGTaY66ZX4Z1SbfKPvCQ==";
       };
     };
     "keyv-3.0.0" = {
@@ -33328,6 +33769,15 @@ let
         sha512 = "9HaAeBGk1nKTRFRHkt7nzxqCvnkWTjn1pdjKgcUnZxj0FyOP4CnhgFhMdrFfgNsukijBGyBLpP2m2uKT1vuWhQ==";
       };
     };
+    "lie-3.1.1" = {
+      name = "lie";
+      packageName = "lie";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz";
+        sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
+      };
+    };
     "lie-3.3.0" = {
       name = "lie";
       packageName = "lie";
@@ -33337,15 +33787,6 @@ let
         sha512 = "UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==";
       };
     };
-    "liftoff-2.5.0" = {
-      name = "liftoff";
-      packageName = "liftoff";
-      version = "2.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz";
-        sha1 = "2009291bb31cea861bbf10a7c15a28caf75c31ec";
-      };
-    };
     "liftoff-3.1.0" = {
       name = "liftoff";
       packageName = "liftoff";
@@ -33355,6 +33796,15 @@ let
         sha512 = "DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog==";
       };
     };
+    "liftup-3.0.1" = {
+      name = "liftup";
+      packageName = "liftup";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz";
+        sha512 = "yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==";
+      };
+    };
     "lighthouse-logger-1.2.0" = {
       name = "lighthouse-logger";
       packageName = "lighthouse-logger";
@@ -33364,13 +33814,22 @@ let
         sha512 = "wzUvdIeJZhRsG6gpZfmSCfysaxNEr43i+QT+Hie94wvHDKFLi4n7C2GqZ4sTC+PH5b5iktmXJvU87rWvhP3lHw==";
       };
     };
-    "lightning-3.2.20" = {
+    "lightning-3.3.1" = {
       name = "lightning";
       packageName = "lightning";
-      version = "3.2.20";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-3.2.20.tgz";
-        sha512 = "VbuYUKrESdUd2mWzFannAn/Bd0DZ0fkO73LeemJ7JS2JaIItXHoEZTAHWg+Ekf+r2rk4+v7NLurrfCmGpNdD8A==";
+        url = "https://registry.npmjs.org/lightning/-/lightning-3.3.1.tgz";
+        sha512 = "lzj7oODpX7XS/4qHGBG/VAMirBDK/rbWS8S9pTCSUV9ZknuXg2loCkDyPQuB3vC2MMt1QOsXn4oQUtxpPtSa1g==";
+      };
+    };
+    "lightning-3.3.2" = {
+      name = "lightning";
+      packageName = "lightning";
+      version = "3.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lightning/-/lightning-3.3.2.tgz";
+        sha512 = "DPZc9695RCNYivfO9/rhQuQ9B5Fn5N89ct2UrqJiuB43VocBOjn+KLjhSGcxbzCLtFtmGuZupvJFbNXnCVEICw==";
       };
     };
     "limit-spawn-0.0.3" = {
@@ -33499,40 +33958,49 @@ let
         sha512 = "04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==";
       };
     };
-    "ln-accounting-4.2.6" = {
+    "ln-accounting-4.2.7" = {
       name = "ln-accounting";
       packageName = "ln-accounting";
-      version = "4.2.6";
+      version = "4.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-accounting/-/ln-accounting-4.2.6.tgz";
-        sha512 = "q8Z9hAkl0Dmkj5kJuQDUWkEFT2Ja5YDQrpvBEpS5Pe4NNrI1PSHM6jYb3t9cDqhq/qkKyCNHZBY7QDLWtXJABg==";
+        url = "https://registry.npmjs.org/ln-accounting/-/ln-accounting-4.2.7.tgz";
+        sha512 = "joCN96uuTS53sfJQ5XBFUsKetXk6GOc7NsXqmPmjn/78swpqkxWLar30BvbweGTIveSvDb9xfCT7v1PfSxgiJg==";
       };
     };
-    "ln-service-51.3.1" = {
+    "ln-service-51.5.0" = {
       name = "ln-service";
       packageName = "ln-service";
-      version = "51.3.1";
+      version = "51.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-51.3.1.tgz";
-        sha512 = "V5Q1rZbN4GY1PfxosQ1pWyyhZF/qPWivf5whL0lDWBrJ4xgsemYRkg5ce4YaUNLYv/BXfMrQVyw09w+tyq+QnQ==";
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-51.5.0.tgz";
+        sha512 = "Q22CcKJ+52mExGNvOmeEVBza82LGdbLkFVzfMjC9oPlP5DikS+sdlK5GZM/Dc5HFN5pwK7y9Ke7gRue/UxHwbw==";
       };
     };
-    "ln-sync-0.4.4" = {
+    "ln-service-51.6.0" = {
+      name = "ln-service";
+      packageName = "ln-service";
+      version = "51.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-51.6.0.tgz";
+        sha512 = "Bzvn8yv6mnlxJewWbloZOKpX4MEGRjCrALpDHOvA9EVnz5xeu5zbKmVyWElAhFIB5iXwX0xz6/8qhaJVFSyF9A==";
+      };
+    };
+    "ln-sync-0.4.5" = {
       name = "ln-sync";
       packageName = "ln-sync";
-      version = "0.4.4";
+      version = "0.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-0.4.4.tgz";
-        sha512 = "E9Smgc7vzhUn1wSQ8CzUXBfPqD2PNdXOM84nfVv/kbRSdJ87JvCbE0ksxv76X3CjgwbnC++B1946bR96ymK+Ig==";
+        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-0.4.5.tgz";
+        sha512 = "ETaASkbv5v2gcrob/xonsjy0deKSxIHfKOTfOXQicxhZed02plQ2oAUx/K3yxIhRnm7YS45Z/gYQLxUqHkI4ow==";
       };
     };
-    "ln-telegram-3.2.1" = {
+    "ln-telegram-3.2.2" = {
       name = "ln-telegram";
       packageName = "ln-telegram";
-      version = "3.2.1";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.2.1.tgz";
-        sha512 = "LpnCfPrafA95mjyYnmoJI03bgGOX3X/2uG8BVZRNOSGrqVKjGVUL6cx849L7lRoHLtbWM6Rge3uZ901Fkx5Bfg==";
+        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.2.2.tgz";
+        sha512 = "6gJmRkOpcsyARrCL0+O66xgVlZVRd1erLSw1/dsiGXgUsaSuZ4mFpxE40j6eXZZZxwcFcYNE06Q79BMtsIvoqA==";
       };
     };
     "load-bmfont-1.4.1" = {
@@ -33544,13 +34012,13 @@ let
         sha512 = "8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==";
       };
     };
-    "load-ip-set-2.1.2" = {
+    "load-ip-set-2.2.1" = {
       name = "load-ip-set";
       packageName = "load-ip-set";
-      version = "2.1.2";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/load-ip-set/-/load-ip-set-2.1.2.tgz";
-        sha512 = "AgO3AGwWPru+tJboq0l2+hIkFqbAE3tbG74z2SCpt+c3h0PFI3t2mHamS707OzSc3b+GBVBKjZxPFz97YZNisA==";
+        url = "https://registry.npmjs.org/load-ip-set/-/load-ip-set-2.2.1.tgz";
+        sha512 = "G3hQXehU2LTOp52e+lPffpK4EvidfjwbvHaGqmFcp4ptiZagR4xFdL+D08kMX906dxeqZyWhfonEjdUxrWcldg==";
       };
     };
     "load-json-file-1.1.0" = {
@@ -33661,6 +34129,15 @@ let
         sha512 = "uxKD2HIj042/HBx77NBcmEPsD+hxCgAtjEWlYNScuUjIsh/62Uyu39GOR68TBR68v+jqDL9zfftCWoUo4y03sQ==";
       };
     };
+    "localforage-1.9.0" = {
+      name = "localforage";
+      packageName = "localforage";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz";
+        sha512 = "rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==";
+      };
+    };
     "locate-java-home-1.1.2" = {
       name = "locate-java-home";
       packageName = "locate-java-home";
@@ -33706,6 +34183,15 @@ let
         sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
       };
     };
+    "lock-1.1.0" = {
+      name = "lock";
+      packageName = "lock";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lock/-/lock-1.1.0.tgz";
+        sha1 = "53157499d1653b136ca66451071fca615703fa55";
+      };
+    };
     "locks-0.2.2" = {
       name = "locks";
       packageName = "locks";
@@ -34975,6 +35461,15 @@ let
         sha1 = "12306422f63324aed8483d3f38332b5f670547a0";
       };
     };
+    "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";
+      };
+    };
     "lodash.unescape-4.0.1" = {
       name = "lodash.unescape";
       packageName = "lodash.unescape";
@@ -36010,13 +36505,13 @@ let
         sha512 = "UB/IbzjWazwTlNAX0pvWNlJS8NKsOQ4syrXZQ/C72j+jirrsjVRT627lCaylrKJFBQWfRsPmIVQie8x38DEhAQ==";
       };
     };
-    "markdown-link-extractor-1.2.6" = {
+    "markdown-link-extractor-1.2.7" = {
       name = "markdown-link-extractor";
       packageName = "markdown-link-extractor";
-      version = "1.2.6";
+      version = "1.2.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.6.tgz";
-        sha512 = "WDiwWTzR/zk0n0As7q1KCB1Jd/T7nJ7IEr6E1QKZR1Agd/xRmB0FjM2IrtC7IZ1ZwxflBE0aLe4pkX8d+rzV8w==";
+        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.7.tgz";
+        sha512 = "gFwyqKEMPAwXiW2n7ZeM26bJL9WfkYnzP1O2lxFvqenefzPQE4A5XjidqbotOyDA5qUzjOHeqYoaGa2qb4B4Og==";
       };
     };
     "markdown-serve-0.3.3" = {
@@ -36046,6 +36541,15 @@ let
         sha512 = "1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==";
       };
     };
+    "markdown-table-2.0.0" = {
+      name = "markdown-table";
+      packageName = "markdown-table";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz";
+        sha512 = "Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==";
+      };
+    };
     "marked-0.3.19" = {
       name = "marked";
       packageName = "marked";
@@ -36073,13 +36577,13 @@ let
         sha512 = "EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==";
       };
     };
-    "marked-1.2.9" = {
+    "marked-2.0.1" = {
       name = "marked";
       packageName = "marked";
-      version = "1.2.9";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-1.2.9.tgz";
-        sha512 = "H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw==";
+        url = "https://registry.npmjs.org/marked/-/marked-2.0.1.tgz";
+        sha512 = "5+/fKgMv2hARmMW7DOpykr2iLhl0NgjyELk5yn92iE7z8Se1IS9n3UsFm86hFXIkvMBmVxki8+ckcpjBeyo/hw==";
       };
     };
     "marked-terminal-3.3.0" = {
@@ -36316,6 +36820,15 @@ let
         sha512 = "3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==";
       };
     };
+    "mdast-util-compact-2.0.1" = {
+      name = "mdast-util-compact";
+      packageName = "mdast-util-compact";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz";
+        sha512 = "7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==";
+      };
+    };
     "mdast-util-from-markdown-0.8.5" = {
       name = "mdast-util-from-markdown";
       packageName = "mdast-util-from-markdown";
@@ -36451,6 +36964,15 @@ let
         sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
       };
     };
+    "meant-1.0.3" = {
+      name = "meant";
+      packageName = "meant";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meant/-/meant-1.0.3.tgz";
+        sha512 = "88ZRGcNxAq4EH38cQ4D85PM57pikCwS8Z99EWHODxN7KBY+UuPiqzRTtZzS8KTXO/ywSWbdjjJST2Hly/EQxLw==";
+      };
+    };
     "media-typer-0.3.0" = {
       name = "media-typer";
       packageName = "media-typer";
@@ -36550,13 +37072,13 @@ let
         sha512 = "BH6QEqCXSqGeX48V7zu+e3cMwHU7x640NB8Zk8VNvVZniz+p4FK60pMx/3yfkzo6miI6G3a8pH6z7FeuIzqrzA==";
       };
     };
-    "memfs-3.2.0" = {
+    "memfs-3.2.2" = {
       name = "memfs";
       packageName = "memfs";
-      version = "3.2.0";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/memfs/-/memfs-3.2.0.tgz";
-        sha512 = "f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A==";
+        url = "https://registry.npmjs.org/memfs/-/memfs-3.2.2.tgz";
+        sha512 = "RE0CwmIM3CEvpcdK3rZ19BC4E6hv9kADkMN5rPduRak58cNArWLi/9jFLsa4rhsjfVxMP3v0jO7FHXq7SvFY5Q==";
       };
     };
     "memoize-one-5.1.1" = {
@@ -37054,13 +37576,13 @@ let
         sha512 = "NQuiYA0lw+eFDtSG4+c7ao3RG9dM4P0Kx/sn8OLyPhxtIc6k+9n14k5VfLxRKfAxYRTo8c5PLZPaRNmslGWxJw==";
       };
     };
-    "micromark-extension-mdxjs-esm-0.3.0" = {
+    "micromark-extension-mdxjs-esm-0.3.1" = {
       name = "micromark-extension-mdxjs-esm";
       packageName = "micromark-extension-mdxjs-esm";
-      version = "0.3.0";
+      version = "0.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-0.3.0.tgz";
-        sha512 = "ZkI/cneSGQFdmB3iOT34n9Zq0Gc6vknAd1o2G7SaiCUY5D9a5ZCvGP/vCjHmlB7f2Y4b4+O1YMLywxYmQeUFwQ==";
+        url = "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-0.3.1.tgz";
+        sha512 = "tuLgcELrgY1a5tPxjk+MrI3BdYtwW67UaHZdzKiDYD8loNbxwIscfdagI6A2BKuAkrfeyHF6FW3B8KuDK3ZMXw==";
       };
     };
     "micromatch-2.3.11" = {
@@ -37216,13 +37738,13 @@ let
         sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
-    "mime-db-1.46.0" = {
+    "mime-db-1.47.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.46.0";
+      version = "1.47.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz";
-        sha512 = "svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz";
+        sha512 = "QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==";
       };
     };
     "mime-types-2.1.18" = {
@@ -37252,13 +37774,13 @@ let
         sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
-    "mime-types-2.1.29" = {
+    "mime-types-2.1.30" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.29";
+      version = "2.1.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz";
-        sha512 = "Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz";
+        sha512 = "crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==";
       };
     };
     "mimic-fn-1.2.0" = {
@@ -37639,6 +38161,15 @@ let
         sha512 = "mgw+DMZlhMS4PpprF6dl7ZoeZq5GGcAuWnrg5e12MvaGauc4jzWsDZtVGRCktsiQczOEUr2K5teKbE5k44RlOg==";
       };
     };
+    "mitt-1.2.0" = {
+      name = "mitt";
+      packageName = "mitt";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz";
+        sha512 = "r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==";
+      };
+    };
     "mixin-deep-1.3.2" = {
       name = "mixin-deep";
       packageName = "mixin-deep";
@@ -38323,6 +38854,15 @@ let
         sha512 = "0FsgP/WVq4mKyjolIyX+Z9Bd+3WS8GOwoUTyKXT5cTYMGeauNTi2HPCwERqseC1IHAy0Z7MDZnJBfjabd4O8GQ==";
       };
     };
+    "mustache-4.2.0" = {
+      name = "mustache";
+      packageName = "mustache";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz";
+        sha512 = "71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==";
+      };
+    };
     "mutate.js-0.2.0" = {
       name = "mutate.js";
       packageName = "mutate.js";
@@ -38845,6 +39385,15 @@ let
         sha512 = "U8HkIv90/lrdNlHVp63PoF3FeuQUvJ6toMX6InqRqpBmQq9iukZRAnq/yCE4Ii6WHZRYa6DEiTH/EGFTZ0rIGg==";
       };
     };
+    "nedb-1.8.0" = {
+      name = "nedb";
+      packageName = "nedb";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nedb/-/nedb-1.8.0.tgz";
+        sha1 = "0e3502cd82c004d5355a43c9e55577bd7bd91d88";
+      };
+    };
     "needle-1.6.0" = {
       name = "needle";
       packageName = "needle";
@@ -38963,22 +39512,13 @@ let
         sha512 = "hRIUwdJAkFnQNY6H274Sa1xU4LnBkoMJdhRnxD3YQcdmdn8i1Mns54xweLY3+F0Pg9g9lLtmqsZcm68gG/Fxvw==";
       };
     };
-    "netlify-plugin-deploy-preview-commenting-0.0.1-alpha.16" = {
-      name = "netlify-plugin-deploy-preview-commenting";
-      packageName = "netlify-plugin-deploy-preview-commenting";
-      version = "0.0.1-alpha.16";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/netlify-plugin-deploy-preview-commenting/-/netlify-plugin-deploy-preview-commenting-0.0.1-alpha.16.tgz";
-        sha512 = "5Rvi17CKgPpZTazEV2wkSj4IbS2zJpoKuytaYCyvemV/CMVeZUUPRwNPWm7+NjxObqJHgzUyi2FmWql8HfWhGA==";
-      };
-    };
-    "netlify-redirect-parser-3.0.7" = {
+    "netlify-redirect-parser-3.0.9" = {
       name = "netlify-redirect-parser";
       packageName = "netlify-redirect-parser";
-      version = "3.0.7";
+      version = "3.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.7.tgz";
-        sha512 = "/I4/5P8KhSVKxX3CdCscWBgxKBvsu4c7LTZtsNqdRwRaWq+pyQ5sZqC3CUtenIlhkTpqoDHPpriWZP4VzsNnKQ==";
+        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-3.0.9.tgz";
+        sha512 = "1lSHjLA10jyjQpkC/emn5O2pL3uGLGF+8Snt7btwRHKGAN+K05hvhtqTIl5t2GPPAeKnGGWp9L+g4ruLNHgR0Q==";
       };
     };
     "netlify-redirector-0.2.1" = {
@@ -38999,6 +39539,15 @@ let
         sha1 = "20297e89d86f6f6400f250d9f4f6b4c1945fcd35";
       };
     };
+    "netmask-2.0.2" = {
+      name = "netmask";
+      packageName = "netmask";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz";
+        sha512 = "dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==";
+      };
+    };
     "netrc-parser-3.1.6" = {
       name = "netrc-parser";
       packageName = "netrc-parser";
@@ -39306,6 +39855,15 @@ let
         sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==";
       };
     };
+    "node-eta-0.9.0" = {
+      name = "node-eta";
+      packageName = "node-eta";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-eta/-/node-eta-0.9.0.tgz";
+        sha1 = "9fb0b099bcd2a021940e603c64254dc003d9a7a8";
+      };
+    };
     "node-fetch-1.6.3" = {
       name = "node-fetch";
       packageName = "node-fetch";
@@ -39513,6 +40071,15 @@ let
         sha512 = "fPNFIp2hF/Dq7qLDzSg4vZ0J4e9v60gJR+Qx7RbjbWqzPDdEqeVpEx5CFeDAELIl+A/woaaNn1fQ5nEVerMxJg==";
       };
     };
+    "node-object-hash-2.3.1" = {
+      name = "node-object-hash";
+      packageName = "node-object-hash";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-object-hash/-/node-object-hash-2.3.1.tgz";
+        sha512 = "ab7pm34jqISawXpJ+fHjj2E9CmzDtm2fTTdurgzbWXIrdTEk2q2cSZRzoeGrwa0cvq6Sqezq6S9bhOBYPHRzuQ==";
+      };
+    };
     "node-persist-2.1.0" = {
       name = "node-persist";
       packageName = "node-persist";
@@ -40089,13 +40656,13 @@ let
         sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==";
       };
     };
-    "npm-packlist-2.1.4" = {
+    "npm-packlist-2.1.5" = {
       name = "npm-packlist";
       packageName = "npm-packlist";
-      version = "2.1.4";
+      version = "2.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.4.tgz";
-        sha512 = "Qzg2pvXC9U4I4fLnUrBmcIT4x0woLtUgxUi9eC+Zrcv1Xx5eamytGAfbDWQ67j7xOcQ2VW1I3su9smVTIdu7Hw==";
+        url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.1.5.tgz";
+        sha512 = "KCfK3Vi2F+PH1klYauoQzg81GQ8/GGjQRKYY6tRnpQUPKTs/1gBZSRWtTEd7jGdSn1LZL7gpAmJT+BcS55k2XQ==";
       };
     };
     "npm-pick-manifest-6.1.0" = {
@@ -40278,6 +40845,15 @@ let
         sha1 = "097b602b53422a522c1afb8790318336941a011d";
       };
     };
+    "number-to-bn-1.7.0" = {
+      name = "number-to-bn";
+      packageName = "number-to-bn";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz";
+        sha1 = "bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0";
+      };
+    };
     "numeral-1.5.6" = {
       name = "numeral";
       packageName = "numeral";
@@ -40738,6 +41314,15 @@ let
         sha512 = "rH3U4eLHsV+OgkOS29ULiC9JLspwMCyCIH/+BglLPXDxQs13IK8AGD+nVmkGXqGN5JefZu85YhfIi05CsOKWPw==";
       };
     };
+    "oclif-plugin-completion-0.6.0" = {
+      name = "oclif-plugin-completion";
+      packageName = "oclif-plugin-completion";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oclif-plugin-completion/-/oclif-plugin-completion-0.6.0.tgz";
+        sha512 = "0HGaSR/E/seIhSzFxLkh0QqckuNSre4iGqSElZRUv1hVHH2YgrZ7xtQL9McwL8o1fh6HqkzykjUx0Iy2haVIUg==";
+      };
+    };
     "octokit-pagination-methods-1.1.0" = {
       name = "octokit-pagination-methods";
       packageName = "octokit-pagination-methods";
@@ -40747,13 +41332,13 @@ let
         sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
       };
     };
-    "office-ui-fabric-react-7.165.1" = {
+    "office-ui-fabric-react-7.165.2" = {
       name = "office-ui-fabric-react";
       packageName = "office-ui-fabric-react";
-      version = "7.165.1";
+      version = "7.165.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.165.1.tgz";
-        sha512 = "a8H0KGwhfEps7v0Ia+kU9kQyRtj3qVMWbkDmMhZ2iTnPXcMs6gF1X+1x3xuMQblJXpp/fqyCLpuU1DUSOMbmhw==";
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.165.2.tgz";
+        sha512 = "PC36Ga+e8xHmslNiYbvsaXkQJjghlnwkgWeU1mXK9ebMASed4men5KlABbRRHFrLotfKFrgkcI41jbdWccuKmw==";
       };
     };
     "omggif-1.0.10" = {
@@ -40927,13 +41512,13 @@ let
         sha512 = "jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==";
       };
     };
-    "oo-ascii-tree-1.26.0" = {
+    "oo-ascii-tree-1.27.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.26.0";
+      version = "1.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.26.0.tgz";
-        sha512 = "JcRUxvHG+QAheXnxx9cwtgDJY6aXc70UAvgoFxKtRz+KfWEU47z/X2HHb81O/aZ3mN4fRnnnnwQhaTUuQRw2Ag==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.27.0.tgz";
+        sha512 = "3hqwUDNTJC2YLzSRye8Fh35AC4fSHl2FZhFF/hyQtO8C9lV1PEXIPWGIRZ0zwQSHFutnriEvK8AHJgbbMrLxqg==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -40990,15 +41575,6 @@ let
         sha512 = "mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==";
       };
     };
-    "open-7.3.1" = {
-      name = "open";
-      packageName = "open";
-      version = "7.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.3.1.tgz";
-        sha512 = "f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A==";
-      };
-    };
     "open-7.4.0" = {
       name = "open";
       packageName = "open";
@@ -41017,6 +41593,15 @@ let
         sha512 = "MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==";
       };
     };
+    "open-8.0.5" = {
+      name = "open";
+      packageName = "open";
+      version = "8.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-8.0.5.tgz";
+        sha512 = "hkPXCz7gijWp2GoWqsQ4O/5p7F6d5pIQ/+9NyeWG1nABJ4zvLi9kJRv1a44kVf5p13wK0WMoiRA+Xey68yOytA==";
+      };
+    };
     "openapi-default-setter-2.1.0" = {
       name = "openapi-default-setter";
       packageName = "openapi-default-setter";
@@ -41251,13 +41836,13 @@ let
         sha512 = "ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==";
       };
     };
-    "openid-2.0.7" = {
+    "openid-2.0.8" = {
       name = "openid";
       packageName = "openid";
-      version = "2.0.7";
+      version = "2.0.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openid/-/openid-2.0.7.tgz";
-        sha512 = "xH6qaz/hS55rEX8xURz4HRUO96cpj821WY6UEG9rgcusZ8Jsq54jGWP1EMCjGvgngonw8vgSljM1i2OESv16Gw==";
+        url = "https://registry.npmjs.org/openid/-/openid-2.0.8.tgz";
+        sha512 = "ljI4GE6p4RYn9dLftlXw6TvlA+untAkoWBRpj4qIB4AJQWcDZ2lOVOJQ2tq346ok38mtGDBYRBvp3Q+AsuCBnQ==";
       };
     };
     "opentracing-0.14.5" = {
@@ -42052,15 +42637,6 @@ let
         sha512 = "RRTnDb2TBG/epPRI2yYXsimO0v3BXC8Yd3ogr1545IaqKK17VGhbWVeGGN+XfCm/08OK8635nH31c8bATkHuSw==";
       };
     };
-    "pac-proxy-agent-3.0.1" = {
-      name = "pac-proxy-agent";
-      packageName = "pac-proxy-agent";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz";
-        sha512 = "44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==";
-      };
-    };
     "pac-proxy-agent-4.1.0" = {
       name = "pac-proxy-agent";
       packageName = "pac-proxy-agent";
@@ -42070,22 +42646,13 @@ let
         sha512 = "ejNgYm2HTXSIYX9eFlkvqFp8hyJ374uDf0Zq5YUAifiSh1D6fo+iBivQZirGvVv8dCYUsLhmLBRhlAYvBKI5+Q==";
       };
     };
-    "pac-resolver-3.0.0" = {
+    "pac-resolver-4.2.0" = {
       name = "pac-resolver";
       packageName = "pac-resolver";
-      version = "3.0.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz";
-        sha512 = "tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==";
-      };
-    };
-    "pac-resolver-4.1.0" = {
-      name = "pac-resolver";
-      packageName = "pac-resolver";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.1.0.tgz";
-        sha512 = "d6lf2IrZJJ7ooVHr7BfwSjRO1yKSJMaiiWYSHcrxSIUtZrCa4KKGwcztdkZ/E9LFleJfjoi1yl+XLR7AX24nbQ==";
+        url = "https://registry.npmjs.org/pac-resolver/-/pac-resolver-4.2.0.tgz";
+        sha512 = "rPACZdUyuxT5Io/gFKUeeZFfE5T7ve7cAkE5TUZRRfuKP0u5Hocwe48X7ZEm6mYB+bTB0Qf+xlVlA/RM/i6RCQ==";
       };
     };
     "package-json-1.2.0" = {
@@ -43663,13 +44230,13 @@ let
         sha1 = "084b5093ddc92506e259f874b8d9b1afb8c79593";
       };
     };
-    "plist-3.0.1" = {
+    "plist-3.0.2" = {
       name = "plist";
       packageName = "plist";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz";
-        sha512 = "GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==";
+        url = "https://registry.npmjs.org/plist/-/plist-3.0.2.tgz";
+        sha512 = "MSrkwZBdQ6YapHy87/8hDU8MnIcyxBKjeF+McXnr5A9MtffPewTs7G3hlpodT5TacyfIyFTaJEhh3GGcmasTgQ==";
       };
     };
     "plist-with-patches-0.5.1" = {
@@ -43753,40 +44320,22 @@ let
         sha512 = "Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==";
       };
     };
-    "pm2-axon-3.3.0" = {
+    "pm2-axon-4.0.1" = {
       name = "pm2-axon";
       packageName = "pm2-axon";
-      version = "3.3.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pm2-axon/-/pm2-axon-3.3.0.tgz";
-        sha512 = "dAFlFYRuFbFjX7oAk41zT+dx86EuaFX/TgOp5QpUKRKwxb946IM6ydnoH5sSTkdI2pHSVZ+3Am8n/l0ocr7jdQ==";
+        url = "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.1.tgz";
+        sha512 = "kES/PeSLS8orT8dR5jMlNl+Yu4Ty3nbvZRmaAtROuVm9nYYGiaoXqqKQqQYzWQzMYWUKHMQTvBlirjE5GIIxqg==";
       };
     };
-    "pm2-axon-4.0.0" = {
-      name = "pm2-axon";
-      packageName = "pm2-axon";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pm2-axon/-/pm2-axon-4.0.0.tgz";
-        sha512 = "A8dy0C57cRIm+kX58HrMcnvUdg8EdwCuCmavDdmFE4eoUE+5zfwGbDfZKCBVLNpDwjXPuXQQYZi3wQt/5xC8DQ==";
-      };
-    };
-    "pm2-axon-rpc-0.5.2" = {
+    "pm2-axon-rpc-0.7.1" = {
       name = "pm2-axon-rpc";
       packageName = "pm2-axon-rpc";
-      version = "0.5.2";
+      version = "0.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.5.2.tgz";
-        sha512 = "o4u1jO1EYBgBUVlraE1aeGWB5DvClJFB2+v7ytqLypNfgYeT6eJ/B+WMh5NcvRnexAYL5kblcRgNgSbgGEobvA==";
-      };
-    };
-    "pm2-axon-rpc-0.6.0" = {
-      name = "pm2-axon-rpc";
-      packageName = "pm2-axon-rpc";
-      version = "0.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.6.0.tgz";
-        sha512 = "xjYR0y1HpOopJ09VL2Qd5H1LajVN+QLPVZ1G+GesbORJDAZiStMhwECtOzm/Gx5ANQxL0usW8WZsElMfQq2hbw==";
+        url = "https://registry.npmjs.org/pm2-axon-rpc/-/pm2-axon-rpc-0.7.1.tgz";
+        sha512 = "FbLvW60w+vEyvMjP/xom2UPhUN/2bVpdtLfKJeYM3gwzYhoTEEChCOICfFzxkxuoEleOlnpjie+n1nue91bDQw==";
       };
     };
     "pm2-deploy-1.0.2" = {
@@ -44420,13 +44969,13 @@ let
         sha512 = "gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==";
       };
     };
-    "postcss-svgo-4.0.2" = {
+    "postcss-svgo-4.0.3" = {
       name = "postcss-svgo";
       packageName = "postcss-svgo";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
-        sha512 = "C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==";
+        url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz";
+        sha512 = "NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==";
       };
     };
     "postcss-syntax-0.36.2" = {
@@ -44573,13 +45122,13 @@ let
         sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==";
       };
     };
-    "prebuild-install-6.0.1" = {
+    "prebuild-install-6.1.1" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
-      version = "6.0.1";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.0.1.tgz";
-        sha512 = "7GOJrLuow8yeiyv75rmvZyeMGzl8mdEX5gY69d6a6bHWmiPevwqFw+tQavhK0EYMaSg3/KD24cWqeQv1EWsqDQ==";
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.1.tgz";
+        sha512 = "M+cKwofFlHa5VpTWub7GLg5RLcunYIcLqtY5pKcls/u7xaAb8FrXZ520qY8rkpYy5xw90tYCyMO0MP5ggzR3Sw==";
       };
     };
     "precinct-6.3.1" = {
@@ -44942,13 +45491,13 @@ let
         sha512 = "99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA==";
       };
     };
-    "probing-1.3.4" = {
+    "probing-1.3.5" = {
       name = "probing";
       packageName = "probing";
-      version = "1.3.4";
+      version = "1.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/probing/-/probing-1.3.4.tgz";
-        sha512 = "SAEJtgxcCn47d18RRck6bkyqWeS3u2K0bG3aGIhb/X0MEZ6tUzjrvCQ/uzR7+Me5Kae7muap5hKAJZfh8dVQGw==";
+        url = "https://registry.npmjs.org/probing/-/probing-1.3.5.tgz";
+        sha512 = "Pn7gjrWqgsCyTIlSgTvhni17I3BsLXXL/QLDcDhEPI84xsyUWpSqiUw7Vr15kKvtPABrwtFb6k81v4kWGLo1ZQ==";
       };
     };
     "process-0.10.1" = {
@@ -45095,6 +45644,15 @@ let
         sha512 = "mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==";
       };
     };
+    "promise-deferred-2.0.3" = {
+      name = "promise-deferred";
+      packageName = "promise-deferred";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise-deferred/-/promise-deferred-2.0.3.tgz";
+        sha512 = "n10XaoznCzLfyPFOlEE8iurezHpxrYzyjgq/1eW9Wk1gJwur/N7BdBmjJYJpqMeMcXK4wEbzo2EvZQcqjYcKUQ==";
+      };
+    };
     "promise-fs-2.1.1" = {
       name = "promise-fs";
       packageName = "promise-fs";
@@ -45158,6 +45716,15 @@ let
         sha512 = "A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==";
       };
     };
+    "promiseback-2.0.3" = {
+      name = "promiseback";
+      packageName = "promiseback";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promiseback/-/promiseback-2.0.3.tgz";
+        sha512 = "VZXdCwS0ppVNTIRfNsCvVwJAaP2b+pxQF7lM8DMWfmpNWyTxB6O5YNbzs+8z0ki/KIBHKHk308NTIl4kJUem3w==";
+      };
+    };
     "promised-temp-0.1.0" = {
       name = "promised-temp";
       packageName = "promised-temp";
@@ -45239,6 +45806,15 @@ let
         sha512 = "awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==";
       };
     };
+    "prompts-2.4.1" = {
+      name = "prompts";
+      packageName = "prompts";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz";
+        sha512 = "EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==";
+      };
+    };
     "promzard-0.3.0" = {
       name = "promzard";
       packageName = "promzard";
@@ -45266,6 +45842,15 @@ let
         sha1 = "159fb06193d32003f4b3691dd2ec1a634aa80d1d";
       };
     };
+    "proper-lockfile-4.1.2" = {
+      name = "proper-lockfile";
+      packageName = "proper-lockfile";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz";
+        sha512 = "TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==";
+      };
+    };
     "property-information-5.6.0" = {
       name = "property-information";
       packageName = "property-information";
@@ -45338,15 +45923,6 @@ let
         sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     };
-    "proxy-agent-3.1.1" = {
-      name = "proxy-agent";
-      packageName = "proxy-agent";
-      version = "3.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz";
-        sha512 = "WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==";
-      };
-    };
     "proxy-agent-4.0.1" = {
       name = "proxy-agent";
       packageName = "proxy-agent";
@@ -45428,6 +46004,15 @@ let
         sha512 = "gnGq1ikGhvcsJij9BU2DZWBfXp09yRi/72+790hNwPaMPobgWrdlQ6sg6rNyDNYf+lwzYV8WIyHOLk2zH/7fGg==";
       };
     };
+    "psbt-1.1.9" = {
+      name = "psbt";
+      packageName = "psbt";
+      version = "1.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psbt/-/psbt-1.1.9.tgz";
+        sha512 = "lL4unvP9nZFCWlqpKvWUEfTKVpkVyGKeBsYH/f76NNlgn1PF87Glw7opoAJQ5m0xfUTeUqy8J6ukIt4tFCqi1Q==";
+      };
+    };
     "pseudomap-1.0.2" = {
       name = "pseudomap";
       packageName = "pseudomap";
@@ -46265,13 +46850,13 @@ let
         sha1 = "15931d3cd967ade52206f523aa7331aef7d43af7";
       };
     };
-    "pyright-1.1.125" = {
+    "pyright-1.1.128" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.125";
+      version = "1.1.128";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.125.tgz";
-        sha512 = "MPaMGCnMR0i0VePXUPpXMHr23A2mkbW1Su+aTAWsqHho1rhQcxBtjeyhR0xqiwTxcC+c9eK9VwFHbd+OMGC6fQ==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.128.tgz";
+        sha512 = "p+QG3W+PEQs6raeix/oIBU/eKRL487WftEFI3PVR7npF/2fzh6v4ucNjlF/jPAfP1x/ulInqeyeqvwLwvajTwA==";
       };
     };
     "q-0.9.7" = {
@@ -47381,6 +47966,15 @@ let
         sha512 = "+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==";
       };
     };
+    "readable-web-to-node-stream-3.0.1" = {
+      name = "readable-web-to-node-stream";
+      packageName = "readable-web-to-node-stream";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-web-to-node-stream/-/readable-web-to-node-stream-3.0.1.tgz";
+        sha512 = "4zDC6CvjUyusN7V0QLsXVB7pJCD9+vtrM9bYDRv6uBQ+SKfx36rp5AFNPRgh9auKRul/a1iFZJYXcCbwRL+SaA==";
+      };
+    };
     "readdir-glob-1.1.1" = {
       name = "readdir-glob";
       packageName = "readdir-glob";
@@ -47624,13 +48218,13 @@ let
         sha1 = "52ed09dacac108f1a631c07e9b69941e7a19504b";
       };
     };
-    "redoc-2.0.0-rc.48" = {
+    "redoc-2.0.0-rc.50" = {
       name = "redoc";
       packageName = "redoc";
-      version = "2.0.0-rc.48";
+      version = "2.0.0-rc.50";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.48.tgz";
-        sha512 = "shArJWhNG2gQ0XKxW8WcfG8peNOtxbZ86CqxgrR9P7MnE5ESAo559CH/PSlezePeVLpcC0C9tcimOfSN5MaAvA==";
+        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.50.tgz";
+        sha512 = "SngLJr1YEDWIfp3YGBax8H8HQQ/gIqmf9YEmWsMACbAevsf7rt2tkTwALdjOf1pD27bVYfbZm1nud0QenoXsng==";
       };
     };
     "reduce-component-1.0.1" = {
@@ -47660,6 +48254,24 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
+    "redux-4.0.5" = {
+      name = "redux";
+      packageName = "redux";
+      version = "4.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redux/-/redux-4.0.5.tgz";
+        sha512 = "VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w==";
+      };
+    };
+    "reflect-metadata-0.1.13" = {
+      name = "reflect-metadata";
+      packageName = "reflect-metadata";
+      version = "0.1.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz";
+        sha512 = "Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==";
+      };
+    };
     "reftools-1.1.8" = {
       name = "reftools";
       packageName = "reftools";
@@ -47876,15 +48488,6 @@ let
         sha512 = "DitR4wnEvYQEFU8pRPwldGMGW76LM29fvz8s7oTYMwZBMSqNFtBr8eAts/I55LODCQm6b4jzdgFQ+/c6v7RmdA==";
       };
     };
-    "rehype-stringify-8.0.0" = {
-      name = "rehype-stringify";
-      packageName = "rehype-stringify";
-      version = "8.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-8.0.0.tgz";
-        sha512 = "VkIs18G0pj2xklyllrPSvdShAV36Ff3yE5PUO9u36f6+2qJFnn22Z5gKwBOwgXviux4UC7K+/j13AnZfPICi/g==";
-      };
-    };
     "reinterval-1.1.0" = {
       name = "reinterval";
       packageName = "reinterval";
@@ -47993,6 +48596,15 @@ let
         sha512 = "I5dCKP5VE18SMd5ycIeeEk8Hl6oaldUY6PIvjrfm65l7d0QRnLqknb62O2g3QEmOxCswcHTtwITtz6rfUIVs+A==";
       };
     };
+    "remark-mdxjs-2.0.0-next.8" = {
+      name = "remark-mdxjs";
+      packageName = "remark-mdxjs";
+      version = "2.0.0-next.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-mdxjs/-/remark-mdxjs-2.0.0-next.8.tgz";
+        sha512 = "Z/+0eWc7pBEABwg3a5ptL+vCTWHYMFnYzpLoJxTm2muBSk8XyB/CL+tEJ6SV3Q/fScHX2dtG4JRcGSpbZFLazQ==";
+      };
+    };
     "remark-message-control-6.0.0" = {
       name = "remark-message-control";
       packageName = "remark-message-control";
@@ -48020,6 +48632,15 @@ let
         sha512 = "b3iXszZLH1TLoyUzrATcTQUZrwNl1rE70rVdSruJFlDaJ9z5aMkhrG43Pp68OgfHndL/ADz6V69Zow8cTQu+JA==";
       };
     };
+    "remark-parse-6.0.3" = {
+      name = "remark-parse";
+      packageName = "remark-parse";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-6.0.3.tgz";
+        sha512 = "QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==";
+      };
+    };
     "remark-parse-8.0.3" = {
       name = "remark-parse";
       packageName = "remark-parse";
@@ -48056,6 +48677,15 @@ let
         sha512 = "xLuyKTnuQer3ke9hkU38SUYLiTmS078QOnoFavztmbt/pAJtNSkNtFgR0U//uCcmG0qnyxao+PDuatQav46F1w==";
       };
     };
+    "remark-stringify-8.1.1" = {
+      name = "remark-stringify";
+      packageName = "remark-stringify";
+      version = "8.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz";
+        sha512 = "q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==";
+      };
+    };
     "remark-stringify-9.0.1" = {
       name = "remark-stringify";
       packageName = "remark-stringify";
@@ -49001,13 +49631,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.42.4" = {
+    "rollup-2.44.0" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.42.4";
+      version = "2.44.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.42.4.tgz";
-        sha512 = "Zqv3EvNfcllBHyyEUM754npqsZw82VIjK34cDQMwrQ1d6aqxzeYu5yFb7smGkPU4C1Bj7HupIMeT6WU7uIdnMw==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.44.0.tgz";
+        sha512 = "rGSF4pLwvuaH/x4nAS+zP6UNn5YUDWf/TeEU5IoXSZKBbKRNTCI3qMnYXKZgrC0D2KzS2baiOZt1OlqhMu5rnQ==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -49334,13 +49964,13 @@ let
         sha512 = "trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==";
       };
     };
-    "rxjs-6.6.6" = {
+    "rxjs-6.6.7" = {
       name = "rxjs";
       packageName = "rxjs";
-      version = "6.6.6";
+      version = "6.6.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz";
-        sha512 = "/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==";
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz";
+        sha512 = "hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==";
       };
     };
     "s3-stream-upload-2.0.2" = {
@@ -50135,13 +50765,13 @@ let
         sha1 = "f13bf928e42b9c3e79383e61cc3998b5d14e6cdd";
       };
     };
-    "service-runner-2.8.1" = {
+    "service-runner-2.8.2" = {
       name = "service-runner";
       packageName = "service-runner";
-      version = "2.8.1";
+      version = "2.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.8.1.tgz";
-        sha512 = "YAJ9JPJ9w84iLj2VR5wUkiFvPKUp5vApOzDTEPZ97t5wmPN8LbyAKKKG4hyPuFlpCb00F0YGdfemi0A1dkpGPw==";
+        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.8.2.tgz";
+        sha512 = "SspUqYN+hp8fB5qhG9PbTzIPL3ze5wKXThdyUny2BIA6wdT5MljVkYUCUMQgo5xjM4e95+qU+XrsvfM2ytt6ng==";
       };
     };
     "set-blocking-1.0.0" = {
@@ -50720,6 +51350,15 @@ let
         sha1 = "c2f83f273a3e1a16edb0995661da0ed5ef033364";
       };
     };
+    "single-trailing-newline-1.0.0" = {
+      name = "single-trailing-newline";
+      packageName = "single-trailing-newline";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz";
+        sha1 = "81f0ad2ad645181945c80952a5c1414992ee9664";
+      };
+    };
     "siphash24-1.1.1" = {
       name = "siphash24";
       packageName = "siphash24";
@@ -51053,13 +51692,13 @@ let
         sha512 = "1jAYPRgMapO2BYL+HWsUq5gsAiDGmI0Pn7omc0lk24tcUOMhUB+1hb0u9WBMNzHvXBjevBkjOctjpnt2hMKN6Q==";
       };
     };
-    "snyk-gradle-plugin-3.13.2" = {
+    "snyk-gradle-plugin-3.14.0" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.13.2";
+      version = "3.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.13.2.tgz";
-        sha512 = "t7lBFgWwS3KU7SgmAeTJnTR44Wew84/IvNbNZ2fF0f+lXd1kZxMG1Ty2brETvxpl+U2JxC8ISILohGXsET+ySg==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.14.0.tgz";
+        sha512 = "2A8ifM91TyzSx/U2fYvHXbaCRVsEx60hGFQjbSH9Hl9AokxEzMi2qti7wsObs1jUX2m198D1mdXu4k/Y1jWxXg==";
       };
     };
     "snyk-module-3.1.0" = {
@@ -51089,13 +51728,13 @@ let
         sha512 = "wI3VXVYO/ok0uaQm5i+Koo4rKBNilYC/QRIQFlyGbZXf+WBdRcTBKVDfTy8uNfUhMRSGzd84lNclMnetU9Y+vw==";
       };
     };
-    "snyk-nodejs-lockfile-parser-1.31.1" = {
+    "snyk-nodejs-lockfile-parser-1.32.0" = {
       name = "snyk-nodejs-lockfile-parser";
       packageName = "snyk-nodejs-lockfile-parser";
-      version = "1.31.1";
+      version = "1.32.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.31.1.tgz";
-        sha512 = "MU1V2zS5ziLGMUL6PXxPvJuZ281wvawjQQ1c8TW697Jjkhd8hPZcW4IzMu52ok0zsmQcVZh8sVniBEHIePCfLQ==";
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.32.0.tgz";
+        sha512 = "FdYa/7NibnJPqBfobyw5jgI1/rd0LpMZf2W4WYYLRc2Hz7LZjKAByPjIX6qoA+lB9SC7yk5HYwWj2n4Fbg/DDw==";
       };
     };
     "snyk-nuget-plugin-1.21.0" = {
@@ -51233,15 +51872,6 @@ let
         sha512 = "Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w==";
       };
     };
-    "socket.io-3.0.5" = {
-      name = "socket.io";
-      packageName = "socket.io";
-      version = "3.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io/-/socket.io-3.0.5.tgz";
-        sha512 = "5yWQ43P/4IttmPCGKDQ3CVocBiJWGpibyhYJxgUhf69EHMzmK8XW0DkmHIoYdLmZaVZJyiEkUqpeC7rSCIqekw==";
-      };
-    };
     "socket.io-3.1.2" = {
       name = "socket.io";
       packageName = "socket.io";
@@ -51251,6 +51881,15 @@ let
         sha512 = "JubKZnTQ4Z8G4IZWtaAZSiRP3I/inpy8c/Bsx2jrwGrTbKeVU5xd6qkKMHpChYeM3dWZSO0QACiGK+obhBNwYw==";
       };
     };
+    "socket.io-4.0.1" = {
+      name = "socket.io";
+      packageName = "socket.io";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz";
+        sha512 = "g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==";
+      };
+    };
     "socket.io-adapter-0.2.0" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
@@ -51269,15 +51908,6 @@ let
         sha512 = "WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==";
       };
     };
-    "socket.io-adapter-2.0.3" = {
-      name = "socket.io-adapter";
-      packageName = "socket.io-adapter";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.0.3.tgz";
-        sha512 = "2wo4EXgxOGSFueqvHAdnmi5JLZzWqMArjuP4nqC26AtLh5PoCPsaRbRdah2xhcwTAMooZfjYiNVNkkmmSMaxOQ==";
-      };
-    };
     "socket.io-adapter-2.1.0" = {
       name = "socket.io-adapter";
       packageName = "socket.io-adapter";
@@ -51395,22 +52025,13 @@ let
         sha512 = "5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==";
       };
     };
-    "sockjs-client-1.5.0" = {
+    "sockjs-client-1.5.1" = {
       name = "sockjs-client";
       packageName = "sockjs-client";
-      version = "1.5.0";
+      version = "1.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.0.tgz";
-        sha512 = "8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q==";
-      };
-    };
-    "socks-2.3.3" = {
-      name = "socks";
-      packageName = "socks";
-      version = "2.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz";
-        sha512 = "o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==";
+        url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.5.1.tgz";
+        sha512 = "VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ==";
       };
     };
     "socks-2.6.0" = {
@@ -51422,15 +52043,6 @@ let
         sha512 = "mNmr9owlinMplev0Wd7UHFlqI4ofnBnNzFuzrm63PPaHgbkqCFe4T5LzwKmtQ/f2tX0NTpcdVLyD/FHxFBstYw==";
       };
     };
-    "socks-proxy-agent-4.0.2" = {
-      name = "socks-proxy-agent";
-      packageName = "socks-proxy-agent";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz";
-        sha512 = "NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==";
-      };
-    };
     "socks-proxy-agent-5.0.0" = {
       name = "socks-proxy-agent";
       packageName = "socks-proxy-agent";
@@ -51539,13 +52151,13 @@ let
         sha512 = "csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==";
       };
     };
-    "sonic-boom-1.4.0" = {
+    "sonic-boom-1.4.1" = {
       name = "sonic-boom";
       packageName = "sonic-boom";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.0.tgz";
-        sha512 = "1xUAszhQBOrjk7uisbStQZYkZxD3vkYlCUw5qzOblWQ1ILN5v0dVPAs+QPgszzoPmbdWx6jyT9XiLJ95JdlLiQ==";
+        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz";
+        sha512 = "LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==";
       };
     };
     "sorcery-0.10.0" = {
@@ -52223,13 +52835,13 @@ let
         sha512 = "pJAFizB6OcuJLX4RJJuU9HWyPwM2CqLi/vs08lhVIR3TGxacxpavvK5LzbxT+Y3iWkBchOTKS5hHCigA5aaung==";
       };
     };
-    "ssb-db2-1.18.6" = {
+    "ssb-db2-1.18.7" = {
       name = "ssb-db2";
       packageName = "ssb-db2";
-      version = "1.18.6";
+      version = "1.18.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-1.18.6.tgz";
-        sha512 = "Z6dkEhpwJbKWV5v28s2sFj2Nu8FAF/ANX24lrTlpr1ltLAb4Us1mtp1y6cZQhlXlmy+ILxDuhs51/hhbjKfpmA==";
+        url = "https://registry.npmjs.org/ssb-db2/-/ssb-db2-1.18.7.tgz";
+        sha512 = "sTHdEMGMaQl0ysxwwiH+aUcoPtSXcSDbCBT3/K/wU7pjWctWSpDjZj2ZIE7AfSmIAcakILN1xOGj2kEmtR5caA==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -52484,13 +53096,13 @@ let
         sha512 = "Z4jBj917W+dKAiDglwxCpWm8vINOMtkpHQIgk50NQTb5jHqHI5Rcyiy7EO0uRcWwRWqXi1ZwOTEFVyLyyuittA==";
       };
     };
-    "ssb-validate-4.1.3" = {
+    "ssb-validate-4.1.4" = {
       name = "ssb-validate";
       packageName = "ssb-validate";
-      version = "4.1.3";
+      version = "4.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.3.tgz";
-        sha512 = "g7tOs4nCwHk+G/FZ1N2RmaCkaTNS9hoh/BBP12EH8Jf1PWlkOJtTCak78FHjSTAGFCq/i8Y1ZFQXPNKSK7p3wg==";
+        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.4.tgz";
+        sha512 = "nzj5EQnhm5fBGXgtzuuWgxv45dW+CJJm4eCLZKiOxyG1NE/WJZwju2DmqZfiE9zr9bC2T2hPHkckDP0CCP8v8w==";
       };
     };
     "ssb-ws-6.2.3" = {
@@ -52520,6 +53132,15 @@ let
         sha512 = "jfcXynl9oAOS9YJ7iqS2JMUEHOlvrRAD+54CENiWnc4xsuVLQVSgmwf7cwOTcBd/uq3XkQKBGojgvEtVXcJ/8w==";
       };
     };
+    "sse4_crc32-6.0.1" = {
+      name = "sse4_crc32";
+      packageName = "sse4_crc32";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sse4_crc32/-/sse4_crc32-6.0.1.tgz";
+        sha512 = "FUTYXpLroqytNKWIfHzlDWoy9E4tmBB/RklNMy6w3VJs+/XEYAHgbiylg4SS43iOk/9bM0BlJ2EDpFAGT66IoQ==";
+      };
+    };
     "ssh-config-1.1.6" = {
       name = "ssh-config";
       packageName = "ssh-config";
@@ -53078,6 +53699,15 @@ let
         sha512 = "PS6wT2ZyyR38Cy+lE6PBEI1ZmO2HdzZoLeDGG0zZbYikCZd0dh8FUoSeFzgWLItpBYw1WJmPVRLpykRV+lAWLQ==";
       };
     };
+    "stream-to-promise-2.2.0" = {
+      name = "stream-to-promise";
+      packageName = "stream-to-promise";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-2.2.0.tgz";
+        sha1 = "b1edb2e1c8cb11289d1b503c08d3f2aef51e650f";
+      };
+    };
     "stream-to-promise-3.0.0" = {
       name = "stream-to-promise";
       packageName = "stream-to-promise";
@@ -53636,6 +54266,15 @@ let
         sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
       };
     };
+    "strip-hex-prefix-1.0.0" = {
+      name = "strip-hex-prefix";
+      packageName = "strip-hex-prefix";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz";
+        sha1 = "0c5f155fef1151373377de9dbb588da05500e36f";
+      };
+    };
     "strip-indent-1.0.1" = {
       name = "strip-indent";
       packageName = "strip-indent";
@@ -53780,13 +54419,22 @@ let
         sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
       };
     };
-    "styled-components-5.2.1" = {
+    "style-to-object-0.3.0" = {
+      name = "style-to-object";
+      packageName = "style-to-object";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz";
+        sha512 = "CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==";
+      };
+    };
+    "styled-components-5.2.3" = {
       name = "styled-components";
       packageName = "styled-components";
-      version = "5.2.1";
+      version = "5.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/styled-components/-/styled-components-5.2.1.tgz";
-        sha512 = "sBdgLWrCFTKtmZm/9x7jkIabjFNVzCUeKfoQsM6R3saImkUnjx0QYdLwJHBjY9ifEcmjDamJDVfknWm1yxZPxQ==";
+        url = "https://registry.npmjs.org/styled-components/-/styled-components-5.2.3.tgz";
+        sha512 = "BlR+KrLW3NL1yhvEB+9Nu9Dt51CuOnHoxd+Hj+rYPdtyR8X11uIW9rvhpy3Dk4dXXBsiW1u5U78f00Lf/afGoA==";
       };
     };
     "stylehacks-4.0.3" = {
@@ -54122,13 +54770,13 @@ let
         sha512 = "SROWH0rB0DJ+0Ii264cprmNu/NJyZacs5wFD71ya93Cg/oA2lKHgQm4F6j0EWA4ktFMzeuJJm/eX6fka39hEHA==";
       };
     };
-    "svelte2tsx-0.1.184" = {
+    "svelte2tsx-0.1.186" = {
       name = "svelte2tsx";
       packageName = "svelte2tsx";
-      version = "0.1.184";
+      version = "0.1.186";
       src = fetchurl {
-        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.184.tgz";
-        sha512 = "VhmzqF8p5LL390td9mngJ2l1BrlZCY5/4SgYu9NxgYWLo54gyamrC2VNe+y5ZxAC59oxjw6byKbPlIFx0acXjg==";
+        url = "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.1.186.tgz";
+        sha512 = "E4BmTNmIg6yHEqazhcQ8S60GI7AaV2JKf2y5deOyr3o2zpow4gGyz7yE0uSnFDdqp2iafCD7PImWZ/v1R6uQVw==";
       };
     };
     "sver-compat-1.5.0" = {
@@ -54257,13 +54905,13 @@ let
         sha512 = "xk5CMbwoQVI53rTq9o/iMojAqXP5NT4/+TMeTP4uXWDIH18pB9AXgO5Olqt0RXuf3jH032DA4DS4qzem6XdXAw==";
       };
     };
-    "swagger-ui-dist-3.45.1" = {
+    "swagger-ui-dist-3.46.0" = {
       name = "swagger-ui-dist";
       packageName = "swagger-ui-dist";
-      version = "3.45.1";
+      version = "3.46.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.45.1.tgz";
-        sha512 = "QWotWWYkgSdPtI6HW12q4Ua5zxIhhvnYvx9iZKtDbZuVvJSTnMIzaHrE6KJVe/8plWh7Wpd/qqeBfpOxF8g1/g==";
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.46.0.tgz";
+        sha512 = "ueaZ45OHhHvGKmocvCkxFY8VCfbP5PgcxutoQxy9j8/VZeDoLDvg8FBf4SO6NxHhieNAdYPUd0O6G9FjJO2fqw==";
       };
     };
     "swagger2openapi-6.2.3" = {
@@ -54428,13 +55076,13 @@ let
         sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
       };
     };
-    "table-6.0.7" = {
+    "table-6.0.9" = {
       name = "table";
       packageName = "table";
-      version = "6.0.7";
+      version = "6.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/table/-/table-6.0.7.tgz";
-        sha512 = "rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==";
+        url = "https://registry.npmjs.org/table/-/table-6.0.9.tgz";
+        sha512 = "F3cLs9a3hL1Z7N4+EkSscsel3z55XT950AvB05bwayrNg5T1/gykXtigioTAjbltvbMSJvvhFCbnf6mX+ntnJQ==";
       };
     };
     "table-layout-0.4.5" = {
@@ -54501,13 +55149,13 @@ let
         sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
       };
     };
-    "tail-2.2.0" = {
+    "tail-2.2.1" = {
       name = "tail";
       packageName = "tail";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tail/-/tail-2.2.0.tgz";
-        sha512 = "QqUMtWlnzArTvGyjVnAE5fAiXEm2Psvk/BlE7vWx2/dIEWMsAhcNPz7iW6WTiSM8h1fjtCkRMsaWBS1j6rpGBg==";
+        url = "https://registry.npmjs.org/tail/-/tail-2.2.1.tgz";
+        sha512 = "pqtI8HB6pbltcaDxkTq12meYxMeLNtZg7+h+c2WlXofaOh4bUeLFQ3eU8S23niqb8We4/UFc+QNlky9nCRnrSQ==";
       };
     };
     "taketalk-1.0.0" = {
@@ -54717,13 +55365,13 @@ let
         sha512 = "va4VlrKWp64JrowFoZX/NPzzA6q38kvaIukVXOWFO1V+jR1G8+hCfgJy4TX8Z3rwLJzwaBEet1QhikHDRZWl3A==";
       };
     };
-    "telegraf-4.1.2" = {
+    "telegraf-4.3.0" = {
       name = "telegraf";
       packageName = "telegraf";
-      version = "4.1.2";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/telegraf/-/telegraf-4.1.2.tgz";
-        sha512 = "YZljmryOhcZgrRWU28AV7UhZ3y+jKRwPwB49PSDDmW7tKtQHrSLBkW0pCoLniDlQVz+ICBGCWXZlHfqDkQ2iNQ==";
+        url = "https://registry.npmjs.org/telegraf/-/telegraf-4.3.0.tgz";
+        sha512 = "MuDUtSMipzMzQp8fXbQx76jp4ZD70KREdnpH1idUzN9Zlgm6EzatBQFU4Ps0ipxtEmnBBdghBMumQwrjRe3eqg==";
       };
     };
     "telegram-typings-3.6.1" = {
@@ -55878,13 +56526,13 @@ let
         sha512 = "ElXPyXKKG73o+uziHJ8qlYE9EuyDVxnK2zWL+pW/2bma7RsLpSwFFIJAb8Qui7/tel2hsHQW1z3zBnfQNREpWA==";
       };
     };
-    "torrent-piece-2.0.0" = {
+    "torrent-piece-2.0.1" = {
       name = "torrent-piece";
       packageName = "torrent-piece";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/torrent-piece/-/torrent-piece-2.0.0.tgz";
-        sha512 = "H/Z/yCuvZJj1vl1IQHI8dvF2QrUuXRJoptT5DW5967/dsLpXlCg+uyhFR5lfNj5mNaYePUbKtnL+qKWZGXv4Nw==";
+        url = "https://registry.npmjs.org/torrent-piece/-/torrent-piece-2.0.1.tgz";
+        sha512 = "JLSOyvQVLI6JTWqioY4vFL0JkEUKQcaHQsU3loxkCvPTSttw8ePs2tFwsP4XIjw99Fz8EdOzt/4faykcbnPbCQ==";
       };
     };
     "torrent-stream-1.2.1" = {
@@ -56247,13 +56895,13 @@ let
         sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==";
       };
     };
-    "tsconfig-paths-webpack-plugin-3.3.0" = {
+    "tsconfig-paths-webpack-plugin-3.5.1" = {
       name = "tsconfig-paths-webpack-plugin";
       packageName = "tsconfig-paths-webpack-plugin";
-      version = "3.3.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.3.0.tgz";
-        sha512 = "MpQeZpwPY4gYASCUjY4yt2Zj8yv86O8f++3Ai4o0yI0fUC6G1syvnL9VuY71PBgimRYDQU47f12BEmJq9wRaSw==";
+        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.5.1.tgz";
+        sha512 = "n5CMlUUj+N5pjBhBACLq4jdr9cPTitySCjIosoQm0zwK99gmrcTGAfY9CwxRFT9+9OleNWXPRUcxsKP4AYExxQ==";
       };
     };
     "tslib-1.11.1" = {
@@ -56292,6 +56940,15 @@ let
         sha512 = "wAH28hcEKwna96/UacuWaVspVLkg4x1aDM9JlzqaQTOFczCktkVAb5fmXChgandR1EraDPs2w8P+ozM+oafwxg==";
       };
     };
+    "tslib-2.0.3" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz";
+        sha512 = "uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==";
+      };
+    };
     "tslib-2.1.0" = {
       name = "tslib";
       packageName = "tslib";
@@ -56301,6 +56958,15 @@ let
         sha512 = "hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==";
       };
     };
+    "tslib-2.2.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz";
+        sha512 = "gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==";
+      };
+    };
     "tslint-5.20.1" = {
       name = "tslint";
       packageName = "tslint";
@@ -56877,13 +57543,13 @@ let
         sha512 = "+O8/qh/Qj8CgC6eYBVBykMrNtp5Gebn4dlGD/kKXVkJNDwyrAwSIqwz8CDf+tsAIWVycKcku6gIXJ0qwx/ZXaQ==";
       };
     };
-    "ua-parser-js-0.7.25" = {
+    "ua-parser-js-0.7.27" = {
       name = "ua-parser-js";
       packageName = "ua-parser-js";
-      version = "0.7.25";
+      version = "0.7.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.25.tgz";
-        sha512 = "8NFExdfI24Ny8R3Vc6+uUytP/I7dpqk3JERlvxPWlrtx5YboqCgxAXYKPAifbPLV2zKbgmmPL53ufW7mUC/VOQ==";
+        url = "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.27.tgz";
+        sha512 = "eXMaRYK2skomGocoX0x9sBXzx5A1ZVQgXfrW4mTc8dT0zS7olEcyfudAzRC5tIIRgLxQ69B6jut3DI+n5hslPA==";
       };
     };
     "uc.micro-1.0.6" = {
@@ -56913,13 +57579,13 @@ let
         sha512 = "L5i5jg/SHkEqzN18gQMTWsZk3KelRsfD1wUVNqtq0kzqWQqcJjyL8yc1o8hJgRrWqrAl2mUFbhfznEIoi7zi2A==";
       };
     };
-    "uglify-js-3.13.2" = {
+    "uglify-js-3.13.3" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.13.2";
+      version = "3.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.2.tgz";
-        sha512 = "SbMu4D2Vo95LMC/MetNaso1194M1htEA+JrqE9Hk+G2DhI+itfS9TRu9ZKeCahLDNa/J3n4MqUJ/fOHMzQpRWw==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz";
+        sha512 = "otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -57057,13 +57723,13 @@ let
         sha512 = "2ISqZLXtzp1l9f1V8Yr6S+zuhXxEwE1CjKHjXULFDHJcfhc9Gm3mn19hdPp4rlNGEdCivKYGKjYe3WRGnafYdA==";
       };
     };
-    "unbox-primitive-1.0.0" = {
+    "unbox-primitive-1.0.1" = {
       name = "unbox-primitive";
       packageName = "unbox-primitive";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz";
-        sha512 = "P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==";
+        url = "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz";
+        sha512 = "tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==";
       };
     };
     "unbzip2-stream-1.4.3" = {
@@ -57300,6 +57966,15 @@ let
         sha512 = "lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==";
       };
     };
+    "unified-8.4.2" = {
+      name = "unified";
+      packageName = "unified";
+      version = "8.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unified/-/unified-8.4.2.tgz";
+        sha512 = "JCrmN13jI4+h9UAyKEoGcDZV+i1E7BLFuG7OsaDvTXI5P0qhHX+vZO/kOhz9jn8HGENDKbwSeB0nVOg4gVStGA==";
+      };
+    };
     "unified-9.2.1" = {
       name = "unified";
       packageName = "unified";
@@ -57327,13 +58002,13 @@ let
         sha512 = "iDJYH82TgcezQA4IZzhCNJQx7vBsGk4h9s4Q7Fscrb3qcPsxBqVrVNYez2W3sBVTxuU1bFAhyRpA6ba/R4j93A==";
       };
     };
-    "unified-engine-8.0.0" = {
+    "unified-engine-8.1.0" = {
       name = "unified-engine";
       packageName = "unified-engine";
-      version = "8.0.0";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz";
-        sha512 = "vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==";
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-8.1.0.tgz";
+        sha512 = "ptXTWUf9HZ2L9xto7tre+hSdSN7M9S0rypUpMAcFhiDYjrXLrND4If+8AZOtPFySKI/Zhfxf7GVAR34BqixDUA==";
       };
     };
     "unified-message-control-3.0.3" = {
@@ -57561,6 +58236,15 @@ let
         sha512 = "w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA==";
       };
     };
+    "unist-util-remove-2.1.0" = {
+      name = "unist-util-remove";
+      packageName = "unist-util-remove";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-remove/-/unist-util-remove-2.1.0.tgz";
+        sha512 = "J8NYPyBm4baYLdCbjmf1bhPu45Cr1MWTm77qd9istEkzWpnN6O9tMsEbB2JhNnBCqGENRqEWomQ+He6au0B27Q==";
+      };
+    };
     "unist-util-remove-position-1.1.4" = {
       name = "unist-util-remove-position";
       packageName = "unist-util-remove-position";
@@ -58128,6 +58812,15 @@ let
         sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
       };
     };
+    "url-set-query-1.0.0" = {
+      name = "url-set-query";
+      packageName = "url-set-query";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz";
+        sha1 = "016e8cfd7c20ee05cafe7795e892bd0702faa339";
+      };
+    };
     "url-template-2.0.8" = {
       name = "url-template";
       packageName = "url-template";
@@ -58444,13 +59137,13 @@ let
         sha512 = "vRAKaS8WcYNgzbxyH2LdheqgL4sQLis8LXl7r/mN+O4mpWlUpoCsTtietxepLrft2q0TFA2gaIvSWN1iRkzW/w==";
       };
     };
-    "utp-native-2.3.0" = {
+    "utp-native-2.4.0" = {
       name = "utp-native";
       packageName = "utp-native";
-      version = "2.3.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.3.0.tgz";
-        sha512 = "5dV711teCP21FIRndcq44ETDPL00TnRVmEnINu3jxyg0tq//ptxOyq7oNO6TcMmuFfeFZRSYOqDmTUl8MmPauQ==";
+        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.4.0.tgz";
+        sha512 = "jKwpFiEaDUuNH5S4vVk/+waAX+yA6f3Lw4flqOROH1ZE/jcT4mh0/hjIGSuPP9j9RbQcsBG6Fu6LaFk4ojXFxw==";
       };
     };
     "uuid-2.0.3" = {
@@ -58543,15 +59236,6 @@ let
         sha1 = "e8381cbebb5b5fd0ca8d2b09f6a0181a158db34d";
       };
     };
-    "v8flags-3.1.3" = {
-      name = "v8flags";
-      packageName = "v8flags";
-      version = "3.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/v8flags/-/v8flags-3.1.3.tgz";
-        sha512 = "amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w==";
-      };
-    };
     "v8flags-3.2.0" = {
       name = "v8flags";
       packageName = "v8flags";
@@ -58750,13 +59434,13 @@ let
         sha1 = "cfde751860a15822db3b132bc59b116a4adaf01b";
       };
     };
-    "vega-5.20.0" = {
+    "vega-5.20.2" = {
       name = "vega";
       packageName = "vega";
-      version = "5.20.0";
+      version = "5.20.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega/-/vega-5.20.0.tgz";
-        sha512 = "L2hDaTH2gz9DFbu7l1B8fR637HzctViuosFCo/Db5aBe93fCJ/w/oJu+vQNfQELzfm9sntkS/+A4u+39xrDCNA==";
+        url = "https://registry.npmjs.org/vega/-/vega-5.20.2.tgz";
+        sha512 = "qmH7aD9GGPpssVdxL1xgcdxTbQzyRUeRR16Os385ymvQhiwCYQNA6+eXUPAZDTVLfk0RXu6Jzj6kUE5jQ80EVw==";
       };
     };
     "vega-canvas-1.2.6" = {
@@ -58777,13 +59461,13 @@ let
         sha512 = "yF+iyGP+ZxU7Tcj5yBsMfoUHTCebTALTXIkBNA99RKdaIHp1E690UaGVLZe6xde2n5WaYpho6I/I6wdAW3NXcg==";
       };
     };
-    "vega-dataflow-5.7.3" = {
+    "vega-dataflow-5.7.4" = {
       name = "vega-dataflow";
       packageName = "vega-dataflow";
-      version = "5.7.3";
+      version = "5.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.3.tgz";
-        sha512 = "2ipzKgQUmbSXcQBH+9XF0BYbXyZrHvjlbJ8ifyRWYQk78w8kMvE6wy/rcdXYK6iVZ6aAbEDDT7jTI+rFt3tGLA==";
+        url = "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.4.tgz";
+        sha512 = "JGHTpUo8XGETH3b1V892we6hdjzCWB977ybycIu8DPqRoyrZuj6t1fCVImazfMgQD1LAfJlQybWP+alwKDpKig==";
       };
     };
     "vega-encode-4.8.3" = {
@@ -58957,22 +59641,22 @@ let
         sha512 = "U314UDR9+ZlWrD3KBaeH+j/c2WSMdvcZq5yJfFT0yTg1jsBKAQBYFGvl+orackD8Zx3FveHOxx3XAObaQeDX+Q==";
       };
     };
-    "vega-transforms-4.9.3" = {
+    "vega-transforms-4.9.4" = {
       name = "vega-transforms";
       packageName = "vega-transforms";
-      version = "4.9.3";
+      version = "4.9.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.3.tgz";
-        sha512 = "PdqQd5oPlRyD405M2w+Sz9Bo+i7Rwi8o03SVK7RaeQsJC2FffKGJ6acIaSEgOq+yD1Q2k/1SePmCXcmLUlIiEA==";
+        url = "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.4.tgz";
+        sha512 = "JGBhm5Bf6fiGTUSB5Qr5ckw/KU9FJcSV5xIe/y4IobM/i/KNwI1i1fP45LzP4F4yZc0DMTwJod2UvFHGk9plKA==";
       };
     };
-    "vega-typings-0.20.0" = {
+    "vega-typings-0.21.0" = {
       name = "vega-typings";
       packageName = "vega-typings";
-      version = "0.20.0";
+      version = "0.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.20.0.tgz";
-        sha512 = "S+HIRN/3WYiS5zrQjJ4FDEOlvFVHLxPXMJerrnN3YZ6bxCDYo7tEvQUUuByGZ3d19GuKjgejczWS7XHvF3WjDw==";
+        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.21.0.tgz";
+        sha512 = "dG0RtnJUn3+BQMO4NjjTdcp5UTBR56yQsLXPPCAFUHeLuycEVKlyhBa/kbvAZv2r+QxdeEYwKUNYy9CQotF5KA==";
       };
     };
     "vega-util-1.16.1" = {
@@ -58984,13 +59668,13 @@ let
         sha512 = "FdgD72fmZMPJE99FxvFXth0IL4BbLA93WmBg/lvcJmfkK4Uf90WIlvGwaIUdSePIsdpkZjBPyQcHMQ8OcS8Smg==";
       };
     };
-    "vega-view-5.10.0" = {
+    "vega-view-5.10.1" = {
       name = "vega-view";
       packageName = "vega-view";
-      version = "5.10.0";
+      version = "5.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.10.0.tgz";
-        sha512 = "HuqTVimMqlgqe64EQkTEnt0+yDkt29/q1szg/m9QwCrSc5QMXI8Mkt58O/F7OD3QyVr7xrKHyPTk9I9gCaZ6sw==";
+        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.10.1.tgz";
+        sha512 = "4xvQ5KZcgKdZx1Z7jjenCUumvlyr/j4XcHLRf9gyeFrFvvS596dVpL92V8twhV6O++DmS2+fj+rHagO8Di4nMg==";
       };
     };
     "vega-view-transforms-4.5.8" = {
@@ -59371,13 +60055,13 @@ let
         sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
       };
     };
-    "vsce-1.87.0" = {
+    "vsce-1.87.1" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.87.0";
+      version = "1.87.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.87.0.tgz";
-        sha512 = "7Ow05XxIM4gHBq/Ho3hefdmiZG0fddHtu0M0XJ1sojyZBvxPxTHaMuBsRnfnMzgCqxDTFI5iLr94AgiwQnhOMQ==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.87.1.tgz";
+        sha512 = "3tSUWZl9AmhZrqy/UVUpdPODSzBiCGjIr/AMSSgF2PuFLSdrh+6kiOr2Ath7bpQEXOxf55hNgz3qdO5MuEJmww==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -59812,13 +60496,13 @@ let
         sha512 = "u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==";
       };
     };
-    "vscode-test-1.5.1" = {
+    "vscode-test-1.5.2" = {
       name = "vscode-test";
       packageName = "vscode-test";
-      version = "1.5.1";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-test/-/vscode-test-1.5.1.tgz";
-        sha512 = "tDloz6euDne+GeUSglhufL0c2xhuYAPAT74hjsuGxfflALfXF9bYnJ7ehZEeVkr/ZnQEh/T8EBrfPL+m0h5qEQ==";
+        url = "https://registry.npmjs.org/vscode-test/-/vscode-test-1.5.2.tgz";
+        sha512 = "x9PVfKxF6EInH9iSFGQi0V8H5zIW1fC7RAer6yNQR6sy3WyOwlWkuT3I+wf75xW/cO53hxMi1aj/EvqQfDFOAg==";
       };
     };
     "vscode-textbuffer-1.0.0" = {
@@ -60118,6 +60802,15 @@ let
         sha512 = "n1CfuJcJ+dynIx/fmavB6haPx37N3GZvY5HIGIselymDiSwNRC+8pAxOzoB4eVwUBJnbP3+aA8vWttrAZbgs7A==";
       };
     };
+    "web3-utils-1.3.5" = {
+      name = "web3-utils";
+      packageName = "web3-utils";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/web3-utils/-/web3-utils-1.3.5.tgz";
+        sha512 = "5apMRm8ElYjI/92GHqijmaLC+s+d5lgjpjHft+rJSs/dsnX8I8tQreqev0dmU+wzU+2EEe4Sx9a/OwGWHhQv3A==";
+      };
+    };
     "webassemblyjs-1.11.0" = {
       name = "webassemblyjs";
       packageName = "webassemblyjs";
@@ -60190,13 +60883,13 @@ let
         sha512 = "6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==";
       };
     };
-    "webpack-5.11.0" = {
+    "webpack-5.28.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "5.11.0";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-5.11.0.tgz";
-        sha512 = "ubWv7iP54RqAC/VjixgpnLLogCFbAfSOREcSWnnOlZEU8GICC5eKmJSu6YEnph2N2amKqY9rvxSwgyHxVqpaRw==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-5.28.0.tgz";
+        sha512 = "1xllYVmA4dIvRjHzwELgW4KjIU1fW4PEuEnjsylz7k7H5HgPOctIq7W1jrt3sKH9yG5d72//XWzsHhfoWvsQVg==";
       };
     };
     "webpack-cli-3.3.12" = {
@@ -60343,13 +61036,13 @@ let
         sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
-    "webtorrent-0.116.0" = {
+    "webtorrent-0.116.1" = {
       name = "webtorrent";
       packageName = "webtorrent";
-      version = "0.116.0";
+      version = "0.116.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.116.0.tgz";
-        sha512 = "jpptAAME7miPpoaywK+WZgn6CSLEvtqv9/7RUdr+M5vp1HbkVQDf5nX21funEWl955EIDdgzYvegU5JOm9W7cw==";
+        url = "https://registry.npmjs.org/webtorrent/-/webtorrent-0.116.1.tgz";
+        sha512 = "xCmA9U8RviUbGD2Gv8pAPEGaPzGw8ZXseuUb5bbNrTg7zseRw4SrRvhPM17ri3yKN7+jWPeDvVXPPsNY9scFHw==";
       };
     };
     "well-known-symbols-2.0.0" = {
@@ -61288,15 +61981,6 @@ let
         sha1 = "c9af18876f7a175801d564fe70ad9e8317784934";
       };
     };
-    "xcode-2.1.0" = {
-      name = "xcode";
-      packageName = "xcode";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xcode/-/xcode-2.1.0.tgz";
-        sha512 = "uCrmPITrqTEzhn0TtT57fJaNaw8YJs1aCzs+P/QqxsDbvPZSv7XMPPwXrKvHtD6pLjBM/NaVwraWJm8q83Y4iQ==";
-      };
-    };
     "xcode-3.0.1" = {
       name = "xcode";
       packageName = "xcode";
@@ -61333,13 +62017,13 @@ let
         sha512 = "PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==";
       };
     };
-    "xdl-59.0.27" = {
+    "xdl-59.0.29" = {
       name = "xdl";
       packageName = "xdl";
-      version = "59.0.27";
+      version = "59.0.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xdl/-/xdl-59.0.27.tgz";
-        sha512 = "AgC/90d0ZZg1TC7jGbQkD+9eIYc27gvnVgP2DAcesyWL/lSnvSpbtkOnUCQIdtM0d4RJCsTdie0748FO01Vo2g==";
+        url = "https://registry.npmjs.org/xdl/-/xdl-59.0.29.tgz";
+        sha512 = "f593BX+PUoAy/Sz+OG6GFGhobKKWbi5nzW9Pph9RKZK3ovpiKc+dVX8zNY+bJxWCkgPCv7c11smb/8mOPsWAQA==";
       };
     };
     "xenvar-0.5.1" = {
@@ -61360,6 +62044,24 @@ let
         sha512 = "/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==";
       };
     };
+    "xhr-request-1.1.0" = {
+      name = "xhr-request";
+      packageName = "xhr-request";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz";
+        sha512 = "Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==";
+      };
+    };
+    "xhr-request-promise-0.1.3" = {
+      name = "xhr-request-promise";
+      packageName = "xhr-request-promise";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz";
+        sha512 = "YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==";
+      };
+    };
     "xml-1.0.1" = {
       name = "xml";
       packageName = "xml";
@@ -61576,15 +62278,6 @@ let
         sha1 = "631fc07776efd84118bf25171b37ed4d075a0abc";
       };
     };
-    "xmldom-0.1.27" = {
-      name = "xmldom";
-      packageName = "xmldom";
-      version = "0.1.27";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz";
-        sha1 = "d501f97b3bdb403af8ef9ecc20573187aadac0e9";
-      };
-    };
     "xmldom-0.1.31" = {
       name = "xmldom";
       packageName = "xmldom";
@@ -61721,6 +62414,15 @@ let
         sha512 = "3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==";
       };
     };
+    "xstate-4.17.1" = {
+      name = "xstate";
+      packageName = "xstate";
+      version = "4.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xstate/-/xstate-4.17.1.tgz";
+        sha512 = "3q7so9qAKFnz9/t7BNQXQtV+9fwDATCOkC+0tAvVqczboEbu6gz2dvPPVCCkj55Hyzgro9aSOntGSPGLei82BA==";
+      };
+    };
     "xstream-11.14.0" = {
       name = "xstream";
       packageName = "xstream";
@@ -61766,13 +62468,13 @@ let
         sha512 = "wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==";
       };
     };
-    "y18n-5.0.5" = {
+    "y18n-5.0.6" = {
       name = "y18n";
       packageName = "y18n";
-      version = "5.0.5";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/y18n/-/y18n-5.0.5.tgz";
-        sha512 = "hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg==";
+        url = "https://registry.npmjs.org/y18n/-/y18n-5.0.6.tgz";
+        sha512 = "PlVX4Y0lDTN6E2V4ES2tEdyvXkeKzxa8c/vo0pxPr/TqbztddTP0yn7zZylIyiAuxerqj0Q5GhpJ1YJCP8LaZQ==";
       };
     };
     "yallist-2.1.2" = {
@@ -62252,6 +62954,15 @@ let
         sha512 = "avX6nz2esp7IMXGag4gu6OyQBsMh/SEn+ZybGu3yKPlOTE6z9qJrzG/0X5vCq/e0rPFy0CUYCze0G5hL310ibA==";
       };
     };
+    "yurnalist-2.1.0" = {
+      name = "yurnalist";
+      packageName = "yurnalist";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yurnalist/-/yurnalist-2.1.0.tgz";
+        sha512 = "PgrBqosQLM3gN2xBFIMDLACRTV9c365VqityKKpSTWpwR+U4LAFR3rSVyEoscWlu3EzX9+Y0I86GXUKxpHFl6w==";
+      };
+    };
     "z-schema-3.25.1" = {
       name = "z-schema";
       packageName = "z-schema";
@@ -62375,15 +63086,15 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "11.2.6";
+    version = "11.2.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.2.6.tgz";
-      sha512 = "67XH3wJgs1YuM4xW5PoouclT57AsfMhiOup2VPfGQn8GNINB4zauJfBotGyb3jQtRSFdwz+bXif6V9MSAw4oHA==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-11.2.7.tgz";
+      sha512 = "+0uC485NHE5Z8FCyCAeZnb7OCOZSGzEsUxGS5pEs8V9+c02/FmMg5aFBmxoXJhCWMJnb2QrJgAjb6rgka8e4Hg==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1102.6"
-      sources."@angular-devkit/core-11.2.6"
-      sources."@angular-devkit/schematics-11.2.6"
+      sources."@angular-devkit/architect-0.1102.7"
+      sources."@angular-devkit/core-11.2.7"
+      sources."@angular-devkit/schematics-11.2.7"
       sources."@npmcli/ci-detect-1.3.0"
       (sources."@npmcli/git-2.0.6" // {
         dependencies = [
@@ -62399,8 +63110,8 @@ in
           sources."read-package-json-fast-2.0.2"
         ];
       })
-      sources."@schematics/angular-11.2.6"
-      sources."@schematics/update-0.1102.6"
+      sources."@schematics/angular-11.2.7"
+      sources."@schematics/update-0.1102.7"
       sources."@tootallnate/once-1.1.2"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
@@ -62425,7 +63136,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bl-4.1.0"
@@ -62510,7 +63221,7 @@ in
       sources."inquirer-7.3.3"
       sources."ip-1.1.5"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-interactive-1.0.0"
       sources."is-lambda-1.0.1"
@@ -62537,8 +63248,8 @@ in
           sources."promise-retry-2.0.1"
         ];
       })
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minipass-3.1.3"
@@ -62558,7 +63269,7 @@ in
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.0"
-      sources."npm-packlist-2.1.4"
+      sources."npm-packlist-2.1.5"
       sources."npm-pick-manifest-6.1.0"
       sources."npm-registry-fetch-9.0.0"
       sources."npmlog-4.1.2"
@@ -62729,7 +63440,7 @@ in
       sources."argparse-1.0.10"
       sources."asciidoctor.js-1.5.9"
       sources."async-lock-1.2.8"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-0.0.2"
       sources."bl-4.0.4"
       sources."bops-0.0.7"
@@ -62890,8 +63601,8 @@ in
       sources."map-obj-4.2.0"
       sources."marky-1.2.1"
       sources."matcher-2.1.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimatch-all-1.1.0"
@@ -62980,7 +63691,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.13.2"
+      sources."uglify-js-3.13.3"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -63089,7 +63800,7 @@ in
       sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."inquirer-6.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-promise-2.2.2"
       sources."is-typedarray-1.0.0"
@@ -63106,8 +63817,8 @@ in
       sources."lodash.sortby-4.7.0"
       sources."lowdb-1.0.0"
       sources."lunr-2.3.3"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.7"
@@ -63133,7 +63844,7 @@ in
       sources."request-promise-native-1.0.9"
       sources."restore-cursor-2.0.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."saxes-3.1.11"
@@ -63187,15 +63898,20 @@ in
   "@nestjs/cli" = nodeEnv.buildNodePackage {
     name = "_at_nestjs_slash_cli";
     packageName = "@nestjs/cli";
-    version = "7.5.6";
+    version = "7.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.5.6.tgz";
-      sha512 = "nJCoKFleVV6NCkezc+cokJCVnDQBJoxmBVggQ1XfJ6Lvjy9TFQfG2J/nDdVurxpm7mlJm/Yg/rbXxaiUZVcJAQ==";
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.6.0.tgz";
+      sha512 = "lW1px2gSHkRoBpKSxzP6IJNQscRKs97OAaVyV46OAP6oUR996E0EPkIslIaa16kKLJ3SFOUeZo5xl5nYbqp43g==";
     };
     dependencies = [
-      sources."@angular-devkit/core-11.2.0"
-      sources."@angular-devkit/schematics-11.2.0"
-      sources."@angular-devkit/schematics-cli-0.1102.0"
+      sources."@angular-devkit/core-11.2.6"
+      (sources."@angular-devkit/schematics-11.2.6" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+          sources."ora-5.3.0"
+        ];
+      })
+      sources."@angular-devkit/schematics-cli-0.1102.6"
       sources."@babel/code-frame-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       (sources."@babel/highlight-7.13.10" // {
@@ -63208,52 +63924,37 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      (sources."@nestjs/schematics-7.3.0" // {
+      (sources."@nestjs/schematics-7.3.1" // {
         dependencies = [
-          sources."@angular-devkit/core-11.2.3"
-          sources."@angular-devkit/schematics-11.2.3"
+          sources."@angular-devkit/core-11.2.4"
+          sources."@angular-devkit/schematics-11.2.4"
+          sources."chalk-4.1.0"
+          sources."ora-5.3.0"
         ];
       })
-      sources."@schematics/schematics-0.1102.0"
-      sources."@types/anymatch-1.3.1"
-      sources."@types/eslint-7.2.7"
+      sources."@schematics/schematics-0.1102.6"
+      sources."@types/eslint-7.2.8"
       sources."@types/eslint-scope-3.7.0"
-      sources."@types/estree-0.0.45"
+      sources."@types/estree-0.0.46"
       sources."@types/json-schema-7.0.7"
       sources."@types/json5-0.0.29"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/parse-json-4.0.0"
-      sources."@types/source-list-map-0.1.2"
-      sources."@types/tapable-1.0.6"
-      (sources."@types/uglify-js-3.13.0" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      (sources."@types/webpack-4.41.26" // {
-        dependencies = [
-          sources."source-map-0.6.1"
-        ];
-      })
-      sources."@types/webpack-sources-2.1.0"
-      sources."@webassemblyjs/ast-1.9.1"
-      sources."@webassemblyjs/floating-point-hex-parser-1.9.1"
-      sources."@webassemblyjs/helper-api-error-1.9.1"
-      sources."@webassemblyjs/helper-buffer-1.9.1"
-      sources."@webassemblyjs/helper-code-frame-1.9.1"
-      sources."@webassemblyjs/helper-fsm-1.9.1"
-      sources."@webassemblyjs/helper-module-context-1.9.1"
-      sources."@webassemblyjs/helper-wasm-bytecode-1.9.1"
-      sources."@webassemblyjs/helper-wasm-section-1.9.1"
-      sources."@webassemblyjs/ieee754-1.9.1"
-      sources."@webassemblyjs/leb128-1.9.1"
-      sources."@webassemblyjs/utf8-1.9.1"
-      sources."@webassemblyjs/wasm-edit-1.9.1"
-      sources."@webassemblyjs/wasm-gen-1.9.1"
-      sources."@webassemblyjs/wasm-opt-1.9.1"
-      sources."@webassemblyjs/wasm-parser-1.9.1"
-      sources."@webassemblyjs/wast-parser-1.9.1"
-      sources."@webassemblyjs/wast-printer-1.9.1"
+      sources."@webassemblyjs/ast-1.11.0"
+      sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
+      sources."@webassemblyjs/helper-api-error-1.11.0"
+      sources."@webassemblyjs/helper-buffer-1.11.0"
+      sources."@webassemblyjs/helper-numbers-1.11.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.11.0"
+      sources."@webassemblyjs/helper-wasm-section-1.11.0"
+      sources."@webassemblyjs/ieee754-1.11.0"
+      sources."@webassemblyjs/leb128-1.11.0"
+      sources."@webassemblyjs/utf8-1.11.0"
+      sources."@webassemblyjs/wasm-edit-1.11.0"
+      sources."@webassemblyjs/wasm-gen-1.11.0"
+      sources."@webassemblyjs/wasm-opt-1.11.0"
+      sources."@webassemblyjs/wasm-parser-1.11.0"
+      sources."@webassemblyjs/wast-printer-1.11.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-8.1.0"
@@ -63261,11 +63962,11 @@ in
       sources."ajv-keywords-3.5.2"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.2"
-      sources."ansi-regex-3.0.0"
+      sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.1"
       sources."at-least-node-1.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
@@ -63275,7 +63976,7 @@ in
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.1"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.1"
@@ -63291,17 +63992,20 @@ in
       sources."colors-1.4.0"
       sources."commander-4.1.1"
       sources."concat-map-0.0.1"
-      sources."core-util-is-1.0.2"
       sources."cosmiconfig-6.0.0"
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      sources."enhanced-resolve-4.5.0"
-      sources."errno-0.1.8"
+      (sources."enhanced-resolve-5.7.0" // {
+        dependencies = [
+          sources."tapable-2.2.0"
+        ];
+      })
       sources."error-ex-1.3.2"
+      sources."es-module-lexer-0.4.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-5.1.1"
@@ -63318,14 +64022,13 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
-      sources."find-up-5.0.0"
-      (sources."fork-ts-checker-webpack-plugin-6.1.0" // {
+      (sources."fork-ts-checker-webpack-plugin-6.2.0" // {
         dependencies = [
           sources."chalk-4.1.0"
         ];
       })
       sources."fs-extra-9.1.0"
-      sources."fs-monkey-1.0.1"
+      sources."fs-monkey-1.0.3"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
       sources."function-bind-1.1.1"
@@ -63344,11 +64047,9 @@ in
       sources."inherits-2.0.4"
       (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
           sources."chalk-4.1.0"
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.2"
-          sources."strip-ansi-6.0.0"
         ];
       })
       sources."interpret-1.4.0"
@@ -63362,7 +64063,6 @@ in
       sources."is-number-7.0.0"
       sources."is-stream-2.0.0"
       sources."is-unicode-supported-0.1.0"
-      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."jest-worker-26.6.2"
       sources."js-tokens-4.0.0"
@@ -63374,7 +64074,6 @@ in
       sources."jsonfile-6.1.0"
       sources."lines-and-columns-1.1.6"
       sources."loader-runner-4.2.0"
-      sources."locate-path-6.0.0"
       sources."lodash-4.17.21"
       sources."lodash.toarray-4.4.0"
       (sources."log-symbols-4.1.0" // {
@@ -63385,17 +64084,10 @@ in
       sources."lru-cache-6.0.0"
       sources."macos-release-2.4.1"
       sources."magic-string-0.25.7"
-      sources."memfs-3.2.0"
-      (sources."memory-fs-0.5.0" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."memfs-3.2.2"
       sources."merge-stream-2.0.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -63408,29 +64100,22 @@ in
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      (sources."ora-5.3.0" // {
+      (sources."ora-5.4.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
           sources."chalk-4.1.0"
-          sources."strip-ansi-6.0.0"
         ];
       })
       sources."os-name-4.0.0"
       sources."os-tmpdir-1.0.2"
       sources."p-limit-3.1.0"
-      sources."p-locate-5.0.0"
       sources."parent-module-1.0.1"
       sources."parse-json-5.2.0"
-      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-type-4.0.0"
       sources."picomatch-2.2.2"
-      sources."pkg-dir-5.0.0"
       sources."pluralize-8.0.0"
-      sources."process-nextick-args-2.0.1"
-      sources."prr-1.0.1"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."randombytes-2.1.0"
@@ -63460,9 +64145,14 @@ in
         ];
       })
       sources."sourcemap-codec-1.4.8"
-      sources."string-width-2.1.1"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."string_decoder-1.3.0"
-      sources."strip-ansi-4.0.0"
+      sources."strip-ansi-6.0.0"
       sources."strip-bom-3.0.0"
       sources."strip-final-newline-2.0.0"
       sources."supports-color-7.2.0"
@@ -63484,27 +64174,21 @@ in
       sources."to-regex-range-5.0.1"
       sources."tree-kill-1.2.2"
       sources."tsconfig-paths-3.9.0"
-      (sources."tsconfig-paths-webpack-plugin-3.3.0" // {
+      (sources."tsconfig-paths-webpack-plugin-3.5.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."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
+          sources."chalk-4.1.0"
         ];
       })
       sources."tslib-1.14.1"
       sources."type-fest-0.21.3"
-      sources."typescript-4.1.5"
+      sources."typescript-4.2.3"
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
       sources."watchpack-2.1.1"
       sources."wcwidth-1.0.1"
-      (sources."webpack-5.11.0" // {
+      (sources."webpack-5.28.0" // {
         dependencies = [
-          sources."enhanced-resolve-5.7.0"
           sources."schema-utils-3.0.0"
           sources."tapable-2.2.0"
         ];
@@ -63544,7 +64228,7 @@ in
       sources."@akryum/winattr-3.0.0"
       (sources."@apollo/protobufjs-1.0.5" // {
         dependencies = [
-          sources."@types/node-10.17.55"
+          sources."@types/node-10.17.56"
         ];
       })
       sources."@apollographql/apollo-tools-0.4.9"
@@ -63552,11 +64236,11 @@ in
       sources."@apollographql/graphql-upload-8-fork-8.1.3"
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.12"
-      sources."@babel/core-7.13.10"
+      sources."@babel/core-7.13.14"
       sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      sources."@babel/helper-compilation-targets-7.13.10"
+      sources."@babel/helper-compilation-targets-7.13.13"
       sources."@babel/helper-create-class-features-plugin-7.13.11"
       sources."@babel/helper-create-regexp-features-plugin-7.12.17"
       sources."@babel/helper-define-polyfill-provider-0.1.5"
@@ -63566,7 +64250,7 @@ in
       sources."@babel/helper-hoist-variables-7.13.0"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-plugin-utils-7.13.0"
       sources."@babel/helper-remap-async-to-generator-7.13.0"
@@ -63579,7 +64263,7 @@ in
       sources."@babel/helper-wrap-function-7.13.0"
       sources."@babel/helpers-7.13.10"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
@@ -63643,10 +64327,10 @@ in
       sources."@babel/plugin-transform-unicode-escapes-7.12.13"
       sources."@babel/plugin-transform-unicode-regex-7.12.13"
       sources."@babel/preset-env-7.13.12"
-      sources."@babel/preset-flow-7.12.13"
+      sources."@babel/preset-flow-7.13.13"
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-typescript-7.13.0"
-      (sources."@babel/register-7.13.8" // {
+      (sources."@babel/register-7.13.14" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
@@ -63655,13 +64339,14 @@ in
       })
       sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
       sources."@hapi/joi-15.1.1"
       sources."@hapi/topo-3.1.6"
+      sources."@josephg/resolvable-1.0.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       (sources."@nodelib/fs.scandir-2.1.4" // {
         dependencies = [
@@ -63689,7 +64374,7 @@ in
       sources."@types/cors-2.8.8"
       sources."@types/ejs-2.7.0"
       sources."@types/express-4.17.11"
-      sources."@types/express-serve-static-core-4.17.18"
+      sources."@types/express-serve-static-core-4.17.19"
       sources."@types/fs-capacitor-2.0.0"
       sources."@types/glob-7.1.3"
       sources."@types/http-assert-1.5.1"
@@ -63708,7 +64393,7 @@ in
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       (sources."@types/node-fetch-2.5.7" // {
         dependencies = [
           sources."form-data-3.0.1"
@@ -63719,7 +64404,7 @@ in
       sources."@types/range-parser-1.2.3"
       sources."@types/serve-static-1.13.9"
       sources."@types/through-0.0.30"
-      sources."@types/ws-7.4.0"
+      sources."@types/ws-7.4.1"
       sources."@vue/cli-shared-utils-4.5.12"
       (sources."@vue/cli-ui-4.5.12" // {
         dependencies = [
@@ -63728,13 +64413,13 @@ in
       })
       sources."@vue/cli-ui-addon-webpack-4.5.12"
       sources."@vue/cli-ui-addon-widgets-4.5.12"
-      (sources."@vue/compiler-core-3.0.7" // {
+      (sources."@vue/compiler-core-3.0.11" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      sources."@vue/compiler-dom-3.0.7"
-      sources."@vue/shared-3.0.7"
+      sources."@vue/compiler-dom-3.0.11"
+      sources."@vue/shared-3.0.11"
       sources."@wry/equality-0.1.11"
       sources."accepts-1.3.7"
       sources."aggregate-error-3.1.0"
@@ -63752,18 +64437,18 @@ in
       })
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
-      sources."apollo-cache-control-0.11.6"
-      sources."apollo-datasource-0.7.3"
+      sources."apollo-cache-control-0.12.0"
+      sources."apollo-datasource-0.8.0"
       sources."apollo-env-0.6.6"
       sources."apollo-graphql-0.6.1"
       sources."apollo-link-1.2.14"
       sources."apollo-reporting-protobuf-0.6.2"
-      (sources."apollo-server-caching-0.5.3" // {
+      (sources."apollo-server-caching-0.6.0" // {
         dependencies = [
           sources."lru-cache-6.0.0"
         ];
       })
-      (sources."apollo-server-core-2.21.2" // {
+      (sources."apollo-server-core-2.22.2" // {
         dependencies = [
           sources."lru-cache-6.0.0"
           sources."uuid-8.3.2"
@@ -63771,10 +64456,10 @@ in
       })
       sources."apollo-server-env-3.0.0"
       sources."apollo-server-errors-2.4.2"
-      sources."apollo-server-express-2.21.2"
-      sources."apollo-server-plugin-base-0.10.4"
-      sources."apollo-server-types-0.6.3"
-      sources."apollo-tracing-0.12.2"
+      sources."apollo-server-express-2.22.2"
+      sources."apollo-server-plugin-base-0.11.0"
+      sources."apollo-server-types-0.7.0"
+      sources."apollo-tracing-0.13.0"
       sources."apollo-utilities-1.3.4"
       (sources."archive-type-4.0.0" // {
         dependencies = [
@@ -63807,7 +64492,7 @@ in
       sources."babel-plugin-polyfill-corejs3-0.1.7"
       sources."babel-plugin-polyfill-regenerator-0.1.6"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -63858,7 +64543,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.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -63915,8 +64600,8 @@ in
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.9.1"
-      (sources."core-js-compat-3.9.1" // {
+      sources."core-js-3.10.0"
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -63987,12 +64672,12 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
-      sources."envinfo-7.7.4"
+      sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
       sources."es-abstract-1.18.0"
       sources."es-to-primitive-1.2.1"
@@ -64070,7 +64755,7 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.147.0"
+      sources."flow-parser-0.148.0"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
@@ -64121,11 +64806,11 @@ in
       })
       sources."graceful-fs-4.2.6"
       sources."graphql-14.7.0"
-      sources."graphql-extensions-0.12.8"
+      sources."graphql-extensions-0.13.0"
       sources."graphql-subscriptions-1.2.1"
       (sources."graphql-tag-2.12.3" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."graphql-tools-4.0.8"
@@ -64186,7 +64871,7 @@ in
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
@@ -64230,7 +64915,7 @@ in
           sources."ast-types-0.14.2"
           sources."recast-0.20.4"
           sources."source-map-0.6.1"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."jsesc-2.5.2"
@@ -64279,8 +64964,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -64477,7 +65162,7 @@ in
       sources."rss-parser-3.12.0"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -64667,7 +65352,7 @@ in
       sources."type-fest-0.6.0"
       sources."type-is-1.6.18"
       sources."typescript-4.1.5"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."unbzip2-stream-1.4.3"
       sources."unicode-canonical-property-names-ecmascript-1.0.4"
       sources."unicode-match-property-ecmascript-1.0.4"
@@ -64738,7 +65423,7 @@ in
       sources."xmlbuilder-11.0.1"
       sources."xss-1.0.8"
       sources."xtend-4.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       (sources."yaml-front-matter-3.4.1" // {
         dependencies = [
@@ -64889,9 +65574,9 @@ in
       sources."@babel/generator-7.13.9"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/template-7.12.13"
-      sources."@babel/types-7.13.12"
+      sources."@babel/types-7.13.14"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
       sources."@webassemblyjs/helper-api-error-1.11.0"
@@ -64968,7 +65653,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.12"
-      (sources."@babel/core-7.13.10" // {
+      (sources."@babel/core-7.13.14" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
@@ -64978,12 +65663,12 @@ in
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-compilation-targets-7.13.10"
+      sources."@babel/helper-compilation-targets-7.13.13"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-replace-supers-7.13.12"
       sources."@babel/helper-simple-access-7.13.12"
@@ -64992,18 +65677,18 @@ in
       sources."@babel/helper-validator-option-7.12.17"
       sources."@babel/helpers-7.13.10"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
       sources."async-3.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."browserslist-4.16.3"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -65014,7 +65699,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."debug-4.3.2"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -65108,8 +65793,8 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.35"
-      sources."balanced-match-1.0.0"
+      sources."@types/node-14.14.37"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
       sources."commander-5.1.0"
@@ -65136,10 +65821,10 @@ in
   balanceofsatoshis = nodeEnv.buildNodePackage {
     name = "balanceofsatoshis";
     packageName = "balanceofsatoshis";
-    version = "8.0.2";
+    version = "8.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-8.0.2.tgz";
-      sha512 = "nDCutvBxOka9sBOXakzi8mt/5fHZ7UVCTpcsxJ3Z6XxuXGVY+bhfB08/LvqcoADTPZNx22a2nkMPy6MHssFAKw==";
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-8.0.4.tgz";
+      sha512 = "dU1X9/T1kSVnxJW6EWu63pR5RP1NAn+YMw2G8aGN2xcPrlgFc/oKEyDexVXa8xXMqLXFFs7UI5lY3FJ+yKFbeA==";
     };
     dependencies = [
       sources."@alexbosworth/html2unicode-1.1.5"
@@ -65150,9 +65835,9 @@ in
       })
       sources."@alexbosworth/saxophone-0.6.2"
       sources."@cto.af/textdecoder-0.0.0"
-      (sources."@grpc/grpc-js-1.2.10" // {
+      (sources."@grpc/grpc-js-1.2.12" // {
         dependencies = [
-          sources."@types/node-14.14.35"
+          sources."@types/node-14.14.37"
         ];
       })
       sources."@grpc/proto-loader-0.5.6"
@@ -65224,7 +65909,7 @@ in
       sources."assert-plus-1.0.0"
       sources."astral-regex-2.0.0"
       sources."async-3.2.0"
-      sources."asyncjs-util-1.2.3"
+      sources."asyncjs-util-1.2.5"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.9.1"
@@ -65254,14 +65939,19 @@ in
           sources."qs-6.7.0"
         ];
       })
-      sources."bolt03-1.2.7"
-      (sources."bolt07-1.7.1" // {
+      (sources."bolt01-1.2.1" // {
+        dependencies = [
+          sources."bn.js-5.2.0"
+        ];
+      })
+      sources."bolt03-1.2.9"
+      (sources."bolt07-1.7.2" // {
         dependencies = [
           sources."bn.js-5.2.0"
         ];
       })
       sources."bolt09-0.1.3"
-      (sources."boxen-5.0.0" // {
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.3.0"
@@ -65288,10 +65978,11 @@ in
           sources."lowercase-keys-2.0.0"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."camelcase-6.2.0"
       sources."caporal-1.4.0"
       sources."caseless-0.12.0"
-      sources."cbor-7.0.3"
+      sources."cbor-7.0.5"
       sources."cert-info-1.5.1"
       (sources."chalk-1.1.3" // {
         dependencies = [
@@ -65384,15 +66075,22 @@ in
       sources."form-data-3.0.0"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
+      sources."function-bind-1.1.1"
       sources."gauge-1.2.7"
       sources."gaxios-4.2.0"
       sources."gcp-metadata-4.2.1"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
       sources."getpass-0.1.7"
       sources."global-dirs-3.0.0"
-      (sources."goldengate-10.0.2" // {
+      (sources."goldengate-10.0.3" // {
         dependencies = [
+          sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          sources."invoices-1.1.6"
+          sources."ln-service-51.5.0"
         ];
       })
       sources."google-auth-library-6.1.6"
@@ -65402,12 +66100,14 @@ in
       sources."gtoken-5.2.1"
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.3"
+      sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
         ];
       })
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
       sources."hash-base-3.1.0"
@@ -65452,15 +66152,17 @@ in
           sources."tmp-0.0.33"
         ];
       })
-      (sources."invoices-1.1.6" // {
+      (sources."invoices-1.1.7" // {
         dependencies = [
           sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
+          sources."bolt09-0.1.4"
         ];
       })
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
@@ -65473,9 +66175,11 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
       sources."is-stream-2.0.0"
+      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
@@ -65496,23 +66200,66 @@ in
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
-      (sources."lightning-3.2.20" // {
+      (sources."lightning-3.3.1" // {
         dependencies = [
-          sources."@types/node-14.14.32"
+          sources."@grpc/grpc-js-1.2.11"
+          sources."@types/node-14.14.35"
+          sources."asyncjs-util-1.2.3"
+          sources."bech32-2.0.0"
           sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          sources."cbor-7.0.4"
+          sources."invoices-1.1.6"
+          sources."psbt-1.1.8"
+        ];
+      })
+      (sources."ln-accounting-4.2.7" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          sources."invoices-1.1.6"
+          sources."ln-service-51.5.0"
+        ];
+      })
+      (sources."ln-service-51.6.0" // {
+        dependencies = [
+          sources."@types/node-14.14.37"
+          sources."@types/ws-7.4.1"
+          sources."bn.js-5.2.0"
+          sources."bolt09-0.1.4"
+          sources."lightning-3.3.2"
+        ];
+      })
+      (sources."ln-sync-0.4.5" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+        ];
+      })
+      (sources."ln-telegram-3.2.2" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          sources."bolt07-1.7.1"
+          (sources."ln-service-51.5.0" // {
+            dependencies = [
+              sources."invoices-1.1.6"
+            ];
+          })
         ];
       })
-      sources."ln-accounting-4.2.6"
-      sources."ln-service-51.3.1"
-      sources."ln-sync-0.4.4"
-      sources."ln-telegram-3.2.1"
       sources."lodash-4.17.21"
       sources."lodash.camelcase-4.3.0"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.difference-4.5.0"
+      sources."lodash.flatten-4.4.0"
       sources."lodash.get-4.4.2"
       sources."lodash.pad-4.5.1"
       sources."lodash.padend-4.6.1"
       sources."lodash.padstart-4.6.1"
+      sources."lodash.truncate-4.4.2"
       sources."lodash.uniq-4.5.0"
       sources."long-4.0.0"
       sources."lowercase-keys-1.0.1"
@@ -65575,15 +66322,27 @@ in
       sources."pinkie-promise-2.0.1"
       sources."prepend-http-2.0.0"
       sources."prettyjson-1.2.1"
-      sources."probing-1.3.4"
+      (sources."probing-1.3.5" // {
+        dependencies = [
+          sources."asyncjs-util-1.2.4"
+          sources."bech32-2.0.0"
+          sources."bn.js-5.2.0"
+          (sources."ln-service-51.5.0" // {
+            dependencies = [
+              sources."bolt07-1.7.1"
+              sources."invoices-1.1.6"
+            ];
+          })
+        ];
+      })
       sources."process-nextick-args-2.0.1"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.47"
+          sources."@types/node-13.13.48"
         ];
       })
       sources."proxy-addr-2.0.6"
-      (sources."psbt-1.1.8" // {
+      (sources."psbt-1.1.9" // {
         dependencies = [
           sources."bn.js-5.2.0"
         ];
@@ -65612,7 +66371,7 @@ in
       sources."ripemd160-2.0.2"
       sources."run-async-2.4.1"
       sources."rx-4.1.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safe-compare-1.1.4"
       sources."safer-buffer-2.1.2"
@@ -65647,9 +66406,9 @@ in
       sources."strip-ansi-4.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.2.3"
+          sources."ajv-8.0.5"
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
           sources."json-schema-traverse-1.0.0"
@@ -65666,7 +66425,7 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."telegraf-4.1.2" // {
+      (sources."telegraf-4.3.0" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
@@ -65776,7 +66535,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."browser-process-hrtime-1.0.0"
@@ -65830,8 +66589,8 @@ in
       sources."levn-0.3.0"
       sources."lodash-4.17.21"
       sources."lodash.sortby-4.7.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."nwsapi-2.2.0"
       sources."oauth-sign-0.9.0"
@@ -65920,7 +66679,7 @@ in
     dependencies = [
       sources."argparse-1.0.4"
       sources."array-find-index-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bower-1.8.12"
       sources."bower-endpoint-parser-0.2.1"
       sources."bower-json-0.6.0"
@@ -65978,7 +66737,7 @@ in
       sources."loud-rejection-1.6.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-db-1.46.0"
+      sources."mime-db-1.47.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -66068,7 +66827,7 @@ in
         ];
       })
       sources."available-typed-arrays-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bn.js-5.2.0"
       sources."brace-expansion-1.1.11"
@@ -66248,7 +67007,7 @@ in
       sources."tty-browserify-0.0.1"
       sources."typedarray-0.0.6"
       sources."umd-3.0.3"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."undeclared-identifiers-1.1.3"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -66311,7 +67070,7 @@ in
       sources."babel-runtime-6.26.0"
       sources."babel-types-6.26.0"
       sources."babylon-6.18.0"
-      sources."balanced-match-1.0.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"
@@ -66529,8 +67288,8 @@ in
       sources."merkle-lib-2.0.10"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -66754,7 +67513,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.47"
+      sources."@types/node-13.13.48"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -66770,7 +67529,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bencode-2.0.1"
@@ -66935,8 +67694,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -66996,7 +67755,7 @@ in
           sources."supports-color-0.2.0"
         ];
       })
-      sources."plist-3.0.1"
+      sources."plist-3.0.2"
       sources."process-nextick-args-2.0.1"
       sources."promiscuous-0.6.0"
       sources."protobufjs-6.10.2"
@@ -67143,7 +67902,7 @@ in
         ];
       })
       sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xmldom-0.5.0"
       sources."xspfr-0.3.1"
       sources."xtend-4.0.2"
     ];
@@ -67160,14 +67919,14 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "1.0.0-beta.10";
+    version = "1.0.0-beta.11";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.0-beta.10.tgz";
-      sha512 = "9PI2OLv8PmnnZSNP3PN16gr/yMxBJinh/LMgjk66PBfVmAduojFzJ1pTYPE/vb4qBxHYP4BkEbR8Auxa+qyEvw==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-1.0.0-beta.11.tgz";
+      sha512 = "Oo/tO5aqmjsBORN93dSnidF7+2u77Q9zwUn9VbCQkZqCNfeZZcwIV9AG108hMYwtcXqtKQC7wevX6rmi9l8lng==";
     };
     dependencies = [
-      sources."@jsii/spec-1.26.0"
-      sources."@types/node-10.17.55"
+      sources."@jsii/spec-1.27.0"
+      sources."@types/node-10.17.56"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."array-filter-1.0.0"
@@ -67176,10 +67935,10 @@ in
       sources."call-bind-1.0.2"
       sources."camelcase-6.2.0"
       sources."case-1.6.3"
-      sources."cdk8s-1.0.0-beta.10"
+      sources."cdk8s-1.0.0-beta.11"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.26.0" // {
+      (sources."codemaker-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -67188,7 +67947,7 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
       sources."commonmark-0.29.3"
-      sources."constructs-3.3.48"
+      sources."constructs-3.3.71"
       sources."date-format-3.0.0"
       sources."debug-4.3.2"
       sources."decamelize-5.0.0"
@@ -67237,25 +67996,25 @@ in
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."isarray-2.0.5"
-      (sources."jsii-1.26.0" // {
+      (sources."jsii-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.26.0" // {
+      (sources."jsii-pacmak-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.26.0" // {
+      (sources."jsii-reflect-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.26.0" // {
+      (sources."jsii-rosetta-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
@@ -67283,7 +68042,7 @@ in
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.26.0"
+      sources."oo-ascii-tree-1.27.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -67314,9 +68073,9 @@ in
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
       sources."strip-ansi-6.0.0"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."typescript-3.9.9"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."universalify-2.0.0"
       sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
@@ -67325,7 +68084,7 @@ in
       sources."wrap-ansi-7.0.0"
       sources."xmlbuilder-15.1.1"
       sources."xmldom-0.5.0"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
       (sources."yargs-15.4.1" // {
@@ -67353,18 +68112,18 @@ in
   cdktf-cli = nodeEnv.buildNodePackage {
     name = "cdktf-cli";
     packageName = "cdktf-cli";
-    version = "0.2.0";
+    version = "0.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.2.0.tgz";
-      sha512 = "98fkx6+f5Xf2QJkjlzb0a+M/nG46o6xZt15IrXBk/uT2kVmsG+YztHBr86T5AXZZeXlNJ33pm0qUe3JEUIspaw==";
+      url = "https://registry.npmjs.org/cdktf-cli/-/cdktf-cli-0.2.1.tgz";
+      sha512 = "DcAkiIy8oA3GIUG8/zqO7oBYyER7WxC4ylVNkQFqq/k7m+x+YCk18JvHkZHX4uK2xxQyttQ0lxHMNyZyA5y1oA==";
     };
     dependencies = [
-      sources."@cdktf/hcl2json-0.2.0"
-      sources."@jsii/spec-1.26.0"
+      sources."@cdktf/hcl2json-0.2.1"
+      sources."@jsii/spec-1.27.0"
       sources."@skorfmann/ink-confirm-input-3.0.0"
       sources."@skorfmann/terraform-cloud-1.9.1"
-      sources."@types/node-14.14.35"
-      sources."@types/node-fetch-2.5.8"
+      sources."@types/node-14.14.37"
+      sources."@types/node-fetch-2.5.9"
       sources."@types/yoga-layout-1.9.2"
       (sources."ansi-escapes-4.3.2" // {
         dependencies = [
@@ -67387,7 +68146,7 @@ in
       sources."auto-bind-4.0.0"
       sources."available-typed-arrays-1.0.2"
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
@@ -67397,7 +68156,7 @@ in
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
       sources."case-1.6.3"
-      sources."cdktf-0.2.0"
+      sources."cdktf-0.2.1"
       sources."chalk-4.1.0"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -67484,7 +68243,7 @@ in
       sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-map-2.0.2"
       sources."is-negative-zero-2.0.1"
@@ -67499,7 +68258,7 @@ in
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."js-tokens-4.0.0"
-      (sources."jsii-1.26.0" // {
+      (sources."jsii-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -67507,10 +68266,10 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.26.0" // {
+      (sources."jsii-pacmak-1.27.0" // {
         dependencies = [
           sources."camelcase-6.2.0"
-          sources."codemaker-1.26.0"
+          sources."codemaker-1.27.0"
           sources."decamelize-5.0.0"
           sources."escape-string-regexp-4.0.0"
           sources."fs-extra-9.1.0"
@@ -67519,7 +68278,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.26.0" // {
+      (sources."jsii-reflect-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -67527,7 +68286,7 @@ in
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.26.0" // {
+      (sources."jsii-rosetta-1.27.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -67561,8 +68320,8 @@ in
       sources."lru-cache-6.0.0"
       sources."map-obj-4.2.0"
       sources."mdurl-1.0.1"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -67577,7 +68336,7 @@ in
       sources."object.assign-4.1.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.26.0"
+      sources."oo-ascii-tree-1.27.0"
       sources."open-7.4.2"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -67644,7 +68403,7 @@ in
       sources."tar-stream-2.2.0"
       sources."type-fest-0.15.1"
       sources."typescript-3.9.9"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."universalify-0.1.2"
       sources."util-deprecate-1.0.2"
       sources."uuid-8.3.2"
@@ -67658,7 +68417,7 @@ in
       sources."ws-7.4.4"
       sources."xmlbuilder-15.1.1"
       sources."xmldom-0.5.0"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       (sources."yargs-15.4.1" // {
         dependencies = [
@@ -67691,7 +68450,7 @@ in
       sha512 = "XlgBVTpEAsU/aT7gxAZ/g5Q8P9glHZeg6yfNvE7hYuvoozMdw5Wd46b12QtzuDVs8/7UZ/GCulS0VR9TI5NWRg==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."clean-css-5.1.2"
       sources."commander-7.2.0"
@@ -67727,7 +68486,7 @@ in
     dependencies = [
       sources."ansi-styles-3.2.1"
       sources."async-0.9.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chalk-2.4.2"
       sources."cli-spinner-0.2.10"
@@ -67857,10 +68616,10 @@ in
   coc-diagnostic = nodeEnv.buildNodePackage {
     name = "coc-diagnostic";
     packageName = "coc-diagnostic";
-    version = "0.18.1";
+    version = "0.18.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.18.1.tgz";
-      sha512 = "q7CbA3s5agpXjUzos0xbOrySqk3Z4IWJ5WnLDk9pbgTDLMmBHkS4enbGNOvsk4dpGGqmZZ5hr6wwgb2GWk+TOg==";
+      url = "https://registry.npmjs.org/coc-diagnostic/-/coc-diagnostic-0.18.2.tgz";
+      sha512 = "uiWZlGLle3EXfC+1AmYmPrQfYeL2gY1BKpROBr5BWgT2+1W21gAlY1mziopAk0AmCNA8M4wgvfgc+CC3KVYkjQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -67942,7 +68701,7 @@ in
     dependencies = [
       sources."isexe-2.0.0"
       sources."node-fetch-2.6.1"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-uri-3.0.2"
       sources."which-2.0.2"
@@ -68032,10 +68791,10 @@ in
   coc-jest = nodeEnv.buildNodePackage {
     name = "coc-jest";
     packageName = "coc-jest";
-    version = "1.1.3";
+    version = "1.1.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-jest/-/coc-jest-1.1.3.tgz";
-      sha512 = "iE9zECMZPRdN/HUu1FqjNQ2bkBYePtFpwXOfLQSkb7C+8g3PB3ne3GpS7eLaqVnjgRz9mXzQ6xMBvFIp++7PFA==";
+      url = "https://registry.npmjs.org/coc-jest/-/coc-jest-1.1.4.tgz";
+      sha512 = "kGyCzSYNygSEe8Ha4hUupyacjxHBDmgOhy7Xgf4dSWpCpJmXTj3F69XbKwjkUVGNaAafFuyAAVd4P7CE5t4f7g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -68115,7 +68874,7 @@ in
       sources."arch-2.2.0"
       sources."async-2.6.3"
       sources."await-semaphore-0.1.3"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."big-integer-1.6.48"
       sources."binary-0.3.0"
       sources."bluebird-3.4.7"
@@ -68182,7 +68941,7 @@ in
       sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-negative-zero-2.0.1"
       sources."is-number-object-1.0.4"
       sources."is-regex-1.1.2"
@@ -68259,8 +69018,8 @@ in
       sources."strip-json-comments-2.0.1"
       sources."tar-6.1.0"
       sources."traverse-0.3.9"
-      sources."tslib-2.1.0"
-      sources."unbox-primitive-1.0.0"
+      sources."tslib-2.2.0"
+      sources."unbox-primitive-1.0.1"
       sources."universalify-0.1.2"
       sources."unzipper-0.10.11"
       sources."util-deprecate-1.0.2"
@@ -68291,10 +69050,10 @@ in
   coc-pairs = nodeEnv.buildNodePackage {
     name = "coc-pairs";
     packageName = "coc-pairs";
-    version = "1.2.23";
+    version = "1.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pairs/-/coc-pairs-1.2.23.tgz";
-      sha512 = "vV4rjZqtgHNTlXhHQyQ9cabwbwummPOtxyHYUJDZvfuAGKKTbFpvoC3iS6Qv1P7FTAaxuEpB72EME7+K1bdk7A==";
+      url = "https://registry.npmjs.org/coc-pairs/-/coc-pairs-1.3.0.tgz";
+      sha512 = "elI1hdsA5VNBKoEAo6gkNpYu3Ze5rxZIhhIfE+mPnFoT/KsaWlcidyv2HBHBOawiudMsuWhNYbWfn6hoR2abUg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -68365,7 +69124,7 @@ in
       sources."atob-2.1.2"
       sources."autoprefixer-7.2.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -68391,11 +69150,12 @@ in
           sources."isobject-3.0.1"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.1.0"
       (sources."chalk-4.1.0" // {
@@ -68457,7 +69217,7 @@ in
         ];
       })
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.9.1"
+      sources."core-js-3.10.0"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-7.0.3"
@@ -68484,7 +69244,7 @@ in
       sources."doctrine-3.0.0"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
@@ -68493,14 +69253,14 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.22.0" // {
+      (sources."eslint-7.23.0" // {
         dependencies = [
           sources."eslint-visitor-keys-2.0.0"
         ];
@@ -68620,6 +69380,7 @@ in
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-1.0.3"
+      sources."get-intrinsic-1.1.1"
       sources."get-stdin-5.0.1"
       sources."get-stream-3.0.0"
       sources."get-value-2.0.6"
@@ -68655,6 +69416,7 @@ in
         ];
       })
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       (sources."has-value-1.0.0" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -68693,6 +69455,7 @@ in
       sources."is-alphanumeric-1.0.0"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-1.1.6"
       sources."is-ci-1.2.1"
       sources."is-core-module-2.2.0"
@@ -68719,6 +69482,7 @@ in
       sources."is-installed-globally-0.1.0"
       sources."is-npm-1.0.0"
       sources."is-number-2.1.0"
+      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
@@ -68733,6 +69497,7 @@ in
       sources."is-regexp-1.0.0"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
+      sources."is-string-1.0.5"
       sources."is-supported-regexp-flag-1.0.1"
       sources."is-utf8-0.2.1"
       sources."is-whitespace-character-1.0.4"
@@ -68760,7 +69525,10 @@ in
       })
       sources."locate-path-2.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.truncate-4.4.2"
       (sources."log-symbols-2.2.0" // {
         dependencies = [
           sources."chalk-2.4.2"
@@ -69153,9 +69921,9 @@ in
       sources."sugarss-1.0.1"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.2.3"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -69285,13 +70053,13 @@ in
   coc-pyright = nodeEnv.buildNodePackage {
     name = "coc-pyright";
     packageName = "coc-pyright";
-    version = "1.1.123";
+    version = "1.1.128";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.123.tgz";
-      sha512 = "ebNooa4Wg94/jCNpiBi/+a6Kaci6hKUpcht2Ws548LSoI0a/rCAF+UMKfXQi5kVjIdTc8SNUC1pL6GYfna+y8Q==";
+      url = "https://registry.npmjs.org/coc-pyright/-/coc-pyright-1.1.128.tgz";
+      sha512 = "3im1yc6Z412I09hqsFZBGCEGvnC92aIohpivQfwqK+amP5ySQEBYAtlTF0cJ8C9+cbWHkpFLUThcL/jZDvi9yQ==";
     };
     dependencies = [
-      sources."pyright-1.1.125"
+      sources."pyright-1.1.128"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -69365,10 +70133,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.39.0";
+    version = "0.40.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.39.0.tgz";
-      sha512 = "DImRvpT8AhiAX6GvnbQyFLd55Es0SFpiU1xZfFKfGfmJLNypEQHB7jYTttE7kuuePFBKdWhLLINlexYObsnglg==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.40.0.tgz";
+      sha512 = "OrneTjhj7lOFRRrQg93PjeDNu65XJN0jeAwOu2kbICGassqW5ILhNkYadfQDGbPbjPxbREZwzrHzBc2qcvzPPg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -69443,14 +70211,14 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.12"
-      sources."@babel/core-7.13.10"
+      sources."@babel/core-7.13.14"
       sources."@babel/generator-7.13.9"
-      sources."@babel/helper-compilation-targets-7.13.10"
+      sources."@babel/helper-compilation-targets-7.13.13"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-replace-supers-7.13.12"
       sources."@babel/helper-simple-access-7.13.12"
@@ -69463,10 +70231,10 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -69477,7 +70245,7 @@ in
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/unist-2.0.3"
-      sources."ajv-7.2.3"
+      sources."ajv-8.0.5"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -69485,14 +70253,15 @@ in
       sources."astral-regex-2.0.0"
       sources."autoprefixer-9.8.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browserslist-4.16.3"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       (sources."chalk-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -69523,14 +70292,14 @@ in
       sources."dir-glob-3.0.1"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -69551,6 +70320,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
+      sources."get-intrinsic-1.1.1"
       sources."get-stdin-8.0.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
@@ -69563,6 +70333,7 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."hosted-git-info-4.0.2"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
@@ -69582,6 +70353,7 @@ in
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
       sources."is-core-module-2.2.0"
       sources."is-decimal-1.0.4"
@@ -69590,8 +70362,10 @@ in
       sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-regexp-2.1.0"
+      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
@@ -69605,6 +70379,9 @@ in
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."log-symbols-4.1.0"
       sources."longest-streak-2.0.4"
       sources."lru-cache-6.0.0"
@@ -69727,7 +70504,7 @@ in
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.0.7"
+      sources."table-6.0.9"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
@@ -69821,7 +70598,7 @@ in
       sources."@babel/highlight-7.13.10"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."builtin-modules-1.1.1"
       sources."chalk-2.4.2"
@@ -69877,7 +70654,7 @@ in
       sha512 = "WEl0FM8ui0Oip6YqyOYApf8vErXFudj2ftjSYqm5WNLNuPq53JSNi+5w+WNqHwX2UWE8MOB2mQszqwU2fyE8Ag==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."get-caller-file-1.0.3"
@@ -69951,9 +70728,10 @@ in
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."astral-regex-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."builtin-modules-1.1.1"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       (sources."chalk-4.1.0" // {
         dependencies = [
@@ -69976,7 +70754,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.22.0"
+      sources."eslint-7.23.0"
       sources."eslint-plugin-vue-7.8.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
@@ -70012,6 +70790,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       (sources."globals-13.7.0" // {
@@ -70021,15 +70800,19 @@ in
       })
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."is-boolean-object-1.1.0"
       sources."is-core-module-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
+      sources."is-number-object-1.0.4"
+      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
@@ -70037,6 +70820,9 @@ in
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
       sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -70073,9 +70859,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.2.3"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -70117,10 +70903,10 @@ in
   coc-vimlsp = nodeEnv.buildNodePackage {
     name = "coc-vimlsp";
     packageName = "coc-vimlsp";
-    version = "0.11.1";
+    version = "0.12.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-vimlsp/-/coc-vimlsp-0.11.1.tgz";
-      sha512 = "vHerH6fO69i/5002OTCYMbBiswMcjKRMqLbIByw6aB4OuOXDBDi1zn+jX+LqRSI0sEsVJIL1VhqGvigOo2OWNg==";
+      url = "https://registry.npmjs.org/coc-vimlsp/-/coc-vimlsp-0.12.1.tgz";
+      sha512 = "2ESErZRwj6NZJbjX3wNZpiP5UxS2+La3uKEfA4dI3KQnaOrJ9ZR6TNROGl4MI0I2DgZNJO9Y3FZmyt1I/WJm+Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70327,7 +71113,7 @@ in
       sources."enabled-2.0.0"
       sources."eventemitter3-4.0.7"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."fn.name-1.1.0"
       sources."follow-redirects-1.13.3"
       sources."http-proxy-1.18.1"
@@ -70425,7 +71211,7 @@ in
       sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.48"
@@ -70677,7 +71463,7 @@ in
       sources."ipaddr.js-1.9.1"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
@@ -70731,8 +71517,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -70767,7 +71553,7 @@ in
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.2"
-      sources."npm-packlist-2.1.4"
+      sources."npm-packlist-2.1.5"
       sources."npm-pick-manifest-6.1.1"
       sources."npm-registry-fetch-9.0.0"
       sources."npm-run-path-4.0.1"
@@ -70814,7 +71600,7 @@ in
       sources."picomatch-2.2.2"
       sources."pify-4.0.1"
       sources."pkg-up-2.0.0"
-      sources."plist-3.0.1"
+      sources."plist-3.0.2"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
       sources."promise-inflight-1.0.1"
@@ -70858,7 +71644,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
@@ -70966,7 +71752,7 @@ in
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
       sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xmldom-0.5.0"
       sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
@@ -70996,7 +71782,7 @@ in
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -71009,7 +71795,7 @@ in
       sources."arrify-2.0.1"
       sources."assign-symbols-1.0.0"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -71367,7 +72153,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -71448,8 +72234,8 @@ in
       sources."lru-cache-4.1.5"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimist-1.2.5"
       sources."ms-2.1.3"
@@ -71526,7 +72312,7 @@ in
     dependencies = [
       sources."ansi-styles-4.3.0"
       sources."at-least-node-1.0.0"
-      sources."balanced-match-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"
@@ -71691,7 +72477,7 @@ in
       sources."atomic-batcher-1.0.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -72002,8 +72788,8 @@ in
       sources."merkle-tree-stream-3.0.3"
       sources."micromatch-3.1.10"
       sources."mime-2.5.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-2.1.0"
       sources."min-document-2.19.0"
       sources."minimatch-3.0.4"
@@ -72274,7 +73060,7 @@ in
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."utile-0.3.0"
-      (sources."utp-native-2.3.0" // {
+      (sources."utp-native-2.4.0" // {
         dependencies = [
           sources."node-gyp-build-4.2.3"
           sources."readable-stream-3.6.0"
@@ -72345,7 +73131,7 @@ in
       sources."@nodelib/fs.walk-1.2.6"
       sources."aggregate-error-3.1.0"
       sources."array-union-2.1.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."clean-stack-2.2.0"
@@ -72391,7 +73177,7 @@ in
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."slash-3.0.0"
       sources."temp-dir-2.0.0"
       sources."tempy-0.7.1"
@@ -72447,15 +73233,15 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.66.2";
+    version = "6.68.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.66.2.tgz";
-      sha512 = "9vWIUjRfuuOKu+qEgE1taqxx6yXX2OuD3yxxiwnCmiCTk+kq1QAu24rbDe5pdFvsBXzgTa6NT4dZ6i76uXgd6Q==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.68.0.tgz";
+      sha512 = "TbyxmvjB/wAuZfeXQIfFSn5LVE/SarcYSflAfL1tWnh4Az3OXGe4U5FoB/HRM8G3JTc2gp3oe1akrRpfda9+NQ==";
     };
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."JSONStream-1.3.5"
       sources."ajv-6.12.6"
       sources."asn1-0.2.4"
@@ -72522,8 +73308,8 @@ in
       sources."lodash.uniq-4.5.0"
       sources."lossless-json-1.0.4"
       sources."method-missing-1.2.4"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."oauth-sign-0.9.0"
       sources."p-finally-1.0.0"
@@ -72648,7 +73434,7 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/responselike-1.0.0"
       sources."@types/yauzl-2.9.1"
       sources."abbrev-1.1.1"
@@ -72681,12 +73467,12 @@ in
       sources."author-regex-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bl-4.1.0"
       sources."bluebird-3.7.2"
-      sources."boolean-3.0.2"
+      sources."boolean-3.0.3"
       sources."brace-expansion-1.1.11"
       sources."buffer-5.7.1"
       sources."buffer-alloc-1.2.0"
@@ -72724,7 +73510,7 @@ in
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.12"
       sources."console-control-strings-1.1.0"
-      sources."core-js-3.9.1"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
       sources."currently-unhandled-0.4.1"
@@ -72840,7 +73626,7 @@ in
       sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."global-agent-2.1.12"
+      sources."global-agent-2.2.0"
       sources."global-modules-1.0.0"
       (sources."global-prefix-1.0.2" // {
         dependencies = [
@@ -72876,7 +73662,7 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-interactive-1.0.0"
@@ -72937,8 +73723,8 @@ in
           sources."strip-bom-2.0.0"
         ];
       })
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -73042,7 +73828,7 @@ in
           sources."path-exists-4.0.0"
         ];
       })
-      sources."plist-3.0.1"
+      sources."plist-3.0.2"
       sources."prepend-http-2.0.0"
       sources."pretty-bytes-1.0.4"
       sources."pretty-ms-7.0.1"
@@ -73077,7 +73863,7 @@ in
       sources."rimraf-2.7.1"
       sources."roarr-2.15.4"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
@@ -73162,9 +73948,9 @@ in
       })
       sources."wrappy-1.0.2"
       sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xmldom-0.5.0"
       sources."xtend-2.1.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-3.1.1"
       (sources."yargs-16.2.0" // {
         dependencies = [
@@ -73225,14 +74011,14 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.12"
-      (sources."@babel/core-7.13.10" // {
+      (sources."@babel/core-7.13.14" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
       sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.10" // {
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -73241,7 +74027,7 @@ in
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-plugin-utils-7.13.0"
       sources."@babel/helper-replace-supers-7.13.12"
@@ -73251,7 +74037,7 @@ in
       sources."@babel/helper-validator-option-7.12.17"
       sources."@babel/helpers-7.13.10"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/plugin-proposal-object-rest-spread-7.13.8"
       sources."@babel/plugin-syntax-jsx-7.12.13"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
@@ -73259,15 +74045,15 @@ in
       sources."@babel/plugin-transform-parameters-7.13.0"
       sources."@babel/plugin-transform-react-jsx-7.13.12"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@sindresorhus/is-4.0.0"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
@@ -73284,7 +74070,7 @@ in
       sources."astral-regex-2.0.0"
       sources."atomically-1.7.0"
       sources."auto-bind-4.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."browserslist-4.16.3"
       sources."cacheable-lookup-5.0.4"
@@ -73302,7 +74088,7 @@ in
           sources."quick-lru-4.0.1"
         ];
       })
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -73339,7 +74125,7 @@ in
       })
       sources."defer-to-connect-2.0.1"
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -73393,7 +74179,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
@@ -73599,8 +74385,8 @@ in
       })
       sources."@fluentui/date-time-utilities-7.9.1"
       sources."@fluentui/dom-utilities-1.1.2"
-      sources."@fluentui/keyboard-key-0.2.14"
-      sources."@fluentui/react-7.165.1"
+      sources."@fluentui/keyboard-key-0.2.16"
+      sources."@fluentui/react-7.165.2"
       sources."@fluentui/react-focus-7.17.6"
       sources."@fluentui/react-window-provider-1.0.2"
       sources."@fluentui/theme-1.7.4"
@@ -73614,7 +74400,7 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."@microsoft/load-themed-styles-1.10.153"
+      sources."@microsoft/load-themed-styles-1.10.155"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -73799,7 +74585,7 @@ in
       })
       sources."bach-1.2.0"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -74475,8 +75261,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
@@ -74641,7 +75427,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.165.1"
+      sources."office-ui-fabric-react-7.165.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -75036,7 +75822,7 @@ in
       sources."sver-compat-1.5.0"
       sources."swagger-schema-official-2.0.0-bab6bed"
       sources."swagger-ui-dist-3.34.0"
-      sources."tail-2.2.0"
+      sources."tail-2.2.1"
       sources."tapable-1.1.3"
       (sources."tar-4.4.13" // {
         dependencies = [
@@ -75275,10 +76061,10 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "7.22.0";
+    version = "7.23.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-7.22.0.tgz";
-      sha512 = "3VawOtjSJUQiiqac8MQc+w457iGLfuNGLFn8JmF051tTKbh5/x/0vlcEj8OgDCaw7Ysa2Jn8paGshV7x2abKXg==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.23.0.tgz";
+      sha512 = "kqvNVbdkjzpFy0XOszNwjkKzZ+6TcwCQ/h+ozlcIWwaimBBuhlQ4nN6kbiM2L+OjDcznkTJxzYfRFH92sx4a0Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.11"
@@ -75301,8 +76087,9 @@ in
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."astral-regex-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       (sources."chalk-4.1.0" // {
         dependencies = [
@@ -75355,7 +76142,9 @@ in
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       (sources."globals-13.7.0" // {
@@ -75363,15 +76152,20 @@ in
           sources."type-fest-0.20.2"
         ];
       })
+      sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      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-number-object-1.0.4"
+      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
@@ -75379,6 +76173,9 @@ in
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
       sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
       sources."ms-2.1.2"
@@ -75410,9 +76207,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.2.3"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -75467,8 +76264,9 @@ in
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."astral-regex-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       (sources."chalk-4.1.0" // {
         dependencies = [
@@ -75489,7 +76287,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.22.0"
+      sources."eslint-7.23.0"
       sources."eslint-scope-5.1.1"
       (sources."eslint-utils-2.1.0" // {
         dependencies = [
@@ -75522,7 +76320,9 @@ in
       sources."flat-cache-3.0.4"
       sources."flatted-3.1.1"
       sources."fs.realpath-1.0.0"
+      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       (sources."globals-13.7.0" // {
@@ -75530,15 +76330,20 @@ in
           sources."type-fest-0.20.2"
         ];
       })
+      sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
       sources."ignore-4.0.6"
       sources."import-fresh-3.3.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      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-number-object-1.0.4"
+      sources."is-string-1.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.1"
@@ -75546,6 +76351,9 @@ in
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
       sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."lru-cache-6.0.0"
       sources."minimatch-3.0.4"
       sources."ms-2.1.2"
@@ -75578,9 +76386,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-8.1.1"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.2.3"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -75607,10 +76415,10 @@ in
   esy = nodeEnv.buildNodePackage {
     name = "esy";
     packageName = "esy";
-    version = "0.6.8";
+    version = "0.6.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/esy/-/esy-0.6.8.tgz";
-      sha512 = "tSNYVoLV0ps3hVPG0kaJCdaB0cQKwPMuydPqZQ+VsyfA7TMBLIVv1hoqoVf6e6slyyCepPu2KMDApL2H2smlew==";
+      url = "https://registry.npmjs.org/esy/-/esy-0.6.10.tgz";
+      sha512 = "O+mWNPB9NJqDr3CA1PUbWUO1ZSy53ksZWivGrvbquATR5INlp3CYguwkq4BzZACg1s1bVYyhr7byjB/l1nuGRA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -75624,10 +76432,10 @@ in
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "4.3.2";
+    version = "4.3.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.3.2.tgz";
-      sha512 = "H6YzchpWSV/2dPSns3IzGJBGqt1Thhbe1s6NO5UQMoRRkp7e64XMGVfzmw4W5t6CKCF+BB/MgXMFdipniPsY9w==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-4.3.4.tgz";
+      sha512 = "feD7OAnzf7PKZgi4VpEpkuI8TYdplPaQVILoS+6ejMLvjjgDOTPh9Tn47xdox35Q3S1VPWS6qivNvOXjhUNDDQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
@@ -75640,7 +76448,7 @@ in
       sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.10" // {
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -75658,7 +76466,7 @@ in
       sources."@babel/helper-hoist-variables-7.13.0"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-plugin-utils-7.13.0"
       sources."@babel/helper-remap-async-to-generator-7.13.0"
@@ -75675,7 +76483,7 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
       sources."@babel/plugin-proposal-class-properties-7.12.13"
       sources."@babel/plugin-proposal-dynamic-import-7.13.8"
@@ -75759,17 +76567,12 @@ in
       sources."@babel/preset-typescript-7.12.17"
       sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@expo/apple-utils-0.0.0-alpha.17"
       sources."@expo/bunyan-4.0.0"
-      sources."@expo/config-3.3.33"
-      (sources."@expo/config-plugins-1.0.23" // {
-        dependencies = [
-          sources."uuid-3.4.0"
-          sources."xcode-2.1.0"
-        ];
-      })
+      sources."@expo/config-3.3.34"
+      sources."@expo/config-plugins-1.0.24"
       sources."@expo/config-types-40.0.0-beta.2"
       (sources."@expo/configure-splash-screen-0.3.4" // {
         dependencies = [
@@ -75777,7 +76580,7 @@ in
           sources."pngjs-5.0.0"
         ];
       })
-      (sources."@expo/dev-server-0.1.59" // {
+      (sources."@expo/dev-server-0.1.60" // {
         dependencies = [
           sources."body-parser-1.19.0"
           sources."bytes-3.1.0"
@@ -75792,7 +76595,7 @@ in
           sources."statuses-1.5.0"
         ];
       })
-      sources."@expo/dev-tools-0.13.87"
+      sources."@expo/dev-tools-0.13.89"
       (sources."@expo/devcert-1.0.0" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -75800,33 +76603,33 @@ in
           sources."sudo-prompt-8.2.5"
         ];
       })
-      (sources."@expo/image-utils-0.3.11" // {
+      (sources."@expo/image-utils-0.3.12" // {
         dependencies = [
           sources."tempy-0.3.0"
         ];
       })
-      (sources."@expo/json-file-8.2.28-alpha.0" // {
+      (sources."@expo/json-file-8.2.28" // {
         dependencies = [
           sources."@babel/code-frame-7.10.4"
           sources."json5-1.0.1"
         ];
       })
-      sources."@expo/metro-config-0.1.59"
-      sources."@expo/osascript-2.0.24"
-      (sources."@expo/package-manager-0.0.39-alpha.0" // {
+      sources."@expo/metro-config-0.1.60"
+      sources."@expo/osascript-2.0.25"
+      (sources."@expo/package-manager-0.0.39" // {
         dependencies = [
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
           sources."semver-5.7.1"
         ];
       })
-      (sources."@expo/plist-0.0.11" // {
+      (sources."@expo/plist-0.0.12" // {
         dependencies = [
           sources."xmlbuilder-14.0.0"
         ];
       })
       sources."@expo/results-1.0.0"
-      (sources."@expo/schemer-1.3.27-alpha.0" // {
+      (sources."@expo/schemer-1.3.27" // {
         dependencies = [
           sources."ajv-5.5.2"
           sources."fast-deep-equal-1.1.0"
@@ -75835,12 +76638,17 @@ in
       })
       sources."@expo/simple-spinner-1.0.2"
       sources."@expo/spawn-async-1.5.0"
-      (sources."@expo/webpack-config-0.12.63" // {
+      (sources."@expo/webpack-config-0.12.64" // {
         dependencies = [
           sources."@babel/runtime-7.9.0"
           sources."react-refresh-0.8.3"
         ];
       })
+      (sources."@expo/xcpretty-1.1.1" // {
+        dependencies = [
+          sources."@babel/code-frame-7.10.4"
+        ];
+      })
       sources."@hapi/address-4.1.0"
       sources."@hapi/formula-2.0.0"
       sources."@hapi/hoek-9.1.1"
@@ -75950,14 +76758,14 @@ in
       sources."@types/responselike-1.0.0"
       sources."@types/retry-0.12.0"
       sources."@types/source-list-map-0.1.2"
-      sources."@types/tapable-1.0.6"
+      sources."@types/tapable-1.0.7"
       sources."@types/text-table-0.2.1"
       (sources."@types/uglify-js-3.13.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-4.41.26" // {
+      (sources."@types/webpack-4.41.27" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -76094,7 +76902,7 @@ in
       })
       sources."babylon-6.18.0"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -76174,12 +76982,12 @@ in
       (sources."camel-case-4.1.2" // {
         dependencies = [
           sources."pascal-case-3.1.2"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."caseless-0.12.0"
       (sources."chalk-4.1.0" // {
         dependencies = [
@@ -76312,8 +77120,8 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."core-js-3.9.1"
-      (sources."core-js-compat-3.9.1" // {
+      sources."core-js-3.10.0"
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -76348,7 +77156,7 @@ in
         dependencies = [
           (sources."dom-serializer-0.2.2" // {
             dependencies = [
-              sources."domelementtype-2.1.0"
+              sources."domelementtype-2.2.0"
             ];
           })
           sources."domelementtype-1.3.1"
@@ -76363,15 +77171,15 @@ in
       })
       sources."css-what-3.4.2"
       sources."cssesc-3.0.0"
-      sources."cssnano-4.1.10"
-      sources."cssnano-preset-default-4.0.7"
+      sources."cssnano-4.1.11"
+      sources."cssnano-preset-default-4.0.8"
       sources."cssnano-util-get-arguments-4.0.0"
       sources."cssnano-util-get-match-4.0.0"
       sources."cssnano-util-raw-cache-4.0.1"
       sources."cssnano-util-same-parent-4.0.1"
       (sources."csso-4.2.0" // {
         dependencies = [
-          sources."css-tree-1.1.2"
+          sources."css-tree-1.1.3"
           sources."mdn-data-2.0.14"
           sources."source-map-0.6.1"
         ];
@@ -76428,22 +77236,22 @@ in
       sources."dom-converter-0.2.0"
       (sources."dom-serializer-1.2.0" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.1.0"
         ];
       })
       sources."dom-walk-0.1.2"
       sources."domain-browser-1.2.0"
-      sources."domelementtype-2.1.0"
+      sources."domelementtype-2.2.0"
       sources."domhandler-3.3.0"
       sources."domino-2.1.6"
-      (sources."domutils-2.5.0" // {
+      (sources."domutils-2.5.1" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.1.0"
         ];
       })
       (sources."dot-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."dot-prop-5.3.0"
@@ -76452,7 +77260,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.699"
+      sources."electron-to-chromium-1.3.708"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -76534,7 +77342,7 @@ in
           sources."ms-2.0.0"
         ];
       })
-      (sources."expo-pwa-0.0.69" // {
+      (sources."expo-pwa-0.0.70" // {
         dependencies = [
           sources."commander-2.20.0"
         ];
@@ -76692,7 +77500,6 @@ in
       sources."hpack.js-2.1.6"
       sources."hsl-regex-1.0.0"
       sources."hsla-regex-1.0.0"
-      sources."html-comment-regex-1.1.2"
       sources."html-entities-1.4.0"
       sources."html-loader-1.1.0"
       (sources."html-minifier-terser-5.1.1" // {
@@ -76776,7 +77583,7 @@ in
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
@@ -76833,7 +77640,6 @@ in
       sources."is-set-2.0.2"
       sources."is-stream-2.0.0"
       sources."is-string-1.0.5"
-      sources."is-svg-3.0.0"
       sources."is-symbol-1.0.3"
       sources."is-typed-array-1.1.5"
       sources."is-typedarray-1.0.0"
@@ -76920,7 +77726,7 @@ in
       sources."loose-envify-1.4.0"
       (sources."lower-case-2.0.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."lowercase-keys-2.0.0"
@@ -76962,8 +77768,8 @@ in
         ];
       })
       sources."mime-2.5.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."min-document-2.19.0"
@@ -77050,7 +77856,7 @@ in
       sources."nice-try-1.0.5"
       (sources."no-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."node-fetch-2.6.1"
@@ -77082,7 +77888,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."npm-packlist-2.1.4"
+      sources."npm-packlist-2.1.5"
       (sources."npm-pick-manifest-6.1.1" // {
         dependencies = [
           sources."hosted-git-info-4.0.2"
@@ -77201,7 +78007,7 @@ in
       sources."parallel-transform-1.2.0"
       (sources."param-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."parse-asn1-5.1.6"
@@ -77261,7 +78067,11 @@ in
           sources."path-exists-3.0.0"
         ];
       })
-      sources."plist-3.0.1"
+      (sources."plist-3.0.2" // {
+        dependencies = [
+          sources."xmlbuilder-9.0.7"
+        ];
+      })
       sources."pngjs-3.4.0"
       sources."pnp-webpack-plugin-1.6.4"
       (sources."portfinder-1.0.28" // {
@@ -77386,7 +78196,7 @@ in
       })
       sources."postcss-safe-parser-4.0.2"
       sources."postcss-selector-parser-6.0.4"
-      (sources."postcss-svgo-4.0.2" // {
+      (sources."postcss-svgo-4.0.3" // {
         dependencies = [
           sources."postcss-value-parser-3.3.1"
         ];
@@ -77410,7 +78220,7 @@ in
       sources."progress-2.0.3"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
-      sources."prompts-2.4.0"
+      sources."prompts-2.4.1"
       sources."proxy-addr-2.0.6"
       sources."prr-1.0.1"
       sources."psl-1.8.0"
@@ -77460,6 +78270,7 @@ in
           sources."p-limit-2.3.0"
           sources."p-locate-4.1.0"
           sources."path-key-3.1.1"
+          sources."prompts-2.4.0"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
           sources."which-2.0.2"
@@ -77501,7 +78312,7 @@ in
           sources."ansi-regex-2.1.1"
           (sources."dom-serializer-0.2.2" // {
             dependencies = [
-              sources."domelementtype-2.1.0"
+              sources."domelementtype-2.2.0"
               sources."entities-2.2.0"
             ];
           })
@@ -77825,7 +78636,7 @@ in
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
       sources."ultron-1.1.1"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       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"
@@ -78102,7 +78913,7 @@ in
           sources."uuid-7.0.3"
         ];
       })
-      (sources."xdl-59.0.27" // {
+      (sources."xdl-59.0.29" // {
         dependencies = [
           sources."chownr-1.1.4"
           sources."fs-minipass-1.2.7"
@@ -78112,21 +78923,15 @@ in
           sources."p-map-3.0.0"
           sources."tar-4.4.6"
           sources."uuid-3.3.2"
-          sources."xcode-2.1.0"
-          sources."xmldom-0.1.27"
           sources."yallist-3.1.1"
         ];
       })
       sources."xhr-2.6.0"
       sources."xml-js-1.6.11"
       sources."xml-parse-from-string-1.0.1"
-      (sources."xml2js-0.4.23" // {
-        dependencies = [
-          sources."xmlbuilder-11.0.1"
-        ];
-      })
-      sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xml2js-0.4.23"
+      sources."xmlbuilder-11.0.1"
+      sources."xmldom-0.5.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.1"
       sources."yallist-4.0.0"
@@ -78254,8 +79059,8 @@ in
       sources."loud-rejection-1.6.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -78383,7 +79188,7 @@ in
       (sources."@oclif/config-1.17.0" // {
         dependencies = [
           sources."globby-11.0.3"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."@oclif/errors-1.3.4"
@@ -78428,7 +79233,7 @@ in
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -78501,7 +79306,7 @@ in
       sources."concat-map-0.0.1"
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
-      sources."cross-fetch-3.1.2"
+      sources."cross-fetch-3.1.4"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -78651,7 +79456,7 @@ in
       sources."is-buffer-1.1.6"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -78690,8 +79495,8 @@ in
       sources."map-visit-1.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       (sources."mixin-deep-1.3.2" // {
@@ -78907,10 +79712,10 @@ in
   firebase-tools = nodeEnv.buildNodePackage {
     name = "firebase-tools";
     packageName = "firebase-tools";
-    version = "9.7.0";
+    version = "9.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.7.0.tgz";
-      sha512 = "mQaNZ0EE/lOFIc7ycLRSsyWSWKqAAH1/0ND9V9A8HFqu3tAdfTfhxiUUj8dDv1u0u4YVG5hZjpco+AmxeJEnlg==";
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-9.8.0.tgz";
+      sha512 = "UhOnT8csgc1jlS1GYz0IxTHwB9BYoxj+TSy4aIKj8a44OzsXVSiT6lOhLIYHZFLVdjqkLi08i1+07JoOVTmtTA==";
     };
     dependencies = [
       sources."@apidevtools/json-schema-ref-parser-9.0.7"
@@ -78959,7 +79764,7 @@ in
       sources."@types/glob-7.1.3"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -79003,7 +79808,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       (sources."basic-auth-2.0.1" // {
         dependencies = [
@@ -79016,6 +79821,7 @@ in
       sources."bignumber.js-9.0.1"
       sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
+      sources."bindings-1.5.0"
       sources."bl-4.1.0"
       sources."blakejs-1.1.0"
       sources."bluebird-3.4.7"
@@ -79201,6 +80007,7 @@ in
       sources."extend-3.0.2"
       sources."external-editor-3.1.0"
       sources."extsprintf-1.3.0"
+      sources."fast-crc32c-2.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
@@ -79211,9 +80018,9 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."figures-2.0.0"
-      sources."file-uri-to-path-2.0.0"
+      sources."file-uri-to-path-1.0.0"
       sources."filesize-6.1.0"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
@@ -79271,6 +80078,7 @@ in
       sources."get-stream-4.1.0"
       (sources."get-uri-3.0.2" // {
         dependencies = [
+          sources."file-uri-to-path-2.0.0"
           sources."fs-extra-8.1.0"
           sources."jsonfile-4.0.0"
         ];
@@ -79425,8 +80233,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -79450,9 +80258,10 @@ in
         ];
       })
       sources."negotiator-0.6.2"
-      sources."netmask-1.0.6"
+      sources."netmask-2.0.2"
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
+      sources."node-addon-api-1.7.2"
       sources."node-emoji-1.10.0"
       sources."node-fetch-2.6.1"
       sources."node-forge-0.10.0"
@@ -79484,7 +80293,7 @@ in
       sources."p-cancelable-1.1.0"
       sources."p-defer-3.0.0"
       sources."pac-proxy-agent-4.1.0"
-      sources."pac-resolver-4.1.0"
+      sources."pac-resolver-4.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -79496,7 +80305,7 @@ in
       sources."path-to-regexp-0.1.7"
       sources."performance-now-2.1.0"
       sources."picomatch-2.2.2"
-      sources."plist-3.0.1"
+      sources."plist-3.0.2"
       (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."async-2.6.3"
@@ -79511,7 +80320,7 @@ in
       sources."promise-breaker-5.0.0"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.47"
+          sources."@types/node-13.13.48"
         ];
       })
       sources."proxy-addr-2.0.6"
@@ -79556,7 +80365,7 @@ in
       })
       sources."rsvp-4.8.5"
       sources."run-async-2.4.1"
-      (sources."rxjs-6.6.6" // {
+      (sources."rxjs-6.6.7" // {
         dependencies = [
           sources."tslib-1.14.1"
         ];
@@ -79592,6 +80401,7 @@ in
       sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
+      sources."sse4_crc32-6.0.1"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
       sources."statuses-1.5.0"
@@ -79666,7 +80476,7 @@ in
       sources."toxic-1.0.1"
       sources."traverse-0.3.9"
       sources."triple-beam-1.3.0"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       (sources."tweetsodium-0.0.5" // {
@@ -79735,7 +80545,7 @@ in
       sources."ws-7.4.4"
       sources."xdg-basedir-4.0.0"
       sources."xmlbuilder-9.0.7"
-      sources."xmldom-0.1.31"
+      sources."xmldom-0.5.0"
       sources."xregexp-2.0.0"
       sources."xtend-4.0.2"
       sources."yallist-4.0.0"
@@ -79762,7 +80572,7 @@ in
     dependencies = [
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."cliui-7.0.4"
       sources."color-convert-2.0.1"
@@ -79786,7 +80596,7 @@ in
       sources."strip-ansi-6.0.0"
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
     ];
@@ -79855,7 +80665,7 @@ in
       sources."external-editor-3.1.0"
       sources."figures-3.2.0"
       sources."find-up-4.1.0"
-      sources."fkill-7.1.0"
+      sources."fkill-7.1.1"
       sources."function-bind-1.1.1"
       sources."get-stream-6.0.0"
       sources."hard-rejection-2.1.0"
@@ -79935,7 +80745,7 @@ in
       sources."resolve-1.20.0"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       sources."shebang-command-2.0.0"
@@ -79979,13 +80789,223 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  fleek-cli = nodeEnv.buildNodePackage {
+    name = "fleek-cli";
+    packageName = "fleek-cli";
+    version = "0.0.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/fleek-cli/-/fleek-cli-0.0.1.tgz";
+      sha512 = "6TL8NcVoGh7q+1qO/uQ4d/YDAG+x8ddQctZILObjdNmztf9Dv8JI9X0l0U+fsDPTcytYjkw910UwW7uzzWGclA==";
+    };
+    dependencies = [
+      sources."@types/atob-2.1.2"
+      sources."@types/inquirer-6.5.0"
+      sources."@types/node-14.14.37"
+      sources."@types/through-0.0.30"
+      sources."ajv-6.12.6"
+      sources."ansi-escapes-4.3.2"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.3.0"
+      sources."argparse-1.0.10"
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."async-0.2.10"
+      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."bcrypt-pbkdf-1.0.2"
+      sources."binary-search-tree-0.2.5"
+      sources."bluebird-3.7.2"
+      sources."bn.js-4.12.0"
+      sources."brorand-1.1.0"
+      sources."buffer-to-arraybuffer-0.0.5"
+      sources."camelcase-5.3.1"
+      sources."caseless-0.12.0"
+      sources."chalk-4.1.0"
+      sources."chardet-0.7.0"
+      sources."cli-cursor-3.1.0"
+      sources."cli-width-3.0.0"
+      sources."cliui-6.0.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
+      sources."command-exists-1.2.9"
+      sources."core-util-is-1.0.2"
+      sources."dashdash-1.14.1"
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      sources."decompress-response-3.3.0"
+      sources."delayed-stream-1.0.0"
+      sources."dom-walk-0.1.2"
+      sources."dotenv-8.2.0"
+      sources."ecc-jsbn-0.1.2"
+      sources."elliptic-6.5.4"
+      sources."emoji-regex-8.0.0"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."eth-lib-0.2.8"
+      sources."ethereum-bloom-filters-1.0.9"
+      (sources."ethjs-unit-0.1.6" // {
+        dependencies = [
+          sources."bn.js-4.11.6"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."external-editor-3.1.0"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."figures-3.2.0"
+      sources."find-up-4.1.0"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."fs-extra-9.1.0"
+      sources."get-caller-file-2.0.5"
+      sources."getpass-0.1.7"
+      sources."global-4.4.0"
+      sources."graceful-fs-4.2.6"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-flag-4.0.0"
+      sources."hash.js-1.1.7"
+      sources."hmac-drbg-1.0.1"
+      sources."http-signature-1.2.0"
+      sources."iconv-lite-0.4.24"
+      sources."immediate-3.0.6"
+      sources."inherits-2.0.4"
+      sources."inquirer-7.3.3"
+      sources."inversify-5.0.5"
+      sources."is-docker-2.2.0"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-function-1.0.2"
+      sources."is-hex-prefixed-1.0.0"
+      sources."is-typedarray-1.0.0"
+      sources."is-wsl-2.2.0"
+      sources."isstream-0.1.2"
+      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-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonfile-6.1.0"
+      sources."jsprim-1.4.1"
+      sources."jwt-decode-2.2.0"
+      sources."lie-3.1.1"
+      sources."localforage-1.9.0"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.21"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      sources."mimic-fn-2.1.0"
+      sources."mimic-response-1.0.1"
+      sources."min-document-2.19.0"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."mute-stream-0.0.8"
+      sources."nedb-1.8.0"
+      sources."node-fetch-2.6.1"
+      (sources."number-to-bn-1.7.0" // {
+        dependencies = [
+          sources."bn.js-4.11.6"
+        ];
+      })
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      sources."open-7.4.2"
+      sources."os-tmpdir-1.0.2"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."parse-headers-2.0.3"
+      sources."path-exists-4.0.0"
+      sources."performance-now-2.1.0"
+      sources."process-0.11.10"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.5.2"
+      sources."query-string-5.1.1"
+      sources."querystring-0.2.1"
+      sources."randombytes-2.1.0"
+      sources."reflect-metadata-0.1.13"
+      sources."request-2.88.2"
+      sources."request-promise-4.2.6"
+      sources."request-promise-core-1.1.4"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."restore-cursor-3.1.0"
+      sources."run-async-2.4.1"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."set-blocking-2.0.0"
+      sources."signal-exit-3.0.3"
+      sources."simple-concat-1.0.1"
+      sources."simple-get-2.8.1"
+      sources."sprintf-js-1.0.3"
+      sources."sshpk-1.16.1"
+      sources."stealthy-require-1.1.1"
+      sources."strict-uri-encode-1.1.0"
+      sources."string-width-4.2.2"
+      sources."strip-ansi-6.0.0"
+      sources."strip-hex-prefix-1.0.0"
+      sources."supports-color-7.2.0"
+      sources."through-2.3.8"
+      sources."timed-out-4.0.1"
+      sources."tmp-0.0.33"
+      sources."tough-cookie-2.5.0"
+      sources."tslib-1.14.1"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."type-fest-0.21.3"
+      sources."underscore-1.4.4"
+      sources."universalify-2.0.0"
+      sources."untildify-4.0.0"
+      sources."uri-js-4.4.1"
+      sources."url-set-query-1.0.0"
+      sources."utf8-3.0.0"
+      sources."uuid-3.4.0"
+      sources."verror-1.10.0"
+      (sources."web3-utils-1.3.5" // {
+        dependencies = [
+          sources."underscore-1.9.1"
+        ];
+      })
+      sources."which-module-2.0.0"
+      sources."wrap-ansi-6.2.0"
+      sources."wrappy-1.0.2"
+      sources."xhr-2.6.0"
+      sources."xhr-request-1.1.0"
+      sources."xhr-request-promise-0.1.3"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.1"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Fleek command line utilities";
+      homepage = "https://github.com/fleekhq/fleek-cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   flood = nodeEnv.buildNodePackage {
     name = "flood";
     packageName = "flood";
-    version = "4.5.0";
+    version = "4.5.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/flood/-/flood-4.5.0.tgz";
-      sha512 = "wBXVekF7rU3EMm4y8aalSxMjxEx8qOJJuqWT8r11ED8+oO9cHT0JwvD6ihaZflyhQX1+P04xgoLYVxwbDCaqUg==";
+      url = "https://registry.npmjs.org/flood/-/flood-4.5.2.tgz";
+      sha512 = "rgT/2x0GT5DR5bvK+R0znv1M3IYWAINb3zBz697q7+wJy2ryNUmaC9yYXV4+QqpsrlSxzI6nCZvWlAPqmJo48A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -80020,7 +81040,7 @@ in
       sources."async-1.5.2"
       sources."async-each-1.0.3"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -80435,6 +81455,782 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  gatsby-cli = nodeEnv.buildNodePackage {
+    name = "gatsby-cli";
+    packageName = "gatsby-cli";
+    version = "3.2.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/gatsby-cli/-/gatsby-cli-3.2.0.tgz";
+      sha512 = "MOj7LgwNX/O30LNdZ1WDUQ4Wiyn3uXFGND7QQepfWpaHvrgtposhy/vseAAR54N5pyehcdLhQkNQkbd4Zw9olA==";
+    };
+    dependencies = [
+      (sources."@ardatan/aggregate-error-0.0.6" // {
+        dependencies = [
+          sources."tslib-2.0.3"
+        ];
+      })
+      sources."@babel/code-frame-7.12.13"
+      sources."@babel/compat-data-7.13.12"
+      (sources."@babel/core-7.13.14" // {
+        dependencies = [
+          sources."semver-6.3.0"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/generator-7.13.9" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/helper-annotate-as-pure-7.12.13"
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."@babel/helper-function-name-7.12.13"
+      sources."@babel/helper-get-function-arity-7.12.13"
+      sources."@babel/helper-member-expression-to-functions-7.13.12"
+      sources."@babel/helper-module-imports-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
+      sources."@babel/helper-optimise-call-expression-7.12.13"
+      sources."@babel/helper-plugin-utils-7.13.0"
+      sources."@babel/helper-replace-supers-7.13.12"
+      sources."@babel/helper-simple-access-7.13.12"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.12.1"
+      sources."@babel/helper-split-export-declaration-7.12.13"
+      sources."@babel/helper-validator-identifier-7.12.11"
+      sources."@babel/helper-validator-option-7.12.17"
+      sources."@babel/helpers-7.13.10"
+      (sources."@babel/highlight-7.13.10" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."@babel/parser-7.13.13"
+      sources."@babel/plugin-proposal-object-rest-spread-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.13.12"
+      sources."@babel/plugin-syntax-jsx-7.12.13"
+      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.13.0"
+      sources."@babel/plugin-transform-react-jsx-7.13.12"
+      sources."@babel/runtime-7.13.10"
+      sources."@babel/standalone-7.13.14"
+      sources."@babel/template-7.12.13"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
+      sources."@graphql-tools/schema-7.1.3"
+      sources."@graphql-tools/utils-7.7.1"
+      sources."@hapi/address-2.1.4"
+      sources."@hapi/bourne-1.3.2"
+      sources."@hapi/hoek-8.5.1"
+      sources."@hapi/joi-15.1.1"
+      sources."@hapi/topo-3.1.6"
+      (sources."@jest/types-25.5.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.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."@mdx-js/util-2.0.0-next.8"
+      (sources."@sideway/address-4.1.1" // {
+        dependencies = [
+          sources."@hapi/hoek-9.1.1"
+        ];
+      })
+      sources."@sideway/formula-3.0.0"
+      sources."@sideway/pinpoint-2.0.0"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@tokenizer/token-0.1.1"
+      sources."@turist/fetch-7.1.7"
+      sources."@turist/time-0.0.1"
+      sources."@types/common-tags-1.8.0"
+      sources."@types/debug-4.1.5"
+      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/node-14.14.37"
+      sources."@types/node-fetch-2.5.9"
+      sources."@types/readable-stream-2.3.9"
+      sources."@types/unist-2.0.3"
+      sources."@types/yargs-15.0.13"
+      sources."@types/yargs-parser-20.2.0"
+      sources."@types/yoga-layout-1.9.2"
+      sources."accepts-1.3.7"
+      sources."acorn-8.1.0"
+      sources."acorn-jsx-5.3.1"
+      sources."address-1.1.2"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
+      (sources."ansi-escapes-4.3.2" // {
+        dependencies = [
+          sources."type-fest-0.21.3"
+        ];
+      })
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."arch-2.2.0"
+      sources."array-flatten-1.1.1"
+      sources."async-retry-ng-2.0.1"
+      sources."asynckit-0.4.0"
+      sources."axios-0.21.1"
+      sources."bail-1.0.5"
+      sources."balanced-match-1.0.2"
+      sources."better-opn-2.1.1"
+      sources."better-queue-3.8.10"
+      sources."better-queue-memory-1.0.4"
+      sources."binary-extensions-2.2.0"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."qs-6.7.0"
+        ];
+      })
+      sources."boolbase-1.0.0"
+      (sources."boxen-4.2.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.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."type-fest-0.8.1"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browserslist-4.16.3"
+      sources."bytes-3.1.0"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+          sources."normalize-url-4.5.0"
+        ];
+      })
+      sources."call-bind-1.0.2"
+      sources."camel-case-4.1.2"
+      sources."camelcase-5.3.1"
+      sources."caniuse-lite-1.0.30001207"
+      sources."ccount-1.1.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."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.1"
+      sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
+      sources."cli-cursor-3.1.0"
+      sources."cli-width-3.0.0"
+      (sources."clipboardy-2.3.0" // {
+        dependencies = [
+          sources."execa-1.0.0"
+        ];
+      })
+      (sources."cliui-6.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."strip-ansi-6.0.0"
+          sources."wrap-ansi-6.2.0"
+        ];
+      })
+      sources."clone-response-1.0.2"
+      sources."collapse-white-space-1.0.6"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."colorette-1.2.2"
+      sources."combined-stream-1.0.8"
+      sources."common-tags-1.8.0"
+      sources."concat-map-0.0.1"
+      sources."configstore-5.0.1"
+      (sources."content-disposition-0.5.3" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."content-type-1.0.4"
+      sources."contentful-management-7.14.0"
+      sources."contentful-sdk-core-6.7.0"
+      sources."convert-hrtime-3.0.0"
+      (sources."convert-source-map-1.7.0" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."cookie-0.4.0"
+      sources."cookie-signature-1.0.6"
+      sources."cors-2.8.5"
+      sources."create-gatsby-1.2.0"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."crypto-random-string-2.0.0"
+      sources."css-select-2.1.0"
+      sources."css-what-3.4.2"
+      sources."debug-4.3.2"
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      sources."decompress-response-3.3.0"
+      sources."deep-extend-0.6.0"
+      sources."defer-to-connect-1.1.3"
+      sources."delayed-stream-1.0.0"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."detect-newline-1.0.3"
+      (sources."detect-port-1.3.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."diff-sequences-25.2.6"
+      sources."dom-converter-0.2.0"
+      (sources."dom-serializer-0.2.2" // {
+        dependencies = [
+          sources."domelementtype-2.2.0"
+        ];
+      })
+      sources."domelementtype-1.3.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.7.0"
+      sources."dot-prop-5.3.0"
+      sources."dotenv-8.2.0"
+      sources."duplexer3-0.1.4"
+      sources."ee-first-1.1.1"
+      sources."electron-to-chromium-1.3.708"
+      sources."emoji-regex-7.0.3"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."entities-2.2.0"
+      sources."envinfo-7.8.1"
+      sources."escalade-3.1.1"
+      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-1.1.0"
+      sources."etag-1.8.1"
+      (sources."execa-3.4.0" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."get-stream-5.2.0"
+          sources."is-stream-2.0.0"
+          sources."npm-run-path-4.0.1"
+          sources."p-finally-2.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."express-4.17.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+          sources."qs-6.7.0"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      (sources."express-graphql-0.9.0" // {
+        dependencies = [
+          sources."http-errors-1.8.0"
+          (sources."raw-body-2.4.1" // {
+            dependencies = [
+              sources."http-errors-1.7.3"
+              sources."setprototypeof-1.1.1"
+            ];
+          })
+          sources."setprototypeof-1.2.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      (sources."external-editor-3.1.0" // {
+        dependencies = [
+          sources."tmp-0.0.33"
+        ];
+      })
+      sources."fast-copy-2.1.1"
+      sources."figures-3.2.0"
+      sources."file-type-16.3.0"
+      sources."fill-range-7.0.1"
+      sources."filter-obj-1.1.0"
+      (sources."finalhandler-1.1.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."find-up-4.1.0"
+      sources."follow-redirects-1.13.3"
+      sources."form-data-3.0.1"
+      sources."forwarded-0.1.2"
+      sources."fresh-0.5.2"
+      sources."fs-exists-cached-1.0.0"
+      sources."fs-extra-8.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.3.2"
+      sources."function-bind-1.1.1"
+      sources."gatsby-core-utils-2.2.0"
+      (sources."gatsby-recipes-0.13.0" // {
+        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."strip-ansi-6.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."gatsby-telemetry-2.2.0"
+      sources."gensync-1.0.0-beta.2"
+      sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
+      sources."get-stdin-4.0.1"
+      sources."get-stream-4.1.0"
+      sources."git-up-4.0.2"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      sources."global-dirs-3.0.0"
+      sources."globals-11.12.0"
+      sources."got-9.6.0"
+      sources."graceful-fs-4.2.6"
+      sources."graphql-15.5.0"
+      sources."graphql-compose-7.25.1"
+      sources."graphql-subscriptions-1.2.1"
+      sources."graphql-type-json-0.3.2"
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
+      sources."has-yarn-2.1.0"
+      sources."hicat-0.8.0"
+      sources."highlight.js-10.7.2"
+      sources."hosted-git-info-3.0.8"
+      (sources."htmlparser2-3.10.1" // {
+        dependencies = [
+          sources."entities-1.1.2"
+        ];
+      })
+      sources."http-cache-semantics-4.1.0"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."human-signals-1.1.1"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.2.1"
+      sources."import-lazy-2.1.0"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-2.0.0"
+      sources."inline-style-parser-0.1.1"
+      (sources."inquirer-7.3.3" // {
+        dependencies = [
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."ipaddr.js-1.9.1"
+      sources."is-alphabetical-1.0.4"
+      sources."is-alphanumeric-1.0.0"
+      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.2.0"
+      sources."is-decimal-1.0.4"
+      sources."is-docker-2.2.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-hexadecimal-1.0.4"
+      sources."is-installed-globally-0.4.0"
+      (sources."is-invalid-path-0.1.0" // {
+        dependencies = [
+          sources."is-extglob-1.0.0"
+          sources."is-glob-2.0.1"
+        ];
+      })
+      sources."is-npm-5.0.0"
+      sources."is-number-7.0.0"
+      sources."is-obj-2.0.0"
+      sources."is-path-inside-3.0.3"
+      sources."is-plain-obj-2.1.0"
+      sources."is-ssh-1.3.2"
+      sources."is-stream-1.1.0"
+      sources."is-typedarray-1.0.0"
+      sources."is-url-1.2.4"
+      sources."is-valid-path-0.1.1"
+      sources."is-whitespace-character-1.0.4"
+      sources."is-word-character-1.0.4"
+      sources."is-wsl-2.2.0"
+      sources."is-yarn-global-0.3.0"
+      sources."isexe-2.0.0"
+      sources."iterall-1.3.0"
+      (sources."jest-diff-25.5.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.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."jest-get-type-25.2.6"
+      (sources."joi-17.4.0" // {
+        dependencies = [
+          sources."@hapi/hoek-9.1.1"
+          sources."@hapi/topo-5.0.0"
+        ];
+      })
+      sources."js-tokens-4.0.0"
+      sources."jsesc-2.5.2"
+      sources."json-buffer-3.0.0"
+      sources."json5-2.2.0"
+      sources."jsonfile-4.0.0"
+      sources."keyv-3.1.0"
+      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."longest-streak-2.0.4"
+      sources."loose-envify-1.4.0"
+      sources."lower-case-2.0.2"
+      sources."lowercase-keys-1.0.1"
+      sources."lru-cache-6.0.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."markdown-escapes-1.0.4"
+      sources."markdown-table-2.0.0"
+      sources."mdast-util-compact-2.0.1"
+      sources."mdast-util-mdx-0.1.1"
+      sources."mdast-util-mdx-expression-0.1.1"
+      sources."mdast-util-mdx-jsx-0.1.4"
+      sources."mdast-util-mdxjs-esm-0.1.1"
+      sources."mdast-util-to-markdown-0.6.5"
+      sources."mdast-util-to-string-2.0.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-2.11.4"
+      sources."micromark-extension-mdx-0.2.1"
+      sources."micromark-extension-mdx-expression-0.3.2"
+      sources."micromark-extension-mdx-jsx-0.3.3"
+      sources."micromark-extension-mdx-md-0.1.1"
+      sources."micromark-extension-mdxjs-0.3.0"
+      sources."micromark-extension-mdxjs-esm-0.3.1"
+      sources."mime-1.6.0"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
+      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."ms-2.1.2"
+      sources."mute-stream-0.0.8"
+      sources."negotiator-0.6.2"
+      sources."nice-try-1.0.5"
+      sources."no-case-3.0.4"
+      sources."node-eta-0.9.0"
+      sources."node-fetch-2.6.1"
+      sources."node-object-hash-2.3.1"
+      sources."node-releases-1.1.71"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-3.3.0"
+      sources."npm-run-path-2.0.2"
+      sources."nth-check-1.0.2"
+      sources."object-assign-4.1.1"
+      sources."object-inspect-1.9.0"
+      sources."object-path-0.11.5"
+      sources."on-finished-2.3.0"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      sources."open-7.4.2"
+      sources."opentracing-0.14.5"
+      sources."os-tmpdir-1.0.2"
+      sources."p-cancelable-1.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."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."parse-entities-2.0.0"
+      sources."parse-path-4.0.3"
+      sources."parse-url-5.0.2"
+      sources."parseurl-1.3.3"
+      sources."pascal-case-3.1.2"
+      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-to-regexp-0.1.7"
+      sources."peek-readable-3.1.3"
+      sources."picomatch-2.2.2"
+      sources."pkg-dir-4.2.0"
+      sources."prepend-http-2.0.0"
+      sources."prettier-2.2.1"
+      sources."pretty-error-2.1.2"
+      (sources."pretty-format-25.5.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      sources."progress-2.0.3"
+      sources."prompts-2.4.1"
+      sources."prop-types-15.7.2"
+      sources."proper-lockfile-4.1.2"
+      sources."protocols-1.4.8"
+      sources."proxy-addr-2.0.6"
+      sources."pump-3.0.0"
+      sources."pupa-2.1.1"
+      sources."qs-6.10.1"
+      sources."query-string-6.14.1"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      (sources."rc-1.2.8" // {
+        dependencies = [
+          sources."ini-1.3.8"
+        ];
+      })
+      sources."react-is-16.13.1"
+      sources."read-1.0.7"
+      sources."readable-stream-3.6.0"
+      sources."readable-web-to-node-stream-3.0.1"
+      sources."readdirp-3.5.0"
+      sources."redux-4.0.5"
+      sources."regenerator-runtime-0.13.8"
+      sources."registry-auth-token-4.2.1"
+      sources."registry-url-5.1.0"
+      sources."remark-mdx-2.0.0-next.9"
+      (sources."remark-mdxjs-2.0.0-next.8" // {
+        dependencies = [
+          sources."@babel/core-7.10.5"
+          sources."@babel/helper-plugin-utils-7.10.4"
+          sources."@babel/plugin-syntax-jsx-7.10.4"
+          sources."semver-5.7.1"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."remark-parse-6.0.3" // {
+        dependencies = [
+          sources."parse-entities-1.2.2"
+          sources."unist-util-remove-position-1.1.4"
+          sources."unist-util-visit-1.4.1"
+        ];
+      })
+      sources."remark-stringify-8.1.1"
+      (sources."renderkid-2.0.5" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."repeat-string-1.6.1"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."resolve-1.20.0"
+      sources."resolve-cwd-3.0.0"
+      sources."resolve-from-5.0.0"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-3.1.0"
+      sources."retry-0.12.0"
+      sources."rimraf-3.0.2"
+      sources."run-async-2.4.1"
+      (sources."rxjs-6.6.7" // {
+        dependencies = [
+          sources."tslib-1.14.1"
+        ];
+      })
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."semver-7.3.5"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          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."set-blocking-2.0.0"
+      sources."setprototypeof-1.1.1"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."side-channel-1.0.4"
+      sources."signal-exit-3.0.3"
+      sources."single-trailing-newline-1.0.0"
+      sources."sisteransi-1.0.5"
+      sources."source-map-0.7.3"
+      sources."split-on-first-1.1.0"
+      sources."stack-trace-0.0.10"
+      sources."state-toggle-1.0.3"
+      sources."statuses-1.5.0"
+      sources."strict-uri-encode-2.0.0"
+      (sources."string-width-4.2.2" // {
+        dependencies = [
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."string_decoder-1.3.0"
+      sources."stringify-entities-3.1.0"
+      (sources."strip-ansi-5.2.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+        ];
+      })
+      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.0.8"
+      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"
+      sources."to-fast-properties-2.0.0"
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
+      sources."toidentifier-1.0.0"
+      sources."token-types-2.1.1"
+      sources."trim-0.0.1"
+      sources."trim-trailing-lines-1.1.4"
+      sources."trough-1.0.5"
+      sources."tslib-2.1.0"
+      sources."type-fest-0.20.2"
+      sources."type-is-1.6.18"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."unherit-1.1.3"
+      sources."unified-8.4.2"
+      sources."unique-string-2.0.0"
+      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-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-2.1.2"
+      sources."universalify-0.1.2"
+      sources."unpipe-1.0.0"
+      (sources."update-notifier-5.1.0" // {
+        dependencies = [
+          sources."boxen-5.0.1"
+          sources."camelcase-6.2.0"
+        ];
+      })
+      sources."url-parse-lax-3.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."utila-0.4.0"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."vary-1.1.2"
+      sources."vfile-4.2.1"
+      sources."vfile-location-2.0.6"
+      sources."vfile-message-2.0.4"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      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."strip-ansi-6.0.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-3.0.3"
+      sources."ws-7.4.4"
+      sources."xdg-basedir-4.0.0"
+      sources."xstate-4.17.1"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.1"
+      sources."yallist-4.0.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+      sources."yoga-layout-prebuilt-1.10.0"
+      (sources."yurnalist-2.1.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."zwitch-1.0.5"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Gatsby command-line interface for creating new sites and running Gatsby commands";
+      homepage = "https://github.com/gatsbyjs/gatsby/tree/master/packages/gatsby-cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   get-graphql-schema = nodeEnv.buildNodePackage {
     name = "get-graphql-schema";
     packageName = "get-graphql-schema";
@@ -80540,8 +82336,8 @@ in
       sources."lodash.get-4.4.2"
       sources."looper-4.0.0"
       sources."lrucache-1.0.3"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."moment-2.29.1"
@@ -80722,8 +82518,8 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimist-1.2.1"
       sources."@types/normalize-package-data-2.4.0"
-      sources."ajv-7.2.3"
-      sources."ajv-formats-1.5.1"
+      sources."ajv-7.2.4"
+      sources."ajv-formats-1.6.1"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -80740,7 +82536,7 @@ in
       sources."atomically-1.7.0"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
-      (sources."boxen-5.0.0" // {
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."camelcase-6.2.0"
           sources."type-fest-0.20.2"
@@ -80936,7 +82732,7 @@ in
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
@@ -81095,7 +82891,7 @@ in
       sources."@nodelib/fs.walk-1.2.6"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.2"
       sources."aggregate-error-3.1.0"
@@ -81117,7 +82913,7 @@ in
       sources."available-typed-arrays-1.0.2"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -81135,7 +82931,7 @@ in
       sources."callsites-3.1.0"
       (sources."camel-case-4.1.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."caseless-0.12.0"
@@ -81216,11 +83012,11 @@ in
       sources."figlet-1.5.0"
       sources."figures-3.2.0"
       sources."fill-range-7.0.1"
-      sources."filter-obj-2.0.1"
+      sources."filter-obj-2.0.2"
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."form-urlencoded-4.2.1"
+      sources."form-urlencoded-4.4.2"
       sources."fs-capacitor-6.2.0"
       sources."fs-extra-9.0.1"
       sources."fs-minipass-2.1.0"
@@ -81289,7 +83085,7 @@ in
       sources."is-boolean-object-1.1.0"
       sources."is-callable-1.2.3"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
@@ -81349,7 +83145,7 @@ in
       })
       (sources."lower-case-2.0.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."lowercase-keys-1.0.1"
@@ -81361,8 +83157,8 @@ in
       })
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -81375,7 +83171,7 @@ in
       sources."nice-try-1.0.5"
       (sources."no-case-3.0.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."node-emoji-1.10.0"
@@ -81435,7 +83231,7 @@ in
       sources."parse-json-5.2.0"
       (sources."pascal-case-3.1.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."passwd-user-3.0.0"
@@ -81468,7 +83264,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      (sources."rxjs-6.6.6" // {
+      (sources."rxjs-6.6.7" // {
         dependencies = [
           sources."tslib-1.14.1"
         ];
@@ -81524,7 +83320,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.3.1"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."universalify-1.0.0"
       sources."unixify-1.0.0"
       sources."uri-js-4.4.1"
@@ -81546,7 +83342,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."ws-7.4.4"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
       sources."yargs-16.0.3"
@@ -81565,162 +83361,50 @@ in
   grunt-cli = nodeEnv.buildNodePackage {
     name = "grunt-cli";
     packageName = "grunt-cli";
-    version = "1.3.2";
+    version = "1.4.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.3.2.tgz";
-      sha512 = "8OHDiZZkcptxVXtMfDxJvmN7MVJNE8L/yIcPb4HB7TlyFD1kDvjHrb62uhySsU14wJx9ORMnTuhRMQ40lH/orQ==";
+      url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz";
+      sha512 = "wsu6BZh7KCnfeaSkDrKIAvOlqGKxNRTZjc8xfZlvxCByQIqUfZ31kh5uHpPnhQ4NdVgvaWaVxa1LUbVU80nACw==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
       sources."array-each-1.0.1"
       sources."array-slice-1.1.0"
-      sources."array-unique-0.3.2"
-      sources."assign-symbols-1.0.0"
-      sources."atob-2.1.2"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."cache-base-1.0.1"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."collection-visit-1.0.0"
-      sources."component-emitter-1.3.0"
-      sources."copy-descriptor-0.1.1"
-      sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
-      sources."define-property-2.0.2"
+      sources."braces-3.0.2"
       sources."detect-file-1.0.0"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."expand-tilde-2.0.2"
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."findup-sync-2.0.0"
+      sources."fill-range-7.0.1"
+      sources."findup-sync-4.0.0"
       sources."fined-1.2.0"
       sources."flagged-respawn-1.0.1"
       sources."for-in-1.0.2"
       sources."for-own-1.0.0"
-      sources."fragment-cache-0.2.1"
       sources."function-bind-1.1.1"
-      sources."get-value-2.0.6"
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
       sources."grunt-known-options-1.1.1"
       sources."has-1.0.3"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
       sources."homedir-polyfill-1.0.3"
       sources."ini-1.3.8"
       sources."interpret-1.1.0"
       sources."is-absolute-1.0.0"
-      sources."is-accessor-descriptor-1.0.0"
-      sources."is-buffer-1.1.6"
       sources."is-core-module-2.2.0"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
-      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-glob-3.1.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
       sources."is-plain-object-2.0.4"
       sources."is-relative-1.0.0"
       sources."is-unc-path-1.0.0"
       sources."is-windows-1.0.2"
-      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."kind-of-6.0.3"
-      sources."liftoff-2.5.0"
+      sources."liftup-3.0.1"
       sources."make-iterator-1.0.1"
       sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      sources."micromatch-3.1.10"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."ms-2.0.0"
-      sources."nanomatch-1.2.13"
+      sources."micromatch-4.0.2"
       sources."nopt-4.0.3"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-visit-1.0.1"
       sources."object.defaults-1.1.0"
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
@@ -81729,96 +83413,16 @@ in
       sources."osenv-0.1.5"
       sources."parse-filepath-1.0.2"
       sources."parse-passwd-1.0.0"
-      sources."pascalcase-0.1.1"
       sources."path-parse-1.0.6"
       sources."path-root-0.1.1"
       sources."path-root-regex-0.1.2"
-      sources."posix-character-classes-0.1.1"
-      sources."rechoir-0.6.2"
-      sources."regex-not-1.0.2"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
+      sources."picomatch-2.2.2"
+      sources."rechoir-0.7.0"
       sources."resolve-1.20.0"
       sources."resolve-dir-1.0.1"
-      sources."resolve-url-0.2.1"
-      sources."ret-0.1.15"
-      sources."safe-regex-1.1.0"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (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-url-0.4.1"
-      sources."split-string-3.1.0"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.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."to-regex-range-5.0.1"
       sources."unc-path-regex-0.1.2"
-      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."urix-0.1.0"
-      sources."use-3.1.1"
-      sources."v8flags-3.1.3"
+      sources."v8flags-3.2.0"
       sources."which-1.3.1"
     ];
     buildInputs = globalBuildInputs;
@@ -81886,8 +83490,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -82110,7 +83714,7 @@ in
       sources."async-settle-1.0.0"
       sources."atob-2.1.2"
       sources."bach-1.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -82939,7 +84543,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.13.2"
+      sources."uglify-js-3.13.3"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -82969,7 +84573,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."caseless-0.12.0"
@@ -83010,8 +84614,8 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
@@ -83098,10 +84702,10 @@ in
   hsd = nodeEnv.buildNodePackage {
     name = "hsd";
     packageName = "hsd";
-    version = "2.3.0";
+    version = "2.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/hsd/-/hsd-2.3.0.tgz";
-      sha512 = "tgGO2ortI4HjQrMqmzrp+W3RSadfPdgZWWubNemxnugdiu4gGHCIv2FF3zHZbVd02UVBW+HRKDwqwltvGG+tbQ==";
+      url = "https://registry.npmjs.org/hsd/-/hsd-2.4.0.tgz";
+      sha512 = "DoHhX+opX1RVMCtGgBedvbNqTde4otlrc6HZ+Jhd8sJyokJ2BB8EUl2OZYXrsznGytuZ51D+zGvLv4T9g3GXPw==";
     };
     dependencies = [
       sources."bcfg-0.1.6"
@@ -83213,7 +84817,7 @@ in
       sources."argparse-1.0.10"
       sources."assert-plus-1.0.0"
       sources."autocast-0.0.4"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."cmdln-4.4.0"
       sources."color-convert-2.0.1"
@@ -83479,8 +85083,8 @@ in
       sources."longest-1.0.1"
       sources."lowercase-keys-1.0.1"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
@@ -83574,7 +85178,7 @@ in
     };
     dependencies = [
       sources."async-0.2.10"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."bunyan-1.8.15"
       sources."colors-0.6.2"
@@ -83666,7 +85270,7 @@ in
       sources."@types/jquery-3.5.5"
       sources."@types/sizzle-2.3.2"
       sources."arch-2.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."clipboard-2.0.8"
       sources."clipboardy-2.3.0"
@@ -83687,7 +85291,7 @@ in
       sources."historic-readline-1.0.8"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-stream-1.1.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
@@ -83756,12 +85360,12 @@ in
       sources."ansi-styles-3.2.1"
       (sources."ast-types-0.13.4" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."bytes-3.1.0"
       sources."call-bind-1.0.2"
@@ -83862,7 +85466,7 @@ in
         ];
       })
       sources."ip-1.1.5"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
@@ -83900,8 +85504,8 @@ in
       sources."macos-release-2.4.1"
       sources."methods-1.1.2"
       sources."mime-2.5.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -83926,7 +85530,11 @@ in
       sources."os-tmpdir-1.0.2"
       sources."p-finally-1.0.0"
       sources."pac-proxy-agent-4.1.0"
-      sources."pac-resolver-4.1.0"
+      (sources."pac-resolver-4.2.0" // {
+        dependencies = [
+          sources."netmask-2.0.2"
+        ];
+      })
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."prelude-ls-1.1.2"
@@ -83941,7 +85549,7 @@ in
       sources."rimraf-3.0.2"
       sources."rsvp-3.6.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
@@ -84114,7 +85722,7 @@ in
       sources."async-0.9.2"
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."camelcase-5.3.1"
       sources."chainsaw-0.0.9"
@@ -84250,7 +85858,7 @@ in
       sources."through-2.3.8"
       sources."toposort-2.0.2"
       sources."traverse-0.3.9"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."type-check-0.3.2"
       sources."typo-geom-0.11.2"
       sources."unicoderegexp-0.4.1"
@@ -84286,7 +85894,7 @@ in
       sources."wrappy-1.0.2"
       sources."xmldom-0.4.0"
       sources."xpath-0.0.32"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
@@ -84309,7 +85917,7 @@ in
     dependencies = [
       sources."ansi-styles-3.2.1"
       sources."async-0.9.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
@@ -84344,7 +85952,7 @@ in
       sources."ansi-styles-3.2.1"
       sources."any-promise-1.3.0"
       sources."assertion-error-1.1.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."bufrw-1.3.0"
       sources."chai-4.3.4"
@@ -84479,7 +86087,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.871.0" // {
+      (sources."aws-sdk-2.880.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -84489,7 +86097,7 @@ in
       })
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base-64-0.1.0"
       sources."base64-js-1.5.1"
       sources."base64-stream-1.0.0"
@@ -84593,15 +86201,15 @@ in
       sources."diff-match-patch-1.0.5"
       (sources."dom-serializer-1.2.0" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.1.0"
         ];
       })
-      sources."domelementtype-2.1.0"
+      sources."domelementtype-2.2.0"
       sources."domexception-1.0.1"
       sources."domhandler-3.3.0"
-      (sources."domutils-2.5.0" // {
+      (sources."domutils-2.5.1" // {
         dependencies = [
-          sources."domhandler-4.0.0"
+          sources."domhandler-4.1.0"
         ];
       })
       sources."ecc-jsbn-0.1.2"
@@ -84677,7 +86285,7 @@ in
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."he-1.2.0"
-      sources."highlight.js-10.7.1"
+      sources."highlight.js-10.7.2"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-entities-1.4.0"
       sources."html-minifier-3.5.21"
@@ -84685,7 +86293,7 @@ in
         dependencies = [
           (sources."dom-serializer-0.2.2" // {
             dependencies = [
-              sources."domelementtype-2.1.0"
+              sources."domelementtype-2.2.0"
               sources."entities-2.2.0"
             ];
           })
@@ -84743,7 +86351,7 @@ in
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
@@ -84778,7 +86386,7 @@ in
           sources."commander-2.20.3"
         ];
       })
-      sources."keytar-7.4.0"
+      sources."keytar-7.6.0"
       sources."khroma-1.3.0"
       sources."klaw-1.3.1"
       sources."lazyness-1.2.0"
@@ -84828,8 +86436,8 @@ in
       sources."md5-file-4.0.0"
       sources."mdurl-1.0.1"
       sources."mermaid-8.9.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-2.1.0"
       (sources."minify-4.1.3" // {
         dependencies = [
@@ -84837,7 +86445,7 @@ in
           sources."debug-4.3.2"
           sources."html-minifier-4.0.0"
           sources."ms-2.1.2"
-          sources."uglify-js-3.13.2"
+          sources."uglify-js-3.13.3"
         ];
       })
       sources."minimatch-3.0.4"
@@ -84854,7 +86462,7 @@ in
       sources."moment-mini-2.24.0"
       sources."ms-2.1.3"
       sources."multiparty-4.2.2"
-      sources."mustache-4.1.0"
+      sources."mustache-4.2.0"
       sources."nanoid-3.1.22"
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
@@ -84928,7 +86536,7 @@ in
       sources."pipe-functions-1.3.0"
       sources."pn-1.1.0"
       sources."pngjs-5.0.0"
-      sources."prebuild-install-6.0.1"
+      sources."prebuild-install-6.1.1"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-7.3.1"
@@ -85122,7 +86730,6 @@ in
       sources."whatwg-mimetype-2.3.0"
       sources."whatwg-url-7.1.0"
       sources."which-2.0.2"
-      sources."which-pm-runs-1.0.0"
       sources."wide-align-1.1.3"
       sources."word-wrap-1.2.3"
       sources."wordwrapjs-3.0.0"
@@ -85161,7 +86768,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
@@ -85225,7 +86832,7 @@ in
       sha512 = "znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.8.11"
@@ -85268,7 +86875,7 @@ in
       sha512 = "TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."cli-1.0.1"
       sources."concat-map-0.0.1"
@@ -85277,7 +86884,7 @@ in
       sources."date-now-0.1.4"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
@@ -85388,8 +86995,8 @@ in
       sources."lodash-4.17.21"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
       sources."object-inspect-1.9.0"
@@ -85439,7 +87046,7 @@ in
       sources."array-flatten-1.1.1"
       sources."basic-auth-2.0.1"
       sources."body-parser-1.19.0"
-      sources."boxen-5.0.0"
+      sources."boxen-5.0.1"
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
@@ -85549,8 +87156,8 @@ in
       })
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimist-1.2.5"
       (sources."morgan-1.10.0" // {
@@ -85645,7 +87252,7 @@ in
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
@@ -85701,7 +87308,7 @@ in
       sources."@oclif/command-1.8.0"
       (sources."@oclif/config-1.17.0" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."@oclif/errors-1.3.4"
@@ -85758,7 +87365,7 @@ in
         dependencies = [
           sources."has-flag-4.0.0"
           sources."supports-color-7.2.0"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."cli-width-3.0.0"
@@ -85831,7 +87438,7 @@ in
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."inquirer-7.3.3"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
@@ -85858,8 +87465,8 @@ in
       })
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."moment-2.29.1"
       sources."ms-2.1.2"
@@ -85893,7 +87500,7 @@ in
       sources."reusify-1.0.4"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       sources."shebang-command-1.2.0"
@@ -85940,21 +87547,21 @@ in
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "6.3.1";
+    version = "6.3.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-6.3.1.tgz";
-      sha512 = "Is71g0f1dIpbLTXA+ULpev1i1soczQ1Dr8oum3zSmBFsDl3IWUlTLytsCb9os4v9xvUVWGDz0sCmLO4veANnSw==";
+      url = "https://registry.npmjs.org/karma/-/karma-6.3.2.tgz";
+      sha512 = "fo4Wt0S99/8vylZMxNj4cBFyOBBnC1bewZ0QOlePij/2SZVWxqbyLeIddY13q6URa2EpLRW8ixvFRUMjkmo1bw==";
     };
     dependencies = [
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."binary-extensions-2.2.0"
@@ -86026,8 +87633,8 @@ in
       })
       sources."media-typer-0.3.0"
       sources."mime-2.5.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -86077,7 +87684,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."type-is-1.6.18"
-      sources."ua-parser-js-0.7.25"
+      sources."ua-parser-js-0.7.27"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
       sources."utils-merge-1.0.1"
@@ -86086,7 +87693,7 @@ in
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."ws-7.4.4"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
     ];
@@ -86110,7 +87717,7 @@ in
     };
     dependencies = [
       sources."append-buffer-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."buffer-equal-1.0.0"
       sources."call-bind-1.0.2"
@@ -86218,7 +87825,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
@@ -86314,8 +87921,8 @@ in
           sources."mimic-fn-2.1.0"
         ];
       })
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
@@ -86568,7 +88175,7 @@ in
       sources."@npmcli/promise-spawn-1.3.2"
       sources."@npmcli/run-script-1.8.4"
       sources."@octokit/auth-token-2.4.5"
-      sources."@octokit/core-3.3.1"
+      sources."@octokit/core-3.4.0"
       (sources."@octokit/endpoint-6.0.11" // {
         dependencies = [
           sources."is-plain-object-5.0.0"
@@ -86579,14 +88186,14 @@ in
       sources."@octokit/plugin-enterprise-rest-6.0.1"
       sources."@octokit/plugin-paginate-rest-2.13.3"
       sources."@octokit/plugin-request-log-1.0.3"
-      sources."@octokit/plugin-rest-endpoint-methods-4.14.0"
+      sources."@octokit/plugin-rest-endpoint-methods-5.0.0"
       (sources."@octokit/request-5.4.14" // {
         dependencies = [
           sources."is-plain-object-5.0.0"
         ];
       })
       sources."@octokit/request-error-2.0.5"
-      sources."@octokit/rest-18.4.0"
+      sources."@octokit/rest-18.5.2"
       sources."@octokit/types-6.13.0"
       sources."@tootallnate/once-1.1.2"
       sources."@types/minimatch-3.0.4"
@@ -86627,9 +88234,9 @@ in
       sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."before-after-hook-2.2.0"
+      sources."before-after-hook-2.2.1"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."buffer-from-1.1.1"
@@ -86719,7 +88326,7 @@ in
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."env-paths-2.2.1"
-      sources."envinfo-7.7.4"
+      sources."envinfo-7.8.1"
       sources."err-code-2.0.3"
       sources."error-ex-1.3.2"
       sources."es-abstract-1.18.0"
@@ -86941,8 +88548,8 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
@@ -86998,7 +88605,7 @@ in
       })
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.2"
-      sources."npm-packlist-2.1.4"
+      sources."npm-packlist-2.1.5"
       sources."npm-pick-manifest-6.1.1"
       sources."npm-registry-fetch-9.0.0"
       sources."npm-run-path-4.0.1"
@@ -87100,7 +88707,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
@@ -87166,10 +88773,10 @@ in
       sources."type-fest-0.4.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."uglify-js-3.13.2"
+      sources."uglify-js-3.13.3"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."universal-user-agent-6.0.0"
@@ -87220,7 +88827,7 @@ in
         ];
       })
       sources."xtend-4.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
       sources."yargs-16.2.0"
@@ -87462,8 +89069,8 @@ in
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mixin-deep-1.3.2"
       sources."morgan-1.10.0"
       sources."ms-2.0.0"
@@ -87859,8 +89466,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-2.3.11"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
@@ -88135,11 +89742,11 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.12"
-      sources."@babel/core-7.13.10"
+      sources."@babel/core-7.13.14"
       sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      sources."@babel/helper-compilation-targets-7.13.10"
+      sources."@babel/helper-compilation-targets-7.13.13"
       sources."@babel/helper-create-class-features-plugin-7.13.11"
       sources."@babel/helper-create-regexp-features-plugin-7.12.17"
       sources."@babel/helper-define-polyfill-provider-0.1.5"
@@ -88149,7 +89756,7 @@ in
       sources."@babel/helper-hoist-variables-7.13.0"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-plugin-utils-7.13.0"
       sources."@babel/helper-remap-async-to-generator-7.13.0"
@@ -88166,7 +89773,7 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-external-helpers-7.8.3"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
@@ -88234,8 +89841,8 @@ in
       sources."@babel/preset-stage-2-7.8.3"
       sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
       sources."@istanbuljs/load-nyc-config-1.1.0"
@@ -88256,7 +89863,7 @@ in
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.7"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.13"
@@ -88369,7 +89976,7 @@ in
           sources."regenerator-runtime-0.11.1"
         ];
       })
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -88429,7 +90036,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.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -88501,7 +90108,7 @@ in
       })
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.9.1" // {
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -88553,7 +90160,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -88815,8 +90422,8 @@ in
           sources."bn.js-4.12.0"
         ];
       })
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -89282,7 +90889,7 @@ in
     };
     dependencies = [
       sources."amdefine-1.0.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
@@ -89309,10 +90916,10 @@ in
   markdown-link-check = nodeEnv.buildNodePackage {
     name = "markdown-link-check";
     packageName = "markdown-link-check";
-    version = "3.8.6";
+    version = "3.8.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.6.tgz";
-      sha512 = "GWzd54hNol2Zwf6fFEhUYqi9wbib1BMdcphvGCZqhinaAKhiILDaQkX7sn2u9GMoItmZ1jQK0f8wULOK/M+M4w==";
+      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.7.tgz";
+      sha512 = "Qy2JBkrzmZjMIoOstIMV/Wk/pONM0xuTBO2d/9UuqtO84emvge9A9IdtHfE4r1bxH+GdqyVn3e7aHQLXvRPnYQ==";
     };
     dependencies = [
       sources."ajv-6.12.6"
@@ -89357,10 +90964,10 @@ in
       sources."jsprim-1.4.1"
       sources."link-check-4.5.4"
       sources."lodash-4.17.21"
-      sources."markdown-link-extractor-1.2.6"
-      sources."marked-1.2.9"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."markdown-link-extractor-1.2.7"
+      sources."marked-2.0.1"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."oauth-sign-0.9.0"
       sources."performance-now-2.1.0"
@@ -89393,10 +91000,10 @@ in
   mastodon-bot = nodeEnv.buildNodePackage {
     name = "mastodon-bot";
     packageName = "mastodon-bot";
-    version = "1.10.11";
+    version = "1.10.12-20210326145549";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mastodon-bot/-/mastodon-bot-1.10.11.tgz";
-      sha512 = "FRPAQcg7lUuWbxxvESO+bgxWg7brSKju7mD/0Lc8lGFv/VqR4RH+9v7ufRFNIrG7hrisyy9N+63/AwSCU8NqNg==";
+      url = "https://registry.npmjs.org/mastodon-bot/-/mastodon-bot-1.10.12-20210326145549.tgz";
+      sha512 = "buuQt4rao3Vsq0og+WM8vrcVdD1vy1jhh8Vj6CynGuZ2BSY8fcyJKlPLkd3IK5xIJe3h+Iqnfx364eqmjwpw/Q==";
     };
     dependencies = [
       sources."acorn-5.7.4"
@@ -89421,7 +91028,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."babel-code-frame-6.26.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."beeper-1.1.1"
       sources."bindings-1.5.0"
@@ -89579,8 +91186,8 @@ in
       sources."lodash.templatesettings-3.1.1"
       sources."mastodon-api-1.3.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -89750,11 +91357,11 @@ in
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/yauzl-2.9.1"
       sources."agent-base-6.0.2"
       sources."ansi-styles-4.3.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bl-4.1.0"
       sources."brace-expansion-1.1.11"
@@ -89878,7 +91485,7 @@ in
       sources."through-2.3.8"
       sources."try-catch-2.0.1"
       sources."try-to-catch-1.1.1"
-      sources."uglify-js-3.13.2"
+      sources."uglify-js-3.13.3"
       sources."unbzip2-stream-1.4.3"
       sources."upper-case-1.1.3"
       sources."util-deprecate-1.0.2"
@@ -89907,12 +91514,12 @@ in
     dependencies = [
       sources."@fluentui/date-time-utilities-7.9.1"
       sources."@fluentui/dom-utilities-1.1.2"
-      sources."@fluentui/keyboard-key-0.2.14"
-      sources."@fluentui/react-7.165.1"
+      sources."@fluentui/keyboard-key-0.2.16"
+      sources."@fluentui/react-7.165.2"
       sources."@fluentui/react-focus-7.17.6"
       sources."@fluentui/react-window-provider-1.0.2"
       sources."@fluentui/theme-1.7.4"
-      sources."@microsoft/load-themed-styles-1.10.153"
+      sources."@microsoft/load-themed-styles-1.10.156"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@uifabric/foundation-7.9.26"
@@ -89936,7 +91543,7 @@ in
           sources."regenerator-runtime-0.11.1"
         ];
       })
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."basic-auth-2.0.1"
       sources."body-parser-1.19.0"
@@ -90030,8 +91637,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -90048,7 +91655,7 @@ in
       sources."node-fetch-1.6.3"
       sources."normalize-url-4.5.0"
       sources."object-assign-4.1.1"
-      sources."office-ui-fabric-react-7.165.1"
+      sources."office-ui-fabric-react-7.165.2"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -90139,8 +91746,8 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-2.0.0"
       sources."swagger-schema-official-2.0.0-bab6bed"
-      sources."swagger-ui-dist-3.45.1"
-      sources."tail-2.2.0"
+      sources."swagger-ui-dist-3.46.0"
+      sources."tail-2.2.1"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
       sources."to-readable-stream-1.0.0"
@@ -90183,7 +91790,7 @@ in
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.1"
       sources."argparse-2.0.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -90271,7 +91878,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       (sources."yargs-16.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -90333,8 +91940,8 @@ in
       sources."lodash-4.17.21"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."ms-2.1.3"
       sources."native-promise-only-0.8.1"
       sources."object-inspect-1.9.0"
@@ -90384,7 +91991,7 @@ in
       sources."enabled-1.0.2"
       sources."env-variable-0.0.6"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
       sources."is-stream-1.1.0"
@@ -90430,15 +92037,15 @@ in
   netlify-cli = nodeEnv.buildNodePackage {
     name = "netlify-cli";
     packageName = "netlify-cli";
-    version = "3.13.7";
+    version = "3.15.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.13.7.tgz";
-      sha512 = "I5aY4yOi3R5yNzhMy3RK9LG42jD422Eni/iiwv7+As9EpkYYcWXFwPLy7mE1bxE9xtyxkE1zKxKqEqDjLqt2kA==";
+      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-3.15.1.tgz";
+      sha512 = "L3koM/4a7Ts4fQgJ7bEWbkoYJbShUEZ8KN03+ti+V72MN+4vChmtbNlRkISw1KrfyvyCIP4va2EBTFL4pKfO7Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.12"
-      (sources."@babel/core-7.13.10" // {
+      (sources."@babel/core-7.13.14" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -90446,7 +92053,7 @@ in
       sources."@babel/generator-7.13.9"
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.10" // {
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -90464,7 +92071,7 @@ in
       sources."@babel/helper-hoist-variables-7.13.0"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-plugin-utils-7.13.0"
       sources."@babel/helper-remap-async-to-generator-7.13.0"
@@ -90477,7 +92084,7 @@ in
       sources."@babel/helper-wrap-function-7.13.0"
       sources."@babel/helpers-7.13.10"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
@@ -90544,18 +92151,18 @@ in
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
-      sources."@bugsnag/browser-7.9.0"
-      sources."@bugsnag/core-7.9.0"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
+      sources."@bugsnag/browser-7.9.2"
+      sources."@bugsnag/core-7.9.2"
       sources."@bugsnag/cuid-3.0.0"
-      sources."@bugsnag/js-7.9.0"
-      sources."@bugsnag/node-7.9.0"
+      sources."@bugsnag/js-7.9.2"
+      sources."@bugsnag/node-7.9.2"
       sources."@bugsnag/safe-json-stringify-6.0.0"
       sources."@dabh/diagnostics-2.0.2"
       sources."@jest/types-24.9.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      (sources."@netlify/build-9.13.2" // {
+      (sources."@netlify/build-10.2.4" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
@@ -90570,19 +92177,19 @@ in
           sources."locate-path-5.0.0"
         ];
       })
-      (sources."@netlify/config-4.3.0" // {
+      (sources."@netlify/config-5.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-3.0.0"
           sources."execa-3.4.0"
         ];
       })
-      (sources."@netlify/framework-info-3.2.0" // {
+      (sources."@netlify/framework-info-3.2.1" // {
         dependencies = [
           sources."locate-path-5.0.0"
         ];
       })
-      sources."@netlify/functions-utils-1.3.21"
+      sources."@netlify/functions-utils-1.3.22"
       (sources."@netlify/git-utils-1.0.8" // {
         dependencies = [
           sources."braces-3.0.2"
@@ -90613,7 +92220,7 @@ in
           sources."to-regex-range-5.0.1"
         ];
       })
-      sources."@netlify/plugins-list-2.5.0"
+      sources."@netlify/plugins-list-2.6.0"
       (sources."@netlify/run-utils-1.0.7" // {
         dependencies = [
           sources."execa-3.4.0"
@@ -90623,7 +92230,7 @@ in
       sources."@netlify/traffic-mesh-agent-darwin-x64-0.27.10"
       sources."@netlify/traffic-mesh-agent-linux-x64-0.27.10"
       sources."@netlify/traffic-mesh-agent-win32-x64-0.27.10"
-      (sources."@netlify/zip-it-and-ship-it-3.0.1" // {
+      (sources."@netlify/zip-it-and-ship-it-3.1.0" // {
         dependencies = [
           sources."locate-path-5.0.0"
           sources."resolve-2.0.0-next.3"
@@ -90688,7 +92295,7 @@ in
           sources."micromatch-4.0.2"
           sources."slash-3.0.0"
           sources."to-regex-range-5.0.1"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."@oclif/errors-1.3.4" // {
@@ -90746,7 +92353,7 @@ in
           sources."chalk-4.1.0"
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
           sources."universalify-2.0.0"
         ];
       })
@@ -90792,7 +92399,7 @@ in
       })
       sources."@rollup/plugin-inject-4.0.2"
       sources."@rollup/plugin-json-4.1.0"
-      sources."@rollup/plugin-node-resolve-11.2.0"
+      sources."@rollup/plugin-node-resolve-11.2.1"
       sources."@rollup/pluginutils-3.1.0"
       sources."@samverschueren/stream-to-observable-0.3.1"
       sources."@sindresorhus/is-0.14.0"
@@ -90801,7 +92408,7 @@ in
           sources."escape-string-regexp-4.0.0"
         ];
       })
-      (sources."@sindresorhus/transliterate-0.1.1" // {
+      (sources."@sindresorhus/transliterate-0.1.2" // {
         dependencies = [
           sources."escape-string-regexp-2.0.0"
         ];
@@ -90813,7 +92420,6 @@ in
       sources."@types/estree-0.0.39"
       sources."@types/glob-7.1.3"
       sources."@types/got-8.3.5"
-      sources."@types/hast-2.3.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/http-proxy-1.17.5"
       sources."@types/istanbul-lib-coverage-2.0.3"
@@ -90822,14 +92428,12 @@ in
       sources."@types/keyv-3.1.1"
       sources."@types/minimatch-3.0.4"
       sources."@types/mkdirp-0.5.2"
-      sources."@types/node-14.14.35"
-      sources."@types/node-fetch-2.5.8"
+      sources."@types/node-14.14.37"
+      sources."@types/node-fetch-2.5.9"
       sources."@types/normalize-package-data-2.4.0"
-      sources."@types/parse5-5.0.3"
       sources."@types/resolve-1.17.1"
       sources."@types/responselike-1.0.0"
       sources."@types/semver-5.5.0"
-      sources."@types/unist-2.0.3"
       sources."@types/yargs-13.0.11"
       sources."@types/yargs-parser-20.2.0"
       sources."@typescript-eslint/typescript-estree-2.34.0"
@@ -90837,7 +92441,7 @@ in
       sources."accepts-1.3.7"
       sources."agent-base-6.0.2"
       sources."aggregate-error-3.1.0"
-      sources."ajv-7.2.3"
+      sources."ajv-8.0.5"
       (sources."all-node-versions-8.0.0" // {
         dependencies = [
           sources."@jest/types-25.5.0"
@@ -90861,7 +92465,7 @@ in
       })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-4.1.0"
-      sources."ansi-styles-5.1.0"
+      sources."ansi-styles-5.2.0"
       sources."ansicolors-0.3.2"
       sources."any-observable-0.3.0"
       sources."anymatch-3.1.1"
@@ -90895,7 +92499,7 @@ in
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."atob-lite-2.0.0"
-      (sources."aws-sdk-2.871.0" // {
+      (sources."aws-sdk-2.880.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -90911,15 +92515,14 @@ in
       sources."babel-plugin-polyfill-corejs3-0.1.7"
       sources."babel-plugin-polyfill-regenerator-0.1.6"
       sources."backoff-2.5.0"
-      sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
         ];
       })
       sources."base64-js-1.5.1"
-      sources."before-after-hook-2.2.0"
+      sources."before-after-hook-2.2.1"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
       (sources."body-parser-1.19.0" // {
@@ -90969,10 +92572,9 @@ in
       sources."call-bind-1.0.2"
       sources."call-me-maybe-1.0.1"
       sources."camelcase-5.3.1"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."cardinal-2.1.1"
       sources."caw-2.0.1"
-      sources."ccount-1.1.0"
       (sources."chalk-2.4.2" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -90982,8 +92584,6 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."character-entities-html4-1.1.4"
-      sources."character-entities-legacy-1.1.4"
       sources."chardet-0.7.0"
       (sources."chokidar-3.5.1" // {
         dependencies = [
@@ -91038,7 +92638,7 @@ in
           sources."extract-stack-2.0.0"
           sources."js-yaml-3.14.1"
           sources."supports-hyperlinks-2.1.0"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
           sources."type-fest-0.21.3"
         ];
       })
@@ -91061,7 +92661,6 @@ in
       sources."colors-1.4.0"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
-      sources."comma-separated-tokens-1.0.8"
       sources."commander-2.20.3"
       sources."common-path-prefix-2.0.0"
       sources."commondir-1.0.1"
@@ -91102,7 +92701,7 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."core-js-compat-3.9.1" // {
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -91227,7 +92826,7 @@ in
       })
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."elegant-spinner-1.0.1"
       sources."elf-cam-0.1.1"
       sources."emoji-regex-8.0.0"
@@ -91235,7 +92834,7 @@ in
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.1"
-      sources."envinfo-7.7.4"
+      sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
       sources."error-stack-parser-2.0.6"
       sources."esbuild-0.9.7"
@@ -91291,7 +92890,6 @@ in
       sources."express-logging-1.1.1"
       sources."ext-list-2.2.2"
       sources."ext-name-5.0.0"
-      sources."extend-3.0.2"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
@@ -91318,7 +92916,7 @@ in
       sources."fast-stringify-1.1.2"
       sources."fastq-1.11.0"
       sources."fd-slicer-1.1.0"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       (sources."fetch-node-website-5.0.3" // {
         dependencies = [
           (sources."@jest/types-25.5.0" // {
@@ -91362,7 +92960,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."filter-obj-2.0.1"
+      sources."filter-obj-2.0.2"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -91477,14 +93075,7 @@ in
         ];
       })
       sources."hasha-5.2.2"
-      sources."hast-util-from-parse5-6.0.1"
-      sources."hast-util-is-element-1.1.0"
-      sources."hast-util-parse-selector-2.2.5"
-      sources."hast-util-to-html-7.1.2"
-      sources."hast-util-whitespace-1.0.4"
-      sources."hastscript-6.0.0"
       sources."hosted-git-info-2.8.8"
-      sources."html-void-elements-1.0.5"
       sources."http-cache-semantics-4.1.0"
       (sources."http-call-5.3.0" // {
         dependencies = [
@@ -91497,11 +93088,13 @@ in
         ];
       })
       sources."http-proxy-1.18.1"
-      (sources."http-proxy-middleware-1.0.6" // {
+      (sources."http-proxy-middleware-1.1.0" // {
         dependencies = [
           sources."braces-3.0.2"
+          sources."camelcase-6.2.0"
           sources."fill-range-7.0.1"
           sources."is-number-7.0.0"
+          sources."is-plain-obj-3.0.0"
           sources."micromatch-4.0.2"
           sources."to-regex-range-5.0.1"
         ];
@@ -91558,7 +93151,7 @@ in
       sources."is-core-module-2.2.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
@@ -91745,8 +93338,8 @@ in
       sources."micro-memoize-4.0.9"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -91792,8 +93385,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."netlify-plugin-deploy-preview-commenting-0.0.1-alpha.16"
-      sources."netlify-redirect-parser-3.0.7"
+      sources."netlify-redirect-parser-3.0.9"
       sources."netlify-redirector-0.2.1"
       sources."nice-try-1.0.5"
       sources."node-fetch-2.6.1"
@@ -91858,6 +93450,11 @@ in
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.2"
       sources."object.pick-1.3.0"
+      (sources."oclif-plugin-completion-0.6.0" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
       sources."octokit-pagination-methods-1.1.0"
       sources."omit.js-2.0.2"
       sources."on-finished-2.3.0"
@@ -91924,12 +93521,10 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."parse-github-repo-url-1.4.1"
       sources."parse-github-url-1.0.2"
       sources."parse-gitignore-1.0.1"
       sources."parse-json-5.2.0"
       sources."parse-ms-2.1.0"
-      sources."parse5-6.0.1"
       sources."parseurl-1.3.3"
       sources."pascalcase-0.1.1"
       (sources."password-prompt-1.1.2" // {
@@ -91979,9 +93574,9 @@ in
       sources."prettyjson-1.2.1"
       sources."process-es6-0.11.6"
       sources."process-nextick-args-2.0.1"
-      sources."property-information-5.6.0"
       sources."proto-list-1.2.4"
       sources."proxy-addr-2.0.6"
+      sources."ps-list-6.3.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
@@ -92023,8 +93618,6 @@ in
           sources."jsesc-0.5.0"
         ];
       })
-      sources."rehype-parse-7.0.1"
-      sources."rehype-stringify-8.0.0"
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
@@ -92045,7 +93638,7 @@ in
       sources."ret-0.1.15"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rollup-2.42.4"
+      sources."rollup-2.44.0"
       (sources."rollup-plugin-inject-3.0.2" // {
         dependencies = [
           sources."estree-walker-0.6.1"
@@ -92060,7 +93653,7 @@ in
       })
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safe-join-0.1.3"
       sources."safe-json-stringify-1.2.0"
@@ -92148,7 +93741,6 @@ in
       })
       sources."source-map-url-0.4.1"
       sources."sourcemap-codec-1.4.8"
-      sources."space-separated-tokens-1.1.5"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
@@ -92195,7 +93787,6 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."stringify-entities-3.1.0"
       (sources."strip-ansi-6.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -92265,7 +93856,6 @@ in
       sources."treeify-1.1.0"
       sources."trim-repeated-1.0.0"
       sources."triple-beam-1.3.0"
-      sources."trough-1.0.5"
       sources."tslib-1.14.1"
       sources."tsutils-3.21.0"
       sources."tunnel-agent-0.6.0"
@@ -92280,18 +93870,9 @@ in
       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."unified-9.2.1" // {
-        dependencies = [
-          sources."is-buffer-2.0.5"
-        ];
-      })
       sources."union-value-1.0.1"
       sources."uniq-1.0.1"
       sources."unique-string-2.0.0"
-      sources."unist-util-is-4.1.0"
-      sources."unist-util-stringify-position-2.0.3"
-      sources."unist-util-visit-2.0.3"
-      sources."unist-util-visit-parents-3.1.1"
       sources."universal-user-agent-4.0.1"
       sources."universalify-0.1.2"
       (sources."unixify-1.0.0" // {
@@ -92332,20 +93913,12 @@ in
       sources."validate-npm-package-license-3.0.4"
       sources."validate-npm-package-name-3.0.0"
       sources."vary-1.1.2"
-      (sources."vfile-4.2.1" // {
-        dependencies = [
-          sources."is-buffer-2.0.5"
-        ];
-      })
-      sources."vfile-location-3.2.0"
-      sources."vfile-message-2.0.4"
       (sources."wait-port-0.2.9" // {
         dependencies = [
           sources."commander-3.0.2"
         ];
       })
       sources."wcwidth-1.0.1"
-      sources."web-namespaces-1.1.4"
       sources."well-known-symbols-2.0.0"
       sources."which-2.0.2"
       sources."which-module-2.0.0"
@@ -92428,104 +94001,98 @@ in
   node-gyp = nodeEnv.buildNodePackage {
     name = "node-gyp";
     packageName = "node-gyp";
-    version = "7.1.2";
+    version = "8.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz";
-      sha512 = "CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==";
+      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-8.0.0.tgz";
+      sha512 = "Jod6NxyWtcwrpAQe0O/aXOpC5QfncotgtG73dg65z6VW/C6g/G4jiajXQUBIJ8pk/VfM6mBYE9BN/HvudTunUQ==";
     };
     dependencies = [
+      sources."@npmcli/move-file-1.1.2"
+      sources."@tootallnate/once-1.1.2"
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.6"
+      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.5"
-      sources."asn1-0.2.4"
-      sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
-      sources."bcrypt-pbkdf-1.0.2"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
-      sources."caseless-0.12.0"
+      sources."cacache-15.0.6"
       sources."chownr-2.0.0"
+      sources."clean-stack-2.2.0"
       sources."code-point-at-1.1.0"
-      sources."combined-stream-1.0.8"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
-      sources."dashdash-1.14.1"
-      sources."delayed-stream-1.0.0"
+      sources."debug-4.3.2"
       sources."delegates-1.0.0"
-      sources."ecc-jsbn-0.1.2"
+      sources."depd-1.1.2"
+      sources."encoding-0.1.13"
       sources."env-paths-2.2.1"
-      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."err-code-2.0.3"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."gauge-2.7.4"
-      sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.6"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
-      sources."http-signature-1.2.0"
+      sources."http-cache-semantics-4.1.0"
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
+      sources."humanize-ms-1.2.1"
+      sources."iconv-lite-0.6.2"
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
+      sources."ip-1.1.5"
       sources."is-fullwidth-code-point-1.0.0"
-      sources."is-typedarray-1.0.0"
+      sources."is-lambda-1.0.1"
       sources."isarray-1.0.0"
       sources."isexe-2.0.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."lru-cache-6.0.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."make-fetch-happen-8.0.14"
       sources."minimatch-3.0.4"
       sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-fetch-1.3.3"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-pipeline-1.2.4"
+      sources."minipass-sized-1.0.3"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
+      sources."ms-2.1.2"
       sources."nopt-5.0.0"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
-      sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
+      sources."p-map-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
-      sources."psl-1.8.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.5.2"
+      sources."promise-inflight-1.0.1"
+      sources."promise-retry-2.0.1"
       sources."readable-stream-2.3.7"
-      sources."request-2.88.2"
+      sources."retry-0.12.0"
       sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."semver-7.3.5"
       sources."set-blocking-2.0.0"
       sources."signal-exit-3.0.3"
-      sources."sshpk-1.16.1"
+      sources."smart-buffer-4.1.0"
+      sources."socks-2.6.0"
+      sources."socks-proxy-agent-5.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."tar-6.1.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."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
       sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
-      sources."verror-1.10.0"
       sources."which-2.0.2"
       sources."wide-align-1.1.3"
       sources."wrappy-1.0.2"
@@ -92583,7 +94150,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.6.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-0.0.8"
       sources."bcrypt-pbkdf-1.0.2"
       sources."biased-opener-0.2.8"
@@ -92699,8 +94266,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -92870,7 +94437,7 @@ in
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chownr-1.1.4"
       sources."code-point-at-1.1.0"
@@ -93002,7 +94569,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       (sources."basic-auth-2.0.1" // {
         dependencies = [
@@ -93213,8 +94780,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-2.4.7"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       (sources."minipass-3.1.3" // {
@@ -93368,7 +94935,7 @@ in
       sources."string_decoder-0.10.31"
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
-      sources."tail-2.2.0"
+      sources."tail-2.2.1"
       (sources."tar-6.0.5" // {
         dependencies = [
           sources."mkdirp-1.0.4"
@@ -93391,7 +94958,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
@@ -93447,7 +95014,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -93513,8 +95080,8 @@ in
       sources."jsonfile-1.0.1"
       sources."jsprim-1.4.1"
       sources."lru-cache-6.0.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
@@ -93642,7 +95209,7 @@ in
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-4.3.0"
       sources."anymatch-3.1.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
       sources."boxen-4.2.0"
       sources."brace-expansion-1.1.11"
@@ -93821,7 +95388,7 @@ in
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.1"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -93842,8 +95409,8 @@ in
       sources."array-union-2.1.0"
       sources."arrify-1.0.1"
       sources."async-exit-hook-2.0.1"
-      sources."balanced-match-1.0.0"
-      (sources."boxen-5.0.0" // {
+      sources."balanced-match-1.0.2"
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."camelcase-6.2.0"
           sources."type-fest-0.20.2"
@@ -94002,7 +95569,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
       sources."is-core-module-2.2.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
@@ -94245,7 +95812,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safer-buffer-2.1.2"
       sources."scoped-regex-2.1.0"
       sources."semver-7.3.5"
@@ -94324,10 +95891,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "7.7.4";
+    version = "7.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-7.7.4.tgz";
-      sha512 = "+gUjp4hbUnN7S1z2S3uDTnac94uRiztzFkMLNimHsB4KpuvhO+xjg30ARoptq7UYqF6KTXA4L8XLDMuriyB9Fg==";
+      url = "https://registry.npmjs.org/npm/-/npm-7.8.0.tgz";
+      sha512 = "9AC3Dj9OUWaUdmTmEVttE/1MWkfF7+sAKPRo9tKEyjo49AXmHQBn+RC33M9dima91mEMqDIA71xyRm4VmhDipg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -94385,9 +95952,9 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
-      (sources."boxen-5.0.0" // {
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
@@ -94549,8 +96116,8 @@ in
       sources."mem-8.1.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-3.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -94572,7 +96139,7 @@ in
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.2"
-      sources."npm-packlist-2.1.4"
+      sources."npm-packlist-2.1.5"
       sources."npm-pick-manifest-6.1.1"
       sources."npm-registry-fetch-9.0.0"
       sources."npmlog-4.1.2"
@@ -94603,7 +96170,7 @@ in
       sources."progress-2.0.3"
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
-      sources."prompts-2.4.0"
+      sources."prompts-2.4.1"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -94723,7 +96290,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."block-stream-0.0.9"
       sources."brace-expansion-1.1.11"
@@ -94787,8 +96354,8 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-1.0.1"
       sources."jsprim-1.4.1"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.3.5"
@@ -94885,7 +96452,7 @@ in
     };
     dependencies = [
       sources."async-2.6.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."deepmerge-2.1.0"
@@ -94928,7 +96495,7 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.12"
-      (sources."@babel/core-7.13.10" // {
+      (sources."@babel/core-7.13.14" // {
         dependencies = [
           sources."json5-2.2.0"
           sources."semver-6.3.0"
@@ -94942,7 +96509,7 @@ in
       })
       sources."@babel/helper-annotate-as-pure-7.12.13"
       sources."@babel/helper-builder-binary-assignment-operator-visitor-7.12.13"
-      (sources."@babel/helper-compilation-targets-7.13.10" // {
+      (sources."@babel/helper-compilation-targets-7.13.13" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -94960,7 +96527,7 @@ in
       sources."@babel/helper-hoist-variables-7.13.0"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-plugin-utils-7.13.0"
       sources."@babel/helper-remap-async-to-generator-7.13.0"
@@ -94973,7 +96540,7 @@ in
       sources."@babel/helper-wrap-function-7.13.0"
       sources."@babel/helpers-7.13.10"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.13.8"
       sources."@babel/plugin-proposal-class-properties-7.13.0"
@@ -95044,8 +96611,8 @@ in
       sources."@babel/preset-modules-0.1.4"
       sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -95118,7 +96685,7 @@ in
         ];
       })
       sources."babylon-walk-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -95167,7 +96734,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -95194,7 +96761,7 @@ in
       sources."convert-source-map-1.7.0"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.9.1" // {
+      (sources."core-js-compat-3.10.0" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -95234,15 +96801,15 @@ in
       sources."css-tree-1.0.0-alpha.37"
       sources."css-what-3.4.2"
       sources."cssesc-3.0.0"
-      sources."cssnano-4.1.10"
-      sources."cssnano-preset-default-4.0.7"
+      sources."cssnano-4.1.11"
+      sources."cssnano-preset-default-4.0.8"
       sources."cssnano-util-get-arguments-4.0.0"
       sources."cssnano-util-get-match-4.0.0"
       sources."cssnano-util-raw-cache-4.0.1"
       sources."cssnano-util-same-parent-4.0.1"
       (sources."csso-4.2.0" // {
         dependencies = [
-          sources."css-tree-1.1.2"
+          sources."css-tree-1.1.3"
           sources."mdn-data-2.0.14"
         ];
       })
@@ -95287,7 +96854,7 @@ in
       })
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
@@ -95302,7 +96869,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.699"
+      sources."electron-to-chromium-1.3.708"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -95310,7 +96877,7 @@ in
       })
       sources."encodeurl-1.0.2"
       sources."entities-1.1.2"
-      sources."envinfo-7.7.4"
+      sources."envinfo-7.8.1"
       sources."error-ex-1.3.2"
       (sources."es-abstract-1.18.0" // {
         dependencies = [
@@ -95403,7 +96970,6 @@ in
       sources."hmac-drbg-1.0.1"
       sources."hsl-regex-1.0.0"
       sources."hsla-regex-1.0.0"
-      sources."html-comment-regex-1.1.2"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-tags-1.2.0"
       (sources."htmlnano-0.2.8" // {
@@ -95466,7 +97032,6 @@ in
       sources."is-regex-1.1.2"
       sources."is-resolvable-1.1.0"
       sources."is-string-1.0.5"
-      sources."is-svg-3.0.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-url-1.2.4"
@@ -95532,8 +97097,8 @@ in
         ];
       })
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
@@ -95664,7 +97229,7 @@ in
       sources."postcss-reduce-initial-4.0.3"
       sources."postcss-reduce-transforms-4.0.2"
       sources."postcss-selector-parser-6.0.4"
-      sources."postcss-svgo-4.0.2"
+      sources."postcss-svgo-4.0.3"
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-3.3.1"
       sources."posthtml-0.11.6"
@@ -95840,7 +97405,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."typedarray-0.0.6"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       (sources."uncss-0.17.3" // {
         dependencies = [
           sources."is-absolute-url-3.0.3"
@@ -95942,7 +97507,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."babybird-0.0.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bindings-1.5.0"
       sources."bintrees-1.0.1"
@@ -96071,8 +97636,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -96143,7 +97708,7 @@ in
         ];
       })
       sources."serve-static-1.14.1"
-      (sources."service-runner-2.8.1" // {
+      (sources."service-runner-2.8.2" // {
         dependencies = [
           sources."semver-7.3.5"
           sources."yargs-14.2.3"
@@ -96166,7 +97731,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.13.2"
+      sources."uglify-js-3.13.3"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
@@ -96212,7 +97777,7 @@ in
     dependencies = [
       sources."@yarnpkg/lockfile-1.1.0"
       sources."ansi-styles-3.2.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."chalk-2.4.2"
@@ -96232,7 +97797,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-ci-2.0.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-number-7.0.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
@@ -96291,7 +97856,7 @@ in
       sources."appendable-cli-menu-2.0.0"
       sources."array-find-index-1.0.2"
       sources."array-flatten-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-0.0.8"
       sources."bencode-2.0.1"
       sources."bep53-range-1.1.0"
@@ -96614,7 +98179,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64-js-1.5.1"
       sources."base64id-2.0.0"
@@ -96779,8 +98344,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -96954,10 +98519,10 @@ in
   pm2 = nodeEnv.buildNodePackage {
     name = "pm2";
     packageName = "pm2";
-    version = "4.5.5";
+    version = "4.5.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pm2/-/pm2-4.5.5.tgz";
-      sha512 = "feLYWAq8liDsM2IV0ViZ4TSnEUoOtpuICakzFnhh2bb51BUnpJMOjO1sojR1jDuNHvhrYGWqneOUglxE6slKwg==";
+      url = "https://registry.npmjs.org/pm2/-/pm2-4.5.6.tgz";
+      sha512 = "4J5q704Xl6VmpmQhXFGMJL4kXyyQw3AZM1FE9vRxhS3LiDI/+WVBtOM6pqJ4g/RKW+AUjEkc23i/DCC4BVenDA==";
     };
     dependencies = [
       (sources."@opencensus/core-0.0.9" // {
@@ -96971,32 +98536,14 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."@pm2/agent-1.0.4" // {
+      (sources."@pm2/agent-1.0.8" // {
         dependencies = [
-          sources."debug-4.1.1"
-          (sources."pm2-axon-3.3.0" // {
-            dependencies = [
-              sources."debug-3.2.7"
-            ];
-          })
-          (sources."pm2-axon-rpc-0.5.2" // {
-            dependencies = [
-              sources."debug-3.2.7"
-            ];
-          })
           sources."semver-7.2.3"
         ];
       })
-      (sources."@pm2/agent-node-1.1.10" // {
-        dependencies = [
-          sources."debug-3.2.7"
-          sources."ws-6.2.1"
-        ];
-      })
-      (sources."@pm2/io-4.3.5" // {
+      (sources."@pm2/io-5.0.0" // {
         dependencies = [
           sources."async-2.6.3"
-          sources."debug-4.1.1"
           sources."eventemitter2-6.4.4"
           sources."semver-6.3.0"
           sources."tslib-1.9.3"
@@ -97008,8 +98555,9 @@ in
           sources."eventemitter2-6.4.4"
         ];
       })
-      sources."@pm2/pm2-version-check-1.0.3"
-      sources."agent-base-4.3.0"
+      sources."@pm2/pm2-version-check-1.0.4"
+      sources."@tootallnate/once-1.1.2"
+      sources."agent-base-6.0.2"
       sources."amp-0.3.1"
       sources."amp-message-0.1.2"
       sources."ansi-colors-4.1.1"
@@ -97020,16 +98568,15 @@ in
           sources."sprintf-js-1.0.3"
         ];
       })
-      sources."ast-types-0.14.2"
+      sources."ast-types-0.13.4"
       sources."async-3.2.0"
-      sources."async-limiter-1.0.1"
       (sources."async-listener-0.6.10" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."binary-extensions-2.2.0"
       sources."blessed-0.1.81"
       sources."bodec-0.1.0"
@@ -97041,7 +98588,6 @@ in
       sources."charm-0.1.2"
       sources."chokidar-3.5.1"
       sources."cli-tableau-2.0.1"
-      sources."co-4.6.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."commander-2.15.1"
@@ -97050,69 +98596,41 @@ in
       sources."core-util-is-1.0.2"
       sources."cron-1.8.2"
       sources."culvert-0.1.2"
-      sources."data-uri-to-buffer-1.2.0"
+      sources."data-uri-to-buffer-3.0.1"
       sources."dayjs-1.8.36"
-      (sources."debug-4.3.2" // {
-        dependencies = [
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."debug-4.3.2"
       sources."deep-is-0.1.3"
-      sources."degenerator-1.0.4"
+      sources."degenerator-2.2.0"
       sources."depd-1.1.2"
       sources."emitter-listener-1.1.2"
       sources."enquirer-2.3.6"
-      sources."es6-promise-4.2.8"
-      sources."es6-promisify-5.0.0"
-      sources."escape-regexp-0.0.1"
       sources."escape-string-regexp-4.0.0"
-      (sources."escodegen-1.14.3" // {
-        dependencies = [
-          sources."esprima-4.0.1"
-        ];
-      })
-      sources."esprima-3.1.3"
+      sources."escodegen-1.14.3"
+      sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."eventemitter2-5.0.1"
-      sources."extend-3.0.2"
       sources."fast-levenshtein-2.0.6"
       sources."fclone-1.0.11"
-      sources."file-uri-to-path-1.0.0"
+      sources."file-uri-to-path-2.0.0"
       sources."fill-range-7.0.1"
       sources."follow-redirects-1.13.3"
+      sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
-      (sources."ftp-0.3.10" // {
-        dependencies = [
-          sources."readable-stream-1.1.14"
-        ];
-      })
+      sources."ftp-0.3.10"
       sources."function-bind-1.1.1"
-      (sources."get-uri-2.0.4" // {
-        dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
-        ];
-      })
+      sources."get-uri-3.0.2"
       sources."git-node-fs-1.0.0"
       sources."git-sha1-0.1.2"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
+      sources."graceful-fs-4.2.6"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."http-errors-1.7.3"
-      (sources."http-proxy-agent-2.1.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
-      (sources."https-proxy-agent-3.0.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -97125,6 +98643,7 @@ in
       sources."is-number-7.0.0"
       sources."isarray-0.0.1"
       sources."js-git-0.7.8"
+      sources."jsonfile-4.0.0"
       sources."lazy-1.0.11"
       sources."levn-0.3.0"
       sources."lodash-4.17.21"
@@ -97135,14 +98654,14 @@ in
       sources."module-details-from-path-1.0.3"
       sources."moment-2.29.1"
       sources."moment-timezone-0.5.33"
-      sources."ms-2.1.3"
+      sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       (sources."needle-2.4.0" // {
         dependencies = [
           sources."debug-3.2.7"
         ];
       })
-      sources."netmask-1.0.6"
+      sources."netmask-2.0.2"
       sources."normalize-path-3.0.0"
       (sources."nssocket-0.6.0" // {
         dependencies = [
@@ -97151,44 +98670,30 @@ in
       })
       sources."once-1.4.0"
       sources."optionator-0.8.3"
-      sources."pac-proxy-agent-3.0.1"
-      sources."pac-resolver-3.0.0"
+      sources."pac-proxy-agent-4.1.0"
+      sources."pac-resolver-4.2.0"
       sources."pako-0.2.9"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
       sources."picomatch-2.2.2"
-      (sources."pidusage-2.0.21" // {
-        dependencies = [
-          sources."safe-buffer-5.2.1"
-        ];
-      })
-      sources."pm2-axon-4.0.0"
-      (sources."pm2-axon-rpc-0.6.0" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
+      sources."pidusage-2.0.21"
+      sources."pm2-axon-4.0.1"
+      sources."pm2-axon-rpc-0.7.1"
       sources."pm2-deploy-1.0.2"
       sources."pm2-multimeter-0.1.2"
       sources."prelude-ls-1.1.2"
-      sources."process-nextick-args-2.0.1"
       sources."promptly-2.2.0"
-      sources."proxy-agent-3.1.1"
+      sources."proxy-agent-4.0.1"
       sources."proxy-from-env-1.1.0"
       sources."ps-list-6.3.0"
       sources."raw-body-2.4.1"
       sources."read-1.0.7"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."readable-stream-1.1.14"
       sources."readdirp-3.5.0"
       sources."require-in-the-middle-5.1.0"
       sources."resolve-1.20.0"
       sources."run-series-1.1.9"
-      sources."safe-buffer-5.1.2"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       (sources."semver-7.3.5" // {
@@ -97201,26 +98706,21 @@ in
       sources."shimmer-1.2.1"
       sources."signal-exit-3.0.3"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.3.3"
-      (sources."socks-proxy-agent-4.0.2" // {
-        dependencies = [
-          sources."agent-base-4.2.1"
-        ];
-      })
+      sources."socks-2.6.0"
+      sources."socks-proxy-agent-5.0.0"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.19"
       sources."sprintf-js-1.1.2"
       sources."statuses-1.5.0"
       sources."string_decoder-0.10.31"
       sources."supports-color-7.2.0"
-      sources."thunkify-2.1.2"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."tv4-1.3.0"
       sources."type-check-0.3.2"
+      sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
-      sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       (sources."vizion-2.2.1" // {
         dependencies = [
@@ -97247,15 +98747,15 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "5.18.8";
+    version = "6.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.18.8.tgz";
-      sha512 = "MO0XZoJfZFn6KjhcDpS03P9MeKx3xzgoXJcIcTjJ29/pKeS1O5x/SeLjzsCsAbkPLrv6JdY5uotIz7LRKEe88w==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.0.0.tgz";
+      sha512 = "oVY4Juer+T0INNldcob07mWrDmsZJof3DDZuz1+fBhCXjs5yihf5eL+1OKBGVMIIwW+dRXnQHfwbBF9FPA/08A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "Fast, disk space efficient package manager";
-      homepage = "https://pnpm.js.org";
+      homepage = "https://pnpm.io";
       license = "MIT";
     };
     production = true;
@@ -97395,7 +98895,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."universalify-2.0.0"
       sources."wrap-ansi-7.0.0"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yaml-1.10.2"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
@@ -97437,7 +98937,7 @@ in
       sha512 = "6N4chHbL38Km4kTrC7a9UJ4fpPsFV6BDwO3yZetdExN7agC+YGYLpVhLflFUlsZJ9VnUT9UToitwC/DqGnGSjA==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
@@ -97490,7 +98990,7 @@ in
         ];
       })
       sources."async-1.5.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bn.js-5.2.0"
       sources."brace-expansion-1.1.11"
@@ -97799,10 +99299,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.125";
+    version = "1.1.128";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.125.tgz";
-      sha512 = "MPaMGCnMR0i0VePXUPpXMHr23A2mkbW1Su+aTAWsqHho1rhQcxBtjeyhR0xqiwTxcC+c9eK9VwFHbd+OMGC6fQ==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.128.tgz";
+      sha512 = "p+QG3W+PEQs6raeix/oIBU/eKRL487WftEFI3PVR7npF/2fzh6v4ucNjlF/jPAfP1x/ulInqeyeqvwLwvajTwA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -97829,7 +99329,7 @@ in
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-back-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."brfs-1.6.1"
       sources."browser-or-node-1.3.0"
@@ -98053,7 +99553,7 @@ in
       sources."array-filter-1.0.0"
       sources."async-0.2.10"
       sources."available-typed-arrays-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."call-bind-1.0.2"
       sources."chalk-1.1.3"
@@ -98120,7 +99620,7 @@ in
       sources."string.prototype.trimstart-1.0.4"
       sources."strip-ansi-3.0.1"
       sources."supports-color-2.0.0"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."utile-0.2.1"
       sources."which-boxed-primitive-1.0.2"
       sources."which-collection-1.0.1"
@@ -98154,7 +99654,7 @@ in
       sources."acorn-5.7.4"
       sources."amdefine-1.0.1"
       sources."ast-types-0.9.6"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base62-0.1.1"
       sources."brace-expansion-1.1.11"
       sources."commander-2.20.3"
@@ -98274,15 +99774,15 @@ in
       sources."is-typedarray-1.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."jsdom-16.5.1"
+      sources."jsdom-16.5.2"
       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."levn-0.3.0"
       sources."lodash-4.17.21"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."nwsapi-2.2.0"
       sources."oauth-sign-0.9.0"
       sources."optionator-0.8.3"
@@ -98333,7 +99833,7 @@ in
       sources."ws-7.4.4"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yargs-parser-20.2.7"
     ];
     buildInputs = globalBuildInputs;
@@ -98349,10 +99849,10 @@ in
   redoc-cli = nodeEnv.buildNodePackage {
     name = "redoc-cli";
     packageName = "redoc-cli";
-    version = "0.10.2";
+    version = "0.10.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.10.2.tgz";
-      sha512 = "AQHx67+fJ+7PZUGf0Vl24XO02isSLHU7fh/OXu6wreFm6B1+xrVhcehV9um2nk63Zq9GFenjnv2GoXEyMSGc7Q==";
+      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.10.4.tgz";
+      sha512 = "2KcHOC0hps8Hi1OJH+BQOQ9ARXv2JAewwsknzakPFnVgWQGtQTvLqbpqdg75KPIXPpleRHnYGFFjOcJQJy43/Q==";
     };
     dependencies = [
       sources."@babel/code-frame-7.12.13"
@@ -98368,18 +99868,18 @@ in
       sources."@babel/helper-split-export-declaration-7.12.13"
       sources."@babel/helper-validator-identifier-7.12.11"
       sources."@babel/highlight-7.13.10"
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/runtime-7.13.10"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@emotion/is-prop-valid-0.8.8"
       sources."@emotion/memoize-0.7.4"
       sources."@emotion/stylis-0.8.5"
       sources."@emotion/unitless-0.7.5"
       sources."@exodus/schemasafe-1.0.0-rc.3"
       sources."@redocly/react-dropdown-aria-2.0.11"
-      sources."@types/node-13.13.47"
+      sources."@types/node-13.13.48"
       sources."ajv-5.5.2"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
@@ -98427,7 +99927,7 @@ in
       sources."chalk-2.4.2"
       sources."chokidar-3.5.1"
       sources."cipher-base-1.0.4"
-      sources."classnames-2.2.6"
+      sources."classnames-2.3.1"
       sources."clipboard-2.0.8"
       sources."cliui-7.0.4"
       sources."clsx-1.1.1"
@@ -98437,7 +99937,7 @@ in
       sources."color-name-1.1.3"
       sources."console-browserify-1.2.0"
       sources."constants-browserify-1.0.0"
-      sources."core-js-3.9.1"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       (sources."create-ecdh-4.0.4" // {
         dependencies = [
@@ -98600,7 +100100,7 @@ in
         ];
       })
       sources."readdirp-3.5.0"
-      sources."redoc-2.0.0-rc.48"
+      sources."redoc-2.0.0-rc.50"
       sources."reftools-1.1.8"
       sources."regenerator-runtime-0.13.8"
       sources."require-directory-2.1.1"
@@ -98629,7 +100129,7 @@ in
       sources."string-width-4.2.2"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
-      sources."styled-components-5.2.1"
+      sources."styled-components-5.2.3"
       sources."supports-color-5.5.0"
       sources."swagger2openapi-6.2.3"
       sources."timers-browserify-2.0.12"
@@ -98637,9 +100137,9 @@ in
       sources."to-arraybuffer-1.0.1"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.13.2"
+      sources."uglify-js-3.13.3"
       (sources."url-0.11.0" // {
         dependencies = [
           sources."punycode-1.3.2"
@@ -98663,7 +100163,7 @@ in
         ];
       })
       sources."xtend-4.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yaml-1.10.2"
       (sources."yargs-15.4.1" // {
         dependencies = [
@@ -98715,7 +100215,7 @@ in
       sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
     };
     dependencies = [
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."fs.realpath-1.0.0"
@@ -98740,10 +100240,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.42.4";
+    version = "2.44.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.42.4.tgz";
-      sha512 = "Zqv3EvNfcllBHyyEUM754npqsZw82VIjK34cDQMwrQ1d6aqxzeYu5yFb7smGkPU4C1Bj7HupIMeT6WU7uIdnMw==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.44.0.tgz";
+      sha512 = "rGSF4pLwvuaH/x4nAS+zP6UNn5YUDWf/TeEU5IoXSZKBbKRNTCI3qMnYXKZgrC0D2KzS2baiOZt1OlqhMu5rnQ==";
     };
     dependencies = [
       sources."fsevents-2.3.2"
@@ -98781,7 +100281,7 @@ in
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
       sources."@rollup/plugin-commonjs-17.1.0"
-      sources."@rollup/plugin-node-resolve-11.2.0"
+      sources."@rollup/plugin-node-resolve-11.2.1"
       (sources."@rollup/pluginutils-3.1.0" // {
         dependencies = [
           sources."estree-walker-1.0.1"
@@ -98794,16 +100294,16 @@ in
       sources."@types/minimatch-3.0.4"
       sources."@types/mocha-8.2.2"
       sources."@types/node-12.12.70"
-      sources."@types/node-fetch-2.5.8"
+      sources."@types/node-fetch-2.5.9"
       sources."@types/resolve-1.17.1"
-      sources."@types/vscode-1.54.0"
-      sources."@typescript-eslint/eslint-plugin-4.19.0"
-      sources."@typescript-eslint/experimental-utils-4.19.0"
-      sources."@typescript-eslint/parser-4.19.0"
-      sources."@typescript-eslint/scope-manager-4.19.0"
-      sources."@typescript-eslint/types-4.19.0"
-      sources."@typescript-eslint/typescript-estree-4.19.0"
-      sources."@typescript-eslint/visitor-keys-4.19.0"
+      sources."@types/vscode-1.55.0"
+      sources."@typescript-eslint/eslint-plugin-4.21.0"
+      sources."@typescript-eslint/experimental-utils-4.21.0"
+      sources."@typescript-eslint/parser-4.21.0"
+      sources."@typescript-eslint/scope-manager-4.21.0"
+      sources."@typescript-eslint/types-4.21.0"
+      sources."@typescript-eslint/typescript-estree-4.21.0"
+      sources."@typescript-eslint/visitor-keys-4.21.0"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
@@ -98818,7 +100318,7 @@ in
       sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
       sources."azure-devops-node-api-7.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."big-integer-1.6.48"
       sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
@@ -98831,6 +100331,7 @@ in
       sources."buffer-indexof-polyfill-1.0.2"
       sources."buffers-0.1.1"
       sources."builtin-modules-3.2.0"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-6.2.0"
       sources."chainsaw-0.1.0"
@@ -98868,9 +100369,9 @@ in
       sources."dir-glob-3.0.1"
       sources."doctrine-3.0.0"
       sources."dom-serializer-1.2.0"
-      sources."domelementtype-2.1.0"
-      sources."domhandler-4.0.0"
-      sources."domutils-2.5.0"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.1.0"
+      sources."domutils-2.5.1"
       sources."duplexer2-0.1.4"
       (sources."editorconfig-0.15.3" // {
         dependencies = [
@@ -98884,7 +100385,7 @@ in
       sources."entities-2.1.0"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.22.0" // {
+      (sources."eslint-7.23.0" // {
         dependencies = [
           sources."ignore-4.0.6"
         ];
@@ -98938,6 +100439,7 @@ in
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
       sources."get-caller-file-2.0.5"
+      sources."get-intrinsic-1.1.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       (sources."globals-13.7.0" // {
@@ -98950,6 +100452,7 @@ in
       sources."growl-1.10.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."he-1.2.0"
       sources."htmlparser2-6.0.1"
       sources."http-proxy-agent-4.0.1"
@@ -98960,14 +100463,17 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-binary-path-2.1.0"
+      sources."is-boolean-object-1.1.0"
       sources."is-core-module-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-module-1.0.0"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-reference-1.2.1"
+      sources."is-string-1.0.5"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
@@ -98980,6 +100486,9 @@ in
       sources."listenercount-1.0.1"
       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.truncate-4.4.2"
       sources."log-symbols-4.0.0"
       sources."lru-cache-6.0.0"
       sources."magic-string-0.25.7"
@@ -98992,8 +100501,8 @@ in
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
@@ -99063,7 +100572,7 @@ in
       sources."resolve-from-4.0.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rollup-2.42.4"
+      sources."rollup-2.44.0"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.2.1"
       sources."semver-7.3.5"
@@ -99091,9 +100600,9 @@ in
       sources."strip-ansi-6.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.2.3"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -99101,7 +100610,7 @@ in
       sources."tmp-0.0.29"
       sources."to-regex-range-5.0.1"
       sources."traverse-0.3.9"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       (sources."tsutils-3.21.0" // {
         dependencies = [
           sources."tslib-1.14.1"
@@ -99120,7 +100629,7 @@ in
       sources."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.3.0"
-      (sources."vsce-1.87.0" // {
+      (sources."vsce-1.87.1" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."commander-6.2.1"
@@ -99131,7 +100640,7 @@ in
       sources."vscode-languageclient-7.1.0-next.4"
       sources."vscode-languageserver-protocol-3.17.0-next.5"
       sources."vscode-languageserver-types-3.17.0-next.1"
-      sources."vscode-test-1.5.1"
+      sources."vscode-test-1.5.2"
       sources."which-2.0.2"
       (sources."wide-align-1.1.3" // {
         dependencies = [
@@ -99151,7 +100660,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.4"
@@ -99247,8 +100756,8 @@ in
       sources."keypress-0.1.0"
       sources."methods-0.1.0"
       sources."mime-1.2.11"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mkdirp-0.3.5"
       sources."ms-2.1.2"
       sources."multiparty-2.2.0"
@@ -99258,7 +100767,7 @@ in
       sources."node-wsfederation-0.1.1"
       sources."oauth-https://github.com/ciaranj/node-oauth/tarball/master"
       sources."oauth-sign-0.9.0"
-      (sources."openid-2.0.7" // {
+      (sources."openid-2.0.8" // {
         dependencies = [
           sources."qs-6.5.2"
           sources."request-2.88.2"
@@ -99373,7 +100882,7 @@ in
       sources."ansi-styles-3.2.1"
       sources."arch-2.2.0"
       sources."arg-2.0.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."boxen-1.3.0"
       sources."brace-expansion-1.1.11"
       sources."bytes-3.0.0"
@@ -99411,8 +100920,8 @@ in
       sources."isexe-2.0.0"
       sources."json-schema-traverse-0.4.1"
       sources."lru-cache-4.1.5"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."ms-2.0.0"
@@ -99465,10 +100974,10 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "2.31.0";
+    version = "2.33.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-2.31.0.tgz";
-      sha512 = "gqjiMemQKvOEYgAQB8IuPA4v6GMg83kkxREy8i55oHnv4xwMJQ2RX11Z83Sk05qPR5fl59e3ZNuLgvXZKoOgBA==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-2.33.1.tgz";
+      sha512 = "NLRnK6376mAjGYnsfjr3UCIX8pH6US1hHow3ESRs+/ycIzRdG/LXlDAgq+4vLnPQ8t8vc9ZyU8FTFfrSR4sHqg==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
@@ -99500,7 +101009,7 @@ in
         ];
       })
       sources."@serverless/component-metrics-1.0.8"
-      (sources."@serverless/components-3.7.7" // {
+      (sources."@serverless/components-3.8.1" // {
         dependencies = [
           (sources."@serverless/utils-3.1.0" // {
             dependencies = [
@@ -99527,11 +101036,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."@serverless/enterprise-plugin-4.5.2" // {
-        dependencies = [
-          sources."js-yaml-3.14.1"
-        ];
-      })
+      sources."@serverless/enterprise-plugin-4.5.3"
       sources."@serverless/event-mocks-1.1.1"
       (sources."@serverless/platform-client-4.2.2" // {
         dependencies = [
@@ -99545,7 +101050,7 @@ in
         ];
       })
       sources."@serverless/template-1.1.4"
-      (sources."@serverless/utils-4.0.0" // {
+      (sources."@serverless/utils-4.0.1" // {
         dependencies = [
           sources."jwt-decode-3.1.2"
           sources."write-file-atomic-3.0.3"
@@ -99561,12 +101066,12 @@ in
       sources."@types/keyv-3.1.1"
       sources."@types/lodash-4.14.168"
       sources."@types/long-4.0.1"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
       sources."@types/responselike-1.0.0"
       sources."@types/tough-cookie-4.0.0"
-      sources."adm-zip-0.5.4"
+      sources."adm-zip-0.5.5"
       sources."after-0.8.2"
       (sources."agent-base-6.0.2" // {
         dependencies = [
@@ -99622,7 +101127,7 @@ in
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.871.0" // {
+      (sources."aws-sdk-2.880.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -99634,7 +101139,7 @@ in
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
       sources."backo2-1.0.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -99657,7 +101162,7 @@ in
       })
       sources."blob-0.0.5"
       sources."bluebird-3.7.2"
-      (sources."boxen-5.0.0" // {
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."is-fullwidth-code-point-3.0.0"
@@ -99851,7 +101356,7 @@ in
       sources."fastest-levenshtein-1.0.12"
       sources."fastq-1.11.0"
       sources."fd-slicer-1.1.0"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."figures-3.2.0"
       sources."file-type-5.2.0"
       sources."file-uri-to-path-1.0.0"
@@ -99956,7 +101461,7 @@ in
       sources."into-stream-3.1.0"
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
@@ -100051,8 +101556,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -100130,7 +101635,7 @@ in
       sources."promise-queue-2.2.5"
       (sources."protobufjs-6.10.2" // {
         dependencies = [
-          sources."@types/node-13.13.47"
+          sources."@types/node-13.13.48"
           sources."long-4.0.0"
         ];
       })
@@ -100167,7 +101672,7 @@ in
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
       sources."run-parallel-limit-1.1.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.1"
@@ -100489,8 +101994,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."moment-2.7.0"
@@ -100849,7 +102354,7 @@ in
       sources."asn1-0.1.11"
       sources."assert-plus-0.1.5"
       sources."backoff-2.5.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."bunyan-1.5.1"
@@ -100991,12 +102496,13 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.509.0";
+    version = "1.526.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.509.0.tgz";
-      sha512 = "3vdfa79Phr16O6Laun5zkNOxhQ7VIPeqb+aWwREkY3xOldLiZmOgQxfwKkllc/kImDmxB1CdDmRRwSJvPGMJ3Q==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.526.0.tgz";
+      sha512 = "HVJFcE/eA0J4uYubQ2t1RYQdXOKfQg4BbeTt8nKQisT92vWASX+BWqhPuiYQNpcUgca7x3V33LYf/bDJtXAbJQ==";
     };
     dependencies = [
+      sources."@arcanis/slice-ansi-1.0.2"
       sources."@deepcode/dcignore-1.0.2"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
@@ -101006,7 +102512,7 @@ in
       sources."@sindresorhus/is-2.1.1"
       sources."@snyk/cli-interface-2.11.0"
       sources."@snyk/cocoapods-lockfile-parser-3.6.2"
-      (sources."@snyk/code-client-3.1.5" // {
+      (sources."@snyk/code-client-3.4.0" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
@@ -101019,6 +102525,12 @@ in
       })
       sources."@snyk/docker-registry-v2-client-1.13.9"
       sources."@snyk/fast-glob-3.2.6-patch"
+      (sources."@snyk/fix-1.518.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."@snyk/gemfile-1.2.0"
       sources."@snyk/glob-parent-5.1.2-patch.1"
       sources."@snyk/graphlib-2.1.9-patch.3"
@@ -101035,10 +102547,15 @@ in
           sources."tmp-0.2.1"
         ];
       })
+      (sources."@snyk/mix-parser-1.1.1" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
       sources."@snyk/rpm-parser-2.2.1"
       (sources."@snyk/snyk-cocoapods-plugin-2.5.2" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."@snyk/snyk-docker-pull-3.2.3" // {
@@ -101046,10 +102563,16 @@ in
           sources."tmp-0.1.0"
         ];
       })
+      (sources."@snyk/snyk-hex-plugin-1.0.0" // {
+        dependencies = [
+          sources."tslib-2.2.0"
+        ];
+      })
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/braces-3.0.0"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/debug-4.1.5"
+      sources."@types/emscripten-1.39.4"
       sources."@types/flat-cache-2.0.0"
       sources."@types/graphlib-2.1.7"
       sources."@types/http-cache-semantics-4.0.0"
@@ -101060,13 +102583,47 @@ in
       sources."@types/lodash.omit-4.5.6"
       sources."@types/lodash.union-4.6.6"
       sources."@types/micromatch-4.0.1"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/responselike-1.0.0"
       sources."@types/sarif-2.1.3"
+      sources."@types/semver-7.3.4"
+      sources."@types/treeify-1.0.0"
       sources."@types/uuid-8.3.0"
+      (sources."@yarnpkg/core-2.4.0" // {
+        dependencies = [
+          sources."@sindresorhus/is-4.0.0"
+          sources."chalk-3.0.0"
+          sources."cross-spawn-7.0.3"
+          sources."got-11.8.2"
+          sources."mkdirp-0.5.5"
+          sources."path-key-3.1.1"
+          sources."semver-7.3.5"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."@yarnpkg/fslib-2.4.0"
+      sources."@yarnpkg/json-proxy-2.1.0"
+      sources."@yarnpkg/libzip-2.2.1"
       sources."@yarnpkg/lockfile-1.1.0"
+      sources."@yarnpkg/parsers-2.3.0"
+      (sources."@yarnpkg/pnp-2.3.2" // {
+        dependencies = [
+          sources."@types/node-13.13.48"
+        ];
+      })
+      (sources."@yarnpkg/shell-2.4.1" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
       sources."abbrev-1.1.1"
-      sources."agent-base-4.3.0"
+      sources."aggregate-error-3.1.0"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."emoji-regex-7.0.3"
@@ -101078,31 +102635,24 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.3.0"
       sources."ansicolors-0.3.2"
+      sources."any-promise-1.3.0"
       sources."archy-1.0.0"
       (sources."argparse-1.0.10" // {
         dependencies = [
           sources."sprintf-js-1.0.3"
         ];
       })
+      sources."array-union-2.1.0"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
-      (sources."ast-types-0.14.2" // {
-        dependencies = [
-          sources."tslib-2.1.0"
-        ];
-      })
       sources."async-3.2.0"
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
-      (sources."bl-4.1.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.1"
-          sources."string_decoder-1.3.0"
-        ];
-      })
+      sources."binjumper-0.1.4"
+      sources."bl-4.1.0"
+      sources."boolean-3.0.3"
       (sources."boxen-4.2.0" // {
         dependencies = [
           sources."chalk-3.0.0"
@@ -101114,13 +102664,13 @@ in
       sources."browserify-zlib-0.1.4"
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.1"
-      sources."bytes-3.1.0"
       sources."cacheable-lookup-5.0.4"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
           sources."get-stream-5.2.0"
         ];
       })
+      sources."call-bind-1.0.2"
       sources."camelcase-5.3.1"
       (sources."chalk-2.4.2" // {
         dependencies = [
@@ -101135,16 +102685,20 @@ in
       sources."child-process-1.0.2"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
+      sources."clean-stack-2.2.0"
       sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-spinner-0.2.10"
+      sources."cli-spinners-2.6.0"
       sources."cli-width-3.0.0"
+      sources."clipanion-2.6.2"
+      sources."clone-1.0.4"
       sources."clone-response-1.0.2"
-      sources."co-4.6.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       (sources."cross-spawn-6.0.5" // {
         dependencies = [
@@ -101152,7 +102706,6 @@ in
         ];
       })
       sources."crypto-random-string-2.0.0"
-      sources."data-uri-to-buffer-1.2.0"
       sources."debug-4.3.2"
       (sources."decompress-response-6.0.0" // {
         dependencies = [
@@ -101160,75 +102713,68 @@ in
         ];
       })
       sources."deep-extend-0.6.0"
-      sources."deep-is-0.1.3"
+      sources."defaults-1.0.3"
       sources."defer-to-connect-2.0.1"
-      (sources."degenerator-1.0.4" // {
-        dependencies = [
-          sources."esprima-3.1.3"
-        ];
-      })
-      sources."depd-1.1.2"
+      sources."define-properties-1.1.3"
+      sources."detect-node-2.0.5"
       sources."diff-4.0.2"
-      (sources."docker-modem-2.1.3" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.1"
-          sources."string_decoder-1.3.0"
-        ];
-      })
+      sources."dir-glob-3.0.1"
+      sources."docker-modem-2.1.3"
       sources."dockerfile-ast-0.2.0"
       sources."dot-prop-5.3.0"
       sources."dotnet-deps-parser-5.0.0"
       sources."duplexer3-0.1.4"
-      sources."duplexify-3.7.1"
+      (sources."duplexify-3.7.1" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       sources."elfy-1.0.0"
       sources."email-validator-2.0.4"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."endian-reader-0.3.0"
-      sources."es6-promise-4.2.8"
-      sources."es6-promisify-5.0.0"
+      sources."es6-error-4.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
-      sources."estraverse-4.3.0"
-      sources."esutils-2.0.3"
       (sources."event-loop-spinner-2.1.0" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."execa-1.0.0"
-      sources."extend-3.0.2"
       sources."external-editor-3.1.0"
-      sources."fast-levenshtein-2.0.6"
+      sources."fast-glob-3.2.5"
       sources."fastq-1.11.0"
       sources."figures-3.2.0"
-      sources."file-uri-to-path-1.0.0"
       sources."fill-range-7.0.1"
       sources."follow-redirects-1.13.3"
       sources."fs-constants-1.0.0"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
-      (sources."ftp-0.3.10" // {
-        dependencies = [
-          sources."readable-stream-1.1.14"
-        ];
-      })
+      sources."function-bind-1.1.1"
+      sources."get-intrinsic-1.1.1"
       sources."get-stream-4.1.0"
-      (sources."get-uri-2.0.4" // {
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.2"
+      (sources."global-agent-2.2.0" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."semver-7.3.5"
         ];
       })
-      sources."glob-7.1.6"
       sources."global-dirs-2.1.0"
+      sources."globalthis-1.0.2"
+      sources."globby-11.0.3"
       sources."got-11.4.0"
       sources."graceful-fs-4.2.6"
+      sources."grapheme-splitter-1.0.4"
       sources."gunzip-maybe-1.4.2"
+      sources."has-1.0.3"
       sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.2"
       sources."has-yarn-2.1.0"
       (sources."hcl-to-json-0.1.1" // {
         dependencies = [
@@ -101237,58 +102783,55 @@ in
       })
       sources."hosted-git-info-3.0.8"
       sources."http-cache-semantics-4.1.0"
-      sources."http-errors-1.7.3"
-      (sources."http-proxy-agent-2.1.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
       sources."http2-wrapper-1.0.3"
-      (sources."https-proxy-agent-3.0.1" // {
-        dependencies = [
-          sources."debug-3.2.7"
-        ];
-      })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.1.8"
       sources."immediate-3.0.6"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.7"
-      sources."ip-1.1.5"
+      sources."is-3.3.0"
+      sources."is-callable-1.2.3"
       sources."is-ci-2.0.0"
       sources."is-deflate-1.0.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-gzip-1.0.0"
       sources."is-installed-globally-0.3.2"
+      sources."is-interactive-1.0.0"
       sources."is-npm-4.0.0"
       sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
+      sources."is-unicode-supported-0.1.0"
       sources."is-wsl-2.2.0"
       sources."is-yarn-global-0.3.0"
-      sources."isarray-0.0.1"
+      sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."js-yaml-3.14.1"
       sources."json-buffer-3.0.1"
+      sources."json-file-plus-3.3.1"
+      sources."json-stringify-safe-5.0.1"
       (sources."jszip-3.6.0" // {
         dependencies = [
           sources."pako-1.0.11"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
       sources."keyv-4.0.3"
       sources."latest-version-5.1.0"
-      sources."levn-0.3.0"
       sources."lie-3.3.0"
+      sources."lodash-4.17.21"
       sources."lodash.assign-4.2.0"
       sources."lodash.assignin-4.2.0"
       sources."lodash.camelcase-4.3.0"
@@ -101336,10 +102879,20 @@ in
       sources."lodash.uniq-4.5.0"
       sources."lodash.upperfirst-4.3.1"
       sources."lodash.values-4.3.0"
+      (sources."log-symbols-4.1.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+        ];
+      })
       sources."lowercase-keys-2.0.0"
       sources."lru-cache-6.0.0"
       sources."macos-release-2.4.1"
       sources."make-dir-3.1.0"
+      (sources."matcher-3.0.0" // {
+        dependencies = [
+          sources."escape-string-regexp-4.0.0"
+        ];
+      })
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
       sources."mimic-fn-2.1.0"
@@ -101356,22 +102909,29 @@ in
           sources."debug-3.2.7"
         ];
       })
-      sources."netmask-1.0.6"
       sources."nice-try-1.0.5"
+      sources."node.extend-2.0.2"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-2.0.2"
       sources."object-hash-2.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."open-7.4.2"
-      sources."optionator-0.8.3"
+      (sources."ora-5.3.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-2.1.0"
       sources."p-finally-1.0.0"
-      sources."p-map-2.1.0"
-      sources."pac-proxy-agent-3.0.1"
-      sources."pac-resolver-3.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-map-4.0.0"
+      sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
           sources."@sindresorhus/is-0.14.0"
@@ -101396,21 +102956,19 @@ in
       sources."parse-link-header-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
+      sources."path-type-4.0.0"
       sources."peek-stream-1.1.3"
       sources."picomatch-2.2.2"
-      sources."prelude-ls-1.1.2"
+      sources."pluralize-7.0.0"
       sources."prepend-http-2.0.0"
+      sources."pretty-bytes-5.6.0"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-7.3.1"
+      sources."promise-deferred-2.0.3"
       sources."promise-fs-2.1.1"
       sources."promise-queue-2.2.5"
-      (sources."proxy-agent-3.1.1" // {
-        dependencies = [
-          sources."lru-cache-5.1.1"
-          sources."yallist-3.1.1"
-        ];
-      })
+      sources."promiseback-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pseudomap-1.0.2"
       sources."pump-3.0.0"
@@ -101423,14 +102981,8 @@ in
       sources."queue-6.0.2"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
-      sources."raw-body-2.4.1"
       sources."rc-1.2.8"
-      (sources."readable-stream-2.3.7" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."string_decoder-1.1.1"
-        ];
-      })
+      sources."readable-stream-3.6.0"
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."resolve-alpn-1.0.0"
@@ -101438,29 +102990,36 @@ in
       sources."restore-cursor-3.1.0"
       sources."reusify-1.0.4"
       sources."rimraf-2.7.1"
+      sources."roarr-2.15.4"
       sources."run-async-2.4.1"
       sources."run-parallel-1.2.0"
-      sources."rxjs-6.6.6"
-      sources."safe-buffer-5.1.2"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."semver-6.3.0"
+      sources."semver-compare-1.0.0"
       sources."semver-diff-3.1.1"
+      (sources."serialize-error-7.0.1" // {
+        dependencies = [
+          sources."type-fest-0.13.1"
+        ];
+      })
       sources."set-immediate-shim-1.0.1"
-      sources."setprototypeof-1.1.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
-      sources."smart-buffer-4.1.0"
+      sources."slash-3.0.0"
       sources."snyk-config-4.0.0"
       (sources."snyk-cpp-plugin-2.2.1" // {
         dependencies = [
           sources."chalk-4.1.0"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."snyk-docker-plugin-4.19.3" // {
         dependencies = [
+          sources."p-map-2.1.0"
           sources."rimraf-3.0.2"
           sources."semver-7.3.5"
           sources."snyk-nodejs-lockfile-parser-1.30.2"
@@ -101475,12 +103034,12 @@ in
           sources."tmp-0.2.1"
         ];
       })
-      (sources."snyk-gradle-plugin-3.13.2" // {
+      (sources."snyk-gradle-plugin-3.14.0" // {
         dependencies = [
           sources."chalk-3.0.0"
           sources."rimraf-3.0.2"
           sources."tmp-0.2.1"
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       sources."snyk-module-3.1.0"
@@ -101500,8 +103059,9 @@ in
           sources."tslib-1.11.1"
         ];
       })
-      (sources."snyk-nodejs-lockfile-parser-1.31.1" // {
+      (sources."snyk-nodejs-lockfile-parser-1.32.0" // {
         dependencies = [
+          sources."p-map-2.1.0"
           sources."uuid-8.3.2"
         ];
       })
@@ -101509,6 +103069,9 @@ in
         dependencies = [
           sources."jszip-3.4.0"
           sources."pako-1.0.11"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
         ];
       })
       sources."snyk-paket-parser-1.6.0"
@@ -101519,7 +103082,7 @@ in
       })
       (sources."snyk-poetry-lockfile-parser-1.1.6" // {
         dependencies = [
-          sources."tslib-2.1.0"
+          sources."tslib-2.2.0"
         ];
       })
       (sources."snyk-policy-1.19.0" // {
@@ -101551,27 +103114,28 @@ in
           sources."yallist-2.1.2"
         ];
       })
-      sources."socks-2.3.3"
-      (sources."socks-proxy-agent-4.0.2" // {
-        dependencies = [
-          sources."agent-base-4.2.1"
-        ];
-      })
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.19"
       sources."split-ca-1.0.1"
       sources."sprintf-js-1.1.2"
       sources."ssh2-0.8.9"
       sources."ssh2-streams-0.4.10"
-      sources."statuses-1.5.0"
+      sources."stream-buffers-3.0.2"
       sources."stream-shift-1.0.1"
+      sources."stream-to-array-2.3.0"
+      (sources."stream-to-promise-2.2.0" // {
+        dependencies = [
+          sources."end-of-stream-1.1.0"
+          sources."once-1.3.3"
+        ];
+      })
       sources."streamsearch-0.1.2"
       (sources."string-width-4.2.2" // {
         dependencies = [
           sources."strip-ansi-6.0.0"
         ];
       })
-      sources."string_decoder-0.10.31"
+      sources."string_decoder-1.3.0"
       (sources."strip-ansi-5.2.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -101581,13 +103145,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
       sources."tar-6.1.0"
-      (sources."tar-stream-2.2.0" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-          sources."safe-buffer-5.2.1"
-          sources."string_decoder-1.3.0"
-        ];
-      })
+      sources."tar-stream-2.2.0"
       sources."temp-dir-2.0.0"
       (sources."tempfile-2.0.0" // {
         dependencies = [
@@ -101597,21 +103155,25 @@ in
       sources."term-size-2.2.1"
       sources."then-fs-2.0.0"
       sources."through-2.3.8"
-      sources."through2-2.0.5"
-      sources."thunkify-2.1.2"
+      (sources."through2-2.0.5" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
       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."toml-3.0.0"
       sources."tree-kill-1.2.2"
+      sources."treeify-1.1.0"
       sources."tslib-1.14.1"
+      sources."tunnel-0.0.6"
       sources."tweetnacl-0.14.5"
-      sources."type-check-0.3.2"
       sources."type-fest-0.21.3"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
-      sources."unpipe-1.0.0"
       (sources."update-notifier-4.1.3" // {
         dependencies = [
           sources."chalk-3.0.0"
@@ -101622,10 +103184,10 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."vscode-languageserver-types-3.16.0"
+      sources."wcwidth-1.0.1"
       sources."which-1.3.1"
       sources."widest-line-3.1.0"
       sources."windows-release-3.3.3"
-      sources."word-wrap-1.2.3"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -101642,7 +103204,6 @@ in
       sources."xml-js-1.6.11"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xregexp-2.0.0"
       sources."xtend-4.0.2"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
@@ -101660,16 +103221,16 @@ in
   "socket.io" = nodeEnv.buildNodePackage {
     name = "socket.io";
     packageName = "socket.io";
-    version = "4.0.0";
+    version = "4.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.0.0.tgz";
-      sha512 = "/c1riZMV/4yz7KEpaMhDQbwhJDIoO55whXaRKgyEBQrLU9zUHXo9rzeTMvTOqwL9mbKfHKdrXcMoCeQ/1YtMsg==";
+      url = "https://registry.npmjs.org/socket.io/-/socket.io-4.0.1.tgz";
+      sha512 = "g8eZB9lV0f4X4gndG0k7YZAywOg1VxYgCUspS4V+sDqsgI/duqd0AW84pKkbGj/wQwxrqrEq+VZrspRfTbHTAQ==";
     };
     dependencies = [
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."accepts-1.3.7"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
@@ -101679,8 +103240,8 @@ in
       sources."debug-4.3.2"
       sources."engine.io-5.0.0"
       sources."engine.io-parser-4.0.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."ms-2.1.2"
       sources."negotiator-0.6.2"
       sources."object-assign-4.1.1"
@@ -101742,7 +103303,7 @@ in
       sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
       sources."dot-prop-4.2.1"
-      sources."draftlog-1.0.12"
+      sources."draftlog-1.0.13"
       sources."duplexer3-0.1.4"
       sources."error-ex-1.3.2"
       sources."es6-promise-4.2.8"
@@ -101907,7 +103468,7 @@ in
       sources."array-unique-0.2.1"
       sources."arrify-1.0.1"
       sources."assign-symbols-1.0.0"
-      (sources."async-append-only-log-3.0.7" // {
+      (sources."async-append-only-log-3.0.8" // {
         dependencies = [
           sources."push-stream-11.0.0"
         ];
@@ -101922,7 +103483,7 @@ in
       sources."attach-ware-1.1.1"
       sources."available-typed-arrays-1.0.2"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -101936,7 +103497,7 @@ in
       sources."binary-search-1.3.6"
       sources."binary-search-bounds-2.0.5"
       sources."bindings-1.5.0"
-      sources."bipf-1.4.0"
+      sources."bipf-1.5.0"
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
@@ -102078,7 +103639,7 @@ in
       sources."extend.js-0.0.2"
       sources."extglob-0.3.2"
       sources."fastintcompression-0.0.4"
-      sources."fastpriorityqueue-0.7.0"
+      sources."fastpriorityqueue-0.7.1"
       sources."file-uri-to-path-1.0.0"
       sources."filename-regex-2.0.1"
       sources."fill-range-2.2.4"
@@ -102232,7 +103793,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-2.1.0"
-      (sources."jitdb-2.3.4" // {
+      (sources."jitdb-2.3.5" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."push-stream-11.0.0"
@@ -102663,7 +104224,7 @@ in
       sources."ssb-client-4.9.0"
       sources."ssb-config-3.4.5"
       sources."ssb-db-19.2.0"
-      (sources."ssb-db2-1.18.6" // {
+      (sources."ssb-db2-1.18.7" // {
         dependencies = [
           sources."abstract-leveldown-6.2.3"
           (sources."flumecodec-0.0.1" // {
@@ -102720,7 +104281,11 @@ in
       sources."ssb-replicate-1.3.2"
       sources."ssb-sort-1.1.3"
       sources."ssb-unix-socket-1.0.0"
-      sources."ssb-validate-4.1.3"
+      (sources."ssb-validate-4.1.4" // {
+        dependencies = [
+          sources."ssb-keys-8.1.0"
+        ];
+      })
       sources."ssb-ws-6.2.3"
       sources."stack-0.1.0"
       (sources."static-extend-0.1.2" // {
@@ -102789,7 +104354,7 @@ in
       sources."typewiselite-1.0.0"
       sources."uint48be-2.0.1"
       sources."ultron-1.0.2"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."unherit-1.1.3"
       sources."unified-2.1.4"
       sources."union-value-1.0.1"
@@ -102927,7 +104492,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.871.0" // {
+      (sources."aws-sdk-2.880.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -102944,7 +104509,7 @@ in
           sources."lodash-3.10.1"
         ];
       })
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64-js-1.5.1"
       sources."base64id-2.0.0"
@@ -103283,8 +104848,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."minicap-prebuilt-2.3.0"
       sources."minimatch-3.0.4"
@@ -103316,7 +104881,7 @@ in
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."openid-2.0.7"
+      sources."openid-2.0.8"
       sources."options-0.0.6"
       sources."optjs-3.2.2"
       sources."os-locale-3.1.0"
@@ -103705,14 +105270,14 @@ in
     dependencies = [
       sources."@babel/code-frame-7.12.13"
       sources."@babel/compat-data-7.13.12"
-      sources."@babel/core-7.13.10"
+      sources."@babel/core-7.13.14"
       sources."@babel/generator-7.13.9"
-      sources."@babel/helper-compilation-targets-7.13.10"
+      sources."@babel/helper-compilation-targets-7.13.13"
       sources."@babel/helper-function-name-7.12.13"
       sources."@babel/helper-get-function-arity-7.12.13"
       sources."@babel/helper-member-expression-to-functions-7.13.12"
       sources."@babel/helper-module-imports-7.13.12"
-      sources."@babel/helper-module-transforms-7.13.12"
+      sources."@babel/helper-module-transforms-7.13.14"
       sources."@babel/helper-optimise-call-expression-7.12.13"
       sources."@babel/helper-replace-supers-7.13.12"
       sources."@babel/helper-simple-access-7.13.12"
@@ -103725,10 +105290,10 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.13.12"
+      sources."@babel/parser-7.13.13"
       sources."@babel/template-7.12.13"
-      sources."@babel/traverse-7.13.0"
-      sources."@babel/types-7.13.12"
+      sources."@babel/traverse-7.13.13"
+      sources."@babel/types-7.13.14"
       sources."@nodelib/fs.scandir-2.1.4"
       sources."@nodelib/fs.stat-2.0.4"
       sources."@nodelib/fs.walk-1.2.6"
@@ -103739,7 +105304,7 @@ in
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/unist-2.0.3"
-      sources."ajv-7.2.3"
+      sources."ajv-8.0.5"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -103747,14 +105312,15 @@ in
       sources."astral-regex-2.0.0"
       sources."autoprefixer-9.8.6"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       sources."browserslist-4.16.3"
+      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       (sources."chalk-4.1.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -103785,14 +105351,14 @@ in
       sources."dir-glob-3.0.1"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.1.0"
+          sources."domelementtype-2.2.0"
           sources."entities-2.2.0"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -103812,6 +105378,7 @@ in
       sources."fs.realpath-1.0.0"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.2"
+      sources."get-intrinsic-1.1.1"
       sources."get-stdin-8.0.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
@@ -103824,6 +105391,7 @@ in
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.2"
       sources."hosted-git-info-4.0.2"
       sources."html-tags-3.1.0"
       sources."htmlparser2-3.10.1"
@@ -103843,6 +105411,7 @@ in
       sources."is-alphabetical-1.0.4"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-buffer-2.0.5"
       sources."is-core-module-2.2.0"
       sources."is-decimal-1.0.4"
@@ -103851,8 +105420,10 @@ in
       sources."is-glob-4.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-number-7.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-plain-obj-2.1.0"
       sources."is-regexp-2.1.0"
+      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-unicode-supported-0.1.0"
       sources."isexe-2.0.0"
@@ -103866,6 +105437,9 @@ in
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.truncate-4.4.2"
       sources."log-symbols-4.1.0"
       sources."longest-streak-2.0.4"
       sources."lru-cache-6.0.0"
@@ -103986,7 +105560,7 @@ in
       sources."sugarss-2.0.0"
       sources."supports-color-5.5.0"
       sources."svg-tags-1.0.0"
-      sources."table-6.0.7"
+      sources."table-6.0.9"
       sources."to-fast-properties-2.0.0"
       sources."to-regex-range-5.0.1"
       sources."trim-newlines-3.0.0"
@@ -104025,74 +105599,61 @@ in
   svelte-language-server = nodeEnv.buildNodePackage {
     name = "svelte-language-server";
     packageName = "svelte-language-server";
-    version = "0.12.24";
+    version = "0.13.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.12.24.tgz";
-      sha512 = "kArBDbgiSj24dgd+u9KU9XgmN6plEETUQDgXcj9o/XEYp6Ii2VBZwxTbIxHAa4AFcOwIUxq5B6gX8zzt3y7v+Q==";
+      url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-0.13.0.tgz";
+      sha512 = "ov9SZmsCdfy3GcyvrlulEkYnkCc1EK/Qoety+xLsIZtVLMBitudp0OmHx5AWHk+FF2+78A0PYL2z8PEBX6UPjA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.12.13"
-      sources."@babel/helper-validator-identifier-7.12.11"
-      sources."@babel/highlight-7.13.10"
       sources."@emmetio/abbreviation-2.2.2"
       sources."@emmetio/css-abbreviation-2.1.4"
       sources."@emmetio/scanner-1.0.0"
-      sources."@types/node-14.14.35"
-      sources."@types/parse-json-4.0.0"
+      sources."@types/node-14.14.37"
       sources."@types/pug-2.0.4"
       sources."@types/sass-1.16.0"
-      sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.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."chalk-2.4.2"
       sources."chokidar-3.5.1"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."cosmiconfig-7.0.0"
+      sources."concat-map-0.0.1"
       sources."dedent-js-1.0.1"
       sources."detect-indent-6.0.0"
       sources."emmet-2.3.4"
-      sources."error-ex-1.3.2"
-      sources."escape-string-regexp-1.0.5"
       sources."estree-walker-2.0.2"
       sources."fill-range-7.0.1"
+      sources."fs.realpath-1.0.0"
       sources."fsevents-2.3.2"
+      sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
-      sources."has-flag-3.0.0"
-      sources."import-fresh-3.3.0"
-      sources."is-arrayish-0.2.1"
+      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.1"
       sources."is-number-7.0.0"
-      sources."js-tokens-4.0.0"
-      sources."json-parse-even-better-errors-2.3.1"
       sources."jsonc-parser-2.3.1"
-      sources."lines-and-columns-1.1.6"
       sources."lodash-4.17.21"
       sources."lower-case-2.0.2"
       sources."min-indent-1.0.1"
+      sources."minimatch-3.0.4"
       sources."no-case-3.0.4"
       sources."normalize-path-3.0.0"
-      sources."parent-module-1.0.1"
-      sources."parse-json-5.2.0"
+      sources."once-1.4.0"
       sources."pascal-case-3.1.2"
-      sources."path-type-4.0.0"
+      sources."path-is-absolute-1.0.1"
       sources."picomatch-2.2.2"
       sources."prettier-2.2.1"
       sources."prettier-plugin-svelte-2.2.0"
       sources."readdirp-3.5.0"
-      sources."resolve-from-4.0.0"
       sources."source-map-0.7.3"
       sources."strip-indent-3.0.0"
-      sources."supports-color-5.5.0"
       sources."svelte-3.35.0"
       sources."svelte-preprocess-4.6.9"
-      sources."svelte2tsx-0.1.184"
+      sources."svelte2tsx-0.1.186"
       sources."to-regex-range-5.0.1"
-      sources."tslib-2.1.0"
+      sources."tslib-2.2.0"
       sources."typescript-4.2.3"
       sources."vscode-css-languageservice-5.0.0"
       sources."vscode-emmet-helper-2.1.2"
@@ -104104,7 +105665,7 @@ in
       sources."vscode-languageserver-types-3.16.0"
       sources."vscode-nls-5.0.0"
       sources."vscode-uri-2.1.2"
-      sources."yaml-1.10.2"
+      sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -104119,10 +105680,10 @@ in
   svgo = nodeEnv.buildNodePackage {
     name = "svgo";
     packageName = "svgo";
-    version = "2.2.2";
+    version = "2.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/svgo/-/svgo-2.2.2.tgz";
-      sha512 = "kJugY2d0yrsONnG4YavppVkKmKULMw2iFRbB9+usyWqzTaqoBuUaqdMnQ2G1n5P1dmOA2tZvc5zmMM6sPOVBSQ==";
+      url = "https://registry.npmjs.org/svgo/-/svgo-2.3.0.tgz";
+      sha512 = "fz4IKjNO6HDPgIQxu4IxwtubtbSfGEAJUq/IXyTPIkGhWck/faiiwfkvsB8LnBkKLvSoyNNIY6d13lZprJMc9Q==";
     };
     dependencies = [
       sources."@trysound/sax-0.1.1"
@@ -104133,13 +105694,13 @@ in
       sources."color-name-1.1.4"
       sources."commander-7.2.0"
       sources."css-select-3.1.2"
-      sources."css-tree-1.1.2"
+      sources."css-tree-1.1.3"
       sources."css-what-4.0.0"
       sources."csso-4.2.0"
       sources."dom-serializer-1.2.0"
-      sources."domelementtype-2.1.0"
-      sources."domhandler-4.0.0"
-      sources."domutils-2.5.0"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.1.0"
+      sources."domutils-2.5.1"
       sources."entities-2.2.0"
       sources."has-flag-4.0.0"
       sources."mdn-data-2.0.14"
@@ -104189,7 +105750,7 @@ in
       sources."async-each-1.0.3"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -104491,8 +106052,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
       sources."mixin-deep-1.3.2"
@@ -104737,7 +106298,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.13.2"
+      sources."uglify-js-3.13.3"
       sources."undefsafe-2.0.3"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -104858,8 +106419,8 @@ in
       sources."locate-path-3.0.0"
       sources."long-4.0.0"
       sources."mime-2.5.2"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimist-1.2.5"
       sources."module-alias-2.2.2"
       sources."moment-2.29.1"
@@ -104929,7 +106490,7 @@ in
       sources."acorn-6.4.2"
       sources."acorn-loose-6.1.0"
       sources."acorn-walk-6.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
@@ -104998,7 +106559,7 @@ in
       sources."ansi-styles-2.2.1"
       sources."argparse-1.0.10"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."boundary-1.0.1"
       sources."brace-expansion-1.1.11"
       sources."buffer-from-1.1.1"
@@ -105279,7 +106840,7 @@ in
       sources."array-iterate-1.1.4"
       sources."arrify-1.0.1"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."boundary-1.0.1"
       (sources."boxen-4.2.0" // {
         dependencies = [
@@ -105463,7 +107024,7 @@ in
       sources."micromark-extension-mdx-jsx-0.3.3"
       sources."micromark-extension-mdx-md-0.1.1"
       sources."micromark-extension-mdxjs-0.3.0"
-      sources."micromark-extension-mdxjs-esm-0.3.0"
+      sources."micromark-extension-mdxjs-esm-0.3.1"
       sources."mimic-response-1.0.1"
       sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
@@ -105617,7 +107178,7 @@ in
         ];
       })
       sources."unified-diff-3.1.0"
-      (sources."unified-engine-8.0.0" // {
+      (sources."unified-engine-8.1.0" // {
         dependencies = [
           sources."is-plain-obj-2.1.0"
         ];
@@ -105726,10 +107287,10 @@ in
   textlint-rule-en-max-word-count = nodeEnv.buildNodePackage {
     name = "textlint-rule-en-max-word-count";
     packageName = "textlint-rule-en-max-word-count";
-    version = "1.0.2";
+    version = "1.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-en-max-word-count/-/textlint-rule-en-max-word-count-1.0.2.tgz";
-      sha512 = "ZDjItH8P4EqwpDUjhvuZQHO5mgXxyQruW5YC/h4ogDEJ0uwiPZBo9O74mao7jd8xteG5rOET2h3M05nnWoVg0w==";
+      url = "https://registry.npmjs.org/textlint-rule-en-max-word-count/-/textlint-rule-en-max-word-count-1.1.0.tgz";
+      sha512 = "nDm8b6cN+62P6mdJ81vHJ0K6UYu5oQkkiHhM9XicMRxBoAP6tml4BqeeRtq84UeBfXSf9QcRjI3D5ob1oN8iXA==";
     };
     dependencies = [
       sources."boundary-1.0.1"
@@ -105844,7 +107405,7 @@ in
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
       sources."typedarray-0.0.6"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."unist-util-is-3.0.0"
       sources."unist-util-visit-1.4.1"
       sources."unist-util-visit-parents-2.1.2"
@@ -105897,7 +107458,7 @@ in
       sources."object.assign-4.1.2"
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."which-boxed-primitive-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -106004,7 +107565,7 @@ in
       sources."object.assign-4.1.2"
       sources."string.prototype.trimend-1.0.4"
       sources."string.prototype.trimstart-1.0.4"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."which-boxed-primitive-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -106076,7 +107637,7 @@ in
       sources."@types/debug-4.1.5"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -106111,7 +107672,7 @@ in
       sources."aws4-1.11.0"
       sources."backo2-1.0.2"
       sources."backoff-2.5.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."bcrypt-pbkdf-1.0.2"
@@ -106152,7 +107713,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.9.1"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -106510,10 +108071,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.126.1";
+    version = "0.127.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.126.1.tgz";
-      sha512 = "eOEXnZeE1FDV0XgL1u08auIP13jxdN9LQBAEmlErYzMxtIIfuGIAZbijOyookALUhqVzVOx0Tywj6n192VM+nQ==";
+      url = "https://registry.npmjs.org/three/-/three-0.127.0.tgz";
+      sha512 = "wtgrn+mhYUbobxT7QN3GPdu3SRpSBQvwY6uOzLChWS7QE//f7paDU/+wlzbg+ngeIvBBqjBHSRuywTh8A99Jng==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -106560,7 +108121,7 @@ in
       sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."buffer-crc32-0.2.13"
@@ -106612,8 +108173,8 @@ in
       sources."keypress-0.2.1"
       sources."lodash-4.17.21"
       sources."lru-cache-6.0.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimatch-3.0.4"
       (sources."node-appc-1.1.2" // {
         dependencies = [
@@ -106681,7 +108242,7 @@ in
       sources."asn1-0.2.4"
       sources."assert-plus-0.2.0"
       sources."backoff-2.4.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bigspinner-3.1.0"
       sources."brace-expansion-1.1.11"
@@ -106880,7 +108441,7 @@ in
       sources."ansi-0.3.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chalk-1.1.3"
       sources."colors-1.4.0"
@@ -106997,10 +108558,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.13.2";
+    version = "3.13.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.2.tgz";
-      sha512 = "SbMu4D2Vo95LMC/MetNaso1194M1htEA+JrqE9Hk+G2DhI+itfS9TRu9ZKeCahLDNa/J3n4MqUJ/fOHMzQpRWw==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz";
+      sha512 = "otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -107033,20 +108594,20 @@ in
   ungit = nodeEnv.buildNodePackage {
     name = "ungit";
     packageName = "ungit";
-    version = "1.5.15";
+    version = "1.5.16";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.15.tgz";
-      sha512 = "jisiuRjEd8HfBLQxATHzyWnvSljsKwBs+YEPl50yg91ZQiie7tQWBlw/wKxfFfVzN52HYIqKvOEWYqJYJgpP8A==";
+      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.16.tgz";
+      sha512 = "Hv5QiC0qMJChmDf6s3qwwclL38XQUKVInJaJZiNuIHh6vvO9hjkeoUb7djmGb2F2xxVuU7aOtpbdizfwunzU4A==";
     };
     dependencies = [
       sources."@dabh/diagnostics-2.0.2"
-      sources."@primer/octicons-11.2.0"
+      sources."@primer/octicons-12.1.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/component-emitter-1.2.10"
       sources."@types/cookie-0.4.0"
       sources."@types/cors-2.8.10"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.0"
@@ -107058,7 +108619,7 @@ in
       })
       sources."array-flatten-1.1.1"
       sources."async-3.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-arraybuffer-0.1.4"
       sources."base64id-2.0.0"
       sources."blueimp-md5-2.18.0"
@@ -107095,10 +108656,11 @@ in
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
+      sources."define-lazy-prop-2.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diff-4.0.2"
-      sources."diff2html-3.1.18"
+      sources."diff-5.0.0"
+      sources."diff2html-3.4.2"
       sources."dnd-page-scroll-0.0.4"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
@@ -107106,7 +108668,7 @@ in
       sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."engine.io-4.0.6" // {
+      (sources."engine.io-5.0.0" // {
         dependencies = [
           sources."cookie-0.4.1"
           sources."debug-4.3.2"
@@ -107126,7 +108688,7 @@ in
         ];
       })
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-4.2.0"
+      sources."fecha-4.2.1"
       sources."finalhandler-1.1.2"
       sources."fn.name-1.1.0"
       sources."forwarded-0.1.2"
@@ -107152,12 +108714,12 @@ in
       sources."ini-1.3.8"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-stream-2.0.0"
       sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
-      sources."jquery-3.5.1"
+      sources."jquery-3.6.0"
       sources."jquery-ui-1.12.1"
       sources."json-buffer-3.0.0"
       sources."just-detect-adblock-1.1.0"
@@ -107184,8 +108746,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -107202,7 +108764,7 @@ in
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
       sources."one-time-1.0.0"
-      sources."open-7.3.1"
+      sources."open-8.0.5"
       sources."p-cancelable-1.1.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
@@ -107251,13 +108813,13 @@ in
       sources."signals-1.0.0"
       sources."simple-swizzle-0.2.2"
       sources."snapsvg-0.5.1"
-      (sources."socket.io-3.0.5" // {
+      (sources."socket.io-4.0.1" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."ms-2.1.2"
         ];
       })
-      sources."socket.io-adapter-2.0.3"
+      sources."socket.io-adapter-2.2.0"
       (sources."socket.io-parser-4.0.4" // {
         dependencies = [
           sources."debug-4.3.2"
@@ -107301,7 +108863,7 @@ in
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."ws-7.4.4"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-2.1.2"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
@@ -107319,10 +108881,10 @@ in
   vega-cli = nodeEnv.buildNodePackage {
     name = "vega-cli";
     packageName = "vega-cli";
-    version = "5.20.0";
+    version = "5.20.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.20.0.tgz";
-      sha512 = "B7vV6u/6oXP+6WP91uPLKPmKXXu4YHncxue13mJwz8noRxsEYpeb0VtaCtwy+tf8otdXsM+YuKYzOJbtpuLXYQ==";
+      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.20.2.tgz";
+      sha512 = "dp7CncooBn6zSacyoSRdlm+fS1mQ6PsCT2pFILUgsDzn3e/e56iQA2mjmob8DOqM1n/0xbVziVelH31M8fcYXw==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -107330,7 +108892,7 @@ in
       sources."ansi-styles-4.3.0"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."canvas-2.7.0"
       sources."chownr-1.1.4"
@@ -107362,7 +108924,7 @@ in
       sources."d3-interpolate-2.0.1"
       sources."d3-path-2.0.0"
       sources."d3-quadtree-2.0.0"
-      sources."d3-scale-3.2.3"
+      sources."d3-scale-3.2.4"
       sources."d3-shape-2.1.0"
       sources."d3-time-2.0.0"
       sources."d3-time-format-3.0.0"
@@ -107438,10 +109000,10 @@ in
       sources."tar-4.4.13"
       sources."topojson-client-3.1.0"
       sources."util-deprecate-1.0.2"
-      sources."vega-5.20.0"
+      sources."vega-5.20.2"
       sources."vega-canvas-1.2.6"
       sources."vega-crossfilter-4.0.5"
-      sources."vega-dataflow-5.7.3"
+      sources."vega-dataflow-5.7.4"
       sources."vega-encode-4.8.3"
       sources."vega-event-selector-2.0.6"
       sources."vega-expression-4.0.1"
@@ -107461,10 +109023,10 @@ in
       sources."vega-selections-5.3.0"
       sources."vega-statistics-1.7.9"
       sources."vega-time-2.0.4"
-      sources."vega-transforms-4.9.3"
-      sources."vega-typings-0.20.0"
+      sources."vega-transforms-4.9.4"
+      sources."vega-typings-0.21.0"
       sources."vega-util-1.16.1"
-      sources."vega-view-5.10.0"
+      sources."vega-view-5.10.1"
       sources."vega-view-transforms-4.5.8"
       sources."vega-voronoi-4.1.5"
       sources."vega-wordcloud-4.1.3"
@@ -107478,7 +109040,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-3.1.1"
       (sources."yargs-16.2.0" // {
         dependencies = [
@@ -107533,7 +109095,7 @@ in
       sources."vega-expression-4.0.1"
       sources."vega-util-1.16.1"
       sources."wrap-ansi-7.0.0"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
     ];
@@ -107550,10 +109112,10 @@ in
   vim-language-server = nodeEnv.buildNodePackage {
     name = "vim-language-server";
     packageName = "vim-language-server";
-    version = "2.1.3";
+    version = "2.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.1.3.tgz";
-      sha512 = "BZAMbgNXq9GFg0HrXbQoPs+VLzJasM/UyN34v0wEMOo8jj/h8K1LUKHuHJkGhAEhyq80BwDbByDLrbcu7Sn6Zg==";
+      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.2.1.tgz";
+      sha512 = "AJATzCMaiLr8I3qzjX5OH+G8vOijMWnN/AaS2D92+OM3SsdRHhlX6auNpzqaw8hcW4IbthV6EKtYM4lPqiHDdA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -107731,7 +109293,7 @@ in
       sources."@types/json5-0.0.30"
       sources."@types/mocha-7.0.2"
       sources."@types/node-8.10.66"
-      sources."@types/vscode-1.54.0"
+      sources."@types/vscode-1.55.0"
       sources."@types/yauzl-2.9.1"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
@@ -107782,7 +109344,7 @@ in
       sources."async-each-1.0.3"
       sources."atob-2.1.2"
       sources."azure-devops-node-api-7.2.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -107911,9 +109473,9 @@ in
       })
       sources."dom-serializer-1.2.0"
       sources."domain-browser-1.2.0"
-      sources."domelementtype-2.1.0"
-      sources."domhandler-4.0.0"
-      sources."domutils-2.5.0"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.1.0"
+      sources."domutils-2.5.1"
       (sources."duplexify-3.7.1" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -108421,7 +109983,7 @@ in
       sources."typedarray-0.0.6"
       sources."typescript-3.9.9"
       sources."uc.micro-1.0.6"
-      sources."unbox-primitive-1.0.0"
+      sources."unbox-primitive-1.0.1"
       sources."underscore-1.8.3"
       sources."union-value-1.0.1"
       sources."unique-filename-1.1.1"
@@ -108455,7 +110017,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.3.0"
       sources."vm-browserify-1.1.2"
-      sources."vsce-1.87.0"
+      sources."vsce-1.87.1"
       sources."vscode-debugadapter-testsupport-1.46.0"
       sources."vscode-debugprotocol-1.46.0"
       (sources."watchpack-1.7.5" // {
@@ -108558,7 +110120,7 @@ in
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bl-1.2.3"
@@ -108698,8 +110260,8 @@ in
           sources."supports-color-2.0.0"
         ];
       })
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-1.2.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -108742,7 +110304,7 @@ in
       sources."restore-cursor-2.0.0"
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."seek-bzip-1.0.6"
@@ -108784,7 +110346,7 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.13.2"
+      sources."uglify-js-3.13.3"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
@@ -108843,7 +110405,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-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -108889,7 +110451,7 @@ in
       })
       sources."babel-runtime-6.26.0"
       sources."bail-1.0.5"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -109458,7 +111020,7 @@ in
       sources."run-async-2.4.1"
       sources."rx-lite-4.0.8"
       sources."rx-lite-aggregates-4.0.8"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -109786,13 +111348,13 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/yauzl-2.9.1"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.1"
       sources."addons-linter-2.21.0"
       sources."addons-scanner-utils-4.2.0"
-      sources."adm-zip-0.5.4"
+      sources."adm-zip-0.5.5"
       sources."ajv-6.12.6"
       sources."ajv-merge-patch-4.1.0"
       (sources."ansi-align-3.0.0" // {
@@ -109835,13 +111397,13 @@ in
       sources."atomic-sleep-1.0.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bl-4.1.0"
       sources."bluebird-2.9.34"
       sources."boolbase-1.0.0"
-      (sources."boxen-5.0.0" // {
+      (sources."boxen-5.0.1" // {
         dependencies = [
           sources."type-fest-0.20.2"
         ];
@@ -109925,9 +111487,9 @@ in
       })
       sources."doctrine-3.0.0"
       sources."dom-serializer-1.2.0"
-      sources."domelementtype-2.1.0"
-      sources."domhandler-4.0.0"
-      sources."domutils-2.5.0"
+      sources."domelementtype-2.2.0"
+      sources."domhandler-4.1.0"
+      sources."domutils-2.5.1"
       sources."dot-prop-5.3.0"
       sources."dtrace-provider-0.8.8"
       sources."duplexer3-0.1.4"
@@ -110065,20 +111627,23 @@ in
       sources."is-absolute-0.1.7"
       sources."is-arguments-1.1.0"
       sources."is-arrayish-0.2.1"
+      sources."is-boolean-object-1.1.0"
       sources."is-ci-2.0.0"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.4.0"
       sources."is-mergeable-object-1.1.1"
       sources."is-npm-5.0.0"
+      sources."is-number-object-1.0.4"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
       sources."is-regex-1.1.2"
       sources."is-relative-0.1.3"
       sources."is-stream-2.0.0"
+      sources."is-string-1.0.5"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-wsl-2.2.0"
@@ -110132,6 +111697,7 @@ in
       sources."lighthouse-logger-1.2.0"
       sources."lines-and-columns-1.1.6"
       sources."lodash-4.17.21"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -110142,6 +111708,7 @@ in
       sources."lodash.isplainobject-4.0.6"
       sources."lodash.isstring-4.0.1"
       sources."lodash.once-4.1.1"
+      sources."lodash.truncate-4.4.2"
       sources."lodash.union-4.6.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-6.0.0"
@@ -110154,8 +111721,8 @@ in
       sources."marky-1.2.1"
       sources."mem-5.1.1"
       sources."merge-stream-2.0.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -110287,7 +111854,7 @@ in
       sources."sign-addon-3.3.0"
       sources."signal-exit-3.0.3"
       sources."slice-ansi-4.0.0"
-      sources."sonic-boom-1.4.0"
+      sources."sonic-boom-1.4.1"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.19"
       sources."spawn-sync-1.0.15"
@@ -110315,9 +111882,9 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-7.2.0"
-      (sources."table-6.0.7" // {
+      (sources."table-6.0.9" // {
         dependencies = [
-          sources."ajv-7.2.3"
+          sources."ajv-8.0.5"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -110366,7 +111933,7 @@ in
       sources."xdg-basedir-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."y18n-5.0.5"
+      sources."y18n-5.0.6"
       sources."yallist-4.0.0"
       sources."yargs-16.2.0"
       sources."yargs-parser-20.2.7"
@@ -110391,17 +111958,17 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "5.28.0";
+    version = "5.30.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-5.28.0.tgz";
-      sha512 = "1xllYVmA4dIvRjHzwELgW4KjIU1fW4PEuEnjsylz7k7H5HgPOctIq7W1jrt3sKH9yG5d72//XWzsHhfoWvsQVg==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-5.30.0.tgz";
+      sha512 = "Zr9NIri5yzpfmaMea2lSMV1UygbW0zQsSlGLMgKUm63ACXg6alhd1u4v5UBSBjzYKXJN6BNMGVM7w165e7NxYA==";
     };
     dependencies = [
-      sources."@types/eslint-7.2.7"
+      sources."@types/eslint-7.2.8"
       sources."@types/eslint-scope-3.7.0"
       sources."@types/estree-0.0.46"
       sources."@types/json-schema-7.0.7"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@webassemblyjs/ast-1.11.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.0"
       sources."@webassemblyjs/helper-api-error-1.11.0"
@@ -110424,11 +111991,11 @@ in
       sources."ajv-keywords-3.5.2"
       sources."browserslist-4.16.3"
       sources."buffer-from-1.1.1"
-      sources."caniuse-lite-1.0.30001204"
+      sources."caniuse-lite-1.0.30001207"
       sources."chrome-trace-event-1.0.2"
       sources."colorette-1.2.2"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.3.699"
+      sources."electron-to-chromium-1.3.708"
       sources."enhanced-resolve-5.7.0"
       sources."es-module-lexer-0.4.1"
       sources."escalade-3.1.1"
@@ -110450,8 +112017,8 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."loader-runner-4.2.0"
       sources."merge-stream-2.0.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."neo-async-2.6.2"
       sources."node-releases-1.1.71"
       sources."p-limit-3.1.0"
@@ -110490,23 +112057,23 @@ in
   webpack-cli = nodeEnv.buildNodePackage {
     name = "webpack-cli";
     packageName = "webpack-cli";
-    version = "4.5.0";
+    version = "4.6.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.5.0.tgz";
-      sha512 = "wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q==";
+      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.6.0.tgz";
+      sha512 = "9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA==";
     };
     dependencies = [
       sources."@discoveryjs/json-ext-0.5.2"
-      sources."@webpack-cli/configtest-1.0.1"
-      sources."@webpack-cli/info-1.2.2"
-      sources."@webpack-cli/serve-1.3.0"
+      sources."@webpack-cli/configtest-1.0.2"
+      sources."@webpack-cli/info-1.2.3"
+      sources."@webpack-cli/serve-1.3.1"
       sources."ansi-colors-4.1.1"
       sources."clone-deep-4.0.1"
       sources."colorette-1.2.2"
       sources."commander-7.2.0"
       sources."cross-spawn-7.0.3"
       sources."enquirer-2.3.6"
-      sources."envinfo-7.7.4"
+      sources."envinfo-7.8.1"
       sources."execa-5.0.0"
       sources."fastest-levenshtein-1.0.12"
       sources."find-up-4.1.0"
@@ -110551,7 +112118,6 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "CLI for webpack & friends";
-      homepage = "https://github.com/webpack/webpack-cli#readme";
       license = "MIT";
     };
     production = true;
@@ -110569,7 +112135,7 @@ in
     dependencies = [
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."accepts-1.3.7"
       sources."ajv-6.12.6"
       sources."ajv-errors-1.0.1"
@@ -110595,7 +112161,7 @@ in
       sources."async-each-1.0.3"
       sources."async-limiter-1.0.1"
       sources."atob-2.1.2"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -110850,8 +112416,8 @@ in
       sources."methods-1.1.2"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -111018,7 +112584,7 @@ in
         ];
       })
       sources."sockjs-0.3.21"
-      (sources."sockjs-client-1.5.0" // {
+      (sources."sockjs-client-1.5.1" // {
         dependencies = [
           sources."debug-3.2.7"
           sources."ms-2.1.3"
@@ -111142,10 +112708,10 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "8.1.0";
+    version = "8.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.0.tgz";
-      sha512 = "Soiq8kXI2AZkpw3dSp18u6oU2JonC7UKv3UdXsKOmT1A5QT46ku9+6c0Qy29JDbSavQJNN1/eKGpd3QNw+cZWg==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-8.1.1.tgz";
+      sha512 = "rYM2uzRxrLRpcyPqGceRBDpxxUV8vcDqIKxAUKfcnFpcrPxT5+XvhTxv7XLjo5AvEJFPdAE3zCogG2JVahqgSQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.4"
@@ -111218,10 +112784,10 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.47"
+      sources."@types/node-13.13.48"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       sources."base64-js-1.5.1"
       sources."bencode-2.0.1"
       sources."bep53-range-1.1.0"
@@ -111297,7 +112863,7 @@ in
       })
       sources."core-util-is-1.0.2"
       sources."cpus-1.0.3"
-      sources."create-torrent-4.5.0"
+      sources."create-torrent-4.6.0"
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
       (sources."dlnacasts-0.1.0" // {
@@ -111336,7 +112902,7 @@ in
       sources."ip-set-2.1.0"
       sources."ipaddr.js-2.0.0"
       sources."is-ascii-1.0.0"
-      sources."is-docker-2.1.1"
+      sources."is-docker-2.2.0"
       sources."is-file-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -111346,7 +112912,7 @@ in
       sources."k-rpc-5.1.0"
       sources."k-rpc-socket-1.11.1"
       sources."last-one-wins-1.0.4"
-      (sources."load-ip-set-2.1.2" // {
+      (sources."load-ip-set-2.2.1" // {
         dependencies = [
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
@@ -111376,7 +112942,7 @@ in
       })
       sources."multistream-4.1.0"
       sources."napi-macros-2.0.0"
-      sources."netmask-1.0.6"
+      sources."netmask-2.0.2"
       sources."network-address-1.1.2"
       sources."next-event-1.0.0"
       sources."node-gyp-build-4.2.3"
@@ -111466,7 +113032,7 @@ in
           sources."ms-2.1.2"
         ];
       })
-      sources."torrent-piece-2.0.0"
+      sources."torrent-piece-2.0.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."uint64be-2.0.2"
@@ -111484,10 +113050,10 @@ in
       sources."ut_pex-2.0.1"
       sources."utf-8-validate-5.0.4"
       sources."util-deprecate-1.0.2"
-      sources."utp-native-2.3.0"
+      sources."utp-native-2.4.0"
       sources."videostream-3.2.2"
       sources."vlc-command-1.2.0"
-      (sources."webtorrent-0.116.0" // {
+      (sources."webtorrent-0.116.1" // {
         dependencies = [
           sources."debug-4.3.2"
           sources."decompress-response-6.0.0"
@@ -111564,10 +113130,10 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "0.16.0";
+    version = "0.17.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.16.0.tgz";
-      sha512 = "W+SIUfHRJI97ZGAQZs1uo4keuaRpJip/r5fFPu44ycpY5hZA+yWw1UNzqftApC1QmFH6lwGwQyTZFyDYxGotbw==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.17.0.tgz";
+      sha512 = "jugQKTXkLDMq9J6ZN2hl+pTR2lDdSHV+bb8sCGO7//BSX7HFXlX2C5M4jghFeL4AAodBZ5WEHUzHoI7llm5p6g==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -111644,7 +113210,7 @@ in
       sources."@sindresorhus/is-0.7.0"
       sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.4"
-      sources."@types/node-14.14.35"
+      sources."@types/node-14.14.37"
       sources."@types/normalize-package-data-2.4.0"
       sources."JSONStream-1.3.5"
       sources."aggregate-error-3.1.0"
@@ -111674,7 +113240,7 @@ in
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."axios-0.21.1"
-      sources."balanced-match-1.0.0"
+      sources."balanced-match-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -111688,7 +113254,7 @@ in
       })
       sources."bin-version-check-3.0.0"
       sources."binaryextensions-2.3.0"
-      sources."boolean-3.0.2"
+      sources."boolean-3.0.3"
       (sources."boxen-1.3.0" // {
         dependencies = [
           sources."camelcase-4.1.0"
@@ -111760,7 +113326,7 @@ in
       sources."config-chain-1.1.12"
       sources."configstore-3.1.5"
       sources."copy-descriptor-0.1.1"
-      sources."core-js-3.9.1"
+      sources."core-js-3.10.0"
       sources."core-util-is-1.0.2"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -111858,7 +113424,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."filter-obj-2.0.1"
+      sources."filter-obj-2.0.2"
       sources."find-up-2.1.0"
       sources."find-versions-2.0.0"
       sources."first-chunk-stream-2.0.0"
@@ -111893,7 +113459,7 @@ in
         ];
       })
       sources."glob-to-regexp-0.3.0"
-      (sources."global-agent-2.1.12" // {
+      (sources."global-agent-2.2.0" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
@@ -112074,8 +113640,8 @@ in
       sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."micromatch-3.1.10"
-      sources."mime-db-1.46.0"
-      sources."mime-types-2.1.29"
+      sources."mime-db-1.47.0"
+      sources."mime-types-2.1.30"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
@@ -112244,7 +113810,7 @@ in
       sources."root-check-1.0.0"
       sources."run-async-2.4.1"
       sources."rx-4.1.0"
-      sources."rxjs-6.6.6"
+      sources."rxjs-6.6.7"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
diff --git a/third_party/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix b/third_party/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
index 752fbc039f..6d4fcad097 100644
--- a/third_party/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
+++ b/third_party/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
@@ -4,6 +4,8 @@ buildDunePackage rec {
   pname = "merlin-extend";
   version = "0.6";
 
+  useDune2 = true;
+
   src = fetchurl {
     url = "https://github.com/let-def/merlin-extend/releases/download/v${version}/merlin-extend-v${version}.tbz";
     sha256 = "0hvc4mz92x3rl2dxwrhvhzwl4gilnyvvwcqgr45vmdpyjyp3dwn2";
diff --git a/third_party/nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix b/third_party/nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix
index 9a02f57cc3..f9d37d6b4f 100644
--- a/third_party/nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix
+++ b/third_party/nixpkgs/pkgs/development/ocaml-modules/minisat/default.nix
@@ -2,15 +2,17 @@
 
 buildDunePackage rec {
   pname = "minisat";
-  version = "0.2";
+  version = "0.3";
+
+  useDune2 = true;
 
   minimumOCamlVersion = "4.05";
 
   src = fetchFromGitHub {
     owner  = "c-cube";
     repo   = "ocaml-minisat";
-    rev    = version;
-    sha256 = "1jibylmb1ww0x42n6wl8bdwicaysgxp0ag244x7w5m3jifq3xs6q";
+    rev    = "v${version}";
+    sha256 = "01wggbziqz5x6d7mwdl40sbf6qal7fd853b224zjf9n0kzzsnczh";
   };
 
   meta = {
diff --git a/third_party/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix b/third_party/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
index 1da80a2202..bdbbf1d8c6 100644
--- a/third_party/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/third_party/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, pkg-config, ncurses, ocaml, findlib, ocaml_pcre, camlzip
+{ stdenv, lib, fetchurl, pkg-config, which, ncurses, ocaml, findlib, ocaml_pcre, camlzip
 , gnutls, nettle
 }:
 
@@ -8,14 +8,14 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ocamlnet-${version}";
-  version = "4.1.8";
+  version = "4.1.9";
 
   src = fetchurl {
     url = "http://download.camlcity.org/download/ocamlnet-${version}.tar.gz";
-    sha256 = "1x703mjqsv9nvffnkj5i36ij2s5zfvxxll2z1qj6a7p428b2yfnm";
+    sha256 = "1vlwxjxr946gdl61a1d7yk859cijq45f60dhn54ik3w4g6cx33pr";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config which ];
   buildInputs = [ ncurses ocaml findlib ocaml_pcre camlzip gnutls nettle ];
 
   createFindlibDestdir = true;
diff --git a/third_party/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix b/third_party/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
index 1b8f9d629e..90b469288c 100644
--- a/third_party/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
+++ b/third_party/nixpkgs/pkgs/development/ocaml-modules/sqlite3/default.nix
@@ -1,8 +1,9 @@
-{ lib, fetchurl, sqlite, pkg-config, buildDunePackage }:
+{ lib, fetchurl, sqlite, pkg-config, buildDunePackage, dune-configurator }:
 
 buildDunePackage rec {
   pname = "sqlite3";
   version = "5.0.2";
+  useDune2 = true;
   minimumOCamlVersion = "4.05";
 
   src = fetchurl {
@@ -11,7 +12,7 @@ buildDunePackage rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ sqlite ];
+  buildInputs = [ dune-configurator sqlite ];
 
   meta = with lib; {
     homepage = "http://mmottl.github.io/sqlite3-ocaml/";
diff --git a/third_party/nixpkgs/pkgs/development/perl-modules/Net-CIDR-Lite-prevent-leading-zeroes-ipv4.patch b/third_party/nixpkgs/pkgs/development/perl-modules/Net-CIDR-Lite-prevent-leading-zeroes-ipv4.patch
deleted file mode 100644
index 337111b6c0..0000000000
--- a/third_party/nixpkgs/pkgs/development/perl-modules/Net-CIDR-Lite-prevent-leading-zeroes-ipv4.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 734d31aa2f65b69f5558b9b0dd67af0461ca7f80 Mon Sep 17 00:00:00 2001
-From: Stig Palmquist <stig@stig.io>
-Date: Tue, 30 Mar 2021 12:13:37 +0200
-Subject: [PATCH] Security: Prevent leading zeroes in ipv4 octets
-
-https://blog.urth.org/2021/03/29/security-issues-in-perl-ip-address-distros/
-Related to CVE-2021-28918
----
- Lite.pm  |  2 +-
- t/base.t | 13 ++++++++++++-
- 2 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/Lite.pm b/Lite.pm
-index fd6df73..d44f881 100644
---- a/Lite.pm
-+++ b/Lite.pm
-@@ -181,7 +181,7 @@ sub _pack_ipv4 {
-     my @nums = split /\./, shift(), -1;
-     return unless @nums == 4;
-     for (@nums) {
--        return unless /^\d{1,3}$/ and $_ <= 255;
-+        return unless /^\d{1,3}$/ and !/^0\d{1,2}$/ and $_ <= 255;
-     }
-     pack("CC*", 0, @nums);
- }
-diff --git a/t/base.t b/t/base.t
-index cf32c5e..292456d 100644
---- a/t/base.t
-+++ b/t/base.t
-@@ -8,7 +8,7 @@
- use Test;
- use strict;
- $|++;
--BEGIN { plan tests => 39 };
-+BEGIN { plan tests => 42 };
- use Net::CIDR::Lite;
- ok(1); # If we made it this far, we are ok.
- 
-@@ -133,3 +133,14 @@ ok(join(', ', @list_short_range), '10.0.0.1-2, 10.0.0.5');
- })->list_short_range;
- ok(join(', ', @list_short_range), '10.0.0.250-255, 10.0.1.0-20, 10.0.1.22, 10.0.2.250-255, 10.0.3.0-255, 10.0.4.0-255, 10.0.5.0-8');
- 
-+
-+# Tests for vulnerability: https://blog.urth.org/2021/03/29/security-issues-in-perl-ip-address-distros/
-+eval { Net::CIDR::Lite->new("010.0.0.0/8") };
-+ok($@=~/Can't determine ip format/);
-+
-+my $err_octal = Net::CIDR::Lite->new;
-+eval { $err_octal->add("010.0.0.0/8") };
-+ok($@=~/Can't determine ip format/);
-+
-+eval { $err_octal->add("10.01.0.0/8") };
-+ok($@=~/Can't determine ip format/);
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
index c12285a287..8380832abd 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "HAP-python";
-  version = "3.4.0";
+  version = "3.4.1";
   disabled = pythonOlder "3.5";
 
   # pypi package does not include tests
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "ikalchev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mkrs3fwiyp4am9fx1dnhd9h7rphfwymr46khw40xavrfb5jmsa7";
+    sha256 = "sha256-tZ6Zwlx5J62Xqpxxmt8Phdd9ngtKYhP/p3uor1dRfK8=";
   };
 
   propagatedBuildInputs = [
@@ -58,6 +58,7 @@ buildPythonPackage rec {
     "test_idle_connection_cleanup"
     "test_we_can_start_stop"
     "test_push_event"
+    "test_bridge_run_stop"
   ];
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 8f1b9d2ffc..ac4768c31d 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.4.1";
+  version = "3.5.0";
 
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    sha256 = "31275dcf949c8b00598aaf2b0da65d970a0cba28e7cb45691d5f354b8e82fe85";
+    sha256 = "sha256-QJeb9+iiS4QZ7poOBp5oKD5KuagkG6cfTalbNRwrI1M=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
new file mode 100644
index 0000000000..e724d53bfe
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/aiodiscover/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, async-dns
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, ifaddr
+, pyroute2
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "aiodiscover";
+  version = "1.3.3";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "186agrjx818vn00d3pqlka5ir48rgpbfyn1cifkn9ylsxg9cz3ph";
+  };
+
+  propagatedBuildInputs = [
+    async-dns
+    pyroute2
+    ifaddr
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.py --replace '"pytest-runner>=5.2",' ""
+  '';
+
+  # Tests require access to /etc/resolv.conf
+  # pythonImportsCheck doesn't work as async-dns wants to create its CONFIG_DIR
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python module to discover hosts via ARP and PTR lookup";
+    homepage = "https://github.com/bdraco/aiodiscover";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/async-dns/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/async-dns/default.nix
new file mode 100644
index 0000000000..fdf240f5ba
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/async-dns/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, python
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "async-dns";
+  version = "1.1.9";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "gera2ld";
+    repo = "async_dns";
+    rev = "v${version}";
+    sha256 = "1z8j0s3dwcyavarhx41q75k1cmfzmwiqdh4svv3v15np26cywyag";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/gera2ld/async_dns/pull/22
+    # Can be remove for async-dns>1.1.9
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/gera2ld/async_dns/commit/25fee497aae3bde0ddf9f8804d249a27edbe607e.patch";
+      sha256 = "0w4zlppnp1a2q1wasc95ymqx3djswl32y5nw6fvz3nn8jg4gc743";
+    })
+  ];
+
+  checkPhase = ''
+    export HOME=$TMPDIR
+    # Test needs network access
+    rm tests/test_resolver.py
+    ${python.interpreter} -m unittest
+  '';
+
+  pythonImportsCheck = [ "async_dns" ];
+
+  meta = with lib; {
+    description = "Python DNS library";
+    homepage = "https://github.com/gera2ld/async_dns";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/asyncio-nats-client/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/asyncio-nats-client/default.nix
new file mode 100644
index 0000000000..a7feac7312
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/asyncio-nats-client/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, ed25519
+, fetchFromGitHub
+, nats-server
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "asyncio-nats-client";
+  version = "0.11.4";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = "nats.py";
+    rev = "v${version}";
+    sha256 = "1aj57xi2rj1xswq8air13xdsll1ybpi0nmz5f6jq01azm0zy9xyd";
+  };
+
+  propagatedBuildInputs = [
+    ed25519
+  ];
+
+  checkInputs = [
+    nats-server
+    pytestCheckHook
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=nats --cov-report html" ""
+  '';
+
+  disabledTests = [
+    # RuntimeError: Event loop is closed
+    "test_subscribe_no_echo"
+    "test_reconnect_to_new_server_with_auth"
+  ];
+
+  pythonImportsCheck = [ "nats.aio" ];
+
+  meta = with lib; {
+    description = "Python client for NATS.io";
+    homepage = "https://github.com/nats-io/nats.py";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
index b3b794eb3a..09a4c9460d 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/awesomeversion/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "21.2.3";
+  version = "21.4.0";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "sha256-UQ77ot1JXZZAKD/ijw+FBYJnDLJyD7jLrKANksBIM2Y=";
+    sha256 = "sha256-ulByke1sKVcDdBhAz/fxdNFJ0PSjYVdnBcO+GYEnZUQ=";
   };
 
   postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
index 2f9cd1a0b1..461ce9d90d 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
@@ -44,7 +44,9 @@ buildPythonPackage rec {
 
   # Relax version constraint
   postPatch = ''
-    sed -i 's/coverage < 4/coverage/' setup.py
+    substituteInPlace setup.py \
+      --replace 'coverage < 4' 'coverage' \
+      --replace 'fido2>=0.8.1,<0.9.0' 'fido2>=0.8.1,<1.0.0'
   '';
 
   # Test suite writes files to $HOME/.aws/, or /homeless-shelter if unset
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix
new file mode 100644
index 0000000000..ff26bb6245
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/awslambdaric/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pytestCheckHook, autoconf
+, automake, cmake, gcc, libtool, perl, simplejson }:
+
+buildPythonPackage rec {
+  pname = "awslambdaric";
+  version = "1.0.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "aws";
+    repo = "aws-lambda-python-runtime-interface-client";
+    rev = "v${version}";
+    sha256 = "13v1lsp3lxbqknvlb3gvljjf3wyrx5jg8sf9yfiaj1sm8pb8pmrf";
+  };
+
+  propagatedBuildInputs = [ simplejson ];
+
+  nativeBuildInputs = [ autoconf automake cmake libtool perl ];
+
+  buildInputs = [ gcc ];
+
+  dontUseCmakeConfigure = true;
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "awslambdaric" "runtime_client" ];
+
+  meta = with lib; {
+    description = "AWS Lambda Runtime Interface Client for Python";
+    homepage = "https://github.com/aws/aws-lambda-python-runtime-interface-client";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ austinbutler ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/bokeh/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
index 67d5088bf7..9375aa22a3 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
@@ -33,11 +33,11 @@
 
 buildPythonPackage rec {
   pname = "bokeh";
-  version = "2.3.0";
+  version = "2.2.3";  # update together with panel which is not straightforward
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd417708f90702190222b1068a645acae99e66d4b58d7a336d545aeaa04e9b40";
+    sha256 = "c4a3f97afe5f525019dd58ee8c4e3d43f53fe1b1ac264ccaae9b02c07b2abc17";
   };
 
   patches = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/boto3/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/boto3/default.nix
index bf5604e6d9..9fdd4f35d1 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/boto3/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.17.41"; # N.B: if you change this, change botocore and awscli to a matching version
+  version = "1.17.46"; # N.B: if you change this, change botocore and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-2FsOBdfelhabACS3aykr5isB729cqFOlElBjRrgtKrs=";
+    sha256 = "sha256-Xe4Vv5YepYTWgfrkLFADTIOXF+dFTD2pDLV6bFLpdTI=";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/botocore/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/botocore/default.nix
index a0555d7f1c..7301ef5ae4 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/botocore/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/botocore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.20.41"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.20.46"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-Y/ZQ/Ja84UHoGUp2HmiQ/qL7puASU676Ma5p8UUBXCE=";
+    sha256 = "sha256-ULvD6TQcfaqCGduYw48mASoVHKiPomAUjlvzrcvLlUE=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/buildbot/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
index 3946170c78..52a43d0d11 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k,
   python, twisted, jinja2, zope_interface, sqlalchemy,
-  sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, treq,
+  sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, unidiff, treq,
   txrequests, pypugjs, boto3, moto, mock, python-lz4, setuptoolsTrial,
   isort, pylint, flake8, buildbot-worker, buildbot-pkg, buildbot-plugins,
   parameterized, git, openssh, glibcLocales, ldap3, nixosTests }:
@@ -25,11 +25,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "3.0.2";
+    version = "3.1.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0iywcvq1sx9z5f37pw7g9qqm19fr3bymzawb0i2afm737hxr2xfp";
+      sha256 = "1b9m9l8bz2slkrq0l5z8zd8pd0js5w4k7dam8bdp00kv3aln4si9";
     };
 
     propagatedBuildInputs = [
@@ -44,6 +44,7 @@ let
       autobahn
       pyjwt
       pyyaml
+      unidiff
     ]
       # tls
       ++ twisted.extras.tls;
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix b/third_party/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
index 98666faee4..4c17eb2b6e 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vraxisvgnl9q2rgsmfdh1ywja125s97xqicrdx9mbmrwaka2a40";
+    sha256 = "0bv1qq4cf24cklxfqfnkhjb6w4xqcp3afdcan75n6v7mnwqxyyvr";
   };
 
   postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix b/third_party/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
index b2d7cc38be..042bddc1d1 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0lzlghgsb247w0aw0x7vqw4f980kfbbbvjw48fcq9951qcqkr1sf";
+      sha256 = "1a40fbmbf4gb0hgpr40yr9fb17ynxwi6vj8hvv3mm1fm9nqiggm1";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1sqmmxxi0npjcha3xfyy4ldqaks8hmlhilnyvzsfi56n9s96z1cj";
+      sha256 = "1fcm4h489sb5a1hk82y1a8575s4k6qd82qkfbm2q5gd14bdvysb0";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1w4mf8gi71ycf0m93cv1qqly36xnnrmpangzv0pvx23czs96lcms";
+      sha256 = "1qw9g2maixlcm5l1kpmc721b2p4b7adw5rsimlqcjz96mjya7acj";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1a9ssl0plzrs150n958h7aasm0h64whixckfl1y2y3750qy3vrd2";
+      sha256 = "1q0fm2h4alcck6g8fwwd42jsmkw3gdy9xmw1p78xnvk5dgs6cf9c";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1wcli3vymsqc720jj23ir86lirshb3p8szp7m21lz13g9mpj0idl";
+      sha256 = "0n8q607rl1qs012gpkxpq1n7ny8306n4vr3hjlz96pm60a7j7904";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix b/third_party/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
index d9dea034ea..242849e2c7 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
@@ -7,7 +7,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xvn0m8vijzfrm5sdls3n4ca8iyrnxsprl6dj15f7zy9rms4m47p";
+    sha256 = "0n5p9x9gz276nv1m8vn3d74jfbd35gff332cjxxqvabk06iqcjp6";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/cairocffi/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/cairocffi/default.nix
index 574aeefa7f..5c561af2f1 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/cairocffi/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/cairocffi/default.nix
@@ -12,6 +12,7 @@
 , glibcLocales
 , cairo
 , cffi
+, numpy
 , withXcffib ? false, xcffib
 , python
 , glib
@@ -19,8 +20,8 @@
 }@args:
 
 import ./generic.nix ({
-  version = "1.1.0";
-  sha256 = "1nq53f5jipgy9jgyfxp43j40qfbmrhgn1cj8bp5rrb3liy3wbh7i";
+  version = "1.2.0";
+  sha256 = "sha256-mpebUAxkyBef7ChvM36P5kTsovLNBYYM4LYtJfIuoUA=";
   dlopen_patch = ./dlopen-paths.patch;
   disabled = pythonOlder "3.5";
   inherit withXcffib;
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix b/third_party/nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix
index ee795d80dc..8b674f3baa 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/cairocffi/generic.nix
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     fontDirectories = [ freefont_ttf ];
   };
 
-  checkInputs = [ pytest pytestrunner glibcLocales ];
+  checkInputs = [ numpy pytest pytestrunner glibcLocales ];
   propagatedBuildInputs = [ cairo cffi ] ++ lib.optional withXcffib xcffib;
 
   checkPhase = ''
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/configargparse/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
index 9b6e5da626..5646bca047 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/configargparse/default.nix
@@ -6,14 +6,14 @@
 }:
 
 buildPythonPackage rec {
-  pname = "ConfigArgParse";
-  version = "1.3";
+  pname = "configargparse";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "bw2";
-    repo = pname;
-    rev = version;
-    sha256 = "147x781lgahn9r3gbhayhx1pf0iysf7q1hnr3kypy3p2k9v7a9mh";
+    repo = "ConfigArgParse";
+    rev = "v${version}";
+    sha256 = "0x6ar7d8qhr7gb1s8asbhqymg9jd635h7cyczqrbmvm8689zhj1d";
   };
 
   checkInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/docx2python/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/docx2python/default.nix
new file mode 100644
index 0000000000..b6a63d48b3
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/docx2python/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "docx2python";
+  version = "unstable-2020-11-15";
+
+  # Pypi does not contain tests
+  src = fetchFromGitHub {
+    owner = "ShayHill";
+    repo = pname;
+    rev = "21b2edafc0a01a6cfb73aefc61747a65917e2cad";
+    sha256 = "1nwg17ziwm9a2x7yxsscj8zgc1d383ifsk5w7qa2fws6gf627kyi";
+  };
+
+  preCheck = "cd test"; # Tests require the `test/resources` folder to be accessible
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [ # asserts related to file deletions fail
+    "test_docx2python.py"
+    "test_docx_context.py"
+    "test_google_docs.py"
+  ];
+  pythonImportsCheck = [ "docx2python" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/ShayHill/docx2python";
+    description = "Extract docx headers, footers, (formatted) text, footnotes, endnotes, properties, and images";
+    maintainers = [ maintainers.ivar ];
+    license = licenses.mit;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/fido2/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/fido2/default.nix
index ac8e912ba3..1e1af8e959 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/fido2/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/fido2/default.nix
@@ -9,17 +9,27 @@
 
 buildPythonPackage rec {
   pname = "fido2";
-  version = "0.8.1";
+  version = "0.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hzprnd407g2xh9kyv8j8pq949hwr1snmg3fp65pqfbghzv6i424";
+    hash = "sha256-hoDuJSOOIwdZbrOQCg+MDZzJEYkUbtgDlUTxo6ad/m4=";
   };
 
   propagatedBuildInputs = [ six cryptography ];
 
   checkInputs = [ mock pyfakefs ];
 
+  # Testing with `python setup.py test` doesn't work:
+  # https://github.com/Yubico/python-fido2/issues/108#issuecomment-763513576
+  checkPhase = ''
+    runHook preCheck
+
+    python -m unittest discover -v
+
+    runHook postCheck
+  '';
+
   pythonImportsCheck = [ "fido2" ];
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/fipy/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/fipy/default.nix
index d54379d068..ab670e557d 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/fipy/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/fipy/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , numpy
 , scipy
 , pyamg
@@ -18,41 +17,37 @@
 , fetchurl
 }:
 
-let
-  not_darwin_inputs = lib.optionals (! stdenv.isDarwin) [ gmsh ];
-in
-  buildPythonPackage rec {
-    pname = "fipy";
-    version = "3.4.1";
+buildPythonPackage rec {
+  pname = "fipy";
+  version = "3.4.2.1";
 
-    src = fetchurl {
-      url = "https://github.com/usnistgov/fipy/releases/download/${version}/FiPy-${version}.tar.gz";
-      sha256 = "0078yg96fknqhywn1v26ryc5z47c0j0c1qwz6p8wsjn0wmzggaqk";
-    };
+  src = fetchurl {
+    url = "https://github.com/usnistgov/fipy/releases/download/${version}/FiPy-${version}.tar.gz";
+    sha256 = "0v5yk9b4hksy3176w4vm4gagb9kxqgv75zcyswlqvl371qwy1grk";
+  };
 
-    propagatedBuildInputs = [
-      numpy
-      scipy
-      pyamg
-      matplotlib
-      tkinter
-      mpi4py
-      future
-      scikit-fmm
-      openssh
-    ] ++ lib.optionals isPy27 [ pysparse ] ++ not_darwin_inputs;
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    pyamg
+    matplotlib
+    tkinter
+    mpi4py
+    future
+    scikit-fmm
+    openssh
+  ] ++ lib.optionals isPy27 [ pysparse ]
+  ++ lib.optionals (!stdenv.isDarwin) [ gmsh ];
 
-    checkInputs = not_darwin_inputs;
+  checkPhase = ''
+    export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
+    ${python.interpreter} setup.py test --modules
+  '';
 
-    checkPhase = ''
-      export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
-      ${python.interpreter} setup.py test --modules
-    '';
-
-    meta = with lib; {
-      homepage = "https://www.ctcms.nist.gov/fipy/";
-      description = "A Finite Volume PDE Solver Using Python";
-      license = licenses.free;
-      maintainers = with maintainers; [ costrouc wd15 ];
-    };
-  }
+  meta = with lib; {
+    homepage = "https://www.ctcms.nist.gov/fipy/";
+    description = "A Finite Volume PDE Solver Using Python";
+    license = licenses.free;
+    maintainers = with maintainers; [ costrouc wd15 ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/gdown/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/gdown/default.nix
index 9af1072728..8195bb0d40 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/gdown/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/gdown/default.nix
@@ -5,6 +5,7 @@
 , requests
 , tqdm
 , setuptools
+, six
 }:
 
 buildPythonApplication rec {
@@ -16,7 +17,7 @@ buildPythonApplication rec {
     sha256 = "4b3a1301e57bfd8dce939bf25ef8fbb4b23967fd0f878eede328bdcc41386bac";
   };
 
-  propagatedBuildInputs = [ filelock requests tqdm setuptools ];
+  propagatedBuildInputs = [ filelock requests tqdm setuptools six ];
 
   checkPhase = ''
     $out/bin/gdown --help > /dev/null
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix
index 5c684ca126..c24419b01e 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-api-core/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "1.25.1";
+  version = "1.26.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0e152ec37b8481d1be1258d95844a5a7031cd3d83d7c7046d9e9b2d807042440";
+    sha256 = "sha256-uRQ0XH6iOGEWJpOidwO6uASlVQT35umryv8XTYDfMqw=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
index bb7836ef85..05ea601330 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth-httplib2";
-  version = "0.0.4";
+  version = "0.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fdwnx2yd65f5vhnmn39f4xnxac5j6x0pv2p42qifrdi1z32q2cd";
+    sha256 = "sha256-oHw5/WMr7KzT8HcY39YCG/OWl48DrTzkMh0GABXMMKw=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
index 7fa7200fbb..37752601e2 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-auth-oauthlib/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth-oauthlib";
-  version = "0.4.2";
+  version = "0.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nai9k86g7g7w1pxk105dllncgax8nc5hpmk758b3jnqkb1mpdk5";
+    sha256 = "sha256-CYMsbnUDL5OBjt8a/+R0YSHWQMYlpb75tclq9nbpju4=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-auth/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
index cf456317f8..addd67f9fa 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-auth/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "1.24.0";
+  version = "1.28.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bmdqkyv8k8n6s8dss4zpbcq1cdxwicpb42kwybd02ia85mh43hb";
+    sha256 = "sha256-m9Q20ZqwRwAaE0ByDStinrlt1QMljFJJIewq8+6IqA4=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
index aec3b51acb..bd8bdc0b8c 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-asset/default.nix
@@ -24,6 +24,11 @@ buildPythonPackage rec {
     sha256 = "05q0yaw6b553qmzylr45zin17h8mvi8yyyxhbv3cxa7f0ahviw8w";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace '"google-cloud-org-policy >= 0.1.2, < 0.2.0dev"' '"google-cloud-org-policy >= 0.1.2, < 0.2.1"'
+  '';
+
   propagatedBuildInputs = [
     grpc_google_iam_v1
     google-api-core
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index ccc8aa8397..3b194dae92 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c5669410018eb41cecf6f9c90136d24d0ca9ed141bda8fbb3d52cd3de7162960";
+    sha256 = "sha256-mAZSVxiTiLbMeXR4xLK9+G6ejNyspdFw3tAnZGREpYY=";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
index 44764a4edb..1c70d1dc26 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-core/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01liq4nrd2g3ingg8v0ly4c86db8agnr9h1fiz219c7fz0as0xqj";
+    sha256 = "sha256-xquxhSdUU3n8gu/E3nXOmjdyzK0vxkWtrOWTugl8uwI=";
   };
 
   propagatedBuildInputs = [ google-api-core ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix
index 4308408bc5..0115524d54 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-dataproc/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dataproc";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09e53889a60d84a71c505fe77174d242f00f28f989977aea91f6005cadfa466b";
+    sha256 = "sha256-TADApBkE4DvEFkVFy56Flh2s6XR9uGxzGTf5aspohsA=";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
index bbd51326e0..8a481945ef 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "1.1.0";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2fd6fe25343f7017c22e2733a0358c64b3171edc1669d0c8a1e1f07f86a048c4";
+    sha256 = "sha256-NT/+2mtIaEMyXnmM1fWX4kEV9pb1+aNas2lNobUPR14=";
   };
 
   postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
index 30ef0af76a..f0aac21ee3 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q5s2gpkibnjxal9zrz02jfnazf7rxk0bi0ln5a3di6i47kjnga9";
+    sha256 = "sha256-kG68fG9EqwvE72nzc89MXwEQ/YYEM9tYH6zK2iTCFJo=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
index c266d3e792..55efb8e2c2 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-logging/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-logging";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b5675ce159db4e9c1d755003b76190460766f426a7c3c1519014cdd5ce66e890";
+    sha256 = "sha256-yi3lG7tKi2BkU7vtMIEPsll1UX/JxrNj4G+DJaGQ/+k=";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix
index 60783d3ded..4c63df9f17 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-monitoring/default.nix
@@ -5,6 +5,7 @@
 , google-cloud-testutils
 , libcst
 , proto-plus
+, pandas
 , pytestCheckHook
 , pytest-asyncio
 , mock
@@ -12,16 +13,16 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-monitoring";
-  version = "2.0.1";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "639408cac9660b6c7c2324bf1b2461c9c8e338518b9ebb7ebfac833a61d753eb";
+    sha256 = "sha256-QeMJBJKjW3Zu0p0mSmo5dVOJNwRmmA5FKXRXjCd+zN4=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
 
-  checkInputs = [ google-cloud-testutils mock pytestCheckHook pytest-asyncio ];
+  checkInputs = [ google-cloud-testutils mock pandas pytestCheckHook pytest-asyncio ];
 
   disabledTests = [
     # requires credentials
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
index 10ee559b8f..206e740aa4 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-org-policy/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, google-api-core }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, google-api-core, proto-plus }:
 
 buildPythonPackage rec {
   pname = "google-cloud-org-policy";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ncgcnbvmgqph54yh2pjx2hh82gnkhsrw5yirp4wlf7jclh6j9xh";
+    sha256 = "sha256-tGNwSv+rMnwdP6SvKAqFhjW19ZqIRWsqCNtiozajUqo=";
   };
 
-  propagatedBuildInputs = [ google-api-core ];
+  propagatedBuildInputs = [ google-api-core proto-plus ];
 
   # No tests in repo
   doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index cec1672b76..1a11fcfc73 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff9933573dadb02176dc514662354949d0ea784cc4588d22226c2bf7eb90e797";
+    sha256 = "sha256-5gyqZ+JthC/Qja8ZCX79r4K+evuZY5jPZ73cA6hrgSA=";
   };
 
   propagatedBuildInputs = [ grpc_google_iam_v1 google-api-core libcst proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
index 2a50fd5fb6..47e23c2142 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-secret-manager/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-secret-manager";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4df4b7e3f83bc12d6bd29e69608172586b6ddfc7586dd2a2fd70cc4f18ed05c7";
+    sha256 = "sha256-/ROngNZJld6iA8WjbJLLNzu5vFWPFUNdTikc70kNkQ4=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
index c4849dd2f5..726e48ee19 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "3.0.0";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "060c53bc6f541660a2fe868fd83a695207d4e7b050e04fe103d1e77634b813c7";
+    sha256 = "sha256-XnOCmxQ6YCO1C7RYHzcZY4ihrt2KommWTkTD9y+B5tg=";
   };
 
   propagatedBuildInputs = [ google-cloud-core grpc_google_iam_v1 libcst proto-plus sqlparse ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
index be93593504..2261345f42 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-speech";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "013279a411644545ee0d67a5c077d0f19db58b846d758f36a8cc759f9c9e0a19";
+    sha256 = "sha256-AviYDI68Z11M/rqHgQTQugYNemPTA5nW4aVQTiwMYxI=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix
index 84706a8b5a..40d70176c5 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-storage/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "1.35.1";
+  version = "1.37.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dc076b6af6da991252416639cb93831f8e50c8328d5ac3fb8e03e40cd8de2290";
+    sha256 = "sha256-IAPF7Uc/mzfQRfMMTIvn0w19Dripe80sWLOovFScTMw=";
   };
 
   propagatedBuildInputs = [
@@ -41,6 +41,8 @@ buildPythonPackage rec {
     "get"
     "post"
     "test_build_api_url"
+    "test_ctor_mtls"
+    "test_open"
   ];
 
   pytestFlagsArray = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
index 2380e9183b..62139b81c2 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, google-auth, six }:
+{ lib, buildPythonPackage, fetchPypi, click, google-auth, six }:
 
 buildPythonPackage rec {
   pname = "google-cloud-testutils";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bn1pz00lxym3vkl6l45b3nydpmfdvmylwggh2lspldrxwx39a0k";
+    sha256 = "sha256-ojvnzCO8yxrm3rt0pH3FtRhYtjIvzwNMqS/npKy4lvM=";
   };
 
-  propagatedBuildInputs = [ google-auth six ];
+  propagatedBuildInputs = [ click google-auth six ];
 
   # does not contain tests
   doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
index 3c84c21344..ab4415e341 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17igfwh34369gkvsbrm46j1ii61i6268wg2g2dl9c65nf9z3kgfb";
+    sha256 = "sha256-zzssVnXA1xe3270yEOREJ9GdmyRPjV1F4EBelf9AQ/c=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix
index 2b0ac55fa2..a884919c7e 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-translate/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "3.0.2";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s2gvlzfqd2gsrzaz7yl9q8s1k03dlsjahgg95s017vlcn21d0v1";
+    sha256 = "sha256-zVRD2lWRaKtSlZn84Rqpj+a1OT7Wcak524TKsBctueE=";
   };
 
   propagatedBuildInputs = [ google-api-core google-cloud-core libcst proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
index 26e3320a5c..f56b00af0a 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yhmizig41ymr2dz0i6ccrwszp0ivyykmq11vqxp82l9ncjima82";
+    sha256 = "sha256-gn/KWf3A4SkTqt9rqwYcsaxvfKXPvb7DXJ+zryGjWIA=";
   };
 
   propagatedBuildInputs = [ google-api-core proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix
index b4e579c085..5857de341d 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-vision/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9a205be275739c141873fa9fbd7c3f9ec6170972c85d5c75e9b4c53b5db839a3";
+    sha256 = "sha256-6XYHADzyk0/WSGk9wni9bOtVURJ+U2Eve8LAh0Eg7KI=";
   };
 
   propagatedBuildInputs = [ libcst google-api-core proto-plus];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
index ac91ab85bd..971f5cce90 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14sky9bkl00n65ksig3f6psm31pkmkvlcprlk6s9if470j40zrhx";
+    sha256 = "sha256-lrMnp9jVndz0C8VdreVudYdwh7zSdRniPHYm9BNdjak=";
   };
 
   propagatedBuildInputs = [ google-api-core libcst proto-plus ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix
index 267e0e5f08..1b54d64f1a 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/googleapis-common-protos/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "googleapis-common-protos";
-  version = "1.52.0";
+  version = "1.53.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0lakcsd35qm5x4visvw6z5f1niasv9a0mjyf2bd98wqi0z41c1sn";
+    sha256 = "sha256-qI7okDqgqB9sPOwtXPYtPIqmfAZDmwSWtJBI+xhU6/Q=";
   };
 
   propagatedBuildInputs = [ grpc protobuf ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/gssapi/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
index c8149a5fed..9a1d54e6b5 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
@@ -17,20 +17,20 @@
 
 buildPythonPackage rec {
   pname = "gssapi";
-  version = "1.6.10";
+  version = "1.6.12";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pythongssapi";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "11w8z9ik6zzv3pw3319mz91cgbfkgx0mffxbapqnhilzij2jad4q";
+    sha256 = "sha256-x86/KMcXChPLzoCqR9xwemusWktf/seHLQmEKLco3GQ=";
   };
 
   # It's used to locate headers
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "get_output('krb5-config gssapi --prefix')" "'${lib.getDev krb5Full}'"
+      --replace 'get_output(f"{kc} gssapi --prefix")' '"${lib.getDev krb5Full}"'
   '';
 
   nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/hetzner/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
index 9b89567d8e..4264183e5f 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/hetzner/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "hetzner";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     repo = "hetzner";
     owner = "aszlig";
     rev = "v${version}";
-    sha256 = "152fklxff08s71v0b78yp5ajwpqyszm3sd7j0qsrwa2x9ik4968h";
+    sha256 = "0nhm7j2y4rgmrl0c1rklg982qllp7fky34dchqwd4czbsdnv9j7a";
   };
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/holidays/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/holidays/default.nix
index 3ac51ac050..fe362fa86d 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/holidays/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/holidays/default.nix
@@ -1,32 +1,25 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , convertdate
 , dateutil
+, fetchPypi
 , hijri-converter
 , korean-lunar-calendar
+, pytestCheckHook
+, pythonOlder
 , six
-, python
-, flake8
 }:
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.10.5.2";
+  version = "0.11.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0g4hqbb94cwxlcwsjzrzxzlann1ks2r4mgnfzqz74a2rg1nih5zd";
+    sha256 = "sha256-f6/YRvZ/Drfh+cGcOPSnlnvweu1d7S3XqKovk3sOoBs=";
   };
 
-  postPatch = ''
-    # ignore too long line issues
-    # https://github.com/dr-prodigy/python-holidays/issues/423
-    substituteInPlace tests.py \
-      --replace "flake8.get_style_guide(ignore=[" "flake8.get_style_guide(ignore=['E501', "
-  '';
-
-
   propagatedBuildInputs = [
     convertdate
     dateutil
@@ -36,13 +29,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    flake8
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    ${python.interpreter} -m unittest
-  '';
-
   pythonImportsCheck = [ "holidays" ];
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/homepluscontrol/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/homepluscontrol/default.nix
new file mode 100644
index 0000000000..680c4a5a72
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/homepluscontrol/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, aiohttp
+, aioresponses
+, buildPythonPackage
+, fetchFromGitHub
+, pyjwt
+, pytestCheckHook
+, pythonOlder
+, yarl
+}:
+
+buildPythonPackage rec {
+  pname = "homepluscontrol";
+  version = "0.0.5";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "chemaaa";
+    repo = pname;
+    rev = version;
+    sha256 = "1nd3a7nhh1xb70cdh2h2bimwbffvpc3457smyzr9fqkjwfbcrr93";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    pyjwt
+    yarl
+  ];
+
+  checkInputs = [
+    aioresponses
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "homepluscontrol" ];
+
+  meta = with lib; {
+    description = "Python API to interact with the Legrand Eliot Home and Control";
+    homepage = "https://github.com/chemaaa/homepluscontrol";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
index ca91ad954a..0d1fb08e2a 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
@@ -19,11 +19,11 @@
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "1.9.9";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a1614cbf35499d833e07699ddfd344764f86959fd5535aa9ce1203f57a77f970";
+    sha256 = "515e6646a2b917c15f2241670d21f14a014b9c67dc509aef4d4aca5a59cdda65";
   };
 
   propagatedBuildInputs = [
@@ -52,7 +52,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A Python and Command-Line Interface to Archive.org";
     homepage = "https://github.com/jjjake/internetarchive";
-    license = licenses.agpl3;
+    changelog = "https://github.com/jjjake/internetarchive/raw/v${version}/HISTORY.rst";
+    license = licenses.agpl3Plus;
     maintainers = [ maintainers.marsam ];
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
index a95a890742..d8996a153e 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
@@ -1,28 +1,36 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, regex
+  # Test inputs
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "lark-parser";
-  version = "0.8.8";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = version;
-    sha256 = "1q2dvkkfx9dvag5v5ps0ki4avh7i003gn9sj30jy1rsv1bg4y2mb";
+    sha256 = "1v1piaxpz4780km2z5i6sr9ygi9wpn09yyh999b3f4y0dcz20pbd";
   };
 
-  # tests of Nearley support require js2py
-  preCheck = ''
-    rm -r tests/test_nearley
-  '';
+  propagatedBuildInputs = [ regex ];
 
-  meta = {
+  checkInputs = [ pytestCheckHook ];
+  disabledTestPaths = [
+    "tests/test_nearley" # requires Js2Py package (not in nixpkgs)
+  ];
+  disabledTests = [
+    "test_override_rule"  # has issue with file access paths
+  ];
+
+  meta = with lib; {
     description = "A modern parsing library for Python, implementing Earley & LALR(1) and an easy interface";
     homepage = "https://github.com/lark-parser/lark";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ fridh ];
+    license = licenses.mit;
+    maintainers = with maintainers; [ fridh drewrisinger ];
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/localimport/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/localimport/default.nix
new file mode 100644
index 0000000000..3c41618d5b
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/localimport/default.nix
@@ -0,0 +1,23 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "localimport";
+  version = "1.7.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-p7ACOzJRwH9hICMcxtVt/r+twEoFsDxPKGuarFnFIbo=";
+  };
+
+  pythonImportsCheck = [ "localimport" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/NiklasRosenstein/py-localimport";
+    description = "Isolated import of Python modules";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/makefun/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/makefun/default.nix
new file mode 100644
index 0000000000..1f5596a46c
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/makefun/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "makefun";
+  version = "1.11.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-2qNQpILtWLVyREPGUUMhkem5ewyDdDh50JExccaigIU=";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  # Disabling tests for now due to various (transitive) dependencies on modules
+  # from @smarie which are, as of yet, not part of nixpkgs. Also introduces
+  # a tricky dependency: makefun tests depend on pytest-cases, installing
+  # pytest-cases depends on makefun.
+  doCheck = false;
+
+  pythonImportsCheck = [ "makefun" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/smarie/python-makefun";
+    description = "Small library to dynamically create python functions";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/nats-python/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/nats-python/default.nix
new file mode 100644
index 0000000000..5bf5b2a6d2
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/nats-python/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "nats-python";
+  version = "0.8.0";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "Gr1N";
+    repo = "nats-python";
+    rev = version;
+    sha256 = "1j7skyxldir3mphvnsyhjxmf3cimv4h7n5v58jl2gff4yd0hdw7g";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  patches = [
+    # Switch to poetry-core, https://github.com/Gr1N/nats-python/pull/19
+    (fetchpatch {
+      name = "use-poetry-core.patch";
+      url = "https://github.com/Gr1N/nats-python/commit/71b25b324212dccd7fc06ba3914491adba22e83f.patch";
+      sha256 = "1fip1qpzk2ka7qgkrdpdr6vnrnb1p8cwapa51xp0h26nm7yis1gl";
+    })
+  ];
+
+  # Tests require a running NATS server
+  doCheck = false;
+
+  pythonImportsCheck = [ "pynats" ];
+
+  meta = with lib; {
+    description = "Python client for NATS messaging system";
+    homepage = "https://github.com/Gr1N/nats-python";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/nodepy-runtime/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/nodepy-runtime/default.nix
new file mode 100644
index 0000000000..5be806e4ce
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/nodepy-runtime/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, localimport
+, pathlib2
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "nodepy-runtime";
+  version = "2.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-6tSsD76EpCZxkdulv1BcUZtIXGWLG6PuII25J8STygE=";
+  };
+
+  propagatedBuildInputs = [
+    localimport
+    pathlib2
+    six
+  ];
+
+  pythonImportsCheck = [
+    "nodepy"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nodepy/nodepy";
+    description = "Runtime for Python inspired by Node.JS";
+    longDescription = ''
+      Node.py is a Python runtime and package manager compatible with CPython
+      2.7 and 3.3 – 3.6. It provides a separate import mechanism for modules
+      inspired by Node.js, bringing dependency management and ease of deployment
+      for Python applications up to par with other languages without virtual
+      environments.
+
+      Node.py comes with a built-in package manager that builds on Pip for
+      standard Python dependencies but also adds the capability to install
+      packages that are specifically developed for Node.py. To install the
+      dependencies of the package manager you must specify the [pm] install
+      extra.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/openhomedevice/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/openhomedevice/default.nix
new file mode 100644
index 0000000000..625980b3b9
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/openhomedevice/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, async-upnp-client
+, buildPythonPackage
+, fetchFromGitHub
+, lxml
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "openhomedevice";
+  version = "1.0.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "bazwilliams";
+    repo = pname;
+    rev = version;
+    sha256 = "04qdlyzc8xsk7qxyn9l59pbwnlw49zknw0r5lqwx402va12g4ra0";
+  };
+
+  propagatedBuildInputs = [
+    async-upnp-client
+    lxml
+  ];
+
+  # Tests are currently outdated
+  # https://github.com/bazwilliams/openhomedevice/issues/20
+  doCheck = false;
+  pythonImportsCheck = [ "openhomedevice" ];
+
+  meta = with lib; {
+    description = "Python module to access Linn Ds and Openhome devices";
+    homepage = "https://github.com/bazwilliams/openhomedevice";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/pubnub/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
index 8c9c0ea004..c2f1a9fb34 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/pubnub/default.nix
@@ -13,16 +13,17 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "4.8.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "python";
     rev = "v${version}";
-    sha256 = "16wjal95042kh5fxhvji0rwmw892pacqcnyms520mw15wcwilqir";
+    sha256 = "sha256-ir8f8A6XuN1ZQIYQbArChLzTlYu4ZKpkoOXQtSLOvKg=";
   };
 
   propagatedBuildInputs = [
+    aiohttp
     cbor2
     pycryptodomex
     requests
@@ -30,19 +31,15 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    aiohttp
-    pycryptodomex
     pytest-asyncio
     pytestCheckHook
     pytest-vcr
-
   ];
 
-  # Some tests don't pass with recent releases of tornado/twisted
-  pytestFlagsArray = [
-    "--ignore tests/integrational"
-    "--ignore tests/manual/asyncio"
-    "--ignore tests/manual/tornado/test_reconnections.py"
+  # Some tests don't pass with recent releases of twisted
+  disabledTestPaths = [
+    "tests/integrational"
+    "tests/manual/asyncio"
   ];
 
   pythonImportsCheck = [ "pubnub" ];
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
index cbf96f11a1..cc68d83d02 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "9.1.1";
+  version = "9.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-q52h0u9CSx/HVfZDb1RaVgVuxt4kB16T82nqyOuCGDc=";
+    sha256 = "sha256-kHZWzqRtOdDpPsgVl5V470+29lX9i/TojmQh/NeCToU=";
   };
 
   disabled = !isPy3k;
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
index 76f2e9a933..9d524bfe94 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/pymodbus/default.nix
@@ -1,12 +1,15 @@
 { lib
+, aiohttp
 , asynctest
 , buildPythonPackage
+, click
 , fetchFromGitHub
 , mock
+, prompt_toolkit
+, pygments
 , pyserial
 , pyserial-asyncio
 , pytestCheckHook
-, pythonOlder
 , redis
 , sqlalchemy
 , tornado
@@ -15,17 +18,21 @@
 
 buildPythonPackage rec {
   pname = "pymodbus";
-  version = "2.4.0";
+  version = "2.5.1";
 
   src = fetchFromGitHub {
     owner = "riptideio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x0dv02shcc2yxxm9kvcbhip111sna74dvcfssxdzzy967vnq76v";
+    sha256 = "sha256-b85jfBZfMZtqtmID+tGBgOe9o0BbmBH83UV71lYAI5c=";
   };
 
   # Twisted asynchronous version is not supported due to a missing dependency
   propagatedBuildInputs = [
+    aiohttp
+    click
+    prompt_toolkit
+    pygments
     pyserial
     pyserial-asyncio
     tornado
@@ -34,11 +41,9 @@ buildPythonPackage rec {
   checkInputs = [
     asynctest
     mock
-    pyserial-asyncio
     pytestCheckHook
     redis
     sqlalchemy
-    tornado
     twisted
   ];
 
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix
index 626f55fc92..a3517ea87e 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/pysmappee/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "pysmappee";
-  version = "0.2.18";
+  version = "0.2.23";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "smappee";
     repo = pname;
     rev = version;
-    sha256 = "sha256-DnRtKr8aGZ6rcN/wTpcFNaI+EJm07nObfWyBpLkQF38=";
+    sha256 = "sha256-vxCZzkngYnc+hD3gT1x7qAQTFjpmmgRU5F6cusNDNgk=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/pytest-raises/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/pytest-raises/default.nix
new file mode 100644
index 0000000000..7891437909
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/pytest-raises/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-raises";
+  version = "0.11";
+
+  src = fetchFromGitHub {
+    owner = "Lemmons";
+    repo = pname;
+    rev = version;
+    sha256 = "0gbb4kml2qv7flp66i73mgb4qihdaybb6c96b5dw3mhydhymcsy2";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "pytest_raises" ];
+
+  meta = with lib; {
+    description = "An implementation of pytest.raises as a pytest.mark fixture";
+    homepage = "https://github.com/Lemmons/pytest-raises";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/pytube/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/pytube/default.nix
index f47e6af16c..9f32da55ff 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/pytube/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/pytube/default.nix
@@ -2,13 +2,12 @@
 , buildPythonPackage
 , pythonOlder
 , fetchFromGitHub
-, typing-extensions
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pytube";
-  version = "10.6.1";
+  version = "10.7.1";
 
   disabled = pythonOlder "3.6";
 
@@ -16,7 +15,7 @@ buildPythonPackage rec {
     owner = "pytube";
     repo = "pytube";
     rev = "v${version}";
-    sha256 = "sha256-b0tN4m3/+K243zQ7L4wW4crk9r69Tj64is6C4I5oFZU=";
+    sha256 = "sha256-a9MYEQFJXfPXYkWiuZkjt/PGs73Dm5614/Xvv6Nn8RA=";
   };
 
   checkInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/pywebview/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
index 545fb23673..a020517dcc 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
@@ -1,25 +1,53 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, importlib-resources, pytest, xvfb_run }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, importlib-resources
+, pyqtwebengine
+, pytest
+, pythonOlder
+, qt5
+, xvfb_run
+}:
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "3.3.1";
+  version = "3.4";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "r0x0r";
     repo = "pywebview";
     rev = version;
-    sha256 = "015z7n0hdgkzn0p7aw1xsv6lwc260p8q67jx0zyd1zghnwyj8k79";
+    sha256 = "sha256-3JHwtw8oReolEl4k8cdt7GCVGNkfWWJN6EnZYHxzDO8=";
   };
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+  nativeBuildInputs = [
+    qt5.wrapQtAppsHook
+  ];
 
-  checkInputs = [ pytest xvfb_run ];
+  propagatedBuildInputs = [
+    pyqtwebengine
+  ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+
+  checkInputs = [
+    pytest
+    xvfb_run
+  ];
 
   checkPhase = ''
+    # Cannot create directory /homeless-shelter/.... Error: FILE_ERROR_ACCESS_DENIED
+    export HOME=$TMPDIR
+    # QStandardPaths: XDG_RUNTIME_DIR not set
+    export XDG_RUNTIME_DIR=$HOME/xdg-runtime-dir
+
     pushd tests
+    substituteInPlace run.sh \
+      --replace "PYTHONPATH=.." "PYTHONPATH=$PYTHONPATH" \
+      --replace "pywebviewtest test_js_api.py::test_concurrent ''${PYTEST_OPTIONS}" "# skip flaky test_js_api.py::test_concurrent"
+
     patchShebangs run.sh
+    wrapQtApp run.sh
+
     xvfb-run -s '-screen 0 800x600x24' ./run.sh
     popd
   '';
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
index a2e92283dc..3267b0a786 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
@@ -1,4 +1,5 @@
-{ lib, buildPythonPackage, fetchPypi, python, requests }:
+{ lib, buildPythonPackage, fetchPypi, python, requests, six }:
+
 with lib;
 buildPythonPackage rec {
   pname = "requests-aws4auth";
@@ -9,7 +10,7 @@ buildPythonPackage rec {
     sha256 = "9a4a5f4a61c49f098f5f669410308ac5b0ea2682fd511ee3a4f9ff73b5bb275a";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests six ];
 
   # pypi package no longer contains tests
   doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/riprova/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/riprova/default.nix
new file mode 100644
index 0000000000..adf3272089
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/riprova/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec{
+  pname = "riprova";
+  version = "0.2.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "04drdvjjbh370csv2vb5zamg2aanxqkfm6w361qkybnra4g4g0dz";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  # PyPI archive doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "riprova" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/h2non/riprova";
+    description = "Small and versatile library to retry failed operations using different backoff strategies";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmilata ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/ronin/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/ronin/default.nix
new file mode 100644
index 0000000000..c9b0a0d256
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/ronin/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, blessings
+, colorama
+, glob2
+}:
+
+buildPythonPackage rec {
+  pname = "ronin";
+  version = "1.1.1";
+
+  src = fetchPypi {
+    inherit version pname;
+    hash = "sha256-5gZ8S0NR4JzKBIdi/xYtVmFg9ObbCSkT7sz+OKWnK/U=";
+  };
+
+  propagatedBuildInputs = [
+    blessings
+    colorama
+    glob2
+  ];
+
+  pythonImportsCheck = [
+    "ronin"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tliron/ronin/";
+    description = "A straightforward but powerful build system based on Ninja and Python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
index 8364075243..fc675279a4 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/sagemaker/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.32.0";
+  version = "2.33.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gwymCOwmA++FCy0Zl+MxPMbPp+kmNFpx9Azuc34m+J0=";
+    sha256 = "sha256-0l8xwZ10zQb+LnV/hjYoSSgN/TGpVdzdXeSfnEyf0J0=";
   };
 
   pythonImportsCheck = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
new file mode 100644
index 0000000000..100c487ace
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "screenlogicpy";
+  version = "0.3.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0gn2mf2n2g1ffdbijrydgb7dgd60lkvckblx6s86kxlkrp1wqgrq";
+  };
+
+  # Project doesn't publish tests
+  # https://github.com/dieselrabbit/screenlogicpy/issues/8
+  doCheck = false;
+  pythonImportsCheck = [ "screenlogicpy" ];
+
+  meta = with lib; {
+    description = "Python interface for Pentair Screenlogic devices";
+    homepage = "https://github.com/dieselrabbit/screenlogicpy";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/smartypants/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
index d1e11e30d6..ec41c8a32a 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/smartypants/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchhg
+, fetchFromGitHub
 , isPyPy
 }:
 
@@ -9,15 +9,21 @@ buildPythonPackage rec {
   pname = "smartypants";
   disabled = isPyPy;
 
-  src = fetchhg {
-    url = "https://bitbucket.org/livibetter/smartypants.py";
+  src = fetchFromGitHub {
+    owner = "leohemsted";
+    repo = "smartypants.py";
     rev = "v${version}";
     sha256 = "1cmzz44d2hm6y8jj2xcq1wfr26760gi7iq92ha8xbhb1axzd7nq6";
+    # remove this file and the name on the next version update
+    extraPostFetch = ''
+      cp ${./hgtags} "$out"/.hgtags
+    '';
+    name = "hg-archive";
   };
 
   meta = with lib; {
     description = "Python with the SmartyPants";
-    homepage = "https://bitbucket.org/livibetter/smartypants.py";
+    homepage = "https://github.com/leohemsted/smartypants.py";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/smartypants/hgtags b/third_party/nixpkgs/pkgs/development/python-modules/smartypants/hgtags
new file mode 100644
index 0000000000..522ca8d2c0
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/smartypants/hgtags
@@ -0,0 +1,17 @@
+47e996532eff9d3bb2c7048aca37d5fd1028e706 v1.5_1.2
+4ff48eba1d3d37d708005e465cf701b63eb68fd3 v1.5_1.1
+6ba7f3a14ff77e4e9bf9918413b1710c33deae4d v1.5_1.3.1
+71006a014216defb21e4db6e03434d289564ea60 v1.5_1.6
+90950ff693122f80710974abc0f2be64d4105e84 v1.5_1.3
+a6ecae6541d64f5b12c7b788c65362b0c012278d v1.5_1.0
+eed4a8a16f116f98e8280dc79128845020bbe766 v1.5_1.5
+f9a62f541f19ead9be4c3be896b64d1caa0b524c v1.5_1.4
+fc0bee49a07daf05f034560cfef81a8a8d034d1f v1.5_1.7
+096ed5f806b6dbc473fae1848643cf45005b9bf1 v1.7.0
+aaeb8099a24ad7db3f36ebe71ef326d6377730aa v1.7.1
+fd8ccc937af7280db4e581b2eb1354245f4672ab v1.8.0
+7839b0eab3e9daf5b346edfa5c54f3cc46fc202a v1.8.1
+6140b78317beabb6e49cd91b35a779ccb0af7327 v1.8.2
+c3b1c83c5ddada685b421b8f82f7e92c794bf2f6 v1.8.3
+460c1add9b9f89831e1ab965f1e1c31325f6e72d v1.8.4
+78165f4976299c37d6e3dd5463adcd61f9cb2b75 v1.8.5
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/solo-python/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
index 7254664200..8d84ce34eb 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
@@ -60,5 +60,8 @@
     homepage = "https://github.com/solokeys/solo-python";
     maintainers = with maintainers; [ wucke13 ];
     license = with licenses; [ asl20 mit ];
+    # solo-python v0.0.27 does not support fido2 >= v0.9
+    # https://github.com/solokeys/solo-python/issues/110
+    broken = true;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/transitions/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/transitions/default.nix
index 013cf73ee1..c469875728 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/transitions/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/transitions/default.nix
@@ -7,15 +7,16 @@
 , mock
 , graphviz
 , pycodestyle
+, fontconfig
 }:
 
 buildPythonPackage rec {
   pname = "transitions";
-  version = "0.8.7";
+  version = "0.8.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c60ec0828cd037820726283cad5d4d77a5e31514e058b51250420e9873e9bc7";
+    sha256 = "sha256-56hrMaFhp2Ez8Ymzrp2tJ1WoDqTB4O7hgFZI0CH7Z30=";
   };
 
   propagatedBuildInputs = [
@@ -30,10 +31,9 @@ buildPythonPackage rec {
     pycodestyle
   ];
 
-  disabledTests = [
-    # Fontconfig error: Cannot load default config file
-    "test_diagram"
-  ];
+  preCheck = ''
+    export FONTCONFIG_FILE=${fontconfig.out}/etc/fonts/fonts.conf
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/pytransitions/transitions";
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
index 86d405a33e..340a407ab3 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/wakeonlan/default.nix
@@ -1,26 +1,45 @@
-{ lib, fetchPypi, buildPythonPackage, setuptools_scm, pytest, mock }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, poetry-core
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "wakeonlan";
-  version = "1.1.6";
+  version = "2.0.0";
+  disabled = pythonOlder "3.6";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5e6013a17004809e676c150689abd94bcc0f12a37ad3fbce1f6270968f95ffa9";
+  src = fetchFromGitHub {
+    owner = "remcohaszing";
+    repo = "pywakeonlan";
+    rev = version;
+    sha256 = "0p9jyiv0adcymbnmbay72g9phlbhsr4kmrwxscbdjq81gcmxsi0y";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "setuptools-scm ~= 1.15.7" "setuptools-scm"
-  '';
+  nativeBuildInputs = [
+    poetry-core
+  ];
 
-  checkInputs = [ pytest mock ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  nativeBuildInputs = [ setuptools_scm ];
+  patches = [
+    # Switch to poetry-core, https://github.com/remcohaszing/pywakeonlan/pull/19
+    (fetchpatch {
+      name = "switch-to-poetry-core.patch";
+      url = "https://github.com/remcohaszing/pywakeonlan/commit/6aa5050ed94ef718dfcd0b946546b6a738f47ee3.patch";
+      sha256 = "1xzj2464ziwm7bp05bzbjwjp9whmgp1py3isr41d92qvnil86vm6";
+    })
+  ];
 
-  checkPhase = ''
-    py.test
-  '';
+  pytestFlagsArray = [ "test_wakeonlan.py" ];
+
+  pythonImportsCheck = [ "wakeonlan" ];
 
   meta = with lib; {
     description = "A small python module for wake on lan";
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/xknx/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/xknx/default.nix
index 8ad4df2620..a181a67418 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/xknx/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/xknx/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "xknx";
-  version = "0.17.5";
+  version = "0.18.0";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "XKNX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-oLm1Bh58mKwbQf9FloqEnypzANikxgdFpAB99h/Mb9U=";
+    sha256 = "sha256-8g8DrFvhecdPsfiw+uKnfJOrLQeuFUziK2Jl3xKmrf4=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/yalexs/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
new file mode 100644
index 0000000000..c65c88b88d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/python-modules/yalexs/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, aiofiles
+, aiohttp
+, aioresponses
+, aiounittest
+, asynctest
+, buildPythonPackage
+, fetchFromGitHub
+, pubnub
+, pytestCheckHook
+, python-dateutil
+, pythonOlder
+, requests
+, requests-mock
+}:
+
+buildPythonPackage rec {
+  pname = "yalexs";
+  version = "1.1.10";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1qmxiafqmh51i3l30pajaqj5h0kziq4d37fn6hl58429bb85dpp9";
+  };
+
+  propagatedBuildInputs = [
+    aiofiles
+    aiohttp
+    pubnub
+    python-dateutil
+    requests
+  ];
+
+  checkInputs = [
+    aioresponses
+    aiounittest
+    asynctest
+    pytestCheckHook
+    requests-mock
+  ];
+
+  postPatch = ''
+    # Not used requirement
+    substituteInPlace setup.py --replace '"vol",' ""
+  '';
+
+  pythonImportsCheck = [ "yalexs" ];
+
+  meta = with lib; {
+    description = "Python API for Yale Access (formerly August) Smart Lock and Doorbell";
+    homepage = "https://github.com/bdraco/yalexs";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix b/third_party/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
index f84db4ff62..1f211cd287 100644
--- a/third_party/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/third_party/nixpkgs/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "0.15.0";
+  version = "0.15.1";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-pVQqoMvuuFc/1QNG5z/AspGlgIGPi9aqjZ3/3eVNhis=";
+    sha256 = "sha256-W/eZubJ/SNLBya1S6wLUwTwZCUD+wCQ5FAuNcSpl+9Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/development/ruby-modules/bundix/default.nix b/third_party/nixpkgs/pkgs/development/ruby-modules/bundix/default.nix
index 4eb06f76ab..17f5d6553f 100644
--- a/third_party/nixpkgs/pkgs/development/ruby-modules/bundix/default.nix
+++ b/third_party/nixpkgs/pkgs/development/ruby-modules/bundix/default.nix
@@ -38,7 +38,7 @@ buildRubyGem rec {
     '';
     homepage = "https://github.com/manveru/bundix";
     license = "MIT";
-    maintainers = with lib.maintainers; [ manveru zimbatm ];
+    maintainers = with lib.maintainers; [ manveru marsam zimbatm ];
     platforms = lib.platforms.all;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix b/third_party/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
index 3f1c2190a3..5ca2612cc6 100644
--- a/third_party/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/third_party/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
@@ -25,7 +25,7 @@
 , cairo, re2, rake, gobject-introspection, gdk-pixbuf, zeromq, czmq, graphicsmagick, libcxx
 , file, libvirt, glib, vips, taglib, libopus, linux-pam, libidn, protobuf, fribidi, harfbuzz
 , bison, flex, pango, python3, patchelf, binutils, freetds, wrapGAppsHook, atk
-, bundler, libsass, libselinux ? null, libsepol ? null
+, bundler, libsass, libselinux ? null, libsepol ? null, shared-mime-info
 }@args:
 
 let
@@ -164,6 +164,10 @@ in
     '';
   };
 
+  mimemagic = attrs: {
+    FREEDESKTOP_MIME_TYPES_PATH = "${shared-mime-info}/share/mime/packages/freedesktop.org.xml";
+  };
+
   mini_magick = attrs: {
     postInstall = ''
       installPath=$(cat $out/nix-support/gem-meta/install-path)
diff --git a/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix b/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
deleted file mode 100644
index 6d9543e383..0000000000
--- a/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ fetchFromGitHub, lib, mkDerivation
-# nativeBuildInputs
-, qmake, pkg-config
-# Qt
-, qtbase, qtsvg, qtwebengine
-# buildInputs
-, r2-for-cutter
-, python3
-, wrapQtAppsHook }:
-
-mkDerivation rec {
-  pname = "radare2-cutter";
-  version = "1.12.0";
-
-  src = fetchFromGitHub {
-    owner = "radareorg";
-    repo = "cutter";
-    rev = "v${version}";
-    sha256 = "0ljj3j3apbbw628n2nyrxpbnclixx20bqjxm0xwggqzz9vywsar0";
-  };
-
-  postUnpack = "export sourceRoot=$sourceRoot/src";
-
-  # Remove this "very helpful" helper file intended for discovering r2,
-  # as it's a doozy of harddcoded paths and unexpected behavior.
-  # Happily Nix has everything all set so we don't need it,
-  # other than as basis for the qmakeFlags set below.
-  postPatch = ''
-    substituteInPlace Cutter.pro \
-      --replace "include(lib_radare2.pri)" ""
-  '';
-
-  nativeBuildInputs = [ qmake pkg-config python3 wrapQtAppsHook ];
-  propagatedBuildInputs = [ python3.pkgs.pyside2 ];
-  buildInputs = [ qtbase qtsvg qtwebengine r2-for-cutter python3 ];
-
-  qmakeFlags = with python3.pkgs; [
-    "CONFIG+=link_pkg-config"
-    "PKGCONFIG+=r_core"
-    # Leaving this enabled doesn't break build but generates errors
-    # at runtime (to console) about being unable to load needed bits.
-    # Disable until can be looked at.
-    "CUTTER_ENABLE_JUPYTER=false"
-    # Enable support for Python plugins
-    "CUTTER_ENABLE_PYTHON=true"
-    "CUTTER_ENABLE_PYTHON_BINDINGS=true"
-    "SHIBOKEN_EXTRA_OPTIONS+=-I${r2-for-cutter}/include/libr"
-  ];
-
-  preBuild = ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS $(pkg-config --libs python3-embed)"
-    qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "A Qt and C++ GUI for radare2 reverse engineering framework";
-    homepage = src.meta.homepage;
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ mic92 dtzWill ];
-  };
-}
diff --git a/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix b/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
index 287321804e..1622c61686 100644
--- a/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
@@ -1,128 +1,111 @@
-{lib, stdenv, fetchFromGitHub
+{ lib
+, stdenv
+, fetchFromGitHub
 , buildPackages
 , pkg-config
-, libusb-compat-0_1, readline, libewf, perl, zlib, openssl
-, libuv, file, libzip, xxHash
-, gtk2 ? null, vte ? null, gtkdialog ? null
-, python3 ? null
-, ruby ? null
-, lua ? null
+, libusb-compat-0_1
+, readline
+, libewf
+, perl
+, zlib
+, openssl
+, libuv
+, file
+, libzip
+, xxHash
+, gtk2
+, vte
+, gtkdialog
+, python3
+, ruby
+, lua
 , useX11 ? false
 , rubyBindings ? false
 , pythonBindings ? false
 , luaBindings ? false
 }:
 
-assert useX11 -> (gtk2 != null && vte != null && gtkdialog != null);
-assert rubyBindings -> ruby != null;
-assert pythonBindings -> python3 != null;
-
-
 let
   inherit (lib) optional;
 
-  generic = {
-    version_commit, # unused
-    gittap,
-    gittip,
-    rev,
-    version,
-    sha256,
-    cs_ver,
-    cs_sha256
-  }:
-    stdenv.mkDerivation {
-      pname = "radare2";
-      inherit version;
-
-      src = fetchFromGitHub {
-        owner = "radare";
-        repo = "radare2";
-        inherit rev sha256;
-      };
-
-      postPatch = let
-        capstone = fetchFromGitHub {
-          owner = "aquynh";
-          repo = "capstone";
-          # version from $sourceRoot/shlr/Makefile
-          rev = cs_ver;
-          sha256 = cs_sha256;
-        };
-      in ''
-        mkdir -p build/shlr
-        cp -r ${capstone} capstone-${cs_ver}
-        chmod -R +w capstone-${cs_ver}
-        # radare 3.3 compat for radare2-cutter
-        (cd shlr && ln -s ../capstone-${cs_ver} capstone)
-        tar -czvf shlr/capstone-${cs_ver}.tar.gz capstone-${cs_ver}
-      '';
-
-      postInstall = ''
-        install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
-      '';
-
-      WITHOUT_PULL="1";
-      makeFlags = [
-        "GITTAP=${gittap}"
-        "GITTIP=${gittip}"
-        "RANLIB=${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.bintools.targetPrefix}ranlib"
-      ];
-      configureFlags = [
-        "--with-sysmagic"
-        "--with-syszip"
-        "--with-sysxxhash"
-        "--with-openssl"
-      ];
-
-      enableParallelBuilding = true;
-      depsBuildBuild = [ buildPackages.stdenv.cc ];
-
-      nativeBuildInputs = [ pkg-config ];
-      buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ]
-        ++ optional useX11 [ gtkdialog vte gtk2 ]
-        ++ optional rubyBindings [ ruby ]
-        ++ optional pythonBindings [ python3 ]
-        ++ optional luaBindings [ lua ];
-
-      propagatedBuildInputs = [
-        # radare2 exposes r_lib which depends on these libraries
-        file # for its list of magic numbers (`libmagic`)
-        libzip
-        xxHash
-      ];
-
-      meta = {
-        description = "unix-like reverse engineering framework and commandline tools";
-        homepage = "http://radare.org/";
-        license = lib.licenses.gpl2Plus;
-        maintainers = with lib.maintainers; [ raskin makefu mic92 ];
-        platforms = with lib.platforms; linux;
-        inherit version;
-      };
-  };
-in {
   #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
-  radare2 = generic {
-    version_commit = "25741";
-    gittap = "5.1.1";
-    gittip = "a86f8077fc148abd6443384362a3717cd4310e64";
-    rev = "5.1.1";
-    version = "5.1.1";
-    sha256 = "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3";
-    cs_ver = "4.0.2";
-    cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
-  };
-  r2-for-cutter = generic {
-    version_commit = "24959";
-    gittap = "4.5.1";
-    gittip = "293cf5ae65ba4e28828095dcae212955593ba255";
-    rev = "4.5.1";
-    version = "4.5.1";
-    sha256 = "0qigy1px0jy74c5ig73dc2fqjcy6vcy76i25dx9r3as6zfpkkaxj";
-    cs_ver = "4.0.2";
-    cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
-  };
+  gittap = "5.1.1";
+  gittip = "a86f8077fc148abd6443384362a3717cd4310e64";
+  rev = "5.1.1";
+  version = "5.1.1";
+  sha256 = "0hv9x31iabasj12g8f04incr1rbcdkxi3xnqn3ggp8gl4h6pf2f3";
+  cs_ver = "4.0.2";
+  cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
   #</generated>
+in
+stdenv.mkDerivation {
+  pname = "radare2";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "radare";
+    repo = "radare2";
+    inherit rev sha256;
+  };
+
+  postPatch =
+    let
+      capstone = fetchFromGitHub {
+        owner = "aquynh";
+        repo = "capstone";
+        # version from $sourceRoot/shlr/Makefile
+        rev = cs_ver;
+        sha256 = cs_sha256;
+      };
+    in
+    ''
+      mkdir -p build/shlr
+      cp -r ${capstone} capstone-${cs_ver}
+      chmod -R +w capstone-${cs_ver}
+      tar -czvf shlr/capstone-${cs_ver}.tar.gz capstone-${cs_ver}
+    '';
+
+  postInstall = ''
+    install -D -m755 $src/binr/r2pm/r2pm $out/bin/r2pm
+  '';
+
+  WITHOUT_PULL = "1";
+  makeFlags = [
+    "GITTAP=${gittap}"
+    "GITTIP=${gittip}"
+    "RANLIB=${stdenv.cc.bintools.bintools}/bin/${stdenv.cc.bintools.targetPrefix}ranlib"
+  ];
+  configureFlags = [
+    "--with-sysmagic"
+    "--with-syszip"
+    "--with-sysxxhash"
+    "--with-openssl"
+  ];
+
+  enableParallelBuilding = true;
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ file readline libusb-compat-0_1 libewf perl zlib openssl libuv ]
+    ++ optional useX11 [ gtkdialog vte gtk2 ]
+    ++ optional rubyBindings [ ruby ]
+    ++ optional pythonBindings [ python3 ]
+    ++ optional luaBindings [ lua ];
+
+  propagatedBuildInputs = [
+    # radare2 exposes r_lib which depends on these libraries
+    file # for its list of magic numbers (`libmagic`)
+    libzip
+    xxHash
+  ];
+
+  meta = {
+    description = "unix-like reverse engineering framework and commandline tools";
+    homepage = "http://radare.org/";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ raskin makefu mic92 ];
+    platforms = with lib.platforms; linux;
+    inherit version;
+  };
 }
diff --git a/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/update.py b/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
index a9a0a23431..ede0a6058a 100755
--- a/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
+++ b/third_party/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
@@ -48,24 +48,6 @@ def get_radare2_rev() -> str:
     raise RuntimeError(f"No release found at {feed_url}")
 
 
-def get_cutter_version() -> str:
-    version_expr = """
-(with import <nixpkgs> {}; lib.getVersion (qt5.callPackage <radare2/cutter.nix> {}))
-"""
-    return sh("nix", "eval", "--raw", version_expr.strip(), "-I", "radare2={0}".format(SCRIPT_DIR))
-
-
-def get_r2_cutter_rev() -> str:
-    version = get_cutter_version()
-    url = f"https://api.github.com/repos/radareorg/cutter/contents?ref=v{version}"
-    with urllib.request.urlopen(url) as response:
-        data = json.load(response)  # type: ignore
-    for entry in data:
-        if entry["name"] == "radare2":
-            return entry["sha"]
-    raise Exception("no radare2 submodule found in github.com/radareorg/cutter")
-
-
 def git(dirname: str, *args: str) -> str:
     return sh("git", "-C", dirname, *args)
 
@@ -94,43 +76,23 @@ def get_repo_info(dirname: str, rev: str) -> Dict[str, str]:
     )
 
 
-def write_package_expr(version: str, info: Dict[str, str]) -> str:
-    return f"""generic {{
-    version_commit = "{info["version_commit"]}";
-    gittap = "{info["gittap"]}";
-    gittip = "{info["gittip"]}";
-    rev = "{info["rev"]}";
-    version = "{version}";
-    sha256 = "{info["sha256"]}";
-    cs_ver = "{info["cs_ver"]}";
-    cs_sha256 = "{info["cs_sha256"]}";
-  }}"""
-
-
 def main() -> None:
-    radare2_rev = get_radare2_rev()
-    r2_cutter_rev = get_r2_cutter_rev()
+    version = get_radare2_rev()
 
     with tempfile.TemporaryDirectory() as dirname:
         git(
             dirname,
             "clone",
             "--branch",
-            radare2_rev,
+            version,
             "https://github.com/radare/radare2",
             ".",
         )
         nix_file = str(SCRIPT_DIR.joinpath("default.nix"))
 
-        radare2_info = get_repo_info(dirname, radare2_rev)
-
-        git(dirname, "fetch", r2_cutter_rev)
-        git(dirname, "checkout", r2_cutter_rev)
+        info = get_repo_info(dirname, version)
 
         timestamp = git(dirname, "log", "-n1", "--format=%at")
-        r2_cutter_version = datetime.fromtimestamp(int(timestamp)).strftime("%Y-%m-%d")
-
-        r2_cutter_info = get_repo_info(dirname, r2_cutter_rev)
 
         in_block = False
         with fileinput.FileInput(nix_file, inplace=True) as f:
@@ -140,8 +102,13 @@ def main() -> None:
                     print(
                         f"""  #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
-  radare2 = {write_package_expr(radare2_rev, radare2_info)};
-  r2-for-cutter = {write_package_expr(r2_cutter_version, r2_cutter_info)};
+  gittap = "{info["gittap"]}";
+  gittip = "{info["gittip"]}";
+  rev = "{info["rev"]}";
+  version = "{version}";
+  sha256 = "{info["sha256"]}";
+  cs_ver = "{info["cs_ver"]}";
+  cs_sha256 = "{info["cs_sha256"]}";
   #</generated>"""
                     )
                 elif "#</generated>" in l:
diff --git a/third_party/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix b/third_party/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
new file mode 100644
index 0000000000..55795b9830
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/tools/analysis/rizin/cutter.nix
@@ -0,0 +1,44 @@
+{ fetchFromGitHub, lib, mkDerivation
+# nativeBuildInputs
+, qmake, pkg-config, cmake
+# Qt
+, qtbase, qtsvg, qtwebengine, qttools
+# buildInputs
+, rizin
+, python3
+, wrapQtAppsHook
+}:
+
+mkDerivation rec {
+  pname = "cutter";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "rizinorg";
+    repo = "cutter";
+    rev = "v${version}";
+    sha256 = "sha256-uIN/NR+swu9Ie0wP2aBhw5WBvTe9NDmzSs+lQMCeavc=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake qmake pkg-config python3 wrapQtAppsHook ];
+  propagatedBuildInputs = [ python3.pkgs.pyside2 ];
+  buildInputs = [ qtbase qttools qtsvg qtwebengine rizin python3 ];
+
+  cmakeFlags = [
+    "-DCUTTER_USE_BUNDLED_RIZIN=OFF"
+    "-DCUTTER_ENABLE_PYTHON=ON"
+    "-DCUTTER_ENABLE_PYTHON_BINDINGS=ON"
+  ];
+
+  preBuild = ''
+    qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
+  '';
+
+  meta = with lib; {
+    description = "Free and Open Source Reverse Engineering Platform powered by rizin";
+    homepage = src.meta.homepage;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ mic92 dtzWill ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix b/third_party/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
new file mode 100644
index 0000000000..fdc8da7b5f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/tools/analysis/rizin/default.nix
@@ -0,0 +1,69 @@
+{ lib
+, stdenv
+, fetchurl
+, pkg-config
+, libusb-compat-0_1
+, readline
+, libewf
+, perl
+, zlib
+, openssl
+, libuv
+, file
+, libzip
+, lz4
+, xxHash
+, meson
+, cmake
+, ninja
+, capstone
+, tree-sitter
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rizin";
+  version = "0.1.2";
+
+  src = fetchurl {
+    url = "https://github.com/rizinorg/rizin/releases/download/v${version}/rizin-src-${version}.tar.xz";
+    sha256 = "sha256-npUp8wJiKAaQKSigXtndhJLTJ4+pyFqa0FwDLBqR/sE=";
+  };
+
+  mesonFlags = [
+    "-Duse_sys_capstone=true"
+    "-Duse_sys_magic=true"
+    "-Duse_sys_libzip=true"
+    "-Duse_sys_zlib=true"
+    "-Duse_sys_xxhash=true"
+    "-Duse_sys_lz4=true"
+    "-Duse_sys_openssl=true"
+    "-Duse_sys_tree_sitter=true"
+  ];
+
+  nativeBuildInputs = [ pkg-config meson ninja cmake ];
+
+  buildInputs = [
+    file
+    libzip
+    capstone
+    readline
+    libusb-compat-0_1
+    libewf
+    perl
+    zlib
+    lz4
+    openssl
+    libuv
+    tree-sitter
+    xxHash
+  ];
+
+  meta = {
+    description = "UNIX-like reverse engineering framework and command-line toolset.";
+    homepage = "https://rizin.re/";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ raskin makefu mic92 ];
+    platforms = with lib.platforms; linux;
+    inherit version;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix b/third_party/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
index 03f6954d5a..246f42b639 100644
--- a/third_party/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.39.14";
+  version = "0.39.16";
 
   src = fetchFromGitHub {
     owner = "tfsec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Peq51XN8EEvHWdSL3ngBx74t7V4RUrZa4RpGnvZ0Ml8=";
+    sha256 = "sha256-5We3Nk/AU5dj37vG4pvqzvNztK01PAPadQV/CgHZe8w=";
   };
 
   goPackagePath = "github.com/tfsec/tfsec";
diff --git a/third_party/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix b/third_party/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
index b27d75b780..993bd66846 100644
--- a/third_party/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
@@ -1,6 +1,15 @@
 { lib, stdenv, fetchurl, unzip, jdk, java ? jdk, makeWrapper }:
 
-rec {
+let
+  gradleSpec = { version, nativeVersion, sha256 }: rec {
+    inherit nativeVersion;
+    name = "gradle-${version}";
+    src = fetchurl {
+      inherit sha256;
+      url = "https://services.gradle.org/distributions/${name}-bin.zip";
+    };
+  };
+in rec {
   gradleGen = {name, src, nativeVersion} : stdenv.mkDerivation {
     inherit name src nativeVersion;
 
@@ -52,35 +61,30 @@ rec {
     };
   };
 
+  # NOTE: Gradle 7 is a release candidate, so point to 6.8.
   gradle_latest = gradle_6_8;
 
-  gradle_6_8 = gradleGen rec {
-    name = "gradle-6.8.3";
+  gradle_7 = gradleGen (gradleSpec {
+    version = "7.0-rc-2";
+    nativeVersion = "0.22-milestone-11";
+    sha256 = "0gzvigyvwwizx90vnzhdnbm5rdaki11inxna11s4y67xkn8hrnx5";
+  });
+
+  gradle_6_8 = gradleGen (gradleSpec {
+    version = "6.8.3";
     nativeVersion = "0.22-milestone-9";
+    sha256 = "01fjrk5nfdp6mldyblfmnkq2gv1rz1818kzgr0k2i1wzfsc73akz";
+  });
 
-    src = fetchurl {
-      url = "https://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "01fjrk5nfdp6mldyblfmnkq2gv1rz1818kzgr0k2i1wzfsc73akz";
-    };
-  };
-
-  gradle_5_6 = gradleGen rec {
-    name = "gradle-5.6.4";
+  gradle_5_6 = gradleGen (gradleSpec {
+    version = "5.6.4";
     nativeVersion = "0.18";
+    sha256 = "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d";
+  });
 
-    src = fetchurl {
-      url = "https://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d";
-    };
-  };
-
-  gradle_4_10 = gradleGen rec {
-    name = "gradle-4.10.3";
+  gradle_4_10 = gradleGen (gradleSpec {
+    version = "4.10.3";
     nativeVersion = "0.14";
-
-    src = fetchurl {
-      url = "https://services.gradle.org/distributions/${name}-bin.zip";
-      sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
-    };
-  };
+    sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
+  });
 }
diff --git a/third_party/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix b/third_party/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
index 0c6450766b..c2b10d823a 100644
--- a/third_party/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/build-managers/rebar3/default.nix
@@ -3,7 +3,7 @@
   tree }:
 
 let
-  version = "3.14.2";
+  version = "3.14.4";
 
   # Dependencies should match the ones in:
   # https://github.com/erlang/rebar3/blob/${version}/rebar.lock
@@ -12,27 +12,27 @@ let
   bbmustache = fetchHex {
     pkg = "bbmustache";
     version = "1.10.0";
-    sha256 = "43effa3fd4bb9523157af5a9e2276c493495b8459fc8737144aa186cb13ce2ee";
+    sha256 = "1vp27jqnq65a8iqp7j4z8nw9ad29dhky5agmg8aj75dvshzzmvs3";
   };
   certifi = fetchHex {
     pkg = "certifi";
-    version = "2.5.2";
-    sha256 = "3b3b5f36493004ac3455966991eaf6e768ce9884693d9968055aeeeb1e575040";
+    version = "2.5.3";
+    sha256 = "040w1scglvqhcvc1ifdnlcyrbwr0smi00w4xi8h03c99775nllgd";
   };
   cf = fetchHex {
     pkg = "cf";
     version = "0.3.1";
-    sha256 = "315e8d447d3a4b02bcdbfa397ad03bbb988a6e0aa6f44d3add0f4e3c3bf97672";
+    sha256 = "0wknz4xkqkhgvlx4vx5619p8m65v7g87lfgsvfy04jrsgm28spii";
   };
   cth_readable = fetchHex {
     pkg = "cth_readable";
-    version = "1.4.9";
-    sha256 = "b4c6ababdb046c5f2fbb3c22f030b4c5a679083956dcdd29c1df0cb30b18da24";
+    version = "1.5.0";
+    sha256 = "0z58b6frqdnhyzrmbdf6x78l3izbbh5z5i3am8hqc253r7xwv0dx";
   };
   erlware_commons = fetchHex {
     pkg = "erlware_commons";
-    version = "1.3.1";
-    sha256 = "7aada93f368d0a0430122e39931b7fb4ac9e94dbf043cdc980ad4330fd9cd166";
+    version = "1.4.0";
+    sha256 = "1rp2vkgzqm6sax7fc13rh9x6qzxsgg718dnv7l0kmarvyifcyphq";
   };
   eunit_formatters = fetchHex {
     pkg = "eunit_formatters";
@@ -46,29 +46,26 @@ let
   };
   parse_trans = fetchHex {
     pkg = "parse_trans";
-    version = "3.3.0";
-    sha256 = "17ef63abde837ad30680ea7f857dd9e7ced9476cdd7b0394432af4bfc241b960";
+    version = "3.3.1";
+    sha256 = "12w8ai6b5s6b4hnvkav7hwxd846zdd74r32f84nkcmjzi1vrbk87";
   };
+
   providers = fetchHex {
     pkg = "providers";
     version = "1.8.1";
-    sha256 = "e45745ade9c476a9a469ea0840e418ab19360dc44f01a233304e118a44486ba0";
+    sha256 = "183b9128l4af60rs40agqh6kc6db33j4027ad6jajxn4x6nlamz4";
   };
+
   relx = fetchHex {
     pkg = "relx";
-    version = "4.1.0";
-    sha256 = "b94a3f96697a479ee5217a853345e0f4977bdf40d3c040af0d3d80fadad82af4";
+    version = "4.3.0";
+    sha256 = "0h044arh41sr92r1nlg176shavlv7pvw17alwklhszgwlr4hk3kk";
   };
+
   ssl_verify_fun = fetchHex {
     pkg = "ssl_verify_fun";
     version = "1.1.6";
-    sha256 = "bdb0d2471f453c88ff3908e7686f86f9be327d065cc1ec16fa4540197ea04680";
-  };
-
-  hex_core = fetchHex {
-    pkg = "hex_core";
-    version = "0.7.1";
-    sha256 = "05c60411511b6dc79affcd99a93e67d71e1b9d6abcb28ba75cd4ebc8585b8d02";
+    sha256 = "1026l1z1jh25z8bfrhaw0ryk5gprhrpnirq877zqhg253x3x5c5x";
   };
 in
 stdenv.mkDerivation rec {
@@ -81,7 +78,7 @@ stdenv.mkDerivation rec {
     owner = "erlang";
     repo = pname;
     rev = version;
-    sha256 = "02gz6xs8j5rm14r6dndcpdm8q3rl4mcj363gnnx4y5xvvfnv9bfa";
+    sha256 = "09bnqwli93sq1pcz4h88ks7qg7k8yrjy9fd46yyp8xdl7i4irwy2";
   };
 
   bootstrapper = ./rebar3-nix-bootstrap;
@@ -104,8 +101,6 @@ stdenv.mkDerivation rec {
     cp --no-preserve=mode -R ${relx} _checkouts/relx
     cp --no-preserve=mode -R ${ssl_verify_fun} _checkouts/ssl_verify_fun
 
-    cp --no-preserve=mode -R ${hex_core} _checkouts/hex_core
-
     # Bootstrap script expects the dependencies in _build/default/lib
     # TODO: Make it accept checkouts?
     for i in _checkouts/* ; do
diff --git a/third_party/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix b/third_party/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
index d4d4c75527..b49e5f7558 100644
--- a/third_party/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/build-managers/sbt-extras/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt-extras";
-  rev = "b430596eb8566a59793ea0b8ddd2c693505e801f";
-  version = "2021-03-29";
+  rev = "a76f1f15e6ec39d886f8bf07d5bdfaf70cdc62d8";
+  version = "2021-04-06";
 
   src = fetchFromGitHub {
     owner = "paulp";
     repo = "sbt-extras";
     inherit rev;
-    sha256 = "0r0ysv7dzrlmj3c82fv60i2490ky7q70jlv40q7zdmm5q2wp7y63";
+    sha256 = "0zmhn8nvzrbw047g5z4q2slp0wdg6pvfh2pqnpwcq1hscf7dvz8f";
   };
 
   dontBuild = true;
diff --git a/third_party/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix b/third_party/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
index 5b3ce3ab16..00e70c46b2 100644
--- a/third_party/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.4.9";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz";
-    sha256 = "sha256-lUaBGfdkFJk2czCmCkuKYhHm6n+L3n1kfGexndj9224=";
+    sha256 = "1dj241cj3v8kzqnz5s499rijpl7wv4rw171swqnc0xza90513pxa";
   };
 
   postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix b/third_party/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 9807866f1b..669dc846e1 100644
--- a/third_party/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.277.1";
+  version = "2.277.2";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "0lficvngxzl7q088n3ssnnhjicd0xxr0k3n0inz7pvjj27dl35rr";
+    sha256 = "08lv5v5kxp9ln798gjmh8j9a8r8xc471fbhiz2l7gxncpxn50ga2";
   };
 
   buildCommand = ''
diff --git a/third_party/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix b/third_party/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
index 9d78f57425..5b492ee67b 100644
--- a/third_party/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
@@ -28,7 +28,7 @@ let
     sha256 = "1jh4h12qchsba03dx03mrvs4r8g9qfjn56xm56jqzgqf7r209xq9";
   };
 in stdenv.mkDerivation rec {
-  name = "laminar";
+  pname = "laminar";
   version = "1.0";
   src = fetchurl {
     url = "https://github.com/ohwgiles/laminar/archive/${version}.tar.gz";
diff --git a/third_party/nixpkgs/pkgs/development/tools/cue/default.nix b/third_party/nixpkgs/pkgs/development/tools/cue/default.nix
index 28660732ea..c974286ab9 100644
--- a/third_party/nixpkgs/pkgs/development/tools/cue/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/cue/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "cue";
-  version = "0.2.2";
+  version = "0.3.0";
 
   src = fetchgit {
     url = "https://cue.googlesource.com/cue";
     rev = "v${version}";
-    sha256 = "1crl5fldczc3jkwf7gvwvghckr6gfinfslzca4ps1098lbq83zcq";
+    sha256 = "1h3809xgmn7dr57i3cnifr7r555i3zh3kfsv0gxa9nd7068w19xm";
   };
 
-  vendorSha256 = "0l6slaji9nh16jqp1nvib95h2db1xyjh6knk5hj2zaa1rks4b092";
+  vendorSha256 = "10kvss23a8a6q26a7h1bqc3i0nskm2halsvc9wdv9zf9qsz7zjkp";
 
   doCheck = false;
 
diff --git a/third_party/nixpkgs/pkgs/development/tools/dapr/cli/default.nix b/third_party/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
index dac1848865..59e04455c2 100644
--- a/third_party/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
@@ -2,12 +2,12 @@
 
 buildGoModule rec {
   pname = "dapr";
-  version = "1.0.1";
+  version = "1.1.0";
 
-  vendorSha256 = "13fb6fdjqrsl74569nh2l7x9w7w61bcvkksj410s2f85bicc29rf";
+  vendorSha256 = "0fng5a1pvpbwil79xapdalzgkgc9dwsdxs6bznjfwnkyd1vvw6fm";
 
   src = fetchFromGitHub {
-    sha256 = "15zz212sm83l6l7npislixxn23fg190b44bfxnrjrlyjbz370kch";
+    sha256 = "0x2mvlzlmcik6ys6xp722px9l4lj9ssyxb06bzxd7yj7m1wwcwp9";
 
     owner = "dapr";
     repo = "cli";
diff --git a/third_party/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix b/third_party/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
index 186045c9aa..72b5364eb4 100644
--- a/third_party/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/documentation/gi-docgen/default.nix
@@ -24,7 +24,7 @@ python3.pkgs.buildPythonApplication rec {
     # Add pkg-config file so that Meson projects can find this.
     # https://gitlab.gnome.org/ebassi/gi-docgen/merge_requests/26
     (fetchpatch {
-      url = "https://gitlab.gnome.org/ebassi/gi-docgen/commit/d65ed2e4827c4129d26e3c1df9a48054b4e72c50.patch";
+      url = "https://gitlab.gnome.org/jtojnar/gi-docgen/commit/d65ed2e4827c4129d26e3c1df9a48054b4e72c50.patch";
       sha256 = "BEefcHiAd/HTW5zo39J2WtfQjGXUkNFB6MDJj8/Ge80=";
     })
 
diff --git a/third_party/nixpkgs/pkgs/development/tools/ginkgo/default.nix b/third_party/nixpkgs/pkgs/development/tools/ginkgo/default.nix
index 437013e1af..e5883501f8 100644
--- a/third_party/nixpkgs/pkgs/development/tools/ginkgo/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/ginkgo/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "ginkgo";
-  version = "1.15.2";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     owner = "onsi";
     repo = "ginkgo";
     rev = "v${version}";
-    sha256 = "sha256-lZ2PIfZSvBxVIAEpRgsLvTWPFRsh2ZpXkame6pk0Cio=";
+    sha256 = "sha256-nlNft9jOp8V8ks32LOb4wUTkRrXJ5K49gbHuRmCKz/0=";
   };
-  vendorSha256 = "sha256:1nqam6y2dar8320yb5fg9chsvswq8fb1rrvr5kbcaf4mzmqpy7vw";
+  vendorSha256 = "sha256-tS8YCGVOsfQp02vY6brmE3pxi70GG9DYcp1JDkcVG9Y=";
   doCheck = false;
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix b/third_party/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix
new file mode 100644
index 0000000000..52b233817a
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/tools/go-containerregistry/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-containerregistry";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-3mvGHAPKDUmrQkBKwlxnF6PG0ZpZDqlM9SMkCyC5ytE=";
+  };
+
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/crane" "cmd/gcrane" ];
+
+  buildFlagsArray = [
+    "-ldflags=-s -w -X github.com/google/go-containerregistry/cmd/crane/cmd.Version=${version} -X github.com/google/go-containerregistry/pkg/v1/remote/transport.Version=${version}"
+  ];
+
+  # NOTE: no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A tool for interacting with remote images and registries";
+    homepage = "https://github.com/google/go-containerregistry";
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ yurrriq ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/tools/go-swagger/default.nix b/third_party/nixpkgs/pkgs/development/tools/go-swagger/default.nix
index 94f9b6d8eb..2147ed00c7 100644
--- a/third_party/nixpkgs/pkgs/development/tools/go-swagger/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/go-swagger/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "go-swagger";
-  version = "0.26.1";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "go-swagger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-gA7YpzroIP26u/kmbwlcYkWVfeJ8YDEAl0H9GGQrXA8=";
+    sha256 = "sha256-S3/sXmgogxhMv53Gd/ir6ScirYQtt5kn04ZfRiS6NoA=";
   };
 
-  vendorSha256 = "sha256-eRcE6ai7076HqTWRJ8zKoV6/PJRgUpKvKF+0T7MgLQE=";
+  vendorSha256 = "sha256-ABGjrMZdgsAaEhJlGbvbX77t7TsodraadNyItESMbEc=";
 
   doCheck = false;
 
diff --git a/third_party/nixpkgs/pkgs/development/tools/krankerl/default.nix b/third_party/nixpkgs/pkgs/development/tools/krankerl/default.nix
new file mode 100644
index 0000000000..b771fe6bfc
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/tools/krankerl/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, openssl
+, dbus
+, sqlite
+, file
+, gzip
+, makeWrapper
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "krankerl";
+  version = "0.13.0";
+
+  src = fetchFromGitHub {
+    owner = "ChristophWurst";
+    repo = "krankerl";
+    rev = "v${version}";
+    sha256 = "1gp8b2m8kcz2f16zv9xwv4n1zki6imvz9z31kixh6amdj6fif3d1";
+  };
+
+  cargoSha256 = "sha256:01hcxs14wwhhvr08x816wa3jcm4zvm6g7vais793cgijipyv00rc";
+
+  nativeBuildInputs = [
+    pkg-config
+    gzip
+    makeWrapper
+  ];
+
+  buildInputs = [
+    openssl
+    dbus
+    sqlite
+  ];
+
+  checkInputs = [
+    file
+  ];
+
+  meta = with lib; {
+    description = "A CLI helper to manage, package and publish Nextcloud apps";
+    homepage = "https://github.com/ChristophWurst/krankerl";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/development/tools/misc/act/default.nix b/third_party/nixpkgs/pkgs/development/tools/misc/act/default.nix
index 85ab64a230..3b9cc67bc2 100644
--- a/third_party/nixpkgs/pkgs/development/tools/misc/act/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.20";
+  version = "0.2.21";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HgFm58zdaycOH65jfu3QsfFemhXymp3OTekISih+8WA=";
+    sha256 = "sha256-XDxG7F+oBatlb4ROBryt2Fop402riKmYoqZLJrUzBUQ=";
   };
 
-  vendorSha256 = "sha256-9LEyxIBe4c938RQbLOQOsAb9MGNtjngm48P3P83BTNw=";
+  vendorSha256 = "sha256-PwVDMSl36m+6ISJQvyrkCjaL3xp5VkaZtfxyMpNn+KI=";
 
   doCheck = false;
 
diff --git a/third_party/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix b/third_party/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
index b51cfa96d0..6f02e93439 100644
--- a/third_party/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "terracognita";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "cycloidio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-RX2L9EwxfZ+utptTDR3+W9ACVPALF/hiE40SJTmZuLs=";
+    sha256 = "sha256-rRSBPnvv4941IUGN/6+8/hzgYDqgPErNkd7tFrslPiQ=";
   };
 
   vendorSha256 = "sha256-sN9GTcG5cZxvMaLqNjY2jfLkf8a3lugM2aV3bBdT5Ww=";
diff --git a/third_party/nixpkgs/pkgs/development/tools/packer/default.nix b/third_party/nixpkgs/pkgs/development/tools/packer/default.nix
index 8331e3b92a..6c59eaa738 100644
--- a/third_party/nixpkgs/pkgs/development/tools/packer/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/packer/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "packer";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "sha256-PZwKvb43Xf8HaC148Xo076u3sP53nwC4fJ2X7HU0gDo=";
+    sha256 = "sha256-Ey1gkld7WosJgoqnNp4Lz2x3PTI+w5p+A8Cwv4+uUZw=";
   };
 
   vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/development/tools/packet-cli/default.nix b/third_party/nixpkgs/pkgs/development/tools/packet-cli/default.nix
index 79457643ce..ff0dead13e 100644
--- a/third_party/nixpkgs/pkgs/development/tools/packet-cli/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/packet-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "packet-cli";
-  version = "0.1.1";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "packethost";
     repo = pname;
     rev = version;
-    sha256 = "089fcn7yslijjivyvwl85j32gfwif8aazqdhm6hi676lz80ssppp";
+    sha256 = "sha256-P1Bn6vli0d/MroHUsioTWBrjWN+UZmSo3qmzo+fCDwM=";
   };
 
-  vendorSha256 = "1p3v4pzw9hc1iviv1zghw9imbd23nlp24dpa8hf0w8a03jvpy96x";
+  vendorSha256 = "sha256-PjKiUdhN87guPAa0loZrWYuwbl0HaspuIjmKgyq4Zp8=";
 
   postInstall = ''
     ln -s $out/bin/packet-cli $out/bin/packet
diff --git a/third_party/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix b/third_party/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
index 1225d78d71..73e3cfd3c4 100644
--- a/third_party/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.8.9";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = pname;
     rev = version;
-    sha256 = "sha256-K8lNo2XmHzgbaVCMNvwDwr86hrXBPws9v3HD8ku+D6w=";
+    sha256 = "sha256-ZjXAZN93ij42WVYSOgvKAzFZ/cZ2RTFKT2sr44j7TVc=";
   };
 
-  cargoSha256 = "sha256-spTy9vzldzqu66904wRVwAeH1rNOQ3WeC6miJkRiAGg=";
+  cargoSha256 = "sha256-eQv9pFegHTjjjFURiD/yN/srtONAwAH3vwfrSY/LM/Q=";
 
   doCheck = false;
 
diff --git a/third_party/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix b/third_party/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
new file mode 100644
index 0000000000..94b5000b9b
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/development/tools/rust/cargo-feature/default.nix
@@ -0,0 +1,24 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-feature";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "Riey";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0n5kzh756ghfs3cydlcn9mfvpgwy1cjg41h0nd9dbi5cr1fp9x1n";
+  };
+
+  cargoSha256 = "0nvl5smibl81b826xcsrjx8p89lcfpj7wqdsvywnj7jd3p5ag03n";
+
+  meta = with lib; {
+    description = "Allows conveniently modify features of crate";
+    homepage = "https://github.com/Riey/cargo-feature";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ riey ];
+  };
+}
+
diff --git a/third_party/nixpkgs/pkgs/development/tools/sd-local/default.nix b/third_party/nixpkgs/pkgs/development/tools/sd-local/default.nix
index 30c77bb875..65f825dc3b 100644
--- a/third_party/nixpkgs/pkgs/development/tools/sd-local/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/sd-local/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "sd-local";
-  version = "1.0.29";
+  version = "1.0.30";
 
   src = fetchFromGitHub {
     owner = "screwdriver-cd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Po6kP6kAY5W3SQJ3iFCtzifSlQ+JgLIDhuk2UHSwAxM=";
+    sha256 = "sha256-Ha0E0e9CPR8dnApw0cR4A7Tzi3shYVtSeaQ+6I80qcU=";
   };
 
   vendorSha256 = "sha256-4xuWehRrmVdS2F6r00LZLKq/oHlWqCTQ/jYUKeIJ6DI=";
diff --git a/third_party/nixpkgs/pkgs/development/tools/tracy/default.nix b/third_party/nixpkgs/pkgs/development/tools/tracy/default.nix
index b7a324ca29..724e74098d 100644
--- a/third_party/nixpkgs/pkgs/development/tools/tracy/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/tracy/default.nix
@@ -1,6 +1,8 @@
 { stdenv, lib, darwin, fetchFromGitHub, tbb, gtk3, glfw, pkg-config, freetype, Carbon, AppKit, capstone }:
 
-stdenv.mkDerivation rec {
+let
+  disableLTO = stdenv.cc.isClang && stdenv.isDarwin;  # workaround issue #19098
+in stdenv.mkDerivation rec {
   pname = "tracy";
   version = "0.7.7";
 
@@ -19,7 +21,10 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = [ ]
     ++ lib.optional stdenv.isLinux "-ltbb"
-    ++ lib.optional stdenv.cc.isClang "-faligned-allocation";
+    ++ lib.optional stdenv.cc.isClang "-faligned-allocation"
+    ++ lib.optional disableLTO "-fno-lto";
+
+  NIX_CFLAGS_LINK = lib.optional disableLTO "-fno-lto";
 
   buildPhase = ''
     make -j $NIX_BUILD_CORES -C profiler/build/unix release
@@ -35,7 +40,7 @@ stdenv.mkDerivation rec {
     install -D ./update/build/unix/update-release $out/bin/update
   '';
 
-  fixupPhase = lib.optionalString stdenv.isDarwin ''
+  postFixup = lib.optionalString stdenv.isDarwin ''
     install_name_tool -change libcapstone.4.dylib ${capstone}/lib/libcapstone.4.dylib $out/bin/Tracy
   '';
 
diff --git a/third_party/nixpkgs/pkgs/development/tools/vendir/default.nix b/third_party/nixpkgs/pkgs/development/tools/vendir/default.nix
index ff9523c717..bca29d1abe 100644
--- a/third_party/nixpkgs/pkgs/development/tools/vendir/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/vendir/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vendir";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "carvel-vendir";
     rev = "v${version}";
-    sha256 = "14yd14z4666alwsn2jhcvg2kijvw4qjr4h3gikchiir38w520fs9";
+    sha256 = "sha256-+VZ1EWrEvTbWeO/o7EkkF2Xcro7UpCrnsOJjOCtfNzY=";
   };
 
   vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/development/tools/vultr-cli/default.nix b/third_party/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
index c36a13bd97..70c634fc9b 100644
--- a/third_party/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
+++ b/third_party/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FXOwLYxUMkE+wDY30vjnSZ7zPWZWuWmIH4Uuc0CC7lU=";
+    sha256 = "sha256-TNytKq2LqLWxNrqesOJbNQUTirvPkxLMqJmtbmFq+0Y=";
   };
 
   vendorSha256 = null;
diff --git a/third_party/nixpkgs/pkgs/development/web/nodejs/v15.nix b/third_party/nixpkgs/pkgs/development/web/nodejs/v15.nix
index 953b534e85..d22c2f213b 100644
--- a/third_party/nixpkgs/pkgs/development/web/nodejs/v15.nix
+++ b/third_party/nixpkgs/pkgs/development/web/nodejs/v15.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "15.13.0";
-    sha256 = "1wd859bxd8j97xl98k61g0vwcmy83wvjj04fgway38aapk9abp4h";
+    version = "15.14.0";
+    sha256 = "0vm6jdazqjd1plqsgngzvjrafv2d3mdahk6il4ray02gx97dq8l1";
   }
diff --git a/third_party/nixpkgs/pkgs/games/antsimulator/default.nix b/third_party/nixpkgs/pkgs/games/antsimulator/default.nix
new file mode 100644
index 0000000000..b43b91d5cb
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/games/antsimulator/default.nix
@@ -0,0 +1,29 @@
+{ lib, stdenv, fetchFromGitHub, cmake, sfml }:
+
+stdenv.mkDerivation rec {
+  pname = "antsimulator";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "johnBuffer";
+    repo = "AntSimulator";
+    rev = "v${version}";
+    sha256 = "0wz80971rf86kb7mcnxwrq75vriwhmyir5s5n3wzml12rzfnj5f1";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ sfml ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    install -Dm755 ./AntSimulator $out/bin/antsimulator
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/johnBuffer/AntSimulator";
+    description = "Simple Ants simulator";
+    license = licenses.free;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/games/cockatrice/default.nix b/third_party/nixpkgs/pkgs/games/cockatrice/default.nix
index cb51489de9..1388d830a9 100644
--- a/third_party/nixpkgs/pkgs/games/cockatrice/default.nix
+++ b/third_party/nixpkgs/pkgs/games/cockatrice/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "cockatrice";
-  version = "2021-01-26-Release-2.8.0";
+  version = "2021-02-03-Development-2.8.1-beta";
 
   src = fetchFromGitHub {
     owner = "Cockatrice";
     repo = "Cockatrice";
     rev = version;
-    sha256 = "0q8ffcklb2b7hcqhy3d2f9kz9aw22pp04pc9y4sslyqmf17pwnz9";
+    sha256 = "0g1d7zq4lh4jf08mvvgp6m2r2gdvy4y1mhf46c0s8607h2l8vavh";
   };
 
   buildInputs = [
@@ -22,7 +22,7 @@ mkDerivation rec {
   meta = {
     homepage = "https://github.com/Cockatrice/Cockatrice";
     description = "A cross-platform virtual tabletop for multiplayer card games";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ evanjs ];
     platforms = with lib.platforms; linux;
   };
diff --git a/third_party/nixpkgs/pkgs/games/devilutionx/default.nix b/third_party/nixpkgs/pkgs/games/devilutionx/default.nix
index 1e88907cc1..0f89bdeabb 100644
--- a/third_party/nixpkgs/pkgs/games/devilutionx/default.nix
+++ b/third_party/nixpkgs/pkgs/games/devilutionx/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchFromGitHub, cmake, SDL2, SDL2_mixer, SDL2_ttf, libsodium, pkg-config }:
 stdenv.mkDerivation rec {
-  version = "2020-10-20";
-  pname = "devilutionx-unstable";
+  pname = "devilutionx";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "diasurgical";
     repo = "devilutionX";
-    rev = "432fbc8ef7b98e567b08e44ce91b198374a5ff01";
+    rev = version;
     sha256 = "03w3bgmzwsbycx3fzvn47fsmabl069gw77yn2fqg89wlgaw1yrr9";
   };
 
@@ -19,8 +19,6 @@ stdenv.mkDerivation rec {
     "-DBINARY_RELEASE=ON"
   ];
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ pkg-config cmake ];
   buildInputs = [ libsodium SDL2 SDL2_mixer SDL2_ttf ];
 
diff --git a/third_party/nixpkgs/pkgs/games/sm64ex/default.nix b/third_party/nixpkgs/pkgs/games/sm64ex/default.nix
index 24ff228379..9bf6b51384 100644
--- a/third_party/nixpkgs/pkgs/games/sm64ex/default.nix
+++ b/third_party/nixpkgs/pkgs/games/sm64ex/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sm64ex";
-  version = "unstable-2020-06-19";
+  version = "unstable-2020-10-09";
 
   src = fetchFromGitHub {
     owner = "sm64pc";
     repo = "sm64ex";
-    rev = "f5005418348cf1a53bfa75ff415a513ef0b9b273";
-    sha256 = "0adyshkqk5c4lxhdxc3j6ax4svfka26486qpa5q2gl2nixwg9zxn";
+    rev = "57c203465b2b3eee03dcb796ed1fad07d8283a2c";
+    sha256 = "0k6a3r9f4spa7y2v1lyqs9lwa05lw8xgywllb7w828nal8y33cs6";
   };
 
   nativeBuildInputs = [ python3 pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/games/uhexen2/default.nix b/third_party/nixpkgs/pkgs/games/uhexen2/default.nix
new file mode 100644
index 0000000000..dac081cd7b
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/games/uhexen2/default.nix
@@ -0,0 +1,66 @@
+{ lib, fetchgit, SDL, stdenv, libogg, libvorbis, libmad, xdelta }:
+
+stdenv.mkDerivation rec {
+  name = "uhexen2";
+  version = "1.5.9";
+
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/uhexen2/uhexen2";
+    sha256 = "0crdihbnb92awkikn15mzdpkj1x9s34xixf1r7fxxf762m60niks";
+    rev = "4ef664bc41e3998b0d2a55ff1166dadf34c936be";
+  };
+
+  buildInputs = [ SDL libogg libvorbis libmad xdelta ];
+
+  preBuild = ''
+    makeFiles=(
+        "engine/hexen2 glh2"
+        "engine/hexen2 clean"
+        "engine/hexen2 h2"
+        "engine/hexen2/server"
+        "engine/hexenworld/client glhw"
+        "engine/hexenworld/client clean"
+        "engine/hexenworld/client hw"
+        "engine/hexenworld/server"
+        "h2patch"
+    )
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    for makefile in "''${makeFiles[@]}"; do
+          local flagsArray=(
+            -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES
+            SHELL=$SHELL
+            $makeFlags "''${makeFlagsArray[@]}"
+            $buildFlags "''${buildFlagsArray[@]}"
+          )
+          echoCmd 'build flags' ""''${flagsArray[@]}""
+          make  -C $makefile ""''${flagsArray[@]}""
+          unset flagsArray
+    done
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm755 engine/hexen2/{glhexen2,hexen2,server/h2ded} -t $out/bin
+    install -Dm755 engine/hexenworld/{client/glhwcl,client/hwcl,server/hwsv} -t $out/bin
+    install -Dm755 h2patch/h2patch -t $out/bin
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A cross-platform port of Hexen II game";
+    longDescription = ''
+      Hammer of Thyrion (uHexen2) is a cross-platform port of Raven Software's Hexen II source.
+      It is based on an older linux port, Anvil of Thyrion.
+      HoT includes countless bug fixes, improved music, sound and video modes, opengl improvements,
+      support for many operating systems and architectures, and documentation among many others.
+    '';
+    homepage = "http://uhexen2.sourceforge.net/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ xdhampus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/games/unciv/default.nix b/third_party/nixpkgs/pkgs/games/unciv/default.nix
index 5e4b262c87..6d9deb022e 100644
--- a/third_party/nixpkgs/pkgs/games/unciv/default.nix
+++ b/third_party/nixpkgs/pkgs/games/unciv/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "unciv";
-  version = "3.13.11-patch2";
+  version = "3.13.12-patch1";
 
   src = fetchurl {
     url = "https://github.com/yairm210/Unciv/releases/download/${version}/Unciv.jar";
-    sha256 = "sha256-UN/M1G36nYy1mhKz0xA3/oZ8hWrkyeXWm9dMxL9PSDo=";
+    sha256 = "sha256-SgDfa3henwUb+oKybFJhvo1GkmC24wWz3U78etk+Dsk=";
   };
 
   dontUnpack = true;
diff --git a/third_party/nixpkgs/pkgs/games/warzone2100/default.nix b/third_party/nixpkgs/pkgs/games/warzone2100/default.nix
index ce330536b7..a90f76743d 100644
--- a/third_party/nixpkgs/pkgs/games/warzone2100/default.nix
+++ b/third_party/nixpkgs/pkgs/games/warzone2100/default.nix
@@ -1,24 +1,19 @@
 { lib
-, mkDerivation
+, stdenv
 , fetchurl
 , cmake
 , ninja
-, zip, unzip
+, zip
 , pkg-config
 , asciidoctor
 , gettext
 
-, qtbase
-, qtscript
 , SDL2
 , libtheora
 , libvorbis
 , openal
 , openalSoft
-, glew
 , physfs
-, fribidi
-, libXrandr
 , miniupnpc
 , libsodium
 , curl
@@ -27,6 +22,9 @@
 , harfbuzz
 , sqlite
 , which
+, vulkan-headers
+, vulkan-loader
+, shaderc
 
 , withVideos ? false
 }:
@@ -39,27 +37,22 @@ let
   };
 in
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   inherit pname;
-  version  = "3.4.1";
+  version  = "4.0.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/releases/${version}/${pname}_src.tar.xz";
-    sha256 = "0savalmw1kp1sf8vg5aqrl5hc77p4jacxy5y9qj8k2hi2vqdfb7a";
+    sha256 = "1d94072yns2xrjpagw1mqq7iyywhwz7vn3lgjdwmbgjy79jzcs1k";
   };
 
   buildInputs = [
-    qtbase
-    qtscript
     SDL2
     libtheora
     libvorbis
     openal
     openalSoft
-    glew
     physfs
-    fribidi
-    libXrandr
     miniupnpc
     libsodium
     curl
@@ -67,14 +60,18 @@ mkDerivation rec {
     freetype
     harfbuzz
     sqlite
+    vulkan-headers
+    vulkan-loader
   ];
 
   nativeBuildInputs = [
+    pkg-config
     cmake
     ninja
-    zip unzip
+    zip
     asciidoctor
     gettext
+    shaderc
   ];
 
   postPatch = ''
diff --git a/third_party/nixpkgs/pkgs/games/wesnoth/default.nix b/third_party/nixpkgs/pkgs/games/wesnoth/default.nix
index 205937028a..6eedc446f5 100644
--- a/third_party/nixpkgs/pkgs/games/wesnoth/default.nix
+++ b/third_party/nixpkgs/pkgs/games/wesnoth/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wesnoth";
-  version = "1.14.15";
+  version = "1.14.16";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "wesnoth";
     repo = "wesnoth";
-    sha256 = "sha256-HbQy5yhNe6HFydipqh2wWcyLfIjbdRjcBQaqAOtBJsY=";
+    sha256 = "sha256-QMz7atxol18r//UNb6+H6xAAEQdR4hAN8UW0KeGSH1g=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix b/third_party/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
index e25deb4c77..7302cfb25b 100644
--- a/third_party/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
+++ b/third_party/nixpkgs/pkgs/misc/drivers/foo2zjs/default.nix
@@ -1,11 +1,12 @@
 { lib, stdenv, fetchurl, foomatic-filters, bc, unzip, ghostscript, systemd, vim, time }:
 
 stdenv.mkDerivation rec {
-  name = "foo2zjs-20180519";
+  pname = "foo2zjs";
+  version = "20210116";
 
   src = fetchurl {
-    url = "http://www.loegria.net/mirrors/foo2zjs/${name}.tar.gz";
-    sha256 = "1rmw4jmxn2lqp124mapvnic0ma8ipyvisx2vj848mvad5g5w9x3z";
+    url = "http://www.loegria.net/mirrors/foo2zjs/foo2zjs-${version}.tar.gz";
+    sha256 = "14x3wizvncdy0xgvmcx541qanwb7bg76abygqy17bxycn1zh5r1x";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/third_party/nixpkgs/pkgs/misc/rkdeveloptool/default.nix b/third_party/nixpkgs/pkgs/misc/rkdeveloptool/default.nix
index 9ef7013fbf..517a8cc653 100644
--- a/third_party/nixpkgs/pkgs/misc/rkdeveloptool/default.nix
+++ b/third_party/nixpkgs/pkgs/misc/rkdeveloptool/default.nix
@@ -2,19 +2,22 @@
 
 stdenv.mkDerivation {
   pname = "rkdeveloptool";
-  version = "unstable-2019-07-01";
+  version = "unstable-2021-02-03";
 
   src = fetchFromGitHub {
     owner = "rockchip-linux";
     repo = "rkdeveloptool";
-    rev = "6e92ebcf8b1812da02663494a68972f956e490d3";
-    sha256 = "0zwrkqfxd671iy69v3q0844gfdpm1yk51i9qh2rqc969bd8glxga";
+    rev = "e607a5d6ad3f6af66d3daf3f6370e6dc9763a20d";
+    sha256 = "08m0yfds5rpr5l0s75ynfarq3hrv94l3aadld17cz5gqapqcfs2n";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ libusb1 ];
 
+  # main.cpp:1568:36: error: '%s' directive output may be truncated writing up to 557 bytes into a region of size 5
+  CPPFLAGS = "-Wno-error=format-truncation";
+
   meta = with lib; {
     homepage = "https://github.com/rockchip-linux/rkdeveloptool";
     description = "A tool from Rockchip to communicate with Rockusb devices";
diff --git a/third_party/nixpkgs/pkgs/misc/uboot/default.nix b/third_party/nixpkgs/pkgs/misc/uboot/default.nix
index f8f3df665d..6c59c13d12 100644
--- a/third_party/nixpkgs/pkgs/misc/uboot/default.nix
+++ b/third_party/nixpkgs/pkgs/misc/uboot/default.nix
@@ -192,6 +192,7 @@ in {
       platforms = ["aarch64-linux"];
       license = lib.licenses.unfreeRedistributableFirmware;
     };
+    BL31="${armTrustedFirmwareRK3399}/bl31.elf";
     filesToInstall = ["u-boot.itb" "idbloader.img"];
     postBuild = ''
       ./tools/mkimage -n rk3399 -T rksd -d ${rkbin}/rk33/rk3399_ddr_800MHz_v1.24.bin idbloader.img
diff --git a/third_party/nixpkgs/pkgs/misc/vim-plugins/generated.nix b/third_party/nixpkgs/pkgs/misc/vim-plugins/generated.nix
index b67726cd58..caaeb85388 100644
--- a/third_party/nixpkgs/pkgs/misc/vim-plugins/generated.nix
+++ b/third_party/nixpkgs/pkgs/misc/vim-plugins/generated.nix
@@ -65,12 +65,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2021-03-26";
+    version = "2021-03-30";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "655f0070cd2ce575f81092d1faac739fd116b515";
-      sha256 = "1g85cy5nmc1h2bkwm46qzsx6m19cm8mk9knyb88zanf23bj4w9xc";
+      rev = "06f57ca9733aab6e6b67015917fdfd4bf1c70c48";
+      sha256 = "0nsphdv6k5v0qa4p35g4j99pa68fwn7bll4jpvdqs74p82589dhd";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -209,12 +209,12 @@ let
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2021-03-14";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "aa1c0b161a82ecf876ca3fc2894e9000225f4adf";
-      sha256 = "13cinglppisp20mki1g23iz3kp5l9bq1yj89yip80y5kzb0aqsbj";
+      rev = "52f7f0c686188ba132dd362fde64f45c30ef431a";
+      sha256 = "1512gd0z8wl8i6pc3gya9qg2pq9k5bfx9b7h2sgp8v356rjx21ks";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -257,12 +257,12 @@ let
 
   barbar-nvim = buildVimPluginFrom2Nix {
     pname = "barbar-nvim";
-    version = "2021-03-29";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "f62ab294b9e4b3f5754c55d747d9ba513c7743e7";
-      sha256 = "15lc6mrnzkc9bglgg8j9wn224raqbvd3k9wm6hjj5fb36ff6dlb5";
+      rev = "9c80bfbce9f9b2bdbb42ad9cebfeba6a3dd9a9a8";
+      sha256 = "10dln43kjafj7vaf7s2yvxvc1vaga7rygnl4819275ardjpgddgs";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -389,12 +389,12 @@ let
 
   chadtree = buildVimPluginFrom2Nix {
     pname = "chadtree";
-    version = "2021-03-30";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "a66c3f191f64137e76b4df462177690faaf5faf9";
-      sha256 = "1ijwfwi5a98zphwxkm1dx4kz1042a268fg02f21r7ssd0fh7fjv9";
+      rev = "cd20e2323045c7dda2d42af64fa86a7325752a55";
+      sha256 = "1jhxdfvvdvbar9gdzsjvxs8brckww454f2agf2ariwndakcinqqn";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -485,12 +485,12 @@ let
 
   coc-explorer = buildVimPluginFrom2Nix {
     pname = "coc-explorer";
-    version = "2021-03-29";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "weirongxu";
       repo = "coc-explorer";
-      rev = "f5bd5b3cdf43a281eb067ae7d25a30f1d32175ce";
-      sha256 = "0w4j5p15swlq5qgij140fjjhk9by8bva9rkz8z6kc6262rhq0vl7";
+      rev = "259d681b368dd0ea11e3b62bbb537c4eece2ef6a";
+      sha256 = "1vzfx5ajjd4fq3n9ixj80l7gwq6wmiib899ww27sc5v4fkm5ykf6";
     };
     meta.homepage = "https://github.com/weirongxu/coc-explorer/";
   };
@@ -545,12 +545,12 @@ let
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2021-03-30";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "5e4dcf72bf47aabb8b579b16812dacdac5b2e77c";
-      sha256 = "18129hfwd98xsfrqgv95m9kginr0y95i7h6dg91wa0pmlqfv61al";
+      rev = "d3e40ceabd76323c07434fc2711521cc8bb2d028";
+      sha256 = "0mppsxzcgxg20kf2zwja8r6gascxa9r9c7zh73i00i7n216f8fxd";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -630,12 +630,12 @@ let
 
   compe-tabnine = buildVimPluginFrom2Nix {
     pname = "compe-tabnine";
-    version = "2021-03-21";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "compe-tabnine";
-      rev = "ae0d64e63e80bf3c4f3e88d2e6d3f837332e0a81";
-      sha256 = "152ydvfdp0ny95y6n17wsds4kj19fsbkrzd2whc1zbqi5qzsn0ww";
+      rev = "e27296ab377fed567812876bebfd74487062d518";
+      sha256 = "0jmn0s398896109j7k8bni2f5qgd63xjnjsmqkljlpc9zvhy1fbz";
     };
     meta.homepage = "https://github.com/tzachar/compe-tabnine/";
   };
@@ -702,12 +702,12 @@ let
 
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2021-03-17";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "a2298d12aaa2065f4a395f017ee1f3d392db283c";
-      sha256 = "0ifmv5n0mvvlasa56kr6bwnlm7p1y59kxmvpbdw42cp3az9mcrhj";
+      rev = "46b766dee43a97266741087085889751b474fb56";
+      sha256 = "1034n76bg4p4yvqmz9g9clsrrhx0kvqs0z8fy6p9axmxqzi8z9rr";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
@@ -738,12 +738,12 @@ let
 
   Coqtail = buildVimPluginFrom2Nix {
     pname = "Coqtail";
-    version = "2021-03-16";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "whonore";
       repo = "Coqtail";
-      rev = "7365334fe6326c5b8d8d98cad3f0da583414ebf7";
-      sha256 = "0ilqqf9ghwi7zj01y1arbvdds79hkkq0hj8r639g7q2gc3j4vfi9";
+      rev = "54b9cbf9da4a956dc55cd903f3b4f7b211b712a2";
+      sha256 = "0ir10ff5va38ch52fvyl5cfz4mjins3lpklqyh23rrqc0hfd8154";
     };
     meta.homepage = "https://github.com/whonore/Coqtail/";
   };
@@ -846,12 +846,12 @@ let
 
   dart-vim-plugin = buildVimPluginFrom2Nix {
     pname = "dart-vim-plugin";
-    version = "2021-03-09";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "dart-lang";
       repo = "dart-vim-plugin";
-      rev = "a2821046c45d25258aeddd4d64d607070b93dd88";
-      sha256 = "0wpsv0qz5dyp484ilvlkmd8jlb6b9s0p96lsw103jpj1dlf2n7la";
+      rev = "d874c13dca7300178546de62e1aff7d4812640c7";
+      sha256 = "1i1w9mwmrl6cds83mai1xyqrqmzbgal2whw653g54sz1gvnhab7s";
     };
     meta.homepage = "https://github.com/dart-lang/dart-vim-plugin/";
   };
@@ -942,24 +942,24 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2021-03-29";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "4bf092244dac9c8d21e22039979fa3afe240e5c5";
-      sha256 = "1rybc152mv33xj460nk0g9gl4lkm342kp8b3w32mmb6s35iz9prl";
+      rev = "452b1800ad2f2db96847da857f9a0d67ff6ecc95";
+      sha256 = "0rhqi6rc3iz549g95m6m6s10hzihyg3fjj4v8dhic3iqpxilw8l8";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2021-03-15";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "f0f28abb21dba278c041f6cb6c71585d9e3bed00";
-      sha256 = "05q8zm3hmc2rbw7hq0ri0f4jgqjh399dfrm5lpi2jmwf9hkqy0yc";
+      rev = "09598d454ce12753c562a596b6c6b798537a8e67";
+      sha256 = "0vmkgb6fy9vi2spvgqf242vn37yj6sjs68ddz37948l5nazalhrl";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1184,12 +1184,12 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2021-03-14";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "b05a60c81572994eb9b4e1aa5c1c5dba98e10349";
-      sha256 = "02dfns6ay9vi580nazzqfj858g0bhi3dwpd5kgg03gk38ybmxvgz";
+      rev = "20d181d84c108ea2b13ce227e9dd5ae13df0e13e";
+      sha256 = "058bb2pznmldk8936d69ynqf79apiv0j39sva68qpqmsixnljnz9";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
@@ -1280,12 +1280,12 @@ let
 
   editorconfig-vim = buildVimPluginFrom2Nix {
     pname = "editorconfig-vim";
-    version = "2020-11-18";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "editorconfig";
       repo = "editorconfig-vim";
-      rev = "047c4b455b9d56adee63a52d6d7cdf5bb6521d53";
-      sha256 = "0v7zbvpwmp1ypv5q0xy6p98l5g4ywcgyz3w1zrh9pz3m9hxa354d";
+      rev = "f305bc77faef4b418aee65682d7d147f64cfd5a9";
+      sha256 = "1yr8jni3z9sf348d8zw532vj4s1ww62yfslfcdgkgwhba1l2vy53";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/editorconfig/editorconfig-vim/";
@@ -1547,12 +1547,12 @@ let
 
   galaxyline-nvim = buildVimPluginFrom2Nix {
     pname = "galaxyline-nvim";
-    version = "2021-03-19";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "galaxyline.nvim";
-      rev = "19488f58e7fce74d7f773402005b2014b6d3c9f1";
-      sha256 = "16lk7gqhz1bhhszwybpa6805yina38h52nqza17gvz17aqkc6zy3";
+      rev = "505bd8a2912f75b3c9cc439db3bd31ae514230cd";
+      sha256 = "0w2prdcp48z15r9j9z20y6kgasnzjhfk0d3pig560ifk0x33n4ba";
     };
     meta.homepage = "https://github.com/glepnir/galaxyline.nvim/";
   };
@@ -1643,12 +1643,12 @@ let
 
   gitsigns-nvim = buildVimPluginFrom2Nix {
     pname = "gitsigns-nvim";
-    version = "2021-03-29";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "21e86b0a5e6870c227f1f922104816f861dc4066";
-      sha256 = "0q6inyqkwxpiqq48744bcr2inkvlvnp3dycanbnkyb5828dd0gxz";
+      rev = "f66a368efa3cf605673492fd7afde80117aa2103";
+      sha256 = "1lyjdnizif33g3bfrrmrxwgvavyvn260h08c49ai4il5vpgs8ap4";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -1667,12 +1667,12 @@ let
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow-nvim";
-    version = "2021-03-17";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "npxbr";
       repo = "glow.nvim";
-      rev = "ba97852b0279ed44d0e06c8bcac17aef2a18ad80";
-      sha256 = "02ajb5y5zj5h8dyzzyl55b6izh6bxlmqy48nasig1n68rpdwc0ni";
+      rev = "89b4edfcb70529d9c713687aa6fcfa76a2010ae0";
+      sha256 = "0qq6cjzirr4zicy2n259sxi2ypz7w740qaf4a4vhphh4rd6gi18w";
     };
     meta.homepage = "https://github.com/npxbr/glow.nvim/";
   };
@@ -1811,12 +1811,12 @@ let
 
   hop-nvim = buildVimPluginFrom2Nix {
     pname = "hop-nvim";
-    version = "2021-03-28";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "phaazon";
       repo = "hop.nvim";
-      rev = "a89898aefbb18d2c804c049c63c009203f810f08";
-      sha256 = "0gncq9blz0rqvybljfpg3qndmdyv8hh3w7yqx7l6h2czhm7ympvi";
+      rev = "414b9aae83d7b13559ed5031995363fa6c4841f3";
+      sha256 = "05cajsdfys608mb5379aj70w4f7pp7x3x3f5c2aryij5fg0mnx5j";
     };
     meta.homepage = "https://github.com/phaazon/hop.nvim/";
   };
@@ -2026,6 +2026,18 @@ let
     meta.homepage = "https://github.com/davidhalter/jedi-vim/";
   };
 
+  jellybeans-nvim = buildVimPluginFrom2Nix {
+    pname = "jellybeans-nvim";
+    version = "2021-04-05";
+    src = fetchFromGitHub {
+      owner = "metalelf0";
+      repo = "jellybeans-nvim";
+      rev = "736aa1024741871aa5902ae5a7d5fb21192b4fa1";
+      sha256 = "13k3hf2y979xk3j4q4pwwhrxv0mw320ri4nyg3q39j3fprkryxs7";
+    };
+    meta.homepage = "https://github.com/metalelf0/jellybeans-nvim/";
+  };
+
   jellybeans-vim = buildVimPluginFrom2Nix {
     pname = "jellybeans-vim";
     version = "2019-06-22";
@@ -2064,12 +2076,12 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2021-03-05";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "ebafbe4e5fbeee5f6af70fb46e51bd10b00fd589";
-      sha256 = "1i7ylv0pwvqqaggvdcv8n2sm4wdfny76kny2qp21r47xj6dyw2sf";
+      rev = "21ab5e899db6ad963b30102e14fb13be8eeb454c";
+      sha256 = "1m3jgj47pq21ra3znccpgkln42h03799fc845zrrsv186fhqmrjr";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
@@ -2292,12 +2304,12 @@ let
 
   lsp-status-nvim = buildVimPluginFrom2Nix {
     pname = "lsp-status-nvim";
-    version = "2021-03-29";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "lsp-status.nvim";
-      rev = "8c955dbe4a8e0a9fc0ab8a237ebd7ff25c63d482";
-      sha256 = "137h4sbhdjrf383kl3sskx90m40j8xsjhq37p2m7b0mjpdzq3mzz";
+      rev = "60a3ad9dc2f43e0e512c242411541846a86eb7de";
+      sha256 = "08x8k06i6gl802fsp4sgvdcml35n4hnljwwxsgfyzwlcwx9llxlw";
     };
     meta.homepage = "https://github.com/nvim-lua/lsp-status.nvim/";
   };
@@ -2340,12 +2352,12 @@ let
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine-nvim";
-    version = "2021-03-29";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "hoob3rt";
       repo = "lualine.nvim";
-      rev = "a2721e5adabaa9535768bde7155c6f1dfac59418";
-      sha256 = "0rz4gl0jwl8r8alcwpl7q5836gfhwr4kpgl19xdf6grpa88fp7zw";
+      rev = "7f1d7ba3fbd098d2afd0ee445e5889aca0ffe968";
+      sha256 = "0qbv46byksmbnw068q57v5w4ss3bayxm433kidxdabs80msikhhz";
     };
     meta.homepage = "https://github.com/hoob3rt/lualine.nvim/";
   };
@@ -2412,12 +2424,12 @@ let
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap-vim";
-    version = "2021-03-23";
+    version = "2021-03-30";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "31e22971ba5f5f3e5955fa8e2247b6cd22c3f7b1";
-      sha256 = "19hg4nnwdr6mj9wyrcapg91vm2bzvcsfbvjkirdsxp2v3ca83w2i";
+      rev = "a7af085a6f549875f7721caa7cd3071fba800597";
+      sha256 = "0chzim7i3mq156n8zyay4prvyj306z6lqxdljzrz7j4mmkarcxl1";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -2724,12 +2736,12 @@ let
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2021-03-27";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "2f504fcf734ddb6b281a93e01782ecb0dae0774e";
-      sha256 = "07yjlqjkxz3g1vk2jd4ns7dppi0lmmzrb6ihj5vhvxgc6nfkh7gg";
+      rev = "ac8d7e1942a947eb335d77c3e611a526a4e24d4e";
+      sha256 = "1jnyybcj9g26wrwq6i7yq7bpncywfqm957dy4lq0s531yv6m3yly";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -2772,12 +2784,12 @@ let
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
     pname = "neosnippet-snippets";
-    version = "2021-03-08";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "97ce53528ded53cc2355acb64d285a6291cca099";
-      sha256 = "0kms714cgryajrjmw0fpxv8k5xdrs6jz68jqd5hj4cs8rj72vpjk";
+      rev = "3ae169d555afb0dd8a3be4b0bb20c38efda62e68";
+      sha256 = "1kjlhlnjf69hnl7aw11d211psi18qyb4l6k49xr868h7nrc2bns2";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
@@ -2856,12 +2868,12 @@ let
 
   nerdcommenter = buildVimPluginFrom2Nix {
     pname = "nerdcommenter";
-    version = "2021-02-27";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdcommenter";
-      rev = "16ecc429ec2792ba5c972f0a920dc14223b7bd4a";
-      sha256 = "03hfkfw34scbw127gmihxa6x9f02y979ig2204br508rz75qqfaw";
+      rev = "6d0ab7dec9306fada667ea71edbb3da2b06a40ad";
+      sha256 = "0w5vaz7f8r61rizlgn3x9p3yzxw2aca1a76gb0zpalc2n51bdf9s";
     };
     meta.homepage = "https://github.com/preservim/nerdcommenter/";
   };
@@ -2880,12 +2892,12 @@ let
 
   nerdtree-git-plugin = buildVimPluginFrom2Nix {
     pname = "nerdtree-git-plugin";
-    version = "2021-03-29";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "Xuyuanp";
       repo = "nerdtree-git-plugin";
-      rev = "bce6e0a6f0000388f0864f909648a45b97cb8333";
-      sha256 = "198ijzy9y0g8lypyvvc4xfz9pdikyfc8ycsds7j4y0s2gla2lsa8";
+      rev = "73da0283ead8fa2bbce83d219fcab3ba1e8cf0dd";
+      sha256 = "17n79pmpnjnp6nirz4m4wwgfacrg26bdzjn4xj8i6ldkff5n20km";
     };
     meta.homepage = "https://github.com/Xuyuanp/nerdtree-git-plugin/";
   };
@@ -2976,12 +2988,12 @@ let
 
   nvcode-color-schemes-vim = buildVimPluginFrom2Nix {
     pname = "nvcode-color-schemes-vim";
-    version = "2021-03-30";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "ChristianChiarulli";
       repo = "nvcode-color-schemes.vim";
-      rev = "3164eaafe82249f97352bd11b123117306703507";
-      sha256 = "0d1adly3h4hd4hdj11i1w2xl1cn2vgp6vmyqwd8jl906ziydbqhr";
+      rev = "29d4a787ad847c267ba836c82e71bfc0a8346c47";
+      sha256 = "0id5abls81yy9n8zvailrqljq5gd70x2wg3vbajrman8phpy7m9z";
     };
     meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/";
   };
@@ -3012,24 +3024,24 @@ let
 
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2021-03-27";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "0c568588354c8aec104bb5dcbf833c9e7dfb89b4";
-      sha256 = "0kzncj80vibfypncc8jnc7wnnywj6ibylshzljpq60d88ib1py8k";
+      rev = "cf9b92326411640891360c7bdd784967a8923f43";
+      sha256 = "14jd99i35yl04jhwnccj6bx80xwpn9fl5i3bpd7b7safpd6gfk8m";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
 
   nvim-bufferline-lua = buildVimPluginFrom2Nix {
     pname = "nvim-bufferline-lua";
-    version = "2021-03-26";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "nvim-bufferline.lua";
-      rev = "e6953ebd37d79c8656cde6fae5ecf5aeb2483f47";
-      sha256 = "0k945yi8laaf0y1j770m6ywzbp6g5fl7k0dgk1hf3p1hczy6nhbm";
+      rev = "2043d254017002c4862afefbacd5d1bd7fe94e55";
+      sha256 = "062kg1vq3b09b009n75kijfs9hlfmlj1yfsnd517imm9n5xhvfmr";
     };
     meta.homepage = "https://github.com/akinsho/nvim-bufferline.lua/";
   };
@@ -3060,12 +3072,12 @@ let
 
   nvim-compe = buildVimPluginFrom2Nix {
     pname = "nvim-compe";
-    version = "2021-03-30";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-compe";
-      rev = "e594493d79757523727034d0a1401cb9dbf88933";
-      sha256 = "042gg8x07irf66lhnvrj1i6p496f2jks165599x7f58d0hmbg8r3";
+      rev = "9fc416854685a8e05836b70d477d9bbbddefcd3b";
+      sha256 = "1irasadwqdijqixbbbysd50qh1rfhfkhfljz2438hiv3ayvj4aad";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-compe/";
   };
@@ -3120,12 +3132,12 @@ let
 
   nvim-highlite = buildVimPluginFrom2Nix {
     pname = "nvim-highlite";
-    version = "2021-03-29";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "Iron-E";
       repo = "nvim-highlite";
-      rev = "1f04af27eace7dd790ce620b36ba23aac4c8086e";
-      sha256 = "0hri0rxmzy7kgfj9w729h67qmg373c2rz31racsn1vq7anm33im7";
+      rev = "ff28f2dde464a9e105c7dc041127eb60059d955a";
+      sha256 = "089019br0f3massc2sz3l0r8cjc33i5qqwbm4k7cz50x71g89wrq";
     };
     meta.homepage = "https://github.com/Iron-E/nvim-highlite/";
   };
@@ -3180,12 +3192,12 @@ let
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2021-03-28";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "a59ec2ec448772eae3fbf3854b9787c991bb38c6";
-      sha256 = "1c6dd38sy2apkjx5jrkm09pk9yrczbzf29lhc7clgi89196hvirh";
+      rev = "225859876bb8f9df7417f008ca790e0b2753eeab";
+      sha256 = "0ca67kb4706adihsyk6gdx0rf8wslw1ph82dprszpqla2gf1gqjn";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -3216,12 +3228,12 @@ let
 
   nvim-peekup = buildVimPluginFrom2Nix {
     pname = "nvim-peekup";
-    version = "2021-03-20";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "gennaro-tedesco";
       repo = "nvim-peekup";
-      rev = "11b7719ab73a7d69b081b129927c6dc8638518c6";
-      sha256 = "1y9ff1plfd592jdy4v0m9ivkg293fjmz5ssaf20hmx4x5rlz871l";
+      rev = "2f03df68bced26399b7576818b3cded3ce334ca0";
+      sha256 = "1bap28b9jbaywll50mwjfp91i0h671762ylgy3fxhnayf78py00d";
     };
     meta.homepage = "https://github.com/gennaro-tedesco/nvim-peekup/";
   };
@@ -3264,36 +3276,36 @@ let
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree-lua";
-    version = "2021-03-26";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "709d6b968bd905db03521ea3f44bfcb56e4a2c03";
-      sha256 = "08amszn1a2dd8xs5339yhmjbwwhnwxxzzav8rhy1va48mq7safmr";
+      rev = "3350e4e97e51be10de9aca0617b665c9259d3089";
+      sha256 = "1vp6nsyhnwhnqkpgqll4b2x4pcxc8wsc7xy0nq2i1a5qjrpbb4ss";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2021-03-27";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "0df7c4aa39a6097e112f001520d2cea257440ed7";
-      sha256 = "1pb3nvq8f1nvpp184gwqs386kimxvca3wjrdiz74mb5jkhz1khq1";
+      rev = "11e1db3ec29abb5711556085766cb6912814c6dc";
+      sha256 = "0fsmbf8hnhcxxp8m738lmm75wg2ijxj8z0755aj0mcs8s735pjxz";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-context";
-    version = "2021-03-29";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "nvim-treesitter-context";
-      rev = "8ab639bcf22f902e7d55ee34698ef07b178ac0a3";
-      sha256 = "0wfiij0dsxl8l7v6hvjh73qm51hbipqzy8cmssshssr4f8q2dnzg";
+      rev = "5bc62fd2b09f4ddaf8d300c63d79140789797020";
+      sha256 = "1p97llbki41mwicsmqdly6lns7vfn9pgd961jpc980pj0df792gq";
     };
     meta.homepage = "https://github.com/romgrk/nvim-treesitter-context/";
   };
@@ -3312,36 +3324,36 @@ let
 
   nvim-treesitter-textobjects = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-textobjects";
-    version = "2021-03-16";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-textobjects";
-      rev = "29b9e29cef885293ba02a590ba1f6618df8c3018";
-      sha256 = "0gnpkdglm2y35n6ffmb0mj70j7ka94x8y2xl46z5d3312iimi30c";
+      rev = "111cf356fd5c6c52d2dfb9299a76d201624be3cc";
+      sha256 = "1dvfwcdj2cbgxlsw09qgsvym8cvg8jval90h4rwmkn7yzh1wyf7a";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
   };
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2021-03-29";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "34e859ab43998bc107eae7fa022c52e3a7e43e13";
-      sha256 = "1p76saf4br51sja0ba5nlkggs8nwn949311sk4a7whl3qiiy7h3r";
+      rev = "d463320156e7e3d85a98aca1f5292422fd3b5b12";
+      sha256 = "08sc8vd0arwyw3zpbnkmdp884fksw73yqzbw5fwddr3wn47sdckc";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2021-03-29";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-web-devicons";
-      rev = "664830d2b0de29d91f127f70ef877d3509554bc8";
-      sha256 = "0fs9nkfzwnbaj0l2l7l7gwf4kr8ciq8yzvwa5k816ra12vcvx00x";
+      rev = "95c6d6bc3a9b969578d555b98a7be8619c65908e";
+      sha256 = "15rw8qr52gi169x9cgs68dkm1f4blgqdrdmcqb7frqn8qjzaib9s";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-web-devicons/";
   };
@@ -3468,12 +3480,12 @@ let
 
   packer-nvim = buildVimPluginFrom2Nix {
     pname = "packer-nvim";
-    version = "2021-03-29";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "wbthomason";
       repo = "packer.nvim";
-      rev = "56c193d70a333a6bbf3d14bf8c150c071dea757a";
-      sha256 = "0x2swp6qs47q1y555n2l052in3bd3xf2q3064n5avwnksmqcnwvg";
+      rev = "b495895dffca9aabfead066a860b87ab3a67cf7e";
+      sha256 = "08anlafdhmxc66yi4h13fkvqpkq1chazmyy8c18nx41af4b0p9bn";
     };
     meta.homepage = "https://github.com/wbthomason/packer.nvim/";
   };
@@ -3564,12 +3576,12 @@ let
 
   plenary-nvim = buildVimPluginFrom2Nix {
     pname = "plenary-nvim";
-    version = "2021-03-28";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "626e2b150a1353b36d4994a613d35d397618c379";
-      sha256 = "10vws9nxqi0sjf0c9yg9401c9vfkgidracpcjk5n9qf0lgrnf22a";
+      rev = "720c304dc41da563857610e737ff281c250681ac";
+      sha256 = "0gcd88v2jykdgp7mqf10n9ydpg8gfb7258mxysjaf67313idh626";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -3781,12 +3793,12 @@ let
 
   registers-nvim = buildVimPluginFrom2Nix {
     pname = "registers-nvim";
-    version = "2021-03-28";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "tversteeg";
       repo = "registers.nvim";
-      rev = "037f6f46d6b88eca58952d65c14309967a7e7455";
-      sha256 = "14f4zpk7sfm6kx0wsqr5snfmpyadv819lraymy07wfb41kr2cgya";
+      rev = "b8f6283724d3ccacf2c7add61f3fcb9c02e7d61d";
+      sha256 = "1b1amy9k6j2ilcm79pp30gcqqjhbd2zfwxm5vbcra29p9s4f14y2";
     };
     meta.homepage = "https://github.com/tversteeg/registers.nvim/";
   };
@@ -3863,6 +3875,18 @@ let
     meta.homepage = "https://github.com/ccarpita/rtorrent-syntax-file/";
   };
 
+  rust-tools-nvim = buildVimPluginFrom2Nix {
+    pname = "rust-tools-nvim";
+    version = "2021-04-06";
+    src = fetchFromGitHub {
+      owner = "simrat39";
+      repo = "rust-tools.nvim";
+      rev = "42a9fb0441630ea640b7d3e967d6ad5c7f41b520";
+      sha256 = "0mcjcxhq2ri1galva5xjx4f0z98jyskmwypxc77gizisl2fjplnz";
+    };
+    meta.homepage = "https://github.com/simrat39/rust-tools.nvim/";
+  };
+
   rust-vim = buildVimPluginFrom2Nix {
     pname = "rust-vim";
     version = "2021-02-15";
@@ -4320,14 +4344,26 @@ let
     meta.homepage = "https://github.com/wellle/targets.vim/";
   };
 
+  taskwiki = buildVimPluginFrom2Nix {
+    pname = "taskwiki";
+    version = "2021-04-03";
+    src = fetchFromGitHub {
+      owner = "tools-life";
+      repo = "taskwiki";
+      rev = "23a3c20a7d5185700e1e6504c3808cfa9eff78d4";
+      sha256 = "0jwb4hcyqwpjaxlissvi69d6fx4dwb7ypdigc2w5hnhfw8nv0kb1";
+    };
+    meta.homepage = "https://github.com/tools-life/taskwiki/";
+  };
+
   tcomment_vim = buildVimPluginFrom2Nix {
     pname = "tcomment_vim";
-    version = "2021-03-29";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tcomment_vim";
-      rev = "7a9c1ea50b27a03c68d7b10267bef2c5aa5d46fb";
-      sha256 = "0vq6r9giqpz2ai2rawrrm2b70k5yl72jzifkcsrlqc5z575s4nla";
+      rev = "8b69645999fab1933faf4fb53ae930f7c4368e79";
+      sha256 = "1x4mwg8dvfw1plkifawckkdi7brqs9rxpm8irp1q7kfywiwbyw0y";
     };
     meta.homepage = "https://github.com/tomtom/tcomment_vim/";
   };
@@ -4371,12 +4407,12 @@ let
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-nvim";
-    version = "2021-03-29";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "2e03f67de9eab023098bd05916bf26556520a467";
-      sha256 = "1j3875fhs49bkpl39xfynhzm1mwlr6kdlnh3rpgyd60y7334fv8r";
+      rev = "d0cf646f65746415294f570ec643ffd0101ca3ab";
+      sha256 = "02l65jxd50x4jc7mv1d9bsqasa7m0vkil0b36jamhvp1syzkwhkj";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -4552,24 +4588,24 @@ let
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2021-02-09";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "66d81fc2c0bda30be69fffa46da0932ee8d5ddd5";
-      sha256 = "0fzpl2fj5kig8kbcn65ph6y3h412ryx5mfa15822lnsf8cmkr5db";
+      rev = "b974a13328071de45a85c62ab65c8bfed0142728";
+      sha256 = "1p93dmmprn415y8z44fl697wvh446w7dpskniissxwq4hfyqqgxh";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
 
   undotree = buildVimPluginFrom2Nix {
     pname = "undotree";
-    version = "2021-03-18";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "mbbill";
       repo = "undotree";
-      rev = "da7aeb3dc307a2995b6b761fe94cad61da9845e0";
-      sha256 = "1mg9r7kc4jpbmh8b0wcax82a80r0qjl2yq61cc55x7i91wssrj60";
+      rev = "101edfb795bc17b814efb12e6df6a884507a34f6";
+      sha256 = "0fa2iqgzc85955ixa4hf1mjy7sm7hrbkha5l1scganc9zswd5iv2";
     };
     meta.homepage = "https://github.com/mbbill/undotree/";
   };
@@ -4996,12 +5032,12 @@ let
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2021-03-28";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "Chiel92";
       repo = "vim-autoformat";
-      rev = "ba9dfa038b67d8df969366dbf8fde6644587662d";
-      sha256 = "1zd0fq6jy2p2qbch52d3838zmf5v5j8v3x4qa2r39fjidy93i099";
+      rev = "781c72c0625728eb5677a6952e57f282070666f8";
+      sha256 = "14l7h9h76x7cvvka8djn08dh3rmj34bycm8vqavh20nf2v8n9j2g";
     };
     meta.homepage = "https://github.com/Chiel92/vim-autoformat/";
   };
@@ -5152,12 +5188,12 @@ let
 
   vim-choosewin = buildVimPluginFrom2Nix {
     pname = "vim-choosewin";
-    version = "2019-09-17";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "t9md";
       repo = "vim-choosewin";
-      rev = "f91cdb9be92ce3bb9bccba16e8c659d5e8d7454f";
-      sha256 = "1nq1vpwv6h5sc849y26nzkrmr9w3aj6w32apyih9kx0jh4ybv0xs";
+      rev = "1ca7da94aa1b8761f4212194e3c55e4a080d6525";
+      sha256 = "0nr6k8g0l27g4lczsy30cnh1il547qgbs4xl936v43gp4wvybah4";
     };
     meta.homepage = "https://github.com/t9md/vim-choosewin/";
   };
@@ -5176,12 +5212,12 @@ let
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2021-03-26";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "a3b20219708ff9e08d9afd9689e6c34ca780d3f2";
-      sha256 = "0s03xsfblfk778g0yr6ykg509kx21i3rmnjff335nwq8nb1ldxkz";
+      rev = "97a2649ecb75cbad4081a9f575b2bb7f17582a3c";
+      sha256 = "0jn8iyhw80xasnp7b09yqjxa46jkcrfmy2r8b7ynxan9a37b206i";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -5356,12 +5392,12 @@ let
 
   vim-crates = buildVimPluginFrom2Nix {
     pname = "vim-crates";
-    version = "2019-11-11";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-crates";
-      rev = "addbb157d0652ce5288c5b5b6f32f8716eb47898";
-      sha256 = "1pczfm9vjjna3xdqym9h69gi47kiwi97lzjf9jjlkmyg1s4pwlsp";
+      rev = "96a40ee5c976390c142b0074d7a4a7e54b0cfa00";
+      sha256 = "0nd8w4rx1s0fnhxn0ngl3dxj94ar8vjn611684v5pbxdpj6b92fm";
     };
     meta.homepage = "https://github.com/mhinz/vim-crates/";
   };
@@ -5428,12 +5464,12 @@ let
 
   vim-dadbod = buildVimPluginFrom2Nix {
     pname = "vim-dadbod";
-    version = "2021-03-17";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "8d9dd450941b98df3f333923b807f799b8088f63";
-      sha256 = "1m0dlvz3ah54wwc5ahhjv4ynxp7crxl3092fspyzgr5fl2p94ida";
+      rev = "33c86149c0aa114a5d14a1a2f2b5cbcc78cc0116";
+      sha256 = "01rqs6hcfd1ih1hr8bbwl1f3g86q41g0jbvrn5fpdfr9ccjy2ip1";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
@@ -5704,12 +5740,12 @@ let
 
   vim-eunuch = buildVimPluginFrom2Nix {
     pname = "vim-eunuch";
-    version = "2020-08-07";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-eunuch";
-      rev = "4a4bf16b499dcde371c05c77ed4083c4b5228278";
-      sha256 = "1wclxqw3b4jcj34jb830551c9bbrsm79mp7aahbqnjgq025j53x0";
+      rev = "dbbbf853fc523d312f61b4bbdf2e13297645dcde";
+      sha256 = "0lwkzxz76pcmash56p14pf54blz9v9kw17qj2i5wa8wdcymia98l";
     };
     meta.homepage = "https://github.com/tpope/vim-eunuch/";
   };
@@ -5884,12 +5920,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2021-03-30";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "a1cb01da5b2c84ebfbe86a02bfb2e7ef9d830d50";
-      sha256 = "0bgccfzwjq3jj5iygi1dp8zmqa8c44zdm0qzblp710qrm3lrvzsk";
+      rev = "f29c9e50795cdfcc2b31b1e76ab6bd202e476298";
+      sha256 = "0wn3c4jads0201433kc8f9mnlg1phhgamr218yz1q70waj60ns2n";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -6004,12 +6040,12 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2021-03-28";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "bd89f4734555c60f53acaf21731bd43617e6e526";
-      sha256 = "0j5xkf8rk77q11h0cn96gymsa726p1dsvjs718plh8p94p0w42c3";
+      rev = "ce95699efa82921f80fdc0984d002ff81584c6e6";
+      sha256 = "0fq6i4arnzq5fmzy50kf2fb8bf5ickrrhs53la04x1jwx3lfzs05";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
@@ -6052,12 +6088,12 @@ let
 
   vim-gruvbox8 = buildVimPluginFrom2Nix {
     pname = "vim-gruvbox8";
-    version = "2021-02-06";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "lifepillar";
       repo = "vim-gruvbox8";
-      rev = "a03834cdaa686ef2758f670924fc048148dfd297";
-      sha256 = "1yh5p8s17kd1z4jqk6gd6vmap7f5jwqwhfbq2yi2xi3lb6xpvjc3";
+      rev = "acb2574d85f3878cd5ab82dc3579403c174dafc3";
+      sha256 = "17k3fcidsk26i9nnbk37jcgznypzwh0pzam03yayb6dw4n733mld";
     };
     meta.homepage = "https://github.com/lifepillar/vim-gruvbox8/";
   };
@@ -6148,12 +6184,12 @@ let
 
   vim-hexokinase = buildVimPluginFrom2Nix {
     pname = "vim-hexokinase";
-    version = "2021-02-25";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-hexokinase";
-      rev = "969d6362bd0ba09e97fefdb694a59e48eb028e9c";
-      sha256 = "02a96vaj7a9limd99b8fvhfmz1b4nzf0z48jdj98f9d5psfyx7cv";
+      rev = "6bd30278c7af4c624bf996650d62dac404342dc7";
+      sha256 = "1wimsi6pxhw410dbcgj4sr9q5k21066i762fyaaf424jyf1g8d2i";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/RRethy/vim-hexokinase/";
@@ -6281,12 +6317,12 @@ let
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2021-02-25";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "7dbacfb73f56b84d14fff993ff4869dfd4610443";
-      sha256 = "0msz6ip67saw9scxmdqgws3sy5hb4ihlhv72m7p5347fmm1cdh43";
+      rev = "43bccb5ceb400fd0cb8c2903f9d174d1bc8b64d4";
+      sha256 = "07cg09vzqpyg3ql8vl3gvr1sy0bzw55xwbhhipbpz2127a92pk00";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -6389,12 +6425,12 @@ let
 
   vim-javascript = buildVimPluginFrom2Nix {
     pname = "vim-javascript";
-    version = "2021-03-09";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "pangloss";
       repo = "vim-javascript";
-      rev = "c7593e69bf64c3157b50cd0aea257c5abb8ae6a0";
-      sha256 = "11792qbl0080s8kxprfzc0xnb3abw1zsvb4vq2fc61q50afn775j";
+      rev = "585ad542834fd3d9e47e0ef59abafd69c696c80d";
+      sha256 = "0y0lpx54yfmqbmvrhy95d0gp3qvrqn7ak7mdfsqlddp77gzs7qk2";
     };
     meta.homepage = "https://github.com/pangloss/vim-javascript/";
   };
@@ -6438,12 +6474,12 @@ let
 
   vim-jsdoc = buildVimPluginFrom2Nix {
     pname = "vim-jsdoc";
-    version = "2021-02-14";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "heavenshell";
       repo = "vim-jsdoc";
-      rev = "82b10427e9f3af270b3d3e252f2bcfafc61b221e";
-      sha256 = "1sxdk2infw12lf1lkw05zz1aqk1pirjfph9phma89q4hc1i5hndk";
+      rev = "fc059e80ff0b368a9188d6c16db052da6ac0951f";
+      sha256 = "03x8hhaf5mirk38gb8j7k3fk6jjis64a4r2hnvkgg6hwf9h02f2g";
     };
     meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
@@ -6498,12 +6534,12 @@ let
 
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2021-03-27";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "b417bfd95d573254de7dbc4efd2ee12301f2e4a1";
-      sha256 = "0ai14s0a2i5xiak2n102ji9nhhv3lgkr32prcdl9snfybniy9l7b";
+      rev = "f09007be7e477a491a478444b302d079104af23d";
+      sha256 = "06m9rf0c9nxmyz9qnri1lmyb7cljv3vz2njxvh3fz8q7hjghh6cd";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
@@ -6666,12 +6702,12 @@ let
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2021-03-29";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "4d4a90822461894caa8f39129dd5c16597e005c5";
-      sha256 = "0yixk6m7bn53g7q998g2z460yvf08d93yqq5xj0fc75z58fgmdhn";
+      rev = "bba0f45c892b3c815c65ce44f93bcbe118a40377";
+      sha256 = "0wsbh8hx9f5jjdpvzbyb664h927jc44sm6rj2j6r9w6l2m8kr860";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -6751,12 +6787,12 @@ let
 
   vim-matchup = buildVimPluginFrom2Nix {
     pname = "vim-matchup";
-    version = "2021-03-30";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "andymass";
       repo = "vim-matchup";
-      rev = "b3bd7fc61a35ef45b83a3577792f75922fced77b";
-      sha256 = "0x9iq1d76ivdw1jfj6d04gkbxqqcagyhhq89ld2wgwcgc68ipixw";
+      rev = "e54d6250d7487f008b9f4712a521144b83d6d4bb";
+      sha256 = "1x0a8hirs9szx4l3lsb79rmsa8d6ial2r8lxhp1r9vf3d0b71zcl";
     };
     meta.homepage = "https://github.com/andymass/vim-matchup/";
   };
@@ -7075,12 +7111,12 @@ let
 
   vim-oscyank = buildVimPluginFrom2Nix {
     pname = "vim-oscyank";
-    version = "2021-03-18";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "ojroques";
       repo = "vim-oscyank";
-      rev = "a4270c71344c146959f166cad14e9f56bd2611e0";
-      sha256 = "027idhv524qqp54scfdb6zbwjwalff80aji6w5q9c02k8hvnc2v7";
+      rev = "5b48c13143e55c234e8bf5bcfa2439b9ffa85241";
+      sha256 = "1njxf2vwd9jfpjybx0f5c7k7fhlzmdwkwsflb9rkgv0pz3l0wkqb";
     };
     meta.homepage = "https://github.com/ojroques/vim-oscyank/";
   };
@@ -7315,12 +7351,12 @@ let
 
   vim-projectionist = buildVimPluginFrom2Nix {
     pname = "vim-projectionist";
-    version = "2021-03-21";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-projectionist";
-      rev = "7d2853e7550e6ff6459096c211a4177303a2e5d2";
-      sha256 = "0qvsm0bd5nbd0dcgcrsa45vxmb4ccsm6yn4j3xiwd52gnyacp14s";
+      rev = "8dda7acb7e24b44ef691ba19b35f585e97e91b30";
+      sha256 = "0laqkgwv6hq1ix3kahvx0sfb8c7ifx61z2n4npqswpn0ri4ckd2j";
     };
     meta.homepage = "https://github.com/tpope/vim-projectionist/";
   };
@@ -7435,12 +7471,12 @@ let
 
   vim-racer = buildVimPluginFrom2Nix {
     pname = "vim-racer";
-    version = "2021-02-15";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "racer-rust";
       repo = "vim-racer";
-      rev = "c7f5ec42af992a090be35301847548064e8fc806";
-      sha256 = "0vqjxcnw9cklnqyc1c39wnwirk4hhmsnyqgq4rl7ph084xqnnmrr";
+      rev = "d1aead98a936cd8165b3329511d7c987226eb3a6";
+      sha256 = "11f6iw9c59kdjcdkzn27szpi0bxhpp42qmlannnqzm49ssl817vv";
     };
     meta.homepage = "https://github.com/racer-rust/vim-racer/";
   };
@@ -7495,12 +7531,12 @@ let
 
   vim-rhubarb = buildVimPluginFrom2Nix {
     pname = "vim-rhubarb";
-    version = "2021-03-16";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rhubarb";
-      rev = "3d444b5b4f636408c239a59adb88ee13a56486e0";
-      sha256 = "084k5kz7l8hydw072gzjci3nhrfxymszzyk10s5qkq223986vhvv";
+      rev = "71d5c3598e0d14af3fbaf2530c061c306db5a962";
+      sha256 = "03izgmaa150159lp43hsn17yqx0w8r8wa04cf1rnk1zw00zr2073";
     };
     meta.homepage = "https://github.com/tpope/vim-rhubarb/";
   };
@@ -7699,12 +7735,12 @@ let
 
   vim-sleuth = buildVimPluginFrom2Nix {
     pname = "vim-sleuth";
-    version = "2019-11-16";
+    version = "2021-04-01";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-sleuth";
-      rev = "ea3f065f23cd0592062b8226c8fef08b6af3b459";
-      sha256 = "17w4m6zg1izcs75isy1jdzycgdr1ml1f5wqf1bjq80qgy3f28znp";
+      rev = "38bd4010110614822cde523ebc5724963312ab63";
+      sha256 = "1qng5ndxsmkjgrdhlbdysr97b6pyz6faiqaayjkwpc69hnv2y79v";
     };
     meta.homepage = "https://github.com/tpope/vim-sleuth/";
   };
@@ -7783,12 +7819,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2021-03-25";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "67e506c5598c19de4fcdf8780377a92aaddfdbad";
-      sha256 = "1gabnzgrjkrf2x32i55js8xf6zm0vzwnzmlbwqkjf1xi25wgbx1n";
+      rev = "4600da87a064bf63b37c7135be154b34c40dec20";
+      sha256 = "0vm59wkzxwmpksccv8j9ry6mm0byl75hzb73yn57zdm7s7kv2398";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -7855,12 +7891,12 @@ let
 
   vim-startify = buildVimPluginFrom2Nix {
     pname = "vim-startify";
-    version = "2021-03-13";
+    version = "2021-04-02";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-startify";
-      rev = "d663f4db7a572f9a56c39ae17801a5a7eae81d20";
-      sha256 = "1lwpisz91hs7bjsvi4rjczi95s05kq0k241i8h3mblpsnpv8zm33";
+      rev = "5ee8914b26e9f0b2d8ec01b3cef8c46e7a3954b5";
+      sha256 = "0zg100sjbn7952ayqligpkfqvrh1qwr2q6pjqs5cnsyl5xs411v2";
     };
     meta.homepage = "https://github.com/mhinz/vim-startify/";
   };
@@ -8012,12 +8048,12 @@ let
 
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2021-03-25";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "a0a3f130dddfde95700f8d07e51884a2bc0a53c4";
-      sha256 = "07qv8l3rz63ksrv8shphqk42p1yzcjjck6s5sv3sz2z1xwr2dy0x";
+      rev = "206eb5492b4afa03c31cea529aa917b4a7085d10";
+      sha256 = "084yaqw0zw1bc4y4pk1vdb58vza7dn31phjr53dvwdj0kyl7j088";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -8132,12 +8168,12 @@ let
 
   vim-tmux-focus-events = buildVimPluginFrom2Nix {
     pname = "vim-tmux-focus-events";
-    version = "2021-03-02";
+    version = "2021-04-04";
     src = fetchFromGitHub {
       owner = "tmux-plugins";
       repo = "vim-tmux-focus-events";
-      rev = "f8b5ef76ecbdc38d2b38abc3df218b47e5320c30";
-      sha256 = "130l73v18md95djkc4s9d0fr018f8f183sjcgy7dgldwdaxlqdi1";
+      rev = "26237f9284c3853084fbf9e8303efb8fb62e0aa9";
+      sha256 = "0pmkjwpad63gdrp0qykkcsjdavb5kxwqvlcip0ykdm6ivvzi9fy5";
     };
     meta.homepage = "https://github.com/tmux-plugins/vim-tmux-focus-events/";
   };
@@ -8312,12 +8348,12 @@ let
 
   vim-vsnip = buildVimPluginFrom2Nix {
     pname = "vim-vsnip";
-    version = "2021-03-29";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "vim-vsnip";
-      rev = "ac78ab499918fbdb9d5121d9832bddbd1c258123";
-      sha256 = "155jj7nrh9a4bwhambdvggz46kddqhj92bl4xhdv2iyyrbfz5ygy";
+      rev = "b05641ca8c7ebd396017121219047c480182a743";
+      sha256 = "0184d5498iwi0kqf0gbd5zdqckvmqwaf7bs1dvj8rphp9xzsl72x";
     };
     meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
   };
@@ -8384,12 +8420,12 @@ let
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2021-03-26";
+    version = "2021-04-05";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "9b80ded965f088d03ec45bbc9de6cc9119d38d7f";
-      sha256 = "1rmj8agpyqyrclbvhv3d4wpdrk1cp5xz4sh57d4xymnh0fjb56db";
+      rev = "fdadbdcf5eda4b1ab381f3a36562005d161a6c4a";
+      sha256 = "1lqqadf6qr4i7sfkjmra9b4rb6wa3sh93dp7lr5jdf365i4b0jfb";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -8588,12 +8624,12 @@ let
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2021-03-22";
+    version = "2021-03-30";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "054ea35428e5e8d6abe12b6a535a3b0426d4874e";
-      sha256 = "0cx35hbyhrzmbfzsikbpa4jh0gr3sbdhk27v2nsbwj4i3rg9767p";
+      rev = "caeb6610ed9f209490fbfacacc99e720847e6130";
+      sha256 = "014xvr14kxk0js4qwdzv0ljzrz6dji9qrkjyjpr1qfx6r8kz2j1z";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -8601,12 +8637,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2021-03-29";
+    version = "2021-04-06";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "9e9d58afe147e457c360bdb2fb21b0bcd3d83230";
-      sha256 = "05djvd5xphfz9xg24kfm8clkgvslb0cmj5iljm4bv20v4bvnkg43";
+      rev = "b31d4e3ed3942c98fcb928ca65bf9e9427608439";
+      sha256 = "0vl0a71in04pi3v9h61piny6qrd91z8anmzv724dznqkc4ydp9hx";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -8649,12 +8685,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2021-03-26";
+    version = "2021-03-31";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "b37d9b3331b8345a7c6cb821eda89e08eb7d7fa1";
-      sha256 = "12m54rj9xjcbyfa61z9qim8mbwqcmjfqkmdsp23jlm41nw17627y";
+      rev = "a2236deb0a40d745f38fac4523ed6a0c86639863";
+      sha256 = "14gxwqykm4cql80la3x1x7sxcfmdvpm05r9brxw3xfn9bsqy3qsk";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
@@ -8831,12 +8867,12 @@ let
 
   zephyr-nvim = buildVimPluginFrom2Nix {
     pname = "zephyr-nvim";
-    version = "2021-03-28";
+    version = "2021-04-03";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "zephyr-nvim";
-      rev = "f17239ec33d62ed379bb78912070f3cfe3e29062";
-      sha256 = "0ai18xsnaiq26yls60wq6lmkdzscihkdcg9naakclrp0af992kxs";
+      rev = "782b1986adafe4b17ea8a0f9aca375f37029bd2b";
+      sha256 = "0chrbn917yzvc5rcz6ajzp36598c8lwc1wpdp3qwl34k2vp4r1ia";
     };
     meta.homepage = "https://github.com/glepnir/zephyr-nvim/";
   };
diff --git a/third_party/nixpkgs/pkgs/misc/vim-plugins/overrides.nix b/third_party/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
index e433ac8e2f..d52b248697 100644
--- a/third_party/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
+++ b/third_party/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
@@ -735,7 +735,7 @@ self: super: {
             libiconv
           ];
 
-          cargoSha256 = "1f8ns3a5am9jb52niy3ass9hpzymjml62f3d7vyl1fvk3rriq4jw";
+          cargoSha256 = "25UkYKhlGmlDg4fz1jZHjpQn5s4k5FKlFK0MU8YM5SE=";
         };
       in
       ''
diff --git a/third_party/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names b/third_party/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
index f180ba419f..0eb035485d 100644
--- a/third_party/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/third_party/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
@@ -355,6 +355,7 @@ megaannum/forms
 megaannum/self
 mengelbrecht/lightline-bufferline
 metakirby5/codi.vim
+metalelf0/jellybeans-nvim@main
 mfukar/robotframework-vim
 mfussenegger/nvim-dap
 mfussenegger/nvim-jdtls
@@ -424,7 +425,7 @@ noc7c9/vim-iced-coffee-script
 norcalli/nvim-colorizer.lua
 norcalli/nvim-terminal.lua
 norcalli/snippets.nvim
-npxbr/glow.nvim
+npxbr/glow.nvim@main
 ntpeters/vim-better-whitespace
 numirias/semshi
 nvie/vim-flake8
@@ -554,6 +555,7 @@ shumphrey/fugitive-gitlab.vim
 sickill/vim-pasta
 SidOfc/mkdx
 simnalamburt/vim-mundo
+simrat39/rust-tools.nvim
 SirVer/ultisnips
 sjl/gundo.vim
 sjl/splice.vim
@@ -606,6 +608,7 @@ tommcdo/vim-lion
 tommcdo/vim-ninja-feet
 tomtom/tcomment_vim
 tomtom/tlib_vim
+tools-life/taskwiki
 tpope/vim-abolish
 tpope/vim-capslock
 tpope/vim-commentary
diff --git a/third_party/nixpkgs/pkgs/os-specific/darwin/macfuse/default.nix b/third_party/nixpkgs/pkgs/os-specific/darwin/macfuse/default.nix
index 7e1b4ed776..4fd92a1556 100644
--- a/third_party/nixpkgs/pkgs/os-specific/darwin/macfuse/default.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/darwin/macfuse/default.nix
@@ -56,4 +56,10 @@ stdenv.mkDerivation rec {
       lgpl2Plus # libfuse
     ];
   };
+
+  passthru.warning = ''
+    macFUSE is required for this package to work on macOS. To install macFUSE,
+    use the installer from the <link xlink:href="https://osxfuse.github.io/">
+    project website</link>.
+  '';
 }
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix b/third_party/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
index 8a19e6b858..7e0c48a439 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/firmware/raspberrypi/default.nix
@@ -3,13 +3,13 @@
 stdenvNoCC.mkDerivation rec {
   # NOTE: this should be updated with linux_rpi
   pname = "raspberrypi-firmware";
-  version = "1.20210201";
+  version = "1.20210303";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "firmware";
     rev = version;
-    sha256 = "0frmsixzy9nd8nfg15jsz037522h4gq1hca666cyaf9zg2sa1i7i";
+    sha256 = "0pgiw93hq4gfph5dnwbi8w59g0f7yhmagwzam971k529mh5yl86m";
   };
 
   installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/joycond/default.nix b/third_party/nixpkgs/pkgs/os-specific/linux/joycond/default.nix
new file mode 100644
index 0000000000..a203073b08
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/joycond/default.nix
@@ -0,0 +1,37 @@
+{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, libevdev, udev }:
+
+stdenv.mkDerivation rec {
+  pname = "joycond";
+  version = "unstable-2021-03-27";
+
+  src = fetchFromGitHub {
+    owner = "DanielOgorchock";
+    repo = "joycond";
+    rev = "2d3f553060291f1bfee2e49fc2ca4a768b289df8";
+    sha256 = "0dpmwspll9ar3pxg9rgnh224934par8h8bixdz9i2pqqbc3dqib7";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+  buildInputs = [ libevdev udev ];
+
+  # CMake has hardcoded install paths
+  installPhase = ''
+    mkdir -p $out/{bin,etc/{systemd/system,udev/rules.d},lib/modules-load.d}
+
+    cp ./joycond $out/bin
+    cp $src/udev/{89,72}-joycond.rules $out/etc/udev/rules.d
+    cp $src/systemd/joycond.service $out/etc/systemd/system
+    cp $src/systemd/joycond.conf $out/lib/modules-load.d
+
+    substituteInPlace $out/etc/systemd/system/joycond.service --replace \
+      "ExecStart=/usr/bin/joycond" "ExecStart=$out/bin/joycond"
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/DanielOgorchock/joycond";
+    description = "Userspace daemon to combine joy-cons from the hid-nintendo kernel driver";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.ivar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
index ac9d6fbb2b..0a9c2d11fe 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/generic.nix
@@ -55,7 +55,7 @@
 , autoModules ? stdenv.hostPlatform.linux-kernel.autoModules
 , preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false
 , kernelArch ? stdenv.hostPlatform.linuxArch
-
+, kernelTests ? []
 , ...
 }:
 
@@ -178,10 +178,11 @@ let
 
   passthru = {
     features = kernelFeatures;
-    inherit commonStructuredConfig isXen isZen isHardened isLibre;
+    inherit commonStructuredConfig isXen isZen isHardened isLibre modDirVersion;
     kernelOlder = lib.versionOlder version;
     kernelAtLeast = lib.versionAtLeast version;
     passthru = kernel.passthru // (removeAttrs passthru [ "passthru" ]);
+    tests = kernelTests;
   };
 
 in lib.extendDerivation true passthru kernel
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 729cf3a601..fc647d1095 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -1,4 +1,4 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
@@ -15,4 +15,6 @@ buildLinux (args // rec {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
     sha256 = "0nw1jf6x5a990n69aw2da4s4lc1c7mnwiwcda40bl2rkmd24s1qm";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_14 ];
 } // (args.argsOverride or {}))
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
index dbd0f9e7f5..b0e5a86572 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -1,4 +1,4 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
@@ -15,4 +15,6 @@ buildLinux (args // rec {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
     sha256 = "0z5pgal8775rf7pvpxq47dnghr42al2k9py0s9jl3js2wamgdyix";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_19 ];
 } // (args.argsOverride or {}))
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
index d90489922a..3a5f86db3a 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.4.nix
@@ -1,4 +1,4 @@
-{ buildPackages, fetchurl, perl, buildLinux, ... } @ args:
+{ buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
 
 buildLinux (args // rec {
   version = "4.4.264";
@@ -8,4 +8,6 @@ buildLinux (args // rec {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
     sha256 = "1b0d735qnk0bcqn9gdsjqxhk8pkb3597ya9f34lv1vjfaqkkxk7l";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_4 ];
 } // (args.argsOverride or {}))
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
index e0caeb138d..798a16d7a3 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,4 +1,4 @@
-{ buildPackages, fetchurl, perl, buildLinux, ... } @ args:
+{ buildPackages, fetchurl, perl, buildLinux, nixosTests, ... } @ args:
 
 buildLinux (args // rec {
   version = "4.9.264";
@@ -8,4 +8,6 @@ buildLinux (args // rec {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
     sha256 = "1df2dv26c9z6zsdlqzbcc60f2pszh0hx1n94v65jswlb72a2mipc";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_4_9 ];
 } // (args.argsOverride or {}))
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
index 911cb326dd..f35b0e432b 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -1,4 +1,4 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
@@ -15,4 +15,6 @@ buildLinux (args // rec {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
     sha256 = "1nb95ll66kxiz702gs903n3gy5ialz8cin58l19rqaai55kck7fr";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_10 ];
 } // (args.argsOverride or {}))
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix
index 16d0e5c1d4..1c8540d893 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.11.nix
@@ -1,4 +1,4 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
@@ -15,4 +15,6 @@ buildLinux (args // rec {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
     sha256 = "1fc3yl4srzla3cbihgnry0pqmgcc17zv0zlkk9zpx99371hpay0a";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_11 ];
 } // (args.argsOverride or {}))
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
index ac867e7876..e9d72200ed 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -1,4 +1,4 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
@@ -15,4 +15,6 @@ buildLinux (args // rec {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
     sha256 = "1vmpc6yrr2zm4m3naflwik5111jr8hy0mnyddwk31l0p4xbg8smc";
   };
+
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_5_4 ];
 } // (args.argsOverride or {}))
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
index d8fc7a71b5..de625cebe4 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-lqx.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildLinux, linux_zen, ... } @ args:
 
 let
-  version = "5.11.8";
+  version = "5.11.11";
   suffix = "lqx1";
 in
 
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "1zvd74l6vb0rwrkwwh67i8l6ipin0p981vzdmiwpbpfzasbw59xk";
+    sha256 = "1wycqy0m6vjaa39rq7ngwr2qmksqfca27z1711nag7j68dk3ywak";
   };
 
   extraMeta = {
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix
index 373984298c..8ccf46b402 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-rpi.nix
@@ -2,8 +2,8 @@
 
 let
   # NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this
-  modDirVersion = "5.10.11";
-  tag = "1.20210201";
+  modDirVersion = "5.10.17";
+  tag = "1.20210303";
 in
 lib.overrideDerivation (buildLinux (args // {
   version = "${modDirVersion}-${tag}";
@@ -13,7 +13,7 @@ lib.overrideDerivation (buildLinux (args // {
     owner = "raspberrypi";
     repo = "linux";
     rev = "raspberrypi-kernel_${tag}-1";
-    sha256 = "0n4zq47k9bmkgmarrhwvivp10v5ga8y2bphsx0il3kmcpf0c1m3q";
+    sha256 = "0ffsllayl18ka4mgp4rdy9h0da5gy1n6g0kfvinvzdzabb5wzvrx";
   };
 
   defconfig = {
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
index 06efc5da1e..f0d4186934 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,9 +1,9 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
 buildLinux (args // rec {
-  version = "5.12-rc4";
+  version = "5.12-rc6";
   extraMeta.branch = "5.12";
 
   # modDirVersion needs to be x.y.z, will always add .0
@@ -11,9 +11,11 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "06i6xnfbyn522pj9zksx6ka01yxwv8dsrb2z517grv682sp8j70k";
+    sha256 = "0w0zk2byimdbcvn8myqaq0ab6lyd43493fnkv9a1407dimpxb03d";
   };
 
+  kernelTests = args.kernelTests or [ nixosTests.kernel-generic.linux_testing ];
+
   # Should the testing kernels ever be built on Hydra?
   extraMeta.hydraPlatforms = [];
 
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix
new file mode 100644
index 0000000000..efb87df6c9
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-xanmod.nix
@@ -0,0 +1,27 @@
+{ lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args:
+
+let
+  version = "5.11.12";
+  suffix = "xanmod1-cacule";
+in
+  buildLinux (args // rec {
+    modDirVersion = "${version}-${suffix}";
+    inherit version;
+
+    src = fetchFromGitHub {
+      owner = "xanmod";
+      repo = "linux";
+      rev = modDirVersion;
+      sha256 = "sha256-omRZ9oAmW3mauUolPf/lgMFMwUCYU4YaZ+OS75Ag+lM=";
+      extraPostFetch = ''
+        rm $out/.config
+      '';
+    };
+
+    extraMeta = {
+      branch = "5.11";
+      maintainers = with lib.maintainers; [ fortuneteller2k ];
+      description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
+      broken = stdenv.hostPlatform.isAarch64;
+    };
+  } // (args.argsOverride or { }))
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
index 0323bf81c7..8743c9ad55 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub, buildLinux, ... } @ args:
 
 let
-  version = "5.11.8";
+  version = "5.11.11";
   suffix = "zen1";
 in
 
@@ -14,7 +14,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     rev = "v${version}-${suffix}";
-    sha256 = "1hb05shhqb6747m131sw30h36ak1m9bwzhfldjypn8phlfkflgkq";
+    sha256 = "0rldvgvdbsqvshrbv2g335qvwzk76l7rpnp9dwzsiv2qphrzxazi";
   };
 
   extraMeta = {
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/libcap/default.nix b/third_party/nixpkgs/pkgs/os-specific/linux/libcap/default.nix
index 54fab6a774..871e04648e 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/libcap/default.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/libcap/default.nix
@@ -14,8 +14,6 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-TelZDuCah8KC1Vhzf/tbYXXMv9JtWArdEN9E0PBH9sI=";
   };
 
-  patches = lib.optional isStatic ./no-shared-lib.patch;
-
   outputs = [ "out" "dev" "lib" "man" "doc" ]
     ++ lib.optional usePam "pam";
 
@@ -31,7 +29,7 @@ stdenv.mkDerivation rec {
     "PAM_CAP=${if usePam then "yes" else "no"}"
     "BUILD_CC=$(CC_FOR_BUILD)"
     "CC:=$(CC)"
-  ];
+  ] ++ lib.optional isStatic "SHARED=no";
 
   prePatch = ''
     # use full path to bash
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/libcap/no-shared-lib.patch b/third_party/nixpkgs/pkgs/os-specific/linux/libcap/no-shared-lib.patch
deleted file mode 100644
index 73dc7de063..0000000000
--- a/third_party/nixpkgs/pkgs/os-specific/linux/libcap/no-shared-lib.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/libcap/Makefile b/libcap/Makefile
-index de6a28d..7e4d8ac 100644
---- a/libcap/Makefile
-+++ b/libcap/Makefile
-@@ -22,7 +22,7 @@ MAJLIBNAME=$(LIBNAME).$(VERSION)
- MINLIBNAME=$(MAJLIBNAME).$(MINOR)
- GPERF_OUTPUT = _caps_output.gperf
- 
--all: $(MINLIBNAME) $(STACAPLIBNAME) pcs $(STAPSXLIBNAME)
-+all: $(STACAPLIBNAME) pcs $(STAPSXLIBNAME)
- 
- pcs: libcap.pc libpsx.pc
- 
-@@ -93,7 +93,7 @@ cap_test: cap_test.c libcap.h
- test: cap_test
- 	./cap_test
- 
--install: install-static install-shared
-+install: install-static
- 
- install-static: install-static-cap install-static-psx
- 
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix b/third_party/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
index 4784abc6c2..2414980572 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, perl, lvm2, libaio, gzip, readline, systemd, liburcu, json_c }:
+{ lib, stdenv, fetchurl, pkg-config, perl, lvm2, libaio, gzip, readline, systemd, liburcu, json_c, kmod }:
 
 stdenv.mkDerivation rec {
   pname = "multipath-tools";
@@ -16,7 +16,13 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    substituteInPlace libmultipath/Makefile --replace /usr/include/libdevmapper.h ${lib.getDev lvm2}/include/libdevmapper.h
+    substituteInPlace libmultipath/Makefile \
+      --replace /usr/include/libdevmapper.h ${lib.getDev lvm2}/include/libdevmapper.h
+
+    substituteInPlace multipathd/multipathd.service \
+      --replace /sbin/modprobe ${lib.getBin kmod}/sbin/modprobe \
+      --replace /sbin/multipathd "$out/bin/multipathd"
+
     sed -i -re '
       s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
     ' libmultipath/defaults.h
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix b/third_party/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
index b0fd6b354b..90af44f835 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix
@@ -3,13 +3,13 @@
 }:
 stdenvNoCC.mkDerivation {
   pname = "raspberrypi-eeprom";
-  version = "2021-01-11";
+  version = "2021-03-18";
 
   src = fetchFromGitHub {
     owner = "raspberrypi";
     repo = "rpi-eeprom";
-    rev = "54cadc816ba739afd08ead6d679e647de028a65c";
-    sha256 = "0zlacr4z6h40h0g47195xsbss29gaa7kf8r31h372sxsn8srlnjf";
+    rev = "ff27ccf69403b01e337fc4ee6e7ae75244028cce";
+    sha256 = "1q1vlld0xxh9zinf5g0qa6jw1dggq93br938mvrfx3nb2aviiwcj";
   };
 
   buildInputs = [ python3 ];
@@ -28,7 +28,6 @@ stdenvNoCC.mkDerivation {
 
     cp rpi-eeprom-config rpi-eeprom-update $out/bin
     cp -r firmware/{beta,critical,old,stable} $out/share/rpi-eeprom
-    cp -r firmware/vl805 $out/bin
   '';
 
   fixupPhase = ''
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix b/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
index 27dbc6f583..0a7860c023 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/default.nix
@@ -1,9 +1,13 @@
 { lib, stdenv, fetchgit, asciidoc, docbook_xsl, libxslt }:
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "trace-cmd";
-  version = "2.9-dev";
+  version = "2.9.1";
 
-  src = fetchgit (import ./src.nix);
+  src = fetchgit {
+    url    = "git://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/";
+    rev    = "trace-cmd-v${version}";
+    sha256 = "19c63a0qmcppm1456qf4k6a0d1agcvpa6jnbzrdcyc520yax6khw";
+  };
 
   patches = [ ./fix-Makefiles.patch ];
 
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch b/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch
index db194e16fd..1e783999af 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/fix-Makefiles.patch
@@ -1,30 +1,30 @@
 diff --git a/Makefile b/Makefile
-index bbdf15e..deb8ef7 100644
+index b034042..b8a06bc 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -288,7 +288,7 @@ libtraceevent.a: $(LIBTRACEEVENT_STATIC)
- libtracecmd.a: $(LIBTRACECMD_STATIC)
- libtracecmd.so: $(LIBTRACECMD_SHARED)
+@@ -338,6 +338,7 @@ libtracefs.a: $(LIBTRACEFS_STATIC)
+ libtracefs.so: $(LIBTRACEFS_SHARED)
  
--libs: $(LIBTRACECMD_SHARED) $(LIBTRACEEVENT_SHARED)
-+libs: $(LIBTRACECMD_SHARED) $(LIBTRACEEVENT_SHARED) $(LIBTRACECMD_STATIC) $(LIBTRACEEVENT_STATIC)
+ libs: $(LIBTRACECMD_SHARED) $(LIBTRACEEVENT_SHARED) $(LIBTRACEFS_SHARED)
++libs: $(LIBTRACECMD_STATIC) $(LIBTRACEEVENT_STATIC) $(LIBTRACEFS_STATIC)
  
- plugins: force $(obj)/lib/traceevent/plugins/traceevent_plugin_dir $(obj)/lib/traceevent/plugins/trace_python_dir
- 	$(Q)$(MAKE) -C $(src)/lib/traceevent/plugins
-@@ -344,6 +344,8 @@ install_gui: install_cmd gui
- install_libs: libs
+ test: force $(LIBTRACEEVENT_STATIC) $(LIBTRACEFS_STATIC) $(LIBTRACECMD_STATIC)
+ ifneq ($(CUNIT_INSTALLED),1)
+@@ -414,6 +415,9 @@ install_libs: libs
  	$(Q)$(call do_install,$(LIBTRACECMD_SHARED),$(libdir_SQ)/trace-cmd)
  	$(Q)$(call do_install,$(LIBTRACEEVENT_SHARED),$(libdir_SQ)/traceevent)
+ 	$(Q)$(call do_install,$(LIBTRACEFS_SHARED),$(libdir_SQ)/tracefs)
 +	$(Q)$(call do_install,$(LIBTRACECMD_STATIC),$(libdir_SQ)/trace-cmd)
 +	$(Q)$(call do_install,$(LIBTRACEEVENT_STATIC),$(libdir_SQ)/traceevent)
++	$(Q)$(call do_install,$(LIBTRACEFS_STATIC),$(libdir_SQ)/tracefs)
  	$(Q)$(call do_install,$(src)/include/traceevent/event-parse.h,$(includedir_SQ)/traceevent)
  	$(Q)$(call do_install,$(src)/include/traceevent/trace-seq.h,$(includedir_SQ)/traceevent)
  	$(Q)$(call do_install,$(src)/include/trace-cmd/trace-cmd.h,$(includedir_SQ)/trace-cmd)
 diff --git a/kernel-shark/src/CMakeLists.txt b/kernel-shark/src/CMakeLists.txt
-index e20a030..7fce165 100644
+index 457c100..687e150 100644
 --- a/kernel-shark/src/CMakeLists.txt
 +++ b/kernel-shark/src/CMakeLists.txt
-@@ -93,7 +93,7 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
+@@ -92,7 +92,7 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
              DESTINATION ${_INSTALL_PREFIX}/share/icons/${KS_APP_NAME})
  
      install(FILES "${KS_DIR}/org.freedesktop.kshark-record.policy"
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix b/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
index 594cf6bfc4..45d984c786 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/kernelshark.nix
@@ -1,9 +1,13 @@
 { lib, mkDerivation, fetchgit, qtbase, cmake, asciidoc, docbook_xsl, json_c, mesa_glu, freeglut, trace-cmd, pkg-config }:
-mkDerivation {
+mkDerivation rec {
   pname = "kernelshark";
-  version = "1.1.0";
+  version = "1.2";
 
-  src = fetchgit (import ./src.nix);
+  src = fetchgit {
+    url    = "git://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/";
+    rev    = "kernelshark-v${version}";
+    sha256 = "0wzzm2imk9n94v96v6sbvbff6j47lz4qj0snhiyv3nj3slg0anvh";
+  };
 
   patches = [ ./fix-Makefiles.patch ];
 
@@ -21,6 +25,7 @@ mkDerivation {
     "-DTRACECMD_INCLUDE_DIR=${trace-cmd.dev}/include"
     "-DTRACECMD_LIBRARY=${trace-cmd.lib}/lib/trace-cmd/libtracecmd.a"
     "-DTRACEEVENT_LIBRARY=${trace-cmd.lib}/lib/traceevent/libtraceevent.a"
+    "-DTRACEFS_LIBRARY=${trace-cmd.lib}/lib/tracefs/libtracefs.a"
   ];
 
   preInstall = ''
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/src.nix b/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/src.nix
deleted file mode 100644
index 47c1b82fdd..0000000000
--- a/third_party/nixpkgs/pkgs/os-specific/linux/trace-cmd/src.nix
+++ /dev/null
@@ -1,5 +0,0 @@
-{
-  url    = "git://git.kernel.org/pub/scm/utils/trace-cmd/trace-cmd.git/";
-  rev    = "ab370b78b9278fe16657742d46cb95c0a65b47d5"; # branch: kernelshark-v1.1
-  sha256 = "0qngwc4qgadrkwlwpz73f12prdkx94kl0bg7g9hib95ipvsdmk1c";
-}
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/vendor-reset/default.nix b/third_party/nixpkgs/pkgs/os-specific/linux/vendor-reset/default.nix
new file mode 100644
index 0000000000..8f1bde7ecb
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/vendor-reset/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, kernel, lib }:
+
+stdenv.mkDerivation rec {
+  name = "vendor-reset-${version}-${kernel.version}";
+  version = "unstable-2021-02-16";
+
+  src = fetchFromGitHub {
+    owner = "gnif";
+    repo = "vendor-reset";
+    rev = "225a49a40941e350899e456366265cf82b87ad25";
+    sha256 = "sha256-xa7P7+mRk4FVgi+YYCcsFLfyNqPmXvy3xhGoTDVqPxw=";
+  };
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  hardeningDisable = [ "pic" ];
+
+  makeFlags = [
+    "KVER=${kernel.modDirVersion}"
+    "KDIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    install -D vendor-reset.ko -t "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/misc/"
+  '';
+
+  meta = with lib; {
+    description = "Linux kernel vendor specific hardware reset module";
+    homepage = "https://github.com/gnif/vendor-reset";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ wedens ];
+    platforms = [ "x86_64-linux" ];
+    broken = kernel.kernelOlder "4.19";
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix b/third_party/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
index e0e2bcc21d..3007e54639 100644
--- a/third_party/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
+++ b/third_party/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
@@ -2,25 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "xpadneo";
-  version = "0.8.4";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "atar-axis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "113xa2mxs2hc4fpjdk3jhhchy81kli6jxdd6vib7zz61n10cjb85";
+    hash = "sha256-VUcS4OzvPj0o627ZWIOBqEAQJ4JuMCMjgaZoMkL/IHc=";
   };
 
   setSourceRoot = ''
     export sourceRoot=$(pwd)/source/hid-xpadneo/src
   '';
 
-  postPatch = ''
-    # Set kernel module version
-    substituteInPlace hid-xpadneo.c \
-      --subst-var-by DO_NOT_CHANGE ${version}
-  '';
-
   nativeBuildInputs = kernel.moduleBuildDependencies;
   buildInputs = [ bluez ];
 
@@ -28,6 +22,7 @@ stdenv.mkDerivation rec {
     "-C"
     "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     "M=$(sourceRoot)"
+    "VERSION=${version}"
   ];
 
   buildFlags = [ "modules" ];
diff --git a/third_party/nixpkgs/pkgs/servers/adguardhome/default.nix b/third_party/nixpkgs/pkgs/servers/adguardhome/default.nix
index b62de10570..87de7589ae 100644
--- a/third_party/nixpkgs/pkgs/servers/adguardhome/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/adguardhome/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "adguardhome";
-  version = "0.104.3";
+  version = "0.105.2";
 
   src = fetchurl {
     url = "https://github.com/AdguardTeam/AdGuardHome/releases/download/v${version}/AdGuardHome_linux_amd64.tar.gz";
-    sha256 = "0p660d1nvaigyjc39xq5ar775davcbdgf0dh1z6gl3v4gx1h7bkn";
+    sha256 = "1gpaqyczidsy7h05g318zc83swvwninidddlmlq3hgs8s7ibk2cb";
   };
 
   installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix b/third_party/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
index 1e5697cb59..f805d45b21 100644
--- a/third_party/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
+++ b/third_party/nixpkgs/pkgs/servers/home-assistant/appdaemon.nix
@@ -82,6 +82,6 @@ in python.pkgs.buildPythonApplication rec {
     description = "Sandboxed Python execution environment for writing automation apps for Home Assistant";
     homepage = "https://github.com/AppDaemon/appdaemon";
     license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg dotlambda ];
+    maintainers = teams.home-assistant.members;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/servers/home-assistant/cli.nix b/third_party/nixpkgs/pkgs/servers/home-assistant/cli.nix
index 6b7758dd5e..da7ff1ed6b 100644
--- a/third_party/nixpkgs/pkgs/servers/home-assistant/cli.nix
+++ b/third_party/nixpkgs/pkgs/servers/home-assistant/cli.nix
@@ -36,6 +36,6 @@ python3.pkgs.buildPythonApplication rec {
     description = "Command-line tool for Home Assistant";
     homepage = "https://github.com/home-assistant/home-assistant-cli";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dotlambda ];
+    maintainers = teams.home-assistant.members;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/servers/home-assistant/component-packages.nix b/third_party/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
index 492e7e76f9..7d5c6f29e0 100644
--- a/third_party/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
+++ b/third_party/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "2021.3.4";
+  version = "2021.4.0";
   components = {
     "abode" = ps: with ps; [ abodepy ];
     "accuweather" = ps: with ps; [ accuweather ];
@@ -31,6 +31,7 @@
     "ambient_station" = ps: with ps; [ aioambient ];
     "amcrest" = ps: with ps; [ amcrest ha-ffmpeg ];
     "ampio" = ps: with ps; [ ]; # missing inputs: asmog
+    "analytics" = ps: with ps; [ aiohttp-cors ];
     "android_ip_webcam" = ps: with ps; [ ]; # missing inputs: pydroid-ipcam
     "androidtv" = ps: with ps; [ adb-shell androidtv pure-python-adb ];
     "anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant
@@ -57,7 +58,7 @@
     "atag" = ps: with ps; [ ]; # missing inputs: pyatag
     "aten_pe" = ps: with ps; [ atenpdu ];
     "atome" = ps: with ps; [ ]; # missing inputs: pyatome
-    "august" = ps: with ps; [ ]; # missing inputs: py-august
+    "august" = ps: with ps; [ yalexs ];
     "aurora" = ps: with ps; [ auroranoaa ];
     "aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy
     "auth" = ps: with ps; [ aiohttp-cors ];
@@ -154,7 +155,7 @@
     "deconz" = ps: with ps; [ pydeconz ];
     "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
     "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
-    "default_config" = ps: with ps; [ pynacl aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ];
+    "default_config" = ps: with ps; [ pynacl aiodiscover aiohttp-cors async-upnp-client defusedxml distro emoji hass-nabucasa netdisco pillow scapy sqlalchemy zeroconf ];
     "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn
     "deluge" = ps: with ps; [ deluge-client ];
     "demo" = ps: with ps; [ aiohttp-cors ];
@@ -167,7 +168,7 @@
     "device_tracker" = ps: with ps; [ ];
     "devolo_home_control" = ps: with ps; [ aiohttp-cors devolo-home-control-api zeroconf ];
     "dexcom" = ps: with ps; [ pydexcom ];
-    "dhcp" = ps: with ps; [ scapy ];
+    "dhcp" = ps: with ps; [ aiodiscover scapy ];
     "dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT
     "dialogflow" = ps: with ps; [ aiohttp-cors ];
     "digital_ocean" = ps: with ps; [ digital-ocean ];
@@ -277,7 +278,7 @@
     "foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam
     "foursquare" = ps: with ps; [ aiohttp-cors ];
     "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
-    "freebox" = ps: with ps; [ aiohttp-cors freebox-api netdisco zeroconf ];
+    "freebox" = ps: with ps; [ freebox-api ];
     "freedns" = ps: with ps; [ ];
     "fritz" = ps: with ps; [ fritzconnection ];
     "fritzbox" = ps: with ps; [ pyfritzhome ];
@@ -326,7 +327,6 @@
     "gree" = ps: with ps; [ ]; # missing inputs: greeclimate
     "greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor
     "greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality
-    "griddy" = ps: with ps; [ ]; # missing inputs: griddypower
     "group" = ps: with ps; [ ];
     "growatt_server" = ps: with ps; [ ]; # missing inputs: growattServer
     "gstreamer" = ps: with ps; [ ]; # missing inputs: gstreamer-player
@@ -352,6 +352,7 @@
     "hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi
     "hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
     "home_connect" = ps: with ps; [ aiohttp-cors ]; # missing inputs: homeconnect
+    "home_plus_control" = ps: with ps; [ aiohttp-cors homepluscontrol ];
     "homeassistant" = ps: with ps; [ ];
     "homekit" = ps: with ps; [ HAP-python pyqrcode pyturbojpeg aiohttp-cors base36 fnvhash ha-ffmpeg zeroconf ];
     "homekit_controller" = ps: with ps; [ aiohomekit aiohttp-cors zeroconf ];
@@ -448,7 +449,7 @@
     "linux_battery" = ps: with ps; [ batinfo ];
     "lirc" = ps: with ps; [ ]; # missing inputs: python-lirc
     "litejet" = ps: with ps; [ ]; # missing inputs: pylitejet
-    "litterrobot" = ps: with ps; [ ]; # missing inputs: pylitterbot
+    "litterrobot" = ps: with ps; [ pylitterbot ];
     "llamalab_automate" = ps: with ps; [ ];
     "local_file" = ps: with ps; [ ];
     "local_ip" = ps: with ps; [ ];
@@ -594,7 +595,7 @@
     "openexchangerates" = ps: with ps; [ ];
     "opengarage" = ps: with ps; [ ]; # missing inputs: open-garage
     "openhardwaremonitor" = ps: with ps; [ ];
-    "openhome" = ps: with ps; [ ]; # missing inputs: openhomedevice
+    "openhome" = ps: with ps; [ openhomedevice ];
     "opensensemap" = ps: with ps; [ opensensemap-api ];
     "opensky" = ps: with ps; [ ];
     "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw
@@ -715,6 +716,7 @@
     "scene" = ps: with ps; [ ];
     "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
     "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict ];
+    "screenlogic" = ps: with ps; [ screenlogicpy ];
     "script" = ps: with ps; [ ];
     "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
     "search" = ps: with ps; [ aiohttp-cors ];
@@ -864,6 +866,7 @@
     "tplink" = ps: with ps; [ pyhs100 ];
     "tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected
     "traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar
+    "trace" = ps: with ps; [ ];
     "trackr" = ps: with ps; [ ]; # missing inputs: pytrackr
     "tradfri" = ps: with ps; [ ]; # missing inputs: pytradfri[async]
     "trafikverket_train" = ps: with ps; [ pytrafikverket ];
@@ -906,7 +909,7 @@
     "velux" = ps: with ps; [ pyvlx ];
     "venstar" = ps: with ps; [ venstarcolortouch ];
     "vera" = ps: with ps; [ pyvera ];
-    "verisure" = ps: with ps; [ jsonpath vsure ];
+    "verisure" = ps: with ps; [ vsure ];
     "versasense" = ps: with ps; [ ]; # missing inputs: pyversasense
     "version" = ps: with ps; [ pyhaversion ];
     "vesync" = ps: with ps; [ pyvesync ];
@@ -974,7 +977,7 @@
     "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
     "zerproc" = ps: with ps; [ pyzerproc ];
     "zestimate" = ps: with ps; [ xmltodict ];
-    "zha" = ps: with ps; [ bellows pyserial-asyncio pyserial zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
+    "zha" = ps: with ps; [ aiohttp-cors bellows pyserial-asyncio pyserial zeroconf zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy-znp zigpy ];
     "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
     "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
     "zodiac" = ps: with ps; [ ];
diff --git a/third_party/nixpkgs/pkgs/servers/home-assistant/default.nix b/third_party/nixpkgs/pkgs/servers/home-assistant/default.nix
index 7816436e2b..0c58caa292 100644
--- a/third_party/nixpkgs/pkgs/servers/home-assistant/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/home-assistant/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , python3
 , nixosTests
 
@@ -43,6 +42,21 @@ let
       });
     })
 
+    # Pinned due to API changes in pylilterbot>=2021.3.0
+    (self: super: {
+      pylitterbot = super.pylitterbot.overridePythonAttrs (oldAttrs: rec {
+        version = "2021.2.8";
+        src = fetchFromGitHub {
+          owner = "natekspencer";
+          repo = "pylitterbot";
+          rev = version;
+          sha256 = "142lhijm51v11cd0lhcfdnjdd143jxi2hjsrqdq0rrbbnmj6mymp";
+        };
+        # had no tests before 2021.3.0
+        doCheck = false;
+      });
+    })
+
     # Pinned due to bug in ring-doorbell 0.7.0
     # https://github.com/tchellomello/python-ring-doorbell/issues/240
     (mkOverride "ring-doorbell" "0.6.2"
@@ -81,7 +95,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2021.3.4";
+  hassVersion = "2021.4.0";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -100,31 +114,22 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    sha256 = "110pvin39lr40zd3lhb8zvh2wafl0k0dy3nbmc483yafy31xa4kw";
+    sha256 = "1gkbkyxqsw3isdyskzi0ib07fgqvirnr20jkhrz86vl0k9ix8hwf";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
   patches = [
-    (fetchpatch {
-      # Fix I-frame interval in stream test video
-      # https://github.com/home-assistant/core/pull/47638
-      url = "https://github.com/home-assistant/core/commit/d9bf63103fde44ddd38fb6b9a510d82609802b36.patch";
-      sha256 = "1y34cmw9zqb2lxyzm0q7vxlm05wwz76mhysgnh1jn39484fn9f9m";
-    })
   ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "aiohttp==3.7.4" "aiohttp>=3.7.3" \
-      --replace "attrs==19.3.0" "attrs>=19.3.0" \
-      --replace "bcrypt==3.1.7" "bcrypt>=3.1.7" \
+      --replace "awesomeversion==21.2.3" "awesomeversion" \
+      --replace "bcrypt==3.1.7" "bcrypt" \
       --replace "cryptography==3.3.2" "cryptography" \
-      --replace "httpx==0.16.1" "httpx>=0.16.1" \
-      --replace "jinja2>=2.11.3" "jinja2>=2.11.2" \
       --replace "pip>=8.0.3,<20.3" "pip" \
-      --replace "pytz>=2021.1" "pytz>=2020.5" \
+      --replace "pytz>=2021.1" "pytz" \
       --replace "pyyaml==5.4.1" "pyyaml" \
-      --replace "ruamel.yaml==0.15.100" "ruamel.yaml>=0.15.100"
+      --replace "ruamel.yaml==0.15.100" "ruamel.yaml"
     substituteInPlace tests/test_config.py --replace '"/usr"' '"/build/media"'
   '';
 
@@ -178,6 +183,7 @@ in with py.pkgs; buildPythonApplication rec {
   componentTests = [
     "accuweather"
     "airly"
+    "analytics"
     "alert"
     "api"
     "auth"
@@ -188,6 +194,7 @@ in with py.pkgs; buildPythonApplication rec {
     "caldav"
     "calendar"
     "camera"
+    "cast"
     "climate"
     "cloud"
     "command_line"
@@ -229,6 +236,7 @@ in with py.pkgs; buildPythonApplication rec {
     "hddtemp"
     "history"
     "history_stats"
+    "home_plus_control"
     "homekit"
     "homekit_controller"
     "homeassistant"
@@ -251,6 +259,7 @@ in with py.pkgs; buildPythonApplication rec {
     "ipp"
     "kmtronic"
     "light"
+    "litterrobot"
     "local_file"
     "local_ip"
     "lock"
@@ -296,6 +305,7 @@ in with py.pkgs; buildPythonApplication rec {
     "rss_feed_template"
     "safe_mode"
     "scene"
+    "screenlogic"
     "script"
     "search"
     "shell_command"
@@ -326,6 +336,7 @@ in with py.pkgs; buildPythonApplication rec {
     "time_date"
     "timer"
     "tod"
+    "trace"
     "tts"
     "universal"
     "updater"
@@ -355,6 +366,8 @@ in with py.pkgs; buildPythonApplication rec {
     "--dist loadfile"
     # tests are located in tests/
     "tests"
+    # screenlogic/test_config_flow.py: Tries to send out UDP broadcasts
+    "--deselect tests/components/screenlogic/test_config_flow.py::test_form_cannot_connect"
     # dynamically add packages required for component tests
   ] ++ map (component: "tests/components/" + component) componentTests;
 
@@ -377,11 +390,23 @@ in with py.pkgs; buildPythonApplication rec {
     # generic/test_camera.py: AssertionError: 500 == 200
     "test_fetching_without_verify_ssl"
     "test_fetching_url_with_verify_ssl"
+    # util/test_package.py: AssertionError on package.is_installed('homeassistant>=999.999.999')
+    "test_check_package_version_does_not_match"
   ];
 
   preCheck = ''
+    export HOME="$TEMPDIR"
+
     # the tests require the existance of a media dir
     mkdir /build/media
+
+    # error out when component test directory is missing, otherwise hidden by xdist execution :(
+    for component in ${lib.concatStringsSep " " (map lib.escapeShellArg componentTests)}; do
+      test -d "tests/components/$component" || {
+        >2& echo "ERROR: Tests for component '$component' were enabled, but they do not exist!"
+        exit 1
+      }
+    done
   '';
 
   passthru = {
@@ -395,7 +420,7 @@ in with py.pkgs; buildPythonApplication rec {
     homepage = "https://home-assistant.io/";
     description = "Open source home automation that puts local control and privacy first";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dotlambda globin mic92 hexa ];
+    maintainers = teams.home-assistant.members;
     platforms = platforms.linux;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/servers/home-assistant/frontend.nix b/third_party/nixpkgs/pkgs/servers/home-assistant/frontend.nix
index 6db728e9c8..72a1ea13e0 100644
--- a/third_party/nixpkgs/pkgs/servers/home-assistant/frontend.nix
+++ b/third_party/nixpkgs/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 = "20210302.6";
+  version = "20210407.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-h3jCqfAPg+z6vsdLm5Pdr+7PCEWW58GCG9viIz3Mi64=";
+    sha256 = "sha256-7kgL6Ixlc1OZ+3sUAuvJd7vgY6FBgPFEKi6xhq7fiBc=";
   };
 
   # there is nothing to strip in this package
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     description = "Polymer frontend for Home Assistant";
     homepage = "https://github.com/home-assistant/home-assistant-polymer";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dotlambda globin ];
+    maintainers = teams.home-assistant.members;
   };
 }
diff --git a/third_party/nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix b/third_party/nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix
index 353e836dc6..b29f75fb52 100644
--- a/third_party/nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/irc/ircd-hybrid/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "ircd-hybrid-8.2.35";
+  name = "ircd-hybrid-8.2.36";
 
   src = fetchurl {
     url = "mirror://sourceforge/ircd-hybrid/${name}.tgz";
-    sha256 = "045wd3wa4i1hl7i4faksaj8l5r70ld55bggryaf1ml28ijwjwpca";
+    sha256 = "0sg4g0znl8ic8vklpy96z88gjksc165kl945a6fr1j4xc1bf8gcv";
   };
 
   buildInputs = [ openssl zlib ];
diff --git a/third_party/nixpkgs/pkgs/servers/matterbridge/default.nix b/third_party/nixpkgs/pkgs/servers/matterbridge/default.nix
index 4235c7e26b..d6865df66c 100644
--- a/third_party/nixpkgs/pkgs/servers/matterbridge/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/matterbridge/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "matterbridge";
-  version = "1.22.0";
+  version = "1.22.1";
 
   vendorSha256 = null;
 
@@ -10,7 +10,7 @@ buildGoModule rec {
 
   src = fetchurl {
     url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
-    sha256 = "sha256-jwatqxQh4t4tgNiOEjS9vxIM+9XtnH8QNch887+xDnI=";
+    sha256 = "sha256-yV805OWFNOxKIGd6t2kRcUzdB8xYWYHFK+W2u/QPTXg=";
   };
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/servers/monitoring/loki/default.nix b/third_party/nixpkgs/pkgs/servers/monitoring/loki/default.nix
index e27167041c..83150e4247 100644
--- a/third_party/nixpkgs/pkgs/servers/monitoring/loki/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/monitoring/loki/default.nix
@@ -1,15 +1,21 @@
-{ stdenv, lib, buildGoModule, fetchFromGitHub, makeWrapper, nixosTests, systemd
+{ stdenv
+, lib
+, buildGoModule
+, fetchFromGitHub
+, makeWrapper
+, nixosTests
+, systemd
 }:
 
 buildGoModule rec {
-  version = "2.2.0";
+  version = "2.2.1";
   pname = "grafana-loki";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "loki";
-    sha256 = "sha256-mEu9z3lhHSE0NMXXViX4OBbIiNba7/RPr+AFmIM77g4=";
+    sha256 = "sha256-ujZD5GIgMewvEQW3Wnt0eHdMIFs77PkkEecgCDw9290=";
   };
 
   vendorSha256 = null;
@@ -32,9 +38,10 @@ buildGoModule rec {
 
   passthru.tests = { inherit (nixosTests) loki; };
 
-  buildFlagsArray = let t = "github.com/grafana/loki/pkg/build"; in ''
-    -ldflags=-s -w -X ${t}.Version=${version} -X ${t}.BuildUser=nix@nixpkgs -X ${t}.BuildDate=unknown -X ${t}.Branch=unknown -X ${t}.Revision=unknown
-  '';
+  buildFlagsArray = let t = "github.com/grafana/loki/pkg/build"; in
+    ''
+      -ldflags=-s -w -X ${t}.Version=${version} -X ${t}.BuildUser=nix@nixpkgs -X ${t}.BuildDate=unknown -X ${t}.Branch=unknown -X ${t}.Revision=unknown
+    '';
 
   doCheck = true;
 
diff --git a/third_party/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix b/third_party/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
new file mode 100644
index 0000000000..333be37321
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/monitoring/prometheus/bitcoin-exporter.nix
@@ -0,0 +1,42 @@
+{ lib, fetchFromGitHub, fetchpatch, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "bitcoin-prometheus-exporter";
+  version = "0.5.0";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "jvstein";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0l0j6dyb0vflh386z3g8srysay5sf47g5rg2f5xrkckv86rjr115";
+  };
+
+  patches = [
+    # remove after update to new release
+    (fetchpatch {
+      name = "configurable-listening-address.patch";
+      url = "https://patch-diff.githubusercontent.com/raw/jvstein/bitcoin-prometheus-exporter/pull/11.patch";
+      sha256 = "0a2l8aqgprc1d5k8yg1gisn6imh9hzg6j0irid3pjvp5i5dcnhyq";
+    })
+  ];
+
+  propagatedBuildInputs = with python3Packages; [ prometheus_client bitcoinlib riprova ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bitcoind-monitor.py $out/bin/
+
+    mkdir -p $out/share/${pname}
+    cp -r dashboard README.md $out/share/${pname}/
+  '';
+
+  meta = with lib; {
+    description = "Prometheus exporter for Bitcoin Core nodes";
+    homepage = "https://github.com/jvstein/bitcoin-prometheus-exporter";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ mmilata ];
+    platforms = platforms.all;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix b/third_party/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
index e63cf48516..881d677b3e 100644
--- a/third_party/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
@@ -4,19 +4,19 @@ let
   generic = { subPackages, pname, postInstall ? "" }:
     buildGoModule rec {
       inherit pname;
-      version = "6.2.3";
+      version = "6.2.7";
       shortRev = "3a1ac58"; # for internal version info
 
       src = fetchFromGitHub {
         owner = "sensu";
         repo = "sensu-go";
         rev = "v${version}";
-        sha256 = "sha256-8+ibl2D8hSzFV+snJAxRNTiyYqCndUDGVCVKt2bkPlQ=";
+        sha256 = "sha256-JPX7MfxdlI6jLHVybAR4xtd/IiVGDrhrYUSlXohhpGc=";
       };
 
       inherit subPackages postInstall;
 
-  vendorSha256 = "sha256-KykxKJxel4E5VB8QAkEpBBaA7hKfSnTDkJ9qlNEln80=";
+  vendorSha256 = "sha256-bGQADjT9SMxZnWb3k7wVSsF7VWWuESBL/VDG76vj+Tk=";
 
   doCheck = false;
 
diff --git a/third_party/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix b/third_party/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix
index c2b6c0bb54..1deada4363 100644
--- a/third_party/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix
+++ b/third_party/nixpkgs/pkgs/servers/monitoring/zabbix/agent2.nix
@@ -12,7 +12,7 @@ import ./versions.nix ({ version, sha256 }:
 
     modRoot = "src/go";
 
-    vendorSha256 = "1ral3xg58x0lf5vl839nlabf443yzqnbrlzm0q127mvv412f5ajc";
+    vendorSha256 = "07caz0jfy0r1vb1h9mhb169wyn949z9xj0pmvyamr2d8y3k3hbyd";
 
     nativeBuildInputs = [ autoreconfHook pkg-config ];
     buildInputs = [ libiconv openssl pcre zlib ];
diff --git a/third_party/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix b/third_party/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
index b3cdca20b3..b9f5ad1be2 100644
--- a/third_party/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
+++ b/third_party/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
@@ -1,16 +1,11 @@
 generic: {
   v50 = generic {
-    version = "5.0.9";
-    sha256 = "16vwh01hlxmh9qg3d7q1vsmz3bwydk7v7da58d3764ldmh8ag199";
+    version = "5.0.10";
+    sha256 = "15kbbj1vclsys1z3ghcz9j5faz67k3z8yl81bn7bhmqaflavgicb";
   };
 
   v40 = generic {
-    version = "4.0.29";
-    sha256 = "0qghx7r7rbyya79mfsvr5fqws2d8ffn86zfdkzdrnmyl0x25fr9y";
-  };
-
-  v30 = generic {
-    version = "3.0.32";
-    sha256 = "1n9l0llmifmg5zzh2jzqax8y23ch7250v36bcfkpizvr8wji7xi7";
+    version = "4.0.30";
+    sha256 = "17h831a1rw245kz37pw5haxq09k9m76bf0bz0jgg9s0q1j7hvywh";
   };
 }
diff --git a/third_party/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix b/third_party/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
index 05ce1105d1..9e251e1bc2 100644
--- a/third_party/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
@@ -1,16 +1,28 @@
-{ stdenv, lib, fetchFromGitHub, cmake, docbook_xsl, libxslt
-, openssl, libuuid, libwebsockets_3_1, c-ares, libuv
-, systemd ? null, withSystemd ? stdenv.isLinux }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, docbook_xsl
+, libxslt
+, c-ares
+, cjson
+, libuuid
+, libuv
+, libwebsockets_3_1
+, openssl
+, withSystemd ? stdenv.isLinux
+, systemd
+}:
 
 stdenv.mkDerivation rec {
   pname = "mosquitto";
-  version = "1.6.12";
+  version = "2.0.10";
 
   src = fetchFromGitHub {
-    owner  = "eclipse";
-    repo   = "mosquitto";
-    rev    = "v${version}";
-    sha256 = "0y9jna2p7wg57vv2g6ls1dj6w89vaw828y9z1wb3vwz1yhvs35s8";
+    owner = "eclipse";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "144vw7b9ja4lci4mplbxs048x9aixd9c3s7rg6wc1k31w099rb12";
   };
 
   postPatch = ''
@@ -19,29 +31,30 @@ stdenv.mkDerivation rec {
         --replace http://docbook.sourceforge.net/release/xsl/current ${docbook_xsl}/share/xml/docbook-xsl
     done
 
-    for f in {lib,lib/cpp,src}/CMakeLists.txt ; do
-      substituteInPlace $f --replace /sbin/ldconfig true
-    done
-
     # the manpages are not generated when using cmake
     pushd man
     make
     popd
   '';
 
-  buildInputs = [
-    openssl libuuid libwebsockets_3_1 c-ares libuv
-  ] ++ lib.optional withSystemd systemd;
-
   nativeBuildInputs = [ cmake docbook_xsl libxslt ];
 
+  buildInputs = [
+    c-ares
+    cjson
+    libuuid
+    libuv
+    libwebsockets_3_1
+    openssl
+  ] ++ lib.optional withSystemd systemd;
+
   cmakeFlags = [
     "-DWITH_THREADING=ON"
     "-DWITH_WEBSOCKETS=ON"
   ] ++ lib.optional withSystemd "-DWITH_SYSTEMD=ON";
 
   meta = with lib; {
-    description = "An open source MQTT v3.1/3.1.1 broker";
+    description = "An open source MQTT v3.1/3.1.1/5.0 broker";
     homepage = "https://mosquitto.org/";
     license = licenses.epl10;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/third_party/nixpkgs/pkgs/servers/nzbhydra2/default.nix b/third_party/nixpkgs/pkgs/servers/nzbhydra2/default.nix
index aab3952e9e..3aef89ecd8 100644
--- a/third_party/nixpkgs/pkgs/servers/nzbhydra2/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/nzbhydra2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nzbhydra2";
-  version = "3.8.0";
+  version = "3.13.2";
 
   src = fetchzip {
     url = "https://github.com/theotherp/${pname}/releases/download/v${version}/${pname}-${version}-linux.zip";
-    sha512 = "1gybricq26hixr5cmw1iwyax7h17d0n5wqzhrx727xda1x35jfjp5ynjdkxzysbfhs1za6vy54bpm0sda4nkrh16p0xqnz3nsd4hvzh";
+    sha512 = "2pi91y966qnq6q9qqnhglmbj4610jxyyqxiwa8zfmb8r48mzwzy3q5ga00h9qbhi6a8ghrfh1yvj4h9m17gk7l3rc5fw0r3mrk437nj";
     stripRoot = false;
   };
 
diff --git a/third_party/nixpkgs/pkgs/servers/plex/raw.nix b/third_party/nixpkgs/pkgs/servers/plex/raw.nix
index 6e6bf845d0..68168618c5 100644
--- a/third_party/nixpkgs/pkgs/servers/plex/raw.nix
+++ b/third_party/nixpkgs/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.22.0.4163-d8c4875dd";
+  version = "1.22.2.4282-a97b03fad";
   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 = "16lwcimgnpxcyxbk4qwkqz5mzmizqfzihwqb41awc38qlfbjzh5g";
+    sha256 = "01krx6vhk24wm2hikxkfv8m53y8b4yqnkii4j9zf48f1a9hlj2zp";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "0wvqrn7mycrx0rn4zkp6cr2mr59nfqh63czm0awsfpqc6hqggz8y";
+    sha256 = "04wzv15pnd4sn6cy62m8prvsxpxj4sg3q9ahwsrn2cj31vgayg0i";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/third_party/nixpkgs/pkgs/servers/rtsp-simple-server/default.nix b/third_party/nixpkgs/pkgs/servers/rtsp-simple-server/default.nix
index df9cab557b..76ddcf3346 100644
--- a/third_party/nixpkgs/pkgs/servers/rtsp-simple-server/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/rtsp-simple-server/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "rtsp-simple-server";
-  version = "0.15.2";
+  version = "0.15.3";
 
   src = fetchFromGitHub {
     owner = "aler9";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XuyE0gubkE08Qei30/q8fLdX8V7zBsbFsdaiqbXgeI4=";
+    sha256 = "sha256-eY3XtGmHp7TM+lXC9tdd51x7sLuuZfBDJxTZ79Ye0Qs=";
   };
 
-  vendorSha256 = "sha256-4R2gA9QwfyBNDasRuDawDFEmXu31yGuZUQZS6cZL3B0=";
+  vendorSha256 = "sha256-SiWcOI1XxrwwTAzp8HC5zOO5e2oSWBMFRYsW2RwPA5I=";
 
   # Tests need docker
   doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/servers/sickbeard/sickgear.nix b/third_party/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
index ff464c6282..85ed2808d7 100644
--- a/third_party/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
+++ b/third_party/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python2.withPackages(ps: with ps; [ cheetah ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "0.23.14";
+  version = "0.23.15";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "sha256-QhBdOXu+KizeSYHUbNflDaDpzjeEFaYkhY+K1MgLzzc=";
+    sha256 = "sha256-xZ2SgYSEamh+Z64VKvIemqJLH/WjJHFji5qIameF5hM=";
   };
 
   dontBuild = true;
diff --git a/third_party/nixpkgs/pkgs/servers/teleport/default.nix b/third_party/nixpkgs/pkgs/servers/teleport/default.nix
index 8650ff108e..2350311b9d 100644
--- a/third_party/nixpkgs/pkgs/servers/teleport/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/teleport/default.nix
@@ -1,31 +1,31 @@
 # This file was generated by https://github.com/kamilchm/go2nix v2.0-dev
-{ lib, buildGoPackage, zip, fetchFromGitHub }:
+{ lib, buildGoPackage, zip, fetchFromGitHub, makeWrapper, xdg-utils }:
 let
   webassets = fetchFromGitHub {
     owner = "gravitational";
     repo = "webassets";
-    rev = "2d79788dbcd005bdcfe5b5120007d0faf8f1fc82";
-    sha256 = "001a3bx8yyx1hq8y5yiy1jzp122q8gcl369lj0609gaxp6dk5bdw";
+    rev = "8ace0cfcc6867651bed3fd5b5f35aaa2a80e1106";
+    sha256 = "sha256-mzvYysCFMvWHo8Y4cmhAju62jjpe92j564gc12BSdZA=";
   };
 in
 
 buildGoPackage rec {
   pname = "teleport";
-  version = "5.1.2";
+  version = "5.2.1";
 
   # This repo has a private submodule "e" which fetchgit cannot handle without failing.
   src = fetchFromGitHub {
     owner = "gravitational";
     repo = "teleport";
     rev = "v${version}";
-    sha256 = "0h1hn2dpdsmhxac06gn6787z2mnfcwb3wn0c2l7l2qhw6iqpgmvh";
+    sha256 = "sha256-8WEVH+04y1/s9KpBlK/LrgHG7qTpu2LqtanKKdi9N08=";
   };
 
   goPackagePath = "github.com/gravitational/teleport";
 
   subPackages = [ "tool/tctl" "tool/teleport" "tool/tsh" ];
 
-  nativeBuildInputs = [ zip ];
+  nativeBuildInputs = [ zip makeWrapper ];
 
   postBuild = ''
     pushd .
@@ -48,6 +48,7 @@ buildGoPackage rec {
 
   postInstall = ''
     install -Dm755 -t $client/bin $out/bin/tsh
+    wrapProgram $out/bin/tsh --prefix PATH : ${xdg-utils}/bin
   '';
 
   doInstallCheck = true;
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch
new file mode 100644
index 0000000000..83c44a466f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/action_mailer_ca_cert.patch
@@ -0,0 +1,12 @@
+diff --git a/config/environments/production.rb b/config/environments/production.rb
+index 75c3a69512..7fc374cd9d 100644
+--- a/config/environments/production.rb
++++ b/config/environments/production.rb
+@@ -32,6 +32,7 @@ Discourse::Application.configure do
+       user_name: GlobalSetting.smtp_user_name,
+       password: GlobalSetting.smtp_password,
+       authentication: GlobalSetting.smtp_authentication,
++      ca_file: "/etc/ssl/certs/ca-certificates.crt",
+       enable_starttls_auto: GlobalSetting.smtp_enable_start_tls
+     }
+ 
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/admin_create.patch b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/admin_create.patch
new file mode 100644
index 0000000000..651e8ce81d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/admin_create.patch
@@ -0,0 +1,48 @@
+diff --git a/lib/tasks/admin.rake b/lib/tasks/admin.rake
+index 80c403616d..cba01202ac 100644
+--- a/lib/tasks/admin.rake
++++ b/lib/tasks/admin.rake
+@@ -107,3 +107,43 @@ task "admin:create" => :environment do
+   end
+ 
+ end
++
++desc "Creates a forum administrator noninteractively"
++task "admin:create_noninteractively" => :environment do
++  email = ENV["ADMIN_EMAIL"]
++  existing_user = User.find_by_email(email)
++
++  # check if user account already exixts
++  if existing_user
++    admin = existing_user
++  else
++    # create new user
++    admin = User.new
++  end
++
++  admin.email = email
++  admin.name = ENV["ADMIN_NAME"]
++  admin.username = ENV["ADMIN_USERNAME"]
++
++  password = ENV["ADMIN_PASSWORD"]
++  unless admin.confirm_password?(password)
++    admin.password = password
++    puts "Admin password set!"
++  end
++
++  admin.active = true
++
++  # save/update user account
++  saved = admin.save
++  raise admin.errors.full_messages.join("\n") unless saved
++
++  puts "Account created successfully with username #{admin.username}" unless existing_user
++
++  # grant admin privileges
++  admin.grant_admin!
++  if admin.trust_level < 1
++    admin.change_trust_level!(1)
++  end
++  admin.email_tokens.update_all confirmed: true
++  admin.activate
++end
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/default.nix b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
new file mode 100644
index 0000000000..900d692109
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/default.nix
@@ -0,0 +1,234 @@
+{ stdenv, makeWrapper, runCommandNoCC, lib, nixosTests
+, fetchFromGitHub, bundlerEnv, ruby, replace, gzip, gnutar, git
+, util-linux, gawk, imagemagick, optipng, pngquant, libjpeg, jpegoptim
+, gifsicle, libpsl, redis, postgresql, which, brotli, procps
+, nodePackages, v8
+}:
+
+let
+  version = "2.6.3";
+
+  src = fetchFromGitHub {
+    owner = "discourse";
+    repo = "discourse";
+    rev = "v${version}";
+    sha256 = "sha256-lAIhVxvmjxEiru1KNxbFV+eDMLUGza/Dma3WU0ex0xs=";
+  };
+
+  runtimeDeps = [
+    # For backups, themes and assets
+    rubyEnv.wrappedRuby
+    gzip
+    gnutar
+    git
+    brotli
+
+    # Misc required system utils
+    which
+    procps       # For ps and kill
+    util-linux   # For renice
+    gawk
+
+    # Image optimization
+    imagemagick
+    optipng
+    pngquant
+    libjpeg
+    jpegoptim
+    gifsicle
+    nodePackages.svgo
+  ];
+
+  runtimeEnv = {
+    HOME = "/run/discourse/home";
+    RAILS_ENV = "production";
+    UNICORN_LISTENER = "/run/discourse/sockets/unicorn.sock";
+  };
+
+  rake = runCommandNoCC "discourse-rake" {
+    nativeBuildInputs = [ makeWrapper ];
+  } ''
+    mkdir -p $out/bin
+    makeWrapper ${rubyEnv}/bin/rake $out/bin/discourse-rake \
+        ${lib.concatStrings (lib.mapAttrsToList (name: value: "--set ${name} '${value}' ") runtimeEnv)} \
+        --prefix PATH : ${lib.makeBinPath runtimeDeps} \
+        --set RAKEOPT '-f ${discourse}/share/discourse/Rakefile' \
+        --run 'cd ${discourse}/share/discourse'
+  '';
+
+  rubyEnv = bundlerEnv {
+    name = "discourse-ruby-env-${version}";
+    inherit version ruby;
+    gemdir = ./rubyEnv;
+    gemset =
+      let
+        gems = import ./rubyEnv/gemset.nix;
+      in
+        gems // {
+          mini_racer = gems.mini_racer // {
+            buildInputs = [ v8 ];
+            dontBuild = false;
+            # The Ruby extension makefile generator assumes the source
+            # is C, when it's actually C++ ¯\_(ツ)_/¯
+            postPatch = ''
+              substituteInPlace ext/mini_racer_extension/extconf.rb \
+                --replace '" -std=c++0x"' \
+                          '" -x c++ -std=c++0x"'
+            '';
+          };
+          mini_suffix = gems.mini_suffix // {
+            propagatedBuildInputs = [ libpsl ];
+            dontBuild = false;
+            # Use our libpsl instead of the vendored one, which isn't
+            # available for aarch64
+            postPatch = ''
+              cp $(readlink -f ${libpsl}/lib/libpsl.so) vendor/libpsl.so
+            '';
+          };
+        };
+
+    groups = [
+      "default" "assets" "development" "test"
+    ];
+  };
+
+  assets = stdenv.mkDerivation {
+    pname = "discourse-assets";
+    inherit version src;
+
+    nativeBuildInputs = [
+      rubyEnv.wrappedRuby
+      postgresql
+      redis
+      which
+      brotli
+      procps
+      nodePackages.uglify-js
+    ];
+
+    # We have to set up an environment that is close enough to
+    # production ready or the assets:precompile task refuses to
+    # run. This means that Redis and PostgreSQL has to be running and
+    # database migrations performed.
+    preBuild = ''
+      redis-server >/dev/null &
+
+      initdb -A trust $NIX_BUILD_TOP/postgres >/dev/null
+      postgres -D $NIX_BUILD_TOP/postgres -k $NIX_BUILD_TOP >/dev/null &
+      export PGHOST=$NIX_BUILD_TOP
+
+      echo "Waiting for Redis and PostgreSQL to be ready.."
+      while ! redis-cli --scan >/dev/null || ! psql -l >/dev/null; do
+        sleep 0.1
+      done
+
+      psql -d postgres -tAc 'CREATE USER "discourse"'
+      psql -d postgres -tAc 'CREATE DATABASE "discourse" OWNER "discourse"'
+      psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
+      psql 'discourse' -tAc "CREATE EXTENSION IF NOT EXISTS hstore"
+
+      # Create a temporary home dir to stop bundler from complaining
+      mkdir $NIX_BUILD_TOP/tmp_home
+      export HOME=$NIX_BUILD_TOP/tmp_home
+
+      export RAILS_ENV=production
+
+      bundle exec rake db:migrate >/dev/null
+      rm -r tmp/*
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+
+      bundle exec rake assets:precompile
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mv public/assets $out
+
+      runHook postInstall
+    '';
+  };
+
+  discourse = stdenv.mkDerivation {
+    pname = "discourse";
+    inherit version src;
+
+    buildInputs = [
+      rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler
+    ];
+
+    patches = [
+      # Load a separate NixOS site settings file
+      ./nixos_defaults.patch
+
+      # Add a noninteractive admin creation task
+      ./admin_create.patch
+
+      # Disable jhead, which is currently marked as vulnerable
+      ./disable_jhead.patch
+
+      # Add the path to the CA cert bundle to make TLS work
+      ./action_mailer_ca_cert.patch
+
+      # Log Unicorn messages to the journal and make request timeout
+      # configurable
+      ./unicorn_logging_and_timeout.patch
+    ];
+
+    postPatch = ''
+      # Always require lib-files and application.rb through their store
+      # path, not their relative state directory path. This gets rid of
+      # warnings and means we don't have to link back to lib from the
+      # state directory.
+      find config -type f -execdir sed -Ei "s,(\.\./)+(lib|app)/,$out/share/discourse/\2/," {} \;
+
+      ${replace}/bin/replace-literal -f -r -e 'File.rename(temp_destination, destination)' "FileUtils.mv(temp_destination, destination)" .
+    '';
+
+    buildPhase = ''
+      runHook preBuild
+
+      mv config config.dist
+      mv public public.dist
+      mv plugins plugins.dist
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out/share
+      cp -r . $out/share/discourse
+      rm -r $out/share/discourse/log
+      ln -sf /var/log/discourse $out/share/discourse/log
+      ln -sf /run/discourse/tmp $out/share/discourse/tmp
+      ln -sf /run/discourse/config $out/share/discourse/config
+      ln -sf /run/discourse/assets/javascripts/plugins $out/share/discourse/app/assets/javascripts/plugins
+      ln -sf /run/discourse/public $out/share/discourse/public
+      ln -sf /run/discourse/plugins $out/share/discourse/plugins
+      ln -sf ${assets} $out/share/discourse/public.dist/assets
+
+      runHook postInstall
+    '';
+
+    meta = with lib; {
+      homepage = "https://www.discourse.org/";
+      platforms = platforms.linux;
+      maintainers = with maintainers; [ talyz ];
+      license = licenses.gpl2Plus;
+      description = "Discourse is an open source discussion platform";
+    };
+
+    passthru = {
+      inherit rubyEnv runtimeEnv runtimeDeps rake;
+      ruby = rubyEnv.wrappedRuby;
+      tests = nixosTests.discourse;
+    };
+  };
+in discourse
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch
new file mode 100644
index 0000000000..709a1959d6
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/disable_jhead.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/file_helper.rb b/lib/file_helper.rb
+index 162de9a40b..9ac8807e9d 100644
+--- a/lib/file_helper.rb
++++ b/lib/file_helper.rb
+@@ -124,6 +124,7 @@ class FileHelper
+         jpegoptim: { strip: strip_image_metadata ? "all" : "none" },
+         jpegtran: false,
+         jpegrecompress: false,
++        jhead: false,
+       )
+     end
+   end
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/mail_receiver/default.nix b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/mail_receiver/default.nix
new file mode 100644
index 0000000000..c1a3a2df10
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/mail_receiver/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, fetchFromGitHub, ruby, makeWrapper, replace }:
+
+stdenv.mkDerivation rec {
+  pname = "discourse-mail-receiver";
+  version = "4.0.7";
+
+  src = fetchFromGitHub {
+    owner = "discourse";
+    repo = "mail-receiver";
+    rev = "v${version}";
+    sha256 = "0grifm5qyqazq63va3w26xjqnxwmfixhx0fx0zy7kd39378wwa6i";
+  };
+
+  nativeBuildInputs = [ replace ];
+  buildInputs = [ ruby makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+
+    replace-literal -f -r -e /etc/postfix /run/discourse-mail-receiver .
+
+    cp -r receive-mail discourse-smtp-fast-rejection $out/bin/
+    cp -r lib $out/
+
+    wrapProgram $out/bin/receive-mail --set RUBYLIB $out/lib
+    wrapProgram $out/bin/discourse-smtp-fast-rejection --set RUBYLIB $out/lib
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.discourse.org/";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ talyz ];
+    license = licenses.mit;
+    description = "A helper program which receives incoming mail for Discourse";
+  };
+
+}
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/nixos_defaults.patch b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/nixos_defaults.patch
new file mode 100644
index 0000000000..3efca97e62
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/nixos_defaults.patch
@@ -0,0 +1,13 @@
+diff --git a/app/models/site_setting.rb b/app/models/site_setting.rb
+index 89a5e923fc..b60754f50a 100644
+--- a/app/models/site_setting.rb
++++ b/app/models/site_setting.rb
+@@ -26,6 +26,8 @@ class SiteSetting < ActiveRecord::Base
+     end
+   end
+ 
++  load_settings(File.join(Rails.root, 'config', 'nixos_site_settings.json'))
++
+   setup_deprecated_methods
+   client_settings << :available_locales
+ 
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
new file mode 100644
index 0000000000..cb86d7e4ba
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile
@@ -0,0 +1,248 @@
+# frozen_string_literal: true
+
+source 'https://rubygems.org'
+# if there is a super emergency and rubygems is playing up, try
+#source 'http://production.cf.rubygems.org'
+
+gem 'bootsnap', require: false, platform: :mri
+
+def rails_master?
+  ENV["RAILS_MASTER"] == '1'
+end
+
+if rails_master?
+  gem 'arel', git: 'https://github.com/rails/arel.git'
+  gem 'rails', git: 'https://github.com/rails/rails.git'
+else
+  # NOTE: Until rubygems gives us optional dependencies we are stuck with this needing to be explicit
+  # this allows us to include the bits of rails we use without pieces we do not.
+  #
+  # To issue a rails update bump the version number here
+  gem 'actionmailer', '6.0.3.3'
+  gem 'actionpack', '6.0.3.3'
+  gem 'actionview', '6.0.3.3'
+  gem 'activemodel', '6.0.3.3'
+  gem 'activerecord', '6.0.3.3'
+  gem 'activesupport', '6.0.3.3'
+  gem 'railties', '6.0.3.3'
+  gem 'sprockets-rails'
+end
+
+gem 'json'
+
+# TODO: At the moment Discourse does not work with Sprockets 4, we would need to correct internals
+# This is a desired upgrade we should get to.
+gem 'sprockets', '3.7.2'
+
+# this will eventually be added to rails,
+# allows us to precompile all our templates in the unicorn master
+gem 'actionview_precompiler', require: false
+
+gem 'seed-fu'
+
+gem 'mail', require: false
+gem 'mini_mime'
+gem 'mini_suffix'
+
+gem 'redis'
+
+# This is explicitly used by Sidekiq and is an optional dependency.
+# We tell Sidekiq to use the namespace "sidekiq" which triggers this
+# gem to be used. There is no explicit dependency in sidekiq cause
+# redis namespace support is optional
+# We already namespace stuff in DiscourseRedis, so we should consider
+# just using a single implementation in core vs having 2 namespace implementations
+gem 'redis-namespace'
+
+# NOTE: AM serializer gets a lot slower with recent updates
+# we used an old branch which is the fastest one out there
+# are long term goal here is to fork this gem so we have a
+# 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
+# behavior, we will push these versions up when upgrading ember
+gem 'discourse-ember-rails', '0.18.6', require: 'ember-rails'
+gem 'discourse-ember-source', '~> 3.12.2'
+gem 'ember-handlebars-template', '0.8.0'
+gem 'discourse-fonts'
+
+gem 'barber'
+
+gem 'message_bus'
+
+gem 'rails_multisite'
+
+gem 'fast_xs', platform: :ruby
+
+gem 'xorcist'
+
+gem 'fastimage'
+
+gem 'aws-sdk-s3', require: false
+gem 'aws-sdk-sns', require: false
+gem 'excon', require: false
+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 'multi_json'
+gem 'mustache'
+gem 'nokogiri'
+gem 'css_parser', require: false
+
+gem 'omniauth'
+gem 'omniauth-facebook'
+gem 'omniauth-twitter'
+gem 'omniauth-github'
+
+gem 'omniauth-oauth2', require: false
+
+gem 'omniauth-google-oauth2'
+
+gem 'oj'
+gem 'pg'
+gem 'mini_sql'
+gem 'pry-rails', require: false
+gem 'pry-byebug', require: false
+gem 'r2', require: false
+gem 'rake'
+
+gem 'thor', require: false
+gem 'diffy', require: false
+gem 'rinku'
+gem 'sidekiq'
+gem 'mini_scheduler'
+
+gem 'execjs', require: false
+gem 'mini_racer'
+
+gem 'highline', require: false
+
+gem 'rack'
+
+gem 'rack-protection' # security
+gem 'cbor', require: false
+gem 'cose', require: false
+gem 'addressable'
+
+# Gems used only for assets and not required in production environments by default.
+# Allow everywhere for now cause we are allowing asset debugging in production
+group :assets do
+  gem 'uglifier'
+  gem 'rtlit', require: false # for css rtling
+end
+
+group :test do
+  gem 'webmock', require: false
+  gem 'fakeweb', require: false
+  gem 'minitest', require: false
+  gem 'simplecov', require: false
+  gem "test-prof"
+end
+
+group :test, :development do
+  gem 'rspec'
+  gem 'mock_redis'
+  gem 'listen', require: false
+  gem 'certified', require: false
+  gem 'fabrication', require: false
+  gem 'mocha', require: false
+
+  gem 'rb-fsevent', require: RUBY_PLATFORM =~ /darwin/i ? 'rb-fsevent' : false
+
+  gem 'rspec-rails'
+
+  gem 'shoulda-matchers', require: false
+  gem 'rspec-html-matchers'
+  gem 'byebug', require: ENV['RM_INFO'].nil?, platform: :mri
+  gem "rubocop-discourse", require: false
+  gem 'parallel_tests'
+
+  gem 'rswag-specs'
+end
+
+group :development do
+  gem 'ruby-prof', require: false, platform: :mri
+  gem 'bullet', require: !!ENV['BULLET']
+  gem 'better_errors', platform: :mri, require: !!ENV['BETTER_ERRORS']
+  gem 'binding_of_caller'
+  gem 'yaml-lint'
+  gem 'annotate'
+end
+
+# this is an optional gem, it provides a high performance replacement
+# to String#blank? a method that is called quite frequently in current
+# ActiveRecord, this may change in the future
+gem 'fast_blank', platform: :ruby
+
+# this provides a very efficient lru cache
+gem 'lru_redux'
+
+gem 'htmlentities', require: false
+
+# IMPORTANT: mini profiler monkey patches, so it better be required last
+#  If you want to amend mini profiler to do the monkey patches in the railties
+#  we are open to it. by deferring require to the initializer we can configure discourse installs without it
+
+gem 'flamegraph', require: false
+gem 'rack-mini-profiler', require: ['enable_rails_patches']
+
+gem 'unicorn', require: false, platform: :ruby
+gem 'puma', require: false
+gem 'rbtrace', require: false, platform: :mri
+gem 'gc_tracer', require: false, platform: :mri
+
+# required for feed importing and embedding
+gem 'ruby-readability', require: false
+
+gem 'stackprof', require: false, platform: :mri
+gem 'memory_profiler', require: false, platform: :mri
+
+gem 'cppjieba_rb', require: false
+
+gem 'lograge', require: false
+gem 'logstash-event', require: false
+gem 'logstash-logger', require: false
+gem 'logster'
+
+# NOTE: later versions of sassc are causing a segfault, possibly dependent on processer architecture
+# and until resolved should be locked at 2.0.1
+gem 'sassc', '2.0.1', require: false
+gem "sassc-rails"
+
+gem 'rotp', require: false
+
+gem 'rqrcode'
+
+gem 'rubyzip', require: false
+
+gem 'sshkey', require: false
+
+gem 'rchardet', require: false
+gem 'lz4-ruby', require: false, platform: :ruby
+
+if ENV["IMPORT"] == "1"
+  gem 'mysql2'
+  gem 'redcarpet'
+
+  # NOTE: in import mode the version of sqlite can matter a lot, so we stick it to a specific one
+  gem 'sqlite3', '~> 1.3', '>= 1.3.13'
+  gem 'ruby-bbcode-to-md', git: 'https://github.com/nlalonde/ruby-bbcode-to-md'
+  gem 'reverse_markdown'
+  gem 'tiny_tds'
+  gem 'csv'
+end
+
+gem 'webpush', require: false
+gem 'colored2', require: false
+gem 'maxminddb'
+
+gem 'rails_failover', require: false
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
new file mode 100644
index 0000000000..4f06749322
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/Gemfile.lock
@@ -0,0 +1,561 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    actionmailer (6.0.3.3)
+      actionpack (= 6.0.3.3)
+      actionview (= 6.0.3.3)
+      activejob (= 6.0.3.3)
+      mail (~> 2.5, >= 2.5.4)
+      rails-dom-testing (~> 2.0)
+    actionpack (6.0.3.3)
+      actionview (= 6.0.3.3)
+      activesupport (= 6.0.3.3)
+      rack (~> 2.0, >= 2.0.8)
+      rack-test (>= 0.6.3)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.2.0)
+    actionview (6.0.3.3)
+      activesupport (= 6.0.3.3)
+      builder (~> 3.1)
+      erubi (~> 1.4)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.1, >= 1.2.0)
+    actionview_precompiler (0.2.3)
+      actionview (>= 6.0.a)
+    active_model_serializers (0.8.4)
+      activemodel (>= 3.0)
+    activejob (6.0.3.3)
+      activesupport (= 6.0.3.3)
+      globalid (>= 0.3.6)
+    activemodel (6.0.3.3)
+      activesupport (= 6.0.3.3)
+    activerecord (6.0.3.3)
+      activemodel (= 6.0.3.3)
+      activesupport (= 6.0.3.3)
+    activesupport (6.0.3.3)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+      zeitwerk (~> 2.2, >= 2.2.2)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    annotate (3.1.1)
+      activerecord (>= 3.2, < 7.0)
+      rake (>= 10.4, < 14.0)
+    ast (2.4.1)
+    aws-eventstream (1.1.0)
+    aws-partitions (1.390.0)
+    aws-sdk-core (3.109.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+      aws-partitions (~> 1, >= 1.239.0)
+      aws-sigv4 (~> 1.1)
+      jmespath (~> 1.0)
+    aws-sdk-kms (1.39.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-s3 (1.83.2)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sdk-kms (~> 1)
+      aws-sigv4 (~> 1.1)
+    aws-sdk-sns (1.35.0)
+      aws-sdk-core (~> 3, >= 3.109.0)
+      aws-sigv4 (~> 1.1)
+    aws-sigv4 (1.2.2)
+      aws-eventstream (~> 1, >= 1.0.2)
+    barber (0.12.2)
+      ember-source (>= 1.0, < 3.1)
+      execjs (>= 1.2, < 3)
+    better_errors (2.9.1)
+      coderay (>= 1.0.0)
+      erubi (>= 1.0.0)
+      rack (>= 0.9.0)
+    binding_of_caller (0.8.0)
+      debug_inspector (>= 0.0.1)
+    bootsnap (1.5.1)
+      msgpack (~> 1.0)
+    builder (3.2.4)
+    bullet (6.1.0)
+      activesupport (>= 3.0.0)
+      uniform_notifier (~> 1.11)
+    byebug (11.1.3)
+    cbor (0.5.9.6)
+    certified (1.0.0)
+    chunky_png (1.3.14)
+    coderay (1.1.3)
+    colored2 (3.1.2)
+    concurrent-ruby (1.1.7)
+    connection_pool (2.2.3)
+    cose (1.2.0)
+      cbor (~> 0.5.9)
+      openssl-signature_algorithm (~> 1.0)
+    cppjieba_rb (0.3.3)
+    crack (0.4.4)
+    crass (1.0.6)
+    css_parser (1.7.1)
+      addressable
+    debug_inspector (0.0.3)
+    diff-lcs (1.4.4)
+    diffy (3.4.0)
+    discourse-ember-rails (0.18.6)
+      active_model_serializers
+      ember-data-source (>= 1.0.0.beta.5)
+      ember-handlebars-template (>= 0.1.1, < 1.0)
+      ember-source (>= 1.1.0)
+      jquery-rails (>= 1.0.17)
+      railties (>= 3.1)
+    discourse-ember-source (3.12.2.2)
+    discourse-fonts (0.0.5)
+    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)
+    docile (1.3.2)
+    email_reply_trimmer (0.1.13)
+    ember-data-source (3.0.2)
+      ember-source (>= 2, < 3.0)
+    ember-handlebars-template (0.8.0)
+      barber (>= 0.11.0)
+      sprockets (>= 3.3, < 4.1)
+    ember-source (2.18.2)
+    erubi (1.10.0)
+    excon (0.78.0)
+    execjs (2.7.0)
+    exifr (1.3.9)
+    fabrication (2.21.1)
+    fakeweb (1.3.0)
+    faraday (1.1.0)
+      multipart-post (>= 1.2, < 3)
+      ruby2_keywords
+    fast_blank (1.0.0)
+    fast_xs (0.8.0)
+    fastimage (2.2.0)
+    ffi (1.13.1)
+    flamegraph (0.9.5)
+    fspath (3.1.2)
+    gc_tracer (1.5.1)
+    globalid (0.4.2)
+      activesupport (>= 4.2.0)
+    guess_html_encoding (0.0.11)
+    hashdiff (1.0.1)
+    hashie (4.1.0)
+    highline (2.0.3)
+    hkdf (0.3.0)
+    htmlentities (4.3.4)
+    http_accept_language (2.1.1)
+    i18n (1.8.5)
+      concurrent-ruby (~> 1.0)
+    image_size (1.5.0)
+    in_threads (1.5.4)
+    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.3.1)
+    json-schema (2.8.1)
+      addressable (>= 2.4)
+    jwt (2.2.2)
+    kgio (2.11.3)
+    libv8 (8.4.255.0)
+    listen (3.3.1)
+      rb-fsevent (~> 0.10, >= 0.10.3)
+      rb-inotify (~> 0.9, >= 0.9.10)
+    lograge (0.11.2)
+      actionpack (>= 4)
+      activesupport (>= 4)
+      railties (>= 4)
+      request_store (~> 1.0)
+    logstash-event (1.2.02)
+    logstash-logger (0.26.1)
+      logstash-event (~> 1.2)
+    logster (2.9.4)
+    loofah (2.8.0)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.5.9)
+    lru_redux (1.1.0)
+    lz4-ruby (0.3.3)
+    mail (2.7.1)
+      mini_mime (>= 0.1.1)
+    maxminddb (0.1.22)
+    memory_profiler (0.9.14)
+    message_bus (3.3.4)
+      rack (>= 1.1.3)
+    method_source (1.0.0)
+    mini_mime (1.0.2)
+    mini_portile2 (2.4.0)
+    mini_racer (0.3.1)
+      libv8 (~> 8.4.255)
+    mini_scheduler (0.12.3)
+      sidekiq
+    mini_sql (0.3)
+    mini_suffix (0.3.0)
+      ffi (~> 1.9)
+    minitest (5.14.2)
+    mocha (1.11.2)
+    mock_redis (0.26.0)
+    msgpack (1.3.3)
+    multi_json (1.15.0)
+    multi_xml (0.6.0)
+    multipart-post (2.1.1)
+    mustache (1.1.1)
+    nio4r (2.5.4)
+    nokogiri (1.10.10)
+      mini_portile2 (~> 2.4.0)
+    nokogumbo (2.0.2)
+      nokogiri (~> 1.8, >= 1.8.4)
+    oauth (0.5.4)
+    oauth2 (1.4.4)
+      faraday (>= 0.8, < 2.0)
+      jwt (>= 1.0, < 3.0)
+      multi_json (~> 1.3)
+      multi_xml (~> 0.5)
+      rack (>= 1.2, < 3)
+    oj (3.10.16)
+    omniauth (1.9.1)
+      hashie (>= 3.4.6)
+      rack (>= 1.6.2, < 3)
+    omniauth-facebook (8.0.0)
+      omniauth-oauth2 (~> 1.2)
+    omniauth-github (1.4.0)
+      omniauth (~> 1.5)
+      omniauth-oauth2 (>= 1.4.0, < 2.0)
+    omniauth-google-oauth2 (0.8.0)
+      jwt (>= 2.0)
+      omniauth (>= 1.1.1)
+      omniauth-oauth2 (>= 1.6)
+    omniauth-oauth (1.1.0)
+      oauth
+      omniauth (~> 1.0)
+    omniauth-oauth2 (1.7.0)
+      oauth2 (~> 1.4)
+      omniauth (~> 1.9)
+    omniauth-twitter (1.4.0)
+      omniauth-oauth (~> 1.1)
+      rack
+    onebox (2.2.1)
+      addressable (~> 2.7.0)
+      htmlentities (~> 4.3)
+      multi_json (~> 1.11)
+      mustache
+      nokogiri (~> 1.7)
+      sanitize
+    openssl-signature_algorithm (1.0.0)
+    optimist (3.0.1)
+    parallel (1.20.1)
+    parallel_tests (3.4.0)
+      parallel
+    parser (2.7.2.0)
+      ast (~> 2.4.1)
+    pg (1.2.3)
+    progress (3.5.2)
+    pry (0.13.1)
+      coderay (~> 1.1)
+      method_source (~> 1.0)
+    pry-byebug (3.9.0)
+      byebug (~> 11.0)
+      pry (~> 0.13.0)
+    pry-rails (0.3.9)
+      pry (>= 0.10.4)
+    public_suffix (4.0.6)
+    puma (5.0.4)
+      nio4r (~> 2.0)
+    r2 (0.2.7)
+    rack (2.2.3)
+    rack-mini-profiler (2.2.0)
+      rack (>= 1.2.0)
+    rack-protection (2.1.0)
+      rack
+    rack-test (1.1.0)
+      rack (>= 1.0, < 3)
+    rails-dom-testing (2.0.3)
+      activesupport (>= 4.2.0)
+      nokogiri (>= 1.6)
+    rails-html-sanitizer (1.3.0)
+      loofah (~> 2.3)
+    rails_failover (0.6.2)
+      activerecord (~> 6.0)
+      concurrent-ruby
+      railties (~> 6.0)
+    rails_multisite (2.5.0)
+      activerecord (> 5.0, < 7)
+      railties (> 5.0, < 7)
+    railties (6.0.3.3)
+      actionpack (= 6.0.3.3)
+      activesupport (= 6.0.3.3)
+      method_source
+      rake (>= 0.8.7)
+      thor (>= 0.20.3, < 2.0)
+    rainbow (3.0.0)
+    raindrops (0.19.1)
+    rake (13.0.1)
+    rb-fsevent (0.10.4)
+    rb-inotify (0.10.1)
+      ffi (~> 1.0)
+    rbtrace (0.4.14)
+      ffi (>= 1.0.6)
+      msgpack (>= 0.4.3)
+      optimist (>= 3.0.0)
+    rchardet (1.8.0)
+    redis (4.2.5)
+    redis-namespace (1.8.0)
+      redis (>= 3.0.4)
+    regexp_parser (2.0.0)
+    request_store (1.5.0)
+      rack (>= 1.4)
+    rexml (3.2.4)
+    rinku (2.0.6)
+    rotp (6.2.0)
+    rqrcode (1.1.2)
+      chunky_png (~> 1.0)
+      rqrcode_core (~> 0.1)
+    rqrcode_core (0.1.2)
+    rspec (3.10.0)
+      rspec-core (~> 3.10.0)
+      rspec-expectations (~> 3.10.0)
+      rspec-mocks (~> 3.10.0)
+    rspec-core (3.10.0)
+      rspec-support (~> 3.10.0)
+    rspec-expectations (3.10.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.10.0)
+    rspec-html-matchers (0.9.4)
+      nokogiri (~> 1)
+      rspec (>= 3.0.0.a, < 4)
+    rspec-mocks (3.10.0)
+      diff-lcs (>= 1.2.0, < 2.0)
+      rspec-support (~> 3.10.0)
+    rspec-rails (4.0.1)
+      actionpack (>= 4.2)
+      activesupport (>= 4.2)
+      railties (>= 4.2)
+      rspec-core (~> 3.9)
+      rspec-expectations (~> 3.9)
+      rspec-mocks (~> 3.9)
+      rspec-support (~> 3.9)
+    rspec-support (3.10.0)
+    rswag-specs (2.3.1)
+      activesupport (>= 3.1, < 7.0)
+      json-schema (~> 2.2)
+      railties (>= 3.1, < 7.0)
+    rtlit (0.0.5)
+    rubocop (1.4.2)
+      parallel (~> 1.10)
+      parser (>= 2.7.1.5)
+      rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.8)
+      rexml
+      rubocop-ast (>= 1.1.1)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (>= 1.4.0, < 2.0)
+    rubocop-ast (1.2.0)
+      parser (>= 2.7.1.5)
+    rubocop-discourse (2.4.1)
+      rubocop (>= 1.1.0)
+      rubocop-rspec (>= 2.0.0)
+    rubocop-rspec (2.0.0)
+      rubocop (~> 1.0)
+      rubocop-ast (>= 1.1.0)
+    ruby-prof (1.4.2)
+    ruby-progressbar (1.10.1)
+    ruby-readability (0.7.0)
+      guess_html_encoding (>= 0.0.4)
+      nokogiri (>= 1.6.0)
+    ruby2_keywords (0.0.2)
+    rubyzip (2.3.0)
+    sanitize (5.2.1)
+      crass (~> 1.0.2)
+      nokogiri (>= 1.8.0)
+      nokogumbo (~> 2.0)
+    sassc (2.0.1)
+      ffi (~> 1.9)
+      rake
+    sassc-rails (2.1.2)
+      railties (>= 4.0.0)
+      sassc (>= 2.0)
+      sprockets (> 3.0)
+      sprockets-rails
+      tilt
+    seed-fu (2.3.9)
+      activerecord (>= 3.1)
+      activesupport (>= 3.1)
+    shoulda-matchers (4.4.1)
+      activesupport (>= 4.2.0)
+    sidekiq (6.1.2)
+      connection_pool (>= 2.2.2)
+      rack (~> 2.0)
+      redis (>= 4.2.0)
+    simplecov (0.20.0)
+      docile (~> 1.1)
+      simplecov-html (~> 0.11)
+      simplecov_json_formatter (~> 0.1)
+    simplecov-html (0.12.3)
+    simplecov_json_formatter (0.1.2)
+    sprockets (3.7.2)
+      concurrent-ruby (~> 1.0)
+      rack (> 1, < 3)
+    sprockets-rails (3.2.2)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    sshkey (2.0.0)
+    stackprof (0.2.16)
+    test-prof (0.12.2)
+    thor (1.0.1)
+    thread_safe (0.3.6)
+    tilt (2.0.10)
+    tzinfo (1.2.8)
+      thread_safe (~> 0.1)
+    uglifier (4.2.0)
+      execjs (>= 0.3.0, < 3)
+    unf (0.1.4)
+      unf_ext
+    unf_ext (0.0.7.7)
+    unicode-display_width (1.7.0)
+    unicorn (5.7.0)
+      kgio (~> 2.6)
+      raindrops (~> 0.7)
+    uniform_notifier (1.13.0)
+    webmock (3.10.0)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff (>= 0.4.0, < 2.0.0)
+    webpush (1.1.0)
+      hkdf (~> 0.2)
+      jwt (~> 2.0)
+    xorcist (1.1.2)
+    yaml-lint (0.0.10)
+    zeitwerk (2.4.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  actionmailer (= 6.0.3.3)
+  actionpack (= 6.0.3.3)
+  actionview (= 6.0.3.3)
+  actionview_precompiler
+  active_model_serializers (~> 0.8.3)
+  activemodel (= 6.0.3.3)
+  activerecord (= 6.0.3.3)
+  activesupport (= 6.0.3.3)
+  addressable
+  annotate
+  aws-sdk-s3
+  aws-sdk-sns
+  barber
+  better_errors
+  binding_of_caller
+  bootsnap
+  bullet
+  byebug
+  cbor
+  certified
+  colored2
+  cose
+  cppjieba_rb
+  css_parser
+  diffy
+  discourse-ember-rails (= 0.18.6)
+  discourse-ember-source (~> 3.12.2)
+  discourse-fonts
+  discourse_image_optim
+  email_reply_trimmer
+  ember-handlebars-template (= 0.8.0)
+  excon
+  execjs
+  fabrication
+  fakeweb
+  fast_blank
+  fast_xs
+  fastimage
+  flamegraph
+  gc_tracer
+  highline
+  htmlentities
+  http_accept_language
+  json
+  listen
+  lograge
+  logstash-event
+  logstash-logger
+  logster
+  lru_redux
+  lz4-ruby
+  mail
+  maxminddb
+  memory_profiler
+  message_bus
+  mini_mime
+  mini_racer
+  mini_scheduler
+  mini_sql
+  mini_suffix
+  minitest
+  mocha
+  mock_redis
+  multi_json
+  mustache
+  nokogiri
+  oj
+  omniauth
+  omniauth-facebook
+  omniauth-github
+  omniauth-google-oauth2
+  omniauth-oauth2
+  omniauth-twitter
+  onebox
+  parallel_tests
+  pg
+  pry-byebug
+  pry-rails
+  puma
+  r2
+  rack
+  rack-mini-profiler
+  rack-protection
+  rails_failover
+  rails_multisite
+  railties (= 6.0.3.3)
+  rake
+  rb-fsevent
+  rbtrace
+  rchardet
+  redis
+  redis-namespace
+  rinku
+  rotp
+  rqrcode
+  rspec
+  rspec-html-matchers
+  rspec-rails
+  rswag-specs
+  rtlit
+  rubocop-discourse
+  ruby-prof
+  ruby-readability
+  rubyzip
+  sassc (= 2.0.1)
+  sassc-rails
+  seed-fu
+  shoulda-matchers
+  sidekiq
+  simplecov
+  sprockets (= 3.7.2)
+  sprockets-rails
+  sshkey
+  stackprof
+  test-prof
+  thor
+  uglifier
+  unf
+  unicorn
+  webmock
+  webpush
+  xorcist
+  yaml-lint
+
+BUNDLED WITH
+   2.1.4
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
new file mode 100644
index 0000000000..b2cf191a44
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/rubyEnv/gemset.nix
@@ -0,0 +1,2272 @@
+{
+  actionmailer = {
+    dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1spq0dbfn0qkqg9sq0rsjn360b4j36zly8hawaivkrwr3rsvyz75";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  actionpack = {
+    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p873nqwmpsvmkb5n86d70wndx1qhy15pc9mbcd1mc8sj174578b";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  actionview = {
+    dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08pvmjddlw01q5r9zdfgddwp4csndpf5i2w47677z5r36jznz36q";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  actionview_precompiler = {
+    dependencies = ["actionview"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07dx8vkwig8han4zccs0chahcf9ibd4abzx9n56qah8zak5cyrhd";
+      type = "gem";
+    };
+    version = "0.2.3";
+  };
+  active_model_serializers = {
+    dependencies = ["activemodel"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0k3mgia2ahh7mbk30hjq9pzqbk0kh281s91kq2z6p555nv9y6l3k";
+      type = "gem";
+    };
+    version = "0.8.4";
+  };
+  activejob = {
+    dependencies = ["activesupport" "globalid"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w54ckvc229iaax879hkhyc93j7z8p0v7acp6mk3h8xjfvmwy5jp";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  activemodel = {
+    dependencies = ["activesupport"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "166jlx6kbby01vr37srh081a9fykgsz873yg5i9gl2ar3vw9gs56";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport"];
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y2a4ss6ld6yrhpcbcb3kjn5gj6zk9qklp2aq5rl1awl8vbdbdb7";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dmkqbvndbz011a1byg6f990936vfadbnwjwjw9vjzr4kd8bxk96";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  annotate = {
+    dependencies = ["activerecord" "rake"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dxrfppwfg13vqmambbs56xjj8qsdgcy58r2yc44vvy3z1g5yflw";
+      type = "gem";
+    };
+    version = "3.1.1";
+  };
+  ast = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  aws-eventstream = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  aws-partitions = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17xranmng1mg6238zdmnfvaig82r2ymp2apra9yh5d8rhvn8hkwm";
+      type = "gem";
+    };
+    version = "1.390.0";
+  };
+  aws-sdk-core = {
+    dependencies = ["aws-eventstream" "aws-partitions" "aws-sigv4" "jmespath"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05dq7jfv5qf1y00ib96nqsipf08hflw8n8fwkyjw4qav84wjqaq4";
+      type = "gem";
+    };
+    version = "3.109.2";
+  };
+  aws-sdk-kms = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ly1m631qm2ciif7sysbzrgczjvz95ga3g6w6vrzvfdv31jjnl9a";
+      type = "gem";
+    };
+    version = "1.39.0";
+  };
+  aws-sdk-s3 = {
+    dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mld0yh6q6i2nbb143g5xc6gm70sqpvpwxfknlihrd8jmw3xc0bs";
+      type = "gem";
+    };
+    version = "1.83.2";
+  };
+  aws-sdk-sns = {
+    dependencies = ["aws-sdk-core" "aws-sigv4"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dw80ldqhb1mny5irgi2jh36hykcmyd07xalv21xncxqzmf8aiag";
+      type = "gem";
+    };
+    version = "1.35.0";
+  };
+  aws-sigv4 = {
+    dependencies = ["aws-eventstream"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ll9382c1x2hp750cilh01h1cycgyhdr4cmmgx23k94hyyb8chv5";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  barber = {
+    dependencies = ["ember-source" "execjs"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07rnlbh7kgamcbnl1sqlcdrjj8src4qc687klqq4a3vqq2slnscx";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  better_errors = {
+    dependencies = ["coderay" "erubi" "rack"];
+    groups = ["development"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11220lfzhsyf5fcril3qd689kgg46qlpiiaj00hc9mh4mcbc3vrr";
+      type = "gem";
+    };
+    version = "2.9.1";
+  };
+  binding_of_caller = {
+    dependencies = ["debug_inspector"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05syqlks7463zsy1jdfbbdravdhj9hpj5pv2m74blqpv8bq4vv5g";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  bootsnap = {
+    dependencies = ["msgpack"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qx1f729bgh391agsqb4ngzn22wdn4cc6mkp0cipf0d5hsg9cpaq";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  builder = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  bullet = {
+    dependencies = ["activesupport" "uniform_notifier"];
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18ifwnvn13755qkfigapyj5bflpby3phxzbb7x5336d0kzv5k7d9";
+      type = "gem";
+    };
+    version = "6.1.0";
+  };
+  byebug = {
+    groups = ["development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nx3yjf4xzdgb8jkmk2344081gqr22pgjqnmjg2q64mj5d6r9194";
+      type = "gem";
+    };
+    version = "11.1.3";
+  };
+  cbor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3";
+      type = "gem";
+    };
+    version = "0.5.9.6";
+  };
+  certified = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1706p6p0a8adyvd943af2a3093xakvislgffw3v9dvp7j07dyk5a";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  chunky_png = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1v52ndgx9r4jybq8yzr8anzfbnjk4y2hvz97nm9924wi4bad3xkf";
+      type = "gem";
+    };
+    version = "1.3.14";
+  };
+  coderay = {
+    groups = ["default" "development"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
+      type = "gem";
+    };
+    version = "1.1.3";
+  };
+  colored2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jlbqa9q4mvrm73aw9mxh23ygzbjiqwisl32d8szfb5fxvbjng5i";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  concurrent-ruby = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
+      type = "gem";
+    };
+    version = "1.1.7";
+  };
+  connection_pool = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qikl4av1z8kqnk5ba18136dpqzw8wjawc2w9b4zb5psdd5z8nwf";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  cose = {
+    dependencies = ["cbor" "openssl-signature_algorithm"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gx239d2fracq9az74wfdwmp5zm7zpzkcgchwnv2ng33d8r33p3m";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  cppjieba_rb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sslff7yy8jvp4rcn1b6jn9v0d3iibb68i79shgd94rs2yq8k117";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  crack = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1awi8jy4jn0f7vxpdvz3xvn1zzjbjh33n28lfkijh77dla5zb7lc";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
+  crass = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
+      type = "gem";
+    };
+    version = "1.0.6";
+  };
+  css_parser = {
+    dependencies = ["addressable"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04c4dl8cm5rjr50k9qa6yl9r05fk9zcb1zxh0y0cdahxlsgcydfw";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
+  debug_inspector = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vxr0xa1mfbkfcrn71n7c4f2dj7la5hvphn904vh20j3x4j5lrx0";
+      type = "gem";
+    };
+    version = "0.0.3";
+  };
+  diff-lcs = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m925b8xc6kbpnif9dldna24q1szg4mk0fvszrki837pfn46afmz";
+      type = "gem";
+    };
+    version = "1.4.4";
+  };
+  diffy = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nrg7kpgz6cn1gv2saj2fa5sfiykamvd7vn9lw2v625k7pjwf31l";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  discourse-ember-rails = {
+    dependencies = ["active_model_serializers" "ember-data-source" "ember-handlebars-template" "ember-source" "jquery-rails" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ax5x2d6q6hkm7r58ai9p0sahlg842aqlm7dpv6svrfpnjlaz7sf";
+      type = "gem";
+    };
+    version = "0.18.6";
+  };
+  discourse-ember-source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mqkwiqb5n64lc5jdjnmpgb9apq08ywkz9yk8mj1sx2lqcsw11pc";
+      type = "gem";
+    };
+    version = "3.12.2.2";
+  };
+  discourse-fonts = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xhwgqclh3jncjr55m0hyq3w3iw8jw2r7ickzq1zn1282pc3n2i7";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  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";
+  };
+  docile = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qrwiyagxzl8zlx3dafb0ay8l14ib7imb2rsmx70i5cp420v8gif";
+      type = "gem";
+    };
+    version = "1.3.2";
+  };
+  email_reply_trimmer = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jgcxifm48xq5dz9k47q43pqm5bfnf14l62l3bqhmv8f6z8dw4ki";
+      type = "gem";
+    };
+    version = "0.1.13";
+  };
+  ember-data-source = {
+    dependencies = ["ember-source"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1803nh3knvwl12h63jd48qvbbrp42yy291wcb35960daklip0fd8";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
+  ember-handlebars-template = {
+    dependencies = ["barber" "sprockets"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wxj3vi4xs3vjxrdbzi4j4w6vv45r5dkz2rg2ldid3p8dp3irlf4";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  ember-source = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sixy30ym9j2slhlr0lfq943g958w8arlb0lsizh59iv1w5gmxxy";
+      type = "gem";
+    };
+    version = "2.18.2";
+  };
+  erubi = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  excon = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hi89v53pm2abfv9j8lgqdd7hgkr7fr0gwrczr940iwbb3xv7rrs";
+      type = "gem";
+    };
+    version = "0.78.0";
+  };
+  execjs = {
+    groups = ["assets" "default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  exifr = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mylhwmh6n4xihxr9s3zj0lc286f5maxbqd4dgk3paqnd7afz88s";
+      type = "gem";
+    };
+    version = "1.3.9";
+  };
+  fabrication = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pdrl55xf76pbc5kjzp7diawxxvgbk2cm38532in6df823431n6z";
+      type = "gem";
+    };
+    version = "2.21.1";
+  };
+  fakeweb = {
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1a09z9nb369bvwpghncgd5y4f95lh28w0q258srh02h22fz9dj8y";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  faraday = {
+    dependencies = ["multipart-post" "ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16dapwi5pivrl25r4lkr1mxjrzkznj4wlcb08fzkmxnj4g5c6y35";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  fast_blank = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16s1ilyvwzmkcgmklbrn0c2pch5n02vf921njx0bld4crgdr6z56";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  fast_xs = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1iydzaqmvqq7ncxkr182aybkk6xap0cb2w9amr73vbdxi2qf3wjz";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  fastimage = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11ny2pj0j6pljszrf1w3iqdv2pcl2iwwghjbgcjlizy424zbh0hb";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  ffi = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  flamegraph = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1p785nmhdzbwj0qpxn5fzrmr4kgimcds83v4f95f387z6w3050x6";
+      type = "gem";
+    };
+    version = "0.9.5";
+  };
+  fspath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xcxikkrjv8ws328nn5ax5pyfjs8pn7djg1hks7qyb3yp6prpb5m";
+      type = "gem";
+    };
+    version = "3.1.2";
+  };
+  gc_tracer = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yv3mp8lx74lfzs04fd5h4g89209iwhzpc407y35p7cmzgx6a4kv";
+      type = "gem";
+    };
+    version = "1.5.1";
+  };
+  globalid = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zkxndvck72bfw235bd9nl2ii0lvs5z88q14706cmn702ww2mxv1";
+      type = "gem";
+    };
+    version = "0.4.2";
+  };
+  guess_html_encoding = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "16700fk6kmif3q3kpc1ldhy3nsc9pkxlgl8sqhznff2zjj5lddna";
+      type = "gem";
+    };
+    version = "0.0.11";
+  };
+  hashdiff = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nynpl0xbj0nphqx1qlmyggq58ms1phf5i03hk64wcc0a17x1m1c";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  hashie = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02bsx12ihl78x0vdm37byp78jjw2ff6035y7rrmbd90qxjwxr43q";
+      type = "gem";
+    };
+    version = "4.1.0";
+  };
+  highline = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  hkdf = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04fixg0a51n4vy0j6c1hvisa2yl33m3jrrpxpb5sq6j511vjriil";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  htmlentities = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
+      type = "gem";
+    };
+    version = "4.3.4";
+  };
+  http_accept_language = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d0nlfz9vm4jr1l6q0chx4rp2hrnrfbx3gadc1dz930lbbaz0hq0";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
+      type = "gem";
+    };
+    version = "1.8.5";
+  };
+  image_size = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zrn2mqaf1kk548wn1y35i1a6kwh3320q62m929kn9m8sqpy4fk7";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  in_threads = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0m71806p1gm4kxiz4gvkyr8qip16hifn2kdf926jz44jj6kc6bbs";
+      type = "gem";
+    };
+    version = "1.5.4";
+  };
+  jmespath = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  jquery-rails = {
+    dependencies = ["rails-dom-testing" "railties" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dkhm8lan1vnyl3ll0ks2q06576pdils8a1dr354vfc1y5dqw15i";
+      type = "gem";
+    };
+    version = "4.4.0";
+  };
+  json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  json-schema = {
+    dependencies = ["addressable"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yv5lfmr2nzd14af498xqd5p89f3g080q8wk0klr3vxgypsikkb5";
+      type = "gem";
+    };
+    version = "2.8.1";
+  };
+  jwt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14ynyq1q483spj20ffl4xayfqx1a8qr761mqjfxczf8lwlap392n";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
+  kgio = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ai6bzlvxbzpdl466p1qi4dlhx8ri2wcrp6x1l19y3yfs3a29rng";
+      type = "gem";
+    };
+    version = "2.11.3";
+  };
+  libv8 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0317sr3nrl51sp844bps71smkrwim3fjn47wdfpbycixnbxspivm";
+      type = "gem";
+    };
+    version = "8.4.255.0";
+  };
+  listen = {
+    dependencies = ["rb-fsevent" "rb-inotify"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0028p1fss6pvw4mlpjqdmxfzsm8ww79irsadbibrr7f23qfn8ykr";
+      type = "gem";
+    };
+    version = "3.3.1";
+  };
+  lograge = {
+    dependencies = ["actionpack" "activesupport" "railties" "request_store"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vrjm4yqn5l6q5gsl72fmk95fl6j9z1a05gzbrwmsm3gp1a1bgac";
+      type = "gem";
+    };
+    version = "0.11.2";
+  };
+  logstash-event = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bk7fhhryjxp1klr3hq6i6srrc21wl4p980bysjp0w66z9hdr9w9";
+      type = "gem";
+    };
+    version = "1.2.02";
+  };
+  logstash-logger = {
+    dependencies = ["logstash-event"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nh0jgz4rl46axqb9l0fa866kh34wb7yf11qc3j30xhprdqb8yjp";
+      type = "gem";
+    };
+    version = "0.26.1";
+  };
+  logster = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ldikj3p0bakxg57didaw05pldjn0i5r20zawhqa34knlsqm66r6";
+      type = "gem";
+    };
+    version = "2.9.4";
+  };
+  loofah = {
+    dependencies = ["crass" "nokogiri"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ndimir6k3kfrh8qrb7ir1j836l4r3qlwyclwjh88b86clblhszh";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
+  lru_redux = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yxghzg7476sivz8yyr9nkak2dlbls0b89vc2kg52k0nmg6d0wgf";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  lz4-ruby = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12fymsvcb9kw6ycyfzc8b9svriq0afqf1qnl121xrz8c4gpfa6q1";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  maxminddb = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zlhqilyggiryywgswfi624bv10qnkm66hggmg79vvgv73j3p4sh";
+      type = "gem";
+    };
+    version = "0.1.22";
+  };
+  memory_profiler = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04ivhv1bilwqm33jv28gar2vwzsichb5nipaq395d3axabv8qmfy";
+      type = "gem";
+    };
+    version = "0.9.14";
+  };
+  message_bus = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hckijk9aa628nx66vr7axfsk7zfdkskaxj1mdzikk019q3h54fr";
+      type = "gem";
+    };
+    version = "3.3.4";
+  };
+  method_source = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      type = "gem";
+    };
+    version = "1.0.2";
+  };
+  mini_portile2 = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  mini_racer = {
+    dependencies = ["libv8"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r7j241mvhyyc017bqgp0pvf3jyrwbcqvz2pzm0r8zn2r85ks1jl";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  mini_scheduler = {
+    dependencies = ["sidekiq"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vigv7f1q5bkcb55ab2lyhq15yqfkg5mq61p7m7mw9b3jac7qjz1";
+      type = "gem";
+    };
+    version = "0.12.3";
+  };
+  mini_sql = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0qi4bj5jkh3673ybsxvsf7y485znyxb72vxg84gk9x65mf0y0m6h";
+      type = "gem";
+    };
+    version = "0.3";
+  };
+  mini_suffix = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bxd1fgzb20gvfvhbkrxym9fr7skm5x6fzvqfg4a0jijb34ww50h";
+      type = "gem";
+    };
+    version = "0.3.0";
+  };
+  minitest = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "170y2cvx51gm3cm3nhdf7j36sxnkh6vv8ls36p90ric7w8w16h4v";
+      type = "gem";
+    };
+    version = "5.14.2";
+  };
+  mocha = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hxmkm8qxd04vwj8mqnpyrf2dwy7g1k9zipdfhl4y71cw7ijm9n4";
+      type = "gem";
+    };
+    version = "1.11.2";
+  };
+  mock_redis = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06yj6j9x4zjckah4ixiwhy3hb6xzjp7yk7lmmcvcb8hpd0z0x95q";
+      type = "gem";
+    };
+    version = "0.26.0";
+  };
+  msgpack = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lva6bkvb4mfa0m3bqn4lm4s4gi81c40jvdcsrxr6vng49q9daih";
+      type = "gem";
+    };
+    version = "1.3.3";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  multi_xml = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmd4f401mvravi1i1yq7b2qjjli0yq7dfc4p1nj5nwajp7r6hyj";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  multipart-post = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  mustache = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l0p4wx15mi3wnamfv92ipkia4nsx8qi132c6g51jfdma3fiz2ch";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  nio4r = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cbwp1kbv6b2qfxv8sarv0d0ilb257jihlvdqj8f5pdm0ksq1sgk";
+      type = "gem";
+    };
+    version = "2.5.4";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      type = "gem";
+    };
+    version = "1.10.10";
+  };
+  nokogumbo = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0sxjnpjvrn10gdmfw2dimhch861lz00f28hvkkz0b1gc2rb65k9s";
+      type = "gem";
+    };
+    version = "2.0.2";
+  };
+  oauth = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zszdg8q1b135z7l7crjj234k4j0m347hywp5kj6zsq7q78pw09y";
+      type = "gem";
+    };
+    version = "0.5.4";
+  };
+  oauth2 = {
+    dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bhakjh30vi8scqwnhd1c9qkac9r8hh2lr0dbs5ynwmrc5djxknm";
+      type = "gem";
+    };
+    version = "1.4.4";
+  };
+  oj = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqmzqldi9a0wpilwx87yh61xd7647gg8ffammg4ava0bsx375g2";
+      type = "gem";
+    };
+    version = "3.10.16";
+  };
+  omniauth = {
+    dependencies = ["hashie" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "002vi9gwamkmhf0dsj2im1d47xw2n1jfhnzl18shxf3ampkqfmyz";
+      type = "gem";
+    };
+    version = "1.9.1";
+  };
+  omniauth-facebook = {
+    dependencies = ["omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z0f5sr2ddnvfva0jrfd4926nlv4528rfj7z595288n39304r092";
+      type = "gem";
+    };
+    version = "8.0.0";
+  };
+  omniauth-github = {
+    dependencies = ["omniauth" "omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xbk0dbxqfpyfb33ghz6vrlz3m6442rp18ryf13gwzlnifcawhlb";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  omniauth-google-oauth2 = {
+    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17pgqasl048irs2c6w6g57zvk0ygb5ml1krwir4qi4b6y53zyr55";
+      type = "gem";
+    };
+    version = "0.8.0";
+  };
+  omniauth-oauth = {
+    dependencies = ["oauth" "omniauth"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  omniauth-oauth2 = {
+    dependencies = ["oauth2" "omniauth"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0v6rw7sd223k7qw0l13wikgfcqbvbk81r53a9i2z0k7jl5vd97w5";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  omniauth-twitter = {
+    dependencies = ["omniauth-oauth" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0r5j65hkpgzhvvbs90id3nfsjgsad6ymzggbm7zlaxvnrmvnrk65";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  onebox = {
+    dependencies = ["addressable" "htmlentities" "multi_json" "mustache" "nokogiri" "sanitize"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b2aih0d5cva9bris36gh1mk3ym61wgxlpwvzjd6qphdrjfzqx8v";
+      type = "gem";
+    };
+    version = "2.2.1";
+  };
+  openssl-signature_algorithm = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h1pfx49j8d9vbdbi8jyj0mr63l7rhflgvgc0nhfygm1v77d7nkn";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  optimist = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
+      type = "gem";
+    };
+    version = "3.0.1";
+  };
+  parallel = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
+      type = "gem";
+    };
+    version = "1.20.1";
+  };
+  parallel_tests = {
+    dependencies = ["parallel"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mvdk8vgzqjv2pvadxwc8w2vf8dmiw145rjf47c36nn6l5hh02j6";
+      type = "gem";
+    };
+    version = "3.4.0";
+  };
+  parser = {
+    dependencies = ["ast"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f7gmm60yla325wlnd3qkxs59qm2y0aan8ljpg6k18rwzrrfil6z";
+      type = "gem";
+    };
+    version = "2.7.2.0";
+  };
+  pg = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
+      type = "gem";
+    };
+    version = "1.2.3";
+  };
+  progress = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pm3bv5n8c8j0vfm7wghd7xf6yq4m068cksxjldmna11qi0h0s8s";
+      type = "gem";
+    };
+    version = "3.5.2";
+  };
+  pry = {
+    dependencies = ["coderay" "method_source"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iyw4q4an2wmk8v5rn2ghfy2jaz9vmw2nk8415nnpx2s866934qk";
+      type = "gem";
+    };
+    version = "0.13.1";
+  };
+  pry-byebug = {
+    dependencies = ["byebug" "pry"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "096y5vmzpyy4x9h4ky4cs4y7d19vdq9vbwwrqafbh5gagzwhifiv";
+      type = "gem";
+    };
+    version = "3.9.0";
+  };
+  pry-rails = {
+    dependencies = ["pry"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1cf4ii53w2hdh7fn8vhqpzkymmchjbwij4l3m7s6fsxvb9bn51j6";
+      type = "gem";
+    };
+    version = "0.3.9";
+  };
+  public_suffix = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      type = "gem";
+    };
+    version = "4.0.6";
+  };
+  puma = {
+    dependencies = ["nio4r"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mkmfbf4qyiknwi9bb5432cpbbz06r855gknxb8grn24gmgs4d9i";
+      type = "gem";
+    };
+    version = "5.0.4";
+  };
+  r2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wk0p55zp3l96xy5ps28b33dn5z0jwsjl74bwfdn6z81pzjs5sfk";
+      type = "gem";
+    };
+    version = "0.2.7";
+  };
+  rack = {
+    groups = ["default" "development" "test"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  rack-mini-profiler = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05s7y56ayn56bn7y5ah3krm5d53vsj7apmcxlwc2qp7ik0xlypvq";
+      type = "gem";
+    };
+    version = "2.2.0";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "159a4j4kragqh0z0z8vrpilpmaisnlz3n7kgiyf16bxkwlb3qlhz";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  rack-test = {
+    dependencies = ["rack"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  rails-dom-testing = {
+    dependencies = ["activesupport" "nokogiri"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lfq2a7kp2x64dzzi5p4cjcbiv62vxh9lyqk2f0rqq3fkzrw8h5i";
+      type = "gem";
+    };
+    version = "2.0.3";
+  };
+  rails-html-sanitizer = {
+    dependencies = ["loofah"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1icpqmxbppl4ynzmn6dx7wdil5hhq6fz707m9ya6d86c7ys8sd4f";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
+  rails_failover = {
+    dependencies = ["activerecord" "concurrent-ruby" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ibxn7lk6rqk7q76cd9ir3xnh19p2pqr9mzam46n3h37f12yyax5";
+      type = "gem";
+    };
+    version = "0.6.2";
+  };
+  rails_multisite = {
+    dependencies = ["activerecord" "railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0p7g9gkcmw030zfqlw3k933i40j31wf3jh4bj1niihzk7slha97y";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  railties = {
+    dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05b79r0ms8jrs91zml1190qfxmnmks90g0sd820ks9msyr8xdp7j";
+      type = "gem";
+    };
+    version = "6.0.3.3";
+  };
+  rainbow = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  raindrops = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zjja00mzgx2lddb7qrn14k7qrnwhf4bpmnlqj78m1pfxh7svync";
+      type = "gem";
+    };
+    version = "0.19.1";
+  };
+  rake = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w6qza25bq1s825faaglkx1k6d59aiyjjk3yw3ip5sb463mhhai9";
+      type = "gem";
+    };
+    version = "13.0.1";
+  };
+  rb-fsevent = {
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
+      type = "gem";
+    };
+    version = "0.10.4";
+  };
+  rb-inotify = {
+    dependencies = ["ffi"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
+      type = "gem";
+    };
+    version = "0.10.1";
+  };
+  rbtrace = {
+    dependencies = ["ffi" "msgpack" "optimist"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
+      type = "gem";
+    };
+    version = "0.4.14";
+  };
+  rchardet = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  redis = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15x2sr6h094rjbvg8pkq6m3lcd5abpyx93aifvfdz3wv6x55xa48";
+      type = "gem";
+    };
+    version = "4.2.5";
+  };
+  redis-namespace = {
+    dependencies = ["redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05i6s898z5w31z385cba1683pgg5nnmj4m686cbravg7j4pgbcgv";
+      type = "gem";
+    };
+    version = "1.8.0";
+  };
+  regexp_parser = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1racz3w9s4w0ls32bvjypfifk4a7qxngm2cv1rh16jyz0c1wjd70";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  request_store = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cx74kispmnw3ljwb239j65a2j14n8jlsygy372hrsa8mxc71hxi";
+      type = "gem";
+    };
+    version = "1.5.0";
+  };
+  rexml = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3";
+      type = "gem";
+    };
+    version = "3.2.4";
+  };
+  rinku = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zcdha17s1wzxyc5814j6319wqg33jbn58pg6wmxpws36476fq4b";
+      type = "gem";
+    };
+    version = "2.0.6";
+  };
+  rotp = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11q7rkjx40yi6lpylgl2jkpy162mjw7mswrcgcax86vgpbpjx6i3";
+      type = "gem";
+    };
+    version = "6.2.0";
+  };
+  rqrcode = {
+    dependencies = ["chunky_png" "rqrcode_core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06lw8b6wfshxd61xw98xyp1a0zsz6av4nls2c9fwb7q59wb05sci";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  rqrcode_core = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "071jqmhk3hf0grsvi0jx5sl449pf82p40ls5b3likbq4q516zc0j";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  rspec = {
+    dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1dwai7jnwmdmd7ajbi2q0k0lx1dh88knv5wl7c34wjmf94yv8w5q";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rspec-core = {
+    dependencies = ["rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0n2rdv8f26yw8c6asymc0mgddyr5d2b5n6mfvpd3n6lnpf1jdyv2";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rspec-expectations = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j37dvnvfbjwj8dqx27yfvz0frl7f2jc1abqg99h0ppriz9za6dc";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rspec-html-matchers = {
+    dependencies = ["nokogiri" "rspec"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0883rqv77n2wawnk5lp3la48l7pckyz8l013qddngzmksi5p1v3f";
+      type = "gem";
+    };
+    version = "0.9.4";
+  };
+  rspec-mocks = {
+    dependencies = ["diff-lcs" "rspec-support"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pz89y1522i6f8wzrg72ykmch3318ih87nlpl0y1ghsrs5hqymw3";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rspec-rails = {
+    dependencies = ["actionpack" "activesupport" "railties" "rspec-core" "rspec-expectations" "rspec-mocks" "rspec-support"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lzik01ziaskgpdpy8knffpw0fsy9151f5lfigyhb89wq4q45hfs";
+      type = "gem";
+    };
+    version = "4.0.1";
+  };
+  rspec-support = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0j0n28i6zci5j7gg370bdy87dy43hlwx6dw428d9kamf5a0i2klz";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  rswag-specs = {
+    dependencies = ["activesupport" "json-schema" "railties"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lyp2m76p960bvgy4xcz0dilp4w5lq2cwh8md5z7cwxdg8qsbr83";
+      type = "gem";
+    };
+    version = "2.3.1";
+  };
+  rtlit = {
+    groups = ["assets"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0srfh7cl95srjiwbyc9pmn3w739zlvyj89hyj0bm7g92zrsd27qm";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  rubocop = {
+    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1kvzhzhzcdd5bqwjilb0fpp51sqjniww2b0g713n0cvhnlgchn2y";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q0kdi89ad7dd1xmzrdf5ikk32bllzr68hf4x8fd7azcv5jnch2l";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  rubocop-discourse = {
+    dependencies = ["rubocop" "rubocop-rspec"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z1h8spsjnsqz6c25n9ib1yimkwr7a76bas8w1k9c404hcqhlahv";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+  rubocop-rspec = {
+    dependencies = ["rubocop" "rubocop-ast"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1gl7hdd9lq0si4gb510g33dbysmk3iydas2b0sbl5pwfkhv0k4g1";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  ruby-prof = {
+    groups = ["development"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lm3wdxc6gjldkb5pdwwipapf84lgrvxck4h5kg8jdfd8arrpyis";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  ruby-progressbar = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1k77i0d4wsn23ggdd2msrcwfy0i376cglfqypkk2q77r2l3408zf";
+      type = "gem";
+    };
+    version = "1.10.1";
+  };
+  ruby-readability = {
+    dependencies = ["guess_html_encoding" "nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15ivhbry7hf82lww1bzcrwfyjymijfb3rb0wdd32g2z0942wdspa";
+      type = "gem";
+    };
+    version = "0.7.0";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17pcc0wgvh3ikrkr7bm3nx0qhyiqwidd13ij0fa50k7gsbnr2p0l";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  rubyzip = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0590m2pr9i209pp5z4mx0nb1961ishdiqb28995hw1nln1d1b5ji";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  sanitize = {
+    dependencies = ["crass" "nokogiri" "nokogumbo"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "18m3zcf207gcrmghx288w3n2kpphc22lbmbc1wdx1nzcn8g2yddh";
+      type = "gem";
+    };
+    version = "5.2.1";
+  };
+  sassc = {
+    dependencies = ["ffi" "rake"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sr4825rlwsrl7xrsm0sgalcpf5zgp4i56dbi3qxfa9lhs8r6zh4";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  sassc-rails = {
+    dependencies = ["railties" "sassc" "sprockets" "sprockets-rails" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1d9djmwn36a5m8a83bpycs48g8kh1n2xkyvghn7dr6zwh4wdyksz";
+      type = "gem";
+    };
+    version = "2.1.2";
+  };
+  seed-fu = {
+    dependencies = ["activerecord" "activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y7lzcshsq6i20qn1p8zczir4fivr6nbl1km91ns320vvh92v43d";
+      type = "gem";
+    };
+    version = "2.3.9";
+  };
+  shoulda-matchers = {
+    dependencies = ["activesupport"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wd1bblxr4dfmrnh3j83kvfds6a7nak4ifq37ab0pg1kdi6iiw7l";
+      type = "gem";
+    };
+    version = "4.4.1";
+  };
+  sidekiq = {
+    dependencies = ["connection_pool" "rack" "redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mjxrxppv08a1hwqi8gpg6n168cxqhp7c2r2jwc4rbz9j5k41vcw";
+      type = "gem";
+    };
+    version = "6.1.2";
+  };
+  simplecov = {
+    dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mm20dvd64w46l5k11il9z5sjgdpp0bknml76glcngvl2w03k3cb";
+      type = "gem";
+    };
+    version = "0.20.0";
+  };
+  simplecov-html = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb";
+      type = "gem";
+    };
+    version = "0.12.3";
+  };
+  simplecov_json_formatter = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0cl3j7p3b5q7sxsx1va63c8imc5x6g99xablz08qrmqhpi0d6g6j";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
+  sprockets = {
+    dependencies = ["concurrent-ruby" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "182jw5a0fbqah5w9jancvfmjbk88h8bxdbwnl4d3q809rpxdg8ay";
+      type = "gem";
+    };
+    version = "3.7.2";
+  };
+  sprockets-rails = {
+    dependencies = ["actionpack" "activesupport" "sprockets"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0mwmz36265646xqfyczgr1mhkm1hfxgxxvgdgr4xfcbf2g72p1k2";
+      type = "gem";
+    };
+    version = "3.2.2";
+  };
+  sshkey = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "03bkn55qsng484iqwz2lmm6rkimj01vsvhwk661s3lnmpkl65lbp";
+      type = "gem";
+    };
+    version = "2.0.0";
+  };
+  stackprof = {
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "147rb66p3n062vc433afqhkd99iazvkrqnghxgh871r62yhha93f";
+      type = "gem";
+    };
+    version = "0.2.16";
+  };
+  test-prof = {
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jfq8ylxpxanc3f0i6qb3nchawx9hj6qcqj6ccfyixrnvzswwjvi";
+      type = "gem";
+    };
+    version = "0.12.2";
+  };
+  thor = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  thread_safe = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
+  tilt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
+      type = "gem";
+    };
+    version = "2.0.10";
+  };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0skr6ih9cr3pwp8l84f0z7fy3q9kiq8hw0sg3zqw0hpbbyj05743";
+      type = "gem";
+    };
+    version = "1.2.8";
+  };
+  uglifier = {
+    dependencies = ["execjs"];
+    groups = ["assets"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wgh7bzy68vhv9v68061519dd8samcy8sazzz0w3k8kqpy3g4s5f";
+      type = "gem";
+    };
+    version = "4.2.0";
+  };
+  unf = {
+    dependencies = ["unf_ext"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  unf_ext = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wc47r23h063l8ysws8sy24gzh74mks81cak3lkzlrw4qkqb3sg4";
+      type = "gem";
+    };
+    version = "0.0.7.7";
+  };
+  unicode-display_width = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      type = "gem";
+    };
+    version = "1.7.0";
+  };
+  unicorn = {
+    dependencies = ["kgio" "raindrops"];
+    groups = ["default"];
+    platforms = [{
+      engine = "maglev";
+    } {
+      engine = "rbx";
+    } {
+      engine = "ruby";
+    }];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1qzdhbmab2w034wpdj5ippnyyvgqm8gpx9wbchb4zgs4i1mswzhv";
+      type = "gem";
+    };
+    version = "5.7.0";
+  };
+  uniform_notifier = {
+    groups = ["default" "development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vm4aix8jmv42s1x58m3lj3xwkbxyn9qn6lzhhig0d1j8fv6j30c";
+      type = "gem";
+    };
+    version = "1.13.0";
+  };
+  webmock = {
+    dependencies = ["addressable" "crack" "hashdiff"];
+    groups = ["test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wbdjagk2qpr76k3zw2gmkfp5aqlrc1a4qrpjv7sq1q39qbn8xax";
+      type = "gem";
+    };
+    version = "3.10.0";
+  };
+  webpush = {
+    dependencies = ["hkdf" "jwt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z9ma580q80czw46gi1bvsr2iwxr63aiyr7i9gilav6hbhg3sxv3";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  xorcist = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1q7hr3qyn1hczv9fglqc2cbaax0fb37gjjr0y24x19mmp817csdn";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  yaml-lint = {
+    groups = ["development"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1m9n4sg7i0334yac7dcrhnhv5rzvrccgnh687n9x77ba3awk4yx1";
+      type = "gem";
+    };
+    version = "0.0.10";
+  };
+  zeitwerk = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12n0hiawqayzchi0yga5n19hi63b2snd49fv3n23n2i4pp05jzrp";
+      type = "gem";
+    };
+    version = "2.4.1";
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
new file mode 100644
index 0000000000..1dbfed6791
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/unicorn_logging_and_timeout.patch
@@ -0,0 +1,25 @@
+diff --git a/config/unicorn.conf.rb b/config/unicorn.conf.rb
+index 373e235b3f..57d4d7a55b 100644
+--- a/config/unicorn.conf.rb
++++ b/config/unicorn.conf.rb
+@@ -27,18 +27,10 @@ pid (ENV["UNICORN_PID_PATH"] || "#{discourse_path}/tmp/pids/unicorn.pid")
+ 
+ if ENV["RAILS_ENV"] == "development" || !ENV["RAILS_ENV"]
+   logger Logger.new($stdout)
+-  # we want a longer timeout in dev cause first request can be really slow
+-  timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
+-else
+-  # By default, the Unicorn logger will write to stderr.
+-  # Additionally, some applications/frameworks log to stderr or stdout,
+-  # so prevent them from going to /dev/null when daemonized here:
+-  stderr_path "#{discourse_path}/log/unicorn.stderr.log"
+-  stdout_path "#{discourse_path}/log/unicorn.stdout.log"
+-  # nuke workers after 30 seconds instead of 60 seconds (the default)
+-  timeout 30
+ end
+ 
++timeout (ENV["UNICORN_TIMEOUT"] && ENV["UNICORN_TIMEOUT"].to_i || 60)
++
+ # important for Ruby 2.0
+ preload_app true
+ 
diff --git a/third_party/nixpkgs/pkgs/servers/web-apps/discourse/update.py b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/update.py
new file mode 100755
index 0000000000..c401ab552b
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/servers/web-apps/discourse/update.py
@@ -0,0 +1,164 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i python3 -p bundix bundler nix-update python3 python3Packages.requests python3Packages.click python3Packages.click-log
+
+import click
+import click_log
+import shutil
+import tempfile
+import re
+import logging
+import subprocess
+import pathlib
+from distutils.version import LooseVersion
+from typing import Iterable
+
+import requests
+
+logger = logging.getLogger(__name__)
+
+
+class DiscourseRepo:
+    version_regex = re.compile(r'^v\d+\.\d+\.\d+$')
+    def __init__(self, owner: str = 'discourse', repo: str = 'discourse'):
+        self.owner = owner
+        self.repo = repo
+
+    @property
+    def tags(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)
+        return versions
+
+    @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
+
+
+def _call_nix_update(pkg, version):
+    """calls nix-update from nixpkgs root dir"""
+    nixpkgs_path = pathlib.Path(__file__).parent / '../../../../'
+    return subprocess.check_output(['nix-update', pkg, '--version', version], cwd=nixpkgs_path)
+
+
+def _get_current_package_version(pkg: str):
+    nixpkgs_path = pathlib.Path(__file__).parent / '../../../../'
+    return subprocess.check_output(['nix', 'eval', '--raw', f'nixpkgs.{pkg}.version'], text=True)
+
+
+def _diff_file(filepath: str, old_version: str, new_version: str):
+    repo = DiscourseRepo()
+
+    current_dir = pathlib.Path(__file__).parent
+
+    old = repo.get_file(filepath, 'v' + old_version)
+    new = repo.get_file(filepath, 'v' + new_version)
+
+    if old == new:
+        click.secho(f'{filepath} is unchanged', fg='green')
+        return
+
+    with tempfile.NamedTemporaryFile(mode='w') as o, tempfile.NamedTemporaryFile(mode='w') as n:
+        o.write(old), n.write(new)
+        width = shutil.get_terminal_size((80, 20)).columns
+        diff_proc = subprocess.run(
+            ['diff', '--color=always', f'--width={width}', '-y', o.name, n.name],
+            stdout=subprocess.PIPE,
+            cwd=current_dir,
+            text=True
+        )
+
+    click.secho(f'Diff for {filepath} ({old_version} -> {new_version}):', fg='bright_blue', bold=True)
+    click.echo(diff_proc.stdout + '\n')
+    return
+
+
+@click_log.simple_verbosity_option(logger)
+
+
+@click.group()
+def cli():
+    pass
+
+
+@cli.command()
+@click.argument('rev', default='latest')
+@click.option('--reverse/--no-reverse', default=False, help='Print diffs from REV to current.')
+def print_diffs(rev, reverse):
+    """Print out diffs for files used as templates for the NixOS module.
+
+    The current package version found in the nixpkgs worktree the
+    script is run from will be used to download the "from" file and
+    REV used to download the "to" file for the diff, unless the
+    '--reverse' flag is specified.
+
+    REV should be the git rev to find changes in ('vX.Y.Z') or
+    'latest'; defaults to 'latest'.
+
+    """
+    if rev == 'latest':
+        repo = DiscourseRepo()
+        rev = repo.tags[0]
+
+    old_version = _get_current_package_version('discourse')
+    new_version = DiscourseRepo.rev2version(rev)
+
+    if reverse:
+        old_version, new_version = new_version, old_version
+
+    for f in ['config/nginx.sample.conf', 'config/discourse_defaults.conf']:
+        _diff_file(f, old_version, new_version)
+
+
+@cli.command()
+@click.argument('rev', default='latest')
+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'.
+
+    """
+    repo = DiscourseRepo()
+
+    if rev == 'latest':
+        rev = repo.tags[0]
+    logger.debug(f"Using rev {rev}")
+
+    version = repo.rev2version(rev)
+    logger.debug(f"Using version {version}")
+
+    rubyenv_dir = pathlib.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))
+
+    subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
+    subprocess.check_output(['bundix'], cwd=rubyenv_dir)
+
+    _call_nix_update('discourse', repo.rev2version(rev))
+
+
+if __name__ == '__main__':
+    cli()
diff --git a/third_party/nixpkgs/pkgs/servers/x11/xorg/default.nix b/third_party/nixpkgs/pkgs/servers/x11/xorg/default.nix
index 11dcd57d9c..47355a5dcf 100644
--- a/third_party/nixpkgs/pkgs/servers/x11/xorg/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/x11/xorg/default.nix
@@ -1717,11 +1717,11 @@ lib.makeScope newScope (self: with self; {
   }) {};
 
   xf86inputlibinput = callPackage ({ stdenv, pkg-config, fetchurl, xorgproto, libinput, xorgserver }: stdenv.mkDerivation {
-    name = "xf86-input-libinput-0.30.0";
+    name = "xf86-input-libinput-1.0.0";
     builder = ./builder.sh;
     src = fetchurl {
-      url = "mirror://xorg/individual/driver/xf86-input-libinput-0.30.0.tar.bz2";
-      sha256 = "1h4np66p87jf0c85ig524w8f5rbhl5gx8fww1qg0c55f87yzkizr";
+      url = "mirror://xorg/individual/driver/xf86-input-libinput-1.0.0.tar.bz2";
+      sha256 = "0x4ay9y2clm2bql3myqnvhmikjbpzy95c800qiva8pg6dbvc4mgg";
     };
     hardeningDisable = [ "bindnow" "relro" ];
     nativeBuildInputs = [ pkg-config ];
diff --git a/third_party/nixpkgs/pkgs/servers/x11/xorg/tarballs.list b/third_party/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
index 1da7180950..dcf68ef097 100644
--- a/third_party/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
+++ b/third_party/nixpkgs/pkgs/servers/x11/xorg/tarballs.list
@@ -81,7 +81,7 @@ mirror://xorg/individual/doc/xorg-sgml-doctools-1.11.tar.bz2
 mirror://xorg/individual/driver/xf86-input-evdev-2.10.6.tar.bz2
 mirror://xorg/individual/driver/xf86-input-joystick-1.6.3.tar.bz2
 mirror://xorg/individual/driver/xf86-input-keyboard-1.9.0.tar.bz2
-mirror://xorg/individual/driver/xf86-input-libinput-0.30.0.tar.bz2
+mirror://xorg/individual/driver/xf86-input-libinput-1.0.0.tar.bz2
 mirror://xorg/individual/driver/xf86-input-mouse-1.9.3.tar.bz2
 mirror://xorg/individual/driver/xf86-input-synaptics-1.9.1.tar.bz2
 mirror://xorg/individual/driver/xf86-input-vmmouse-13.1.0.tar.bz2
diff --git a/third_party/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix b/third_party/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
index 85465fd7d1..2a7c31a47a 100644
--- a/third_party/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
+++ b/third_party/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
@@ -3,6 +3,8 @@ let
   package = (import ./node.nix { inherit pkgs 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";
   reconstructLock = true;
 
diff --git a/third_party/nixpkgs/pkgs/shells/fish/default.nix b/third_party/nixpkgs/pkgs/shells/fish/default.nix
index c467c04c3f..b2677715d5 100644
--- a/third_party/nixpkgs/pkgs/shells/fish/default.nix
+++ b/third_party/nixpkgs/pkgs/shells/fish/default.nix
@@ -131,7 +131,7 @@ let
 
   fish = stdenv.mkDerivation rec {
     pname = "fish";
-    version = "3.2.1";
+    version = "3.2.2";
 
     src = fetchurl {
       # There are differences between the release tarball and the tarball GitHub
@@ -141,14 +141,14 @@ let
       # --version`), as well as the local documentation for all builtins (and
       # maybe other things).
       url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${pname}-${version}.tar.xz";
-      sha256 = "2OSfQJDTd43xfdgl5KKoAZIBVoJCPNndArZnXWXDr1s=";
+      sha256 = "WUTaGoiT0RsIKKT9kTbuF0VJ2v+z0K392JF4Vv5rQAk=";
     };
 
     # Fix FHS paths in tests
     postPatch = ''
       # src/fish_tests.cpp
       sed -i 's|/bin/ls|${coreutils}/bin/ls|' src/fish_tests.cpp
-      sed -i 's|L"/usr"|L"/nix"|' src/fish_tests.cpp
+      sed -i 's|is_potential_path(L"/usr"|is_potential_path(L"/nix"|' src/fish_tests.cpp
       sed -i 's|L"/bin/echo"|L"${coreutils}/bin/echo"|' src/fish_tests.cpp
       sed -i 's|L"/bin/c"|L"${coreutils}/bin/c"|' src/fish_tests.cpp
       sed -i 's|L"/bin/ca"|L"${coreutils}/bin/ca"|' src/fish_tests.cpp
diff --git a/third_party/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/third_party/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
index f25e714763..7f39b7d822 100644
--- a/third_party/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/third_party/nixpkgs/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-03-31";
+  version = "2021-04-07";
   pname = "oh-my-zsh";
-  rev = "2b1d4122796fea12dcaa7545cfca59fb43e6393e";
+  rev = "3f50482674c2b3153590a4aba92fbfa1c01bc583";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "1c1hcmvfrfwds1zn165vpfh11a19s6kb20bxy2dzpby5cs15g6bc";
+    sha256 = "1ypx15p4c3mrs99xwkii3hwzlpk34mdldlymwiwad1c1ihw1r7r9";
   };
 
   installPhase = ''
diff --git a/third_party/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh b/third_party/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh
new file mode 100644
index 0000000000..f1f190ec70
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/shells/zsh/zsh-clipboard/clipboard.plugin.zsh
@@ -0,0 +1,40 @@
+_cb-yank() {
+  AA=$(clippaste 2>/dev/null) && CUTBUFFER="$AA"
+  zle yank
+}
+_cb-kill-line() {
+  zle kill-line
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+_cb-kill-whole-line() {
+  zle kill-whole-line
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+_cb-kill-word() {
+  zle kill-word
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+_cb-backward-kill-word() {
+  zle backward-kill-word
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+_cb-copy-region-as-kill() {
+  ## https://unix.stackexchange.com/questions/19947/
+  zle copy-region-as-kill
+  zle set-mark-command -n -1
+  printf "%s" "$CUTBUFFER" | clipcopy 2>/dev/null
+}
+
+zle -N _cb-yank
+zle -N _cb-kill-line
+zle -N _cb-kill-whole-line
+zle -N _cb-kill-word
+zle -N _cb-backward-kill-word
+zle -N _cb-copy-region-as-kill
+
+bindkey '^y'   _cb-yank
+bindkey '^k'   _cb-kill-line
+bindkey '^u'   _cb-kill-whole-line
+bindkey '\ed'  _cb-kill-word
+bindkey '\e^?' _cb-backward-kill-word
+bindkey '\ew'  _cb-copy-region-as-kill
diff --git a/third_party/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix b/third_party/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix
new file mode 100644
index 0000000000..114e0bfd7d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/shells/zsh/zsh-clipboard/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib }:
+
+stdenv.mkDerivation rec {
+  pname = "zsh-clipboard";
+  version = "1.0";
+
+  src = ./.;
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -D -m0444 -t $out/share/zsh/plugins/clipboard ./clipboard.plugin.zsh
+  '';
+
+  meta = with lib; {
+    description = "Ohmyzsh plugin that integrates kill-ring with system clipboard";
+    longDescription = ''
+      Ohmyzsh plugin that integrates kill-ring with system clipboard.
+
+      Key bindings for C-y, C-k, C-u, M-d, M-backspace and M-w are rebound.
+      Behaviour of these keys should not be changed.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ bb2020 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/admin/awscli/default.nix b/third_party/nixpkgs/pkgs/tools/admin/awscli/default.nix
index 943c69e762..fe28df060a 100644
--- a/third_party/nixpkgs/pkgs/tools/admin/awscli/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/admin/awscli/default.nix
@@ -21,11 +21,11 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.19.41"; # N.B: if you change this, change botocore and boto3 to a matching version too
+  version = "1.19.46"; # N.B: if you change this, change botocore and boto3 to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DKKE2iMn6BHmcohHY6Uv7q9Om8FkbTbsk0CaxueBJHA=";
+    sha256 = "sha256-Cs+VOgbW/x1vsgMPgUG6PRlqZcvzHQCIRYuR6AsSYP4=";
   };
 
   # https://github.com/aws/aws-cli/issues/4837
diff --git a/third_party/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix b/third_party/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
index c55bde7982..cb487db6a5 100644
--- a/third_party/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.27.0";
+  version = "1.27.1";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-bKciwcYGETwVdUS4qdByHLWKt16PpBtTvW/dvuclIpA=";
+    sha256 = "sha256-YaW7rTeVz2Mbnmp6ORsnALlyVxGnf8K73LXN/fmJMLk=";
   };
 
   goPackagePath = "github.com/exoscale/cli";
diff --git a/third_party/nixpkgs/pkgs/tools/admin/fioctl/default.nix b/third_party/nixpkgs/pkgs/tools/admin/fioctl/default.nix
index 2c04eef216..bd8b74f8bc 100644
--- a/third_party/nixpkgs/pkgs/tools/admin/fioctl/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/admin/fioctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fioctl";
-  version = "0.14.1";
+  version = "0.15";
 
   src = fetchFromGitHub {
     owner = "foundriesio";
     repo = "fioctl";
     rev = "v${version}";
-    sha256 = "1jbj2w2s78wcnrwyr80jyc11ipjysv5aab3486kphx8ysvvgcwfs";
+    sha256 = "0gmh32h9j6wpkdxxg7vj158lsaxq30x7hjsc9gwpip3bff278hw4";
   };
 
-  vendorSha256 = "1a3x6cv18f0n01f4ac1kprzmby8dphygnwsdl98pmzs3gqqnh284";
+  vendorSha256 = "170z5a1iwwcpz890nficqnz7rr7yzdxr5jx9pa7s31z17lr8kbz9";
 
   runVend = true;
 
diff --git a/third_party/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix b/third_party/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
index fa5763178b..0daa65cc98 100644
--- a/third_party/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, file, fetchurl, makeWrapper,
   autoPatchelfHook, jsoncpp, libpulseaudio }:
 let
-  versionMajor = "7.2";
-  versionMinor = "3";
-  versionBuild_x86_64 = "8";
-  versionBuild_i686 = "8";
+  versionMajor = "7.4";
+  versionMinor = "1";
+  versionBuild_x86_64 = "1";
+  versionBuild_i686 = "1";
 in
   stdenv.mkDerivation rec {
     pname = "nomachine-client";
@@ -14,12 +14,12 @@ in
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz";
-          sha256 = "1x60vmngq4927qvy6ljmyvwlz5lapilld3495w3y3jdllwd3dxp4";
+          sha256 = "1qir9ii0h5ali87mjzjl72dm1ky626d7y59jfpglakqxzqhjamdz";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz";
-          sha256 = "0dx921g6w3gk0x4p771qqxbbi16vl11hmdzzwhfczrq90pgzrhks";
+          sha256 = "1gxiysc09k3jz1pkkyfqgw2fygcnmrnskk6b9vn4fjnvsab4py60";
         }
       else
         throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
diff --git a/third_party/nixpkgs/pkgs/tools/archivers/p7zip/default.nix b/third_party/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
index ed2340ca62..8a01353b01 100644
--- a/third_party/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "p7zip";
-  version = "17.03";
+  version = "17.04";
 
   src = fetchFromGitHub {
     owner  = "szcnick";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0zgpa90z5p30jbpqydiig1h8hn41c76n2x26rh8cc92xw72ni33d";
+    sha256 = "sha256-19F4hPV0nKVuFZNbOcXrcA1uW6Y3HQolaHVIYXGmh18=";
   };
 
   # Default makefile is full of impurities on Darwin. The patch doesn't hurt Linux so I'm leaving it unconditional
diff --git a/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix b/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix
new file mode 100644
index 0000000000..f85faa712d
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/common.nix
@@ -0,0 +1,61 @@
+{ version, sha256, platforms, patches ? [ ] }:
+
+{ lib, stdenv, fetchFromGitHub
+, meson, pkg-config, ninja, docutils, makeWrapper
+, fuse3, macfuse-stubs, glib
+, which, python3Packages
+, openssh
+}:
+
+let
+  fuse = if stdenv.isDarwin then macfuse-stubs else fuse3;
+in stdenv.mkDerivation rec {
+  pname = "sshfs-fuse";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "libfuse";
+    repo = "sshfs";
+    rev = "sshfs-${version}";
+    inherit sha256;
+  };
+
+  inherit patches;
+
+  nativeBuildInputs = [ meson pkg-config ninja docutils makeWrapper ];
+  buildInputs = [ fuse glib ];
+  checkInputs = [ which python3Packages.pytest ];
+
+  NIX_CFLAGS_COMPILE = lib.optionalString
+    (stdenv.hostPlatform.system == "i686-linux")
+    "-D_FILE_OFFSET_BITS=64";
+
+  postInstall = ''
+    mkdir -p $out/sbin
+    ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
+  '' + lib.optionalString (!stdenv.isDarwin) ''
+    wrapProgram $out/bin/sshfs --prefix PATH : "${openssh}/bin"
+  '';
+
+  # doCheck = true;
+  checkPhase = lib.optionalString (!stdenv.isDarwin) ''
+    # The tests need fusermount:
+    mkdir bin
+    cp ${fuse}/bin/fusermount3 bin/fusermount
+    export PATH=bin:$PATH
+    # Can't access /dev/fuse within the sandbox: "FUSE kernel module does not seem to be loaded"
+    substituteInPlace test/util.py --replace "/dev/fuse" "/dev/null"
+    # TODO: "fusermount executable not setuid, and we are not root"
+    # We should probably use a VM test instead
+    ${python3Packages.python.interpreter} -m pytest test/
+  '';
+
+  meta = with lib; {
+    inherit platforms;
+    description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
+    longDescription = macfuse-stubs.warning;
+    homepage = "https://github.com/libfuse/sshfs";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix b/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
index 69826941d0..e575bd3e13 100644
--- a/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/default.nix
@@ -1,52 +1,28 @@
-{ lib, stdenv, fetchFromGitHub
-, meson, pkg-config, ninja, docutils, makeWrapper
-, fuse3, glib
-, which, python3Packages
-, openssh
-}:
+{ lib, stdenv, callPackage, fetchpatch }:
 
-stdenv.mkDerivation rec {
-  version = "3.7.1";
-  pname = "sshfs-fuse";
+let mkSSHFS = args: callPackage (import ./common.nix args) { };
+in if stdenv.isDarwin then
+  mkSSHFS {
+    version = "2.10"; # macFUSE isn't yet compatible with libfuse 3.x
+    sha256 = "1dmw4kx6vyawcywiv8drrajnam0m29mxfswcp4209qafzx3mjlp1";
+    patches = [
+      # remove reference to fuse_darwin.h which doens't exist on recent macFUSE
+      ./fix-fuse-darwin-h.patch
 
-  src = fetchFromGitHub {
-    owner = "libfuse";
-    repo = "sshfs";
-    rev = "sshfs-${version}";
+      # From https://github.com/libfuse/sshfs/pull/185:
+      # > With this patch, setting I/O size to a reasonable large value, will
+      # > result in much improved performance, e.g.: -o iosize=1048576
+      (fetchpatch {
+        name = "fix-configurable-blksize.patch";
+        url = "https://github.com/libfuse/sshfs/commit/667cf34622e2e873db776791df275c7a582d6295.patch";
+        sha256 = "0d65lawd2g2aisk1rw2vl65dgxywf4vqgv765n9zj9zysyya8a54";
+      })
+    ];
+    platforms = lib.platforms.darwin;
+  }
+else
+  mkSSHFS {
+    version = "3.7.1";
     sha256 = "088mgcsqv9f2vly4xn6lvvkmqkgr9jjmjs9qp8938hl7j6rrgd17";
-  };
-
-  nativeBuildInputs = [ meson pkg-config ninja docutils makeWrapper ];
-  buildInputs = [ fuse3 glib ];
-  checkInputs = [ which python3Packages.pytest ];
-
-  NIX_CFLAGS_COMPILE = lib.optionalString
-    (stdenv.hostPlatform.system == "i686-linux")
-    "-D_FILE_OFFSET_BITS=64";
-
-  postInstall = ''
-    mkdir -p $out/sbin
-    ln -sf $out/bin/sshfs $out/sbin/mount.sshfs
-    wrapProgram $out/bin/sshfs --prefix PATH : "${openssh}/bin"
-  '';
-
-  #doCheck = true;
-  checkPhase = ''
-    # The tests need fusermount:
-    mkdir bin && cp ${fuse3}/bin/fusermount3 bin/fusermount
-    export PATH=bin:$PATH
-    # Can't access /dev/fuse within the sandbox: "FUSE kernel module does not seem to be loaded"
-    substituteInPlace test/util.py --replace "/dev/fuse" "/dev/null"
-    # TODO: "fusermount executable not setuid, and we are not root"
-    # We should probably use a VM test instead
-    python3 -m pytest test/
-  '';
-
-  meta = with lib; {
-    inherit (src.meta) homepage;
-    description = "FUSE-based filesystem that allows remote filesystems to be mounted over SSH";
-    platforms = platforms.linux;
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ primeos ];
-  };
-}
+    platforms = lib.platforms.linux;
+  }
diff --git a/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/fix-fuse-darwin-h.patch b/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/fix-fuse-darwin-h.patch
new file mode 100644
index 0000000000..045cc0e61f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/filesystems/sshfs-fuse/fix-fuse-darwin-h.patch
@@ -0,0 +1,14 @@
+diff --git a/sshfs.c b/sshfs.c
+index 97eaf06..d442577 100644
+--- a/sshfs.c
++++ b/sshfs.c
+@@ -14,9 +14,6 @@
+ #if !defined(__CYGWIN__)
+ #include <fuse_lowlevel.h>
+ #endif
+-#ifdef __APPLE__
+-#  include <fuse_darwin.h>
+-#endif
+ #include <assert.h>
+ #include <stdio.h>
+ #include <stdlib.h>
diff --git a/third_party/nixpkgs/pkgs/tools/misc/betterdiscord-installer/default.nix b/third_party/nixpkgs/pkgs/tools/misc/betterdiscord-installer/default.nix
new file mode 100644
index 0000000000..d74a914ba6
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/misc/betterdiscord-installer/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, lib, fetchurl }:
+let
+  pname = "betterdiscord-installer";
+  version = "1.0.0-beta";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/BetterDiscord/Installer/releases/download/v${version}/Betterdiscord-Linux.AppImage";
+    sha256 = "103acb11qmvjmf6g9lgsfm5jyahfwfdqw0x9w6lmv1hzwbs26dsr";
+  };
+
+  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}/betterdiscord.desktop -t $out/share/applications
+    substituteInPlace $out/share/applications/betterdiscord.desktop \
+      --replace "Exec=AppRun" "Exec=$out/bin/${pname}"
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with lib; {
+    description = "Installer for BetterDiscord";
+    homepage = "https://betterdiscord.net";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivar ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/misc/fzf/default.nix b/third_party/nixpkgs/pkgs/tools/misc/fzf/default.nix
index 3cca3ab6dc..0688f1d648 100644
--- a/third_party/nixpkgs/pkgs/tools/misc/fzf/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/misc/fzf/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.26.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    sha256 = "0p9hslaawnqnnf1s6hj3vdh11ncq7mrb4w4i933mdkychw5jav38";
+    sha256 = "sha256-q0rAAD6du0WLcd46LUpkG3gBIvmtOE/foEMW5QCoIak=";
   };
 
-  vendorSha256 = "0dd0qm1fxp3jnlrhfaas8fw87cj7rygaac35a9nk3xh2xsk7q35p";
+  vendorSha256 = "sha256-FKDCIotyra/TZ48wbpzudJZ2aI2pn+ZR4EoZ+9+19Mw=";
 
   outputs = [ "out" "man" ];
 
diff --git a/third_party/nixpkgs/pkgs/tools/misc/grit/default.nix b/third_party/nixpkgs/pkgs/tools/misc/grit/default.nix
new file mode 100644
index 0000000000..f1b4b43280
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/misc/grit/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "grit";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "climech";
+    repo = "grit";
+    rev = "v${version}";
+    sha256 = "0v4i8xdf1pgkmwad5jb6n6s4rx48zk57wij0ppzg6zb725wy7r8a";
+  };
+
+  vendorSha256 = "0a1lqfn710fgvrvbimd92102fhjs1wa7r8i0l7s5m7jxks629hw8";
+
+  meta = with lib; {
+    description = "A multitree-based personal task manager";
+    homepage = "https://github.com/climech/grit";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.ivar ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/misc/mcfly/default.nix b/third_party/nixpkgs/pkgs/tools/misc/mcfly/default.nix
index aebff1da47..55e2b75684 100644
--- a/third_party/nixpkgs/pkgs/tools/misc/mcfly/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/misc/mcfly/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.5.5";
+  version = "0.5.6";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    sha256 = "sha256-4slE/11N9L9Q45w/LF5rNkOZbADjY1n4NxdoNlXPdo8=";
+    sha256 = "sha256-x2cED+WEc50RB8BxiDEm/XnauT1RqqGjSIdL5MMaFBY=";
   };
 
   postInstall = ''
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     install -Dm644 -t $out/share/mcfly mcfly.fish
   '';
 
-  cargoSha256 = "sha256-MlhltJh+Z2GFHm+qCD8UDEvY+W8EprxVoBv/kj4v1Qc=";
+  cargoSha256 = "sha256-JCV1cj+RncY/myVJTJ5fNkVqTITqGusA71tv7zGG9Uw=";
 
   meta = with lib; {
     homepage = "https://github.com/cantino/mcfly";
diff --git a/third_party/nixpkgs/pkgs/tools/misc/polar/Gemfile b/third_party/nixpkgs/pkgs/tools/misc/polar/Gemfile
new file mode 100644
index 0000000000..65e27d1670
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/misc/polar/Gemfile
@@ -0,0 +1,7 @@
+source 'https://rubygems.org'
+
+gem 'google-protobuf'
+gem 'libusb'
+gem 'rubyserial'
+gem 'nokogiri'
+
diff --git a/third_party/nixpkgs/pkgs/tools/misc/polar/Gemfile.lock b/third_party/nixpkgs/pkgs/tools/misc/polar/Gemfile.lock
new file mode 100644
index 0000000000..bd3b022651
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/misc/polar/Gemfile.lock
@@ -0,0 +1,27 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    ffi (1.15.0)
+    google-protobuf (3.15.6)
+    libusb (0.6.4)
+      ffi (~> 1.0)
+      mini_portile2 (~> 2.1)
+    mini_portile2 (2.5.0)
+    nokogiri (1.11.2)
+      mini_portile2 (~> 2.5.0)
+      racc (~> 1.4)
+    racc (1.5.2)
+    rubyserial (0.6.0)
+      ffi (~> 1.9, >= 1.9.3)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  google-protobuf
+  libusb
+  nokogiri
+  rubyserial
+
+BUNDLED WITH
+   2.1.4
diff --git a/third_party/nixpkgs/pkgs/tools/misc/polar/default.nix b/third_party/nixpkgs/pkgs/tools/misc/polar/default.nix
new file mode 100644
index 0000000000..022752bbc7
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/misc/polar/default.nix
@@ -0,0 +1,73 @@
+{ lib, stdenv, fetchFromGitHub, ruby, bundlerEnv }:
+let
+
+  # To create Gemfile.lock and gemset.nix
+  # > nix-shell -p bundix bundler zlib
+  # > bundle install
+  # > bundix
+  gems = bundlerEnv {
+    name = "polar-env";
+    inherit ruby;
+    gemdir = ./.;
+  };
+
+in
+stdenv.mkDerivation rec {
+
+  pname = "polar";
+  # The package has no releases so let's use the latest commit
+  version = "unstable-2021-01-12";
+
+  src = fetchFromGitHub {
+    owner = "cmaion";
+    repo = pname;
+    rev = "be15f5f897f8a919dd639009873147dca2a9cea0";
+    sha256 = "0gqkqfrqnrsy6avg372xwqj22yz8g6r2hnzbw6197b1rf7zr1il7";
+  };
+
+  prePatch = ''
+    for script in polar_*
+    do
+      substituteInPlace $script --replace "#{File.dirname(__FILE__)}/lib" "$out/lib/polar"
+    done
+  '';
+  buildInputs = [ gems ruby ];
+
+  # See: https://nixos.wiki/wiki/Packaging/Ruby
+  #
+  # Put library content under lib/polar and the raw scripts under share/polar.
+  # Then, wrap the scripts so that they use the correct ruby environment and put
+  # these wrapped executables under bin.
+  installPhase = ''
+    install -Dm644 -t $out/etc/udev/rules.d ./pkg/99-polar.rules
+    mkdir -p $out/{bin,lib/polar,share/polar}
+    cp -r lib/* $out/lib/polar/
+    for script in ./polar_*
+    do
+      raw="$out/share/polar/$script"
+      bin="$out/bin/$script"
+      cp "$script" "$raw"
+      cat > $bin <<EOF
+#!/bin/sh -e
+exec ${gems}/bin/bundle exec ${ruby}/bin/ruby "$raw" "\$@"
+EOF
+      chmod +x $bin
+    done
+  '';
+
+  meta = with lib; {
+    description = "Command-line tools to interact with Polar watches";
+    longDescription = ''
+      A set of command line tools written in Ruby to interact with Polar watches
+      and decode raw data files.
+
+      Udev rules can be added as:
+
+        services.udev.packages = [ pkgs.polar ]
+    '';
+    homepage = "https://github.com/cmaion/polar";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jluttine ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/misc/polar/gemset.nix b/third_party/nixpkgs/pkgs/tools/misc/polar/gemset.nix
new file mode 100644
index 0000000000..4e360d9b21
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/misc/polar/gemset.nix
@@ -0,0 +1,75 @@
+{
+  ffi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nq1fb3vbfylccwba64zblxy96qznxbys5900wd7gm9bpplmf432";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  google-protobuf = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ak5yqqhr04b4x0axzvpw1xzwmxmfcw0gf4r1ijixv15kidhsj3z";
+      type = "gem";
+    };
+    version = "3.15.6";
+  };
+  libusb = {
+    dependencies = ["ffi" "mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "005q4f3bi68yapza1vxamgwz2gpix2akci52s4yvr03hsxi137a6";
+      type = "gem";
+    };
+    version = "0.6.4";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2" "racc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p";
+      type = "gem";
+    };
+    version = "1.11.2";
+  };
+  racc = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  rubyserial = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vj5yan6srbvkf5vfp9d9b9z8wyygd0zxcy54c35yhkjl6kwd22q";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/misc/poweralertd/default.nix b/third_party/nixpkgs/pkgs/tools/misc/poweralertd/default.nix
new file mode 100644
index 0000000000..a00a5b9a40
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/misc/poweralertd/default.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromSourcehut, meson, ninja, pkg-config, scdoc, systemd }:
+
+stdenv.mkDerivation rec {
+  pname = "poweralertd";
+  version = "0.1.0";
+
+  outputs = [ "out" "man" ];
+
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = "poweralertd";
+    rev = version;
+    sha256 = "136xcrp7prilh905a6v933vryqy20l7nw24ahc4ycax8f0s906x9";
+  };
+
+  patchPhase = ''
+    substituteInPlace meson.build --replace "systemd.get_pkgconfig_variable('systemduserunitdir')" "'${placeholder "out"}/lib/systemd/user'"
+  '';
+
+  buildInputs = [
+    systemd
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  depsBuildBuild = [
+    scdoc
+    pkg-config
+  ];
+
+  meta = with lib; {
+    description = "UPower-powered power alerter";
+    homepage = "https://git.sr.ht/~kennylevinsen/poweralertd";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ thibautmarty ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix b/third_party/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
index 8b5d49c461..58c488f7b8 100644
--- a/third_party/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/misc/svtplay-dl/default.nix
@@ -4,7 +4,7 @@
 let
 
   inherit (python3Packages)
-    python nose pycrypto pyyaml requests mock python-dateutil setuptools;
+    python nose cryptography pyyaml requests mock python-dateutil setuptools;
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
@@ -17,7 +17,7 @@ in stdenv.mkDerivation rec {
     sha256 = "00pz5vv39qjsw67fdlj6942371lyvv368lc82z17nnh723ck54yy";
   };
 
-  pythonPaths = [ pycrypto pyyaml requests ];
+  pythonPaths = [ cryptography pyyaml requests ];
   buildInputs = [ python perl nose mock python-dateutil setuptools ] ++ pythonPaths;
   nativeBuildInputs = [ gitMinimal zip makeWrapper ];
 
diff --git a/third_party/nixpkgs/pkgs/tools/misc/topgrade/default.nix b/third_party/nixpkgs/pkgs/tools/misc/topgrade/default.nix
index c6021c0599..ff0661de46 100644
--- a/third_party/nixpkgs/pkgs/tools/misc/topgrade/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "6.7.0";
+  version = "6.8.0";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UikJZFSnkYGGGMm6hrOqs+ax9HwUsZPht9wV79rJBgE=";
+    sha256 = "sha256-PPOsb9bne0q/WGAL3W2RGo/0yxyz/XXU3xYXKcCIqX0=";
   };
 
-  cargoSha256 = "sha256-8MvXpJVwiIThwq8Du/9nQ0QINpqgemwiRpunzIUqkXk=";
+  cargoSha256 = "sha256-IirU/4hE+jo5A9pB7RnePhqcbCZXBCe0Ki6i7eEWIbk=";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
diff --git a/third_party/nixpkgs/pkgs/tools/misc/uwuify/default.nix b/third_party/nixpkgs/pkgs/tools/misc/uwuify/default.nix
index b90bd8bb46..849703ffd7 100644
--- a/third_party/nixpkgs/pkgs/tools/misc/uwuify/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/misc/uwuify/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "uwuify";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "Daniel-Liu-c0deb0t";
     repo = "uwu";
     rev = "v${version}";
-    sha256 = "sha256-tPmLqgrWi7wDoMjMrxodKp4S0ICwV9Kp7Pa151rHho0=";
+    sha256 = "sha256-MzXObbxccwEG7egmQMCdhUukGqZS+NgbYwZjTaqME7I=";
   };
 
-  cargoSha256 = "sha256-HUP6OEvoGJ/BtAl+yuGzqEp1bsxfGAh0UJtXz9/ZiK8=";
+  cargoSha256 = "sha256-iyoGLFIfHToOwqEb5lQ1nXR0W1gLOVMfvw39LX6ib+U=";
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta = with lib; {
diff --git a/third_party/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix b/third_party/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
index 8afd978656..fa17bea858 100644
--- a/third_party/nixpkgs/pkgs/tools/misc/youtube-dl/default.nix
+++ b/third_party/nixpkgs/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.04.01";
+  version = "2021.04.07";
 
   src = fetchurl {
     url = "https://yt-dl.org/downloads/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1vw9l32bv115129v1lfar626y3vivvxkp36bc1phjcrsjfayz67h";
+    sha256 = "02d51l6gdjr3zhhi7ydf5kzv8dv4jzq0ygja7zb2h9k7hnl0l27m";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
diff --git a/third_party/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix b/third_party/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
index 07218d054d..12b3aa0f05 100644
--- a/third_party/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
@@ -3,11 +3,11 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
-  version = "3.1.2";
+  version = "4.0.1";
 
   srcs = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    hash = "sha256-dwnIOuu0QyWRl6RSdyQw7dGsAZ4xpXpx6jOpCkp4efE=";
+    hash = "sha256-OxbKo5vwOBabU6/2hO4RMWiifo4IVIxz+DlcwP9xO/E=";
   };
 
   propagatedBuildInputs =
@@ -42,8 +42,7 @@ python3Packages.buildPythonPackage rec {
       --replace 'compdef _ykman_completion ykman;' '_ykman_completion "$@"'
   '';
 
-  # See https://github.com/NixOS/nixpkgs/issues/29169
-  doCheck = false;
+  checkInputs = with python3Packages; [ pytestCheckHook makefun ];
 
   meta = with lib; {
     homepage = "https://developers.yubico.com/yubikey-manager";
diff --git a/third_party/nixpkgs/pkgs/tools/networking/connman/connman.nix b/third_party/nixpkgs/pkgs/tools/networking/connman/connman.nix
index d8380340ca..c6792ecfd3 100644
--- a/third_party/nixpkgs/pkgs/tools/networking/connman/connman.nix
+++ b/third_party/nixpkgs/pkgs/tools/networking/connman/connman.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     # directories flags
-    "--sysconfdir=${placeholder "out"}/etc"
+    "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--with-dbusconfdir=${placeholder "out"}/share"
     "--with-dbusdatadir=${placeholder "out"}/share"
diff --git a/third_party/nixpkgs/pkgs/tools/networking/gobgp/default.nix b/third_party/nixpkgs/pkgs/tools/networking/gobgp/default.nix
index 8a124c978f..d48234f8dc 100644
--- a/third_party/nixpkgs/pkgs/tools/networking/gobgp/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/networking/gobgp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "gobgp";
-  version = "2.25.0";
+  version = "2.26.0";
 
   src = fetchFromGitHub {
     owner = "osrg";
     repo = "gobgp";
     rev = "v${version}";
-    sha256 = "sha256-/aezkwg/BVyNZQ9Vb6rz0OcD9kzjGRMxFvDeFtwr71Y=";
+    sha256 = "sha256-sQmTIjBvCzd8ZXAayhPdRSRwBovH8BFRwazusSE52IE=";
   };
 
   vendorSha256 = "sha256-PWm7XnO6LPaU8g8ymmqRkQv2KSX9kLv9RVaa000mrTY=";
diff --git a/third_party/nixpkgs/pkgs/tools/networking/linkchecker/default.nix b/third_party/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
index ea96ab9403..05da924c47 100644
--- a/third_party/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
@@ -19,6 +19,7 @@ buildPythonApplication rec {
     ConfigArgParse
     argcomplete
     beautifulsoup4
+    pyopenssl
     dnspython
     pyxdg
     requests
diff --git a/third_party/nixpkgs/pkgs/tools/networking/openssh/copyid.nix b/third_party/nixpkgs/pkgs/tools/networking/openssh/copyid.nix
new file mode 100644
index 0000000000..71baa6a23f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/networking/openssh/copyid.nix
@@ -0,0 +1,11 @@
+{ runCommandNoCC, openssh }:
+
+runCommandNoCC "ssh-copy-id-${openssh.version}" {
+  meta = openssh.meta // {
+    description = "A tool to copy SSH public keys to a remote machine";
+    priority = (openssh.meta.priority or 0) - 1;
+  };
+} ''
+  install -Dm 755 {${openssh},$out}/bin/ssh-copy-id
+  install -Dm 644 {${openssh},$out}/share/man/man1/ssh-copy-id.1.gz
+''
diff --git a/third_party/nixpkgs/pkgs/tools/networking/saldl/default.nix b/third_party/nixpkgs/pkgs/tools/networking/saldl/default.nix
index e772a74f09..d02acb3100 100644
--- a/third_party/nixpkgs/pkgs/tools/networking/saldl/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/networking/saldl/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "saldl";
-  version = "40";
+  version = "41";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "19ajci5h5gdnrvwf0l7xy5s58z2di68rrvcmqpsmpp4lfr37rk2l";
+    sha256 = "sha256-PAX2MUyBWWU8kGkaeoCJteidgszh7ipwDJbrLXzVsn0=";
   };
 
   nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/tools/networking/cutter/default.nix b/third_party/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix
similarity index 80%
rename from third_party/nixpkgs/pkgs/tools/networking/cutter/default.nix
rename to third_party/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix
index 8d94da7737..ade825dbe1 100644
--- a/third_party/nixpkgs/pkgs/tools/networking/cutter/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix
@@ -1,10 +1,11 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "cutter-1.04";
+  pname = "tcp-cutter";
+  version = "1.04";
 
   src = fetchurl {
-    url = "http://www.digitage.co.uk/digitage/files/cutter/${name}.tgz";
+    url = "http://www.digitage.co.uk/digitage/files/cutter/${pname}-${version}.tgz";
     sha256 = "100iy31a3njif6vh9gfsqrm14hac05rrflla275gd4rkxdlnqcqv";
   };
 
diff --git a/third_party/nixpkgs/pkgs/tools/networking/ytcc/default.nix b/third_party/nixpkgs/pkgs/tools/networking/ytcc/default.nix
index 4c5fae8829..6bd12963b7 100644
--- a/third_party/nixpkgs/pkgs/tools/networking/ytcc/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/networking/ytcc/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "04l5bfyq53r8803q24bfw49ji7jx8z9irhhh30cvq2va1ywwd4ww";
+    sha256 = "1rhnrmanad10zy2as9q5wjfjlk18f51vf801syyfgxvk0pdcsk6w";
   };
 
   nativeBuildInputs = [ gettext ];
diff --git a/third_party/nixpkgs/pkgs/tools/package-management/appimagekit/default.nix b/third_party/nixpkgs/pkgs/tools/package-management/appimagekit/default.nix
index 524f912cf0..620a0b05a9 100644
--- a/third_party/nixpkgs/pkgs/tools/package-management/appimagekit/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/package-management/appimagekit/default.nix
@@ -11,29 +11,30 @@ let
   appimagekit_src = fetchFromGitHub {
     owner = "AppImage";
     repo = "AppImageKit";
-    rev = "b0859501df61cde198b54a317c03b41dbafc98b1";
-    sha256 = "0qqg79jw9w9rs8c2w3lla4kz62ihafrf7jm370pp1dl8y2i81jzg";
+    rev = "8bbf694455d00f48d835f56afaa1dabcd9178ba6";
+    sha256 = "sha256-pqg+joomC5CI9WdKP/h/XKPsruMgZEaIOjPLOqnNPZw=";
+    fetchSubmodules = true;
   };
 
-  # squashfuse adapted to nix from cmake experession in "${appimagekit_src}/cmake/dependencies.cmake"
+  # squashfuse adapted to nix from cmake experession in "${appimagekit_src}/lib/libappimage/cmake/dependencies.cmake"
   appimagekit_squashfuse = squashfuse.overrideAttrs (attrs: rec {
-    name = "squashfuse-${version}";
-    version = "20161009";
+    pname = "squashfuse";
+    version = "unstable-2016-10-09";
 
     src = fetchFromGitHub {
       owner = "vasi";
-      repo  = "squashfuse";
-      rev   = "1f980303b89c779eabfd0a0fdd36d6a7a311bf92";
-      sha256 = "0lrw9ff8k15l34wjwyllw3i35hl0cms97jj2hpnr2q8ipgxpb5q5";
+      repo  = pname;
+      rev = "1f980303b89c779eabfd0a0fdd36d6a7a311bf92";
+      sha256 = "sha256-BZd1+7sRYZHthULKk3RlgMIy4uCUei45GbSEiZxLPFM=";
     };
 
     patches = [
-      "${appimagekit_src}/squashfuse.patch"
-      "${appimagekit_src}/squashfuse_dlopen.patch"
+      "${appimagekit_src}/lib/libappimage/src/patches/squashfuse.patch"
+      "${appimagekit_src}/lib/libappimage/src/patches/squashfuse_dlopen.patch"
     ];
 
     postPatch = ''
-      cp -v ${appimagekit_src}/squashfuse_dlopen.[hc] .
+      cp -v ${appimagekit_src}/lib/libappimage/src/patches/squashfuse_dlopen.[hc] .
     '';
 
     preConfigure = ''
@@ -58,27 +59,27 @@ let
   });
 
 in stdenv.mkDerivation rec {
-  name = "appimagekit-20180727";
+  pname = "appimagekit";
+  version = "unstable-2020-12-31";
 
   src = appimagekit_src;
 
   patches = [ ./nix.patch ];
 
+  postPatch = ''
+    patchShebangs src/embed-magic-bytes-in-file.sh
+  '';
+
   nativeBuildInputs = [
     pkg-config cmake autoconf automake libtool wget xxd
-    desktop-file-utils
+    desktop-file-utils makeWrapper
   ];
 
   buildInputs = [
-    glib zlib cairo openssl fuse
-    xz inotify-tools libarchive
-    squashfsTools makeWrapper
+    glib zlib cairo openssl fuse xz inotify-tools
+    libarchive squashfsTools appimagekit_squashfuse
   ];
 
-  postPatch = ''
-    substituteInPlace src/appimagetool.c --replace "/usr/bin/file" "${file}/bin/file"
-  '';
-
   preConfigure = ''
     export HOME=$(pwd)
   '';
@@ -87,22 +88,22 @@ in stdenv.mkDerivation rec {
     "-DUSE_SYSTEM_XZ=ON"
     "-DUSE_SYSTEM_SQUASHFUSE=ON"
     "-DSQUASHFUSE=${appimagekit_squashfuse}"
-    "-DUSE_SYSTEM_INOTIFY_TOOLS=ON"
     "-DUSE_SYSTEM_LIBARCHIVE=ON"
     "-DUSE_SYSTEM_GTEST=ON"
     "-DUSE_SYSTEM_MKSQUASHFS=ON"
   ];
 
   postInstall = ''
+    mkdir -p $out/lib/appimagekit
     cp "${squashfsTools}/bin/mksquashfs" "$out/lib/appimagekit/"
     cp "${desktop-file-utils}/bin/desktop-file-validate" "$out/bin"
 
     wrapProgram "$out/bin/appimagetool" \
-      --prefix PATH : "${lib.makeBinPath [ file gnupg ]}"
+      --prefix PATH : "${lib.makeBinPath [ file gnupg ]}" \
+      --unset SOURCE_DATE_EPOCH
   '';
 
   checkInputs = [ gtest ];
-  doCheck = false; # fails 1 out of 4 tests, I'm too lazy to debug why
 
   # for debugging
   passthru = {
@@ -117,6 +118,7 @@ in stdenv.mkDerivation rec {
       AppImages.
     '';
     license = licenses.mit;
+    maintainers = with maintainers; [ taeer ];
     homepage = src.meta.homepage;
     platforms = platforms.linux;
   };
diff --git a/third_party/nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch b/third_party/nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch
index 9725cef5ba..f03922cb5c 100644
--- a/third_party/nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch
+++ b/third_party/nixpkgs/pkgs/tools/package-management/appimagekit/nix.patch
@@ -1,174 +1,82 @@
-diff --git a/cmake/dependencies.cmake b/cmake/dependencies.cmake
-index ea133a3..916606c 100644
---- a/cmake/dependencies.cmake
-+++ b/cmake/dependencies.cmake
-@@ -224,21 +224,23 @@ if(NOT USE_SYSTEM_XZ)
-         LIBRARY_DIRS <INSTALL_DIR>/lib/
-         LIBRARIES "<INSTALL_DIR>/lib/liblzma.a"
-         INCLUDE_DIRS "<SOURCE_DIR>/src/liblzma/api/"
+Submodule lib/libappimage contains modified content
+diff --git a/lib/libappimage/cmake/dependencies.cmake b/lib/libappimage/cmake/dependencies.cmake
+index 8d96484..c7b17a1 100644
+--- a/lib/libappimage/cmake/dependencies.cmake
++++ b/lib/libappimage/cmake/dependencies.cmake
+@@ -91,9 +91,18 @@ if(NOT USE_SYSTEM_SQUASHFUSE)
+         INCLUDE_DIRS "<SOURCE_DIR>"
      )
  else()
-     message(STATUS "Using system xz")
- 
-     import_pkgconfig_target(TARGET_NAME xz PKGCONFIG_TARGET liblzma STATIC)
- endif()
- 
-+set(USE_SYSTEM_SQUASHFUSE OFF CACHE BOOL "Use system squashfuse instead of building our own")
- 
-+if(NOT USE_SYSTEM_SQUASHFUSE)
- # as distros don't provide suitable squashfuse and squashfs-tools, those dependencies are bundled in, can, and should
- # be used from this repository
- # TODO: implement out-of-source builds for squashfuse, as for the other dependencies
- configure_file(
-     ${CMAKE_CURRENT_SOURCE_DIR}/src/patch-squashfuse.sh.in
-     ${CMAKE_CURRENT_BINARY_DIR}/patch-squashfuse.sh
-     @ONLY
- )
- 
- ExternalProject_Add(squashfuse-EXTERNAL
-@@ -259,20 +261,34 @@ ExternalProject_Add(squashfuse-EXTERNAL
-     BUILD_IN_SOURCE ON
-     INSTALL_COMMAND ${MAKE} install
- )
- 
- import_external_project(
-     TARGET_NAME squashfuse
-     EXT_PROJECT_NAME squashfuse-EXTERNAL
-     LIBRARIES "<SOURCE_DIR>/.libs/libsquashfuse.a;<SOURCE_DIR>/.libs/libsquashfuse_ll.a;<SOURCE_DIR>/.libs/libfuseprivate.a"
-     INCLUDE_DIRS "<SOURCE_DIR>"
- )
-+else()
+-    message(STATUS "Using system squashfuse")
 +    message(STATUS "Using system squashfsfuse from ${SQUASHFUSE}")
-+
-+    add_library(squashfuse INTERFACE IMPORTED GLOBAL)
+
+-    import_pkgconfig_target(TARGET_NAME libsquashfuse PKGCONFIG_TARGET squashfuse)
++    add_library(libsquashfuse INTERFACE IMPORTED GLOBAL)
 +
 +    set(squashfuse_INCLUDE_DIRS "${SQUASHFUSE}/include")
 +    set(squashfuse_LIBRARIES "${SQUASHFUSE}/lib/libsquashfuse.a;${SQUASHFUSE}/lib/libsquashfuse_ll.a;${SQUASHFUSE}/lib/libfuseprivate.a")
 +
 +    set_property(
-+      TARGET squashfuse
++      TARGET libsquashfuse
 +      PROPERTY INTERFACE_LINK_LIBRARIES ${squashfuse_LIBRARIES}
 +    )
 +    include_directories(${squashfuse_INCLUDE_DIRS})
-+endif()
- 
- 
- set(USE_SYSTEM_INOTIFY_TOOLS OFF CACHE BOOL "Use system libinotifytools instead of building our own")
- 
- if(NOT USE_SYSTEM_INOTIFY_TOOLS)
-     message(STATUS "Downloading and building inotify-tools")
- 
-     # TODO: build out of source
-     ExternalProject_Add(inotify-tools-EXTERNAL
-         URL https://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
-@@ -345,20 +361,23 @@ if(NOT USE_SYSTEM_GTEST)
-             INCLUDE_DIRS "<INSTALL_DIR>/include/"
-         )
-     else()
-         message(STATUS "Using system GTest")
- 
-         import_find_pkg_target(gtest GTest GTEST)
-     endif()
  endif()
- 
- 
-+set(USE_SYSTEM_MKSQUASHFS OFF CACHE BOOL "Use system mksquashfs instead of downloading and building our own")
-+
-+if(NOT USE_SYSTEM_MKSQUASHFS)
- # TODO: allow using system wide mksquashfs
- set(mksquashfs_cflags "-DXZ_SUPPORT ${CFLAGS}")
- 
- if(xz_LIBRARIES MATCHES "\\.a$")
-     set(mksquashfs_ldflags "${xz_LIBRARIES}")
- else()
-     set(mksquashfs_ldflags "-l${xz_LIBRARIES}")
- endif()
- 
- if(xz_INCLUDE_DIRS)
-@@ -385,20 +404,25 @@ ExternalProject_Add(mksquashfs
-     INSTALL_COMMAND ${MAKE} -C squashfs-tools/ install INSTALL_DIR=<INSTALL_DIR>
- )
- 
- ExternalProject_Get_Property(mksquashfs INSTALL_DIR)
- set(mksquashfs_INSTALL_DIR "${INSTALL_DIR}")
- mark_as_advanced(mksquashfs_INSTALL_DIR)
- 
- # for later use when packaging as an AppImage
- set(mksquashfs_BINARY "${mksquashfs_INSTALL_DIR}/mksquashfs")
- mark_as_advanced(mksquashfs_BINARY)
-+else()
-+    message(STATUS "Using system mksquashfs")
-+
-+    set(mksquashfs_BINARY "mksquashfs")
-+endif()
- 
- 
- #### build dependency configuration ####
- 
- # only have to build custom xz when not using system libxz
- if(TARGET xz-EXTERNAL)
-     if(TARGET squashfuse-EXTERNAL)
-         ExternalProject_Add_StepDependencies(squashfuse-EXTERNAL configure xz-EXTERNAL)
-     endif()
-     if(TARGET mksquashfs)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 3f25442..974ed0e 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -197,27 +197,27 @@ target_include_directories(digest_md5
- 
- target_link_libraries(digest_md5
-     PRIVATE
-     libglib
- )
- 
- 
- # install binaries
- if(AUXILIARY_FILES_DESTINATION)
-     install(
--        PROGRAMS ${mksquashfs_INSTALL_DIR}/mksquashfs ${CMAKE_CURRENT_BINARY_DIR}/runtime
-+        PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtime
-         DESTINATION ${AUXILIARY_FILES_DESTINATION}
-         COMPONENT applications
-     )
- else()
-     install(
--        PROGRAMS ${mksquashfs_INSTALL_DIR}/mksquashfs ${CMAKE_CURRENT_BINARY_DIR}/runtime
-+        PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/runtime
-         DESTINATION bin
-         COMPONENT applications
-     )
- endif()
- 
- install(
-     TARGETS AppRun appimagetool digest validate
-     RUNTIME DESTINATION bin COMPONENT applications
-     LIBRARY DESTINATION lib COMPONENT applications
-     ARCHIVE DESTINATION lib/static COMPONENT applications
-diff --git a/src/shared.c b/src/shared.c
-index cf5fd5c..4f48dbc 100644
---- a/src/shared.c
-+++ b/src/shared.c
-@@ -34,21 +34,21 @@
- #include <sys/stat.h>
+
+
+diff --git a/src/appimagetool.c b/src/appimagetool.c
+index 6b37419..23425e7 100644
+--- a/src/appimagetool.c
++++ b/src/appimagetool.c
+@@ -38,7 +38,7 @@
+ #include <argp.h>
+
+ #include <fcntl.h>
+-#include "squashfuse.h"
++#include <squashfuse.h>
+
  #include <sys/types.h>
- #include <dirent.h>
- #include <errno.h>
- 
- #include <glib.h>
- #include <glib/gprintf.h>
- #include <glib/gstdio.h>
- #include <gio/gio.h>
- 
+ #include <sys/stat.h>
+@@ -96,7 +96,7 @@ static void die(const char *msg) {
+ }
+
+ /* Function that prints the contents of a squashfs file
+-* using libsquashfuse (#include "squashfuse.h") */
++* using libsquashfuse (#include <squashfuse.h>) */
+ int sfs_ls(char* image) {
+     sqfs_err err = SQFS_OK;
+     sqfs_traverse trv;
+diff --git a/src/appimagetoolnoglib.c b/src/appimagetoolnoglib.c
+index f900e76..ffa87f8 100644
+--- a/src/appimagetoolnoglib.c
++++ b/src/appimagetoolnoglib.c
+@@ -3,7 +3,7 @@
+
+ #include <stdlib.h>
+ #include <fcntl.h>
+-#include "squashfuse.h"
++#include <squashfuse.h>
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
+@@ -118,7 +118,7 @@ int is_regular_file(const char *path)
+ }
+
+ /* Function that prints the contents of a squashfs file
+- * using libsquashfuse (#include "squashfuse.h") */
++ * using libsquashfuse (#include <squashfuse.h>) */
+ int sfs_ls(char* image) {
+ 	sqfs_err err = SQFS_OK;
+ 	sqfs_traverse trv;
+diff --git a/src/runtime.c b/src/runtime.c
+index bada3af..70a642b 100644
+--- a/src/runtime.c
++++ b/src/runtime.c
+@@ -29,7 +29,7 @@
+
+ #define _GNU_SOURCE
+
 -#include "squashfuse.h"
 +#include <squashfuse.h>
  #include <squashfs_fs.h>
- #include "getsection.h"
- #include "elf.h"
- 
- #include "xdg-basedir.h"
- 
- // own header
- #include "shared.h"
- 
- #if HAVE_LIBARCHIVE3 == 1 // CentOS
+ #include <nonstd.h>
diff --git a/third_party/nixpkgs/pkgs/tools/security/ghidra/default.nix b/third_party/nixpkgs/pkgs/tools/security/ghidra/default.nix
index 2e55b24f72..6611233266 100644
--- a/third_party/nixpkgs/pkgs/tools/security/ghidra/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/security/ghidra/default.nix
@@ -25,12 +25,12 @@ let
 in stdenv.mkDerivation rec {
 
   pname = "ghidra";
-  version = "9.2.1";
-  versiondate = "20201215";
+  version = "9.2.2";
+  versiondate = "20201229";
 
   src = fetchzip {
     url = "https://www.ghidra-sre.org/ghidra_${version}_PUBLIC_${versiondate}.zip";
-    sha256 = "0rjzmx0nbv9flb666mk3w2dqliyfzjyc4ldjfmb5d29wpgnf9bnz";
+    sha256 = "1xahkwiqdcwxssah16hhgrmyam49cb341xp5ysycj1h0kkm8p53s";
   };
 
   nativeBuildInputs = [
diff --git a/third_party/nixpkgs/pkgs/tools/security/pwncat/default.nix b/third_party/nixpkgs/pkgs/tools/security/pwncat/default.nix
index 559dc8d8e3..67cfac9085 100644
--- a/third_party/nixpkgs/pkgs/tools/security/pwncat/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/security/pwncat/default.nix
@@ -5,18 +5,18 @@
 
 buildPythonApplication rec {
   pname = "pwncat";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sfdqphs0v3lj3vffda4w05r6sqir7qafa8lmlh0wr921wyiqwag";
+    sha256 = "62e625e9061f037cfca7b7455a4f7db4213c1d1302e73d4c475c63f924f1805f";
   };
 
   # Tests requires to start containers
   doCheck = false;
 
   meta = with lib; {
-    description = " TCP/UDP communication suite";
+    description = "TCP/UDP communication suite";
     homepage = "https://pwncat.org/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/third_party/nixpkgs/pkgs/tools/security/zsteg/Gemfile b/third_party/nixpkgs/pkgs/tools/security/zsteg/Gemfile
new file mode 100644
index 0000000000..814e5fe8ad
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/security/zsteg/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'zsteg'
diff --git a/third_party/nixpkgs/pkgs/tools/security/zsteg/Gemfile.lock b/third_party/nixpkgs/pkgs/tools/security/zsteg/Gemfile.lock
new file mode 100644
index 0000000000..b611fb93f5
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/security/zsteg/Gemfile.lock
@@ -0,0 +1,19 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    iostruct (0.0.4)
+    rainbow (3.0.0)
+    zpng (0.3.1)
+      rainbow
+    zsteg (0.2.2)
+      iostruct
+      zpng (>= 0.3.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  zsteg
+
+BUNDLED WITH
+   2.1.4
diff --git a/third_party/nixpkgs/pkgs/tools/security/zsteg/default.nix b/third_party/nixpkgs/pkgs/tools/security/zsteg/default.nix
new file mode 100644
index 0000000000..e47f285de7
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/security/zsteg/default.nix
@@ -0,0 +1,16 @@
+{ lib, bundlerApp }:
+
+bundlerApp {
+  pname = "zsteg";
+
+  gemdir = ./.;
+
+  exes = [ "zsteg" ];
+
+  meta = with lib; {
+    description = "Detect stegano-hidden data in PNG & BMP.";
+    homepage = "http://zed.0xff.me/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ applePrincess ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/security/zsteg/gemset.nix b/third_party/nixpkgs/pkgs/tools/security/zsteg/gemset.nix
new file mode 100644
index 0000000000..4f5bd79ce4
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/security/zsteg/gemset.nix
@@ -0,0 +1,44 @@
+{
+  iostruct = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kwp6ryis32j3z7myw8g7v1yszwrwyl04g2c7flr42pwxga1afxc";
+      type = "gem";
+    };
+    version = "0.0.4";
+  };
+  rainbow = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      type = "gem";
+    };
+    version = "3.0.0";
+  };
+  zpng = {
+    dependencies = ["rainbow"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ciyab7qxqsxjhfvr6rbpdzg655fi1zygqg9sd9m6wmgc037dj74";
+      type = "gem";
+    };
+    version = "0.3.1";
+  };
+  zsteg = {
+    dependencies = ["iostruct" "zpng"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mwajlsgs27449n2yf2f9hz8g46qv9bz9f58i9cz1jg58spvpxpk";
+      type = "gem";
+    };
+    version = "0.2.2";
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/system/nats-top/default.nix b/third_party/nixpkgs/pkgs/tools/system/nats-top/default.nix
new file mode 100644
index 0000000000..f2be03d430
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/system/nats-top/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "nats-top";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0b1hpnq8m1xfrn58ammmnx6lmhk319m8z4xjxgckz7wvy2fbzw0n";
+  };
+
+  vendorSha256 = "1a48p9gx5zdc340ma6cqakhi6f3lw9b0kz2597j1jcsk2qb7s581";
+
+  meta = with lib; {
+    description = "top-like tool for monitoring NATS servers";
+    homepage = "https://github.com/nats-io/nats-top";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/system/natscli/default.nix b/third_party/nixpkgs/pkgs/tools/system/natscli/default.nix
new file mode 100644
index 0000000000..dbf85f9b73
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/system/natscli/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "natscli";
+  version = "0.0.22";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = pname;
+    rev = version;
+    sha256 = "1qc6lpgl878kc316z10x59px6jyfzdwsj7fdr8k4ayln0lplvbq3";
+  };
+
+  vendorSha256 = "1a9d7hqj43qdh0h7pc5wckqshi8lacf6m2107wymzzz62j1msy26";
+
+  meta = with lib; {
+    description = "NATS Command Line Interface";
+    homepage = "https://github.com/nats-io/natscli";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/system/nkeys/default.nix b/third_party/nixpkgs/pkgs/tools/system/nkeys/default.nix
new file mode 100644
index 0000000000..05d2d853b2
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/system/nkeys/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "nkeys";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "nats-io";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "06wbmb3cxjrcfvgfbn6rdfzb4pfaaw11bnvl1r4kig4ag22qcz7b";
+  };
+
+  vendorSha256 = "0kiqlw2411x5c1pamq3mn5wcm8mdn91avwg8xh2a7sy3kqw5d26d";
+
+  meta = with lib; {
+    description = "Public-key signature system for NATS";
+    homepage = "https://github.com/nats-io/nkeys";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/text/gpt2tc/0001-add-python-shebang.patch b/third_party/nixpkgs/pkgs/tools/text/gpt2tc/0001-add-python-shebang.patch
new file mode 100644
index 0000000000..b47b444009
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/text/gpt2tc/0001-add-python-shebang.patch
@@ -0,0 +1,10 @@
+diff --git a/gpt2convert.py b/gpt2convert.py
+index 34ca909..6e6cac5 100644
+--- a/gpt2convert.py
++++ b/gpt2convert.py
+@@ -1,3 +1,5 @@
++#!/usr/bin/env python3
++
+ import sys
+ import tensorflow as tf
+ import numpy as np
diff --git a/third_party/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch b/third_party/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch
new file mode 100644
index 0000000000..fd8f93834e
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/text/gpt2tc/0002-fix-download-url.patch
@@ -0,0 +1,11 @@
+diff --git a/download_model.sh b/download_model.sh
+index 9cb401f..ad1dc62 100755
+--- a/download_model.sh
++++ b/download_model.sh
+@@ -13,5 +13,5 @@ mkdir -p models/$model
+ for filename in checkpoint encoder.json hparams.json model.ckpt.data-00000-of-00001 model.ckpt.index model.ckpt.meta vocab.bpe; do
+   fetch=$model/$filename
+   echo "Fetching $fetch"
+-  curl --output models/$fetch https://storage.googleapis.com/gpt-2/models/$fetch
++  curl --output models/$fetch https://openaipublic.blob.core.windows.net/gpt-2/models/$fetch
+ done
diff --git a/third_party/nixpkgs/pkgs/tools/text/gpt2tc/default.nix b/third_party/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
new file mode 100644
index 0000000000..eb79d9009f
--- /dev/null
+++ b/third_party/nixpkgs/pkgs/tools/text/gpt2tc/default.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchurl, autoPatchelfHook, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "gpt2tc";
+  version = "2020-12-30";
+
+  src = fetchurl {
+    url = "https://bellard.org/nncp/gpt2tc-${version}.tar.gz";
+    hash = "sha256-KFcl7E6iGx50JaJI1jwzKAdkrkbNngPbrEA/ZSyG+uY=";
+  };
+
+  patches = [
+    # Add a shebang to the python script so that nix detects it as such and
+    # wraps it properly. Otherwise, it runs in shell and freezes the system.
+    ./0001-add-python-shebang.patch
+
+    # Update the source URL for the models because the old one is down.
+    ./0002-fix-download-url.patch
+  ];
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  buildInputs = [
+    (python3.withPackages (p: with p; [ numpy tensorflow ]))
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m755 -t $out/bin gpt2tc
+    install -T -m755 download_model.sh $out/bin/gpt2-download-model
+    install -T -m755 gpt2convert.py $out/bin/gpt2-convert
+    install -D -m644 -t $out/share/gpt2tc readme.txt gpt2vocab.txt Changelog
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Text completion and compression using GPT-2";
+    homepage = "https://bellard.org/nncp/gpt2tc.html";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ anna328p ];
+  };
+}
diff --git a/third_party/nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix b/third_party/nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix
index 4068d71383..16c10b5ae7 100644
--- a/third_party/nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/virtualization/ec2instanceconnectcli/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, boto3 }:
+{ lib, buildPythonPackage, fetchPypi, boto3, cryptography }:
 
 buildPythonPackage rec {
   pname = "ec2instanceconnectcli";
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     sha256 = "sha256-VaCyCnEhSx1I3bNo57p0IXf92+tO1tT7KSUXzO1IyIU=";
   };
 
-  propagatedBuildInputs = [ boto3 ];
+  propagatedBuildInputs = [ boto3 cryptography ];
 
   # has no tests
   doCheck = false;
diff --git a/third_party/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix b/third_party/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
index be62ace479..ad187544ae 100644
--- a/third_party/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
+++ b/third_party/nixpkgs/pkgs/tools/virtualization/google-compute-engine/default.nix
@@ -1,6 +1,6 @@
 { lib
 , fetchFromGitHub
-, buildPythonApplication
+, buildPythonPackage
 , bash
 , bashInteractive
 , systemd
@@ -10,10 +10,9 @@
 , distro
 }:
 
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "google-compute-engine";
   version = "20190124";
-  namePrefix = "";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
@@ -25,7 +24,6 @@ buildPythonApplication rec {
   buildInputs = [ bash ];
   propagatedBuildInputs = [ boto setuptools distro ];
 
-
   postPatch = ''
     for file in $(find google_compute_engine -type f); do
       substituteInPlace "$file" \
@@ -54,6 +52,7 @@ buildPythonApplication rec {
   '';
 
   doCheck = false;
+  pythonImportsCheck = [ "google_compute_engine" ];
 
   meta = with lib; {
     description = "Google Compute Engine tools and services";
diff --git a/third_party/nixpkgs/pkgs/top-level/aliases.nix b/third_party/nixpkgs/pkgs/top-level/aliases.nix
index 75fed66865..720d2dcdd9 100644
--- a/third_party/nixpkgs/pkgs/top-level/aliases.nix
+++ b/third_party/nixpkgs/pkgs/top-level/aliases.nix
@@ -620,6 +620,7 @@ mapAliases ({
   qt-3 = throw "qt-3 has been removed from nixpkgs, as it's unmaintained and insecure"; # added 2021-02-15
   rfkill = throw "rfkill has been removed, as it's included in util-linux"; # added 2020-08-23
   riak-cs = throw "riak-cs is not maintained anymore"; # added 2020-10-14
+  radare2-cutter = cutter; # added 2021-03-30
   rkt = throw "rkt was archived by upstream"; # added 2020-05-16
   ruby_2_0_0 = throw "ruby_2_0_0 was deprecated on 2018-02-13: use a newer version of ruby";
   ruby_2_1_0 = throw "ruby_2_1_0 was deprecated on 2018-02-13: use a newer version of ruby";
@@ -836,6 +837,7 @@ mapAliases ({
   ytop = throw "ytop has been abandoned by upstream. Consider switching to bottom instead";
   yubikey-neo-manager = throw "yubikey-neo-manager has been removed because it was broken. Use yubikey-manager-qt instead."; # added 2021-03-08
   yuzu = yuzu-mainline; # added 2021-01-25
+  zabbix30 = throw "Zabbix 3.0.x is end of life, see https://www.zabbix.com/documentation/5.0/manual/installation/upgrade/sources for a direct upgrade path to 5.0.x"; # added 2021-04-07
   zimreader = throw "zimreader has been removed from nixpkgs as it has been replaced by kiwix-serve and stopped working with modern zimlib versions."; # added 2021-03-28
   zdfmediathk = mediathekview; # added 2019-01-19
 
@@ -991,6 +993,7 @@ mapAliases ({
     plasma-vault
     plasma-workspace plasma-workspace-wallpapers
     polkit-kde-agent powerdevil
+    qqc2-breeze-style
     sddm-kcm systemsettings
     xdg-desktop-portal-kde
   ;
diff --git a/third_party/nixpkgs/pkgs/top-level/all-packages.nix b/third_party/nixpkgs/pkgs/top-level/all-packages.nix
index eb89241538..043928457f 100644
--- a/third_party/nixpkgs/pkgs/top-level/all-packages.nix
+++ b/third_party/nixpkgs/pkgs/top-level/all-packages.nix
@@ -154,6 +154,8 @@ in
 
   ankisyncd = callPackage ../servers/ankisyncd { };
 
+  antsimulator = callPackage ../games/antsimulator { };
+
   fiche = callPackage ../servers/fiche { };
 
   fishnet = callPackage ../servers/fishnet { };
@@ -1102,6 +1104,8 @@ in
 
   betterdiscordctl = callPackage ../tools/misc/betterdiscordctl { };
 
+  betterdiscord-installer = callPackage ../tools/misc/betterdiscord-installer { };
+
   brakeman = callPackage ../development/tools/analysis/brakeman { };
 
   brewtarget = libsForQt514.callPackage ../applications/misc/brewtarget { } ;
@@ -2248,6 +2252,14 @@ in
 
   discount = callPackage ../tools/text/discount { };
 
+  discourse = callPackage ../servers/web-apps/discourse {
+    ruby = ruby_2_7;
+  };
+
+  discourse-mail-receiver = callPackage ../servers/web-apps/discourse/mail_receiver {
+    ruby = ruby_2_7;
+  };
+
   discocss = callPackage ../tools/misc/discocss { };
 
   disfetch = callPackage ../tools/misc/disfetch { };
@@ -2487,6 +2499,8 @@ in
 
   go-chromecast = callPackage ../applications/video/go-chromecast { };
 
+  go-containerregistry = callPackage ../development/tools/go-containerregistry { };
+
   go-rice = callPackage ../tools/misc/go.rice {};
 
   go-2fa = callPackage ../tools/security/2fa {};
@@ -2568,6 +2582,8 @@ in
 
   gringo = callPackage ../tools/misc/gringo { };
 
+  grit = callPackage ../tools/misc/grit { };
+
   grobi = callPackage ../tools/X11/grobi { };
 
   gscan2pdf = callPackage ../applications/graphics/gscan2pdf { };
@@ -2630,6 +2646,8 @@ in
 
   jotta-cli = callPackage ../applications/misc/jotta-cli { };
 
+  joycond = callPackage ../os-specific/linux/joycond { };
+
   jwt-cli = callPackage ../tools/security/jwt-cli {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -2796,6 +2814,8 @@ in
 
   nix-template = callPackage ../tools/package-management/nix-template { };
 
+  nodepy-runtime = with python3.pkgs; toPythonApplication nodepy-runtime;
+
   nixpkgs-pytools = with python3.pkgs; toPythonApplication nixpkgs-pytools;
 
   noteshrink = callPackage ../tools/misc/noteshrink { };
@@ -2860,6 +2880,8 @@ in
 
   playerctl = callPackage ../tools/audio/playerctl { };
 
+  poweralertd = callPackage ../tools/misc/poweralertd { };
+
   ps_mem = callPackage ../tools/system/ps_mem { };
 
   psstop = callPackage ../tools/system/psstop { };
@@ -3660,7 +3682,7 @@ in
 
   curlftpfs = callPackage ../tools/filesystems/curlftpfs { };
 
-  cutter = callPackage ../tools/networking/cutter { };
+  tcp-cutter = callPackage ../tools/networking/tcp-cutter { };
 
   cwebbin = callPackage ../development/tools/misc/cwebbin { };
 
@@ -4085,7 +4107,6 @@ in
 
   wrangler = callPackage ../development/tools/wrangler {
    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security;
-   inherit (darwin) libiconv;
   };
 
   wsl-open = callPackage ../tools/misc/wsl-open { };
@@ -5054,6 +5075,8 @@ in
 
   gparted = callPackage ../tools/misc/gparted { };
 
+  gpt2tc = callPackage ../tools/text/gpt2tc { };
+
   ldmtool = callPackage ../tools/misc/ldmtool { };
 
   gpodder = callPackage ../applications/audio/gpodder { };
@@ -6047,6 +6070,10 @@ in
     pythonPackages = python3Packages;
   };
 
+  nats-top = callPackage ../tools/system/nats-top { };
+
+  natscli = callPackage ../tools/system/natscli { };
+
   nbench = callPackage ../tools/misc/nbench { };
 
   ncrack = callPackage ../tools/security/ncrack { };
@@ -6064,6 +6091,8 @@ in
 
   netsniff-ng = callPackage ../tools/networking/netsniff-ng { };
 
+  nkeys = callPackage ../tools/system/nkeys { };
+
   nyxt = callPackage ../applications/networking/browsers/nyxt { };
 
   nfpm = callPackage ../tools/package-management/nfpm { };
@@ -7084,6 +7113,8 @@ in
     etcDir = "/etc/ssh";
   };
 
+  ssh-copy-id = callPackage ../tools/networking/openssh/copyid.nix { };
+
   opensp = callPackage ../tools/text/sgml/opensp { };
 
   opentracker = callPackage ../applications/networking/p2p/opentracker { };
@@ -7593,9 +7624,7 @@ in
 
   pympress = callPackage ../applications/office/pympress { };
 
-  pyspread = python3Packages.callPackage ../applications/office/pyspread {
-    inherit (qt5) qtsvg wrapQtAppsHook;
-  };
+  pyspread = libsForQt5.callPackage ../applications/office/pyspread { };
 
   pythonIRClib = pythonPackages.pythonIRClib;
 
@@ -9014,9 +9043,7 @@ in
     inherit lib udisks2 python3;
   };
 
-  viking = callPackage ../applications/misc/viking {
-    inherit (gnome2) scrollkeeper;
-  };
+  viking = callPackage ../applications/misc/viking { };
 
   vim-vint = callPackage ../development/tools/vim-vint { };
 
@@ -9647,6 +9674,8 @@ in
 
   zsh-bd = callPackage ../shells/zsh/zsh-bd { };
 
+  zsh-clipboard = callPackage ../shells/zsh/zsh-clipboard { };
+
   zsh-git-prompt = callPackage ../shells/zsh/zsh-git-prompt { };
 
   zsh-history = callPackage ../shells/zsh/zsh-history { };
@@ -11221,6 +11250,7 @@ in
   };
   cargo-embed = callPackage ../development/tools/rust/cargo-embed { };
   cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
+  cargo-feature = callPackage ../development/tools/rust/cargo-feature { };
   cargo-flash = callPackage ../development/tools/rust/cargo-flash { };
   cargo-fund = callPackage ../development/tools/rust/cargo-fund {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -12754,6 +12784,7 @@ in
   gradle_4 = gradle_4_10;
   gradle_5 = res.gradleGen.gradle_5_6;
   gradle_6 = res.gradleGen.gradle_6_8;
+  gradle_7 = res.gradleGen.gradle_7;
 
   gperf = callPackage ../development/tools/misc/gperf { };
   # 3.1 changed some parameters from int to size_t, leading to mismatches.
@@ -12871,6 +12902,7 @@ in
 
   khronos-ocl-icd-loader = callPackage ../development/libraries/khronos-ocl-icd-loader {  };
 
+  krankerl = callPackage ../development/tools/krankerl { };
 
   krew = callPackage ../development/tools/krew { };
 
@@ -13088,6 +13120,8 @@ in
     };
   }));
 
+  polar = callPackage ../tools/misc/polar { };
+
   inherit (nodePackages) postcss-cli;
 
   postiats-utilities = callPackage ../development/tools/postiats-utilities {};
@@ -13130,12 +13164,14 @@ in
 
   r10k = callPackage ../tools/system/r10k { };
 
-  inherit (callPackages ../development/tools/analysis/radare2 ({
+  radare2 = callPackage ../development/tools/analysis/radare2 ({
     inherit (gnome2) vte;
     lua = lua5;
-  } // (config.radare or {}))) radare2 r2-for-cutter;
+  } // (config.radare or {}));
 
-  radare2-cutter = libsForQt515.callPackage ../development/tools/analysis/radare2/cutter.nix { };
+  rizin = pkgs.callPackage ../development/tools/analysis/rizin { };
+
+  cutter = libsForQt515.callPackage ../development/tools/analysis/rizin/cutter.nix { };
 
   ragel = ragelStable;
 
@@ -14888,8 +14924,8 @@ in
   iso-flags = callPackage ../data/icons/iso-flags { };
 
   ispc = callPackage ../development/compilers/ispc {
-    stdenv = llvmPackages_10.stdenv;
-    llvmPackages = llvmPackages_10;
+    stdenv = llvmPackages_11.stdenv;
+    llvmPackages = llvmPackages_11;
   };
 
   isso = callPackage ../servers/isso { };
@@ -15255,6 +15291,8 @@ in
 
   libdmtx = callPackage ../development/libraries/libdmtx { };
 
+  libdmapsharing = callPackage ../development/libraries/libdmapsharing { };
+
   libdnet = callPackage ../development/libraries/libdnet { };
 
   libdnf = callPackage ../tools/package-management/libdnf { };
@@ -15873,6 +15911,8 @@ in
 
   libpeas = callPackage ../development/libraries/libpeas { };
 
+  libpg_query = callPackage ../development/libraries/libpg_query { };
+
   libpipeline = callPackage ../development/libraries/libpipeline { };
 
   libpgf = callPackage ../development/libraries/libpgf { };
@@ -16742,6 +16782,8 @@ in
 
   pkgdiff = callPackage ../tools/misc/pkgdiff { };
 
+  place-cursor-at = haskell.lib.justStaticExecutables haskellPackages.place-cursor-at;
+
   plib = callPackage ../development/libraries/plib { };
 
   pocketsphinx = callPackage ../development/libraries/pocketsphinx { };
@@ -17593,12 +17635,8 @@ in
     stdenv = gcc6Stdenv;
   });
 
-  v8_6_x = v8;
   v8 = callPackage ../development/libraries/v8 {
     inherit (python2Packages) python;
-  } // lib.optionalAttrs stdenv.isLinux {
-    # doesn't build with gcc7
-    stdenv = gcc6Stdenv;
   };
 
   vaapiIntel = callPackage ../development/libraries/vaapi-intel { };
@@ -18864,6 +18902,7 @@ in
   prometheus-aws-s3-exporter = callPackage ../servers/monitoring/prometheus/aws-s3-exporter.nix { };
   prometheus-bind-exporter = callPackage ../servers/monitoring/prometheus/bind-exporter.nix { };
   prometheus-bird-exporter = callPackage ../servers/monitoring/prometheus/bird-exporter.nix { };
+  prometheus-bitcoin-exporter = callPackage ../servers/monitoring/prometheus/bitcoin-exporter.nix { };
   prometheus-blackbox-exporter = callPackage ../servers/monitoring/prometheus/blackbox-exporter.nix { };
   prometheus-collectd-exporter = callPackage ../servers/monitoring/prometheus/collectd-exporter.nix { };
   prometheus-consul-exporter = callPackage ../servers/monitoring/prometheus/consul-exporter.nix { };
@@ -19200,7 +19239,6 @@ in
 
   zabbix50 = recurseIntoAttrs (zabbixFor "v50");
   zabbix40 = dontRecurseIntoAttrs (zabbixFor "v40");
-  zabbix30 = dontRecurseIntoAttrs (zabbixFor "v30");
 
   zabbix = zabbix50;
 
@@ -19234,7 +19272,9 @@ in
 
   alsaPluginWrapper = callPackage ../os-specific/linux/alsa-plugins/wrapper.nix { };
 
-  alsaUtils = callPackage ../os-specific/linux/alsa-utils { };
+  alsaUtils = callPackage ../os-specific/linux/alsa-utils {
+    fftw = fftwFloat;
+  };
   alsaOss = callPackage ../os-specific/linux/alsa-oss { };
   alsaTools = callPackage ../os-specific/linux/alsa-tools { };
 
@@ -19760,6 +19800,13 @@ in
     ];
   };
 
+  linux_xanmod = callPackage ../os-specific/linux/kernel/linux-xanmod.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+    ];
+  };
+
   /* Linux kernel modules are inherently tied to a specific kernel.  So
      rather than provide specific instances of those packages for a
      specific kernel, we have a function that builds those packages
@@ -19945,6 +19992,8 @@ in
 
     v86d = callPackage ../os-specific/linux/v86d { };
 
+    vendor-reset = callPackage ../os-specific/linux/vendor-reset { };
+
     vhba = callPackage ../misc/emulators/cdemu/vhba.nix { };
 
     virtualbox = callPackage ../os-specific/linux/virtualbox {
@@ -20080,6 +20129,9 @@ in
   linuxPackages_zen = recurseIntoAttrs (linuxPackagesFor pkgs.linux_zen);
   linuxPackages_lqx = recurseIntoAttrs (linuxPackagesFor pkgs.linux_lqx);
 
+  # XanMod kernel
+  linuxPackages_xanmod = recurseIntoAttrs (linuxPackagesFor pkgs.linux_xanmod);
+
   # A function to build a manually-configured kernel
   linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
 
@@ -21385,6 +21437,8 @@ in
 
   shades-of-gray-theme = callPackage ../data/themes/shades-of-gray { };
 
+  sjasmplus = callPackage ../development/compilers/sjasmplus { };
+
   skeu = callPackage ../data/themes/skeu { };
 
   sweet = callPackage ../data/themes/sweet { };
@@ -21941,6 +21995,10 @@ in
 
   blogc = callPackage ../applications/misc/blogc { };
 
+  blucontrol = callPackage ../applications/misc/blucontrol/wrapper.nix {
+    inherit (haskellPackages) ghcWithPackages;
+  };
+
   bluefish = callPackage ../applications/editors/bluefish {
     gtk = gtk3;
   };
@@ -21993,7 +22051,9 @@ in
 
   caerbannog = callPackage ../applications/misc/caerbannog { };
 
-  cage = callPackage ../applications/window-managers/cage { };
+  cage = callPackage ../applications/window-managers/cage {
+    wlroots = wlroots_0_12;
+  };
 
   calf = callPackage ../applications/audio/calf {
       inherit (gnome2) libglade;
@@ -23432,13 +23492,18 @@ in
 
   super-productivity = callPackage ../applications/networking/super-productivity { };
 
-  wlroots = callPackage ../development/libraries/wlroots { };
+  wlroots = callPackage ../development/libraries/wlroots {
+    inherit (xorg) xcbutilrenderutil;
+  };
+
+  wlroots_0_12 = callPackage ../development/libraries/wlroots/0.12.nix {};
 
   sway-unwrapped = callPackage ../applications/window-managers/sway { };
   sway = callPackage ../applications/window-managers/sway/wrapper.nix { };
   swaybg = callPackage ../applications/window-managers/sway/bg.nix { };
   swayidle = callPackage ../applications/window-managers/sway/idle.nix { };
   swaylock = callPackage ../applications/window-managers/sway/lock.nix { };
+  swaywsr = callPackage ../applications/window-managers/sway/wsr.nix { };
   sway-contrib = recurseIntoAttrs (callPackages ../applications/window-managers/sway/contrib.nix { });
 
   swaylock-fancy = callPackage ../applications/window-managers/sway/lock-fancy.nix { };
@@ -23453,7 +23518,9 @@ in
 
   wbg = callPackage ../applications/misc/wbg { };
 
-  hikari = callPackage ../applications/window-managers/hikari { };
+  hikari = callPackage ../applications/window-managers/hikari {
+    wlroots = wlroots_0_12;
+  };
 
   i3 = callPackage ../applications/window-managers/i3 {
     xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor;
@@ -23511,9 +23578,13 @@ in
 
   i3status-rust = callPackage ../applications/window-managers/i3/status-rust.nix { };
 
+  i3wsr = callPackage ../applications/window-managers/i3/wsr.nix { };
+
   i3-wk-switch = callPackage ../applications/window-managers/i3/wk-switch.nix { };
 
-  waybox = callPackage ../applications/window-managers/waybox { };
+  waybox = callPackage ../applications/window-managers/waybox {
+    wlroots = wlroots_0_12;
+  };
 
   windowchef = callPackage ../applications/window-managers/windowchef/default.nix { };
 
@@ -24182,6 +24253,8 @@ in
 
   meme = callPackage ../applications/graphics/meme { };
 
+  meme-suite = callPackage ../applications/science/biology/meme-suite { };
+
   # Needs qtwebkit which is broken on qt5.15
   mendeley = libsForQt514.callPackage ../applications/office/mendeley {
     gconf = pkgs.gnome2.GConf;
@@ -26382,10 +26455,15 @@ in
 
   wayfireApplications = wayfireApplications-unwrapped.withPlugins (plugins: [ plugins.wf-shell ]);
   inherit (wayfireApplications) wayfire wcm;
-  wayfireApplications-unwrapped = recurseIntoAttrs (callPackage ../applications/window-managers/wayfire/applications.nix { });
-  wayfirePlugins = recurseIntoAttrs (callPackage ../applications/window-managers/wayfire/plugins.nix {
-    inherit (wayfireApplications-unwrapped) wayfire;
-  });
+  wayfireApplications-unwrapped = recurseIntoAttrs (
+    (callPackage ../applications/window-managers/wayfire/applications.nix { }).
+    extend (_: _: { wlroots = wlroots_0_12; })
+  );
+  wayfirePlugins = recurseIntoAttrs (
+    callPackage ../applications/window-managers/wayfire/plugins.nix {
+      inherit (wayfireApplications-unwrapped) wayfire;
+    }
+  );
   wf-config = callPackage ../applications/window-managers/wayfire/wf-config.nix { };
 
   waypipe = callPackage ../applications/networking/remote/waypipe { };
@@ -26427,7 +26505,9 @@ in
 
   weston = callPackage ../applications/window-managers/weston { pipewire = pipewire_0_2; };
 
-  wio = callPackage ../applications/window-managers/wio { };
+  wio = callPackage ../applications/window-managers/wio {
+    wlroots = wlroots_0_12;
+  };
 
   whitebox-tools = callPackage ../applications/gis/whitebox-tools {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -26936,6 +27016,8 @@ in
 
   zscroll = callPackage ../applications/misc/zscroll {};
 
+  zsteg = callPackage ../tools/security/zsteg { };
+
   zynaddsubfx = zyn-fusion;
 
   zynaddsubfx-fltk = callPackage ../applications/audio/zynaddsubfx {
@@ -27952,6 +28034,8 @@ in
 
   ufoai = callPackage ../games/ufoai { };
 
+  uhexen2 = callPackage ../games/uhexen2 { };
+
   ultimatestunts = callPackage ../games/ultimatestunts { };
 
   ultrastar-creator = libsForQt5.callPackage ../tools/misc/ultrastar-creator { };
@@ -28015,7 +28099,7 @@ in
 
   warsow = callPackage ../games/warsow { };
 
-  warzone2100 = libsForQt5.callPackage ../games/warzone2100 { };
+  warzone2100 = callPackage ../games/warzone2100 { };
 
   wesnoth = callPackage ../games/wesnoth {
     inherit (darwin.apple_sdk.frameworks) Cocoa Foundation;
@@ -28246,6 +28330,14 @@ in
 
   octopus = callPackage ../applications/science/chemistry/octopus { };
 
+  openlp = libsForQt5.callPackage ../applications/misc/openlp { };
+  openlpFull = appendToName "full" (openlp.override {
+    pdfSupport = true;
+    presentationSupport = true;
+    vlcSupport = true;
+    gstreamerSupport = true;
+  });
+
   openmolcas = callPackage ../applications/science/chemistry/openmolcas { };
 
   pymol = callPackage ../applications/science/chemistry/pymol { };
@@ -30744,7 +30836,9 @@ in
 
   bottom = callPackage ../tools/system/bottom {};
 
-  cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix {};
+  cagebreak = callPackage ../applications/window-managers/cagebreak/default.nix {
+    wlroots = wlroots_0_12;
+  };
 
   psftools = callPackage ../os-specific/linux/psftools {};
 
diff --git a/third_party/nixpkgs/pkgs/top-level/perl-packages.nix b/third_party/nixpkgs/pkgs/top-level/perl-packages.nix
index 428c9b5579..00d5342d62 100644
--- a/third_party/nixpkgs/pkgs/top-level/perl-packages.nix
+++ b/third_party/nixpkgs/pkgs/top-level/perl-packages.nix
@@ -15114,18 +15114,15 @@ let
 
   NetCIDRLite = buildPerlPackage {
     pname = "Net-CIDR-Lite";
-    version = "0.21";
+    version = "0.22";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-0.21.tar.gz";
-      sha256 = "cfa125e8a2aef9259bc3a44e07cbdfb7894b64d22e7c0cee92aee2f5c7915093";
+      url = "mirror://cpan/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz";
+      sha256 = "05w57db2lx4djb4vixzdr6qgrzyzkk047nl812g7nq8s6k5xh5s3";
     };
-    patches = [
-      # Fix for security issue: prevent leading zeroes in ipv4 octets
-      # https://blog.urth.org/2021/03/29/security-issues-in-perl-ip-address-distros/
-      ../development/perl-modules/Net-CIDR-Lite-prevent-leading-zeroes-ipv4.patch
-    ];
     meta = {
       description = "Perl extension for merging IPv4 or IPv6 CIDR addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
     };
   };
 
diff --git a/third_party/nixpkgs/pkgs/top-level/php-packages.nix b/third_party/nixpkgs/pkgs/top-level/php-packages.nix
index 7db0eb4d6a..3bbcb453a3 100644
--- a/third_party/nixpkgs/pkgs/top-level/php-packages.nix
+++ b/third_party/nixpkgs/pkgs/top-level/php-packages.nix
@@ -146,8 +146,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
       sha256 = "103nys7zkpi1hifqp9miyl0m1mn07xqshw3sapyz365nb35g5q71";
 
-      buildInputs = [ pkgs.v8_6_x ];
-      configureFlags = [ "--with-v8=${pkgs.v8_6_x}" ];
+      buildInputs = [ pkgs.v8 ];
+      configureFlags = [ "--with-v8=${pkgs.v8}" ];
 
       meta.maintainers = lib.teams.php.members;
       meta.broken = true;
@@ -159,8 +159,8 @@ lib.makeScope pkgs.newScope (self: with self; {
 
       sha256 = "0g63dyhhicngbgqg34wl91nm3556vzdgkq19gy52gvmqj47rj6rg";
 
-      buildInputs = [ pkgs.v8_6_x ];
-      configureFlags = [ "--with-v8js=${pkgs.v8_6_x}" ];
+      buildInputs = [ pkgs.v8 ];
+      configureFlags = [ "--with-v8js=${pkgs.v8}" ];
 
       meta.maintainers = lib.teams.php.members;
       meta.broken = true;
diff --git a/third_party/nixpkgs/pkgs/top-level/python-packages.nix b/third_party/nixpkgs/pkgs/top-level/python-packages.nix
index c11dcd0859..e30bc409c8 100644
--- a/third_party/nixpkgs/pkgs/top-level/python-packages.nix
+++ b/third_party/nixpkgs/pkgs/top-level/python-packages.nix
@@ -236,6 +236,8 @@ in {
 
   aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
 
+  aiodiscover = callPackage ../development/python-modules/aiodiscover { };
+
   aiodns = callPackage ../development/python-modules/aiodns { };
 
   aioeafm = callPackage ../development/python-modules/aioeafm { };
@@ -538,10 +540,14 @@ in {
 
   async_generator = callPackage ../development/python-modules/async_generator { };
 
+  async-dns = callPackage ../development/python-modules/async-dns { };
+
   asyncio-dgram = callPackage ../development/python-modules/asyncio-dgram { };
 
   asyncio-mqtt = callPackage ../development/python-modules/asyncio_mqtt { };
 
+  asyncio-nats-client = callPackage ../development/python-modules/asyncio-nats-client { };
+
   asyncio-throttle = callPackage ../development/python-modules/asyncio-throttle { };
 
   asyncpg = callPackage ../development/python-modules/asyncpg { };
@@ -648,6 +654,8 @@ in {
 
   awsiotpythonsdk = callPackage ../development/python-modules/awsiotpythonsdk { };
 
+  awslambdaric = callPackage ../development/python-modules/awslambdaric { };
+
   axis = callPackage ../development/python-modules/axis { };
 
   azure-appconfiguration = callPackage ../development/python-modules/azure-appconfiguration { };
@@ -1486,7 +1494,8 @@ in {
 
   conda = callPackage ../development/python-modules/conda { };
 
-  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
+  ConfigArgParse = self.configargparse; # added 2021-03-18
+  configargparse = callPackage ../development/python-modules/configargparse { };
 
   configobj = callPackage ../development/python-modules/configobj { };
 
@@ -2031,6 +2040,8 @@ in {
 
   docutils = callPackage ../development/python-modules/docutils { };
 
+  docx2python = callPackage ../development/python-modules/docx2python { };
+
   dodgy = callPackage ../development/python-modules/dodgy { };
 
   dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
@@ -3109,6 +3120,8 @@ in {
 
   homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
 
+  homepluscontrol = callPackage ../development/python-modules/homepluscontrol { };
+
   hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue {
     inherit python;
   });
@@ -4000,6 +4013,8 @@ in {
 
   lmtpd = callPackage ../development/python-modules/lmtpd { };
 
+  localimport = callPackage ../development/python-modules/localimport { };
+
   localzone = callPackage ../development/python-modules/localzone { };
 
   locket = callPackage ../development/python-modules/locket { };
@@ -4104,6 +4119,8 @@ in {
 
   mail-parser = callPackage ../development/python-modules/mail-parser { };
 
+  makefun = callPackage ../development/python-modules/makefun { };
+
   Mako = callPackage ../development/python-modules/Mako { };
 
   managesieve = callPackage ../development/python-modules/managesieve { };
@@ -4512,6 +4529,8 @@ in {
 
   nassl = callPackage ../development/python-modules/nassl { };
 
+  nats-python = callPackage ../development/python-modules/nats-python { };
+
   natsort = callPackage ../development/python-modules/natsort { };
 
   naturalsort = callPackage ../development/python-modules/naturalsort { };
@@ -4635,6 +4654,8 @@ in {
 
   nodeenv = callPackage ../development/python-modules/nodeenv { };
 
+  nodepy-runtime = callPackage ../development/python-modules/nodepy-runtime { };
+
   node-semver = callPackage ../development/python-modules/node-semver { };
 
   noise = callPackage ../development/python-modules/noise { };
@@ -4800,6 +4821,8 @@ in {
     pythonPackages = self;
   }));
 
+  openhomedevice = callPackage ../development/python-modules/openhomedevice { };
+
   openidc-client = callPackage ../development/python-modules/openidc-client { };
 
   openpyxl = if pythonAtLeast "3.6" then
@@ -6562,6 +6585,8 @@ in {
   pytest-quickcheck = self.pytestquickcheck;
   pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
 
+  pytest-raises = callPackage ../development/python-modules/pytest-raises { };
+
   pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
 
   pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
@@ -7164,6 +7189,10 @@ in {
 
   recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
 
+  recoll = disabledIf (!isPy3k) (toPythonModule (pkgs.recoll.override {
+    python3Packages = self;
+  }));
+
   recommonmark = callPackage ../development/python-modules/recommonmark { };
 
   redbaron = callPackage ../development/python-modules/redbaron { };
@@ -7280,6 +7309,8 @@ in {
 
   ring-doorbell = callPackage ../development/python-modules/ring-doorbell { };
 
+  riprova = callPackage ../development/python-modules/riprova { };
+
   ripser = callPackage ../development/python-modules/ripser { };
 
   rising = callPackage ../development/python-modules/rising { };
@@ -7332,6 +7363,8 @@ in {
 
   roombapy = callPackage ../development/python-modules/roombapy { };
 
+  ronin = callPackage ../development/python-modules/ronin { };
+
   rope = callPackage ../development/python-modules/rope { };
 
   ROPGadget = callPackage ../development/python-modules/ROPGadget { };
@@ -7527,6 +7560,8 @@ in {
 
   screeninfo = callPackage ../development/python-modules/screeninfo { };
 
+  screenlogicpy = callPackage ../development/python-modules/screenlogicpy { };
+
   scripttest = callPackage ../development/python-modules/scripttest { };
 
   scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
@@ -9018,6 +9053,8 @@ in {
 
   yalesmartalarmclient = callPackage ../development/python-modules/yalesmartalarmclient { };
 
+  yalexs = callPackage ../development/python-modules/yalexs { };
+
   yamale = callPackage ../development/python-modules/yamale { };
 
   yamllint = callPackage ../development/python-modules/yamllint { };