about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2022-11-16 06:01:56 +0000
committerGitHub <noreply@github.com>2022-11-16 06:01:56 +0000
commit1fcf6e2df20456625f5218e97d221f4a5fe94bb8 (patch)
treeb43d9e40a743fde59e702d728432daa69838b1e3
parentfe0f06b2f52f00074e29b77fa67317941b233ab7 (diff)
parent8dadcc86eeccc7841ff450d0c943311d9c0824ca (diff)
Merge staging-next into staging
-rw-r--r--maintainers/maintainer-list.nix7
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2211.section.xml25
-rw-r--r--nixos/doc/manual/release-notes/rl-2211.section.md10
-rw-r--r--nixos/modules/config/gtk/gtk-icon-cache.nix4
-rw-r--r--nixos/modules/services/networking/adguardhome.nix20
-rw-r--r--nixos/modules/services/web-apps/peertube.nix28
-rw-r--r--nixos/tests/adguardhome.nix16
-rw-r--r--pkgs/applications/audio/mopidy/ytmusic.nix28
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix210
-rw-r--r--pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix37
-rwxr-xr-xpkgs/applications/editors/vim/plugins/nvim-treesitter/update.py19
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix10
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names1
-rw-r--r--pkgs/applications/misc/nut/default.nix14
-rw-r--r--pkgs/applications/misc/nut/hardcode-paths.patch13
-rw-r--r--pkgs/applications/misc/ulauncher/default.nix9
-rw-r--r--pkgs/applications/misc/ulauncher/fix-path.patch11
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json35
-rw-r--r--pkgs/data/fonts/linja-pi-pu-lukin/default.nix23
-rw-r--r--pkgs/data/fonts/sitelen-seli-kiwen/default.nix27
-rw-r--r--pkgs/data/themes/matcha/default.nix34
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix11
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix4
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix6
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch46
-rw-r--r--pkgs/desktops/xfce/core/xfce4-settings/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/qcheck/core.nix4
-rw-r--r--pkgs/development/python-modules/dill/default.nix8
-rw-r--r--pkgs/development/python-modules/gpiozero/default.nix1
-rw-r--r--pkgs/development/python-modules/miniaudio/default.nix4
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix13
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammar.nix34
-rw-r--r--pkgs/development/tools/ruff/default.nix6
-rw-r--r--pkgs/os-specific/linux/rtl8723ds/default.nix46
-rw-r--r--pkgs/servers/matrix-appservice-discord/default.nix60
-rwxr-xr-xpkgs/servers/matrix-appservice-discord/generate.sh17
-rw-r--r--pkgs/servers/matrix-appservice-discord/package.json35
-rw-r--r--pkgs/servers/matrix-appservice-discord/pin.json5
-rwxr-xr-xpkgs/servers/matrix-appservice-discord/update.sh42
-rw-r--r--pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix4317
-rw-r--r--pkgs/servers/mautrix-facebook/default.nix7
-rw-r--r--pkgs/servers/monitoring/unifi-poller/default.nix6
-rw-r--r--pkgs/tools/inputmethods/touchegg/default.nix11
-rw-r--r--pkgs/tools/misc/addlicense/default.nix6
-rw-r--r--pkgs/tools/networking/doggo/default.nix2
-rw-r--r--pkgs/top-level/all-packages.nix4
-rw-r--r--pkgs/top-level/linux-kernels.nix2
49 files changed, 662 insertions, 4628 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 6b73c678bc527..aad541ad0c969 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -7939,6 +7939,13 @@
     githubId = 24509182;
     name = "Arnaud Pascal";
   };
+  lightquantum = {
+    email = "self@lightquantum.me";
+    github = "PhotonQuantum";
+    githubId = 18749973;
+    name = "Yanning Chen";
+    matrix = "@self:lightquantum.me";
+  };
   lihop = {
     email = "nixos@leroy.geek.nz";
     github = "lihop";
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
index d5cc14a3bdfdd..a584292bffecc 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
@@ -1012,6 +1012,24 @@ signald -d /var/lib/signald/db \
           <literal>services.syncthing.dataDir</literal>.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <literal>services.github-runner</literal> and
+          <literal>services.github-runners.&lt;name&gt;</literal> gained
+          the option <literal>serviceOverrides</literal> which allows
+          overriding the systemd <literal>serviceConfig</literal>. If
+          you have been overriding the systemd service configuration
+          (i.e., by defining
+          <literal>systemd.services.github-runner.serviceConfig</literal>),
+          you have to use the <literal>serviceOverrides</literal> option
+          now. Example:
+        </para>
+        <programlisting>
+services.github-runner.serviceOverrides.SupplementaryGroups = [
+  &quot;docker&quot;
+];
+</programlisting>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-22.11-notable-changes">
@@ -1027,6 +1045,13 @@ signald -d /var/lib/signald/db \
       </listitem>
       <listitem>
         <para>
+          Configuring multiple GitHub runners is now possible through
+          <literal>services.github-runners.&lt;name&gt;</literal>. The
+          option <literal>services.github-runner</literal> remains.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <literal>github-runner</literal> gained support for ephemeral
           runners and registrations using a personal access token (PAT)
           instead of a registration token. See
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index d61cf29675536..a3d6f0f5ca647 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -316,12 +316,22 @@ Available as [services.patroni](options.html#opt-services.patroni.enable).
   In a future release other paths will be allowed again and interpreted
   relative to `services.syncthing.dataDir`.
 
+- `services.github-runner` and `services.github-runners.<name>` gained the option `serviceOverrides` which allows overriding the systemd `serviceConfig`. If you have been overriding the systemd service configuration (i.e., by defining `systemd.services.github-runner.serviceConfig`), you have to use the `serviceOverrides` option now. Example:
+
+  ```
+  services.github-runner.serviceOverrides.SupplementaryGroups = [
+    "docker"
+  ];
+  ```
+
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
 ## Other Notable Changes {#sec-release-22.11-notable-changes}
 
 - The `xplr` package has been updated from 0.18.0 to 0.19.0, which brings some breaking changes. See the [upstream release notes](https://github.com/sayanarijit/xplr/releases/tag/v0.19.0) for more details.
 
+- Configuring multiple GitHub runners is now possible through `services.github-runners.<name>`. The option `services.github-runner` remains.
+
 - `github-runner` gained support for ephemeral runners and registrations using a personal access token (PAT) instead of a registration token. See `services.github-runner.ephemeral` and `services.github-runner.tokenFile` for details.
 
 - A new module was added for the Saleae Logic device family, providing the options `hardware.saleae-logic.enable` and `hardware.saleae-logic.package`.
diff --git a/nixos/modules/config/gtk/gtk-icon-cache.nix b/nixos/modules/config/gtk/gtk-icon-cache.nix
index 87d5483e36ab9..62f0cc3f090f9 100644
--- a/nixos/modules/config/gtk/gtk-icon-cache.nix
+++ b/nixos/modules/config/gtk/gtk-icon-cache.nix
@@ -52,10 +52,8 @@ with lib;
 
     environment.extraSetup = ''
       # For each icon theme directory ...
-
-      find $out/share/icons -mindepth 1 -maxdepth 1 -print0 | while read -d $'\0' themedir
+      find $out/share/icons -exec test -d {} ';' -mindepth 1 -maxdepth 1 -print0 | while read -d $'\0' themedir
       do
-
         # In order to build the cache, the theme dir should be
         # writable. When the theme dir is a symbolic link to somewhere
         # in the nix store it is not writable and it means that only
diff --git a/nixos/modules/services/networking/adguardhome.nix b/nixos/modules/services/networking/adguardhome.nix
index eaeaeaeb6a7f2..bda99cb7942b8 100644
--- a/nixos/modules/services/networking/adguardhome.nix
+++ b/nixos/modules/services/networking/adguardhome.nix
@@ -51,8 +51,8 @@ in
     };
 
     settings = mkOption {
-      default = { };
-      type = submodule {
+      default = null;
+      type = nullOr (submodule {
         freeformType = (pkgs.formats.yaml { }).type;
         options = {
           schema_version = mkOption {
@@ -79,7 +79,7 @@ in
             '';
           };
         };
-      };
+      });
       description = lib.mdDoc ''
         AdGuard Home configuration. Refer to
         <https://github.com/AdguardTeam/AdGuardHome/wiki/Configuration#configuration-file>
@@ -89,6 +89,10 @@ in
         On start and if {option}`mutableSettings` is `true`,
         these options are merged into the configuration file on start, taking
         precedence over configuration changes made on the web interface.
+
+        Set this to `null` (default) for a non-declarative configuration without any
+        Nix-supplied values.
+        Declarative configurations are supplied with a default `schema_version`, `bind_host`, and `bind_port`.
         :::
       '';
     };
@@ -105,15 +109,15 @@ in
   config = mkIf cfg.enable {
     assertions = [
       {
-        assertion = cfg.settings != { }
-          -> (hasAttrByPath [ "dns" "bind_host" ] cfg.settings)
+        assertion = cfg.settings != null -> cfg.mutableSettings
+          || (hasAttrByPath [ "dns" "bind_host" ] cfg.settings)
           || (hasAttrByPath [ "dns" "bind_hosts" ] cfg.settings);
         message =
           "AdGuard setting dns.bind_host or dns.bind_hosts needs to be configured for a minimal working configuration";
       }
       {
-        assertion = cfg.settings != { }
-          -> hasAttrByPath [ "dns" "bootstrap_dns" ] cfg.settings;
+        assertion = cfg.settings != null -> cfg.mutableSettings
+          || hasAttrByPath [ "dns" "bootstrap_dns" ] cfg.settings;
         message =
           "AdGuard setting dns.bootstrap_dns needs to be configured for a minimal working configuration";
       }
@@ -128,7 +132,7 @@ in
         StartLimitBurst = 10;
       };
 
-      preStart = optionalString (cfg.settings != { }) ''
+      preStart = optionalString (cfg.settings != null) ''
         if    [ -e "$STATE_DIRECTORY/AdGuardHome.yaml" ] \
            && [ "${toString cfg.mutableSettings}" = "1" ]; then
           # Writing directly to AdGuardHome.yaml results in empty file
diff --git a/nixos/modules/services/web-apps/peertube.nix b/nixos/modules/services/web-apps/peertube.nix
index 046577e61566a..4dbcb09d2ae28 100644
--- a/nixos/modules/services/web-apps/peertube.nix
+++ b/nixos/modules/services/web-apps/peertube.nix
@@ -67,7 +67,11 @@ let
     node ~/dist/server/tools/peertube.js $@
   '';
 
-  nginxCommonHeaders = ''
+  nginxCommonHeaders = lib.optionalString cfg.enableWebHttps ''
+    add_header Strict-Transport-Security      'max-age=63072000; includeSubDomains';
+  '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
+    add_header Alt-Svc                        'h3=":443"; ma=86400';
+  '' + ''
     add_header Access-Control-Allow-Origin    '*';
     add_header Access-Control-Allow-Methods   'GET, OPTIONS';
     add_header Access-Control-Allow-Headers   'Range,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
@@ -370,7 +374,7 @@ in {
     systemd.services.peertube-init-db = lib.mkIf cfg.database.createLocally {
       description = "Initialization database for PeerTube daemon";
       after = [ "network.target" "postgresql.service" ];
-      wantedBy = [ "multi-user.target" ];
+      requires = [ "postgresql.service" ];
 
       script = let
         psqlSetupCommands = pkgs.writeText "peertube-init.sql" ''
@@ -399,7 +403,9 @@ in {
     systemd.services.peertube = {
       description = "PeerTube daemon";
       after = [ "network.target" ]
-        ++ lib.optionals cfg.redis.createLocally [ "redis.service" ]
+        ++ lib.optional cfg.redis.createLocally "redis-peertube.service"
+        ++ lib.optionals cfg.database.createLocally [ "postgresql.service" "peertube-init-db.service" ];
+      requires = lib.optional cfg.redis.createLocally "redis-peertube.service"
         ++ lib.optionals cfg.database.createLocally [ "postgresql.service" "peertube-init-db.service" ];
       wantedBy = [ "multi-user.target" ];
 
@@ -487,6 +493,10 @@ in {
           extraConfig = ''
             client_max_body_size                        12G;
             add_header X-File-Maximum-Size              8G always;
+          '' + lib.optionalString cfg.enableWebHttps ''
+            add_header Strict-Transport-Security        'max-age=63072000; includeSubDomains';
+          '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
+            add_header Alt-Svc                          'h3=":443"; ma=86400';
           '';
         };
 
@@ -497,6 +507,10 @@ in {
           extraConfig = ''
             client_max_body_size                        6M;
             add_header X-File-Maximum-Size              4M always;
+          '' + lib.optionalString cfg.enableWebHttps ''
+            add_header Strict-Transport-Security        'max-age=63072000; includeSubDomains';
+          '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
+            add_header Alt-Svc                          'h3=":443"; ma=86400';
           '';
         };
 
@@ -560,6 +574,10 @@ in {
           priority = 1320;
           extraConfig = ''
             add_header Cache-Control                    'public, max-age=604800, immutable';
+          '' + lib.optionalString cfg.enableWebHttps ''
+            add_header Strict-Transport-Security        'max-age=63072000; includeSubDomains';
+          '' + lib.optionalString config.services.nginx.virtualHosts.${cfg.localDomain}.http3 ''
+            add_header Alt-Svc                          'h3=":443"; ma=86400';
           '';
         };
 
@@ -718,6 +736,10 @@ in {
             rewrite ^/static/webseed/(.*)$              /$1 break;
           '';
         };
+
+        extraConfig = lib.optionalString cfg.enableWebHttps ''
+          add_header Strict-Transport-Security          'max-age=63072000; includeSubDomains';
+        '';
       };
     };
 
diff --git a/nixos/tests/adguardhome.nix b/nixos/tests/adguardhome.nix
index 5be69e22e5329..ec1cc1e497b50 100644
--- a/nixos/tests/adguardhome.nix
+++ b/nixos/tests/adguardhome.nix
@@ -2,6 +2,15 @@
   name = "adguardhome";
 
   nodes = {
+    nullConf = { ... }: { services.adguardhome = { enable = true; }; };
+
+    emptyConf = { lib, ... }: {
+      services.adguardhome = {
+        enable = true;
+        settings = {};
+      };
+    };
+
     declarativeConf = { ... }: {
       services.adguardhome = {
         enable = true;
@@ -34,6 +43,13 @@
   };
 
   testScript = ''
+    with subtest("Minimal (settings = null) config test"):
+        nullConf.wait_for_unit("adguardhome.service")
+
+    with subtest("Default config test"):
+        emptyConf.wait_for_unit("adguardhome.service")
+        emptyConf.wait_for_open_port(3000)
+
     with subtest("Declarative config test, DNS will be reachable"):
         declarativeConf.wait_for_unit("adguardhome.service")
         declarativeConf.wait_for_open_port(53)
diff --git a/pkgs/applications/audio/mopidy/ytmusic.nix b/pkgs/applications/audio/mopidy/ytmusic.nix
index dd2692fb9d78f..a66620294dde3 100644
--- a/pkgs/applications/audio/mopidy/ytmusic.nix
+++ b/pkgs/applications/audio/mopidy/ytmusic.nix
@@ -1,19 +1,35 @@
-{ lib, python3Packages, mopidy }:
+{ lib
+, python3
+, mopidy
+}:
 
-python3Packages.buildPythonApplication rec {
+let
+  python = python3.override {
+    packageOverrides = self: super: {
+      ytmusicapi = super.ytmusicapi.overridePythonAttrs (old: rec {
+        version = "0.22.0";
+        format = "setuptools";
+        src = old.src.override {
+          inherit version;
+          hash = "sha256-CZ4uoW4UHn5C+MckQXysTdydaApn99b0UCnF5RPb7DI=";
+        };
+      });
+    };
+  };
+in python.pkgs.buildPythonApplication rec {
   pname = "mopidy-ytmusic";
   version = "0.3.7";
 
-  src = python3Packages.fetchPypi {
+  src = python.pkgs.fetchPypi {
     inherit version;
     pname = "Mopidy-YTMusic";
     sha256 = "0gqjvi3nfzkqvbdhihzai241p1h5p037bj2475cc93xwzyyqxcrq";
   };
 
   propagatedBuildInputs = [
-    mopidy
-    python3Packages.ytmusicapi
-    python3Packages.pytube
+    (mopidy.override { pythonPackages = python.pkgs; })
+    python.pkgs.ytmusicapi
+    python.pkgs.pytube
   ];
 
   pythonImportsCheck = [ "mopidy_ytmusic" ];
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index 2b0ff3b6949ee..9b41b1d8ce686 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -329,12 +329,12 @@ final: prev:
 
   SpaceCamp = buildVimPluginFrom2Nix {
     pname = "SpaceCamp";
-    version = "2022-07-22";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "jaredgorski";
       repo = "SpaceCamp";
-      rev = "2678fca10e731f367253f937db5f8b42de674f4f";
-      sha256 = "1rhgjxrsjy9kg1740myyfh9n6pllm2nzxm3vgm4yxr6n6q74cy6n";
+      rev = "8ff0ed105d1403a60e1f79150b8b645a3465b3a0";
+      sha256 = "06bddfpmnabhw7q8q459qa55gh3x7xqzb0lq7qpq1i4kg6qsc7ck";
     };
     meta.homepage = "https://github.com/jaredgorski/SpaceCamp/";
   };
@@ -345,8 +345,8 @@ final: prev:
     src = fetchFromGitHub {
       owner = "SpaceVim";
       repo = "SpaceVim";
-      rev = "885bc3863e16ec542ce6e17172f0ca05059f61ab";
-      sha256 = "12bws3vk8ljzvwmxw8pckx4cmys37jsch0hfpjlkfdc5b23p17y8";
+      rev = "ead0478037b08da5adc6bdaff61de85cbfd93d60";
+      sha256 = "0qrj65ij1mxpk7m9j2qpi5h991al6jypcy5xzszi1yzm64ddcvi7";
     };
     meta.homepage = "https://github.com/SpaceVim/SpaceVim/";
   };
@@ -703,12 +703,12 @@ final: prev:
 
   aurora = buildVimPluginFrom2Nix {
     pname = "aurora";
-    version = "2022-10-26";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "aurora";
-      rev = "4a5a082e7ee778f3a5bc7cbde56bdc04ae56d858";
-      sha256 = "109hlng3xwxvq704wilik3z3cpr7asgiwyvxp4h7dqnar3wyp644";
+      rev = "87ecb98982f11bb62a61a2ed4d46676c72918a4d";
+      sha256 = "147yd7v21y8b59wj89zc103q1lp8dzmkyciby2nn8qb1kzvwvh0g";
     };
     meta.homepage = "https://github.com/ray-x/aurora/";
   };
@@ -799,16 +799,28 @@ final: prev:
 
   barbar-nvim = buildVimPluginFrom2Nix {
     pname = "barbar.nvim";
-    version = "2022-10-26";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "eecabfedc9429f6184feb3b6655bc45a4ed36a7e";
-      sha256 = "0b1gnbaqb67q876hqnqv1l54xdyv76dzn7hr7drgq33nrmyxcx58";
+      rev = "47d2d3f78e3fd011202bb2f68129ca94b42c354b";
+      sha256 = "08ds5zmk4hdb6872gcwv431r5f057m6nm6amrcqmjmbqaqcwv0n2";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
 
+  barbecue-nvim = buildVimPluginFrom2Nix {
+    pname = "barbecue.nvim";
+    version = "2022-11-13";
+    src = fetchFromGitHub {
+      owner = "utilyre";
+      repo = "barbecue.nvim";
+      rev = "7f14b47d8ebb5135724ccb7041f5ce43ec6dc839";
+      sha256 = "0n61764k2lqr59gldqchzhrbh8rgyjbfijfdpxsfp4x1aps35zks";
+    };
+    meta.homepage = "https://github.com/utilyre/barbecue.nvim/";
+  };
+
   base16-vim = buildVimPluginFrom2Nix {
     pname = "base16-vim";
     version = "2022-09-20";
@@ -1267,12 +1279,12 @@ final: prev:
 
   cmp-fuzzy-buffer = buildVimPluginFrom2Nix {
     pname = "cmp-fuzzy-buffer";
-    version = "2022-08-30";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "cmp-fuzzy-buffer";
-      rev = "4758be3e346499bec0c7524dc3ebcc4cd60a7036";
-      sha256 = "0kcizsfm9gnpygf3bj520qbgcfag7rx3nxsc4xc7pnlgzm3cv1d2";
+      rev = "7fdc50bedc9fd0f3bc10a2110285e5715fe2de15";
+      sha256 = "0dj07y6z6p20qw2kc2js8rxwrwb48jrzgxh6jqd2410h4gw4zndf";
     };
     meta.homepage = "https://github.com/tzachar/cmp-fuzzy-buffer/";
   };
@@ -1363,12 +1375,12 @@ final: prev:
 
   cmp-nvim-lsp = buildVimPluginFrom2Nix {
     pname = "cmp-nvim-lsp";
-    version = "2022-10-29";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-nvim-lsp";
-      rev = "78924d1d677b29b3d1fe429864185341724ee5a2";
-      sha256 = "1gzn4v70wa61yyw9vfxb8m8kkabz0p35nja1l26cfhl71pnkqrka";
+      rev = "91050df7b3eeb91844bd80cde2ec5993fe91adcc";
+      sha256 = "1ka1bank3mkdgpch2c23i0109dvl48145kwfkyb5w1zy0d4m3rgq";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp/";
   };
@@ -2011,24 +2023,24 @@ final: prev:
 
   coq-artifacts = buildVimPluginFrom2Nix {
     pname = "coq.artifacts";
-    version = "2022-11-14";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq.artifacts";
-      rev = "8e055719b1fbf7769eadc6634c54679d1733d727";
-      sha256 = "0wjh4hbinl1ia8bljgj9qwr43phvajngz3ra4my6gmdpsbfhrrfb";
+      rev = "b85f88e9383791cd172468cdf2f2453e04e31e7e";
+      sha256 = "1160g2z9pgbhvzrg160mbvbzzhbil1l7373q5ikjf4a5fpyfvp4n";
     };
     meta.homepage = "https://github.com/ms-jpq/coq.artifacts/";
   };
 
   coq-thirdparty = buildVimPluginFrom2Nix {
     pname = "coq.thirdparty";
-    version = "2022-11-14";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq.thirdparty";
-      rev = "c503ac81e26c44b00307029b8cf6d16c5b41ada4";
-      sha256 = "1rgxk4b7kb5rzfcjdnvh1f8mhxmvdf1zq96am2ifhjj2n86xk0vf";
+      rev = "80169234eba842dde43130fe3c67163865318175";
+      sha256 = "0pbs5qyqrz0g49f92f3sy1l2kz5r9av2v1zwkxqnrlbx5j0cs2r3";
     };
     meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/";
   };
@@ -2047,12 +2059,12 @@ final: prev:
 
   coq_nvim = buildVimPluginFrom2Nix {
     pname = "coq_nvim";
-    version = "2022-11-14";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "0137c3f16077c9b449651f18ec89ef1b7957e809";
-      sha256 = "0srfi4fsrkkjzpivlrf8va2l2j4y4qi24m2w676pnxpyh3vwwasf";
+      rev = "452dbcdebbdbe13e8aba348a44031dee37bba740";
+      sha256 = "0b6knphccqd91mj0wg1851li7c7jb9shp75bqrisgi0y4m4kx2iq";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
@@ -2373,12 +2385,12 @@ final: prev:
 
   deoplete-jedi = buildVimPluginFrom2Nix {
     pname = "deoplete-jedi";
-    version = "2020-12-21";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-jedi";
-      rev = "43058915007d92dc167b84dd5b8ada2d2a057a82";
-      sha256 = "0qh43mwzjsn67id6qs96p9lw1fjsgdgqmks0161hfgvbyixx2b3y";
+      rev = "4a13930764f3fbda1c06d7312d8ce2ff595d3274";
+      sha256 = "0d93vzcizi0k07iwhnrhgp9isydpl1lbik2afnbqa6660m619a2n";
     };
     meta.homepage = "https://github.com/deoplete-plugins/deoplete-jedi/";
   };
@@ -2783,12 +2795,12 @@ final: prev:
 
   fcitx-vim = buildVimPluginFrom2Nix {
     pname = "fcitx.vim";
-    version = "2022-11-09";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "lilydjwg";
       repo = "fcitx.vim";
-      rev = "fe899f6aece54d962cd75686124ce4abc3e67ec2";
-      sha256 = "1nz42r8ybwajncp3c9q8glrsxwi7psmipp4wqgf4v8jnhr4xgrm4";
+      rev = "dc95d0301b61a7db1f1badfe743fb627ea6e06d1";
+      sha256 = "1z6n9ax8mnr9p1j64hrl463kqnaf7gc08975j5n7c77rrz23bd1q";
     };
     meta.homepage = "https://github.com/lilydjwg/fcitx.vim/";
   };
@@ -3012,12 +3024,12 @@ final: prev:
 
   fuzzy-nvim = buildVimPluginFrom2Nix {
     pname = "fuzzy.nvim";
-    version = "2022-02-20";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "tzachar";
       repo = "fuzzy.nvim";
-      rev = "d5fee69b54ef400f0ccedf37917c4782e8929424";
-      sha256 = "1xnmwmbrjsfj3v4vk57gcf4l3wl9n8jks50ds8gaawz5bpy54yff";
+      rev = "04b3d969002b5fd2db23a33aaf33a13a533cbdbd";
+      sha256 = "15c3bymh1pm4d5h3ik9m7bz56ggrfzzbmh6sn5bkssmrazqphimk";
     };
     meta.homepage = "https://github.com/tzachar/fuzzy.nvim/";
   };
@@ -3455,12 +3467,12 @@ final: prev:
 
   haskell-tools-nvim = buildVimPluginFrom2Nix {
     pname = "haskell-tools.nvim";
-    version = "2022-11-14";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "haskell-tools.nvim";
-      rev = "a1d3699c14746b15af0520e23f54d2ed474e8be0";
-      sha256 = "0kygk9aidqcbpp2avm9zpfp2d3dcscnz6apy879w8k1lwp1f2dk8";
+      rev = "d7d38a9304205f97cee06d1afdfed5a571c08d1e";
+      sha256 = "18bvwrsxqg78000r96psd6npcl7p1gs2alf3cqfk7i1hi565mdri";
     };
     meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/";
   };
@@ -3575,12 +3587,12 @@ final: prev:
 
   hydra-nvim = buildVimPluginFrom2Nix {
     pname = "hydra.nvim";
-    version = "2022-10-02";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "anuvyklack";
       repo = "hydra.nvim";
-      rev = "fa41a971765d4cce9c39185289f5a10894f66dbd";
-      sha256 = "198bkw3y3253wjamvxxkdjr54nv1bkin148v554b47yv5w156zz1";
+      rev = "aefadd3f61234d5ac51f59057965d44f63126778";
+      sha256 = "1ak0ahda6a5265g823yykz1lr7kc9jxhd84ic6nbqg4xx05haf07";
     };
     meta.homepage = "https://github.com/anuvyklack/hydra.nvim/";
   };
@@ -3599,12 +3611,12 @@ final: prev:
 
   iceberg-vim = buildVimPluginFrom2Nix {
     pname = "iceberg.vim";
-    version = "2022-11-14";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "cocopon";
       repo = "iceberg.vim";
-      rev = "8a69612245fca4c9103a7f700b3ca87b77199f00";
-      sha256 = "1vq6yka7scdv54r02034y93y9144lsqx78jwwryzlmf5qq4pmr00";
+      rev = "a94c2a9110986cbc92d2c059ee65b52b70a4416d";
+      sha256 = "1aiarshkw8cs3kjfdj3v30294i7dj1x7pmv9j83wnssj7i4y6kp5";
     };
     meta.homepage = "https://github.com/cocopon/iceberg.vim/";
   };
@@ -4032,12 +4044,12 @@ final: prev:
 
   legendary-nvim = buildVimPluginFrom2Nix {
     pname = "legendary.nvim";
-    version = "2022-10-30";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "mrjones2014";
       repo = "legendary.nvim";
-      rev = "cf388c44976ca8a9f950d98879b3e98d0f0f4b83";
-      sha256 = "0y0zndgs43aa30pdqjpsf1kyc65vg3klwfqqkkz3dkk75417xi2x";
+      rev = "1050be8b7f11a26048400f3dfe5ce8a0ac6a1901";
+      sha256 = "11b2q8ysf5dybf9bpfrs92syy5k4vxfmbkhy3fdkyhmslvpmd9a4";
     };
     meta.homepage = "https://github.com/mrjones2014/legendary.nvim/";
   };
@@ -4584,12 +4596,12 @@ final: prev:
 
   mini-nvim = buildVimPluginFrom2Nix {
     pname = "mini.nvim";
-    version = "2022-11-11";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "9061584513afd62ad6a08757b0aacf5d656bdf36";
-      sha256 = "0pg2ckvnarmfmvqj57plg8bzflz3qxicbb5p699fhh5ggl2f5713";
+      rev = "dd0b7f85269d544aec6dee3bf48dc44ed284c462";
+      sha256 = "1y28vqp5glvdypv8ghp9x6yg7mhf74711mas16n6abn1vaimmgsp";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
@@ -5112,12 +5124,12 @@ final: prev:
 
   neotest-haskell = buildVimPluginFrom2Nix {
     pname = "neotest-haskell";
-    version = "2022-11-04";
+    version = "2022-11-14";
     src = fetchFromGitHub {
       owner = "MrcJkb";
       repo = "neotest-haskell";
-      rev = "74b10216995909d442ce9ffb966ae3194a6da319";
-      sha256 = "184aw9vdvahcxmnhq787yh8861ai1xsai784zfkgzz1pg4s7rvbk";
+      rev = "920a68bbb4eee1f923136c94ccb29981f6cd77e8";
+      sha256 = "0np8hzqjcq2k42iiwbvql3mzgnha56war8sj79dgyr02mpf43436";
     };
     meta.homepage = "https://github.com/MrcJkb/neotest-haskell/";
   };
@@ -5292,12 +5304,12 @@ final: prev:
 
   noice-nvim = buildVimPluginFrom2Nix {
     pname = "noice.nvim";
-    version = "2022-11-14";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "noice.nvim";
-      rev = "c11d1c6a0dc8ed44704c92d772140f1546b07166";
-      sha256 = "1vysp35x3x8krzpwpx898qrvg1k20zqz5ldj5qrgw66zydsh1i73";
+      rev = "1bce9239531f863620c5cf90c76862cf7d0f0a2b";
+      sha256 = "1mwh001r1dvkflqmpgy9qyyn4fk3yx9slzlnw8pjsjnm12grr935";
     };
     meta.homepage = "https://github.com/folke/noice.nvim/";
   };
@@ -5484,12 +5496,12 @@ final: prev:
 
   nvim-cmp = buildNeovimPluginFrom2Nix {
     pname = "nvim-cmp";
-    version = "2022-11-13";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "aee40113c2ba3ab158955f233ca083ca9958d6f8";
-      sha256 = "0zrld4p8qhiksm4q12zn650mff6vg6xrb6b1dn8yc88ss3zkl5jx";
+      rev = "e820335208a6a46e97202592a3694d8e01b923bc";
+      sha256 = "16k3g5lfjyy04j06rz2jh8vl0pjlpsv9c7lg6vji1sh8dscznv7i";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
@@ -5976,12 +5988,12 @@ final: prev:
 
   nvim-scrollbar = buildVimPluginFrom2Nix {
     pname = "nvim-scrollbar";
-    version = "2022-11-12";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "petertriho";
       repo = "nvim-scrollbar";
-      rev = "02b272d1ef260352896b12a0b0ce7c116b2c8ee3";
-      sha256 = "05wchqijinbdk5yk7k7gifc9x1j06l0wxspa08jdi1qhrv2rlllx";
+      rev = "853538db5098cd07b618bcb0e4db6b729b1e9f9b";
+      sha256 = "1bxyv7rah7ccl8fs0x0r0xk824lnfjs218rlxf4xz0zr5z7gyaqs";
     };
     meta.homepage = "https://github.com/petertriho/nvim-scrollbar/";
   };
@@ -6012,12 +6024,12 @@ final: prev:
 
   nvim-solarized-lua = buildVimPluginFrom2Nix {
     pname = "nvim-solarized-lua";
-    version = "2022-09-23";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "ishan9299";
       repo = "nvim-solarized-lua";
-      rev = "b5a77b50d1136ad4018d176722378506afee9d3a";
-      sha256 = "17is7hsbfbbxir34jwlihv1xdkhihvk85l55pky90b5ijvpki2x7";
+      rev = "f8e4e60a2873b6f1a28c837ab217deb1bfdc723e";
+      sha256 = "1v2bb9ckbhhp6jssbwcxzqlzvwifw5gk0mlrsjkvpvmvq1lgfiiy";
     };
     meta.homepage = "https://github.com/ishan9299/nvim-solarized-lua/";
   };
@@ -6036,12 +6048,12 @@ final: prev:
 
   nvim-surround = buildVimPluginFrom2Nix {
     pname = "nvim-surround";
-    version = "2022-11-10";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "kylechui";
       repo = "nvim-surround";
-      rev = "87839e18d3953eb8cebd23a007183fd6c48863b5";
-      sha256 = "14gcn2dpiyabl59knzzq7dfj03l77dh17mz3r92wca2lxb76smd5";
+      rev = "fa7648e3ed5ec22f32de06d366cf8b80141998f0";
+      sha256 = "1fv8p3nj2ma4j9wsglxjcarsfxhryi6aqmcg9d4fpa6qsdcvlg42";
     };
     meta.homepage = "https://github.com/kylechui/nvim-surround/";
   };
@@ -6060,12 +6072,12 @@ final: prev:
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree.lua";
-    version = "2022-11-13";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-tree.lua";
-      rev = "cf908370fb046641e3aaaa6a6177c1b5d165f186";
-      sha256 = "19pqgd785j0b1nwhplhx53qi62spm699xj9mcjr8mxnb2z0x7hcg";
+      rev = "9d241e5f5889cf8d37c3a8054b3e55157549c283";
+      sha256 = "0laygscfl6rg3xnh0p5m8a4li8lpp46zxyw1smn4mackhzwqhplj";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/";
   };
@@ -6168,12 +6180,12 @@ final: prev:
 
   nvim-web-devicons = buildVimPluginFrom2Nix {
     pname = "nvim-web-devicons";
-    version = "2022-11-12";
+    version = "2022-11-14";
     src = fetchFromGitHub {
       owner = "nvim-tree";
       repo = "nvim-web-devicons";
-      rev = "c873091fe237f22c915905c4c0c3a82cbfce5f4d";
-      sha256 = "0dawjja54p98hyrc6qigpz7993lshn820vdg0v38kdz8q3rsxgq5";
+      rev = "3b1b794bc17b7ac3df3ae471f1c18f18d1a0f958";
+      sha256 = "1yxrv5kc5prfllgfcj2h8c8b74rydwdc8hm2fwbk1d0d9jcs66w7";
     };
     meta.homepage = "https://github.com/nvim-tree/nvim-web-devicons/";
   };
@@ -6312,12 +6324,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPluginFrom2Nix {
     pname = "onedarkpro.nvim";
-    version = "2022-11-13";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "91c2991027cb86038bdb764597054b940eadb3f8";
-      sha256 = "0ibgy5wfbvds5jy7v7005r932fp3nabyf53yrs172p16xkhgr0m9";
+      rev = "5e25c890d35c588f00f186623c885b64d98b86f2";
+      sha256 = "0xarcj9nrryyq3mk0xwk2ffgc1h1hnjgkmzv0p4ca6zkjdf3ri85";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -6372,12 +6384,12 @@ final: prev:
 
   orgmode = buildVimPluginFrom2Nix {
     pname = "orgmode";
-    version = "2022-11-14";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "c81ff93fe0502cef3bb938543ffd44bf8ab33f69";
-      sha256 = "0bfd1yak73766d17c92cnfa0bd186a6rsvzwgl0nzg8sz0zamahw";
+      rev = "68c4f9eaf7f860780cad48d80c7f150333b24795";
+      sha256 = "1dxr4wlbvsb4cfw6lyxs9k6sz1b686af5xv3r898agjafaa96iy3";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
@@ -8144,12 +8156,12 @@ final: prev:
 
   tokyonight-nvim = buildVimPluginFrom2Nix {
     pname = "tokyonight.nvim";
-    version = "2022-11-11";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "folke";
       repo = "tokyonight.nvim";
-      rev = "ec144d94a8dbd9c8b4f5e50d933d67a37f589ed8";
-      sha256 = "1nns9y6k5ig8ihv6xcwcvxs8drnr3mrnnfmsyv5174xr524s00yl";
+      rev = "62b4e89ea1766baa3b5343ca77d62c817f5f48d0";
+      sha256 = "1gqvynnq93dy3dchf9igvgw13ympc8zny0qjp77kq0jj77yq4jg3";
     };
     meta.homepage = "https://github.com/folke/tokyonight.nvim/";
   };
@@ -9253,7 +9265,7 @@ final: prev:
       owner = "flazz";
       repo = "vim-colorschemes";
       rev = "fd8f122cef604330c96a6a6e434682dbdfb878c9";
-      sha256 = "1cg8q7w0vgl73aw1b9zz0zh5vw5d2pm8pm54fhfzva4azg56f416";
+      sha256 = "0kpsf6j20fgblc8vhqn7ymr52v2d1h52vc7rbxmxfwdm80nvv3g5";
     };
     meta.homepage = "https://github.com/flazz/vim-colorschemes/";
   };
@@ -9404,12 +9416,12 @@ final: prev:
 
   vim-dadbod-completion = buildVimPluginFrom2Nix {
     pname = "vim-dadbod-completion";
-    version = "2022-11-08";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-completion";
-      rev = "dd6b4fcf8a46fefd44d135bb036086bfeedcbf5b";
-      sha256 = "0zl1n6qc1ar4yhdb8v63w1vh03sg7pyd9gqgpgjxjxvgyiyrab8z";
+      rev = "01c4f7a66786095c6f00f877c616eaf34c425a06";
+      sha256 = "1kyyr6gsghs1h0654xil27acwrc3815mivdh55xvlq8cs350mbjj";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/";
   };
@@ -9908,12 +9920,12 @@ final: prev:
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2022-11-01";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "01f3e0af928857128eec8d998948b80ed1678c18";
-      sha256 = "1pc40k8r1ps6dhilyfb1zxxlw5y401jcy97nvi573c9011yy4y2a";
+      rev = "362201bce510fce0f694093ddbac9202bedf288b";
+      sha256 = "0cfi4vf9yh3vk26i9cj0wxid515wwwjlypfyzg8lr5rdk3g2ysjb";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -13033,12 +13045,12 @@ final: prev:
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2022-11-10";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "34887074ebbb66584d731a12de418db2c066ba68";
-      sha256 = "0p5frm3a4m3ijvr4zaxc0f6x5wrrax6lsyirinmqybi352a7bfj6";
+      rev = "e5343cf7902021bcea5e9432b1da4c7e1528e37e";
+      sha256 = "0gkq2krqfsk4skd6v5a16d9j75mbaxmh40pyfracrsnlpzp215m1";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -13394,12 +13406,12 @@ final: prev:
 
   catppuccin-nvim = buildVimPluginFrom2Nix {
     pname = "catppuccin-nvim";
-    version = "2022-11-13";
+    version = "2022-11-14";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "05d46987d986bc2c07342c92a89434e0f14e5999";
-      sha256 = "1ap8rkdypf4wczfi8blyxxy78hck7dbk0b7a8wi4lc2lall3kzcg";
+      rev = "0184121f9d6565610ddffa8284512b7643ee723e";
+      sha256 = "1z1h4js4yrq3js6cznsi9smh3ryl55rfhys963gj938rm423axzd";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
@@ -13418,12 +13430,12 @@ final: prev:
 
   chad = buildVimPluginFrom2Nix {
     pname = "chad";
-    version = "2022-11-14";
+    version = "2022-11-15";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "0c9d2ac40071ff572e254d423468a476c63a74cc";
-      sha256 = "0pwbfqrkcwbqml2kn1dg2i5yd0w9vjqajykgv6g7j0dw0r06qvy3";
+      rev = "6c5a1041dd6cff273f7d53ac3be47175548c4d87";
+      sha256 = "1k67d7lv72qi5532l5bfd3hvlczx2yd00q6jvxng5mkq523m2vj3";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
index 69dc58b6339e5..74991bc5c71f0 100644
--- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix
@@ -1,6 +1,6 @@
 # generated by pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py
 
-{ buildGrammar, fetchFromGitHub, fetchFromGitLab, fetchgit, nodejs, tree-sitter }:
+{ buildGrammar, fetchFromGitHub, fetchFromGitLab, fetchgit }:
 
 {
   agda = buildGrammar {
@@ -169,11 +169,10 @@
     source = fetchFromGitHub {
       owner = "CyberShadow";
       repo = "tree-sitter-d";
-      nativeBuildInputs = [ nodejs tree-sitter ];
-      postFetch = "pushd $out && tree-sitter generate && popd";
       rev = "c2fbf21bd3aa45495fe13247e040ad5815250032";
-      hash = "sha256-JOCS72Ux1FMzf6kBVO7aqHNwJ0s3xkhzIFFV9GjJVOs=";
+      hash = "sha256-1aW3nLZ5MbsOEiJ9PH6N/bBUlRihosWa4OWRcAmT3kc=";
     };
+    generate = true;
   };
   dart = buildGrammar {
     language = "dart";
@@ -191,11 +190,10 @@
     source = fetchFromGitHub {
       owner = "joelspadin";
       repo = "tree-sitter-devicetree";
-      nativeBuildInputs = [ nodejs tree-sitter ];
-      postFetch = "pushd $out && tree-sitter generate && popd";
       rev = "ea30a05d0f0446a96d8b096ad11828ad4f8ad849";
-      hash = "sha256-AZ0MAGVfeVhRHEbiqQrDpKzZsb9AMHBXC9uOJVla2fk=";
+      hash = "sha256-ZiUMIsjVMxpchxmJQ3g2yXIn+/kAWPwTzMzx3IlW93o=";
     };
+    generate = true;
   };
   diff = buildGrammar {
     language = "diff";
@@ -373,11 +371,10 @@
     source = fetchFromGitHub {
       owner = "shunsambongi";
       repo = "tree-sitter-gitignore";
-      nativeBuildInputs = [ nodejs tree-sitter ];
-      postFetch = "pushd $out && tree-sitter generate && popd";
       rev = "f4685bf11ac466dd278449bcfe5fd014e94aa504";
-      hash = "sha256-Jv/DMHq5wE9avZgaVg8dSgoDgzl50u0TEj8pITQ3iBc=";
+      hash = "sha256-MjoY1tlVZgN6JqoTjhhg0zSdHzc8yplMr8824sfIKp8=";
     };
+    generate = true;
   };
   gleam = buildGrammar {
     language = "gleam";
@@ -425,11 +422,10 @@
     source = fetchFromGitHub {
       owner = "PrestonKnopp";
       repo = "tree-sitter-godot-resource";
-      nativeBuildInputs = [ nodejs tree-sitter ];
-      postFetch = "pushd $out && tree-sitter generate && popd";
       rev = "b6ef0768711086a86b3297056f9ffb5cc1d77b4a";
-      hash = "sha256-u3YcGCtFV0Kz6+604XJQOXiqncgU8LBVKROOiVMZrC0=";
+      hash = "sha256-ws/8nL+HOoPb6Hcdh4pihjPoRw90R1fy7MB0V9Lb9ik=";
     };
+    generate = true;
   };
   gomod = buildGrammar {
     language = "gomod";
@@ -831,11 +827,10 @@
     source = fetchFromGitHub {
       owner = "atom-ocaml";
       repo = "tree-sitter-ocamllex";
-      nativeBuildInputs = [ nodejs tree-sitter ];
-      postFetch = "pushd $out && tree-sitter generate && popd";
       rev = "ac1d5957e719d49bd6acd27439b79843e4daf8ed";
-      hash = "sha256-KxQiNJyS1Rbtc4Rl+ROktuVazdtjDduWdkrQ+NzT9NQ=";
+      hash = "sha256-XRxAnl+9F6AYPyd6BGNQOo+KjRs2el78ziyo7NeD1IE=";
     };
+    generate = true;
   };
   org = buildGrammar {
     language = "org";
@@ -1163,11 +1158,10 @@
     source = fetchFromGitHub {
       owner = "alex-pinkus";
       repo = "tree-sitter-swift";
-      nativeBuildInputs = [ nodejs tree-sitter ];
-      postFetch = "pushd $out && tree-sitter generate && popd";
       rev = "25f8de356e3c33099ed691bd3b8b5c0fe3a11e15";
-      hash = "sha256-KCmEE5O7EAA0uUcYkM/FpeEIn9tOqrJosSpYsBvivOk=";
+      hash = "sha256-x9m5QFQY33NWdkq0lkWiskfKxqRPz5ePSbVUDY7IBLU=";
     };
+    generate = true;
   };
   sxhkdrc = buildGrammar {
     language = "sxhkdrc";
@@ -1185,11 +1179,10 @@
     source = fetchFromGitHub {
       owner = "euclidianAce";
       repo = "tree-sitter-teal";
-      nativeBuildInputs = [ nodejs tree-sitter ];
-      postFetch = "pushd $out && tree-sitter generate && popd";
       rev = "1ae8c68e90523b26b93af56feb7868fe4214e2b2";
-      hash = "sha256-8FqXrsgOI/cVezgVsQqPLlTa4Qnzmbuelo0XsI48fV0=";
+      hash = "sha256-IGSZurROJLOp1pRPLowHGO1Pu/ehieLKWgI+RCE7wLc=";
     };
+    generate = true;
   };
   tiger = buildGrammar {
     language = "tiger";
diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py b/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py
index dd88d74e8f17a..d23e9b39cf15e 100755
--- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py
+++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py
@@ -75,19 +75,6 @@ def generate_grammar(item):
             generated += f"""fetchgit {{
       url = "{url}";"""
 
-    if info.get("requires_generate_from_grammar"):
-        cmd += [
-            "--arg",
-            "nativeBuildInputs",
-            "[ nodejs tree-sitter ]",
-            "--postFetch",
-            "pushd $out && tree-sitter generate && popd",
-        ]
-
-        generated += """
-      nativeBuildInputs = [ nodejs tree-sitter ];
-      postFetch = "pushd $out && tree-sitter generate && popd";"""
-
     hash = subprocess.check_output(cmd, text=True).strip()
 
     generated += f"""
@@ -100,6 +87,10 @@ def generate_grammar(item):
         generated += f"""
     location = "{location}";"""
 
+    if info.get("requires_generate_from_grammar"):
+        generated += """
+    generate = true;"""
+
     generated += """
   };
 """
@@ -109,7 +100,7 @@ def generate_grammar(item):
 
 generated_file = """# generated by pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py
 
-{ buildGrammar, fetchFromGitHub, fetchFromGitLab, fetchgit, nodejs, tree-sitter }:
+{ buildGrammar, fetchFromGitHub, fetchFromGitLab, fetchgit }:
 
 {
 """
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 1bda4248de688..2005eec17af69 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -114,6 +114,16 @@
 
 self: super: {
 
+  barbecue-nvim = super.vimshell-vim.overrideAttrs (old: {
+    dependencies = with self; [ nvim-lspconfig nvim-navic nvim-web-devicons ];
+    meta = {
+      description = "A VS Code like winbar for Neovim";
+      homepage = "https://github.com/utilyre/barbecue.nvim";
+      license = lib.licenses.mit;
+      maintainers = with lib.maintainers; [ lightquantum ];
+    };
+  });
+
   clang_complete = super.clang_complete.overrideAttrs (old: {
     # In addition to the arguments you pass to your compiler, you also need to
     # specify the path of the C++ std header (if you are using C++).
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index da0f490e4fa21..f59b501e75058 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -66,6 +66,7 @@ https://github.com/vim-scripts/autoload_cscope.vim/,,
 https://github.com/rafi/awesome-vim-colorschemes/,,
 https://github.com/ayu-theme/ayu-vim/,,
 https://github.com/romgrk/barbar.nvim/,,
+https://github.com/utilyre/barbecue.nvim/,,
 https://github.com/chriskempson/base16-vim/,,
 https://github.com/vim-scripts/bats.vim/,,
 https://github.com/rbgrouleff/bclose.vim/,,
diff --git a/pkgs/applications/misc/nut/default.nix b/pkgs/applications/misc/nut/default.nix
index e0e196ac14325..4a3025cec55c4 100644
--- a/pkgs/applications/misc/nut/default.nix
+++ b/pkgs/applications/misc/nut/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, neon, libusb-compat-0_1, openssl, udev, avahi, freeipmi
+{ lib, stdenv, fetchurl, substituteAll, pkg-config, neon, libusb-compat-0_1, openssl, udev, avahi, freeipmi
 , libtool, makeWrapper, autoreconfHook, fetchpatch
 }:
 
@@ -17,6 +17,13 @@ stdenv.mkDerivation rec {
       url = "https://github.com/networkupstools/nut/commit/612c05efb3c3b243da603a3a050993281888b6e3.patch";
       sha256 = "0jdbii1z5sqyv24286j5px65j7b3gp8zk3ahbph83pig6g46m3hs";
     })
+    (substituteAll {
+      src = ./hardcode-paths.patch;
+      avahi = "${avahi}/lib";
+      freeipmi = "${freeipmi}/lib";
+      libusb = "${libusb-compat-0_1}/lib";
+      neon = "${neon}/lib";
+    })
   ];
 
   buildInputs = [ neon libusb-compat-0_1 openssl udev avahi freeipmi ];
@@ -38,11 +45,6 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = [ "-std=c++14" ];
 
-  postInstall = ''
-    wrapProgram $out/bin/nut-scanner --prefix LD_LIBRARY_PATH : \
-      "$out/lib:${neon}/lib:${libusb-compat-0_1.out}/lib:${avahi}/lib:${freeipmi}/lib"
-  '';
-
   meta = with lib; {
     description = "Network UPS Tools";
     longDescription = ''
diff --git a/pkgs/applications/misc/nut/hardcode-paths.patch b/pkgs/applications/misc/nut/hardcode-paths.patch
new file mode 100644
index 0000000000000..db6d68471ce5d
--- /dev/null
+++ b/pkgs/applications/misc/nut/hardcode-paths.patch
@@ -0,0 +1,13 @@
+--- a/tools/nut-scanner/nutscan-init.c
++++ b/tools/nut-scanner/nutscan-init.c
+@@ -44,6 +44,10 @@ int nutscan_load_upsclient_library(const char *libname_path);
+ 
+ /* FIXME: would be good to get more from /etc/ld.so.conf[.d] */
+ char * search_paths[] = {
++	"@avahi@",
++	"@freeipmi@",
++	"@libusb@",
++	"@neon@",
+ 	LIBDIR,
+ 	"/usr/lib64",
+ 	"/lib64",
diff --git a/pkgs/applications/misc/ulauncher/default.nix b/pkgs/applications/misc/ulauncher/default.nix
index 5890ec59acfc7..c4b838beed99a 100644
--- a/pkgs/applications/misc/ulauncher/default.nix
+++ b/pkgs/applications/misc/ulauncher/default.nix
@@ -16,15 +16,16 @@
 , wmctrl
 , xvfb-run
 , librsvg
+, libX11
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "ulauncher";
-  version = "5.12.1";
+  version = "5.15.0";
 
   src = fetchurl {
     url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
-    sha256 = "sha256-Fd3IOCEeXGV8zGd/8SzrWRsSsZRVePnsDaX8WrBrCOQ=";
+    sha256 = "sha256-1Qo6ffMtVRtZDPCHvHEl7T0dPdDUxP4TP2hkSVSdQpo";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -36,7 +37,6 @@ python3Packages.buildPythonApplication rec {
   ];
 
   buildInputs = [
-    gdk-pixbuf
     glib
     gnome.adwaita-icon-theme
     gtk3
@@ -71,7 +71,6 @@ python3Packages.buildPythonApplication rec {
 
   patches = [
     ./fix-path.patch
-    ./0001-Adjust-get_data_path-for-NixOS.patch
     ./fix-extensions.patch
   ];
 
@@ -108,6 +107,8 @@ python3Packages.buildPythonApplication rec {
     makeWrapperArgs+=(
      "''${gappsWrapperArgs[@]}"
      --prefix PATH : "${lib.makeBinPath [ wmctrl ]}"
+     --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ libX11 ]}"
+     --prefix WEBKIT_DISABLE_COMPOSITING_MODE : "1"
     )
   '';
 
diff --git a/pkgs/applications/misc/ulauncher/fix-path.patch b/pkgs/applications/misc/ulauncher/fix-path.patch
index 2936df65194ef..bb5b8e38d3312 100644
--- a/pkgs/applications/misc/ulauncher/fix-path.patch
+++ b/pkgs/applications/misc/ulauncher/fix-path.patch
@@ -2,12 +2,11 @@ diff --git a/setup.py b/setup.py
 index 3616104..e9bbfda 100755
 --- a/setup.py
 +++ b/setup.py
-@@ -112,7 +112,7 @@ class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto):
-         DistUtilsExtra.auto.install_auto.run(self)
- 
-         target_data = '/' + os.path.relpath(self.install_data, self.root) + '/'
+@@ -94,7 +94,7 @@
+         # Root is undefined if not installing into an alternate root
+         root = self.root or "/"
+         target_data = '/' + os.path.relpath(self.install_data, root) + '/'
 -        target_pkgdata = target_data + 'share/ulauncher/'
 +        target_pkgdata = '@out@/share/ulauncher/'
          target_scripts = '/' + os.path.relpath(self.install_scripts,
-                                                self.root) + '/'
- 
+                                                root) + '/'
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index bac5d06d3e314..1740f366f2e48 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -48,13 +48,13 @@
     "version": "3.0.0"
   },
   "alicloud": {
-    "hash": "sha256-2ClWPe4sTt6rW9AamDH8td/W5/yDdD1qR4V1pzJm/0I=",
+    "hash": "sha256-rscu2gCvf/8MJBx1coUmne+8DO8b6RFyfMAwhTUPU+w=",
     "owner": "aliyun",
     "provider-source-address": "registry.terraform.io/aliyun/alicloud",
     "repo": "terraform-provider-alicloud",
-    "rev": "v1.191.0",
+    "rev": "v1.192.0",
     "vendorHash": null,
-    "version": "1.191.0"
+    "version": "1.192.0"
   },
   "ansible": {
     "hash": "sha256-3nha5V4rNgVzgqliebmbC5e12Lj/zlCsyyiIVFlmUrY=",
@@ -148,13 +148,14 @@
     "version": "1.0.0"
   },
   "baiducloud": {
-    "hash": "sha256-O2DU47kabPleWr+HodOx+Canp1bFypAZ3UMJnC2mzqQ=",
+    "deleteVendor": true,
+    "hash": "sha256-0L/T12jeSkdZDJknVu5JffyaniZ1RVWgMpPu3qKNmWU=",
     "owner": "baidubce",
     "provider-source-address": "registry.terraform.io/baidubce/baiducloud",
     "repo": "terraform-provider-baiducloud",
-    "rev": "v1.18.0",
-    "vendorHash": null,
-    "version": "1.18.0"
+    "rev": "v1.18.2",
+    "vendorHash": "sha256-ya2FpsLQMIu8zWYObpyPgBHVkHoNKzHgdMxukbtsje4=",
+    "version": "1.18.2"
   },
   "bigip": {
     "hash": "sha256-erJeg7KF3QUi85ueOQTrab2woIC1nkMXRIj/pFm0DGY=",
@@ -221,13 +222,13 @@
     "version": "1.20.0"
   },
   "cloudflare": {
-    "hash": "sha256-DqGHPD1CnkIkABB0sB90zE/mVxo0aXQwu4Et7apuM1A=",
+    "hash": "sha256-a0zJ1n4nKHEyjqJeey5MxPhqJU8Bq9a+hqLOCEdTfEE=",
     "owner": "cloudflare",
     "provider-source-address": "registry.terraform.io/cloudflare/cloudflare",
     "repo": "terraform-provider-cloudflare",
-    "rev": "v3.27.0",
-    "vendorHash": "sha256-tpOyqFpO1jMEfXkXgodGEnFVGMqeAqsU5oou60lqcUE=",
-    "version": "3.27.0"
+    "rev": "v3.28.0",
+    "vendorHash": "sha256-Jvaud6rkaNMZZ/L/pb8JKGaAYw1MieGq7aU4Abe2VJA=",
+    "version": "3.28.0"
   },
   "cloudfoundry": {
     "hash": "sha256-VfGB0NkT36oYT5F1fh1N/2rlZdfhk+K76AXNh0NkO50=",
@@ -777,13 +778,13 @@
     "version": "0.6.12"
   },
   "newrelic": {
-    "hash": "sha256-TZM7MRdc3Fok2e8FR04ccC19rd1OXvrRnm6yQRRhXJU=",
+    "hash": "sha256-d5JRqxMmG7fku8+C8e700nfghz2wbL0n1TrOZb1hkpY=",
     "owner": "newrelic",
     "provider-source-address": "registry.terraform.io/newrelic/newrelic",
     "repo": "terraform-provider-newrelic",
-    "rev": "v3.7.0",
+    "rev": "v3.7.1",
     "vendorHash": "sha256-gKPopfkEx1YRxcsO8W2+2EqKJfYbJ/pJgpydc1YScDA=",
-    "version": "3.7.0"
+    "version": "3.7.1"
   },
   "nomad": {
     "hash": "sha256-oHY+jM4JQgLlE1wd+/H9H8H2g0e9ZuxI6OMlz3Izfjg=",
@@ -1111,13 +1112,13 @@
     "version": "0.13.5"
   },
   "tencentcloud": {
-    "hash": "sha256-ZoNmoeeRnZ/CDAfXRyKxgXcXpjzquncbaS5dpjq16Lw=",
+    "hash": "sha256-eTHI5T2RZawwb7PsrnTm5Bglhc28A7pKcX2Lq8flAcY=",
     "owner": "tencentcloudstack",
     "provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
     "repo": "terraform-provider-tencentcloud",
-    "rev": "v1.78.10",
+    "rev": "v1.78.11",
     "vendorHash": null,
-    "version": "1.78.10"
+    "version": "1.78.11"
   },
   "tfe": {
     "hash": "sha256-MDlRwB2iVi/Rv7/UtukI6mIDImz8Gnpm5Qv5R6EDpiU=",
diff --git a/pkgs/data/fonts/linja-pi-pu-lukin/default.nix b/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
new file mode 100644
index 0000000000000..426acd2668d75
--- /dev/null
+++ b/pkgs/data/fonts/linja-pi-pu-lukin/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchurl }:
+
+fetchurl {
+  pname = "linja-pi-pu-lukin";
+  version = "unstable-2021-10-29";
+
+  url = "https://web.archive.org/web/20211029000000/https://jansa-tp.github.io/linja-pi-pu-lukin/PuLukin.otf";
+  hash = "sha256-VPdrMHWpiokFYON4S8zT+pSs4TsB17S8TZRtkjqIqU8=";
+
+  downloadToTemp = true;
+  recursiveHash = true;
+  postFetch = ''
+    install -D $downloadedFile $out/share/fonts/opentype/linja-pi-pu-lukin.otf
+  '';
+
+  meta = with lib; {
+    description = "A sitelen pona font resembling the style found in Toki Pona: The Language of Good (lipu pu), by jan Sa.";
+    homepage = "https://jansa-tp.github.io/linja-pi-pu-lukin/";
+    license = licenses.unfree; # license is unspecified in repository
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/pkgs/data/fonts/sitelen-seli-kiwen/default.nix b/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
new file mode 100644
index 0000000000000..60f5c3e36e763
--- /dev/null
+++ b/pkgs/data/fonts/sitelen-seli-kiwen/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchzip }:
+
+let
+  rev = "69132c99873894746c9710707aaeb2cea2609709";
+in
+fetchzip {
+  pname = "sitelen-seli-kiwen";
+  version = "unstable-2022-06-28";
+
+  url = "https://raw.githubusercontent.com/kreativekorp/sitelen-seli-kiwen/${rev}/sitelenselikiwen.zip";
+  hash = "sha256-63sl/Ha2QAe8pVKCpLNs//DB0kjLdW01u6tVMrGquIU=";
+  stripRoot = false;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/{opentype,truetype}
+    mv $out/*.eot $out/share/fonts/opentype/
+    mv $out/*.ttf $out/share/fonts/truetype/
+  '';
+
+  meta = with lib; {
+    description = "A handwritten sitelen pona font supporting UCSUR";
+    homepage = "https://www.kreativekorp.com/software/fonts/sitelenselikiwen/";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ somasis ];
+  };
+}
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index d89cf6a1268b0..570febd7114a3 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -1,23 +1,37 @@
 { lib
-, stdenv
+, stdenvNoCC
 , fetchFromGitHub
 , gdk-pixbuf
 , gtk-engine-murrine
+, jdupes
 , librsvg
 , gitUpdater
+, colorVariants ? [] # default: all
+, themeVariants ? [] # default: blue
 }:
 
-stdenv.mkDerivation rec {
+let
   pname = "matcha-gtk-theme";
-  version = "2022-06-07";
+
+in
+lib.checkListOfEnum "${pname}: color variants" [ "standard" "light" "dark" ] colorVariants
+lib.checkListOfEnum "${pname}: theme variants" [ "aliz" "azul" "sea" "pueril" "all" ] themeVariants
+
+stdenvNoCC.mkDerivation rec {
+  inherit pname;
+  version = "2022-11-15";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "26xa9EGo2hci08Zw+X/A0Pn0VHxU8yfvRMiRusml+tc=";
+    sha256 = "Rx22O8C7kbYADxqJF8u6kdcQnXNA5aS+NWOnx/X4urY=";
   };
 
+  nativeBuildInputs = [
+    jdupes
+  ];
+
   buildInputs = [
     gdk-pixbuf
     librsvg
@@ -33,11 +47,19 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
+
     mkdir -p $out/share/themes
-    name= ./install.sh --dest $out/share/themes
-    install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
+
+    name= ./install.sh \
+      ${lib.optionalString (colorVariants != []) "--color " + builtins.toString colorVariants} \
+      ${lib.optionalString (themeVariants != []) "--theme " + builtins.toString themeVariants} \
+      --dest $out/share/themes
+
     mkdir -p $out/share/doc/${pname}
     cp -a src/extra/firefox $out/share/doc/${pname}
+
+    jdupes --quiet --link-soft --recurse $out/share
+
     runHook postInstall
   '';
 
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index d90a56af2bb67..404935756ddb4 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calendar";
-  version = "6.1.1";
+  version = "6.1.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "calendar";
     rev = version;
-    sha256 = "sha256-c2c8QNifBDzb0CelB72AIL4G694l6KCSXBjWIHrzZJo=";
+    sha256 = "sha256-psUVgl/7pmmf+8dP8ghBx5C1u4UT9ncXuVYvDJOYeOI=";
   };
 
   patches = [
@@ -40,13 +40,6 @@ stdenv.mkDerivation rec {
       url = "https://github.com/elementary/calendar/commit/62c20e5786accd68b96c423b04e32c043e726cac.patch";
       sha256 = "sha256-xatxoSwAIHiUA03vvBdM8HSW27vhPLvAxEuGK0gLiio=";
     })
-
-    # GridDay: Fix day in month in grid with GLib 2.73.1+
-    # https://github.com/elementary/calendar/pull/763
-    (fetchpatch {
-      url = "https://github.com/elementary/calendar/commit/20b0983c85935bedef065b786ec8bbca55ba7d9e.patch";
-      sha256 = "sha256-Tw9uNqqRAC+vOp7EWzZVeDmZxt3hTGl9UIP21FcunqA=";
-    })
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index e34f0b901daf9..bc91455fe389d 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -28,7 +28,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "6.2.0";
+  version = "6.2.1";
 
   outputs = [ "out" "dev" ];
 
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = "files";
     rev = version;
-    sha256 = "sha256-V1otkc1Og7J/A68j+4MrJzOtAH6PHSfj5fSpjKhhwo4=";
+    sha256 = "sha256-pJFeMG2aGaMkS00fSoRlMR2YSg5YzwqwaQT8G7Gk5S4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 7edbc04e3ede1..218a89a7d5b12 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -31,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-photos";
-  version = "2.7.5";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "photos";
     rev = version;
-    sha256 = "sha256-zM32+bva+QD1Z/0vUD7K0/tnSzo+7GGLjJ1ytr64c0I=";
+    sha256 = "sha256-VhJggQMy1vk21zNA5pR4uAPGCwnIxLUHVO58AZs+h6s=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index d8aa9483abefe..72d06e8a11fbd 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -30,13 +30,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-greeter";
-  version = "6.1.0";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "greeter";
     rev = version;
-    sha256 = "sha256-CY+dPSyQ/ovSdI80uEipDdnWy1KjbZnwpn9sd8HrbPQ=";
+    sha256 = "sha256-6rjZOX9JOTjZwqWVWTtKjGNy8KgWllE9VQZzwhuBAwE=";
   };
 
   patches = [
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index badfec690eb58..ec3edff71cd6f 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-applications-menu";
-  version = "2.10.2";
+  version = "2.11.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "applications-menu";
     rev = version;
-    sha256 = "sha256-xBuMJzIFOueSvNwvXc85AI9NHuMW3bOblNsyuDkIzyk=";
+    sha256 = "sha256-pEBvFN+zYsF8CbB29rTNclwAYhw/Hb0HhLzXtijfI4M=";
   };
 
   patches = [
@@ -80,6 +80,8 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  doCheck = true;
+
   passthru = {
     updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch
index aea828b36336f..29b26c4bdd233 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/fix-paths.patch
@@ -1,8 +1,21 @@
-diff --git a/src/synapse-plugins/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin.vala
-index 886a44cd..a4601da6 100644
---- a/src/synapse-plugins/calculator-plugin.vala
-+++ b/src/synapse-plugins/calculator-plugin.vala
-@@ -50,9 +50,7 @@ namespace Synapse {
+diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
+index 542e7aa..228c6d7 100644
+--- a/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
++++ b/src/synapse-plugins/calculator-plugin/calculator-plugin-backend.vala
+@@ -83,7 +83,7 @@ namespace Synapse {
+                 Pid pid;
+                 int read_fd, write_fd;
+                 /* Must include math library to get non-integer results and to access standard math functions */
+-                string[] argv = {"bc", "-l"};
++                string[] argv = {"@bc@", "-l"};
+ 
+                 Process.spawn_async_with_pipes (
+                     null, argv, null,
+diff --git a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
+index d14f1de..35c8621 100644
+--- a/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
++++ b/src/synapse-plugins/calculator-plugin/calculator-plugin.vala
+@@ -49,9 +49,7 @@ namespace Synapse {
                  _("Calculator"),
                  _("Calculate basic expressions."),
                  "accessories-calculator",
@@ -13,12 +26,17 @@ index 886a44cd..a4601da6 100644
              );
          }
  
-@@ -94,7 +92,7 @@ namespace Synapse {
-                 Pid pid;
-                 int read_fd, write_fd;
-                 /* Must include math library to get non-integer results and to access standard math functions */
--                string[] argv = {"bc", "-l"};
-+                string[] argv = {"@bc@", "-l"};
-                 string? solution = null;
- 
-                 try {
+diff --git a/src/synapse-plugins/converter-plugin/converter-plugin.vala b/src/synapse-plugins/converter-plugin/converter-plugin.vala
+index 8d230cc..ed31927 100644
+--- a/src/synapse-plugins/converter-plugin/converter-plugin.vala
++++ b/src/synapse-plugins/converter-plugin/converter-plugin.vala
+@@ -46,9 +46,7 @@ namespace Synapse {
+                 _("Converter"),
+                 _("Convert between units."),
+                 "accessories-converter",
+-                register_plugin,
+-                Environment.find_program_in_path ("bc") != null,
+-                _("bc is not installed")
++                register_plugin
+             );
+         }
diff --git a/pkgs/desktops/xfce/core/xfce4-settings/default.nix b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
index 6218cfcaea042..bf003fca5a475 100644
--- a/pkgs/desktops/xfce/core/xfce4-settings/default.nix
+++ b/pkgs/desktops/xfce/core/xfce4-settings/default.nix
@@ -5,9 +5,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfce4-settings";
-  version = "4.16.4";
+  version = "4.16.5";
 
-  sha256 = "sha256-w/wnLa3NuOV/2LlDPMCEG3z+k3pW+MPHtqx5L5NdOJs=";
+  sha256 = "sha256-ZVQw/oqN+jCOWj8O+1ldVCvbzY+QcebaQI5oFOdMOew=";
 
   postPatch = ''
     for f in xfsettingsd/pointers.c dialogs/mouse-settings/main.c; do
diff --git a/pkgs/development/ocaml-modules/qcheck/core.nix b/pkgs/development/ocaml-modules/qcheck/core.nix
index 6a2bba1acd2cd..f61cba0639ec2 100644
--- a/pkgs/development/ocaml-modules/qcheck/core.nix
+++ b/pkgs/development/ocaml-modules/qcheck/core.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "qcheck-core";
-  version = "0.19.1";
+  version = "0.20";
 
   minimalOCamlVersion = "4.08";
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner = "c-cube";
     repo = "qcheck";
     rev = "v${version}";
-    sha256 = "sha256-AZ1Ww6CWt3X1bXXcofMe14rTlMTC9hmohcKdZLUKEvE=";
+    sha256 = "sha256-d3gleiaPEDJTbHtieL4oAq1NlA/0NtzdW9SA1sItFeQ=";
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/dill/default.nix b/pkgs/development/python-modules/dill/default.nix
index ee54e80f3a6bf..3caf068a1270d 100644
--- a/pkgs/development/python-modules/dill/default.nix
+++ b/pkgs/development/python-modules/dill/default.nix
@@ -3,6 +3,10 @@
 , fetchFromGitHub
 , python
 , setuptools
+
+# passthru tests
+, apache-beam
+, datasets
 }:
 
 buildPythonPackage rec {
@@ -27,6 +31,10 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
+  passthru.tests = {
+    inherit apache-beam datasets;
+  };
+
   pythonImportsCheck = [ "dill" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/gpiozero/default.nix b/pkgs/development/python-modules/gpiozero/default.nix
index 639c5f0f69b2a..e75938a897073 100644
--- a/pkgs/development/python-modules/gpiozero/default.nix
+++ b/pkgs/development/python-modules/gpiozero/default.nix
@@ -49,6 +49,7 @@ buildPythonPackage rec {
     description = "A simple interface to GPIO devices with Raspberry Pi";
     homepage = "https://github.com/gpiozero/gpiozero";
     license = licenses.bsd3;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ hexa ];
   };
 }
diff --git a/pkgs/development/python-modules/miniaudio/default.nix b/pkgs/development/python-modules/miniaudio/default.nix
index 38f93cb32f515..92c94b574b882 100644
--- a/pkgs/development/python-modules/miniaudio/default.nix
+++ b/pkgs/development/python-modules/miniaudio/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "miniaudio";
-  version = "1.54";
+  version = "1.55";
 
   disabled = pythonOlder "3.6";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "irmen";
     repo = "pyminiaudio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Xy1O9/oeEM0fjuipCFxL2nknH6/bEVGIraByOlQ/CHs=";
+    hash = "sha256-na8pnYIoawICbsVquzlmfYZtIagsVBudFOKJ62jSTGM=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index 6331438a95886..fd5baba48adc1 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -3,20 +3,27 @@
 , fetchPypi
 , pythonOlder
 , requests
+, setuptools
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "0.22.0";
-  format = "setuptools";
+  version = "0.24.0";
+  format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CZ4uoW4UHn5C+MckQXysTdydaApn99b0UCnF5RPb7DI=";
+    hash = "sha256-vbSWgBze3tFLEpHdh3JXij3m5R6iAhTSjrCMaSLZalY=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     requests
   ];
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammar.nix b/pkgs/development/tools/parsing/tree-sitter/grammar.nix
index a4d8d7324f993..0debac64393c1 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammar.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/grammar.nix
@@ -1,4 +1,5 @@
 { stdenv
+, nodejs
 , tree-sitter
 , lib
 }:
@@ -13,35 +14,38 @@
   # source for the language grammar
 , source
 , location ? null
+, generate ? false,
 }:
 
 stdenv.mkDerivation rec {
-
   pname = "${language}-grammar";
   inherit version;
 
-  src = if location == null then source else "${source}/${location}";
-
-  buildInputs = [ tree-sitter ];
+  src = source;
 
-  dontUnpack = true;
-  dontConfigure = true;
+  nativeBuildInputs = lib.optionals generate [ nodejs tree-sitter ];
 
-  CFLAGS = [ "-I${src}/src" "-O2" ];
-  CXXFLAGS = [ "-I${src}/src" "-O2" ];
+  CFLAGS = [ "-Isrc" "-O2" ];
+  CXXFLAGS = [ "-Isrc" "-O2" ];
 
   stripDebugList = [ "parser" ];
 
+  configurePhase = lib.optionalString generate ''
+    tree-sitter generate
+  '' + lib.optionalString (location != null) ''
+    cd ${location}
+  '';
+
   # When both scanner.{c,cc} exist, we should not link both since they may be the same but in
   # different languages. Just randomly prefer C++ if that happens.
   buildPhase = ''
     runHook preBuild
-    if [[ -e "$src/src/scanner.cc" ]]; then
-      $CXX -fPIC -c "$src/src/scanner.cc" -o scanner.o $CXXFLAGS
-    elif [[ -e "$src/src/scanner.c" ]]; then
-      $CC -fPIC -c "$src/src/scanner.c" -o scanner.o $CFLAGS
+    if [[ -e src/scanner.cc ]]; then
+      $CXX -fPIC -c src/scanner.cc -o scanner.o $CXXFLAGS
+    elif [[ -e src/scanner.c ]]; then
+      $CC -fPIC -c src/scanner.c -o scanner.o $CFLAGS
     fi
-    $CC -fPIC -c "$src/src/parser.c" -o parser.o $CFLAGS
+    $CC -fPIC -c src/parser.c -o parser.o $CFLAGS
     $CXX -shared -o parser *.o
     runHook postBuild
   '';
@@ -50,8 +54,8 @@ stdenv.mkDerivation rec {
     runHook preInstall
     mkdir $out
     mv parser $out/
-    if [[ -d "$src/queries" ]]; then
-      cp -r $src/queries $out/
+    if [[ -d queries ]]; then
+      cp -r queries $out
     fi
     runHook postInstall
   '';
diff --git a/pkgs/development/tools/ruff/default.nix b/pkgs/development/tools/ruff/default.nix
index d08f1e63e5d18..d578399b66a31 100644
--- a/pkgs/development/tools/ruff/default.nix
+++ b/pkgs/development/tools/ruff/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ruff";
-  version = "0.0.120";
+  version = "0.0.121";
 
   src = fetchFromGitHub {
     owner = "charliermarsh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7rh0xYwoWRY6D2Us6EB+AI5/PAqWqbWmTYnLk1UjYp8=";
+    sha256 = "sha256-vplpsobc3LFkgJsyXGT0jel8nT6begotEvYGQESiMFI=";
   };
 
-  cargoSha256 = "sha256-6P1c4U70V/dP8U2K0FBf7P4BkQXf9U5AQ0IT+XEWTkw=";
+  cargoSha256 = "sha256-gtITHmB9Qd417yWqKcfidjUjAuVz1GNmbX0aL0Bl7jQ=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreServices
diff --git a/pkgs/os-specific/linux/rtl8723ds/default.nix b/pkgs/os-specific/linux/rtl8723ds/default.nix
new file mode 100644
index 0000000000000..a732d1c5d8e50
--- /dev/null
+++ b/pkgs/os-specific/linux/rtl8723ds/default.nix
@@ -0,0 +1,46 @@
+{ lib, stdenv, fetchFromGitHub, kernel, bc }:
+
+stdenv.mkDerivation {
+  pname = "rtl8723ds";
+  version = "${kernel.version}-unstable-2022-10-20";
+
+  src = fetchFromGitHub {
+    owner = "lwfinger";
+    repo = "rtl8723ds";
+    rev = "912fdb30531bc8c071267a047e7df16feae7a865";
+    sha256 = "sha256-HhoCKrrRg1Q995sekQvzhaiqANeTP8pANItj2vLV+Cw=";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = [ bc ];
+  buildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = [
+    "ARCH=${stdenv.hostPlatform.linuxArch}"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
+  ];
+
+  postPatch = ''
+    substituteInPlace ./Makefile \
+      --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
+      --replace '$(shell uname -r)' "${kernel.modDirVersion}" \
+      --replace "/sbin/depmod" "#" \
+      --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = {
+    description = "Linux driver for RTL8723DS.";
+    homepage = "https://github.com/lwfinger/rtl8723ds";
+    license = lib.licenses.gpl2Only;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ chuangzhu ];
+  };
+}
diff --git a/pkgs/servers/matrix-appservice-discord/default.nix b/pkgs/servers/matrix-appservice-discord/default.nix
index e0ff4c2ac114e..f8563ab57dae6 100644
--- a/pkgs/servers/matrix-appservice-discord/default.nix
+++ b/pkgs/servers/matrix-appservice-discord/default.nix
@@ -1,36 +1,54 @@
-{ lib, mkYarnPackage, fetchFromGitHub, runCommand, makeWrapper, python3, nodejs, removeReferencesTo }:
-
-assert lib.versionAtLeast nodejs.version "12.0.0";
+{ lib
+, mkYarnPackage
+, fetchYarnDeps
+, fetchFromGitHub
+, srcOnly
+, makeWrapper
+, removeReferencesTo
+, python3
+, nodejs
+, matrix-sdk-crypto-nodejs
+}:
 
 let
-  nodeSources = runCommand "node-sources" {} ''
-    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
-    mv node-* $out
-  '';
+  pin = lib.importJSON ./pin.json;
+  nodeSources = srcOnly nodejs;
 
 in mkYarnPackage rec {
   pname = "matrix-appservice-discord";
-
-  # when updating, run `./generate.sh <git release tag>`
-  version = "1.0.0";
+  inherit (pin) version;
 
   src = fetchFromGitHub {
-    owner = "Half-Shot";
+    owner = "matrix-org";
     repo = "matrix-appservice-discord";
     rev = "v${version}";
-    sha256 = "0pca4jxxl4b8irvb1bacsrzjg8m7frq9dnx1knnd2n6ia3f3x545";
+    sha256 = pin.srcSha256;
   };
 
   packageJSON = ./package.json;
-  yarnNix = ./yarn-dependencies.nix;
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    sha256 = pin.yarnSha256;
+  };
 
   pkgConfig = {
+    "@matrix-org/matrix-sdk-crypto-nodejs" = {
+      postInstall = ''
+        # replace with the built package
+        cd ..
+        rm -r matrix-sdk-crypto-nodejs
+        ln -s ${matrix-sdk-crypto-nodejs}/lib/node_modules/@matrix-org/* ./
+      '';
+    };
+
     better-sqlite3 = {
-      buildInputs = [ python3 ];
+      nativeBuildInputs = [ python3 ];
       postInstall = ''
         # build native sqlite bindings
         npm run build-release --offline --nodedir="${nodeSources}"
-        find build -type f -exec ${removeReferencesTo}/bin/remove-references-to -t "${nodeSources}" {} \;
+        find build -type f -exec \
+          ${removeReferencesTo}/bin/remove-references-to \
+          -t "${nodeSources}" {} \;
      '';
     };
   };
@@ -38,14 +56,22 @@ in mkYarnPackage rec {
   nativeBuildInputs = [ makeWrapper ];
 
   buildPhase = ''
+    runHook preBuild
+
     # compile TypeScript sources
     yarn --offline build
+
+    runHook postBuild
   '';
 
   doCheck = true;
   checkPhase = ''
+    runHook preCheck
+
     # the default 2000ms timeout is sometimes too short on our busy builders
     yarn --offline test --timeout 10000
+
+    runHook postCheck
   '';
 
   postInstall = ''
@@ -57,7 +83,8 @@ in mkYarnPackage rec {
 
     # admin tools wrappers
     for toolPath in $OUT_JS_DIR/tools/*; do
-      makeWrapper '${nodejs}/bin/node' "$out/bin/${pname}-$(basename $toolPath .js)" \
+      makeWrapper '${nodejs}/bin/node' \
+        "$out/bin/${pname}-$(basename $toolPath .js)" \
         --add-flags "$toolPath"
     done
   '';
@@ -67,6 +94,7 @@ in mkYarnPackage rec {
 
   passthru = {
     nodeAppDir = "libexec/${pname}/deps/${pname}";
+    updateScript = ./update.sh;
   };
 
   meta = {
diff --git a/pkgs/servers/matrix-appservice-discord/generate.sh b/pkgs/servers/matrix-appservice-discord/generate.sh
deleted file mode 100755
index 582d3a96fba37..0000000000000
--- a/pkgs/servers/matrix-appservice-discord/generate.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../ -i bash -p wget yarn2nix
-
-set -euo pipefail
-
-if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
-  echo "Regenerates the Yarn dependency lock files for the matrix-appservice-discord package."
-  echo "Usage: $0 <git release tag>"
-  exit 1
-fi
-
-SRC_REPO="https://raw.githubusercontent.com/Half-Shot/matrix-appservice-discord/$1"
-
-wget "$SRC_REPO/package.json" -O package.json
-wget "$SRC_REPO/yarn.lock" -O yarn.lock
-yarn2nix --lockfile=yarn.lock > yarn-dependencies.nix
-rm yarn.lock
diff --git a/pkgs/servers/matrix-appservice-discord/package.json b/pkgs/servers/matrix-appservice-discord/package.json
index 2291040fa65e6..f3a2026a208d5 100644
--- a/pkgs/servers/matrix-appservice-discord/package.json
+++ b/pkgs/servers/matrix-appservice-discord/package.json
@@ -1,16 +1,20 @@
 {
   "name": "matrix-appservice-discord",
-  "version": "1.0.0",
+  "version": "3.1.0",
   "description": "A bridge between Matrix and Discord",
   "main": "discordas.js",
+  "engines": {
+    "npm": "please-use-yarn",
+    "node": ">=16 <=18"
+  },
   "scripts": {
     "test": "mocha -r ts-node/register test/config.ts test/test_*.ts test/**/test_*.ts",
-    "lint": "tslint --project ./tsconfig.json -t stylish",
-    "coverage": "nyc mocha -r ts-node/register test/config.ts test/test_*.ts test/**/test_*.ts",
+    "lint": "eslint -c .eslintrc --max-warnings 200 src/**/*.ts test/**/*.ts",
+    "coverage": "tsc && nyc mocha build/test/config.js build/test",
     "build": "tsc",
-    "postinstall": "npm run build",
-    "start": "npm run-script build && node ./build/src/discordas.js -c config.yaml",
-    "debug": "npm run-script build && node --inspect ./build/src/discordas.js -c config.yaml",
+    "postinstall": "yarn build",
+    "start": "yarn build && node ./build/src/discordas.js -c config.yaml",
+    "debug": "yarn build && node --inspect ./build/src/discordas.js -c config.yaml",
     "addbot": "node ./build/tools/addbot.js",
     "adminme": "node ./build/tools/adminme.js",
     "usertool": "node ./build/tools/userClientTools.js",
@@ -36,7 +40,8 @@
   },
   "homepage": "https://github.com/Half-Shot/matrix-appservice-discord#readme",
   "dependencies": {
-    "better-discord.js": "git://github.com/Sorunome/better-discord.js.git#b5a28499899fe2d9e6aa1aa3b3c5d693ae672117",
+    "@mx-puppet/matrix-discord-parser": "0.1.10",
+    "better-discord.js": "github:matrix-org/better-discord.js#5024781db755259e88abe915630b7d5b3ba5f48f",
     "better-sqlite3": "^7.1.0",
     "command-line-args": "^5.1.1",
     "command-line-usage": "^6.1.0",
@@ -44,34 +49,36 @@
     "escape-string-regexp": "^4.0.0",
     "js-yaml": "^3.14.0",
     "marked": "^1.2.2",
-    "matrix-bot-sdk": "0.5.4",
-    "matrix-discord-parser": "0.1.5",
+    "matrix-appservice-bridge": "^5.0.0",
     "mime": "^2.4.6",
-    "node-html-parser": "^1.2.19",
     "p-queue": "^6.4.0",
     "pg-promise": "^10.5.6",
     "prom-client": "^12.0.0",
+    "uuid": "^8.3.1",
     "winston": "^3.2.1",
     "winston-daily-rotate-file": "^4.5.0"
   },
   "devDependencies": {
     "@istanbuljs/nyc-config-typescript": "^1.0.1",
+    "@types/better-sqlite3": "^5.4.1",
     "@types/chai": "^4.2.11",
     "@types/command-line-args": "^5.0.0",
+    "@types/express": "^4.17.9",
     "@types/js-yaml": "^3.12.4",
     "@types/marked": "^1.1.0",
     "@types/mime": "^2.0.2",
     "@types/mocha": "^7.0.2",
-    "@types/node": "^12",
-    "@types/better-sqlite3": "^5.4.1",
+    "@types/node": "^14",
+    "@typescript-eslint/eslint-plugin": "^5.4.0",
+    "@typescript-eslint/parser": "^5.4.0",
     "chai": "^4.2.0",
+    "eslint": "^7.4.0",
     "mocha": "^8.0.1",
     "nyc": "^15.1.0",
     "proxyquire": "^1.7.11",
     "source-map-support": "^0.5.19",
     "ts-node": "^8.10.2",
-    "tslint": "^5.20.1",
-    "typescript": "^3.9.5",
+    "typescript": "^4.2.3",
     "why-is-node-running": "^2.2.0"
   }
 }
diff --git a/pkgs/servers/matrix-appservice-discord/pin.json b/pkgs/servers/matrix-appservice-discord/pin.json
new file mode 100644
index 0000000000000..4f454988f0c64
--- /dev/null
+++ b/pkgs/servers/matrix-appservice-discord/pin.json
@@ -0,0 +1,5 @@
+{
+  "version": "3.1.0",
+  "srcSha256": "gJ093wPP0ZniOP73ZrfZzqWXNowjo/Ire8DwlgHnM1A=",
+  "yarnSha256": "0cm9yprj0ajmrdpap3p2lx3xrrkar6gghlxnj9127ks6p5c1ji3r"
+}
diff --git a/pkgs/servers/matrix-appservice-discord/update.sh b/pkgs/servers/matrix-appservice-discord/update.sh
new file mode 100755
index 0000000000000..4ffdc4b34db3e
--- /dev/null
+++ b/pkgs/servers/matrix-appservice-discord/update.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../ -i bash -p nix curl jq prefetch-yarn-deps nix-prefetch-github
+
+ORG="matrix-org"
+PROJ="matrix-appservice-discord"
+
+if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
+  echo "Regenerates packaging data for $PROJ."
+  echo "Usage: $0 [git release tag]"
+  exit 1
+fi
+
+tag="$1"
+
+set -euo pipefail
+
+if [ -z "$tag" ]; then
+  tag="$(
+    curl "https://api.github.com/repos/$ORG/$PROJ/releases?per_page=1" |
+    jq -r '.[0].tag_name'
+  )"
+fi
+
+src="https://raw.githubusercontent.com/$ORG/$PROJ/$tag"
+src_sha256=$(nix-prefetch-github $ORG $PROJ --rev ${tag} | jq -r .sha256)
+
+tmpdir=$(mktemp -d)
+trap 'rm -rf "$tmpdir"' EXIT
+
+pushd $tmpdir
+curl -O "$src/yarn.lock"
+yarn_sha256=$(prefetch-yarn-deps yarn.lock)
+popd
+
+curl -O "$src/package.json"
+cat > pin.json << EOF
+{
+  "version": "$(echo $tag | grep -P '(\d|\.)+' -o)",
+  "srcSha256": "$src_sha256",
+  "yarnSha256": "$yarn_sha256"
+}
+EOF
diff --git a/pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix b/pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix
deleted file mode 100644
index 1d2246034e36c..0000000000000
--- a/pkgs/servers/matrix-appservice-discord/yarn-dependencies.nix
+++ /dev/null
@@ -1,4317 +0,0 @@
-{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
-  offline_cache = linkFarm "offline" packages;
-  packages = [
-    {
-      name = "_babel_code_frame___code_frame_7.10.4.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_core___core_7.12.3.tgz";
-      path = fetchurl {
-        name = "_babel_core___core_7.12.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.12.3.tgz";
-        sha1 = "1b436884e1e3bff6fb1328dc02b208759de92ad8";
-      };
-    }
-    {
-      name = "_babel_generator___generator_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_generator___generator_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.12.1.tgz";
-        sha1 = "0d70be32bdaa03d7c51c8597dda76e0df1f15468";
-      };
-    }
-    {
-      name = "_babel_helper_function_name___helper_function_name_7.10.4.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_get_function_arity___helper_get_function_arity_7.10.4.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_member_expression_to_functions___helper_member_expression_to_functions_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.1.tgz";
-        sha1 = "fba0f2fcff3fba00e6ecb664bb5e6e26e2d6165c";
-      };
-    }
-    {
-      name = "_babel_helper_module_imports___helper_module_imports_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.1.tgz";
-        sha1 = "1644c01591a15a2f084dd6d092d9430eb1d1216c";
-      };
-    }
-    {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz";
-        sha1 = "7954fec71f5b32c48e4b303b437c34453fd7247c";
-      };
-    }
-    {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.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_replace_supers___helper_replace_supers_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.12.1.tgz";
-        sha1 = "f15c9cc897439281891e11d5ce12562ac0cf3fa9";
-      };
-    }
-    {
-      name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz";
-        sha1 = "32427e5aa61547d38eb1e6eaf5fd1426fdad9136";
-      };
-    }
-    {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.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_validator_identifier___helper_validator_identifier_7.10.4.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_helpers___helpers_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_helpers___helpers_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.12.1.tgz";
-        sha1 = "8a8261c1d438ec18cb890434df4ec768734c1e79";
-      };
-    }
-    {
-      name = "_babel_highlight___highlight_7.10.4.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_parser___parser_7.12.3.tgz";
-      path = fetchurl {
-        name = "_babel_parser___parser_7.12.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.3.tgz";
-        sha1 = "a305415ebe7a6c7023b40b5122a0662d928334cd";
-      };
-    }
-    {
-      name = "_babel_template___template_7.10.4.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_traverse___traverse_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_traverse___traverse_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.12.1.tgz";
-        sha1 = "941395e0c5cc86d5d3e75caa095d3924526f0c1e";
-      };
-    }
-    {
-      name = "_babel_types___types_7.12.1.tgz";
-      path = fetchurl {
-        name = "_babel_types___types_7.12.1.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.12.1.tgz";
-        sha1 = "e109d9ab99a8de735be287ee3d6a9947a190c4ae";
-      };
-    }
-    {
-      name = "_dabh_diagnostics___diagnostics_2.0.2.tgz";
-      path = fetchurl {
-        name = "_dabh_diagnostics___diagnostics_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
-        sha1 = "290d08f7b381b8f94607dc8f471a12c675f9db31";
-      };
-    }
-    {
-      name = "_discordjs_collection___collection_0.1.6.tgz";
-      path = fetchurl {
-        name = "_discordjs_collection___collection_0.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/@discordjs/collection/-/collection-0.1.6.tgz";
-        sha1 = "9e9a7637f4e4e0688fd8b2b5c63133c91607682c";
-      };
-    }
-    {
-      name = "_discordjs_form_data___form_data_3.0.1.tgz";
-      path = fetchurl {
-        name = "_discordjs_form_data___form_data_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@discordjs/form-data/-/form-data-3.0.1.tgz";
-        sha1 = "5c9e6be992e2e57d0dfa0e39979a850225fb4697";
-      };
-    }
-    {
-      name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz";
-      path = fetchurl {
-        name = "_istanbuljs_load_nyc_config___load_nyc_config_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
-        sha1 = "fd3db1d59ecf7cf121e80650bb86712f9b55eced";
-      };
-    }
-    {
-      name = "_istanbuljs_nyc_config_typescript___nyc_config_typescript_1.0.1.tgz";
-      path = fetchurl {
-        name = "_istanbuljs_nyc_config_typescript___nyc_config_typescript_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.1.tgz";
-        sha1 = "55172f5663b3635586add21b14d42ca94a163d58";
-      };
-    }
-    {
-      name = "_istanbuljs_schema___schema_0.1.2.tgz";
-      path = fetchurl {
-        name = "_istanbuljs_schema___schema_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz";
-        sha1 = "26520bf09abe4a5644cd5414e37125a8954241dd";
-      };
-    }
-    {
-      name = "_sindresorhus_is___is_4.0.0.tgz";
-      path = fetchurl {
-        name = "_sindresorhus_is___is_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz";
-        sha1 = "2ff674e9611b45b528896d820d3d7a812de2f0e4";
-      };
-    }
-    {
-      name = "_szmarczak_http_timer___http_timer_4.0.5.tgz";
-      path = fetchurl {
-        name = "_szmarczak_http_timer___http_timer_4.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.5.tgz";
-        sha1 = "bfbd50211e9dfa51ba07da58a14cdfd333205152";
-      };
-    }
-    {
-      name = "_types_better_sqlite3___better_sqlite3_5.4.1.tgz";
-      path = fetchurl {
-        name = "_types_better_sqlite3___better_sqlite3_5.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/better-sqlite3/-/better-sqlite3-5.4.1.tgz";
-        sha1 = "d45600bc19f8f41397263d037ca9b0d05df85e58";
-      };
-    }
-    {
-      name = "_types_body_parser___body_parser_1.19.0.tgz";
-      path = fetchurl {
-        name = "_types_body_parser___body_parser_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.0.tgz";
-        sha1 = "0685b3c47eb3006ffed117cdd55164b61f80538f";
-      };
-    }
-    {
-      name = "_types_cacheable_request___cacheable_request_6.0.1.tgz";
-      path = fetchurl {
-        name = "_types_cacheable_request___cacheable_request_6.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.1.tgz";
-        sha1 = "5d22f3dded1fd3a84c0bbeb5039a7419c2c91976";
-      };
-    }
-    {
-      name = "_types_chai___chai_4.2.14.tgz";
-      path = fetchurl {
-        name = "_types_chai___chai_4.2.14.tgz";
-        url  = "https://registry.yarnpkg.com/@types/chai/-/chai-4.2.14.tgz";
-        sha1 = "44d2dd0b5de6185089375d976b4ec5caf6861193";
-      };
-    }
-    {
-      name = "_types_command_line_args___command_line_args_5.0.0.tgz";
-      path = fetchurl {
-        name = "_types_command_line_args___command_line_args_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/command-line-args/-/command-line-args-5.0.0.tgz";
-        sha1 = "484e704d20dbb8754a8f091eee45cdd22bcff28c";
-      };
-    }
-    {
-      name = "_types_connect___connect_3.4.33.tgz";
-      path = fetchurl {
-        name = "_types_connect___connect_3.4.33.tgz";
-        url  = "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.33.tgz";
-        sha1 = "31610c901eca573b8713c3330abc6e6b9f588546";
-      };
-    }
-    {
-      name = "_types_express_serve_static_core___express_serve_static_core_4.17.13.tgz";
-      path = fetchurl {
-        name = "_types_express_serve_static_core___express_serve_static_core_4.17.13.tgz";
-        url  = "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz";
-        sha1 = "d9af025e925fc8b089be37423b8d1eac781be084";
-      };
-    }
-    {
-      name = "_types_express___express_4.17.8.tgz";
-      path = fetchurl {
-        name = "_types_express___express_4.17.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/express/-/express-4.17.8.tgz";
-        sha1 = "3df4293293317e61c60137d273a2e96cd8d5f27a";
-      };
-    }
-    {
-      name = "_types_http_cache_semantics___http_cache_semantics_4.0.0.tgz";
-      path = fetchurl {
-        name = "_types_http_cache_semantics___http_cache_semantics_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz";
-        sha1 = "9140779736aa2655635ee756e2467d787cfe8a2a";
-      };
-    }
-    {
-      name = "_types_integer___integer_1.0.1.tgz";
-      path = fetchurl {
-        name = "_types_integer___integer_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/integer/-/integer-1.0.1.tgz";
-        sha1 = "025d87e30d97f539fcc6087372af7d3672ffbbe6";
-      };
-    }
-    {
-      name = "_types_js_yaml___js_yaml_3.12.5.tgz";
-      path = fetchurl {
-        name = "_types_js_yaml___js_yaml_3.12.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.5.tgz";
-        sha1 = "136d5e6a57a931e1cce6f9d8126aa98a9c92a6bb";
-      };
-    }
-    {
-      name = "_types_keyv___keyv_3.1.1.tgz";
-      path = fetchurl {
-        name = "_types_keyv___keyv_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.1.tgz";
-        sha1 = "e45a45324fca9dab716ab1230ee249c9fb52cfa7";
-      };
-    }
-    {
-      name = "_types_marked___marked_1.1.0.tgz";
-      path = fetchurl {
-        name = "_types_marked___marked_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/marked/-/marked-1.1.0.tgz";
-        sha1 = "53509b5f127e0c05c19176fcf1d743a41e00ff19";
-      };
-    }
-    {
-      name = "_types_mime___mime_2.0.3.tgz";
-      path = fetchurl {
-        name = "_types_mime___mime_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/mime/-/mime-2.0.3.tgz";
-        sha1 = "c893b73721db73699943bfc3653b1deb7faa4a3a";
-      };
-    }
-    {
-      name = "_types_mocha___mocha_7.0.2.tgz";
-      path = fetchurl {
-        name = "_types_mocha___mocha_7.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/mocha/-/mocha-7.0.2.tgz";
-        sha1 = "b17f16cf933597e10d6d78eae3251e692ce8b0ce";
-      };
-    }
-    {
-      name = "_types_node___node_14.14.6.tgz";
-      path = fetchurl {
-        name = "_types_node___node_14.14.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.14.6.tgz";
-        sha1 = "146d3da57b3c636cc0d1769396ce1cfa8991147f";
-      };
-    }
-    {
-      name = "_types_node___node_12.19.3.tgz";
-      path = fetchurl {
-        name = "_types_node___node_12.19.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-12.19.3.tgz";
-        sha1 = "a6e252973214079155f749e8bef99cc80af182fa";
-      };
-    }
-    {
-      name = "_types_prop_types___prop_types_15.7.3.tgz";
-      path = fetchurl {
-        name = "_types_prop_types___prop_types_15.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz";
-        sha1 = "2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7";
-      };
-    }
-    {
-      name = "_types_qs___qs_6.9.5.tgz";
-      path = fetchurl {
-        name = "_types_qs___qs_6.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.5.tgz";
-        sha1 = "434711bdd49eb5ee69d90c1d67c354a9a8ecb18b";
-      };
-    }
-    {
-      name = "_types_range_parser___range_parser_1.2.3.tgz";
-      path = fetchurl {
-        name = "_types_range_parser___range_parser_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.3.tgz";
-        sha1 = "7ee330ba7caafb98090bece86a5ee44115904c2c";
-      };
-    }
-    {
-      name = "_types_react___react_16.9.55.tgz";
-      path = fetchurl {
-        name = "_types_react___react_16.9.55.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.55.tgz";
-        sha1 = "47078587f5bfe028a23b6b46c7b94ac0d436acff";
-      };
-    }
-    {
-      name = "_types_responselike___responselike_1.0.0.tgz";
-      path = fetchurl {
-        name = "_types_responselike___responselike_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.0.tgz";
-        sha1 = "251f4fe7d154d2bad125abe1b429b23afd262e29";
-      };
-    }
-    {
-      name = "_types_serve_static___serve_static_1.13.6.tgz";
-      path = fetchurl {
-        name = "_types_serve_static___serve_static_1.13.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.6.tgz";
-        sha1 = "866b1b8dec41c36e28c7be40ac725b88be43c5c1";
-      };
-    }
-    {
-      name = "_ungap_promise_all_settled___promise_all_settled_1.1.2.tgz";
-      path = fetchurl {
-        name = "_ungap_promise_all_settled___promise_all_settled_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz";
-        sha1 = "aa58042711d6e3275dd37dc597e5d31e8c290a44";
-      };
-    }
-    {
-      name = "abort_controller___abort_controller_3.0.0.tgz";
-      path = fetchurl {
-        name = "abort_controller___abort_controller_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz";
-        sha1 = "eaf54d53b62bae4138e809ca225c8439a6efb392";
-      };
-    }
-    {
-      name = "accepts___accepts_1.3.7.tgz";
-      path = fetchurl {
-        name = "accepts___accepts_1.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
-        sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
-      };
-    }
-    {
-      name = "aggregate_error___aggregate_error_3.1.0.tgz";
-      path = fetchurl {
-        name = "aggregate_error___aggregate_error_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz";
-        sha1 = "92670ff50f5359bdb7a3e0d40d0ec30c5737687a";
-      };
-    }
-    {
-      name = "ajv___ajv_6.12.6.tgz";
-      path = fetchurl {
-        name = "ajv___ajv_6.12.6.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
-        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
-      };
-    }
-    {
-      name = "ansi_colors___ansi_colors_4.1.1.tgz";
-      path = fetchurl {
-        name = "ansi_colors___ansi_colors_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
-        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
-      };
-    }
-    {
-      name = "ansi_regex___ansi_regex_2.1.1.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
-        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
-      };
-    }
-    {
-      name = "ansi_regex___ansi_regex_3.0.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
-        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
-      };
-    }
-    {
-      name = "ansi_regex___ansi_regex_4.1.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha1 = "8b9f8f08cf1acb843756a839ca8c7e3168c51997";
-      };
-    }
-    {
-      name = "ansi_regex___ansi_regex_5.0.0.tgz";
-      path = fetchurl {
-        name = "ansi_regex___ansi_regex_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
-        sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
-      };
-    }
-    {
-      name = "ansi_styles___ansi_styles_3.2.1.tgz";
-      path = fetchurl {
-        name = "ansi_styles___ansi_styles_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
-        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
-      };
-    }
-    {
-      name = "ansi_styles___ansi_styles_4.3.0.tgz";
-      path = fetchurl {
-        name = "ansi_styles___ansi_styles_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
-        sha1 = "edd803628ae71c04c85ae7a0906edad34b648937";
-      };
-    }
-    {
-      name = "anymatch___anymatch_3.1.1.tgz";
-      path = fetchurl {
-        name = "anymatch___anymatch_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz";
-        sha1 = "c55ecf02185e2469259399310c173ce31233b142";
-      };
-    }
-    {
-      name = "append_transform___append_transform_2.0.0.tgz";
-      path = fetchurl {
-        name = "append_transform___append_transform_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz";
-        sha1 = "99d9d29c7b38391e6f428d28ce136551f0b77e12";
-      };
-    }
-    {
-      name = "aproba___aproba_1.2.0.tgz";
-      path = fetchurl {
-        name = "aproba___aproba_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
-        sha1 = "6802e6264efd18c790a1b0d517f0f2627bf2c94a";
-      };
-    }
-    {
-      name = "archy___archy_1.0.0.tgz";
-      path = fetchurl {
-        name = "archy___archy_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz";
-        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
-      };
-    }
-    {
-      name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
-      path = fetchurl {
-        name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
-        sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
-      };
-    }
-    {
-      name = "arg___arg_4.1.3.tgz";
-      path = fetchurl {
-        name = "arg___arg_4.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz";
-        sha1 = "269fc7ad5b8e42cb63c896d5666017261c144089";
-      };
-    }
-    {
-      name = "argparse___argparse_1.0.10.tgz";
-      path = fetchurl {
-        name = "argparse___argparse_1.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
-        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
-      };
-    }
-    {
-      name = "array_back___array_back_3.1.0.tgz";
-      path = fetchurl {
-        name = "array_back___array_back_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz";
-        sha1 = "b8859d7a508871c9a7b2cf42f99428f65e96bfb0";
-      };
-    }
-    {
-      name = "array_back___array_back_4.0.1.tgz";
-      path = fetchurl {
-        name = "array_back___array_back_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/array-back/-/array-back-4.0.1.tgz";
-        sha1 = "9b80312935a52062e1a233a9c7abeb5481b30e90";
-      };
-    }
-    {
-      name = "array_flatten___array_flatten_1.1.1.tgz";
-      path = fetchurl {
-        name = "array_flatten___array_flatten_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
-        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
-      };
-    }
-    {
-      name = "asn1___asn1_0.2.4.tgz";
-      path = fetchurl {
-        name = "asn1___asn1_0.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
-        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
-      };
-    }
-    {
-      name = "assert_options___assert_options_0.6.2.tgz";
-      path = fetchurl {
-        name = "assert_options___assert_options_0.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/assert-options/-/assert-options-0.6.2.tgz";
-        sha1 = "cf0b27097b61aa1987d63628cbbaea11353f999a";
-      };
-    }
-    {
-      name = "assert_plus___assert_plus_1.0.0.tgz";
-      path = fetchurl {
-        name = "assert_plus___assert_plus_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
-      };
-    }
-    {
-      name = "assertion_error___assertion_error_1.1.0.tgz";
-      path = fetchurl {
-        name = "assertion_error___assertion_error_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz";
-        sha1 = "e60b6b0e8f301bd97e5375215bda406c85118c0b";
-      };
-    }
-    {
-      name = "async___async_3.2.0.tgz";
-      path = fetchurl {
-        name = "async___async_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz";
-        sha1 = "b3a2685c5ebb641d3de02d161002c60fc9f85720";
-      };
-    }
-    {
-      name = "asynckit___asynckit_0.4.0.tgz";
-      path = fetchurl {
-        name = "asynckit___asynckit_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
-        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
-      };
-    }
-    {
-      name = "aws_sign2___aws_sign2_0.7.0.tgz";
-      path = fetchurl {
-        name = "aws_sign2___aws_sign2_0.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
-      };
-    }
-    {
-      name = "aws4___aws4_1.10.1.tgz";
-      path = fetchurl {
-        name = "aws4___aws4_1.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz";
-        sha1 = "e1e82e4f3e999e2cfd61b161280d16a111f86428";
-      };
-    }
-    {
-      name = "balanced_match___balanced_match_1.0.0.tgz";
-      path = fetchurl {
-        name = "balanced_match___balanced_match_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
-      };
-    }
-    {
-      name = "base64_js___base64_js_1.3.1.tgz";
-      path = fetchurl {
-        name = "base64_js___base64_js_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
-        sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
-      };
-    }
-    {
-      name = "basic_auth___basic_auth_2.0.1.tgz";
-      path = fetchurl {
-        name = "basic_auth___basic_auth_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz";
-        sha1 = "b998279bf47ce38344b4f3cf916d4679bbf51e3a";
-      };
-    }
-    {
-      name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-      path = fetchurl {
-        name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
-        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
-      };
-    }
-    {
-    name = "git___github.com_Sorunome_better_discord.js.git";
-    path =
-      let
-        repo = fetchgit {
-          url = "git://github.com/Sorunome/better-discord.js.git";
-          rev = "b5a28499899fe2d9e6aa1aa3b3c5d693ae672117";
-          sha256 = "1iy8as2ax50xqp1bkqb18dspkdjw6qdmvz803xaijp14bwx0shja";
-        };
-      in
-        runCommand "git___github.com_Sorunome_better_discord.js.git" { buildInputs = [gnutar]; } ''
-          # Set u+w because tar-fs can't unpack archives with read-only dirs
-          # https://github.com/mafintosh/tar-fs/issues/79
-          tar cf $out --mode u+w -C ${repo} .
-        '';
-  }
-    {
-      name = "better_sqlite3___better_sqlite3_7.1.1.tgz";
-      path = fetchurl {
-        name = "better_sqlite3___better_sqlite3_7.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-7.1.1.tgz";
-        sha1 = "107457a8b770cfb16be646e347c17b42bc204dd3";
-      };
-    }
-    {
-      name = "binary_extensions___binary_extensions_2.1.0.tgz";
-      path = fetchurl {
-        name = "binary_extensions___binary_extensions_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz";
-        sha1 = "30fa40c9e7fe07dbc895678cd287024dea241dd9";
-      };
-    }
-    {
-      name = "bindings___bindings_1.5.0.tgz";
-      path = fetchurl {
-        name = "bindings___bindings_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
-        sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
-      };
-    }
-    {
-      name = "bintrees___bintrees_1.0.1.tgz";
-      path = fetchurl {
-        name = "bintrees___bintrees_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz";
-        sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524";
-      };
-    }
-    {
-      name = "bl___bl_4.0.3.tgz";
-      path = fetchurl {
-        name = "bl___bl_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
-        sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
-      };
-    }
-    {
-      name = "bluebird___bluebird_3.7.2.tgz";
-      path = fetchurl {
-        name = "bluebird___bluebird_3.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
-        sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
-      };
-    }
-    {
-      name = "body_parser___body_parser_1.19.0.tgz";
-      path = fetchurl {
-        name = "body_parser___body_parser_1.19.0.tgz";
-        url  = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
-        sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
-      };
-    }
-    {
-      name = "brace_expansion___brace_expansion_1.1.11.tgz";
-      path = fetchurl {
-        name = "brace_expansion___brace_expansion_1.1.11.tgz";
-        url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
-      };
-    }
-    {
-      name = "braces___braces_3.0.2.tgz";
-      path = fetchurl {
-        name = "braces___braces_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
-        sha1 = "3454e1a462ee8d599e236df336cd9ea4f8afe107";
-      };
-    }
-    {
-      name = "browser_stdout___browser_stdout_1.3.1.tgz";
-      path = fetchurl {
-        name = "browser_stdout___browser_stdout_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz";
-        sha1 = "baa559ee14ced73452229bad7326467c61fabd60";
-      };
-    }
-    {
-      name = "buffer_from___buffer_from_1.1.1.tgz";
-      path = fetchurl {
-        name = "buffer_from___buffer_from_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
-      };
-    }
-    {
-      name = "buffer_writer___buffer_writer_2.0.0.tgz";
-      path = fetchurl {
-        name = "buffer_writer___buffer_writer_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-writer/-/buffer-writer-2.0.0.tgz";
-        sha1 = "ce7eb81a38f7829db09c873f2fbb792c0c98ec04";
-      };
-    }
-    {
-      name = "buffer___buffer_5.7.0.tgz";
-      path = fetchurl {
-        name = "buffer___buffer_5.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.7.0.tgz";
-        sha1 = "88afbd29fc89fa7b58e82b39206f31f2cf34feed";
-      };
-    }
-    {
-      name = "builtin_modules___builtin_modules_1.1.1.tgz";
-      path = fetchurl {
-        name = "builtin_modules___builtin_modules_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
-        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
-      };
-    }
-    {
-      name = "bytes___bytes_3.1.0.tgz";
-      path = fetchurl {
-        name = "bytes___bytes_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
-        sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
-      };
-    }
-    {
-      name = "cacheable_lookup___cacheable_lookup_5.0.3.tgz";
-      path = fetchurl {
-        name = "cacheable_lookup___cacheable_lookup_5.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz";
-        sha1 = "049fdc59dffdd4fc285e8f4f82936591bd59fec3";
-      };
-    }
-    {
-      name = "cacheable_request___cacheable_request_7.0.1.tgz";
-      path = fetchurl {
-        name = "cacheable_request___cacheable_request_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.1.tgz";
-        sha1 = "062031c2856232782ed694a257fa35da93942a58";
-      };
-    }
-    {
-      name = "caching_transform___caching_transform_4.0.0.tgz";
-      path = fetchurl {
-        name = "caching_transform___caching_transform_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz";
-        sha1 = "00d297a4206d71e2163c39eaffa8157ac0651f0f";
-      };
-    }
-    {
-      name = "camelcase___camelcase_5.3.1.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_5.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz";
-        sha1 = "e3c9b31569e106811df242f715725a1f4c494320";
-      };
-    }
-    {
-      name = "camelcase___camelcase_6.1.0.tgz";
-      path = fetchurl {
-        name = "camelcase___camelcase_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/camelcase/-/camelcase-6.1.0.tgz";
-        sha1 = "27dc176173725fb0adf8a48b647f4d7871944d78";
-      };
-    }
-    {
-      name = "caseless___caseless_0.12.0.tgz";
-      path = fetchurl {
-        name = "caseless___caseless_0.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
-      };
-    }
-    {
-      name = "chai___chai_4.2.0.tgz";
-      path = fetchurl {
-        name = "chai___chai_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/chai/-/chai-4.2.0.tgz";
-        sha1 = "760aa72cf20e3795e84b12877ce0e83737aa29e5";
-      };
-    }
-    {
-      name = "chalk___chalk_2.4.2.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_2.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
-        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
-      };
-    }
-    {
-      name = "chalk___chalk_3.0.0.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
-        sha1 = "3f73c2bf526591f574cc492c51e2456349f844e4";
-      };
-    }
-    {
-      name = "chalk___chalk_4.1.0.tgz";
-      path = fetchurl {
-        name = "chalk___chalk_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
-        sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
-      };
-    }
-    {
-      name = "check_error___check_error_1.0.2.tgz";
-      path = fetchurl {
-        name = "check_error___check_error_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz";
-        sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
-      };
-    }
-    {
-      name = "chokidar___chokidar_3.4.3.tgz";
-      path = fetchurl {
-        name = "chokidar___chokidar_3.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.3.tgz";
-        sha1 = "c1df38231448e45ca4ac588e6c79573ba6a57d5b";
-      };
-    }
-    {
-      name = "chownr___chownr_1.1.4.tgz";
-      path = fetchurl {
-        name = "chownr___chownr_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz";
-        sha1 = "6fc9d7b42d32a583596337666e7d08084da2cc6b";
-      };
-    }
-    {
-      name = "clean_stack___clean_stack_2.2.0.tgz";
-      path = fetchurl {
-        name = "clean_stack___clean_stack_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz";
-        sha1 = "ee8472dbb129e727b31e8a10a427dee9dfe4008b";
-      };
-    }
-    {
-      name = "cliui___cliui_5.0.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz";
-        sha1 = "deefcfdb2e800784aa34f46fa08e06851c7bbbc5";
-      };
-    }
-    {
-      name = "cliui___cliui_6.0.0.tgz";
-      path = fetchurl {
-        name = "cliui___cliui_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz";
-        sha1 = "511d702c0c4e41ca156d7d0e96021f23e13225b1";
-      };
-    }
-    {
-      name = "clone_response___clone_response_1.0.2.tgz";
-      path = fetchurl {
-        name = "clone_response___clone_response_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz";
-        sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b";
-      };
-    }
-    {
-      name = "code_point_at___code_point_at_1.1.0.tgz";
-      path = fetchurl {
-        name = "code_point_at___code_point_at_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
-      };
-    }
-    {
-      name = "color_convert___color_convert_1.9.3.tgz";
-      path = fetchurl {
-        name = "color_convert___color_convert_1.9.3.tgz";
-        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
-        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
-      };
-    }
-    {
-      name = "color_convert___color_convert_2.0.1.tgz";
-      path = fetchurl {
-        name = "color_convert___color_convert_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
-        sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
-      };
-    }
-    {
-      name = "color_name___color_name_1.1.3.tgz";
-      path = fetchurl {
-        name = "color_name___color_name_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
-        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
-      };
-    }
-    {
-      name = "color_name___color_name_1.1.4.tgz";
-      path = fetchurl {
-        name = "color_name___color_name_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
-        sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
-      };
-    }
-    {
-      name = "color_string___color_string_1.5.4.tgz";
-      path = fetchurl {
-        name = "color_string___color_string_1.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz";
-        sha1 = "dd51cd25cfee953d138fe4002372cc3d0e504cb6";
-      };
-    }
-    {
-      name = "color___color_3.0.0.tgz";
-      path = fetchurl {
-        name = "color___color_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/color/-/color-3.0.0.tgz";
-        sha1 = "d920b4328d534a3ac8295d68f7bd4ba6c427be9a";
-      };
-    }
-    {
-      name = "colors___colors_1.4.0.tgz";
-      path = fetchurl {
-        name = "colors___colors_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz";
-        sha1 = "c50491479d4c1bdaed2c9ced32cf7c7dc2360f78";
-      };
-    }
-    {
-      name = "colorspace___colorspace_1.1.2.tgz";
-      path = fetchurl {
-        name = "colorspace___colorspace_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.2.tgz";
-        sha1 = "e0128950d082b86a2168580796a0aa5d6c68d8c5";
-      };
-    }
-    {
-      name = "combined_stream___combined_stream_1.0.8.tgz";
-      path = fetchurl {
-        name = "combined_stream___combined_stream_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
-      };
-    }
-    {
-      name = "command_line_args___command_line_args_5.1.1.tgz";
-      path = fetchurl {
-        name = "command_line_args___command_line_args_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.1.tgz";
-        sha1 = "88e793e5bb3ceb30754a86863f0401ac92fd369a";
-      };
-    }
-    {
-      name = "command_line_usage___command_line_usage_6.1.0.tgz";
-      path = fetchurl {
-        name = "command_line_usage___command_line_usage_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/command-line-usage/-/command-line-usage-6.1.0.tgz";
-        sha1 = "f28376a3da3361ff3d36cfd31c3c22c9a64c7cb6";
-      };
-    }
-    {
-      name = "commander___commander_2.20.3.tgz";
-      path = fetchurl {
-        name = "commander___commander_2.20.3.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
-        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
-      };
-    }
-    {
-      name = "commondir___commondir_1.0.1.tgz";
-      path = fetchurl {
-        name = "commondir___commondir_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz";
-        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
-      };
-    }
-    {
-      name = "concat_map___concat_map_0.0.1.tgz";
-      path = fetchurl {
-        name = "concat_map___concat_map_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
-        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
-      };
-    }
-    {
-      name = "console_control_strings___console_control_strings_1.1.0.tgz";
-      path = fetchurl {
-        name = "console_control_strings___console_control_strings_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
-        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
-      };
-    }
-    {
-      name = "content_disposition___content_disposition_0.5.3.tgz";
-      path = fetchurl {
-        name = "content_disposition___content_disposition_0.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
-      };
-    }
-    {
-      name = "content_type___content_type_1.0.4.tgz";
-      path = fetchurl {
-        name = "content_type___content_type_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
-        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
-      };
-    }
-    {
-      name = "convert_source_map___convert_source_map_1.7.0.tgz";
-      path = fetchurl {
-        name = "convert_source_map___convert_source_map_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz";
-        sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442";
-      };
-    }
-    {
-      name = "cookie_signature___cookie_signature_1.0.6.tgz";
-      path = fetchurl {
-        name = "cookie_signature___cookie_signature_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
-        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
-      };
-    }
-    {
-      name = "cookie___cookie_0.4.0.tgz";
-      path = fetchurl {
-        name = "cookie___cookie_0.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
-        sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
-      };
-    }
-    {
-      name = "core_util_is___core_util_is_1.0.2.tgz";
-      path = fetchurl {
-        name = "core_util_is___core_util_is_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
-      };
-    }
-    {
-      name = "cross_spawn___cross_spawn_7.0.3.tgz";
-      path = fetchurl {
-        name = "cross_spawn___cross_spawn_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
-        sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
-      };
-    }
-    {
-      name = "csstype___csstype_3.0.4.tgz";
-      path = fetchurl {
-        name = "csstype___csstype_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.4.tgz";
-        sha1 = "b156d7be03b84ff425c9a0a4b1e5f4da9c5ca888";
-      };
-    }
-    {
-      name = "dashdash___dashdash_1.14.1.tgz";
-      path = fetchurl {
-        name = "dashdash___dashdash_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
-      };
-    }
-    {
-      name = "debug___debug_2.6.9.tgz";
-      path = fetchurl {
-        name = "debug___debug_2.6.9.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
-        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
-      };
-    }
-    {
-      name = "debug___debug_4.2.0.tgz";
-      path = fetchurl {
-        name = "debug___debug_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
-        sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
-      };
-    }
-    {
-      name = "decamelize___decamelize_1.2.0.tgz";
-      path = fetchurl {
-        name = "decamelize___decamelize_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz";
-        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
-      };
-    }
-    {
-      name = "decamelize___decamelize_4.0.0.tgz";
-      path = fetchurl {
-        name = "decamelize___decamelize_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz";
-        sha1 = "aa472d7bf660eb15f3494efd531cab7f2a709837";
-      };
-    }
-    {
-      name = "decompress_response___decompress_response_4.2.1.tgz";
-      path = fetchurl {
-        name = "decompress_response___decompress_response_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-4.2.1.tgz";
-        sha1 = "414023cc7a302da25ce2ec82d0d5238ccafd8986";
-      };
-    }
-    {
-      name = "decompress_response___decompress_response_6.0.0.tgz";
-      path = fetchurl {
-        name = "decompress_response___decompress_response_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz";
-        sha1 = "ca387612ddb7e104bd16d85aab00d5ecf09c66fc";
-      };
-    }
-    {
-      name = "deep_eql___deep_eql_3.0.1.tgz";
-      path = fetchurl {
-        name = "deep_eql___deep_eql_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz";
-        sha1 = "dfc9404400ad1c8fe023e7da1df1c147c4b444df";
-      };
-    }
-    {
-      name = "deep_extend___deep_extend_0.6.0.tgz";
-      path = fetchurl {
-        name = "deep_extend___deep_extend_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz";
-        sha1 = "c4fa7c95404a17a9c3e8ca7e1537312b736330ac";
-      };
-    }
-    {
-      name = "default_require_extensions___default_require_extensions_3.0.0.tgz";
-      path = fetchurl {
-        name = "default_require_extensions___default_require_extensions_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.0.tgz";
-        sha1 = "e03f93aac9b2b6443fc52e5e4a37b3ad9ad8df96";
-      };
-    }
-    {
-      name = "defer_to_connect___defer_to_connect_2.0.0.tgz";
-      path = fetchurl {
-        name = "defer_to_connect___defer_to_connect_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.0.tgz";
-        sha1 = "83d6b199db041593ac84d781b5222308ccf4c2c1";
-      };
-    }
-    {
-      name = "delayed_stream___delayed_stream_1.0.0.tgz";
-      path = fetchurl {
-        name = "delayed_stream___delayed_stream_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
-        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
-      };
-    }
-    {
-      name = "delegates___delegates_1.0.0.tgz";
-      path = fetchurl {
-        name = "delegates___delegates_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
-        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
-      };
-    }
-    {
-      name = "depd___depd_1.1.2.tgz";
-      path = fetchurl {
-        name = "depd___depd_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
-        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
-      };
-    }
-    {
-      name = "depd___depd_2.0.0.tgz";
-      path = fetchurl {
-        name = "depd___depd_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz";
-        sha1 = "b696163cc757560d09cf22cc8fad1571b79e76df";
-      };
-    }
-    {
-      name = "destroy___destroy_1.0.4.tgz";
-      path = fetchurl {
-        name = "destroy___destroy_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
-        sha1 = "978857442c44749e4206613e37946205826abd80";
-      };
-    }
-    {
-      name = "detect_libc___detect_libc_1.0.3.tgz";
-      path = fetchurl {
-        name = "detect_libc___detect_libc_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
-        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
-      };
-    }
-    {
-      name = "diff___diff_4.0.2.tgz";
-      path = fetchurl {
-        name = "diff___diff_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz";
-        sha1 = "60f3aecb89d5fae520c11aa19efc2bb982aade7d";
-      };
-    }
-    {
-    name = "git___github.com_Sorunome_discord_markdown.git";
-    path =
-      let
-        repo = fetchgit {
-          url = "git://github.com/Sorunome/discord-markdown.git";
-          rev = "7958a03a952ed02cbd588b09eb04bc070b3a11f2";
-          sha256 = "0p7hlgdyfcipfjjx5hxwkqd524cmys9yxgqx29wmqkgjxp8xgwhy";
-        };
-      in
-        runCommand "git___github.com_Sorunome_discord_markdown.git" { buildInputs = [gnutar]; } ''
-          # Set u+w because tar-fs can't unpack archives with read-only dirs
-          # https://github.com/mafintosh/tar-fs/issues/79
-          tar cf $out --mode u+w -C ${repo} .
-        '';
-  }
-    {
-      name = "dom_serializer___dom_serializer_1.1.0.tgz";
-      path = fetchurl {
-        name = "dom_serializer___dom_serializer_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.1.0.tgz";
-        sha1 = "5f7c828f1bfc44887dc2a315ab5c45691d544b58";
-      };
-    }
-    {
-      name = "domelementtype___domelementtype_2.0.2.tgz";
-      path = fetchurl {
-        name = "domelementtype___domelementtype_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.2.tgz";
-        sha1 = "f3b6e549201e46f588b59463dd77187131fe6971";
-      };
-    }
-    {
-      name = "domhandler___domhandler_3.3.0.tgz";
-      path = fetchurl {
-        name = "domhandler___domhandler_3.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz";
-        sha1 = "6db7ea46e4617eb15cf875df68b2b8524ce0037a";
-      };
-    }
-    {
-      name = "domutils___domutils_2.4.2.tgz";
-      path = fetchurl {
-        name = "domutils___domutils_2.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-2.4.2.tgz";
-        sha1 = "7ee5be261944e1ad487d9aa0616720010123922b";
-      };
-    }
-    {
-      name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-      path = fetchurl {
-        name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
-        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
-      };
-    }
-    {
-      name = "ee_first___ee_first_1.1.1.tgz";
-      path = fetchurl {
-        name = "ee_first___ee_first_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
-        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
-      };
-    }
-    {
-      name = "emoji_regex___emoji_regex_7.0.3.tgz";
-      path = fetchurl {
-        name = "emoji_regex___emoji_regex_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha1 = "933a04052860c85e83c122479c4748a8e4c72156";
-      };
-    }
-    {
-      name = "emoji_regex___emoji_regex_8.0.0.tgz";
-      path = fetchurl {
-        name = "emoji_regex___emoji_regex_8.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
-        sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
-      };
-    }
-    {
-      name = "enabled___enabled_2.0.0.tgz";
-      path = fetchurl {
-        name = "enabled___enabled_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz";
-        sha1 = "f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2";
-      };
-    }
-    {
-      name = "encodeurl___encodeurl_1.0.2.tgz";
-      path = fetchurl {
-        name = "encodeurl___encodeurl_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
-        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
-      };
-    }
-    {
-      name = "end_of_stream___end_of_stream_1.4.4.tgz";
-      path = fetchurl {
-        name = "end_of_stream___end_of_stream_1.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz";
-        sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
-      };
-    }
-    {
-      name = "entities___entities_2.1.0.tgz";
-      path = fetchurl {
-        name = "entities___entities_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz";
-        sha1 = "992d3129cf7df6870b96c57858c249a120f8b8b5";
-      };
-    }
-    {
-      name = "es6_error___es6_error_4.1.1.tgz";
-      path = fetchurl {
-        name = "es6_error___es6_error_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz";
-        sha1 = "9e3af407459deed47e9a91f9b885a84eb05c561d";
-      };
-    }
-    {
-      name = "escape_html___escape_html_1.0.3.tgz";
-      path = fetchurl {
-        name = "escape_html___escape_html_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
-        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
-      };
-    }
-    {
-      name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
-      path = fetchurl {
-        name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
-        sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
-      };
-    }
-    {
-      name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
-      path = fetchurl {
-        name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
-        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
-      };
-    }
-    {
-      name = "esprima___esprima_4.0.1.tgz";
-      path = fetchurl {
-        name = "esprima___esprima_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
-        sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
-      };
-    }
-    {
-      name = "etag___etag_1.8.1.tgz";
-      path = fetchurl {
-        name = "etag___etag_1.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
-        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
-      };
-    }
-    {
-      name = "event_target_shim___event_target_shim_5.0.1.tgz";
-      path = fetchurl {
-        name = "event_target_shim___event_target_shim_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz";
-        sha1 = "5d4d3ebdf9583d63a5333ce2deb7480ab2b05789";
-      };
-    }
-    {
-      name = "eventemitter3___eventemitter3_4.0.7.tgz";
-      path = fetchurl {
-        name = "eventemitter3___eventemitter3_4.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz";
-        sha1 = "2de9b68f6528d5644ef5c59526a1b4a07306169f";
-      };
-    }
-    {
-      name = "expand_template___expand_template_2.0.3.tgz";
-      path = fetchurl {
-        name = "expand_template___expand_template_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz";
-        sha1 = "6e14b3fcee0f3a6340ecb57d2e8918692052a47c";
-      };
-    }
-    {
-      name = "express___express_4.17.1.tgz";
-      path = fetchurl {
-        name = "express___express_4.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
-        sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
-      };
-    }
-    {
-      name = "extend___extend_3.0.2.tgz";
-      path = fetchurl {
-        name = "extend___extend_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
-        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
-      };
-    }
-    {
-      name = "extsprintf___extsprintf_1.3.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
-      };
-    }
-    {
-      name = "extsprintf___extsprintf_1.4.0.tgz";
-      path = fetchurl {
-        name = "extsprintf___extsprintf_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
-        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
-      };
-    }
-    {
-      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
-      path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
-        sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
-      };
-    }
-    {
-      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
-      path = fetchurl {
-        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
-        sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
-      };
-    }
-    {
-      name = "fast_safe_stringify___fast_safe_stringify_2.0.7.tgz";
-      path = fetchurl {
-        name = "fast_safe_stringify___fast_safe_stringify_2.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
-        sha1 = "124aa885899261f68aedb42a7c080de9da608743";
-      };
-    }
-    {
-      name = "fecha___fecha_4.2.0.tgz";
-      path = fetchurl {
-        name = "fecha___fecha_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/fecha/-/fecha-4.2.0.tgz";
-        sha1 = "3ffb6395453e3f3efff850404f0a59b6747f5f41";
-      };
-    }
-    {
-      name = "file_stream_rotator___file_stream_rotator_0.5.7.tgz";
-      path = fetchurl {
-        name = "file_stream_rotator___file_stream_rotator_0.5.7.tgz";
-        url  = "https://registry.yarnpkg.com/file-stream-rotator/-/file-stream-rotator-0.5.7.tgz";
-        sha1 = "868a2e5966f7640a17dd86eda0e4467c089f6286";
-      };
-    }
-    {
-      name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
-      path = fetchurl {
-        name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
-        sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd";
-      };
-    }
-    {
-      name = "fill_keys___fill_keys_1.0.2.tgz";
-      path = fetchurl {
-        name = "fill_keys___fill_keys_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/fill-keys/-/fill-keys-1.0.2.tgz";
-        sha1 = "9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20";
-      };
-    }
-    {
-      name = "fill_range___fill_range_7.0.1.tgz";
-      path = fetchurl {
-        name = "fill_range___fill_range_7.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
-        sha1 = "1919a6a7c75fe38b2c7c77e5198535da9acdda40";
-      };
-    }
-    {
-      name = "finalhandler___finalhandler_1.1.2.tgz";
-      path = fetchurl {
-        name = "finalhandler___finalhandler_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
-        sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
-      };
-    }
-    {
-      name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
-      path = fetchurl {
-        name = "find_cache_dir___find_cache_dir_3.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
-        sha1 = "89b33fad4a4670daa94f855f7fbe31d6d84fe880";
-      };
-    }
-    {
-      name = "find_replace___find_replace_3.0.0.tgz";
-      path = fetchurl {
-        name = "find_replace___find_replace_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz";
-        sha1 = "3e7e23d3b05167a76f770c9fbd5258b0def68c38";
-      };
-    }
-    {
-      name = "find_up___find_up_5.0.0.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz";
-        sha1 = "4c92819ecb7083561e4f4a240a86be5198f536fc";
-      };
-    }
-    {
-      name = "find_up___find_up_3.0.0.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz";
-        sha1 = "49169f1d7993430646da61ecc5ae355c21c97b73";
-      };
-    }
-    {
-      name = "find_up___find_up_4.1.0.tgz";
-      path = fetchurl {
-        name = "find_up___find_up_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz";
-        sha1 = "97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19";
-      };
-    }
-    {
-      name = "flat___flat_5.0.2.tgz";
-      path = fetchurl {
-        name = "flat___flat_5.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz";
-        sha1 = "8ca6fe332069ffa9d324c327198c598259ceb241";
-      };
-    }
-    {
-      name = "fn.name___fn.name_1.1.0.tgz";
-      path = fetchurl {
-        name = "fn.name___fn.name_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz";
-        sha1 = "26cad8017967aea8731bc42961d04a3d5988accc";
-      };
-    }
-    {
-      name = "foreground_child___foreground_child_2.0.0.tgz";
-      path = fetchurl {
-        name = "foreground_child___foreground_child_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz";
-        sha1 = "71b32800c9f15aa8f2f83f4a6bd9bff35d861a53";
-      };
-    }
-    {
-      name = "forever_agent___forever_agent_0.6.1.tgz";
-      path = fetchurl {
-        name = "forever_agent___forever_agent_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
-      };
-    }
-    {
-      name = "form_data___form_data_2.3.3.tgz";
-      path = fetchurl {
-        name = "form_data___form_data_2.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
-        sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
-      };
-    }
-    {
-      name = "forwarded___forwarded_0.1.2.tgz";
-      path = fetchurl {
-        name = "forwarded___forwarded_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
-        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
-      };
-    }
-    {
-      name = "fresh___fresh_0.5.2.tgz";
-      path = fetchurl {
-        name = "fresh___fresh_0.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
-        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
-      };
-    }
-    {
-      name = "fromentries___fromentries_1.3.1.tgz";
-      path = fetchurl {
-        name = "fromentries___fromentries_1.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.1.tgz";
-        sha1 = "b14c6d4d606c771ce85597f13794fb10200a0ccc";
-      };
-    }
-    {
-      name = "fs_constants___fs_constants_1.0.0.tgz";
-      path = fetchurl {
-        name = "fs_constants___fs_constants_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs-constants/-/fs-constants-1.0.0.tgz";
-        sha1 = "6be0de9be998ce16af8afc24497b9ee9b7ccd9ad";
-      };
-    }
-    {
-      name = "fs_minipass___fs_minipass_1.2.7.tgz";
-      path = fetchurl {
-        name = "fs_minipass___fs_minipass_1.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz";
-        sha1 = "ccff8570841e7fe4265693da88936c55aed7f7c7";
-      };
-    }
-    {
-      name = "fs.realpath___fs.realpath_1.0.0.tgz";
-      path = fetchurl {
-        name = "fs.realpath___fs.realpath_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
-      };
-    }
-    {
-      name = "fsevents___fsevents_2.1.3.tgz";
-      path = fetchurl {
-        name = "fsevents___fsevents_2.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz";
-        sha1 = "fb738703ae8d2f9fe900c33836ddebee8b97f23e";
-      };
-    }
-    {
-      name = "function_bind___function_bind_1.1.1.tgz";
-      path = fetchurl {
-        name = "function_bind___function_bind_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
-        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
-      };
-    }
-    {
-      name = "gauge___gauge_2.7.4.tgz";
-      path = fetchurl {
-        name = "gauge___gauge_2.7.4.tgz";
-        url  = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
-        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
-      };
-    }
-    {
-      name = "gensync___gensync_1.0.0_beta.2.tgz";
-      path = fetchurl {
-        name = "gensync___gensync_1.0.0_beta.2.tgz";
-        url  = "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz";
-        sha1 = "32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0";
-      };
-    }
-    {
-      name = "get_caller_file___get_caller_file_2.0.5.tgz";
-      path = fetchurl {
-        name = "get_caller_file___get_caller_file_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
-        sha1 = "4f94412a82db32f36e3b0b9741f8a97feb031f7e";
-      };
-    }
-    {
-      name = "get_func_name___get_func_name_2.0.0.tgz";
-      path = fetchurl {
-        name = "get_func_name___get_func_name_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz";
-        sha1 = "ead774abee72e20409433a066366023dd6887a41";
-      };
-    }
-    {
-      name = "get_package_type___get_package_type_0.1.0.tgz";
-      path = fetchurl {
-        name = "get_package_type___get_package_type_0.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz";
-        sha1 = "8de2d803cff44df3bc6c456e6668b36c3926e11a";
-      };
-    }
-    {
-      name = "get_stream___get_stream_5.2.0.tgz";
-      path = fetchurl {
-        name = "get_stream___get_stream_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz";
-        sha1 = "4966a1795ee5ace65e706c4b7beb71257d6e22d3";
-      };
-    }
-    {
-      name = "getpass___getpass_0.1.7.tgz";
-      path = fetchurl {
-        name = "getpass___getpass_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
-      };
-    }
-    {
-      name = "github_from_package___github_from_package_0.0.0.tgz";
-      path = fetchurl {
-        name = "github_from_package___github_from_package_0.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz";
-        sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
-      };
-    }
-    {
-      name = "glob_parent___glob_parent_5.1.1.tgz";
-      path = fetchurl {
-        name = "glob_parent___glob_parent_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
-      };
-    }
-    {
-      name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
-      path = fetchurl {
-        name = "glob_to_regexp___glob_to_regexp_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz";
-        sha1 = "c75297087c851b9a578bd217dd59a92f59fe546e";
-      };
-    }
-    {
-      name = "glob___glob_7.1.6.tgz";
-      path = fetchurl {
-        name = "glob___glob_7.1.6.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
-        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
-      };
-    }
-    {
-      name = "globals___globals_11.12.0.tgz";
-      path = fetchurl {
-        name = "globals___globals_11.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz";
-        sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
-      };
-    }
-    {
-      name = "got___got_11.8.0.tgz";
-      path = fetchurl {
-        name = "got___got_11.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/got/-/got-11.8.0.tgz";
-        sha1 = "be0920c3586b07fd94add3b5b27cb28f49e6545f";
-      };
-    }
-    {
-      name = "graceful_fs___graceful_fs_4.2.4.tgz";
-      path = fetchurl {
-        name = "graceful_fs___graceful_fs_4.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
-        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
-      };
-    }
-    {
-      name = "growl___growl_1.10.5.tgz";
-      path = fetchurl {
-        name = "growl___growl_1.10.5.tgz";
-        url  = "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz";
-        sha1 = "f2735dc2283674fa67478b10181059355c369e5e";
-      };
-    }
-    {
-      name = "har_schema___har_schema_2.0.0.tgz";
-      path = fetchurl {
-        name = "har_schema___har_schema_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
-        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
-      };
-    }
-    {
-      name = "har_validator___har_validator_5.1.5.tgz";
-      path = fetchurl {
-        name = "har_validator___har_validator_5.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
-        sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
-      };
-    }
-    {
-      name = "has_flag___has_flag_3.0.0.tgz";
-      path = fetchurl {
-        name = "has_flag___has_flag_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
-        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
-      };
-    }
-    {
-      name = "has_flag___has_flag_4.0.0.tgz";
-      path = fetchurl {
-        name = "has_flag___has_flag_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
-        sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
-      };
-    }
-    {
-      name = "has_unicode___has_unicode_2.0.1.tgz";
-      path = fetchurl {
-        name = "has_unicode___has_unicode_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
-        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
-      };
-    }
-    {
-      name = "has___has_1.0.3.tgz";
-      path = fetchurl {
-        name = "has___has_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
-        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
-      };
-    }
-    {
-      name = "hash.js___hash.js_1.1.7.tgz";
-      path = fetchurl {
-        name = "hash.js___hash.js_1.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz";
-        sha1 = "0babca538e8d4ee4a0f8988d68866537a003cf42";
-      };
-    }
-    {
-      name = "hasha___hasha_5.2.2.tgz";
-      path = fetchurl {
-        name = "hasha___hasha_5.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz";
-        sha1 = "a48477989b3b327aea3c04f53096d816d97522a1";
-      };
-    }
-    {
-      name = "he___he_1.2.0.tgz";
-      path = fetchurl {
-        name = "he___he_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
-        sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
-      };
-    }
-    {
-      name = "highlight.js___highlight.js_9.18.3.tgz";
-      path = fetchurl {
-        name = "highlight.js___highlight.js_9.18.3.tgz";
-        url  = "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.18.3.tgz";
-        sha1 = "a1a0a2028d5e3149e2380f8a865ee8516703d634";
-      };
-    }
-    {
-      name = "html_escaper___html_escaper_2.0.2.tgz";
-      path = fetchurl {
-        name = "html_escaper___html_escaper_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz";
-        sha1 = "dfd60027da36a36dfcbe236262c00a5822681453";
-      };
-    }
-    {
-      name = "htmlencode___htmlencode_0.0.4.tgz";
-      path = fetchurl {
-        name = "htmlencode___htmlencode_0.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/htmlencode/-/htmlencode-0.0.4.tgz";
-        sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f";
-      };
-    }
-    {
-      name = "htmlparser2___htmlparser2_4.1.0.tgz";
-      path = fetchurl {
-        name = "htmlparser2___htmlparser2_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-4.1.0.tgz";
-        sha1 = "9a4ef161f2e4625ebf7dfbe6c0a2f52d18a59e78";
-      };
-    }
-    {
-      name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
-      path = fetchurl {
-        name = "http_cache_semantics___http_cache_semantics_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
-        sha1 = "49e91c5cbf36c9b94bcfcd71c23d5249ec74e390";
-      };
-    }
-    {
-      name = "http_errors___http_errors_1.7.2.tgz";
-      path = fetchurl {
-        name = "http_errors___http_errors_1.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
-        sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
-      };
-    }
-    {
-      name = "http_errors___http_errors_1.7.3.tgz";
-      path = fetchurl {
-        name = "http_errors___http_errors_1.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz";
-        sha1 = "6c619e4f9c60308c38519498c14fbb10aacebb06";
-      };
-    }
-    {
-      name = "http_signature___http_signature_1.2.0.tgz";
-      path = fetchurl {
-        name = "http_signature___http_signature_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
-      };
-    }
-    {
-      name = "http2_wrapper___http2_wrapper_1.0.0_beta.5.2.tgz";
-      path = fetchurl {
-        name = "http2_wrapper___http2_wrapper_1.0.0_beta.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz";
-        sha1 = "8b923deb90144aea65cf834b016a340fc98556f3";
-      };
-    }
-    {
-      name = "iconv_lite___iconv_lite_0.4.24.tgz";
-      path = fetchurl {
-        name = "iconv_lite___iconv_lite_0.4.24.tgz";
-        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
-      };
-    }
-    {
-      name = "ieee754___ieee754_1.2.1.tgz";
-      path = fetchurl {
-        name = "ieee754___ieee754_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz";
-        sha1 = "8eb7a10a63fff25d15a57b001586d177d1b0d352";
-      };
-    }
-    {
-      name = "imurmurhash___imurmurhash_0.1.4.tgz";
-      path = fetchurl {
-        name = "imurmurhash___imurmurhash_0.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
-        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
-      };
-    }
-    {
-      name = "indent_string___indent_string_4.0.0.tgz";
-      path = fetchurl {
-        name = "indent_string___indent_string_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz";
-        sha1 = "624f8f4497d619b2d9768531d58f4122854d7251";
-      };
-    }
-    {
-      name = "inflight___inflight_1.0.6.tgz";
-      path = fetchurl {
-        name = "inflight___inflight_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
-      };
-    }
-    {
-      name = "inherits___inherits_2.0.4.tgz";
-      path = fetchurl {
-        name = "inherits___inherits_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
-        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
-      };
-    }
-    {
-      name = "inherits___inherits_2.0.3.tgz";
-      path = fetchurl {
-        name = "inherits___inherits_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
-      };
-    }
-    {
-      name = "ini___ini_1.3.5.tgz";
-      path = fetchurl {
-        name = "ini___ini_1.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz";
-        sha1 = "eee25f56db1c9ec6085e0c22778083f596abf927";
-      };
-    }
-    {
-      name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
-      path = fetchurl {
-        name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3";
-      };
-    }
-    {
-      name = "is_arrayish___is_arrayish_0.3.2.tgz";
-      path = fetchurl {
-        name = "is_arrayish___is_arrayish_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz";
-        sha1 = "4574a2ae56f7ab206896fb431eaeed066fdf8f03";
-      };
-    }
-    {
-      name = "is_binary_path___is_binary_path_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_binary_path___is_binary_path_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz";
-        sha1 = "ea1f7f3b80f064236e83470f86c09c254fb45b09";
-      };
-    }
-    {
-      name = "is_core_module___is_core_module_2.0.0.tgz";
-      path = fetchurl {
-        name = "is_core_module___is_core_module_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.0.0.tgz";
-        sha1 = "58531b70aed1db7c0e8d4eb1a0a2d1ddd64bd12d";
-      };
-    }
-    {
-      name = "is_extglob___is_extglob_2.1.1.tgz";
-      path = fetchurl {
-        name = "is_extglob___is_extglob_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
-        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
-      };
-    }
-    {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
-      };
-    }
-    {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
-      path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
-        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
-      };
-    }
-    {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
-        sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
-      };
-    }
-    {
-      name = "is_glob___is_glob_4.0.1.tgz";
-      path = fetchurl {
-        name = "is_glob___is_glob_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
-        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
-      };
-    }
-    {
-      name = "is_number___is_number_7.0.0.tgz";
-      path = fetchurl {
-        name = "is_number___is_number_7.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
-        sha1 = "7535345b896734d5f80c4d06c50955527a14f12b";
-      };
-    }
-    {
-      name = "is_object___is_object_1.0.1.tgz";
-      path = fetchurl {
-        name = "is_object___is_object_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz";
-        sha1 = "8952688c5ec2ffd6b03ecc85e769e02903083470";
-      };
-    }
-    {
-      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_promise___is_promise_2.2.2.tgz";
-      path = fetchurl {
-        name = "is_promise___is_promise_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz";
-        sha1 = "39ab959ccbf9a774cf079f7b40c7a26f763135f1";
-      };
-    }
-    {
-      name = "is_stream___is_stream_2.0.0.tgz";
-      path = fetchurl {
-        name = "is_stream___is_stream_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz";
-        sha1 = "bde9c32680d6fae04129d6ac9d921ce7815f78e3";
-      };
-    }
-    {
-      name = "is_typedarray___is_typedarray_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_typedarray___is_typedarray_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
-        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
-      };
-    }
-    {
-      name = "is_windows___is_windows_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_windows___is_windows_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
-        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
-      };
-    }
-    {
-      name = "isarray___isarray_1.0.0.tgz";
-      path = fetchurl {
-        name = "isarray___isarray_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
-        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
-      };
-    }
-    {
-      name = "isexe___isexe_2.0.0.tgz";
-      path = fetchurl {
-        name = "isexe___isexe_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
-        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
-      };
-    }
-    {
-      name = "isstream___isstream_0.1.2.tgz";
-      path = fetchurl {
-        name = "isstream___isstream_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
-      };
-    }
-    {
-      name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_coverage___istanbul_lib_coverage_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
-        sha1 = "f5944a37c70b550b02a78a5c3b2055b280cec8ec";
-      };
-    }
-    {
-      name = "istanbul_lib_hook___istanbul_lib_hook_3.0.0.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_hook___istanbul_lib_hook_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz";
-        sha1 = "8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6";
-      };
-    }
-    {
-      name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_instrument___istanbul_lib_instrument_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
-        sha1 = "873c6fff897450118222774696a3f28902d77c1d";
-      };
-    }
-    {
-      name = "istanbul_lib_processinfo___istanbul_lib_processinfo_2.0.2.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_processinfo___istanbul_lib_processinfo_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz";
-        sha1 = "e1426514662244b2f25df728e8fd1ba35fe53b9c";
-      };
-    }
-    {
-      name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_report___istanbul_lib_report_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
-        sha1 = "7518fe52ea44de372f460a76b5ecda9ffb73d8a6";
-      };
-    }
-    {
-      name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz";
-      path = fetchurl {
-        name = "istanbul_lib_source_maps___istanbul_lib_source_maps_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
-        sha1 = "75743ce6d96bb86dc7ee4352cf6366a23f0b1ad9";
-      };
-    }
-    {
-      name = "istanbul_reports___istanbul_reports_3.0.2.tgz";
-      path = fetchurl {
-        name = "istanbul_reports___istanbul_reports_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
-        sha1 = "d593210e5000683750cb09fc0644e4b6e27fd53b";
-      };
-    }
-    {
-      name = "js_tokens___js_tokens_4.0.0.tgz";
-      path = fetchurl {
-        name = "js_tokens___js_tokens_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
-      };
-    }
-    {
-      name = "js_yaml___js_yaml_3.14.0.tgz";
-      path = fetchurl {
-        name = "js_yaml___js_yaml_3.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz";
-        sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482";
-      };
-    }
-    {
-      name = "jsbn___jsbn_0.1.1.tgz";
-      path = fetchurl {
-        name = "jsbn___jsbn_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
-      };
-    }
-    {
-      name = "jsesc___jsesc_2.5.2.tgz";
-      path = fetchurl {
-        name = "jsesc___jsesc_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
-        sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
-      };
-    }
-    {
-      name = "json_buffer___json_buffer_3.0.1.tgz";
-      path = fetchurl {
-        name = "json_buffer___json_buffer_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz";
-        sha1 = "9338802a30d3b6605fbe0613e094008ca8c05a13";
-      };
-    }
-    {
-      name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
-      path = fetchurl {
-        name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
-      };
-    }
-    {
-      name = "json_schema___json_schema_0.2.3.tgz";
-      path = fetchurl {
-        name = "json_schema___json_schema_0.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
-      };
-    }
-    {
-      name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
-      path = fetchurl {
-        name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
-        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
-      };
-    }
-    {
-      name = "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 = "jsprim___jsprim_1.4.1.tgz";
-      path = fetchurl {
-        name = "jsprim___jsprim_1.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
-      };
-    }
-    {
-      name = "keyv___keyv_4.0.3.tgz";
-      path = fetchurl {
-        name = "keyv___keyv_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/keyv/-/keyv-4.0.3.tgz";
-        sha1 = "4f3aa98de254803cafcd2896734108daa35e4254";
-      };
-    }
-    {
-      name = "kuler___kuler_2.0.0.tgz";
-      path = fetchurl {
-        name = "kuler___kuler_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz";
-        sha1 = "e2c570a3800388fb44407e851531c1d670b061b3";
-      };
-    }
-    {
-      name = "locate_path___locate_path_3.0.0.tgz";
-      path = fetchurl {
-        name = "locate_path___locate_path_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz";
-        sha1 = "dbec3b3ab759758071b58fe59fc41871af21400e";
-      };
-    }
-    {
-      name = "locate_path___locate_path_5.0.0.tgz";
-      path = fetchurl {
-        name = "locate_path___locate_path_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz";
-        sha1 = "1afba396afd676a6d42504d0a67a3a7eb9f62aa0";
-      };
-    }
-    {
-      name = "locate_path___locate_path_6.0.0.tgz";
-      path = fetchurl {
-        name = "locate_path___locate_path_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz";
-        sha1 = "55321eb309febbc59c4801d931a72452a681d286";
-      };
-    }
-    {
-      name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
-      path = fetchurl {
-        name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
-        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
-      };
-    }
-    {
-      name = "lodash.flattendeep___lodash.flattendeep_4.4.0.tgz";
-      path = fetchurl {
-        name = "lodash.flattendeep___lodash.flattendeep_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
-        sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
-      };
-    }
-    {
-      name = "lodash.toarray___lodash.toarray_4.4.0.tgz";
-      path = fetchurl {
-        name = "lodash.toarray___lodash.toarray_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz";
-        sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.20.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.20.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
-        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
-      };
-    }
-    {
-      name = "log_symbols___log_symbols_4.0.0.tgz";
-      path = fetchurl {
-        name = "log_symbols___log_symbols_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz";
-        sha1 = "69b3cc46d20f448eccdb75ea1fa733d9e821c920";
-      };
-    }
-    {
-      name = "logform___logform_2.2.0.tgz";
-      path = fetchurl {
-        name = "logform___logform_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/logform/-/logform-2.2.0.tgz";
-        sha1 = "40f036d19161fc76b68ab50fdc7fe495544492f2";
-      };
-    }
-    {
-      name = "lowdb___lowdb_1.0.0.tgz";
-      path = fetchurl {
-        name = "lowdb___lowdb_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lowdb/-/lowdb-1.0.0.tgz";
-        sha1 = "5243be6b22786ccce30e50c9a33eac36b20c8064";
-      };
-    }
-    {
-      name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
-      path = fetchurl {
-        name = "lowercase_keys___lowercase_keys_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
-        sha1 = "2603e78b7b4b0006cbca2fbcc8a3202558ac9479";
-      };
-    }
-    {
-      name = "lru_cache___lru_cache_5.1.1.tgz";
-      path = fetchurl {
-        name = "lru_cache___lru_cache_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz";
-        sha1 = "1da27e6710271947695daf6848e847f01d84b920";
-      };
-    }
-    {
-      name = "make_dir___make_dir_3.1.0.tgz";
-      path = fetchurl {
-        name = "make_dir___make_dir_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz";
-        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 = "marked___marked_1.2.2.tgz";
-      path = fetchurl {
-        name = "marked___marked_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/marked/-/marked-1.2.2.tgz";
-        sha1 = "5d77ffb789c4cb0ae828bfe76250f7140b123f70";
-      };
-    }
-    {
-      name = "matrix_bot_sdk___matrix_bot_sdk_0.5.4.tgz";
-      path = fetchurl {
-        name = "matrix_bot_sdk___matrix_bot_sdk_0.5.4.tgz";
-        url  = "https://registry.yarnpkg.com/matrix-bot-sdk/-/matrix-bot-sdk-0.5.4.tgz";
-        sha1 = "8c26bef826bd0b3fc9b693c8d07b52c30d843fd7";
-      };
-    }
-    {
-      name = "matrix_discord_parser___matrix_discord_parser_0.1.5.tgz";
-      path = fetchurl {
-        name = "matrix_discord_parser___matrix_discord_parser_0.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/matrix-discord-parser/-/matrix-discord-parser-0.1.5.tgz";
-        sha1 = "dd6a481a569567e8e30d70599d4dcb173261504c";
-      };
-    }
-    {
-      name = "media_typer___media_typer_0.3.0.tgz";
-      path = fetchurl {
-        name = "media_typer___media_typer_0.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
-        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
-      };
-    }
-    {
-      name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
-      path = fetchurl {
-        name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
-        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
-      };
-    }
-    {
-      name = "methods___methods_1.1.2.tgz";
-      path = fetchurl {
-        name = "methods___methods_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
-        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
-      };
-    }
-    {
-      name = "mime_db___mime_db_1.44.0.tgz";
-      path = fetchurl {
-        name = "mime_db___mime_db_1.44.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz";
-        sha1 = "fa11c5eb0aca1334b4233cb4d52f10c5a6272f92";
-      };
-    }
-    {
-      name = "mime_types___mime_types_2.1.27.tgz";
-      path = fetchurl {
-        name = "mime_types___mime_types_2.1.27.tgz";
-        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz";
-        sha1 = "47949f98e279ea53119f5722e0f34e529bec009f";
-      };
-    }
-    {
-      name = "mime___mime_1.6.0.tgz";
-      path = fetchurl {
-        name = "mime___mime_1.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
-        sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
-      };
-    }
-    {
-      name = "mime___mime_2.4.6.tgz";
-      path = fetchurl {
-        name = "mime___mime_2.4.6.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
-        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
-      };
-    }
-    {
-      name = "mimic_response___mimic_response_1.0.1.tgz";
-      path = fetchurl {
-        name = "mimic_response___mimic_response_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz";
-        sha1 = "4923538878eef42063cb8a3e3b0798781487ab1b";
-      };
-    }
-    {
-      name = "mimic_response___mimic_response_2.1.0.tgz";
-      path = fetchurl {
-        name = "mimic_response___mimic_response_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz";
-        sha1 = "d13763d35f613d09ec37ebb30bac0469c0ee8f43";
-      };
-    }
-    {
-      name = "mimic_response___mimic_response_3.1.0.tgz";
-      path = fetchurl {
-        name = "mimic_response___mimic_response_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz";
-        sha1 = "2d1d59af9c1b129815accc2c46a022a5ce1fa3c9";
-      };
-    }
-    {
-      name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
-      path = fetchurl {
-        name = "minimalistic_assert___minimalistic_assert_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
-        sha1 = "2e194de044626d4a10e7f7fbc00ce73e83e4d5c7";
-      };
-    }
-    {
-      name = "minimatch___minimatch_3.0.4.tgz";
-      path = fetchurl {
-        name = "minimatch___minimatch_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
-        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
-      };
-    }
-    {
-      name = "minimist___minimist_1.2.5.tgz";
-      path = fetchurl {
-        name = "minimist___minimist_1.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
-        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
-      };
-    }
-    {
-      name = "minipass___minipass_2.9.0.tgz";
-      path = fetchurl {
-        name = "minipass___minipass_2.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz";
-        sha1 = "e713762e7d3e32fed803115cf93e04bca9fcc9a6";
-      };
-    }
-    {
-      name = "minizlib___minizlib_1.3.3.tgz";
-      path = fetchurl {
-        name = "minizlib___minizlib_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz";
-        sha1 = "2290de96818a34c29551c8a8d301216bd65a861d";
-      };
-    }
-    {
-      name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
-      path = fetchurl {
-        name = "mkdirp_classic___mkdirp_classic_0.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
-        sha1 = "fa10c9115cc6d8865be221ba47ee9bed78601113";
-      };
-    }
-    {
-      name = "mkdirp___mkdirp_0.5.5.tgz";
-      path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
-      };
-    }
-    {
-      name = "mocha___mocha_8.2.0.tgz";
-      path = fetchurl {
-        name = "mocha___mocha_8.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/mocha/-/mocha-8.2.0.tgz";
-        sha1 = "f8aa79110b4b5a6580c65d4dd8083c425282624e";
-      };
-    }
-    {
-      name = "module_not_found_error___module_not_found_error_1.0.1.tgz";
-      path = fetchurl {
-        name = "module_not_found_error___module_not_found_error_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/module-not-found-error/-/module-not-found-error-1.0.1.tgz";
-        sha1 = "cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0";
-      };
-    }
-    {
-      name = "moment___moment_2.29.1.tgz";
-      path = fetchurl {
-        name = "moment___moment_2.29.1.tgz";
-        url  = "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz";
-        sha1 = "b2be769fa31940be9eeea6469c075e35006fa3d3";
-      };
-    }
-    {
-      name = "morgan___morgan_1.10.0.tgz";
-      path = fetchurl {
-        name = "morgan___morgan_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz";
-        sha1 = "091778abc1fc47cd3509824653dae1faab6b17d7";
-      };
-    }
-    {
-      name = "ms___ms_2.0.0.tgz";
-      path = fetchurl {
-        name = "ms___ms_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
-        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
-      };
-    }
-    {
-      name = "ms___ms_2.1.1.tgz";
-      path = fetchurl {
-        name = "ms___ms_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
-        sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
-      };
-    }
-    {
-      name = "ms___ms_2.1.2.tgz";
-      path = fetchurl {
-        name = "ms___ms_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
-        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
-      };
-    }
-    {
-      name = "nanoid___nanoid_3.1.12.tgz";
-      path = fetchurl {
-        name = "nanoid___nanoid_3.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.12.tgz";
-        sha1 = "6f7736c62e8d39421601e4a0c77623a97ea69654";
-      };
-    }
-    {
-      name = "napi_build_utils___napi_build_utils_1.0.2.tgz";
-      path = fetchurl {
-        name = "napi_build_utils___napi_build_utils_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
-        sha1 = "b1fddc0b2c46e380a0b7a76f984dd47c41a13806";
-      };
-    }
-    {
-      name = "negotiator___negotiator_0.6.2.tgz";
-      path = fetchurl {
-        name = "negotiator___negotiator_0.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
-        sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
-      };
-    }
-    {
-      name = "node_abi___node_abi_2.19.1.tgz";
-      path = fetchurl {
-        name = "node_abi___node_abi_2.19.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-abi/-/node-abi-2.19.1.tgz";
-        sha1 = "6aa32561d0a5e2fdb6810d8c25641b657a8cea85";
-      };
-    }
-    {
-      name = "node_emoji___node_emoji_1.10.0.tgz";
-      path = fetchurl {
-        name = "node_emoji___node_emoji_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz";
-        sha1 = "8886abd25d9c7bb61802a658523d1f8d2a89b2da";
-      };
-    }
-    {
-      name = "node_fetch___node_fetch_2.6.1.tgz";
-      path = fetchurl {
-        name = "node_fetch___node_fetch_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz";
-        sha1 = "045bd323631f76ed2e2b55573394416b639a0052";
-      };
-    }
-    {
-      name = "node_html_parser___node_html_parser_1.4.2.tgz";
-      path = fetchurl {
-        name = "node_html_parser___node_html_parser_1.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.2.tgz";
-        sha1 = "391f5a9a13fa152b67bab6dc951327adc5965e30";
-      };
-    }
-    {
-      name = "node_html_parser___node_html_parser_1.4.5.tgz";
-      path = fetchurl {
-        name = "node_html_parser___node_html_parser_1.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-1.4.5.tgz";
-        sha1 = "0697045ccaf4e5f8f99b78d0a5579d096b7da6d2";
-      };
-    }
-    {
-      name = "node_preload___node_preload_0.2.1.tgz";
-      path = fetchurl {
-        name = "node_preload___node_preload_0.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz";
-        sha1 = "c03043bb327f417a18fee7ab7ee57b408a144301";
-      };
-    }
-    {
-      name = "noop_logger___noop_logger_0.1.1.tgz";
-      path = fetchurl {
-        name = "noop_logger___noop_logger_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz";
-        sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
-      };
-    }
-    {
-      name = "normalize_path___normalize_path_3.0.0.tgz";
-      path = fetchurl {
-        name = "normalize_path___normalize_path_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz";
-        sha1 = "0dcd69ff23a1c9b11fd0978316644a0388216a65";
-      };
-    }
-    {
-      name = "normalize_url___normalize_url_4.5.0.tgz";
-      path = fetchurl {
-        name = "normalize_url___normalize_url_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz";
-        sha1 = "453354087e6ca96957bd8f5baf753f5982142129";
-      };
-    }
-    {
-      name = "normalize_version___normalize_version_1.0.5.tgz";
-      path = fetchurl {
-        name = "normalize_version___normalize_version_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-version/-/normalize-version-1.0.5.tgz";
-        sha1 = "a6a2b9002dc6fa2e5f15ec2f0b2c0284fb499712";
-      };
-    }
-    {
-      name = "npmlog___npmlog_4.1.2.tgz";
-      path = fetchurl {
-        name = "npmlog___npmlog_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
-        sha1 = "08a7f2a8bf734604779a9efa4ad5cc717abb954b";
-      };
-    }
-    {
-      name = "number_is_nan___number_is_nan_1.0.1.tgz";
-      path = fetchurl {
-        name = "number_is_nan___number_is_nan_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
-      };
-    }
-    {
-      name = "nyc___nyc_15.1.0.tgz";
-      path = fetchurl {
-        name = "nyc___nyc_15.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz";
-        sha1 = "1335dae12ddc87b6e249d5a1994ca4bdaea75f02";
-      };
-    }
-    {
-      name = "oauth_sign___oauth_sign_0.9.0.tgz";
-      path = fetchurl {
-        name = "oauth_sign___oauth_sign_0.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
-      };
-    }
-    {
-      name = "object_assign___object_assign_4.1.1.tgz";
-      path = fetchurl {
-        name = "object_assign___object_assign_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
-        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
-      };
-    }
-    {
-      name = "object_hash___object_hash_2.0.3.tgz";
-      path = fetchurl {
-        name = "object_hash___object_hash_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/object-hash/-/object-hash-2.0.3.tgz";
-        sha1 = "d12db044e03cd2ca3d77c0570d87225b02e1e6ea";
-      };
-    }
-    {
-      name = "on_finished___on_finished_2.3.0.tgz";
-      path = fetchurl {
-        name = "on_finished___on_finished_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
-        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
-      };
-    }
-    {
-      name = "on_headers___on_headers_1.0.2.tgz";
-      path = fetchurl {
-        name = "on_headers___on_headers_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz";
-        sha1 = "772b0ae6aaa525c399e489adfad90c403eb3c28f";
-      };
-    }
-    {
-      name = "once___once_1.4.0.tgz";
-      path = fetchurl {
-        name = "once___once_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
-        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
-      };
-    }
-    {
-      name = "one_time___one_time_1.0.0.tgz";
-      path = fetchurl {
-        name = "one_time___one_time_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz";
-        sha1 = "e06bc174aed214ed58edede573b433bbf827cb45";
-      };
-    }
-    {
-      name = "p_cancelable___p_cancelable_2.0.0.tgz";
-      path = fetchurl {
-        name = "p_cancelable___p_cancelable_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz";
-        sha1 = "4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e";
-      };
-    }
-    {
-      name = "p_finally___p_finally_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_finally___p_finally_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz";
-        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
-      };
-    }
-    {
-      name = "p_limit___p_limit_2.3.0.tgz";
-      path = fetchurl {
-        name = "p_limit___p_limit_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz";
-        sha1 = "3dd33c647a214fdfffd835933eb086da0dc21db1";
-      };
-    }
-    {
-      name = "p_limit___p_limit_3.0.2.tgz";
-      path = fetchurl {
-        name = "p_limit___p_limit_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz";
-        sha1 = "1664e010af3cadc681baafd3e2a437be7b0fb5fe";
-      };
-    }
-    {
-      name = "p_locate___p_locate_3.0.0.tgz";
-      path = fetchurl {
-        name = "p_locate___p_locate_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz";
-        sha1 = "322d69a05c0264b25997d9f40cd8a891ab0064a4";
-      };
-    }
-    {
-      name = "p_locate___p_locate_4.1.0.tgz";
-      path = fetchurl {
-        name = "p_locate___p_locate_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz";
-        sha1 = "a3428bb7088b3a60292f66919278b7c297ad4f07";
-      };
-    }
-    {
-      name = "p_locate___p_locate_5.0.0.tgz";
-      path = fetchurl {
-        name = "p_locate___p_locate_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz";
-        sha1 = "83c8315c6785005e3bd021839411c9e110e6d834";
-      };
-    }
-    {
-      name = "p_map___p_map_3.0.0.tgz";
-      path = fetchurl {
-        name = "p_map___p_map_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz";
-        sha1 = "d704d9af8a2ba684e2600d9a215983d4141a979d";
-      };
-    }
-    {
-      name = "p_queue___p_queue_6.6.2.tgz";
-      path = fetchurl {
-        name = "p_queue___p_queue_6.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz";
-        sha1 = "2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426";
-      };
-    }
-    {
-      name = "p_timeout___p_timeout_3.2.0.tgz";
-      path = fetchurl {
-        name = "p_timeout___p_timeout_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz";
-        sha1 = "c7e17abc971d2a7962ef83626b35d635acf23dfe";
-      };
-    }
-    {
-      name = "p_try___p_try_2.2.0.tgz";
-      path = fetchurl {
-        name = "p_try___p_try_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz";
-        sha1 = "cb2868540e313d61de58fafbe35ce9004d5540e6";
-      };
-    }
-    {
-      name = "package_hash___package_hash_4.0.0.tgz";
-      path = fetchurl {
-        name = "package_hash___package_hash_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz";
-        sha1 = "3537f654665ec3cc38827387fc904c163c54f506";
-      };
-    }
-    {
-      name = "packet_reader___packet_reader_1.0.0.tgz";
-      path = fetchurl {
-        name = "packet_reader___packet_reader_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/packet-reader/-/packet-reader-1.0.0.tgz";
-        sha1 = "9238e5480dedabacfe1fe3f2771063f164157d74";
-      };
-    }
-    {
-      name = "parse_srcset___parse_srcset_1.0.2.tgz";
-      path = fetchurl {
-        name = "parse_srcset___parse_srcset_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz";
-        sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1";
-      };
-    }
-    {
-      name = "parseurl___parseurl_1.3.3.tgz";
-      path = fetchurl {
-        name = "parseurl___parseurl_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
-        sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
-      };
-    }
-    {
-      name = "path_exists___path_exists_3.0.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz";
-        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
-      };
-    }
-    {
-      name = "path_exists___path_exists_4.0.0.tgz";
-      path = fetchurl {
-        name = "path_exists___path_exists_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz";
-        sha1 = "513bdbe2d3b95d7762e8c1137efa195c6c61b5b3";
-      };
-    }
-    {
-      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
-      path = fetchurl {
-        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
-      };
-    }
-    {
-      name = "path_key___path_key_3.1.1.tgz";
-      path = fetchurl {
-        name = "path_key___path_key_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
-        sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
-      };
-    }
-    {
-      name = "path_parse___path_parse_1.0.6.tgz";
-      path = fetchurl {
-        name = "path_parse___path_parse_1.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
-        sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
-      };
-    }
-    {
-      name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
-      path = fetchurl {
-        name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
-        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
-      };
-    }
-    {
-      name = "pathval___pathval_1.1.0.tgz";
-      path = fetchurl {
-        name = "pathval___pathval_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz";
-        sha1 = "b942e6d4bde653005ef6b71361def8727d0645e0";
-      };
-    }
-    {
-      name = "performance_now___performance_now_2.1.0.tgz";
-      path = fetchurl {
-        name = "performance_now___performance_now_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
-        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
-      };
-    }
-    {
-      name = "pg_connection_string___pg_connection_string_2.4.0.tgz";
-      path = fetchurl {
-        name = "pg_connection_string___pg_connection_string_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.4.0.tgz";
-        sha1 = "c979922eb47832999a204da5dbe1ebf2341b6a10";
-      };
-    }
-    {
-      name = "pg_int8___pg_int8_1.0.1.tgz";
-      path = fetchurl {
-        name = "pg_int8___pg_int8_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz";
-        sha1 = "943bd463bf5b71b4170115f80f8efc9a0c0eb78c";
-      };
-    }
-    {
-      name = "pg_minify___pg_minify_1.6.1.tgz";
-      path = fetchurl {
-        name = "pg_minify___pg_minify_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/pg-minify/-/pg-minify-1.6.1.tgz";
-        sha1 = "d2c735cdaab171f9ab82bb73aded99ace2d88b8c";
-      };
-    }
-    {
-      name = "pg_pool___pg_pool_3.2.2.tgz";
-      path = fetchurl {
-        name = "pg_pool___pg_pool_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.2.2.tgz";
-        sha1 = "a560e433443ed4ad946b84d774b3f22452694dff";
-      };
-    }
-    {
-      name = "pg_promise___pg_promise_10.7.1.tgz";
-      path = fetchurl {
-        name = "pg_promise___pg_promise_10.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/pg-promise/-/pg-promise-10.7.1.tgz";
-        sha1 = "46ad28514ae9ceba28903156e51f67bfc6874993";
-      };
-    }
-    {
-      name = "pg_protocol___pg_protocol_1.3.0.tgz";
-      path = fetchurl {
-        name = "pg_protocol___pg_protocol_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.3.0.tgz";
-        sha1 = "3c8fb7ca34dbbfcc42776ce34ac5f537d6e34770";
-      };
-    }
-    {
-      name = "pg_types___pg_types_2.2.0.tgz";
-      path = fetchurl {
-        name = "pg_types___pg_types_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz";
-        sha1 = "2d0250d636454f7cfa3b6ae0382fdfa8063254a3";
-      };
-    }
-    {
-      name = "pg___pg_8.4.1.tgz";
-      path = fetchurl {
-        name = "pg___pg_8.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/pg/-/pg-8.4.1.tgz";
-        sha1 = "06cfb6208ae787a869b2f0022da11b90d13d933e";
-      };
-    }
-    {
-      name = "pgpass___pgpass_1.0.4.tgz";
-      path = fetchurl {
-        name = "pgpass___pgpass_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.4.tgz";
-        sha1 = "85eb93a83800b20f8057a2b029bf05abaf94ea9c";
-      };
-    }
-    {
-      name = "picomatch___picomatch_2.2.2.tgz";
-      path = fetchurl {
-        name = "picomatch___picomatch_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz";
-        sha1 = "21f333e9b6b8eaff02468f5146ea406d345f4dad";
-      };
-    }
-    {
-      name = "pify___pify_3.0.0.tgz";
-      path = fetchurl {
-        name = "pify___pify_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz";
-        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
-      };
-    }
-    {
-      name = "pkg_dir___pkg_dir_4.2.0.tgz";
-      path = fetchurl {
-        name = "pkg_dir___pkg_dir_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz";
-        sha1 = "f099133df7ede422e81d1d8448270eeb3e4261f3";
-      };
-    }
-    {
-      name = "postcss___postcss_7.0.35.tgz";
-      path = fetchurl {
-        name = "postcss___postcss_7.0.35.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz";
-        sha1 = "d2be00b998f7f211d8a276974079f2e92b970e24";
-      };
-    }
-    {
-      name = "postgres_array___postgres_array_2.0.0.tgz";
-      path = fetchurl {
-        name = "postgres_array___postgres_array_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz";
-        sha1 = "48f8fce054fbc69671999329b8834b772652d82e";
-      };
-    }
-    {
-      name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
-      path = fetchurl {
-        name = "postgres_bytea___postgres_bytea_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
-        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
-      };
-    }
-    {
-      name = "postgres_date___postgres_date_1.0.7.tgz";
-      path = fetchurl {
-        name = "postgres_date___postgres_date_1.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz";
-        sha1 = "51bc086006005e5061c591cee727f2531bf641a8";
-      };
-    }
-    {
-      name = "postgres_interval___postgres_interval_1.2.0.tgz";
-      path = fetchurl {
-        name = "postgres_interval___postgres_interval_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz";
-        sha1 = "b460c82cb1587507788819a06aa0fffdb3544695";
-      };
-    }
-    {
-      name = "prebuild_install___prebuild_install_5.3.6.tgz";
-      path = fetchurl {
-        name = "prebuild_install___prebuild_install_5.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz";
-        sha1 = "7c225568d864c71d89d07f8796042733a3f54291";
-      };
-    }
-    {
-      name = "prism_media___prism_media_1.2.2.tgz";
-      path = fetchurl {
-        name = "prism_media___prism_media_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/prism-media/-/prism-media-1.2.2.tgz";
-        sha1 = "4f1c841f248b67d325a24b4e6b1a491b8f50a24f";
-      };
-    }
-    {
-      name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
-      path = fetchurl {
-        name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
-        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
-      };
-    }
-    {
-      name = "process_on_spawn___process_on_spawn_1.0.0.tgz";
-      path = fetchurl {
-        name = "process_on_spawn___process_on_spawn_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz";
-        sha1 = "95b05a23073d30a17acfdc92a440efd2baefdc93";
-      };
-    }
-    {
-      name = "prom_client___prom_client_12.0.0.tgz";
-      path = fetchurl {
-        name = "prom_client___prom_client_12.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/prom-client/-/prom-client-12.0.0.tgz";
-        sha1 = "9689379b19bd3f6ab88a9866124db9da3d76c6ed";
-      };
-    }
-    {
-      name = "proxy_addr___proxy_addr_2.0.6.tgz";
-      path = fetchurl {
-        name = "proxy_addr___proxy_addr_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha1 = "fdc2336505447d3f2f2c638ed272caf614bbb2bf";
-      };
-    }
-    {
-      name = "proxyquire___proxyquire_1.8.0.tgz";
-      path = fetchurl {
-        name = "proxyquire___proxyquire_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/proxyquire/-/proxyquire-1.8.0.tgz";
-        sha1 = "02d514a5bed986f04cbb2093af16741535f79edc";
-      };
-    }
-    {
-      name = "psl___psl_1.8.0.tgz";
-      path = fetchurl {
-        name = "psl___psl_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz";
-        sha1 = "9326f8bcfb013adcc005fdff056acce020e51c24";
-      };
-    }
-    {
-      name = "pump___pump_3.0.0.tgz";
-      path = fetchurl {
-        name = "pump___pump_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz";
-        sha1 = "b4a2116815bde2f4e1ea602354e8c75565107a64";
-      };
-    }
-    {
-      name = "punycode___punycode_2.1.1.tgz";
-      path = fetchurl {
-        name = "punycode___punycode_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
-        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
-      };
-    }
-    {
-      name = "qs___qs_6.7.0.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
-        sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
-      };
-    }
-    {
-      name = "qs___qs_6.5.2.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
-        sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
-      };
-    }
-    {
-      name = "quick_lru___quick_lru_5.1.1.tgz";
-      path = fetchurl {
-        name = "quick_lru___quick_lru_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz";
-        sha1 = "366493e6b3e42a3a6885e2e99d18f80fb7a8c932";
-      };
-    }
-    {
-      name = "randombytes___randombytes_2.1.0.tgz";
-      path = fetchurl {
-        name = "randombytes___randombytes_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz";
-        sha1 = "df6f84372f0270dc65cdf6291349ab7a473d4f2a";
-      };
-    }
-    {
-      name = "range_parser___range_parser_1.2.1.tgz";
-      path = fetchurl {
-        name = "range_parser___range_parser_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
-        sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
-      };
-    }
-    {
-      name = "raw_body___raw_body_2.4.0.tgz";
-      path = fetchurl {
-        name = "raw_body___raw_body_2.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
-        sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
-      };
-    }
-    {
-      name = "rc___rc_1.2.8.tgz";
-      path = fetchurl {
-        name = "rc___rc_1.2.8.tgz";
-        url  = "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz";
-        sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
-      };
-    }
-    {
-      name = "readable_stream___readable_stream_2.3.7.tgz";
-      path = fetchurl {
-        name = "readable_stream___readable_stream_2.3.7.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
-        sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
-      };
-    }
-    {
-      name = "readable_stream___readable_stream_3.6.0.tgz";
-      path = fetchurl {
-        name = "readable_stream___readable_stream_3.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
-      };
-    }
-    {
-      name = "readdirp___readdirp_3.5.0.tgz";
-      path = fetchurl {
-        name = "readdirp___readdirp_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz";
-        sha1 = "9ba74c019b15d365278d2e91bb8c48d7b4d42c9e";
-      };
-    }
-    {
-      name = "reduce_flatten___reduce_flatten_2.0.0.tgz";
-      path = fetchurl {
-        name = "reduce_flatten___reduce_flatten_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/reduce-flatten/-/reduce-flatten-2.0.0.tgz";
-        sha1 = "734fd84e65f375d7ca4465c69798c25c9d10ae27";
-      };
-    }
-    {
-      name = "release_zalgo___release_zalgo_1.0.0.tgz";
-      path = fetchurl {
-        name = "release_zalgo___release_zalgo_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz";
-        sha1 = "09700b7e5074329739330e535c5a90fb67851730";
-      };
-    }
-    {
-      name = "request_promise_core___request_promise_core_1.1.4.tgz";
-      path = fetchurl {
-        name = "request_promise_core___request_promise_core_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz";
-        sha1 = "3eedd4223208d419867b78ce815167d10593a22f";
-      };
-    }
-    {
-      name = "request_promise___request_promise_4.2.6.tgz";
-      path = fetchurl {
-        name = "request_promise___request_promise_4.2.6.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.6.tgz";
-        sha1 = "7e7e5b9578630e6f598e3813c0f8eb342a27f0a2";
-      };
-    }
-    {
-      name = "request___request_2.88.2.tgz";
-      path = fetchurl {
-        name = "request___request_2.88.2.tgz";
-        url  = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
-        sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
-      };
-    }
-    {
-      name = "require_directory___require_directory_2.1.1.tgz";
-      path = fetchurl {
-        name = "require_directory___require_directory_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
-        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
-      };
-    }
-    {
-      name = "require_main_filename___require_main_filename_2.0.0.tgz";
-      path = fetchurl {
-        name = "require_main_filename___require_main_filename_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha1 = "d0b329ecc7cc0f61649f62215be69af54aa8989b";
-      };
-    }
-    {
-      name = "resolve_alpn___resolve_alpn_1.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_alpn___resolve_alpn_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.0.0.tgz";
-        sha1 = "745ad60b3d6aff4b4a48e01b8c0bdc70959e0e8c";
-      };
-    }
-    {
-      name = "resolve_from___resolve_from_5.0.0.tgz";
-      path = fetchurl {
-        name = "resolve_from___resolve_from_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz";
-        sha1 = "c35225843df8f776df21c57557bc087e9dfdfc69";
-      };
-    }
-    {
-      name = "resolve___resolve_1.18.1.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.18.1.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.18.1.tgz";
-        sha1 = "018fcb2c5b207d2a6424aee361c5a266da8f4130";
-      };
-    }
-    {
-      name = "resolve___resolve_1.1.7.tgz";
-      path = fetchurl {
-        name = "resolve___resolve_1.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz";
-        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
-      };
-    }
-    {
-      name = "responselike___responselike_2.0.0.tgz";
-      path = fetchurl {
-        name = "responselike___responselike_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/responselike/-/responselike-2.0.0.tgz";
-        sha1 = "26391bcc3174f750f9a79eacc40a12a5c42d7723";
-      };
-    }
-    {
-      name = "rimraf___rimraf_3.0.2.tgz";
-      path = fetchurl {
-        name = "rimraf___rimraf_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
-        sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
-      };
-    }
-    {
-      name = "safe_buffer___safe_buffer_5.1.2.tgz";
-      path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
-      };
-    }
-    {
-      name = "safe_buffer___safe_buffer_5.2.1.tgz";
-      path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
-        sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
-      };
-    }
-    {
-      name = "safer_buffer___safer_buffer_2.1.2.tgz";
-      path = fetchurl {
-        name = "safer_buffer___safer_buffer_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
-      };
-    }
-    {
-      name = "sanitize_html___sanitize_html_1.27.5.tgz";
-      path = fetchurl {
-        name = "sanitize_html___sanitize_html_1.27.5.tgz";
-        url  = "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-1.27.5.tgz";
-        sha1 = "6c8149462adb23e360e1bb71cc0bae7f08c823c7";
-      };
-    }
-    {
-      name = "semver_closest___semver_closest_0.1.2.tgz";
-      path = fetchurl {
-        name = "semver_closest___semver_closest_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/semver-closest/-/semver-closest-0.1.2.tgz";
-        sha1 = "ede8d4d5fb04303bb0c334fff69d288cce7fc7db";
-      };
-    }
-    {
-      name = "semver___semver_5.7.1.tgz";
-      path = fetchurl {
-        name = "semver___semver_5.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
-        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
-      };
-    }
-    {
-      name = "semver___semver_6.3.0.tgz";
-      path = fetchurl {
-        name = "semver___semver_6.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
-        sha1 = "ee0a64c8af5e8ceea67687b133761e1becbd1d3d";
-      };
-    }
-    {
-      name = "send___send_0.17.1.tgz";
-      path = fetchurl {
-        name = "send___send_0.17.1.tgz";
-        url  = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
-        sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
-      };
-    }
-    {
-      name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
-      path = fetchurl {
-        name = "serialize_javascript___serialize_javascript_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
-        sha1 = "7886ec848049a462467a97d3d918ebb2aaf934f4";
-      };
-    }
-    {
-      name = "serve_static___serve_static_1.14.1.tgz";
-      path = fetchurl {
-        name = "serve_static___serve_static_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
-        sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
-      };
-    }
-    {
-      name = "set_blocking___set_blocking_2.0.0.tgz";
-      path = fetchurl {
-        name = "set_blocking___set_blocking_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
-        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
-      };
-    }
-    {
-      name = "setimmediate___setimmediate_1.0.5.tgz";
-      path = fetchurl {
-        name = "setimmediate___setimmediate_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
-        sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
-      };
-    }
-    {
-      name = "setprototypeof___setprototypeof_1.1.1.tgz";
-      path = fetchurl {
-        name = "setprototypeof___setprototypeof_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
-      };
-    }
-    {
-      name = "shebang_command___shebang_command_2.0.0.tgz";
-      path = fetchurl {
-        name = "shebang_command___shebang_command_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
-        sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
-      };
-    }
-    {
-      name = "shebang_regex___shebang_regex_3.0.0.tgz";
-      path = fetchurl {
-        name = "shebang_regex___shebang_regex_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
-        sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
-      };
-    }
-    {
-      name = "siginfo___siginfo_2.0.0.tgz";
-      path = fetchurl {
-        name = "siginfo___siginfo_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz";
-        sha1 = "32e76c70b79724e3bb567cb9d543eb858ccfaf30";
-      };
-    }
-    {
-      name = "signal_exit___signal_exit_3.0.3.tgz";
-      path = fetchurl {
-        name = "signal_exit___signal_exit_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz";
-        sha1 = "a1410c2edd8f077b08b4e253c8eacfcaf057461c";
-      };
-    }
-    {
-      name = "simple_concat___simple_concat_1.0.1.tgz";
-      path = fetchurl {
-        name = "simple_concat___simple_concat_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz";
-        sha1 = "f46976082ba35c2263f1c8ab5edfe26c41c9552f";
-      };
-    }
-    {
-      name = "simple_get___simple_get_3.1.0.tgz";
-      path = fetchurl {
-        name = "simple_get___simple_get_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/simple-get/-/simple-get-3.1.0.tgz";
-        sha1 = "b45be062435e50d159540b576202ceec40b9c6b3";
-      };
-    }
-    {
-      name = "simple_markdown___simple_markdown_0.7.2.tgz";
-      path = fetchurl {
-        name = "simple_markdown___simple_markdown_0.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/simple-markdown/-/simple-markdown-0.7.2.tgz";
-        sha1 = "896cc3e3dd9acd068d30e696bce70b0b97655665";
-      };
-    }
-    {
-      name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
-      path = fetchurl {
-        name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
-        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
-      };
-    }
-    {
-      name = "source_map_support___source_map_support_0.5.19.tgz";
-      path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.19.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
-        sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
-      };
-    }
-    {
-      name = "source_map___source_map_0.5.7.tgz";
-      path = fetchurl {
-        name = "source_map___source_map_0.5.7.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
-        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
-      };
-    }
-    {
-      name = "source_map___source_map_0.6.1.tgz";
-      path = fetchurl {
-        name = "source_map___source_map_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
-        sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
-      };
-    }
-    {
-      name = "spawn_wrap___spawn_wrap_2.0.0.tgz";
-      path = fetchurl {
-        name = "spawn_wrap___spawn_wrap_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz";
-        sha1 = "103685b8b8f9b79771318827aa78650a610d457e";
-      };
-    }
-    {
-      name = "spex___spex_3.0.2.tgz";
-      path = fetchurl {
-        name = "spex___spex_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/spex/-/spex-3.0.2.tgz";
-        sha1 = "7d0df635d92210847d5d92ce8abf45dfba3a8549";
-      };
-    }
-    {
-      name = "split2___split2_3.2.2.tgz";
-      path = fetchurl {
-        name = "split2___split2_3.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz";
-        sha1 = "bf2cf2a37d838312c249c89206fd7a17dd12365f";
-      };
-    }
-    {
-      name = "sprintf_js___sprintf_js_1.0.3.tgz";
-      path = fetchurl {
-        name = "sprintf_js___sprintf_js_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
-        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
-      };
-    }
-    {
-      name = "sshpk___sshpk_1.16.1.tgz";
-      path = fetchurl {
-        name = "sshpk___sshpk_1.16.1.tgz";
-        url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
-        sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
-      };
-    }
-    {
-      name = "stack_trace___stack_trace_0.0.10.tgz";
-      path = fetchurl {
-        name = "stack_trace___stack_trace_0.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz";
-        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
-      };
-    }
-    {
-      name = "stackback___stackback_0.0.2.tgz";
-      path = fetchurl {
-        name = "stackback___stackback_0.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz";
-        sha1 = "1ac8a0d9483848d1695e418b6d031a3c3ce68e3b";
-      };
-    }
-    {
-      name = "statuses___statuses_1.5.0.tgz";
-      path = fetchurl {
-        name = "statuses___statuses_1.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
-        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
-      };
-    }
-    {
-      name = "stealthy_require___stealthy_require_1.1.1.tgz";
-      path = fetchurl {
-        name = "stealthy_require___stealthy_require_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
-        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
-      };
-    }
-    {
-      name = "steno___steno_0.4.4.tgz";
-      path = fetchurl {
-        name = "steno___steno_0.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/steno/-/steno-0.4.4.tgz";
-        sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb";
-      };
-    }
-    {
-      name = "string_width___string_width_1.0.2.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
-      };
-    }
-    {
-      name = "string_width___string_width_2.1.1.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
-        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
-      };
-    }
-    {
-      name = "string_width___string_width_3.1.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
-        sha1 = "22767be21b62af1081574306f69ac51b62203961";
-      };
-    }
-    {
-      name = "string_width___string_width_4.2.0.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_4.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz";
-        sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
-      };
-    }
-    {
-      name = "string_decoder___string_decoder_1.3.0.tgz";
-      path = fetchurl {
-        name = "string_decoder___string_decoder_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
-        sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
-      };
-    }
-    {
-      name = "string_decoder___string_decoder_1.1.1.tgz";
-      path = fetchurl {
-        name = "string_decoder___string_decoder_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
-        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_3.0.1.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
-        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_4.0.0.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
-        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_5.2.0.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha1 = "8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae";
-      };
-    }
-    {
-      name = "strip_ansi___strip_ansi_6.0.0.tgz";
-      path = fetchurl {
-        name = "strip_ansi___strip_ansi_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
-        sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
-      };
-    }
-    {
-      name = "strip_bom___strip_bom_4.0.0.tgz";
-      path = fetchurl {
-        name = "strip_bom___strip_bom_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz";
-        sha1 = "9c3505c1db45bcedca3d9cf7a16f5c5aa3901878";
-      };
-    }
-    {
-      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
-      path = fetchurl {
-        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
-        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
-      };
-    }
-    {
-      name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
-      path = fetchurl {
-        name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
-        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
-      };
-    }
-    {
-      name = "supports_color___supports_color_7.2.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_7.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
-        sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
-      };
-    }
-    {
-      name = "supports_color___supports_color_5.5.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_5.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
-        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
-      };
-    }
-    {
-      name = "supports_color___supports_color_6.1.0.tgz";
-      path = fetchurl {
-        name = "supports_color___supports_color_6.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz";
-        sha1 = "0764abc69c63d5ac842dd4867e8d025e880df8f3";
-      };
-    }
-    {
-      name = "table_layout___table_layout_1.0.1.tgz";
-      path = fetchurl {
-        name = "table_layout___table_layout_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/table-layout/-/table-layout-1.0.1.tgz";
-        sha1 = "8411181ee951278ad0638aea2f779a9ce42894f9";
-      };
-    }
-    {
-      name = "tar_fs___tar_fs_2.1.0.tgz";
-      path = fetchurl {
-        name = "tar_fs___tar_fs_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz";
-        sha1 = "d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5";
-      };
-    }
-    {
-      name = "tar_stream___tar_stream_2.1.4.tgz";
-      path = fetchurl {
-        name = "tar_stream___tar_stream_2.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz";
-        sha1 = "c4fb1a11eb0da29b893a5b25476397ba2d053bfa";
-      };
-    }
-    {
-      name = "tar___tar_4.4.10.tgz";
-      path = fetchurl {
-        name = "tar___tar_4.4.10.tgz";
-        url  = "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz";
-        sha1 = "946b2810b9a5e0b26140cf78bea6b0b0d689eba1";
-      };
-    }
-    {
-      name = "tdigest___tdigest_0.1.1.tgz";
-      path = fetchurl {
-        name = "tdigest___tdigest_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz";
-        sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021";
-      };
-    }
-    {
-      name = "test_exclude___test_exclude_6.0.0.tgz";
-      path = fetchurl {
-        name = "test_exclude___test_exclude_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz";
-        sha1 = "04a8698661d805ea6fa293b6cb9e63ac044ef15e";
-      };
-    }
-    {
-      name = "text_hex___text_hex_1.0.0.tgz";
-      path = fetchurl {
-        name = "text_hex___text_hex_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz";
-        sha1 = "69dc9c1b17446ee79a92bf5b884bb4b9127506f5";
-      };
-    }
-    {
-      name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
-      path = fetchurl {
-        name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
-        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
-      };
-    }
-    {
-      name = "to_regex_range___to_regex_range_5.0.1.tgz";
-      path = fetchurl {
-        name = "to_regex_range___to_regex_range_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
-        sha1 = "1648c44aae7c8d988a326018ed72f5b4dd0392e4";
-      };
-    }
-    {
-      name = "toidentifier___toidentifier_1.0.0.tgz";
-      path = fetchurl {
-        name = "toidentifier___toidentifier_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
-      };
-    }
-    {
-      name = "tough_cookie___tough_cookie_2.5.0.tgz";
-      path = fetchurl {
-        name = "tough_cookie___tough_cookie_2.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
-      };
-    }
-    {
-      name = "triple_beam___triple_beam_1.3.0.tgz";
-      path = fetchurl {
-        name = "triple_beam___triple_beam_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz";
-        sha1 = "a595214c7298db8339eeeee083e4d10bd8cb8dd9";
-      };
-    }
-    {
-      name = "ts_node___ts_node_8.10.2.tgz";
-      path = fetchurl {
-        name = "ts_node___ts_node_8.10.2.tgz";
-        url  = "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz";
-        sha1 = "eee03764633b1234ddd37f8db9ec10b75ec7fb8d";
-      };
-    }
-    {
-      name = "tslib___tslib_1.14.1.tgz";
-      path = fetchurl {
-        name = "tslib___tslib_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
-        sha1 = "cf2d38bdc34a134bcaf1091c41f6619e2f672d00";
-      };
-    }
-    {
-      name = "tslint___tslint_5.20.1.tgz";
-      path = fetchurl {
-        name = "tslint___tslint_5.20.1.tgz";
-        url  = "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz";
-        sha1 = "e401e8aeda0152bc44dd07e614034f3f80c67b7d";
-      };
-    }
-    {
-      name = "tsutils___tsutils_2.29.0.tgz";
-      path = fetchurl {
-        name = "tsutils___tsutils_2.29.0.tgz";
-        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
-        sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
-      };
-    }
-    {
-      name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-      path = fetchurl {
-        name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
-      };
-    }
-    {
-      name = "tweetnacl___tweetnacl_0.14.5.tgz";
-      path = fetchurl {
-        name = "tweetnacl___tweetnacl_0.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
-      };
-    }
-    {
-      name = "tweetnacl___tweetnacl_1.0.3.tgz";
-      path = fetchurl {
-        name = "tweetnacl___tweetnacl_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz";
-        sha1 = "ac0af71680458d8a6378d0d0d050ab1407d35596";
-      };
-    }
-    {
-      name = "type_detect___type_detect_4.0.8.tgz";
-      path = fetchurl {
-        name = "type_detect___type_detect_4.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz";
-        sha1 = "7646fb5f18871cfbb7749e69bd39a6388eb7450c";
-      };
-    }
-    {
-      name = "type_fest___type_fest_0.8.1.tgz";
-      path = fetchurl {
-        name = "type_fest___type_fest_0.8.1.tgz";
-        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz";
-        sha1 = "09e249ebde851d3b1e48d27c105444667f17b83d";
-      };
-    }
-    {
-      name = "type_is___type_is_1.6.18.tgz";
-      path = fetchurl {
-        name = "type_is___type_is_1.6.18.tgz";
-        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
-        sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
-      };
-    }
-    {
-      name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
-      path = fetchurl {
-        name = "typedarray_to_buffer___typedarray_to_buffer_3.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
-        sha1 = "a97ee7a9ff42691b9f783ff1bc5112fe3fca9080";
-      };
-    }
-    {
-      name = "typescript___typescript_3.9.7.tgz";
-      path = fetchurl {
-        name = "typescript___typescript_3.9.7.tgz";
-        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
-        sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
-      };
-    }
-    {
-      name = "typical___typical_4.0.0.tgz";
-      path = fetchurl {
-        name = "typical___typical_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz";
-        sha1 = "cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4";
-      };
-    }
-    {
-      name = "typical___typical_5.2.0.tgz";
-      path = fetchurl {
-        name = "typical___typical_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/typical/-/typical-5.2.0.tgz";
-        sha1 = "4daaac4f2b5315460804f0acf6cb69c52bb93066";
-      };
-    }
-    {
-      name = "unescape_html___unescape_html_1.1.0.tgz";
-      path = fetchurl {
-        name = "unescape_html___unescape_html_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/unescape-html/-/unescape-html-1.1.0.tgz";
-        sha1 = "d24705e82f0c9e62a87ada62f3cd96303d7d2a3c";
-      };
-    }
-    {
-      name = "unpipe___unpipe_1.0.0.tgz";
-      path = fetchurl {
-        name = "unpipe___unpipe_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
-        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
-      };
-    }
-    {
-      name = "uri_js___uri_js_4.4.0.tgz";
-      path = fetchurl {
-        name = "uri_js___uri_js_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz";
-        sha1 = "aa714261de793e8a82347a7bcc9ce74e86f28602";
-      };
-    }
-    {
-      name = "useragent_generator___useragent_generator_1.1.1_amkt_22079_finish.0.tgz";
-      path = fetchurl {
-        name = "useragent_generator___useragent_generator_1.1.1_amkt_22079_finish.0.tgz";
-        url  = "https://registry.yarnpkg.com/useragent-generator/-/useragent-generator-1.1.1-amkt-22079-finish.0.tgz";
-        sha1 = "caa8bde7afc4ff28bf157fdf7ad42094be6d4e16";
-      };
-    }
-    {
-      name = "util_deprecate___util_deprecate_1.0.2.tgz";
-      path = fetchurl {
-        name = "util_deprecate___util_deprecate_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
-      };
-    }
-    {
-      name = "utils_merge___utils_merge_1.0.1.tgz";
-      path = fetchurl {
-        name = "utils_merge___utils_merge_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
-        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
-      };
-    }
-    {
-      name = "uuid___uuid_3.4.0.tgz";
-      path = fetchurl {
-        name = "uuid___uuid_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
-        sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
-      };
-    }
-    {
-      name = "vary___vary_1.1.2.tgz";
-      path = fetchurl {
-        name = "vary___vary_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
-        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
-      };
-    }
-    {
-      name = "verror___verror_1.10.0.tgz";
-      path = fetchurl {
-        name = "verror___verror_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
-      };
-    }
-    {
-      name = "which_module___which_module_2.0.0.tgz";
-      path = fetchurl {
-        name = "which_module___which_module_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
-      };
-    }
-    {
-      name = "which_pm_runs___which_pm_runs_1.0.0.tgz";
-      path = fetchurl {
-        name = "which_pm_runs___which_pm_runs_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
-        sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
-      };
-    }
-    {
-      name = "which___which_2.0.2.tgz";
-      path = fetchurl {
-        name = "which___which_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
-        sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
-      };
-    }
-    {
-      name = "why_is_node_running___why_is_node_running_2.2.0.tgz";
-      path = fetchurl {
-        name = "why_is_node_running___why_is_node_running_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.0.tgz";
-        sha1 = "fd0a73ea9303920fbb45457c6ecc392ebec90bd2";
-      };
-    }
-    {
-      name = "wide_align___wide_align_1.1.3.tgz";
-      path = fetchurl {
-        name = "wide_align___wide_align_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
-        sha1 = "ae074e6bdc0c14a431e804e624549c633b000457";
-      };
-    }
-    {
-      name = "winston_daily_rotate_file___winston_daily_rotate_file_4.5.0.tgz";
-      path = fetchurl {
-        name = "winston_daily_rotate_file___winston_daily_rotate_file_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/winston-daily-rotate-file/-/winston-daily-rotate-file-4.5.0.tgz";
-        sha1 = "3914ac57c4bdae1138170bec85af0c2217b253b1";
-      };
-    }
-    {
-      name = "winston_transport___winston_transport_4.4.0.tgz";
-      path = fetchurl {
-        name = "winston_transport___winston_transport_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.4.0.tgz";
-        sha1 = "17af518daa690d5b2ecccaa7acf7b20ca7925e59";
-      };
-    }
-    {
-      name = "winston___winston_3.3.3.tgz";
-      path = fetchurl {
-        name = "winston___winston_3.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/winston/-/winston-3.3.3.tgz";
-        sha1 = "ae6172042cafb29786afa3d09c8ff833ab7c9170";
-      };
-    }
-    {
-      name = "wordwrapjs___wordwrapjs_4.0.0.tgz";
-      path = fetchurl {
-        name = "wordwrapjs___wordwrapjs_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-4.0.0.tgz";
-        sha1 = "9aa9394155993476e831ba8e59fb5795ebde6800";
-      };
-    }
-    {
-      name = "workerpool___workerpool_6.0.2.tgz";
-      path = fetchurl {
-        name = "workerpool___workerpool_6.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/workerpool/-/workerpool-6.0.2.tgz";
-        sha1 = "e241b43d8d033f1beb52c7851069456039d1d438";
-      };
-    }
-    {
-      name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha1 = "1fd1f67235d5b6d0fee781056001bfb694c03b09";
-      };
-    }
-    {
-      name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
-        sha1 = "e9393ba07102e6c91a3b221478f0257cd2856e53";
-      };
-    }
-    {
-      name = "wrappy___wrappy_1.0.2.tgz";
-      path = fetchurl {
-        name = "wrappy___wrappy_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
-      };
-    }
-    {
-      name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
-      path = fetchurl {
-        name = "write_file_atomic___write_file_atomic_3.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
-        sha1 = "56bd5c5a5c70481cd19c571bd39ab965a5de56e8";
-      };
-    }
-    {
-      name = "ws___ws_7.3.1.tgz";
-      path = fetchurl {
-        name = "ws___ws_7.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz";
-        sha1 = "d0547bf67f7ce4f12a72dfe31262c68d7dc551c8";
-      };
-    }
-    {
-      name = "xtend___xtend_4.0.2.tgz";
-      path = fetchurl {
-        name = "xtend___xtend_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz";
-        sha1 = "bb72779f5fa465186b1f438f674fa347fdb5db54";
-      };
-    }
-    {
-      name = "y18n___y18n_4.0.0.tgz";
-      path = fetchurl {
-        name = "y18n___y18n_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz";
-        sha1 = "95ef94f85ecc81d007c264e190a120f0a3c8566b";
-      };
-    }
-    {
-      name = "yallist___yallist_3.1.1.tgz";
-      path = fetchurl {
-        name = "yallist___yallist_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz";
-        sha1 = "dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_13.1.2.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_13.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz";
-        sha1 = "130f09702ebaeef2650d54ce6e3e5706f7a4fb38";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_18.1.3.tgz";
-      path = fetchurl {
-        name = "yargs_parser___yargs_parser_18.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
-        sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
-      };
-    }
-    {
-      name = "yargs_unparser___yargs_unparser_2.0.0.tgz";
-      path = fetchurl {
-        name = "yargs_unparser___yargs_unparser_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz";
-        sha1 = "f131f9226911ae5d9ad38c432fe809366c2325eb";
-      };
-    }
-    {
-      name = "yargs___yargs_13.3.2.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_13.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz";
-        sha1 = "ad7ffefec1aa59565ac915f82dccb38a9c31a2dd";
-      };
-    }
-    {
-      name = "yargs___yargs_15.4.1.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_15.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz";
-        sha1 = "0d87a16de01aee9d8bec2bfbf74f67851730f4f8";
-      };
-    }
-    {
-      name = "yn___yn_3.1.1.tgz";
-      path = fetchurl {
-        name = "yn___yn_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz";
-        sha1 = "1e87401a09d767c1d5eab26a6e4c185182d2eb50";
-      };
-    }
-  ];
-}
diff --git a/pkgs/servers/mautrix-facebook/default.nix b/pkgs/servers/mautrix-facebook/default.nix
index 4c332b0865a47..c3e2eca2de371 100644
--- a/pkgs/servers/mautrix-facebook/default.nix
+++ b/pkgs/servers/mautrix-facebook/default.nix
@@ -8,13 +8,13 @@
 
 python3.pkgs.buildPythonPackage rec {
   pname = "mautrix-facebook";
-  version = "unstable-2022-05-06";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "facebook";
-    rev = "5e2c4e7f5a38e3c5d984d690c0ebee9b6bb4768c";
-    hash = "sha256-ukFtVRrmaJVVwgp5siwEwbfq6Yq5rmu3XJA5H2n/eJU=";
+    rev = "v${version}";
+    hash = "sha256-MlT8jNUpJMgaUO9ZIYjpv8l3evdFjfEOSvdAdSlOUvg=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -55,6 +55,7 @@ python3.pkgs.buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mautrix/facebook";
+    changelog = "https://github.com/mautrix/facebook/releases/tag/v${version}";
     description = "A Matrix-Facebook Messenger puppeting bridge";
     license = licenses.agpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/servers/monitoring/unifi-poller/default.nix b/pkgs/servers/monitoring/unifi-poller/default.nix
index e2e55308d996a..83140c81f6379 100644
--- a/pkgs/servers/monitoring/unifi-poller/default.nix
+++ b/pkgs/servers/monitoring/unifi-poller/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "unifi-poller";
-  version = "2.1.7";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "unifi-poller";
     repo = "unifi-poller";
     rev = "v${version}";
-    sha256 = "sha256-79aBqYS8B+gIqmhu/UIA7g+FvTS/68qsK7qi5MGH10k=";
+    sha256 = "sha256-xh9s1xAhIeEmeDprl7iPdE6pxmxZjzgMvilobiIoJp0=";
   };
 
-  vendorSha256 = "sha256-WVYQ3cZOO+EyJRTFcMjziDHwqqinm1IvxvSLuHTaqT8=";
+  vendorSha256 = "sha256-HoYgBKTl9HIMVzzzNYtRrfmqb7HCpPHVPeR4gUXneWk=";
 
   ldflags = [
     "-w" "-s"
diff --git a/pkgs/tools/inputmethods/touchegg/default.nix b/pkgs/tools/inputmethods/touchegg/default.nix
index d58df8bd2478a..c20fd50453ec9 100644
--- a/pkgs/tools/inputmethods/touchegg/default.nix
+++ b/pkgs/tools/inputmethods/touchegg/default.nix
@@ -18,16 +18,23 @@
 
 stdenv.mkDerivation rec {
   pname = "touchegg";
-  version = "2.0.14";
+  version = "2.0.15";
 
   src = fetchFromGitHub {
     owner = "JoseExposito";
     repo = pname;
     rev = version;
-    sha256 = "sha256-2ZuFZ2PHhbxNTmGdlZONgPfEJC7lI5Rc6dgiBj7VG2o=";
+    sha256 = "sha256-oz3+hNNjQ/5vXWPMuhA2N2KK8W8S42WeSeDbhV4oJ9M=";
   };
 
   patches = lib.optionals withPantheon [
+    # Required for the next patch to apply
+    # Reverts https://github.com/JoseExposito/touchegg/pull/603
+    (fetchpatch {
+      url = "https://github.com/JoseExposito/touchegg/commit/34e947181d84620021601e7f28deb1983a154da8.patch";
+      sha256 = "sha256-qbWwmEzVXvDAhhrGvMkKN4YNtnFfRW+Yra+i6VEQX4g=";
+      revert = true;
+    })
     # Disable per-application gesture by default to make sure the default
     # config does not conflict with Pantheon switchboard settings.
     (fetchpatch {
diff --git a/pkgs/tools/misc/addlicense/default.nix b/pkgs/tools/misc/addlicense/default.nix
index 7980185bca426..a01ae0de0834e 100644
--- a/pkgs/tools/misc/addlicense/default.nix
+++ b/pkgs/tools/misc/addlicense/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "addlicense";
-  version = "unstable-2021-04-22";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "addlicense";
-    rev = "13e73a7f8fcb5696256b6a7b7addabf1070ad4b9";
-    sha256 = "sha256-UiJaTWCBup/Ub9NZIvkb67TvcUllV/AmYAKVO4egRqc=";
+    rev = "v${version}";
+    sha256 = "sha256-Vi+U0b9tTJitStZr1wSotr82Y2gA4IjvHLAa+rwGH/g=";
   };
 
   vendorSha256 = "sha256-2mncc21ecpv17Xp8PA9GIodoaCxNBacbbya/shU8T9Y=";
diff --git a/pkgs/tools/networking/doggo/default.nix b/pkgs/tools/networking/doggo/default.nix
index 9b8bf0fb2ce4d..68ac50221b686 100644
--- a/pkgs/tools/networking/doggo/default.nix
+++ b/pkgs/tools/networking/doggo/default.nix
@@ -38,7 +38,7 @@ buildGoModule rec {
       It outputs information in a neat concise manner and supports protocols like DoH, DoT, DoQ, and DNSCrypt as well
     '';
     license = licenses.gpl3Only;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ georgesalkhouri ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 3b9b71e354c3d..3db935717a8d3 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1008,6 +1008,8 @@ with pkgs;
 
   sirula = callPackage ../tools/wayland/sirula { };
 
+  sitelen-seli-kiwen = callPackage ../data/fonts/sitelen-seli-kiwen {};
+
   srcOnly = callPackage ../build-support/src-only { };
 
   subnetcalc = callPackage ../tools/networking/subnetcalc { };
@@ -26532,6 +26534,8 @@ with pkgs;
 
   line-awesome = callPackage ../data/fonts/line-awesome { };
 
+  linja-pi-pu-lukin = callPackage ../data/fonts/linja-pi-pu-lukin {};
+
   linux-manual = callPackage ../data/documentation/linux-manual { };
 
   lklug-sinhala = callPackage ../data/fonts/lklug-sinhala {};
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index ddf69ea75ad40..9bcbe6cc586cf 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -374,6 +374,8 @@ in {
 
     rtl8723bs = callPackage ../os-specific/linux/rtl8723bs { };
 
+    rtl8723ds = callPackage ../os-specific/linux/rtl8723ds { };
+
     rtl8812au = callPackage ../os-specific/linux/rtl8812au { };
 
     rtl8814au = callPackage ../os-specific/linux/rtl8814au { };