# This file was @generated by crate2nix 0.9.0 with the command:
#   "generate"
# See https://github.com/kolloch/crate2nix for more info.

{ nixpkgs ? <nixpkgs>, pkgs ? import nixpkgs { config = { }; }, lib ? pkgs.lib
, stdenv ? pkgs.stdenv, buildRustCrateForPkgs ? if buildRustCrate != null then
  lib.warn "`buildRustCrate` is deprecated, use `buildRustCrateForPkgs` instead"
  (_: buildRustCrate)
else
  pkgs:
  pkgs.buildRustCrate
  # Deprecated
, buildRustCrate ? null
  # This is used as the `crateOverrides` argument for `buildRustCrate`.
, defaultCrateOverrides ? pkgs.defaultCrateOverrides
  # The features to enable for the root_crate or the workspace_members.
, rootFeatures ? [
  "default"
]
# If true, throw errors instead of issueing deprecation warnings.
, strictDeprecation ? false
  # Used for conditional compilation based on CPU feature detection.
, targetFeatures ? [ ]
  # Whether to perform release builds: longer compile times, faster binaries.
, release ? true
  # Additional crate2nix configuration if it exists.
, crateConfig ? if builtins.pathExists ./crate-config.nix then
  pkgs.callPackage ./crate-config.nix { }
else
  { } }:

rec {
  #
  # "public" attributes that we attempt to keep stable with new versions of crate2nix.
  #

  rootCrate = rec {
    packageId = "lectev";

    # Use this attribute to refer to the derivation building your root crate package.
    # You can override the features with rootCrate.build.override { features = [ "default" "feature1" ... ]; }.
    build = internal.buildRustCrateWithFeatures { inherit packageId; };

    # Debug support which might change between releases.
    # File a bug if you depend on any for non-debug work!
    debug = internal.debugCrate { inherit packageId; };
  };
  # Refer your crate build derivation by name here.
  # You can override the features with
  # workspaceMembers."${crateName}".build.override { features = [ "default" "feature1" ... ]; }.
  workspaceMembers = {
    "lectev" = rec {
      packageId = "lectev";
      build = internal.buildRustCrateWithFeatures { packageId = "lectev"; };

      # Debug support which might change between releases.
      # File a bug if you depend on any for non-debug work!
      debug = internal.debugCrate { inherit packageId; };
    };
  };

  # A derivation that joins the outputs of all workspace members together.
  allWorkspaceMembers = pkgs.symlinkJoin {
    name = "all-workspace-members";
    paths = let members = builtins.attrValues workspaceMembers;
    in builtins.map (m: m.build) members;
  };

  #
  # "internal" ("private") attributes that may change in every new version of crate2nix.
  #

  internal = rec {
    # Build and dependency information for crates.
    # Many of the fields are passed one-to-one to buildRustCrate.
    #
    # Noteworthy:
    # * `dependencies`/`buildDependencies`: similar to the corresponding fields for buildRustCrate.
    #   but with additional information which is used during dependency/feature resolution.
    # * `resolvedDependencies`: the selected default features reported by cargo - only included for debugging.
    # * `devDependencies` as of now not used by `buildRustCrate` but used to
    #   inject test dependencies into the build

    crates = {
      "ansi_term 0.11.0" = rec {
        crateName = "ansi_term";
        version = "0.11.0";
        edition = "2015";
        sha256 = "16wpvrghvd0353584i1idnsgm0r3vchg8fyrm0x8ayv1rgvbljgf";
        authors = [
          "ogham@bsago.me"
          "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>"
          "Josh Triplett <josh@joshtriplett.org>"
        ];
        dependencies = [{
          name = "winapi";
          packageId = "winapi 0.3.9";
          target = { target, features }: (target."os" == "windows");
          features = [ "errhandlingapi" "consoleapi" "processenv" ];
        }];

      };
      "ansi_term 0.12.1" = rec {
        crateName = "ansi_term";
        version = "0.12.1";
        edition = "2015";
        sha256 = "1ljmkbilxgmhavxvxqa7qvm6f3fjggi7q2l3a72q9x0cxjvrnanm";
        authors = [
          "ogham@bsago.me"
          "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>"
          "Josh Triplett <josh@joshtriplett.org>"
        ];
        dependencies = [{
          name = "winapi";
          packageId = "winapi 0.3.9";
          target = { target, features }: (target."os" == "windows");
          features = [
            "consoleapi"
            "errhandlingapi"
            "fileapi"
            "handleapi"
            "processenv"
          ];
        }];
        features = { "derive_serde_style" = [ "serde" ]; };
      };
      "atty" = rec {
        crateName = "atty";
        version = "0.2.14";
        edition = "2015";
        sha256 = "1s7yslcs6a28c5vz7jwj63lkfgyx8mx99fdirlhi9lbhhzhrpcyr";
        authors = [ "softprops <d.tangren@gmail.com>" ];
        dependencies = [
          {
            name = "hermit-abi";
            packageId = "hermit-abi";
            target = { target, features }: (target."os" == "hermit");
          }
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features =
              [ "consoleapi" "processenv" "minwinbase" "minwindef" "winbase" ];
          }
        ];

      };
      "autocfg" = rec {
        crateName = "autocfg";
        version = "1.0.1";
        edition = "2015";
        sha256 = "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d";
        authors = [ "Josh Stone <cuviper@gmail.com>" ];

      };
      "backoff" = rec {
        crateName = "backoff";
        version = "0.3.0";
        edition = "2018";
        sha256 = "099nhm95bkb8g9435x45frnsgaxkf2xm7gy8dxxbis3gl1cpzqcz";
        authors = [ "Tibor Benke <ihrwein@gmail.com>" ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "getrandom";
            packageId = "getrandom";
          }
          {
            name = "instant";
            packageId = "instant";
          }
          {
            name = "pin-project";
            packageId = "pin-project";
            optional = true;
          }
          {
            name = "rand";
            packageId = "rand";
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            rename = "tokio_1";
            optional = true;
            features = [ "time" ];
          }
        ];
        devDependencies = [{
          name = "tokio";
          packageId = "tokio 1.12.0";
          features = [ "macros" "time" "rt-multi-thread" ];
        }];
        features = {
          "async-std" = [ "futures" "async_std_1" ];
          "futures" = [ "futures-core" "pin-project" ];
          "tokio" = [ "futures" "tokio_1" ];
          "wasm-bindgen" = [ "instant/wasm-bindgen" "getrandom/js" ];
        };
        resolvedDefaultFeatures = [
          "default"
          "futures"
          "futures-core"
          "pin-project"
          "tokio"
          "tokio_1"
        ];
      };
      "base64" = rec {
        crateName = "base64";
        version = "0.13.0";
        edition = "2018";
        sha256 = "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch";
        authors = [
          "Alice Maz <alice@alicemaz.com>"
          "Marshall Pierce <marshall@mpierce.org>"
        ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "bdays" = rec {
        crateName = "bdays";
        version = "0.1.2";
        edition = "2018";
        sha256 = "1ynqbv9hmph3pljggwrsi6f47d0zmfj7h4dp10czv0qyqwhic39i";
        authors = [ "Felipe Noronha <felipenoris@gmail.com>" ];
        dependencies = [{
          name = "chrono";
          packageId = "chrono";
        }];

      };
      "bitflags" = rec {
        crateName = "bitflags";
        version = "1.3.2";
        edition = "2018";
        sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy";
        authors = [ "The Rust Project Developers" ];
        features = { "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; };
        resolvedDefaultFeatures = [ "default" ];
      };
      "bstr" = rec {
        crateName = "bstr";
        version = "0.2.17";
        edition = "2018";
        sha256 = "08rjbhysy6gg27db2h3pnhvr2mlr5vkj797i9625kwg8hgrnjdds";
        authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
        dependencies = [
          {
            name = "lazy_static";
            packageId = "lazy_static";
            optional = true;
          }
          {
            name = "memchr";
            packageId = "memchr";
            usesDefaultFeatures = false;
          }
          {
            name = "regex-automata";
            packageId = "regex-automata";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" "unicode" ];
          "serde1" = [ "std" "serde1-nostd" "serde/std" ];
          "serde1-nostd" = [ "serde" ];
          "std" = [ "memchr/std" ];
          "unicode" = [ "lazy_static" "regex-automata" ];
        };
        resolvedDefaultFeatures = [
          "default"
          "lazy_static"
          "regex-automata"
          "serde"
          "serde1"
          "serde1-nostd"
          "std"
          "unicode"
        ];
      };
      "bumpalo" = rec {
        crateName = "bumpalo";
        version = "3.7.1";
        edition = "2018";
        sha256 = "0f55q7915m5dx5cgn5cli72z0gk18nf2757rd63lky4ypzvngpyr";
        authors = [ "Nick Fitzgerald <fitzgen@gmail.com>" ];
        features = { };
        resolvedDefaultFeatures = [ "default" ];
      };
      "byteorder" = rec {
        crateName = "byteorder";
        version = "1.4.3";
        edition = "2018";
        sha256 = "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l";
        authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "bytes 0.4.12" = rec {
        crateName = "bytes";
        version = "0.4.12";
        edition = "2015";
        sha256 = "0768a55q2fsqdjsvcv98ndg9dq7w2g44dvq1avhwpxrdzbydyvr0";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "byteorder";
            packageId = "byteorder";
          }
          {
            name = "iovec";
            packageId = "iovec";
          }
        ];
        features = { "i128" = [ "byteorder/i128" ]; };
      };
      "bytes 1.1.0" = rec {
        crateName = "bytes";
        version = "1.1.0";
        edition = "2018";
        sha256 = "1y70b249m02lfp0j6565b29kviapj4xsl9whamcqwddnp9kjv1y4";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "cc" = rec {
        crateName = "cc";
        version = "1.0.71";
        edition = "2018";
        crateBin = [ ];
        sha256 = "1pgflzb5dc9pli1lfwfv5jksmz57j15iqqxqpdbnjq4lclfnihkr";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = { "parallel" = [ "jobserver" ]; };
      };
      "cfg-if 0.1.10" = rec {
        crateName = "cfg-if";
        version = "0.1.10";
        edition = "2018";
        sha256 = "08h80ihs74jcyp24cd75wwabygbbdgl05k6p5dmq8akbr78vv1a7";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = { "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; };
      };
      "cfg-if 1.0.0" = rec {
        crateName = "cfg-if";
        version = "1.0.0";
        edition = "2018";
        sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = { "rustc-dep-of-std" = [ "core" "compiler_builtins" ]; };
      };
      "chrono" = rec {
        crateName = "chrono";
        version = "0.4.19";
        edition = "2015";
        sha256 = "0wyfl6c00vhfl562spnfcna3zkw8jqvcp652m9iskhl8j26dc2k7";
        authors = [
          "Kang Seonghoon <public+rust@mearie.org>"
          "Brandon W Maister <quodlibetor@gmail.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            optional = true;
          }
          {
            name = "num-integer";
            packageId = "num-integer";
            usesDefaultFeatures = false;
          }
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "time";
            packageId = "time";
            optional = true;
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            optional = true;
            target = { target, features }: (target."windows" or false);
            features = [ "std" "minwinbase" "minwindef" "timezoneapi" ];
          }
        ];
        features = {
          "clock" = [ "libc" "std" "winapi" ];
          "default" = [ "clock" "std" "oldtime" ];
          "oldtime" = [ "time" ];
          "unstable-locales" = [ "pure-rust-locales" "alloc" ];
          "wasmbind" = [ "wasm-bindgen" "js-sys" ];
        };
        resolvedDefaultFeatures =
          [ "clock" "default" "libc" "oldtime" "serde" "std" "time" "winapi" ];
      };
      "clap" = rec {
        crateName = "clap";
        version = "2.33.3";
        edition = "2015";
        sha256 = "00i065a58987k1sbzqmlz721rw521zcg08jmsh40gi3khp3qmr9p";
        authors = [ "Kevin K. <kbknapp@gmail.com>" ];
        dependencies = [
          {
            name = "ansi_term";
            packageId = "ansi_term 0.11.0";
            optional = true;
            target = { target, features }: (!(target."windows" or false));
          }
          {
            name = "atty";
            packageId = "atty";
            optional = true;
          }
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "strsim";
            packageId = "strsim";
            optional = true;
          }
          {
            name = "textwrap";
            packageId = "textwrap";
          }
          {
            name = "unicode-width";
            packageId = "unicode-width";
          }
          {
            name = "vec_map";
            packageId = "vec_map";
            optional = true;
          }
        ];
        features = {
          "color" = [ "ansi_term" "atty" ];
          "default" = [ "suggestions" "color" "vec_map" ];
          "doc" = [ "yaml" ];
          "lints" = [ "clippy" ];
          "suggestions" = [ "strsim" ];
          "wrap_help" = [ "term_size" "textwrap/term_size" ];
          "yaml" = [ "yaml-rust" ];
        };
        resolvedDefaultFeatures = [
          "ansi_term"
          "atty"
          "color"
          "default"
          "strsim"
          "suggestions"
          "vec_map"
        ];
      };
      "cloudabi" = rec {
        crateName = "cloudabi";
        version = "0.0.3";
        edition = "2015";
        sha256 = "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x";
        libPath = "cloudabi.rs";
        authors = [ "Nuxi (https://nuxi.nl/) and contributors" ];
        dependencies = [{
          name = "bitflags";
          packageId = "bitflags";
          optional = true;
        }];
        features = { "default" = [ "bitflags" ]; };
        resolvedDefaultFeatures = [ "bitflags" "default" ];
      };
      "colored" = rec {
        crateName = "colored";
        version = "2.0.0";
        edition = "2015";
        sha256 = "1gbcijscmznzy42rn213yp9ima7210zakgaqibgg1n441dsnyqdk";
        authors = [ "Thomas Wickham <mackwic@gmail.com>" ];
        dependencies = [
          {
            name = "atty";
            packageId = "atty";
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            usesDefaultFeatures = false;
            target = { target, features }: (target."windows" or false);
            features = [ "consoleapi" "processenv" "winbase" ];
          }
        ];
        features = { };
      };
      "convert_case" = rec {
        crateName = "convert_case";
        version = "0.4.0";
        edition = "2018";
        sha256 = "03jaf1wrsyqzcaah9jf8l1iznvdw5mlsca2qghhzr9w27sddaib2";
        authors = [ "David Purdum <purdum41@gmail.com>" ];
        features = { "random" = [ "rand" ]; };
      };
      "core-foundation" = rec {
        crateName = "core-foundation";
        version = "0.9.2";
        edition = "2015";
        sha256 = "1cs7dya58xf4px4b1953040fpz5lm3qhf7fzv0jf94xva42y3238";
        authors = [ "The Servo Project Developers" ];
        dependencies = [
          {
            name = "core-foundation-sys";
            packageId = "core-foundation-sys";
          }
          {
            name = "libc";
            packageId = "libc";
          }
        ];
        features = {
          "mac_os_10_7_support" = [ "core-foundation-sys/mac_os_10_7_support" ];
          "mac_os_10_8_features" =
            [ "core-foundation-sys/mac_os_10_8_features" ];
          "with-chrono" = [ "chrono" ];
          "with-uuid" = [ "uuid" ];
        };
      };
      "core-foundation-sys" = rec {
        crateName = "core-foundation-sys";
        version = "0.8.3";
        edition = "2015";
        sha256 = "1p5r2wckarkpkyc4z83q08dwpvcafrb1h6fxfa3qnikh8szww9sq";
        authors = [ "The Servo Project Developers" ];
        features = { };
      };
      "crossbeam-channel" = rec {
        crateName = "crossbeam-channel";
        version = "0.5.1";
        edition = "2018";
        sha256 = "1d1dnp61g51gnmc45cb4vpjsr5n62wz22an2y3q6avgifzhjgv86";
        authors = [ "The Crossbeam Project Developers" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "crossbeam-utils";
            packageId = "crossbeam-utils 0.8.5";
            optional = true;
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" ];
          "std" = [ "crossbeam-utils/std" ];
        };
        resolvedDefaultFeatures = [ "crossbeam-utils" "default" "std" ];
      };
      "crossbeam-deque" = rec {
        crateName = "crossbeam-deque";
        version = "0.7.4";
        edition = "2015";
        sha256 = "1v99xcdjk4zixvxnq7pssip670mlyhw1ma3qc88ca11jxnfz43y2";
        authors = [ "The Crossbeam Project Developers" ];
        dependencies = [
          {
            name = "crossbeam-epoch";
            packageId = "crossbeam-epoch";
          }
          {
            name = "crossbeam-utils";
            packageId = "crossbeam-utils 0.7.2";
          }
          {
            name = "maybe-uninit";
            packageId = "maybe-uninit";
          }
        ];

      };
      "crossbeam-epoch" = rec {
        crateName = "crossbeam-epoch";
        version = "0.8.2";
        edition = "2015";
        sha256 = "1knsf0zz7rgzxn0nwz5gajjcrivxpw3zrdcp946gdhdgr9sd53h5";
        authors = [ "The Crossbeam Project Developers" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "crossbeam-utils";
            packageId = "crossbeam-utils 0.7.2";
            usesDefaultFeatures = false;
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
            optional = true;
          }
          {
            name = "maybe-uninit";
            packageId = "maybe-uninit";
          }
          {
            name = "memoffset";
            packageId = "memoffset";
          }
          {
            name = "scopeguard";
            packageId = "scopeguard";
            usesDefaultFeatures = false;
          }
        ];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];
        features = {
          "alloc" = [ "crossbeam-utils/alloc" ];
          "default" = [ "std" ];
          "nightly" = [ "crossbeam-utils/nightly" ];
          "std" = [ "crossbeam-utils/std" "lazy_static" ];
        };
        resolvedDefaultFeatures = [ "default" "lazy_static" "std" ];
      };
      "crossbeam-queue" = rec {
        crateName = "crossbeam-queue";
        version = "0.2.3";
        edition = "2015";
        sha256 = "0w15z68nz3ac4f2s4djhwha8vmlwsh9dlfrmsl4x84y2ah5acjvp";
        authors = [ "The Crossbeam Project Developers" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "crossbeam-utils";
            packageId = "crossbeam-utils 0.7.2";
            usesDefaultFeatures = false;
          }
          {
            name = "maybe-uninit";
            packageId = "maybe-uninit";
          }
        ];
        features = {
          "alloc" = [ "crossbeam-utils/alloc" ];
          "default" = [ "std" ];
          "std" = [ "crossbeam-utils/std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "crossbeam-utils 0.7.2" = rec {
        crateName = "crossbeam-utils";
        version = "0.7.2";
        edition = "2015";
        sha256 = "1a31wbrda1320gj2a6az1lin2d34xfc3xf88da4c17qy5lxcgiy3";
        authors = [ "The Crossbeam Project Developers" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
            optional = true;
          }
        ];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];
        features = {
          "default" = [ "std" ];
          "std" = [ "lazy_static" ];
        };
        resolvedDefaultFeatures = [ "default" "lazy_static" "std" ];
      };
      "crossbeam-utils 0.8.5" = rec {
        crateName = "crossbeam-utils";
        version = "0.8.5";
        edition = "2018";
        sha256 = "1ny481cx8a5pdknypb41jqym03dl8x26i2ldyyp3yb3zrq8zqb6q";
        authors = [ "The Crossbeam Project Developers" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
            optional = true;
          }
        ];
        features = {
          "default" = [ "std" ];
          "std" = [ "lazy_static" ];
        };
        resolvedDefaultFeatures = [ "lazy_static" "std" ];
      };
      "csv-async" = rec {
        crateName = "csv-async";
        version = "1.2.1";
        edition = "2018";
        sha256 = "1bfrdgnz2zxfpbpdrr1k62wgvmfz2p40bwmcihqq0cv90rz7clf8";
        authors = [ "gwierzchowski <gwierzchowski@wp.pl>" ];
        dependencies = [
          {
            name = "bstr";
            packageId = "bstr";
          }
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "csv-core";
            packageId = "csv-core";
          }
          {
            name = "futures";
            packageId = "futures 0.3.17";
          }
          {
            name = "itoa";
            packageId = "itoa";
            optional = true;
          }
          {
            name = "ryu";
            packageId = "ryu";
            optional = true;
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            rename = "tokio1";
            optional = true;
            features = [ "io-util" "fs" ];
          }
          {
            name = "tokio-stream";
            packageId = "tokio-stream";
            optional = true;
          }
        ];
        devDependencies = [
          {
            name = "serde";
            packageId = "serde";
            features = [ "derive" ];
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            features = [ "rt" "rt-multi-thread" ];
          }
        ];
        features = {
          "default" = [ "with_serde" ];
          "tokio" = [ "tokio1" "tokio-stream" ];
          "with_serde" = [ "serde" "bstr/serde1" "itoa" "ryu" ];
        };
        resolvedDefaultFeatures = [
          "default"
          "itoa"
          "ryu"
          "serde"
          "tokio"
          "tokio-stream"
          "tokio1"
          "with_serde"
        ];
      };
      "csv-core" = rec {
        crateName = "csv-core";
        version = "0.1.10";
        edition = "2018";
        sha256 = "145wcc3560v1kmysqqspvddppiysr2rifqzy4nnlh3r6kxanc91b";
        authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
        dependencies = [{
          name = "memchr";
          packageId = "memchr";
          usesDefaultFeatures = false;
        }];
        features = { "libc" = [ "memchr/libc" ]; };
        resolvedDefaultFeatures = [ "default" ];
      };
      "derive_more" = rec {
        crateName = "derive_more";
        version = "0.99.16";
        edition = "2018";
        sha256 = "1prq1rqk2d8z2jj2plpjn4l1i8s02caybfr0gfripkjn47fvvvj0";
        procMacro = true;
        authors = [ "Jelte Fennema <github-tech@jeltef.nl>" ];
        dependencies = [
          {
            name = "convert_case";
            packageId = "convert_case";
            optional = true;
          }
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
          }
        ];
        buildDependencies = [{
          name = "rustc_version";
          packageId = "rustc_version 0.3.3";
          optional = true;
        }];
        features = {
          "default" = [
            "add_assign"
            "add"
            "as_mut"
            "as_ref"
            "constructor"
            "deref"
            "deref_mut"
            "display"
            "error"
            "from"
            "from_str"
            "index"
            "index_mut"
            "into"
            "into_iterator"
            "iterator"
            "mul_assign"
            "mul"
            "not"
            "sum"
            "try_into"
            "is_variant"
            "unwrap"
          ];
          "display" = [ "syn/extra-traits" ];
          "error" = [ "syn/extra-traits" ];
          "from" = [ "syn/extra-traits" ];
          "generate-parsing-rs" = [ "peg" ];
          "into" = [ "syn/extra-traits" ];
          "is_variant" = [ "convert_case" ];
          "mul" = [ "syn/extra-traits" ];
          "mul_assign" = [ "syn/extra-traits" ];
          "not" = [ "syn/extra-traits" ];
          "testing-helpers" = [ "rustc_version" ];
          "try_into" = [ "syn/extra-traits" ];
          "unwrap" = [ "convert_case" "rustc_version" ];
        };
        resolvedDefaultFeatures = [
          "add"
          "add_assign"
          "as_mut"
          "as_ref"
          "constructor"
          "convert_case"
          "default"
          "deref"
          "deref_mut"
          "display"
          "error"
          "from"
          "from_str"
          "index"
          "index_mut"
          "into"
          "into_iterator"
          "is_variant"
          "iterator"
          "mul"
          "mul_assign"
          "not"
          "rustc_version"
          "sum"
          "try_into"
          "unwrap"
        ];
      };
      "dirs-next" = rec {
        crateName = "dirs-next";
        version = "2.0.0";
        edition = "2018";
        sha256 = "1q9kr151h9681wwp6is18750ssghz6j9j7qm7qi1ngcwy7mzi35r";
        authors = [ "The @xdg-rs members" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "dirs-sys-next";
            packageId = "dirs-sys-next";
          }
        ];

      };
      "dirs-sys-next" = rec {
        crateName = "dirs-sys-next";
        version = "0.1.2";
        edition = "2018";
        sha256 = "0kavhavdxv4phzj4l0psvh55hszwnr0rcz8sxbvx20pyqi2a3gaf";
        authors = [ "The @xdg-rs members" ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "redox_users";
            packageId = "redox_users";
            usesDefaultFeatures = false;
            target = { target, features }: (target."os" == "redox");
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features =
              [ "knownfolders" "objbase" "shlobj" "winbase" "winerror" ];
          }
        ];

      };
      "doc-comment" = rec {
        crateName = "doc-comment";
        version = "0.3.3";
        edition = "2015";
        sha256 = "043sprsf3wl926zmck1bm7gw0jq50mb76lkpk49vasfr6ax1p97y";
        libName = "doc_comment";
        authors = [ "Guillaume Gomez <guillaume1.gomez@gmail.com>" ];
        features = { };
      };
      "dtoa" = rec {
        crateName = "dtoa";
        version = "0.4.8";
        edition = "2015";
        sha256 = "1c5j0wz118dhrczx6spc5za7dnbfxablr4adyahg9aknrsc9i2an";
        authors = [ "David Tolnay <dtolnay@gmail.com>" ];

      };
      "encoding_rs" = rec {
        crateName = "encoding_rs";
        version = "0.8.28";
        edition = "2018";
        sha256 = "0rf0r99q4kgjrx22kx7pjyjg4lm21599y3ggvy3hzj2spi7h5pw0";
        authors = [ "Henri Sivonen <hsivonen@hsivonen.fi>" ];
        dependencies = [{
          name = "cfg-if";
          packageId = "cfg-if 1.0.0";
        }];
        features = {
          "fast-legacy-encode" = [
            "fast-hangul-encode"
            "fast-hanja-encode"
            "fast-kanji-encode"
            "fast-gb-hanzi-encode"
            "fast-big5-hanzi-encode"
          ];
          "simd-accel" = [ "packed_simd" "packed_simd/into_bits" ];
        };
      };
      "envy" = rec {
        crateName = "envy";
        version = "0.4.2";
        edition = "2018";
        sha256 = "0rar459p7pl19v6pbx98q3hi2hxfl8q1ndxxw5d4zd9cgway0irz";
        authors = [ "softprops <d.tangren@gmail.com>" ];
        dependencies = [{
          name = "serde";
          packageId = "serde";
        }];
        devDependencies = [{
          name = "serde";
          packageId = "serde";
          features = [ "derive" ];
        }];

      };
      "features" = rec {
        crateName = "features";
        version = "0.10.0";
        edition = "2015";
        sha256 = "1qvlsn4228m9ypkh8vm5whx58bpxs1slaspk1w69spz5hhy2n1w3";
        authors = [ "Fletcher Nichol <fnichol@nichol.ca>" ];
        dependencies = [{
          name = "bitflags";
          packageId = "bitflags";
        }];

      };
      "fnv" = rec {
        crateName = "fnv";
        version = "1.0.7";
        edition = "2015";
        sha256 = "1hc2mcqha06aibcaza94vbi81j6pr9a1bbxrxjfhc91zin8yr7iz";
        libPath = "lib.rs";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "foreign-types" = rec {
        crateName = "foreign-types";
        version = "0.3.2";
        edition = "2015";
        sha256 = "1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn";
        authors = [ "Steven Fackler <sfackler@gmail.com>" ];
        dependencies = [{
          name = "foreign-types-shared";
          packageId = "foreign-types-shared";
        }];

      };
      "foreign-types-shared" = rec {
        crateName = "foreign-types-shared";
        version = "0.1.1";
        edition = "2015";
        sha256 = "0jxgzd04ra4imjv8jgkmdq59kj8fsz6w4zxsbmlai34h26225c00";
        authors = [ "Steven Fackler <sfackler@gmail.com>" ];

      };
      "form_urlencoded" = rec {
        crateName = "form_urlencoded";
        version = "1.0.1";
        edition = "2018";
        sha256 = "1491fmakavcmsjbm3q6iy0bhmn9l422jasdhzx5hkljgza3mmhjz";
        authors = [ "The rust-url developers" ];
        dependencies = [
          {
            name = "matches";
            packageId = "matches";
          }
          {
            name = "percent-encoding";
            packageId = "percent-encoding";
          }
        ];

      };
      "fuchsia-zircon" = rec {
        crateName = "fuchsia-zircon";
        version = "0.3.3";
        edition = "2015";
        sha256 = "10jxc5ks1x06gpd0xg51kcjrxr35nj6qhx2zlc5n7bmskv3675rf";
        authors = [ "Raph Levien <raph@google.com>" ];
        dependencies = [
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "fuchsia-zircon-sys";
            packageId = "fuchsia-zircon-sys";
          }
        ];

      };
      "fuchsia-zircon-sys" = rec {
        crateName = "fuchsia-zircon-sys";
        version = "0.3.3";
        edition = "2015";
        sha256 = "19zp2085qsyq2bh1gvcxq1lb8w6v6jj9kbdkhpdjrl95fypakjix";
        authors = [ "Raph Levien <raph@google.com>" ];

      };
      "futures 0.1.31" = rec {
        crateName = "futures";
        version = "0.1.31";
        edition = "2015";
        sha256 = "0y46qbmhi37dqkch8dlfq5aninqpzqgrr98awkb3rn4fxww1lirs";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = { "default" = [ "use_std" "with-deprecated" ]; };
        resolvedDefaultFeatures = [ "default" "use_std" "with-deprecated" ];
      };
      "futures 0.3.17" = rec {
        crateName = "futures";
        version = "0.3.17";
        edition = "2018";
        sha256 = "1jk6znbqrmb6xkgs4g0s7ivv1djq7dyaci9d7xfdb04hagms0am1";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        dependencies = [
          {
            name = "futures-channel";
            packageId = "futures-channel";
            usesDefaultFeatures = false;
            features = [ "sink" ];
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-executor";
            packageId = "futures-executor";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-io";
            packageId = "futures-io";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            features = [ "sink" ];
          }
        ];
        features = {
          "alloc" = [
            "futures-core/alloc"
            "futures-task/alloc"
            "futures-sink/alloc"
            "futures-channel/alloc"
            "futures-util/alloc"
          ];
          "async-await" =
            [ "futures-util/async-await" "futures-util/async-await-macro" ];
          "bilock" = [ "futures-util/bilock" ];
          "compat" = [ "std" "futures-util/compat" ];
          "default" = [ "std" "async-await" "executor" ];
          "executor" = [ "std" "futures-executor/std" ];
          "io-compat" = [ "compat" "futures-util/io-compat" ];
          "read-initializer" =
            [ "futures-io/read-initializer" "futures-util/read-initializer" ];
          "std" = [
            "alloc"
            "futures-core/std"
            "futures-task/std"
            "futures-io/std"
            "futures-sink/std"
            "futures-util/std"
            "futures-util/io"
            "futures-util/channel"
          ];
          "thread-pool" = [ "executor" "futures-executor/thread-pool" ];
          "unstable" = [
            "futures-core/unstable"
            "futures-task/unstable"
            "futures-channel/unstable"
            "futures-io/unstable"
            "futures-util/unstable"
          ];
          "write-all-vectored" = [ "futures-util/write-all-vectored" ];
        };
        resolvedDefaultFeatures = [
          "alloc"
          "async-await"
          "default"
          "executor"
          "futures-executor"
          "std"
        ];
      };
      "futures-channel" = rec {
        crateName = "futures-channel";
        version = "0.3.17";
        edition = "2018";
        sha256 = "121q4y5c10vihzgcb6fvp0gwzyh4hg6c37riqz9nbhdk7f6bm9jx";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            optional = true;
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "alloc" = [ "futures-core/alloc" ];
          "default" = [ "std" ];
          "sink" = [ "futures-sink" ];
          "std" = [ "alloc" "futures-core/std" ];
        };
        resolvedDefaultFeatures =
          [ "alloc" "default" "futures-sink" "sink" "std" ];
      };
      "futures-core" = rec {
        crateName = "futures-core";
        version = "0.3.17";
        edition = "2018";
        sha256 = "0gd5hfxcy5fqc3wm55a4yhcbh921wvzv09nkbhwh6dpjaxlw5lc8";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "std" ];
      };
      "futures-executor" = rec {
        crateName = "futures-executor";
        version = "0.3.17";
        edition = "2018";
        sha256 = "0p3lv18dr90c032yrr4k833npp23a0spykvq4lq7d7cn63h5n0j5";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" ];
          "std" = [ "futures-core/std" "futures-task/std" "futures-util/std" ];
          "thread-pool" = [ "std" "num_cpus" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "futures-io" = rec {
        crateName = "futures-io";
        version = "0.3.17";
        edition = "2018";
        sha256 = "0xrk0xsrmhxrndhby79j31mkzbwg21s09fkpqldhyf1yzshf4baj";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "std" ];
      };
      "futures-macro" = rec {
        crateName = "futures-macro";
        version = "0.3.17";
        edition = "2018";
        sha256 = "1fvriw31ippggp8496dpbvkykr2fgk57amhwrz5lqjzabjws9r0q";
        procMacro = true;
        authors = [
          "Taylor Cramer <cramertj@google.com>"
          "Taiki Endo <te316e89@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro-hack";
            packageId = "proc-macro-hack";
          }
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" ];
          }
        ];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];

      };
      "futures-sink" = rec {
        crateName = "futures-sink";
        version = "0.3.17";
        edition = "2018";
        sha256 = "04dwqbcwxil6iyv7fif2xjncz849mm63sghbb60f8kq22cy1bsin";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "std" ];
      };
      "futures-task" = rec {
        crateName = "futures-task";
        version = "0.3.17";
        edition = "2018";
        sha256 = "169fi44d8sbfpkkyhncj0pgkp1amrllg5523lncf8wyvxps00g8x";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        features = {
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "std" ];
      };
      "futures-util" = rec {
        crateName = "futures-util";
        version = "0.3.17";
        edition = "2018";
        sha256 = "10al5ci74s6rk2d2wqqya0d4fwc6sqv525hzbvj6wfha45jq8min";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        dependencies = [
          {
            name = "futures-channel";
            packageId = "futures-channel";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-io";
            packageId = "futures-io";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "futures-macro";
            packageId = "futures-macro";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "futures-task";
            packageId = "futures-task";
            usesDefaultFeatures = false;
          }
          {
            name = "memchr";
            packageId = "memchr";
            optional = true;
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "pin-utils";
            packageId = "pin-utils";
          }
          {
            name = "proc-macro-hack";
            packageId = "proc-macro-hack";
            optional = true;
          }
          {
            name = "proc-macro-nested";
            packageId = "proc-macro-nested";
            optional = true;
          }
          {
            name = "slab";
            packageId = "slab";
            optional = true;
          }
        ];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];
        features = {
          "alloc" = [ "futures-core/alloc" "futures-task/alloc" ];
          "async-await-macro" = [
            "async-await"
            "futures-macro"
            "proc-macro-hack"
            "proc-macro-nested"
          ];
          "channel" = [ "std" "futures-channel" ];
          "compat" = [ "std" "futures_01" ];
          "default" = [ "std" "async-await" "async-await-macro" ];
          "io" = [ "std" "futures-io" "memchr" ];
          "io-compat" = [ "io" "compat" "tokio-io" ];
          "read-initializer" =
            [ "io" "futures-io/read-initializer" "futures-io/unstable" ];
          "sink" = [ "futures-sink" ];
          "std" = [ "alloc" "futures-core/std" "futures-task/std" "slab" ];
          "unstable" = [ "futures-core/unstable" "futures-task/unstable" ];
          "write-all-vectored" = [ "io" ];
        };
        resolvedDefaultFeatures = [
          "alloc"
          "async-await"
          "async-await-macro"
          "channel"
          "futures-channel"
          "futures-io"
          "futures-macro"
          "futures-sink"
          "io"
          "memchr"
          "proc-macro-hack"
          "proc-macro-nested"
          "sink"
          "slab"
          "std"
        ];
      };
      "getrandom" = rec {
        crateName = "getrandom";
        version = "0.2.3";
        edition = "2018";
        sha256 = "0lr7mnkvnzdh1xxmwmhhbm4gwg29k3m2rzhpjmjm4k2jcfa9kkbz";
        authors = [ "The Rand Project Developers" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "libc";
            packageId = "libc";
            usesDefaultFeatures = false;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "wasi";
            packageId = "wasi";
            target = { target, features }: (target."os" == "wasi");
          }
        ];
        features = {
          "js" = [ "wasm-bindgen" "js-sys" ];
          "rustc-dep-of-std" = [
            "compiler_builtins"
            "core"
            "libc/rustc-dep-of-std"
            "wasi/rustc-dep-of-std"
          ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "h2" = rec {
        crateName = "h2";
        version = "0.3.6";
        edition = "2018";
        sha256 = "0r294gcsg4r8i5hq6vqh1b96df1mr5i9cvpdsry67v5cjmc821kc";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 1.1.0";
          }
          {
            name = "fnv";
            packageId = "fnv";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "indexmap";
            packageId = "indexmap";
            features = [ "std" ];
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            features = [ "io-util" ];
          }
          {
            name = "tokio-util";
            packageId = "tokio-util";
            features = [ "codec" ];
          }
          {
            name = "tracing";
            packageId = "tracing";
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
        ];
        devDependencies = [{
          name = "tokio";
          packageId = "tokio 1.12.0";
          features = [ "rt-multi-thread" "macros" "sync" "net" ];
        }];
        features = { };
      };
      "hashbrown" = rec {
        crateName = "hashbrown";
        version = "0.11.2";
        edition = "2018";
        sha256 = "0vkjsf5nzs7qcia5ya79j9sq2p1caz4crrncr1675wwyj3ag0pmb";
        authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
        features = {
          "ahash-compile-time-rng" = [ "ahash/compile-time-rng" ];
          "default" = [ "ahash" "inline-more" ];
          "rustc-dep-of-std" = [
            "nightly"
            "core"
            "compiler_builtins"
            "alloc"
            "rustc-internal-api"
          ];
        };
        resolvedDefaultFeatures = [ "raw" ];
      };
      "heck" = rec {
        crateName = "heck";
        version = "0.3.3";
        edition = "2018";
        sha256 = "0b0kkr790p66lvzn9nsmfjvydrbmh9z5gb664jchwgw64vxiwqkd";
        authors = [ "Without Boats <woboats@gmail.com>" ];
        dependencies = [{
          name = "unicode-segmentation";
          packageId = "unicode-segmentation";
        }];

      };
      "hermit-abi" = rec {
        crateName = "hermit-abi";
        version = "0.1.19";
        edition = "2018";
        sha256 = "0cxcm8093nf5fyn114w8vxbrbcyvv91d4015rdnlgfll7cs6gd32";
        authors = [ "Stefan Lankes" ];
        dependencies = [{
          name = "libc";
          packageId = "libc";
          usesDefaultFeatures = false;
        }];
        features = {
          "rustc-dep-of-std" = [
            "core"
            "compiler_builtins/rustc-dep-of-std"
            "libc/rustc-dep-of-std"
          ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "http" = rec {
        crateName = "http";
        version = "0.2.5";
        edition = "2018";
        sha256 = "0sqqidxilz83h3nr9g3hwsa0z34mh6clrrdfvvd2f66l0mmhj8qk";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
          "Carl Lerche <me@carllerche.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 1.1.0";
          }
          {
            name = "fnv";
            packageId = "fnv";
          }
          {
            name = "itoa";
            packageId = "itoa";
          }
        ];

      };
      "http-body" = rec {
        crateName = "http-body";
        version = "0.4.3";
        edition = "2018";
        sha256 = "1rc6c4n6wwmcfl6hg7fdilybqwyakqcsc888prh0qi3r54xmi71r";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Lucio Franco <luciofranco14@gmail.com>"
          "Sean McArthur <sean@seanmonstar.com>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 1.1.0";
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
        ];

      };
      "httparse" = rec {
        crateName = "httparse";
        version = "1.5.1";
        edition = "2015";
        sha256 = "00smbrgb9vyzbbj3j5d66iarjl5x2wpfwkmhcy5nizylw7dlzndc";
        authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "httpdate" = rec {
        crateName = "httpdate";
        version = "1.0.1";
        edition = "2018";
        sha256 = "0h240ck2xlp62dqfhfp6g45984avsmh1pkcgjmyywgzkr2kbhmk4";
        authors = [ "Pyfisch <pyfisch@posteo.org>" ];

      };
      "hyper" = rec {
        crateName = "hyper";
        version = "0.14.13";
        edition = "2018";
        sha256 = "14w5rnhy89jh3s4fl63i1x50gdh5nknmj7y00kx5b1pnwjwwzl8m";
        type = [ "lib" "staticlib" "cdylib" ];
        authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 1.1.0";
          }
          {
            name = "futures-channel";
            packageId = "futures-channel";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
          }
          {
            name = "h2";
            packageId = "h2";
            optional = true;
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "http-body";
            packageId = "http-body";
          }
          {
            name = "httparse";
            packageId = "httparse";
          }
          {
            name = "httpdate";
            packageId = "httpdate";
          }
          {
            name = "itoa";
            packageId = "itoa";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "socket2";
            packageId = "socket2";
            optional = true;
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            features = [ "sync" ];
          }
          {
            name = "tower-service";
            packageId = "tower-service";
          }
          {
            name = "tracing";
            packageId = "tracing";
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "want";
            packageId = "want";
          }
        ];
        devDependencies = [
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            features = [ "alloc" ];
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            features = [
              "fs"
              "macros"
              "io-std"
              "io-util"
              "rt"
              "rt-multi-thread"
              "sync"
              "time"
              "test-util"
            ];
          }
        ];
        features = {
          "ffi" = [ "libc" ];
          "full" = [ "client" "http1" "http2" "server" "stream" "runtime" ];
          "http2" = [ "h2" ];
          "runtime" = [ "tcp" "tokio/rt" ];
          "tcp" = [ "socket2" "tokio/net" "tokio/rt" "tokio/time" ];
        };
        resolvedDefaultFeatures =
          [ "client" "h2" "http1" "http2" "runtime" "socket2" "tcp" ];
      };
      "hyper-tls" = rec {
        crateName = "hyper-tls";
        version = "0.5.0";
        edition = "2018";
        sha256 = "01crgy13102iagakf6q4mb75dprzr7ps1gj0l5hxm1cvm7gks66n";
        authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 1.1.0";
          }
          {
            name = "hyper";
            packageId = "hyper";
            usesDefaultFeatures = false;
            features = [ "tcp" "client" ];
          }
          {
            name = "native-tls";
            packageId = "native-tls";
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
          }
          {
            name = "tokio-native-tls";
            packageId = "tokio-native-tls";
          }
        ];
        devDependencies = [
          {
            name = "hyper";
            packageId = "hyper";
            usesDefaultFeatures = false;
            features = [ "http1" ];
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            features = [ "io-std" "macros" "io-util" ];
          }
        ];
        features = { "vendored" = [ "native-tls/vendored" ]; };
      };
      "idna" = rec {
        crateName = "idna";
        version = "0.2.3";
        edition = "2018";
        sha256 = "1y7ca2w5qp9msgl57n03zqp78gq1bk2crqzg6kv7a542mdphm2j1";
        authors = [ "The rust-url developers" ];
        dependencies = [
          {
            name = "matches";
            packageId = "matches";
          }
          {
            name = "unicode-bidi";
            packageId = "unicode-bidi";
          }
          {
            name = "unicode-normalization";
            packageId = "unicode-normalization";
          }
        ];

      };
      "indexmap" = rec {
        crateName = "indexmap";
        version = "1.7.0";
        edition = "2018";
        sha256 = "19b2zwfajhsfcgny0clv8y4jppy704znfhv8nv2dw9a18l2kcqxw";
        authors = [ "bluss" "Josh Stone <cuviper@gmail.com>" ];
        dependencies = [{
          name = "hashbrown";
          packageId = "hashbrown";
          usesDefaultFeatures = false;
          features = [ "raw" ];
        }];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];
        features = { "serde-1" = [ "serde" ]; };
        resolvedDefaultFeatures = [ "std" ];
      };
      "instant" = rec {
        crateName = "instant";
        version = "0.1.11";
        edition = "2018";
        sha256 = "1g8n89lahcaj5ris8f4ki3x7cfscbwwkbmpfs17s7ijsyf4ksvbi";
        authors = [ "sebcrozet <developer@crozet.re>" ];
        dependencies = [{
          name = "cfg-if";
          packageId = "cfg-if 1.0.0";
        }];
        features = {
          "now" = [ "time" ];
          "wasm-bindgen" = [ "js-sys" "wasm-bindgen_rs" "web-sys" ];
        };
      };
      "iovec" = rec {
        crateName = "iovec";
        version = "0.1.4";
        edition = "2015";
        sha256 = "0ph73qygwx8i0mblrf110cj59l00gkmsgrpzz1rm85syz5pymcxj";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [{
          name = "libc";
          packageId = "libc";
          target = { target, features }: (target."unix" or false);
        }];

      };
      "ipnet" = rec {
        crateName = "ipnet";
        version = "2.3.1";
        edition = "2015";
        sha256 = "1ad32j3kkbb0bgf5whzfkdw6843ywr48245dhk7c9gny5r7xdwk8";
        authors = [ "Kris Price <kris@krisprice.nz>" ];

      };
      "itoa" = rec {
        crateName = "itoa";
        version = "0.4.8";
        edition = "2015";
        sha256 = "1m1dairwyx8kfxi7ab3b5jc71z1vigh9w4shnhiajji9avzr26dp";
        authors = [ "David Tolnay <dtolnay@gmail.com>" ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "js-sys" = rec {
        crateName = "js-sys";
        version = "0.3.55";
        edition = "2018";
        sha256 = "116cg9vn62cl3vifbs6cjdsg7hz98kr7sr8kpy31liccsg6gzjbw";
        authors = [ "The wasm-bindgen Developers" ];
        dependencies = [{
          name = "wasm-bindgen";
          packageId = "wasm-bindgen";
        }];

      };
      "kernel32-sys" = rec {
        crateName = "kernel32-sys";
        version = "0.2.2";
        edition = "2015";
        sha256 = "1389av0601a9yz8dvx5zha9vmkd6ik7ax0idpb032d28555n41vm";
        libName = "kernel32";
        authors = [ "Peter Atashian <retep998@gmail.com>" ];
        dependencies = [{
          name = "winapi";
          packageId = "winapi 0.2.8";
        }];
        buildDependencies = [{
          name = "winapi-build";
          packageId = "winapi-build";
        }];

      };
      "lazy_static" = rec {
        crateName = "lazy_static";
        version = "1.4.0";
        edition = "2015";
        sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2";
        authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
        features = { "spin_no_std" = [ "spin" ]; };
      };
      "lectev" = rec {
        crateName = "lectev";
        version = "0.1.0";
        edition = "2018";
        crateBin = [{
          name = "lectev";
          path = "src/main.rs";
        }];
        src = lib.cleanSourceWith {
          filter = sourceFilter;
          src = ./.;
        };
        authors = [ "Eric B. Merritt <eric@merritt.tech>" ];
        dependencies = [
          {
            name = "backoff";
            packageId = "backoff";
            features = [ "tokio" ];
          }
          {
            name = "base64";
            packageId = "base64";
          }
          {
            name = "bdays";
            packageId = "bdays";
          }
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "chrono";
            packageId = "chrono";
            features = [ "serde" ];
          }
          {
            name = "colored";
            packageId = "colored";
          }
          {
            name = "csv-async";
            packageId = "csv-async";
            features = [ "tokio" ];
          }
          {
            name = "derive_more";
            packageId = "derive_more";
          }
          {
            name = "envy";
            packageId = "envy";
          }
          {
            name = "features";
            packageId = "features";
          }
          {
            name = "futures";
            packageId = "futures 0.3.17";
          }
          {
            name = "reqwest";
            packageId = "reqwest";
            features = [ "json" ];
          }
          {
            name = "serde";
            packageId = "serde";
            features = [ "derive" ];
          }
          {
            name = "serde_json";
            packageId = "serde_json";
          }
          {
            name = "serde_yaml";
            packageId = "serde_yaml";
          }
          {
            name = "shellexpand";
            packageId = "shellexpand";
          }
          {
            name = "snafu";
            packageId = "snafu";
          }
          {
            name = "structopt";
            packageId = "structopt";
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            features = [ "full" "process" ];
          }
          {
            name = "tracing";
            packageId = "tracing";
          }
          {
            name = "tracing-appender";
            packageId = "tracing-appender";
          }
          {
            name = "tracing-futures";
            packageId = "tracing-futures";
            features = [ "tokio" ];
          }
          {
            name = "tracing-subscriber";
            packageId = "tracing-subscriber";
          }
          {
            name = "uom";
            packageId = "uom";
            features = [ "use_serde" ];
          }
          {
            name = "url";
            packageId = "url";
            features = [ "serde" ];
          }
          {
            name = "uuid";
            packageId = "uuid";
            features = [ "serde" "v4" ];
          }
        ];

      };
      "libc" = rec {
        crateName = "libc";
        version = "0.2.103";
        edition = "2015";
        sha256 = "1xpd65rnpdniyj565zvyn9pqr29vsrah1vr1yda76qksl5ap53yx";
        authors = [ "The Rust Project Developers" ];
        features = {
          "default" = [ "std" ];
          "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "linked-hash-map" = rec {
        crateName = "linked-hash-map";
        version = "0.5.4";
        edition = "2015";
        sha256 = "1ww8zsraqnvrsknd315481185igwkx5n14xnhq5i8216z65b7fbz";
        authors = [
          "Stepan Koltsov <stepan.koltsov@gmail.com>"
          "Andrew Paseltiner <apaseltiner@gmail.com>"
        ];
        features = {
          "heapsize_impl" = [ "heapsize" ];
          "serde_impl" = [ "serde" "serde_test" ];
        };
      };
      "lock_api 0.3.4" = rec {
        crateName = "lock_api";
        version = "0.3.4";
        edition = "2018";
        sha256 = "0xgc5dzmajh0akbh5d6d7rj9mh5rzpk74pyrc946v2ixgakj9nn4";
        authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
        dependencies = [{
          name = "scopeguard";
          packageId = "scopeguard";
          usesDefaultFeatures = false;
        }];
        features = { };
      };
      "lock_api 0.4.5" = rec {
        crateName = "lock_api";
        version = "0.4.5";
        edition = "2018";
        sha256 = "028izfyraynijd9h9x5miv1vmg6sjnw1v95wgm7f4xlr7h4lsaki";
        authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
        dependencies = [{
          name = "scopeguard";
          packageId = "scopeguard";
          usesDefaultFeatures = false;
        }];
        features = { };
      };
      "log" = rec {
        crateName = "log";
        version = "0.4.14";
        edition = "2015";
        sha256 = "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai";
        authors = [ "The Rust Project Developers" ];
        dependencies = [{
          name = "cfg-if";
          packageId = "cfg-if 1.0.0";
        }];
        features = {
          "kv_unstable" = [ "value-bag" ];
          "kv_unstable_serde" = [ "kv_unstable_std" "value-bag/serde" "serde" ];
          "kv_unstable_std" = [ "std" "kv_unstable" "value-bag/error" ];
          "kv_unstable_sval" = [ "kv_unstable" "value-bag/sval" "sval" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "matchers" = rec {
        crateName = "matchers";
        version = "0.0.1";
        edition = "2018";
        sha256 = "1q8ckqmkjqkznvdi9x0z769yz2bmvlqcwx51ad2lpk4mfmgpi6gh";
        authors = [ "Eliza Weisman <eliza@buoyant.io>" ];
        dependencies = [{
          name = "regex-automata";
          packageId = "regex-automata";
        }];

      };
      "matches" = rec {
        crateName = "matches";
        version = "0.1.9";
        edition = "2015";
        sha256 = "0gw5ib38jfgyyah8nyyxr036grqv1arkf1srgfa4h386dav7iqx3";
        libPath = "lib.rs";
        authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];

      };
      "maybe-uninit" = rec {
        crateName = "maybe-uninit";
        version = "2.0.0";
        edition = "2015";
        sha256 = "004y0nzmpfdrhz251278341z6ql34iv1k6dp1h6af7d6nd6jwc30";
        authors =
          [ "est31 <MTest31@outlook.com>" "The Rust Project Developers" ];

      };
      "memchr" = rec {
        crateName = "memchr";
        version = "2.4.1";
        edition = "2018";
        sha256 = "0smq8xzd40njqpfzv5mghigj91fzlfrfg842iz8x0wqvw2dw731h";
        authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
        features = {
          "default" = [ "std" ];
          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "memoffset" = rec {
        crateName = "memoffset";
        version = "0.5.6";
        edition = "2015";
        sha256 = "1ahi51aa650s2p9ib1a4ifgqv0pzmsxlm9z4xdgvi9zdd7q7ac84";
        authors = [ "Gilad Naaman <gilad.naaman@gmail.com>" ];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];
        features = { };
        resolvedDefaultFeatures = [ "default" ];
      };
      "mime" = rec {
        crateName = "mime";
        version = "0.3.16";
        edition = "2015";
        sha256 = "13dcm9lh01hdwfjcg74ppljyjfj1c6w3a3cwkhxf0w8wa37cfq1a";
        authors = [ "Sean McArthur <sean@seanmonstar.com>" ];

      };
      "mio 0.6.23" = rec {
        crateName = "mio";
        version = "0.6.23";
        edition = "2015";
        sha256 = "1i2c1vl8lr45apkh8xbh9k56ihfsmqff5l7s2fya7whvp7sndzaa";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "fuchsia-zircon";
            packageId = "fuchsia-zircon";
            target = { target, features }: (target."os" == "fuchsia");
          }
          {
            name = "fuchsia-zircon-sys";
            packageId = "fuchsia-zircon-sys";
            target = { target, features }: (target."os" == "fuchsia");
          }
          {
            name = "iovec";
            packageId = "iovec";
          }
          {
            name = "kernel32-sys";
            packageId = "kernel32-sys";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "miow";
            packageId = "miow 0.2.2";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "net2";
            packageId = "net2";
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "winapi";
            packageId = "winapi 0.2.8";
            target = { target, features }: (target."windows" or false);
          }
        ];
        features = { "default" = [ "with-deprecated" ]; };
        resolvedDefaultFeatures = [ "default" "with-deprecated" ];
      };
      "mio 0.7.13" = rec {
        crateName = "mio";
        version = "0.7.13";
        edition = "2018";
        sha256 = "05mvlrn3r2vqps4fflmknw15r0rs8xld4g99sdf8647c2iixnawc";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Thomas de Zeeuw <thomasdezeeuw@gmail.com>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "miow";
            packageId = "miow 0.3.7";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "ntapi";
            packageId = "ntapi";
            target = { target, features }: (target."windows" or false);
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "winsock2" "mswsock" "mstcpip" ];
          }
        ];
        features = {
          "os-ext" = [ "os-poll" ];
          "os-util" = [ "os-ext" ];
          "pipe" = [ "os-ext" ];
          "tcp" = [ "net" ];
          "udp" = [ "net" ];
          "uds" = [ "net" ];
        };
        resolvedDefaultFeatures =
          [ "default" "net" "os-ext" "os-poll" "os-util" "tcp" "udp" "uds" ];
      };
      "mio-uds" = rec {
        crateName = "mio-uds";
        version = "0.6.8";
        edition = "2015";
        sha256 = "1w36w09gd8as1mah80wdy0kgpshmphmljj68gij34hvdnag6kjxg";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        dependencies = [
          {
            name = "iovec";
            packageId = "iovec";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "mio";
            packageId = "mio 0.6.23";
            target = { target, features }: (target."unix" or false);
          }
        ];

      };
      "miow 0.2.2" = rec {
        crateName = "miow";
        version = "0.2.2";
        edition = "2015";
        sha256 = "0kcl8rnv0bhiarcdakik670w8fnxzlxhi1ys7152sck68510in7b";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        dependencies = [
          {
            name = "kernel32-sys";
            packageId = "kernel32-sys";
          }
          {
            name = "net2";
            packageId = "net2";
            usesDefaultFeatures = false;
          }
          {
            name = "winapi";
            packageId = "winapi 0.2.8";
          }
          {
            name = "ws2_32-sys";
            packageId = "ws2_32-sys";
          }
        ];

      };
      "miow 0.3.7" = rec {
        crateName = "miow";
        version = "0.3.7";
        edition = "2018";
        sha256 = "08afp2xfpxmdw003111lxz6g9jgbj4zi2fpldvv7da6d4nqcbwdr";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        dependencies = [{
          name = "winapi";
          packageId = "winapi 0.3.9";
          features = [
            "std"
            "fileapi"
            "handleapi"
            "ioapiset"
            "minwindef"
            "namedpipeapi"
            "ntdef"
            "synchapi"
            "winerror"
            "winsock2"
            "ws2def"
            "ws2ipdef"
          ];
        }];

      };
      "native-tls" = rec {
        crateName = "native-tls";
        version = "0.2.8";
        edition = "2015";
        sha256 = "0kdj0drgp8cqk3v430c5ac7dfpzvhm1621w96cpz985m35vrzfj8";
        authors = [ "Steven Fackler <sfackler@gmail.com>" ];
        dependencies = [
          {
            name = "lazy_static";
            packageId = "lazy_static";
            target = { target, features }:
              ((target."os" == "macos") || (target."os" == "ios"));
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }:
              ((target."os" == "macos") || (target."os" == "ios"));
          }
          {
            name = "log";
            packageId = "log";
            target = { target, features }:
              (!((target."os" == "windows") || (target."os" == "macos")
                || (target."os" == "ios")));
          }
          {
            name = "openssl";
            packageId = "openssl";
            target = { target, features }:
              (!((target."os" == "windows") || (target."os" == "macos")
                || (target."os" == "ios")));
          }
          {
            name = "openssl-probe";
            packageId = "openssl-probe";
            target = { target, features }:
              (!((target."os" == "windows") || (target."os" == "macos")
                || (target."os" == "ios")));
          }
          {
            name = "openssl-sys";
            packageId = "openssl-sys";
            target = { target, features }:
              (!((target."os" == "windows") || (target."os" == "macos")
                || (target."os" == "ios")));
          }
          {
            name = "schannel";
            packageId = "schannel";
            target = { target, features }: (target."os" == "windows");
          }
          {
            name = "security-framework";
            packageId = "security-framework";
            target = { target, features }:
              ((target."os" == "macos") || (target."os" == "ios"));
          }
          {
            name = "security-framework-sys";
            packageId = "security-framework-sys";
            target = { target, features }:
              ((target."os" == "macos") || (target."os" == "ios"));
          }
          {
            name = "tempfile";
            packageId = "tempfile";
            target = { target, features }:
              ((target."os" == "macos") || (target."os" == "ios"));
          }
        ];
        devDependencies = [{
          name = "tempfile";
          packageId = "tempfile";
        }];
        features = {
          "alpn" = [ "security-framework/alpn" ];
          "vendored" = [ "openssl/vendored" ];
        };
      };
      "net2" = rec {
        crateName = "net2";
        version = "0.2.37";
        edition = "2015";
        sha256 = "1bk8jp0i12gvhrlaqbfq19ancja70r1rg3sywbhjl0385g8k05ir";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }:
              ((target."os" == "redox") || (target."unix" or false)
                || (target."os" == "wasi"));
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features =
              [ "handleapi" "winsock2" "ws2def" "ws2ipdef" "ws2tcpip" ];
          }
        ];
        features = { "default" = [ "duration" ]; };
        resolvedDefaultFeatures = [ "default" "duration" ];
      };
      "ntapi" = rec {
        crateName = "ntapi";
        version = "0.3.6";
        edition = "2018";
        sha256 = "0i5daj9sr8wyi5jkpwpybln2jqpn59z0mqfc0dpdidipwh1bjsrz";
        authors = [ "MSxDOS <melcodos@gmail.com>" ];
        dependencies = [{
          name = "winapi";
          packageId = "winapi 0.3.9";
          features = [
            "cfg"
            "evntrace"
            "in6addr"
            "inaddr"
            "minwinbase"
            "ntsecapi"
            "windef"
            "winioctl"
          ];
        }];
        features = {
          "default" = [ "user" ];
          "impl-default" = [ "winapi/impl-default" ];
        };
        resolvedDefaultFeatures = [ "default" "user" ];
      };
      "num-integer" = rec {
        crateName = "num-integer";
        version = "0.1.44";
        edition = "2015";
        sha256 = "1nq152y3304as1iai95hqz8prqnc94lks1s7q05sfjdmcf56kk6j";
        authors = [ "The Rust Project Developers" ];
        dependencies = [{
          name = "num-traits";
          packageId = "num-traits";
          usesDefaultFeatures = false;
        }];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];
        features = {
          "default" = [ "std" ];
          "i128" = [ "num-traits/i128" ];
          "std" = [ "num-traits/std" ];
        };
      };
      "num-traits" = rec {
        crateName = "num-traits";
        version = "0.2.14";
        edition = "2015";
        sha256 = "144j176s2p76azy2ngk2vkdzgwdc0bc8c93jhki8c9fsbknb2r4s";
        authors = [ "The Rust Project Developers" ];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "std" ];
      };
      "num_cpus" = rec {
        crateName = "num_cpus";
        version = "1.13.0";
        edition = "2015";
        sha256 = "1cv6yxhz2zbnwn8pn1yn8grg7zsnd523947fby41a737aqvryj85";
        authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
        dependencies = [
          {
            name = "hermit-abi";
            packageId = "hermit-abi";
            target = { target, features }:
              (((target."arch" == "x86_64") || (target."arch" == "aarch64"))
                && (target."os" == "hermit"));
          }
          {
            name = "libc";
            packageId = "libc";
          }
        ];

      };
      "once_cell" = rec {
        crateName = "once_cell";
        version = "1.8.0";
        edition = "2018";
        sha256 = "0mkbbxg6416z11r2yzsq91cqrkj9w1iyx5hakq15h5sbnriwnbv9";
        authors = [ "Aleksey Kladov <aleksey.kladov@gmail.com>" ];
        features = {
          "alloc" = [ "race" ];
          "default" = [ "std" ];
          "std" = [ "alloc" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ];
      };
      "openssl" = rec {
        crateName = "openssl";
        version = "0.10.36";
        edition = "2018";
        sha256 = "0jpz4nj3q8y9xqqhbvvgsqcdinkgv125s4kg80ybgh7yfvdsr7wd";
        authors = [ "Steven Fackler <sfackler@gmail.com>" ];
        dependencies = [
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "foreign-types";
            packageId = "foreign-types";
          }
          {
            name = "libc";
            packageId = "libc";
          }
          {
            name = "once_cell";
            packageId = "once_cell";
          }
          {
            name = "openssl-sys";
            packageId = "openssl-sys";
            rename = "ffi";
          }
        ];
        features = { "vendored" = [ "ffi/vendored" ]; };
      };
      "openssl-probe" = rec {
        crateName = "openssl-probe";
        version = "0.1.4";
        edition = "2015";
        sha256 = "0nmrvlrza9ya23kgzmsgfc17f9pxajdxk25cwsk9aq5p5a3qv618";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];

      };
      "openssl-sys" = rec {
        crateName = "openssl-sys";
        version = "0.9.67";
        edition = "2015";
        sha256 = "0n5023ri01wfx54rr1zndi8qda6mhzscdpj09gsamqvczj6jvpv9";
        build = "build/main.rs";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
          "Steven Fackler <sfackler@gmail.com>"
        ];
        dependencies = [{
          name = "libc";
          packageId = "libc";
        }];
        buildDependencies = [
          {
            name = "autocfg";
            packageId = "autocfg";
          }
          {
            name = "cc";
            packageId = "cc";
          }
          {
            name = "pkg-config";
            packageId = "pkg-config";
          }
          {
            name = "vcpkg";
            packageId = "vcpkg";
            target = { target, features }: (target."env" == "msvc");
          }
        ];
        features = { "vendored" = [ "openssl-src" ]; };
      };
      "parking_lot 0.11.2" = rec {
        crateName = "parking_lot";
        version = "0.11.2";
        edition = "2018";
        sha256 = "16gzf41bxmm10x82bla8d6wfppy9ym3fxsmdjyvn61m66s0bf5vx";
        authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
        dependencies = [
          {
            name = "instant";
            packageId = "instant";
          }
          {
            name = "lock_api";
            packageId = "lock_api 0.4.5";
          }
          {
            name = "parking_lot_core";
            packageId = "parking_lot_core 0.8.5";
          }
        ];
        features = {
          "arc_lock" = [ "lock_api/arc_lock" ];
          "deadlock_detection" = [ "parking_lot_core/deadlock_detection" ];
          "nightly" = [ "parking_lot_core/nightly" "lock_api/nightly" ];
          "owning_ref" = [ "lock_api/owning_ref" ];
          "serde" = [ "lock_api/serde" ];
          "stdweb" = [ "instant/stdweb" ];
          "wasm-bindgen" = [ "instant/wasm-bindgen" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "parking_lot 0.9.0" = rec {
        crateName = "parking_lot";
        version = "0.9.0";
        edition = "2018";
        sha256 = "0lk2vq3hp88ygpgsrypdr3ss71fidnqbykva0csgxhmn5scb2hpq";
        authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
        dependencies = [
          {
            name = "lock_api";
            packageId = "lock_api 0.3.4";
          }
          {
            name = "parking_lot_core";
            packageId = "parking_lot_core 0.6.2";
          }
        ];
        buildDependencies = [{
          name = "rustc_version";
          packageId = "rustc_version 0.2.3";
        }];
        features = {
          "deadlock_detection" = [ "parking_lot_core/deadlock_detection" ];
          "nightly" = [ "parking_lot_core/nightly" "lock_api/nightly" ];
          "owning_ref" = [ "lock_api/owning_ref" ];
          "serde" = [ "lock_api/serde" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "parking_lot_core 0.6.2" = rec {
        crateName = "parking_lot_core";
        version = "0.6.2";
        edition = "2018";
        sha256 = "0ay67dpnrn68ryyvp720m9i8hzp189fd4d6slrs1lvmcwywv2xmq";
        authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 0.1.10";
          }
          {
            name = "cloudabi";
            packageId = "cloudabi";
            target = { target, features }: (target."os" == "cloudabi");
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "redox_syscall";
            packageId = "redox_syscall 0.1.57";
            target = { target, features }: (target."os" == "redox");
          }
          {
            name = "smallvec";
            packageId = "smallvec 0.6.14";
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [
              "winnt"
              "ntstatus"
              "minwindef"
              "winerror"
              "winbase"
              "errhandlingapi"
              "handleapi"
            ];
          }
        ];
        buildDependencies = [{
          name = "rustc_version";
          packageId = "rustc_version 0.2.3";
        }];
        features = {
          "deadlock_detection" = [ "petgraph" "thread-id" "backtrace" ];
        };
      };
      "parking_lot_core 0.8.5" = rec {
        crateName = "parking_lot_core";
        version = "0.8.5";
        edition = "2018";
        sha256 = "05ij4zxsylx99srbq8qd1k2wiwaq8krkf9y4cqkhvb5wjca8wvnp";
        authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "instant";
            packageId = "instant";
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "redox_syscall";
            packageId = "redox_syscall 0.2.10";
            target = { target, features }: (target."os" == "redox");
          }
          {
            name = "smallvec";
            packageId = "smallvec 1.7.0";
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [
              "winnt"
              "ntstatus"
              "minwindef"
              "winerror"
              "winbase"
              "errhandlingapi"
              "handleapi"
            ];
          }
        ];
        features = {
          "deadlock_detection" = [ "petgraph" "thread-id" "backtrace" ];
        };
      };
      "percent-encoding" = rec {
        crateName = "percent-encoding";
        version = "2.1.0";
        edition = "2015";
        sha256 = "0bp3zrsk3kr47fbpipyczidbbx4g54lzxdm77ni1i3qws10mdzfl";
        libPath = "lib.rs";
        authors = [ "The rust-url developers" ];

      };
      "pest" = rec {
        crateName = "pest";
        version = "2.1.3";
        edition = "2015";
        sha256 = "0lry80bm90x47nq71wxq83kjrm9ashpz4kbm92p90ysdx4m8gx0h";
        authors = [ "Dragoș Tiselice <dragostiselice@gmail.com>" ];
        dependencies = [{
          name = "ucd-trie";
          packageId = "ucd-trie";
        }];
        features = { "pretty-print" = [ "serde" "serde_json" ]; };
      };
      "pin-project" = rec {
        crateName = "pin-project";
        version = "1.0.8";
        edition = "2018";
        sha256 = "020c5nyj7qpyqn6xwy3hw6vgm31mifq9g7p916n5vihc480chssp";
        authors = [ "Taiki Endo <te316e89@gmail.com>" ];
        dependencies = [{
          name = "pin-project-internal";
          packageId = "pin-project-internal";
          usesDefaultFeatures = false;
        }];

      };
      "pin-project-internal" = rec {
        crateName = "pin-project-internal";
        version = "1.0.8";
        edition = "2018";
        sha256 = "12gkrjd7xzwa3vlhpzxbxlbwisi2dw8l1q62v867zkhl7lbfi3vf";
        procMacro = true;
        authors = [ "Taiki Endo <te316e89@gmail.com>" ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" "visit-mut" ];
          }
        ];

      };
      "pin-project-lite" = rec {
        crateName = "pin-project-lite";
        version = "0.2.7";
        edition = "2018";
        sha256 = "0hwl8iyx3h9i3i3jr2vqj07nf4ay1v1w1ga29cbjmdd6d4fd2ccd";
        authors = [ "Taiki Endo <te316e89@gmail.com>" ];

      };
      "pin-utils" = rec {
        crateName = "pin-utils";
        version = "0.1.0";
        edition = "2018";
        sha256 = "117ir7vslsl2z1a7qzhws4pd01cg2d3338c47swjyvqv2n60v1wb";
        authors = [ "Josef Brandl <mail@josefbrandl.de>" ];

      };
      "pkg-config" = rec {
        crateName = "pkg-config";
        version = "0.3.20";
        edition = "2015";
        sha256 = "1jz6qlr0k0nz5bxijdba6bznll98zkfnqx763swr6y1qni0i16vw";
        authors = [ "Alex Crichton <alex@alexcrichton.com>" ];

      };
      "ppv-lite86" = rec {
        crateName = "ppv-lite86";
        version = "0.2.10";
        edition = "2018";
        sha256 = "0ms8198kclg4h96ggbziixxmsdl847s648kmbx11zlmjsqjccx5c";
        authors = [ "The CryptoCorrosion Contributors" ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "simd" "std" ];
      };
      "proc-macro-error" = rec {
        crateName = "proc-macro-error";
        version = "1.0.4";
        edition = "2018";
        sha256 = "1373bhxaf0pagd8zkyd03kkx6bchzf6g0dkwrwzsnal9z47lj9fs";
        authors = [ "CreepySkeleton <creepy-skeleton@yandex.ru>" ];
        dependencies = [
          {
            name = "proc-macro-error-attr";
            packageId = "proc-macro-error-attr";
          }
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            optional = true;
            usesDefaultFeatures = false;
          }
        ];
        buildDependencies = [{
          name = "version_check";
          packageId = "version_check";
        }];
        features = {
          "default" = [ "syn-error" ];
          "syn-error" = [ "syn" ];
        };
        resolvedDefaultFeatures = [ "default" "syn" "syn-error" ];
      };
      "proc-macro-error-attr" = rec {
        crateName = "proc-macro-error-attr";
        version = "1.0.4";
        edition = "2018";
        sha256 = "0sgq6m5jfmasmwwy8x4mjygx5l7kp8s4j60bv25ckv2j1qc41gm1";
        procMacro = true;
        authors = [ "CreepySkeleton <creepy-skeleton@yandex.ru>" ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
        ];
        buildDependencies = [{
          name = "version_check";
          packageId = "version_check";
        }];

      };
      "proc-macro-hack" = rec {
        crateName = "proc-macro-hack";
        version = "0.5.19";
        edition = "2018";
        sha256 = "1rg0kzsj7lj00qj602d3h77spwfz48vixn1wbjp7a4yrq65w9w6v";
        procMacro = true;
        authors = [ "David Tolnay <dtolnay@gmail.com>" ];

      };
      "proc-macro-nested" = rec {
        crateName = "proc-macro-nested";
        version = "0.1.7";
        edition = "2015";
        sha256 = "11hh1jynh62f3m1ii0f9gf1l3y0fhkwpmr40lz3704v848n1p25w";
        authors = [ "David Tolnay <dtolnay@gmail.com>" ];

      };
      "proc-macro2" = rec {
        crateName = "proc-macro2";
        version = "1.0.30";
        edition = "2018";
        sha256 = "0w7fc5mvk7jsfgn1pmiphkvjd0min12zj1y0l1zqpg37pj73bhzd";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [{
          name = "unicode-xid";
          packageId = "unicode-xid";
        }];
        features = { "default" = [ "proc-macro" ]; };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "quote" = rec {
        crateName = "quote";
        version = "1.0.10";
        edition = "2018";
        sha256 = "01ff7a76f871ggnby57iagw6499vci4bihcr11g6bqzjlp38rg1q";
        authors = [ "David Tolnay <dtolnay@gmail.com>" ];
        dependencies = [{
          name = "proc-macro2";
          packageId = "proc-macro2";
          usesDefaultFeatures = false;
        }];
        features = {
          "default" = [ "proc-macro" ];
          "proc-macro" = [ "proc-macro2/proc-macro" ];
        };
        resolvedDefaultFeatures = [ "default" "proc-macro" ];
      };
      "rand" = rec {
        crateName = "rand";
        version = "0.8.4";
        edition = "2018";
        sha256 = "1n5wska2fbfj4dsfz8mc0pd0dgjlrb6c9anpk5mwym345rip6x9f";
        authors =
          [ "The Rand Project Developers" "The Rust Project Developers" ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "rand_chacha";
            packageId = "rand_chacha";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."os" == "emscripten"));
          }
          {
            name = "rand_core";
            packageId = "rand_core";
          }
          {
            name = "rand_hc";
            packageId = "rand_hc";
            optional = true;
            target = { target, features }: (target."os" == "emscripten");
          }
        ];
        devDependencies = [{
          name = "rand_hc";
          packageId = "rand_hc";
        }];
        features = {
          "alloc" = [ "rand_core/alloc" ];
          "default" = [ "std" "std_rng" ];
          "getrandom" = [ "rand_core/getrandom" ];
          "serde1" = [ "serde" "rand_core/serde1" ];
          "simd_support" = [ "packed_simd" ];
          "std" =
            [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ];
          "std_rng" = [ "rand_chacha" "rand_hc" ];
        };
        resolvedDefaultFeatures = [
          "alloc"
          "default"
          "getrandom"
          "libc"
          "rand_chacha"
          "rand_hc"
          "std"
          "std_rng"
        ];
      };
      "rand_chacha" = rec {
        crateName = "rand_chacha";
        version = "0.3.1";
        edition = "2018";
        sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6";
        authors = [
          "The Rand Project Developers"
          "The Rust Project Developers"
          "The CryptoCorrosion Contributors"
        ];
        dependencies = [
          {
            name = "ppv-lite86";
            packageId = "ppv-lite86";
            usesDefaultFeatures = false;
            features = [ "simd" ];
          }
          {
            name = "rand_core";
            packageId = "rand_core";
          }
        ];
        features = {
          "default" = [ "std" ];
          "serde1" = [ "serde" ];
          "std" = [ "ppv-lite86/std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "rand_core" = rec {
        crateName = "rand_core";
        version = "0.6.3";
        edition = "2018";
        sha256 = "1rxlxc3bpzgwphcg9c9yasvv9idipcg2z2y4j0vlb52jyl418kyk";
        authors =
          [ "The Rand Project Developers" "The Rust Project Developers" ];
        dependencies = [{
          name = "getrandom";
          packageId = "getrandom";
          optional = true;
        }];
        features = {
          "serde1" = [ "serde" ];
          "std" = [ "alloc" "getrandom" "getrandom/std" ];
        };
        resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ];
      };
      "rand_hc" = rec {
        crateName = "rand_hc";
        version = "0.3.1";
        edition = "2018";
        sha256 = "1rwpykyvhkxs4jvqdja3mzp9dqaqamzn113cxaigs9z2dmcry7nm";
        authors = [ "The Rand Project Developers" ];
        dependencies = [{
          name = "rand_core";
          packageId = "rand_core";
        }];

      };
      "redox_syscall 0.1.57" = rec {
        crateName = "redox_syscall";
        version = "0.1.57";
        edition = "2015";
        sha256 = "1kh59fpwy33w9nwd5iyc283yglq8pf2s41hnhvl48iax9mz0zk21";
        libName = "syscall";
        authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];

      };
      "redox_syscall 0.2.10" = rec {
        crateName = "redox_syscall";
        version = "0.2.10";
        edition = "2018";
        sha256 = "1zq36bhw4c6xig340ja1jmr36iy0d3djp8smsabxx71676bg70w3";
        libName = "syscall";
        authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
        dependencies = [{
          name = "bitflags";
          packageId = "bitflags";
        }];

      };
      "redox_users" = rec {
        crateName = "redox_users";
        version = "0.4.0";
        edition = "2018";
        sha256 = "0r5y1a26flkn6gkayi558jg5dzh2m2fdsapgkpn7mj01v3rk51aj";
        authors = [
          "Jose Narvaez <goyox86@gmail.com>"
          "Wesley Hershberger <mggmugginsmc@gmail.com>"
        ];
        dependencies = [
          {
            name = "getrandom";
            packageId = "getrandom";
            features = [ "std" ];
          }
          {
            name = "redox_syscall";
            packageId = "redox_syscall 0.2.10";
          }
        ];
        features = {
          "auth" = [ "rust-argon2" ];
          "default" = [ "auth" ];
        };
      };
      "regex" = rec {
        crateName = "regex";
        version = "1.5.4";
        edition = "2018";
        sha256 = "0qf479kjbmb582h4d1d6gfl75h0j8aq2nrdi5wg6zdcy6llqcynh";
        authors = [ "The Rust Project Developers" ];
        dependencies = [{
          name = "regex-syntax";
          packageId = "regex-syntax";
          usesDefaultFeatures = false;
        }];
        features = {
          "default" = [ "std" "perf" "unicode" "regex-syntax/default" ];
          "perf" = [ "perf-cache" "perf-dfa" "perf-inline" "perf-literal" ];
          "perf-literal" = [ "aho-corasick" "memchr" ];
          "unicode" = [
            "unicode-age"
            "unicode-bool"
            "unicode-case"
            "unicode-gencat"
            "unicode-perl"
            "unicode-script"
            "unicode-segment"
            "regex-syntax/unicode"
          ];
          "unicode-age" = [ "regex-syntax/unicode-age" ];
          "unicode-bool" = [ "regex-syntax/unicode-bool" ];
          "unicode-case" = [ "regex-syntax/unicode-case" ];
          "unicode-gencat" = [ "regex-syntax/unicode-gencat" ];
          "unicode-perl" = [ "regex-syntax/unicode-perl" ];
          "unicode-script" = [ "regex-syntax/unicode-script" ];
          "unicode-segment" = [ "regex-syntax/unicode-segment" ];
          "unstable" = [ "pattern" ];
          "use_std" = [ "std" ];
        };
        resolvedDefaultFeatures = [ "std" ];
      };
      "regex-automata" = rec {
        crateName = "regex-automata";
        version = "0.1.10";
        edition = "2015";
        sha256 = "0ci1hvbzhrfby5fdpf4ganhf7kla58acad9i1ff1p34dzdrhs8vc";
        authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
        dependencies = [{
          name = "regex-syntax";
          packageId = "regex-syntax";
          optional = true;
        }];
        features = {
          "default" = [ "std" ];
          "std" = [ "regex-syntax" ];
          "transducer" = [ "std" "fst" ];
        };
        resolvedDefaultFeatures = [ "default" "regex-syntax" "std" ];
      };
      "regex-syntax" = rec {
        crateName = "regex-syntax";
        version = "0.6.25";
        edition = "2018";
        sha256 = "16y87hz1bxmmz6kk360cxwfm3jnbsxb3x4zw9x1gzz7khic2i5zl";
        authors = [ "The Rust Project Developers" ];
        features = {
          "default" = [ "unicode" ];
          "unicode" = [
            "unicode-age"
            "unicode-bool"
            "unicode-case"
            "unicode-gencat"
            "unicode-perl"
            "unicode-script"
            "unicode-segment"
          ];
        };
        resolvedDefaultFeatures = [
          "default"
          "unicode"
          "unicode-age"
          "unicode-bool"
          "unicode-case"
          "unicode-gencat"
          "unicode-perl"
          "unicode-script"
          "unicode-segment"
        ];
      };
      "remove_dir_all" = rec {
        crateName = "remove_dir_all";
        version = "0.5.3";
        edition = "2015";
        sha256 = "1rzqbsgkmr053bxxl04vmvsd1njyz0nxvly97aip6aa2cmb15k9s";
        authors = [ "Aaronepower <theaaronepower@gmail.com>" ];
        dependencies = [{
          name = "winapi";
          packageId = "winapi 0.3.9";
          target = { target, features }: (target."windows" or false);
          features = [ "std" "errhandlingapi" "winerror" "fileapi" "winbase" ];
        }];

      };
      "reqwest" = rec {
        crateName = "reqwest";
        version = "0.11.5";
        edition = "2018";
        sha256 = "1yv7fjy0wqr470js8484k7927719bw97njxlzxi06c6xcga35isi";
        authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
        dependencies = [
          {
            name = "base64";
            packageId = "base64";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "bytes";
            packageId = "bytes 1.1.0";
          }
          {
            name = "encoding_rs";
            packageId = "encoding_rs";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "futures-core";
            packageId = "futures-core";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "futures-util";
            packageId = "futures-util";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "http";
            packageId = "http";
          }
          {
            name = "http-body";
            packageId = "http-body";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "hyper";
            packageId = "hyper";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
            features = [ "tcp" "http1" "http2" "client" "runtime" ];
          }
          {
            name = "hyper-tls";
            packageId = "hyper-tls";
            optional = true;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "ipnet";
            packageId = "ipnet";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "js-sys";
            packageId = "js-sys";
            target = { target, features }: (target."arch" == "wasm32");
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "log";
            packageId = "log";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "mime";
            packageId = "mime";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "native-tls";
            packageId = "native-tls";
            rename = "native-tls-crate";
            optional = true;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "percent-encoding";
            packageId = "percent-encoding";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "serde";
            packageId = "serde";
          }
          {
            name = "serde_json";
            packageId = "serde_json";
            optional = true;
          }
          {
            name = "serde_json";
            packageId = "serde_json";
            target = { target, features }: (target."arch" == "wasm32");
          }
          {
            name = "serde_urlencoded";
            packageId = "serde_urlencoded";
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
            features = [ "net" "time" ];
          }
          {
            name = "tokio-native-tls";
            packageId = "tokio-native-tls";
            optional = true;
            target = { target, features }: (!(target."arch" == "wasm32"));
          }
          {
            name = "url";
            packageId = "url";
          }
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
            target = { target, features }: (target."arch" == "wasm32");
          }
          {
            name = "wasm-bindgen-futures";
            packageId = "wasm-bindgen-futures";
            target = { target, features }: (target."arch" == "wasm32");
          }
          {
            name = "web-sys";
            packageId = "web-sys";
            target = { target, features }: (target."arch" == "wasm32");
            features = [
              "Headers"
              "Request"
              "RequestInit"
              "RequestMode"
              "Response"
              "Window"
              "FormData"
              "Blob"
              "BlobPropertyBag"
              "ServiceWorkerGlobalScope"
              "RequestCredentials"
            ];
          }
          {
            name = "winreg";
            packageId = "winreg";
            target = { target, features }: (target."windows" or false);
          }
        ];
        devDependencies = [
          {
            name = "hyper";
            packageId = "hyper";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
            features =
              [ "tcp" "stream" "http1" "http2" "client" "server" "runtime" ];
          }
          {
            name = "serde";
            packageId = "serde";
            target = { target, features }: (!(target."arch" == "wasm32"));
            features = [ "derive" ];
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            usesDefaultFeatures = false;
            target = { target, features }: (!(target."arch" == "wasm32"));
            features = [ "macros" "rt-multi-thread" ];
          }
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
            target = { target, features }: (target."arch" == "wasm32");
            features = [ "serde-serialize" ];
          }
        ];
        features = {
          "__rustls" = [ "hyper-rustls" "tokio-rustls" "rustls" "__tls" ];
          "blocking" =
            [ "futures-util/io" "tokio/rt-multi-thread" "tokio/sync" ];
          "brotli" =
            [ "async-compression" "async-compression/brotli" "tokio-util" ];
          "cookies" = [ "cookie_crate" "cookie_store" "time" ];
          "default" = [ "default-tls" ];
          "default-tls" =
            [ "hyper-tls" "native-tls-crate" "__tls" "tokio-native-tls" ];
          "deflate" =
            [ "async-compression" "async-compression/zlib" "tokio-util" ];
          "gzip" =
            [ "async-compression" "async-compression/gzip" "tokio-util" ];
          "json" = [ "serde_json" ];
          "multipart" = [ "mime_guess" ];
          "native-tls" = [ "default-tls" ];
          "native-tls-alpn" = [ "native-tls" "native-tls-crate/alpn" ];
          "native-tls-vendored" = [ "native-tls" "native-tls-crate/vendored" ];
          "rustls-tls" = [ "rustls-tls-webpki-roots" ];
          "rustls-tls-manual-roots" = [ "__rustls" ];
          "rustls-tls-native-roots" = [ "rustls-native-certs" "__rustls" ];
          "rustls-tls-webpki-roots" = [ "webpki-roots" "__rustls" ];
          "socks" = [ "tokio-socks" ];
          "trust-dns" = [ "trust-dns-resolver" ];
        };
        resolvedDefaultFeatures = [
          "__tls"
          "default"
          "default-tls"
          "hyper-tls"
          "json"
          "native-tls-crate"
          "serde_json"
          "tokio-native-tls"
        ];
      };
      "rustc_version 0.2.3" = rec {
        crateName = "rustc_version";
        version = "0.2.3";
        edition = "2015";
        sha256 = "02h3x57lcr8l2pm0a645s9whdh33pn5cnrwvn5cb57vcrc53x3hk";
        authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
        dependencies = [{
          name = "semver";
          packageId = "semver 0.9.0";
        }];

      };
      "rustc_version 0.3.3" = rec {
        crateName = "rustc_version";
        version = "0.3.3";
        edition = "2018";
        sha256 = "1vjmw7xcdri0spsf24mkpwpph853wrbqppihhw061i2igh4f5pzh";
        authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
        dependencies = [{
          name = "semver";
          packageId = "semver 0.11.0";
        }];

      };
      "ryu" = rec {
        crateName = "ryu";
        version = "1.0.5";
        edition = "2018";
        sha256 = "0vpqv1dj7fksa6hm3zpk5rbsjs0ifbfy7xwzsyyil0rx37a03lvi";
        authors = [ "David Tolnay <dtolnay@gmail.com>" ];
        features = { };
      };
      "schannel" = rec {
        crateName = "schannel";
        version = "0.1.19";
        edition = "2015";
        sha256 = "0xdwr3clrylywpv2r5hw7mrxmsf7ljagwiymw2z60ki3kihbl1cg";
        authors = [
          "Steven Fackler <sfackler@gmail.com>"
          "Steffen Butzer <steffen.butzer@outlook.com>"
        ];
        dependencies = [
          {
            name = "lazy_static";
            packageId = "lazy_static";
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            features = [
              "lmcons"
              "minschannel"
              "securitybaseapi"
              "schannel"
              "sspi"
              "sysinfoapi"
              "timezoneapi"
              "winbase"
              "wincrypt"
              "winerror"
            ];
          }
        ];

      };
      "scopeguard" = rec {
        crateName = "scopeguard";
        version = "1.1.0";
        edition = "2015";
        sha256 = "1kbqm85v43rq92vx7hfiay6pmcga03vrjbbfwqpyj3pwsg3b16nj";
        authors = [ "bluss" ];
        features = { "default" = [ "use_std" ]; };
      };
      "security-framework" = rec {
        crateName = "security-framework";
        version = "2.4.2";
        edition = "2018";
        sha256 = "11vwvw2qnrf1z8i0ncbj9456vxwnwq9wyi9c2n6rkqd2znmw2nsj";
        authors = [
          "Steven Fackler <sfackler@gmail.com>"
          "Kornel <kornel@geekhood.net>"
        ];
        dependencies = [
          {
            name = "bitflags";
            packageId = "bitflags";
          }
          {
            name = "core-foundation";
            packageId = "core-foundation";
          }
          {
            name = "core-foundation-sys";
            packageId = "core-foundation-sys";
          }
          {
            name = "libc";
            packageId = "libc";
          }
          {
            name = "security-framework-sys";
            packageId = "security-framework-sys";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "OSX_10_10" = [ "OSX_10_9" "security-framework-sys/OSX_10_10" ];
          "OSX_10_11" = [ "OSX_10_10" "security-framework-sys/OSX_10_11" ];
          "OSX_10_12" = [ "OSX_10_11" "security-framework-sys/OSX_10_12" ];
          "OSX_10_13" = [
            "OSX_10_12"
            "security-framework-sys/OSX_10_13"
            "alpn"
            "session-tickets"
            "serial-number-bigint"
          ];
          "OSX_10_14" = [ "OSX_10_13" "security-framework-sys/OSX_10_14" ];
          "OSX_10_9" = [ "security-framework-sys/OSX_10_9" ];
          "default" = [ "OSX_10_9" ];
          "serial-number-bigint" = [ "num-bigint" ];
        };
        resolvedDefaultFeatures = [ "OSX_10_9" "default" ];
      };
      "security-framework-sys" = rec {
        crateName = "security-framework-sys";
        version = "2.4.2";
        edition = "2018";
        sha256 = "0zlwc46mb7zkm4ngq5qv52zczvvk0l8kjr6npyvjidb067c19pd9";
        authors = [
          "Steven Fackler <sfackler@gmail.com>"
          "Kornel <kornel@geekhood.net>"
        ];
        dependencies = [
          {
            name = "core-foundation-sys";
            packageId = "core-foundation-sys";
          }
          {
            name = "libc";
            packageId = "libc";
          }
        ];
        features = {
          "OSX_10_10" = [ "OSX_10_9" ];
          "OSX_10_11" = [ "OSX_10_10" ];
          "OSX_10_12" = [ "OSX_10_11" ];
          "OSX_10_13" = [ "OSX_10_12" ];
          "OSX_10_14" = [ "OSX_10_13" ];
          "default" = [ "OSX_10_9" ];
        };
        resolvedDefaultFeatures = [ "OSX_10_9" "default" ];
      };
      "semver 0.11.0" = rec {
        crateName = "semver";
        version = "0.11.0";
        edition = "2015";
        sha256 = "1dn6064fipjymnmjccyjhb70miyvqvp08gvw1wbg8vbg4c8ay0gk";
        authors = [
          "Steve Klabnik <steve@steveklabnik.com>"
          "The Rust Project Developers"
        ];
        dependencies = [{
          name = "semver-parser";
          packageId = "semver-parser 0.10.2";
        }];
        features = { "ci" = [ "serde" "diesel/sqlite" ]; };
        resolvedDefaultFeatures = [ "default" ];
      };
      "semver 0.9.0" = rec {
        crateName = "semver";
        version = "0.9.0";
        edition = "2015";
        sha256 = "00q4lkcj0rrgbhviv9sd4p6qmdsipkwkbra7rh11jrhq5kpvjzhx";
        authors = [
          "Steve Klabnik <steve@steveklabnik.com>"
          "The Rust Project Developers"
        ];
        dependencies = [{
          name = "semver-parser";
          packageId = "semver-parser 0.7.0";
        }];
        features = { "ci" = [ "serde" ]; };
        resolvedDefaultFeatures = [ "default" ];
      };
      "semver-parser 0.10.2" = rec {
        crateName = "semver-parser";
        version = "0.10.2";
        edition = "2018";
        crateBin = [ ];
        sha256 = "1xqijhqhx3bn77xnl1mlcp032hz8nv7n2fbdacbdzq7rnzsvxc00";
        authors = [ "Steve Klabnik <steve@steveklabnik.com>" ];
        dependencies = [{
          name = "pest";
          packageId = "pest";
        }];

      };
      "semver-parser 0.7.0" = rec {
        crateName = "semver-parser";
        version = "0.7.0";
        edition = "2015";
        sha256 = "18vhypw6zgccnrlm5ps1pwa0khz7ry927iznpr88b87cagr1v2iq";
        authors = [ "Steve Klabnik <steve@steveklabnik.com>" ];

      };
      "serde" = rec {
        crateName = "serde";
        version = "1.0.130";
        edition = "2015";
        sha256 = "04y9s1mxcxakg9bhfdiff9w4zzprk6m6dazcpmpi8nfg6zg0cbgi";
        authors = [
          "Erick Tryzelaar <erick.tryzelaar@gmail.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [{
          name = "serde_derive";
          packageId = "serde_derive";
          optional = true;
        }];
        devDependencies = [{
          name = "serde_derive";
          packageId = "serde_derive";
        }];
        features = {
          "default" = [ "std" ];
          "derive" = [ "serde_derive" ];
        };
        resolvedDefaultFeatures = [ "default" "derive" "serde_derive" "std" ];
      };
      "serde_derive" = rec {
        crateName = "serde_derive";
        version = "1.0.130";
        edition = "2015";
        sha256 = "12shxhi47db54i4j44ic2nl299x5p89ngna0w3m6854nn4d1mg6p";
        procMacro = true;
        authors = [
          "Erick Tryzelaar <erick.tryzelaar@gmail.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
          }
        ];
        features = { };
        resolvedDefaultFeatures = [ "default" ];
      };
      "serde_json" = rec {
        crateName = "serde_json";
        version = "1.0.68";
        edition = "2018";
        sha256 = "1n2jg9cf14lrxasj63rlrwxlw5v79m851gycw6zy20jnjx9hhs8g";
        authors = [
          "Erick Tryzelaar <erick.tryzelaar@gmail.com>"
          "David Tolnay <dtolnay@gmail.com>"
        ];
        dependencies = [
          {
            name = "itoa";
            packageId = "itoa";
            usesDefaultFeatures = false;
          }
          {
            name = "ryu";
            packageId = "ryu";
          }
          {
            name = "serde";
            packageId = "serde";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "alloc" = [ "serde/alloc" ];
          "default" = [ "std" ];
          "preserve_order" = [ "indexmap" ];
          "std" = [ "serde/std" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "serde_urlencoded" = rec {
        crateName = "serde_urlencoded";
        version = "0.7.0";
        edition = "2018";
        sha256 = "1s9wnjrak5a0igfhcghhz51kvi7n010j5rs9lmhd5hfrz2kmgypd";
        authors = [ "Anthony Ramine <n.oxyde@gmail.com>" ];
        dependencies = [
          {
            name = "form_urlencoded";
            packageId = "form_urlencoded";
          }
          {
            name = "itoa";
            packageId = "itoa";
          }
          {
            name = "ryu";
            packageId = "ryu";
          }
          {
            name = "serde";
            packageId = "serde";
          }
        ];

      };
      "serde_yaml" = rec {
        crateName = "serde_yaml";
        version = "0.8.21";
        edition = "2018";
        sha256 = "1br0kf7qkpq6jgj37s7q46wk9zs7fqa07r7vr76x7985ayihiinq";
        authors = [ "David Tolnay <dtolnay@gmail.com>" ];
        dependencies = [
          {
            name = "dtoa";
            packageId = "dtoa";
          }
          {
            name = "indexmap";
            packageId = "indexmap";
          }
          {
            name = "serde";
            packageId = "serde";
          }
          {
            name = "yaml-rust";
            packageId = "yaml-rust";
          }
        ];

      };
      "sharded-slab" = rec {
        crateName = "sharded-slab";
        version = "0.1.4";
        edition = "2018";
        sha256 = "0cbb8kgwsyr3zzhsv8jrs3y1j3vsw4jxil42lfq31ikhdy0bl3wh";
        authors = [ "Eliza Weisman <eliza@buoyant.io>" ];
        dependencies = [{
          name = "lazy_static";
          packageId = "lazy_static";
        }];

      };
      "shellexpand" = rec {
        crateName = "shellexpand";
        version = "2.1.0";
        edition = "2015";
        sha256 = "0a981ynym0hipnvkd93ihszdszjqs0cslj5ilzsdv19d3f1vggc3";
        authors = [ "Vladimir Matveev <vmatveev@citrine.cc>" ];
        dependencies = [{
          name = "dirs-next";
          packageId = "dirs-next";
        }];

      };
      "signal-hook-registry" = rec {
        crateName = "signal-hook-registry";
        version = "1.4.0";
        edition = "2015";
        sha256 = "1c2mhijg54y6c1zi4630yki1vpq3z96ljfnsrdy0rb64ilr767p5";
        authors = [
          "Michal 'vorner' Vaner <vorner@vorner.cz>"
          "Masaki Hara <ackie.h.gmai@gmail.com>"
        ];
        dependencies = [{
          name = "libc";
          packageId = "libc";
        }];

      };
      "slab" = rec {
        crateName = "slab";
        version = "0.4.4";
        edition = "2018";
        sha256 = "1465rj4y59qjvzxik0v2m0mp71q50m9xfigxqww7yhsw3hna61y3";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "smallvec 0.6.14" = rec {
        crateName = "smallvec";
        version = "0.6.14";
        edition = "2015";
        sha256 = "1q4hz0ssnv24s6fq5kfp2wzrrprrrjiwc42a0h7s7nwym3mwlzxr";
        libPath = "lib.rs";
        authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
        dependencies = [{
          name = "maybe-uninit";
          packageId = "maybe-uninit";
        }];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "smallvec 1.7.0" = rec {
        crateName = "smallvec";
        version = "1.7.0";
        edition = "2018";
        sha256 = "02gka690j8l12gl50ifg7axqnx1m6v6d1byaq0wl3fx66p3vdjhy";
        authors = [ "The Servo Project Developers" ];
        features = { "const_new" = [ "const_generics" ]; };
      };
      "snafu" = rec {
        crateName = "snafu";
        version = "0.6.10";
        edition = "2018";
        sha256 = "19wwqxwb85pl040qk5xylj0vlznib3xzy9hcv2q0h8qv4qy2vcga";
        authors = [ "Jake Goulding <jake.goulding@gmail.com>" ];
        dependencies = [
          {
            name = "doc-comment";
            packageId = "doc-comment";
            usesDefaultFeatures = false;
          }
          {
            name = "snafu-derive";
            packageId = "snafu-derive";
          }
        ];
        features = {
          "backtraces" = [ "std" "backtrace" ];
          "backtraces-impl-backtrace-crate" = [ "backtraces" ];
          "default" = [ "std" "guide" ];
          "futures" = [ "futures-core-crate" "pin-project" ];
          "futures-01" = [ "futures-01-crate" ];
          "internal-dev-dependencies" = [ "futures-crate" ];
          "unstable-backtraces-impl-std" =
            [ "backtraces" "snafu-derive/unstable-backtraces-impl-std" ];
        };
        resolvedDefaultFeatures = [ "default" "guide" "std" ];
      };
      "snafu-derive" = rec {
        crateName = "snafu-derive";
        version = "0.6.10";
        edition = "2018";
        sha256 = "0nri7ma06g5kimpcdcm8359a55nmps5f3kcngy0j6bin7jhfy20m";
        procMacro = true;
        authors = [ "Jake Goulding <jake.goulding@gmail.com>" ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" ];
          }
        ];
        features = { };
      };
      "socket2" = rec {
        crateName = "socket2";
        version = "0.4.2";
        edition = "2018";
        sha256 = "05imvybc86slkbg6sj9rd1xy9a8ydn1v2bcqjqr346myqzk0zjax";
        authors = [
          "Alex Crichton <alex@alexcrichton.com>"
          "Thomas de Zeeuw <thomasdezeeuw@gmail.com>"
        ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "handleapi" "ws2ipdef" "ws2tcpip" ];
          }
        ];
        features = { };
      };
      "strsim" = rec {
        crateName = "strsim";
        version = "0.8.0";
        edition = "2015";
        sha256 = "0sjsm7hrvjdifz661pjxq5w4hf190hx53fra8dfvamacvff139cf";
        authors = [ "Danny Guo <dannyguo91@gmail.com>" ];

      };
      "structopt" = rec {
        crateName = "structopt";
        version = "0.3.23";
        edition = "2018";
        sha256 = "1yhb7kr7r0a7jvsz7wi6r1d7kllsivbg2g07vc5mxqk7y479b7dz";
        authors = [ "Guillaume Pinot <texitoi@texitoi.eu>" "others" ];
        dependencies = [
          {
            name = "clap";
            packageId = "clap";
            usesDefaultFeatures = false;
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
          }
          {
            name = "structopt-derive";
            packageId = "structopt-derive";
          }
        ];
        features = {
          "color" = [ "clap/color" ];
          "debug" = [ "clap/debug" ];
          "default" = [ "clap/default" ];
          "doc" = [ "clap/doc" ];
          "lints" = [ "clap/lints" ];
          "no_cargo" = [ "clap/no_cargo" ];
          "paw" = [ "structopt-derive/paw" "paw_dep" ];
          "suggestions" = [ "clap/suggestions" ];
          "wrap_help" = [ "clap/wrap_help" ];
          "yaml" = [ "clap/yaml" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "structopt-derive" = rec {
        crateName = "structopt-derive";
        version = "0.4.16";
        edition = "2018";
        sha256 = "1fnhfbvqasx2n9ak57vi3d2r6d55xmjz2vfg4lqsqhwr5j586k8k";
        procMacro = true;
        authors = [ "Guillaume Pinot <texitoi@texitoi.eu>" ];
        dependencies = [
          {
            name = "heck";
            packageId = "heck";
          }
          {
            name = "proc-macro-error";
            packageId = "proc-macro-error";
          }
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" ];
          }
        ];
        features = { };
      };
      "syn" = rec {
        crateName = "syn";
        version = "1.0.80";
        edition = "2018";
        sha256 = "156i2pkz6rqic3zgfgq5wjhgy1gwmrm93aahsr8nv45x7xia246h";
        authors = [ "David Tolnay <dtolnay@gmail.com>" ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
            usesDefaultFeatures = false;
          }
          {
            name = "quote";
            packageId = "quote";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "unicode-xid";
            packageId = "unicode-xid";
          }
        ];
        features = {
          "default" =
            [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
          "printing" = [ "quote" ];
          "proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
          "test" = [ "syn-test-suite/all-features" ];
        };
        resolvedDefaultFeatures = [
          "clone-impls"
          "default"
          "derive"
          "extra-traits"
          "full"
          "parsing"
          "printing"
          "proc-macro"
          "quote"
          "visit"
          "visit-mut"
        ];
      };
      "tempfile" = rec {
        crateName = "tempfile";
        version = "3.2.0";
        edition = "2018";
        sha256 = "08pbf3c1i42382dc44dil5bgiawcsi0qk6zdibw10f69rxiwdhfs";
        authors = [
          "Steven Allen <steven@stebalien.com>"
          "The Rust Project Developers"
          "Ashley Mannix <ashleymannix@live.com.au>"
          "Jason White <jasonaw0@gmail.com>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "libc";
            packageId = "libc";
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "rand";
            packageId = "rand";
          }
          {
            name = "redox_syscall";
            packageId = "redox_syscall 0.2.10";
            target = { target, features }: (target."os" == "redox");
          }
          {
            name = "remove_dir_all";
            packageId = "remove_dir_all";
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [ "fileapi" "handleapi" "winbase" ];
          }
        ];

      };
      "textwrap" = rec {
        crateName = "textwrap";
        version = "0.11.0";
        edition = "2015";
        sha256 = "0q5hky03ik3y50s9sz25r438bc4nwhqc6dqwynv4wylc807n29nk";
        authors = [ "Martin Geisler <martin@geisler.net>" ];
        dependencies = [{
          name = "unicode-width";
          packageId = "unicode-width";
        }];

      };
      "thread_local" = rec {
        crateName = "thread_local";
        version = "1.1.3";
        edition = "2018";
        sha256 = "1gccp3grndpi6dyhzylz4hkqnkzc1xyri98n0xwwhnn90i7d4640";
        authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
        dependencies = [{
          name = "once_cell";
          packageId = "once_cell";
        }];

      };
      "time" = rec {
        crateName = "time";
        version = "0.1.43";
        edition = "2015";
        sha256 = "0f14wrgxj7ya2v4msg5mni7046bsm2angm7cn3pd3yv04gpm12na";
        authors = [ "The Rust Project Developers" ];
        dependencies = [
          {
            name = "libc";
            packageId = "libc";
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            target = { target, features }: (target."windows" or false);
            features = [
              "std"
              "minwinbase"
              "minwindef"
              "ntdef"
              "profileapi"
              "sysinfoapi"
              "timezoneapi"
            ];
          }
        ];
        devDependencies = [{
          name = "winapi";
          packageId = "winapi 0.3.9";
          features = [ "std" "processthreadsapi" "winbase" ];
        }];

      };
      "tinyvec" = rec {
        crateName = "tinyvec";
        version = "1.5.0";
        edition = "2018";
        sha256 = "1xwiycwfl80737i952adpn1qawdi20kxr97bsymx14ch9lyjlfzq";
        authors = [ "Lokathor <zefria@gmail.com>" ];
        dependencies = [{
          name = "tinyvec_macros";
          packageId = "tinyvec_macros";
          optional = true;
        }];
        features = {
          "alloc" = [ "tinyvec_macros" ];
          "rustc_1_55" = [ "rustc_1_40" ];
        };
        resolvedDefaultFeatures = [ "alloc" "default" "tinyvec_macros" ];
      };
      "tinyvec_macros" = rec {
        crateName = "tinyvec_macros";
        version = "0.1.0";
        edition = "2018";
        sha256 = "0p5zvgbas5nh403fbxica819mf3g83n8g2hzpfazfr56w6klv9yd";
        authors = [ "Soveu <marx.tomasz@gmail.com>" ];

      };
      "tokio 0.1.22" = rec {
        crateName = "tokio";
        version = "0.1.22";
        edition = "2015";
        sha256 = "1xhaadfmm6m37f79xv5020gc3np9wqza3bq95ymp522qpfsw02as";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.4.12";
            optional = true;
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "mio";
            packageId = "mio 0.6.23";
            optional = true;
          }
          {
            name = "num_cpus";
            packageId = "num_cpus";
            optional = true;
          }
          {
            name = "tokio-codec";
            packageId = "tokio-codec";
            optional = true;
          }
          {
            name = "tokio-current-thread";
            packageId = "tokio-current-thread";
            optional = true;
          }
          {
            name = "tokio-executor";
            packageId = "tokio-executor";
            optional = true;
          }
          {
            name = "tokio-fs";
            packageId = "tokio-fs";
            optional = true;
          }
          {
            name = "tokio-io";
            packageId = "tokio-io";
            optional = true;
          }
          {
            name = "tokio-reactor";
            packageId = "tokio-reactor";
            optional = true;
          }
          {
            name = "tokio-sync";
            packageId = "tokio-sync";
            optional = true;
          }
          {
            name = "tokio-tcp";
            packageId = "tokio-tcp";
            optional = true;
          }
          {
            name = "tokio-threadpool";
            packageId = "tokio-threadpool";
            optional = true;
          }
          {
            name = "tokio-timer";
            packageId = "tokio-timer";
            optional = true;
          }
          {
            name = "tokio-udp";
            packageId = "tokio-udp";
            optional = true;
          }
          {
            name = "tokio-uds";
            packageId = "tokio-uds";
            optional = true;
            target = { target, features }: (target."unix" or false);
          }
        ];
        devDependencies = [{
          name = "num_cpus";
          packageId = "num_cpus";
        }];
        features = {
          "codec" = [ "io" "tokio-codec" ];
          "default" = [
            "codec"
            "fs"
            "io"
            "reactor"
            "rt-full"
            "sync"
            "tcp"
            "timer"
            "udp"
            "uds"
          ];
          "experimental-tracing" = [ "tracing-core" ];
          "fs" = [ "tokio-fs" ];
          "io" = [ "bytes" "tokio-io" ];
          "reactor" = [ "io" "mio" "tokio-reactor" ];
          "rt-full" = [
            "num_cpus"
            "reactor"
            "timer"
            "tokio-current-thread"
            "tokio-executor"
            "tokio-threadpool"
          ];
          "sync" = [ "tokio-sync" ];
          "tcp" = [ "tokio-tcp" ];
          "timer" = [ "tokio-timer" ];
          "udp" = [ "tokio-udp" ];
          "uds" = [ "tokio-uds" ];
        };
        resolvedDefaultFeatures = [
          "bytes"
          "codec"
          "default"
          "fs"
          "io"
          "mio"
          "num_cpus"
          "reactor"
          "rt-full"
          "sync"
          "tcp"
          "timer"
          "tokio-codec"
          "tokio-current-thread"
          "tokio-executor"
          "tokio-fs"
          "tokio-io"
          "tokio-reactor"
          "tokio-sync"
          "tokio-tcp"
          "tokio-threadpool"
          "tokio-timer"
          "tokio-udp"
          "tokio-uds"
          "udp"
          "uds"
        ];
      };
      "tokio 1.12.0" = rec {
        crateName = "tokio";
        version = "1.12.0";
        edition = "2018";
        sha256 = "1k7g4hyvbibjdvx9y5ppv1hsycx63vg2fiabwhx49a6wvrpl3hn2";
        authors = [ "Tokio Contributors <team@tokio.rs>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 1.1.0";
            optional = true;
          }
          {
            name = "libc";
            packageId = "libc";
            optional = true;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "memchr";
            packageId = "memchr";
            optional = true;
          }
          {
            name = "mio";
            packageId = "mio 0.7.13";
            optional = true;
          }
          {
            name = "num_cpus";
            packageId = "num_cpus";
            optional = true;
          }
          {
            name = "once_cell";
            packageId = "once_cell";
            optional = true;
          }
          {
            name = "parking_lot";
            packageId = "parking_lot 0.11.2";
            optional = true;
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "signal-hook-registry";
            packageId = "signal-hook-registry";
            optional = true;
            target = { target, features }: (target."unix" or false);
          }
          {
            name = "tokio-macros";
            packageId = "tokio-macros";
            optional = true;
          }
          {
            name = "winapi";
            packageId = "winapi 0.3.9";
            optional = true;
            usesDefaultFeatures = false;
            target = { target, features }: (target."windows" or false);
          }
        ];
        buildDependencies = [{
          name = "autocfg";
          packageId = "autocfg";
        }];
        devDependencies = [{
          name = "libc";
          packageId = "libc";
          target = { target, features }: (target."unix" or false);
        }];
        features = {
          "full" = [
            "fs"
            "io-util"
            "io-std"
            "macros"
            "net"
            "parking_lot"
            "process"
            "rt"
            "rt-multi-thread"
            "signal"
            "sync"
            "time"
          ];
          "io-util" = [ "memchr" "bytes" ];
          "macros" = [ "tokio-macros" ];
          "net" = [
            "libc"
            "mio/os-poll"
            "mio/os-util"
            "mio/tcp"
            "mio/udp"
            "mio/uds"
            "winapi/namedpipeapi"
          ];
          "process" = [
            "bytes"
            "once_cell"
            "libc"
            "mio/os-poll"
            "mio/os-util"
            "mio/uds"
            "signal-hook-registry"
            "winapi/threadpoollegacyapiset"
          ];
          "rt-multi-thread" = [ "num_cpus" "rt" ];
          "signal" = [
            "once_cell"
            "libc"
            "mio/os-poll"
            "mio/uds"
            "mio/os-util"
            "signal-hook-registry"
            "winapi/consoleapi"
          ];
          "test-util" = [ "rt" "sync" "time" ];
        };
        resolvedDefaultFeatures = [
          "bytes"
          "default"
          "fs"
          "full"
          "io-std"
          "io-util"
          "libc"
          "macros"
          "memchr"
          "mio"
          "net"
          "num_cpus"
          "once_cell"
          "parking_lot"
          "process"
          "rt"
          "rt-multi-thread"
          "signal"
          "signal-hook-registry"
          "sync"
          "time"
          "tokio-macros"
          "winapi"
        ];
      };
      "tokio-codec" = rec {
        crateName = "tokio-codec";
        version = "0.1.2";
        edition = "2015";
        sha256 = "0swpfngcb331lzggk6j68yks6w0bnw35vpl4hv8p03msc239kci5";
        authors = [
          "Carl Lerche <me@carllerche.com>"
          "Bryan Burgers <bryan@burgers.io>"
        ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.4.12";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "tokio-io";
            packageId = "tokio-io";
          }
        ];

      };
      "tokio-current-thread" = rec {
        crateName = "tokio-current-thread";
        version = "0.1.7";
        edition = "2015";
        sha256 = "03p2w316ha0irgzvy37njx9hl71133gcrmrq4801w4rzm0r0xpmi";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "tokio-executor";
            packageId = "tokio-executor";
          }
        ];

      };
      "tokio-executor" = rec {
        crateName = "tokio-executor";
        version = "0.1.10";
        edition = "2015";
        sha256 = "0w8n78d2vixs1vghqc4wy9w0d1h6qkli51c1yzhzbns88n7inbgv";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "crossbeam-utils";
            packageId = "crossbeam-utils 0.7.2";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
        ];

      };
      "tokio-fs" = rec {
        crateName = "tokio-fs";
        version = "0.1.7";
        edition = "2015";
        sha256 = "1x3gkdi5x7bjlzzg7qlnymb549rb546p0nykxsh04qyaw0314yi9";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "tokio-io";
            packageId = "tokio-io";
          }
          {
            name = "tokio-threadpool";
            packageId = "tokio-threadpool";
          }
        ];
        devDependencies = [{
          name = "tokio-io";
          packageId = "tokio-io";
        }];

      };
      "tokio-io" = rec {
        crateName = "tokio-io";
        version = "0.1.13";
        edition = "2015";
        sha256 = "0x06zyzinans1pn90g6i150lgixijdf1cg8y2gipjd09ms58dz2p";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.4.12";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "log";
            packageId = "log";
          }
        ];

      };
      "tokio-macros" = rec {
        crateName = "tokio-macros";
        version = "1.4.1";
        edition = "2018";
        sha256 = "1sz5pq7yzm40x935zvrhfqpf7s838wlkks0rrnd63hlryk498iqm";
        procMacro = true;
        authors = [ "Tokio Contributors <team@tokio.rs>" ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" ];
          }
        ];

      };
      "tokio-native-tls" = rec {
        crateName = "tokio-native-tls";
        version = "0.3.0";
        edition = "2018";
        sha256 = "0yvikgmph2qjq0ni2h2wfaxkzhbnc09c2544av0zidyj1dk9bngp";
        authors = [ "Tokio Contributors <team@tokio.rs>" ];
        dependencies = [
          {
            name = "native-tls";
            packageId = "native-tls";
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
          }
        ];
        devDependencies = [{
          name = "tokio";
          packageId = "tokio 1.12.0";
          features = [ "macros" "rt" "rt-multi-thread" "io-util" "net" ];
        }];

      };
      "tokio-reactor" = rec {
        crateName = "tokio-reactor";
        version = "0.1.12";
        edition = "2015";
        sha256 = "0l8klnd41q55f3ialzz0lb7s5bfwa38nh86sa9vai2xsqh75kg09";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "crossbeam-utils";
            packageId = "crossbeam-utils 0.7.2";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "mio";
            packageId = "mio 0.6.23";
          }
          {
            name = "num_cpus";
            packageId = "num_cpus";
          }
          {
            name = "parking_lot";
            packageId = "parking_lot 0.9.0";
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "tokio-executor";
            packageId = "tokio-executor";
          }
          {
            name = "tokio-io";
            packageId = "tokio-io";
          }
          {
            name = "tokio-sync";
            packageId = "tokio-sync";
          }
        ];
        devDependencies = [{
          name = "num_cpus";
          packageId = "num_cpus";
        }];

      };
      "tokio-stream" = rec {
        crateName = "tokio-stream";
        version = "0.1.7";
        edition = "2018";
        sha256 = "0zvj8d2i1147s4i3ml3lh3h6fypncjmbw0h1mhck3w2kh9lkybvv";
        authors = [ "Tokio Contributors <team@tokio.rs>" ];
        dependencies = [
          {
            name = "futures-core";
            packageId = "futures-core";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            features = [ "sync" ];
          }
        ];
        devDependencies = [{
          name = "tokio";
          packageId = "tokio 1.12.0";
          features = [ "full" "test-util" ];
        }];
        features = {
          "default" = [ "time" ];
          "fs" = [ "tokio/fs" ];
          "io-util" = [ "tokio/io-util" ];
          "net" = [ "tokio/net" ];
          "signal" = [ "tokio/signal" ];
          "sync" = [ "tokio/sync" "tokio-util" ];
          "time" = [ "tokio/time" ];
        };
        resolvedDefaultFeatures = [ "default" "time" ];
      };
      "tokio-sync" = rec {
        crateName = "tokio-sync";
        version = "0.1.8";
        edition = "2015";
        sha256 = "1vkxz0y7qf9sshfpxvn506pvxy4vza8piavd8p64y5n85cam1zpd";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "fnv";
            packageId = "fnv";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
        ];

      };
      "tokio-tcp" = rec {
        crateName = "tokio-tcp";
        version = "0.1.4";
        edition = "2015";
        sha256 = "0whzqnkyfym1ipzznibyjl3j9281walq4n0q5xs2xdz3cvniipwq";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.4.12";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "iovec";
            packageId = "iovec";
          }
          {
            name = "mio";
            packageId = "mio 0.6.23";
          }
          {
            name = "tokio-io";
            packageId = "tokio-io";
          }
          {
            name = "tokio-reactor";
            packageId = "tokio-reactor";
          }
        ];

      };
      "tokio-threadpool" = rec {
        crateName = "tokio-threadpool";
        version = "0.1.18";
        edition = "2015";
        sha256 = "12azq8jm71b7hdm72pxrgqm2879bn6b0fcdl1s7i2k3qh5jhnwnz";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "crossbeam-deque";
            packageId = "crossbeam-deque";
          }
          {
            name = "crossbeam-queue";
            packageId = "crossbeam-queue";
          }
          {
            name = "crossbeam-utils";
            packageId = "crossbeam-utils 0.7.2";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "num_cpus";
            packageId = "num_cpus";
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "tokio-executor";
            packageId = "tokio-executor";
          }
        ];

      };
      "tokio-timer" = rec {
        crateName = "tokio-timer";
        version = "0.2.13";
        edition = "2015";
        sha256 = "15pjjj6daks3sii8p24a509b0dapl2kyk740nwfgz59w64nly14k";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "crossbeam-utils";
            packageId = "crossbeam-utils 0.7.2";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "slab";
            packageId = "slab";
          }
          {
            name = "tokio-executor";
            packageId = "tokio-executor";
          }
        ];

      };
      "tokio-udp" = rec {
        crateName = "tokio-udp";
        version = "0.1.6";
        edition = "2015";
        sha256 = "10hdcnxdp0dxvj44jl1nrrpg30jbisqclbqs0f5w6f8bc47b3872";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.4.12";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "mio";
            packageId = "mio 0.6.23";
          }
          {
            name = "tokio-codec";
            packageId = "tokio-codec";
          }
          {
            name = "tokio-io";
            packageId = "tokio-io";
          }
          {
            name = "tokio-reactor";
            packageId = "tokio-reactor";
          }
        ];

      };
      "tokio-uds" = rec {
        crateName = "tokio-uds";
        version = "0.2.7";
        edition = "2015";
        sha256 = "1q74sydx22l4mkmrz02l4i5swddwr1pryxvhrzdwkj0i86na8mxb";
        authors = [ "Carl Lerche <me@carllerche.com>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 0.4.12";
          }
          {
            name = "futures";
            packageId = "futures 0.1.31";
          }
          {
            name = "iovec";
            packageId = "iovec";
          }
          {
            name = "libc";
            packageId = "libc";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "mio";
            packageId = "mio 0.6.23";
          }
          {
            name = "mio-uds";
            packageId = "mio-uds";
          }
          {
            name = "tokio-codec";
            packageId = "tokio-codec";
          }
          {
            name = "tokio-io";
            packageId = "tokio-io";
          }
          {
            name = "tokio-reactor";
            packageId = "tokio-reactor";
          }
        ];

      };
      "tokio-util" = rec {
        crateName = "tokio-util";
        version = "0.6.8";
        edition = "2018";
        sha256 = "1kajlh6a72iip1bd5m0fn0adwg76kmlmn71ihxg4hags7rfp5lq8";
        authors = [ "Tokio Contributors <team@tokio.rs>" ];
        dependencies = [
          {
            name = "bytes";
            packageId = "bytes 1.1.0";
          }
          {
            name = "futures-core";
            packageId = "futures-core";
          }
          {
            name = "futures-sink";
            packageId = "futures-sink";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "tokio";
            packageId = "tokio 1.12.0";
            features = [ "sync" ];
          }
        ];
        devDependencies = [{
          name = "tokio";
          packageId = "tokio 1.12.0";
          features = [ "full" ];
        }];
        features = {
          "__docs_rs" = [ "futures-util" ];
          "compat" = [ "futures-io" ];
          "full" = [ "codec" "compat" "io" "time" "net" "rt" ];
          "net" = [ "tokio/net" ];
          "rt" = [ "tokio/rt" ];
          "time" = [ "tokio/time" "slab" ];
        };
        resolvedDefaultFeatures = [ "codec" "default" ];
      };
      "tower-service" = rec {
        crateName = "tower-service";
        version = "0.3.1";
        edition = "2018";
        sha256 = "1iih764s3f6vlkspfmr72fkrs2lw1v3wiqmc6bd5zq1hdlfzs39n";
        authors = [ "Tower Maintainers <team@tower-rs.com>" ];

      };
      "tracing" = rec {
        crateName = "tracing";
        version = "0.1.29";
        edition = "2018";
        sha256 = "0191zcbnkn8wy0b7xbz7jd9m2xf3sjr8k3cfqzghxwya6a966nip";
        authors = [
          "Eliza Weisman <eliza@buoyant.io>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "pin-project-lite";
            packageId = "pin-project-lite";
          }
          {
            name = "tracing-attributes";
            packageId = "tracing-attributes";
            optional = true;
          }
          {
            name = "tracing-core";
            packageId = "tracing-core";
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "attributes" = [ "tracing-attributes" ];
          "default" = [ "std" "attributes" ];
          "log-always" = [ "log" ];
          "std" = [ "tracing-core/std" ];
        };
        resolvedDefaultFeatures =
          [ "attributes" "default" "std" "tracing-attributes" ];
      };
      "tracing-appender" = rec {
        crateName = "tracing-appender";
        version = "0.1.2";
        edition = "2018";
        sha256 = "0yhjnx2gap7qpjmhrngd66nan8hj2cqkx8rj2j8ch4kza1z50rcr";
        authors = [
          "Zeki Sherif <zekshi@amazon.com>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "chrono";
            packageId = "chrono";
          }
          {
            name = "crossbeam-channel";
            packageId = "crossbeam-channel";
          }
          {
            name = "tracing-subscriber";
            packageId = "tracing-subscriber";
            usesDefaultFeatures = false;
            features = [ "fmt" ];
          }
        ];

      };
      "tracing-attributes" = rec {
        crateName = "tracing-attributes";
        version = "0.1.18";
        edition = "2018";
        sha256 = "13izzsgrmcg2076ksdibvyxx7d8y9klm3b9pycjyh4hmz2w81x7l";
        procMacro = true;
        authors = [
          "Tokio Contributors <team@tokio.rs>"
          "Eliza Weisman <eliza@buoyant.io>"
          "David Barsky <dbarsky@amazon.com>"
        ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            usesDefaultFeatures = false;
            features = [
              "full"
              "parsing"
              "printing"
              "visit"
              "visit-mut"
              "clone-impls"
              "extra-traits"
              "proc-macro"
            ];
          }
        ];
        features = { };
      };
      "tracing-core" = rec {
        crateName = "tracing-core";
        version = "0.1.21";
        edition = "2018";
        sha256 = "1r262wskhm6wmc5i2bxz44nglyzqaq3x50s0h5q0ffdq6xbdckhz";
        authors = [ "Tokio Contributors <team@tokio.rs>" ];
        dependencies = [{
          name = "lazy_static";
          packageId = "lazy_static";
          optional = true;
        }];
        features = {
          "default" = [ "std" ];
          "std" = [ "lazy_static" ];
        };
        resolvedDefaultFeatures = [ "default" "lazy_static" "std" ];
      };
      "tracing-futures" = rec {
        crateName = "tracing-futures";
        version = "0.2.5";
        edition = "2018";
        sha256 = "1wimg0iwa2ldq7xv98lvivvf3q9ykfminig8r1bs0ig22np9bl4p";
        authors = [
          "Eliza Weisman <eliza@buoyant.io>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "pin-project";
            packageId = "pin-project";
            optional = true;
          }
          {
            name = "tokio";
            packageId = "tokio 0.1.22";
            optional = true;
          }
          {
            name = "tracing";
            packageId = "tracing";
            usesDefaultFeatures = false;
          }
        ];
        devDependencies = [{
          name = "tokio";
          packageId = "tokio 0.1.22";
        }];
        features = {
          "default" = [ "std-future" "std" ];
          "futures-01" = [ "futures_01" "std" ];
          "futures-03" = [ "std-future" "futures" "futures-task" "std" ];
          "std" = [ "tracing/std" ];
          "std-future" = [ "pin-project" ];
        };
        resolvedDefaultFeatures =
          [ "default" "pin-project" "std" "std-future" "tokio" ];
      };
      "tracing-log" = rec {
        crateName = "tracing-log";
        version = "0.1.2";
        edition = "2018";
        sha256 = "1qv1cwvdqrgvizkszbff4fvkw0m3nn5yz68r3yaw2hcflivk94m6";
        authors = [ "Tokio Contributors <team@tokio.rs>" ];
        dependencies = [
          {
            name = "lazy_static";
            packageId = "lazy_static";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "tracing-core";
            packageId = "tracing-core";
          }
        ];
        features = {
          "default" = [ "log-tracer" "trace-logger" "std" ];
          "std" = [ "log/std" ];
        };
        resolvedDefaultFeatures = [ "log-tracer" "std" ];
      };
      "tracing-serde" = rec {
        crateName = "tracing-serde";
        version = "0.1.2";
        edition = "2018";
        sha256 = "12xjirg0b3cparjdhkd9pksrmv33gz7rdm4gfkvgk15v3x2flrgv";
        authors = [ "Tokio Contributors <team@tokio.rs>" ];
        dependencies = [
          {
            name = "serde";
            packageId = "serde";
          }
          {
            name = "tracing-core";
            packageId = "tracing-core";
          }
        ];

      };
      "tracing-subscriber" = rec {
        crateName = "tracing-subscriber";
        version = "0.2.25";
        edition = "2018";
        sha256 = "0wcc3sqckjsxaahd9jnc4cwa13m623lhk8fg8way9hn3k6m2w38f";
        authors = [
          "Eliza Weisman <eliza@buoyant.io>"
          "David Barsky <me@davidbarsky.com>"
          "Tokio Contributors <team@tokio.rs>"
        ];
        dependencies = [
          {
            name = "ansi_term";
            packageId = "ansi_term 0.12.1";
            optional = true;
          }
          {
            name = "chrono";
            packageId = "chrono";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "clock" "std" ];
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
            optional = true;
          }
          {
            name = "matchers";
            packageId = "matchers";
            optional = true;
          }
          {
            name = "regex";
            packageId = "regex";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
          }
          {
            name = "serde_json";
            packageId = "serde_json";
            optional = true;
          }
          {
            name = "sharded-slab";
            packageId = "sharded-slab";
            optional = true;
          }
          {
            name = "smallvec";
            packageId = "smallvec 1.7.0";
            optional = true;
          }
          {
            name = "thread_local";
            packageId = "thread_local";
            optional = true;
          }
          {
            name = "tracing";
            packageId = "tracing";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "tracing-core";
            packageId = "tracing-core";
          }
          {
            name = "tracing-log";
            packageId = "tracing-log";
            optional = true;
            usesDefaultFeatures = false;
            features = [ "log-tracer" "std" ];
          }
          {
            name = "tracing-serde";
            packageId = "tracing-serde";
            optional = true;
          }
        ];
        devDependencies = [
          {
            name = "regex";
            packageId = "regex";
            usesDefaultFeatures = false;
            features = [ "std" ];
          }
          {
            name = "tracing";
            packageId = "tracing";
          }
          {
            name = "tracing-log";
            packageId = "tracing-log";
          }
        ];
        features = {
          "ansi" = [ "fmt" "ansi_term" ];
          "default" = [
            "env-filter"
            "smallvec"
            "fmt"
            "ansi"
            "chrono"
            "tracing-log"
            "json"
          ];
          "env-filter" = [ "matchers" "regex" "lazy_static" "tracing" ];
          "fmt" = [ "registry" ];
          "json" = [ "tracing-serde" "serde" "serde_json" ];
          "registry" = [ "sharded-slab" "thread_local" ];
        };
        resolvedDefaultFeatures = [
          "ansi"
          "ansi_term"
          "chrono"
          "default"
          "env-filter"
          "fmt"
          "json"
          "lazy_static"
          "matchers"
          "regex"
          "registry"
          "serde"
          "serde_json"
          "sharded-slab"
          "smallvec"
          "thread_local"
          "tracing"
          "tracing-log"
          "tracing-serde"
        ];
      };
      "try-lock" = rec {
        crateName = "try-lock";
        version = "0.2.3";
        edition = "2015";
        sha256 = "0hkn1ksmg5hdqgqdw1ahy5qk69f4crh2psf0v61qphyrf777nm2r";
        authors = [ "Sean McArthur <sean@seanmonstar.com>" ];

      };
      "typenum" = rec {
        crateName = "typenum";
        version = "1.14.0";
        edition = "2018";
        sha256 = "1v2r349b2dr0pknpjk3nkrbi3mhaa3wl7zi7bdbla4zmcni0hdxn";
        build = "build/main.rs";
        authors = [
          "Paho Lurie-Gregg <paho@paholg.com>"
          "Andre Bogus <bogusandre@gmail.com>"
        ];
        features = { };
      };
      "ucd-trie" = rec {
        crateName = "ucd-trie";
        version = "0.1.3";
        edition = "2018";
        sha256 = "072cblf8v3wzyaz3lhbpzgil4s03dpzg1ppy3gqx2l4v622y3pjn";
        authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "unicode-bidi" = rec {
        crateName = "unicode-bidi";
        version = "0.3.7";
        edition = "2018";
        sha256 = "13v7v8pp7mdqqf0ypk73va78c3b4xzpryvbls9p47nz3cd34008s";
        libName = "unicode_bidi";
        authors = [ "The Servo Project Developers" ];
        features = {
          "default" = [ "std" ];
          "flame_it" = [ "flame" "flamer" ];
          "with_serde" = [ "serde" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "unicode-normalization" = rec {
        crateName = "unicode-normalization";
        version = "0.1.19";
        edition = "2018";
        sha256 = "1yabhmg8zlcksda3ajly9hpbzqgbhknxwch8dwkfkaa1569r0ifm";
        authors = [
          "kwantam <kwantam@gmail.com>"
          "Manish Goregaokar <manishsmail@gmail.com>"
        ];
        dependencies = [{
          name = "tinyvec";
          packageId = "tinyvec";
          features = [ "alloc" ];
        }];
        features = { "default" = [ "std" ]; };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "unicode-segmentation" = rec {
        crateName = "unicode-segmentation";
        version = "1.8.0";
        edition = "2018";
        sha256 = "0nrqfgxkh00wb5dhl0874z20789i2yjimp6ndgh4ay4yjjd895c8";
        authors = [
          "kwantam <kwantam@gmail.com>"
          "Manish Goregaokar <manishsmail@gmail.com>"
        ];
        features = { };
      };
      "unicode-width" = rec {
        crateName = "unicode-width";
        version = "0.1.9";
        edition = "2015";
        sha256 = "0wq9wl69wlp6zwlxp660g9p4hm5gk91chwk14dp1gl9bxba45mry";
        authors = [
          "kwantam <kwantam@gmail.com>"
          "Manish Goregaokar <manishsmail@gmail.com>"
        ];
        features = {
          "rustc-dep-of-std" = [ "std" "core" "compiler_builtins" ];
        };
        resolvedDefaultFeatures = [ "default" ];
      };
      "unicode-xid" = rec {
        crateName = "unicode-xid";
        version = "0.2.2";
        edition = "2015";
        sha256 = "1wrkgcw557v311dkdb6n2hrix9dm2qdsb1zpw7pn79l03zb85jwc";
        authors = [
          "erick.tryzelaar <erick.tryzelaar@gmail.com>"
          "kwantam <kwantam@gmail.com>"
          "Manish Goregaokar <manishsmail@gmail.com>"
        ];
        features = { };
        resolvedDefaultFeatures = [ "default" ];
      };
      "uom" = rec {
        crateName = "uom";
        version = "0.31.1";
        edition = "2018";
        sha256 = "0dwih0bclq18gfdf7if6kqip82w8yrf076l0ad1n3gr71bynpvmi";
        authors = [ "Mike Boutin <mike.boutin@gmail.com>" ];
        dependencies = [
          {
            name = "num-traits";
            packageId = "num-traits";
            usesDefaultFeatures = false;
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
            usesDefaultFeatures = false;
          }
          {
            name = "typenum";
            packageId = "typenum";
          }
        ];
        features = {
          "bigint" = [ "bigint-support" ];
          "bigint-support" = [ "num-bigint" "num-rational/num-bigint-std" ];
          "bigrational" = [ "bigint-support" ];
          "biguint" = [ "bigint-support" ];
          "default" = [ "autoconvert" "f32" "f64" "si" "std" ];
          "i128" = [ "rational-support" ];
          "i16" = [ "rational-support" ];
          "i32" = [ "rational-support" ];
          "i64" = [ "rational-support" ];
          "i8" = [ "rational-support" ];
          "isize" = [ "rational-support" ];
          "rational" = [ "rational-support" ];
          "rational-support" = [ "num-rational" ];
          "rational32" = [ "rational-support" ];
          "rational64" = [ "rational-support" ];
          "std" = [ "num-traits/std" ];
          "u128" = [ "rational-support" ];
          "u16" = [ "rational-support" ];
          "u32" = [ "rational-support" ];
          "u64" = [ "rational-support" ];
          "u8" = [ "rational-support" ];
          "use_serde" = [ "serde" ];
          "usize" = [ "rational-support" ];
        };
        resolvedDefaultFeatures = [
          "autoconvert"
          "default"
          "f32"
          "f64"
          "serde"
          "si"
          "std"
          "use_serde"
        ];
      };
      "url" = rec {
        crateName = "url";
        version = "2.2.2";
        edition = "2018";
        sha256 = "132pzpvfvpw33gjlzqd55n5iag9qddzffq8qbp1myfykna1w61x5";
        authors = [ "The rust-url developers" ];
        dependencies = [
          {
            name = "form_urlencoded";
            packageId = "form_urlencoded";
          }
          {
            name = "idna";
            packageId = "idna";
          }
          {
            name = "matches";
            packageId = "matches";
          }
          {
            name = "percent-encoding";
            packageId = "percent-encoding";
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
            features = [ "derive" ];
          }
        ];

        resolvedDefaultFeatures = [ "serde" ];
      };
      "uuid" = rec {
        crateName = "uuid";
        version = "0.8.2";
        edition = "2018";
        sha256 = "1dy4ldcp7rnzjy56dxh7d2sgrcvn4q77y0a8r0a48946h66zjp5w";
        authors = [
          "Ashley Mannix<ashleymannix@live.com.au>"
          "Christopher Armstrong"
          "Dylan DPC<dylan.dpc@gmail.com>"
          "Hunar Roop Kahlon<hunar.roop@gmail.com>"
        ];
        dependencies = [
          {
            name = "getrandom";
            packageId = "getrandom";
            optional = true;
          }
          {
            name = "serde";
            packageId = "serde";
            optional = true;
            usesDefaultFeatures = false;
          }
        ];
        features = {
          "default" = [ "std" ];
          "guid" = [ "winapi" ];
          "stdweb" = [ "getrandom" "getrandom/js" ];
          "v3" = [ "md5" ];
          "v4" = [ "getrandom" ];
          "v5" = [ "sha1" ];
          "wasm-bindgen" = [ "getrandom" "getrandom/js" ];
        };
        resolvedDefaultFeatures = [ "default" "getrandom" "serde" "std" "v4" ];
      };
      "vcpkg" = rec {
        crateName = "vcpkg";
        version = "0.2.15";
        edition = "2015";
        sha256 = "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc";
        authors = [ "Jim McGrath <jimmc2@gmail.com>" ];

      };
      "vec_map" = rec {
        crateName = "vec_map";
        version = "0.8.2";
        edition = "2015";
        sha256 = "1481w9g1dw9rxp3l6snkdqihzyrd2f8vispzqmwjwsdyhw8xzggi";
        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 <>"
        ];
        features = { "eders" = [ "serde" ]; };
      };
      "version_check" = rec {
        crateName = "version_check";
        version = "0.9.3";
        edition = "2015";
        sha256 = "1zmkcgj2m0pq0l4wnhrp1wl1lygf7x2h5p7pvjwc4719lnlxrv2z";
        authors = [ "Sergio Benitez <sb@sergio.bz>" ];

      };
      "want" = rec {
        crateName = "want";
        version = "0.3.0";
        edition = "2018";
        sha256 = "181b2zmwfq389x9n2g1n37cvcvvdand832zz6v8i1l8wrdlaks0w";
        authors = [ "Sean McArthur <sean@seanmonstar.com>" ];
        dependencies = [
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "try-lock";
            packageId = "try-lock";
          }
        ];

      };
      "wasi" = rec {
        crateName = "wasi";
        version = "0.10.2+wasi-snapshot-preview1";
        edition = "2018";
        sha256 = "1ii7nff4y1mpcrxzzvbpgxm7a1nn3szjf1n21jnx37c2g6dbsvzx";
        authors = [ "The Cranelift Project Developers" ];
        features = {
          "default" = [ "std" ];
          "rustc-dep-of-std" =
            [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ];
        };
        resolvedDefaultFeatures = [ "default" "std" ];
      };
      "wasm-bindgen" = rec {
        crateName = "wasm-bindgen";
        version = "0.2.78";
        edition = "2018";
        sha256 = "1kkzwj24z9ad7lq8c5ynlnpxpx8hwra6w6brl871a6dj6vi76bv3";
        authors = [ "The wasm-bindgen Developers" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "wasm-bindgen-macro";
            packageId = "wasm-bindgen-macro";
          }
        ];
        features = {
          "default" = [ "spans" "std" ];
          "enable-interning" = [ "std" ];
          "serde-serialize" = [ "serde" "serde_json" "std" ];
          "spans" = [ "wasm-bindgen-macro/spans" ];
          "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ];
          "xxx_debug_only_print_generated_code" =
            [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ];
        };
        resolvedDefaultFeatures = [ "default" "spans" "std" ];
      };
      "wasm-bindgen-backend" = rec {
        crateName = "wasm-bindgen-backend";
        version = "0.2.78";
        edition = "2018";
        sha256 = "0yw3ma0ahd1cz3afxpqcgwy9rwwgmz2g8pn8nas7c95sky7vy5x3";
        authors = [ "The wasm-bindgen Developers" ];
        dependencies = [
          {
            name = "bumpalo";
            packageId = "bumpalo";
          }
          {
            name = "lazy_static";
            packageId = "lazy_static";
          }
          {
            name = "log";
            packageId = "log";
          }
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "full" ];
          }
          {
            name = "wasm-bindgen-shared";
            packageId = "wasm-bindgen-shared";
          }
        ];
        features = { "extra-traits" = [ "syn/extra-traits" ]; };
        resolvedDefaultFeatures = [ "spans" ];
      };
      "wasm-bindgen-futures" = rec {
        crateName = "wasm-bindgen-futures";
        version = "0.4.28";
        edition = "2018";
        sha256 = "0fax7x0iysa64iqmzq0lri8llw8v0f8acz1iq6b4qahzrcipb3cf";
        authors = [ "The wasm-bindgen Developers" ];
        dependencies = [
          {
            name = "cfg-if";
            packageId = "cfg-if 1.0.0";
          }
          {
            name = "js-sys";
            packageId = "js-sys";
          }
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
          }
          {
            name = "web-sys";
            packageId = "web-sys";
            target = { target, features }:
              (builtins.elem "atomics" targetFeatures);
            features = [ "MessageEvent" "Worker" ];
          }
        ];
        features = { "futures-core-03-stream" = [ "futures-core" ]; };
      };
      "wasm-bindgen-macro" = rec {
        crateName = "wasm-bindgen-macro";
        version = "0.2.78";
        edition = "2018";
        sha256 = "1ydcppds5qbj77c7kdinkg9qidcf7ahvwqvnb3v8nllmqkklcqfm";
        procMacro = true;
        authors = [ "The wasm-bindgen Developers" ];
        dependencies = [
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "wasm-bindgen-macro-support";
            packageId = "wasm-bindgen-macro-support";
          }
        ];
        features = {
          "spans" = [ "wasm-bindgen-macro-support/spans" ];
          "strict-macro" = [ "wasm-bindgen-macro-support/strict-macro" ];
        };
        resolvedDefaultFeatures = [ "spans" ];
      };
      "wasm-bindgen-macro-support" = rec {
        crateName = "wasm-bindgen-macro-support";
        version = "0.2.78";
        edition = "2018";
        sha256 = "1ay5qmbqh8hbsgf2dqkg7ia13srx3c1d6p2qvjmzhdaqlbpf00vq";
        authors = [ "The wasm-bindgen Developers" ];
        dependencies = [
          {
            name = "proc-macro2";
            packageId = "proc-macro2";
          }
          {
            name = "quote";
            packageId = "quote";
          }
          {
            name = "syn";
            packageId = "syn";
            features = [ "visit" "full" ];
          }
          {
            name = "wasm-bindgen-backend";
            packageId = "wasm-bindgen-backend";
          }
          {
            name = "wasm-bindgen-shared";
            packageId = "wasm-bindgen-shared";
          }
        ];
        features = {
          "extra-traits" = [ "syn/extra-traits" ];
          "spans" = [ "wasm-bindgen-backend/spans" ];
        };
        resolvedDefaultFeatures = [ "spans" ];
      };
      "wasm-bindgen-shared" = rec {
        crateName = "wasm-bindgen-shared";
        version = "0.2.78";
        edition = "2018";
        sha256 = "1k27dc57h0brx5ish4dwmzibyif7m9lfagvph1a7s0ygi4kj6dq2";
        authors = [ "The wasm-bindgen Developers" ];

      };
      "web-sys" = rec {
        crateName = "web-sys";
        version = "0.3.55";
        edition = "2018";
        sha256 = "1yz9dym9y9f9s1f99q5j5kl2dfc5kn2jpjfdnnkfmnar3igi1srq";
        authors = [ "The wasm-bindgen Developers" ];
        dependencies = [
          {
            name = "js-sys";
            packageId = "js-sys";
          }
          {
            name = "wasm-bindgen";
            packageId = "wasm-bindgen";
          }
        ];
        features = {
          "AbortSignal" = [ "EventTarget" ];
          "AnalyserNode" = [ "AudioNode" "EventTarget" ];
          "Animation" = [ "EventTarget" ];
          "AnimationEvent" = [ "Event" ];
          "AnimationPlaybackEvent" = [ "Event" ];
          "Attr" = [ "EventTarget" "Node" ];
          "AudioBufferSourceNode" =
            [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
          "AudioContext" = [ "BaseAudioContext" "EventTarget" ];
          "AudioDestinationNode" = [ "AudioNode" "EventTarget" ];
          "AudioNode" = [ "EventTarget" ];
          "AudioProcessingEvent" = [ "Event" ];
          "AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ];
          "AudioStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
          "AudioTrackList" = [ "EventTarget" ];
          "AudioWorklet" = [ "Worklet" ];
          "AudioWorkletGlobalScope" = [ "WorkletGlobalScope" ];
          "AudioWorkletNode" = [ "AudioNode" "EventTarget" ];
          "AuthenticatorAssertionResponse" = [ "AuthenticatorResponse" ];
          "AuthenticatorAttestationResponse" = [ "AuthenticatorResponse" ];
          "BaseAudioContext" = [ "EventTarget" ];
          "BatteryManager" = [ "EventTarget" ];
          "BeforeUnloadEvent" = [ "Event" ];
          "BiquadFilterNode" = [ "AudioNode" "EventTarget" ];
          "BlobEvent" = [ "Event" ];
          "Bluetooth" = [ "EventTarget" ];
          "BluetoothAdvertisingEvent" = [ "Event" ];
          "BluetoothDevice" = [ "EventTarget" ];
          "BluetoothPermissionResult" = [ "EventTarget" "PermissionStatus" ];
          "BluetoothRemoteGattCharacteristic" = [ "EventTarget" ];
          "BluetoothRemoteGattService" = [ "EventTarget" ];
          "BroadcastChannel" = [ "EventTarget" ];
          "CanvasCaptureMediaStream" = [ "EventTarget" "MediaStream" ];
          "CdataSection" = [ "CharacterData" "EventTarget" "Node" "Text" ];
          "ChannelMergerNode" = [ "AudioNode" "EventTarget" ];
          "ChannelSplitterNode" = [ "AudioNode" "EventTarget" ];
          "CharacterData" = [ "EventTarget" "Node" ];
          "ChromeWorker" = [ "EventTarget" "Worker" ];
          "Clipboard" = [ "EventTarget" ];
          "ClipboardEvent" = [ "Event" ];
          "CloseEvent" = [ "Event" ];
          "Comment" = [ "CharacterData" "EventTarget" "Node" ];
          "CompositionEvent" = [ "Event" "UiEvent" ];
          "ConstantSourceNode" =
            [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
          "ConvolverNode" = [ "AudioNode" "EventTarget" ];
          "CssAnimation" = [ "Animation" "EventTarget" ];
          "CssConditionRule" = [ "CssGroupingRule" "CssRule" ];
          "CssCounterStyleRule" = [ "CssRule" ];
          "CssFontFaceRule" = [ "CssRule" ];
          "CssFontFeatureValuesRule" = [ "CssRule" ];
          "CssGroupingRule" = [ "CssRule" ];
          "CssImportRule" = [ "CssRule" ];
          "CssKeyframeRule" = [ "CssRule" ];
          "CssKeyframesRule" = [ "CssRule" ];
          "CssMediaRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
          "CssNamespaceRule" = [ "CssRule" ];
          "CssPageRule" = [ "CssRule" ];
          "CssStyleRule" = [ "CssRule" ];
          "CssStyleSheet" = [ "StyleSheet" ];
          "CssSupportsRule" =
            [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
          "CssTransition" = [ "Animation" "EventTarget" ];
          "CustomEvent" = [ "Event" ];
          "DedicatedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
          "DelayNode" = [ "AudioNode" "EventTarget" ];
          "DeviceLightEvent" = [ "Event" ];
          "DeviceMotionEvent" = [ "Event" ];
          "DeviceOrientationEvent" = [ "Event" ];
          "DeviceProximityEvent" = [ "Event" ];
          "Document" = [ "EventTarget" "Node" ];
          "DocumentFragment" = [ "EventTarget" "Node" ];
          "DocumentTimeline" = [ "AnimationTimeline" ];
          "DocumentType" = [ "EventTarget" "Node" ];
          "DomMatrix" = [ "DomMatrixReadOnly" ];
          "DomPoint" = [ "DomPointReadOnly" ];
          "DomRect" = [ "DomRectReadOnly" ];
          "DomRequest" = [ "EventTarget" ];
          "DragEvent" = [ "Event" "MouseEvent" "UiEvent" ];
          "DynamicsCompressorNode" = [ "AudioNode" "EventTarget" ];
          "Element" = [ "EventTarget" "Node" ];
          "ErrorEvent" = [ "Event" ];
          "EventSource" = [ "EventTarget" ];
          "ExtendableEvent" = [ "Event" ];
          "ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ];
          "FetchEvent" = [ "Event" "ExtendableEvent" ];
          "FetchObserver" = [ "EventTarget" ];
          "File" = [ "Blob" ];
          "FileReader" = [ "EventTarget" ];
          "FileSystemDirectoryEntry" = [ "FileSystemEntry" ];
          "FileSystemFileEntry" = [ "FileSystemEntry" ];
          "FocusEvent" = [ "Event" "UiEvent" ];
          "FontFaceSet" = [ "EventTarget" ];
          "FontFaceSetLoadEvent" = [ "Event" ];
          "GainNode" = [ "AudioNode" "EventTarget" ];
          "GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ];
          "GamepadButtonEvent" = [ "Event" "GamepadEvent" ];
          "GamepadEvent" = [ "Event" ];
          "GpuDevice" = [ "EventTarget" ];
          "GpuUncapturedErrorEvent" = [ "Event" ];
          "HashChangeEvent" = [ "Event" ];
          "Hid" = [ "EventTarget" ];
          "HidConnectionEvent" = [ "Event" ];
          "HidDevice" = [ "EventTarget" ];
          "HidInputReportEvent" = [ "Event" ];
          "HtmlAnchorElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlAudioElement" =
            [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
          "HtmlBaseElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlBodyElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlBrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlButtonElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlCanvasElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDataElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDataListElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDetailsElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDialogElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDirectoryElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDivElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlDocument" = [ "Document" "EventTarget" "Node" ];
          "HtmlElement" = [ "Element" "EventTarget" "Node" ];
          "HtmlEmbedElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFieldSetElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFontElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFormControlsCollection" = [ "HtmlCollection" ];
          "HtmlFormElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlFrameSetElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlHeadElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlHeadingElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlHrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlHtmlElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlIFrameElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlImageElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlInputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlLabelElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlLegendElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlLiElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlLinkElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMapElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMediaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMenuElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMenuItemElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMetaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlMeterElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlModElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlOListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlObjectElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlOptGroupElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlOptionElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlOptionsCollection" = [ "HtmlCollection" ];
          "HtmlOutputElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlParagraphElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlParamElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlPictureElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlPreElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlProgressElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlQuoteElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlScriptElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlSelectElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlSlotElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlSourceElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlSpanElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlStyleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableCaptionElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableCellElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableColElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableRowElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTableSectionElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTemplateElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTextAreaElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTimeElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTitleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlTrackElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlUListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlUnknownElement" =
            [ "Element" "EventTarget" "HtmlElement" "Node" ];
          "HtmlVideoElement" =
            [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
          "IdbCursorWithValue" = [ "IdbCursor" ];
          "IdbDatabase" = [ "EventTarget" ];
          "IdbFileHandle" = [ "EventTarget" ];
          "IdbFileRequest" = [ "DomRequest" "EventTarget" ];
          "IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ];
          "IdbMutableFile" = [ "EventTarget" ];
          "IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ];
          "IdbRequest" = [ "EventTarget" ];
          "IdbTransaction" = [ "EventTarget" ];
          "IdbVersionChangeEvent" = [ "Event" ];
          "IirFilterNode" = [ "AudioNode" "EventTarget" ];
          "ImageCaptureErrorEvent" = [ "Event" ];
          "InputEvent" = [ "Event" "UiEvent" ];
          "KeyboardEvent" = [ "Event" "UiEvent" ];
          "KeyframeEffect" = [ "AnimationEffect" ];
          "LocalMediaStream" = [ "EventTarget" "MediaStream" ];
          "MediaDevices" = [ "EventTarget" ];
          "MediaElementAudioSourceNode" = [ "AudioNode" "EventTarget" ];
          "MediaEncryptedEvent" = [ "Event" ];
          "MediaKeyError" = [ "Event" ];
          "MediaKeyMessageEvent" = [ "Event" ];
          "MediaKeySession" = [ "EventTarget" ];
          "MediaQueryList" = [ "EventTarget" ];
          "MediaQueryListEvent" = [ "Event" ];
          "MediaRecorder" = [ "EventTarget" ];
          "MediaRecorderErrorEvent" = [ "Event" ];
          "MediaSource" = [ "EventTarget" ];
          "MediaStream" = [ "EventTarget" ];
          "MediaStreamAudioDestinationNode" = [ "AudioNode" "EventTarget" ];
          "MediaStreamAudioSourceNode" = [ "AudioNode" "EventTarget" ];
          "MediaStreamEvent" = [ "Event" ];
          "MediaStreamTrack" = [ "EventTarget" ];
          "MediaStreamTrackEvent" = [ "Event" ];
          "MessageEvent" = [ "Event" ];
          "MessagePort" = [ "EventTarget" ];
          "MidiAccess" = [ "EventTarget" ];
          "MidiConnectionEvent" = [ "Event" ];
          "MidiInput" = [ "EventTarget" "MidiPort" ];
          "MidiMessageEvent" = [ "Event" ];
          "MidiOutput" = [ "EventTarget" "MidiPort" ];
          "MidiPort" = [ "EventTarget" ];
          "MouseEvent" = [ "Event" "UiEvent" ];
          "MouseScrollEvent" = [ "Event" "MouseEvent" "UiEvent" ];
          "MutationEvent" = [ "Event" ];
          "NetworkInformation" = [ "EventTarget" ];
          "Node" = [ "EventTarget" ];
          "Notification" = [ "EventTarget" ];
          "NotificationEvent" = [ "Event" "ExtendableEvent" ];
          "OfflineAudioCompletionEvent" = [ "Event" ];
          "OfflineAudioContext" = [ "BaseAudioContext" "EventTarget" ];
          "OfflineResourceList" = [ "EventTarget" ];
          "OffscreenCanvas" = [ "EventTarget" ];
          "OscillatorNode" =
            [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
          "PageTransitionEvent" = [ "Event" ];
          "PaintWorkletGlobalScope" = [ "WorkletGlobalScope" ];
          "PannerNode" = [ "AudioNode" "EventTarget" ];
          "PaymentMethodChangeEvent" = [ "Event" "PaymentRequestUpdateEvent" ];
          "PaymentRequestUpdateEvent" = [ "Event" ];
          "Performance" = [ "EventTarget" ];
          "PerformanceMark" = [ "PerformanceEntry" ];
          "PerformanceMeasure" = [ "PerformanceEntry" ];
          "PerformanceNavigationTiming" =
            [ "PerformanceEntry" "PerformanceResourceTiming" ];
          "PerformanceResourceTiming" = [ "PerformanceEntry" ];
          "PermissionStatus" = [ "EventTarget" ];
          "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ];
          "PopStateEvent" = [ "Event" ];
          "PopupBlockedEvent" = [ "Event" ];
          "PresentationAvailability" = [ "EventTarget" ];
          "PresentationConnection" = [ "EventTarget" ];
          "PresentationConnectionAvailableEvent" = [ "Event" ];
          "PresentationConnectionCloseEvent" = [ "Event" ];
          "PresentationConnectionList" = [ "EventTarget" ];
          "PresentationRequest" = [ "EventTarget" ];
          "ProcessingInstruction" = [ "CharacterData" "EventTarget" "Node" ];
          "ProgressEvent" = [ "Event" ];
          "PromiseRejectionEvent" = [ "Event" ];
          "PublicKeyCredential" = [ "Credential" ];
          "PushEvent" = [ "Event" "ExtendableEvent" ];
          "RadioNodeList" = [ "NodeList" ];
          "RtcDataChannel" = [ "EventTarget" ];
          "RtcDataChannelEvent" = [ "Event" ];
          "RtcPeerConnection" = [ "EventTarget" ];
          "RtcPeerConnectionIceEvent" = [ "Event" ];
          "RtcTrackEvent" = [ "Event" ];
          "RtcdtmfSender" = [ "EventTarget" ];
          "RtcdtmfToneChangeEvent" = [ "Event" ];
          "Screen" = [ "EventTarget" ];
          "ScreenOrientation" = [ "EventTarget" ];
          "ScriptProcessorNode" = [ "AudioNode" "EventTarget" ];
          "ScrollAreaEvent" = [ "Event" "UiEvent" ];
          "SecurityPolicyViolationEvent" = [ "Event" ];
          "ServiceWorker" = [ "EventTarget" ];
          "ServiceWorkerContainer" = [ "EventTarget" ];
          "ServiceWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
          "ServiceWorkerRegistration" = [ "EventTarget" ];
          "ShadowRoot" = [ "DocumentFragment" "EventTarget" "Node" ];
          "SharedWorker" = [ "EventTarget" ];
          "SharedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
          "SourceBuffer" = [ "EventTarget" ];
          "SourceBufferList" = [ "EventTarget" ];
          "SpeechRecognition" = [ "EventTarget" ];
          "SpeechRecognitionError" = [ "Event" ];
          "SpeechRecognitionEvent" = [ "Event" ];
          "SpeechSynthesis" = [ "EventTarget" ];
          "SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ];
          "SpeechSynthesisEvent" = [ "Event" ];
          "SpeechSynthesisUtterance" = [ "EventTarget" ];
          "StereoPannerNode" = [ "AudioNode" "EventTarget" ];
          "StorageEvent" = [ "Event" ];
          "SvgAnimateElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgAnimationElement"
            "SvgElement"
          ];
          "SvgAnimateMotionElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgAnimationElement"
            "SvgElement"
          ];
          "SvgAnimateTransformElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgAnimationElement"
            "SvgElement"
          ];
          "SvgAnimationElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgCircleElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGeometryElement"
            "SvgGraphicsElement"
          ];
          "SvgClipPathElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgComponentTransferFunctionElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgDefsElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgDescElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgElement" = [ "Element" "EventTarget" "Node" ];
          "SvgEllipseElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGeometryElement"
            "SvgGraphicsElement"
          ];
          "SvgFilterElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgForeignObjectElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgGeometryElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgGradientElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgGraphicsElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgImageElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgLineElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGeometryElement"
            "SvgGraphicsElement"
          ];
          "SvgLinearGradientElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGradientElement"
          ];
          "SvgMarkerElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgMaskElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgMetadataElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgPathElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGeometryElement"
            "SvgGraphicsElement"
          ];
          "SvgPathSegArcAbs" = [ "SvgPathSeg" ];
          "SvgPathSegArcRel" = [ "SvgPathSeg" ];
          "SvgPathSegClosePath" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoCubicAbs" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoCubicRel" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoCubicSmoothAbs" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoCubicSmoothRel" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoQuadraticAbs" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoQuadraticRel" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoQuadraticSmoothAbs" = [ "SvgPathSeg" ];
          "SvgPathSegCurvetoQuadraticSmoothRel" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoAbs" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoHorizontalAbs" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoHorizontalRel" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoRel" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoVerticalAbs" = [ "SvgPathSeg" ];
          "SvgPathSegLinetoVerticalRel" = [ "SvgPathSeg" ];
          "SvgPathSegMovetoAbs" = [ "SvgPathSeg" ];
          "SvgPathSegMovetoRel" = [ "SvgPathSeg" ];
          "SvgPatternElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgPolygonElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGeometryElement"
            "SvgGraphicsElement"
          ];
          "SvgPolylineElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGeometryElement"
            "SvgGraphicsElement"
          ];
          "SvgRadialGradientElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGradientElement"
          ];
          "SvgRectElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGeometryElement"
            "SvgGraphicsElement"
          ];
          "SvgScriptElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgSetElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgAnimationElement"
            "SvgElement"
          ];
          "SvgStopElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgStyleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgSwitchElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgSymbolElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgTextContentElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgTextElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
            "SvgTextContentElement"
            "SvgTextPositioningElement"
          ];
          "SvgTextPathElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
            "SvgTextContentElement"
          ];
          "SvgTextPositioningElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
            "SvgTextContentElement"
          ];
          "SvgTitleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgUseElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgViewElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgaElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgfeBlendElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeColorMatrixElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeComponentTransferElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeCompositeElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeConvolveMatrixElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeDiffuseLightingElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeDisplacementMapElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeDistantLightElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeDropShadowElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeFloodElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeFuncAElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgComponentTransferFunctionElement"
            "SvgElement"
          ];
          "SvgfeFuncBElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgComponentTransferFunctionElement"
            "SvgElement"
          ];
          "SvgfeFuncGElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgComponentTransferFunctionElement"
            "SvgElement"
          ];
          "SvgfeFuncRElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgComponentTransferFunctionElement"
            "SvgElement"
          ];
          "SvgfeGaussianBlurElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeMergeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeMergeNodeElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeMorphologyElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeOffsetElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfePointLightElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeSpecularLightingElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeSpotLightElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeTileElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgfeTurbulenceElement" =
            [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvggElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgmPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
          "SvgsvgElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
          ];
          "SvgtSpanElement" = [
            "Element"
            "EventTarget"
            "Node"
            "SvgElement"
            "SvgGraphicsElement"
            "SvgTextContentElement"
            "SvgTextPositioningElement"
          ];
          "TcpServerSocket" = [ "EventTarget" ];
          "TcpServerSocketEvent" = [ "Event" ];
          "TcpSocket" = [ "EventTarget" ];
          "TcpSocketErrorEvent" = [ "Event" ];
          "TcpSocketEvent" = [ "Event" ];
          "Text" = [ "CharacterData" "EventTarget" "Node" ];
          "TextTrack" = [ "EventTarget" ];
          "TextTrackCue" = [ "EventTarget" ];
          "TextTrackList" = [ "EventTarget" ];
          "TimeEvent" = [ "Event" ];
          "TouchEvent" = [ "Event" "UiEvent" ];
          "TrackEvent" = [ "Event" ];
          "TransitionEvent" = [ "Event" ];
          "UiEvent" = [ "Event" ];
          "Usb" = [ "EventTarget" ];
          "UsbConnectionEvent" = [ "Event" ];
          "UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ];
          "UserProximityEvent" = [ "Event" ];
          "ValueEvent" = [ "Event" ];
          "VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
          "VideoTrackList" = [ "EventTarget" ];
          "VrDisplay" = [ "EventTarget" ];
          "VttCue" = [ "EventTarget" "TextTrackCue" ];
          "WakeLockSentinel" = [ "EventTarget" ];
          "WaveShaperNode" = [ "AudioNode" "EventTarget" ];
          "WebGlContextEvent" = [ "Event" ];
          "WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ];
          "WebSocket" = [ "EventTarget" ];
          "WheelEvent" = [ "Event" "MouseEvent" "UiEvent" ];
          "Window" = [ "EventTarget" ];
          "WindowClient" = [ "Client" ];
          "Worker" = [ "EventTarget" ];
          "WorkerDebuggerGlobalScope" = [ "EventTarget" ];
          "WorkerGlobalScope" = [ "EventTarget" ];
          "XmlDocument" = [ "Document" "EventTarget" "Node" ];
          "XmlHttpRequest" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
          "XmlHttpRequestEventTarget" = [ "EventTarget" ];
          "XmlHttpRequestUpload" =
            [ "EventTarget" "XmlHttpRequestEventTarget" ];
          "Xr" = [ "EventTarget" ];
          "XrBoundedReferenceSpace" =
            [ "EventTarget" "XrReferenceSpace" "XrSpace" ];
          "XrInputSourceEvent" = [ "Event" ];
          "XrInputSourcesChangeEvent" = [ "Event" ];
          "XrReferenceSpace" = [ "EventTarget" "XrSpace" ];
          "XrReferenceSpaceEvent" = [ "Event" ];
          "XrSession" = [ "EventTarget" ];
          "XrSessionEvent" = [ "Event" ];
          "XrSpace" = [ "EventTarget" ];
          "XrViewerPose" = [ "XrPose" ];
        };
        resolvedDefaultFeatures = [
          "Blob"
          "BlobPropertyBag"
          "Event"
          "EventTarget"
          "FormData"
          "Headers"
          "MessageEvent"
          "Request"
          "RequestCredentials"
          "RequestInit"
          "RequestMode"
          "Response"
          "ServiceWorkerGlobalScope"
          "Window"
          "Worker"
          "WorkerGlobalScope"
        ];
      };
      "winapi 0.2.8" = rec {
        crateName = "winapi";
        version = "0.2.8";
        edition = "2015";
        sha256 = "0yh816lh6lf56dpsgxy189c2ai1z3j8mw9si6izqb6wsjkbcjz8n";
        authors = [ "Peter Atashian <retep998@gmail.com>" ];

      };
      "winapi 0.3.9" = rec {
        crateName = "winapi";
        version = "0.3.9";
        edition = "2015";
        sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw";
        authors = [ "Peter Atashian <retep998@gmail.com>" ];
        dependencies = [
          {
            name = "winapi-i686-pc-windows-gnu";
            packageId = "winapi-i686-pc-windows-gnu";
            target = { target, features }:
              (stdenv.hostPlatform.config == "i686-pc-windows-gnu");
          }
          {
            name = "winapi-x86_64-pc-windows-gnu";
            packageId = "winapi-x86_64-pc-windows-gnu";
            target = { target, features }:
              (stdenv.hostPlatform.config == "x86_64-pc-windows-gnu");
          }
        ];
        features = { "debug" = [ "impl-debug" ]; };
        resolvedDefaultFeatures = [
          "cfg"
          "consoleapi"
          "errhandlingapi"
          "evntrace"
          "fileapi"
          "handleapi"
          "impl-debug"
          "impl-default"
          "in6addr"
          "inaddr"
          "ioapiset"
          "knownfolders"
          "lmcons"
          "minschannel"
          "minwinbase"
          "minwindef"
          "mstcpip"
          "mswsock"
          "namedpipeapi"
          "ntdef"
          "ntsecapi"
          "ntstatus"
          "objbase"
          "processenv"
          "profileapi"
          "schannel"
          "securitybaseapi"
          "shlobj"
          "sspi"
          "std"
          "synchapi"
          "sysinfoapi"
          "threadpoollegacyapiset"
          "timezoneapi"
          "winbase"
          "wincrypt"
          "windef"
          "winerror"
          "winioctl"
          "winnt"
          "winreg"
          "winsock2"
          "ws2def"
          "ws2ipdef"
          "ws2tcpip"
        ];
      };
      "winapi-build" = rec {
        crateName = "winapi-build";
        version = "0.1.1";
        edition = "2015";
        sha256 = "1g4rqsgjky0a7530qajn2bbfcrl2v0zb39idgdws9b1l7gp5wc9d";
        libName = "build";
        authors = [ "Peter Atashian <retep998@gmail.com>" ];

      };
      "winapi-i686-pc-windows-gnu" = rec {
        crateName = "winapi-i686-pc-windows-gnu";
        version = "0.4.0";
        edition = "2015";
        sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc";
        authors = [ "Peter Atashian <retep998@gmail.com>" ];

      };
      "winapi-x86_64-pc-windows-gnu" = rec {
        crateName = "winapi-x86_64-pc-windows-gnu";
        version = "0.4.0";
        edition = "2015";
        sha256 = "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki";
        authors = [ "Peter Atashian <retep998@gmail.com>" ];

      };
      "winreg" = rec {
        crateName = "winreg";
        version = "0.7.0";
        edition = "2015";
        sha256 = "0sdxcyvda4v1v6a0k1j2v1400z3ng323k9a56gxvkq51x21dn801";
        authors = [ "Igor Shaula <gentoo90@gmail.com>" ];
        dependencies = [{
          name = "winapi";
          packageId = "winapi 0.3.9";
          features = [
            "impl-default"
            "impl-debug"
            "minwindef"
            "minwinbase"
            "timezoneapi"
            "winerror"
            "winnt"
            "winreg"
            "handleapi"
          ];
        }];
        features = {
          "serialization-serde" = [ "transactions" "serde" ];
          "transactions" = [ "winapi/ktmw32" ];
        };
      };
      "ws2_32-sys" = rec {
        crateName = "ws2_32-sys";
        version = "0.2.1";
        edition = "2015";
        sha256 = "0ppscg5qfqaw0gzwv2a4nhn5bn01ff9iwn6ysqnzm4n8s3myz76m";
        libName = "ws2_32";
        authors = [ "Peter Atashian <retep998@gmail.com>" ];
        dependencies = [{
          name = "winapi";
          packageId = "winapi 0.2.8";
        }];
        buildDependencies = [{
          name = "winapi-build";
          packageId = "winapi-build";
        }];

      };
      "yaml-rust" = rec {
        crateName = "yaml-rust";
        version = "0.4.5";
        edition = "2018";
        sha256 = "118wbqrr4n6wgk5rjjnlrdlahawlxc1bdsx146mwk8f79in97han";
        authors = [ "Yuheng Chen <yuhengchen@sensetime.com>" ];
        dependencies = [{
          name = "linked-hash-map";
          packageId = "linked-hash-map";
        }];

      };
    };

    #
    # crate2nix/default.nix (excerpt start)
    #

    /* Target (platform) data for conditional dependencies.
       This corresponds roughly to what buildRustCrate is setting.
    */
    defaultTarget = {
      unix = true;
      windows = false;
      fuchsia = true;
      test = false;

      # This doesn't appear to be officially documented anywhere yet.
      # See https://github.com/rust-lang-nursery/rust-forge/issues/101.
      os = if stdenv.hostPlatform.isDarwin then
        "macos"
      else
        stdenv.hostPlatform.parsed.kernel.name;
      arch = stdenv.hostPlatform.parsed.cpu.name;
      family = "unix";
      env = "gnu";
      endian = if stdenv.hostPlatform.parsed.cpu.significantByte.name
      == "littleEndian" then
        "little"
      else
        "big";
      pointer_width = toString stdenv.hostPlatform.parsed.cpu.bits;
      vendor = stdenv.hostPlatform.parsed.vendor.name;
      debug_assertions = false;
    };

    # Filters common temp files and build files.
    # TODO(pkolloch): Substitute with gitignore filter
    sourceFilter = name: type:
      let baseName = builtins.baseNameOf (builtins.toString name);
      in !(
        # Filter out git
        baseName == ".gitignore" || (type == "directory" && baseName == ".git")

        # Filter out build results
        || (type == "directory" && (baseName == "target" || baseName == "_site"
          || baseName == ".sass-cache" || baseName == ".jekyll-metadata"
          || baseName == "build-artifacts"))

        # Filter out nix-build result symlinks
        || (type == "symlink" && lib.hasPrefix "result" baseName)

        # Filter out IDE config
        || (type == "directory"
          && (baseName == ".idea" || baseName == ".vscode"))
        || lib.hasSuffix ".iml" baseName

        # Filter out nix build files
        || baseName == "Cargo.nix"

        # Filter out editor backup / swap files.
        || lib.hasSuffix "~" baseName || builtins.match "^\\.sw[a-z]$$" baseName
        != null || builtins.match "^\\..*\\.sw[a-z]$$" baseName != null
        || lib.hasSuffix ".tmp" baseName || lib.hasSuffix ".bak" baseName
        || baseName == "tests.nix");

    /* Returns a crate which depends on successful test execution
       of crate given as the second argument.

       testCrateFlags: list of flags to pass to the test exectuable
       testInputs: list of packages that should be available during test execution
    */
    crateWithTest = { crate, testCrate, testCrateFlags, testInputs }:
      assert builtins.typeOf testCrateFlags == "list";
      assert builtins.typeOf testInputs == "list";
      let
        # override the `crate` so that it will build and execute tests instead of
        # building the actual lib and bin targets We just have to pass `--test`
        # to rustc and it will do the right thing.  We execute the tests and copy
        # their log and the test executables to $out for later inspection.
        test = let drv = testCrate.override (_: { buildTests = true; });
        in pkgs.runCommand "run-tests-${testCrate.name}" {
          inherit testCrateFlags;
          buildInputs = testInputs;
        } ''
          set -ex

          export RUST_BACKTRACE=1

          # recreate a file hierarchy as when running tests with cargo

          # the source for test data
          ${pkgs.xorg.lndir}/bin/lndir ${crate.src}

          # build outputs
          testRoot=target/debug
          mkdir -p $testRoot

          # executables of the crate
          # we copy to prevent std::env::current_exe() to resolve to a store location
          for i in ${crate}/bin/*; do
            cp "$i" "$testRoot"
          done
          chmod +w -R .

          # test harness executables are suffixed with a hash, like cargo does
          # this allows to prevent name collision with the main
          # executables of the crate
          hash=$(basename $out)
          for file in ${drv}/tests/*; do
            f=$testRoot/$(basename $file)-$hash
            cp $file $f
            $f $testCrateFlags 2>&1 | tee -a $out
          done
        '';
      in pkgs.runCommand "${crate.name}-linked" {
        inherit (crate) outputs crateName;
        passthru = (crate.passthru or { }) // { inherit test; };
      } ''
        echo tested by ${test}
        ${lib.concatMapStringsSep "\n"
        (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs}
      '';

    # A restricted overridable version of builtRustCratesWithFeatures.
    buildRustCrateWithFeatures = { packageId, features ? rootFeatures
      , crateOverrides ? defaultCrateOverrides, buildRustCrateForPkgsFunc ? null
      , runTests ? false, testCrateFlags ? [ ], testInputs ? [ ] }:
      lib.makeOverridable
      ({ features, crateOverrides, runTests, testCrateFlags, testInputs }:
        let
          buildRustCrateForPkgsFuncOverriden =
            if buildRustCrateForPkgsFunc != null then
              buildRustCrateForPkgsFunc
            else
              (if crateOverrides == pkgs.defaultCrateOverrides then
                buildRustCrateForPkgs
              else
                pkgs:
                (buildRustCrateForPkgs pkgs).override {
                  defaultCrateOverrides = crateOverrides;
                });
          builtRustCrates = builtRustCratesWithFeatures {
            inherit packageId features;
            buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
            runTests = false;
          };
          builtTestRustCrates = builtRustCratesWithFeatures {
            inherit packageId features;
            buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
            runTests = true;
          };
          drv = builtRustCrates.crates.${packageId};
          testDrv = builtTestRustCrates.crates.${packageId};
          derivation = if runTests then
            crateWithTest {
              crate = drv;
              testCrate = testDrv;
              inherit testCrateFlags testInputs;
            }
          else
            drv;
        in derivation) {
          inherit features crateOverrides runTests testCrateFlags testInputs;
        };

    /* Returns an attr set with packageId mapped to the result of buildRustCrateForPkgsFunc
       for the corresponding crate.
    */
    builtRustCratesWithFeatures = { packageId, features, crateConfigs ? crates
      , buildRustCrateForPkgsFunc, runTests, target ? defaultTarget }@args:
      assert (builtins.isAttrs crateConfigs);
      assert (builtins.isString packageId);
      assert (builtins.isList features);
      assert (builtins.isAttrs target);
      assert (builtins.isBool runTests);
      let
        rootPackageId = packageId;
        mergedFeatures = mergePackageFeatures (args // {
          inherit rootPackageId;
          target = target // { test = runTests; };
        });
        # Memoize built packages so that reappearing packages are only built once.
        builtByPackageIdByPkgs = mkBuiltByPackageIdByPkgs pkgs;
        mkBuiltByPackageIdByPkgs = pkgs:
          let
            self = {
              crates = lib.mapAttrs (packageId: value:
                buildByPackageIdForPkgsImpl self pkgs packageId) crateConfigs;
              build = mkBuiltByPackageIdByPkgs pkgs.buildPackages;
            };
          in self;
        buildByPackageIdForPkgsImpl = self: pkgs: packageId:
          let
            features = mergedFeatures."${packageId}" or [ ];
            crateConfig' = crateConfigs."${packageId}";
            crateConfig = builtins.removeAttrs crateConfig' [
              "resolvedDefaultFeatures"
              "devDependencies"
            ];
            devDependencies =
              lib.optionals (runTests && packageId == rootPackageId)
              (crateConfig'.devDependencies or [ ]);
            dependencies = dependencyDerivations {
              inherit features target;
              buildByPackageId = depPackageId:
                # proc_macro crates must be compiled for the build architecture
                if crateConfigs.${depPackageId}.procMacro or false then
                  self.build.crates.${depPackageId}
                else
                  self.crates.${depPackageId};
              dependencies = (crateConfig.dependencies or [ ])
                ++ devDependencies;
            };
            buildDependencies = dependencyDerivations {
              inherit features target;
              buildByPackageId = depPackageId:
                self.build.crates.${depPackageId};
              dependencies = crateConfig.buildDependencies or [ ];
            };
            filterEnabledDependenciesForThis = dependencies:
              filterEnabledDependencies {
                inherit dependencies features target;
              };
            dependenciesWithRenames = lib.filter (d: d ? "rename")
              (filterEnabledDependenciesForThis
                ((crateConfig.buildDependencies or [ ])
                  ++ (crateConfig.dependencies or [ ]) ++ devDependencies));
            # Crate renames have the form:
            #
            # {
            #    crate_name = [
            #       { version = "1.2.3"; rename = "crate_name01"; }
            #    ];
            #    # ...
            # }
            crateRenames = let
              grouped = lib.groupBy (dependency: dependency.name)
                dependenciesWithRenames;
              versionAndRename = dep:
                let package = crateConfigs."${dep.packageId}";
                in {
                  inherit (dep) rename;
                  version = package.version;
                };
            in lib.mapAttrs
            (name: choices: builtins.map versionAndRename choices) grouped;
          in buildRustCrateForPkgsFunc pkgs (crateConfig // {
            src = crateConfig.src or (pkgs.fetchurl rec {
              name = "${crateConfig.crateName}-${crateConfig.version}.tar.gz";
              # https://www.pietroalbini.org/blog/downloading-crates-io/
              # Not rate-limited, CDN URL.
              url =
                "https://static.crates.io/crates/${crateConfig.crateName}/${crateConfig.crateName}-${crateConfig.version}.crate";
              sha256 = assert (lib.assertMsg (crateConfig ? sha256)
                "Missing sha256 for ${name}");
                crateConfig.sha256;
            });
            extraRustcOpts = lib.lists.optional (targetFeatures != [ ])
              "-C target-feature=${
                lib.concatMapStringsSep "," (x: "+${x}") targetFeatures
              }";
            inherit features dependencies buildDependencies crateRenames
              release;
          });
      in builtByPackageIdByPkgs;

    # Returns the actual derivations for the given dependencies.
    dependencyDerivations =
      { buildByPackageId, features, dependencies, target }:
      assert (builtins.isList features);
      assert (builtins.isList dependencies);
      assert (builtins.isAttrs target);
      let
        enabledDependencies =
          filterEnabledDependencies { inherit dependencies features target; };
        depDerivation = dependency: buildByPackageId dependency.packageId;
      in map depDerivation enabledDependencies;

    /* Returns a sanitized version of val with all values substituted that cannot
       be serialized as JSON.
    */
    sanitizeForJson = val:
      if builtins.isAttrs val then
        lib.mapAttrs (n: v: sanitizeForJson v) val
      else if builtins.isList val then
        builtins.map sanitizeForJson val
      else if builtins.isFunction val then
        "function"
      else
        val;

    # Returns various tools to debug a crate.
    debugCrate = { packageId, target ? defaultTarget }:
      assert (builtins.isString packageId);
      let
        debug = rec {
          # The built tree as passed to buildRustCrate.
          buildTree = buildRustCrateWithFeatures {
            buildRustCrateForPkgsFunc = _: lib.id;
            inherit packageId;
          };
          sanitizedBuildTree = sanitizeForJson buildTree;
          dependencyTree = sanitizeForJson (buildRustCrateWithFeatures {
            buildRustCrateForPkgsFunc = _: crate: {
              "01_crateName" = crate.crateName or false;
              "02_features" = crate.features or [ ];
              "03_dependencies" = crate.dependencies or [ ];
            };
            inherit packageId;
          });
          mergedPackageFeatures = mergePackageFeatures {
            features = rootFeatures;
            inherit packageId target;
          };
          diffedDefaultPackageFeatures =
            diffDefaultPackageFeatures { inherit packageId target; };
        };
      in { internal = debug; };

    /* Returns differences between cargo default features and crate2nix default
       features.

       This is useful for verifying the feature resolution in crate2nix.
    */
    diffDefaultPackageFeatures = { crateConfigs ? crates, packageId, target }:
      assert (builtins.isAttrs crateConfigs);
      let
        prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; });
        mergedFeatures = prefixValues "crate2nix" (mergePackageFeatures {
          inherit crateConfigs packageId target;
          features = [ "default" ];
        });
        configs = prefixValues "cargo" crateConfigs;
        combined = lib.foldAttrs (a: b: a // b) { } [ mergedFeatures configs ];
        onlyInCargo = builtins.attrNames
          (lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo"))
            combined);
        onlyInCrate2Nix = builtins.attrNames
          (lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo"))
            combined);
        differentFeatures = lib.filterAttrs (n: v:
          (v ? "crate2nix") && (v ? "cargo") && (v.crate2nix.features or [ ])
          != (v."cargo".resolved_default_features or [ ])) combined;
      in builtins.toJSON {
        inherit onlyInCargo onlyInCrate2Nix differentFeatures;
      };

    /* Returns an attrset mapping packageId to the list of enabled features.

       If multiple paths to a dependency enable different features, the
       corresponding feature sets are merged. Features in rust are additive.
    */
    mergePackageFeatures = { crateConfigs ? crates, packageId
      , rootPackageId ? packageId, features ? rootFeatures
      , dependencyPath ? [ crates.${packageId}.crateName ]
      , featuresByPackageId ? { }, target
      # Adds devDependencies to the crate with rootPackageId.
      , runTests ? false, ... }@args:
      assert (builtins.isAttrs crateConfigs);
      assert (builtins.isString packageId);
      assert (builtins.isString rootPackageId);
      assert (builtins.isList features);
      assert (builtins.isList dependencyPath);
      assert (builtins.isAttrs featuresByPackageId);
      assert (builtins.isAttrs target);
      assert (builtins.isBool runTests);
      let
        crateConfig = crateConfigs."${packageId}" or (builtins.throw
          "Package not found: ${packageId}");
        expandedFeatures =
          expandFeatures (crateConfig.features or { }) features;
        depWithResolvedFeatures = dependency:
          let
            packageId = dependency.packageId;
            features = dependencyFeatures expandedFeatures dependency;
          in { inherit packageId features; };
        resolveDependencies = cache: path: dependencies:
          assert (builtins.isAttrs cache);
          assert (builtins.isList dependencies);
          let
            enabledDependencies = filterEnabledDependencies {
              inherit dependencies target;
              features = expandedFeatures;
            };
            directDependencies =
              map depWithResolvedFeatures enabledDependencies;
            foldOverCache = op: lib.foldl op cache directDependencies;
          in foldOverCache (cache:
            { packageId, features }:
            let
              cacheFeatures = cache.${packageId} or [ ];
              combinedFeatures = sortedUnique (cacheFeatures ++ features);
            in if cache ? ${packageId} && cache.${packageId}
            == combinedFeatures then
              cache
            else
              mergePackageFeatures {
                features = combinedFeatures;
                featuresByPackageId = cache;
                inherit crateConfigs packageId target runTests rootPackageId;
              });
        cacheWithSelf = let
          cacheFeatures = featuresByPackageId.${packageId} or [ ];
          combinedFeatures = sortedUnique (cacheFeatures ++ expandedFeatures);
        in featuresByPackageId // { "${packageId}" = combinedFeatures; };
        cacheWithDependencies = resolveDependencies cacheWithSelf "dep"
          (crateConfig.dependencies or [ ]
            ++ lib.optionals (runTests && packageId == rootPackageId)
            (crateConfig.devDependencies or [ ]));
        cacheWithAll = resolveDependencies cacheWithDependencies "build"
          (crateConfig.buildDependencies or [ ]);
      in cacheWithAll;

    # Returns the enabled dependencies given the enabled features.
    filterEnabledDependencies = { dependencies, features, target }:
      assert (builtins.isList dependencies);
      assert (builtins.isList features);
      assert (builtins.isAttrs target);

      lib.filter (dep:
        let targetFunc = dep.target or (features: true);
        in targetFunc { inherit features target; } && (!(dep.optional or false)
          || builtins.any (doesFeatureEnableDependency dep) features))
      dependencies;

    # Returns whether the given feature should enable the given dependency.
    doesFeatureEnableDependency = { name, rename ? null, ... }:
      feature:
      let
        prefix = "${name}/";
        len = builtins.stringLength prefix;
        startsWithPrefix = builtins.substring 0 len feature == prefix;
      in (rename == null && feature == name)
      || (rename != null && rename == feature) || startsWithPrefix;

    /* Returns the expanded features for the given inputFeatures by applying the
       rules in featureMap.

       featureMap is an attribute set which maps feature names to lists of further
       feature names to enable in case this feature is selected.
    */
    expandFeatures = featureMap: inputFeatures:
      assert (builtins.isAttrs featureMap);
      assert (builtins.isList inputFeatures);
      let
        expandFeature = feature:
          assert (builtins.isString feature);
          [ feature ]
          ++ (expandFeatures featureMap (featureMap."${feature}" or [ ]));
        outFeatures = lib.concatMap expandFeature inputFeatures;
      in sortedUnique outFeatures;

    /* Returns the actual features for the given dependency.

       features: The features of the crate that refers this dependency.
    */
    dependencyFeatures = features: dependency:
      assert (builtins.isList features);
      assert (builtins.isAttrs dependency);
      let
        defaultOrNil =
          if dependency.usesDefaultFeatures or true then [ "default" ] else [ ];
        explicitFeatures = dependency.features or [ ];
        additionalDependencyFeatures = let
          dependencyPrefix = (dependency.rename or dependency.name) + "/";
          dependencyFeatures =
            builtins.filter (f: lib.hasPrefix dependencyPrefix f) features;
        in builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures;
      in defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures;

    # Sorts and removes duplicates from a list of strings.
    sortedUnique = features:
      assert (builtins.isList features);
      assert (builtins.all builtins.isString features);
      let
        outFeaturesSet =
          lib.foldl (set: feature: set // { "${feature}" = 1; }) { } features;
        outFeaturesUnique = builtins.attrNames outFeaturesSet;
      in builtins.sort (a: b: a < b) outFeaturesUnique;

    deprecationWarning = message: value:
      if strictDeprecation then
        builtins.throw "strictDeprecation enabled, aborting: ${message}"
      else
        builtins.trace message value;

    #
    # crate2nix/default.nix (excerpt end)
    #

  };
}
