summary refs log tree commit diff
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas@tuxera.com>2018-02-06 04:11:23 +0200
committerTuomas Tynkkynen <tuomas@tuxera.com>2018-02-06 04:11:23 +0200
commit9548028a22f3fbc44a450d5ccedaa722479a23ec (patch)
tree4e405124ab321c69cd9997348fc4fec54540c1a2
parentc08e4b9102f1b1bd7cd23cc84c61292f1f45aa7e (diff)
parentda82aff2b05c684cc8239627b54a30002281e35b (diff)
downloadnixpkgs-9548028a22f3fbc44a450d5ccedaa722479a23ec.tar
nixpkgs-9548028a22f3fbc44a450d5ccedaa722479a23ec.tar.gz
nixpkgs-9548028a22f3fbc44a450d5ccedaa722479a23ec.tar.bz2
nixpkgs-9548028a22f3fbc44a450d5ccedaa722479a23ec.tar.lz
nixpkgs-9548028a22f3fbc44a450d5ccedaa722479a23ec.tar.xz
nixpkgs-9548028a22f3fbc44a450d5ccedaa722479a23ec.tar.zst
nixpkgs-9548028a22f3fbc44a450d5ccedaa722479a23ec.zip
Merge remote-tracking branch 'upstream/master' into staging
Conflicts:
	pkgs/os-specific/linux/cpupower/default.nix
-rw-r--r--lib/maintainers.nix1
-rw-r--r--nixos/doc/manual/release-notes/rl-1803.xml14
-rw-r--r--nixos/modules/programs/shadow.nix10
-rw-r--r--nixos/modules/services/mail/dovecot.nix2
-rw-r--r--nixos/modules/services/misc/matrix-synapse.nix63
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix12
-rw-r--r--nixos/release.nix1
-rw-r--r--nixos/tests/matrix-synapse.nix30
-rw-r--r--pkgs/applications/audio/normalize/default.nix6
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix20
-rw-r--r--pkgs/applications/misc/calibre/default.nix4
-rw-r--r--pkgs/applications/misc/gnuradio/wrapper.nix19
-rw-r--r--pkgs/applications/misc/synapse/default.nix10
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/science/logic/symbiyosys/default.nix8
-rw-r--r--pkgs/applications/science/math/sage/spkg-giac.patch17
-rw-r--r--pkgs/applications/science/math/sage/spkg-git.patch11
-rw-r--r--pkgs/applications/science/math/sage/spkg-singular.patch16
-rw-r--r--pkgs/applications/version-management/git-and-tools/grv/default.nix4
-rw-r--r--pkgs/applications/version-management/src/default.nix4
-rw-r--r--pkgs/applications/video/obs-studio/default.nix4
-rw-r--r--pkgs/applications/window-managers/way-cooler/default.nix53
-rw-r--r--pkgs/applications/window-managers/way-cooler/way-cooler.nix2780
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-bg.nix2321
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-grab.nix1343
-rw-r--r--pkgs/applications/window-managers/way-cooler/wc-lock.nix2091
-rw-r--r--pkgs/build-support/rust/default-crate-overrides.nix26
-rw-r--r--pkgs/desktops/plasma-5/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/plasma-integration/D9070.patch24
-rw-r--r--pkgs/desktops/plasma-5/plasma-integration/default.nix (renamed from pkgs/desktops/plasma-5/plasma-integration.nix)7
-rw-r--r--pkgs/development/compilers/arachne-pnr/default.nix6
-rw-r--r--pkgs/development/compilers/yosys/default.nix8
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix1
-rw-r--r--pkgs/development/interpreters/python/cpython/3.4/default.nix4
-rw-r--r--pkgs/development/interpreters/python/cpython/3.5/default.nix4
-rw-r--r--pkgs/development/libraries/libassuan/default.nix13
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix3
-rw-r--r--pkgs/development/libraries/libksba/default.nix3
-rw-r--r--pkgs/development/libraries/libwhereami/default.nix4
-rw-r--r--pkgs/development/libraries/mpich2/default.nix40
-rw-r--r--pkgs/development/python-modules/aioimaplib/default.nix26
-rw-r--r--pkgs/development/python-modules/asynctest/default.nix33
-rw-r--r--pkgs/development/python-modules/can/default.nix27
-rw-r--r--pkgs/development/python-modules/canmatrix/default.nix46
-rw-r--r--pkgs/development/python-modules/canopen/default.nix46
-rw-r--r--pkgs/development/python-modules/imaplib2/default.nix22
-rw-r--r--pkgs/development/python-modules/luftdaten/default.nix25
-rw-r--r--pkgs/development/python-modules/nose-parameterized/default.nix22
-rw-r--r--pkgs/development/python-modules/parameterized/default.nix28
-rw-r--r--pkgs/development/python-modules/pybase64/default.nix25
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/electron/default.nix10
-rw-r--r--pkgs/development/tools/icestorm/default.nix6
-rw-r--r--pkgs/development/tools/misc/loccount/default.nix4
-rw-r--r--pkgs/games/assaultcube/assaultcube-next.patch11
-rw-r--r--pkgs/games/assaultcube/default.nix82
-rw-r--r--pkgs/games/assaultcube/launcher.sh20
-rw-r--r--pkgs/misc/themes/greybird/default.nix4
-rw-r--r--pkgs/os-specific/linux/cifs-utils/default.nix7
-rw-r--r--pkgs/os-specific/linux/cpupower/default.nix24
-rw-r--r--pkgs/os-specific/linux/hwdata/default.nix6
-rw-r--r--pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--pkgs/servers/misc/airsonic/default.nix4
-rw-r--r--pkgs/servers/nextcloud/default.nix4
-rw-r--r--pkgs/tools/admin/fastlane/Gemfile.lock22
-rw-r--r--pkgs/tools/admin/fastlane/gemset.nix38
-rw-r--r--pkgs/tools/graphics/fim/default.nix6
-rw-r--r--pkgs/tools/misc/edid-decode/default.nix26
-rw-r--r--pkgs/tools/misc/pick/default.nix4
-rw-r--r--pkgs/tools/misc/picocom/default.nix4
-rw-r--r--pkgs/tools/system/facter/default.nix4
-rw-r--r--pkgs/tools/system/freeipmi/default.nix8
-rw-r--r--pkgs/tools/system/htop/default.nix11
-rw-r--r--pkgs/tools/text/fanficfare/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix4
-rw-r--r--pkgs/top-level/lua-packages.nix10
-rw-r--r--pkgs/top-level/python-packages.nix40
78 files changed, 6366 insertions, 3316 deletions
diff --git a/lib/maintainers.nix b/lib/maintainers.nix
index 9ff2d53b466..d2c62ef9bb8 100644
--- a/lib/maintainers.nix
+++ b/lib/maintainers.nix
@@ -258,6 +258,7 @@
   gavin = "Gavin Rogers <gavin@praxeology.co.uk>";
   gebner = "Gabriel Ebner <gebner@gebner.org>";
   geistesk = "Alvar Penning <post@0x21.biz>";
+  genesis = "Ronan Bignaux <ronan@aimao.org>";
   georgewhewell = "George Whewell <georgerw@gmail.com>";
   gilligan = "Tobias Pflug <tobias.pflug@gmail.com>";
   giogadi = "Luis G. Torres <lgtorres42@gmail.com>";
diff --git a/nixos/doc/manual/release-notes/rl-1803.xml b/nixos/doc/manual/release-notes/rl-1803.xml
index 46cbeb0a158..8391c550afa 100644
--- a/nixos/doc/manual/release-notes/rl-1803.xml
+++ b/nixos/doc/manual/release-notes/rl-1803.xml
@@ -182,6 +182,20 @@ following incompatible changes:</para>
       <literal>lib.mkOverride</literal> can be used.
     </para>
   </listitem>
+  <listitem>
+    <para>
+      The following changes apply if the <literal>stateVersion</literal> is changed to 18.03 or higher.
+      For <literal>stateVersion = "17.09"</literal> or lower the old behavior is preserved.
+    </para>
+    <itemizedlist>
+      <listitem>
+        <para>
+          <literal>matrix-synapse</literal> uses postgresql by default instead of sqlite.
+          Migration instructions can be found <link xlink:href="https://github.com/matrix-org/synapse/blob/master/docs/postgres.rst#porting-from-sqlite"> here </link>.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </listitem>
 </itemizedlist>
 
 </section>
diff --git a/nixos/modules/programs/shadow.nix b/nixos/modules/programs/shadow.nix
index 0f3f42901ba..8ec4169207d 100644
--- a/nixos/modules/programs/shadow.nix
+++ b/nixos/modules/programs/shadow.nix
@@ -26,8 +26,9 @@ let
       # Ensure privacy for newly created home directories.
       UMASK        077
 
-      # Uncomment this to allow non-root users to change their account
-      #information.  This should be made configurable.
+      # Uncomment this and install chfn SUID to allow non-root
+      # users to change their account GECOS information.
+      # This should be made configurable.
       #CHFN_RESTRICT frwh
 
     '';
@@ -103,13 +104,12 @@ in
 
     security.wrappers = {
       su.source        = "${pkgs.shadow.su}/bin/su";
-      chfn.source      = "${pkgs.shadow.out}/bin/chfn";
+      sg.source        = "${pkgs.shadow.out}/bin/sg";
+      newgrp.source    = "${pkgs.shadow.out}/bin/newgrp";
       newuidmap.source = "${pkgs.shadow.out}/bin/newuidmap";
       newgidmap.source = "${pkgs.shadow.out}/bin/newgidmap";
     } // (if config.users.mutableUsers then {
       passwd.source    = "${pkgs.shadow.out}/bin/passwd";
-      sg.source        = "${pkgs.shadow.out}/bin/sg";
-      newgrp.source    = "${pkgs.shadow.out}/bin/newgrp";
     } else {});
   };
 }
diff --git a/nixos/modules/services/mail/dovecot.nix b/nixos/modules/services/mail/dovecot.nix
index 18101a31225..c5cb06cf54e 100644
--- a/nixos/modules/services/mail/dovecot.nix
+++ b/nixos/modules/services/mail/dovecot.nix
@@ -104,7 +104,7 @@ let
   };
 
   mailboxConfig = mailbox: ''
-    mailbox ${mailbox.name} {
+    mailbox "${mailbox.name}" {
       auto = ${toString mailbox.auto}
   '' + optionalString (mailbox.specialUse != null) ''
       special_use = \${toString mailbox.specialUse}
diff --git a/nixos/modules/services/misc/matrix-synapse.nix b/nixos/modules/services/misc/matrix-synapse.nix
index 80979547d33..7e880ad09b8 100644
--- a/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixos/modules/services/misc/matrix-synapse.nix
@@ -4,6 +4,8 @@ with lib;
 
 let
   cfg = config.services.matrix-synapse;
+  pg = config.services.postgresql;
+  usePostgresql = cfg.database_type == "psycopg2";
   logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig;
   mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${boolToString r.compress}}'';
   mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${boolToString l.tls}, x_forwarded: ${boolToString l.x_forwarded}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}'';
@@ -38,7 +40,7 @@ database: {
   name: "${cfg.database_type}",
   args: {
     ${concatStringsSep ",\n    " (
-      mapAttrsToList (n: v: "\"${n}\": ${v}") cfg.database_args
+      mapAttrsToList (n: v: "\"${n}\": ${builtins.toJSON v}") cfg.database_args
     )}
   }
 }
@@ -155,7 +157,7 @@ in {
       tls_certificate_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "/var/lib/matrix-synapse/homeserver.tls.crt";
+        example = "${cfg.dataDir}/homeserver.tls.crt";
         description = ''
           PEM encoded X509 certificate for TLS.
           You can replace the self-signed certificate that synapse
@@ -167,7 +169,7 @@ in {
       tls_private_key_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "/var/lib/matrix-synapse/homeserver.tls.key";
+        example = "${cfg.dataDir}/homeserver.tls.key";
         description = ''
           PEM encoded private key for TLS. Specify null if synapse is not
           speaking TLS directly.
@@ -176,7 +178,7 @@ in {
       tls_dh_params_path = mkOption {
         type = types.nullOr types.str;
         default = null;
-        example = "/var/lib/matrix-synapse/homeserver.tls.dh";
+        example = "${cfg.dataDir}/homeserver.tls.dh";
         description = ''
           PEM dh parameters for ephemeral keys
         '';
@@ -184,6 +186,7 @@ in {
       server_name = mkOption {
         type = types.str;
         example = "example.com";
+        default = config.networking.hostName;
         description = ''
           The domain name of the server, with optional explicit port.
           This is used by remote servers to connect to this server,
@@ -339,16 +342,39 @@ in {
       };
       database_type = mkOption {
         type = types.enum [ "sqlite3" "psycopg2" ];
-        default = "sqlite3";
+        default = if versionAtLeast config.system.stateVersion "18.03"
+          then "psycopg2"
+          else "sqlite3";
         description = ''
           The database engine name. Can be sqlite or psycopg2.
         '';
       };
+      create_local_database = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to create a local database automatically.
+        '';
+      };
+      database_name = mkOption {
+        type = types.str;
+        default = "matrix-synapse";
+        description = "Database name.";
+      };
+      database_user = mkOption {
+        type = types.str;
+        default = "matrix-synapse";
+        description = "Database user name.";
+      };
       database_args = mkOption {
         type = types.attrs;
         default = {
-          database = "${cfg.dataDir}/homeserver.db";
-        };
+          sqlite3 = { database = "${cfg.dataDir}/homeserver.db"; };
+          psycopg2 = {
+            user = cfg.database_user;
+            database = cfg.database_name;
+          };
+        }."${cfg.database_type}";
         description = ''
           Arguments to pass to the engine.
         '';
@@ -623,15 +649,36 @@ in {
         gid = config.ids.gids.matrix-synapse;
       } ];
 
+    services.postgresql.enable = mkIf usePostgresql (mkDefault true);
+
     systemd.services.matrix-synapse = {
       description = "Synapse Matrix homeserver";
-      after = [ "network.target" ];
+      after = [ "network.target" "postgresql.service" ];
       wantedBy = [ "multi-user.target" ];
       preStart = ''
         ${cfg.package}/bin/homeserver \
           --config-path ${configFile} \
           --keys-directory ${cfg.dataDir} \
           --generate-keys
+      '' + optionalString (usePostgresql && cfg.create_local_database) ''
+        if ! test -e "${cfg.dataDir}/db-created"; then
+          ${pkgs.sudo}/bin/sudo -u ${pg.superUser} \
+            ${pg.package}/bin/createuser \
+            --login \
+            --no-createdb \
+            --no-createrole \
+            --encrypted \
+            ${cfg.database_user}
+          ${pkgs.sudo}/bin/sudo -u ${pg.superUser} \
+            ${pg.package}/bin/createdb \
+            --owner=${cfg.database_user} \
+            --encoding=UTF8 \
+            --lc-collate=C \
+            --lc-ctype=C \
+            --template=template0 \
+            ${cfg.database_name}
+          touch "${cfg.dataDir}/db-created"
+        fi
       '';
       serviceConfig = {
         Type = "simple";
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 17a2cde3a65..4c76ce0bb19 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -47,6 +47,18 @@ in
             ${getBin config.hardware.pulseaudio.package}/bin/pactl load-module module-device-manager "do_routing=1"
           ''}
 
+          if [ -f "$HOME/.config/kdeglobals" ]
+          then
+              # Remove extraneous font style names.
+              # See also: https://phabricator.kde.org/D9070
+              ${getBin pkgs.gnused}/bin/sed -i "$HOME/.config/kdeglobals" \
+                  -e '/^fixed=/ s/,Regular$//' \
+                  -e '/^font=/ s/,Regular$//' \
+                  -e '/^menuFont=/ s/,Regular$//' \
+                  -e '/^smallestReadableFont=/ s/,Regular$//' \
+                  -e '/^toolBarFont=/ s/,Regular$//'
+          fi
+
           exec "${getBin plasma5.plasma-workspace}/bin/startkde"
         '';
       };
diff --git a/nixos/release.nix b/nixos/release.nix
index a396eaac9a3..a9c0aae7a52 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -292,6 +292,7 @@ in rec {
   tests.login = callTest tests/login.nix {};
   #tests.logstash = callTest tests/logstash.nix {};
   tests.mathics = callTest tests/mathics.nix {};
+  tests.matrix-synapse = callTest tests/matrix-synapse.nix {};
   tests.mesos = callTest tests/mesos.nix {};
   tests.misc = callTest tests/misc.nix {};
   tests.mongodb = callTest tests/mongodb.nix {};
diff --git a/nixos/tests/matrix-synapse.nix b/nixos/tests/matrix-synapse.nix
new file mode 100644
index 00000000000..113fb622588
--- /dev/null
+++ b/nixos/tests/matrix-synapse.nix
@@ -0,0 +1,30 @@
+import ./make-test.nix ({ pkgs, ... } : {
+
+  name = "matrix-synapse";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ corngood ];
+  };
+
+  nodes = {
+    server_postgres = args: {
+      services.matrix-synapse.enable = true;
+      services.matrix-synapse.database_type = "psycopg2";
+    };
+
+    server_sqlite = args: {
+      services.matrix-synapse.enable = true;
+      services.matrix-synapse.database_type = "sqlite3";
+    };
+  };
+
+  testScript = ''
+    startAll;
+    $server_postgres->waitForUnit("matrix-synapse.service");
+    $server_postgres->waitUntilSucceeds("curl -Lk https://localhost:8448/");
+    $server_postgres->requireActiveUnit("postgresql.service");
+    $server_sqlite->waitForUnit("matrix-synapse.service");
+    $server_sqlite->waitUntilSucceeds("curl -Lk https://localhost:8448/");
+    $server_sqlite->mustSucceed("[ -e /var/lib/matrix-synapse/homeserver.db ]");
+  '';
+
+})
diff --git a/pkgs/applications/audio/normalize/default.nix b/pkgs/applications/audio/normalize/default.nix
index ad4a06cff99..a727160ff29 100644
--- a/pkgs/applications/audio/normalize/default.nix
+++ b/pkgs/applications/audio/normalize/default.nix
@@ -1,14 +1,16 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, libmad }:
 
 stdenv.mkDerivation rec {
   name = "normalize-${version}";
   version = "0.7.7";
 
   src = fetchurl {
-    url = "mirror://savannah/normalize/normalize-0.7.7.tar.gz";
+    url = "mirror://savannah/normalize/${name}.tar.gz";
     sha256 = "1n5khss10vjjp6w69q9qcl4kqfkd0pr555lgqghrchn6rjms4mb0";
   };
 
+  buildInputs = [ libmad ];
+
   meta = with stdenv.lib; {
     homepage = http://normalize.nongnu.org/;
     description = "Audio file normalizer";
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 6cd68b6f21d..0e77094b819 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -234,12 +234,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2017.3.2"; /* updated by script */
+    version = "2017.3.3"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "0lv0nwfgm6h67mxhh0a2154ym7wcbm1qp3k1k1i00lg0lwig1rcw"; /* updated by script */
+      sha256 = "0j090863y68ppw34qkldm8h4lpbhalhqn70gb0ifj9bglf17503d"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion_Release"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -273,12 +273,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2017.3.3"; /* updated by script */
+    version = "2017.3.4"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "1wxaz25609wri2d91s9wy00gngplyjg7gzix3mzdhgysm00qizf1"; /* updated by script */
+      sha256 = "15qsfirzmmjhwzkhx36zr4n0z5lhs021n2n3wim01g309ymr4gl9"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IDEA_Release";
@@ -286,12 +286,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2017.3.3"; /* updated by script */
+    version = "2017.3.4"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jdk.tar.gz";
-      sha256 = "01d5a6m927q9bnjlpz8va8bfjnj52k8q6i3im5ygj6lwadbzawyf"; /* updated by script */
+      sha256 = "0f937s6zc1sv0gdlxf9kkc8l8rg78a5mxsfr2laab0g37rfy8c99"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IDEA_Release";
@@ -299,12 +299,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2017.3.3"; /* updated by script */
+    version = "2017.3.4"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "0mk4d2c41qvfz7sqxqw7adak86pm95wvhzxrfg32y01r5i5q0av7"; /* updated by script */
+      sha256 = "1hxkn0p0lp021bbysypwn8s69iggb76iwq38jv5a1ql7v5r1nwvd"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PS2017.3";
@@ -364,12 +364,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2017.3.3"; /* updated by script */
+    version = "2017.3.4"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "1fhs13944928rqcqbv8d29qm1y0zzry4drr9gqqmj814y2vkbpnl"; /* updated by script */
+      sha256 = "0d5whqa6c76l6g5yj0yq8a3k1x6d9kxwnac1dwsiy5dbr5jk0cyj"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WS_Release";
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 186cdc6c62e..919f949ff66 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -5,12 +5,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.15.0";
+  version = "3.16.0";
   name = "calibre-${version}";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${name}.tar.xz";
-    sha256 = "1zvk499g3ddl82f6655ddqzl7r62hj1fq3qjsxpn07an2lizail7";
+    sha256 = "0dsnn974lfd6xbnyjhgxl2hd07kjhm1w9plqi28mx8nqa8bwqira";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/gnuradio/wrapper.nix b/pkgs/applications/misc/gnuradio/wrapper.nix
index db2b453913f..ffed3da0318 100644
--- a/pkgs/applications/misc/gnuradio/wrapper.nix
+++ b/pkgs/applications/misc/gnuradio/wrapper.nix
@@ -1,7 +1,6 @@
-{ stdenv, gnuradio, makeWrapper, python
-, extraPackages ? [] }:
+{ stdenv, gnuradio, makeWrapper, python, extraPackages ? [] }:
 
-with stdenv.lib;
+with { inherit (stdenv.lib) appendToName makeSearchPath; };
 
 stdenv.mkDerivation {
   name = (appendToName "with-packages" gnuradio).name;
@@ -11,13 +10,15 @@ stdenv.mkDerivation {
     mkdir -p $out/bin
     ln -s "${gnuradio}"/bin/* $out/bin/
 
-    for file in $(find $out/bin -type f -executable); do
-        wrapProgram "$file" \
-            --prefix PYTHONPATH : ${stdenv.lib.concatStringsSep ":"
-                                     (map (path: "$(toPythonPath ${path})") extraPackages)} \
-            --prefix GRC_BLOCKS_PATH : ${makeSearchPath "share/gnuradio/grc/blocks" extraPackages}
+    for file in $(find -L $out/bin -type f); do
+        if test -x "$(readlink -f "$file")"; then
+            wrapProgram "$file" \
+                --prefix PYTHONPATH : ${stdenv.lib.concatStringsSep ":"
+                                         (map (path: "$(toPythonPath ${path})") extraPackages)} \
+                --prefix GRC_BLOCKS_PATH : ${makeSearchPath "share/gnuradio/grc/blocks" extraPackages}
+        fi
     done
-
   '';
+
   inherit (gnuradio) meta;
 }
diff --git a/pkgs/applications/misc/synapse/default.nix b/pkgs/applications/misc/synapse/default.nix
index 13f3fa98d56..cc267dceaf8 100644
--- a/pkgs/applications/misc/synapse/default.nix
+++ b/pkgs/applications/misc/synapse/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchurl, intltool, pkgconfig, glib, libnotify, gtk3, libgee
-, keybinder3, json_glib, zeitgeist, vala_0_34, hicolor_icon_theme, gobjectIntrospection
+{ stdenv, fetchurl, gettext, pkgconfig, glib, libnotify, gtk3, libgee
+, keybinder3, json_glib, zeitgeist, vala_0_38, hicolor_icon_theme, gobjectIntrospection
 }:
 
 let
-  version = "0.2.99.2";
+  version = "0.2.99.3";
 in stdenv.mkDerivation rec {
   name = "synapse-${version}";
 
   src = fetchurl {
     url = "https://launchpad.net/synapse-project/0.3/${version}/+download/${name}.tar.xz";
-    sha256 = "04cnsmwf9xa52dh7rpb4ia715c0ls8jg1p7llc9yf3lbg1m0bvzv";
+    sha256 = "0rwd42164xqfi40r13yr29cx6zy3bckgxk00y53b376nl5yqacvy";
   };
 
   nativeBuildInputs = [
-    pkgconfig intltool vala_0_34
+    pkgconfig gettext vala_0_38
     # For setup hook
     gobjectIntrospection
   ];
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 3fe73c8669c..7b39eb755ef 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   beta = {
-    sha256 = "09ris0aj743x3mh7q45z55byxwmw7h6klhibbcazb1axj85ahbil";
-    sha256bin64 = "18833sqqfssjvcmf6v7wj9h9gsc07wr09cms5c0k7f8v9dqysc7r";
-    version = "64.0.3282.119";
+    sha256 = "1ki9ii3r9iv6k7df2zr14ysm6w3fkvhvcwaw3qjm4b4q6ymznshl";
+    sha256bin64 = "0i1g0hv2vji8jx9c973x8nr1ynzsvqjaqcncxj77x6vj9wp0v41p";
+    version = "64.0.3282.140";
   };
   dev = {
-    sha256 = "04vrcsvlanjljah3pbgfz49ygwr9i6zymr1a09kldrnykv770c5l";
-    sha256bin64 = "016s8lh94i0m3zyld32vzqfw1c0s97sa143dyww7x26b2mp93lcc";
-    version = "65.0.3322.3";
+    sha256 = "1b3gyj55xyqsb439szisfn8c4mnpws3pfzrndrl5kgdd239qrfqz";
+    sha256bin64 = "1hmkinzn4gpikjfd8c9j30px3i0x6y8dddn9pyvjzsk6dzfcvknz";
+    version = "65.0.3325.31";
   };
   stable = {
-    sha256 = "09ris0aj743x3mh7q45z55byxwmw7h6klhibbcazb1axj85ahbil";
-    sha256bin64 = "18a61myi3wlrk9zr7jjad1zi8k0ls9cnl2nyhjibjlwiz3npwbm5";
-    version = "64.0.3282.119";
+    sha256 = "1ki9ii3r9iv6k7df2zr14ysm6w3fkvhvcwaw3qjm4b4q6ymznshl";
+    sha256bin64 = "1zsgcnilip9rxbs51xvnchp87gh4fmgxzrcf9dhfrnldhji17ikj";
+    version = "64.0.3282.140";
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 373adc42d22..f79d708ec5d 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -40,13 +40,13 @@ in
   stdenv.mkDerivation rec {
     name = "signal-desktop-${version}";
 
-    version = "1.1.0";
+    version = "1.3.0";
 
     src =
       if stdenv.system == "x86_64-linux" then
         fetchurl {
           url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-          sha256 = "1v0ydfdgcnkh6rk7gmqbjrzpz56mw2gjmakz58gpn167ln7l1vkl";
+          sha256 = "047l3yyqvzyi5969r0n9cwdarsxfbssj415ysh57w7vkdp01axsr";
         }
       else
         throw "Signal for Desktop is not currently supported on ${stdenv.system}";
diff --git a/pkgs/applications/science/logic/symbiyosys/default.nix b/pkgs/applications/science/logic/symbiyosys/default.nix
index 6a26ee6e3d6..e8feaa0acc4 100644
--- a/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "symbiyosys-${version}";
-  version = "2018.01.10";
+  version = "2018.02.04";
 
   src = fetchFromGitHub {
-    owner  = "cliffordwolf";
+    owner  = "yosyshq";
     repo   = "symbiyosys";
-    rev    = "25936009bbc2cffd289c607ddf42a578527aa59c";
-    sha256 = "06idd8vbn4s2k6bja4f6lxjc4qwgbak2fhfxj8f18ki1xb3yqfh6";
+    rev    = "236f6412c1c1afe95d752eaf907f66f19c343134";
+    sha256 = "06bsvvkn9yhz9jvgf7a6pf407ab9m5qrr42niww666z967xdw4p0";
   };
 
   buildInputs = [ python3 yosys ];
diff --git a/pkgs/applications/science/math/sage/spkg-giac.patch b/pkgs/applications/science/math/sage/spkg-giac.patch
index 15b91433d25..c79d4422133 100644
--- a/pkgs/applications/science/math/sage/spkg-giac.patch
+++ b/pkgs/applications/science/math/sage/spkg-giac.patch
@@ -1,10 +1,19 @@
---- old/build/pkgs/giac/spkg-install	2017-07-21 14:10:00.000000000 -0500
-+++ new/build/pkgs/giac/spkg-install	2017-10-15 15:55:55.321237645 -0500
-@@ -4,6 +4,8 @@
+diff --git a/build/pkgs/giac/spkg-install b/build/pkgs/giac/spkg-install
+index bdd8df6cb8..3fd7a3ef8a 100644
+--- a/build/pkgs/giac/spkg-install
++++ b/build/pkgs/giac/spkg-install
+@@ -2,6 +2,15 @@
  ## Giac
  ###########################################
  
-+find . -type f -exec sed -e 's@/bin/cp@cp@g' -i '{}' ';' && echo "Patching input parser" && find . -iname 'input_parser.cc'
++# Fix hardcoded paths, while making sure to only update timestamps of actually
++# changed files (otherwise confuses make)
++grep -rlF '/bin/cp' . | while read file
++do
++	sed -e 's@/bin/cp@cp@g' -i "$file"
++done
++
++# Fix input parser syntax
 +sed -e 's@yylex (&yylval)@yylex (\&yyval, scanner)@gp' -i 'src/src/input_parser.cc'
  
  if [ "$SAGE_LOCAL" = "" ]; then
diff --git a/pkgs/applications/science/math/sage/spkg-git.patch b/pkgs/applications/science/math/sage/spkg-git.patch
index ff9a7b2e491..74f552dd3c3 100644
--- a/pkgs/applications/science/math/sage/spkg-git.patch
+++ b/pkgs/applications/science/math/sage/spkg-git.patch
@@ -1,12 +1,17 @@
 diff --git a/build/pkgs/git/spkg-install b/build/pkgs/git/spkg-install
-index 8469cb58c2..d0dc9a1db9 100755
+index 87874de3d8..b0906245fa 100644
 --- a/build/pkgs/git/spkg-install
 +++ b/build/pkgs/git/spkg-install
-@@ -35,6 +35,8 @@ fi
+@@ -33,6 +33,13 @@ fi
  
  cd src
  
-+find . -type f -exec sed -e 's@/usr/bin/perl@perl@g' -i '{}' ';'
++# Fix hardcoded paths, while making sure to only update timestamps of actually
++# changed files (otherwise confuses make)
++grep -rlF '/usr/bin/perl' . | while read file
++do
++	sed -e 's@/usr/bin/perl@perl@g' -i "$file"
++done
 +
  # We don't want to think about Fink or Macports
  export NO_FINK=1
diff --git a/pkgs/applications/science/math/sage/spkg-singular.patch b/pkgs/applications/science/math/sage/spkg-singular.patch
index d561768600b..606ffcd3ad4 100644
--- a/pkgs/applications/science/math/sage/spkg-singular.patch
+++ b/pkgs/applications/science/math/sage/spkg-singular.patch
@@ -1,11 +1,17 @@
---- old/build/pkgs/singular/spkg-install	2017-10-15 10:35:41.826540964 -0500
-+++ new/build/pkgs/singular/spkg-install	2017-10-15 10:36:40.613743443 -0500
-@@ -4,6 +4,9 @@
+diff --git a/build/pkgs/singular/spkg-install b/build/pkgs/singular/spkg-install
+index 8caafb1699..3c34e6608a 100644
+--- a/build/pkgs/singular/spkg-install
++++ b/build/pkgs/singular/spkg-install
+@@ -2,6 +2,13 @@
  ## Singular
  ###########################################
  
-+find . -type f -exec sed -e 's@/bin/rm@rm@g' -i '{}' ';'
-+#echo '#!/usr/bin/env bash\nIgnoring missing $1' > src/build-aux/missing
++# Fix hardcoded paths, while making sure to only update timestamps of actually
++# changed files (otherwise confuses make)
++grep -rlF '/bin/rm' . | while read file
++do
++	sed -e 's@/bin/rm@rm@g' -i "$file"
++done
 +
  if [ -z "$SAGE_LOCAL" ]; then
      echo >&2 "Error: SAGE_LOCAL undefined -- exiting..."
diff --git a/pkgs/applications/version-management/git-and-tools/grv/default.nix b/pkgs/applications/version-management/git-and-tools/grv/default.nix
index 386589aaf05..cbcf4cd9aeb 100644
--- a/pkgs/applications/version-management/git-and-tools/grv/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/grv/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildGoPackage, fetchFromGitHub, curl, libgit2_0_25, ncurses, pkgconfig, readline }:
 let
-  version = "0.1.0";
+  version = "0.1.1";
 in
 buildGoPackage {
   name = "grv-${version}";
@@ -16,7 +16,7 @@ buildGoPackage {
     owner = "rgburke";
     repo = "grv";
     rev = "v${version}";
-    sha256 = "1qd9kq8l29v3gwwls98933bk0rdw44mrbnqgb1r6hm9m6vzjfcn3";
+    sha256 = "0q9gvxfw48d4kjpb2jx7lg577vazjg0n961y6ija5saja5n16mk2";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/version-management/src/default.nix b/pkgs/applications/version-management/src/default.nix
index e75223c6c36..2bde0a68480 100644
--- a/pkgs/applications/version-management/src/default.nix
+++ b/pkgs/applications/version-management/src/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "src-${version}";
-  version = "1.13";
+  version = "1.17";
 
   src = fetchurl {
     url = "http://www.catb.org/~esr/src/${name}.tar.gz";
-    sha256 = "0l13ld8nxm1c720ns22lyx3q1bq2c2zn78vi5w92b7nl6p2nncy8";
+    sha256 = "17885hpq8nxhqzwl50nrgdk1q9dq4cxjxldgkk8shdf08s5hcqhk";
   };
 
   buildInputs = [ python rcs git makeWrapper ];
diff --git a/pkgs/applications/video/obs-studio/default.nix b/pkgs/applications/video/obs-studio/default.nix
index 64bdbd21686..1c7a72d95ae 100644
--- a/pkgs/applications/video/obs-studio/default.nix
+++ b/pkgs/applications/video/obs-studio/default.nix
@@ -29,13 +29,13 @@ let
   optional = stdenv.lib.optional;
 in stdenv.mkDerivation rec {
   name = "obs-studio-${version}";
-  version = "20.1.3";
+  version = "21.0.2";
 
   src = fetchFromGitHub {
     owner = "jp9000";
     repo = "obs-studio";
     rev = "${version}";
-    sha256 = "0qdpa2xxiiw53ksvlrf80jm8gz6kxsn56sffv2v2ijxvy7kw5zcg";
+    sha256 = "1yyvxqzxy9dz6rmjcrdn90nfaff4f38mfz2gsq535cr59sg3f8jc";
   };
 
   patches = [ ./find-xcb.patch ];
diff --git a/pkgs/applications/window-managers/way-cooler/default.nix b/pkgs/applications/window-managers/way-cooler/default.nix
index 1830ee2c42a..c8b67ec047a 100644
--- a/pkgs/applications/window-managers/way-cooler/default.nix
+++ b/pkgs/applications/window-managers/way-cooler/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, makeWrapper, symlinkJoin, writeShellScriptBin, callPackage, defaultCrateOverrides
-, wayland, wlc, dbus_libs, dbus_glib, cairo, libxkbcommon, pam, python3Packages, lemonbar
+{ stdenv, fetchurl, makeWrapper, symlinkJoin, writeShellScriptBin, callPackage, defaultCrateOverrides
+, wayland, wlc, cairo, libxkbcommon, pam, python3Packages, lemonbar, gdk_pixbuf
 }:
 
 let
@@ -9,13 +9,10 @@ let
   fakegit = writeShellScriptBin "git" ''
     echo ""
   '';
-  way-cooler = ((callPackage ./way-cooler.nix {}).way_cooler_0_6_2.override {
+  way-cooler = (((callPackage ./way-cooler.nix {}).way_cooler { builtin-lua = true; }).override {
     crateOverrides = defaultCrateOverrides // {
 
-    way-cooler = attrs: { buildInputs = [ wlc cairo libxkbcommon fakegit ]; };
-    dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
-    gobject-sys = attrs: { buildInputs = [ dbus_glib ]; };
-    cairo-rs = attrs: { buildInputs = [ cairo ]; };
+    way-cooler = attrs: { buildInputs = [ wlc cairo libxkbcommon fakegit gdk_pixbuf wayland ]; };
   };}).overrideAttrs (oldAttrs: rec {
     nativeBuildInputs = [ makeWrapper ];
 
@@ -23,51 +20,35 @@ let
       mkdir -p $out/etc
       cp -r config $out/etc/way-cooler
     '';
-    # prior v0.7 https://github.com/way-cooler/way-cooler/issues/395
     postFixup = ''
-      makeWrapper $out/bin/way_cooler $out/bin/way-cooler \
-        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ wayland ]}"
+      cd $out/bin
+      mv way_cooler way-cooler
     '';
   });
-  wc-bg = ((callPackage ./wc-bg.nix {}).way_cooler_bg_0_2_1.override {
-    crateOverrides = defaultCrateOverrides // {
+  wc-bg = ((callPackage ./wc-bg.nix {}).wc_bg {}).overrideAttrs (oldAttrs: rec {
+    nativeBuildInputs = [ makeWrapper ];
 
-    dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
-  };}).overrideAttrs (oldAttrs: rec {
     postFixup = ''
-      cd $out/bin
-      mv way_cooler_bg way-cooler-bg
+      makeWrapper $out/bin/wc_bg $out/bin/wc-bg \
+        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ wayland ]}"
     '';
   });
-  wc-grab = ((callPackage ./wc-grab.nix {}).wc_grab_0_2_0.override {
-    crateOverrides = defaultCrateOverrides // {
-
-    wc-grab = attrs: {
-      src = fetchFromGitHub {
-        owner = "way-cooler";
-        repo = "way-cooler-grab";
-        rev = "v0.2.0";
-        sha256 = "1pc8rhvzdi6bi8g5w03i0ygbcpks9051c3d3yc290rgmmmmkmnwq";
-      };
-    };
-
-    dbus = attrs: { buildInputs = [ pkgconfig dbus_libs ]; };
-  };}).overrideAttrs (oldAttrs: rec {
+  wc-grab = ((callPackage ./wc-grab.nix {}).wc_grab {}).overrideAttrs (oldAttrs: rec {
     postFixup = ''
       cd $out/bin
       mv wc_grab wc-grab
     '';
   });
-  wc-lock = ((callPackage ./wc-lock.nix {}).wc_lock_0_1_0.override {
-    crateOverrides = defaultCrateOverrides // { wc-lock = attrs: {
+  wc-lock = (((callPackage ./wc-lock.nix {}).wc_lock {}).override {
+    crateOverrides = defaultCrateOverrides // {
 
-    buildInputs = [ pam ];
-  };};}).overrideAttrs (oldAttrs: rec {
+    wc-lock = attrs: { buildInputs = [ pam ]; };
+  };}).overrideAttrs (oldAttrs: rec {
     nativeBuildInputs = [ makeWrapper ];
 
     postFixup = ''
       makeWrapper $out/bin/wc_lock $out/bin/wc-lock \
-        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libxkbcommon ]}"
+        --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ libxkbcommon wayland ]}"
     '';
   });
   # https://github.com/way-cooler/way-cooler/issues/446
@@ -102,7 +83,7 @@ let
     ${wc-bar-bare}/bin/bar.py $SELECTED $BACKGROUND $SELECTED_OTHER_WORKSPACE 2> /tmp/bar_debug.txt | ${lemonbar}/bin/lemonbar -B $BACKGROUND -F "#FFF" -n "lemonbar" -p -d
   '';
 in symlinkJoin rec {
-  version = "0.6.2";
+  version = "0.8.0";
   name = "way-cooler-with-extensions-${version}";
   paths = [ way-cooler wc-bg wc-grab wc-lock wc-bar ];
 
diff --git a/pkgs/applications/window-managers/way-cooler/way-cooler.nix b/pkgs/applications/window-managers/way-cooler/way-cooler.nix
index 816a1c88708..9ba6db36772 100644
--- a/pkgs/applications/window-managers/way-cooler/way-cooler.nix
+++ b/pkgs/applications/window-managers/way-cooler/way-cooler.nix
@@ -1,938 +1,1862 @@
-# Generated by carnix 0.5.0: carnix -o way-cooler.nix Cargo.lock
+# Generated by carnix 0.6.5: carnix -o way-cooler.nix Cargo.lock
 { lib, buildPlatform, buildRustCrate, fetchgit }:
 let kernel = buildPlatform.parsed.kernel.name;
     abi = buildPlatform.parsed.abi.name;
-    hasFeature = feature:
-      lib.lists.any
-        (originName: feature.${originName})
-        (builtins.attrNames feature);
-
-    hasDefault = feature:
-      let defaultFeatures = builtins.attrNames (feature."default" or {}); in
-      (defaultFeatures == [])
-      || (lib.lists.any (originName: feature."default".${originName}) defaultFeatures);
-
+    include = includedFiles: src: builtins.filterSource (path: type:
+      lib.lists.any (f:
+        let p = toString (src + ("/" + f)); in
+        (path == p) || (type == "directory" && lib.strings.hasPrefix path p)
+      ) includedFiles
+    ) src;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
     mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if featureName != "" && hasFeature feat.${featureName} then
+      if feat.${featureName} or false then
         [ featureName ] ++ features
       else
         features
-    ) (if hasDefault feat then [ "default" ] else []) (builtins.attrNames feat);
-    aho_corasick_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "aho-corasick";
-      version = "0.5.3";
-      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-      sha256 = "1igab46mvgknga3sxkqc917yfff0wsjxjzabdigmh240p5qxqlnn";
-      libName = "aho_corasick";
-      crateBin = [ {  name = "aho-corasick-dot"; } ];
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.4.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0an03kibhfcc0mcxf6a0mvbab0s7cggnvflw8jn0b15i351h828c";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_5_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.5.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0bgw1kiy121kikjrwj6zsd7l8n1gg1jirivzkc7zpjsvqa3p0hla";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.6.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1znq4b770mdp3kdj9yz199ylc2pmf8l5j2f281jjrcfhg1mm22h6";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.7.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.8.2";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
-      inherit dependencies buildDependencies features;
-    };
-    c_vec_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "c_vec";
-      version = "1.2.1";
-      authors = [ "Guillaume Gomez <guillaume1.gomez@gmail.com>" ];
-      sha256 = "15gm72wx9kd0n51454i58rmpkmig8swghrj2440frxxi9kqg97xd";
-      inherit dependencies buildDependencies features;
-    };
-    cairo_rs_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "cairo-rs";
-      version = "0.1.3";
-      authors = [ "The Gtk-rs Project Developers" ];
-      sha256 = "17wp5wh1jvn2ny8s6fckvbwn0x8ixha6xrqas1bqxd9ygm5g58w1";
-      libName = "cairo";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    cairo_sys_rs_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "cairo-sys-rs";
-      version = "0.3.4";
-      authors = [ "The Gtk-rs Project Developers" ];
-      sha256 = "1fzxshv7vysnnc2nywla6gj3hh00nr6cz1ak0mrxkg65rzrgxkww";
-      libName = "cairo_sys";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    cfg_if_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "cfg-if";
-      version = "0.1.0";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "1grr9v6ijms84cvl1jqv5hp9clw9gn3l3g6kj9a31sdzvidd6v29";
-      inherit dependencies buildDependencies features;
-    };
-    dbus_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dbus";
-      version = "0.4.1";
-      authors = [ "David Henningsson <diwic@ubuntu.com>" ];
-      sha256 = "0qw32qj2rys318h780klxlznkwg93dfimbn8mc34m4940l8v00g9";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    dbus_macros_0_0_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dbus-macros";
-      version = "0.0.6";
-      authors = [ "Antoni Boucher <bouanto@zoho.com>" ];
-      sha256 = "1nymk2hzzgyafyr5nfa4r4frx4hml3wlwgzfr9b69vmcvn3d2jyd";
-      inherit dependencies buildDependencies features;
-    };
-    dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dlib";
-      version = "0.3.1";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
-      inherit dependencies buildDependencies features;
-    };
-    dtoa_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dtoa";
-      version = "0.4.1";
-      authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-      sha256 = "0mgg4r90yby68qg7y8csbclhsm53ac26vsyq615viq535plllhzw";
-      inherit dependencies buildDependencies features;
-    };
-    dummy_rustwlc_0_6_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dummy-rustwlc";
-      version = "0.6.3";
-      authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Preston Carpenter <APragmaticPlace@gmail.com>" ];
-      sha256 = "09pcl2r3ifajgq794j4jqaq0n4kyb2z4aaavs1fr78w4fhrzqqmj";
-      inherit dependencies buildDependencies features;
-    };
-    env_logger_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "env_logger";
-      version = "0.3.5";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1mvxiaaqsyjliv1mm1qaagjqiccw11mdyi3n9h9rf8y6wj15zycw";
-      inherit dependencies buildDependencies features;
-    };
-    fixedbitset_0_1_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "fixedbitset";
-      version = "0.1.6";
-      authors = [ "bluss" ];
-      sha256 = "1jcq0i41l888153v4jyb6q2kc9sjs004md5byfz5mprlmhdawha3";
-      inherit dependencies buildDependencies features;
-    };
-    gcc_0_3_46_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "gcc";
-      version = "0.3.46";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "17rbdxa2yapjymbdq7b930sc1ipiwhx4xz7hh48q4bz3d28zg6qb";
-      inherit dependencies buildDependencies features;
-    };
-    getopts_0_2_14_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "getopts";
-      version = "0.2.14";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1wdz34vls97g9868h8kiw4wmwkbyxg4xm3xzvr1542hc3w4c7z0a";
-      inherit dependencies buildDependencies features;
-    };
-    glib_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "glib";
-      version = "0.1.3";
-      authors = [ "The Gtk-rs Project Developers" ];
-      sha256 = "1j2zwsnxlfdrj8wdi8yp3zl5l9nydsifgxspnwl6ijq3ywnjhcpa";
-      inherit dependencies buildDependencies features;
-    };
-    glib_sys_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "glib-sys";
-      version = "0.3.4";
-      authors = [ "The Gtk-rs Project Developers" ];
-      sha256 = "06ymp4ljrjnb7cly0bixy3svxgnwpbx79499889dqakpfs7566rc";
-      libName = "glib_sys";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    gobject_sys_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "gobject-sys";
-      version = "0.3.4";
-      authors = [ "The Gtk-rs Project Developers" ];
-      sha256 = "0rrk3c94myhspyl3iq7k4kcm72zxl8bk3r7kvqv2f9lf6y820giw";
-      libName = "gobject_sys";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    hlua_0_1_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "hlua";
-      version = "0.1.9";
-      authors = [ "pierre.krieger1708@gmail.com" ];
-      sha256 = "1vn7w1rcaj9g04yx5jak09a3wpw7g3yx2fgn8ibx36z07vpf57fs";
-      inherit dependencies buildDependencies features;
-    };
-    itoa_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "itoa";
-      version = "0.3.1";
-      authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-      sha256 = "0jp1wvfw0qqbyz0whbycp7xr5nx1ds5plh4wsfyj503xmjf9ab4k";
-      inherit dependencies buildDependencies features;
-    };
-    json_macro_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "json_macro";
-      version = "0.1.1";
-      authors = [ "Denis Kolodin <deniskolodin@gmail.com>" ];
-      sha256 = "0hl2934shpwqbszrq035valbdz9y8p7dza183brygy5dbvivcyqy";
-      inherit dependencies buildDependencies features;
-    };
-    kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "kernel32-sys";
-      version = "0.2.2";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-      libName = "kernel32";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    lazy_static_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "lazy_static";
-      version = "0.2.8";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "1xbpxx7cd5kl60g87g43q80jxyrsildhxfjc42jb1x4jncknpwbl";
-      inherit dependencies buildDependencies features;
-    };
-    libc_0_2_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "libc";
-      version = "0.2.23";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1i29f6k26fmv81c5bjc6hw2j95sd01h9ad66qxdc755b24xfa9jm";
-      inherit dependencies buildDependencies features;
-    };
-    libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "libloading";
-      version = "0.3.4";
-      authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
-      sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    log_0_3_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "log";
-      version = "0.3.7";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1qxrwkhpfzhgcmfnw4bl9yy7wwr92wwbin3dp6izcfy58lr369v4";
-      inherit dependencies buildDependencies features;
-    };
-    lua52_sys_0_0_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "lua52-sys";
-      version = "0.0.4";
-      authors = [ "Pierre Krieger <pierre.krieger1708@gmail.com>" ];
-      sha256 = "115i7k2dnnf4c1b2mxwf5mvqv2wsqmmxm3krphf5wjky20gi2ciz";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    memchr_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "memchr";
-      version = "0.1.11";
-      authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
-      sha256 = "0x73jghamvxxq5fsw9wb0shk5m6qp3q6fsf0nibn0i6bbqkw91s8";
-      inherit dependencies buildDependencies features;
-    };
-    nix_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "nix";
-      version = "0.6.0";
-      authors = [ "Carl Lerche <me@carllerche.com>" ];
-      sha256 = "1bgh75y897isnxbw3vd79vns9h6q4d59p1cgv9c4laysyw6fkqwf";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    nix_0_8_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "nix";
-      version = "0.8.1";
-      authors = [ "The nix-rust Project Developers" ];
-      sha256 = "0iqmn55ajwcq91pl8xviwdvc2zrkaccajsp0nc9lbq9ydli0vhf9";
-      inherit dependencies buildDependencies features;
-    };
-    num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-traits";
-      version = "0.1.37";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
-      inherit dependencies buildDependencies features;
-    };
-    ordermap_0_2_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "ordermap";
-      version = "0.2.10";
-      authors = [ "bluss" ];
-      sha256 = "1pj6d56nwi0wa7cnwl80dwz13vws9nf5s1b7k7i2dav35gkpwy1z";
-      inherit dependencies buildDependencies features;
-    };
-    petgraph_0_4_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "petgraph";
-      version = "0.4.5";
-      authors = [ "bluss" "mitchmindtree" ];
-      sha256 = "0482id2flwnxkhj1443g384cvk7f9lva9n6wj2wsag9145zhpjzg";
-      inherit dependencies buildDependencies features;
-    };
-    phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
-      libPath = "src/lib.rs";
-      inherit dependencies buildDependencies features;
-    };
-    phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_codegen";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
-      inherit dependencies buildDependencies features;
-    };
-    phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_generator";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
-      inherit dependencies buildDependencies features;
-    };
-    phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_shared";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
-      libPath = "src/lib.rs";
-      inherit dependencies buildDependencies features;
-    };
-    pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "pkg-config";
-      version = "0.3.9";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
-      inherit dependencies buildDependencies features;
-    };
-    rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rand";
-      version = "0.3.15";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
-      inherit dependencies buildDependencies features;
-    };
-    regex_0_1_80_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "regex";
-      version = "0.1.80";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0y4s8ghhx6sgzb35irwivm3w0l2hhqhmdcd2px9hirqnkagal9l6";
-      inherit dependencies buildDependencies features;
-    };
-    regex_syntax_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "regex-syntax";
-      version = "0.3.9";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1mzhphkbwppwd1zam2jkgjk550cqgf6506i87bw2yzrvcsraiw7m";
-      inherit dependencies buildDependencies features;
-    };
-    rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rustc-serialize";
-      version = "0.3.24";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
-      inherit dependencies buildDependencies features;
-    };
-    rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rustc_version";
-      version = "0.1.7";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
-      inherit dependencies buildDependencies features;
-    };
-    rustwlc_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rustwlc";
-      version = "0.6.2";
-      authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
-      sha256 = "16k8wzyvn1syxcjimy2vh7hc6jlbw31v03ysrzrqgfwncmwx5b2d";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "semver";
-      version = "0.1.20";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
-      inherit dependencies buildDependencies features;
-    };
-    serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "serde";
-      version = "0.9.15";
-      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-      sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
-      inherit dependencies buildDependencies features;
-    };
-    serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "serde_json";
-      version = "0.9.10";
-      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-      sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
-      inherit dependencies buildDependencies features;
-    };
-    siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "siphasher";
-      version = "0.2.2";
-      authors = [ "Frank Denis <github@pureftpd.org>" ];
-      sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
-      inherit dependencies buildDependencies features;
-    };
-    target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "target_build_utils";
-      version = "0.3.1";
-      authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
-      sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    thread_id_2_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "thread-id";
-      version = "2.0.0";
-      authors = [ "Ruud van Asseldonk <dev@veniogames.com>" ];
-      sha256 = "06i3c8ckn97i5rp16civ2vpqbknlkx66dkrl070iw60nawi0kjc3";
-      inherit dependencies buildDependencies features;
-    };
-    thread_local_0_2_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "thread_local";
-      version = "0.2.7";
-      authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-      sha256 = "19p0zrs24rdwjvpi10jig5ms3sxj00pv8shkr9cpddri8cdghqp7";
-      inherit dependencies buildDependencies features;
-    };
-    utf8_ranges_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "utf8-ranges";
-      version = "0.1.3";
-      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-      sha256 = "1cj548a91a93j8375p78qikaiam548xh84cb0ck8y119adbmsvbp";
-      inherit dependencies buildDependencies features;
-    };
-    uuid_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "uuid";
-      version = "0.3.1";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "16ak1c84dfkd8h33cvkxrkvc30k7b0bhrnza8ni2c0jsx85fpbip";
-      inherit dependencies buildDependencies features;
-    };
-    void_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "void";
-      version = "1.0.2";
-      authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-      sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
-      inherit dependencies buildDependencies features;
-    };
-    way_cooler_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "way-cooler";
-      version = "0.6.2";
-      authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
-      sha256 = "0ygzgjjhf54fcpk6sbi0acbyki4ff1v7wyckfk4lhv4ycpg9v3cj";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_scanner_0_9_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-scanner";
-      version = "0.9.4";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "1kdhpm1gkn99sj8vxhyr1x6nxnhm0cjvypajycvn2fa9sdpgw8yc";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_server_0_9_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-server";
-      version = "0.9.4";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "1aqidrac0z7ny65yhfv9inl3xmdmph21yhmyd3k0nafyghgg9pxw";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_sys_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-sys";
-      version = "0.6.0";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_sys_0_9_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-sys";
-      version = "0.9.4";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "0vqrc46ib5hgbq6djghapairbjskdncas09k680f7pwylbi7yzcj";
-      inherit dependencies buildDependencies features;
-    };
-    winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "winapi";
-      version = "0.2.8";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-      inherit dependencies buildDependencies features;
-    };
-    winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "winapi-build";
-      version = "0.1.1";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-      libName = "build";
-      inherit dependencies buildDependencies features;
-    };
-    xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "xml-rs";
-      version = "0.3.6";
-      authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
-      sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
-      libPath = "src/lib.rs";
-      libName = "xml";
-      crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
-      inherit dependencies buildDependencies features;
-    };
-
+    ) [] (builtins.attrNames feat);
 in
 rec {
-  aho_corasick_0_5_3 = aho_corasick_0_5_3_ rec {
-    dependencies = [ memchr_0_1_11 ];
-  };
-  memchr_0_1_11_features."default".from_aho_corasick_0_5_3__default = true;
-  bitflags_0_4_0 = bitflags_0_4_0_ rec {
-    features = mkFeatures bitflags_0_4_0_features;
-  };
-  bitflags_0_4_0_features."".self = true;
-  bitflags_0_5_0 = bitflags_0_5_0_ rec {
-    features = mkFeatures bitflags_0_5_0_features;
-  };
-  bitflags_0_5_0_features."".self = true;
-  bitflags_0_6_0 = bitflags_0_6_0_ rec {};
-  bitflags_0_7_0 = bitflags_0_7_0_ rec {};
-  bitflags_0_8_2 = bitflags_0_8_2_ rec {
-    features = mkFeatures bitflags_0_8_2_features;
-  };
-  bitflags_0_8_2_features."i128".self_unstable = hasFeature (bitflags_0_8_2_features."unstable" or {});
-  c_vec_1_2_1 = c_vec_1_2_1_ rec {};
-  cairo_rs_0_1_3 = cairo_rs_0_1_3_ rec {
-    dependencies = [ c_vec_1_2_1 cairo_sys_rs_0_3_4 glib_0_1_3 libc_0_2_23 ]
-      ++ (if lib.lists.any (x: x == "glib") features then [glib_0_1_3] else [])
-      ++ (if kernel == "windows" then [ winapi_0_2_8 ] else []);
-    buildDependencies = [];
-    features = mkFeatures cairo_rs_0_1_3_features;
-  };
-  cairo_rs_0_1_3_features."".self = true;
-  cairo_rs_0_1_3_features."glib".self_default = hasDefault cairo_rs_0_1_3_features;
-  cairo_rs_0_1_3_features."gtk-rs-lgpl-docs".self_embed-lgpl-docs = hasFeature (cairo_rs_0_1_3_features."embed-lgpl-docs" or {});
-  cairo_rs_0_1_3_features."gtk-rs-lgpl-docs".self_purge-lgpl-docs = hasFeature (cairo_rs_0_1_3_features."purge-lgpl-docs" or {});
-  c_vec_1_2_1_features."default".from_cairo_rs_0_1_3__default = true;
-  cairo_sys_rs_0_3_4_features."png".from_cairo_rs_0_1_3__png = hasFeature (cairo_rs_0_1_3_features."png" or {});
-  cairo_sys_rs_0_3_4_features."v1_12".from_cairo_rs_0_1_3__v1_12 = hasFeature (cairo_rs_0_1_3_features."v1_12" or {});
-  cairo_sys_rs_0_3_4_features."xcb".from_cairo_rs_0_1_3__xcb = hasFeature (cairo_rs_0_1_3_features."xcb" or {});
-  cairo_sys_rs_0_3_4_features."default".from_cairo_rs_0_1_3__default = true;
-  glib_0_1_3_features."default".from_cairo_rs_0_1_3__default = true;
-  libc_0_2_23_features."default".from_cairo_rs_0_1_3__default = true;
-  winapi_0_2_8_features."default".from_cairo_rs_0_1_3__default = true;
-  cairo_sys_rs_0_3_4 = cairo_sys_rs_0_3_4_ rec {
-    dependencies = [ libc_0_2_23 ]
-      ++ (if kernel == "windows" then [ winapi_0_2_8 ] else []);
-    buildDependencies = [ pkg_config_0_3_9 ];
-    features = mkFeatures cairo_sys_rs_0_3_4_features;
-  };
-  cairo_sys_rs_0_3_4_features."v1_12".self_v1_14 = hasFeature (cairo_sys_rs_0_3_4_features."v1_14" or {});
-  cairo_sys_rs_0_3_4_features."x11".self_xlib = hasFeature (cairo_sys_rs_0_3_4_features."xlib" or {});
-  libc_0_2_23_features."default".from_cairo_sys_rs_0_3_4__default = true;
-  x11_0_0_0_features."xlib".from_cairo_sys_rs_0_3_4 = true;
-  x11_0_0_0_features."default".from_cairo_sys_rs_0_3_4__default = true;
-  winapi_0_2_8_features."default".from_cairo_sys_rs_0_3_4__default = true;
-  cfg_if_0_1_0 = cfg_if_0_1_0_ rec {};
-  dbus_0_4_1 = dbus_0_4_1_ rec {
-    dependencies = [ libc_0_2_23 ];
-    buildDependencies = [ pkg_config_0_3_9 ];
-  };
-  libc_0_2_23_features."default".from_dbus_0_4_1__default = true;
-  dbus_macros_0_0_6 = dbus_macros_0_0_6_ rec {
-    dependencies = [ dbus_0_4_1 ];
-  };
-  dbus_0_4_1_features."default".from_dbus_macros_0_0_6__default = true;
-  dlib_0_3_1 = dlib_0_3_1_ rec {
-    dependencies = [ libloading_0_3_4 ];
-    features = mkFeatures dlib_0_3_1_features;
-  };
-  dlib_0_3_1_features."".self = true;
-  libloading_0_3_4_features."default".from_dlib_0_3_1__default = true;
-  dtoa_0_4_1 = dtoa_0_4_1_ rec {};
-  dummy_rustwlc_0_6_3 = dummy_rustwlc_0_6_3_ rec {
-    dependencies = [ bitflags_0_6_0 libc_0_2_23 wayland_sys_0_9_4 ];
-  };
-  bitflags_0_6_0_features."default".from_dummy_rustwlc_0_6_3__default = true;
-  libc_0_2_23_features."default".from_dummy_rustwlc_0_6_3__default = true;
-  wayland_sys_0_9_4_features."server".from_dummy_rustwlc_0_6_3 = true;
-  wayland_sys_0_9_4_features."dlopen".from_dummy_rustwlc_0_6_3 = true;
-  wayland_sys_0_9_4_features."default".from_dummy_rustwlc_0_6_3__default = true;
-  env_logger_0_3_5 = env_logger_0_3_5_ rec {
-    dependencies = [ log_0_3_7 regex_0_1_80 ]
-      ++ (if lib.lists.any (x: x == "regex") features then [regex_0_1_80] else []);
-    features = mkFeatures env_logger_0_3_5_features;
-  };
-  env_logger_0_3_5_features."".self = true;
-  env_logger_0_3_5_features."regex".self_default = hasDefault env_logger_0_3_5_features;
-  log_0_3_7_features."default".from_env_logger_0_3_5__default = true;
-  regex_0_1_80_features."default".from_env_logger_0_3_5__default = true;
-  fixedbitset_0_1_6 = fixedbitset_0_1_6_ rec {};
-  gcc_0_3_46 = gcc_0_3_46_ rec {
-    dependencies = [];
-    features = mkFeatures gcc_0_3_46_features;
-  };
-  gcc_0_3_46_features."rayon".self_parallel = hasFeature (gcc_0_3_46_features."parallel" or {});
-  rayon_0_0_0_features."default".from_gcc_0_3_46__default = true;
-  getopts_0_2_14 = getopts_0_2_14_ rec {};
-  glib_0_1_3 = glib_0_1_3_ rec {
-    dependencies = [ bitflags_0_5_0 glib_sys_0_3_4 gobject_sys_0_3_4 lazy_static_0_2_8 libc_0_2_23 ];
-    features = mkFeatures glib_0_1_3_features;
-  };
-  glib_0_1_3_features."v2_38".self_v2_40 = hasFeature (glib_0_1_3_features."v2_40" or {});
-  glib_0_1_3_features."v2_40".self_v2_44 = hasFeature (glib_0_1_3_features."v2_44" or {});
-  glib_0_1_3_features."v2_44".self_v2_46 = hasFeature (glib_0_1_3_features."v2_46" or {});
-  glib_0_1_3_features."v2_46".self_v2_48 = hasFeature (glib_0_1_3_features."v2_48" or {});
-  glib_0_1_3_features."v2_48".self_v2_50 = hasFeature (glib_0_1_3_features."v2_50" or {});
-  bitflags_0_5_0_features."default".from_glib_0_1_3__default = true;
-  glib_sys_0_3_4_features."v2_38".from_glib_0_1_3__v2_38 = hasFeature (glib_0_1_3_features."v2_38" or {});
-  glib_sys_0_3_4_features."v2_40".from_glib_0_1_3__v2_40 = hasFeature (glib_0_1_3_features."v2_40" or {});
-  glib_sys_0_3_4_features."v2_44".from_glib_0_1_3__v2_44 = hasFeature (glib_0_1_3_features."v2_44" or {});
-  glib_sys_0_3_4_features."v2_46".from_glib_0_1_3__v2_46 = hasFeature (glib_0_1_3_features."v2_46" or {});
-  glib_sys_0_3_4_features."v2_48".from_glib_0_1_3__v2_48 = hasFeature (glib_0_1_3_features."v2_48" or {});
-  glib_sys_0_3_4_features."v2_50".from_glib_0_1_3__v2_50 = hasFeature (glib_0_1_3_features."v2_50" or {});
-  glib_sys_0_3_4_features."default".from_glib_0_1_3__default = true;
-  gobject_sys_0_3_4_features."v2_38".from_glib_0_1_3__v2_38 = hasFeature (glib_0_1_3_features."v2_38" or {});
-  gobject_sys_0_3_4_features."v2_44".from_glib_0_1_3__v2_44 = hasFeature (glib_0_1_3_features."v2_44" or {});
-  gobject_sys_0_3_4_features."v2_46".from_glib_0_1_3__v2_46 = hasFeature (glib_0_1_3_features."v2_46" or {});
-  gobject_sys_0_3_4_features."default".from_glib_0_1_3__default = true;
-  lazy_static_0_2_8_features."default".from_glib_0_1_3__default = true;
-  libc_0_2_23_features."default".from_glib_0_1_3__default = true;
-  glib_sys_0_3_4 = glib_sys_0_3_4_ rec {
-    dependencies = [ bitflags_0_8_2 libc_0_2_23 ];
-    buildDependencies = [ pkg_config_0_3_9 ];
-    features = mkFeatures glib_sys_0_3_4_features;
-  };
-  glib_sys_0_3_4_features."v2_34".self_v2_36 = hasFeature (glib_sys_0_3_4_features."v2_36" or {});
-  glib_sys_0_3_4_features."v2_36".self_v2_38 = hasFeature (glib_sys_0_3_4_features."v2_38" or {});
-  glib_sys_0_3_4_features."v2_38".self_v2_40 = hasFeature (glib_sys_0_3_4_features."v2_40" or {});
-  glib_sys_0_3_4_features."v2_40".self_v2_44 = hasFeature (glib_sys_0_3_4_features."v2_44" or {});
-  glib_sys_0_3_4_features."v2_44".self_v2_46 = hasFeature (glib_sys_0_3_4_features."v2_46" or {});
-  glib_sys_0_3_4_features."v2_46".self_v2_48 = hasFeature (glib_sys_0_3_4_features."v2_48" or {});
-  glib_sys_0_3_4_features."v2_48".self_v2_50 = hasFeature (glib_sys_0_3_4_features."v2_50" or {});
-  bitflags_0_8_2_features."default".from_glib_sys_0_3_4__default = true;
-  libc_0_2_23_features."default".from_glib_sys_0_3_4__default = true;
-  gobject_sys_0_3_4 = gobject_sys_0_3_4_ rec {
-    dependencies = [ bitflags_0_8_2 glib_sys_0_3_4 libc_0_2_23 ];
-    buildDependencies = [ pkg_config_0_3_9 ];
-    features = mkFeatures gobject_sys_0_3_4_features;
-  };
-  gobject_sys_0_3_4_features."v2_34".self_v2_36 = hasFeature (gobject_sys_0_3_4_features."v2_36" or {});
-  gobject_sys_0_3_4_features."v2_36".self_v2_38 = hasFeature (gobject_sys_0_3_4_features."v2_38" or {});
-  gobject_sys_0_3_4_features."v2_38".self_v2_42 = hasFeature (gobject_sys_0_3_4_features."v2_42" or {});
-  gobject_sys_0_3_4_features."v2_42".self_v2_44 = hasFeature (gobject_sys_0_3_4_features."v2_44" or {});
-  gobject_sys_0_3_4_features."v2_44".self_v2_46 = hasFeature (gobject_sys_0_3_4_features."v2_46" or {});
-  bitflags_0_8_2_features."default".from_gobject_sys_0_3_4__default = true;
-  glib_sys_0_3_4_features."default".from_gobject_sys_0_3_4__default = true;
-  libc_0_2_23_features."default".from_gobject_sys_0_3_4__default = true;
-  hlua_0_1_9 = hlua_0_1_9_ rec {
-    dependencies = [ libc_0_2_23 lua52_sys_0_0_4 ];
-  };
-  libc_0_2_23_features."default".from_hlua_0_1_9__default = true;
-  lua52_sys_0_0_4_features."default".from_hlua_0_1_9__default = true;
-  itoa_0_3_1 = itoa_0_3_1_ rec {};
-  json_macro_0_1_1 = json_macro_0_1_1_ rec {
-    dependencies = [ rustc_serialize_0_3_24 ];
-  };
-  rustc_serialize_0_3_24_features."default".from_json_macro_0_1_1__default = true;
-  kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ rec {
-    dependencies = [ winapi_0_2_8 ];
-    buildDependencies = [ winapi_build_0_1_1 ];
-  };
-  winapi_0_2_8_features."default".from_kernel32_sys_0_2_2__default = true;
-  lazy_static_0_2_8 = lazy_static_0_2_8_ rec {
-    dependencies = [];
-    features = mkFeatures lazy_static_0_2_8_features;
-  };
-  lazy_static_0_2_8_features."nightly".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
-  lazy_static_0_2_8_features."spin".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
-  spin_0_0_0_features."default".from_lazy_static_0_2_8__default = true;
-  libc_0_2_23 = libc_0_2_23_ rec {
-    features = mkFeatures libc_0_2_23_features;
-  };
-  libc_0_2_23_features."use_std".self_default = hasDefault libc_0_2_23_features;
-  libloading_0_3_4 = libloading_0_3_4_ rec {
-    dependencies = [ lazy_static_0_2_8 ]
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-    buildDependencies = [ target_build_utils_0_3_1 ];
-  };
-  lazy_static_0_2_8_features."default".from_libloading_0_3_4__default = true;
-  kernel32_sys_0_2_2_features."default".from_libloading_0_3_4__default = true;
-  winapi_0_2_8_features."default".from_libloading_0_3_4__default = true;
-  log_0_3_7 = log_0_3_7_ rec {
-    features = mkFeatures log_0_3_7_features;
-  };
-  log_0_3_7_features."use_std".self_default = hasDefault log_0_3_7_features;
-  lua52_sys_0_0_4 = lua52_sys_0_0_4_ rec {
-    dependencies = [ libc_0_2_23 ];
-    buildDependencies = [ gcc_0_3_46 pkg_config_0_3_9 ];
-  };
-  libc_0_2_23_features."default".from_lua52_sys_0_0_4__default = true;
-  memchr_0_1_11 = memchr_0_1_11_ rec {
-    dependencies = [ libc_0_2_23 ];
-  };
-  libc_0_2_23_features."default".from_memchr_0_1_11__default = true;
-  nix_0_6_0 = nix_0_6_0_ rec {
-    dependencies = [ bitflags_0_4_0 cfg_if_0_1_0 libc_0_2_23 void_1_0_2 ];
-    buildDependencies = [ rustc_version_0_1_7 semver_0_1_20 ];
-    features = mkFeatures nix_0_6_0_features;
-  };
-  nix_0_6_0_features."".self = true;
-  bitflags_0_4_0_features."default".from_nix_0_6_0__default = true;
-  cfg_if_0_1_0_features."default".from_nix_0_6_0__default = true;
-  libc_0_2_23_features."default".from_nix_0_6_0__default = true;
-  void_1_0_2_features."default".from_nix_0_6_0__default = true;
-  nix_0_8_1 = nix_0_8_1_ rec {
-    dependencies = [ bitflags_0_7_0 cfg_if_0_1_0 libc_0_2_23 void_1_0_2 ];
-    features = mkFeatures nix_0_8_1_features;
-  };
-  nix_0_8_1_features."".self = true;
-  bitflags_0_7_0_features."default".from_nix_0_8_1__default = true;
-  cfg_if_0_1_0_features."default".from_nix_0_8_1__default = true;
-  libc_0_2_23_features."default".from_nix_0_8_1__default = true;
-  void_1_0_2_features."default".from_nix_0_8_1__default = true;
-  num_traits_0_1_37 = num_traits_0_1_37_ rec {};
-  ordermap_0_2_10 = ordermap_0_2_10_ rec {
-    features = mkFeatures ordermap_0_2_10_features;
-  };
-  ordermap_0_2_10_features."".self = true;
-  petgraph_0_4_5 = petgraph_0_4_5_ rec {
-    dependencies = [ fixedbitset_0_1_6 ordermap_0_2_10 ]
-      ++ (if lib.lists.any (x: x == "ordermap") features then [ordermap_0_2_10] else []);
-    features = mkFeatures petgraph_0_4_5_features;
-  };
-  petgraph_0_4_5_features."".self = true;
-  petgraph_0_4_5_features."unstable".self_all = hasFeature (petgraph_0_4_5_features."all" or {});
-  petgraph_0_4_5_features."quickcheck".self_all = hasFeature (petgraph_0_4_5_features."all" or {});
-  petgraph_0_4_5_features."stable_graph".self_all = hasFeature (petgraph_0_4_5_features."all" or {});
-  petgraph_0_4_5_features."graphmap".self_all = hasFeature (petgraph_0_4_5_features."all" or {});
-  petgraph_0_4_5_features."graphmap".self_default = hasDefault petgraph_0_4_5_features;
-  petgraph_0_4_5_features."stable_graph".self_default = hasDefault petgraph_0_4_5_features;
-  petgraph_0_4_5_features."ordermap".self_graphmap = hasFeature (petgraph_0_4_5_features."graphmap" or {});
-  petgraph_0_4_5_features."generate".self_unstable = hasFeature (petgraph_0_4_5_features."unstable" or {});
-  fixedbitset_0_1_6_features."default".from_petgraph_0_4_5__default = true;
-  ordermap_0_2_10_features."default".from_petgraph_0_4_5__default = true;
-  quickcheck_0_0_0_features."default".from_petgraph_0_4_5__default = false;
-  phf_0_7_21 = phf_0_7_21_ rec {
-    dependencies = [ phf_shared_0_7_21 ];
-    features = mkFeatures phf_0_7_21_features;
-  };
-  phf_0_7_21_features."".self = true;
-  phf_shared_0_7_21_features."core".from_phf_0_7_21__core = hasFeature (phf_0_7_21_features."core" or {});
-  phf_shared_0_7_21_features."unicase".from_phf_0_7_21__unicase = hasFeature (phf_0_7_21_features."unicase" or {});
-  phf_shared_0_7_21_features."default".from_phf_0_7_21__default = true;
-  phf_codegen_0_7_21 = phf_codegen_0_7_21_ rec {
-    dependencies = [ phf_generator_0_7_21 phf_shared_0_7_21 ];
-  };
-  phf_generator_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
-  phf_shared_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
-  phf_generator_0_7_21 = phf_generator_0_7_21_ rec {
-    dependencies = [ phf_shared_0_7_21 rand_0_3_15 ];
-  };
-  phf_shared_0_7_21_features."default".from_phf_generator_0_7_21__default = true;
-  rand_0_3_15_features."default".from_phf_generator_0_7_21__default = true;
-  phf_shared_0_7_21 = phf_shared_0_7_21_ rec {
-    dependencies = [ siphasher_0_2_2 ];
-    features = mkFeatures phf_shared_0_7_21_features;
-  };
-  phf_shared_0_7_21_features."".self = true;
-  siphasher_0_2_2_features."default".from_phf_shared_0_7_21__default = true;
-  unicase_0_0_0_features."default".from_phf_shared_0_7_21__default = true;
-  pkg_config_0_3_9 = pkg_config_0_3_9_ rec {};
-  rand_0_3_15 = rand_0_3_15_ rec {
-    dependencies = [ libc_0_2_23 ];
-  };
-  libc_0_2_23_features."default".from_rand_0_3_15__default = true;
-  regex_0_1_80 = regex_0_1_80_ rec {
-    dependencies = [ aho_corasick_0_5_3 memchr_0_1_11 regex_syntax_0_3_9 thread_local_0_2_7 utf8_ranges_0_1_3 ];
-    features = mkFeatures regex_0_1_80_features;
-  };
-  regex_0_1_80_features."simd".self_simd-accel = hasFeature (regex_0_1_80_features."simd-accel" or {});
-  aho_corasick_0_5_3_features."default".from_regex_0_1_80__default = true;
-  memchr_0_1_11_features."default".from_regex_0_1_80__default = true;
-  regex_syntax_0_3_9_features."default".from_regex_0_1_80__default = true;
-  simd_0_0_0_features."default".from_regex_0_1_80__default = true;
-  thread_local_0_2_7_features."default".from_regex_0_1_80__default = true;
-  utf8_ranges_0_1_3_features."default".from_regex_0_1_80__default = true;
-  regex_syntax_0_3_9 = regex_syntax_0_3_9_ rec {};
-  rustc_serialize_0_3_24 = rustc_serialize_0_3_24_ rec {};
-  rustc_version_0_1_7 = rustc_version_0_1_7_ rec {
-    dependencies = [ semver_0_1_20 ];
-  };
-  semver_0_1_20_features."default".from_rustc_version_0_1_7__default = true;
-  rustwlc_0_6_2 = rustwlc_0_6_2_ rec {
-    dependencies = [ bitflags_0_7_0 libc_0_2_23 wayland_sys_0_6_0 ]
-      ++ (if lib.lists.any (x: x == "wayland-sys") features then [wayland_sys_0_6_0] else []);
-    features = mkFeatures rustwlc_0_6_2_features;
-  };
-  rustwlc_0_6_2_features."".self = true;
-  rustwlc_0_6_2_features."wayland-sys".self_wlc-wayland = hasFeature (rustwlc_0_6_2_features."wlc-wayland" or {});
-  bitflags_0_7_0_features."default".from_rustwlc_0_6_2__default = true;
-  libc_0_2_23_features."default".from_rustwlc_0_6_2__default = true;
-  wayland_sys_0_6_0_features."server".from_rustwlc_0_6_2 = true;
-  wayland_sys_0_6_0_features."default".from_rustwlc_0_6_2__default = true;
-  semver_0_1_20 = semver_0_1_20_ rec {};
-  serde_0_9_15 = serde_0_9_15_ rec {
-    dependencies = [];
-    features = mkFeatures serde_0_9_15_features;
-  };
-  serde_0_9_15_features."unstable".self_alloc = hasFeature (serde_0_9_15_features."alloc" or {});
-  serde_0_9_15_features."alloc".self_collections = hasFeature (serde_0_9_15_features."collections" or {});
-  serde_0_9_15_features."std".self_default = hasDefault serde_0_9_15_features;
-  serde_0_9_15_features."serde_derive".self_derive = hasFeature (serde_0_9_15_features."derive" or {});
-  serde_0_9_15_features."serde_derive".self_playground = hasFeature (serde_0_9_15_features."playground" or {});
-  serde_0_9_15_features."unstable".self_unstable-testing = hasFeature (serde_0_9_15_features."unstable-testing" or {});
-  serde_0_9_15_features."std".self_unstable-testing = hasFeature (serde_0_9_15_features."unstable-testing" or {});
-  serde_derive_0_0_0_features."default".from_serde_0_9_15__default = true;
-  serde_json_0_9_10 = serde_json_0_9_10_ rec {
-    dependencies = [ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_15 ];
-    features = mkFeatures serde_json_0_9_10_features;
-  };
-  serde_json_0_9_10_features."linked-hash-map".self_preserve_order = hasFeature (serde_json_0_9_10_features."preserve_order" or {});
-  dtoa_0_4_1_features."default".from_serde_json_0_9_10__default = true;
-  itoa_0_3_1_features."default".from_serde_json_0_9_10__default = true;
-  linked_hash_map_0_0_0_features."default".from_serde_json_0_9_10__default = true;
-  num_traits_0_1_37_features."default".from_serde_json_0_9_10__default = true;
-  serde_0_9_15_features."default".from_serde_json_0_9_10__default = true;
-  siphasher_0_2_2 = siphasher_0_2_2_ rec {
-    dependencies = [];
-  };
-  clippy_0_0_0_features."default".from_siphasher_0_2_2__default = true;
-  target_build_utils_0_3_1 = target_build_utils_0_3_1_ rec {
-    dependencies = [ phf_0_7_21 serde_json_0_9_10 ]
-      ++ (if lib.lists.any (x: x == "serde_json") features then [serde_json_0_9_10] else []);
-    buildDependencies = [ phf_codegen_0_7_21 ];
-    features = mkFeatures target_build_utils_0_3_1_features;
-  };
-  target_build_utils_0_3_1_features."".self = true;
-  target_build_utils_0_3_1_features."serde_json".self_default = hasDefault target_build_utils_0_3_1_features;
-  phf_0_7_21_features."default".from_target_build_utils_0_3_1__default = true;
-  serde_json_0_9_10_features."default".from_target_build_utils_0_3_1__default = true;
-  thread_id_2_0_0 = thread_id_2_0_0_ rec {
-    dependencies = [ kernel32_sys_0_2_2 libc_0_2_23 ];
-  };
-  kernel32_sys_0_2_2_features."default".from_thread_id_2_0_0__default = true;
-  libc_0_2_23_features."default".from_thread_id_2_0_0__default = true;
-  thread_local_0_2_7 = thread_local_0_2_7_ rec {
-    dependencies = [ thread_id_2_0_0 ];
-  };
-  thread_id_2_0_0_features."default".from_thread_local_0_2_7__default = true;
-  utf8_ranges_0_1_3 = utf8_ranges_0_1_3_ rec {};
-  uuid_0_3_1 = uuid_0_3_1_ rec {
-    dependencies = [ rand_0_3_15 rustc_serialize_0_3_24 ]
-      ++ (if lib.lists.any (x: x == "rand") features then [rand_0_3_15] else [])      ++ (if lib.lists.any (x: x == "rustc-serialize") features then [rustc_serialize_0_3_24] else []);
-    features = mkFeatures uuid_0_3_1_features;
-  };
-  uuid_0_3_1_features."".self = true;
-  uuid_0_3_1_features."rand".self_v4 = hasFeature (uuid_0_3_1_features."v4" or {});
-  uuid_0_3_1_features."sha1".self_v5 = hasFeature (uuid_0_3_1_features."v5" or {});
-  rand_0_3_15_features."default".from_uuid_0_3_1__default = true;
-  rustc_serialize_0_3_24_features."default".from_uuid_0_3_1__default = true;
-  serde_0_0_0_features."default".from_uuid_0_3_1__default = true;
-  sha1_0_0_0_features."default".from_uuid_0_3_1__default = true;
-  void_1_0_2 = void_1_0_2_ rec {
-    features = mkFeatures void_1_0_2_features;
-  };
-  void_1_0_2_features."std".self_default = hasDefault void_1_0_2_features;
-  way_cooler_0_6_2 = way_cooler_0_6_2_ rec {
-    dependencies = [ bitflags_0_7_0 cairo_rs_0_1_3 dbus_0_4_1 dbus_macros_0_0_6 env_logger_0_3_5 getopts_0_2_14 hlua_0_1_9 json_macro_0_1_1 lazy_static_0_2_8 log_0_3_7 nix_0_6_0 petgraph_0_4_5 rustc_serialize_0_3_24 rustwlc_0_6_2 uuid_0_3_1 wayland_server_0_9_4 wayland_sys_0_9_4 ];
-    buildDependencies = [ wayland_scanner_0_9_4 ];
-    features = mkFeatures way_cooler_0_6_2_features;
-  };
-  way_cooler_0_6_2_features."".self = true;
-  bitflags_0_7_0_features."default".from_way_cooler_0_6_2__default = true;
-  cairo_rs_0_1_3_features."default".from_way_cooler_0_6_2__default = true;
-  dbus_0_4_1_features."default".from_way_cooler_0_6_2__default = true;
-  dbus_macros_0_0_6_features."default".from_way_cooler_0_6_2__default = true;
-  env_logger_0_3_5_features."default".from_way_cooler_0_6_2__default = true;
-  getopts_0_2_14_features."default".from_way_cooler_0_6_2__default = true;
-  hlua_0_1_9_features."default".from_way_cooler_0_6_2__default = true;
-  json_macro_0_1_1_features."default".from_way_cooler_0_6_2__default = true;
-  lazy_static_0_2_8_features."default".from_way_cooler_0_6_2__default = true;
-  log_0_3_7_features."default".from_way_cooler_0_6_2__default = true;
-  nix_0_6_0_features."default".from_way_cooler_0_6_2__default = true;
-  petgraph_0_4_5_features."default".from_way_cooler_0_6_2__default = true;
-  rustc_serialize_0_3_24_features."default".from_way_cooler_0_6_2__default = true;
-  rustwlc_0_6_2_features."wlc-wayland".from_way_cooler_0_6_2 = true;
-  rustwlc_0_6_2_features."static-wlc".from_way_cooler_0_6_2__static-wlc = hasFeature (way_cooler_0_6_2_features."static-wlc" or {});
-  rustwlc_0_6_2_features."default".from_way_cooler_0_6_2__default = true;
-  uuid_0_3_1_features."v4".from_way_cooler_0_6_2 = true;
-  uuid_0_3_1_features."rustc-serialize".from_way_cooler_0_6_2 = true;
-  uuid_0_3_1_features."default".from_way_cooler_0_6_2__default = true;
-  wayland_server_0_9_4_features."default".from_way_cooler_0_6_2__default = true;
-  wayland_sys_0_9_4_features."client".from_way_cooler_0_6_2 = true;
-  wayland_sys_0_9_4_features."dlopen".from_way_cooler_0_6_2 = true;
-  wayland_sys_0_9_4_features."default".from_way_cooler_0_6_2__default = true;
-  wayland_scanner_0_9_4 = wayland_scanner_0_9_4_ rec {
-    dependencies = [ xml_rs_0_3_6 ];
-  };
-  xml_rs_0_3_6_features."default".from_wayland_scanner_0_9_4__default = true;
-  wayland_server_0_9_4 = wayland_server_0_9_4_ rec {
-    dependencies = [ bitflags_0_7_0 libc_0_2_23 nix_0_8_1 wayland_sys_0_9_4 ];
-    buildDependencies = [ wayland_scanner_0_9_4 ];
-    features = mkFeatures wayland_server_0_9_4_features;
-  };
-  wayland_server_0_9_4_features."".self = true;
-  bitflags_0_7_0_features."default".from_wayland_server_0_9_4__default = true;
-  libc_0_2_23_features."default".from_wayland_server_0_9_4__default = true;
-  nix_0_8_1_features."default".from_wayland_server_0_9_4__default = true;
-  wayland_sys_0_9_4_features."server".from_wayland_server_0_9_4 = true;
-  wayland_sys_0_9_4_features."dlopen".from_wayland_server_0_9_4__dlopen = hasFeature (wayland_server_0_9_4_features."dlopen" or {});
-  wayland_sys_0_9_4_features."default".from_wayland_server_0_9_4__default = true;
-  wayland_sys_0_6_0 = wayland_sys_0_6_0_ rec {
-    dependencies = [ dlib_0_3_1 libc_0_2_23 ]
-      ++ (if lib.lists.any (x: x == "libc") features then [libc_0_2_23] else []);
-    features = mkFeatures wayland_sys_0_6_0_features;
-  };
-  wayland_sys_0_6_0_features."".self = true;
-  wayland_sys_0_6_0_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
-  wayland_sys_0_6_0_features."libc".self_server = hasFeature (wayland_sys_0_6_0_features."server" or {});
-  dlib_0_3_1_features."dlopen".from_wayland_sys_0_6_0__dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
-  dlib_0_3_1_features."default".from_wayland_sys_0_6_0__default = true;
-  lazy_static_0_0_0_features."default".from_wayland_sys_0_6_0__default = true;
-  libc_0_2_23_features."default".from_wayland_sys_0_6_0__default = true;
-  wayland_sys_0_9_4 = wayland_sys_0_9_4_ rec {
-    dependencies = [ dlib_0_3_1 lazy_static_0_2_8 libc_0_2_23 ]
-      ++ (if lib.lists.any (x: x == "lazy_static") features then [lazy_static_0_2_8] else [])      ++ (if lib.lists.any (x: x == "libc") features then [libc_0_2_23] else []);
-    features = mkFeatures wayland_sys_0_9_4_features;
-  };
-  wayland_sys_0_9_4_features."".self = true;
-  wayland_sys_0_9_4_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_9_4_features."dlopen" or {});
-  wayland_sys_0_9_4_features."libc".self_server = hasFeature (wayland_sys_0_9_4_features."server" or {});
-  dlib_0_3_1_features."dlopen".from_wayland_sys_0_9_4__dlopen = hasFeature (wayland_sys_0_9_4_features."dlopen" or {});
-  dlib_0_3_1_features."default".from_wayland_sys_0_9_4__default = true;
-  lazy_static_0_2_8_features."default".from_wayland_sys_0_9_4__default = true;
-  libc_0_2_23_features."default".from_wayland_sys_0_9_4__default = true;
-  winapi_0_2_8 = winapi_0_2_8_ rec {};
-  winapi_build_0_1_1 = winapi_build_0_1_1_ rec {};
-  xml_rs_0_3_6 = xml_rs_0_3_6_ rec {
-    dependencies = [ bitflags_0_7_0 ];
-  };
-  bitflags_0_7_0_features."default".from_xml_rs_0_3_6__default = true;
+  way_cooler = f: way_cooler_0_8_0 { features = way_cooler_0_8_0_features { way_cooler_0_8_0 = f; }; };
+  aho_corasick_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "aho-corasick";
+    version = "0.5.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1igab46mvgknga3sxkqc917yfff0wsjxjzabdigmh240p5qxqlnn";
+    libName = "aho_corasick";
+    crateBin = [ {  name = "aho-corasick-dot"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.4.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0an03kibhfcc0mcxf6a0mvbab0s7cggnvflw8jn0b15i351h828c";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.6.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1znq4b770mdp3kdj9yz199ylc2pmf8l5j2f281jjrcfhg1mm22h6";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.7.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.9.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_1_0_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "1.0.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0p4b3nr0s5nda2qmm7xdhnvh4lkqk3xd8l9ffmwbvqw137vx7mj1";
+    inherit dependencies buildDependencies features;
+  };
+  c_vec_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "c_vec";
+    version = "1.2.1";
+    authors = [ "Guillaume Gomez <guillaume1.gomez@gmail.com>" ];
+    sha256 = "15gm72wx9kd0n51454i58rmpkmig8swghrj2440frxxi9kqg97xd";
+    inherit dependencies buildDependencies features;
+  };
+  cairo_rs_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cairo-rs";
+    version = "0.2.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "0bcbhbyips15b7la4r43p4x57jv1w2ll8iwg9lxwvzz5k6c7iwvd";
+    libName = "cairo";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  cairo_sys_rs_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cairo-sys-rs";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "062nxihlydci65pyy2ldn7djkc9sm7a5xvkl8pxrsxfxvfapm5br";
+    libName = "cairo_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  cfg_if_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cfg-if";
+    version = "0.1.2";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0x06hvrrqy96m97593823vvxcgvjaxckghwyy2jcyc8qc7c6cyhi";
+    inherit dependencies buildDependencies features;
+  };
+  dbus_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbus";
+    version = "0.4.1";
+    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+    sha256 = "0qw32qj2rys318h780klxlznkwg93dfimbn8mc34m4940l8v00g9";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  dbus_macros_0_0_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbus-macros";
+    version = "0.0.6";
+    authors = [ "Antoni Boucher <bouanto@zoho.com>" ];
+    sha256 = "1nymk2hzzgyafyr5nfa4r4frx4hml3wlwgzfr9b69vmcvn3d2jyd";
+    inherit dependencies buildDependencies features;
+  };
+  dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dlib";
+    version = "0.3.1";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+    inherit dependencies buildDependencies features;
+  };
+  dlib_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dlib";
+    version = "0.4.0";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "08sy43rji5dyhyz8r4i0dz6zan1r1dz8sh6fk3c1jyhy8v8s96jr";
+    inherit dependencies buildDependencies features;
+  };
+  dtoa_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dtoa";
+    version = "0.4.2";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1bxsh6fags7nr36vlz07ik2a1rzyipc8x1y30kjk832hf2pzadmw";
+    inherit dependencies buildDependencies features;
+  };
+  dummy_rustwlc_0_7_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dummy-rustwlc";
+    version = "0.7.1";
+    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Preston Carpenter <APragmaticPlace@gmail.com>" ];
+    sha256 = "13priwnxpjvmym6yh9v9x1230ca04cba7bzbnn21pbvqngis1y88";
+    inherit dependencies buildDependencies features;
+  };
+  env_logger_0_3_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "env_logger";
+    version = "0.3.5";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1mvxiaaqsyjliv1mm1qaagjqiccw11mdyi3n9h9rf8y6wj15zycw";
+    inherit dependencies buildDependencies features;
+  };
+  fixedbitset_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fixedbitset";
+    version = "0.1.8";
+    authors = [ "bluss" ];
+    sha256 = "18qr6w8jlfvhq825dr0mv9k0xqgb43sshdihbarc9khi9cz910a2";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon";
+    version = "0.3.2";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "1zhxksplv52nlqd4j21h8462b5s913ngnhd303qsxsxn8dpaxgkq";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_sys_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon-sys";
+    version = "0.3.2";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "0p8mrhg8pxk4kpzziv6nlxd8xgkj916gsg2b0x2mvf9dxwzrqhnk";
+    inherit dependencies buildDependencies features;
+  };
+  gcc_0_3_54_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gcc";
+    version = "0.3.54";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "07a5i47r8achc6gxsba3ga17h9gnh4b9a2cak8vjg4hx62aajkr4";
+    inherit dependencies buildDependencies features;
+  };
+  gdk_pixbuf_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gdk-pixbuf";
+    version = "0.2.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "082z1s30haa59ax35wsv06mj8z8bhhq0fac36g01qa77kpiphj5y";
+    libName = "gdk_pixbuf";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  gdk_pixbuf_sys_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gdk-pixbuf-sys";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "1r98zdqqik3hh1l10jmhhcjx59yk4m0bs9pc7hnkwp2p6gm968vp";
+    libName = "gdk_pixbuf_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  getopts_0_2_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "getopts";
+    version = "0.2.15";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "14wm893ihscwwbwpd1xvjm23slaidridbl2p2ghwkx69xfzm9333";
+    inherit dependencies buildDependencies features;
+  };
+  gio_sys_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gio-sys";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "064lv6h3qfgjzc6pbbxgln24b2fq9gxzh78z6d7fwfa97azllv2l";
+    libName = "gio_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  glib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glib";
+    version = "0.3.1";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "00s3n0pd8by1fk2l01mxmbnqq4ff6wadnkcf9jbjvr1l9bzgyqbl";
+    inherit dependencies buildDependencies features;
+  };
+  glib_sys_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glib-sys";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "153i1zmk824hdf8agkaqcgddlwpvgng71n7bdpaav5f4zzlfyp2w";
+    libName = "glib_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  gobject_sys_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gobject-sys";
+    version = "0.4.0";
+    authors = [ "The Gtk-rs Project Developers" ];
+    sha256 = "00zmcbzqfhn9w01cphhf3hbq8ldd9ajba7x07z59vv1gdq6wjzli";
+    libName = "gobject_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  itoa_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.3.4";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1nfkzz6vrgj0d9l3yzjkkkqzdgs68y294fjdbl7jq118qi8xc9d9";
+    inherit dependencies buildDependencies features;
+  };
+  json_macro_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "json_macro";
+    version = "0.1.1";
+    authors = [ "Denis Kolodin <deniskolodin@gmail.com>" ];
+    sha256 = "0hl2934shpwqbszrq035valbdz9y8p7dza183brygy5dbvivcyqy";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "0.2.11";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1x6871cvpy5b96yv4c7jvpq316fp5d4609s9py7qk6cd6x9k34vm";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "1.0.0";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0wfvqyr2nvx2mbsrscg5y7gfa9skhb8p72ayanl8vl49pw24v4fh";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.34";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "11jmqdxmv0ka10ay0l8nzx0nl7s2lc3dbrnh1mgbr2grzwdyxi2s";
+    inherit dependencies buildDependencies features;
+  };
+  libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libloading";
+    version = "0.3.4";
+    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  libloading_0_4_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libloading";
+    version = "0.4.3";
+    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+    sha256 = "1cgb6xbadm59gc3cq733wrzsp59914hrjam0fan5gn1z100b6319";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  log_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "log";
+    version = "0.3.9";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "19i9pwp7lhaqgzangcpw00kc3zsgcqcx84crv07xgz3v7d3kvfa2";
+    inherit dependencies buildDependencies features;
+  };
+  log_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "log";
+    version = "0.4.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0d6m7c1cr6sj3kk47801zyjgnzyl94yh2ra9gxc3waljza7wvx92";
+    inherit dependencies buildDependencies features;
+  };
+  memchr_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "memchr";
+    version = "0.1.11";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
+    sha256 = "0x73jghamvxxq5fsw9wb0shk5m6qp3q6fsf0nibn0i6bbqkw91s8";
+    inherit dependencies buildDependencies features;
+  };
+  nix_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "nix";
+    version = "0.6.0";
+    authors = [ "Carl Lerche <me@carllerche.com>" ];
+    sha256 = "1bgh75y897isnxbw3vd79vns9h6q4d59p1cgv9c4laysyw6fkqwf";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  nix_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "nix";
+    version = "0.9.0";
+    authors = [ "The nix-rust Project Developers" ];
+    sha256 = "00p63bphzwwn460rja5l2wcpgmv7ljf7illf6n95cppx63d180q0";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_41_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.41";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "134gv890n1gv8v0jys55k0940gqp2hibgf1fs8q9jmyk2xp1jp9m";
+    inherit dependencies buildDependencies features;
+  };
+  ordermap_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ordermap";
+    version = "0.3.2";
+    authors = [ "bluss" ];
+    sha256 = "13zw8i0gf3snihmg9xvd63sd3ffdhhv8bmgfwbwf4shqxh6h3sac";
+    inherit dependencies buildDependencies features;
+  };
+  petgraph_0_4_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "petgraph";
+    version = "0.4.10";
+    authors = [ "bluss" "mitchmindtree" ];
+    sha256 = "1fdh2hwkrbf716qxdiasjn8jspvshhykclj8mwafdd8h241159sj";
+    inherit dependencies buildDependencies features;
+  };
+  phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_codegen";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+    inherit dependencies buildDependencies features;
+  };
+  phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_generator";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+    inherit dependencies buildDependencies features;
+  };
+  phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_shared";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_19_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.19";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "19zx65w7rrrfnjifmjp2i80w9bc6ld7pcwnk5hmr9xszmmvhk8zp";
+    inherit dependencies buildDependencies features;
+  };
+  regex_0_1_80_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex";
+    version = "0.1.80";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0y4s8ghhx6sgzb35irwivm3w0l2hhqhmdcd2px9hirqnkagal9l6";
+    inherit dependencies buildDependencies features;
+  };
+  regex_syntax_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "regex-syntax";
+    version = "0.3.9";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1mzhphkbwppwd1zam2jkgjk550cqgf6506i87bw2yzrvcsraiw7m";
+    inherit dependencies buildDependencies features;
+  };
+  rlua_0_9_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rlua";
+    version = "0.9.7";
+    authors = [ "kyren <catherine@chucklefish.org>" ];
+    sha256 = "1671b5ga54aq49sqx69hvnjr732hf9jpqwswwxgpcqq8q05mfzgp";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc-serialize";
+    version = "0.3.24";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc_version";
+    version = "0.1.7";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
+    inherit dependencies buildDependencies features;
+  };
+  rustwlc_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustwlc";
+    version = "0.7.0";
+    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
+    sha256 = "0gqi9pdw74al33ja25h33q68vnfklj3gpjgkiqqbr3gflgli5h1i";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver";
+    version = "0.1.20";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
+    inherit dependencies buildDependencies features;
+  };
+  serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "0.9.15";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
+    inherit dependencies buildDependencies features;
+  };
+  serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_json";
+    version = "0.9.10";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+    inherit dependencies buildDependencies features;
+  };
+  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "siphasher";
+    version = "0.2.2";
+    authors = [ "Frank Denis <github@pureftpd.org>" ];
+    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+    inherit dependencies buildDependencies features;
+  };
+  target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "target_build_utils";
+    version = "0.3.1";
+    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  thread_id_2_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread-id";
+    version = "2.0.0";
+    authors = [ "Ruud van Asseldonk <dev@veniogames.com>" ];
+    sha256 = "06i3c8ckn97i5rp16civ2vpqbknlkx66dkrl070iw60nawi0kjc3";
+    inherit dependencies buildDependencies features;
+  };
+  thread_local_0_2_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "thread_local";
+    version = "0.2.7";
+    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "19p0zrs24rdwjvpi10jig5ms3sxj00pv8shkr9cpddri8cdghqp7";
+    inherit dependencies buildDependencies features;
+  };
+  token_store_0_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "token_store";
+    version = "0.1.2";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1v7acraqyh6iibg87pwkxm41v783sminxm5k9f4ndra7r0vq4zvq";
+    inherit dependencies buildDependencies features;
+  };
+  utf8_ranges_0_1_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "utf8-ranges";
+    version = "0.1.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1cj548a91a93j8375p78qikaiam548xh84cb0ck8y119adbmsvbp";
+    inherit dependencies buildDependencies features;
+  };
+  uuid_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "uuid";
+    version = "0.3.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "16ak1c84dfkd8h33cvkxrkvc30k7b0bhrnza8ni2c0jsx85fpbip";
+    inherit dependencies buildDependencies features;
+  };
+  void_1_0_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "void";
+    version = "1.0.2";
+    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
+    sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
+    inherit dependencies buildDependencies features;
+  };
+  way_cooler_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "way-cooler";
+    version = "0.8.0";
+    authors = [ "Snirk Immington <snirk.immington@gmail.com>" "Timidger <apragmaticplace@gmail.com>" ];
+    sha256 = "1xg7sg0ssc7a8nx7g6pjdfz9ndf0l7p2n0ydh3sqym3k5ifxi965";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_scanner_0_12_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-scanner";
+    version = "0.12.4";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "043s30i7da64a7inmwiib36ax681vw7zr0pfl54alcyc6pgyanb1";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_server_0_12_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-server";
+    version = "0.12.4";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "0m8565848l8f1h3mwlyxy3nfqv11vpl50y9qcpmp60hw8w2vw124";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.6.0";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.9.10";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "011q7lfii222whvif39asvryl1sf3rc1fxp8qs8gh84kr4mna0k8";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_12_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.12.4";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1q9qyjl6bz356kh50lzvk48qbs87zbaqh5mhm6nlngkg1qrbvi6c";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  xcb_0_8_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xcb";
+    version = "0.8.1";
+    authors = [ "Remi Thebault <remi.thebault@gmail.com>" ];
+    sha256 = "12jk8rbbmw3h9w0c7idvjph5bx0qpjgrv0nql2cfwy571j9qxb7j";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  xml_rs_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xml-rs";
+    version = "0.7.0";
+    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+    sha256 = "12rynhqjgkg2hzy9x1d1232p9d9jm40bc3by5yzjv8gx089mflyb";
+    libPath = "src/lib.rs";
+    libName = "xml";
+    crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  aho_corasick_0_5_3 = { features?(aho_corasick_0_5_3_features {}) }: aho_corasick_0_5_3_ {
+    dependencies = mapFeatures features ([ memchr_0_1_11 ]);
+  };
+  aho_corasick_0_5_3_features = f: updateFeatures f (rec {
+    aho_corasick_0_5_3.default = (f.aho_corasick_0_5_3.default or true);
+    memchr_0_1_11.default = true;
+  }) [ memchr_0_1_11_features ];
+  bitflags_0_4_0 = { features?(bitflags_0_4_0_features {}) }: bitflags_0_4_0_ {
+    features = mkFeatures (features.bitflags_0_4_0 or {});
+  };
+  bitflags_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_4_0.default = (f.bitflags_0_4_0.default or true);
+  }) [];
+  bitflags_0_6_0 = { features?(bitflags_0_6_0_features {}) }: bitflags_0_6_0_ {};
+  bitflags_0_6_0_features = f: updateFeatures f (rec {
+    bitflags_0_6_0.default = (f.bitflags_0_6_0.default or true);
+  }) [];
+  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
+  bitflags_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
+  }) [];
+  bitflags_0_9_1 = { features?(bitflags_0_9_1_features {}) }: bitflags_0_9_1_ {
+    features = mkFeatures (features.bitflags_0_9_1 or {});
+  };
+  bitflags_0_9_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = (f.bitflags_0_9_1.default or true);
+    bitflags_0_9_1.example_generated =
+      (f.bitflags_0_9_1.example_generated or false) ||
+      (f.bitflags_0_9_1.default or false) ||
+      (bitflags_0_9_1.default or false);
+  }) [];
+  bitflags_1_0_1 = { features?(bitflags_1_0_1_features {}) }: bitflags_1_0_1_ {
+    features = mkFeatures (features.bitflags_1_0_1 or {});
+  };
+  bitflags_1_0_1_features = f: updateFeatures f (rec {
+    bitflags_1_0_1.default = (f.bitflags_1_0_1.default or true);
+    bitflags_1_0_1.example_generated =
+      (f.bitflags_1_0_1.example_generated or false) ||
+      (f.bitflags_1_0_1.default or false) ||
+      (bitflags_1_0_1.default or false);
+  }) [];
+  c_vec_1_2_1 = { features?(c_vec_1_2_1_features {}) }: c_vec_1_2_1_ {};
+  c_vec_1_2_1_features = f: updateFeatures f (rec {
+    c_vec_1_2_1.default = (f.c_vec_1_2_1.default or true);
+  }) [];
+  cairo_rs_0_2_0 = { features?(cairo_rs_0_2_0_features {}) }: cairo_rs_0_2_0_ {
+    dependencies = mapFeatures features ([ c_vec_1_2_1 cairo_sys_rs_0_4_0 libc_0_2_34 ]
+      ++ (if features.cairo_rs_0_2_0.glib or false then [ glib_0_3_1 ] else [])
+      ++ (if features.cairo_rs_0_2_0.glib-sys or false then [ glib_sys_0_4_0 ] else []))
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([]);
+    features = mkFeatures (features.cairo_rs_0_2_0 or {});
+  };
+  cairo_rs_0_2_0_features = f: updateFeatures f (rec {
+    c_vec_1_2_1.default = true;
+    cairo_rs_0_2_0.default = (f.cairo_rs_0_2_0.default or true);
+    cairo_rs_0_2_0.glib =
+      (f.cairo_rs_0_2_0.glib or false) ||
+      (f.cairo_rs_0_2_0.use_glib or false) ||
+      (cairo_rs_0_2_0.use_glib or false);
+    cairo_rs_0_2_0.glib-sys =
+      (f.cairo_rs_0_2_0.glib-sys or false) ||
+      (f.cairo_rs_0_2_0.use_glib or false) ||
+      (cairo_rs_0_2_0.use_glib or false);
+    cairo_rs_0_2_0.gtk-rs-lgpl-docs =
+      (f.cairo_rs_0_2_0.gtk-rs-lgpl-docs or false) ||
+      (f.cairo_rs_0_2_0.embed-lgpl-docs or false) ||
+      (cairo_rs_0_2_0.embed-lgpl-docs or false) ||
+      (f.cairo_rs_0_2_0.purge-lgpl-docs or false) ||
+      (cairo_rs_0_2_0.purge-lgpl-docs or false);
+    cairo_rs_0_2_0.use_glib =
+      (f.cairo_rs_0_2_0.use_glib or false) ||
+      (f.cairo_rs_0_2_0.default or false) ||
+      (cairo_rs_0_2_0.default or false);
+    cairo_sys_rs_0_4_0.default = true;
+    cairo_sys_rs_0_4_0.png =
+      (f.cairo_sys_rs_0_4_0.png or false) ||
+      (cairo_rs_0_2_0.png or false) ||
+      (f.cairo_rs_0_2_0.png or false);
+    cairo_sys_rs_0_4_0.v1_12 =
+      (f.cairo_sys_rs_0_4_0.v1_12 or false) ||
+      (cairo_rs_0_2_0.v1_12 or false) ||
+      (f.cairo_rs_0_2_0.v1_12 or false);
+    cairo_sys_rs_0_4_0.xcb =
+      (f.cairo_sys_rs_0_4_0.xcb or false) ||
+      (cairo_rs_0_2_0.xcb or false) ||
+      (f.cairo_rs_0_2_0.xcb or false);
+    glib_0_3_1.default = true;
+    glib_sys_0_4_0.default = true;
+    libc_0_2_34.default = true;
+    winapi_0_2_8.default = true;
+  }) [ c_vec_1_2_1_features cairo_sys_rs_0_4_0_features glib_0_3_1_features glib_sys_0_4_0_features libc_0_2_34_features winapi_0_2_8_features ];
+  cairo_sys_rs_0_4_0 = { features?(cairo_sys_rs_0_4_0_features {}) }: cairo_sys_rs_0_4_0_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.cairo_sys_rs_0_4_0 or {});
+  };
+  cairo_sys_rs_0_4_0_features = f: updateFeatures f (rec {
+    cairo_sys_rs_0_4_0.default = (f.cairo_sys_rs_0_4_0.default or true);
+    cairo_sys_rs_0_4_0.v1_12 =
+      (f.cairo_sys_rs_0_4_0.v1_12 or false) ||
+      (f.cairo_sys_rs_0_4_0.v1_14 or false) ||
+      (cairo_sys_rs_0_4_0.v1_14 or false);
+    cairo_sys_rs_0_4_0.x11 =
+      (f.cairo_sys_rs_0_4_0.x11 or false) ||
+      (f.cairo_sys_rs_0_4_0.xlib or false) ||
+      (cairo_sys_rs_0_4_0.xlib or false);
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_34_features pkg_config_0_3_9_features winapi_0_2_8_features ];
+  cfg_if_0_1_2 = { features?(cfg_if_0_1_2_features {}) }: cfg_if_0_1_2_ {};
+  cfg_if_0_1_2_features = f: updateFeatures f (rec {
+    cfg_if_0_1_2.default = (f.cfg_if_0_1_2.default or true);
+  }) [];
+  dbus_0_4_1 = { features?(dbus_0_4_1_features {}) }: dbus_0_4_1_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+  };
+  dbus_0_4_1_features = f: updateFeatures f (rec {
+    dbus_0_4_1.default = (f.dbus_0_4_1.default or true);
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ libc_0_2_34_features pkg_config_0_3_9_features ];
+  dbus_macros_0_0_6 = { features?(dbus_macros_0_0_6_features {}) }: dbus_macros_0_0_6_ {
+    dependencies = mapFeatures features ([ dbus_0_4_1 ]);
+  };
+  dbus_macros_0_0_6_features = f: updateFeatures f (rec {
+    dbus_0_4_1.default = true;
+    dbus_macros_0_0_6.default = (f.dbus_macros_0_0_6.default or true);
+  }) [ dbus_0_4_1_features ];
+  dlib_0_3_1 = { features?(dlib_0_3_1_features {}) }: dlib_0_3_1_ {
+    dependencies = mapFeatures features ([ libloading_0_3_4 ]);
+    features = mkFeatures (features.dlib_0_3_1 or {});
+  };
+  dlib_0_3_1_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = (f.dlib_0_3_1.default or true);
+    libloading_0_3_4.default = true;
+  }) [ libloading_0_3_4_features ];
+  dlib_0_4_0 = { features?(dlib_0_4_0_features {}) }: dlib_0_4_0_ {
+    dependencies = mapFeatures features ([ libloading_0_4_3 ]);
+    features = mkFeatures (features.dlib_0_4_0 or {});
+  };
+  dlib_0_4_0_features = f: updateFeatures f (rec {
+    dlib_0_4_0.default = (f.dlib_0_4_0.default or true);
+    libloading_0_4_3.default = true;
+  }) [ libloading_0_4_3_features ];
+  dtoa_0_4_2 = { features?(dtoa_0_4_2_features {}) }: dtoa_0_4_2_ {};
+  dtoa_0_4_2_features = f: updateFeatures f (rec {
+    dtoa_0_4_2.default = (f.dtoa_0_4_2.default or true);
+  }) [];
+  dummy_rustwlc_0_7_1 = { features?(dummy_rustwlc_0_7_1_features {}) }: dummy_rustwlc_0_7_1_ {
+    dependencies = mapFeatures features ([ bitflags_0_6_0 libc_0_2_34 wayland_sys_0_9_10 ]);
+  };
+  dummy_rustwlc_0_7_1_features = f: updateFeatures f (rec {
+    bitflags_0_6_0.default = true;
+    dummy_rustwlc_0_7_1.default = (f.dummy_rustwlc_0_7_1.default or true);
+    libc_0_2_34.default = true;
+    wayland_sys_0_9_10.default = true;
+    wayland_sys_0_9_10.dlopen = true;
+    wayland_sys_0_9_10.server = true;
+  }) [ bitflags_0_6_0_features libc_0_2_34_features wayland_sys_0_9_10_features ];
+  env_logger_0_3_5 = { features?(env_logger_0_3_5_features {}) }: env_logger_0_3_5_ {
+    dependencies = mapFeatures features ([ log_0_3_9 ]
+      ++ (if features.env_logger_0_3_5.regex or false then [ regex_0_1_80 ] else []));
+    features = mkFeatures (features.env_logger_0_3_5 or {});
+  };
+  env_logger_0_3_5_features = f: updateFeatures f (rec {
+    env_logger_0_3_5.default = (f.env_logger_0_3_5.default or true);
+    env_logger_0_3_5.regex =
+      (f.env_logger_0_3_5.regex or false) ||
+      (f.env_logger_0_3_5.default or false) ||
+      (env_logger_0_3_5.default or false);
+    log_0_3_9.default = true;
+    regex_0_1_80.default = true;
+  }) [ log_0_3_9_features regex_0_1_80_features ];
+  fixedbitset_0_1_8 = { features?(fixedbitset_0_1_8_features {}) }: fixedbitset_0_1_8_ {};
+  fixedbitset_0_1_8_features = f: updateFeatures f (rec {
+    fixedbitset_0_1_8.default = (f.fixedbitset_0_1_8.default or true);
+  }) [];
+  fuchsia_zircon_0_3_2 = { features?(fuchsia_zircon_0_3_2_features {}) }: fuchsia_zircon_0_3_2_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_1 fuchsia_zircon_sys_0_3_2 ]);
+  };
+  fuchsia_zircon_0_3_2_features = f: updateFeatures f (rec {
+    bitflags_1_0_1.default = true;
+    fuchsia_zircon_0_3_2.default = (f.fuchsia_zircon_0_3_2.default or true);
+    fuchsia_zircon_sys_0_3_2.default = true;
+  }) [ bitflags_1_0_1_features fuchsia_zircon_sys_0_3_2_features ];
+  fuchsia_zircon_sys_0_3_2 = { features?(fuchsia_zircon_sys_0_3_2_features {}) }: fuchsia_zircon_sys_0_3_2_ {};
+  fuchsia_zircon_sys_0_3_2_features = f: updateFeatures f (rec {
+    fuchsia_zircon_sys_0_3_2.default = (f.fuchsia_zircon_sys_0_3_2.default or true);
+  }) [];
+  gcc_0_3_54 = { features?(gcc_0_3_54_features {}) }: gcc_0_3_54_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.gcc_0_3_54 or {});
+  };
+  gcc_0_3_54_features = f: updateFeatures f (rec {
+    gcc_0_3_54.default = (f.gcc_0_3_54.default or true);
+    gcc_0_3_54.rayon =
+      (f.gcc_0_3_54.rayon or false) ||
+      (f.gcc_0_3_54.parallel or false) ||
+      (gcc_0_3_54.parallel or false);
+  }) [];
+  gdk_pixbuf_0_2_0 = { features?(gdk_pixbuf_0_2_0_features {}) }: gdk_pixbuf_0_2_0_ {
+    dependencies = mapFeatures features ([ gdk_pixbuf_sys_0_4_0 glib_0_3_1 glib_sys_0_4_0 gobject_sys_0_4_0 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([]);
+    features = mkFeatures (features.gdk_pixbuf_0_2_0 or {});
+  };
+  gdk_pixbuf_0_2_0_features = f: updateFeatures f (rec {
+    gdk_pixbuf_0_2_0.default = (f.gdk_pixbuf_0_2_0.default or true);
+    gdk_pixbuf_0_2_0.gtk-rs-lgpl-docs =
+      (f.gdk_pixbuf_0_2_0.gtk-rs-lgpl-docs or false) ||
+      (f.gdk_pixbuf_0_2_0.embed-lgpl-docs or false) ||
+      (gdk_pixbuf_0_2_0.embed-lgpl-docs or false) ||
+      (f.gdk_pixbuf_0_2_0.purge-lgpl-docs or false) ||
+      (gdk_pixbuf_0_2_0.purge-lgpl-docs or false);
+    gdk_pixbuf_0_2_0.v2_28 =
+      (f.gdk_pixbuf_0_2_0.v2_28 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_30 or false) ||
+      (gdk_pixbuf_0_2_0.v2_30 or false);
+    gdk_pixbuf_0_2_0.v2_30 =
+      (f.gdk_pixbuf_0_2_0.v2_30 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_32 or false) ||
+      (gdk_pixbuf_0_2_0.v2_32 or false);
+    gdk_pixbuf_0_2_0.v2_32 =
+      (f.gdk_pixbuf_0_2_0.v2_32 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_36 or false) ||
+      (gdk_pixbuf_0_2_0.v2_36 or false);
+    gdk_pixbuf_sys_0_4_0.default = true;
+    gdk_pixbuf_sys_0_4_0.v2_28 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_28 or false) ||
+      (gdk_pixbuf_0_2_0.v2_28 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_28 or false);
+    gdk_pixbuf_sys_0_4_0.v2_30 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_30 or false) ||
+      (gdk_pixbuf_0_2_0.v2_30 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_30 or false);
+    gdk_pixbuf_sys_0_4_0.v2_32 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_32 or false) ||
+      (gdk_pixbuf_0_2_0.v2_32 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_32 or false);
+    gdk_pixbuf_sys_0_4_0.v2_36 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_36 or false) ||
+      (gdk_pixbuf_0_2_0.v2_36 or false) ||
+      (f.gdk_pixbuf_0_2_0.v2_36 or false);
+    glib_0_3_1.default = true;
+    glib_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.default = true;
+    libc_0_2_34.default = true;
+  }) [ gdk_pixbuf_sys_0_4_0_features glib_0_3_1_features glib_sys_0_4_0_features gobject_sys_0_4_0_features libc_0_2_34_features ];
+  gdk_pixbuf_sys_0_4_0 = { features?(gdk_pixbuf_sys_0_4_0_features {}) }: gdk_pixbuf_sys_0_4_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 gio_sys_0_4_0 glib_sys_0_4_0 gobject_sys_0_4_0 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.gdk_pixbuf_sys_0_4_0 or {});
+  };
+  gdk_pixbuf_sys_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    gdk_pixbuf_sys_0_4_0.default = (f.gdk_pixbuf_sys_0_4_0.default or true);
+    gdk_pixbuf_sys_0_4_0.v2_28 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_28 or false) ||
+      (f.gdk_pixbuf_sys_0_4_0.v2_30 or false) ||
+      (gdk_pixbuf_sys_0_4_0.v2_30 or false);
+    gdk_pixbuf_sys_0_4_0.v2_30 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_30 or false) ||
+      (f.gdk_pixbuf_sys_0_4_0.v2_32 or false) ||
+      (gdk_pixbuf_sys_0_4_0.v2_32 or false);
+    gdk_pixbuf_sys_0_4_0.v2_32 =
+      (f.gdk_pixbuf_sys_0_4_0.v2_32 or false) ||
+      (f.gdk_pixbuf_sys_0_4_0.v2_36 or false) ||
+      (gdk_pixbuf_sys_0_4_0.v2_36 or false);
+    gio_sys_0_4_0.default = true;
+    glib_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.default = true;
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ bitflags_0_9_1_features gio_sys_0_4_0_features glib_sys_0_4_0_features gobject_sys_0_4_0_features libc_0_2_34_features pkg_config_0_3_9_features ];
+  getopts_0_2_15 = { features?(getopts_0_2_15_features {}) }: getopts_0_2_15_ {};
+  getopts_0_2_15_features = f: updateFeatures f (rec {
+    getopts_0_2_15.default = (f.getopts_0_2_15.default or true);
+  }) [];
+  gio_sys_0_4_0 = { features?(gio_sys_0_4_0_features {}) }: gio_sys_0_4_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 glib_sys_0_4_0 gobject_sys_0_4_0 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.gio_sys_0_4_0 or {});
+  };
+  gio_sys_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    gio_sys_0_4_0.default = (f.gio_sys_0_4_0.default or true);
+    gio_sys_0_4_0.v2_34 =
+      (f.gio_sys_0_4_0.v2_34 or false) ||
+      (f.gio_sys_0_4_0.v2_36 or false) ||
+      (gio_sys_0_4_0.v2_36 or false);
+    gio_sys_0_4_0.v2_36 =
+      (f.gio_sys_0_4_0.v2_36 or false) ||
+      (f.gio_sys_0_4_0.v2_38 or false) ||
+      (gio_sys_0_4_0.v2_38 or false);
+    gio_sys_0_4_0.v2_38 =
+      (f.gio_sys_0_4_0.v2_38 or false) ||
+      (f.gio_sys_0_4_0.v2_40 or false) ||
+      (gio_sys_0_4_0.v2_40 or false);
+    gio_sys_0_4_0.v2_40 =
+      (f.gio_sys_0_4_0.v2_40 or false) ||
+      (f.gio_sys_0_4_0.v2_42 or false) ||
+      (gio_sys_0_4_0.v2_42 or false);
+    gio_sys_0_4_0.v2_42 =
+      (f.gio_sys_0_4_0.v2_42 or false) ||
+      (f.gio_sys_0_4_0.v2_44 or false) ||
+      (gio_sys_0_4_0.v2_44 or false);
+    gio_sys_0_4_0.v2_44 =
+      (f.gio_sys_0_4_0.v2_44 or false) ||
+      (f.gio_sys_0_4_0.v2_46 or false) ||
+      (gio_sys_0_4_0.v2_46 or false);
+    gio_sys_0_4_0.v2_46 =
+      (f.gio_sys_0_4_0.v2_46 or false) ||
+      (f.gio_sys_0_4_0.v2_48 or false) ||
+      (gio_sys_0_4_0.v2_48 or false);
+    gio_sys_0_4_0.v2_48 =
+      (f.gio_sys_0_4_0.v2_48 or false) ||
+      (f.gio_sys_0_4_0.v2_50 or false) ||
+      (gio_sys_0_4_0.v2_50 or false);
+    glib_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.default = true;
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ bitflags_0_9_1_features glib_sys_0_4_0_features gobject_sys_0_4_0_features libc_0_2_34_features pkg_config_0_3_9_features ];
+  glib_0_3_1 = { features?(glib_0_3_1_features {}) }: glib_0_3_1_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 glib_sys_0_4_0 gobject_sys_0_4_0 lazy_static_0_2_11 libc_0_2_34 ]);
+    features = mkFeatures (features.glib_0_3_1 or {});
+  };
+  glib_0_3_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    glib_0_3_1.default = (f.glib_0_3_1.default or true);
+    glib_0_3_1.v2_34 =
+      (f.glib_0_3_1.v2_34 or false) ||
+      (f.glib_0_3_1.v2_38 or false) ||
+      (glib_0_3_1.v2_38 or false);
+    glib_0_3_1.v2_38 =
+      (f.glib_0_3_1.v2_38 or false) ||
+      (f.glib_0_3_1.v2_40 or false) ||
+      (glib_0_3_1.v2_40 or false);
+    glib_0_3_1.v2_40 =
+      (f.glib_0_3_1.v2_40 or false) ||
+      (f.glib_0_3_1.v2_44 or false) ||
+      (glib_0_3_1.v2_44 or false);
+    glib_0_3_1.v2_44 =
+      (f.glib_0_3_1.v2_44 or false) ||
+      (f.glib_0_3_1.v2_46 or false) ||
+      (glib_0_3_1.v2_46 or false);
+    glib_0_3_1.v2_46 =
+      (f.glib_0_3_1.v2_46 or false) ||
+      (f.glib_0_3_1.v2_48 or false) ||
+      (glib_0_3_1.v2_48 or false);
+    glib_0_3_1.v2_48 =
+      (f.glib_0_3_1.v2_48 or false) ||
+      (f.glib_0_3_1.v2_50 or false) ||
+      (glib_0_3_1.v2_50 or false);
+    glib_sys_0_4_0.default = true;
+    glib_sys_0_4_0.v2_34 =
+      (f.glib_sys_0_4_0.v2_34 or false) ||
+      (glib_0_3_1.v2_34 or false) ||
+      (f.glib_0_3_1.v2_34 or false);
+    glib_sys_0_4_0.v2_38 =
+      (f.glib_sys_0_4_0.v2_38 or false) ||
+      (glib_0_3_1.v2_38 or false) ||
+      (f.glib_0_3_1.v2_38 or false);
+    glib_sys_0_4_0.v2_40 =
+      (f.glib_sys_0_4_0.v2_40 or false) ||
+      (glib_0_3_1.v2_40 or false) ||
+      (f.glib_0_3_1.v2_40 or false);
+    glib_sys_0_4_0.v2_44 =
+      (f.glib_sys_0_4_0.v2_44 or false) ||
+      (glib_0_3_1.v2_44 or false) ||
+      (f.glib_0_3_1.v2_44 or false);
+    glib_sys_0_4_0.v2_46 =
+      (f.glib_sys_0_4_0.v2_46 or false) ||
+      (glib_0_3_1.v2_46 or false) ||
+      (f.glib_0_3_1.v2_46 or false);
+    glib_sys_0_4_0.v2_48 =
+      (f.glib_sys_0_4_0.v2_48 or false) ||
+      (glib_0_3_1.v2_48 or false) ||
+      (f.glib_0_3_1.v2_48 or false);
+    glib_sys_0_4_0.v2_50 =
+      (f.glib_sys_0_4_0.v2_50 or false) ||
+      (glib_0_3_1.v2_50 or false) ||
+      (f.glib_0_3_1.v2_50 or false);
+    gobject_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.v2_34 =
+      (f.gobject_sys_0_4_0.v2_34 or false) ||
+      (glib_0_3_1.v2_34 or false) ||
+      (f.glib_0_3_1.v2_34 or false);
+    gobject_sys_0_4_0.v2_38 =
+      (f.gobject_sys_0_4_0.v2_38 or false) ||
+      (glib_0_3_1.v2_38 or false) ||
+      (f.glib_0_3_1.v2_38 or false);
+    gobject_sys_0_4_0.v2_44 =
+      (f.gobject_sys_0_4_0.v2_44 or false) ||
+      (glib_0_3_1.v2_44 or false) ||
+      (f.glib_0_3_1.v2_44 or false);
+    gobject_sys_0_4_0.v2_46 =
+      (f.gobject_sys_0_4_0.v2_46 or false) ||
+      (glib_0_3_1.v2_46 or false) ||
+      (f.glib_0_3_1.v2_46 or false);
+    lazy_static_0_2_11.default = true;
+    libc_0_2_34.default = true;
+  }) [ bitflags_0_9_1_features glib_sys_0_4_0_features gobject_sys_0_4_0_features lazy_static_0_2_11_features libc_0_2_34_features ];
+  glib_sys_0_4_0 = { features?(glib_sys_0_4_0_features {}) }: glib_sys_0_4_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.glib_sys_0_4_0 or {});
+  };
+  glib_sys_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    glib_sys_0_4_0.default = (f.glib_sys_0_4_0.default or true);
+    glib_sys_0_4_0.v2_34 =
+      (f.glib_sys_0_4_0.v2_34 or false) ||
+      (f.glib_sys_0_4_0.v2_36 or false) ||
+      (glib_sys_0_4_0.v2_36 or false);
+    glib_sys_0_4_0.v2_36 =
+      (f.glib_sys_0_4_0.v2_36 or false) ||
+      (f.glib_sys_0_4_0.v2_38 or false) ||
+      (glib_sys_0_4_0.v2_38 or false);
+    glib_sys_0_4_0.v2_38 =
+      (f.glib_sys_0_4_0.v2_38 or false) ||
+      (f.glib_sys_0_4_0.v2_40 or false) ||
+      (glib_sys_0_4_0.v2_40 or false);
+    glib_sys_0_4_0.v2_40 =
+      (f.glib_sys_0_4_0.v2_40 or false) ||
+      (f.glib_sys_0_4_0.v2_44 or false) ||
+      (glib_sys_0_4_0.v2_44 or false);
+    glib_sys_0_4_0.v2_44 =
+      (f.glib_sys_0_4_0.v2_44 or false) ||
+      (f.glib_sys_0_4_0.v2_46 or false) ||
+      (glib_sys_0_4_0.v2_46 or false);
+    glib_sys_0_4_0.v2_46 =
+      (f.glib_sys_0_4_0.v2_46 or false) ||
+      (f.glib_sys_0_4_0.v2_48 or false) ||
+      (glib_sys_0_4_0.v2_48 or false);
+    glib_sys_0_4_0.v2_48 =
+      (f.glib_sys_0_4_0.v2_48 or false) ||
+      (f.glib_sys_0_4_0.v2_50 or false) ||
+      (glib_sys_0_4_0.v2_50 or false);
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ bitflags_0_9_1_features libc_0_2_34_features pkg_config_0_3_9_features ];
+  gobject_sys_0_4_0 = { features?(gobject_sys_0_4_0_features {}) }: gobject_sys_0_4_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 glib_sys_0_4_0 libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ pkg_config_0_3_9 ]);
+    features = mkFeatures (features.gobject_sys_0_4_0 or {});
+  };
+  gobject_sys_0_4_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    glib_sys_0_4_0.default = true;
+    gobject_sys_0_4_0.default = (f.gobject_sys_0_4_0.default or true);
+    gobject_sys_0_4_0.v2_34 =
+      (f.gobject_sys_0_4_0.v2_34 or false) ||
+      (f.gobject_sys_0_4_0.v2_36 or false) ||
+      (gobject_sys_0_4_0.v2_36 or false);
+    gobject_sys_0_4_0.v2_36 =
+      (f.gobject_sys_0_4_0.v2_36 or false) ||
+      (f.gobject_sys_0_4_0.v2_38 or false) ||
+      (gobject_sys_0_4_0.v2_38 or false);
+    gobject_sys_0_4_0.v2_38 =
+      (f.gobject_sys_0_4_0.v2_38 or false) ||
+      (f.gobject_sys_0_4_0.v2_42 or false) ||
+      (gobject_sys_0_4_0.v2_42 or false);
+    gobject_sys_0_4_0.v2_42 =
+      (f.gobject_sys_0_4_0.v2_42 or false) ||
+      (f.gobject_sys_0_4_0.v2_44 or false) ||
+      (gobject_sys_0_4_0.v2_44 or false);
+    gobject_sys_0_4_0.v2_44 =
+      (f.gobject_sys_0_4_0.v2_44 or false) ||
+      (f.gobject_sys_0_4_0.v2_46 or false) ||
+      (gobject_sys_0_4_0.v2_46 or false);
+    libc_0_2_34.default = true;
+    pkg_config_0_3_9.default = true;
+  }) [ bitflags_0_9_1_features glib_sys_0_4_0_features libc_0_2_34_features pkg_config_0_3_9_features ];
+  itoa_0_3_4 = { features?(itoa_0_3_4_features {}) }: itoa_0_3_4_ {
+    features = mkFeatures (features.itoa_0_3_4 or {});
+  };
+  itoa_0_3_4_features = f: updateFeatures f (rec {
+    itoa_0_3_4.default = (f.itoa_0_3_4.default or true);
+  }) [];
+  json_macro_0_1_1 = { features?(json_macro_0_1_1_features {}) }: json_macro_0_1_1_ {
+    dependencies = mapFeatures features ([ rustc_serialize_0_3_24 ]);
+  };
+  json_macro_0_1_1_features = f: updateFeatures f (rec {
+    json_macro_0_1_1.default = (f.json_macro_0_1_1.default or true);
+    rustc_serialize_0_3_24.default = true;
+  }) [ rustc_serialize_0_3_24_features ];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  lazy_static_0_2_11 = { features?(lazy_static_0_2_11_features {}) }: lazy_static_0_2_11_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_0_2_11 or {});
+  };
+  lazy_static_0_2_11_features = f: updateFeatures f (rec {
+    lazy_static_0_2_11.compiletest_rs =
+      (f.lazy_static_0_2_11.compiletest_rs or false) ||
+      (f.lazy_static_0_2_11.compiletest or false) ||
+      (lazy_static_0_2_11.compiletest or false);
+    lazy_static_0_2_11.default = (f.lazy_static_0_2_11.default or true);
+    lazy_static_0_2_11.nightly =
+      (f.lazy_static_0_2_11.nightly or false) ||
+      (f.lazy_static_0_2_11.spin_no_std or false) ||
+      (lazy_static_0_2_11.spin_no_std or false);
+    lazy_static_0_2_11.spin =
+      (f.lazy_static_0_2_11.spin or false) ||
+      (f.lazy_static_0_2_11.spin_no_std or false) ||
+      (lazy_static_0_2_11.spin_no_std or false);
+  }) [];
+  lazy_static_1_0_0 = { features?(lazy_static_1_0_0_features {}) }: lazy_static_1_0_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_1_0_0 or {});
+  };
+  lazy_static_1_0_0_features = f: updateFeatures f (rec {
+    lazy_static_1_0_0.compiletest_rs =
+      (f.lazy_static_1_0_0.compiletest_rs or false) ||
+      (f.lazy_static_1_0_0.compiletest or false) ||
+      (lazy_static_1_0_0.compiletest or false);
+    lazy_static_1_0_0.default = (f.lazy_static_1_0_0.default or true);
+    lazy_static_1_0_0.nightly =
+      (f.lazy_static_1_0_0.nightly or false) ||
+      (f.lazy_static_1_0_0.spin_no_std or false) ||
+      (lazy_static_1_0_0.spin_no_std or false);
+    lazy_static_1_0_0.spin =
+      (f.lazy_static_1_0_0.spin or false) ||
+      (f.lazy_static_1_0_0.spin_no_std or false) ||
+      (lazy_static_1_0_0.spin_no_std or false);
+  }) [];
+  libc_0_2_34 = { features?(libc_0_2_34_features {}) }: libc_0_2_34_ {
+    features = mkFeatures (features.libc_0_2_34 or {});
+  };
+  libc_0_2_34_features = f: updateFeatures f (rec {
+    libc_0_2_34.default = (f.libc_0_2_34.default or true);
+    libc_0_2_34.use_std =
+      (f.libc_0_2_34.use_std or false) ||
+      (f.libc_0_2_34.default or false) ||
+      (libc_0_2_34.default or false);
+  }) [];
+  libloading_0_3_4 = { features?(libloading_0_3_4_features {}) }: libloading_0_3_4_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_11 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ target_build_utils_0_3_1 ]);
+  };
+  libloading_0_3_4_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_0_2_11.default = true;
+    libloading_0_3_4.default = (f.libloading_0_3_4.default or true);
+    target_build_utils_0_3_1.default = true;
+    winapi_0_2_8.default = true;
+  }) [ lazy_static_0_2_11_features target_build_utils_0_3_1_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  libloading_0_4_3 = { features?(libloading_0_4_3_features {}) }: libloading_0_4_3_ {
+    dependencies = mapFeatures features ([ lazy_static_1_0_0 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  libloading_0_4_3_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_1_0_0.default = true;
+    libloading_0_4_3.default = (f.libloading_0_4_3.default or true);
+    winapi_0_2_8.default = true;
+  }) [ lazy_static_1_0_0_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  log_0_3_9 = { features?(log_0_3_9_features {}) }: log_0_3_9_ {
+    dependencies = mapFeatures features ([ log_0_4_0 ]);
+    features = mkFeatures (features.log_0_3_9 or {});
+  };
+  log_0_3_9_features = f: updateFeatures f (rec {
+    log_0_3_9.default = (f.log_0_3_9.default or true);
+    log_0_3_9.use_std =
+      (f.log_0_3_9.use_std or false) ||
+      (f.log_0_3_9.default or false) ||
+      (log_0_3_9.default or false);
+    log_0_4_0.default = true;
+    log_0_4_0.max_level_debug =
+      (f.log_0_4_0.max_level_debug or false) ||
+      (log_0_3_9.max_level_debug or false) ||
+      (f.log_0_3_9.max_level_debug or false);
+    log_0_4_0.max_level_error =
+      (f.log_0_4_0.max_level_error or false) ||
+      (log_0_3_9.max_level_error or false) ||
+      (f.log_0_3_9.max_level_error or false);
+    log_0_4_0.max_level_info =
+      (f.log_0_4_0.max_level_info or false) ||
+      (log_0_3_9.max_level_info or false) ||
+      (f.log_0_3_9.max_level_info or false);
+    log_0_4_0.max_level_off =
+      (f.log_0_4_0.max_level_off or false) ||
+      (log_0_3_9.max_level_off or false) ||
+      (f.log_0_3_9.max_level_off or false);
+    log_0_4_0.max_level_trace =
+      (f.log_0_4_0.max_level_trace or false) ||
+      (log_0_3_9.max_level_trace or false) ||
+      (f.log_0_3_9.max_level_trace or false);
+    log_0_4_0.max_level_warn =
+      (f.log_0_4_0.max_level_warn or false) ||
+      (log_0_3_9.max_level_warn or false) ||
+      (f.log_0_3_9.max_level_warn or false);
+    log_0_4_0.release_max_level_debug =
+      (f.log_0_4_0.release_max_level_debug or false) ||
+      (log_0_3_9.release_max_level_debug or false) ||
+      (f.log_0_3_9.release_max_level_debug or false);
+    log_0_4_0.release_max_level_error =
+      (f.log_0_4_0.release_max_level_error or false) ||
+      (log_0_3_9.release_max_level_error or false) ||
+      (f.log_0_3_9.release_max_level_error or false);
+    log_0_4_0.release_max_level_info =
+      (f.log_0_4_0.release_max_level_info or false) ||
+      (log_0_3_9.release_max_level_info or false) ||
+      (f.log_0_3_9.release_max_level_info or false);
+    log_0_4_0.release_max_level_off =
+      (f.log_0_4_0.release_max_level_off or false) ||
+      (log_0_3_9.release_max_level_off or false) ||
+      (f.log_0_3_9.release_max_level_off or false);
+    log_0_4_0.release_max_level_trace =
+      (f.log_0_4_0.release_max_level_trace or false) ||
+      (log_0_3_9.release_max_level_trace or false) ||
+      (f.log_0_3_9.release_max_level_trace or false);
+    log_0_4_0.release_max_level_warn =
+      (f.log_0_4_0.release_max_level_warn or false) ||
+      (log_0_3_9.release_max_level_warn or false) ||
+      (f.log_0_3_9.release_max_level_warn or false);
+    log_0_4_0.std =
+      (f.log_0_4_0.std or false) ||
+      (log_0_3_9.use_std or false) ||
+      (f.log_0_3_9.use_std or false);
+  }) [ log_0_4_0_features ];
+  log_0_4_0 = { features?(log_0_4_0_features {}) }: log_0_4_0_ {
+    dependencies = mapFeatures features ([ cfg_if_0_1_2 ]);
+    features = mkFeatures (features.log_0_4_0 or {});
+  };
+  log_0_4_0_features = f: updateFeatures f (rec {
+    cfg_if_0_1_2.default = true;
+    log_0_4_0.default = (f.log_0_4_0.default or true);
+  }) [ cfg_if_0_1_2_features ];
+  memchr_0_1_11 = { features?(memchr_0_1_11_features {}) }: memchr_0_1_11_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ]);
+  };
+  memchr_0_1_11_features = f: updateFeatures f (rec {
+    libc_0_2_34.default = true;
+    memchr_0_1_11.default = (f.memchr_0_1_11.default or true);
+  }) [ libc_0_2_34_features ];
+  nix_0_6_0 = { features?(nix_0_6_0_features {}) }: nix_0_6_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_4_0 cfg_if_0_1_2 libc_0_2_34 void_1_0_2 ]);
+    buildDependencies = mapFeatures features ([ rustc_version_0_1_7 semver_0_1_20 ]);
+    features = mkFeatures (features.nix_0_6_0 or {});
+  };
+  nix_0_6_0_features = f: updateFeatures f (rec {
+    bitflags_0_4_0.default = true;
+    cfg_if_0_1_2.default = true;
+    libc_0_2_34.default = true;
+    nix_0_6_0.default = (f.nix_0_6_0.default or true);
+    rustc_version_0_1_7.default = true;
+    semver_0_1_20.default = true;
+    void_1_0_2.default = true;
+  }) [ bitflags_0_4_0_features cfg_if_0_1_2_features libc_0_2_34_features void_1_0_2_features rustc_version_0_1_7_features semver_0_1_20_features ];
+  nix_0_9_0 = { features?(nix_0_9_0_features {}) }: nix_0_9_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 cfg_if_0_1_2 libc_0_2_34 void_1_0_2 ]);
+  };
+  nix_0_9_0_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    cfg_if_0_1_2.default = true;
+    libc_0_2_34.default = true;
+    nix_0_9_0.default = (f.nix_0_9_0.default or true);
+    void_1_0_2.default = true;
+  }) [ bitflags_0_9_1_features cfg_if_0_1_2_features libc_0_2_34_features void_1_0_2_features ];
+  num_traits_0_1_41 = { features?(num_traits_0_1_41_features {}) }: num_traits_0_1_41_ {};
+  num_traits_0_1_41_features = f: updateFeatures f (rec {
+    num_traits_0_1_41.default = (f.num_traits_0_1_41.default or true);
+  }) [];
+  ordermap_0_3_2 = { features?(ordermap_0_3_2_features {}) }: ordermap_0_3_2_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.ordermap_0_3_2 or {});
+  };
+  ordermap_0_3_2_features = f: updateFeatures f (rec {
+    ordermap_0_3_2.default = (f.ordermap_0_3_2.default or true);
+    ordermap_0_3_2.serde =
+      (f.ordermap_0_3_2.serde or false) ||
+      (f.ordermap_0_3_2.serde-1 or false) ||
+      (ordermap_0_3_2.serde-1 or false);
+  }) [];
+  petgraph_0_4_10 = { features?(petgraph_0_4_10_features {}) }: petgraph_0_4_10_ {
+    dependencies = mapFeatures features ([ fixedbitset_0_1_8 ]
+      ++ (if features.petgraph_0_4_10.ordermap or false then [ ordermap_0_3_2 ] else []));
+    features = mkFeatures (features.petgraph_0_4_10 or {});
+  };
+  petgraph_0_4_10_features = f: updateFeatures f (rec {
+    fixedbitset_0_1_8.default = true;
+    ordermap_0_3_2.default = true;
+    petgraph_0_4_10.default = (f.petgraph_0_4_10.default or true);
+    petgraph_0_4_10.generate =
+      (f.petgraph_0_4_10.generate or false) ||
+      (f.petgraph_0_4_10.unstable or false) ||
+      (petgraph_0_4_10.unstable or false);
+    petgraph_0_4_10.graphmap =
+      (f.petgraph_0_4_10.graphmap or false) ||
+      (f.petgraph_0_4_10.all or false) ||
+      (petgraph_0_4_10.all or false) ||
+      (f.petgraph_0_4_10.default or false) ||
+      (petgraph_0_4_10.default or false);
+    petgraph_0_4_10.ordermap =
+      (f.petgraph_0_4_10.ordermap or false) ||
+      (f.petgraph_0_4_10.graphmap or false) ||
+      (petgraph_0_4_10.graphmap or false);
+    petgraph_0_4_10.quickcheck =
+      (f.petgraph_0_4_10.quickcheck or false) ||
+      (f.petgraph_0_4_10.all or false) ||
+      (petgraph_0_4_10.all or false);
+    petgraph_0_4_10.serde =
+      (f.petgraph_0_4_10.serde or false) ||
+      (f.petgraph_0_4_10.serde-1 or false) ||
+      (petgraph_0_4_10.serde-1 or false);
+    petgraph_0_4_10.serde_derive =
+      (f.petgraph_0_4_10.serde_derive or false) ||
+      (f.petgraph_0_4_10.serde-1 or false) ||
+      (petgraph_0_4_10.serde-1 or false);
+    petgraph_0_4_10.stable_graph =
+      (f.petgraph_0_4_10.stable_graph or false) ||
+      (f.petgraph_0_4_10.all or false) ||
+      (petgraph_0_4_10.all or false) ||
+      (f.petgraph_0_4_10.default or false) ||
+      (petgraph_0_4_10.default or false);
+    petgraph_0_4_10.unstable =
+      (f.petgraph_0_4_10.unstable or false) ||
+      (f.petgraph_0_4_10.all or false) ||
+      (petgraph_0_4_10.all or false);
+  }) [ fixedbitset_0_1_8_features ordermap_0_3_2_features ];
+  phf_0_7_21 = { features?(phf_0_7_21_features {}) }: phf_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 ]);
+    features = mkFeatures (features.phf_0_7_21 or {});
+  };
+  phf_0_7_21_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = (f.phf_0_7_21.default or true);
+    phf_shared_0_7_21.core =
+      (f.phf_shared_0_7_21.core or false) ||
+      (phf_0_7_21.core or false) ||
+      (f.phf_0_7_21.core or false);
+    phf_shared_0_7_21.default = true;
+    phf_shared_0_7_21.unicase =
+      (f.phf_shared_0_7_21.unicase or false) ||
+      (phf_0_7_21.unicase or false) ||
+      (f.phf_0_7_21.unicase or false);
+  }) [ phf_shared_0_7_21_features ];
+  phf_codegen_0_7_21 = { features?(phf_codegen_0_7_21_features {}) }: phf_codegen_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_generator_0_7_21 phf_shared_0_7_21 ]);
+  };
+  phf_codegen_0_7_21_features = f: updateFeatures f (rec {
+    phf_codegen_0_7_21.default = (f.phf_codegen_0_7_21.default or true);
+    phf_generator_0_7_21.default = true;
+    phf_shared_0_7_21.default = true;
+  }) [ phf_generator_0_7_21_features phf_shared_0_7_21_features ];
+  phf_generator_0_7_21 = { features?(phf_generator_0_7_21_features {}) }: phf_generator_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 rand_0_3_19 ]);
+  };
+  phf_generator_0_7_21_features = f: updateFeatures f (rec {
+    phf_generator_0_7_21.default = (f.phf_generator_0_7_21.default or true);
+    phf_shared_0_7_21.default = true;
+    rand_0_3_19.default = true;
+  }) [ phf_shared_0_7_21_features rand_0_3_19_features ];
+  phf_shared_0_7_21 = { features?(phf_shared_0_7_21_features {}) }: phf_shared_0_7_21_ {
+    dependencies = mapFeatures features ([ siphasher_0_2_2 ]);
+    features = mkFeatures (features.phf_shared_0_7_21 or {});
+  };
+  phf_shared_0_7_21_features = f: updateFeatures f (rec {
+    phf_shared_0_7_21.default = (f.phf_shared_0_7_21.default or true);
+    siphasher_0_2_2.default = true;
+  }) [ siphasher_0_2_2_features ];
+  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
+  pkg_config_0_3_9_features = f: updateFeatures f (rec {
+    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
+  }) [];
+  rand_0_3_19 = { features?(rand_0_3_19_features {}) }: rand_0_3_19_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ])
+      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_3_2 ]) else []);
+    features = mkFeatures (features.rand_0_3_19 or {});
+  };
+  rand_0_3_19_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_3_2.default = true;
+    libc_0_2_34.default = true;
+    rand_0_3_19.default = (f.rand_0_3_19.default or true);
+    rand_0_3_19.i128_support =
+      (f.rand_0_3_19.i128_support or false) ||
+      (f.rand_0_3_19.nightly or false) ||
+      (rand_0_3_19.nightly or false);
+  }) [ libc_0_2_34_features fuchsia_zircon_0_3_2_features ];
+  regex_0_1_80 = { features?(regex_0_1_80_features {}) }: regex_0_1_80_ {
+    dependencies = mapFeatures features ([ aho_corasick_0_5_3 memchr_0_1_11 regex_syntax_0_3_9 thread_local_0_2_7 utf8_ranges_0_1_3 ]);
+    features = mkFeatures (features.regex_0_1_80 or {});
+  };
+  regex_0_1_80_features = f: updateFeatures f (rec {
+    aho_corasick_0_5_3.default = true;
+    memchr_0_1_11.default = true;
+    regex_0_1_80.default = (f.regex_0_1_80.default or true);
+    regex_0_1_80.simd =
+      (f.regex_0_1_80.simd or false) ||
+      (f.regex_0_1_80.simd-accel or false) ||
+      (regex_0_1_80.simd-accel or false);
+    regex_syntax_0_3_9.default = true;
+    thread_local_0_2_7.default = true;
+    utf8_ranges_0_1_3.default = true;
+  }) [ aho_corasick_0_5_3_features memchr_0_1_11_features regex_syntax_0_3_9_features thread_local_0_2_7_features utf8_ranges_0_1_3_features ];
+  regex_syntax_0_3_9 = { features?(regex_syntax_0_3_9_features {}) }: regex_syntax_0_3_9_ {};
+  regex_syntax_0_3_9_features = f: updateFeatures f (rec {
+    regex_syntax_0_3_9.default = (f.regex_syntax_0_3_9.default or true);
+  }) [];
+  rlua_0_9_7 = { features?(rlua_0_9_7_features {}) }: rlua_0_9_7_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 ]);
+    buildDependencies = mapFeatures features ([ ]
+      ++ (if features.rlua_0_9_7.gcc or false then [ gcc_0_3_54 ] else []));
+    features = mkFeatures (features.rlua_0_9_7 or {});
+  };
+  rlua_0_9_7_features = f: updateFeatures f (rec {
+    gcc_0_3_54.default = true;
+    libc_0_2_34.default = true;
+    rlua_0_9_7.builtin-lua =
+      (f.rlua_0_9_7.builtin-lua or false) ||
+      (f.rlua_0_9_7.default or false) ||
+      (rlua_0_9_7.default or false);
+    rlua_0_9_7.default = (f.rlua_0_9_7.default or true);
+    rlua_0_9_7.gcc =
+      (f.rlua_0_9_7.gcc or false) ||
+      (f.rlua_0_9_7.builtin-lua or false) ||
+      (rlua_0_9_7.builtin-lua or false);
+  }) [ libc_0_2_34_features gcc_0_3_54_features ];
+  rustc_serialize_0_3_24 = { features?(rustc_serialize_0_3_24_features {}) }: rustc_serialize_0_3_24_ {};
+  rustc_serialize_0_3_24_features = f: updateFeatures f (rec {
+    rustc_serialize_0_3_24.default = (f.rustc_serialize_0_3_24.default or true);
+  }) [];
+  rustc_version_0_1_7 = { features?(rustc_version_0_1_7_features {}) }: rustc_version_0_1_7_ {
+    dependencies = mapFeatures features ([ semver_0_1_20 ]);
+  };
+  rustc_version_0_1_7_features = f: updateFeatures f (rec {
+    rustc_version_0_1_7.default = (f.rustc_version_0_1_7.default or true);
+    semver_0_1_20.default = true;
+  }) [ semver_0_1_20_features ];
+  rustwlc_0_7_0 = { features?(rustwlc_0_7_0_features {}) }: rustwlc_0_7_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 libc_0_2_34 ]
+      ++ (if features.rustwlc_0_7_0.wayland-sys or false then [ wayland_sys_0_6_0 ] else []));
+    features = mkFeatures (features.rustwlc_0_7_0 or {});
+  };
+  rustwlc_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    libc_0_2_34.default = true;
+    rustwlc_0_7_0.default = (f.rustwlc_0_7_0.default or true);
+    rustwlc_0_7_0.wayland-sys =
+      (f.rustwlc_0_7_0.wayland-sys or false) ||
+      (f.rustwlc_0_7_0.wlc-wayland or false) ||
+      (rustwlc_0_7_0.wlc-wayland or false);
+    wayland_sys_0_6_0.default = true;
+    wayland_sys_0_6_0.server = true;
+  }) [ bitflags_0_7_0_features libc_0_2_34_features wayland_sys_0_6_0_features ];
+  semver_0_1_20 = { features?(semver_0_1_20_features {}) }: semver_0_1_20_ {};
+  semver_0_1_20_features = f: updateFeatures f (rec {
+    semver_0_1_20.default = (f.semver_0_1_20.default or true);
+  }) [];
+  serde_0_9_15 = { features?(serde_0_9_15_features {}) }: serde_0_9_15_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_0_9_15 or {});
+  };
+  serde_0_9_15_features = f: updateFeatures f (rec {
+    serde_0_9_15.alloc =
+      (f.serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.collections or false) ||
+      (serde_0_9_15.collections or false);
+    serde_0_9_15.default = (f.serde_0_9_15.default or true);
+    serde_0_9_15.serde_derive =
+      (f.serde_0_9_15.serde_derive or false) ||
+      (f.serde_0_9_15.derive or false) ||
+      (serde_0_9_15.derive or false) ||
+      (f.serde_0_9_15.playground or false) ||
+      (serde_0_9_15.playground or false);
+    serde_0_9_15.std =
+      (f.serde_0_9_15.std or false) ||
+      (f.serde_0_9_15.default or false) ||
+      (serde_0_9_15.default or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+    serde_0_9_15.unstable =
+      (f.serde_0_9_15.unstable or false) ||
+      (f.serde_0_9_15.alloc or false) ||
+      (serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+  }) [];
+  serde_json_0_9_10 = { features?(serde_json_0_9_10_features {}) }: serde_json_0_9_10_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_2 itoa_0_3_4 num_traits_0_1_41 serde_0_9_15 ]);
+    features = mkFeatures (features.serde_json_0_9_10 or {});
+  };
+  serde_json_0_9_10_features = f: updateFeatures f (rec {
+    dtoa_0_4_2.default = true;
+    itoa_0_3_4.default = true;
+    num_traits_0_1_41.default = true;
+    serde_0_9_15.default = true;
+    serde_json_0_9_10.default = (f.serde_json_0_9_10.default or true);
+    serde_json_0_9_10.linked-hash-map =
+      (f.serde_json_0_9_10.linked-hash-map or false) ||
+      (f.serde_json_0_9_10.preserve_order or false) ||
+      (serde_json_0_9_10.preserve_order or false);
+  }) [ dtoa_0_4_2_features itoa_0_3_4_features num_traits_0_1_41_features serde_0_9_15_features ];
+  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
+    dependencies = mapFeatures features ([]);
+  };
+  siphasher_0_2_2_features = f: updateFeatures f (rec {
+    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
+  }) [];
+  target_build_utils_0_3_1 = { features?(target_build_utils_0_3_1_features {}) }: target_build_utils_0_3_1_ {
+    dependencies = mapFeatures features ([ phf_0_7_21 ]
+      ++ (if features.target_build_utils_0_3_1.serde_json or false then [ serde_json_0_9_10 ] else []));
+    buildDependencies = mapFeatures features ([ phf_codegen_0_7_21 ]);
+    features = mkFeatures (features.target_build_utils_0_3_1 or {});
+  };
+  target_build_utils_0_3_1_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = true;
+    phf_codegen_0_7_21.default = true;
+    serde_json_0_9_10.default = true;
+    target_build_utils_0_3_1.default = (f.target_build_utils_0_3_1.default or true);
+    target_build_utils_0_3_1.serde_json =
+      (f.target_build_utils_0_3_1.serde_json or false) ||
+      (f.target_build_utils_0_3_1.default or false) ||
+      (target_build_utils_0_3_1.default or false);
+  }) [ phf_0_7_21_features serde_json_0_9_10_features phf_codegen_0_7_21_features ];
+  thread_id_2_0_0 = { features?(thread_id_2_0_0_features {}) }: thread_id_2_0_0_ {
+    dependencies = mapFeatures features ([ kernel32_sys_0_2_2 libc_0_2_34 ]);
+  };
+  thread_id_2_0_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_34.default = true;
+    thread_id_2_0_0.default = (f.thread_id_2_0_0.default or true);
+  }) [ kernel32_sys_0_2_2_features libc_0_2_34_features ];
+  thread_local_0_2_7 = { features?(thread_local_0_2_7_features {}) }: thread_local_0_2_7_ {
+    dependencies = mapFeatures features ([ thread_id_2_0_0 ]);
+  };
+  thread_local_0_2_7_features = f: updateFeatures f (rec {
+    thread_id_2_0_0.default = true;
+    thread_local_0_2_7.default = (f.thread_local_0_2_7.default or true);
+  }) [ thread_id_2_0_0_features ];
+  token_store_0_1_2 = { features?(token_store_0_1_2_features {}) }: token_store_0_1_2_ {};
+  token_store_0_1_2_features = f: updateFeatures f (rec {
+    token_store_0_1_2.default = (f.token_store_0_1_2.default or true);
+  }) [];
+  utf8_ranges_0_1_3 = { features?(utf8_ranges_0_1_3_features {}) }: utf8_ranges_0_1_3_ {};
+  utf8_ranges_0_1_3_features = f: updateFeatures f (rec {
+    utf8_ranges_0_1_3.default = (f.utf8_ranges_0_1_3.default or true);
+  }) [];
+  uuid_0_3_1 = { features?(uuid_0_3_1_features {}) }: uuid_0_3_1_ {
+    dependencies = mapFeatures features ([ ]
+      ++ (if features.uuid_0_3_1.rand or false then [ rand_0_3_19 ] else [])
+      ++ (if features.uuid_0_3_1.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.uuid_0_3_1 or {});
+  };
+  uuid_0_3_1_features = f: updateFeatures f (rec {
+    rand_0_3_19.default = true;
+    rustc_serialize_0_3_24.default = true;
+    uuid_0_3_1.default = (f.uuid_0_3_1.default or true);
+    uuid_0_3_1.rand =
+      (f.uuid_0_3_1.rand or false) ||
+      (f.uuid_0_3_1.v4 or false) ||
+      (uuid_0_3_1.v4 or false);
+    uuid_0_3_1.sha1 =
+      (f.uuid_0_3_1.sha1 or false) ||
+      (f.uuid_0_3_1.v5 or false) ||
+      (uuid_0_3_1.v5 or false);
+  }) [ rand_0_3_19_features rustc_serialize_0_3_24_features ];
+  void_1_0_2 = { features?(void_1_0_2_features {}) }: void_1_0_2_ {
+    features = mkFeatures (features.void_1_0_2 or {});
+  };
+  void_1_0_2_features = f: updateFeatures f (rec {
+    void_1_0_2.default = (f.void_1_0_2.default or true);
+    void_1_0_2.std =
+      (f.void_1_0_2.std or false) ||
+      (f.void_1_0_2.default or false) ||
+      (void_1_0_2.default or false);
+  }) [];
+  way_cooler_0_8_0 = { features?(way_cooler_0_8_0_features {}) }: way_cooler_0_8_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 cairo_rs_0_2_0 cairo_sys_rs_0_4_0 dbus_0_4_1 dbus_macros_0_0_6 env_logger_0_3_5 gdk_pixbuf_0_2_0 getopts_0_2_15 glib_0_3_1 json_macro_0_1_1 lazy_static_0_2_11 log_0_3_9 nix_0_6_0 petgraph_0_4_10 rlua_0_9_7 rustc_serialize_0_3_24 rustwlc_0_7_0 uuid_0_3_1 wayland_server_0_12_4 wayland_sys_0_12_4 xcb_0_8_1 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_12_4 ]);
+    features = mkFeatures (features.way_cooler_0_8_0 or {});
+  };
+  way_cooler_0_8_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    cairo_rs_0_2_0.default = true;
+    cairo_sys_rs_0_4_0.default = true;
+    dbus_0_4_1.default = true;
+    dbus_macros_0_0_6.default = true;
+    env_logger_0_3_5.default = true;
+    gdk_pixbuf_0_2_0.default = true;
+    getopts_0_2_15.default = true;
+    glib_0_3_1.default = true;
+    json_macro_0_1_1.default = true;
+    lazy_static_0_2_11.default = true;
+    log_0_3_9.default = true;
+    nix_0_6_0.default = true;
+    petgraph_0_4_10.default = true;
+    rlua_0_9_7.builtin-lua =
+      (f.rlua_0_9_7.builtin-lua or false) ||
+      (way_cooler_0_8_0.builtin-lua or false) ||
+      (f.way_cooler_0_8_0.builtin-lua or false);
+    rlua_0_9_7.default = (f.rlua_0_9_7.default or false);
+    rustc_serialize_0_3_24.default = true;
+    rustwlc_0_7_0.default = true;
+    rustwlc_0_7_0.static-wlc =
+      (f.rustwlc_0_7_0.static-wlc or false) ||
+      (way_cooler_0_8_0.static-wlc or false) ||
+      (f.way_cooler_0_8_0.static-wlc or false);
+    rustwlc_0_7_0.wlc-wayland = true;
+    uuid_0_3_1.default = true;
+    uuid_0_3_1.rustc-serialize = true;
+    uuid_0_3_1.v4 = true;
+    way_cooler_0_8_0.default = (f.way_cooler_0_8_0.default or true);
+    wayland_scanner_0_12_4.default = true;
+    wayland_server_0_12_4.default = true;
+    wayland_sys_0_12_4.client = true;
+    wayland_sys_0_12_4.default = true;
+    wayland_sys_0_12_4.dlopen = true;
+    xcb_0_8_1.default = true;
+    xcb_0_8_1.xkb = true;
+  }) [ bitflags_0_7_0_features cairo_rs_0_2_0_features cairo_sys_rs_0_4_0_features dbus_0_4_1_features dbus_macros_0_0_6_features env_logger_0_3_5_features gdk_pixbuf_0_2_0_features getopts_0_2_15_features glib_0_3_1_features json_macro_0_1_1_features lazy_static_0_2_11_features log_0_3_9_features nix_0_6_0_features petgraph_0_4_10_features rlua_0_9_7_features rustc_serialize_0_3_24_features rustwlc_0_7_0_features uuid_0_3_1_features wayland_server_0_12_4_features wayland_sys_0_12_4_features xcb_0_8_1_features wayland_scanner_0_12_4_features ];
+  wayland_scanner_0_12_4 = { features?(wayland_scanner_0_12_4_features {}) }: wayland_scanner_0_12_4_ {
+    dependencies = mapFeatures features ([ xml_rs_0_7_0 ]);
+  };
+  wayland_scanner_0_12_4_features = f: updateFeatures f (rec {
+    wayland_scanner_0_12_4.default = (f.wayland_scanner_0_12_4.default or true);
+    xml_rs_0_7_0.default = true;
+  }) [ xml_rs_0_7_0_features ];
+  wayland_server_0_12_4 = { features?(wayland_server_0_12_4_features {}) }: wayland_server_0_12_4_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_1 libc_0_2_34 nix_0_9_0 token_store_0_1_2 wayland_sys_0_12_4 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_12_4 ]);
+    features = mkFeatures (features.wayland_server_0_12_4 or {});
+  };
+  wayland_server_0_12_4_features = f: updateFeatures f (rec {
+    bitflags_1_0_1.default = true;
+    libc_0_2_34.default = true;
+    nix_0_9_0.default = true;
+    token_store_0_1_2.default = true;
+    wayland_scanner_0_12_4.default = true;
+    wayland_server_0_12_4.default = (f.wayland_server_0_12_4.default or true);
+    wayland_sys_0_12_4.default = true;
+    wayland_sys_0_12_4.dlopen =
+      (f.wayland_sys_0_12_4.dlopen or false) ||
+      (wayland_server_0_12_4.dlopen or false) ||
+      (f.wayland_server_0_12_4.dlopen or false);
+    wayland_sys_0_12_4.server = true;
+  }) [ bitflags_1_0_1_features libc_0_2_34_features nix_0_9_0_features token_store_0_1_2_features wayland_sys_0_12_4_features wayland_scanner_0_12_4_features ];
+  wayland_sys_0_6_0 = { features?(wayland_sys_0_6_0_features {}) }: wayland_sys_0_6_0_ {
+    dependencies = mapFeatures features ([ dlib_0_3_1 ]
+      ++ (if features.wayland_sys_0_6_0.libc or false then [ libc_0_2_34 ] else []));
+    features = mkFeatures (features.wayland_sys_0_6_0 or {});
+  };
+  wayland_sys_0_6_0_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = true;
+    dlib_0_3_1.dlopen =
+      (f.dlib_0_3_1.dlopen or false) ||
+      (wayland_sys_0_6_0.dlopen or false) ||
+      (f.wayland_sys_0_6_0.dlopen or false);
+    libc_0_2_34.default = true;
+    wayland_sys_0_6_0.default = (f.wayland_sys_0_6_0.default or true);
+    wayland_sys_0_6_0.lazy_static =
+      (f.wayland_sys_0_6_0.lazy_static or false) ||
+      (f.wayland_sys_0_6_0.dlopen or false) ||
+      (wayland_sys_0_6_0.dlopen or false);
+    wayland_sys_0_6_0.libc =
+      (f.wayland_sys_0_6_0.libc or false) ||
+      (f.wayland_sys_0_6_0.server or false) ||
+      (wayland_sys_0_6_0.server or false);
+  }) [ dlib_0_3_1_features libc_0_2_34_features ];
+  wayland_sys_0_9_10 = { features?(wayland_sys_0_9_10_features {}) }: wayland_sys_0_9_10_ {
+    dependencies = mapFeatures features ([ dlib_0_3_1 ]
+      ++ (if features.wayland_sys_0_9_10.lazy_static or false then [ lazy_static_0_2_11 ] else [])
+      ++ (if features.wayland_sys_0_9_10.libc or false then [ libc_0_2_34 ] else []));
+    features = mkFeatures (features.wayland_sys_0_9_10 or {});
+  };
+  wayland_sys_0_9_10_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = true;
+    dlib_0_3_1.dlopen =
+      (f.dlib_0_3_1.dlopen or false) ||
+      (wayland_sys_0_9_10.dlopen or false) ||
+      (f.wayland_sys_0_9_10.dlopen or false);
+    lazy_static_0_2_11.default = true;
+    libc_0_2_34.default = true;
+    wayland_sys_0_9_10.default = (f.wayland_sys_0_9_10.default or true);
+    wayland_sys_0_9_10.lazy_static =
+      (f.wayland_sys_0_9_10.lazy_static or false) ||
+      (f.wayland_sys_0_9_10.dlopen or false) ||
+      (wayland_sys_0_9_10.dlopen or false);
+    wayland_sys_0_9_10.libc =
+      (f.wayland_sys_0_9_10.libc or false) ||
+      (f.wayland_sys_0_9_10.server or false) ||
+      (wayland_sys_0_9_10.server or false);
+  }) [ dlib_0_3_1_features lazy_static_0_2_11_features libc_0_2_34_features ];
+  wayland_sys_0_12_4 = { features?(wayland_sys_0_12_4_features {}) }: wayland_sys_0_12_4_ {
+    dependencies = mapFeatures features ([ dlib_0_4_0 ]
+      ++ (if features.wayland_sys_0_12_4.lazy_static or false then [ lazy_static_0_2_11 ] else [])
+      ++ (if features.wayland_sys_0_12_4.libc or false then [ libc_0_2_34 ] else []));
+    features = mkFeatures (features.wayland_sys_0_12_4 or {});
+  };
+  wayland_sys_0_12_4_features = f: updateFeatures f (rec {
+    dlib_0_4_0.default = true;
+    dlib_0_4_0.dlopen =
+      (f.dlib_0_4_0.dlopen or false) ||
+      (wayland_sys_0_12_4.dlopen or false) ||
+      (f.wayland_sys_0_12_4.dlopen or false);
+    lazy_static_0_2_11.default = true;
+    libc_0_2_34.default = true;
+    wayland_sys_0_12_4.default = (f.wayland_sys_0_12_4.default or true);
+    wayland_sys_0_12_4.lazy_static =
+      (f.wayland_sys_0_12_4.lazy_static or false) ||
+      (f.wayland_sys_0_12_4.dlopen or false) ||
+      (wayland_sys_0_12_4.dlopen or false);
+    wayland_sys_0_12_4.libc =
+      (f.wayland_sys_0_12_4.libc or false) ||
+      (f.wayland_sys_0_12_4.server or false) ||
+      (wayland_sys_0_12_4.server or false);
+  }) [ dlib_0_4_0_features lazy_static_0_2_11_features libc_0_2_34_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+  xcb_0_8_1 = { features?(xcb_0_8_1_features {}) }: xcb_0_8_1_ {
+    dependencies = mapFeatures features ([ libc_0_2_34 log_0_3_9 ]);
+    buildDependencies = mapFeatures features ([ libc_0_2_34 ]);
+    features = mkFeatures (features.xcb_0_8_1 or {});
+  };
+  xcb_0_8_1_features = f: updateFeatures f (rec {
+    libc_0_2_34.default = true;
+    log_0_3_9.default = true;
+    xcb_0_8_1.composite =
+      (f.xcb_0_8_1.composite or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.damage =
+      (f.xcb_0_8_1.damage or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.default = (f.xcb_0_8_1.default or true);
+    xcb_0_8_1.dpms =
+      (f.xcb_0_8_1.dpms or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.dri2 =
+      (f.xcb_0_8_1.dri2 or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.dri3 =
+      (f.xcb_0_8_1.dri3 or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.glx =
+      (f.xcb_0_8_1.glx or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.randr =
+      (f.xcb_0_8_1.randr or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.record =
+      (f.xcb_0_8_1.record or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.render =
+      (f.xcb_0_8_1.render or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.present or false) ||
+      (xcb_0_8_1.present or false) ||
+      (f.xcb_0_8_1.randr or false) ||
+      (xcb_0_8_1.randr or false) ||
+      (f.xcb_0_8_1.xfixes or false) ||
+      (xcb_0_8_1.xfixes or false);
+    xcb_0_8_1.res =
+      (f.xcb_0_8_1.res or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.screensaver =
+      (f.xcb_0_8_1.screensaver or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.shape =
+      (f.xcb_0_8_1.shape or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.xfixes or false) ||
+      (xcb_0_8_1.xfixes or false);
+    xcb_0_8_1.shm =
+      (f.xcb_0_8_1.shm or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.xv or false) ||
+      (xcb_0_8_1.xv or false);
+    xcb_0_8_1.sync =
+      (f.xcb_0_8_1.sync or false) ||
+      (f.xcb_0_8_1.present or false) ||
+      (xcb_0_8_1.present or false);
+    xcb_0_8_1.thread =
+      (f.xcb_0_8_1.thread or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xevie =
+      (f.xcb_0_8_1.xevie or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xf86dri =
+      (f.xcb_0_8_1.xf86dri or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xfixes =
+      (f.xcb_0_8_1.xfixes or false) ||
+      (f.xcb_0_8_1.composite or false) ||
+      (xcb_0_8_1.composite or false) ||
+      (f.xcb_0_8_1.damage or false) ||
+      (xcb_0_8_1.damage or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.present or false) ||
+      (xcb_0_8_1.present or false) ||
+      (f.xcb_0_8_1.xinput or false) ||
+      (xcb_0_8_1.xinput or false);
+    xcb_0_8_1.xinerama =
+      (f.xcb_0_8_1.xinerama or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xkb =
+      (f.xcb_0_8_1.xkb or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xlib_xcb =
+      (f.xcb_0_8_1.xlib_xcb or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xprint =
+      (f.xcb_0_8_1.xprint or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xselinux =
+      (f.xcb_0_8_1.xselinux or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xtest =
+      (f.xcb_0_8_1.xtest or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+    xcb_0_8_1.xv =
+      (f.xcb_0_8_1.xv or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false) ||
+      (f.xcb_0_8_1.xvmc or false) ||
+      (xcb_0_8_1.xvmc or false);
+    xcb_0_8_1.xvmc =
+      (f.xcb_0_8_1.xvmc or false) ||
+      (f.xcb_0_8_1.debug_all or false) ||
+      (xcb_0_8_1.debug_all or false);
+  }) [ libc_0_2_34_features log_0_3_9_features libc_0_2_34_features ];
+  xml_rs_0_7_0 = { features?(xml_rs_0_7_0_features {}) }: xml_rs_0_7_0_ {
+    dependencies = mapFeatures features ([ bitflags_1_0_1 ]);
+  };
+  xml_rs_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_1_0_1.default = true;
+    xml_rs_0_7_0.default = (f.xml_rs_0_7_0.default or true);
+  }) [ bitflags_1_0_1_features ];
 }
diff --git a/pkgs/applications/window-managers/way-cooler/wc-bg.nix b/pkgs/applications/window-managers/way-cooler/wc-bg.nix
index 50e2bf83734..d1c0993982a 100644
--- a/pkgs/applications/window-managers/way-cooler/wc-bg.nix
+++ b/pkgs/applications/window-managers/way-cooler/wc-bg.nix
@@ -1,962 +1,1379 @@
-# Generated by carnix 0.5.0: carnix -o wc-bg.nix Cargo.lock
+# Generated by carnix 0.6.5: carnix -o wc-bg.nix Cargo.lock
 { lib, buildPlatform, buildRustCrate, fetchgit }:
 let kernel = buildPlatform.parsed.kernel.name;
     abi = buildPlatform.parsed.abi.name;
-    hasFeature = feature:
-      lib.lists.any
-        (originName: feature.${originName})
-        (builtins.attrNames feature);
-
-    hasDefault = feature:
-      let defaultFeatures = builtins.attrNames (feature."default" or {}); in
-      (defaultFeatures == [])
-      || (lib.lists.any (originName: feature."default".${originName}) defaultFeatures);
-
+    include = includedFiles: src: builtins.filterSource (path: type:
+      lib.lists.any (f:
+        let p = toString (src + ("/" + f)); in
+        (path == p) || (type == "directory" && lib.strings.hasPrefix path p)
+      ) includedFiles
+    ) src;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
     mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if featureName != "" && hasFeature feat.${featureName} then
+      if feat.${featureName} or false then
         [ featureName ] ++ features
       else
         features
-    ) (if hasDefault feat then [ "default" ] else []) (builtins.attrNames feat);
-    ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "ansi_term";
-      version = "0.9.0";
-      authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
-      sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
-      inherit dependencies buildDependencies features;
-    };
-    atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "atty";
-      version = "0.2.2";
-      authors = [ "softprops <d.tangren@gmail.com>" ];
-      sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.6.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1znq4b770mdp3kdj9yz199ylc2pmf8l5j2f281jjrcfhg1mm22h6";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.7.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.8.2";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
-      inherit dependencies buildDependencies features;
-    };
-    byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "byteorder";
-      version = "0.5.3";
-      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-      sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
-      inherit dependencies buildDependencies features;
-    };
-    byteorder_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "byteorder";
-      version = "1.0.0";
-      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-      sha256 = "14pdnds4517vcpablc51vv76hvc3glnpkpbb7qdil591q7lyb0m1";
-      inherit dependencies buildDependencies features;
-    };
-    clap_2_23_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "clap";
-      version = "2.23.2";
-      authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-      sha256 = "1sfc2h9sn4k3vkgqxwk2mhl75f0i9gl3ncl7d2y7plhp18k5nlrs";
-      inherit dependencies buildDependencies features;
-    };
-    color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "color_quant";
-      version = "1.0.0";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
-      inherit dependencies buildDependencies features;
-    };
-    dbus_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dbus";
-      version = "0.5.2";
-      authors = [ "David Henningsson <diwic@ubuntu.com>" ];
-      sha256 = "1ga3p2myqxbz34n2bbw4gk1ipf76mjr8r2rvrvnalwggymzfkhj7";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    deque_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "deque";
-      version = "0.3.1";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" "Samuel Fredrickson <kinghajj@gmail.com>" "Linus Färnstrand <faern@faern.net>" "Amanieu d'Antras <amanieu@gmail.com>" ];
-      sha256 = "04x8i5aagxmslk350i8qszyw7kmvrqc3d99g4qi1xnfmr61y7m68";
-      inherit dependencies buildDependencies features;
-    };
-    dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dlib";
-      version = "0.3.1";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
-      inherit dependencies buildDependencies features;
-    };
-    dtoa_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dtoa";
-      version = "0.4.1";
-      authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-      sha256 = "0mgg4r90yby68qg7y8csbclhsm53ac26vsyq615viq535plllhzw";
-      inherit dependencies buildDependencies features;
-    };
-    enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "enum_primitive";
-      version = "0.1.1";
-      authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
-      sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
-      inherit dependencies buildDependencies features;
-    };
-    error_chain_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "error-chain";
-      version = "0.7.2";
-      authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
-      sha256 = "0b1r4ggdgy1djfvz2s4l5kirmfsmxd286y6wx0p9ahv2phb7inyi";
-      inherit dependencies buildDependencies features;
-    };
-    flate2_0_2_19_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "flate2";
-      version = "0.2.19";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "1dpnvw4hcxplalr3bk527d9rfiy7c08580hji9dnfcv5fmdg1znq";
-      inherit dependencies buildDependencies features;
-    };
-    gcc_0_3_45_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "gcc";
-      version = "0.3.45";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "0d3pzpbh7wr7645i2rkg5f7c4bhp01a9syrw600fjcvqhkiykp5n";
-      inherit dependencies buildDependencies features;
-    };
-    gif_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "gif";
-      version = "0.9.1";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "16s7b0rqc6gg1fcbppakm3jy2q462w3qvykcmcmifmg7q7lwsg6r";
-      inherit dependencies buildDependencies features;
-    };
-    glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "glob";
-      version = "0.2.11";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
-      inherit dependencies buildDependencies features;
-    };
-    image_0_10_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "image";
-      version = "0.10.4";
-      authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
-      sha256 = "1pwrs7k5760b38i1lg872x9q2zc6xvhs7mjhlzvjnr5p85zx2fbw";
-      libPath = "./src/lib.rs";
-      inherit dependencies buildDependencies features;
-    };
-    inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "inflate";
-      version = "0.1.1";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
-      inherit dependencies buildDependencies features;
-    };
-    itoa_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "itoa";
-      version = "0.3.1";
-      authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-      sha256 = "0jp1wvfw0qqbyz0whbycp7xr5nx1ds5plh4wsfyj503xmjf9ab4k";
-      inherit dependencies buildDependencies features;
-    };
-    jpeg_decoder_0_1_12_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "jpeg-decoder";
-      version = "0.1.12";
-      authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
-      sha256 = "1f8y6v3alf93gwfmcd53izh77w2a1gv85zlhdbnyla2kna7r9pwz";
-      inherit dependencies buildDependencies features;
-    };
-    kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "kernel32-sys";
-      version = "0.2.2";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-      libName = "kernel32";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    lazy_static_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "lazy_static";
-      version = "0.1.16";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "0lc5ixs5bmnc43lfri2ynh9393l7vs0z3sw2v5rkaady2ivnznpc";
-      inherit dependencies buildDependencies features;
-    };
-    lazy_static_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "lazy_static";
-      version = "0.2.8";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "1xbpxx7cd5kl60g87g43q80jxyrsildhxfjc42jb1x4jncknpwbl";
-      inherit dependencies buildDependencies features;
-    };
-    libc_0_2_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "libc";
-      version = "0.2.21";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0glj3lxwc8358cfw9pb5dd4zr9iynzj6w2ly59nshrggsw021j75";
-      inherit dependencies buildDependencies features;
-    };
-    libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "libloading";
-      version = "0.3.4";
-      authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
-      sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "lzw";
-      version = "0.10.0";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
-      inherit dependencies buildDependencies features;
-    };
-    metadeps_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "metadeps";
-      version = "1.1.1";
-      authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
-      sha256 = "1px8v94jn4ps63gqmvgsfcqxrwjhpa9z4xr0y1lh95wn2063fsar";
-      inherit dependencies buildDependencies features;
-    };
-    miniz_sys_0_1_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "miniz-sys";
-      version = "0.1.9";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "09m2953zr0msq8cgk86991y4aqfvw3cxf52fx0d49jqy92nqmfmv";
-      libPath = "lib.rs";
-      libName = "miniz_sys";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    num_bigint_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-bigint";
-      version = "0.1.37";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0scyqfi5azf48yyc8fhns8i1g8zq1rax155hhj9mhr0c1j6w99gs";
-      inherit dependencies buildDependencies features;
-    };
-    num_integer_0_1_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-integer";
-      version = "0.1.34";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1i160ddy78sgih3xq9r6raqmg4s83abwbphv4cvyb1lnwsh0b318";
-      inherit dependencies buildDependencies features;
-    };
-    num_iter_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-iter";
-      version = "0.1.33";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1xjzf2p2vaqwknkr4s8ka5hn6cpr5rsshnydbpkn2pvapfzdrqd3";
-      inherit dependencies buildDependencies features;
-    };
-    num_rational_0_1_36_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-rational";
-      version = "0.1.36";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0jibhs8xiap2wlv1xjwdvhyj4yrxwfisqbnfm53vjm5ldlijp87p";
-      inherit dependencies buildDependencies features;
-    };
-    num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-traits";
-      version = "0.1.37";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
-      inherit dependencies buildDependencies features;
-    };
-    num_cpus_1_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num_cpus";
-      version = "1.3.0";
-      authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
-      sha256 = "0i0zm6qh932k9b67qf7f1vsczkdim5kg9qv73m7y5hhw1i781rrb";
-      inherit dependencies buildDependencies features;
-    };
-    phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
-      libPath = "src/lib.rs";
-      inherit dependencies buildDependencies features;
-    };
-    phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_codegen";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
-      inherit dependencies buildDependencies features;
-    };
-    phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_generator";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
-      inherit dependencies buildDependencies features;
-    };
-    phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_shared";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
-      libPath = "src/lib.rs";
-      inherit dependencies buildDependencies features;
-    };
-    pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "pkg-config";
-      version = "0.3.9";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
-      inherit dependencies buildDependencies features;
-    };
-    png_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "png";
-      version = "0.5.2";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "1pgann3f1ysgf8y1acw86v4s3ji1xk85ri353biyvh4i1cpn1g3q";
-      inherit dependencies buildDependencies features;
-    };
-    rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rand";
-      version = "0.3.15";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
-      inherit dependencies buildDependencies features;
-    };
-    rayon_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rayon";
-      version = "0.7.0";
-      authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
-      sha256 = "102qkpni68wc9fz1hmba1z8d6pgnl86g5gdl9i3h3ilc6zjymxx7";
-      inherit dependencies buildDependencies features;
-    };
-    rayon_core_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rayon-core";
-      version = "1.0.0";
-      authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
-      sha256 = "0gv3ysmx69r20n0ywjnqbgm802jjzgg0rly1iv1ssphgn5gg4hsh";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    rustc_serialize_0_3_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rustc-serialize";
-      version = "0.3.23";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0s8i928syzkj1xrsfqf04xlyi4zl37bfpzilf160gi2vhcikj0lw";
-      inherit dependencies buildDependencies features;
-    };
-    rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rustc_version";
-      version = "0.1.7";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
-      inherit dependencies buildDependencies features;
-    };
-    scoped_threadpool_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "scoped_threadpool";
-      version = "0.1.7";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "0dg58f18i6v071640062n0vymr4h42cnj0xy8a7b80sc0mddykyk";
-      inherit dependencies buildDependencies features;
-    };
-    semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "semver";
-      version = "0.1.20";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
-      inherit dependencies buildDependencies features;
-    };
-    serde_0_9_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "serde";
-      version = "0.9.13";
-      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-      sha256 = "1lgh3mhmdagzb6wrm6nd4f9mfqwmw464hc8q99ia2qv4xwkx72xp";
-      inherit dependencies buildDependencies features;
-    };
-    serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "serde_json";
-      version = "0.9.10";
-      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-      sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
-      inherit dependencies buildDependencies features;
-    };
-    siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "siphasher";
-      version = "0.2.2";
-      authors = [ "Frank Denis <github@pureftpd.org>" ];
-      sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
-      inherit dependencies buildDependencies features;
-    };
-    strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "strsim";
-      version = "0.6.0";
-      authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-      sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
-      inherit dependencies buildDependencies features;
-    };
-    target_build_utils_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "target_build_utils";
-      version = "0.3.0";
-      authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
-      sha256 = "03vxpzmcsvzi1zzjj1h9c956m9s815v3ikrxa1mz1h5hzs3q7bkg";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    tempfile_2_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "tempfile";
-      version = "2.1.5";
-      authors = [ "Steven Allen <steven@stebalien.com>" ];
-      sha256 = "1yz8aaj78z9gsn4b71y0m6fa5bnxhqafcczhxvmwra56k943aqkw";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "term_size";
-      version = "0.3.0";
-      authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
-      sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
-      inherit dependencies buildDependencies features;
-    };
-    toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "toml";
-      version = "0.2.1";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
-      inherit dependencies buildDependencies features;
-    };
-    unicode_segmentation_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "unicode-segmentation";
-      version = "1.1.0";
-      authors = [ "kwantam <kwantam@gmail.com>" ];
-      sha256 = "10hk7wy0217jwdbp27p36skwkig5lbhk482yfzij9m87h247rry0";
-      inherit dependencies buildDependencies features;
-    };
-    unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "unicode-width";
-      version = "0.1.4";
-      authors = [ "kwantam <kwantam@gmail.com>" ];
-      sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-      inherit dependencies buildDependencies features;
-    };
-    vec_map_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "vec_map";
-      version = "0.7.0";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-      sha256 = "0jawvi83b1nm101nam0w71kdyh7cy3fr0l9qj1hfcjvzvihfk2l1";
-      inherit dependencies buildDependencies features;
-    };
-    way_cooler_bg_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "way-cooler-bg";
-      version = "0.2.1";
-      authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
-      sha256 = "04sa2g4kisc6g15fam7ciqya96l5ajfd8x2fq5i46m22qrvagvq2";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_client_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-client";
-      version = "0.6.2";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "04p9wjjvd4ahylhb27i7aggcrchcqk9ykpny6hjsc1lqfbqbhj3d";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_scanner_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-scanner";
-      version = "0.6.0";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "01x9i8ngl9m3hngv7p0xb2qfwfxpcljhbrils506cf1l1q8838kb";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_sys_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-sys";
-      version = "0.6.0";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
-      inherit dependencies buildDependencies features;
-    };
-    winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "winapi";
-      version = "0.2.8";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-      inherit dependencies buildDependencies features;
-    };
-    winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "winapi-build";
-      version = "0.1.1";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-      libName = "build";
-      inherit dependencies buildDependencies features;
-    };
-    xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "xml-rs";
-      version = "0.3.6";
-      authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
-      sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
-      libPath = "src/lib.rs";
-      libName = "xml";
-      crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
-      inherit dependencies buildDependencies features;
-    };
-
+    ) [] (builtins.attrNames feat);
 in
 rec {
-  ansi_term_0_9_0 = ansi_term_0_9_0_ rec {};
-  atty_0_2_2 = atty_0_2_2_ rec {
-    dependencies = (if !(kernel == "windows") then [ libc_0_2_21 ] else [])
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-  };
-  libc_0_2_21_features."default".from_atty_0_2_2__default = true;
-  kernel32_sys_0_2_2_features."default".from_atty_0_2_2__default = true;
-  winapi_0_2_8_features."default".from_atty_0_2_2__default = true;
-  bitflags_0_6_0 = bitflags_0_6_0_ rec {};
-  bitflags_0_7_0 = bitflags_0_7_0_ rec {};
-  bitflags_0_8_2 = bitflags_0_8_2_ rec {
-    features = mkFeatures bitflags_0_8_2_features;
-  };
-  bitflags_0_8_2_features."i128".self_unstable = hasFeature (bitflags_0_8_2_features."unstable" or {});
-  byteorder_0_5_3 = byteorder_0_5_3_ rec {
-    features = mkFeatures byteorder_0_5_3_features;
-  };
-  byteorder_0_5_3_features."std".self_default = hasDefault byteorder_0_5_3_features;
-  byteorder_1_0_0 = byteorder_1_0_0_ rec {
-    features = mkFeatures byteorder_1_0_0_features;
-  };
-  byteorder_1_0_0_features."std".self_default = hasDefault byteorder_1_0_0_features;
-  clap_2_23_2 = clap_2_23_2_ rec {
-    dependencies = [ ansi_term_0_9_0 atty_0_2_2 bitflags_0_8_2 strsim_0_6_0 term_size_0_3_0 unicode_segmentation_1_1_0 unicode_width_0_1_4 vec_map_0_7_0 ]
-      ++ (if lib.lists.any (x: x == "ansi_term") features then [ansi_term_0_9_0] else [])      ++ (if lib.lists.any (x: x == "atty") features then [atty_0_2_2] else [])      ++ (if lib.lists.any (x: x == "strsim") features then [strsim_0_6_0] else [])      ++ (if lib.lists.any (x: x == "term_size") features then [term_size_0_3_0] else []);
-    features = mkFeatures clap_2_23_2_features;
-  };
-  clap_2_23_2_features."".self = true;
-  clap_2_23_2_features."ansi_term".self_color = hasFeature (clap_2_23_2_features."color" or {});
-  clap_2_23_2_features."atty".self_color = hasFeature (clap_2_23_2_features."color" or {});
-  clap_2_23_2_features."suggestions".self_default = hasDefault clap_2_23_2_features;
-  clap_2_23_2_features."color".self_default = hasDefault clap_2_23_2_features;
-  clap_2_23_2_features."wrap_help".self_default = hasDefault clap_2_23_2_features;
-  clap_2_23_2_features."clippy".self_lints = hasFeature (clap_2_23_2_features."lints" or {});
-  clap_2_23_2_features."strsim".self_suggestions = hasFeature (clap_2_23_2_features."suggestions" or {});
-  clap_2_23_2_features."term_size".self_wrap_help = hasFeature (clap_2_23_2_features."wrap_help" or {});
-  clap_2_23_2_features."yaml-rust".self_yaml = hasFeature (clap_2_23_2_features."yaml" or {});
-  ansi_term_0_9_0_features."default".from_clap_2_23_2__default = true;
-  atty_0_2_2_features."default".from_clap_2_23_2__default = true;
-  bitflags_0_8_2_features."default".from_clap_2_23_2__default = true;
-  clippy_0_0_0_features."default".from_clap_2_23_2__default = true;
-  strsim_0_6_0_features."default".from_clap_2_23_2__default = true;
-  term_size_0_3_0_features."default".from_clap_2_23_2__default = true;
-  unicode_segmentation_1_1_0_features."default".from_clap_2_23_2__default = true;
-  unicode_width_0_1_4_features."default".from_clap_2_23_2__default = true;
-  vec_map_0_7_0_features."default".from_clap_2_23_2__default = true;
-  yaml_rust_0_0_0_features."default".from_clap_2_23_2__default = true;
-  color_quant_1_0_0 = color_quant_1_0_0_ rec {};
-  dbus_0_5_2 = dbus_0_5_2_ rec {
-    dependencies = [ libc_0_2_21 ];
-    buildDependencies = [ metadeps_1_1_1 ];
-    features = mkFeatures dbus_0_5_2_features;
-  };
-  dbus_0_5_2_features."".self = true;
-  libc_0_2_21_features."default".from_dbus_0_5_2__default = true;
-  deque_0_3_1 = deque_0_3_1_ rec {
-    dependencies = [ rand_0_3_15 ];
-  };
-  rand_0_3_15_features."default".from_deque_0_3_1__default = true;
-  dlib_0_3_1 = dlib_0_3_1_ rec {
-    dependencies = [ libloading_0_3_4 ];
-    features = mkFeatures dlib_0_3_1_features;
-  };
-  dlib_0_3_1_features."".self = true;
-  libloading_0_3_4_features."default".from_dlib_0_3_1__default = true;
-  dtoa_0_4_1 = dtoa_0_4_1_ rec {};
-  enum_primitive_0_1_1 = enum_primitive_0_1_1_ rec {
-    dependencies = [ num_traits_0_1_37 ];
-  };
-  num_traits_0_1_37_features."default".from_enum_primitive_0_1_1__default = false;
-  error_chain_0_7_2 = error_chain_0_7_2_ rec {
-    dependencies = [];
-    features = mkFeatures error_chain_0_7_2_features;
-  };
-  error_chain_0_7_2_features."backtrace".self_default = hasDefault error_chain_0_7_2_features;
-  error_chain_0_7_2_features."example_generated".self_default = hasDefault error_chain_0_7_2_features;
-  backtrace_0_0_0_features."default".from_error_chain_0_7_2__default = true;
-  flate2_0_2_19 = flate2_0_2_19_ rec {
-    dependencies = [ libc_0_2_21 miniz_sys_0_1_9 ]
-      ++ (if lib.lists.any (x: x == "miniz-sys") features then [miniz_sys_0_1_9] else []);
-    features = mkFeatures flate2_0_2_19_features;
-  };
-  flate2_0_2_19_features."".self = true;
-  flate2_0_2_19_features."miniz-sys".self_default = hasDefault flate2_0_2_19_features;
-  flate2_0_2_19_features."tokio-io".self_tokio = hasFeature (flate2_0_2_19_features."tokio" or {});
-  flate2_0_2_19_features."futures".self_tokio = hasFeature (flate2_0_2_19_features."tokio" or {});
-  flate2_0_2_19_features."libz-sys".self_zlib = hasFeature (flate2_0_2_19_features."zlib" or {});
-  futures_0_0_0_features."default".from_flate2_0_2_19__default = true;
-  libc_0_2_21_features."default".from_flate2_0_2_19__default = true;
-  libz_sys_0_0_0_features."default".from_flate2_0_2_19__default = true;
-  miniz_sys_0_1_9_features."default".from_flate2_0_2_19__default = true;
-  tokio_io_0_0_0_features."default".from_flate2_0_2_19__default = true;
-  gcc_0_3_45 = gcc_0_3_45_ rec {
-    dependencies = [];
-    features = mkFeatures gcc_0_3_45_features;
-  };
-  gcc_0_3_45_features."rayon".self_parallel = hasFeature (gcc_0_3_45_features."parallel" or {});
-  rayon_0_0_0_features."default".from_gcc_0_3_45__default = true;
-  gif_0_9_1 = gif_0_9_1_ rec {
-    dependencies = [ color_quant_1_0_0 lzw_0_10_0 ];
-    features = mkFeatures gif_0_9_1_features;
-  };
-  gif_0_9_1_features."libc".self_c_api = hasFeature (gif_0_9_1_features."c_api" or {});
-  gif_0_9_1_features."raii_no_panic".self_default = hasDefault gif_0_9_1_features;
-  color_quant_1_0_0_features."default".from_gif_0_9_1__default = true;
-  libc_0_0_0_features."default".from_gif_0_9_1__default = true;
-  lzw_0_10_0_features."default".from_gif_0_9_1__default = true;
-  glob_0_2_11 = glob_0_2_11_ rec {};
-  image_0_10_4 = image_0_10_4_ rec {
-    dependencies = [ byteorder_0_5_3 enum_primitive_0_1_1 gif_0_9_1 glob_0_2_11 jpeg_decoder_0_1_12 num_iter_0_1_33 num_rational_0_1_36 num_traits_0_1_37 png_0_5_2 scoped_threadpool_0_1_7 ]
-      ++ (if lib.lists.any (x: x == "gif") features then [gif_0_9_1] else [])      ++ (if lib.lists.any (x: x == "jpeg-decoder") features then [jpeg_decoder_0_1_12] else [])      ++ (if lib.lists.any (x: x == "png") features then [png_0_5_2] else [])      ++ (if lib.lists.any (x: x == "scoped_threadpool") features then [scoped_threadpool_0_1_7] else []);
-    features = mkFeatures image_0_10_4_features;
-  };
-  image_0_10_4_features."".self = true;
-  image_0_10_4_features."gif_codec".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."jpeg".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."ico".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."png_codec".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."ppm".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."tga".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."tiff".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."webp".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."bmp".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."hdr".self_default = hasDefault image_0_10_4_features;
-  image_0_10_4_features."gif".self_gif_codec = hasFeature (image_0_10_4_features."gif_codec" or {});
-  image_0_10_4_features."scoped_threadpool".self_hdr = hasFeature (image_0_10_4_features."hdr" or {});
-  image_0_10_4_features."bmp".self_ico = hasFeature (image_0_10_4_features."ico" or {});
-  image_0_10_4_features."png_codec".self_ico = hasFeature (image_0_10_4_features."ico" or {});
-  image_0_10_4_features."jpeg-decoder".self_jpeg = hasFeature (image_0_10_4_features."jpeg" or {});
-  image_0_10_4_features."png".self_png_codec = hasFeature (image_0_10_4_features."png_codec" or {});
-  byteorder_0_5_3_features."default".from_image_0_10_4__default = true;
-  enum_primitive_0_1_1_features."default".from_image_0_10_4__default = true;
-  gif_0_9_1_features."default".from_image_0_10_4__default = true;
-  glob_0_2_11_features."default".from_image_0_10_4__default = true;
-  jpeg_decoder_0_1_12_features."default".from_image_0_10_4__default = true;
-  num_iter_0_1_33_features."default".from_image_0_10_4__default = true;
-  num_rational_0_1_36_features."default".from_image_0_10_4__default = true;
-  num_traits_0_1_37_features."default".from_image_0_10_4__default = true;
-  png_0_5_2_features."default".from_image_0_10_4__default = true;
-  scoped_threadpool_0_1_7_features."default".from_image_0_10_4__default = true;
-  inflate_0_1_1 = inflate_0_1_1_ rec {
-    features = mkFeatures inflate_0_1_1_features;
-  };
-  inflate_0_1_1_features."".self = true;
-  itoa_0_3_1 = itoa_0_3_1_ rec {};
-  jpeg_decoder_0_1_12 = jpeg_decoder_0_1_12_ rec {
-    dependencies = [ byteorder_1_0_0 rayon_0_7_0 ]
-      ++ (if lib.lists.any (x: x == "rayon") features then [rayon_0_7_0] else []);
-    features = mkFeatures jpeg_decoder_0_1_12_features;
-  };
-  jpeg_decoder_0_1_12_features."".self = true;
-  jpeg_decoder_0_1_12_features."rayon".self_default = hasDefault jpeg_decoder_0_1_12_features;
-  byteorder_1_0_0_features."default".from_jpeg_decoder_0_1_12__default = true;
-  rayon_0_7_0_features."default".from_jpeg_decoder_0_1_12__default = true;
-  kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ rec {
-    dependencies = [ winapi_0_2_8 ];
-    buildDependencies = [ winapi_build_0_1_1 ];
-  };
-  winapi_0_2_8_features."default".from_kernel32_sys_0_2_2__default = true;
-  lazy_static_0_1_16 = lazy_static_0_1_16_ rec {
-    features = mkFeatures lazy_static_0_1_16_features;
-  };
-  lazy_static_0_1_16_features."".self = true;
-  lazy_static_0_2_8 = lazy_static_0_2_8_ rec {
-    dependencies = [];
-    features = mkFeatures lazy_static_0_2_8_features;
-  };
-  lazy_static_0_2_8_features."nightly".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
-  lazy_static_0_2_8_features."spin".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
-  spin_0_0_0_features."default".from_lazy_static_0_2_8__default = true;
-  libc_0_2_21 = libc_0_2_21_ rec {
-    features = mkFeatures libc_0_2_21_features;
-  };
-  libc_0_2_21_features."use_std".self_default = hasDefault libc_0_2_21_features;
-  libloading_0_3_4 = libloading_0_3_4_ rec {
-    dependencies = [ lazy_static_0_2_8 ]
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-    buildDependencies = [ target_build_utils_0_3_0 ];
-  };
-  lazy_static_0_2_8_features."default".from_libloading_0_3_4__default = true;
-  kernel32_sys_0_2_2_features."default".from_libloading_0_3_4__default = true;
-  winapi_0_2_8_features."default".from_libloading_0_3_4__default = true;
-  lzw_0_10_0 = lzw_0_10_0_ rec {
-    features = mkFeatures lzw_0_10_0_features;
-  };
-  lzw_0_10_0_features."raii_no_panic".self_default = hasDefault lzw_0_10_0_features;
-  metadeps_1_1_1 = metadeps_1_1_1_ rec {
-    dependencies = [ error_chain_0_7_2 pkg_config_0_3_9 toml_0_2_1 ];
-  };
-  error_chain_0_7_2_features."default".from_metadeps_1_1_1__default = false;
-  pkg_config_0_3_9_features."default".from_metadeps_1_1_1__default = true;
-  toml_0_2_1_features."default".from_metadeps_1_1_1__default = false;
-  miniz_sys_0_1_9 = miniz_sys_0_1_9_ rec {
-    dependencies = [ libc_0_2_21 ];
-    buildDependencies = [ gcc_0_3_45 ];
-  };
-  libc_0_2_21_features."default".from_miniz_sys_0_1_9__default = true;
-  num_bigint_0_1_37 = num_bigint_0_1_37_ rec {
-    dependencies = [ num_integer_0_1_34 num_traits_0_1_37 rand_0_3_15 rustc_serialize_0_3_23 ]
-      ++ (if lib.lists.any (x: x == "rand") features then [rand_0_3_15] else [])      ++ (if lib.lists.any (x: x == "rustc-serialize") features then [rustc_serialize_0_3_23] else []);
-    features = mkFeatures num_bigint_0_1_37_features;
-  };
-  num_bigint_0_1_37_features."".self = true;
-  num_bigint_0_1_37_features."rand".self_default = hasDefault num_bigint_0_1_37_features;
-  num_bigint_0_1_37_features."rustc-serialize".self_default = hasDefault num_bigint_0_1_37_features;
-  num_integer_0_1_34_features."default".from_num_bigint_0_1_37__default = true;
-  num_traits_0_1_37_features."default".from_num_bigint_0_1_37__default = true;
-  rand_0_3_15_features."default".from_num_bigint_0_1_37__default = true;
-  rustc_serialize_0_3_23_features."default".from_num_bigint_0_1_37__default = true;
-  serde_0_0_0_features."default".from_num_bigint_0_1_37__default = true;
-  num_integer_0_1_34 = num_integer_0_1_34_ rec {
-    dependencies = [ num_traits_0_1_37 ];
-  };
-  num_traits_0_1_37_features."default".from_num_integer_0_1_34__default = true;
-  num_iter_0_1_33 = num_iter_0_1_33_ rec {
-    dependencies = [ num_integer_0_1_34 num_traits_0_1_37 ];
-  };
-  num_integer_0_1_34_features."default".from_num_iter_0_1_33__default = true;
-  num_traits_0_1_37_features."default".from_num_iter_0_1_33__default = true;
-  num_rational_0_1_36 = num_rational_0_1_36_ rec {
-    dependencies = [ num_bigint_0_1_37 num_integer_0_1_34 num_traits_0_1_37 rustc_serialize_0_3_23 ]
-      ++ (if lib.lists.any (x: x == "num-bigint") features then [num_bigint_0_1_37] else [])      ++ (if lib.lists.any (x: x == "rustc-serialize") features then [rustc_serialize_0_3_23] else []);
-    features = mkFeatures num_rational_0_1_36_features;
-  };
-  num_rational_0_1_36_features."".self = true;
-  num_rational_0_1_36_features."num-bigint".self_bigint = hasFeature (num_rational_0_1_36_features."bigint" or {});
-  num_rational_0_1_36_features."bigint".self_default = hasDefault num_rational_0_1_36_features;
-  num_rational_0_1_36_features."rustc-serialize".self_default = hasDefault num_rational_0_1_36_features;
-  num_bigint_0_1_37_features."default".from_num_rational_0_1_36__default = true;
-  num_integer_0_1_34_features."default".from_num_rational_0_1_36__default = true;
-  num_traits_0_1_37_features."default".from_num_rational_0_1_36__default = true;
-  rustc_serialize_0_3_23_features."default".from_num_rational_0_1_36__default = true;
-  serde_0_0_0_features."default".from_num_rational_0_1_36__default = true;
-  num_traits_0_1_37 = num_traits_0_1_37_ rec {};
-  num_cpus_1_3_0 = num_cpus_1_3_0_ rec {
-    dependencies = [ libc_0_2_21 ];
-  };
-  libc_0_2_21_features."default".from_num_cpus_1_3_0__default = true;
-  phf_0_7_21 = phf_0_7_21_ rec {
-    dependencies = [ phf_shared_0_7_21 ];
-    features = mkFeatures phf_0_7_21_features;
-  };
-  phf_0_7_21_features."".self = true;
-  phf_shared_0_7_21_features."core".from_phf_0_7_21__core = hasFeature (phf_0_7_21_features."core" or {});
-  phf_shared_0_7_21_features."unicase".from_phf_0_7_21__unicase = hasFeature (phf_0_7_21_features."unicase" or {});
-  phf_shared_0_7_21_features."default".from_phf_0_7_21__default = true;
-  phf_codegen_0_7_21 = phf_codegen_0_7_21_ rec {
-    dependencies = [ phf_generator_0_7_21 phf_shared_0_7_21 ];
-  };
-  phf_generator_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
-  phf_shared_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
-  phf_generator_0_7_21 = phf_generator_0_7_21_ rec {
-    dependencies = [ phf_shared_0_7_21 rand_0_3_15 ];
-  };
-  phf_shared_0_7_21_features."default".from_phf_generator_0_7_21__default = true;
-  rand_0_3_15_features."default".from_phf_generator_0_7_21__default = true;
-  phf_shared_0_7_21 = phf_shared_0_7_21_ rec {
-    dependencies = [ siphasher_0_2_2 ];
-    features = mkFeatures phf_shared_0_7_21_features;
-  };
-  phf_shared_0_7_21_features."".self = true;
-  siphasher_0_2_2_features."default".from_phf_shared_0_7_21__default = true;
-  unicase_0_0_0_features."default".from_phf_shared_0_7_21__default = true;
-  pkg_config_0_3_9 = pkg_config_0_3_9_ rec {};
-  png_0_5_2 = png_0_5_2_ rec {
-    dependencies = [ bitflags_0_7_0 flate2_0_2_19 inflate_0_1_1 num_iter_0_1_33 ]
-      ++ (if lib.lists.any (x: x == "flate2") features then [flate2_0_2_19] else []);
-    features = mkFeatures png_0_5_2_features;
-  };
-  png_0_5_2_features."".self = true;
-  png_0_5_2_features."png-encoding".self_default = hasDefault png_0_5_2_features;
-  png_0_5_2_features."flate2".self_png-encoding = hasFeature (png_0_5_2_features."png-encoding" or {});
-  bitflags_0_7_0_features."default".from_png_0_5_2__default = true;
-  flate2_0_2_19_features."default".from_png_0_5_2__default = true;
-  inflate_0_1_1_features."default".from_png_0_5_2__default = true;
-  num_iter_0_1_33_features."default".from_png_0_5_2__default = true;
-  rand_0_3_15 = rand_0_3_15_ rec {
-    dependencies = [ libc_0_2_21 ];
-  };
-  libc_0_2_21_features."default".from_rand_0_3_15__default = true;
-  rayon_0_7_0 = rayon_0_7_0_ rec {
-    dependencies = [ rayon_core_1_0_0 ];
-    features = mkFeatures rayon_0_7_0_features;
-  };
-  rayon_0_7_0_features."".self = true;
-  rayon_core_1_0_0_features."unstable".from_rayon_0_7_0__unstable = hasFeature (rayon_0_7_0_features."unstable" or {});
-  rayon_core_1_0_0_features."default".from_rayon_0_7_0__default = true;
-  rayon_core_1_0_0 = rayon_core_1_0_0_ rec {
-    dependencies = [ deque_0_3_1 lazy_static_0_2_8 libc_0_2_21 num_cpus_1_3_0 rand_0_3_15 ];
-    features = mkFeatures rayon_core_1_0_0_features;
-  };
-  rayon_core_1_0_0_features."futures".self_unstable = hasFeature (rayon_core_1_0_0_features."unstable" or {});
-  deque_0_3_1_features."default".from_rayon_core_1_0_0__default = true;
-  futures_0_0_0_features."default".from_rayon_core_1_0_0__default = true;
-  lazy_static_0_2_8_features."default".from_rayon_core_1_0_0__default = true;
-  libc_0_2_21_features."default".from_rayon_core_1_0_0__default = true;
-  num_cpus_1_3_0_features."default".from_rayon_core_1_0_0__default = true;
-  rand_0_3_15_features."default".from_rayon_core_1_0_0__default = true;
-  rustc_serialize_0_3_23 = rustc_serialize_0_3_23_ rec {};
-  rustc_version_0_1_7 = rustc_version_0_1_7_ rec {
-    dependencies = [ semver_0_1_20 ];
-  };
-  semver_0_1_20_features."default".from_rustc_version_0_1_7__default = true;
-  scoped_threadpool_0_1_7 = scoped_threadpool_0_1_7_ rec {
-    features = mkFeatures scoped_threadpool_0_1_7_features;
-  };
-  scoped_threadpool_0_1_7_features."".self = true;
-  semver_0_1_20 = semver_0_1_20_ rec {};
-  serde_0_9_13 = serde_0_9_13_ rec {
-    dependencies = [];
-    features = mkFeatures serde_0_9_13_features;
-  };
-  serde_0_9_13_features."unstable".self_alloc = hasFeature (serde_0_9_13_features."alloc" or {});
-  serde_0_9_13_features."alloc".self_collections = hasFeature (serde_0_9_13_features."collections" or {});
-  serde_0_9_13_features."std".self_default = hasDefault serde_0_9_13_features;
-  serde_0_9_13_features."serde_derive".self_derive = hasFeature (serde_0_9_13_features."derive" or {});
-  serde_0_9_13_features."serde_derive".self_playground = hasFeature (serde_0_9_13_features."playground" or {});
-  serde_0_9_13_features."unstable".self_unstable-testing = hasFeature (serde_0_9_13_features."unstable-testing" or {});
-  serde_0_9_13_features."std".self_unstable-testing = hasFeature (serde_0_9_13_features."unstable-testing" or {});
-  serde_derive_0_0_0_features."default".from_serde_0_9_13__default = true;
-  serde_json_0_9_10 = serde_json_0_9_10_ rec {
-    dependencies = [ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_13 ];
-    features = mkFeatures serde_json_0_9_10_features;
-  };
-  serde_json_0_9_10_features."linked-hash-map".self_preserve_order = hasFeature (serde_json_0_9_10_features."preserve_order" or {});
-  dtoa_0_4_1_features."default".from_serde_json_0_9_10__default = true;
-  itoa_0_3_1_features."default".from_serde_json_0_9_10__default = true;
-  linked_hash_map_0_0_0_features."default".from_serde_json_0_9_10__default = true;
-  num_traits_0_1_37_features."default".from_serde_json_0_9_10__default = true;
-  serde_0_9_13_features."default".from_serde_json_0_9_10__default = true;
-  siphasher_0_2_2 = siphasher_0_2_2_ rec {
-    dependencies = [];
-  };
-  clippy_0_0_0_features."default".from_siphasher_0_2_2__default = true;
-  strsim_0_6_0 = strsim_0_6_0_ rec {};
-  target_build_utils_0_3_0 = target_build_utils_0_3_0_ rec {
-    dependencies = [ phf_0_7_21 serde_json_0_9_10 ]
-      ++ (if lib.lists.any (x: x == "serde_json") features then [serde_json_0_9_10] else []);
-    buildDependencies = [ phf_codegen_0_7_21 ];
-    features = mkFeatures target_build_utils_0_3_0_features;
-  };
-  target_build_utils_0_3_0_features."".self = true;
-  target_build_utils_0_3_0_features."serde_json".self_default = hasDefault target_build_utils_0_3_0_features;
-  phf_0_7_21_features."default".from_target_build_utils_0_3_0__default = true;
-  serde_json_0_9_10_features."default".from_target_build_utils_0_3_0__default = true;
-  tempfile_2_1_5 = tempfile_2_1_5_ rec {
-    dependencies = [ rand_0_3_15 ]
-      ++ (if (kernel == "linux" || kernel == "darwin") then [ libc_0_2_21 ] else [])
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-    buildDependencies = [ rustc_version_0_1_7 ];
-  };
-  rand_0_3_15_features."default".from_tempfile_2_1_5__default = true;
-  libc_0_2_21_features."default".from_tempfile_2_1_5__default = true;
-  kernel32_sys_0_2_2_features."default".from_tempfile_2_1_5__default = true;
-  winapi_0_2_8_features."default".from_tempfile_2_1_5__default = true;
-  term_size_0_3_0 = term_size_0_3_0_ rec {
-    dependencies = []
-      ++ (if !(kernel == "windows") then [ libc_0_2_21 ] else [])
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-    features = mkFeatures term_size_0_3_0_features;
-  };
-  term_size_0_3_0_features."clippy".self_lints = hasFeature (term_size_0_3_0_features."lints" or {});
-  term_size_0_3_0_features."nightly".self_lints = hasFeature (term_size_0_3_0_features."lints" or {});
-  term_size_0_3_0_features."lints".self_travis = hasFeature (term_size_0_3_0_features."travis" or {});
-  term_size_0_3_0_features."nightly".self_travis = hasFeature (term_size_0_3_0_features."travis" or {});
-  clippy_0_0_0_features."default".from_term_size_0_3_0__default = true;
-  libc_0_2_21_features."default".from_term_size_0_3_0__default = true;
-  kernel32_sys_0_2_2_features."default".from_term_size_0_3_0__default = true;
-  winapi_0_2_8_features."default".from_term_size_0_3_0__default = true;
-  toml_0_2_1 = toml_0_2_1_ rec {
-    dependencies = [];
-  };
-  toml_0_2_1_features."rustc-serialize".self_default = hasDefault toml_0_2_1_features;
-  rustc_serialize_0_0_0_features."default".from_toml_0_2_1__default = true;
-  serde_0_0_0_features."default".from_toml_0_2_1__default = true;
-  unicode_segmentation_1_1_0 = unicode_segmentation_1_1_0_ rec {
-    features = mkFeatures unicode_segmentation_1_1_0_features;
-  };
-  unicode_segmentation_1_1_0_features."".self = true;
-  unicode_width_0_1_4 = unicode_width_0_1_4_ rec {
-    features = mkFeatures unicode_width_0_1_4_features;
-  };
-  unicode_width_0_1_4_features."".self = true;
-  vec_map_0_7_0 = vec_map_0_7_0_ rec {
-    dependencies = [];
-    features = mkFeatures vec_map_0_7_0_features;
-  };
-  vec_map_0_7_0_features."serde".self_eders = hasFeature (vec_map_0_7_0_features."eders" or {});
-  vec_map_0_7_0_features."serde_derive".self_eders = hasFeature (vec_map_0_7_0_features."eders" or {});
-  serde_0_0_0_features."default".from_vec_map_0_7_0__default = true;
-  serde_derive_0_0_0_features."default".from_vec_map_0_7_0__default = true;
-  way_cooler_bg_0_2_1 = way_cooler_bg_0_2_1_ rec {
-    dependencies = [ byteorder_0_5_3 clap_2_23_2 dbus_0_5_2 image_0_10_4 tempfile_2_1_5 wayland_client_0_6_2 wayland_sys_0_6_0 ];
-  };
-  byteorder_0_5_3_features."default".from_way_cooler_bg_0_2_1__default = true;
-  clap_2_23_2_features."default".from_way_cooler_bg_0_2_1__default = true;
-  dbus_0_5_2_features."default".from_way_cooler_bg_0_2_1__default = true;
-  image_0_10_4_features."default".from_way_cooler_bg_0_2_1__default = true;
-  tempfile_2_1_5_features."default".from_way_cooler_bg_0_2_1__default = true;
-  wayland_client_0_6_2_features."cursor".from_way_cooler_bg_0_2_1 = true;
-  wayland_client_0_6_2_features."dlopen".from_way_cooler_bg_0_2_1 = true;
-  wayland_client_0_6_2_features."default".from_way_cooler_bg_0_2_1__default = true;
-  wayland_sys_0_6_0_features."client".from_way_cooler_bg_0_2_1 = true;
-  wayland_sys_0_6_0_features."dlopen".from_way_cooler_bg_0_2_1 = true;
-  wayland_sys_0_6_0_features."default".from_way_cooler_bg_0_2_1__default = true;
-  wayland_client_0_6_2 = wayland_client_0_6_2_ rec {
-    dependencies = [ bitflags_0_6_0 libc_0_2_21 wayland_sys_0_6_0 ];
-    buildDependencies = [ wayland_scanner_0_6_0 ];
-    features = mkFeatures wayland_client_0_6_2_features;
-  };
-  wayland_client_0_6_2_features."wp-presentation_time".self_all_stable_protocols = hasFeature (wayland_client_0_6_2_features."all_stable_protocols" or {});
-  wayland_client_0_6_2_features."wp-viewporter".self_all_stable_protocols = hasFeature (wayland_client_0_6_2_features."all_stable_protocols" or {});
-  wayland_client_0_6_2_features."unstable-protocols".self_all_unstable_protocols = hasFeature (wayland_client_0_6_2_features."all_unstable_protocols" or {});
-  wayland_client_0_6_2_features."wpu-xdg_shell".self_all_unstable_protocols = hasFeature (wayland_client_0_6_2_features."all_unstable_protocols" or {});
-  bitflags_0_6_0_features."default".from_wayland_client_0_6_2__default = true;
-  lazy_static_0_0_0_features."default".from_wayland_client_0_6_2__default = true;
-  libc_0_2_21_features."default".from_wayland_client_0_6_2__default = true;
-  wayland_sys_0_6_0_features."client".from_wayland_client_0_6_2 = true;
-  wayland_sys_0_6_0_features."cursor".from_wayland_client_0_6_2__cursor = hasFeature (wayland_client_0_6_2_features."cursor" or {});
-  wayland_sys_0_6_0_features."dlopen".from_wayland_client_0_6_2__dlopen = hasFeature (wayland_client_0_6_2_features."dlopen" or {});
-  wayland_sys_0_6_0_features."egl".from_wayland_client_0_6_2__egl = hasFeature (wayland_client_0_6_2_features."egl" or {});
-  wayland_sys_0_6_0_features."default".from_wayland_client_0_6_2__default = true;
-  wayland_scanner_0_6_0 = wayland_scanner_0_6_0_ rec {
-    dependencies = [ xml_rs_0_3_6 ];
-  };
-  xml_rs_0_3_6_features."default".from_wayland_scanner_0_6_0__default = true;
-  wayland_sys_0_6_0 = wayland_sys_0_6_0_ rec {
-    dependencies = [ dlib_0_3_1 lazy_static_0_1_16 ]
-      ++ (if lib.lists.any (x: x == "lazy_static") features then [lazy_static_0_1_16] else []);
-    features = mkFeatures wayland_sys_0_6_0_features;
-  };
-  wayland_sys_0_6_0_features."".self = true;
-  wayland_sys_0_6_0_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
-  wayland_sys_0_6_0_features."libc".self_server = hasFeature (wayland_sys_0_6_0_features."server" or {});
-  dlib_0_3_1_features."dlopen".from_wayland_sys_0_6_0__dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
-  dlib_0_3_1_features."default".from_wayland_sys_0_6_0__default = true;
-  lazy_static_0_1_16_features."default".from_wayland_sys_0_6_0__default = true;
-  libc_0_0_0_features."default".from_wayland_sys_0_6_0__default = true;
-  winapi_0_2_8 = winapi_0_2_8_ rec {};
-  winapi_build_0_1_1 = winapi_build_0_1_1_ rec {};
-  xml_rs_0_3_6 = xml_rs_0_3_6_ rec {
-    dependencies = [ bitflags_0_7_0 ];
-  };
-  bitflags_0_7_0_features."default".from_xml_rs_0_3_6__default = true;
+  wc_bg = f: wc_bg_0_3_0 { features = wc_bg_0_3_0_features { wc_bg_0_3_0 = f; }; };
+  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.9.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+    inherit dependencies buildDependencies features;
+  };
+  atty_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.3";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "0zl0cjfgarp5y78nd755lpki5bbkj4hgmi88v265m543yg29i88f";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.7.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.9.1";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "18h073l5jd88rx4qdr95fjddr9rk79pb1aqnshzdnw16cfmb9rws";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "0.5.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "1.1.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1i2n0161jm00zvzh4bncgv9zrwa6ydbxdn5j4bx0wwn7rvi9zycp";
+    inherit dependencies buildDependencies features;
+  };
+  cc_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cc";
+    version = "1.0.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1s5ha0k6cdy1049a5kpzvhnjc9hjvi18zrcr5dmbqpd03ag751g1";
+    inherit dependencies buildDependencies features;
+  };
+  clap_2_26_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "clap";
+    version = "2.26.2";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "0njvc0b7m11yym25jrr8h47nb3k3lpzzafjf22y33c5p4rw7fn2d";
+    inherit dependencies buildDependencies features;
+  };
+  coco_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "coco";
+    version = "0.1.1";
+    authors = [ "Stjepan Glavina <stjepang@gmail.com>" ];
+    sha256 = "0hvj4jaj9y6i38c4dkii8nqq98cgx3kyx78cjqkdvk0aqq5sfr94";
+    inherit dependencies buildDependencies features;
+  };
+  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "color_quant";
+    version = "1.0.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
+    inherit dependencies buildDependencies features;
+  };
+  dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dlib";
+    version = "0.3.1";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+    inherit dependencies buildDependencies features;
+  };
+  dtoa_0_4_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dtoa";
+    version = "0.4.2";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1bxsh6fags7nr36vlz07ik2a1rzyipc8x1y30kjk832hf2pzadmw";
+    inherit dependencies buildDependencies features;
+  };
+  either_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "either";
+    version = "1.2.0";
+    authors = [ "bluss" ];
+    sha256 = "0l72xaf1kwzgbl3andf3d2ggz7km9059rbmp90iywww8inlnqppp";
+    inherit dependencies buildDependencies features;
+  };
+  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "enum_primitive";
+    version = "0.1.1";
+    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
+    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
+    inherit dependencies buildDependencies features;
+  };
+  flate2_0_2_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "flate2";
+    version = "0.2.20";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1am0d2vmqym1vcg7rvv516vpcrbhdn1jisy0q03r3nbzdzh54ppl";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon";
+    version = "0.2.1";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "0yd4rd7ql1vdr349p6vgq2dnwmpylky1kjp8g1zgvp250jxrhddb";
+    inherit dependencies buildDependencies features;
+  };
+  fuchsia_zircon_sys_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fuchsia-zircon-sys";
+    version = "0.2.0";
+    authors = [ "Raph Levien <raph@google.com>" ];
+    sha256 = "1yrqsrjwlhl3di6prxf5xmyd82gyjaysldbka5wwk83z11mpqh4w";
+    inherit dependencies buildDependencies features;
+  };
+  futures_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "futures";
+    version = "0.1.16";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0ndk8cl6l600a95q8il2c3y38jz50nhfsczps0nziadqdd45gy2b";
+    inherit dependencies buildDependencies features;
+  };
+  gif_0_9_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gif";
+    version = "0.9.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0dl76jrn6127w3bdg2b58p5psf8fpnbzdxdkw1i35ac8dn4vxcqa";
+    inherit dependencies buildDependencies features;
+  };
+  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glob";
+    version = "0.2.11";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
+    inherit dependencies buildDependencies features;
+  };
+  image_0_10_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "image";
+    version = "0.10.4";
+    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
+    sha256 = "1pwrs7k5760b38i1lg872x9q2zc6xvhs7mjhlzvjnr5p85zx2fbw";
+    libPath = "./src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "inflate";
+    version = "0.1.1";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
+    inherit dependencies buildDependencies features;
+  };
+  itoa_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.3.4";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "1nfkzz6vrgj0d9l3yzjkkkqzdgs68y294fjdbl7jq118qi8xc9d9";
+    inherit dependencies buildDependencies features;
+  };
+  jpeg_decoder_0_1_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "jpeg-decoder";
+    version = "0.1.13";
+    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
+    sha256 = "0w16gbywlm9p0p3wx34b85q4d1izrx89afcsxlc6g11cx2js4fa2";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_0_2_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "0.2.9";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "08ldzr5292y3hvi6l6v8l4i6v95lm1aysmnfln65h10sqrfh6iw7";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_32_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.32";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1i8njlar6v9qvmkyfvwzhxrvkqw6ijp8fqdnya5csqixxz18a532";
+    inherit dependencies buildDependencies features;
+  };
+  libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libloading";
+    version = "0.3.4";
+    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lzw";
+    version = "0.10.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
+    inherit dependencies buildDependencies features;
+  };
+  miniz_sys_0_1_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "miniz-sys";
+    version = "0.1.10";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "11vg6phafxil87nbxgrlhcx5hjr3145wsbwwkfmibvnmzxfdmvln";
+    libPath = "lib.rs";
+    libName = "miniz_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  num_bigint_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-bigint";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0pkxd9mb4chdbipprxjc8ll7kjh79n278s2z663zmd80yg5xi788";
+    inherit dependencies buildDependencies features;
+  };
+  num_integer_0_1_35_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-integer";
+    version = "0.1.35";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0xybj8isi9b6wc646d5rc043i8l8j6wy0vrl4pn995qms9fxbbcc";
+    inherit dependencies buildDependencies features;
+  };
+  num_iter_0_1_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-iter";
+    version = "0.1.34";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "02cld7x9dzbqbs6sxxzq1i22z3awlcd6ljkgvhkfr9rsnaxphzl9";
+    inherit dependencies buildDependencies features;
+  };
+  num_rational_0_1_39_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-rational";
+    version = "0.1.39";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1qsacdfp97zgpajc2pgbrbga3yag1f0k7yz0gi78vd165gxdwk3m";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1fr8ghp4i97q3agki54i0hpmqxv3s65i2mqd1pinc7w7arc3fplw";
+    inherit dependencies buildDependencies features;
+  };
+  num_cpus_1_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num_cpus";
+    version = "1.7.0";
+    authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
+    sha256 = "0231xmd65ma3pqfiw8pkv9dvm9x708z4xlrwp3i0sgiwv408dz3f";
+    inherit dependencies buildDependencies features;
+  };
+  phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_codegen";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+    inherit dependencies buildDependencies features;
+  };
+  phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_generator";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+    inherit dependencies buildDependencies features;
+  };
+  phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_shared";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  png_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "png";
+    version = "0.5.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1pgann3f1ysgf8y1acw86v4s3ji1xk85ri353biyvh4i1cpn1g3q";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_17_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.17";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "06ra3pr36dlyq3kp5lbia8xnw5g0zsys2d69frr7y6df5hhb1r8j";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon";
+    version = "0.8.2";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
+    sha256 = "0d0mddg1k75hb9138pn8lysy2095jijrinskqbpgfr73s0jx6dq8";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_core_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon-core";
+    version = "1.2.1";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
+    sha256 = "12xv2r0dqrgvla24bl5mfvcw0599dlhrj0mx620nq95nyds753kk";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  redox_syscall_0_1_31_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_syscall";
+    version = "0.1.31";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "0kipd9qslzin4fgj4jrxv6yz5l3l71gnbd7fq1jhk2j7f2sq33j4";
+    libName = "syscall";
+    inherit dependencies buildDependencies features;
+  };
+  redox_termios_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "redox_termios";
+    version = "0.1.1";
+    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
+    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc-serialize";
+    version = "0.3.24";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
+    inherit dependencies buildDependencies features;
+  };
+  scoped_threadpool_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scoped_threadpool";
+    version = "0.1.8";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1al42hqbbijpah9bc6hw9c49nhnyrc0sj274ja1q3k9305c3s5a6";
+    inherit dependencies buildDependencies features;
+  };
+  scopeguard_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scopeguard";
+    version = "0.3.2";
+    authors = [ "bluss" ];
+    sha256 = "0xlvfawva4fnp6kwr5xjwf0q2d1w6di81nhfby1sa55xj1ia5zs2";
+    inherit dependencies buildDependencies features;
+  };
+  serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "0.9.15";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
+    inherit dependencies buildDependencies features;
+  };
+  serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_json";
+    version = "0.9.10";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+    inherit dependencies buildDependencies features;
+  };
+  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "siphasher";
+    version = "0.2.2";
+    authors = [ "Frank Denis <github@pureftpd.org>" ];
+    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+    inherit dependencies buildDependencies features;
+  };
+  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.6.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
+    inherit dependencies buildDependencies features;
+  };
+  target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "target_build_utils";
+    version = "0.3.1";
+    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  tempfile_2_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tempfile";
+    version = "2.2.0";
+    authors = [ "Steven Allen <steven@stebalien.com>" ];
+    sha256 = "1z3l901ipvi0s0mdppw4lwfa77ydb22rfnf6y9sh0pifj7ah5drf";
+    inherit dependencies buildDependencies features;
+  };
+  term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "term_size";
+    version = "0.3.0";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+    sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
+    inherit dependencies buildDependencies features;
+  };
+  termion_1_5_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "termion";
+    version = "1.5.1";
+    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
+    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
+    inherit dependencies buildDependencies features;
+  };
+  textwrap_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "textwrap";
+    version = "0.8.0";
+    authors = [ "Martin Geisler <martin@geisler.net>" ];
+    sha256 = "02j8apii1032cvp9fwrxw4pf11xb287j2n1iv1iixp8yh6vzrq41";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.4";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
+    inherit dependencies buildDependencies features;
+  };
+  vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.8.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
+    inherit dependencies buildDependencies features;
+  };
+  way_cooler_client_helpers_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "way-cooler-client-helpers";
+    version = "0.1.0";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "0749lh5crd0rhq4dxij9mb3y5902laazjd01l6ci5782bjfk4s39";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_client_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-client";
+    version = "0.9.10";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1cs7zwvqahiysnfqfask96zpfr2bp47dlwwwd9ap8ccvcjbspj67";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_scanner_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-scanner";
+    version = "0.9.10";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "0vhnj3vfnrknvdmy72pjh7dck5q5sz1v8kfr0qqzkqf0ylavvyb2";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.9.10";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "011q7lfii222whvif39asvryl1sf3rc1fxp8qs8gh84kr4mna0k8";
+    inherit dependencies buildDependencies features;
+  };
+  wc_bg_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wc-bg";
+    version = "0.3.0";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "1jywymr80k96481vr6nyyqhlf2gj2n2zgvkwkny2m84v9n3pqn62";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  xml_rs_0_6_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xml-rs";
+    version = "0.6.1";
+    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+    sha256 = "0adjwgmn061p60n81s52a9p26y2jdc20wvinsyw2nzmby5wvnbwk";
+    libPath = "src/lib.rs";
+    libName = "xml";
+    crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
+  ansi_term_0_9_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
+  }) [];
+  atty_0_2_3 = { features?(atty_0_2_3_features {}) }: atty_0_2_3_ {
+    dependencies = (if kernel == "redox" then mapFeatures features ([ termion_1_5_1 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_32 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  atty_0_2_3_features = f: updateFeatures f (rec {
+    atty_0_2_3.default = (f.atty_0_2_3.default or true);
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_32.default = (f.libc_0_2_32.default or false);
+    termion_1_5_1.default = true;
+    winapi_0_2_8.default = true;
+  }) [ termion_1_5_1_features libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
+  bitflags_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
+  }) [];
+  bitflags_0_9_1 = { features?(bitflags_0_9_1_features {}) }: bitflags_0_9_1_ {
+    features = mkFeatures (features.bitflags_0_9_1 or {});
+  };
+  bitflags_0_9_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = (f.bitflags_0_9_1.default or true);
+    bitflags_0_9_1.example_generated =
+      (f.bitflags_0_9_1.example_generated or false) ||
+      (f.bitflags_0_9_1.default or false) ||
+      (bitflags_0_9_1.default or false);
+  }) [];
+  byteorder_0_5_3 = { features?(byteorder_0_5_3_features {}) }: byteorder_0_5_3_ {
+    features = mkFeatures (features.byteorder_0_5_3 or {});
+  };
+  byteorder_0_5_3_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = (f.byteorder_0_5_3.default or true);
+    byteorder_0_5_3.std =
+      (f.byteorder_0_5_3.std or false) ||
+      (f.byteorder_0_5_3.default or false) ||
+      (byteorder_0_5_3.default or false);
+  }) [];
+  byteorder_1_1_0 = { features?(byteorder_1_1_0_features {}) }: byteorder_1_1_0_ {
+    features = mkFeatures (features.byteorder_1_1_0 or {});
+  };
+  byteorder_1_1_0_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = (f.byteorder_1_1_0.default or true);
+    byteorder_1_1_0.std =
+      (f.byteorder_1_1_0.std or false) ||
+      (f.byteorder_1_1_0.default or false) ||
+      (byteorder_1_1_0.default or false);
+  }) [];
+  cc_1_0_0 = { features?(cc_1_0_0_features {}) }: cc_1_0_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.cc_1_0_0 or {});
+  };
+  cc_1_0_0_features = f: updateFeatures f (rec {
+    cc_1_0_0.default = (f.cc_1_0_0.default or true);
+    cc_1_0_0.rayon =
+      (f.cc_1_0_0.rayon or false) ||
+      (f.cc_1_0_0.parallel or false) ||
+      (cc_1_0_0.parallel or false);
+  }) [];
+  clap_2_26_2 = { features?(clap_2_26_2_features {}) }: clap_2_26_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 textwrap_0_8_0 unicode_width_0_1_4 vec_map_0_8_0 ]
+      ++ (if features.clap_2_26_2.ansi_term or false then [ ansi_term_0_9_0 ] else [])
+      ++ (if features.clap_2_26_2.atty or false then [ atty_0_2_3 ] else [])
+      ++ (if features.clap_2_26_2.strsim or false then [ strsim_0_6_0 ] else [])
+      ++ (if features.clap_2_26_2.term_size or false then [ term_size_0_3_0 ] else []));
+    features = mkFeatures (features.clap_2_26_2 or {});
+  };
+  clap_2_26_2_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = true;
+    atty_0_2_3.default = true;
+    bitflags_0_9_1.default = true;
+    clap_2_26_2.ansi_term =
+      (f.clap_2_26_2.ansi_term or false) ||
+      (f.clap_2_26_2.color or false) ||
+      (clap_2_26_2.color or false);
+    clap_2_26_2.atty =
+      (f.clap_2_26_2.atty or false) ||
+      (f.clap_2_26_2.color or false) ||
+      (clap_2_26_2.color or false);
+    clap_2_26_2.clippy =
+      (f.clap_2_26_2.clippy or false) ||
+      (f.clap_2_26_2.lints or false) ||
+      (clap_2_26_2.lints or false);
+    clap_2_26_2.color =
+      (f.clap_2_26_2.color or false) ||
+      (f.clap_2_26_2.default or false) ||
+      (clap_2_26_2.default or false);
+    clap_2_26_2.default = (f.clap_2_26_2.default or true);
+    clap_2_26_2.strsim =
+      (f.clap_2_26_2.strsim or false) ||
+      (f.clap_2_26_2.suggestions or false) ||
+      (clap_2_26_2.suggestions or false);
+    clap_2_26_2.suggestions =
+      (f.clap_2_26_2.suggestions or false) ||
+      (f.clap_2_26_2.default or false) ||
+      (clap_2_26_2.default or false);
+    clap_2_26_2.term_size =
+      (f.clap_2_26_2.term_size or false) ||
+      (f.clap_2_26_2.wrap_help or false) ||
+      (clap_2_26_2.wrap_help or false);
+    clap_2_26_2.wrap_help =
+      (f.clap_2_26_2.wrap_help or false) ||
+      (f.clap_2_26_2.default or false) ||
+      (clap_2_26_2.default or false);
+    clap_2_26_2.yaml =
+      (f.clap_2_26_2.yaml or false) ||
+      (f.clap_2_26_2.doc or false) ||
+      (clap_2_26_2.doc or false);
+    clap_2_26_2.yaml-rust =
+      (f.clap_2_26_2.yaml-rust or false) ||
+      (f.clap_2_26_2.yaml or false) ||
+      (clap_2_26_2.yaml or false);
+    strsim_0_6_0.default = true;
+    term_size_0_3_0.default = true;
+    textwrap_0_8_0.default = true;
+    unicode_width_0_1_4.default = true;
+    vec_map_0_8_0.default = true;
+  }) [ ansi_term_0_9_0_features atty_0_2_3_features bitflags_0_9_1_features strsim_0_6_0_features term_size_0_3_0_features textwrap_0_8_0_features unicode_width_0_1_4_features vec_map_0_8_0_features ];
+  coco_0_1_1 = { features?(coco_0_1_1_features {}) }: coco_0_1_1_ {
+    dependencies = mapFeatures features ([ either_1_2_0 scopeguard_0_3_2 ]);
+    features = mkFeatures (features.coco_0_1_1 or {});
+  };
+  coco_0_1_1_features = f: updateFeatures f (rec {
+    coco_0_1_1.default = (f.coco_0_1_1.default or true);
+    either_1_2_0.default = true;
+    scopeguard_0_3_2.default = true;
+  }) [ either_1_2_0_features scopeguard_0_3_2_features ];
+  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
+  color_quant_1_0_0_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
+  }) [];
+  dlib_0_3_1 = { features?(dlib_0_3_1_features {}) }: dlib_0_3_1_ {
+    dependencies = mapFeatures features ([ libloading_0_3_4 ]);
+    features = mkFeatures (features.dlib_0_3_1 or {});
+  };
+  dlib_0_3_1_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = (f.dlib_0_3_1.default or true);
+    libloading_0_3_4.default = true;
+  }) [ libloading_0_3_4_features ];
+  dtoa_0_4_2 = { features?(dtoa_0_4_2_features {}) }: dtoa_0_4_2_ {};
+  dtoa_0_4_2_features = f: updateFeatures f (rec {
+    dtoa_0_4_2.default = (f.dtoa_0_4_2.default or true);
+  }) [];
+  either_1_2_0 = { features?(either_1_2_0_features {}) }: either_1_2_0_ {
+    features = mkFeatures (features.either_1_2_0 or {});
+  };
+  either_1_2_0_features = f: updateFeatures f (rec {
+    either_1_2_0.default = (f.either_1_2_0.default or true);
+    either_1_2_0.use_std =
+      (f.either_1_2_0.use_std or false) ||
+      (f.either_1_2_0.default or false) ||
+      (either_1_2_0.default or false);
+  }) [];
+  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_40 ]);
+  };
+  enum_primitive_0_1_1_features = f: updateFeatures f (rec {
+    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
+    num_traits_0_1_40.default = (f.num_traits_0_1_40.default or false);
+  }) [ num_traits_0_1_40_features ];
+  flate2_0_2_20 = { features?(flate2_0_2_20_features {}) }: flate2_0_2_20_ {
+    dependencies = mapFeatures features ([ libc_0_2_32 ]
+      ++ (if features.flate2_0_2_20.miniz-sys or false then [ miniz_sys_0_1_10 ] else []));
+    features = mkFeatures (features.flate2_0_2_20 or {});
+  };
+  flate2_0_2_20_features = f: updateFeatures f (rec {
+    flate2_0_2_20.default = (f.flate2_0_2_20.default or true);
+    flate2_0_2_20.futures =
+      (f.flate2_0_2_20.futures or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    flate2_0_2_20.libz-sys =
+      (f.flate2_0_2_20.libz-sys or false) ||
+      (f.flate2_0_2_20.zlib or false) ||
+      (flate2_0_2_20.zlib or false);
+    flate2_0_2_20.miniz-sys =
+      (f.flate2_0_2_20.miniz-sys or false) ||
+      (f.flate2_0_2_20.default or false) ||
+      (flate2_0_2_20.default or false);
+    flate2_0_2_20.tokio-io =
+      (f.flate2_0_2_20.tokio-io or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    libc_0_2_32.default = true;
+    miniz_sys_0_1_10.default = true;
+  }) [ libc_0_2_32_features miniz_sys_0_1_10_features ];
+  fuchsia_zircon_0_2_1 = { features?(fuchsia_zircon_0_2_1_features {}) }: fuchsia_zircon_0_2_1_ {
+    dependencies = mapFeatures features ([ fuchsia_zircon_sys_0_2_0 ]);
+  };
+  fuchsia_zircon_0_2_1_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_2_1.default = (f.fuchsia_zircon_0_2_1.default or true);
+    fuchsia_zircon_sys_0_2_0.default = true;
+  }) [ fuchsia_zircon_sys_0_2_0_features ];
+  fuchsia_zircon_sys_0_2_0 = { features?(fuchsia_zircon_sys_0_2_0_features {}) }: fuchsia_zircon_sys_0_2_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 ]);
+  };
+  fuchsia_zircon_sys_0_2_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    fuchsia_zircon_sys_0_2_0.default = (f.fuchsia_zircon_sys_0_2_0.default or true);
+  }) [ bitflags_0_7_0_features ];
+  futures_0_1_16 = { features?(futures_0_1_16_features {}) }: futures_0_1_16_ {
+    features = mkFeatures (features.futures_0_1_16 or {});
+  };
+  futures_0_1_16_features = f: updateFeatures f (rec {
+    futures_0_1_16.default = (f.futures_0_1_16.default or true);
+    futures_0_1_16.use_std =
+      (f.futures_0_1_16.use_std or false) ||
+      (f.futures_0_1_16.default or false) ||
+      (futures_0_1_16.default or false);
+    futures_0_1_16.with-deprecated =
+      (f.futures_0_1_16.with-deprecated or false) ||
+      (f.futures_0_1_16.default or false) ||
+      (futures_0_1_16.default or false);
+  }) [];
+  gif_0_9_2 = { features?(gif_0_9_2_features {}) }: gif_0_9_2_ {
+    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
+    features = mkFeatures (features.gif_0_9_2 or {});
+  };
+  gif_0_9_2_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = true;
+    gif_0_9_2.default = (f.gif_0_9_2.default or true);
+    gif_0_9_2.libc =
+      (f.gif_0_9_2.libc or false) ||
+      (f.gif_0_9_2.c_api or false) ||
+      (gif_0_9_2.c_api or false);
+    gif_0_9_2.raii_no_panic =
+      (f.gif_0_9_2.raii_no_panic or false) ||
+      (f.gif_0_9_2.default or false) ||
+      (gif_0_9_2.default or false);
+    lzw_0_10_0.default = true;
+  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
+  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
+  glob_0_2_11_features = f: updateFeatures f (rec {
+    glob_0_2_11.default = (f.glob_0_2_11.default or true);
+  }) [];
+  image_0_10_4 = { features?(image_0_10_4_features {}) }: image_0_10_4_ {
+    dependencies = mapFeatures features ([ byteorder_0_5_3 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_34 num_rational_0_1_39 num_traits_0_1_40 ]
+      ++ (if features.image_0_10_4.gif or false then [ gif_0_9_2 ] else [])
+      ++ (if features.image_0_10_4.jpeg-decoder or false then [ jpeg_decoder_0_1_13 ] else [])
+      ++ (if features.image_0_10_4.png or false then [ png_0_5_2 ] else [])
+      ++ (if features.image_0_10_4.scoped_threadpool or false then [ scoped_threadpool_0_1_8 ] else []));
+    features = mkFeatures (features.image_0_10_4 or {});
+  };
+  image_0_10_4_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = true;
+    enum_primitive_0_1_1.default = true;
+    gif_0_9_2.default = true;
+    glob_0_2_11.default = true;
+    image_0_10_4.bmp =
+      (f.image_0_10_4.bmp or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false) ||
+      (f.image_0_10_4.ico or false) ||
+      (image_0_10_4.ico or false);
+    image_0_10_4.default = (f.image_0_10_4.default or true);
+    image_0_10_4.gif =
+      (f.image_0_10_4.gif or false) ||
+      (f.image_0_10_4.gif_codec or false) ||
+      (image_0_10_4.gif_codec or false);
+    image_0_10_4.gif_codec =
+      (f.image_0_10_4.gif_codec or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.hdr =
+      (f.image_0_10_4.hdr or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.ico =
+      (f.image_0_10_4.ico or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.jpeg =
+      (f.image_0_10_4.jpeg or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.jpeg-decoder =
+      (f.image_0_10_4.jpeg-decoder or false) ||
+      (f.image_0_10_4.jpeg or false) ||
+      (image_0_10_4.jpeg or false);
+    image_0_10_4.png =
+      (f.image_0_10_4.png or false) ||
+      (f.image_0_10_4.png_codec or false) ||
+      (image_0_10_4.png_codec or false);
+    image_0_10_4.png_codec =
+      (f.image_0_10_4.png_codec or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false) ||
+      (f.image_0_10_4.ico or false) ||
+      (image_0_10_4.ico or false);
+    image_0_10_4.ppm =
+      (f.image_0_10_4.ppm or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.scoped_threadpool =
+      (f.image_0_10_4.scoped_threadpool or false) ||
+      (f.image_0_10_4.hdr or false) ||
+      (image_0_10_4.hdr or false);
+    image_0_10_4.tga =
+      (f.image_0_10_4.tga or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.tiff =
+      (f.image_0_10_4.tiff or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.webp =
+      (f.image_0_10_4.webp or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    jpeg_decoder_0_1_13.default = true;
+    num_iter_0_1_34.default = true;
+    num_rational_0_1_39.default = true;
+    num_traits_0_1_40.default = true;
+    png_0_5_2.default = true;
+    scoped_threadpool_0_1_8.default = true;
+  }) [ byteorder_0_5_3_features enum_primitive_0_1_1_features gif_0_9_2_features glob_0_2_11_features jpeg_decoder_0_1_13_features num_iter_0_1_34_features num_rational_0_1_39_features num_traits_0_1_40_features png_0_5_2_features scoped_threadpool_0_1_8_features ];
+  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
+    features = mkFeatures (features.inflate_0_1_1 or {});
+  };
+  inflate_0_1_1_features = f: updateFeatures f (rec {
+    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
+  }) [];
+  itoa_0_3_4 = { features?(itoa_0_3_4_features {}) }: itoa_0_3_4_ {
+    features = mkFeatures (features.itoa_0_3_4 or {});
+  };
+  itoa_0_3_4_features = f: updateFeatures f (rec {
+    itoa_0_3_4.default = (f.itoa_0_3_4.default or true);
+  }) [];
+  jpeg_decoder_0_1_13 = { features?(jpeg_decoder_0_1_13_features {}) }: jpeg_decoder_0_1_13_ {
+    dependencies = mapFeatures features ([ byteorder_1_1_0 ]
+      ++ (if features.jpeg_decoder_0_1_13.rayon or false then [ rayon_0_8_2 ] else []));
+    features = mkFeatures (features.jpeg_decoder_0_1_13 or {});
+  };
+  jpeg_decoder_0_1_13_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = true;
+    jpeg_decoder_0_1_13.default = (f.jpeg_decoder_0_1_13.default or true);
+    jpeg_decoder_0_1_13.rayon =
+      (f.jpeg_decoder_0_1_13.rayon or false) ||
+      (f.jpeg_decoder_0_1_13.default or false) ||
+      (jpeg_decoder_0_1_13.default or false);
+    rayon_0_8_2.default = true;
+  }) [ byteorder_1_1_0_features rayon_0_8_2_features ];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  lazy_static_0_2_9 = { features?(lazy_static_0_2_9_features {}) }: lazy_static_0_2_9_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_0_2_9 or {});
+  };
+  lazy_static_0_2_9_features = f: updateFeatures f (rec {
+    lazy_static_0_2_9.default = (f.lazy_static_0_2_9.default or true);
+    lazy_static_0_2_9.nightly =
+      (f.lazy_static_0_2_9.nightly or false) ||
+      (f.lazy_static_0_2_9.spin_no_std or false) ||
+      (lazy_static_0_2_9.spin_no_std or false);
+    lazy_static_0_2_9.spin =
+      (f.lazy_static_0_2_9.spin or false) ||
+      (f.lazy_static_0_2_9.spin_no_std or false) ||
+      (lazy_static_0_2_9.spin_no_std or false);
+  }) [];
+  libc_0_2_32 = { features?(libc_0_2_32_features {}) }: libc_0_2_32_ {
+    features = mkFeatures (features.libc_0_2_32 or {});
+  };
+  libc_0_2_32_features = f: updateFeatures f (rec {
+    libc_0_2_32.default = (f.libc_0_2_32.default or true);
+    libc_0_2_32.use_std =
+      (f.libc_0_2_32.use_std or false) ||
+      (f.libc_0_2_32.default or false) ||
+      (libc_0_2_32.default or false);
+  }) [];
+  libloading_0_3_4 = { features?(libloading_0_3_4_features {}) }: libloading_0_3_4_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_9 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ target_build_utils_0_3_1 ]);
+  };
+  libloading_0_3_4_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_0_2_9.default = true;
+    libloading_0_3_4.default = (f.libloading_0_3_4.default or true);
+    target_build_utils_0_3_1.default = true;
+    winapi_0_2_8.default = true;
+  }) [ lazy_static_0_2_9_features target_build_utils_0_3_1_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
+    features = mkFeatures (features.lzw_0_10_0 or {});
+  };
+  lzw_0_10_0_features = f: updateFeatures f (rec {
+    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
+    lzw_0_10_0.raii_no_panic =
+      (f.lzw_0_10_0.raii_no_panic or false) ||
+      (f.lzw_0_10_0.default or false) ||
+      (lzw_0_10_0.default or false);
+  }) [];
+  miniz_sys_0_1_10 = { features?(miniz_sys_0_1_10_features {}) }: miniz_sys_0_1_10_ {
+    dependencies = mapFeatures features ([ libc_0_2_32 ]);
+    buildDependencies = mapFeatures features ([ cc_1_0_0 ]);
+  };
+  miniz_sys_0_1_10_features = f: updateFeatures f (rec {
+    cc_1_0_0.default = true;
+    libc_0_2_32.default = true;
+    miniz_sys_0_1_10.default = (f.miniz_sys_0_1_10.default or true);
+  }) [ libc_0_2_32_features cc_1_0_0_features ];
+  num_bigint_0_1_40 = { features?(num_bigint_0_1_40_features {}) }: num_bigint_0_1_40_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]
+      ++ (if features.num_bigint_0_1_40.rand or false then [ rand_0_3_17 ] else [])
+      ++ (if features.num_bigint_0_1_40.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.num_bigint_0_1_40 or {});
+  };
+  num_bigint_0_1_40_features = f: updateFeatures f (rec {
+    num_bigint_0_1_40.default = (f.num_bigint_0_1_40.default or true);
+    num_bigint_0_1_40.rand =
+      (f.num_bigint_0_1_40.rand or false) ||
+      (f.num_bigint_0_1_40.default or false) ||
+      (num_bigint_0_1_40.default or false);
+    num_bigint_0_1_40.rustc-serialize =
+      (f.num_bigint_0_1_40.rustc-serialize or false) ||
+      (f.num_bigint_0_1_40.default or false) ||
+      (num_bigint_0_1_40.default or false);
+    num_integer_0_1_35.default = true;
+    num_traits_0_1_40.default = true;
+    rand_0_3_17.default = true;
+    rustc_serialize_0_3_24.default = true;
+  }) [ num_integer_0_1_35_features num_traits_0_1_40_features rand_0_3_17_features rustc_serialize_0_3_24_features ];
+  num_integer_0_1_35 = { features?(num_integer_0_1_35_features {}) }: num_integer_0_1_35_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_40 ]);
+  };
+  num_integer_0_1_35_features = f: updateFeatures f (rec {
+    num_integer_0_1_35.default = (f.num_integer_0_1_35.default or true);
+    num_traits_0_1_40.default = true;
+  }) [ num_traits_0_1_40_features ];
+  num_iter_0_1_34 = { features?(num_iter_0_1_34_features {}) }: num_iter_0_1_34_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]);
+  };
+  num_iter_0_1_34_features = f: updateFeatures f (rec {
+    num_integer_0_1_35.default = true;
+    num_iter_0_1_34.default = (f.num_iter_0_1_34.default or true);
+    num_traits_0_1_40.default = true;
+  }) [ num_integer_0_1_35_features num_traits_0_1_40_features ];
+  num_rational_0_1_39 = { features?(num_rational_0_1_39_features {}) }: num_rational_0_1_39_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_40 ]
+      ++ (if features.num_rational_0_1_39.num-bigint or false then [ num_bigint_0_1_40 ] else [])
+      ++ (if features.num_rational_0_1_39.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.num_rational_0_1_39 or {});
+  };
+  num_rational_0_1_39_features = f: updateFeatures f (rec {
+    num_bigint_0_1_40.default = true;
+    num_integer_0_1_35.default = true;
+    num_rational_0_1_39.bigint =
+      (f.num_rational_0_1_39.bigint or false) ||
+      (f.num_rational_0_1_39.default or false) ||
+      (num_rational_0_1_39.default or false);
+    num_rational_0_1_39.default = (f.num_rational_0_1_39.default or true);
+    num_rational_0_1_39.num-bigint =
+      (f.num_rational_0_1_39.num-bigint or false) ||
+      (f.num_rational_0_1_39.bigint or false) ||
+      (num_rational_0_1_39.bigint or false);
+    num_rational_0_1_39.rustc-serialize =
+      (f.num_rational_0_1_39.rustc-serialize or false) ||
+      (f.num_rational_0_1_39.default or false) ||
+      (num_rational_0_1_39.default or false);
+    num_traits_0_1_40.default = true;
+    rustc_serialize_0_3_24.default = true;
+  }) [ num_bigint_0_1_40_features num_integer_0_1_35_features num_traits_0_1_40_features rustc_serialize_0_3_24_features ];
+  num_traits_0_1_40 = { features?(num_traits_0_1_40_features {}) }: num_traits_0_1_40_ {};
+  num_traits_0_1_40_features = f: updateFeatures f (rec {
+    num_traits_0_1_40.default = (f.num_traits_0_1_40.default or true);
+  }) [];
+  num_cpus_1_7_0 = { features?(num_cpus_1_7_0_features {}) }: num_cpus_1_7_0_ {
+    dependencies = mapFeatures features ([ libc_0_2_32 ]);
+  };
+  num_cpus_1_7_0_features = f: updateFeatures f (rec {
+    libc_0_2_32.default = true;
+    num_cpus_1_7_0.default = (f.num_cpus_1_7_0.default or true);
+  }) [ libc_0_2_32_features ];
+  phf_0_7_21 = { features?(phf_0_7_21_features {}) }: phf_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 ]);
+    features = mkFeatures (features.phf_0_7_21 or {});
+  };
+  phf_0_7_21_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = (f.phf_0_7_21.default or true);
+    phf_shared_0_7_21.core =
+      (f.phf_shared_0_7_21.core or false) ||
+      (phf_0_7_21.core or false) ||
+      (f.phf_0_7_21.core or false);
+    phf_shared_0_7_21.default = true;
+    phf_shared_0_7_21.unicase =
+      (f.phf_shared_0_7_21.unicase or false) ||
+      (phf_0_7_21.unicase or false) ||
+      (f.phf_0_7_21.unicase or false);
+  }) [ phf_shared_0_7_21_features ];
+  phf_codegen_0_7_21 = { features?(phf_codegen_0_7_21_features {}) }: phf_codegen_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_generator_0_7_21 phf_shared_0_7_21 ]);
+  };
+  phf_codegen_0_7_21_features = f: updateFeatures f (rec {
+    phf_codegen_0_7_21.default = (f.phf_codegen_0_7_21.default or true);
+    phf_generator_0_7_21.default = true;
+    phf_shared_0_7_21.default = true;
+  }) [ phf_generator_0_7_21_features phf_shared_0_7_21_features ];
+  phf_generator_0_7_21 = { features?(phf_generator_0_7_21_features {}) }: phf_generator_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 rand_0_3_17 ]);
+  };
+  phf_generator_0_7_21_features = f: updateFeatures f (rec {
+    phf_generator_0_7_21.default = (f.phf_generator_0_7_21.default or true);
+    phf_shared_0_7_21.default = true;
+    rand_0_3_17.default = true;
+  }) [ phf_shared_0_7_21_features rand_0_3_17_features ];
+  phf_shared_0_7_21 = { features?(phf_shared_0_7_21_features {}) }: phf_shared_0_7_21_ {
+    dependencies = mapFeatures features ([ siphasher_0_2_2 ]);
+    features = mkFeatures (features.phf_shared_0_7_21 or {});
+  };
+  phf_shared_0_7_21_features = f: updateFeatures f (rec {
+    phf_shared_0_7_21.default = (f.phf_shared_0_7_21.default or true);
+    siphasher_0_2_2.default = true;
+  }) [ siphasher_0_2_2_features ];
+  png_0_5_2 = { features?(png_0_5_2_features {}) }: png_0_5_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_34 ]
+      ++ (if features.png_0_5_2.flate2 or false then [ flate2_0_2_20 ] else []));
+    features = mkFeatures (features.png_0_5_2 or {});
+  };
+  png_0_5_2_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    flate2_0_2_20.default = true;
+    inflate_0_1_1.default = true;
+    num_iter_0_1_34.default = true;
+    png_0_5_2.default = (f.png_0_5_2.default or true);
+    png_0_5_2.flate2 =
+      (f.png_0_5_2.flate2 or false) ||
+      (f.png_0_5_2.png-encoding or false) ||
+      (png_0_5_2.png-encoding or false);
+    png_0_5_2.png-encoding =
+      (f.png_0_5_2.png-encoding or false) ||
+      (f.png_0_5_2.default or false) ||
+      (png_0_5_2.default or false);
+  }) [ bitflags_0_7_0_features flate2_0_2_20_features inflate_0_1_1_features num_iter_0_1_34_features ];
+  rand_0_3_17 = { features?(rand_0_3_17_features {}) }: rand_0_3_17_ {
+    dependencies = mapFeatures features ([ libc_0_2_32 ])
+      ++ (if kernel == "fuchsia" then mapFeatures features ([ fuchsia_zircon_0_2_1 ]) else []);
+    features = mkFeatures (features.rand_0_3_17 or {});
+  };
+  rand_0_3_17_features = f: updateFeatures f (rec {
+    fuchsia_zircon_0_2_1.default = true;
+    libc_0_2_32.default = true;
+    rand_0_3_17.default = (f.rand_0_3_17.default or true);
+    rand_0_3_17.i128_support =
+      (f.rand_0_3_17.i128_support or false) ||
+      (f.rand_0_3_17.nightly or false) ||
+      (rand_0_3_17.nightly or false);
+  }) [ libc_0_2_32_features fuchsia_zircon_0_2_1_features ];
+  rayon_0_8_2 = { features?(rayon_0_8_2_features {}) }: rayon_0_8_2_ {
+    dependencies = mapFeatures features ([ rayon_core_1_2_1 ]);
+  };
+  rayon_0_8_2_features = f: updateFeatures f (rec {
+    rayon_0_8_2.default = (f.rayon_0_8_2.default or true);
+    rayon_core_1_2_1.default = true;
+  }) [ rayon_core_1_2_1_features ];
+  rayon_core_1_2_1 = { features?(rayon_core_1_2_1_features {}) }: rayon_core_1_2_1_ {
+    dependencies = mapFeatures features ([ coco_0_1_1 futures_0_1_16 lazy_static_0_2_9 libc_0_2_32 num_cpus_1_7_0 rand_0_3_17 ]);
+  };
+  rayon_core_1_2_1_features = f: updateFeatures f (rec {
+    coco_0_1_1.default = true;
+    futures_0_1_16.default = true;
+    lazy_static_0_2_9.default = true;
+    libc_0_2_32.default = true;
+    num_cpus_1_7_0.default = true;
+    rand_0_3_17.default = true;
+    rayon_core_1_2_1.default = (f.rayon_core_1_2_1.default or true);
+  }) [ coco_0_1_1_features futures_0_1_16_features lazy_static_0_2_9_features libc_0_2_32_features num_cpus_1_7_0_features rand_0_3_17_features ];
+  redox_syscall_0_1_31 = { features?(redox_syscall_0_1_31_features {}) }: redox_syscall_0_1_31_ {};
+  redox_syscall_0_1_31_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_31.default = (f.redox_syscall_0_1_31.default or true);
+  }) [];
+  redox_termios_0_1_1 = { features?(redox_termios_0_1_1_features {}) }: redox_termios_0_1_1_ {
+    dependencies = mapFeatures features ([ redox_syscall_0_1_31 ]);
+  };
+  redox_termios_0_1_1_features = f: updateFeatures f (rec {
+    redox_syscall_0_1_31.default = true;
+    redox_termios_0_1_1.default = (f.redox_termios_0_1_1.default or true);
+  }) [ redox_syscall_0_1_31_features ];
+  rustc_serialize_0_3_24 = { features?(rustc_serialize_0_3_24_features {}) }: rustc_serialize_0_3_24_ {};
+  rustc_serialize_0_3_24_features = f: updateFeatures f (rec {
+    rustc_serialize_0_3_24.default = (f.rustc_serialize_0_3_24.default or true);
+  }) [];
+  scoped_threadpool_0_1_8 = { features?(scoped_threadpool_0_1_8_features {}) }: scoped_threadpool_0_1_8_ {
+    features = mkFeatures (features.scoped_threadpool_0_1_8 or {});
+  };
+  scoped_threadpool_0_1_8_features = f: updateFeatures f (rec {
+    scoped_threadpool_0_1_8.default = (f.scoped_threadpool_0_1_8.default or true);
+  }) [];
+  scopeguard_0_3_2 = { features?(scopeguard_0_3_2_features {}) }: scopeguard_0_3_2_ {
+    features = mkFeatures (features.scopeguard_0_3_2 or {});
+  };
+  scopeguard_0_3_2_features = f: updateFeatures f (rec {
+    scopeguard_0_3_2.default = (f.scopeguard_0_3_2.default or true);
+    scopeguard_0_3_2.use_std =
+      (f.scopeguard_0_3_2.use_std or false) ||
+      (f.scopeguard_0_3_2.default or false) ||
+      (scopeguard_0_3_2.default or false);
+  }) [];
+  serde_0_9_15 = { features?(serde_0_9_15_features {}) }: serde_0_9_15_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_0_9_15 or {});
+  };
+  serde_0_9_15_features = f: updateFeatures f (rec {
+    serde_0_9_15.alloc =
+      (f.serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.collections or false) ||
+      (serde_0_9_15.collections or false);
+    serde_0_9_15.default = (f.serde_0_9_15.default or true);
+    serde_0_9_15.serde_derive =
+      (f.serde_0_9_15.serde_derive or false) ||
+      (f.serde_0_9_15.derive or false) ||
+      (serde_0_9_15.derive or false) ||
+      (f.serde_0_9_15.playground or false) ||
+      (serde_0_9_15.playground or false);
+    serde_0_9_15.std =
+      (f.serde_0_9_15.std or false) ||
+      (f.serde_0_9_15.default or false) ||
+      (serde_0_9_15.default or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+    serde_0_9_15.unstable =
+      (f.serde_0_9_15.unstable or false) ||
+      (f.serde_0_9_15.alloc or false) ||
+      (serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+  }) [];
+  serde_json_0_9_10 = { features?(serde_json_0_9_10_features {}) }: serde_json_0_9_10_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_2 itoa_0_3_4 num_traits_0_1_40 serde_0_9_15 ]);
+    features = mkFeatures (features.serde_json_0_9_10 or {});
+  };
+  serde_json_0_9_10_features = f: updateFeatures f (rec {
+    dtoa_0_4_2.default = true;
+    itoa_0_3_4.default = true;
+    num_traits_0_1_40.default = true;
+    serde_0_9_15.default = true;
+    serde_json_0_9_10.default = (f.serde_json_0_9_10.default or true);
+    serde_json_0_9_10.linked-hash-map =
+      (f.serde_json_0_9_10.linked-hash-map or false) ||
+      (f.serde_json_0_9_10.preserve_order or false) ||
+      (serde_json_0_9_10.preserve_order or false);
+  }) [ dtoa_0_4_2_features itoa_0_3_4_features num_traits_0_1_40_features serde_0_9_15_features ];
+  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
+    dependencies = mapFeatures features ([]);
+  };
+  siphasher_0_2_2_features = f: updateFeatures f (rec {
+    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
+  }) [];
+  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
+  strsim_0_6_0_features = f: updateFeatures f (rec {
+    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
+  }) [];
+  target_build_utils_0_3_1 = { features?(target_build_utils_0_3_1_features {}) }: target_build_utils_0_3_1_ {
+    dependencies = mapFeatures features ([ phf_0_7_21 ]
+      ++ (if features.target_build_utils_0_3_1.serde_json or false then [ serde_json_0_9_10 ] else []));
+    buildDependencies = mapFeatures features ([ phf_codegen_0_7_21 ]);
+    features = mkFeatures (features.target_build_utils_0_3_1 or {});
+  };
+  target_build_utils_0_3_1_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = true;
+    phf_codegen_0_7_21.default = true;
+    serde_json_0_9_10.default = true;
+    target_build_utils_0_3_1.default = (f.target_build_utils_0_3_1.default or true);
+    target_build_utils_0_3_1.serde_json =
+      (f.target_build_utils_0_3_1.serde_json or false) ||
+      (f.target_build_utils_0_3_1.default or false) ||
+      (target_build_utils_0_3_1.default or false);
+  }) [ phf_0_7_21_features serde_json_0_9_10_features phf_codegen_0_7_21_features ];
+  tempfile_2_2_0 = { features?(tempfile_2_2_0_features {}) }: tempfile_2_2_0_ {
+    dependencies = mapFeatures features ([ rand_0_3_17 ])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_31 ]) else [])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_32 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  tempfile_2_2_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_32.default = true;
+    rand_0_3_17.default = true;
+    redox_syscall_0_1_31.default = true;
+    tempfile_2_2_0.default = (f.tempfile_2_2_0.default or true);
+    winapi_0_2_8.default = true;
+  }) [ rand_0_3_17_features redox_syscall_0_1_31_features libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  term_size_0_3_0 = { features?(term_size_0_3_0_features {}) }: term_size_0_3_0_ {
+    dependencies = mapFeatures features ([])
+      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_32 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    features = mkFeatures (features.term_size_0_3_0 or {});
+  };
+  term_size_0_3_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_32.default = true;
+    term_size_0_3_0.clippy =
+      (f.term_size_0_3_0.clippy or false) ||
+      (f.term_size_0_3_0.lints or false) ||
+      (term_size_0_3_0.lints or false);
+    term_size_0_3_0.default = (f.term_size_0_3_0.default or true);
+    term_size_0_3_0.lints =
+      (f.term_size_0_3_0.lints or false) ||
+      (f.term_size_0_3_0.travis or false) ||
+      (term_size_0_3_0.travis or false);
+    term_size_0_3_0.nightly =
+      (f.term_size_0_3_0.nightly or false) ||
+      (f.term_size_0_3_0.lints or false) ||
+      (term_size_0_3_0.lints or false) ||
+      (f.term_size_0_3_0.travis or false) ||
+      (term_size_0_3_0.travis or false);
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_32_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  termion_1_5_1 = { features?(termion_1_5_1_features {}) }: termion_1_5_1_ {
+    dependencies = (if !(kernel == "redox") then mapFeatures features ([ libc_0_2_32 ]) else [])
+      ++ (if kernel == "redox" then mapFeatures features ([ redox_syscall_0_1_31 redox_termios_0_1_1 ]) else []);
+  };
+  termion_1_5_1_features = f: updateFeatures f (rec {
+    libc_0_2_32.default = true;
+    redox_syscall_0_1_31.default = true;
+    redox_termios_0_1_1.default = true;
+    termion_1_5_1.default = (f.termion_1_5_1.default or true);
+  }) [ libc_0_2_32_features redox_syscall_0_1_31_features redox_termios_0_1_1_features ];
+  textwrap_0_8_0 = { features?(textwrap_0_8_0_features {}) }: textwrap_0_8_0_ {
+    dependencies = mapFeatures features ([ term_size_0_3_0 unicode_width_0_1_4 ]);
+  };
+  textwrap_0_8_0_features = f: updateFeatures f (rec {
+    term_size_0_3_0.default = true;
+    textwrap_0_8_0.default = (f.textwrap_0_8_0.default or true);
+    unicode_width_0_1_4.default = true;
+  }) [ term_size_0_3_0_features unicode_width_0_1_4_features ];
+  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
+    features = mkFeatures (features.unicode_width_0_1_4 or {});
+  };
+  unicode_width_0_1_4_features = f: updateFeatures f (rec {
+    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
+  }) [];
+  vec_map_0_8_0 = { features?(vec_map_0_8_0_features {}) }: vec_map_0_8_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.vec_map_0_8_0 or {});
+  };
+  vec_map_0_8_0_features = f: updateFeatures f (rec {
+    vec_map_0_8_0.default = (f.vec_map_0_8_0.default or true);
+    vec_map_0_8_0.serde =
+      (f.vec_map_0_8_0.serde or false) ||
+      (f.vec_map_0_8_0.eders or false) ||
+      (vec_map_0_8_0.eders or false);
+    vec_map_0_8_0.serde_derive =
+      (f.vec_map_0_8_0.serde_derive or false) ||
+      (f.vec_map_0_8_0.eders or false) ||
+      (vec_map_0_8_0.eders or false);
+  }) [];
+  way_cooler_client_helpers_0_1_0 = { features?(way_cooler_client_helpers_0_1_0_features {}) }: way_cooler_client_helpers_0_1_0_ {
+    dependencies = mapFeatures features ([ wayland_client_0_9_10 wayland_sys_0_9_10 ]);
+  };
+  way_cooler_client_helpers_0_1_0_features = f: updateFeatures f (rec {
+    way_cooler_client_helpers_0_1_0.default = (f.way_cooler_client_helpers_0_1_0.default or true);
+    wayland_client_0_9_10.cursor = true;
+    wayland_client_0_9_10.default = true;
+    wayland_client_0_9_10.dlopen = true;
+    wayland_sys_0_9_10.client = true;
+    wayland_sys_0_9_10.default = true;
+    wayland_sys_0_9_10.dlopen = true;
+  }) [ wayland_client_0_9_10_features wayland_sys_0_9_10_features ];
+  wayland_client_0_9_10 = { features?(wayland_client_0_9_10_features {}) }: wayland_client_0_9_10_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 libc_0_2_32 wayland_sys_0_9_10 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_10 ]);
+    features = mkFeatures (features.wayland_client_0_9_10 or {});
+  };
+  wayland_client_0_9_10_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    libc_0_2_32.default = true;
+    wayland_client_0_9_10.cursor =
+      (f.wayland_client_0_9_10.cursor or false) ||
+      (f.wayland_client_0_9_10.default or false) ||
+      (wayland_client_0_9_10.default or false);
+    wayland_client_0_9_10.default = (f.wayland_client_0_9_10.default or true);
+    wayland_client_0_9_10.egl =
+      (f.wayland_client_0_9_10.egl or false) ||
+      (f.wayland_client_0_9_10.default or false) ||
+      (wayland_client_0_9_10.default or false);
+    wayland_scanner_0_9_10.default = true;
+    wayland_sys_0_9_10.client = true;
+    wayland_sys_0_9_10.cursor =
+      (f.wayland_sys_0_9_10.cursor or false) ||
+      (wayland_client_0_9_10.cursor or false) ||
+      (f.wayland_client_0_9_10.cursor or false);
+    wayland_sys_0_9_10.default = true;
+    wayland_sys_0_9_10.dlopen =
+      (f.wayland_sys_0_9_10.dlopen or false) ||
+      (wayland_client_0_9_10.dlopen or false) ||
+      (f.wayland_client_0_9_10.dlopen or false);
+    wayland_sys_0_9_10.egl =
+      (f.wayland_sys_0_9_10.egl or false) ||
+      (wayland_client_0_9_10.egl or false) ||
+      (f.wayland_client_0_9_10.egl or false);
+  }) [ bitflags_0_9_1_features libc_0_2_32_features wayland_sys_0_9_10_features wayland_scanner_0_9_10_features ];
+  wayland_scanner_0_9_10 = { features?(wayland_scanner_0_9_10_features {}) }: wayland_scanner_0_9_10_ {
+    dependencies = mapFeatures features ([ xml_rs_0_6_1 ]);
+  };
+  wayland_scanner_0_9_10_features = f: updateFeatures f (rec {
+    wayland_scanner_0_9_10.default = (f.wayland_scanner_0_9_10.default or true);
+    xml_rs_0_6_1.default = true;
+  }) [ xml_rs_0_6_1_features ];
+  wayland_sys_0_9_10 = { features?(wayland_sys_0_9_10_features {}) }: wayland_sys_0_9_10_ {
+    dependencies = mapFeatures features ([ dlib_0_3_1 ]
+      ++ (if features.wayland_sys_0_9_10.lazy_static or false then [ lazy_static_0_2_9 ] else []));
+    features = mkFeatures (features.wayland_sys_0_9_10 or {});
+  };
+  wayland_sys_0_9_10_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = true;
+    dlib_0_3_1.dlopen =
+      (f.dlib_0_3_1.dlopen or false) ||
+      (wayland_sys_0_9_10.dlopen or false) ||
+      (f.wayland_sys_0_9_10.dlopen or false);
+    lazy_static_0_2_9.default = true;
+    wayland_sys_0_9_10.default = (f.wayland_sys_0_9_10.default or true);
+    wayland_sys_0_9_10.lazy_static =
+      (f.wayland_sys_0_9_10.lazy_static or false) ||
+      (f.wayland_sys_0_9_10.dlopen or false) ||
+      (wayland_sys_0_9_10.dlopen or false);
+    wayland_sys_0_9_10.libc =
+      (f.wayland_sys_0_9_10.libc or false) ||
+      (f.wayland_sys_0_9_10.server or false) ||
+      (wayland_sys_0_9_10.server or false);
+  }) [ dlib_0_3_1_features lazy_static_0_2_9_features ];
+  wc_bg_0_3_0 = { features?(wc_bg_0_3_0_features {}) }: wc_bg_0_3_0_ {
+    dependencies = mapFeatures features ([ byteorder_0_5_3 clap_2_26_2 image_0_10_4 tempfile_2_2_0 way_cooler_client_helpers_0_1_0 wayland_client_0_9_10 wayland_sys_0_9_10 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_10 ]);
+  };
+  wc_bg_0_3_0_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = true;
+    clap_2_26_2.default = true;
+    image_0_10_4.default = true;
+    tempfile_2_2_0.default = true;
+    way_cooler_client_helpers_0_1_0.default = true;
+    wayland_client_0_9_10.cursor = true;
+    wayland_client_0_9_10.default = true;
+    wayland_client_0_9_10.dlopen = true;
+    wayland_scanner_0_9_10.default = true;
+    wayland_sys_0_9_10.client = true;
+    wayland_sys_0_9_10.default = true;
+    wayland_sys_0_9_10.dlopen = true;
+    wc_bg_0_3_0.default = (f.wc_bg_0_3_0.default or true);
+  }) [ byteorder_0_5_3_features clap_2_26_2_features image_0_10_4_features tempfile_2_2_0_features way_cooler_client_helpers_0_1_0_features wayland_client_0_9_10_features wayland_sys_0_9_10_features wayland_scanner_0_9_10_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+  xml_rs_0_6_1 = { features?(xml_rs_0_6_1_features {}) }: xml_rs_0_6_1_ {
+    dependencies = mapFeatures features ([ bitflags_0_9_1 ]);
+  };
+  xml_rs_0_6_1_features = f: updateFeatures f (rec {
+    bitflags_0_9_1.default = true;
+    xml_rs_0_6_1.default = (f.xml_rs_0_6_1.default or true);
+  }) [ bitflags_0_9_1_features ];
 }
diff --git a/pkgs/applications/window-managers/way-cooler/wc-grab.nix b/pkgs/applications/window-managers/way-cooler/wc-grab.nix
index bc5d937206d..253281b6a9a 100644
--- a/pkgs/applications/window-managers/way-cooler/wc-grab.nix
+++ b/pkgs/applications/window-managers/way-cooler/wc-grab.nix
@@ -1,562 +1,801 @@
-# Generated by carnix 0.5.0: carnix -o wc-grab.nix Cargo.lock
+# Generated by carnix 0.6.5: carnix -o wc-grab.nix Cargo.lock
 { lib, buildPlatform, buildRustCrate, fetchgit }:
 let kernel = buildPlatform.parsed.kernel.name;
     abi = buildPlatform.parsed.abi.name;
-    hasFeature = feature:
-      lib.lists.any
-        (originName: feature.${originName})
-        (builtins.attrNames feature);
-
-    hasDefault = feature:
-      let defaultFeatures = builtins.attrNames (feature."default" or {}); in
-      (defaultFeatures == [])
-      || (lib.lists.any (originName: feature."default".${originName}) defaultFeatures);
-
+    include = includedFiles: src: builtins.filterSource (path: type:
+      lib.lists.any (f:
+        let p = toString (src + ("/" + f)); in
+        (path == p) || (type == "directory" && lib.strings.hasPrefix path p)
+      ) includedFiles
+    ) src;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
     mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if featureName != "" && hasFeature feat.${featureName} then
+      if feat.${featureName} or false then
         [ featureName ] ++ features
       else
         features
-    ) (if hasDefault feat then [ "default" ] else []) (builtins.attrNames feat);
-    adler32_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "adler32";
-      version = "1.0.0";
-      authors = [ "Remi Rampin <remirampin@gmail.com>" ];
-      sha256 = "0pj35a7m4apn5xjg9n63gsdj6w8iw76zg4p9znrij43xnfqp084w";
-      inherit dependencies buildDependencies features;
-    };
-    ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "ansi_term";
-      version = "0.9.0";
-      authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
-      sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
-      inherit dependencies buildDependencies features;
-    };
-    atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "atty";
-      version = "0.2.2";
-      authors = [ "softprops <d.tangren@gmail.com>" ];
-      sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.7.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.8.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1h489m0wzhng5gvvc40jgdbaf0ac3rgkka31vwinhsjmfvrqcc4v";
-      inherit dependencies buildDependencies features;
-    };
-    byteorder_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "byteorder";
-      version = "1.0.0";
-      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-      sha256 = "14pdnds4517vcpablc51vv76hvc3glnpkpbb7qdil591q7lyb0m1";
-      inherit dependencies buildDependencies features;
-    };
-    clap_2_22_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "clap";
-      version = "2.22.0";
-      authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-      sha256 = "0gdgyfh3ydpd2px4xh0i5qd6bhi2c5f43bqv9z4kla9vkmmfiavd";
-      inherit dependencies buildDependencies features;
-    };
-    color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "color_quant";
-      version = "1.0.0";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
-      inherit dependencies buildDependencies features;
-    };
-    dbus_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dbus";
-      version = "0.5.2";
-      authors = [ "David Henningsson <diwic@ubuntu.com>" ];
-      sha256 = "1ga3p2myqxbz34n2bbw4gk1ipf76mjr8r2rvrvnalwggymzfkhj7";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    deflate_0_7_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "deflate";
-      version = "0.7.5";
-      authors = [ "oyvindln <oyvindln@users.noreply.github.com>" ];
-      sha256 = "18bcmdkyshnzpkxx22b29gn55g6bk5ysy98ghjpjhxy3hky96rvy";
-      inherit dependencies buildDependencies features;
-    };
-    deque_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "deque";
-      version = "0.3.1";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" "Samuel Fredrickson <kinghajj@gmail.com>" "Linus Färnstrand <faern@faern.net>" "Amanieu d'Antras <amanieu@gmail.com>" ];
-      sha256 = "04x8i5aagxmslk350i8qszyw7kmvrqc3d99g4qi1xnfmr61y7m68";
-      inherit dependencies buildDependencies features;
-    };
-    enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "enum_primitive";
-      version = "0.1.1";
-      authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
-      sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
-      inherit dependencies buildDependencies features;
-    };
-    error_chain_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "error-chain";
-      version = "0.7.2";
-      authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
-      sha256 = "0b1r4ggdgy1djfvz2s4l5kirmfsmxd286y6wx0p9ahv2phb7inyi";
-      inherit dependencies buildDependencies features;
-    };
-    gif_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "gif";
-      version = "0.9.1";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "16s7b0rqc6gg1fcbppakm3jy2q462w3qvykcmcmifmg7q7lwsg6r";
-      inherit dependencies buildDependencies features;
-    };
-    glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "glob";
-      version = "0.2.11";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
-      inherit dependencies buildDependencies features;
-    };
-    image_0_12_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "image";
-      version = "0.12.3";
-      authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
-      sha256 = "12xdzi29vr19gz3h93c1ihyvyv9xar9sp0inrjwwvlbjvn8nn0p9";
-      libPath = "./src/lib.rs";
-      inherit dependencies buildDependencies features;
-    };
-    inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "inflate";
-      version = "0.1.1";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
-      inherit dependencies buildDependencies features;
-    };
-    jpeg_decoder_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "jpeg-decoder";
-      version = "0.1.11";
-      authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
-      sha256 = "1xm39c1cff5gkczs164371hk2gpkjpkbw63k4f8mjnpwwpn9xk4n";
-      inherit dependencies buildDependencies features;
-    };
-    kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "kernel32-sys";
-      version = "0.2.2";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-      libName = "kernel32";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    libc_0_2_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "libc";
-      version = "0.2.21";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0glj3lxwc8358cfw9pb5dd4zr9iynzj6w2ly59nshrggsw021j75";
-      inherit dependencies buildDependencies features;
-    };
-    lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "lzw";
-      version = "0.10.0";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
-      inherit dependencies buildDependencies features;
-    };
-    metadeps_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "metadeps";
-      version = "1.1.1";
-      authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
-      sha256 = "1px8v94jn4ps63gqmvgsfcqxrwjhpa9z4xr0y1lh95wn2063fsar";
-      inherit dependencies buildDependencies features;
-    };
-    num_integer_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-integer";
-      version = "0.1.33";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1rhy9lf4lhl7r8278n73mi9y55v9a71639as3v92bj2gk1x4k729";
-      inherit dependencies buildDependencies features;
-    };
-    num_iter_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-iter";
-      version = "0.1.33";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1xjzf2p2vaqwknkr4s8ka5hn6cpr5rsshnydbpkn2pvapfzdrqd3";
-      inherit dependencies buildDependencies features;
-    };
-    num_rational_0_1_36_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-rational";
-      version = "0.1.36";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0jibhs8xiap2wlv1xjwdvhyj4yrxwfisqbnfm53vjm5ldlijp87p";
-      inherit dependencies buildDependencies features;
-    };
-    num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-traits";
-      version = "0.1.37";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
-      inherit dependencies buildDependencies features;
-    };
-    num_cpus_1_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num_cpus";
-      version = "1.3.0";
-      authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
-      sha256 = "0i0zm6qh932k9b67qf7f1vsczkdim5kg9qv73m7y5hhw1i781rrb";
-      inherit dependencies buildDependencies features;
-    };
-    pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "pkg-config";
-      version = "0.3.9";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
-      inherit dependencies buildDependencies features;
-    };
-    png_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "png";
-      version = "0.6.2";
-      authors = [ "nwin <nwin@users.noreply.github.com>" ];
-      sha256 = "03i78w5jbvk9y6babfrh7h0akvg81pcyyhniilv24z5v0vh5jvjs";
-      inherit dependencies buildDependencies features;
-    };
-    rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rand";
-      version = "0.3.15";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
-      inherit dependencies buildDependencies features;
-    };
-    rayon_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rayon";
-      version = "0.6.0";
-      authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
-      sha256 = "0y2693bari5j4h46mjzkyc9lkfbnq2d1p0ldyn6sb02jn63lpw97";
-      inherit dependencies buildDependencies features;
-    };
-    scoped_threadpool_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "scoped_threadpool";
-      version = "0.1.7";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "0dg58f18i6v071640062n0vymr4h42cnj0xy8a7b80sc0mddykyk";
-      inherit dependencies buildDependencies features;
-    };
-    strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "strsim";
-      version = "0.6.0";
-      authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-      sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
-      inherit dependencies buildDependencies features;
-    };
-    term_size_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "term_size";
-      version = "0.2.3";
-      authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
-      sha256 = "16b7gq2dmz7mws4vgai7whxy4xkg4yvlhm7spz0q6jyipqfq87ci";
-      inherit dependencies buildDependencies features;
-    };
-    toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "toml";
-      version = "0.2.1";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
-      inherit dependencies buildDependencies features;
-    };
-    unicode_segmentation_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "unicode-segmentation";
-      version = "1.1.0";
-      authors = [ "kwantam <kwantam@gmail.com>" ];
-      sha256 = "10hk7wy0217jwdbp27p36skwkig5lbhk482yfzij9m87h247rry0";
-      inherit dependencies buildDependencies features;
-    };
-    unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "unicode-width";
-      version = "0.1.4";
-      authors = [ "kwantam <kwantam@gmail.com>" ];
-      sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-      inherit dependencies buildDependencies features;
-    };
-    vec_map_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "vec_map";
-      version = "0.7.0";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-      sha256 = "0jawvi83b1nm101nam0w71kdyh7cy3fr0l9qj1hfcjvzvihfk2l1";
-      inherit dependencies buildDependencies features;
-    };
-    wc_grab_0_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wc-grab";
-      version = "0.2.0";
-      authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
-      src = ./.;
-      inherit dependencies buildDependencies features;
-    };
-    winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "winapi";
-      version = "0.2.8";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-      inherit dependencies buildDependencies features;
-    };
-    winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "winapi-build";
-      version = "0.1.1";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-      libName = "build";
-      inherit dependencies buildDependencies features;
-    };
-
+    ) [] (builtins.attrNames feat);
 in
 rec {
-  adler32_1_0_0 = adler32_1_0_0_ rec {};
-  ansi_term_0_9_0 = ansi_term_0_9_0_ rec {};
-  atty_0_2_2 = atty_0_2_2_ rec {
-    dependencies = (if !(kernel == "windows") then [ libc_0_2_21 ] else [])
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-  };
-  libc_0_2_21_features."default".from_atty_0_2_2__default = true;
-  kernel32_sys_0_2_2_features."default".from_atty_0_2_2__default = true;
-  winapi_0_2_8_features."default".from_atty_0_2_2__default = true;
-  bitflags_0_7_0 = bitflags_0_7_0_ rec {};
-  bitflags_0_8_0 = bitflags_0_8_0_ rec {
-    features = mkFeatures bitflags_0_8_0_features;
-  };
-  bitflags_0_8_0_features."i128".self_unstable = hasFeature (bitflags_0_8_0_features."unstable" or {});
-  byteorder_1_0_0 = byteorder_1_0_0_ rec {
-    features = mkFeatures byteorder_1_0_0_features;
-  };
-  byteorder_1_0_0_features."std".self_default = hasDefault byteorder_1_0_0_features;
-  clap_2_22_0 = clap_2_22_0_ rec {
-    dependencies = [ ansi_term_0_9_0 atty_0_2_2 bitflags_0_8_0 strsim_0_6_0 term_size_0_2_3 unicode_segmentation_1_1_0 unicode_width_0_1_4 vec_map_0_7_0 ]
-      ++ (if lib.lists.any (x: x == "ansi_term") features then [ansi_term_0_9_0] else [])      ++ (if lib.lists.any (x: x == "atty") features then [atty_0_2_2] else [])      ++ (if lib.lists.any (x: x == "strsim") features then [strsim_0_6_0] else [])      ++ (if lib.lists.any (x: x == "term_size") features then [term_size_0_2_3] else []);
-    features = mkFeatures clap_2_22_0_features;
-  };
-  clap_2_22_0_features."".self = true;
-  clap_2_22_0_features."ansi_term".self_color = hasFeature (clap_2_22_0_features."color" or {});
-  clap_2_22_0_features."atty".self_color = hasFeature (clap_2_22_0_features."color" or {});
-  clap_2_22_0_features."suggestions".self_default = hasDefault clap_2_22_0_features;
-  clap_2_22_0_features."color".self_default = hasDefault clap_2_22_0_features;
-  clap_2_22_0_features."wrap_help".self_default = hasDefault clap_2_22_0_features;
-  clap_2_22_0_features."clippy".self_lints = hasFeature (clap_2_22_0_features."lints" or {});
-  clap_2_22_0_features."strsim".self_suggestions = hasFeature (clap_2_22_0_features."suggestions" or {});
-  clap_2_22_0_features."term_size".self_wrap_help = hasFeature (clap_2_22_0_features."wrap_help" or {});
-  clap_2_22_0_features."yaml-rust".self_yaml = hasFeature (clap_2_22_0_features."yaml" or {});
-  ansi_term_0_9_0_features."default".from_clap_2_22_0__default = true;
-  atty_0_2_2_features."default".from_clap_2_22_0__default = true;
-  bitflags_0_8_0_features."default".from_clap_2_22_0__default = true;
-  clippy_0_0_0_features."default".from_clap_2_22_0__default = true;
-  strsim_0_6_0_features."default".from_clap_2_22_0__default = true;
-  term_size_0_2_3_features."default".from_clap_2_22_0__default = true;
-  unicode_segmentation_1_1_0_features."default".from_clap_2_22_0__default = true;
-  unicode_width_0_1_4_features."default".from_clap_2_22_0__default = true;
-  vec_map_0_7_0_features."default".from_clap_2_22_0__default = true;
-  yaml_rust_0_0_0_features."default".from_clap_2_22_0__default = true;
-  color_quant_1_0_0 = color_quant_1_0_0_ rec {};
-  dbus_0_5_2 = dbus_0_5_2_ rec {
-    dependencies = [ libc_0_2_21 ];
-    buildDependencies = [ metadeps_1_1_1 ];
-    features = mkFeatures dbus_0_5_2_features;
-  };
-  dbus_0_5_2_features."".self = true;
-  libc_0_2_21_features."default".from_dbus_0_5_2__default = true;
-  deflate_0_7_5 = deflate_0_7_5_ rec {
-    dependencies = [ adler32_1_0_0 byteorder_1_0_0 ];
-  };
-  adler32_1_0_0_features."default".from_deflate_0_7_5__default = true;
-  byteorder_1_0_0_features."default".from_deflate_0_7_5__default = true;
-  deque_0_3_1 = deque_0_3_1_ rec {
-    dependencies = [ rand_0_3_15 ];
-  };
-  rand_0_3_15_features."default".from_deque_0_3_1__default = true;
-  enum_primitive_0_1_1 = enum_primitive_0_1_1_ rec {
-    dependencies = [ num_traits_0_1_37 ];
-  };
-  num_traits_0_1_37_features."default".from_enum_primitive_0_1_1__default = false;
-  error_chain_0_7_2 = error_chain_0_7_2_ rec {
-    dependencies = [];
-    features = mkFeatures error_chain_0_7_2_features;
-  };
-  error_chain_0_7_2_features."backtrace".self_default = hasDefault error_chain_0_7_2_features;
-  error_chain_0_7_2_features."example_generated".self_default = hasDefault error_chain_0_7_2_features;
-  backtrace_0_0_0_features."default".from_error_chain_0_7_2__default = true;
-  gif_0_9_1 = gif_0_9_1_ rec {
-    dependencies = [ color_quant_1_0_0 lzw_0_10_0 ];
-    features = mkFeatures gif_0_9_1_features;
-  };
-  gif_0_9_1_features."libc".self_c_api = hasFeature (gif_0_9_1_features."c_api" or {});
-  gif_0_9_1_features."raii_no_panic".self_default = hasDefault gif_0_9_1_features;
-  color_quant_1_0_0_features."default".from_gif_0_9_1__default = true;
-  libc_0_0_0_features."default".from_gif_0_9_1__default = true;
-  lzw_0_10_0_features."default".from_gif_0_9_1__default = true;
-  glob_0_2_11 = glob_0_2_11_ rec {};
-  image_0_12_3 = image_0_12_3_ rec {
-    dependencies = [ byteorder_1_0_0 enum_primitive_0_1_1 gif_0_9_1 glob_0_2_11 jpeg_decoder_0_1_11 num_iter_0_1_33 num_rational_0_1_36 num_traits_0_1_37 png_0_6_2 scoped_threadpool_0_1_7 ]
-      ++ (if lib.lists.any (x: x == "gif") features then [gif_0_9_1] else [])      ++ (if lib.lists.any (x: x == "jpeg-decoder") features then [jpeg_decoder_0_1_11] else [])      ++ (if lib.lists.any (x: x == "png") features then [png_0_6_2] else [])      ++ (if lib.lists.any (x: x == "scoped_threadpool") features then [scoped_threadpool_0_1_7] else []);
-    features = mkFeatures image_0_12_3_features;
-  };
-  image_0_12_3_features."".self = true;
-  image_0_12_3_features."gif_codec".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."jpeg".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."ico".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."png_codec".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."ppm".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."tga".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."tiff".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."webp".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."bmp".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."hdr".self_default = hasDefault image_0_12_3_features;
-  image_0_12_3_features."gif".self_gif_codec = hasFeature (image_0_12_3_features."gif_codec" or {});
-  image_0_12_3_features."scoped_threadpool".self_hdr = hasFeature (image_0_12_3_features."hdr" or {});
-  image_0_12_3_features."bmp".self_ico = hasFeature (image_0_12_3_features."ico" or {});
-  image_0_12_3_features."png_codec".self_ico = hasFeature (image_0_12_3_features."ico" or {});
-  image_0_12_3_features."jpeg-decoder".self_jpeg = hasFeature (image_0_12_3_features."jpeg" or {});
-  image_0_12_3_features."png".self_png_codec = hasFeature (image_0_12_3_features."png_codec" or {});
-  byteorder_1_0_0_features."default".from_image_0_12_3__default = true;
-  enum_primitive_0_1_1_features."default".from_image_0_12_3__default = true;
-  gif_0_9_1_features."default".from_image_0_12_3__default = true;
-  glob_0_2_11_features."default".from_image_0_12_3__default = true;
-  jpeg_decoder_0_1_11_features."default".from_image_0_12_3__default = true;
-  num_iter_0_1_33_features."default".from_image_0_12_3__default = true;
-  num_rational_0_1_36_features."default".from_image_0_12_3__default = false;
-  num_traits_0_1_37_features."default".from_image_0_12_3__default = true;
-  png_0_6_2_features."default".from_image_0_12_3__default = true;
-  scoped_threadpool_0_1_7_features."default".from_image_0_12_3__default = true;
-  inflate_0_1_1 = inflate_0_1_1_ rec {
-    features = mkFeatures inflate_0_1_1_features;
-  };
-  inflate_0_1_1_features."".self = true;
-  jpeg_decoder_0_1_11 = jpeg_decoder_0_1_11_ rec {
-    dependencies = [ byteorder_1_0_0 rayon_0_6_0 ]
-      ++ (if lib.lists.any (x: x == "rayon") features then [rayon_0_6_0] else []);
-    features = mkFeatures jpeg_decoder_0_1_11_features;
-  };
-  jpeg_decoder_0_1_11_features."".self = true;
-  jpeg_decoder_0_1_11_features."rayon".self_default = hasDefault jpeg_decoder_0_1_11_features;
-  byteorder_1_0_0_features."default".from_jpeg_decoder_0_1_11__default = true;
-  rayon_0_6_0_features."default".from_jpeg_decoder_0_1_11__default = true;
-  kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ rec {
-    dependencies = [ winapi_0_2_8 ];
-    buildDependencies = [ winapi_build_0_1_1 ];
-  };
-  winapi_0_2_8_features."default".from_kernel32_sys_0_2_2__default = true;
-  libc_0_2_21 = libc_0_2_21_ rec {
-    features = mkFeatures libc_0_2_21_features;
-  };
-  libc_0_2_21_features."use_std".self_default = hasDefault libc_0_2_21_features;
-  lzw_0_10_0 = lzw_0_10_0_ rec {
-    features = mkFeatures lzw_0_10_0_features;
-  };
-  lzw_0_10_0_features."raii_no_panic".self_default = hasDefault lzw_0_10_0_features;
-  metadeps_1_1_1 = metadeps_1_1_1_ rec {
-    dependencies = [ error_chain_0_7_2 pkg_config_0_3_9 toml_0_2_1 ];
-  };
-  error_chain_0_7_2_features."default".from_metadeps_1_1_1__default = false;
-  pkg_config_0_3_9_features."default".from_metadeps_1_1_1__default = true;
-  toml_0_2_1_features."default".from_metadeps_1_1_1__default = false;
-  num_integer_0_1_33 = num_integer_0_1_33_ rec {
-    dependencies = [ num_traits_0_1_37 ];
-  };
-  num_traits_0_1_37_features."default".from_num_integer_0_1_33__default = true;
-  num_iter_0_1_33 = num_iter_0_1_33_ rec {
-    dependencies = [ num_integer_0_1_33 num_traits_0_1_37 ];
-  };
-  num_integer_0_1_33_features."default".from_num_iter_0_1_33__default = true;
-  num_traits_0_1_37_features."default".from_num_iter_0_1_33__default = true;
-  num_rational_0_1_36 = num_rational_0_1_36_ rec {
-    dependencies = [ num_integer_0_1_33 num_traits_0_1_37 ];
-    features = mkFeatures num_rational_0_1_36_features;
-  };
-  num_rational_0_1_36_features."num-bigint".self_bigint = hasFeature (num_rational_0_1_36_features."bigint" or {});
-  num_rational_0_1_36_features."bigint".self_default = hasDefault num_rational_0_1_36_features;
-  num_rational_0_1_36_features."rustc-serialize".self_default = hasDefault num_rational_0_1_36_features;
-  num_bigint_0_0_0_features."default".from_num_rational_0_1_36__default = true;
-  num_integer_0_1_33_features."default".from_num_rational_0_1_36__default = true;
-  num_traits_0_1_37_features."default".from_num_rational_0_1_36__default = true;
-  rustc_serialize_0_0_0_features."default".from_num_rational_0_1_36__default = true;
-  serde_0_0_0_features."default".from_num_rational_0_1_36__default = true;
-  num_traits_0_1_37 = num_traits_0_1_37_ rec {};
-  num_cpus_1_3_0 = num_cpus_1_3_0_ rec {
-    dependencies = [ libc_0_2_21 ];
-  };
-  libc_0_2_21_features."default".from_num_cpus_1_3_0__default = true;
-  pkg_config_0_3_9 = pkg_config_0_3_9_ rec {};
-  png_0_6_2 = png_0_6_2_ rec {
-    dependencies = [ bitflags_0_7_0 deflate_0_7_5 inflate_0_1_1 num_iter_0_1_33 ]
-      ++ (if lib.lists.any (x: x == "deflate") features then [deflate_0_7_5] else []);
-    features = mkFeatures png_0_6_2_features;
-  };
-  png_0_6_2_features."".self = true;
-  png_0_6_2_features."png-encoding".self_default = hasDefault png_0_6_2_features;
-  png_0_6_2_features."deflate".self_png-encoding = hasFeature (png_0_6_2_features."png-encoding" or {});
-  bitflags_0_7_0_features."default".from_png_0_6_2__default = true;
-  deflate_0_7_5_features."default".from_png_0_6_2__default = true;
-  inflate_0_1_1_features."default".from_png_0_6_2__default = true;
-  num_iter_0_1_33_features."default".from_png_0_6_2__default = true;
-  rand_0_3_15 = rand_0_3_15_ rec {
-    dependencies = [ libc_0_2_21 ];
-  };
-  libc_0_2_21_features."default".from_rand_0_3_15__default = true;
-  rayon_0_6_0 = rayon_0_6_0_ rec {
-    dependencies = [ deque_0_3_1 libc_0_2_21 num_cpus_1_3_0 rand_0_3_15 ];
-    features = mkFeatures rayon_0_6_0_features;
-  };
-  rayon_0_6_0_features."".self = true;
-  deque_0_3_1_features."default".from_rayon_0_6_0__default = true;
-  libc_0_2_21_features."default".from_rayon_0_6_0__default = true;
-  num_cpus_1_3_0_features."default".from_rayon_0_6_0__default = true;
-  rand_0_3_15_features."default".from_rayon_0_6_0__default = true;
-  scoped_threadpool_0_1_7 = scoped_threadpool_0_1_7_ rec {
-    features = mkFeatures scoped_threadpool_0_1_7_features;
-  };
-  scoped_threadpool_0_1_7_features."".self = true;
-  strsim_0_6_0 = strsim_0_6_0_ rec {};
-  term_size_0_2_3 = term_size_0_2_3_ rec {
-    dependencies = []
-      ++ (if !(kernel == "windows") then [ libc_0_2_21 ] else [])
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-    features = mkFeatures term_size_0_2_3_features;
-  };
-  term_size_0_2_3_features."clippy".self_lints = hasFeature (term_size_0_2_3_features."lints" or {});
-  term_size_0_2_3_features."nightly".self_lints = hasFeature (term_size_0_2_3_features."lints" or {});
-  term_size_0_2_3_features."lints".self_travis = hasFeature (term_size_0_2_3_features."travis" or {});
-  term_size_0_2_3_features."nightly".self_travis = hasFeature (term_size_0_2_3_features."travis" or {});
-  clippy_0_0_0_features."default".from_term_size_0_2_3__default = true;
-  libc_0_2_21_features."default".from_term_size_0_2_3__default = true;
-  kernel32_sys_0_2_2_features."default".from_term_size_0_2_3__default = true;
-  winapi_0_2_8_features."default".from_term_size_0_2_3__default = true;
-  toml_0_2_1 = toml_0_2_1_ rec {
-    dependencies = [];
-  };
-  toml_0_2_1_features."rustc-serialize".self_default = hasDefault toml_0_2_1_features;
-  rustc_serialize_0_0_0_features."default".from_toml_0_2_1__default = true;
-  serde_0_0_0_features."default".from_toml_0_2_1__default = true;
-  unicode_segmentation_1_1_0 = unicode_segmentation_1_1_0_ rec {
-    features = mkFeatures unicode_segmentation_1_1_0_features;
-  };
-  unicode_segmentation_1_1_0_features."".self = true;
-  unicode_width_0_1_4 = unicode_width_0_1_4_ rec {
-    features = mkFeatures unicode_width_0_1_4_features;
-  };
-  unicode_width_0_1_4_features."".self = true;
-  vec_map_0_7_0 = vec_map_0_7_0_ rec {
-    dependencies = [];
-    features = mkFeatures vec_map_0_7_0_features;
-  };
-  vec_map_0_7_0_features."serde".self_eders = hasFeature (vec_map_0_7_0_features."eders" or {});
-  vec_map_0_7_0_features."serde_derive".self_eders = hasFeature (vec_map_0_7_0_features."eders" or {});
-  serde_0_0_0_features."default".from_vec_map_0_7_0__default = true;
-  serde_derive_0_0_0_features."default".from_vec_map_0_7_0__default = true;
-  wc_grab_0_2_0 = wc_grab_0_2_0_ rec {
-    dependencies = [ clap_2_22_0 dbus_0_5_2 image_0_12_3 ];
-  };
-  clap_2_22_0_features."default".from_wc_grab_0_2_0__default = true;
-  dbus_0_5_2_features."default".from_wc_grab_0_2_0__default = true;
-  image_0_12_3_features."default".from_wc_grab_0_2_0__default = true;
-  winapi_0_2_8 = winapi_0_2_8_ rec {};
-  winapi_build_0_1_1 = winapi_build_0_1_1_ rec {};
+  wc_grab = f: wc_grab_0_3_0 { features = wc_grab_0_3_0_features { wc_grab_0_3_0 = f; }; };
+  adler32_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "adler32";
+    version = "1.0.0";
+    authors = [ "Remi Rampin <remirampin@gmail.com>" ];
+    sha256 = "0pj35a7m4apn5xjg9n63gsdj6w8iw76zg4p9znrij43xnfqp084w";
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.9.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+    inherit dependencies buildDependencies features;
+  };
+  atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.2";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.7.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.8.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1h489m0wzhng5gvvc40jgdbaf0ac3rgkka31vwinhsjmfvrqcc4v";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "1.0.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "14pdnds4517vcpablc51vv76hvc3glnpkpbb7qdil591q7lyb0m1";
+    inherit dependencies buildDependencies features;
+  };
+  clap_2_22_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "clap";
+    version = "2.22.0";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "0gdgyfh3ydpd2px4xh0i5qd6bhi2c5f43bqv9z4kla9vkmmfiavd";
+    inherit dependencies buildDependencies features;
+  };
+  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "color_quant";
+    version = "1.0.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
+    inherit dependencies buildDependencies features;
+  };
+  dbus_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbus";
+    version = "0.5.2";
+    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+    sha256 = "1ga3p2myqxbz34n2bbw4gk1ipf76mjr8r2rvrvnalwggymzfkhj7";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  deflate_0_7_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "deflate";
+    version = "0.7.5";
+    authors = [ "oyvindln <oyvindln@users.noreply.github.com>" ];
+    sha256 = "18bcmdkyshnzpkxx22b29gn55g6bk5ysy98ghjpjhxy3hky96rvy";
+    inherit dependencies buildDependencies features;
+  };
+  deque_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "deque";
+    version = "0.3.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Samuel Fredrickson <kinghajj@gmail.com>" "Linus Färnstrand <faern@faern.net>" "Amanieu d'Antras <amanieu@gmail.com>" ];
+    sha256 = "04x8i5aagxmslk350i8qszyw7kmvrqc3d99g4qi1xnfmr61y7m68";
+    inherit dependencies buildDependencies features;
+  };
+  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "enum_primitive";
+    version = "0.1.1";
+    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
+    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
+    inherit dependencies buildDependencies features;
+  };
+  error_chain_0_7_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "error-chain";
+    version = "0.7.2";
+    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
+    sha256 = "0b1r4ggdgy1djfvz2s4l5kirmfsmxd286y6wx0p9ahv2phb7inyi";
+    inherit dependencies buildDependencies features;
+  };
+  gif_0_9_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gif";
+    version = "0.9.1";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "16s7b0rqc6gg1fcbppakm3jy2q462w3qvykcmcmifmg7q7lwsg6r";
+    inherit dependencies buildDependencies features;
+  };
+  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glob";
+    version = "0.2.11";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
+    inherit dependencies buildDependencies features;
+  };
+  image_0_12_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "image";
+    version = "0.12.3";
+    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
+    sha256 = "12xdzi29vr19gz3h93c1ihyvyv9xar9sp0inrjwwvlbjvn8nn0p9";
+    libPath = "./src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "inflate";
+    version = "0.1.1";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
+    inherit dependencies buildDependencies features;
+  };
+  jpeg_decoder_0_1_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "jpeg-decoder";
+    version = "0.1.11";
+    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
+    sha256 = "1xm39c1cff5gkczs164371hk2gpkjpkbw63k4f8mjnpwwpn9xk4n";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.21";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0glj3lxwc8358cfw9pb5dd4zr9iynzj6w2ly59nshrggsw021j75";
+    inherit dependencies buildDependencies features;
+  };
+  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lzw";
+    version = "0.10.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
+    inherit dependencies buildDependencies features;
+  };
+  metadeps_1_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "metadeps";
+    version = "1.1.1";
+    authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
+    sha256 = "1px8v94jn4ps63gqmvgsfcqxrwjhpa9z4xr0y1lh95wn2063fsar";
+    inherit dependencies buildDependencies features;
+  };
+  num_integer_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-integer";
+    version = "0.1.33";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1rhy9lf4lhl7r8278n73mi9y55v9a71639as3v92bj2gk1x4k729";
+    inherit dependencies buildDependencies features;
+  };
+  num_iter_0_1_33_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-iter";
+    version = "0.1.33";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1xjzf2p2vaqwknkr4s8ka5hn6cpr5rsshnydbpkn2pvapfzdrqd3";
+    inherit dependencies buildDependencies features;
+  };
+  num_rational_0_1_36_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-rational";
+    version = "0.1.36";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0jibhs8xiap2wlv1xjwdvhyj4yrxwfisqbnfm53vjm5ldlijp87p";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.37";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
+    inherit dependencies buildDependencies features;
+  };
+  num_cpus_1_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num_cpus";
+    version = "1.3.0";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0i0zm6qh932k9b67qf7f1vsczkdim5kg9qv73m7y5hhw1i781rrb";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
+    inherit dependencies buildDependencies features;
+  };
+  png_0_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "png";
+    version = "0.6.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "03i78w5jbvk9y6babfrh7h0akvg81pcyyhniilv24z5v0vh5jvjs";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.15";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon";
+    version = "0.6.0";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" ];
+    sha256 = "0y2693bari5j4h46mjzkyc9lkfbnq2d1p0ldyn6sb02jn63lpw97";
+    inherit dependencies buildDependencies features;
+  };
+  scoped_threadpool_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scoped_threadpool";
+    version = "0.1.7";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0dg58f18i6v071640062n0vymr4h42cnj0xy8a7b80sc0mddykyk";
+    inherit dependencies buildDependencies features;
+  };
+  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.6.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
+    inherit dependencies buildDependencies features;
+  };
+  term_size_0_2_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "term_size";
+    version = "0.2.3";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+    sha256 = "16b7gq2dmz7mws4vgai7whxy4xkg4yvlhm7spz0q6jyipqfq87ci";
+    inherit dependencies buildDependencies features;
+  };
+  toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "toml";
+    version = "0.2.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_segmentation_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-segmentation";
+    version = "1.1.0";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "10hk7wy0217jwdbp27p36skwkig5lbhk482yfzij9m87h247rry0";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.4";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
+    inherit dependencies buildDependencies features;
+  };
+  vec_map_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.7.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "0jawvi83b1nm101nam0w71kdyh7cy3fr0l9qj1hfcjvzvihfk2l1";
+    inherit dependencies buildDependencies features;
+  };
+  wc_grab_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wc-grab";
+    version = "0.3.0";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "02dkjxffzh38h3hiwfypkjv0g8dsfkp9wk20j04x4qydg4dr8a8h";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  adler32_1_0_0 = { features?(adler32_1_0_0_features {}) }: adler32_1_0_0_ {};
+  adler32_1_0_0_features = f: updateFeatures f (rec {
+    adler32_1_0_0.default = (f.adler32_1_0_0.default or true);
+  }) [];
+  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
+  ansi_term_0_9_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
+  }) [];
+  atty_0_2_2 = { features?(atty_0_2_2_features {}) }: atty_0_2_2_ {
+    dependencies = (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_21 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  atty_0_2_2_features = f: updateFeatures f (rec {
+    atty_0_2_2.default = (f.atty_0_2_2.default or true);
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_21.default = true;
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_21_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
+  bitflags_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
+  }) [];
+  bitflags_0_8_0 = { features?(bitflags_0_8_0_features {}) }: bitflags_0_8_0_ {
+    features = mkFeatures (features.bitflags_0_8_0 or {});
+  };
+  bitflags_0_8_0_features = f: updateFeatures f (rec {
+    bitflags_0_8_0.default = (f.bitflags_0_8_0.default or true);
+    bitflags_0_8_0.i128 =
+      (f.bitflags_0_8_0.i128 or false) ||
+      (f.bitflags_0_8_0.unstable or false) ||
+      (bitflags_0_8_0.unstable or false);
+  }) [];
+  byteorder_1_0_0 = { features?(byteorder_1_0_0_features {}) }: byteorder_1_0_0_ {
+    features = mkFeatures (features.byteorder_1_0_0 or {});
+  };
+  byteorder_1_0_0_features = f: updateFeatures f (rec {
+    byteorder_1_0_0.default = (f.byteorder_1_0_0.default or true);
+    byteorder_1_0_0.std =
+      (f.byteorder_1_0_0.std or false) ||
+      (f.byteorder_1_0_0.default or false) ||
+      (byteorder_1_0_0.default or false);
+  }) [];
+  clap_2_22_0 = { features?(clap_2_22_0_features {}) }: clap_2_22_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_8_0 unicode_segmentation_1_1_0 unicode_width_0_1_4 vec_map_0_7_0 ]
+      ++ (if features.clap_2_22_0.ansi_term or false then [ ansi_term_0_9_0 ] else [])
+      ++ (if features.clap_2_22_0.atty or false then [ atty_0_2_2 ] else [])
+      ++ (if features.clap_2_22_0.strsim or false then [ strsim_0_6_0 ] else [])
+      ++ (if features.clap_2_22_0.term_size or false then [ term_size_0_2_3 ] else []));
+    features = mkFeatures (features.clap_2_22_0 or {});
+  };
+  clap_2_22_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = true;
+    atty_0_2_2.default = true;
+    bitflags_0_8_0.default = true;
+    clap_2_22_0.ansi_term =
+      (f.clap_2_22_0.ansi_term or false) ||
+      (f.clap_2_22_0.color or false) ||
+      (clap_2_22_0.color or false);
+    clap_2_22_0.atty =
+      (f.clap_2_22_0.atty or false) ||
+      (f.clap_2_22_0.color or false) ||
+      (clap_2_22_0.color or false);
+    clap_2_22_0.clippy =
+      (f.clap_2_22_0.clippy or false) ||
+      (f.clap_2_22_0.lints or false) ||
+      (clap_2_22_0.lints or false);
+    clap_2_22_0.color =
+      (f.clap_2_22_0.color or false) ||
+      (f.clap_2_22_0.default or false) ||
+      (clap_2_22_0.default or false);
+    clap_2_22_0.default = (f.clap_2_22_0.default or true);
+    clap_2_22_0.strsim =
+      (f.clap_2_22_0.strsim or false) ||
+      (f.clap_2_22_0.suggestions or false) ||
+      (clap_2_22_0.suggestions or false);
+    clap_2_22_0.suggestions =
+      (f.clap_2_22_0.suggestions or false) ||
+      (f.clap_2_22_0.default or false) ||
+      (clap_2_22_0.default or false);
+    clap_2_22_0.term_size =
+      (f.clap_2_22_0.term_size or false) ||
+      (f.clap_2_22_0.wrap_help or false) ||
+      (clap_2_22_0.wrap_help or false);
+    clap_2_22_0.wrap_help =
+      (f.clap_2_22_0.wrap_help or false) ||
+      (f.clap_2_22_0.default or false) ||
+      (clap_2_22_0.default or false);
+    clap_2_22_0.yaml-rust =
+      (f.clap_2_22_0.yaml-rust or false) ||
+      (f.clap_2_22_0.yaml or false) ||
+      (clap_2_22_0.yaml or false);
+    strsim_0_6_0.default = true;
+    term_size_0_2_3.default = true;
+    unicode_segmentation_1_1_0.default = true;
+    unicode_width_0_1_4.default = true;
+    vec_map_0_7_0.default = true;
+  }) [ ansi_term_0_9_0_features atty_0_2_2_features bitflags_0_8_0_features strsim_0_6_0_features term_size_0_2_3_features unicode_segmentation_1_1_0_features unicode_width_0_1_4_features vec_map_0_7_0_features ];
+  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
+  color_quant_1_0_0_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
+  }) [];
+  dbus_0_5_2 = { features?(dbus_0_5_2_features {}) }: dbus_0_5_2_ {
+    dependencies = mapFeatures features ([ libc_0_2_21 ]);
+    buildDependencies = mapFeatures features ([ metadeps_1_1_1 ]);
+    features = mkFeatures (features.dbus_0_5_2 or {});
+  };
+  dbus_0_5_2_features = f: updateFeatures f (rec {
+    dbus_0_5_2.default = (f.dbus_0_5_2.default or true);
+    libc_0_2_21.default = true;
+    metadeps_1_1_1.default = true;
+  }) [ libc_0_2_21_features metadeps_1_1_1_features ];
+  deflate_0_7_5 = { features?(deflate_0_7_5_features {}) }: deflate_0_7_5_ {
+    dependencies = mapFeatures features ([ adler32_1_0_0 byteorder_1_0_0 ]);
+  };
+  deflate_0_7_5_features = f: updateFeatures f (rec {
+    adler32_1_0_0.default = true;
+    byteorder_1_0_0.default = true;
+    deflate_0_7_5.default = (f.deflate_0_7_5.default or true);
+  }) [ adler32_1_0_0_features byteorder_1_0_0_features ];
+  deque_0_3_1 = { features?(deque_0_3_1_features {}) }: deque_0_3_1_ {
+    dependencies = mapFeatures features ([ rand_0_3_15 ]);
+  };
+  deque_0_3_1_features = f: updateFeatures f (rec {
+    deque_0_3_1.default = (f.deque_0_3_1.default or true);
+    rand_0_3_15.default = true;
+  }) [ rand_0_3_15_features ];
+  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
+  };
+  enum_primitive_0_1_1_features = f: updateFeatures f (rec {
+    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
+    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or false);
+  }) [ num_traits_0_1_37_features ];
+  error_chain_0_7_2 = { features?(error_chain_0_7_2_features {}) }: error_chain_0_7_2_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.error_chain_0_7_2 or {});
+  };
+  error_chain_0_7_2_features = f: updateFeatures f (rec {
+    error_chain_0_7_2.backtrace =
+      (f.error_chain_0_7_2.backtrace or false) ||
+      (f.error_chain_0_7_2.default or false) ||
+      (error_chain_0_7_2.default or false);
+    error_chain_0_7_2.default = (f.error_chain_0_7_2.default or true);
+    error_chain_0_7_2.example_generated =
+      (f.error_chain_0_7_2.example_generated or false) ||
+      (f.error_chain_0_7_2.default or false) ||
+      (error_chain_0_7_2.default or false);
+  }) [];
+  gif_0_9_1 = { features?(gif_0_9_1_features {}) }: gif_0_9_1_ {
+    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
+    features = mkFeatures (features.gif_0_9_1 or {});
+  };
+  gif_0_9_1_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = true;
+    gif_0_9_1.default = (f.gif_0_9_1.default or true);
+    gif_0_9_1.libc =
+      (f.gif_0_9_1.libc or false) ||
+      (f.gif_0_9_1.c_api or false) ||
+      (gif_0_9_1.c_api or false);
+    gif_0_9_1.raii_no_panic =
+      (f.gif_0_9_1.raii_no_panic or false) ||
+      (f.gif_0_9_1.default or false) ||
+      (gif_0_9_1.default or false);
+    lzw_0_10_0.default = true;
+  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
+  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
+  glob_0_2_11_features = f: updateFeatures f (rec {
+    glob_0_2_11.default = (f.glob_0_2_11.default or true);
+  }) [];
+  image_0_12_3 = { features?(image_0_12_3_features {}) }: image_0_12_3_ {
+    dependencies = mapFeatures features ([ byteorder_1_0_0 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_33 num_rational_0_1_36 num_traits_0_1_37 ]
+      ++ (if features.image_0_12_3.gif or false then [ gif_0_9_1 ] else [])
+      ++ (if features.image_0_12_3.jpeg-decoder or false then [ jpeg_decoder_0_1_11 ] else [])
+      ++ (if features.image_0_12_3.png or false then [ png_0_6_2 ] else [])
+      ++ (if features.image_0_12_3.scoped_threadpool or false then [ scoped_threadpool_0_1_7 ] else []));
+    features = mkFeatures (features.image_0_12_3 or {});
+  };
+  image_0_12_3_features = f: updateFeatures f (rec {
+    byteorder_1_0_0.default = true;
+    enum_primitive_0_1_1.default = true;
+    gif_0_9_1.default = true;
+    glob_0_2_11.default = true;
+    image_0_12_3.bmp =
+      (f.image_0_12_3.bmp or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false) ||
+      (f.image_0_12_3.ico or false) ||
+      (image_0_12_3.ico or false);
+    image_0_12_3.default = (f.image_0_12_3.default or true);
+    image_0_12_3.gif =
+      (f.image_0_12_3.gif or false) ||
+      (f.image_0_12_3.gif_codec or false) ||
+      (image_0_12_3.gif_codec or false);
+    image_0_12_3.gif_codec =
+      (f.image_0_12_3.gif_codec or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.hdr =
+      (f.image_0_12_3.hdr or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.ico =
+      (f.image_0_12_3.ico or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.jpeg =
+      (f.image_0_12_3.jpeg or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.jpeg-decoder =
+      (f.image_0_12_3.jpeg-decoder or false) ||
+      (f.image_0_12_3.jpeg or false) ||
+      (image_0_12_3.jpeg or false);
+    image_0_12_3.png =
+      (f.image_0_12_3.png or false) ||
+      (f.image_0_12_3.png_codec or false) ||
+      (image_0_12_3.png_codec or false);
+    image_0_12_3.png_codec =
+      (f.image_0_12_3.png_codec or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false) ||
+      (f.image_0_12_3.ico or false) ||
+      (image_0_12_3.ico or false);
+    image_0_12_3.ppm =
+      (f.image_0_12_3.ppm or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.scoped_threadpool =
+      (f.image_0_12_3.scoped_threadpool or false) ||
+      (f.image_0_12_3.hdr or false) ||
+      (image_0_12_3.hdr or false);
+    image_0_12_3.tga =
+      (f.image_0_12_3.tga or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.tiff =
+      (f.image_0_12_3.tiff or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    image_0_12_3.webp =
+      (f.image_0_12_3.webp or false) ||
+      (f.image_0_12_3.default or false) ||
+      (image_0_12_3.default or false);
+    jpeg_decoder_0_1_11.default = true;
+    num_iter_0_1_33.default = true;
+    num_rational_0_1_36.default = (f.num_rational_0_1_36.default or false);
+    num_traits_0_1_37.default = true;
+    png_0_6_2.default = true;
+    scoped_threadpool_0_1_7.default = true;
+  }) [ byteorder_1_0_0_features enum_primitive_0_1_1_features gif_0_9_1_features glob_0_2_11_features jpeg_decoder_0_1_11_features num_iter_0_1_33_features num_rational_0_1_36_features num_traits_0_1_37_features png_0_6_2_features scoped_threadpool_0_1_7_features ];
+  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
+    features = mkFeatures (features.inflate_0_1_1 or {});
+  };
+  inflate_0_1_1_features = f: updateFeatures f (rec {
+    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
+  }) [];
+  jpeg_decoder_0_1_11 = { features?(jpeg_decoder_0_1_11_features {}) }: jpeg_decoder_0_1_11_ {
+    dependencies = mapFeatures features ([ byteorder_1_0_0 ]
+      ++ (if features.jpeg_decoder_0_1_11.rayon or false then [ rayon_0_6_0 ] else []));
+    features = mkFeatures (features.jpeg_decoder_0_1_11 or {});
+  };
+  jpeg_decoder_0_1_11_features = f: updateFeatures f (rec {
+    byteorder_1_0_0.default = true;
+    jpeg_decoder_0_1_11.default = (f.jpeg_decoder_0_1_11.default or true);
+    jpeg_decoder_0_1_11.rayon =
+      (f.jpeg_decoder_0_1_11.rayon or false) ||
+      (f.jpeg_decoder_0_1_11.default or false) ||
+      (jpeg_decoder_0_1_11.default or false);
+    rayon_0_6_0.default = true;
+  }) [ byteorder_1_0_0_features rayon_0_6_0_features ];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  libc_0_2_21 = { features?(libc_0_2_21_features {}) }: libc_0_2_21_ {
+    features = mkFeatures (features.libc_0_2_21 or {});
+  };
+  libc_0_2_21_features = f: updateFeatures f (rec {
+    libc_0_2_21.default = (f.libc_0_2_21.default or true);
+    libc_0_2_21.use_std =
+      (f.libc_0_2_21.use_std or false) ||
+      (f.libc_0_2_21.default or false) ||
+      (libc_0_2_21.default or false);
+  }) [];
+  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
+    features = mkFeatures (features.lzw_0_10_0 or {});
+  };
+  lzw_0_10_0_features = f: updateFeatures f (rec {
+    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
+    lzw_0_10_0.raii_no_panic =
+      (f.lzw_0_10_0.raii_no_panic or false) ||
+      (f.lzw_0_10_0.default or false) ||
+      (lzw_0_10_0.default or false);
+  }) [];
+  metadeps_1_1_1 = { features?(metadeps_1_1_1_features {}) }: metadeps_1_1_1_ {
+    dependencies = mapFeatures features ([ error_chain_0_7_2 pkg_config_0_3_9 toml_0_2_1 ]);
+  };
+  metadeps_1_1_1_features = f: updateFeatures f (rec {
+    error_chain_0_7_2.default = (f.error_chain_0_7_2.default or false);
+    metadeps_1_1_1.default = (f.metadeps_1_1_1.default or true);
+    pkg_config_0_3_9.default = true;
+    toml_0_2_1.default = (f.toml_0_2_1.default or false);
+  }) [ error_chain_0_7_2_features pkg_config_0_3_9_features toml_0_2_1_features ];
+  num_integer_0_1_33 = { features?(num_integer_0_1_33_features {}) }: num_integer_0_1_33_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
+  };
+  num_integer_0_1_33_features = f: updateFeatures f (rec {
+    num_integer_0_1_33.default = (f.num_integer_0_1_33.default or true);
+    num_traits_0_1_37.default = true;
+  }) [ num_traits_0_1_37_features ];
+  num_iter_0_1_33 = { features?(num_iter_0_1_33_features {}) }: num_iter_0_1_33_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_33 num_traits_0_1_37 ]);
+  };
+  num_iter_0_1_33_features = f: updateFeatures f (rec {
+    num_integer_0_1_33.default = true;
+    num_iter_0_1_33.default = (f.num_iter_0_1_33.default or true);
+    num_traits_0_1_37.default = true;
+  }) [ num_integer_0_1_33_features num_traits_0_1_37_features ];
+  num_rational_0_1_36 = { features?(num_rational_0_1_36_features {}) }: num_rational_0_1_36_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_33 num_traits_0_1_37 ]);
+    features = mkFeatures (features.num_rational_0_1_36 or {});
+  };
+  num_rational_0_1_36_features = f: updateFeatures f (rec {
+    num_integer_0_1_33.default = true;
+    num_rational_0_1_36.bigint =
+      (f.num_rational_0_1_36.bigint or false) ||
+      (f.num_rational_0_1_36.default or false) ||
+      (num_rational_0_1_36.default or false);
+    num_rational_0_1_36.default = (f.num_rational_0_1_36.default or true);
+    num_rational_0_1_36.num-bigint =
+      (f.num_rational_0_1_36.num-bigint or false) ||
+      (f.num_rational_0_1_36.bigint or false) ||
+      (num_rational_0_1_36.bigint or false);
+    num_rational_0_1_36.rustc-serialize =
+      (f.num_rational_0_1_36.rustc-serialize or false) ||
+      (f.num_rational_0_1_36.default or false) ||
+      (num_rational_0_1_36.default or false);
+    num_traits_0_1_37.default = true;
+  }) [ num_integer_0_1_33_features num_traits_0_1_37_features ];
+  num_traits_0_1_37 = { features?(num_traits_0_1_37_features {}) }: num_traits_0_1_37_ {};
+  num_traits_0_1_37_features = f: updateFeatures f (rec {
+    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or true);
+  }) [];
+  num_cpus_1_3_0 = { features?(num_cpus_1_3_0_features {}) }: num_cpus_1_3_0_ {
+    dependencies = mapFeatures features ([ libc_0_2_21 ]);
+  };
+  num_cpus_1_3_0_features = f: updateFeatures f (rec {
+    libc_0_2_21.default = true;
+    num_cpus_1_3_0.default = (f.num_cpus_1_3_0.default or true);
+  }) [ libc_0_2_21_features ];
+  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
+  pkg_config_0_3_9_features = f: updateFeatures f (rec {
+    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
+  }) [];
+  png_0_6_2 = { features?(png_0_6_2_features {}) }: png_0_6_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_33 ]
+      ++ (if features.png_0_6_2.deflate or false then [ deflate_0_7_5 ] else []));
+    features = mkFeatures (features.png_0_6_2 or {});
+  };
+  png_0_6_2_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    deflate_0_7_5.default = true;
+    inflate_0_1_1.default = true;
+    num_iter_0_1_33.default = true;
+    png_0_6_2.default = (f.png_0_6_2.default or true);
+    png_0_6_2.deflate =
+      (f.png_0_6_2.deflate or false) ||
+      (f.png_0_6_2.png-encoding or false) ||
+      (png_0_6_2.png-encoding or false);
+    png_0_6_2.png-encoding =
+      (f.png_0_6_2.png-encoding or false) ||
+      (f.png_0_6_2.default or false) ||
+      (png_0_6_2.default or false);
+  }) [ bitflags_0_7_0_features deflate_0_7_5_features inflate_0_1_1_features num_iter_0_1_33_features ];
+  rand_0_3_15 = { features?(rand_0_3_15_features {}) }: rand_0_3_15_ {
+    dependencies = mapFeatures features ([ libc_0_2_21 ]);
+  };
+  rand_0_3_15_features = f: updateFeatures f (rec {
+    libc_0_2_21.default = true;
+    rand_0_3_15.default = (f.rand_0_3_15.default or true);
+  }) [ libc_0_2_21_features ];
+  rayon_0_6_0 = { features?(rayon_0_6_0_features {}) }: rayon_0_6_0_ {
+    dependencies = mapFeatures features ([ deque_0_3_1 libc_0_2_21 num_cpus_1_3_0 rand_0_3_15 ]);
+    features = mkFeatures (features.rayon_0_6_0 or {});
+  };
+  rayon_0_6_0_features = f: updateFeatures f (rec {
+    deque_0_3_1.default = true;
+    libc_0_2_21.default = true;
+    num_cpus_1_3_0.default = true;
+    rand_0_3_15.default = true;
+    rayon_0_6_0.default = (f.rayon_0_6_0.default or true);
+  }) [ deque_0_3_1_features libc_0_2_21_features num_cpus_1_3_0_features rand_0_3_15_features ];
+  scoped_threadpool_0_1_7 = { features?(scoped_threadpool_0_1_7_features {}) }: scoped_threadpool_0_1_7_ {
+    features = mkFeatures (features.scoped_threadpool_0_1_7 or {});
+  };
+  scoped_threadpool_0_1_7_features = f: updateFeatures f (rec {
+    scoped_threadpool_0_1_7.default = (f.scoped_threadpool_0_1_7.default or true);
+  }) [];
+  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
+  strsim_0_6_0_features = f: updateFeatures f (rec {
+    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
+  }) [];
+  term_size_0_2_3 = { features?(term_size_0_2_3_features {}) }: term_size_0_2_3_ {
+    dependencies = mapFeatures features ([])
+      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_21 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    features = mkFeatures (features.term_size_0_2_3 or {});
+  };
+  term_size_0_2_3_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_21.default = true;
+    term_size_0_2_3.clippy =
+      (f.term_size_0_2_3.clippy or false) ||
+      (f.term_size_0_2_3.lints or false) ||
+      (term_size_0_2_3.lints or false);
+    term_size_0_2_3.default = (f.term_size_0_2_3.default or true);
+    term_size_0_2_3.lints =
+      (f.term_size_0_2_3.lints or false) ||
+      (f.term_size_0_2_3.travis or false) ||
+      (term_size_0_2_3.travis or false);
+    term_size_0_2_3.nightly =
+      (f.term_size_0_2_3.nightly or false) ||
+      (f.term_size_0_2_3.lints or false) ||
+      (term_size_0_2_3.lints or false) ||
+      (f.term_size_0_2_3.travis or false) ||
+      (term_size_0_2_3.travis or false);
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_21_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  toml_0_2_1 = { features?(toml_0_2_1_features {}) }: toml_0_2_1_ {
+    dependencies = mapFeatures features ([]);
+  };
+  toml_0_2_1_features = f: updateFeatures f (rec {
+    toml_0_2_1.default = (f.toml_0_2_1.default or true);
+    toml_0_2_1.rustc-serialize =
+      (f.toml_0_2_1.rustc-serialize or false) ||
+      (f.toml_0_2_1.default or false) ||
+      (toml_0_2_1.default or false);
+  }) [];
+  unicode_segmentation_1_1_0 = { features?(unicode_segmentation_1_1_0_features {}) }: unicode_segmentation_1_1_0_ {
+    features = mkFeatures (features.unicode_segmentation_1_1_0 or {});
+  };
+  unicode_segmentation_1_1_0_features = f: updateFeatures f (rec {
+    unicode_segmentation_1_1_0.default = (f.unicode_segmentation_1_1_0.default or true);
+  }) [];
+  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
+    features = mkFeatures (features.unicode_width_0_1_4 or {});
+  };
+  unicode_width_0_1_4_features = f: updateFeatures f (rec {
+    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
+  }) [];
+  vec_map_0_7_0 = { features?(vec_map_0_7_0_features {}) }: vec_map_0_7_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.vec_map_0_7_0 or {});
+  };
+  vec_map_0_7_0_features = f: updateFeatures f (rec {
+    vec_map_0_7_0.default = (f.vec_map_0_7_0.default or true);
+    vec_map_0_7_0.serde =
+      (f.vec_map_0_7_0.serde or false) ||
+      (f.vec_map_0_7_0.eders or false) ||
+      (vec_map_0_7_0.eders or false);
+    vec_map_0_7_0.serde_derive =
+      (f.vec_map_0_7_0.serde_derive or false) ||
+      (f.vec_map_0_7_0.eders or false) ||
+      (vec_map_0_7_0.eders or false);
+  }) [];
+  wc_grab_0_3_0 = { features?(wc_grab_0_3_0_features {}) }: wc_grab_0_3_0_ {
+    dependencies = mapFeatures features ([ clap_2_22_0 dbus_0_5_2 image_0_12_3 ]);
+  };
+  wc_grab_0_3_0_features = f: updateFeatures f (rec {
+    clap_2_22_0.default = true;
+    dbus_0_5_2.default = true;
+    image_0_12_3.default = true;
+    wc_grab_0_3_0.default = (f.wc_grab_0_3_0.default or true);
+  }) [ clap_2_22_0_features dbus_0_5_2_features image_0_12_3_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
 }
diff --git a/pkgs/applications/window-managers/way-cooler/wc-lock.nix b/pkgs/applications/window-managers/way-cooler/wc-lock.nix
index 634288cfca8..80775112abc 100644
--- a/pkgs/applications/window-managers/way-cooler/wc-lock.nix
+++ b/pkgs/applications/window-managers/way-cooler/wc-lock.nix
@@ -1,625 +1,1486 @@
-# Generated by carnix 0.5.0: carnix -o wc-lock.nix Cargo.lock
+# Generated by carnix 0.6.5: carnix -o wc-lock.nix Cargo.lock
 { lib, buildPlatform, buildRustCrate, fetchgit }:
 let kernel = buildPlatform.parsed.kernel.name;
     abi = buildPlatform.parsed.abi.name;
-    hasFeature = feature:
-      lib.lists.any
-        (originName: feature.${originName})
-        (builtins.attrNames feature);
-
-    hasDefault = feature:
-      let defaultFeatures = builtins.attrNames (feature."default" or {}); in
-      (defaultFeatures == [])
-      || (lib.lists.any (originName: feature."default".${originName}) defaultFeatures);
-
+    include = includedFiles: src: builtins.filterSource (path: type:
+      lib.lists.any (f:
+        let p = toString (src + ("/" + f)); in
+        (path == p) || (type == "directory" && lib.strings.hasPrefix path p)
+      ) includedFiles
+    ) src;
+    updateFeatures = f: up: functions: builtins.deepSeq f (lib.lists.foldl' (features: fun: fun features) (lib.attrsets.recursiveUpdate f up) functions);
+    mapFeatures = features: map (fun: fun { features = features; });
     mkFeatures = feat: lib.lists.foldl (features: featureName:
-      if featureName != "" && hasFeature feat.${featureName} then
+      if feat.${featureName} or false then
         [ featureName ] ++ features
       else
         features
-    ) (if hasDefault feat then [ "default" ] else []) (builtins.attrNames feat);
-    ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "ansi_term";
-      version = "0.9.0";
-      authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
-      sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
-      inherit dependencies buildDependencies features;
-    };
-    atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "atty";
-      version = "0.2.2";
-      authors = [ "softprops <d.tangren@gmail.com>" ];
-      sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.7.0";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
-      inherit dependencies buildDependencies features;
-    };
-    bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "bitflags";
-      version = "0.8.2";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
-      inherit dependencies buildDependencies features;
-    };
-    byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "byteorder";
-      version = "0.5.3";
-      authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-      sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
-      inherit dependencies buildDependencies features;
-    };
-    clap_2_24_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "clap";
-      version = "2.24.2";
-      authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-      sha256 = "0028bkzafprs6n7ing8lnf7iss2a2zq17qmgadipgdfgvww43rmv";
-      inherit dependencies buildDependencies features;
-    };
-    dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dlib";
-      version = "0.3.1";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
-      inherit dependencies buildDependencies features;
-    };
-    dtoa_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "dtoa";
-      version = "0.4.1";
-      authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-      sha256 = "0mgg4r90yby68qg7y8csbclhsm53ac26vsyq615viq535plllhzw";
-      inherit dependencies buildDependencies features;
-    };
-    fs2_0_2_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "fs2";
-      version = "0.2.5";
-      authors = [ "Dan Burkert <dan@danburkert.com>" ];
-      sha256 = "0j6l5r95jigbl0lgkm69c82dzq10jipjbm9qnni147hb45gyw790";
-      inherit dependencies buildDependencies features;
-    };
-    gcc_0_3_50_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "gcc";
-      version = "0.3.50";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-      sha256 = "032izcbbyiakv9ck5j3s27p3ddx4468n7qpaxgwi5iswmimjaaj0";
-      inherit dependencies buildDependencies features;
-    };
-    itoa_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "itoa";
-      version = "0.3.1";
-      authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-      sha256 = "0jp1wvfw0qqbyz0whbycp7xr5nx1ds5plh4wsfyj503xmjf9ab4k";
-      inherit dependencies buildDependencies features;
-    };
-    kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "kernel32-sys";
-      version = "0.2.2";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-      libName = "kernel32";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    lazy_static_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "lazy_static";
-      version = "0.1.16";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "0lc5ixs5bmnc43lfri2ynh9393l7vs0z3sw2v5rkaady2ivnznpc";
-      inherit dependencies buildDependencies features;
-    };
-    lazy_static_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "lazy_static";
-      version = "0.2.8";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "1xbpxx7cd5kl60g87g43q80jxyrsildhxfjc42jb1x4jncknpwbl";
-      inherit dependencies buildDependencies features;
-    };
-    libc_0_2_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "libc";
-      version = "0.2.23";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1i29f6k26fmv81c5bjc6hw2j95sd01h9ad66qxdc755b24xfa9jm";
-      inherit dependencies buildDependencies features;
-    };
-    libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "libloading";
-      version = "0.3.4";
-      authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
-      sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    memmap_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "memmap";
-      version = "0.4.0";
-      authors = [ "Dan Burkert <dan@danburkert.com>" ];
-      sha256 = "0q2gm5p8n9najc8kccbxxkannmnjh85rin4k8d4y1kg5ymdp6kll";
-      inherit dependencies buildDependencies features;
-    };
-    num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "num-traits";
-      version = "0.1.37";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
-      inherit dependencies buildDependencies features;
-    };
-    phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
-      libPath = "src/lib.rs";
-      inherit dependencies buildDependencies features;
-    };
-    phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_codegen";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
-      inherit dependencies buildDependencies features;
-    };
-    phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_generator";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
-      inherit dependencies buildDependencies features;
-    };
-    phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "phf_shared";
-      version = "0.7.21";
-      authors = [ "Steven Fackler <sfackler@gmail.com>" ];
-      sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
-      libPath = "src/lib.rs";
-      inherit dependencies buildDependencies features;
-    };
-    rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rand";
-      version = "0.3.15";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
-      inherit dependencies buildDependencies features;
-    };
-    rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "rustc_version";
-      version = "0.1.7";
-      authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-      sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
-      inherit dependencies buildDependencies features;
-    };
-    semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "semver";
-      version = "0.1.20";
-      authors = [ "The Rust Project Developers" ];
-      sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
-      inherit dependencies buildDependencies features;
-    };
-    serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "serde";
-      version = "0.9.15";
-      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-      sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
-      inherit dependencies buildDependencies features;
-    };
-    serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "serde_json";
-      version = "0.9.10";
-      authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
-      sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
-      inherit dependencies buildDependencies features;
-    };
-    siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "siphasher";
-      version = "0.2.2";
-      authors = [ "Frank Denis <github@pureftpd.org>" ];
-      sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
-      inherit dependencies buildDependencies features;
-    };
-    strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "strsim";
-      version = "0.6.0";
-      authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-      sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
-      inherit dependencies buildDependencies features;
-    };
-    target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "target_build_utils";
-      version = "0.3.1";
-      authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
-      sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    tempfile_2_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "tempfile";
-      version = "2.1.5";
-      authors = [ "Steven Allen <steven@stebalien.com>" ];
-      sha256 = "1yz8aaj78z9gsn4b71y0m6fa5bnxhqafcczhxvmwra56k943aqkw";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "term_size";
-      version = "0.3.0";
-      authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
-      sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
-      inherit dependencies buildDependencies features;
-    };
-    unicode_segmentation_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "unicode-segmentation";
-      version = "1.2.0";
-      authors = [ "kwantam <kwantam@gmail.com>" ];
-      sha256 = "0yz43x7wrhr3n7a2zsinx3r60yxsdqicg8a5kycyyhdaq1zmiz1y";
-      inherit dependencies buildDependencies features;
-    };
-    unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "unicode-width";
-      version = "0.1.4";
-      authors = [ "kwantam <kwantam@gmail.com>" ];
-      sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-      inherit dependencies buildDependencies features;
-    };
-    vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "vec_map";
-      version = "0.8.0";
-      authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-      sha256 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_client_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-client";
-      version = "0.9.6";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "1908h6ilvq2cxph1lxv1vzrb3dcfx4x6pf6pszxwifsfqva8nm34";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_kbd_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-kbd";
-      version = "0.9.0";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "1x0f7n79hjwf5fclf62fpzjp05xdzc93xw84zgyrn8f1hill3qhj";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_scanner_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-scanner";
-      version = "0.9.6";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "1w5cyc48g4x5w3rakb4sji5328rl5yph1abmjbh5h4slkm4n76g1";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_sys_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-sys";
-      version = "0.6.0";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "0m6db0kld2d4xv4ai9kxlqrh362hwi0030b4zbss0sfha1hx5mfl";
-      inherit dependencies buildDependencies features;
-    };
-    wayland_sys_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wayland-sys";
-      version = "0.9.6";
-      authors = [ "Victor Berger <victor.berger@m4x.org>" ];
-      sha256 = "0izw50pmj1r10hmr29gi8ps01avs6zjwisywijlq7wr268h6yxcg";
-      inherit dependencies buildDependencies features;
-    };
-    wc_lock_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "wc-lock";
-      version = "0.1.0";
-      authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
-      sha256 = "1fwfqzhqa8zqxx18amc129xfp1lrb7y9qxi92jqr856xiq4r8ypk";
-      build = "build.rs";
-      inherit dependencies buildDependencies features;
-    };
-    winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "winapi";
-      version = "0.2.8";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-      inherit dependencies buildDependencies features;
-    };
-    winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "winapi-build";
-      version = "0.1.1";
-      authors = [ "Peter Atashian <retep998@gmail.com>" ];
-      sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-      libName = "build";
-      inherit dependencies buildDependencies features;
-    };
-    xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
-      crateName = "xml-rs";
-      version = "0.3.6";
-      authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
-      sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
-      libPath = "src/lib.rs";
-      libName = "xml";
-      crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
-      inherit dependencies buildDependencies features;
-    };
-
+    ) [] (builtins.attrNames feat);
 in
 rec {
-  ansi_term_0_9_0 = ansi_term_0_9_0_ rec {};
-  atty_0_2_2 = atty_0_2_2_ rec {
-    dependencies = (if !(kernel == "windows") then [ libc_0_2_23 ] else [])
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-  };
-  libc_0_2_23_features."default".from_atty_0_2_2__default = true;
-  kernel32_sys_0_2_2_features."default".from_atty_0_2_2__default = true;
-  winapi_0_2_8_features."default".from_atty_0_2_2__default = true;
-  bitflags_0_7_0 = bitflags_0_7_0_ rec {};
-  bitflags_0_8_2 = bitflags_0_8_2_ rec {
-    features = mkFeatures bitflags_0_8_2_features;
-  };
-  bitflags_0_8_2_features."i128".self_unstable = hasFeature (bitflags_0_8_2_features."unstable" or {});
-  byteorder_0_5_3 = byteorder_0_5_3_ rec {
-    features = mkFeatures byteorder_0_5_3_features;
-  };
-  byteorder_0_5_3_features."std".self_default = hasDefault byteorder_0_5_3_features;
-  clap_2_24_2 = clap_2_24_2_ rec {
-    dependencies = [ ansi_term_0_9_0 atty_0_2_2 bitflags_0_8_2 strsim_0_6_0 term_size_0_3_0 unicode_segmentation_1_2_0 unicode_width_0_1_4 vec_map_0_8_0 ]
-      ++ (if lib.lists.any (x: x == "ansi_term") features then [ansi_term_0_9_0] else [])      ++ (if lib.lists.any (x: x == "atty") features then [atty_0_2_2] else [])      ++ (if lib.lists.any (x: x == "strsim") features then [strsim_0_6_0] else [])      ++ (if lib.lists.any (x: x == "term_size") features then [term_size_0_3_0] else []);
-    features = mkFeatures clap_2_24_2_features;
-  };
-  clap_2_24_2_features."".self = true;
-  clap_2_24_2_features."ansi_term".self_color = hasFeature (clap_2_24_2_features."color" or {});
-  clap_2_24_2_features."atty".self_color = hasFeature (clap_2_24_2_features."color" or {});
-  clap_2_24_2_features."suggestions".self_default = hasDefault clap_2_24_2_features;
-  clap_2_24_2_features."color".self_default = hasDefault clap_2_24_2_features;
-  clap_2_24_2_features."wrap_help".self_default = hasDefault clap_2_24_2_features;
-  clap_2_24_2_features."clippy".self_lints = hasFeature (clap_2_24_2_features."lints" or {});
-  clap_2_24_2_features."strsim".self_suggestions = hasFeature (clap_2_24_2_features."suggestions" or {});
-  clap_2_24_2_features."term_size".self_wrap_help = hasFeature (clap_2_24_2_features."wrap_help" or {});
-  clap_2_24_2_features."yaml-rust".self_yaml = hasFeature (clap_2_24_2_features."yaml" or {});
-  ansi_term_0_9_0_features."default".from_clap_2_24_2__default = true;
-  atty_0_2_2_features."default".from_clap_2_24_2__default = true;
-  bitflags_0_8_2_features."default".from_clap_2_24_2__default = true;
-  clippy_0_0_0_features."default".from_clap_2_24_2__default = true;
-  strsim_0_6_0_features."default".from_clap_2_24_2__default = true;
-  term_size_0_3_0_features."default".from_clap_2_24_2__default = true;
-  unicode_segmentation_1_2_0_features."default".from_clap_2_24_2__default = true;
-  unicode_width_0_1_4_features."default".from_clap_2_24_2__default = true;
-  vec_map_0_8_0_features."default".from_clap_2_24_2__default = true;
-  yaml_rust_0_0_0_features."default".from_clap_2_24_2__default = true;
-  dlib_0_3_1 = dlib_0_3_1_ rec {
-    dependencies = [ libloading_0_3_4 ];
-    features = mkFeatures dlib_0_3_1_features;
-  };
-  dlib_0_3_1_features."".self = true;
-  libloading_0_3_4_features."default".from_dlib_0_3_1__default = true;
-  dtoa_0_4_1 = dtoa_0_4_1_ rec {};
-  fs2_0_2_5 = fs2_0_2_5_ rec {
-    dependencies = [ kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ];
-  };
-  kernel32_sys_0_2_2_features."default".from_fs2_0_2_5__default = true;
-  libc_0_2_23_features."default".from_fs2_0_2_5__default = true;
-  winapi_0_2_8_features."default".from_fs2_0_2_5__default = true;
-  gcc_0_3_50 = gcc_0_3_50_ rec {
-    dependencies = [];
-    features = mkFeatures gcc_0_3_50_features;
-  };
-  gcc_0_3_50_features."rayon".self_parallel = hasFeature (gcc_0_3_50_features."parallel" or {});
-  rayon_0_0_0_features."default".from_gcc_0_3_50__default = true;
-  itoa_0_3_1 = itoa_0_3_1_ rec {};
-  kernel32_sys_0_2_2 = kernel32_sys_0_2_2_ rec {
-    dependencies = [ winapi_0_2_8 ];
-    buildDependencies = [ winapi_build_0_1_1 ];
-  };
-  winapi_0_2_8_features."default".from_kernel32_sys_0_2_2__default = true;
-  lazy_static_0_1_16 = lazy_static_0_1_16_ rec {
-    features = mkFeatures lazy_static_0_1_16_features;
-  };
-  lazy_static_0_1_16_features."".self = true;
-  lazy_static_0_2_8 = lazy_static_0_2_8_ rec {
-    dependencies = [];
-    features = mkFeatures lazy_static_0_2_8_features;
-  };
-  lazy_static_0_2_8_features."nightly".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
-  lazy_static_0_2_8_features."spin".self_spin_no_std = hasFeature (lazy_static_0_2_8_features."spin_no_std" or {});
-  spin_0_0_0_features."default".from_lazy_static_0_2_8__default = true;
-  libc_0_2_23 = libc_0_2_23_ rec {
-    features = mkFeatures libc_0_2_23_features;
-  };
-  libc_0_2_23_features."use_std".self_default = hasDefault libc_0_2_23_features;
-  libloading_0_3_4 = libloading_0_3_4_ rec {
-    dependencies = [ lazy_static_0_2_8 ]
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-    buildDependencies = [ target_build_utils_0_3_1 ];
-  };
-  lazy_static_0_2_8_features."default".from_libloading_0_3_4__default = true;
-  kernel32_sys_0_2_2_features."default".from_libloading_0_3_4__default = true;
-  winapi_0_2_8_features."default".from_libloading_0_3_4__default = true;
-  memmap_0_4_0 = memmap_0_4_0_ rec {
-    dependencies = [ fs2_0_2_5 kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ];
-  };
-  fs2_0_2_5_features."default".from_memmap_0_4_0__default = true;
-  kernel32_sys_0_2_2_features."default".from_memmap_0_4_0__default = true;
-  libc_0_2_23_features."default".from_memmap_0_4_0__default = true;
-  winapi_0_2_8_features."default".from_memmap_0_4_0__default = true;
-  num_traits_0_1_37 = num_traits_0_1_37_ rec {};
-  phf_0_7_21 = phf_0_7_21_ rec {
-    dependencies = [ phf_shared_0_7_21 ];
-    features = mkFeatures phf_0_7_21_features;
-  };
-  phf_0_7_21_features."".self = true;
-  phf_shared_0_7_21_features."core".from_phf_0_7_21__core = hasFeature (phf_0_7_21_features."core" or {});
-  phf_shared_0_7_21_features."unicase".from_phf_0_7_21__unicase = hasFeature (phf_0_7_21_features."unicase" or {});
-  phf_shared_0_7_21_features."default".from_phf_0_7_21__default = true;
-  phf_codegen_0_7_21 = phf_codegen_0_7_21_ rec {
-    dependencies = [ phf_generator_0_7_21 phf_shared_0_7_21 ];
-  };
-  phf_generator_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
-  phf_shared_0_7_21_features."default".from_phf_codegen_0_7_21__default = true;
-  phf_generator_0_7_21 = phf_generator_0_7_21_ rec {
-    dependencies = [ phf_shared_0_7_21 rand_0_3_15 ];
-  };
-  phf_shared_0_7_21_features."default".from_phf_generator_0_7_21__default = true;
-  rand_0_3_15_features."default".from_phf_generator_0_7_21__default = true;
-  phf_shared_0_7_21 = phf_shared_0_7_21_ rec {
-    dependencies = [ siphasher_0_2_2 ];
-    features = mkFeatures phf_shared_0_7_21_features;
-  };
-  phf_shared_0_7_21_features."".self = true;
-  siphasher_0_2_2_features."default".from_phf_shared_0_7_21__default = true;
-  unicase_0_0_0_features."default".from_phf_shared_0_7_21__default = true;
-  rand_0_3_15 = rand_0_3_15_ rec {
-    dependencies = [ libc_0_2_23 ];
-  };
-  libc_0_2_23_features."default".from_rand_0_3_15__default = true;
-  rustc_version_0_1_7 = rustc_version_0_1_7_ rec {
-    dependencies = [ semver_0_1_20 ];
-  };
-  semver_0_1_20_features."default".from_rustc_version_0_1_7__default = true;
-  semver_0_1_20 = semver_0_1_20_ rec {};
-  serde_0_9_15 = serde_0_9_15_ rec {
-    dependencies = [];
-    features = mkFeatures serde_0_9_15_features;
-  };
-  serde_0_9_15_features."unstable".self_alloc = hasFeature (serde_0_9_15_features."alloc" or {});
-  serde_0_9_15_features."alloc".self_collections = hasFeature (serde_0_9_15_features."collections" or {});
-  serde_0_9_15_features."std".self_default = hasDefault serde_0_9_15_features;
-  serde_0_9_15_features."serde_derive".self_derive = hasFeature (serde_0_9_15_features."derive" or {});
-  serde_0_9_15_features."serde_derive".self_playground = hasFeature (serde_0_9_15_features."playground" or {});
-  serde_0_9_15_features."unstable".self_unstable-testing = hasFeature (serde_0_9_15_features."unstable-testing" or {});
-  serde_0_9_15_features."std".self_unstable-testing = hasFeature (serde_0_9_15_features."unstable-testing" or {});
-  serde_derive_0_0_0_features."default".from_serde_0_9_15__default = true;
-  serde_json_0_9_10 = serde_json_0_9_10_ rec {
-    dependencies = [ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_15 ];
-    features = mkFeatures serde_json_0_9_10_features;
-  };
-  serde_json_0_9_10_features."linked-hash-map".self_preserve_order = hasFeature (serde_json_0_9_10_features."preserve_order" or {});
-  dtoa_0_4_1_features."default".from_serde_json_0_9_10__default = true;
-  itoa_0_3_1_features."default".from_serde_json_0_9_10__default = true;
-  linked_hash_map_0_0_0_features."default".from_serde_json_0_9_10__default = true;
-  num_traits_0_1_37_features."default".from_serde_json_0_9_10__default = true;
-  serde_0_9_15_features."default".from_serde_json_0_9_10__default = true;
-  siphasher_0_2_2 = siphasher_0_2_2_ rec {
-    dependencies = [];
-  };
-  clippy_0_0_0_features."default".from_siphasher_0_2_2__default = true;
-  strsim_0_6_0 = strsim_0_6_0_ rec {};
-  target_build_utils_0_3_1 = target_build_utils_0_3_1_ rec {
-    dependencies = [ phf_0_7_21 serde_json_0_9_10 ]
-      ++ (if lib.lists.any (x: x == "serde_json") features then [serde_json_0_9_10] else []);
-    buildDependencies = [ phf_codegen_0_7_21 ];
-    features = mkFeatures target_build_utils_0_3_1_features;
-  };
-  target_build_utils_0_3_1_features."".self = true;
-  target_build_utils_0_3_1_features."serde_json".self_default = hasDefault target_build_utils_0_3_1_features;
-  phf_0_7_21_features."default".from_target_build_utils_0_3_1__default = true;
-  serde_json_0_9_10_features."default".from_target_build_utils_0_3_1__default = true;
-  tempfile_2_1_5 = tempfile_2_1_5_ rec {
-    dependencies = [ rand_0_3_15 ]
-      ++ (if (kernel == "linux" || kernel == "darwin") then [ libc_0_2_23 ] else [])
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-    buildDependencies = [ rustc_version_0_1_7 ];
-  };
-  rand_0_3_15_features."default".from_tempfile_2_1_5__default = true;
-  libc_0_2_23_features."default".from_tempfile_2_1_5__default = true;
-  kernel32_sys_0_2_2_features."default".from_tempfile_2_1_5__default = true;
-  winapi_0_2_8_features."default".from_tempfile_2_1_5__default = true;
-  term_size_0_3_0 = term_size_0_3_0_ rec {
-    dependencies = []
-      ++ (if !(kernel == "windows") then [ libc_0_2_23 ] else [])
-      ++ (if kernel == "windows" then [ kernel32_sys_0_2_2 winapi_0_2_8 ] else []);
-    features = mkFeatures term_size_0_3_0_features;
-  };
-  term_size_0_3_0_features."clippy".self_lints = hasFeature (term_size_0_3_0_features."lints" or {});
-  term_size_0_3_0_features."nightly".self_lints = hasFeature (term_size_0_3_0_features."lints" or {});
-  term_size_0_3_0_features."lints".self_travis = hasFeature (term_size_0_3_0_features."travis" or {});
-  term_size_0_3_0_features."nightly".self_travis = hasFeature (term_size_0_3_0_features."travis" or {});
-  clippy_0_0_0_features."default".from_term_size_0_3_0__default = true;
-  libc_0_2_23_features."default".from_term_size_0_3_0__default = true;
-  kernel32_sys_0_2_2_features."default".from_term_size_0_3_0__default = true;
-  winapi_0_2_8_features."default".from_term_size_0_3_0__default = true;
-  unicode_segmentation_1_2_0 = unicode_segmentation_1_2_0_ rec {
-    features = mkFeatures unicode_segmentation_1_2_0_features;
-  };
-  unicode_segmentation_1_2_0_features."".self = true;
-  unicode_width_0_1_4 = unicode_width_0_1_4_ rec {
-    features = mkFeatures unicode_width_0_1_4_features;
-  };
-  unicode_width_0_1_4_features."".self = true;
-  vec_map_0_8_0 = vec_map_0_8_0_ rec {
-    dependencies = [];
-    features = mkFeatures vec_map_0_8_0_features;
-  };
-  vec_map_0_8_0_features."serde".self_eders = hasFeature (vec_map_0_8_0_features."eders" or {});
-  vec_map_0_8_0_features."serde_derive".self_eders = hasFeature (vec_map_0_8_0_features."eders" or {});
-  serde_0_0_0_features."default".from_vec_map_0_8_0__default = true;
-  serde_derive_0_0_0_features."default".from_vec_map_0_8_0__default = true;
-  wayland_client_0_9_6 = wayland_client_0_9_6_ rec {
-    dependencies = [ bitflags_0_7_0 libc_0_2_23 wayland_sys_0_9_6 ];
-    buildDependencies = [ wayland_scanner_0_9_6 ];
-    features = mkFeatures wayland_client_0_9_6_features;
-  };
-  wayland_client_0_9_6_features."egl".self_default = hasDefault wayland_client_0_9_6_features;
-  wayland_client_0_9_6_features."cursor".self_default = hasDefault wayland_client_0_9_6_features;
-  bitflags_0_7_0_features."default".from_wayland_client_0_9_6__default = true;
-  libc_0_2_23_features."default".from_wayland_client_0_9_6__default = true;
-  wayland_sys_0_9_6_features."client".from_wayland_client_0_9_6 = true;
-  wayland_sys_0_9_6_features."cursor".from_wayland_client_0_9_6__cursor = hasFeature (wayland_client_0_9_6_features."cursor" or {});
-  wayland_sys_0_9_6_features."dlopen".from_wayland_client_0_9_6__dlopen = hasFeature (wayland_client_0_9_6_features."dlopen" or {});
-  wayland_sys_0_9_6_features."egl".from_wayland_client_0_9_6__egl = hasFeature (wayland_client_0_9_6_features."egl" or {});
-  wayland_sys_0_9_6_features."default".from_wayland_client_0_9_6__default = true;
-  wayland_kbd_0_9_0 = wayland_kbd_0_9_0_ rec {
-    dependencies = [ bitflags_0_7_0 dlib_0_3_1 lazy_static_0_2_8 memmap_0_4_0 wayland_client_0_9_6 ];
-  };
-  bitflags_0_7_0_features."default".from_wayland_kbd_0_9_0__default = true;
-  dlib_0_3_1_features."default".from_wayland_kbd_0_9_0__default = true;
-  lazy_static_0_2_8_features."default".from_wayland_kbd_0_9_0__default = true;
-  memmap_0_4_0_features."default".from_wayland_kbd_0_9_0__default = true;
-  wayland_client_0_9_6_features."default".from_wayland_kbd_0_9_0__default = true;
-  wayland_scanner_0_9_6 = wayland_scanner_0_9_6_ rec {
-    dependencies = [ xml_rs_0_3_6 ];
-  };
-  xml_rs_0_3_6_features."default".from_wayland_scanner_0_9_6__default = true;
-  wayland_sys_0_6_0 = wayland_sys_0_6_0_ rec {
-    dependencies = [ dlib_0_3_1 lazy_static_0_1_16 ]
-      ++ (if lib.lists.any (x: x == "lazy_static") features then [lazy_static_0_1_16] else []);
-    features = mkFeatures wayland_sys_0_6_0_features;
-  };
-  wayland_sys_0_6_0_features."".self = true;
-  wayland_sys_0_6_0_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
-  wayland_sys_0_6_0_features."libc".self_server = hasFeature (wayland_sys_0_6_0_features."server" or {});
-  dlib_0_3_1_features."dlopen".from_wayland_sys_0_6_0__dlopen = hasFeature (wayland_sys_0_6_0_features."dlopen" or {});
-  dlib_0_3_1_features."default".from_wayland_sys_0_6_0__default = true;
-  lazy_static_0_1_16_features."default".from_wayland_sys_0_6_0__default = true;
-  libc_0_0_0_features."default".from_wayland_sys_0_6_0__default = true;
-  wayland_sys_0_9_6 = wayland_sys_0_9_6_ rec {
-    dependencies = [ dlib_0_3_1 lazy_static_0_2_8 ]
-      ++ (if lib.lists.any (x: x == "lazy_static") features then [lazy_static_0_2_8] else []);
-    features = mkFeatures wayland_sys_0_9_6_features;
-  };
-  wayland_sys_0_9_6_features."".self = true;
-  wayland_sys_0_9_6_features."lazy_static".self_dlopen = hasFeature (wayland_sys_0_9_6_features."dlopen" or {});
-  wayland_sys_0_9_6_features."libc".self_server = hasFeature (wayland_sys_0_9_6_features."server" or {});
-  dlib_0_3_1_features."dlopen".from_wayland_sys_0_9_6__dlopen = hasFeature (wayland_sys_0_9_6_features."dlopen" or {});
-  dlib_0_3_1_features."default".from_wayland_sys_0_9_6__default = true;
-  lazy_static_0_2_8_features."default".from_wayland_sys_0_9_6__default = true;
-  libc_0_0_0_features."default".from_wayland_sys_0_9_6__default = true;
-  wc_lock_0_1_0 = wc_lock_0_1_0_ rec {
-    dependencies = [ byteorder_0_5_3 clap_2_24_2 libc_0_2_23 tempfile_2_1_5 wayland_client_0_9_6 wayland_kbd_0_9_0 wayland_sys_0_6_0 ];
-    buildDependencies = [ gcc_0_3_50 ];
-  };
-  byteorder_0_5_3_features."default".from_wc_lock_0_1_0__default = true;
-  clap_2_24_2_features."default".from_wc_lock_0_1_0__default = true;
-  libc_0_2_23_features."default".from_wc_lock_0_1_0__default = true;
-  tempfile_2_1_5_features."default".from_wc_lock_0_1_0__default = true;
-  wayland_client_0_9_6_features."cursor".from_wc_lock_0_1_0 = true;
-  wayland_client_0_9_6_features."dlopen".from_wc_lock_0_1_0 = true;
-  wayland_client_0_9_6_features."default".from_wc_lock_0_1_0__default = true;
-  wayland_kbd_0_9_0_features."default".from_wc_lock_0_1_0__default = true;
-  wayland_sys_0_6_0_features."client".from_wc_lock_0_1_0 = true;
-  wayland_sys_0_6_0_features."dlopen".from_wc_lock_0_1_0 = true;
-  wayland_sys_0_6_0_features."default".from_wc_lock_0_1_0__default = true;
-  winapi_0_2_8 = winapi_0_2_8_ rec {};
-  winapi_build_0_1_1 = winapi_build_0_1_1_ rec {};
-  xml_rs_0_3_6 = xml_rs_0_3_6_ rec {
-    dependencies = [ bitflags_0_7_0 ];
-  };
-  bitflags_0_7_0_features."default".from_xml_rs_0_3_6__default = true;
+  wc_lock = f: wc_lock_0_2_1 { features = wc_lock_0_2_1_features { wc_lock_0_2_1 = f; }; };
+  ansi_term_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "ansi_term";
+    version = "0.9.0";
+    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" ];
+    sha256 = "1vcd8m2hglrdi4zmqnkkz5zy3c73ifgii245k7vj6qr5dzpn9hij";
+    inherit dependencies buildDependencies features;
+  };
+  atty_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "atty";
+    version = "0.2.2";
+    authors = [ "softprops <d.tangren@gmail.com>" ];
+    sha256 = "05c6jvrxljp4s1aycgq2z3y56f7f5yvc56v25cqlmpc1qx65z7ba";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_7_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.7.0";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1hr72xg5slm0z4pxs2hiy4wcyx3jva70h58b7mid8l0a4c8f7gn5";
+    inherit dependencies buildDependencies features;
+  };
+  bitflags_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "bitflags";
+    version = "0.8.2";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0whaj3969ysqxzk620sk1isvq6vh85516f2fplvqjrw3syz44sb2";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_0_5_3_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "0.5.3";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "0zsr6b0m0yl5c0yy92nq7srfpczd1dx1xqcx3rlm5fbl8si9clqx";
+    inherit dependencies buildDependencies features;
+  };
+  byteorder_1_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "byteorder";
+    version = "1.1.0";
+    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
+    sha256 = "1i2n0161jm00zvzh4bncgv9zrwa6ydbxdn5j4bx0wwn7rvi9zycp";
+    inherit dependencies buildDependencies features;
+  };
+  cc_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "cc";
+    version = "1.0.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1s5ha0k6cdy1049a5kpzvhnjc9hjvi18zrcr5dmbqpd03ag751g1";
+    inherit dependencies buildDependencies features;
+  };
+  clap_2_24_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "clap";
+    version = "2.24.2";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
+    sha256 = "0028bkzafprs6n7ing8lnf7iss2a2zq17qmgadipgdfgvww43rmv";
+    inherit dependencies buildDependencies features;
+  };
+  coco_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "coco";
+    version = "0.1.1";
+    authors = [ "Stjepan Glavina <stjepang@gmail.com>" ];
+    sha256 = "0hvj4jaj9y6i38c4dkii8nqq98cgx3kyx78cjqkdvk0aqq5sfr94";
+    inherit dependencies buildDependencies features;
+  };
+  color_quant_1_0_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "color_quant";
+    version = "1.0.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0jwr40lr115zm2bydk1wja12gcxrmgsx0n1z1pipq00sab71maaj";
+    inherit dependencies buildDependencies features;
+  };
+  dbus_0_5_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dbus";
+    version = "0.5.4";
+    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+    sha256 = "0qr62splq38b8vfjvpcpk9ph21d63ya7vd2vifs5wc8jzwc309yn";
+    inherit dependencies buildDependencies features;
+  };
+  dlib_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dlib";
+    version = "0.3.1";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "11mhh6g9vszp2ay3r46x4capnnmvvhx5hcp74bapxjhiixqjfvkr";
+    inherit dependencies buildDependencies features;
+  };
+  dtoa_0_4_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "dtoa";
+    version = "0.4.1";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0mgg4r90yby68qg7y8csbclhsm53ac26vsyq615viq535plllhzw";
+    inherit dependencies buildDependencies features;
+  };
+  either_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "either";
+    version = "1.2.0";
+    authors = [ "bluss" ];
+    sha256 = "0l72xaf1kwzgbl3andf3d2ggz7km9059rbmp90iywww8inlnqppp";
+    inherit dependencies buildDependencies features;
+  };
+  enum_primitive_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "enum_primitive";
+    version = "0.1.1";
+    authors = [ "Anders Kaseorg <andersk@mit.edu>" ];
+    sha256 = "1a225rlsz7sz3nn14dar71kp2f9v08s3rwl6j55xp51mv01f695y";
+    inherit dependencies buildDependencies features;
+  };
+  error_chain_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "error-chain";
+    version = "0.10.0";
+    authors = [ "Brian Anderson <banderson@mozilla.com>" "Paul Colomiets <paul@colomiets.name>" "Colin Kiegel <kiegel@gmx.de>" "Yamakaky <yamakaky@yamaworld.fr>" ];
+    sha256 = "1xxbzd8cjlpzsb9fsih7mdnndhzrvykj0w77yg90qc85az1xwy5z";
+    inherit dependencies buildDependencies features;
+  };
+  flate2_0_2_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "flate2";
+    version = "0.2.20";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "1am0d2vmqym1vcg7rvv516vpcrbhdn1jisy0q03r3nbzdzh54ppl";
+    inherit dependencies buildDependencies features;
+  };
+  fs2_0_2_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "fs2";
+    version = "0.2.5";
+    authors = [ "Dan Burkert <dan@danburkert.com>" ];
+    sha256 = "0j6l5r95jigbl0lgkm69c82dzq10jipjbm9qnni147hb45gyw790";
+    inherit dependencies buildDependencies features;
+  };
+  futures_0_1_16_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "futures";
+    version = "0.1.16";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0ndk8cl6l600a95q8il2c3y38jz50nhfsczps0nziadqdd45gy2b";
+    inherit dependencies buildDependencies features;
+  };
+  gcc_0_3_50_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gcc";
+    version = "0.3.50";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "032izcbbyiakv9ck5j3s27p3ddx4468n7qpaxgwi5iswmimjaaj0";
+    inherit dependencies buildDependencies features;
+  };
+  gif_0_9_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "gif";
+    version = "0.9.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "0dl76jrn6127w3bdg2b58p5psf8fpnbzdxdkw1i35ac8dn4vxcqa";
+    inherit dependencies buildDependencies features;
+  };
+  glob_0_2_11_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "glob";
+    version = "0.2.11";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "104389jjxs8r2f5cc9p0axhjmndgln60ih5x4f00ccgg9d3zarlf";
+    inherit dependencies buildDependencies features;
+  };
+  image_0_10_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "image";
+    version = "0.10.4";
+    authors = [ "ccgn" "bvssvni <bvssvni@gmail.com>" "nwin" "TyOverby <ty@pre-alpha.com>" ];
+    sha256 = "1pwrs7k5760b38i1lg872x9q2zc6xvhs7mjhlzvjnr5p85zx2fbw";
+    libPath = "./src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  inflate_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "inflate";
+    version = "0.1.1";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "112kh9hjcjjxdybl032mdhpwnr3qxw8j0ch6hwanwpcf3gz42g1h";
+    inherit dependencies buildDependencies features;
+  };
+  itoa_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "itoa";
+    version = "0.3.1";
+    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
+    sha256 = "0jp1wvfw0qqbyz0whbycp7xr5nx1ds5plh4wsfyj503xmjf9ab4k";
+    inherit dependencies buildDependencies features;
+  };
+  jpeg_decoder_0_1_13_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "jpeg-decoder";
+    version = "0.1.13";
+    authors = [ "Ulf Nilsson <kaksmet@gmail.com>" ];
+    sha256 = "0w16gbywlm9p0p3wx34b85q4d1izrx89afcsxlc6g11cx2js4fa2";
+    inherit dependencies buildDependencies features;
+  };
+  kernel32_sys_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "kernel32-sys";
+    version = "0.2.2";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
+    libName = "kernel32";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lazy_static_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lazy_static";
+    version = "0.2.8";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1xbpxx7cd5kl60g87g43q80jxyrsildhxfjc42jb1x4jncknpwbl";
+    inherit dependencies buildDependencies features;
+  };
+  libc_0_2_23_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libc";
+    version = "0.2.23";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1i29f6k26fmv81c5bjc6hw2j95sd01h9ad66qxdc755b24xfa9jm";
+    inherit dependencies buildDependencies features;
+  };
+  libdbus_sys_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libdbus-sys";
+    version = "0.1.1";
+    authors = [ "David Henningsson <diwic@ubuntu.com>" ];
+    sha256 = "14kpislv2zazmgv5f8by4zkgkjxd0cwab8z6621kskjdwyir1wpy";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  libloading_0_3_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "libloading";
+    version = "0.3.4";
+    authors = [ "Simonas Kazlauskas <libloading@kazlauskas.me>" ];
+    sha256 = "1f2vy32cr434n638nv8sdf05iwa53q9q5ahlcpw1l9ywh1bcbhf1";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  lzw_0_10_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "lzw";
+    version = "0.10.0";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1cfsy2w26kbz9bjaqp9dh1wyyh47rpmhwvj4jpc1rmffbf438fvb";
+    inherit dependencies buildDependencies features;
+  };
+  memmap_0_4_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "memmap";
+    version = "0.4.0";
+    authors = [ "Dan Burkert <dan@danburkert.com>" ];
+    sha256 = "0q2gm5p8n9najc8kccbxxkannmnjh85rin4k8d4y1kg5ymdp6kll";
+    inherit dependencies buildDependencies features;
+  };
+  metadeps_1_1_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "metadeps";
+    version = "1.1.2";
+    authors = [ "Josh Triplett <josh@joshtriplett.org>" ];
+    sha256 = "00dpxjls9fq6fs5gr9v3hkqxmb1zwnhh8b56q3dnzghppjf3ivk3";
+    inherit dependencies buildDependencies features;
+  };
+  miniz_sys_0_1_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "miniz-sys";
+    version = "0.1.10";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "11vg6phafxil87nbxgrlhcx5hjr3145wsbwwkfmibvnmzxfdmvln";
+    libPath = "lib.rs";
+    libName = "miniz_sys";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  num_bigint_0_1_40_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-bigint";
+    version = "0.1.40";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0pkxd9mb4chdbipprxjc8ll7kjh79n278s2z663zmd80yg5xi788";
+    inherit dependencies buildDependencies features;
+  };
+  num_integer_0_1_35_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-integer";
+    version = "0.1.35";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0xybj8isi9b6wc646d5rc043i8l8j6wy0vrl4pn995qms9fxbbcc";
+    inherit dependencies buildDependencies features;
+  };
+  num_iter_0_1_34_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-iter";
+    version = "0.1.34";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "02cld7x9dzbqbs6sxxzq1i22z3awlcd6ljkgvhkfr9rsnaxphzl9";
+    inherit dependencies buildDependencies features;
+  };
+  num_rational_0_1_39_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-rational";
+    version = "0.1.39";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1qsacdfp97zgpajc2pgbrbga3yag1f0k7yz0gi78vd165gxdwk3m";
+    inherit dependencies buildDependencies features;
+  };
+  num_traits_0_1_37_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num-traits";
+    version = "0.1.37";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rwzfmdjq6iz6plva2gi7agvy1w9sjs7aqjh0p115w57xiix2224";
+    inherit dependencies buildDependencies features;
+  };
+  num_cpus_1_6_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "num_cpus";
+    version = "1.6.2";
+    authors = [ "Sean McArthur <sean.monstar@gmail.com>" ];
+    sha256 = "0wxfzxsk05xbkph5qcvdqyi334zn0pnpahzi7n7iagxbb68145rm";
+    inherit dependencies buildDependencies features;
+  };
+  phf_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "11m2rzm2s8s35m0s97gjxxb181xz352kjlhr387xj5c8q3qp5afg";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  phf_codegen_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_codegen";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0kgy8s2q4zr0iqcm21mgq4ppc45wy6z7b5wn98xyfsrcad6lwmmj";
+    inherit dependencies buildDependencies features;
+  };
+  phf_generator_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_generator";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "1jxjfzc6d6d4l9nv0r2bb66if5brk9lnncmg4dpjjifn6zhhqd9g";
+    inherit dependencies buildDependencies features;
+  };
+  phf_shared_0_7_21_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "phf_shared";
+    version = "0.7.21";
+    authors = [ "Steven Fackler <sfackler@gmail.com>" ];
+    sha256 = "0lxpg3wgxfhzfalmf9ha9my1lsvfjy74ah9f6mfw88xlp545jlln";
+    libPath = "src/lib.rs";
+    inherit dependencies buildDependencies features;
+  };
+  pkg_config_0_3_9_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "pkg-config";
+    version = "0.3.9";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "06k8fxgrsrxj8mjpjcq1n7mn2p1shpxif4zg9y5h09c7vy20s146";
+    inherit dependencies buildDependencies features;
+  };
+  png_0_5_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "png";
+    version = "0.5.2";
+    authors = [ "nwin <nwin@users.noreply.github.com>" ];
+    sha256 = "1pgann3f1ysgf8y1acw86v4s3ji1xk85ri353biyvh4i1cpn1g3q";
+    inherit dependencies buildDependencies features;
+  };
+  rand_0_3_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rand";
+    version = "0.3.15";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "1fs30rc1xic40s1n7l3y7pxzfifpy03mgrvhy5ggp5p7zjfv3rr8";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_0_8_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon";
+    version = "0.8.2";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
+    sha256 = "0d0mddg1k75hb9138pn8lysy2095jijrinskqbpgfr73s0jx6dq8";
+    inherit dependencies buildDependencies features;
+  };
+  rayon_core_1_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rayon-core";
+    version = "1.2.1";
+    authors = [ "Niko Matsakis <niko@alum.mit.edu>" "Josh Stone <cuviper@gmail.com>" ];
+    sha256 = "12xv2r0dqrgvla24bl5mfvcw0599dlhrj0mx620nq95nyds753kk";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_serialize_0_3_24_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc-serialize";
+    version = "0.3.24";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "0rfk6p66mqkd3g36l0ddlv2rvnp1mp3lrq5frq9zz5cbnz5pmmxn";
+    inherit dependencies buildDependencies features;
+  };
+  rustc_version_0_1_7_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "rustc_version";
+    version = "0.1.7";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "0plm9pbyvcwfibd0kbhzil9xmr1bvqi8fgwlfw0x4vali8s6s99p";
+    inherit dependencies buildDependencies features;
+  };
+  scoped_threadpool_0_1_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scoped_threadpool";
+    version = "0.1.8";
+    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
+    sha256 = "1al42hqbbijpah9bc6hw9c49nhnyrc0sj274ja1q3k9305c3s5a6";
+    inherit dependencies buildDependencies features;
+  };
+  scopeguard_0_3_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "scopeguard";
+    version = "0.3.2";
+    authors = [ "bluss" ];
+    sha256 = "0xlvfawva4fnp6kwr5xjwf0q2d1w6di81nhfby1sa55xj1ia5zs2";
+    inherit dependencies buildDependencies features;
+  };
+  semver_0_1_20_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "semver";
+    version = "0.1.20";
+    authors = [ "The Rust Project Developers" ];
+    sha256 = "05cdig0071hls2k8lxbqmyqpl0zjmc53i2d43mwzps033b8njh4n";
+    inherit dependencies buildDependencies features;
+  };
+  serde_0_9_15_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde";
+    version = "0.9.15";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0rlflkc57kvy69hnhj4arfsj7ic4hpihxsb00zg5lkdxfj5qjx9b";
+    inherit dependencies buildDependencies features;
+  };
+  serde_json_0_9_10_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "serde_json";
+    version = "0.9.10";
+    authors = [ "Erick Tryzelaar <erick.tryzelaar@gmail.com>" ];
+    sha256 = "0g6bxlfnvf2miicnsizyrxm686rfval6gbss1i2qcna8msfwc005";
+    inherit dependencies buildDependencies features;
+  };
+  siphasher_0_2_2_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "siphasher";
+    version = "0.2.2";
+    authors = [ "Frank Denis <github@pureftpd.org>" ];
+    sha256 = "0iyx7nlzfny9ly1634a6zcq0yvrinhxhypwas4p8ry3zqnn76qqr";
+    inherit dependencies buildDependencies features;
+  };
+  strsim_0_6_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "strsim";
+    version = "0.6.0";
+    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
+    sha256 = "1lz85l6y68hr62lv4baww29yy7g8pg20dlr0lbaswxmmcb0wl7gd";
+    inherit dependencies buildDependencies features;
+  };
+  target_build_utils_0_3_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "target_build_utils";
+    version = "0.3.1";
+    authors = [ "Simonas Kazlauskas <target_build_utils@kazlauskas.me>" ];
+    sha256 = "1b450nyxlbgicp2p45mhxiv6yv0z7s4iw01lsaqh3v7b4bm53flj";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  tempfile_2_1_5_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "tempfile";
+    version = "2.1.5";
+    authors = [ "Steven Allen <steven@stebalien.com>" ];
+    sha256 = "1yz8aaj78z9gsn4b71y0m6fa5bnxhqafcczhxvmwra56k943aqkw";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  term_size_0_3_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "term_size";
+    version = "0.3.0";
+    authors = [ "Kevin K. <kbknapp@gmail.com>" "Benjamin Sago <ogham@bsago.me>" ];
+    sha256 = "054d5avad49sy5nfaaaphai4kv4rmdh6q0npchnvdhpxp02lcfhs";
+    inherit dependencies buildDependencies features;
+  };
+  toml_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "toml";
+    version = "0.2.1";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
+    sha256 = "0p4rkaqhmk4fp6iqpxfgp3p98hxhbs2wmla3fq531n875h922yqs";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_segmentation_1_2_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-segmentation";
+    version = "1.2.0";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "0yz43x7wrhr3n7a2zsinx3r60yxsdqicg8a5kycyyhdaq1zmiz1y";
+    inherit dependencies buildDependencies features;
+  };
+  unicode_width_0_1_4_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "unicode-width";
+    version = "0.1.4";
+    authors = [ "kwantam <kwantam@gmail.com>" ];
+    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
+    inherit dependencies buildDependencies features;
+  };
+  vec_map_0_8_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "vec_map";
+    version = "0.8.0";
+    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
+    sha256 = "07sgxp3cf1a4cxm9n3r27fcvqmld32bl2576mrcahnvm34j11xay";
+    inherit dependencies buildDependencies features;
+  };
+  way_cooler_client_helpers_0_1_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "way-cooler-client-helpers";
+    version = "0.1.0";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "0749lh5crd0rhq4dxij9mb3y5902laazjd01l6ci5782bjfk4s39";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_client_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-client";
+    version = "0.9.6";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1908h6ilvq2cxph1lxv1vzrb3dcfx4x6pf6pszxwifsfqva8nm34";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_kbd_0_9_0_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-kbd";
+    version = "0.9.0";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1x0f7n79hjwf5fclf62fpzjp05xdzc93xw84zgyrn8f1hill3qhj";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_scanner_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-scanner";
+    version = "0.9.6";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "1w5cyc48g4x5w3rakb4sji5328rl5yph1abmjbh5h4slkm4n76g1";
+    inherit dependencies buildDependencies features;
+  };
+  wayland_sys_0_9_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wayland-sys";
+    version = "0.9.6";
+    authors = [ "Victor Berger <victor.berger@m4x.org>" ];
+    sha256 = "0izw50pmj1r10hmr29gi8ps01avs6zjwisywijlq7wr268h6yxcg";
+    inherit dependencies buildDependencies features;
+  };
+  wc_lock_0_2_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "wc-lock";
+    version = "0.2.1";
+    authors = [ "Timidger <APragmaticPlace@gmail.com>" ];
+    sha256 = "0ikmir7azihxiyzgb0wnvk81yinmn2l6k93bnb1qg4k704zcyq84";
+    build = "build.rs";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_0_2_8_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi";
+    version = "0.2.8";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
+    inherit dependencies buildDependencies features;
+  };
+  winapi_build_0_1_1_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "winapi-build";
+    version = "0.1.1";
+    authors = [ "Peter Atashian <retep998@gmail.com>" ];
+    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
+    libName = "build";
+    inherit dependencies buildDependencies features;
+  };
+  xml_rs_0_3_6_ = { dependencies?[], buildDependencies?[], features?[] }: buildRustCrate {
+    crateName = "xml-rs";
+    version = "0.3.6";
+    authors = [ "Vladimir Matveev <vladimir.matweev@gmail.com>" ];
+    sha256 = "1g1cclib7fj900m4669vxlz45lxcq0m36g7cd8chl494c2xsgj15";
+    libPath = "src/lib.rs";
+    libName = "xml";
+    crateBin = [ {  name = "xml-analyze";  path = "src/analyze.rs"; } ];
+    inherit dependencies buildDependencies features;
+  };
+  ansi_term_0_9_0 = { features?(ansi_term_0_9_0_features {}) }: ansi_term_0_9_0_ {};
+  ansi_term_0_9_0_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = (f.ansi_term_0_9_0.default or true);
+  }) [];
+  atty_0_2_2 = { features?(atty_0_2_2_features {}) }: atty_0_2_2_ {
+    dependencies = (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_23 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+  };
+  atty_0_2_2_features = f: updateFeatures f (rec {
+    atty_0_2_2.default = (f.atty_0_2_2.default or true);
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  bitflags_0_7_0 = { features?(bitflags_0_7_0_features {}) }: bitflags_0_7_0_ {};
+  bitflags_0_7_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = (f.bitflags_0_7_0.default or true);
+  }) [];
+  bitflags_0_8_2 = { features?(bitflags_0_8_2_features {}) }: bitflags_0_8_2_ {
+    features = mkFeatures (features.bitflags_0_8_2 or {});
+  };
+  bitflags_0_8_2_features = f: updateFeatures f (rec {
+    bitflags_0_8_2.default = (f.bitflags_0_8_2.default or true);
+    bitflags_0_8_2.i128 =
+      (f.bitflags_0_8_2.i128 or false) ||
+      (f.bitflags_0_8_2.unstable or false) ||
+      (bitflags_0_8_2.unstable or false);
+  }) [];
+  byteorder_0_5_3 = { features?(byteorder_0_5_3_features {}) }: byteorder_0_5_3_ {
+    features = mkFeatures (features.byteorder_0_5_3 or {});
+  };
+  byteorder_0_5_3_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = (f.byteorder_0_5_3.default or true);
+    byteorder_0_5_3.std =
+      (f.byteorder_0_5_3.std or false) ||
+      (f.byteorder_0_5_3.default or false) ||
+      (byteorder_0_5_3.default or false);
+  }) [];
+  byteorder_1_1_0 = { features?(byteorder_1_1_0_features {}) }: byteorder_1_1_0_ {
+    features = mkFeatures (features.byteorder_1_1_0 or {});
+  };
+  byteorder_1_1_0_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = (f.byteorder_1_1_0.default or true);
+    byteorder_1_1_0.std =
+      (f.byteorder_1_1_0.std or false) ||
+      (f.byteorder_1_1_0.default or false) ||
+      (byteorder_1_1_0.default or false);
+  }) [];
+  cc_1_0_0 = { features?(cc_1_0_0_features {}) }: cc_1_0_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.cc_1_0_0 or {});
+  };
+  cc_1_0_0_features = f: updateFeatures f (rec {
+    cc_1_0_0.default = (f.cc_1_0_0.default or true);
+    cc_1_0_0.rayon =
+      (f.cc_1_0_0.rayon or false) ||
+      (f.cc_1_0_0.parallel or false) ||
+      (cc_1_0_0.parallel or false);
+  }) [];
+  clap_2_24_2 = { features?(clap_2_24_2_features {}) }: clap_2_24_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_8_2 unicode_segmentation_1_2_0 unicode_width_0_1_4 vec_map_0_8_0 ]
+      ++ (if features.clap_2_24_2.ansi_term or false then [ ansi_term_0_9_0 ] else [])
+      ++ (if features.clap_2_24_2.atty or false then [ atty_0_2_2 ] else [])
+      ++ (if features.clap_2_24_2.strsim or false then [ strsim_0_6_0 ] else [])
+      ++ (if features.clap_2_24_2.term_size or false then [ term_size_0_3_0 ] else []));
+    features = mkFeatures (features.clap_2_24_2 or {});
+  };
+  clap_2_24_2_features = f: updateFeatures f (rec {
+    ansi_term_0_9_0.default = true;
+    atty_0_2_2.default = true;
+    bitflags_0_8_2.default = true;
+    clap_2_24_2.ansi_term =
+      (f.clap_2_24_2.ansi_term or false) ||
+      (f.clap_2_24_2.color or false) ||
+      (clap_2_24_2.color or false);
+    clap_2_24_2.atty =
+      (f.clap_2_24_2.atty or false) ||
+      (f.clap_2_24_2.color or false) ||
+      (clap_2_24_2.color or false);
+    clap_2_24_2.clippy =
+      (f.clap_2_24_2.clippy or false) ||
+      (f.clap_2_24_2.lints or false) ||
+      (clap_2_24_2.lints or false);
+    clap_2_24_2.color =
+      (f.clap_2_24_2.color or false) ||
+      (f.clap_2_24_2.default or false) ||
+      (clap_2_24_2.default or false);
+    clap_2_24_2.default = (f.clap_2_24_2.default or true);
+    clap_2_24_2.strsim =
+      (f.clap_2_24_2.strsim or false) ||
+      (f.clap_2_24_2.suggestions or false) ||
+      (clap_2_24_2.suggestions or false);
+    clap_2_24_2.suggestions =
+      (f.clap_2_24_2.suggestions or false) ||
+      (f.clap_2_24_2.default or false) ||
+      (clap_2_24_2.default or false);
+    clap_2_24_2.term_size =
+      (f.clap_2_24_2.term_size or false) ||
+      (f.clap_2_24_2.wrap_help or false) ||
+      (clap_2_24_2.wrap_help or false);
+    clap_2_24_2.wrap_help =
+      (f.clap_2_24_2.wrap_help or false) ||
+      (f.clap_2_24_2.default or false) ||
+      (clap_2_24_2.default or false);
+    clap_2_24_2.yaml-rust =
+      (f.clap_2_24_2.yaml-rust or false) ||
+      (f.clap_2_24_2.yaml or false) ||
+      (clap_2_24_2.yaml or false);
+    strsim_0_6_0.default = true;
+    term_size_0_3_0.default = true;
+    unicode_segmentation_1_2_0.default = true;
+    unicode_width_0_1_4.default = true;
+    vec_map_0_8_0.default = true;
+  }) [ ansi_term_0_9_0_features atty_0_2_2_features bitflags_0_8_2_features strsim_0_6_0_features term_size_0_3_0_features unicode_segmentation_1_2_0_features unicode_width_0_1_4_features vec_map_0_8_0_features ];
+  coco_0_1_1 = { features?(coco_0_1_1_features {}) }: coco_0_1_1_ {
+    dependencies = mapFeatures features ([ either_1_2_0 scopeguard_0_3_2 ]);
+    features = mkFeatures (features.coco_0_1_1 or {});
+  };
+  coco_0_1_1_features = f: updateFeatures f (rec {
+    coco_0_1_1.default = (f.coco_0_1_1.default or true);
+    either_1_2_0.default = true;
+    scopeguard_0_3_2.default = true;
+  }) [ either_1_2_0_features scopeguard_0_3_2_features ];
+  color_quant_1_0_0 = { features?(color_quant_1_0_0_features {}) }: color_quant_1_0_0_ {};
+  color_quant_1_0_0_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = (f.color_quant_1_0_0.default or true);
+  }) [];
+  dbus_0_5_4 = { features?(dbus_0_5_4_features {}) }: dbus_0_5_4_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 libdbus_sys_0_1_1 ]);
+    features = mkFeatures (features.dbus_0_5_4 or {});
+  };
+  dbus_0_5_4_features = f: updateFeatures f (rec {
+    dbus_0_5_4.default = (f.dbus_0_5_4.default or true);
+    libc_0_2_23.default = true;
+    libdbus_sys_0_1_1.default = true;
+  }) [ libc_0_2_23_features libdbus_sys_0_1_1_features ];
+  dlib_0_3_1 = { features?(dlib_0_3_1_features {}) }: dlib_0_3_1_ {
+    dependencies = mapFeatures features ([ libloading_0_3_4 ]);
+    features = mkFeatures (features.dlib_0_3_1 or {});
+  };
+  dlib_0_3_1_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = (f.dlib_0_3_1.default or true);
+    libloading_0_3_4.default = true;
+  }) [ libloading_0_3_4_features ];
+  dtoa_0_4_1 = { features?(dtoa_0_4_1_features {}) }: dtoa_0_4_1_ {};
+  dtoa_0_4_1_features = f: updateFeatures f (rec {
+    dtoa_0_4_1.default = (f.dtoa_0_4_1.default or true);
+  }) [];
+  either_1_2_0 = { features?(either_1_2_0_features {}) }: either_1_2_0_ {
+    features = mkFeatures (features.either_1_2_0 or {});
+  };
+  either_1_2_0_features = f: updateFeatures f (rec {
+    either_1_2_0.default = (f.either_1_2_0.default or true);
+    either_1_2_0.use_std =
+      (f.either_1_2_0.use_std or false) ||
+      (f.either_1_2_0.default or false) ||
+      (either_1_2_0.default or false);
+  }) [];
+  enum_primitive_0_1_1 = { features?(enum_primitive_0_1_1_features {}) }: enum_primitive_0_1_1_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
+  };
+  enum_primitive_0_1_1_features = f: updateFeatures f (rec {
+    enum_primitive_0_1_1.default = (f.enum_primitive_0_1_1.default or true);
+    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or false);
+  }) [ num_traits_0_1_37_features ];
+  error_chain_0_10_0 = { features?(error_chain_0_10_0_features {}) }: error_chain_0_10_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.error_chain_0_10_0 or {});
+  };
+  error_chain_0_10_0_features = f: updateFeatures f (rec {
+    error_chain_0_10_0.backtrace =
+      (f.error_chain_0_10_0.backtrace or false) ||
+      (f.error_chain_0_10_0.default or false) ||
+      (error_chain_0_10_0.default or false);
+    error_chain_0_10_0.default = (f.error_chain_0_10_0.default or true);
+    error_chain_0_10_0.example_generated =
+      (f.error_chain_0_10_0.example_generated or false) ||
+      (f.error_chain_0_10_0.default or false) ||
+      (error_chain_0_10_0.default or false);
+  }) [];
+  flate2_0_2_20 = { features?(flate2_0_2_20_features {}) }: flate2_0_2_20_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 ]
+      ++ (if features.flate2_0_2_20.miniz-sys or false then [ miniz_sys_0_1_10 ] else []));
+    features = mkFeatures (features.flate2_0_2_20 or {});
+  };
+  flate2_0_2_20_features = f: updateFeatures f (rec {
+    flate2_0_2_20.default = (f.flate2_0_2_20.default or true);
+    flate2_0_2_20.futures =
+      (f.flate2_0_2_20.futures or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    flate2_0_2_20.libz-sys =
+      (f.flate2_0_2_20.libz-sys or false) ||
+      (f.flate2_0_2_20.zlib or false) ||
+      (flate2_0_2_20.zlib or false);
+    flate2_0_2_20.miniz-sys =
+      (f.flate2_0_2_20.miniz-sys or false) ||
+      (f.flate2_0_2_20.default or false) ||
+      (flate2_0_2_20.default or false);
+    flate2_0_2_20.tokio-io =
+      (f.flate2_0_2_20.tokio-io or false) ||
+      (f.flate2_0_2_20.tokio or false) ||
+      (flate2_0_2_20.tokio or false);
+    libc_0_2_23.default = true;
+    miniz_sys_0_1_10.default = true;
+  }) [ libc_0_2_23_features miniz_sys_0_1_10_features ];
+  fs2_0_2_5 = { features?(fs2_0_2_5_features {}) }: fs2_0_2_5_ {
+    dependencies = mapFeatures features ([ kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ]);
+  };
+  fs2_0_2_5_features = f: updateFeatures f (rec {
+    fs2_0_2_5.default = (f.fs2_0_2_5.default or true);
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    winapi_0_2_8.default = true;
+  }) [ kernel32_sys_0_2_2_features libc_0_2_23_features winapi_0_2_8_features ];
+  futures_0_1_16 = { features?(futures_0_1_16_features {}) }: futures_0_1_16_ {
+    features = mkFeatures (features.futures_0_1_16 or {});
+  };
+  futures_0_1_16_features = f: updateFeatures f (rec {
+    futures_0_1_16.default = (f.futures_0_1_16.default or true);
+    futures_0_1_16.use_std =
+      (f.futures_0_1_16.use_std or false) ||
+      (f.futures_0_1_16.default or false) ||
+      (futures_0_1_16.default or false);
+    futures_0_1_16.with-deprecated =
+      (f.futures_0_1_16.with-deprecated or false) ||
+      (f.futures_0_1_16.default or false) ||
+      (futures_0_1_16.default or false);
+  }) [];
+  gcc_0_3_50 = { features?(gcc_0_3_50_features {}) }: gcc_0_3_50_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.gcc_0_3_50 or {});
+  };
+  gcc_0_3_50_features = f: updateFeatures f (rec {
+    gcc_0_3_50.default = (f.gcc_0_3_50.default or true);
+    gcc_0_3_50.rayon =
+      (f.gcc_0_3_50.rayon or false) ||
+      (f.gcc_0_3_50.parallel or false) ||
+      (gcc_0_3_50.parallel or false);
+  }) [];
+  gif_0_9_2 = { features?(gif_0_9_2_features {}) }: gif_0_9_2_ {
+    dependencies = mapFeatures features ([ color_quant_1_0_0 lzw_0_10_0 ]);
+    features = mkFeatures (features.gif_0_9_2 or {});
+  };
+  gif_0_9_2_features = f: updateFeatures f (rec {
+    color_quant_1_0_0.default = true;
+    gif_0_9_2.default = (f.gif_0_9_2.default or true);
+    gif_0_9_2.libc =
+      (f.gif_0_9_2.libc or false) ||
+      (f.gif_0_9_2.c_api or false) ||
+      (gif_0_9_2.c_api or false);
+    gif_0_9_2.raii_no_panic =
+      (f.gif_0_9_2.raii_no_panic or false) ||
+      (f.gif_0_9_2.default or false) ||
+      (gif_0_9_2.default or false);
+    lzw_0_10_0.default = true;
+  }) [ color_quant_1_0_0_features lzw_0_10_0_features ];
+  glob_0_2_11 = { features?(glob_0_2_11_features {}) }: glob_0_2_11_ {};
+  glob_0_2_11_features = f: updateFeatures f (rec {
+    glob_0_2_11.default = (f.glob_0_2_11.default or true);
+  }) [];
+  image_0_10_4 = { features?(image_0_10_4_features {}) }: image_0_10_4_ {
+    dependencies = mapFeatures features ([ byteorder_0_5_3 enum_primitive_0_1_1 glob_0_2_11 num_iter_0_1_34 num_rational_0_1_39 num_traits_0_1_37 ]
+      ++ (if features.image_0_10_4.gif or false then [ gif_0_9_2 ] else [])
+      ++ (if features.image_0_10_4.jpeg-decoder or false then [ jpeg_decoder_0_1_13 ] else [])
+      ++ (if features.image_0_10_4.png or false then [ png_0_5_2 ] else [])
+      ++ (if features.image_0_10_4.scoped_threadpool or false then [ scoped_threadpool_0_1_8 ] else []));
+    features = mkFeatures (features.image_0_10_4 or {});
+  };
+  image_0_10_4_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = true;
+    enum_primitive_0_1_1.default = true;
+    gif_0_9_2.default = true;
+    glob_0_2_11.default = true;
+    image_0_10_4.bmp =
+      (f.image_0_10_4.bmp or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false) ||
+      (f.image_0_10_4.ico or false) ||
+      (image_0_10_4.ico or false);
+    image_0_10_4.default = (f.image_0_10_4.default or true);
+    image_0_10_4.gif =
+      (f.image_0_10_4.gif or false) ||
+      (f.image_0_10_4.gif_codec or false) ||
+      (image_0_10_4.gif_codec or false);
+    image_0_10_4.gif_codec =
+      (f.image_0_10_4.gif_codec or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.hdr =
+      (f.image_0_10_4.hdr or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.ico =
+      (f.image_0_10_4.ico or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.jpeg =
+      (f.image_0_10_4.jpeg or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.jpeg-decoder =
+      (f.image_0_10_4.jpeg-decoder or false) ||
+      (f.image_0_10_4.jpeg or false) ||
+      (image_0_10_4.jpeg or false);
+    image_0_10_4.png =
+      (f.image_0_10_4.png or false) ||
+      (f.image_0_10_4.png_codec or false) ||
+      (image_0_10_4.png_codec or false);
+    image_0_10_4.png_codec =
+      (f.image_0_10_4.png_codec or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false) ||
+      (f.image_0_10_4.ico or false) ||
+      (image_0_10_4.ico or false);
+    image_0_10_4.ppm =
+      (f.image_0_10_4.ppm or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.scoped_threadpool =
+      (f.image_0_10_4.scoped_threadpool or false) ||
+      (f.image_0_10_4.hdr or false) ||
+      (image_0_10_4.hdr or false);
+    image_0_10_4.tga =
+      (f.image_0_10_4.tga or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.tiff =
+      (f.image_0_10_4.tiff or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    image_0_10_4.webp =
+      (f.image_0_10_4.webp or false) ||
+      (f.image_0_10_4.default or false) ||
+      (image_0_10_4.default or false);
+    jpeg_decoder_0_1_13.default = true;
+    num_iter_0_1_34.default = true;
+    num_rational_0_1_39.default = true;
+    num_traits_0_1_37.default = true;
+    png_0_5_2.default = true;
+    scoped_threadpool_0_1_8.default = true;
+  }) [ byteorder_0_5_3_features enum_primitive_0_1_1_features gif_0_9_2_features glob_0_2_11_features jpeg_decoder_0_1_13_features num_iter_0_1_34_features num_rational_0_1_39_features num_traits_0_1_37_features png_0_5_2_features scoped_threadpool_0_1_8_features ];
+  inflate_0_1_1 = { features?(inflate_0_1_1_features {}) }: inflate_0_1_1_ {
+    features = mkFeatures (features.inflate_0_1_1 or {});
+  };
+  inflate_0_1_1_features = f: updateFeatures f (rec {
+    inflate_0_1_1.default = (f.inflate_0_1_1.default or true);
+  }) [];
+  itoa_0_3_1 = { features?(itoa_0_3_1_features {}) }: itoa_0_3_1_ {};
+  itoa_0_3_1_features = f: updateFeatures f (rec {
+    itoa_0_3_1.default = (f.itoa_0_3_1.default or true);
+  }) [];
+  jpeg_decoder_0_1_13 = { features?(jpeg_decoder_0_1_13_features {}) }: jpeg_decoder_0_1_13_ {
+    dependencies = mapFeatures features ([ byteorder_1_1_0 ]
+      ++ (if features.jpeg_decoder_0_1_13.rayon or false then [ rayon_0_8_2 ] else []));
+    features = mkFeatures (features.jpeg_decoder_0_1_13 or {});
+  };
+  jpeg_decoder_0_1_13_features = f: updateFeatures f (rec {
+    byteorder_1_1_0.default = true;
+    jpeg_decoder_0_1_13.default = (f.jpeg_decoder_0_1_13.default or true);
+    jpeg_decoder_0_1_13.rayon =
+      (f.jpeg_decoder_0_1_13.rayon or false) ||
+      (f.jpeg_decoder_0_1_13.default or false) ||
+      (jpeg_decoder_0_1_13.default or false);
+    rayon_0_8_2.default = true;
+  }) [ byteorder_1_1_0_features rayon_0_8_2_features ];
+  kernel32_sys_0_2_2 = { features?(kernel32_sys_0_2_2_features {}) }: kernel32_sys_0_2_2_ {
+    dependencies = mapFeatures features ([ winapi_0_2_8 ]);
+    buildDependencies = mapFeatures features ([ winapi_build_0_1_1 ]);
+  };
+  kernel32_sys_0_2_2_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = (f.kernel32_sys_0_2_2.default or true);
+    winapi_0_2_8.default = true;
+    winapi_build_0_1_1.default = true;
+  }) [ winapi_0_2_8_features winapi_build_0_1_1_features ];
+  lazy_static_0_2_8 = { features?(lazy_static_0_2_8_features {}) }: lazy_static_0_2_8_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.lazy_static_0_2_8 or {});
+  };
+  lazy_static_0_2_8_features = f: updateFeatures f (rec {
+    lazy_static_0_2_8.default = (f.lazy_static_0_2_8.default or true);
+    lazy_static_0_2_8.nightly =
+      (f.lazy_static_0_2_8.nightly or false) ||
+      (f.lazy_static_0_2_8.spin_no_std or false) ||
+      (lazy_static_0_2_8.spin_no_std or false);
+    lazy_static_0_2_8.spin =
+      (f.lazy_static_0_2_8.spin or false) ||
+      (f.lazy_static_0_2_8.spin_no_std or false) ||
+      (lazy_static_0_2_8.spin_no_std or false);
+  }) [];
+  libc_0_2_23 = { features?(libc_0_2_23_features {}) }: libc_0_2_23_ {
+    features = mkFeatures (features.libc_0_2_23 or {});
+  };
+  libc_0_2_23_features = f: updateFeatures f (rec {
+    libc_0_2_23.default = (f.libc_0_2_23.default or true);
+    libc_0_2_23.use_std =
+      (f.libc_0_2_23.use_std or false) ||
+      (f.libc_0_2_23.default or false) ||
+      (libc_0_2_23.default or false);
+  }) [];
+  libdbus_sys_0_1_1 = { features?(libdbus_sys_0_1_1_features {}) }: libdbus_sys_0_1_1_ {
+    buildDependencies = mapFeatures features ([ metadeps_1_1_2 ]);};
+  libdbus_sys_0_1_1_features = f: updateFeatures f (rec {
+    libdbus_sys_0_1_1.default = (f.libdbus_sys_0_1_1.default or true);
+    metadeps_1_1_2.default = true;
+  }) [ metadeps_1_1_2_features ];
+  libloading_0_3_4 = { features?(libloading_0_3_4_features {}) }: libloading_0_3_4_ {
+    dependencies = mapFeatures features ([ lazy_static_0_2_8 ])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ target_build_utils_0_3_1 ]);
+  };
+  libloading_0_3_4_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    lazy_static_0_2_8.default = true;
+    libloading_0_3_4.default = (f.libloading_0_3_4.default or true);
+    target_build_utils_0_3_1.default = true;
+    winapi_0_2_8.default = true;
+  }) [ lazy_static_0_2_8_features target_build_utils_0_3_1_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  lzw_0_10_0 = { features?(lzw_0_10_0_features {}) }: lzw_0_10_0_ {
+    features = mkFeatures (features.lzw_0_10_0 or {});
+  };
+  lzw_0_10_0_features = f: updateFeatures f (rec {
+    lzw_0_10_0.default = (f.lzw_0_10_0.default or true);
+    lzw_0_10_0.raii_no_panic =
+      (f.lzw_0_10_0.raii_no_panic or false) ||
+      (f.lzw_0_10_0.default or false) ||
+      (lzw_0_10_0.default or false);
+  }) [];
+  memmap_0_4_0 = { features?(memmap_0_4_0_features {}) }: memmap_0_4_0_ {
+    dependencies = mapFeatures features ([ fs2_0_2_5 kernel32_sys_0_2_2 libc_0_2_23 winapi_0_2_8 ]);
+  };
+  memmap_0_4_0_features = f: updateFeatures f (rec {
+    fs2_0_2_5.default = true;
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    memmap_0_4_0.default = (f.memmap_0_4_0.default or true);
+    winapi_0_2_8.default = true;
+  }) [ fs2_0_2_5_features kernel32_sys_0_2_2_features libc_0_2_23_features winapi_0_2_8_features ];
+  metadeps_1_1_2 = { features?(metadeps_1_1_2_features {}) }: metadeps_1_1_2_ {
+    dependencies = mapFeatures features ([ error_chain_0_10_0 pkg_config_0_3_9 toml_0_2_1 ]);
+  };
+  metadeps_1_1_2_features = f: updateFeatures f (rec {
+    error_chain_0_10_0.default = (f.error_chain_0_10_0.default or false);
+    metadeps_1_1_2.default = (f.metadeps_1_1_2.default or true);
+    pkg_config_0_3_9.default = true;
+    toml_0_2_1.default = (f.toml_0_2_1.default or false);
+  }) [ error_chain_0_10_0_features pkg_config_0_3_9_features toml_0_2_1_features ];
+  miniz_sys_0_1_10 = { features?(miniz_sys_0_1_10_features {}) }: miniz_sys_0_1_10_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 ]);
+    buildDependencies = mapFeatures features ([ cc_1_0_0 ]);
+  };
+  miniz_sys_0_1_10_features = f: updateFeatures f (rec {
+    cc_1_0_0.default = true;
+    libc_0_2_23.default = true;
+    miniz_sys_0_1_10.default = (f.miniz_sys_0_1_10.default or true);
+  }) [ libc_0_2_23_features cc_1_0_0_features ];
+  num_bigint_0_1_40 = { features?(num_bigint_0_1_40_features {}) }: num_bigint_0_1_40_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]
+      ++ (if features.num_bigint_0_1_40.rand or false then [ rand_0_3_15 ] else [])
+      ++ (if features.num_bigint_0_1_40.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.num_bigint_0_1_40 or {});
+  };
+  num_bigint_0_1_40_features = f: updateFeatures f (rec {
+    num_bigint_0_1_40.default = (f.num_bigint_0_1_40.default or true);
+    num_bigint_0_1_40.rand =
+      (f.num_bigint_0_1_40.rand or false) ||
+      (f.num_bigint_0_1_40.default or false) ||
+      (num_bigint_0_1_40.default or false);
+    num_bigint_0_1_40.rustc-serialize =
+      (f.num_bigint_0_1_40.rustc-serialize or false) ||
+      (f.num_bigint_0_1_40.default or false) ||
+      (num_bigint_0_1_40.default or false);
+    num_integer_0_1_35.default = true;
+    num_traits_0_1_37.default = true;
+    rand_0_3_15.default = true;
+    rustc_serialize_0_3_24.default = true;
+  }) [ num_integer_0_1_35_features num_traits_0_1_37_features rand_0_3_15_features rustc_serialize_0_3_24_features ];
+  num_integer_0_1_35 = { features?(num_integer_0_1_35_features {}) }: num_integer_0_1_35_ {
+    dependencies = mapFeatures features ([ num_traits_0_1_37 ]);
+  };
+  num_integer_0_1_35_features = f: updateFeatures f (rec {
+    num_integer_0_1_35.default = (f.num_integer_0_1_35.default or true);
+    num_traits_0_1_37.default = true;
+  }) [ num_traits_0_1_37_features ];
+  num_iter_0_1_34 = { features?(num_iter_0_1_34_features {}) }: num_iter_0_1_34_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]);
+  };
+  num_iter_0_1_34_features = f: updateFeatures f (rec {
+    num_integer_0_1_35.default = true;
+    num_iter_0_1_34.default = (f.num_iter_0_1_34.default or true);
+    num_traits_0_1_37.default = true;
+  }) [ num_integer_0_1_35_features num_traits_0_1_37_features ];
+  num_rational_0_1_39 = { features?(num_rational_0_1_39_features {}) }: num_rational_0_1_39_ {
+    dependencies = mapFeatures features ([ num_integer_0_1_35 num_traits_0_1_37 ]
+      ++ (if features.num_rational_0_1_39.num-bigint or false then [ num_bigint_0_1_40 ] else [])
+      ++ (if features.num_rational_0_1_39.rustc-serialize or false then [ rustc_serialize_0_3_24 ] else []));
+    features = mkFeatures (features.num_rational_0_1_39 or {});
+  };
+  num_rational_0_1_39_features = f: updateFeatures f (rec {
+    num_bigint_0_1_40.default = true;
+    num_integer_0_1_35.default = true;
+    num_rational_0_1_39.bigint =
+      (f.num_rational_0_1_39.bigint or false) ||
+      (f.num_rational_0_1_39.default or false) ||
+      (num_rational_0_1_39.default or false);
+    num_rational_0_1_39.default = (f.num_rational_0_1_39.default or true);
+    num_rational_0_1_39.num-bigint =
+      (f.num_rational_0_1_39.num-bigint or false) ||
+      (f.num_rational_0_1_39.bigint or false) ||
+      (num_rational_0_1_39.bigint or false);
+    num_rational_0_1_39.rustc-serialize =
+      (f.num_rational_0_1_39.rustc-serialize or false) ||
+      (f.num_rational_0_1_39.default or false) ||
+      (num_rational_0_1_39.default or false);
+    num_traits_0_1_37.default = true;
+    rustc_serialize_0_3_24.default = true;
+  }) [ num_bigint_0_1_40_features num_integer_0_1_35_features num_traits_0_1_37_features rustc_serialize_0_3_24_features ];
+  num_traits_0_1_37 = { features?(num_traits_0_1_37_features {}) }: num_traits_0_1_37_ {};
+  num_traits_0_1_37_features = f: updateFeatures f (rec {
+    num_traits_0_1_37.default = (f.num_traits_0_1_37.default or true);
+  }) [];
+  num_cpus_1_6_2 = { features?(num_cpus_1_6_2_features {}) }: num_cpus_1_6_2_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 ]);
+  };
+  num_cpus_1_6_2_features = f: updateFeatures f (rec {
+    libc_0_2_23.default = true;
+    num_cpus_1_6_2.default = (f.num_cpus_1_6_2.default or true);
+  }) [ libc_0_2_23_features ];
+  phf_0_7_21 = { features?(phf_0_7_21_features {}) }: phf_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 ]);
+    features = mkFeatures (features.phf_0_7_21 or {});
+  };
+  phf_0_7_21_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = (f.phf_0_7_21.default or true);
+    phf_shared_0_7_21.core =
+      (f.phf_shared_0_7_21.core or false) ||
+      (phf_0_7_21.core or false) ||
+      (f.phf_0_7_21.core or false);
+    phf_shared_0_7_21.default = true;
+    phf_shared_0_7_21.unicase =
+      (f.phf_shared_0_7_21.unicase or false) ||
+      (phf_0_7_21.unicase or false) ||
+      (f.phf_0_7_21.unicase or false);
+  }) [ phf_shared_0_7_21_features ];
+  phf_codegen_0_7_21 = { features?(phf_codegen_0_7_21_features {}) }: phf_codegen_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_generator_0_7_21 phf_shared_0_7_21 ]);
+  };
+  phf_codegen_0_7_21_features = f: updateFeatures f (rec {
+    phf_codegen_0_7_21.default = (f.phf_codegen_0_7_21.default or true);
+    phf_generator_0_7_21.default = true;
+    phf_shared_0_7_21.default = true;
+  }) [ phf_generator_0_7_21_features phf_shared_0_7_21_features ];
+  phf_generator_0_7_21 = { features?(phf_generator_0_7_21_features {}) }: phf_generator_0_7_21_ {
+    dependencies = mapFeatures features ([ phf_shared_0_7_21 rand_0_3_15 ]);
+  };
+  phf_generator_0_7_21_features = f: updateFeatures f (rec {
+    phf_generator_0_7_21.default = (f.phf_generator_0_7_21.default or true);
+    phf_shared_0_7_21.default = true;
+    rand_0_3_15.default = true;
+  }) [ phf_shared_0_7_21_features rand_0_3_15_features ];
+  phf_shared_0_7_21 = { features?(phf_shared_0_7_21_features {}) }: phf_shared_0_7_21_ {
+    dependencies = mapFeatures features ([ siphasher_0_2_2 ]);
+    features = mkFeatures (features.phf_shared_0_7_21 or {});
+  };
+  phf_shared_0_7_21_features = f: updateFeatures f (rec {
+    phf_shared_0_7_21.default = (f.phf_shared_0_7_21.default or true);
+    siphasher_0_2_2.default = true;
+  }) [ siphasher_0_2_2_features ];
+  pkg_config_0_3_9 = { features?(pkg_config_0_3_9_features {}) }: pkg_config_0_3_9_ {};
+  pkg_config_0_3_9_features = f: updateFeatures f (rec {
+    pkg_config_0_3_9.default = (f.pkg_config_0_3_9.default or true);
+  }) [];
+  png_0_5_2 = { features?(png_0_5_2_features {}) }: png_0_5_2_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 inflate_0_1_1 num_iter_0_1_34 ]
+      ++ (if features.png_0_5_2.flate2 or false then [ flate2_0_2_20 ] else []));
+    features = mkFeatures (features.png_0_5_2 or {});
+  };
+  png_0_5_2_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    flate2_0_2_20.default = true;
+    inflate_0_1_1.default = true;
+    num_iter_0_1_34.default = true;
+    png_0_5_2.default = (f.png_0_5_2.default or true);
+    png_0_5_2.flate2 =
+      (f.png_0_5_2.flate2 or false) ||
+      (f.png_0_5_2.png-encoding or false) ||
+      (png_0_5_2.png-encoding or false);
+    png_0_5_2.png-encoding =
+      (f.png_0_5_2.png-encoding or false) ||
+      (f.png_0_5_2.default or false) ||
+      (png_0_5_2.default or false);
+  }) [ bitflags_0_7_0_features flate2_0_2_20_features inflate_0_1_1_features num_iter_0_1_34_features ];
+  rand_0_3_15 = { features?(rand_0_3_15_features {}) }: rand_0_3_15_ {
+    dependencies = mapFeatures features ([ libc_0_2_23 ]);
+  };
+  rand_0_3_15_features = f: updateFeatures f (rec {
+    libc_0_2_23.default = true;
+    rand_0_3_15.default = (f.rand_0_3_15.default or true);
+  }) [ libc_0_2_23_features ];
+  rayon_0_8_2 = { features?(rayon_0_8_2_features {}) }: rayon_0_8_2_ {
+    dependencies = mapFeatures features ([ rayon_core_1_2_1 ]);
+  };
+  rayon_0_8_2_features = f: updateFeatures f (rec {
+    rayon_0_8_2.default = (f.rayon_0_8_2.default or true);
+    rayon_core_1_2_1.default = true;
+  }) [ rayon_core_1_2_1_features ];
+  rayon_core_1_2_1 = { features?(rayon_core_1_2_1_features {}) }: rayon_core_1_2_1_ {
+    dependencies = mapFeatures features ([ coco_0_1_1 futures_0_1_16 lazy_static_0_2_8 libc_0_2_23 num_cpus_1_6_2 rand_0_3_15 ]);
+  };
+  rayon_core_1_2_1_features = f: updateFeatures f (rec {
+    coco_0_1_1.default = true;
+    futures_0_1_16.default = true;
+    lazy_static_0_2_8.default = true;
+    libc_0_2_23.default = true;
+    num_cpus_1_6_2.default = true;
+    rand_0_3_15.default = true;
+    rayon_core_1_2_1.default = (f.rayon_core_1_2_1.default or true);
+  }) [ coco_0_1_1_features futures_0_1_16_features lazy_static_0_2_8_features libc_0_2_23_features num_cpus_1_6_2_features rand_0_3_15_features ];
+  rustc_serialize_0_3_24 = { features?(rustc_serialize_0_3_24_features {}) }: rustc_serialize_0_3_24_ {};
+  rustc_serialize_0_3_24_features = f: updateFeatures f (rec {
+    rustc_serialize_0_3_24.default = (f.rustc_serialize_0_3_24.default or true);
+  }) [];
+  rustc_version_0_1_7 = { features?(rustc_version_0_1_7_features {}) }: rustc_version_0_1_7_ {
+    dependencies = mapFeatures features ([ semver_0_1_20 ]);
+  };
+  rustc_version_0_1_7_features = f: updateFeatures f (rec {
+    rustc_version_0_1_7.default = (f.rustc_version_0_1_7.default or true);
+    semver_0_1_20.default = true;
+  }) [ semver_0_1_20_features ];
+  scoped_threadpool_0_1_8 = { features?(scoped_threadpool_0_1_8_features {}) }: scoped_threadpool_0_1_8_ {
+    features = mkFeatures (features.scoped_threadpool_0_1_8 or {});
+  };
+  scoped_threadpool_0_1_8_features = f: updateFeatures f (rec {
+    scoped_threadpool_0_1_8.default = (f.scoped_threadpool_0_1_8.default or true);
+  }) [];
+  scopeguard_0_3_2 = { features?(scopeguard_0_3_2_features {}) }: scopeguard_0_3_2_ {
+    features = mkFeatures (features.scopeguard_0_3_2 or {});
+  };
+  scopeguard_0_3_2_features = f: updateFeatures f (rec {
+    scopeguard_0_3_2.default = (f.scopeguard_0_3_2.default or true);
+    scopeguard_0_3_2.use_std =
+      (f.scopeguard_0_3_2.use_std or false) ||
+      (f.scopeguard_0_3_2.default or false) ||
+      (scopeguard_0_3_2.default or false);
+  }) [];
+  semver_0_1_20 = { features?(semver_0_1_20_features {}) }: semver_0_1_20_ {};
+  semver_0_1_20_features = f: updateFeatures f (rec {
+    semver_0_1_20.default = (f.semver_0_1_20.default or true);
+  }) [];
+  serde_0_9_15 = { features?(serde_0_9_15_features {}) }: serde_0_9_15_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.serde_0_9_15 or {});
+  };
+  serde_0_9_15_features = f: updateFeatures f (rec {
+    serde_0_9_15.alloc =
+      (f.serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.collections or false) ||
+      (serde_0_9_15.collections or false);
+    serde_0_9_15.default = (f.serde_0_9_15.default or true);
+    serde_0_9_15.serde_derive =
+      (f.serde_0_9_15.serde_derive or false) ||
+      (f.serde_0_9_15.derive or false) ||
+      (serde_0_9_15.derive or false) ||
+      (f.serde_0_9_15.playground or false) ||
+      (serde_0_9_15.playground or false);
+    serde_0_9_15.std =
+      (f.serde_0_9_15.std or false) ||
+      (f.serde_0_9_15.default or false) ||
+      (serde_0_9_15.default or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+    serde_0_9_15.unstable =
+      (f.serde_0_9_15.unstable or false) ||
+      (f.serde_0_9_15.alloc or false) ||
+      (serde_0_9_15.alloc or false) ||
+      (f.serde_0_9_15.unstable-testing or false) ||
+      (serde_0_9_15.unstable-testing or false);
+  }) [];
+  serde_json_0_9_10 = { features?(serde_json_0_9_10_features {}) }: serde_json_0_9_10_ {
+    dependencies = mapFeatures features ([ dtoa_0_4_1 itoa_0_3_1 num_traits_0_1_37 serde_0_9_15 ]);
+    features = mkFeatures (features.serde_json_0_9_10 or {});
+  };
+  serde_json_0_9_10_features = f: updateFeatures f (rec {
+    dtoa_0_4_1.default = true;
+    itoa_0_3_1.default = true;
+    num_traits_0_1_37.default = true;
+    serde_0_9_15.default = true;
+    serde_json_0_9_10.default = (f.serde_json_0_9_10.default or true);
+    serde_json_0_9_10.linked-hash-map =
+      (f.serde_json_0_9_10.linked-hash-map or false) ||
+      (f.serde_json_0_9_10.preserve_order or false) ||
+      (serde_json_0_9_10.preserve_order or false);
+  }) [ dtoa_0_4_1_features itoa_0_3_1_features num_traits_0_1_37_features serde_0_9_15_features ];
+  siphasher_0_2_2 = { features?(siphasher_0_2_2_features {}) }: siphasher_0_2_2_ {
+    dependencies = mapFeatures features ([]);
+  };
+  siphasher_0_2_2_features = f: updateFeatures f (rec {
+    siphasher_0_2_2.default = (f.siphasher_0_2_2.default or true);
+  }) [];
+  strsim_0_6_0 = { features?(strsim_0_6_0_features {}) }: strsim_0_6_0_ {};
+  strsim_0_6_0_features = f: updateFeatures f (rec {
+    strsim_0_6_0.default = (f.strsim_0_6_0.default or true);
+  }) [];
+  target_build_utils_0_3_1 = { features?(target_build_utils_0_3_1_features {}) }: target_build_utils_0_3_1_ {
+    dependencies = mapFeatures features ([ phf_0_7_21 ]
+      ++ (if features.target_build_utils_0_3_1.serde_json or false then [ serde_json_0_9_10 ] else []));
+    buildDependencies = mapFeatures features ([ phf_codegen_0_7_21 ]);
+    features = mkFeatures (features.target_build_utils_0_3_1 or {});
+  };
+  target_build_utils_0_3_1_features = f: updateFeatures f (rec {
+    phf_0_7_21.default = true;
+    phf_codegen_0_7_21.default = true;
+    serde_json_0_9_10.default = true;
+    target_build_utils_0_3_1.default = (f.target_build_utils_0_3_1.default or true);
+    target_build_utils_0_3_1.serde_json =
+      (f.target_build_utils_0_3_1.serde_json or false) ||
+      (f.target_build_utils_0_3_1.default or false) ||
+      (target_build_utils_0_3_1.default or false);
+  }) [ phf_0_7_21_features serde_json_0_9_10_features phf_codegen_0_7_21_features ];
+  tempfile_2_1_5 = { features?(tempfile_2_1_5_features {}) }: tempfile_2_1_5_ {
+    dependencies = mapFeatures features ([ rand_0_3_15 ])
+      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([ libc_0_2_23 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    buildDependencies = mapFeatures features ([ rustc_version_0_1_7 ]);
+  };
+  tempfile_2_1_5_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    rand_0_3_15.default = true;
+    rustc_version_0_1_7.default = true;
+    tempfile_2_1_5.default = (f.tempfile_2_1_5.default or true);
+    winapi_0_2_8.default = true;
+  }) [ rand_0_3_15_features rustc_version_0_1_7_features libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  term_size_0_3_0 = { features?(term_size_0_3_0_features {}) }: term_size_0_3_0_ {
+    dependencies = mapFeatures features ([])
+      ++ (if !(kernel == "windows") then mapFeatures features ([ libc_0_2_23 ]) else [])
+      ++ (if kernel == "windows" then mapFeatures features ([ kernel32_sys_0_2_2 winapi_0_2_8 ]) else []);
+    features = mkFeatures (features.term_size_0_3_0 or {});
+  };
+  term_size_0_3_0_features = f: updateFeatures f (rec {
+    kernel32_sys_0_2_2.default = true;
+    libc_0_2_23.default = true;
+    term_size_0_3_0.clippy =
+      (f.term_size_0_3_0.clippy or false) ||
+      (f.term_size_0_3_0.lints or false) ||
+      (term_size_0_3_0.lints or false);
+    term_size_0_3_0.default = (f.term_size_0_3_0.default or true);
+    term_size_0_3_0.lints =
+      (f.term_size_0_3_0.lints or false) ||
+      (f.term_size_0_3_0.travis or false) ||
+      (term_size_0_3_0.travis or false);
+    term_size_0_3_0.nightly =
+      (f.term_size_0_3_0.nightly or false) ||
+      (f.term_size_0_3_0.lints or false) ||
+      (term_size_0_3_0.lints or false) ||
+      (f.term_size_0_3_0.travis or false) ||
+      (term_size_0_3_0.travis or false);
+    winapi_0_2_8.default = true;
+  }) [ libc_0_2_23_features kernel32_sys_0_2_2_features winapi_0_2_8_features ];
+  toml_0_2_1 = { features?(toml_0_2_1_features {}) }: toml_0_2_1_ {
+    dependencies = mapFeatures features ([]);
+  };
+  toml_0_2_1_features = f: updateFeatures f (rec {
+    toml_0_2_1.default = (f.toml_0_2_1.default or true);
+    toml_0_2_1.rustc-serialize =
+      (f.toml_0_2_1.rustc-serialize or false) ||
+      (f.toml_0_2_1.default or false) ||
+      (toml_0_2_1.default or false);
+  }) [];
+  unicode_segmentation_1_2_0 = { features?(unicode_segmentation_1_2_0_features {}) }: unicode_segmentation_1_2_0_ {
+    features = mkFeatures (features.unicode_segmentation_1_2_0 or {});
+  };
+  unicode_segmentation_1_2_0_features = f: updateFeatures f (rec {
+    unicode_segmentation_1_2_0.default = (f.unicode_segmentation_1_2_0.default or true);
+  }) [];
+  unicode_width_0_1_4 = { features?(unicode_width_0_1_4_features {}) }: unicode_width_0_1_4_ {
+    features = mkFeatures (features.unicode_width_0_1_4 or {});
+  };
+  unicode_width_0_1_4_features = f: updateFeatures f (rec {
+    unicode_width_0_1_4.default = (f.unicode_width_0_1_4.default or true);
+  }) [];
+  vec_map_0_8_0 = { features?(vec_map_0_8_0_features {}) }: vec_map_0_8_0_ {
+    dependencies = mapFeatures features ([]);
+    features = mkFeatures (features.vec_map_0_8_0 or {});
+  };
+  vec_map_0_8_0_features = f: updateFeatures f (rec {
+    vec_map_0_8_0.default = (f.vec_map_0_8_0.default or true);
+    vec_map_0_8_0.serde =
+      (f.vec_map_0_8_0.serde or false) ||
+      (f.vec_map_0_8_0.eders or false) ||
+      (vec_map_0_8_0.eders or false);
+    vec_map_0_8_0.serde_derive =
+      (f.vec_map_0_8_0.serde_derive or false) ||
+      (f.vec_map_0_8_0.eders or false) ||
+      (vec_map_0_8_0.eders or false);
+  }) [];
+  way_cooler_client_helpers_0_1_0 = { features?(way_cooler_client_helpers_0_1_0_features {}) }: way_cooler_client_helpers_0_1_0_ {
+    dependencies = mapFeatures features ([ wayland_client_0_9_6 wayland_sys_0_9_6 ]);
+  };
+  way_cooler_client_helpers_0_1_0_features = f: updateFeatures f (rec {
+    way_cooler_client_helpers_0_1_0.default = (f.way_cooler_client_helpers_0_1_0.default or true);
+    wayland_client_0_9_6.cursor = true;
+    wayland_client_0_9_6.default = true;
+    wayland_client_0_9_6.dlopen = true;
+    wayland_sys_0_9_6.client = true;
+    wayland_sys_0_9_6.default = true;
+    wayland_sys_0_9_6.dlopen = true;
+  }) [ wayland_client_0_9_6_features wayland_sys_0_9_6_features ];
+  wayland_client_0_9_6 = { features?(wayland_client_0_9_6_features {}) }: wayland_client_0_9_6_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 libc_0_2_23 wayland_sys_0_9_6 ]);
+    buildDependencies = mapFeatures features ([ wayland_scanner_0_9_6 ]);
+    features = mkFeatures (features.wayland_client_0_9_6 or {});
+  };
+  wayland_client_0_9_6_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    libc_0_2_23.default = true;
+    wayland_client_0_9_6.cursor =
+      (f.wayland_client_0_9_6.cursor or false) ||
+      (f.wayland_client_0_9_6.default or false) ||
+      (wayland_client_0_9_6.default or false);
+    wayland_client_0_9_6.default = (f.wayland_client_0_9_6.default or true);
+    wayland_client_0_9_6.egl =
+      (f.wayland_client_0_9_6.egl or false) ||
+      (f.wayland_client_0_9_6.default or false) ||
+      (wayland_client_0_9_6.default or false);
+    wayland_scanner_0_9_6.default = true;
+    wayland_sys_0_9_6.client = true;
+    wayland_sys_0_9_6.cursor =
+      (f.wayland_sys_0_9_6.cursor or false) ||
+      (wayland_client_0_9_6.cursor or false) ||
+      (f.wayland_client_0_9_6.cursor or false);
+    wayland_sys_0_9_6.default = true;
+    wayland_sys_0_9_6.dlopen =
+      (f.wayland_sys_0_9_6.dlopen or false) ||
+      (wayland_client_0_9_6.dlopen or false) ||
+      (f.wayland_client_0_9_6.dlopen or false);
+    wayland_sys_0_9_6.egl =
+      (f.wayland_sys_0_9_6.egl or false) ||
+      (wayland_client_0_9_6.egl or false) ||
+      (f.wayland_client_0_9_6.egl or false);
+  }) [ bitflags_0_7_0_features libc_0_2_23_features wayland_sys_0_9_6_features wayland_scanner_0_9_6_features ];
+  wayland_kbd_0_9_0 = { features?(wayland_kbd_0_9_0_features {}) }: wayland_kbd_0_9_0_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 dlib_0_3_1 lazy_static_0_2_8 memmap_0_4_0 wayland_client_0_9_6 ]);
+  };
+  wayland_kbd_0_9_0_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    dlib_0_3_1.default = true;
+    lazy_static_0_2_8.default = true;
+    memmap_0_4_0.default = true;
+    wayland_client_0_9_6.default = true;
+    wayland_kbd_0_9_0.default = (f.wayland_kbd_0_9_0.default or true);
+  }) [ bitflags_0_7_0_features dlib_0_3_1_features lazy_static_0_2_8_features memmap_0_4_0_features wayland_client_0_9_6_features ];
+  wayland_scanner_0_9_6 = { features?(wayland_scanner_0_9_6_features {}) }: wayland_scanner_0_9_6_ {
+    dependencies = mapFeatures features ([ xml_rs_0_3_6 ]);
+  };
+  wayland_scanner_0_9_6_features = f: updateFeatures f (rec {
+    wayland_scanner_0_9_6.default = (f.wayland_scanner_0_9_6.default or true);
+    xml_rs_0_3_6.default = true;
+  }) [ xml_rs_0_3_6_features ];
+  wayland_sys_0_9_6 = { features?(wayland_sys_0_9_6_features {}) }: wayland_sys_0_9_6_ {
+    dependencies = mapFeatures features ([ dlib_0_3_1 ]
+      ++ (if features.wayland_sys_0_9_6.lazy_static or false then [ lazy_static_0_2_8 ] else []));
+    features = mkFeatures (features.wayland_sys_0_9_6 or {});
+  };
+  wayland_sys_0_9_6_features = f: updateFeatures f (rec {
+    dlib_0_3_1.default = true;
+    dlib_0_3_1.dlopen =
+      (f.dlib_0_3_1.dlopen or false) ||
+      (wayland_sys_0_9_6.dlopen or false) ||
+      (f.wayland_sys_0_9_6.dlopen or false);
+    lazy_static_0_2_8.default = true;
+    wayland_sys_0_9_6.default = (f.wayland_sys_0_9_6.default or true);
+    wayland_sys_0_9_6.lazy_static =
+      (f.wayland_sys_0_9_6.lazy_static or false) ||
+      (f.wayland_sys_0_9_6.dlopen or false) ||
+      (wayland_sys_0_9_6.dlopen or false);
+    wayland_sys_0_9_6.libc =
+      (f.wayland_sys_0_9_6.libc or false) ||
+      (f.wayland_sys_0_9_6.server or false) ||
+      (wayland_sys_0_9_6.server or false);
+  }) [ dlib_0_3_1_features lazy_static_0_2_8_features ];
+  wc_lock_0_2_1 = { features?(wc_lock_0_2_1_features {}) }: wc_lock_0_2_1_ {
+    dependencies = mapFeatures features ([ byteorder_0_5_3 clap_2_24_2 dbus_0_5_4 image_0_10_4 libc_0_2_23 rand_0_3_15 tempfile_2_1_5 way_cooler_client_helpers_0_1_0 wayland_client_0_9_6 wayland_kbd_0_9_0 wayland_sys_0_9_6 ]);
+    buildDependencies = mapFeatures features ([ gcc_0_3_50 wayland_scanner_0_9_6 ]);
+  };
+  wc_lock_0_2_1_features = f: updateFeatures f (rec {
+    byteorder_0_5_3.default = true;
+    clap_2_24_2.default = true;
+    dbus_0_5_4.default = true;
+    gcc_0_3_50.default = true;
+    image_0_10_4.default = true;
+    libc_0_2_23.default = true;
+    rand_0_3_15.default = true;
+    tempfile_2_1_5.default = true;
+    way_cooler_client_helpers_0_1_0.default = true;
+    wayland_client_0_9_6.cursor = true;
+    wayland_client_0_9_6.default = true;
+    wayland_client_0_9_6.dlopen = true;
+    wayland_kbd_0_9_0.default = true;
+    wayland_scanner_0_9_6.default = true;
+    wayland_sys_0_9_6.client = true;
+    wayland_sys_0_9_6.default = true;
+    wayland_sys_0_9_6.dlopen = true;
+    wc_lock_0_2_1.default = (f.wc_lock_0_2_1.default or true);
+  }) [ byteorder_0_5_3_features clap_2_24_2_features dbus_0_5_4_features image_0_10_4_features libc_0_2_23_features rand_0_3_15_features tempfile_2_1_5_features way_cooler_client_helpers_0_1_0_features wayland_client_0_9_6_features wayland_kbd_0_9_0_features wayland_sys_0_9_6_features gcc_0_3_50_features wayland_scanner_0_9_6_features ];
+  winapi_0_2_8 = { features?(winapi_0_2_8_features {}) }: winapi_0_2_8_ {};
+  winapi_0_2_8_features = f: updateFeatures f (rec {
+    winapi_0_2_8.default = (f.winapi_0_2_8.default or true);
+  }) [];
+  winapi_build_0_1_1 = { features?(winapi_build_0_1_1_features {}) }: winapi_build_0_1_1_ {};
+  winapi_build_0_1_1_features = f: updateFeatures f (rec {
+    winapi_build_0_1_1.default = (f.winapi_build_0_1_1.default or true);
+  }) [];
+  xml_rs_0_3_6 = { features?(xml_rs_0_3_6_features {}) }: xml_rs_0_3_6_ {
+    dependencies = mapFeatures features ([ bitflags_0_7_0 ]);
+  };
+  xml_rs_0_3_6_features = f: updateFeatures f (rec {
+    bitflags_0_7_0.default = true;
+    xml_rs_0_3_6.default = (f.xml_rs_0_3_6.default or true);
+  }) [ bitflags_0_7_0_features ];
 }
diff --git a/pkgs/build-support/rust/default-crate-overrides.nix b/pkgs/build-support/rust/default-crate-overrides.nix
index f4020ab3096..658548135aa 100644
--- a/pkgs/build-support/rust/default-crate-overrides.nix
+++ b/pkgs/build-support/rust/default-crate-overrides.nix
@@ -1,5 +1,5 @@
 { stdenv, pkgconfig, curl, darwin, libiconv, libgit2, libssh2,
-  openssl, sqlite, zlib, ... }:
+  openssl, sqlite, zlib, dbus_libs, dbus_glib, gdk_pixbuf, cairo, python3, ... }:
 
 let
   inherit (darwin.apple_sdk.frameworks) CoreFoundation;
@@ -36,4 +36,28 @@ in
   openssl-sys = attrs: {
     buildInputs = [ pkgconfig openssl ];
   };
+  dbus = attrs: {
+    buildInputs = [ pkgconfig dbus_libs ];
+  };
+  libdbus-sys = attrs: {
+    buildInputs = [ pkgconfig dbus_libs ];
+  };
+  gobject-sys = attrs: {
+    buildInputs = [ dbus_glib ];
+  };
+  gio-sys = attrs: {
+    buildInputs = [ dbus_glib ];
+  };
+  gdk-pixbuf-sys = attrs: {
+    buildInputs = [ dbus_glib ];
+  };
+  gdk-pixbuf = attrs: {
+    buildInputs = [ gdk_pixbuf ];
+  };
+  cairo-rs = attrs: {
+    buildInputs = [ cairo ];
+  };
+  xcb = attrs: {
+    buildInputs = [ python3 ];
+  };
 }
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 0972673b7b8..81f42a2adbe 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -125,7 +125,7 @@ let
       milou = callPackage ./milou.nix {};
       oxygen = callPackage ./oxygen.nix {};
       plasma-desktop = callPackage ./plasma-desktop {};
-      plasma-integration = callPackage ./plasma-integration.nix {};
+      plasma-integration = callPackage ./plasma-integration {};
       plasma-nm = callPackage ./plasma-nm {};
       plasma-pa = callPackage ./plasma-pa.nix { inherit gconf; };
       plasma-vault = callPackage ./plasma-vault {};
diff --git a/pkgs/desktops/plasma-5/plasma-integration/D9070.patch b/pkgs/desktops/plasma-5/plasma-integration/D9070.patch
new file mode 100644
index 00000000000..66fef4712a7
--- /dev/null
+++ b/pkgs/desktops/plasma-5/plasma-integration/D9070.patch
@@ -0,0 +1,24 @@
+Index: src/platformtheme/kfontsettingsdata.cpp
+===================================================================
+--- src/platformtheme/kfontsettingsdata.cpp
++++ src/platformtheme/kfontsettingsdata.cpp
+@@ -70,15 +70,18 @@
+         const KFontData &fontData = DefaultFontData[fontType];
+         cachedFont = new QFont(QLatin1String(fontData.FontName), fontData.Size, fontData.Weight);
+         cachedFont->setStyleHint(fontData.StyleHint);
+-        cachedFont->setStyleName(QLatin1String(fontData.StyleName));
+ 
+         const KConfigGroup configGroup(mKdeGlobals, fontData.ConfigGroupKey);
+         QString fontInfo = configGroup.readEntry(fontData.ConfigKey, QString());
+ 
+         //If we have serialized information for this font, restore it
+         //NOTE: We are not using KConfig directly because we can't call QFont::QFont from here
+         if (!fontInfo.isEmpty()) {
+             cachedFont->fromString(fontInfo);
++        } else {
++            // set the canonical stylename here, where it cannot override
++            // user-specific font attributes if those do not include a stylename.
++            cachedFont->setStyleName(QLatin1String(fontData.StyleName));
+         }
+ 
+         mFonts[fontType] = cachedFont;
diff --git a/pkgs/desktops/plasma-5/plasma-integration.nix b/pkgs/desktops/plasma-5/plasma-integration/default.nix
index f6964428762..d33ecf05024 100644
--- a/pkgs/desktops/plasma-5/plasma-integration.nix
+++ b/pkgs/desktops/plasma-5/plasma-integration/default.nix
@@ -14,4 +14,11 @@ mkDerivation {
     breeze-qt5 kconfig kconfigwidgets kiconthemes kio knotifications kwayland
     libXcursor qtquickcontrols2
   ];
+  patches = [
+    # See also: https://phabricator.kde.org/D9070
+    # ttuegel: The patch is checked into Nixpkgs because I could not get
+    # Phabricator to give me a stable link to it.
+    ./D9070.patch
+  ];
+  patchFlags = "-p0";
 }
diff --git a/pkgs/development/compilers/arachne-pnr/default.nix b/pkgs/development/compilers/arachne-pnr/default.nix
index 9629d4eface..8dcebbf442b 100644
--- a/pkgs/development/compilers/arachne-pnr/default.nix
+++ b/pkgs/development/compilers/arachne-pnr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "arachne-pnr-${version}";
-  version = "2018.01.10";
+  version = "2018.02.04";
 
   src = fetchFromGitHub {
     owner  = "cseed";
     repo   = "arachne-pnr";
-    rev    = "24f6b9c341910f6aaca1498872fe2e99ff8210cf";
-    sha256 = "0jd91hx16jx0p0jiqhgh1kbh59k82i4979f4xp4wzc249br7lxlv";
+    rev    = "c21df0062c6ee13e8c8280cefbb7c017823336c0";
+    sha256 = "1ah1gn07av3ff5lnay4p7dahaacbyj0mfakbx7g5fs3p1m1m8p1k";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index 4f4a54ef426..eb96acafb9e 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   name = "yosys-${version}";
-  version = "2018.01.10";
+  version = "2018.02.04";
 
   srcs = [
     (fetchFromGitHub {
-      owner  = "cliffordwolf";
+      owner  = "yosyshq";
       repo   = "yosys";
-      rev    = "9ac560f5d3e5847b7e475195f66b7034e91fd938";
-      sha256 = "01p1bcjq030y7g21lsghgkqj23x6yl8cwrcx2xpik45xls6pxrg7";
+      rev    = "0659d9eac7b546ee6f5acab46dbc83c91d556a34";
+      sha256 = "1hy21gxcp3q3hlbh5sh46h2340r11fwalkb9if9sbpc9y3279njj";
       name   = "yosys";
     })
     (fetchFromBitbucket {
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index b46da64c342..35a3ab0985e 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -281,6 +281,7 @@ self: super: {
   hashed-storage = dontCheck super.hashed-storage;
   hashring = dontCheck super.hashring;
   hath = dontCheck super.hath;
+  haxl = dontCheck super.haxl;                          # non-deterministic failure https://github.com/facebook/Haxl/issues/85
   haxl-facebook = dontCheck super.haxl-facebook;        # needs facebook credentials for testing
   hdbi-postgresql = dontCheck super.hdbi-postgresql;
   hedis = dontCheck super.hedis;
diff --git a/pkgs/development/interpreters/python/cpython/3.4/default.nix b/pkgs/development/interpreters/python/cpython/3.4/default.nix
index 2e8a95e7329..4c0979ca0e3 100644
--- a/pkgs/development/interpreters/python/cpython/3.4/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.4/default.nix
@@ -27,7 +27,7 @@ with stdenv.lib;
 
 let
   majorVersion = "3.4";
-  minorVersion = "7";
+  minorVersion = "8";
   minorVersionSuffix = "";
   pythonVersion = majorVersion;
   version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
@@ -48,7 +48,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.xz";
-    sha256 = "06wx2ag0dnixny67jfdl5z10243fjga898cgxhnr4dnxaqmwy547";
+    sha256 = "1sn3i9z9m56inlfrqs250qv8snl8w211wpig2pfjlyrcj3x75919";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/interpreters/python/cpython/3.5/default.nix b/pkgs/development/interpreters/python/cpython/3.5/default.nix
index eb8d0a2df38..a8519a76a23 100644
--- a/pkgs/development/interpreters/python/cpython/3.5/default.nix
+++ b/pkgs/development/interpreters/python/cpython/3.5/default.nix
@@ -27,7 +27,7 @@ with stdenv.lib;
 
 let
   majorVersion = "3.5";
-  minorVersion = "4";
+  minorVersion = "5";
   minorVersionSuffix = "";
   pythonVersion = majorVersion;
   version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
@@ -48,7 +48,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.python.org/ftp/python/${majorVersion}.${minorVersion}/Python-${version}.tar.xz";
-    sha256 = "0k68ai0a204piwibz013ds6ck7hgj9gk4nin2259y41vpgx3pncl";
+    sha256 = "02ahsijk3a42sdzfp2il49shx0v4birhy7kkj0dikmh20hxjqg86";
   };
 
   NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
diff --git a/pkgs/development/libraries/libassuan/default.nix b/pkgs/development/libraries/libassuan/default.nix
index 94369449ff3..827d3de79ea 100644
--- a/pkgs/development/libraries/libassuan/default.nix
+++ b/pkgs/development/libraries/libassuan/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, pth, libgpgerror }:
+{ fetchurl, stdenv, gettext, pth, libgpgerror }:
 
 stdenv.mkDerivation rec {
   name = "libassuan-2.5.1";
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "info" ];
   outputBin = "dev"; # libassuan-config
 
-  buildInputs = [ libgpgerror pth ];
+  buildInputs = [ libgpgerror pth ]
+    ++ stdenv.lib.optional stdenv.isDarwin gettext;
 
   doCheck = true;
 
@@ -20,18 +21,16 @@ stdenv.mkDerivation rec {
     sed -i 's,#include <gpg-error.h>,#include "${libgpgerror.dev}/include/gpg-error.h",g' $dev/include/assuan.h
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "IPC library used by GnuPG and related software";
-
     longDescription = ''
       Libassuan is a small library implementing the so-called Assuan
       protocol.  This protocol is used for IPC between most newer
       GnuPG components.  Both, server and client side functions are
       provided.
     '';
-
     homepage = http://gnupg.org;
-    license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.all;
+    license = licenses.lgpl2Plus;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index 397000fc7d2..45564d64861 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libgpgerror, enableCapabilities ? false, libcap }:
+{ stdenv, fetchurl, gettext, libgpgerror, enableCapabilities ? false, libcap }:
 
 assert enableCapabilities -> stdenv.isLinux;
 
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "fortify";
 
   buildInputs = [ libgpgerror ]
+    ++ stdenv.lib.optional stdenv.isDarwin gettext
     ++ stdenv.lib.optional enableCapabilities libcap;
 
   # Make sure libraries are correct for .pc and .la files
diff --git a/pkgs/development/libraries/libksba/default.nix b/pkgs/development/libraries/libksba/default.nix
index 8bff5a21cd0..3f7a4bed9cc 100644
--- a/pkgs/development/libraries/libksba/default.nix
+++ b/pkgs/development/libraries/libksba/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libgpgerror }:
+{ stdenv, fetchurl, gettext, libgpgerror }:
 
 stdenv.mkDerivation rec {
   name = "libksba-1.3.5";
@@ -10,6 +10,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" "info" ];
 
+  buildInputs = stdenv.lib.optional stdenv.isDarwin gettext;
   propagatedBuildInputs = [ libgpgerror ];
 
   postInstall = ''
diff --git a/pkgs/development/libraries/libwhereami/default.nix b/pkgs/development/libraries/libwhereami/default.nix
index 35e904989c4..a119ae8795b 100644
--- a/pkgs/development/libraries/libwhereami/default.nix
+++ b/pkgs/development/libraries/libwhereami/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "libwhereami-${version}";
-  version = "0.1.1";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
-    sha256 = "0nhbmxm626cgawprszw6c03a3hasxjn1i9ldhhj5xyvxp8r5l9q4";
+    sha256 = "0mpy2rkxcm2nz1qvldih01czxlsksqfkzgh58pnrw8yva31wv9q6";
     rev = version;
     repo = "libwhereami";
     owner = "puppetlabs";
diff --git a/pkgs/development/libraries/mpich2/default.nix b/pkgs/development/libraries/mpich2/default.nix
index d400712a6f9..4b8e2b651e4 100644
--- a/pkgs/development/libraries/mpich2/default.nix
+++ b/pkgs/development/libraries/mpich2/default.nix
@@ -1,19 +1,35 @@
-{ stdenv, fetchurl, python, perl, gfortran }:
+{ stdenv, fetchurl, python, perl, gfortran
+, slurm, openssh, hwloc
+} :
 
 stdenv.mkDerivation  rec {
   name = "mpich-${version}";
-  version = "3.2";
+  version = "3.2.1";
 
   src = fetchurl {
-    url = "http://www.mpich.org/static/downloads/3.2/mpich-3.2.tar.gz";
-    sha256 = "0bvvk4n9g4rmrncrgs9jnkcfh142i65wli5qp1akn9kwab1q80z6";
+    url = "http://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
+    sha256 = "1w9h4g7d46d9l5jbcyfxpaqzpjrc5hyvr9d0ns7278psxpr3pdax";
   };
 
-  configureFlags = "--enable-shared --enable-sharedlib";
+  configureFlags = [
+    "--enable-shared"
+    "--enable-sharedlib"
+  ];
 
-  buildInputs = [ perl gfortran ];
+  buildInputs = [ perl gfortran slurm openssh hwloc ];
 
-  meta = {
+  doCheck = true;
+
+  preFixup = ''
+    # /tmp/nix-build... ends up in the RPATH, fix it manually
+    for entry in $out/bin/mpichversion $out/bin/mpivars; do
+      echo "fix rpath: $entry"
+      patchelf --set-rpath "$out/lib" $entry
+    done
+  '';
+
+
+  meta = with stdenv.lib; {
     description = "Implementation of the Message Passing Interface (MPI) standard";
 
     longDescription = ''
@@ -22,9 +38,11 @@ stdenv.mkDerivation  rec {
       version 2.
     '';
     homepage = http://www.mcs.anl.gov/mpi/mpich2/;
-    license = "free, see http://www.mcs.anl.gov/research/projects/mpich2/downloads/index.php?s=license";
-
-    maintainers = [ ];
-    platforms = stdenv.lib.platforms.unix;
+    license = {
+      url = http://git.mpich.org/mpich.git/blob/a385d6d0d55e83c3709ae851967ce613e892cd21:/COPYRIGHT;
+      fullName = "MPICH license (permissive)";
+    };
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/aioimaplib/default.nix b/pkgs/development/python-modules/aioimaplib/default.nix
new file mode 100644
index 00000000000..d335cbc556c
--- /dev/null
+++ b/pkgs/development/python-modules/aioimaplib/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, nose, asynctest, mock, pytz, tzlocal, imaplib2, docutils }:
+
+buildPythonPackage rec {
+  pname = "aioimaplib";
+  version = "0.7.13";
+
+  # PyPI tarball doesn't ship tests
+  src = fetchFromGitHub {
+    owner = "bamthomas";
+    repo = pname;
+    rev = version;
+    sha256 = "19yhk4ixfw46d0bvx6a40r23nvia5a83dzn5rzwaq1wdjr186bbn";
+  };
+
+  disbaled = pythonOlder "3.4";
+
+  checkInputs = [ nose asynctest mock pytz tzlocal imaplib2 docutils ];
+
+  meta = with lib; {
+    description = "Python asyncio IMAP4rev1 client library";
+    homepage = https://github.com/bamthomas/aioimaplib;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/asynctest/default.nix b/pkgs/development/python-modules/asynctest/default.nix
new file mode 100644
index 00000000000..2b0348a8758
--- /dev/null
+++ b/pkgs/development/python-modules/asynctest/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildPythonPackage, fetchPypi, fetchFromGitHub, pythonOlder, python }:
+
+buildPythonPackage rec {
+  pname = "asynctest";
+  version = "0.11.1";
+
+  disabled = pythonOlder "3.4";
+
+  # PyPI tarball doesn't ship test/__init__.py
+  src = fetchFromGitHub {
+    owner = "Martiusweb";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1vvh5vbq2fbz6426figs85z8779r7svb4dp2v3xynhhv05nh2y6v";
+  };
+
+  postPatch = ''
+    # Skip failing test, probably caused by file system access
+    substituteInPlace test/test_selector.py \
+      --replace "test_events_watched_outside_test_are_ignored" "xtest_events_watched_outside_test_are_ignored"
+  '';
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest test
+  '';
+
+  meta = with lib; {
+    description = "Enhance the standard unittest package with features for testing asyncio libraries";
+    homepage = https://github.com/Martiusweb/asynctest;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/can/default.nix b/pkgs/development/python-modules/can/default.nix
new file mode 100644
index 00000000000..fbb53828d2a
--- /dev/null
+++ b/pkgs/development/python-modules/can/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, pyserial
+, nose
+, mock }:
+
+buildPythonPackage rec {
+  pname = "python-can";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c6zfd29ck9ffdklfb5xgxvfl52xdaqd89isykkypm1ll97yk2fs";
+  };
+
+  propagatedBuildInputs = [ pyserial ];
+  checkInputs = [ nose mock ];
+
+  meta = with lib; {
+    homepage = https://github.com/hardbyte/python-can;
+    description = "CAN support for Python";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ sorki ];
+  };
+}
diff --git a/pkgs/development/python-modules/canmatrix/default.nix b/pkgs/development/python-modules/canmatrix/default.nix
new file mode 100644
index 00000000000..99ac6c3ec45
--- /dev/null
+++ b/pkgs/development/python-modules/canmatrix/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, python
+, lxml
+, xlwt
+, xlrd
+, XlsxWriter
+, pyyaml
+, future }:
+
+buildPythonPackage rec {
+  pname = "canmatrix";
+  version = "0.6";
+
+  # uses fetchFromGitHub as PyPi release misses test/ dir
+  src = fetchFromGitHub {
+    owner = "ebroecker";
+    repo = pname;
+    rev = version;
+    sha256 = "1lb0krhchja2jqfsh5lsfgmqcchs1pd38akvc407jfmll96f4yqz";
+  };
+
+  checkPhase = ''
+    cd test
+    ${python.interpreter} ./test.py
+  '';
+
+  propagatedBuildInputs =
+    [ lxml
+      xlwt
+      xlrd
+      XlsxWriter
+      pyyaml
+      future
+    ];
+
+  meta = with lib; {
+    homepage = https://github.com/ebroecker/canmatrix;
+    description = "Support and convert several CAN (Controller Area Network) database formats .arxml .dbc .dbf .kcd .sym fibex xls(x)";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ sorki ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/canopen/default.nix b/pkgs/development/python-modules/canopen/default.nix
new file mode 100644
index 00000000000..08ae54e0b73
--- /dev/null
+++ b/pkgs/development/python-modules/canopen/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, fetchFromGitHub
+, nose
+, can
+, canmatrix }:
+
+buildPythonPackage rec {
+  pname = "canopen";
+  version = "0.5.1";
+
+  # use fetchFromGitHub until version containing test/sample.eds
+  # is available on PyPi
+  # https://github.com/christiansandberg/canopen/pull/57
+
+  src = fetchFromGitHub {
+    owner = "christiansandberg";
+    repo = "canopen";
+    rev = "b20575d84c3aef790fe7c38c5fc77601bade0ea4";
+    sha256 = "1qg47qrkyvyxiwi13sickrkk89jp9s91sly2y90bz0jhws2bxh64";
+  };
+
+  #src = fetchPypi {
+  #  inherit pname version;
+  #  sha256 = "0806cykarpjb9ili3mf82hsd9gdydbks8532nxgz93qzg4zdbv2g";
+  #};
+
+  # test_pdo failure https://github.com/christiansandberg/canopen/issues/58
+  doCheck = false;
+
+  propagatedBuildInputs =
+    [ can
+      canmatrix
+    ];
+
+  checkInputs = [ nose ];
+
+  meta = with lib; {
+    homepage = https://github.com/christiansandberg/canopen/;
+    description = "CANopen stack implementation";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ sorki ];
+  };
+}
diff --git a/pkgs/development/python-modules/imaplib2/default.nix b/pkgs/development/python-modules/imaplib2/default.nix
new file mode 100644
index 00000000000..0ceff353f9a
--- /dev/null
+++ b/pkgs/development/python-modules/imaplib2/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "imaplib2";
+  version = "2.45.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a35b6d88258696e80aabecfb784e08730b8558fcaaa3061ff2c7f8637afbd0b3";
+  };
+
+  # No tests on PyPI and no tags on GitHub :(
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A threaded Python IMAP4 client";
+    homepage = https://github.com/bcoe/imaplib2;
+    # See https://github.com/bcoe/imaplib2/issues/25
+    license = licenses.psfl;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/luftdaten/default.nix b/pkgs/development/python-modules/luftdaten/default.nix
new file mode 100644
index 00000000000..dc40101284c
--- /dev/null
+++ b/pkgs/development/python-modules/luftdaten/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, isPy3k, fetchPypi, aiohttp, async-timeout }:
+
+buildPythonPackage rec {
+  pname = "luftdaten";
+  version = "0.1.4";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d3e3af830ad2b731c36af223bbb5d47d68aa3786b2965411216917a7381e1179";
+  };
+
+  propagatedBuildInputs = [ aiohttp async-timeout ];
+
+  # No tests implemented
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python API for interacting with luftdaten.info";
+    homepage = https://github.com/fabaff/python-luftdaten;
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/nose-parameterized/default.nix b/pkgs/development/python-modules/nose-parameterized/default.nix
index 3c7cd077cdc..77b540fdef0 100644
--- a/pkgs/development/python-modules/nose-parameterized/default.nix
+++ b/pkgs/development/python-modules/nose-parameterized/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchPypi, buildPythonPackage, nose, six, glibcLocales, isPy3k }:
+{ fetchPypi, parameterized }:
 
-buildPythonPackage rec {
+parameterized.overrideAttrs (o: rec {
   pname = "nose-parameterized";
   version = "0.6.0";
 
@@ -8,20 +8,4 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "1khlabgib4161vn6alxsjaa8javriywgx9vydddi659gp9x6fpnk";
   };
-
-  # Tests require some python3-isms but code works without.
-  doCheck = isPy3k;
-
-  buildInputs = [ nose glibcLocales ];
-  propagatedBuildInputs = [ six ];
-
-  checkPhase = ''
-    LC_ALL="en_US.UTF-8" nosetests -v
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Parameterized testing with any Python test framework";
-    homepage = https://pypi.python.org/pypi/nose-parameterized;
-    license = licenses.bsd3;
-  };
-}
+})
diff --git a/pkgs/development/python-modules/parameterized/default.nix b/pkgs/development/python-modules/parameterized/default.nix
new file mode 100644
index 00000000000..14b41fe950b
--- /dev/null
+++ b/pkgs/development/python-modules/parameterized/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchPypi, buildPythonPackage, nose, six, glibcLocales, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "parameterized";
+  version = "0.6.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qj1939shm48d9ql6fm1nrdy4p7sdyj8clz1szh5swwpf1qqxxfa";
+  };
+
+  # Tests require some python3-isms but code works without.
+  doCheck = isPy3k;
+
+  checkInputs = [ nose glibcLocales ];
+  propagatedBuildInputs = [ six ];
+
+  checkPhase = ''
+    LC_ALL="en_US.UTF-8" nosetests -v
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Parameterized testing with any Python test framework";
+    homepage = https://pypi.python.org/pypi/parameterized;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ma27 ];
+  };
+}
diff --git a/pkgs/development/python-modules/pybase64/default.nix b/pkgs/development/python-modules/pybase64/default.nix
new file mode 100644
index 00000000000..c81d60ced4d
--- /dev/null
+++ b/pkgs/development/python-modules/pybase64/default.nix
@@ -0,0 +1,25 @@
+{ buildPythonPackage, stdenv, fetchPypi, parameterized, six, nose }:
+
+buildPythonPackage rec {
+  pname = "pybase64";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1hggg69s5r8jyqdwyzri5sn3f19p7ayl0fjhjma0qzgfp7bk6zjc";
+  };
+
+  propagatedBuildInputs = [ six ];
+  checkInputs = [ parameterized nose ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://pypi.python.org/pypi/pybase64;
+    description = "Fast Base64 encoding/decoding";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ma27 ];
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index 642a6a97bc0..1586d636087 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "jenkins-${version}";
-  version = "2.103";
+  version = "2.105";
 
   src = fetchurl {
     url = "http://mirrors.jenkins-ci.org/war/${version}/jenkins.war";
-    sha256 = "1d771q4xjjji7ydh6xjz3j6hz2mszxh0m3zqjh4khlzqhnvydlha";
+    sha256 = "0q6xyjkqlrwjgf7rzmyy8m0w7lhqyavici76zzngg159xkyh5cfh";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix
index fb91989775b..0df2decef2c 100644
--- a/pkgs/development/tools/electron/default.nix
+++ b/pkgs/development/tools/electron/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, libXScrnSaver, makeWrapper, fetchurl, unzip, atomEnv }:
 
 let
-  version = "1.7.9";
+  version = "1.7.11";
   name = "electron-${version}";
 
   throwSystem = throw "Unsupported system: ${stdenv.system}";
@@ -20,15 +20,15 @@ let
     src = {
       i686-linux = fetchurl {
         url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-ia32.zip";
-        sha256 = "0m87n7hqimg93z3m8pa1ggs69f3h5mjrsrrl7x80hxmp3w142krc";
+        sha256 = "0mxrayczs6fc2a53fzfbgs88l71wm7hadq9ir510kicakblmdbyx";
       };
       x86_64-linux = fetchurl {
         url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-x64.zip";
-        sha256 = "17ii0x6326mwjd0x5dj2693r67y0jra88hkqcpddcq08vf1knr2f";
+        sha256 = "0v22xhzbq9lcbc83laqs45pbx8gzv648qfkj01pxfsmv3lb4myrl";
       };
       armv7l-linux = fetchurl {
         url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-linux-armv7l.zip";
-        sha256 = "17jkma50d6az8dbyrym8z2lsw2n0r6jhdlm8pb5c928bzgshryqm";
+        sha256 = "02n2y69zwzacigqp6f4vg47cmjzf8gvbbispmzkg3pnzk4qc9473";
       };
     }.${stdenv.system} or throwSystem;
 
@@ -56,7 +56,7 @@ let
 
     src = fetchurl {
       url = "https://github.com/electron/electron/releases/download/v${version}/electron-v${version}-darwin-x64.zip";
-      sha256 = "1s8kslp101xyaffb3rf8p5cw3p6zij2mn19fa68ykx4naykkwaly";
+      sha256 = "19kfb09ap780ayk7miqfr6gmba9rd10f9q9aphj35yk7cl22znbr";
     };
 
     buildInputs = [ unzip ];
diff --git a/pkgs/development/tools/icestorm/default.nix b/pkgs/development/tools/icestorm/default.nix
index efd4265443b..8b3cd17a7b2 100644
--- a/pkgs/development/tools/icestorm/default.nix
+++ b/pkgs/development/tools/icestorm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "icestorm-${version}";
-  version = "2018.01.10";
+  version = "2018.02.04";
 
   src = fetchFromGitHub {
     owner  = "cliffordwolf";
     repo   = "icestorm";
-    rev    = "bca8c3c88f5707213a6cc55ec7b06b576ab98809";
-    sha256 = "00g1xd70dlgvyfyk5ivj71dpk0vzx3xka60f6x3hm4frl9ahyhj7";
+    rev    = "722790ad3cdb497e1b13cd1b4368d8380371eb37";
+    sha256 = "0l04c6dshhhdcgqg1bdlw215wbn52fsg2fm2cvavhvf64c18lwd1";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/tools/misc/loccount/default.nix b/pkgs/development/tools/misc/loccount/default.nix
index ad4e5d112d1..9205f6caf0d 100644
--- a/pkgs/development/tools/misc/loccount/default.nix
+++ b/pkgs/development/tools/misc/loccount/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, buildGoPackage, fetchFromGitLab }:
 buildGoPackage rec {
   name = "loccount-${version}";
-  version = "1.1";
+  version = "1.2";
 
   goPackagePath = "gitlab.com/esr/loccount";
   excludedPackages = "tests";
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "esr";
     repo = "loccount";
     rev = version;
-    sha256 = "1wx31hraxics8x8w42jy5b10wdx1368zp2p6gplcfmpjssf9pacr";
+    sha256 = "18z7ai7wy2k9yd3w65d37apfqs3h9bc2c15y7v1bydppi44zfsdk";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/games/assaultcube/assaultcube-next.patch b/pkgs/games/assaultcube/assaultcube-next.patch
new file mode 100644
index 00000000000..92fc7996670
--- /dev/null
+++ b/pkgs/games/assaultcube/assaultcube-next.patch
@@ -0,0 +1,11 @@
+--- 1.1.0.4/source/src/Makefile
++++ 1.1.0.4/source/src/Makefile
+@@ -6,7 +6,7 @@
+ # found to have been caused by the g++ compiler in the past. This seems to have
+ # been fixed now by relaxing the optimization that g++ does, so although we'll
+ # continue using clang++ (just in case), you can use g++ if you prefer.
+-CXX=clang++
++#CXX=clang++
+
+ # Changing this to ACDEBUG=yes will compile a debug version of AssaultCube.
+ ACDEBUG=no
diff --git a/pkgs/games/assaultcube/default.nix b/pkgs/games/assaultcube/default.nix
new file mode 100644
index 00000000000..cef48978b6d
--- /dev/null
+++ b/pkgs/games/assaultcube/default.nix
@@ -0,0 +1,82 @@
+{ fetchFromGitHub, stdenv, makeDesktopItem, openal, pkgconfig, libogg,
+  libvorbis, SDL, SDL_image, makeWrapper, zlib,
+  client ? true, server ? true }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+
+  # master branch has legacy (1.2.0.2) protocol 1201 and gcc 6 fix.
+  pname = "assaultcube";
+  version = "01052017";
+  name = "${pname}-${version}";
+
+  meta = {
+    description = "Fast and fun first-person-shooter based on the Cube fps";
+    homepage = http://assault.cubers.net;
+    maintainers = [ maintainers.genesis ];
+    platforms = platforms.linux; # should work on darwin with a little effort.
+    license = stdenv.lib.licenses.zlib;
+  };
+
+  src = fetchFromGitHub {
+    owner = "assaultcube";
+    repo  = "AC";
+    rev = "9f537b0876a39d7686e773040469fbb1417de18b";
+    sha256 = "0nvckn67mmfaa7x3j41xyxjllxqzfx1dxg8pnqsaak3kkzds34pl";
+  };
+
+  # ${branch} not accepted as a value ?
+  # TODO: write a functional BUNDLED_ENET option and restore it in deps.
+  patches = [ ./assaultcube-next.patch ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  # add optional for server only ?
+  buildInputs = [ makeWrapper openal SDL SDL_image libogg libvorbis zlib ];
+
+  #makeFlags = [ "CXX=g++" ];
+
+  targets = (optionalString server "server") + (optionalString client " client");
+  buildPhase = ''
+    make -C source/src ${targets}
+  '';
+
+  desktop = makeDesktopItem {
+    name = "AssaultCube";
+    desktopName = "AssaultCube";
+    comment = "A multiplayer, first-person shooter game, based on the CUBE engine. Fast, arcade gameplay.";
+    genericName = "First-person shooter";
+    categories = "Application;Game;ActionGame;Shooter";
+    icon = "assaultcube.png";
+    exec = "${pname}";
+  };
+
+  gamedatadir = "/share/games/${pname}";
+
+  installPhase = ''
+
+    bindir=$out/bin
+
+    mkdir -p $bindir $out/$gamedatadir
+
+    cp -r config packages $out/$gamedatadir
+
+    # install custom script
+    substituteAll ${./launcher.sh} $bindir/assaultcube
+    chmod +x $bindir/assaultcube
+
+    if (test -e source/src/ac_client) then
+      cp source/src/ac_client $bindir
+      mkdir -p $out/share/applications
+      cp ${desktop}/share/applications/* $out/share/applications
+      install -Dpm644 packages/misc/icon.png $out/share/icons/assaultcube.png
+      install -Dpm644 packages/misc/icon.png $out/share/pixmaps/assaultcube.png
+    fi
+
+    if (test -e source/src/ac_server) then
+      cp source/src/ac_server $bindir
+      ln -s $bindir/${pname} $bindir/${pname}-server
+    fi
+    '';
+}
diff --git a/pkgs/games/assaultcube/launcher.sh b/pkgs/games/assaultcube/launcher.sh
new file mode 100644
index 00000000000..331cb861f66
--- /dev/null
+++ b/pkgs/games/assaultcube/launcher.sh
@@ -0,0 +1,20 @@
+#!@shell@
+# original scripts are very awful
+
+CUBE_DIR=@out@@gamedatadir@
+
+case $(basename "$0") in
+  assaultcube-server)
+    CUBE_OPTIONS="-Cconfig/servercmdline.txt"
+    BINARYPATH=@out@/bin/ac_server
+    ;;
+  assaultcube)
+    CUBE_OPTIONS="--home=${HOME}/.assaultcube/v1.2next --init"
+    BINARYPATH=@out@/bin/ac_client
+    ;;
+  *) echo "$0" is not supported.
+     exit 1
+esac
+
+cd $CUBE_DIR
+exec "${BINARYPATH}" ${CUBE_OPTIONS} "$@"
diff --git a/pkgs/misc/themes/greybird/default.nix b/pkgs/misc/themes/greybird/default.nix
index c1de0856dce..26c37171642 100644
--- a/pkgs/misc/themes/greybird/default.nix
+++ b/pkgs/misc/themes/greybird/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "greybird";
-  version = "3.22.5";
+  version = "3.22.6";
 
   src = fetchFromGitHub {
     owner = "shimmerproject";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "0l107q9fcbgp73r4p4fmyy3a7pmc4mi4km5hgp67fm2a4dna7rkd";
+    sha256 = "16rifkyy8l4v03rx85j7m6rfdal99l1xdmghysh95r6lx4y6r01i";
   };
 
   nativeBuildInputs = [ autoreconfHook sass glib libxml2 gdk_pixbuf librsvg ];
diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix
index 8c9e7a9ade5..c2bea009ab7 100644
--- a/pkgs/os-specific/linux/cifs-utils/default.nix
+++ b/pkgs/os-specific/linux/cifs-utils/default.nix
@@ -1,14 +1,15 @@
-{ stdenv, fetchurl, kerberos, keyutils, pam, talloc }:
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, kerberos, keyutils, pam, talloc }:
 
 stdenv.mkDerivation rec {
   name = "cifs-utils-${version}";
-  version = "6.6";
+  version = "6.7";
 
   src = fetchurl {
     url = "mirror://samba/pub/linux-cifs/cifs-utils/${name}.tar.bz2";
-    sha256 = "09biws1jm23l3mjb9kh99v57z8bgzybrmimwddb40s6y0yl54wfh";
+    sha256 = "1ayghnkryy1n1zm5dyvyyr7n3807nsm6glfcbbki5c2a8w91dwmj";
   };
 
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ kerberos keyutils pam talloc ];
 
   makeFlags = "root_sbindir=$(out)/sbin";
diff --git a/pkgs/os-specific/linux/cpupower/default.nix b/pkgs/os-specific/linux/cpupower/default.nix
index 7cde965d215..d10b789f3e4 100644
--- a/pkgs/os-specific/linux/cpupower/default.nix
+++ b/pkgs/os-specific/linux/cpupower/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ gettext ];
   buildInputs = [ pciutils ];
 
-  configurePhase = ''
+  postPatch = ''
     cd tools/power/cpupower
     sed -i 's,/bin/true,${buildPackages.coreutils}/bin/true,' Makefile
     sed -i 's,/bin/pwd,${buildPackages.coreutils}/bin/pwd,' Makefile
@@ -17,18 +17,16 @@ stdenv.mkDerivation {
 
   makeFlags = [ "CROSS=${stdenv.cc.targetPrefix}" ];
 
-  installPhase = ''
-    make \
-      bindir="$out/bin" \
-      sbindir="$out/sbin" \
-      mandir="$out/share/man" \
-      includedir="$out/include" \
-      libdir="$out/lib" \
-      localedir="$out/share/locale" \
-      docdir="$out/share/doc/cpupower" \
-      confdir="$out/etc" \
-      install install-man
-  '';
+  installFlags = [
+    "bindir=$(out)/bin"
+    "sbindir=$(out)/sbin"
+    "mandir=$(out)/share/man"
+    "includedir=$(out)/include"
+    "libdir=$(out)/lib"
+    "localedir=$(out)/share/locale"
+    "docdir=$(out)/share/doc/cpupower"
+    "confdir=$(out)/etc"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix
index b058aa692f0..8ebce196530 100644
--- a/pkgs/os-specific/linux/hwdata/default.nix
+++ b/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "hwdata-${version}";
-  version = "0.300";
+  version = "0.308";
 
   src = fetchurl {
-    url = "http://pkgs.fedoraproject.org/repo/pkgs/hwdata/v0.300.tar.gz/sha512/34294fcf65c3cb17c19d625732d1656ec1992dde254a68ee35681ad2f310bc05028a85889efa2c1d1e8a2d10885ccc00185475a00f6f2fb82d07e2349e604a51/v0.300.tar.gz";
-    sha256 = "03xlj05qyixhnsybq1qnr7j5q2nvirs4jxpgg4sbw8swsqj3dgqi";
+    url = "https://github.com/vcrhonek/hwdata/archive/v0.308.tar.gz";
+    sha256 = "17zcwplw41dfwb2l9jfgvm65rjzlsbv30f56d6vgiix042f92vcq";
   };
 
   preConfigure = "patchShebangs ./configure";
diff --git a/pkgs/os-specific/linux/wireguard/default.nix b/pkgs/os-specific/linux/wireguard/default.nix
index db8a510bb59..c5461c06e83 100644
--- a/pkgs/os-specific/linux/wireguard/default.nix
+++ b/pkgs/os-specific/linux/wireguard/default.nix
@@ -6,11 +6,11 @@ assert kernel != null -> stdenv.lib.versionAtLeast kernel.version "3.10";
 let
   name = "wireguard-${version}";
 
-  version = "0.0.20180118";
+  version = "0.0.20180202";
 
   src = fetchurl {
     url    = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${version}.tar.xz";
-    sha256 = "18x8ndnr4lvl3in5sian6f9q69pk8h4xbwldmk7bfrpb5m03ngs6";
+    sha256 = "ee3415b482265ad9e8721aa746aaffdf311058a2d1a4d80e7b6d11bbbf71c722";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/servers/misc/airsonic/default.nix b/pkgs/servers/misc/airsonic/default.nix
index 57040f46947..7fc041d8198 100644
--- a/pkgs/servers/misc/airsonic/default.nix
+++ b/pkgs/servers/misc/airsonic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "airsonic-${version}";
-  version = "10.0.1";
+  version = "10.1.1";
 
   src = fetchurl {
     url = "https://github.com/airsonic/airsonic/releases/download/v${version}/airsonic.war";
-    sha256 = "1qky8dz49200f6100ivkn5g7i0hzkv3gpq2r0cj6z53s8d1ayblc";
+    sha256 = "0acj6la88lnbfdp0nilvsll48zfig7sgibgwfjjckialppyg4ir6";
   };
 
   buildCommand = ''
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index d2e08932fe1..70c252d395f 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name= "nextcloud-${version}";
-  version = "12.0.4";
+  version = "12.0.5";
 
   src = fetchurl {
     url = "https://download.nextcloud.com/server/releases/${name}.tar.bz2";
-    sha256 = "1dh9knqbw6ph2rfrb5rscdraj4375rqddmrifw6adyga9jkn2hb5";
+    sha256 = "0hya524d8wqia5v2wz8cmasi526j97z6d0l1h7l7j442wsn2kgn8";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/admin/fastlane/Gemfile.lock b/pkgs/tools/admin/fastlane/Gemfile.lock
index 5dddccfe78a..a578bb4bca2 100644
--- a/pkgs/tools/admin/fastlane/Gemfile.lock
+++ b/pkgs/tools/admin/fastlane/Gemfile.lock
@@ -4,6 +4,7 @@ GEM
     CFPropertyList (2.3.6)
     addressable (2.5.2)
       public_suffix (>= 2.0.2, < 4.0)
+    atomos (0.1.2)
     babosa (1.0.2)
     claide (1.0.2)
     colored (1.2)
@@ -16,7 +17,7 @@ GEM
       unf (>= 0.0.5, < 1.0.0)
     dotenv (2.2.1)
     excon (0.60.0)
-    faraday (0.13.1)
+    faraday (0.14.0)
       multipart-post (>= 1.2, < 3)
     faraday-cookie_jar (0.0.6)
       faraday (>= 0.7.4)
@@ -24,8 +25,8 @@ GEM
     faraday_middleware (0.12.2)
       faraday (>= 0.7.4, < 1.0)
     fastimage (2.1.1)
-    fastlane (2.75.1)
-      CFPropertyList (>= 2.3, < 3.0.0)
+    fastlane (2.80.0)
+      CFPropertyList (>= 2.3, < 4.0.0)
       addressable (>= 2.3, < 3.0.0)
       babosa (>= 1.0.2, < 2.0.0)
       bundler (>= 1.12.0, < 2.0.0)
@@ -49,16 +50,16 @@ GEM
       public_suffix (~> 2.0.0)
       rubyzip (>= 1.1.0, < 2.0.0)
       security (= 0.1.3)
-      slack-notifier (>= 1.3, < 2.0.0)
+      slack-notifier (>= 2.0.0, < 3.0.0)
       terminal-notifier (>= 1.6.2, < 2.0.0)
       terminal-table (>= 1.4.5, < 2.0.0)
       tty-screen (>= 0.6.3, < 1.0.0)
-      tty-spinner (>= 0.7.0, < 1.0.0)
+      tty-spinner (>= 0.8.0, < 1.0.0)
       word_wrap (~> 1.0.0)
       xcodeproj (>= 1.5.2, < 2.0.0)
       xcpretty (>= 0.2.4, < 1.0.0)
       xcpretty-travis-formatter (>= 0.0.3)
-    gh_inspector (1.0.3)
+    gh_inspector (1.1.1)
     google-api-client (0.13.6)
       addressable (~> 2.5, >= 2.5.1)
       googleauth (~> 0.5)
@@ -89,7 +90,7 @@ GEM
       mime-types-data (~> 3.2015)
     mime-types-data (3.2016.0521)
     mini_magick (4.5.1)
-    multi_json (1.13.0)
+    multi_json (1.13.1)
     multi_xml (0.6.0)
     multipart-post (2.0.0)
     nanaimo (0.2.3)
@@ -109,13 +110,13 @@ GEM
       faraday (~> 0.9)
       jwt (>= 1.5, < 3.0)
       multi_json (~> 1.10)
-    slack-notifier (1.5.1)
+    slack-notifier (2.3.2)
     terminal-notifier (1.8.0)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
     tty-cursor (0.5.0)
     tty-screen (0.6.4)
-    tty-spinner (0.7.0)
+    tty-spinner (0.8.0)
       tty-cursor (>= 0.5.0)
     uber (0.1.0)
     unf (0.1.4)
@@ -123,8 +124,9 @@ GEM
     unf_ext (0.0.7.4)
     unicode-display_width (1.3.0)
     word_wrap (1.0.0)
-    xcodeproj (1.5.4)
+    xcodeproj (1.5.6)
       CFPropertyList (~> 2.3.3)
+      atomos (~> 0.1.2)
       claide (>= 1.0.2, < 2.0)
       colored2 (~> 3.1)
       nanaimo (~> 0.2.3)
diff --git a/pkgs/tools/admin/fastlane/gemset.nix b/pkgs/tools/admin/fastlane/gemset.nix
index a309de07a11..c9ddb7b77c0 100644
--- a/pkgs/tools/admin/fastlane/gemset.nix
+++ b/pkgs/tools/admin/fastlane/gemset.nix
@@ -8,6 +8,14 @@
     };
     version = "2.5.2";
   };
+  atomos = {
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10z69hjv30r2w5q5wmlf0cq4jv3w744jrac8ylln8sf45ckqj7wk";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   babosa = {
     source = {
       remotes = ["https://rubygems.org"];
@@ -102,10 +110,10 @@
     dependencies = ["multipart-post"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gyqsj7vlqynwvivf9485zwmcj04v1z7gq362z0b8zw2zf4ag0hw";
+      sha256 = "1c3x3s8vb5nf7inyfvhdxwa4q3swmnacpxby6pish5fgmhws7zrr";
       type = "gem";
     };
-    version = "0.13.1";
+    version = "0.14.0";
   };
   faraday-cookie_jar = {
     dependencies = ["faraday" "http-cookie"];
@@ -137,18 +145,18 @@
     dependencies = ["CFPropertyList" "addressable" "babosa" "colored" "commander-fastlane" "dotenv" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "highline" "json" "mini_magick" "multi_json" "multi_xml" "multipart-post" "plist" "public_suffix" "rubyzip" "security" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v5i9wnbmsmvz3xhbkvs1w5qj9b0ib5431i3zlimfasf8h138l9y";
+      sha256 = "0saas50qdfipkms66snyg7imvzn1vfngd87dfygj9x8v18bqwvis";
       type = "gem";
     };
-    version = "2.75.1";
+    version = "2.80.0";
   };
   gh_inspector = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lxvp8xpjd2cazzcp90phy567spp4v41bnk9awgx8absndv70k1x";
+      sha256 = "0mpfl279k8yff2ia601b37zw31blwh2plkr501iz6qj8drx3mq3c";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.1";
   };
   google-api-client = {
     dependencies = ["addressable" "googleauth" "httpclient" "mime-types" "representable" "retriable"];
@@ -262,10 +270,10 @@
   multi_json = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05rrhxl08qvd37g5q13v6k8qqbr1ixn6g53ld6rxrvj4lxrjvxns";
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
       type = "gem";
     };
-    version = "1.13.0";
+    version = "1.13.1";
   };
   multi_xml = {
     source = {
@@ -368,10 +376,10 @@
   slack-notifier = {
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xavibxh00gy62mm79l6id9l2fldjmdqifk8alqfqy5z38ffwah6";
+      sha256 = "1pkfn99dhy5s526r6k8d87fwwb6j287ga9s7lxqmh60z28xqh3bv";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "2.3.2";
   };
   terminal-notifier = {
     source = {
@@ -410,10 +418,10 @@
     dependencies = ["tty-cursor"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sblbhnscgchnxpbsxa5xmnxnpw13nd4lgsykazm9mhsxmjmhggw";
+      sha256 = "1xv5bycgmiyx00bq0kx2bdixi3h1ffi86mwj858gqbxlpjbzsi94";
       type = "gem";
     };
-    version = "0.7.0";
+    version = "0.8.0";
   };
   uber = {
     source = {
@@ -457,13 +465,13 @@
     version = "1.0.0";
   };
   xcodeproj = {
-    dependencies = ["CFPropertyList" "claide" "colored2" "nanaimo"];
+    dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04kv04y5yz2zniwwywh5ik29gpnjpsp23yr6w07qn3m243icvi76";
+      sha256 = "0zqx24qhax7p91rs1114da0v86cy9m7an1bjwxq6dyccp8g6kb50";
       type = "gem";
     };
-    version = "1.5.4";
+    version = "1.5.6";
   };
   xcpretty = {
     dependencies = ["rouge"];
diff --git a/pkgs/tools/graphics/fim/default.nix b/pkgs/tools/graphics/fim/default.nix
index c7a22f00dce..066c181f53c 100644
--- a/pkgs/tools/graphics/fim/default.nix
+++ b/pkgs/tools/graphics/fim/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   name = "fim-${version}";
-  version = "0.5rc3";
+  version = "0.6";
 
   src = fetchurl {
-    url = mirror://savannah/fbi-improved/fim-0.5-rc3.tar.gz;
-    sha256 = "12aka85h469zfj0zcx3xdpan70gq8nf5rackgb1ldcl9mqjn50c2";
+    url = "mirror://savannah/fbi-improved/${name}-trunk.tar.gz";
+    sha256 = "124b7c4flx5ygmy5sqq0gpvxqzafnknbcj6f45ddnbdxik9lazzp";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/edid-decode/default.nix b/pkgs/tools/misc/edid-decode/default.nix
new file mode 100644
index 00000000000..e4968b12e6c
--- /dev/null
+++ b/pkgs/tools/misc/edid-decode/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchgit }:
+let
+  version = "2017-09-18";
+in stdenv.mkDerivation rec {
+  name = "edid-decode-unstable-${version}";
+
+  src = fetchgit {
+    url = "git://anongit.freedesktop.org/xorg/app/edid-decode";
+    rev = "f56f329ed23a25d002352dedba1e8f092a47286f";
+    sha256 = "1qzaq342dsdid0d99y7kj60p6bzgp2zjsmspyckddc68mmz4cs9n";
+  };
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp edid-decode $out/bin
+  '';
+
+  meta = {
+    description = "EDID decoder and conformance tester";
+    homepage = http://cgit.freedesktop.org/xorg/app/edid-decode/;
+    license = stdenv.lib.licenses.mit;
+    maintainers = [ stdenv.lib.maintainers.chiiruno ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
+
diff --git a/pkgs/tools/misc/pick/default.nix b/pkgs/tools/misc/pick/default.nix
index 747c9837641..0afd28b3c91 100644
--- a/pkgs/tools/misc/pick/default.nix
+++ b/pkgs/tools/misc/pick/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "pick-${version}";
-  version = "1.9.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "calleerlandsson";
     repo = "pick";
     rev = "v${version}";
-    sha256 = "0s0mn9iz17ldhvahggh9rsmgfrjh0kvk5bh4p9xhxcn7rcp0h5ka";
+    sha256 = "0ypawbzpw188rxgv8x044iib3a517j5grgqnxy035ax5zzjavsrr";
   };
 
   buildInputs = [ ncurses ];
diff --git a/pkgs/tools/misc/picocom/default.nix b/pkgs/tools/misc/picocom/default.nix
index dfd81bd9742..57be275d32a 100644
--- a/pkgs/tools/misc/picocom/default.nix
+++ b/pkgs/tools/misc/picocom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "picocom-${version}";
-  version = "3.0";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = "npat-efault";
     repo = "picocom";
     rev = version;
-    sha256 = "1i75ksm44la8kn82v71hzq0q5642y108rascdb94zilhagdhilk2";
+    sha256 = "1vvjydqf0ax47nvdyyl67jafw5b3sfsav00xid6qpgia1gs2r72n";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix
index b74f9948418..57cbb44cebf 100644
--- a/pkgs/tools/system/facter/default.nix
+++ b/pkgs/tools/system/facter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   name = "facter-${version}";
-  version = "3.9.0";
+  version = "3.9.3";
 
   src = fetchFromGitHub {
-    sha256 = "1picxrmvka57ph4zqgwqdsqvz3mqppg41wkj8dx37hscwwlbdw0s";
+    sha256 = "1qd0xsw49nbj22czddxk90di31gx43hacvnmh08gp3001a8g0qcj";
     rev = version;
     repo = "facter";
     owner = "puppetlabs";
diff --git a/pkgs/tools/system/freeipmi/default.nix b/pkgs/tools/system/freeipmi/default.nix
index 03839339926..fd70dce4edf 100644
--- a/pkgs/tools/system/freeipmi/default.nix
+++ b/pkgs/tools/system/freeipmi/default.nix
@@ -1,15 +1,15 @@
-{ fetchurl, stdenv, libgcrypt, readline }:
+{ fetchurl, stdenv, libgcrypt, readline, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  version = "1.5.7";
+  version = "1.6.1";
   name = "freeipmi-${version}";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${name}.tar.gz";
-    sha256 = "1rdxs33klk6956rg8mn2dxwkk43y5yilvgvbcka8g6v4x0r98v5l";
+    sha256 = "0jdm1nwsnkj0nzjmcqprmjk25449mhjj25khwzpq3mpjw440wmd2";
   };
 
-  buildInputs = [ libgcrypt readline ];
+  buildInputs = [ libgcrypt readline libgpgerror ];
 
   doCheck = true;
 
diff --git a/pkgs/tools/system/htop/default.nix b/pkgs/tools/system/htop/default.nix
index 750ff8e59ef..992067da50f 100644
--- a/pkgs/tools/system/htop/default.nix
+++ b/pkgs/tools/system/htop/default.nix
@@ -1,19 +1,24 @@
 { lib, fetchurl, stdenv, ncurses,
-IOKit }:
+IOKit, python }:
 
 stdenv.mkDerivation rec {
   name = "htop-${version}";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchurl {
-    sha256 = "11zlwadm6dpkrlfvf3z3xll26yyffa7qrxd1w72y1kl0rgffk6qp";
     url = "http://hisham.hm/htop/releases/${version}/${name}.tar.gz";
+    sha256 = "0j07z0xm2gj1vzvbgh4323k4db9mr7drd7gw95mmpqi61ncvwq1j";
   };
 
+  nativeBuildInputs = [ python ];
   buildInputs =
     [ ncurses ] ++
     lib.optionals stdenv.isDarwin [ IOKit ];
 
+  prePatch = ''
+    patchShebangs scripts/MakeHeader.py
+  '';
+
   meta = with stdenv.lib; {
     description = "An interactive process viewer for Linux";
     homepage = https://hisham.hm/htop/;
diff --git a/pkgs/tools/text/fanficfare/default.nix b/pkgs/tools/text/fanficfare/default.nix
index 37447d0fb2a..2af9baeb5c5 100644
--- a/pkgs/tools/text/fanficfare/default.nix
+++ b/pkgs/tools/text/fanficfare/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, python27Packages }:
 
 python27Packages.buildPythonApplication rec {
-  version = "2.16.0";
+  version = "2.22.0";
   name = "fanficfare-${version}";
   nameprefix = "";
 
   src = fetchurl {
     url = "https://github.com/JimmXinu/FanFicFare/archive/v${version}.tar.gz";
-    sha256 = "0c31z7w4b3wz5nahsmnfhvp3srprfsqbp3zyngw4cqw3dm17kvvi";
+    sha256 = "1gwr2qk0wff8f69w21ffj6cq8jklqd89vcdhhln6ii1h1kf8k031";
   };
 
   propagatedBuildInputs = with python27Packages; [ beautifulsoup4 chardet html5lib html2text ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 92f81ee2861..73f47828055 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1953,6 +1953,8 @@ with pkgs;
 
   ecryptfs-helper = callPackage ../tools/security/ecryptfs/helper.nix { };
 
+  edid-decode = callPackage ../tools/misc/edid-decode { };
+
   editres = callPackage ../tools/graphics/editres { };
 
   edit = callPackage ../applications/editors/edit { };
@@ -18193,6 +18195,8 @@ with pkgs;
     physfs = physfs_2;
   };
 
+  assaultcube = callPackage ../games/assaultcube { };
+
   astromenace = callPackage ../games/astromenace { };
 
   atanks = callPackage ../games/atanks {};
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index b91f9dae9f0..d80c43b03f5 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -9,7 +9,7 @@
 , pcre, oniguruma, gnulib, tre, glibc, sqlite, openssl, expat, cairo
 , perl, gtk2, python, glib, gobjectIntrospection, libevent, zlib, autoreconfHook
 , mysql, postgresql, cyrus_sasl
-, fetchFromGitHub, libmpack, which
+, fetchFromGitHub, libmpack, which, fetchpatch
 }:
 
 let
@@ -671,6 +671,14 @@ let
       sed -i "s|/usr/local|$out|" lgi/Makefile
     '';
 
+    patches = [
+        (fetchpatch {
+            name = "lgi-find-cairo-through-typelib.patch";
+            url = "https://github.com/psychon/lgi/commit/46a163d9925e7877faf8a4f73996a20d7cf9202a.patch";
+            sha256 = "0gfvvbri9kyzhvq3bvdbj2l6mwvlz040dk4mrd5m9gz79f7w109c";
+        })
+    ];
+
     meta = with stdenv.lib; {
       description = "GObject-introspection based dynamic Lua binding to GObject based libraries";
       homepage    = https://github.com/pavouk/lgi;
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index fb7718a0c07..cc81116cf3e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -155,6 +155,8 @@ in {
 
   agate-sql = callPackage ../development/python-modules/agate-sql { };
 
+  aioimaplib = callPackage ../development/python-modules/aioimaplib { };
+
   aioamqp = callPackage ../development/python-modules/aioamqp { };
 
   ansicolor = callPackage ../development/python-modules/ansicolor { };
@@ -623,6 +625,8 @@ in {
     };
   };
 
+  asynctest = callPackage ../development/python-modules/asynctest { };
+
   async-timeout = callPackage ../development/python-modules/async_timeout { };
 
   asn1ate = callPackage ../development/python-modules/asn1ate { };
@@ -2028,6 +2032,11 @@ in {
     doCheck = false;
   });
 
+  can = callPackage ../development/python-modules/can {};
+
+  canopen = callPackage ../development/python-modules/canopen {};
+
+  canmatrix = callPackage ../development/python-modules/canmatrix {};
 
   cairocffi = buildPythonPackage rec {
     name = "cairocffi-0.7.2";
@@ -2124,26 +2133,6 @@ in {
     };
   };
 
-  github-cli = buildPythonPackage rec {
-    version = "1.0.0";
-    name = "github-cli-${version}";
-    src = pkgs.fetchFromGitHub {
-      owner = "jsmits";
-      repo = "github-cli";
-      rev = version;
-      sha256 = "16bwn42wqd76zs97v8p6mqk79p5i2mb06ljk67lf8gy6kvqc1x8y";
-    };
-
-    buildInputs = with self; [ nose pkgs.git ];
-    propagatedBuildInputs = with self; [ simplejson ];
-
-    # skipping test_issues_cli.py since it requires access to the github.com
-    patchPhase = "rm tests/test_issues_cli.py";
-    checkPhase = "nosetests tests/";
-
-    meta.maintainers = with maintainers; [ garbas ];
-  };
-
   case = buildPythonPackage rec {
     name = "case-${version}";
     version = "1.5.2";
@@ -3797,7 +3786,8 @@ in {
     };
   });
 
-  nose-parameterized = callPackage ../development/python-modules/nose-parameterized {};
+  nose-parameterized = warn "Warning: `nose-parameterized` is deprecated! Use `parameterized` instead."
+    (callPackage ../development/python-modules/nose-parameterized {});
 
   neurotools = buildPythonPackage (rec {
     name = "NeuroTools-${version}";
@@ -5222,6 +5212,8 @@ in {
     };
   };
 
+  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
+
   ipfsapi = buildPythonPackage rec {
     name = "ipfsapi-${version}";
     version = "0.4.2.post1";
@@ -5568,6 +5560,8 @@ in {
     };
   };
 
+  luftdaten = callPackage ../development/python-modules/luftdaten { };
+
   m2r = callPackage ../development/python-modules/m2r { };
 
   mailchimp = buildPythonPackage rec {
@@ -12357,6 +12351,8 @@ in {
     };
   };
 
+  parameterized = callPackage ../development/python-modules/parameterized { };
+
   paramz = callPackage ../development/python-modules/paramz { };
 
   parsel = buildPythonPackage rec {
@@ -12780,6 +12776,8 @@ in {
 
   kmsxx = callPackage ../development/libraries/kmsxx { };
 
+  pybase64 = callPackage ../development/python-modules/pybase64 { };
+
   pylibconfig2 = buildPythonPackage rec {
     name = "pylibconfig2-${version}";
     version = "0.2.4";