From f97d93c941b5a107511ceb71943c64c23487bf17 Mon Sep 17 00:00:00 2001
From: Robert Sayre <sayrer@gmail.com>
Date: Thu, 23 Jun 2022 12:15:49 -0700
Subject: [PATCH 1/8] Consolidate duplicated targeted dependencies.

---
 impl/src/context.rs                           |    1 -
 impl/src/planning.rs                          |   33 +
 impl/src/planning/subplanners.rs              |   27 +-
 impl/src/testing.rs                           |    2 +
 ...n_consolidates_targeted_deps.json.template | 1343 +++++++++++++++++
 5 files changed, 1400 insertions(+), 6 deletions(-)
 create mode 100644 impl/src/testing/metadata_templates/subplan_consolidates_targeted_deps.json.template

diff --git a/impl/src/context.rs b/impl/src/context.rs
index a0482a927..ef97f3e8b 100644
--- a/impl/src/context.rs
+++ b/impl/src/context.rs
@@ -141,7 +141,6 @@ impl CrateDependencyContext {
 
 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
 pub struct CrateTargetedDepContext {
-  pub target: String,
   pub deps: CrateDependencyContext,
   pub platform_targets: Vec<String>,
 }
diff --git a/impl/src/planning.rs b/impl/src/planning.rs
index 2de9f5572..ba2f4f10d 100644
--- a/impl/src/planning.rs
+++ b/impl/src/planning.rs
@@ -412,6 +412,39 @@ pub mod tests {
     assert_eq!(flate2.targeted_deps[0].deps.dependencies.len(), 0);
   }
 
+  #[test]
+  // Tests the fix for https://github.com/google/cargo-raze/issues/451.
+  // Bazel errors out if mutually exclusive select branches contain the
+  // same dependency. rust-errno is a real world example of this problem,
+  // where libc is listed under 'cfg(unix)' and 'cfg(target_os="wasi")'.
+  fn test_plan_build_consolidates_targets_across_platforms() {
+    let mut settings = dummy_raze_settings();
+    settings.genmode = GenMode::Remote;
+    let mut triples = HashSet::new();
+    triples.insert("wasm32-wasi".to_string());
+    triples.insert("x86_64-unknown-linux-gnu".to_string());
+    settings.target = None;
+    settings.targets = Some(triples);
+
+    let planner = BuildPlannerImpl::new(
+      dummy_workspace_crate_metadata(templates::SUBPLAN_CONSOLIDATES_TARGETED_DEPS),
+      settings,
+    );
+    let planned_build = planner.plan_build(None).unwrap();
+
+    let errno = planned_build
+      .crate_contexts
+      .iter()
+      .find(|ctx| ctx.pkg_name == "errno")
+      .unwrap();
+
+    assert_eq!(errno.targeted_deps.len(), 1);
+    assert_eq!(
+      errno.targeted_deps[0].platform_targets,
+      vec!["wasm32-wasi", "x86_64-unknown-linux-gnu",]
+    );
+  }
+
   fn dummy_binary_dependency_metadata(is_remote_genmode: bool) -> (RazeMetadata, RazeSettings) {
     let (mut fetcher, server, index_dir) = dummy_raze_metadata_fetcher();
 
diff --git a/impl/src/planning/subplanners.rs b/impl/src/planning/subplanners.rs
index 6a5fdb1ec..d2267ee30 100644
--- a/impl/src/planning/subplanners.rs
+++ b/impl/src/planning/subplanners.rs
@@ -308,8 +308,8 @@ impl<'planner> CrateSubplanner<'planner> {
       ctx.subtract(&default_deps);
     }
 
-    // Build a list of dependencies while addression a potential allowlist of target triples
-    let mut targeted_deps = deps
+    // Build a list of dependencies while addressing a potential allowlist of target triples
+    let targeted_deps = deps
       .into_iter()
       .map(|(target, deps)| {
         let target = target.unwrap();
@@ -318,7 +318,6 @@ impl<'planner> CrateSubplanner<'planner> {
           .collect();
 
         Ok(CrateTargetedDepContext {
-          target,
           deps,
           platform_targets,
         })
@@ -329,7 +328,25 @@ impl<'planner> CrateSubplanner<'planner> {
       })
       .collect::<Result<Vec<_>>>()?;
 
-    targeted_deps.sort();
+    // Consolidate any dependencies duplicated across platforms
+    let mut platform_map: BTreeMap<CrateDependencyContext, Vec<String>> = BTreeMap::new();
+    for targeted_dep in &targeted_deps {
+      platform_map
+        .entry(targeted_dep.deps.clone())
+        .and_modify(|e| e.append(&mut targeted_dep.platform_targets.clone()))
+        .or_insert_with(|| targeted_dep.platform_targets.clone());
+    }
+    let grouped_targeted_deps: Vec<CrateTargetedDepContext> = platform_map
+      .iter()
+      .map(|dep| {
+        let mut targets = dep.1.clone();
+        targets.sort();
+        CrateTargetedDepContext {
+          deps: dep.0.clone(),
+          platform_targets: targets,
+        }
+      })
+      .collect();
 
     let mut workspace_member_dependents: Vec<Utf8PathBuf> = Vec::new();
     let mut workspace_member_dev_dependents: Vec<Utf8PathBuf> = Vec::new();
@@ -405,7 +422,7 @@ impl<'planner> CrateSubplanner<'planner> {
       is_binary_dependency,
       is_proc_macro,
       default_deps,
-      targeted_deps,
+      targeted_deps: grouped_targeted_deps,
       workspace_path_to_crate: self.crate_catalog_entry.workspace_path(self.settings)?,
       build_script_target: build_script_target_opt,
       links: package.links.clone(),
diff --git a/impl/src/testing.rs b/impl/src/testing.rs
index 81fa1c5dc..a60e81dcb 100644
--- a/impl/src/testing.rs
+++ b/impl/src/testing.rs
@@ -62,6 +62,8 @@ pub mod templates {
   pub const PLAN_BUILD_PRODUCES_PROC_MACRO_DEPENDENCIES: &str =
     "plan_build_produces_proc_macro_dependencies.json.template";
   pub const SEMVER_MATCHING: &str = "semver_matching.json.template";
+  pub const SUBPLAN_CONSOLIDATES_TARGETED_DEPS: &str =
+    "subplan_consolidates_targeted_deps.json.template";
   pub const SUBPLAN_PRODUCES_CRATE_ROOT_WITH_FORWARD_SLASH: &str =
     "subplan_produces_crate_root_with_forward_slash.json.template";
   pub const SUBPLAN_OMITS_PLATFORM_DEPS_ALREADY_IN_DEFAULT_DEPS: &str =
diff --git a/impl/src/testing/metadata_templates/subplan_consolidates_targeted_deps.json.template b/impl/src/testing/metadata_templates/subplan_consolidates_targeted_deps.json.template
new file mode 100644
index 000000000..b320a6acb
--- /dev/null
+++ b/impl/src/testing/metadata_templates/subplan_consolidates_targeted_deps.json.template
@@ -0,0 +1,1343 @@
+{# Cargo.toml
+[package]
+name = "rust-errno-project"
+version = "0.1.0"
+edition = "2018"
+
+[lib]
+path = "not_a_file.rs"
+
+[dependencies]
+errno = "0.2.8"
+#}
+{
+  "packages": [
+    {
+      "name": "cc",
+      "version": "1.0.73",
+      "id": "cc 1.0.73 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "jobserver",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.16",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "tempfile",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "cc",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "bin"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "gcc-shim",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/src/bin/gcc-shim.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "cxxflags",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/tests/cxxflags.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/tests/test.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "cc_env",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/tests/cc_env.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "cflags",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/tests/cflags.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "jobserver": [
+          "dep:jobserver"
+        ],
+        "parallel": [
+          "jobserver"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Alex Crichton <alex@alexcrichton.com>"
+      ],
+      "categories": [
+        "development-tools::build-utils"
+      ],
+      "keywords": [
+        "build-dependencies"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/alexcrichton/cc-rs",
+      "homepage": "https://github.com/alexcrichton/cc-rs",
+      "documentation": "https://docs.rs/cc",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "errno",
+      "version": "0.2.8",
+      "id": "errno 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Cross-platform interface to the `errno` variable.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "errno-dragonfly",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_os = \"dragonfly\")",
+          "registry": null
+        },
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_os = \"hermit\")",
+          "registry": null
+        },
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_os = \"wasi\")",
+          "registry": null
+        },
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(unix)",
+          "registry": null
+        },
+        {
+          "name": "winapi",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "errhandlingapi",
+            "minwindef",
+            "ntdef",
+            "winbase"
+          ],
+          "target": "cfg(windows)",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "errno",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/errno-0.2.8/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {
+        "default": [
+          "std"
+        ],
+        "std": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/errno-0.2.8/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Chris Wong <lambda.fairy@gmail.com>"
+      ],
+      "categories": [
+        "os"
+      ],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/lambda-fairy/rust-errno",
+      "homepage": null,
+      "documentation": "https://docs.rs/errno",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "errno-dragonfly",
+      "version": "0.1.2",
+      "id": "errno-dragonfly 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT",
+      "license_file": null,
+      "description": "Exposes errno functionality to stable Rust on DragonFlyBSD",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "cc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "build",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "errno-dragonfly",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/errno-dragonfly-0.1.2/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/errno-dragonfly-0.1.2/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/errno-dragonfly-0.1.2/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Michael Neumann <mneumann@ntecs.de>"
+      ],
+      "categories": [],
+      "keywords": [
+        "dragonfly"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/mneumann/errno-dragonfly-rs",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "libc",
+      "version": "0.2.126",
+      "id": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Raw FFI bindings to platform libraries like libc.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "rustc-std-workspace-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "libc",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.126/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "const_fn",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.126/tests/const_fn.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.126/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "align": [],
+        "const-extern-fn": [],
+        "default": [
+          "std"
+        ],
+        "extra_traits": [],
+        "rustc-dep-of-std": [
+          "align",
+          "rustc-std-workspace-core"
+        ],
+        "rustc-std-workspace-core": [
+          "dep:rustc-std-workspace-core"
+        ],
+        "std": [],
+        "use_std": [
+          "std"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.126/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "features": [
+              "const-extern-fn",
+              "extra_traits"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "The Rust Project Developers"
+      ],
+      "categories": [
+        "external-ffi-bindings",
+        "no-std",
+        "os"
+      ],
+      "keywords": [
+        "libc",
+        "ffi",
+        "bindings",
+        "operating",
+        "system"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang/libc",
+      "homepage": "https://github.com/rust-lang/libc",
+      "documentation": "https://docs.rs/libc/",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "rust-errno-project",
+      "version": "0.1.0",
+      "id": "rust-errno-project 0.1.0 (path+file://{{ mock_workspace }})",
+      "license": null,
+      "license_file": null,
+      "description": null,
+      "source": null,
+      "dependencies": [
+        {
+          "name": "errno",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.8",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "rust-errno-project",
+          "src_path": "/home/sayrer/github/grafica/rust-errno-project/not_a_file.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/github/grafica/rust-errno-project/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [],
+      "categories": [],
+      "keywords": [],
+      "readme": null,
+      "repository": null,
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "winapi",
+      "version": "0.3.9",
+      "id": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Raw FFI bindings for all of Windows API.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "winapi-i686-pc-windows-gnu",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "i686-pc-windows-gnu",
+          "registry": null
+        },
+        {
+          "name": "winapi-x86_64-pc-windows-gnu",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "x86_64-pc-windows-gnu",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "winapi",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-0.3.9/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-0.3.9/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "accctrl": [],
+        "aclapi": [],
+        "activation": [],
+        "adhoc": [],
+        "appmgmt": [],
+        "audioclient": [],
+        "audiosessiontypes": [],
+        "avrt": [],
+        "basetsd": [],
+        "bcrypt": [],
+        "bits": [],
+        "bits10_1": [],
+        "bits1_5": [],
+        "bits2_0": [],
+        "bits2_5": [],
+        "bits3_0": [],
+        "bits4_0": [],
+        "bits5_0": [],
+        "bitscfg": [],
+        "bitsmsg": [],
+        "bluetoothapis": [],
+        "bluetoothleapis": [],
+        "bthdef": [],
+        "bthioctl": [],
+        "bthledef": [],
+        "bthsdpdef": [],
+        "bugcodes": [],
+        "cderr": [],
+        "cfg": [],
+        "cfgmgr32": [],
+        "cguid": [],
+        "combaseapi": [],
+        "coml2api": [],
+        "commapi": [],
+        "commctrl": [],
+        "commdlg": [],
+        "commoncontrols": [],
+        "consoleapi": [],
+        "corecrt": [],
+        "corsym": [],
+        "d2d1": [],
+        "d2d1_1": [],
+        "d2d1_2": [],
+        "d2d1_3": [],
+        "d2d1effectauthor": [],
+        "d2d1effects": [],
+        "d2d1effects_1": [],
+        "d2d1effects_2": [],
+        "d2d1svg": [],
+        "d2dbasetypes": [],
+        "d3d": [],
+        "d3d10": [],
+        "d3d10_1": [],
+        "d3d10_1shader": [],
+        "d3d10effect": [],
+        "d3d10misc": [],
+        "d3d10sdklayers": [],
+        "d3d10shader": [],
+        "d3d11": [],
+        "d3d11_1": [],
+        "d3d11_2": [],
+        "d3d11_3": [],
+        "d3d11_4": [],
+        "d3d11on12": [],
+        "d3d11sdklayers": [],
+        "d3d11shader": [],
+        "d3d11tokenizedprogramformat": [],
+        "d3d12": [],
+        "d3d12sdklayers": [],
+        "d3d12shader": [],
+        "d3d9": [],
+        "d3d9caps": [],
+        "d3d9types": [],
+        "d3dcommon": [],
+        "d3dcompiler": [],
+        "d3dcsx": [],
+        "d3dkmdt": [],
+        "d3dkmthk": [],
+        "d3dukmdt": [],
+        "d3dx10core": [],
+        "d3dx10math": [],
+        "d3dx10mesh": [],
+        "datetimeapi": [],
+        "davclnt": [],
+        "dbghelp": [],
+        "dbt": [],
+        "dcommon": [],
+        "dcomp": [],
+        "dcompanimation": [],
+        "dcomptypes": [],
+        "dde": [],
+        "ddraw": [],
+        "ddrawi": [],
+        "ddrawint": [],
+        "debug": [
+          "impl-debug"
+        ],
+        "debugapi": [],
+        "devguid": [],
+        "devicetopology": [],
+        "devpkey": [],
+        "devpropdef": [],
+        "dinput": [],
+        "dinputd": [],
+        "dispex": [],
+        "dmksctl": [],
+        "dmusicc": [],
+        "docobj": [],
+        "documenttarget": [],
+        "dot1x": [],
+        "dpa_dsa": [],
+        "dpapi": [],
+        "dsgetdc": [],
+        "dsound": [],
+        "dsrole": [],
+        "dvp": [],
+        "dwmapi": [],
+        "dwrite": [],
+        "dwrite_1": [],
+        "dwrite_2": [],
+        "dwrite_3": [],
+        "dxdiag": [],
+        "dxfile": [],
+        "dxgi": [],
+        "dxgi1_2": [],
+        "dxgi1_3": [],
+        "dxgi1_4": [],
+        "dxgi1_5": [],
+        "dxgi1_6": [],
+        "dxgidebug": [],
+        "dxgiformat": [],
+        "dxgitype": [],
+        "dxva2api": [],
+        "dxvahd": [],
+        "eaptypes": [],
+        "enclaveapi": [],
+        "endpointvolume": [],
+        "errhandlingapi": [],
+        "everything": [],
+        "evntcons": [],
+        "evntprov": [],
+        "evntrace": [],
+        "excpt": [],
+        "exdisp": [],
+        "fibersapi": [],
+        "fileapi": [],
+        "functiondiscoverykeys_devpkey": [],
+        "gl-gl": [],
+        "guiddef": [],
+        "handleapi": [],
+        "heapapi": [],
+        "hidclass": [],
+        "hidpi": [],
+        "hidsdi": [],
+        "hidusage": [],
+        "highlevelmonitorconfigurationapi": [],
+        "hstring": [],
+        "http": [],
+        "ifdef": [],
+        "ifmib": [],
+        "imm": [],
+        "impl-debug": [],
+        "impl-default": [],
+        "in6addr": [],
+        "inaddr": [],
+        "inspectable": [],
+        "interlockedapi": [],
+        "intsafe": [],
+        "ioapiset": [],
+        "ipexport": [],
+        "iphlpapi": [],
+        "ipifcons": [],
+        "ipmib": [],
+        "iprtrmib": [],
+        "iptypes": [],
+        "jobapi": [],
+        "jobapi2": [],
+        "knownfolders": [],
+        "ks": [],
+        "ksmedia": [],
+        "ktmtypes": [],
+        "ktmw32": [],
+        "l2cmn": [],
+        "libloaderapi": [],
+        "limits": [],
+        "lmaccess": [],
+        "lmalert": [],
+        "lmapibuf": [],
+        "lmat": [],
+        "lmcons": [],
+        "lmdfs": [],
+        "lmerrlog": [],
+        "lmjoin": [],
+        "lmmsg": [],
+        "lmremutl": [],
+        "lmrepl": [],
+        "lmserver": [],
+        "lmshare": [],
+        "lmstats": [],
+        "lmsvc": [],
+        "lmuse": [],
+        "lmwksta": [],
+        "lowlevelmonitorconfigurationapi": [],
+        "lsalookup": [],
+        "memoryapi": [],
+        "minschannel": [],
+        "minwinbase": [],
+        "minwindef": [],
+        "mmdeviceapi": [],
+        "mmeapi": [],
+        "mmreg": [],
+        "mmsystem": [],
+        "mprapidef": [],
+        "msaatext": [],
+        "mscat": [],
+        "mschapp": [],
+        "mssip": [],
+        "mstcpip": [],
+        "mswsock": [],
+        "mswsockdef": [],
+        "namedpipeapi": [],
+        "namespaceapi": [],
+        "nb30": [],
+        "ncrypt": [],
+        "netioapi": [],
+        "nldef": [],
+        "ntddndis": [],
+        "ntddscsi": [],
+        "ntddser": [],
+        "ntdef": [],
+        "ntlsa": [],
+        "ntsecapi": [],
+        "ntstatus": [],
+        "oaidl": [],
+        "objbase": [],
+        "objidl": [],
+        "objidlbase": [],
+        "ocidl": [],
+        "ole2": [],
+        "oleauto": [],
+        "olectl": [],
+        "oleidl": [],
+        "opmapi": [],
+        "pdh": [],
+        "perflib": [],
+        "physicalmonitorenumerationapi": [],
+        "playsoundapi": [],
+        "portabledevice": [],
+        "portabledeviceapi": [],
+        "portabledevicetypes": [],
+        "powerbase": [],
+        "powersetting": [],
+        "powrprof": [],
+        "processenv": [],
+        "processsnapshot": [],
+        "processthreadsapi": [],
+        "processtopologyapi": [],
+        "profileapi": [],
+        "propidl": [],
+        "propkey": [],
+        "propkeydef": [],
+        "propsys": [],
+        "prsht": [],
+        "psapi": [],
+        "qos": [],
+        "realtimeapiset": [],
+        "reason": [],
+        "restartmanager": [],
+        "restrictederrorinfo": [],
+        "rmxfguid": [],
+        "roapi": [],
+        "robuffer": [],
+        "roerrorapi": [],
+        "rpc": [],
+        "rpcdce": [],
+        "rpcndr": [],
+        "rtinfo": [],
+        "sapi": [],
+        "sapi51": [],
+        "sapi53": [],
+        "sapiddk": [],
+        "sapiddk51": [],
+        "schannel": [],
+        "sddl": [],
+        "securityappcontainer": [],
+        "securitybaseapi": [],
+        "servprov": [],
+        "setupapi": [],
+        "shellapi": [],
+        "shellscalingapi": [],
+        "shlobj": [],
+        "shobjidl": [],
+        "shobjidl_core": [],
+        "shtypes": [],
+        "softpub": [],
+        "spapidef": [],
+        "spellcheck": [],
+        "sporder": [],
+        "sql": [],
+        "sqlext": [],
+        "sqltypes": [],
+        "sqlucode": [],
+        "sspi": [],
+        "std": [],
+        "stralign": [],
+        "stringapiset": [],
+        "strmif": [],
+        "subauth": [],
+        "synchapi": [],
+        "sysinfoapi": [],
+        "systemtopologyapi": [],
+        "taskschd": [],
+        "tcpestats": [],
+        "tcpmib": [],
+        "textstor": [],
+        "threadpoolapiset": [],
+        "threadpoollegacyapiset": [],
+        "timeapi": [],
+        "timezoneapi": [],
+        "tlhelp32": [],
+        "transportsettingcommon": [],
+        "tvout": [],
+        "udpmib": [],
+        "unknwnbase": [],
+        "urlhist": [],
+        "urlmon": [],
+        "usb": [],
+        "usbioctl": [],
+        "usbiodef": [],
+        "usbscan": [],
+        "usbspec": [],
+        "userenv": [],
+        "usp10": [],
+        "utilapiset": [],
+        "uxtheme": [],
+        "vadefs": [],
+        "vcruntime": [],
+        "vsbackup": [],
+        "vss": [],
+        "vsserror": [],
+        "vswriter": [],
+        "wbemads": [],
+        "wbemcli": [],
+        "wbemdisp": [],
+        "wbemprov": [],
+        "wbemtran": [],
+        "wct": [],
+        "werapi": [],
+        "winbase": [],
+        "wincodec": [],
+        "wincodecsdk": [],
+        "wincon": [],
+        "wincontypes": [],
+        "wincred": [],
+        "wincrypt": [],
+        "windef": [],
+        "windot11": [],
+        "windowsceip": [],
+        "windowsx": [],
+        "winefs": [],
+        "winerror": [],
+        "winevt": [],
+        "wingdi": [],
+        "winhttp": [],
+        "wininet": [],
+        "winineti": [],
+        "winioctl": [],
+        "winnetwk": [],
+        "winnls": [],
+        "winnt": [],
+        "winreg": [],
+        "winsafer": [],
+        "winscard": [],
+        "winsmcrd": [],
+        "winsock2": [],
+        "winspool": [],
+        "winstring": [],
+        "winsvc": [],
+        "wintrust": [],
+        "winusb": [],
+        "winusbio": [],
+        "winuser": [],
+        "winver": [],
+        "wlanapi": [],
+        "wlanihv": [],
+        "wlanihvtypes": [],
+        "wlantypes": [],
+        "wlclient": [],
+        "wmistr": [],
+        "wnnc": [],
+        "wow64apiset": [],
+        "wpdmtpextensions": [],
+        "ws2bth": [],
+        "ws2def": [],
+        "ws2ipdef": [],
+        "ws2spi": [],
+        "ws2tcpip": [],
+        "wtsapi32": [],
+        "wtypes": [],
+        "wtypesbase": [],
+        "xinput": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-0.3.9/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "default-target": "x86_64-pc-windows-msvc",
+            "features": [
+              "everything",
+              "impl-debug",
+              "impl-default"
+            ],
+            "targets": [
+              "aarch64-pc-windows-msvc",
+              "i686-pc-windows-msvc",
+              "x86_64-pc-windows-msvc"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Peter Atashian <retep998@gmail.com>"
+      ],
+      "categories": [
+        "external-ffi-bindings",
+        "no-std",
+        "os::windows-apis"
+      ],
+      "keywords": [
+        "windows",
+        "ffi",
+        "win32",
+        "com",
+        "directx"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/retep998/winapi-rs",
+      "homepage": null,
+      "documentation": "https://docs.rs/winapi/",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "winapi-i686-pc-windows-gnu",
+      "version": "0.4.0",
+      "id": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "winapi-i686-pc-windows-gnu",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-i686-pc-windows-gnu-0.4.0/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-i686-pc-windows-gnu-0.4.0/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-i686-pc-windows-gnu-0.4.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Peter Atashian <retep998@gmail.com>"
+      ],
+      "categories": [],
+      "keywords": [
+        "windows"
+      ],
+      "readme": null,
+      "repository": "https://github.com/retep998/winapi-rs",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "winapi-x86_64-pc-windows-gnu",
+      "version": "0.4.0",
+      "id": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "winapi-x86_64-pc-windows-gnu",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-x86_64-pc-windows-gnu-0.4.0/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-x86_64-pc-windows-gnu-0.4.0/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-x86_64-pc-windows-gnu-0.4.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Peter Atashian <retep998@gmail.com>"
+      ],
+      "categories": [],
+      "keywords": [
+        "windows"
+      ],
+      "readme": null,
+      "repository": "https://github.com/retep998/winapi-rs",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    }
+  ],
+  "workspace_members": [
+    "rust-errno-project 0.1.0 (path+file://{{ mock_workspace }})"
+  ],
+  "resolve": {
+    "nodes": [
+      {
+        "id": "cc 1.0.73 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "errno 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "errno-dragonfly 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+          "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+          "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "errno_dragonfly",
+            "pkg": "errno-dragonfly 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(target_os = \"dragonfly\")"
+              }
+            ]
+          },
+          {
+            "name": "libc",
+            "pkg": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(unix)"
+              },
+              {
+                "kind": null,
+                "target": "cfg(target_os = \"hermit\")"
+              },
+              {
+                "kind": null,
+                "target": "cfg(target_os = \"wasi\")"
+              }
+            ]
+          },
+          {
+            "name": "winapi",
+            "pkg": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(windows)"
+              }
+            ]
+          }
+        ],
+        "features": [
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "errno-dragonfly 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cc 1.0.73 (registry+https://github.com/rust-lang/crates.io-index)",
+          "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cc",
+            "pkg": "cc 1.0.73 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": "build",
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "libc",
+            "pkg": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "rust-errno-project 0.1.0 (path+file:///home/sayrer/github/grafica/rust-errno-project)",
+        "dependencies": [
+          "errno 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "errno",
+            "pkg": "errno 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "winapi_i686_pc_windows_gnu",
+            "pkg": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "i686-pc-windows-gnu"
+              }
+            ]
+          },
+          {
+            "name": "winapi_x86_64_pc_windows_gnu",
+            "pkg": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "x86_64-pc-windows-gnu"
+              }
+            ]
+          }
+        ],
+        "features": [
+          "errhandlingapi",
+          "minwindef",
+          "ntdef",
+          "winbase"
+        ]
+      },
+      {
+        "id": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      }
+    ],
+    "root": "rust-errno-project 0.1.0 (path+file://{{ mock_workspace }})"
+  },
+  "target_directory": "{{ mock_workspace }}/target",
+  "version": 1,
+  "workspace_root": "{{ mock_workspace }}",
+  "metadata": null
+}
\ No newline at end of file

From 455761f7a970bef449b2b445644c5f09272100ed Mon Sep 17 00:00:00 2001
From: Robert Sayre <sayrer@gmail.com>
Date: Sun, 26 Jun 2022 12:10:23 -0700
Subject: [PATCH 2/8] Checkpoint for a more generic implementation.

---
 impl/src/context.rs              | 13 +++++--
 impl/src/features.rs             | 55 +++++++++++-----------------
 impl/src/planning.rs             | 38 ++++++++++++++++++++
 impl/src/planning/subplanners.rs | 62 +++++++++++---------------------
 4 files changed, 89 insertions(+), 79 deletions(-)

diff --git a/impl/src/context.rs b/impl/src/context.rs
index ef97f3e8b..b6795d52d 100644
--- a/impl/src/context.rs
+++ b/impl/src/context.rs
@@ -14,7 +14,7 @@
 
 use std::collections::{BTreeMap, BTreeSet};
 
-use crate::{features::Features, settings::CrateSettings};
+use crate::{features::Features, planning::PlatformCrateAttribute, settings::CrateSettings};
 use camino::Utf8PathBuf;
 use semver::Version;
 use serde::{Deserialize, Serialize};
@@ -141,8 +141,17 @@ impl CrateDependencyContext {
 
 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
 pub struct CrateTargetedDepContext {
-  pub deps: CrateDependencyContext,
   pub platform_targets: Vec<String>,
+  pub deps: CrateDependencyContext,
+}
+
+impl PlatformCrateAttribute<CrateDependencyContext> for CrateTargetedDepContext {
+  fn new(platforms: Vec<String>, attrs: Vec<CrateDependencyContext>) -> Self {
+    CrateTargetedDepContext {
+      platform_targets: platforms,
+      deps: attrs[0].clone(),
+    }
+  }
 }
 
 #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Serialize, Deserialize)]
diff --git a/impl/src/features.rs b/impl/src/features.rs
index f674367ed..ffddaf220 100644
--- a/impl/src/features.rs
+++ b/impl/src/features.rs
@@ -17,6 +17,7 @@ use std::path::Path;
 use std::process::Command;
 
 use crate::error::RazeError;
+use crate::planning::{consolidate_platform_attributes, PlatformCrateAttribute};
 use crate::settings::RazeSettings;
 use crate::util::cargo_bin_path;
 use anyhow::{Error, Result};
@@ -47,6 +48,15 @@ pub struct TargetedFeatures {
   pub features: Vec<String>,
 }
 
+impl PlatformCrateAttribute<String> for TargetedFeatures {
+  fn new(platforms: Vec<String>, attrs: Vec<String>) -> Self {
+    TargetedFeatures {
+      platforms,
+      features: attrs,
+    }
+  }
+}
+
 // A function that runs `cargo-tree` to analyze per-platform features.
 // This step should not need to be separate from cargo-metadata, but cargo-metadata's
 // output is incomplete in this respect.
@@ -248,48 +258,23 @@ fn consolidate_features(
   let common_features = sets.iter().skip(1).fold(sets[0].clone(), |acc, hs| {
     acc.intersection(hs).cloned().collect()
   });
-
-  // Partition the platform features
-  let mut platform_map: BTreeMap<String, Vec<String>> = BTreeMap::new();
-  for (platform, pfs) in features {
-    for feature in pfs {
-      if !common_features.contains(&feature) {
-        platform_map
-          .entry(feature)
-          .and_modify(|e| e.push(platform.clone()))
-          .or_insert_with(|| vec![platform.clone()]);
-      }
-    }
-  }
-
-  let mut platforms_to_features: BTreeMap<Vec<String>, Vec<String>> = BTreeMap::new();
-  for (feature, platforms) in platform_map {
-    let key = platforms.clone();
-    platforms_to_features
-      .entry(key)
-      .and_modify(|e| e.push(feature.clone()))
-      .or_insert_with(|| vec![feature]);
-  }
-
-  let mut common_vec: Vec<String> = common_features.iter().cloned().collect();
-  common_vec.sort();
-
-  let targeted_features: Vec<TargetedFeatures> = platforms_to_features
+  let platform_features: BTreeMap<String, BTreeSet<String>> = features
     .iter()
-    .map(|ptf| {
-      let (platforms, features) = ptf;
-      TargetedFeatures {
-        platforms: platforms.to_vec(),
-        features: features.to_vec(),
-      }
+    .map(|(platform, pfs)| {
+      (
+        platform.to_string(),
+        pfs.difference(&common_features).cloned().collect(),
+      )
     })
     .collect();
 
   (
     id,
     Features {
-      features: common_vec,
-      targeted_features,
+      features: common_features.iter().cloned().collect(),
+      targeted_features: consolidate_platform_attributes::<String, TargetedFeatures>(
+        platform_features,
+      ),
     },
   )
 }
diff --git a/impl/src/planning.rs b/impl/src/planning.rs
index ba2f4f10d..2ff636b34 100644
--- a/impl/src/planning.rs
+++ b/impl/src/planning.rs
@@ -16,6 +16,8 @@ mod crate_catalog;
 mod license;
 mod subplanners;
 
+use std::collections::{BTreeMap, BTreeSet};
+
 use anyhow::Result;
 use cargo_lock::Lockfile;
 
@@ -79,6 +81,42 @@ impl BuildPlannerImpl {
   }
 }
 
+/// Items that need to be rendered with platform select blocks.
+pub trait PlatformCrateAttribute<T> {
+  fn new(platforms: Vec<String>, attrs: Vec<T>) -> Self;
+}
+
+/// Group PlatformCrateAttribute items into concise select blocks, with no duplicates.
+pub fn consolidate_platform_attributes<
+  AttrType: Ord + Clone,
+  T: PlatformCrateAttribute<AttrType>,
+>(
+  platform_attributes: BTreeMap<String, BTreeSet<AttrType>>,
+) -> Vec<T> {
+  let mut platform_map: BTreeMap<AttrType, Vec<String>> = BTreeMap::new();
+  for (platform, pfs) in platform_attributes {
+    for feature in pfs {
+      platform_map
+        .entry(feature)
+        .and_modify(|e| e.push(platform.clone()))
+        .or_insert_with(|| vec![platform.clone()]);
+    }
+  }
+
+  let mut platforms_to_features: BTreeMap<Vec<String>, Vec<AttrType>> = BTreeMap::new();
+  for (feature, platforms) in platform_map {
+    platforms_to_features
+      .entry(platforms.clone())
+      .and_modify(|e| e.push(feature.clone()))
+      .or_insert_with(|| vec![feature.clone()]);
+  }
+
+  platforms_to_features
+    .iter()
+    .map(|(platforms, features)| T::new(platforms.to_vec(), features.to_vec()))
+    .collect()
+}
+
 #[cfg(test)]
 pub mod tests {
   use std::{collections::BTreeMap, collections::HashMap, collections::HashSet};
diff --git a/impl/src/planning/subplanners.rs b/impl/src/planning/subplanners.rs
index d2267ee30..ad6f31613 100644
--- a/impl/src/planning/subplanners.rs
+++ b/impl/src/planning/subplanners.rs
@@ -13,7 +13,7 @@
 // limitations under the License.
 
 use std::{
-  collections::{BTreeMap, HashMap, HashSet},
+  collections::{BTreeMap, BTreeSet, HashMap, HashSet},
   io, iter,
   str::FromStr,
 };
@@ -34,7 +34,7 @@ use crate::{
   error::{RazeError, PLEASE_FILE_A_BUG},
   features::Features,
   metadata::RazeMetadata,
-  planning::license,
+  planning::{consolidate_platform_attributes, license},
   settings::{CrateSettings, GenMode, RazeSettings},
   util,
 };
@@ -308,45 +308,23 @@ impl<'planner> CrateSubplanner<'planner> {
       ctx.subtract(&default_deps);
     }
 
-    // Build a list of dependencies while addressing a potential allowlist of target triples
-    let targeted_deps = deps
-      .into_iter()
-      .map(|(target, deps)| {
-        let target = target.unwrap();
-        let platform_targets = util::get_matching_bazel_triples(&target, &self.settings.targets)?
-          .map(|x| x.to_string())
-          .collect();
-
-        Ok(CrateTargetedDepContext {
-          deps,
-          platform_targets,
-        })
-      })
-      .filter(|res| match res {
-        Ok(ctx) => !ctx.platform_targets.is_empty(),
-        Err(_) => true,
-      })
-      .collect::<Result<Vec<_>>>()?;
-
-    // Consolidate any dependencies duplicated across platforms
-    let mut platform_map: BTreeMap<CrateDependencyContext, Vec<String>> = BTreeMap::new();
-    for targeted_dep in &targeted_deps {
-      platform_map
-        .entry(targeted_dep.deps.clone())
-        .and_modify(|e| e.append(&mut targeted_dep.platform_targets.clone()))
-        .or_insert_with(|| targeted_dep.platform_targets.clone());
-    }
-    let grouped_targeted_deps: Vec<CrateTargetedDepContext> = platform_map
-      .iter()
-      .map(|dep| {
-        let mut targets = dep.1.clone();
-        targets.sort();
-        CrateTargetedDepContext {
-          deps: dep.0.clone(),
-          platform_targets: targets,
-        }
-      })
-      .collect();
+    // Build a list of dependencies while addressing a potential allowlist of target triples and consolidate any dependencies duplicated across platforms.
+    let targeted_deps =
+      consolidate_platform_attributes::<CrateDependencyContext, CrateTargetedDepContext>(
+        deps
+          .into_iter()
+          .flat_map(|(target, dep_context)| {
+            let target = target.unwrap();
+            if let Ok(triples) = util::get_matching_bazel_triples(&target, &self.settings.targets) {
+              triples
+                .map(|i| (i.to_string(), BTreeSet::from([dep_context.clone()])))
+                .collect()
+            } else {
+              vec![]
+            }
+          })
+          .collect(),
+      );
 
     let mut workspace_member_dependents: Vec<Utf8PathBuf> = Vec::new();
     let mut workspace_member_dev_dependents: Vec<Utf8PathBuf> = Vec::new();
@@ -422,7 +400,7 @@ impl<'planner> CrateSubplanner<'planner> {
       is_binary_dependency,
       is_proc_macro,
       default_deps,
-      targeted_deps: grouped_targeted_deps,
+      targeted_deps,
       workspace_path_to_crate: self.crate_catalog_entry.workspace_path(self.settings)?,
       build_script_target: build_script_target_opt,
       links: package.links.clone(),

From 464047ff104cbd5671eef46a86086f3748806252 Mon Sep 17 00:00:00 2001
From: Robert Sayre <sayrer@gmail.com>
Date: Sun, 26 Jun 2022 14:59:59 -0700
Subject: [PATCH 3/8] Pass on 1.54

---
 impl/src/context.rs              |  1 +
 impl/src/planning.rs             | 18 +++++++++---------
 impl/src/planning/subplanners.rs |  4 +++-
 3 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/impl/src/context.rs b/impl/src/context.rs
index b6795d52d..c46fbdba2 100644
--- a/impl/src/context.rs
+++ b/impl/src/context.rs
@@ -147,6 +147,7 @@ pub struct CrateTargetedDepContext {
 
 impl PlatformCrateAttribute<CrateDependencyContext> for CrateTargetedDepContext {
   fn new(platforms: Vec<String>, attrs: Vec<CrateDependencyContext>) -> Self {
+    assert_eq!(attrs.len(), 1);
     CrateTargetedDepContext {
       platform_targets: platforms,
       deps: attrs[0].clone(),
diff --git a/impl/src/planning.rs b/impl/src/planning.rs
index 2ff636b34..fd43b905b 100644
--- a/impl/src/planning.rs
+++ b/impl/src/planning.rs
@@ -95,25 +95,25 @@ pub fn consolidate_platform_attributes<
 ) -> Vec<T> {
   let mut platform_map: BTreeMap<AttrType, Vec<String>> = BTreeMap::new();
   for (platform, pfs) in platform_attributes {
-    for feature in pfs {
+    for attr in pfs {
       platform_map
-        .entry(feature)
+        .entry(attr)
         .and_modify(|e| e.push(platform.clone()))
         .or_insert_with(|| vec![platform.clone()]);
     }
   }
 
-  let mut platforms_to_features: BTreeMap<Vec<String>, Vec<AttrType>> = BTreeMap::new();
-  for (feature, platforms) in platform_map {
-    platforms_to_features
+  let mut platforms_to_attrs: BTreeMap<Vec<String>, Vec<AttrType>> = BTreeMap::new();
+  for (attr, platforms) in platform_map {
+    platforms_to_attrs
       .entry(platforms.clone())
-      .and_modify(|e| e.push(feature.clone()))
-      .or_insert_with(|| vec![feature.clone()]);
+      .and_modify(|e| e.push(attr.clone()))
+      .or_insert_with(|| vec![attr.clone()]);
   }
 
-  platforms_to_features
+  platforms_to_attrs
     .iter()
-    .map(|(platforms, features)| T::new(platforms.to_vec(), features.to_vec()))
+    .map(|(platforms, attrs)| T::new(platforms.to_vec(), attrs.to_vec()))
     .collect()
 }
 
diff --git a/impl/src/planning/subplanners.rs b/impl/src/planning/subplanners.rs
index ad6f31613..b4fcfbd4f 100644
--- a/impl/src/planning/subplanners.rs
+++ b/impl/src/planning/subplanners.rs
@@ -316,8 +316,10 @@ impl<'planner> CrateSubplanner<'planner> {
           .flat_map(|(target, dep_context)| {
             let target = target.unwrap();
             if let Ok(triples) = util::get_matching_bazel_triples(&target, &self.settings.targets) {
+              let mut dep_set = BTreeSet::new();
+              dep_set.insert(dep_context.clone());
               triples
-                .map(|i| (i.to_string(), BTreeSet::from([dep_context.clone()])))
+                .map(|i| (i.to_string(), dep_set.clone()))
                 .collect()
             } else {
               vec![]

From 963d0fca148f3a335fd057724a12cd021e7db170 Mon Sep 17 00:00:00 2001
From: Robert Sayre <sayrer@gmail.com>
Date: Sun, 26 Jun 2022 15:05:32 -0700
Subject: [PATCH 4/8] Clippy.

---
 impl/src/planning/subplanners.rs | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/impl/src/planning/subplanners.rs b/impl/src/planning/subplanners.rs
index b4fcfbd4f..c642fb8c1 100644
--- a/impl/src/planning/subplanners.rs
+++ b/impl/src/planning/subplanners.rs
@@ -317,10 +317,8 @@ impl<'planner> CrateSubplanner<'planner> {
             let target = target.unwrap();
             if let Ok(triples) = util::get_matching_bazel_triples(&target, &self.settings.targets) {
               let mut dep_set = BTreeSet::new();
-              dep_set.insert(dep_context.clone());
-              triples
-                .map(|i| (i.to_string(), dep_set.clone()))
-                .collect()
+              dep_set.insert(dep_context);
+              triples.map(|i| (i.to_string(), dep_set.clone())).collect()
             } else {
               vec![]
             }

From 645bca86669a8b62cd3334f8d65fed4dfdc96688 Mon Sep 17 00:00:00 2001
From: Robert Sayre <sayrer@gmail.com>
Date: Sun, 26 Jun 2022 16:11:58 -0700
Subject: [PATCH 5/8] Run bootstrap, needs inspection.

---
 .../cargo/remote/BUILD.async-io-1.3.1.bazel   |  4 +-
 .../remote/BUILD.async-process-1.0.2.bazel    |  4 +-
 .../cargo/remote/BUILD.async-std-1.9.0.bazel  |  5 +--
 .../cargo/remote/BUILD.atty-0.2.14.bazel      |  4 +-
 .../cargo/remote/BUILD.curl-0.4.35.bazel      |  4 +-
 .../BUILD.curl-sys-0.4.41+curl-7.75.0.bazel   |  9 +----
 .../cargo/remote/BUILD.dirs-1.0.5.bazel       |  4 +-
 .../cargo/remote/BUILD.filetime-0.2.14.bazel  |  4 +-
 .../cargo/remote/BUILD.getrandom-0.1.16.bazel | 32 ++++++++--------
 .../cargo/remote/BUILD.getrandom-0.2.2.bazel  | 32 ++++++++--------
 .../cargo/remote/BUILD.git2-0.13.20.bazel     |  2 +-
 .../cargo/remote/BUILD.jobserver-0.1.21.bazel |  4 +-
 .../BUILD.libgit2-sys-0.12.21+1.1.0.bazel     |  4 +-
 .../remote/BUILD.libssh2-sys-0.2.21.bazel     | 38 +++++++++----------
 .../cargo/remote/BUILD.mio-0.7.11.bazel       |  4 +-
 .../cargo/remote/BUILD.native-tls-0.2.7.bazel | 12 +++---
 .../cargo/remote/BUILD.nb-connect-1.1.0.bazel |  4 +-
 .../cargo/remote/BUILD.polling-2.0.3.bazel    |  4 +-
 .../cargo/remote/BUILD.rand-0.8.3.bazel       | 20 ++--------
 .../cargo/remote/BUILD.reqwest-0.11.2.bazel   | 22 +++++------
 .../cargo/remote/BUILD.socket2-0.3.19.bazel   |  4 +-
 .../cargo/remote/BUILD.socket2-0.4.0.bazel    |  4 +-
 .../cargo/remote/BUILD.tar-0.4.36.bazel       |  4 +-
 .../cargo/remote/BUILD.tempfile-3.2.0.bazel   |  4 +-
 .../cargo/remote/BUILD.tokio-1.16.1.bazel     |  4 +-
 25 files changed, 107 insertions(+), 129 deletions(-)

diff --git a/third_party/cargo/remote/BUILD.async-io-1.3.1.bazel b/third_party/cargo/remote/BUILD.async-io-1.3.1.bazel
index 9f8f4847c..632d679e6 100644
--- a/third_party/cargo/remote/BUILD.async-io-1.3.1.bazel
+++ b/third_party/cargo/remote/BUILD.async-io-1.3.1.bazel
@@ -70,12 +70,12 @@ rust_library(
         "@cargo_raze__waker_fn__1_1_0//:waker_fn",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.async-process-1.0.2.bazel b/third_party/cargo/remote/BUILD.async-process-1.0.2.bazel
index ab7ab4c21..9dadfba57 100644
--- a/third_party/cargo/remote/BUILD.async-process-1.0.2.bazel
+++ b/third_party/cargo/remote/BUILD.async-process-1.0.2.bazel
@@ -56,12 +56,12 @@ rust_library(
         "@cargo_raze__once_cell__1_7_2//:once_cell",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__async_io__1_3_1//:async_io",
             "@cargo_raze__signal_hook__0_3_8//:signal_hook",
diff --git a/third_party/cargo/remote/BUILD.async-std-1.9.0.bazel b/third_party/cargo/remote/BUILD.async-std-1.9.0.bazel
index 399666b28..c0f7b21e6 100644
--- a/third_party/cargo/remote/BUILD.async-std-1.9.0.bazel
+++ b/third_party/cargo/remote/BUILD.async-std-1.9.0.bazel
@@ -131,15 +131,14 @@ rust_library(
         "@cargo_raze__slab__0_4_2//:slab",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-pc-windows-msvc",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:wasm32-wasi",
         ): [
             "@cargo_raze__async_global_executor__2_0_2//:async_global_executor",
             "@cargo_raze__async_io__1_3_1//:async_io",
diff --git a/third_party/cargo/remote/BUILD.atty-0.2.14.bazel b/third_party/cargo/remote/BUILD.atty-0.2.14.bazel
index 580b8ea24..ff9b3d9d2 100644
--- a/third_party/cargo/remote/BUILD.atty-0.2.14.bazel
+++ b/third_party/cargo/remote/BUILD.atty-0.2.14.bazel
@@ -54,12 +54,12 @@ rust_library(
     deps = [
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.curl-0.4.35.bazel b/third_party/cargo/remote/BUILD.curl-0.4.35.bazel
index 1ea49e85a..76e559f32 100644
--- a/third_party/cargo/remote/BUILD.curl-0.4.35.bazel
+++ b/third_party/cargo/remote/BUILD.curl-0.4.35.bazel
@@ -66,9 +66,9 @@ cargo_build_script(
         "@cargo_raze__curl_sys__0_4_41_curl_7_75_0//:curl_sys",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__openssl_sys__0_9_73//:openssl_sys",
         ],
@@ -118,9 +118,9 @@ rust_library(
         "@cargo_raze__socket2__0_3_19//:socket2",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__openssl_probe__0_1_2//:openssl_probe",
             "@cargo_raze__openssl_sys__0_9_73//:openssl_sys",
diff --git a/third_party/cargo/remote/BUILD.curl-sys-0.4.41+curl-7.75.0.bazel b/third_party/cargo/remote/BUILD.curl-sys-0.4.41+curl-7.75.0.bazel
index fdbbf8923..792dce3b4 100644
--- a/third_party/cargo/remote/BUILD.curl-sys-0.4.41+curl-7.75.0.bazel
+++ b/third_party/cargo/remote/BUILD.curl-sys-0.4.41+curl-7.75.0.bazel
@@ -66,20 +66,13 @@ rust_library(
         "@cargo_raze__libz_sys__1_1_2//:libz_sys",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__openssl_sys__0_9_73//:openssl_sys",
         ],
         "//conditions:default": [],
-    }) + selects.with_or({
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
     }) + selects.with_or({
         (
             "@rules_rust//rust/platform:i686-pc-windows-msvc",
diff --git a/third_party/cargo/remote/BUILD.dirs-1.0.5.bazel b/third_party/cargo/remote/BUILD.dirs-1.0.5.bazel
index abe70da09..93d823d59 100644
--- a/third_party/cargo/remote/BUILD.dirs-1.0.5.bazel
+++ b/third_party/cargo/remote/BUILD.dirs-1.0.5.bazel
@@ -52,12 +52,12 @@ rust_library(
     deps = [
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.filetime-0.2.14.bazel b/third_party/cargo/remote/BUILD.filetime-0.2.14.bazel
index 41c3581a6..38760df5c 100644
--- a/third_party/cargo/remote/BUILD.filetime-0.2.14.bazel
+++ b/third_party/cargo/remote/BUILD.filetime-0.2.14.bazel
@@ -53,12 +53,12 @@ rust_library(
         "@cargo_raze__cfg_if__1_0_0//:cfg_if",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.getrandom-0.1.16.bazel b/third_party/cargo/remote/BUILD.getrandom-0.1.16.bazel
index 88123b7a8..585e9f997 100644
--- a/third_party/cargo/remote/BUILD.getrandom-0.1.16.bazel
+++ b/third_party/cargo/remote/BUILD.getrandom-0.1.16.bazel
@@ -57,18 +57,18 @@ cargo_build_script(
     deps = [
     ] + selects.with_or({
         (
-            "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
         ],
         "//conditions:default": [],
     }) + selects.with_or({
         (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:wasm32-wasi",
         ): [
         ],
         "//conditions:default": [],
@@ -100,23 +100,23 @@ rust_library(
         "@cargo_raze__cfg_if__1_0_0//:cfg_if",
     ] + selects.with_or({
         (
-            "@rules_rust//rust/platform:wasm32-wasi",
-        ): [
-            "@cargo_raze__wasi__0_9_0_wasi_snapshot_preview1//:wasi",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
         "//conditions:default": [],
+    }) + selects.with_or({
+        (
+            "@rules_rust//rust/platform:wasm32-wasi",
+        ): [
+            "@cargo_raze__wasi__0_9_0_wasi_snapshot_preview1//:wasi",
+        ],
+        "//conditions:default": [],
     }),
 )
 
diff --git a/third_party/cargo/remote/BUILD.getrandom-0.2.2.bazel b/third_party/cargo/remote/BUILD.getrandom-0.2.2.bazel
index 2310e45f6..575973d52 100644
--- a/third_party/cargo/remote/BUILD.getrandom-0.2.2.bazel
+++ b/third_party/cargo/remote/BUILD.getrandom-0.2.2.bazel
@@ -60,18 +60,18 @@ cargo_build_script(
     deps = [
     ] + selects.with_or({
         (
-            "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
         ],
         "//conditions:default": [],
     }) + selects.with_or({
         (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:wasm32-wasi",
         ): [
         ],
         "//conditions:default": [],
@@ -106,23 +106,23 @@ rust_library(
         "@cargo_raze__cfg_if__1_0_0//:cfg_if",
     ] + selects.with_or({
         (
-            "@rules_rust//rust/platform:wasm32-wasi",
-        ): [
-            "@cargo_raze__wasi__0_10_2_wasi_snapshot_preview1//:wasi",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
         "//conditions:default": [],
+    }) + selects.with_or({
+        (
+            "@rules_rust//rust/platform:wasm32-wasi",
+        ): [
+            "@cargo_raze__wasi__0_10_2_wasi_snapshot_preview1//:wasi",
+        ],
+        "//conditions:default": [],
     }),
 )
 
diff --git a/third_party/cargo/remote/BUILD.git2-0.13.20.bazel b/third_party/cargo/remote/BUILD.git2-0.13.20.bazel
index 0bb18ec8c..b5fd19b6e 100644
--- a/third_party/cargo/remote/BUILD.git2-0.13.20.bazel
+++ b/third_party/cargo/remote/BUILD.git2-0.13.20.bazel
@@ -93,9 +93,9 @@ rust_library(
         "@cargo_raze__url__2_2_1//:url",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__openssl_probe__0_1_2//:openssl_probe",
             "@cargo_raze__openssl_sys__0_9_73//:openssl_sys",
diff --git a/third_party/cargo/remote/BUILD.jobserver-0.1.21.bazel b/third_party/cargo/remote/BUILD.jobserver-0.1.21.bazel
index b6e074f52..6d7ee264e 100644
--- a/third_party/cargo/remote/BUILD.jobserver-0.1.21.bazel
+++ b/third_party/cargo/remote/BUILD.jobserver-0.1.21.bazel
@@ -52,12 +52,12 @@ rust_library(
     deps = [
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.libgit2-sys-0.12.21+1.1.0.bazel b/third_party/cargo/remote/BUILD.libgit2-sys-0.12.21+1.1.0.bazel
index e7e23fc17..79cfdce03 100644
--- a/third_party/cargo/remote/BUILD.libgit2-sys-0.12.21+1.1.0.bazel
+++ b/third_party/cargo/remote/BUILD.libgit2-sys-0.12.21+1.1.0.bazel
@@ -65,12 +65,12 @@ rust_library(
         "@cargo_raze__libz_sys__1_1_2//:libz_sys",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__openssl_sys__0_9_73//:openssl_sys",
         ],
diff --git a/third_party/cargo/remote/BUILD.libssh2-sys-0.2.21.bazel b/third_party/cargo/remote/BUILD.libssh2-sys-0.2.21.bazel
index 1ba96f6ed..8b93184c8 100644
--- a/third_party/cargo/remote/BUILD.libssh2-sys-0.2.21.bazel
+++ b/third_party/cargo/remote/BUILD.libssh2-sys-0.2.21.bazel
@@ -64,24 +64,24 @@ cargo_build_script(
         "@cargo_raze__pkg_config__0_3_19//:pkg_config",
     ] + selects.with_or({
         (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@cargo_raze__vcpkg__0_2_11//:vcpkg",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__openssl_sys__0_9_73//:openssl_sys",
         ],
         "//conditions:default": [],
+    }) + selects.with_or({
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            "@cargo_raze__vcpkg__0_2_11//:vcpkg",
+        ],
+        "//conditions:default": [],
     }),
 )
 
@@ -110,22 +110,22 @@ rust_library(
         "@cargo_raze__libz_sys__1_1_2//:libz_sys",
     ] + selects.with_or({
         (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__openssl_sys__0_9_73//:openssl_sys",
         ],
         "//conditions:default": [],
+    }) + selects.with_or({
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+        ],
+        "//conditions:default": [],
     }),
 )
diff --git a/third_party/cargo/remote/BUILD.mio-0.7.11.bazel b/third_party/cargo/remote/BUILD.mio-0.7.11.bazel
index 2afe4b3d1..f2f3accbd 100644
--- a/third_party/cargo/remote/BUILD.mio-0.7.11.bazel
+++ b/third_party/cargo/remote/BUILD.mio-0.7.11.bazel
@@ -67,12 +67,12 @@ rust_library(
         "@cargo_raze__log__0_4_14//:log",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.native-tls-0.2.7.bazel b/third_party/cargo/remote/BUILD.native-tls-0.2.7.bazel
index 83cc7b582..68181cf6b 100644
--- a/third_party/cargo/remote/BUILD.native-tls-0.2.7.bazel
+++ b/third_party/cargo/remote/BUILD.native-tls-0.2.7.bazel
@@ -57,20 +57,20 @@ cargo_build_script(
     deps = [
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
         ): [
             "@cargo_raze__security_framework_sys__2_2_0//:security_framework_sys",
         ],
         "//conditions:default": [],
     }) + selects.with_or({
         (
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
             "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             "@cargo_raze__openssl_sys__0_9_73//:openssl_sys",
         ],
@@ -111,9 +111,9 @@ rust_library(
         ":native_tls_build_script",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
         ): [
             "@cargo_raze__lazy_static__1_4_0//:lazy_static",
             "@cargo_raze__libc__0_2_92//:libc",
@@ -124,11 +124,11 @@ rust_library(
         "//conditions:default": [],
     }) + selects.with_or({
         (
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
             "@rules_rust//rust/platform:wasm32-wasi",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             "@cargo_raze__log__0_4_14//:log",
             "@cargo_raze__openssl__0_10_40//:openssl",
diff --git a/third_party/cargo/remote/BUILD.nb-connect-1.1.0.bazel b/third_party/cargo/remote/BUILD.nb-connect-1.1.0.bazel
index 426b2cbe7..13a1e1ab2 100644
--- a/third_party/cargo/remote/BUILD.nb-connect-1.1.0.bazel
+++ b/third_party/cargo/remote/BUILD.nb-connect-1.1.0.bazel
@@ -53,12 +53,12 @@ rust_library(
         "@cargo_raze__socket2__0_4_0//:socket2",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.polling-2.0.3.bazel b/third_party/cargo/remote/BUILD.polling-2.0.3.bazel
index 7032bbe11..f8bd9a6a8 100644
--- a/third_party/cargo/remote/BUILD.polling-2.0.3.bazel
+++ b/third_party/cargo/remote/BUILD.polling-2.0.3.bazel
@@ -60,12 +60,12 @@ rust_library(
         "@cargo_raze__log__0_4_14//:log",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.rand-0.8.3.bazel b/third_party/cargo/remote/BUILD.rand-0.8.3.bazel
index 77caf70d6..009d2eab5 100644
--- a/third_party/cargo/remote/BUILD.rand-0.8.3.bazel
+++ b/third_party/cargo/remote/BUILD.rand-0.8.3.bazel
@@ -63,30 +63,18 @@ rust_library(
         "@cargo_raze__rand_core__0_6_2//:rand_core",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-pc-windows-msvc",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
-            "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
             "@rules_rust//rust/platform:wasm32-wasi",
-        ): [
-            "@cargo_raze__rand_chacha__0_3_0//:rand_chacha",
-        ],
-        "//conditions:default": [],
-    }) + selects.with_or({
-        (
-            "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
-            "@cargo_raze__libc__0_2_92//:libc",
+            "@cargo_raze__rand_chacha__0_3_0//:rand_chacha",
         ],
         "//conditions:default": [],
     }),
diff --git a/third_party/cargo/remote/BUILD.reqwest-0.11.2.bazel b/third_party/cargo/remote/BUILD.reqwest-0.11.2.bazel
index 141306eb2..dccdafc1e 100644
--- a/third_party/cargo/remote/BUILD.reqwest-0.11.2.bazel
+++ b/third_party/cargo/remote/BUILD.reqwest-0.11.2.bazel
@@ -82,14 +82,12 @@ rust_library(
         "@cargo_raze__url__2_2_1//:url",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__base64__0_13_0//:base64",
             "@cargo_raze__encoding_rs__0_8_28//:encoding_rs",
@@ -109,6 +107,14 @@ rust_library(
             "@cargo_raze__tokio_native_tls__0_3_0//:tokio_native_tls",
         ],
         "//conditions:default": [],
+    }) + selects.with_or({
+        (
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
+        ): [
+            "@cargo_raze__winreg__0_7_0//:winreg",
+        ],
+        "//conditions:default": [],
     }) + selects.with_or({
         (
             "@rules_rust//rust/platform:wasm32-unknown-unknown",
@@ -120,14 +126,6 @@ rust_library(
             "@cargo_raze__web_sys__0_3_50//:web_sys",
         ],
         "//conditions:default": [],
-    }) + selects.with_or({
-        (
-            "@rules_rust//rust/platform:i686-pc-windows-msvc",
-            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
-        ): [
-            "@cargo_raze__winreg__0_7_0//:winreg",
-        ],
-        "//conditions:default": [],
     }),
 )
 
diff --git a/third_party/cargo/remote/BUILD.socket2-0.3.19.bazel b/third_party/cargo/remote/BUILD.socket2-0.3.19.bazel
index cc79eac42..762e23e65 100644
--- a/third_party/cargo/remote/BUILD.socket2-0.3.19.bazel
+++ b/third_party/cargo/remote/BUILD.socket2-0.3.19.bazel
@@ -52,12 +52,12 @@ rust_library(
     deps = [
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__cfg_if__1_0_0//:cfg_if",
             "@cargo_raze__libc__0_2_92//:libc",
diff --git a/third_party/cargo/remote/BUILD.socket2-0.4.0.bazel b/third_party/cargo/remote/BUILD.socket2-0.4.0.bazel
index 9225d685b..da6a71106 100644
--- a/third_party/cargo/remote/BUILD.socket2-0.4.0.bazel
+++ b/third_party/cargo/remote/BUILD.socket2-0.4.0.bazel
@@ -55,12 +55,12 @@ rust_library(
     deps = [
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.tar-0.4.36.bazel b/third_party/cargo/remote/BUILD.tar-0.4.36.bazel
index 53d59a748..9d50a9498 100644
--- a/third_party/cargo/remote/BUILD.tar-0.4.36.bazel
+++ b/third_party/cargo/remote/BUILD.tar-0.4.36.bazel
@@ -65,12 +65,12 @@ rust_library(
         "@cargo_raze__filetime__0_2_14//:filetime",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
             "@cargo_raze__xattr__0_2_2//:xattr",
diff --git a/third_party/cargo/remote/BUILD.tempfile-3.2.0.bazel b/third_party/cargo/remote/BUILD.tempfile-3.2.0.bazel
index c952bf8c8..3f4df63ff 100644
--- a/third_party/cargo/remote/BUILD.tempfile-3.2.0.bazel
+++ b/third_party/cargo/remote/BUILD.tempfile-3.2.0.bazel
@@ -55,12 +55,12 @@ rust_library(
         "@cargo_raze__remove_dir_all__0_5_3//:remove_dir_all",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
         ],
diff --git a/third_party/cargo/remote/BUILD.tokio-1.16.1.bazel b/third_party/cargo/remote/BUILD.tokio-1.16.1.bazel
index 022e7a653..5bb43ee91 100644
--- a/third_party/cargo/remote/BUILD.tokio-1.16.1.bazel
+++ b/third_party/cargo/remote/BUILD.tokio-1.16.1.bazel
@@ -101,12 +101,12 @@ rust_library(
         "@cargo_raze__pin_project_lite__0_2_6//:pin_project_lite",
     ] + selects.with_or({
         (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
-            "@rules_rust//rust/platform:aarch64-apple-darwin",
-            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
         ): [
             "@cargo_raze__libc__0_2_92//:libc",
             "@cargo_raze__signal_hook_registry__1_3_0//:signal_hook_registry",

From 6139729949e9b585c454e814f7dc26bbfc47984a Mon Sep 17 00:00:00 2001
From: Robert Sayre <sayrer@gmail.com>
Date: Tue, 28 Jun 2022 11:08:31 -0700
Subject: [PATCH 6/8] Do a better job grouping platform dependencies.

---
 impl/src/planning.rs                          |    82 +-
 impl/src/planning/subplanners.rs              |    50 +-
 impl/src/testing.rs                           |     1 +
 .../target_os_is_not_unknown.json.template    | 15075 ++++++++++++++++
 4 files changed, 15189 insertions(+), 19 deletions(-)
 create mode 100644 impl/src/testing/metadata_templates/target_os_is_not_unknown.json.template

diff --git a/impl/src/planning.rs b/impl/src/planning.rs
index fd43b905b..59f06fd41 100644
--- a/impl/src/planning.rs
+++ b/impl/src/planning.rs
@@ -16,7 +16,10 @@ mod crate_catalog;
 mod license;
 mod subplanners;
 
-use std::collections::{BTreeMap, BTreeSet};
+use std::{
+  collections::{BTreeMap, BTreeSet},
+  fmt::Debug,
+};
 
 use anyhow::Result;
 use cargo_lock::Lockfile;
@@ -88,7 +91,7 @@ pub trait PlatformCrateAttribute<T> {
 
 /// Group PlatformCrateAttribute items into concise select blocks, with no duplicates.
 pub fn consolidate_platform_attributes<
-  AttrType: Ord + Clone,
+  AttrType: Ord + Clone + Debug,
   T: PlatformCrateAttribute<AttrType>,
 >(
   platform_attributes: BTreeMap<String, BTreeSet<AttrType>>,
@@ -450,6 +453,81 @@ pub mod tests {
     assert_eq!(flate2.targeted_deps[0].deps.dependencies.len(), 0);
   }
 
+  #[test]
+  fn test_plan_includes_all_not_unknown_targets() {
+    let mut settings = dummy_raze_settings();
+    settings.genmode = GenMode::Remote;
+    let mut triples = HashSet::new();
+    triples.insert("aarch64-apple-darwin".to_string());
+    triples.insert("aarch64-unknown-linux-gnu".to_string());
+    triples.insert("i686-apple-darwin".to_string());
+    triples.insert("i686-pc-windows-msvc".to_string());
+    triples.insert("i686-unknown-linux-gnu".to_string());
+    triples.insert("x86_64-apple-darwin".to_string());
+    triples.insert("x86_64-pc-windows-msvc".to_string());
+    triples.insert("x86_64-unknown-linux-gnu".to_string());
+    triples.insert("wasm32-wasi".to_string());
+    triples.insert("wasm32-unknown-unknown".to_string());
+    settings.targets = Some(triples);
+
+    let planner = BuildPlannerImpl::new(
+      dummy_workspace_crate_metadata(templates::TARGET_OS_IS_NOT_UNKNOWN),
+      settings,
+    );
+    let planned_build = planner.plan_build(None).unwrap();
+    let async_std = planned_build
+      .crate_contexts
+      .iter()
+      .find(|ctx| ctx.pkg_name == "async-std")
+      .unwrap();
+
+    // The wasm-targeted deps should have both wasm platforms
+    let wasm_targeted_dep_context = async_std
+      .targeted_deps
+      .iter()
+      .find(|dep_context| {
+        dep_context
+          .deps
+          .dependencies
+          .iter()
+          .find(|dep| dep.name == "wasm-bindgen-futures")
+          .is_some()
+      })
+      .unwrap();
+    assert_eq!(
+      wasm_targeted_dep_context.platform_targets,
+      vec!["wasm32-unknown-unknown", "wasm32-wasi",]
+    );
+
+    // The wasm-targeted deps should have both wasm platforms
+    let os_targeted_dep_context = async_std
+      .targeted_deps
+      .iter()
+      .find(|dep_context| {
+        dep_context
+          .deps
+          .dependencies
+          .iter()
+          .find(|dep| dep.name == "async-io")
+          .is_some()
+      })
+      .unwrap();
+    assert_eq!(
+      os_targeted_dep_context.platform_targets,
+      vec![
+        "aarch64-apple-darwin",
+        "aarch64-unknown-linux-gnu",
+        "i686-apple-darwin",
+        "i686-pc-windows-msvc",
+        "i686-unknown-linux-gnu",
+        "wasm32-wasi",
+        "x86_64-apple-darwin",
+        "x86_64-pc-windows-msvc",
+        "x86_64-unknown-linux-gnu"
+      ]
+    );
+  }
+
   #[test]
   // Tests the fix for https://github.com/google/cargo-raze/issues/451.
   // Bazel errors out if mutually exclusive select branches contain the
diff --git a/impl/src/planning/subplanners.rs b/impl/src/planning/subplanners.rs
index c642fb8c1..a86d35544 100644
--- a/impl/src/planning/subplanners.rs
+++ b/impl/src/planning/subplanners.rs
@@ -50,7 +50,7 @@ use url::Url;
 type CrateContextProduction = (Vec<CrateContext>, Vec<DependencyAlias>);
 
 /// Utility type alias to reduce declaration noise
-type DepProduction = HashMap<Option<String>, CrateDependencyContext>;
+type DepProduction = BTreeMap<Option<String>, CrateDependencyContext>;
 
 /// An internal working planner for generating context for an individual crate.
 struct CrateSubplanner<'planner> {
@@ -308,23 +308,39 @@ impl<'planner> CrateSubplanner<'planner> {
       ctx.subtract(&default_deps);
     }
 
+    let remaining_deps: Vec<(String, CrateDependencyContext)> = deps
+      .into_iter()
+      .flat_map(|(target, dep_context)| {
+        let target = target.unwrap();
+        if let Ok(triples) = util::get_matching_bazel_triples(&target, &self.settings.targets) {
+          triples
+            .map(|i| (i.to_string(), dep_context.clone()))
+            .collect()
+        } else {
+          vec![]
+        }
+      })
+      .collect();
+
+    let mut platform_deps: BTreeMap<String, BTreeSet<CrateDependencyContext>> = BTreeMap::new();
+    for (platform, context) in remaining_deps {
+      platform_deps
+        .entry(platform.to_string())
+        .and_modify(|e| {
+          e.insert(context.clone());
+        })
+        .or_insert_with(|| {
+          let mut set = BTreeSet::new();
+          set.insert(context.clone());
+          set
+        });
+    }
+
     // Build a list of dependencies while addressing a potential allowlist of target triples and consolidate any dependencies duplicated across platforms.
-    let targeted_deps =
-      consolidate_platform_attributes::<CrateDependencyContext, CrateTargetedDepContext>(
-        deps
-          .into_iter()
-          .flat_map(|(target, dep_context)| {
-            let target = target.unwrap();
-            if let Ok(triples) = util::get_matching_bazel_triples(&target, &self.settings.targets) {
-              let mut dep_set = BTreeSet::new();
-              dep_set.insert(dep_context);
-              triples.map(|i| (i.to_string(), dep_set.clone())).collect()
-            } else {
-              vec![]
-            }
-          })
-          .collect(),
-      );
+    let targeted_deps = consolidate_platform_attributes::<
+      CrateDependencyContext,
+      CrateTargetedDepContext,
+    >(platform_deps);
 
     let mut workspace_member_dependents: Vec<Utf8PathBuf> = Vec::new();
     let mut workspace_member_dev_dependents: Vec<Utf8PathBuf> = Vec::new();
diff --git a/impl/src/testing.rs b/impl/src/testing.rs
index a60e81dcb..53ee50c6f 100644
--- a/impl/src/testing.rs
+++ b/impl/src/testing.rs
@@ -68,6 +68,7 @@ pub mod templates {
     "subplan_produces_crate_root_with_forward_slash.json.template";
   pub const SUBPLAN_OMITS_PLATFORM_DEPS_ALREADY_IN_DEFAULT_DEPS: &str =
     "subplan_omits_platform_deps_already_in_default_deps.json.template";
+  pub const TARGET_OS_IS_NOT_UNKNOWN: &str = "target_os_is_not_unknown.json.template";
 }
 
 pub const fn basic_toml_contents() -> &'static str {
diff --git a/impl/src/testing/metadata_templates/target_os_is_not_unknown.json.template b/impl/src/testing/metadata_templates/target_os_is_not_unknown.json.template
new file mode 100644
index 000000000..347902633
--- /dev/null
+++ b/impl/src/testing/metadata_templates/target_os_is_not_unknown.json.template
@@ -0,0 +1,15075 @@
+{# Cargo.toml
+[package]
+name = "rust-async-std-project"
+version = "0.1.0"
+edition = "2018"
+
+[lib]
+path = "not_a_file.rs"
+
+[dependencies]
+async-std = "1.9.0"
+#}
+{
+  "packages": [
+    {
+      "name": "async-channel",
+      "version": "1.6.1",
+      "id": "async-channel 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Async multi-producer multi-consumer channel",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "concurrent-queue",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.2.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "event-listener",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.4.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.5",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "blocking",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "easy-parallel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3.1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.11.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "async-channel",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-channel-1.6.1/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "unbounded",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-channel-1.6.1/tests/unbounded.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "bounded",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-channel-1.6.1/tests/bounded.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-channel-1.6.1/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency"
+      ],
+      "keywords": [
+        "mpmc",
+        "mpsc",
+        "spmc",
+        "chan",
+        "futures"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/async-channel",
+      "homepage": "https://github.com/smol-rs/async-channel",
+      "documentation": "https://docs.rs/async-channel",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "async-executor",
+      "version": "1.4.1",
+      "id": "async-executor 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Async executor",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "async-task",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^4.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "concurrent-queue",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.2.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "fastrand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.3.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.11.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "once_cell",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.4.1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "slab",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-channel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.4.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-io",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.1.9",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "easy-parallel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3.1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "num_cpus",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.13.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "async-executor",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-executor-1.4.1/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "priority",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-executor-1.4.1/examples/priority.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "drop",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-executor-1.4.1/tests/drop.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "executor",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-executor-1.4.1/benches/executor.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-executor-1.4.1/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency"
+      ],
+      "keywords": [
+        "asynchronous",
+        "executor",
+        "single",
+        "multi",
+        "spawn"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/async-executor",
+      "homepage": "https://github.com/smol-rs/async-executor",
+      "documentation": "https://docs.rs/async-executor",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "async-global-executor",
+      "version": "2.2.0",
+      "id": "async-global-executor 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "A global executor built on top of async-executor and async-io",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "async-channel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.5",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-executor",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-io",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.2",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-lock",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.5",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "blocking",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "num_cpus",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.13",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "once_cell",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "tokio",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": "tokio-crate",
+          "optional": true,
+          "uses_default_features": false,
+          "features": [
+            "rt",
+            "rt-multi-thread"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "tokio",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": "tokio02-crate",
+          "optional": true,
+          "uses_default_features": false,
+          "features": [
+            "rt-core"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "tokio",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.4",
+          "kind": null,
+          "rename": "tokio03-crate",
+          "optional": true,
+          "uses_default_features": false,
+          "features": [
+            "rt",
+            "rt-multi-thread"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "doc-comment",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "async-global-executor",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-global-executor-2.2.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {
+        "async-io": [
+          "dep:async-io"
+        ],
+        "default": [
+          "async-io"
+        ],
+        "tokio": [
+          "tokio-crate"
+        ],
+        "tokio-crate": [
+          "dep:tokio-crate"
+        ],
+        "tokio02": [
+          "tokio02-crate"
+        ],
+        "tokio02-crate": [
+          "dep:tokio02-crate"
+        ],
+        "tokio03": [
+          "tokio03-crate"
+        ],
+        "tokio03-crate": [
+          "dep:tokio03-crate"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-global-executor-2.2.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Marc-Antoine Perennou <Marc-Antoine@Perennou.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency"
+      ],
+      "keywords": [
+        "async",
+        "await",
+        "future",
+        "executor"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/Keruspe/async-global-executor",
+      "homepage": "https://github.com/Keruspe/async-global-executor",
+      "documentation": "https://docs.rs/async-global-executor",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "async-io",
+      "version": "1.7.0",
+      "id": "async-io 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Async I/O and timers",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "concurrent-queue",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.2.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.11.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "log",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.11",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "once_cell",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.4.1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "parking",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "polling",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "slab",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "socket2",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "all"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "waker-fn",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-channel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-net",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "blocking",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "signal-hook",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "tempfile",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "inotify",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.10",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": "cfg(target_os = \"linux\")",
+          "registry": null
+        },
+        {
+          "name": "nix",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.24",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_os = \"linux\")",
+          "registry": null
+        },
+        {
+          "name": "timerfd",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_os = \"linux\")",
+          "registry": null
+        },
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.77",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(unix)",
+          "registry": null
+        },
+        {
+          "name": "winapi",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.9",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "winsock2"
+          ],
+          "target": "cfg(windows)",
+          "registry": null
+        },
+        {
+          "name": "uds_windows",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(windows)",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "async-io",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-io-1.7.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "windows-uds",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-io-1.7.0/examples/windows-uds.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "linux-timerfd",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-io-1.7.0/examples/linux-timerfd.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "unix-signal",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-io-1.7.0/examples/unix-signal.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "linux-inotify",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-io-1.7.0/examples/linux-inotify.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "timer",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-io-1.7.0/tests/timer.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "async",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-io-1.7.0/tests/async.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-io-1.7.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "network-programming",
+        "os"
+      ],
+      "keywords": [
+        "mio",
+        "epoll",
+        "kqueue",
+        "iocp",
+        "wepoll"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/async-io",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.46"
+    },
+    {
+      "name": "async-lock",
+      "version": "2.5.0",
+      "id": "async-lock 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Async synchronization primitives",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "event-listener",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.5.1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-channel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.5.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "fastrand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.4.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.11.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "async-lock",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-lock-2.5.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "barrier",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-lock-2.5.0/tests/barrier.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "rwlock",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-lock-2.5.0/tests/rwlock.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "semaphore",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-lock-2.5.0/tests/semaphore.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "mutex",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-lock-2.5.0/tests/mutex.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-lock-2.5.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency"
+      ],
+      "keywords": [
+        "lock",
+        "mutex",
+        "rwlock",
+        "semaphore",
+        "barrier"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/async-lock",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.43"
+    },
+    {
+      "name": "async-std",
+      "version": "1.12.0",
+      "id": "async-std 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0/MIT",
+      "license_file": null,
+      "description": "Async version of the Rust standard library",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "async-attributes",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.1.1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-channel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.5.1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-lock",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.3.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "crossbeam-utils",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.8.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.4",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-io",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.4",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "kv-log-macro",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.6",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "log",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.8",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [
+            "kv_unstable"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "memchr",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.3.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "once_cell",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.3.1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "pin-project-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "pin-utils",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.0-alpha.4",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "slab",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.2",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "surf",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "femme",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.1.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.4",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.8.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rand_xorshift",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "tempfile",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3.1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-global-executor",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [
+            "async-io"
+          ],
+          "target": "cfg(not(target_os = \"unknown\"))",
+          "registry": null
+        },
+        {
+          "name": "async-io",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(not(target_os = \"unknown\"))",
+          "registry": null
+        },
+        {
+          "name": "async-process",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(not(target_os = \"unknown\"))",
+          "registry": null
+        },
+        {
+          "name": "futures-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(not(target_os = \"unknown\"))",
+          "registry": null
+        },
+        {
+          "name": "futures-channel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.4",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "gloo-timers",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [
+            "futures"
+          ],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.10",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "getrandom",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "js"
+          ],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.10",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "async-std",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "tcp-ipv4-and-6-echo",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/tcp-ipv4-and-6-echo.rs",
+          "edition": "2018",
+          "required-features": [
+            "unstable"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "surf-web",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/surf-web.rs",
+          "edition": "2018",
+          "required-features": [
+            "surf"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "hello-world",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/hello-world.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "udp-client",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/udp-client.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "task-name",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/task-name.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "a-chat",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/a-chat/main.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "task-local",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/task-local.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "tcp-client",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/tcp-client.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "logging",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/logging.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "list-dir",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/list-dir.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "tcp-echo",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/tcp-echo.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "socket-timeouts",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/socket-timeouts.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "print-file",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/print-file.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "stdin-echo",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/stdin-echo.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "line-count",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/line-count.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "stdin-timeout",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/stdin-timeout.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "udp-echo",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/examples/udp-echo.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "stream",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/stream.rs",
+          "edition": "2018",
+          "required-features": [
+            "unstable"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "buf_writer",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/buf_writer.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "addr",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/addr.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "task_local",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/task_local.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "condvar",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/condvar.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "rwlock",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/rwlock.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "tcp",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/tcp.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "uds",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/uds.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "block_on",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/block_on.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "timeout",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/timeout.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "udp",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/udp.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "verbose_errors",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/verbose_errors.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "collect",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/collect.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "io_timeout",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/io_timeout.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "mutex",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/mutex.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "channel",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/tests/channel.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "task_local",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/benches/task_local.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "task",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/benches/task.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "mutex",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/benches/mutex.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "alloc": [
+          "futures-core/alloc",
+          "pin-project-lite"
+        ],
+        "async-attributes": [
+          "dep:async-attributes"
+        ],
+        "async-channel": [
+          "dep:async-channel"
+        ],
+        "async-global-executor": [
+          "dep:async-global-executor"
+        ],
+        "async-io": [
+          "dep:async-io"
+        ],
+        "async-lock": [
+          "dep:async-lock"
+        ],
+        "async-process": [
+          "dep:async-process"
+        ],
+        "attributes": [
+          "async-attributes"
+        ],
+        "crossbeam-utils": [
+          "dep:crossbeam-utils"
+        ],
+        "default": [
+          "std",
+          "async-global-executor",
+          "async-io",
+          "futures-lite",
+          "kv-log-macro",
+          "log",
+          "pin-project-lite",
+          "gloo-timers"
+        ],
+        "docs": [
+          "attributes",
+          "unstable",
+          "default"
+        ],
+        "futures-channel": [
+          "dep:futures-channel"
+        ],
+        "futures-core": [
+          "dep:futures-core"
+        ],
+        "futures-io": [
+          "dep:futures-io"
+        ],
+        "futures-lite": [
+          "dep:futures-lite"
+        ],
+        "gloo-timers": [
+          "dep:gloo-timers"
+        ],
+        "kv-log-macro": [
+          "dep:kv-log-macro"
+        ],
+        "log": [
+          "dep:log"
+        ],
+        "memchr": [
+          "dep:memchr"
+        ],
+        "once_cell": [
+          "dep:once_cell"
+        ],
+        "pin-project-lite": [
+          "dep:pin-project-lite"
+        ],
+        "pin-utils": [
+          "dep:pin-utils"
+        ],
+        "slab": [
+          "dep:slab"
+        ],
+        "std": [
+          "alloc",
+          "crossbeam-utils",
+          "futures-core/std",
+          "futures-io",
+          "memchr",
+          "once_cell",
+          "pin-utils",
+          "slab",
+          "wasm-bindgen-futures",
+          "futures-channel",
+          "async-channel",
+          "async-lock"
+        ],
+        "surf": [
+          "dep:surf"
+        ],
+        "tokio02": [
+          "async-global-executor/tokio02"
+        ],
+        "tokio03": [
+          "async-global-executor/tokio03"
+        ],
+        "tokio1": [
+          "async-global-executor/tokio"
+        ],
+        "unstable": [
+          "std",
+          "async-io",
+          "async-process"
+        ],
+        "wasm-bindgen-futures": [
+          "dep:wasm-bindgen-futures"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-std-1.12.0/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "features": [
+              "docs"
+            ],
+            "rustdoc-args": [
+              "--cfg",
+              "feature=\"docs\""
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>",
+        "Yoshua Wuyts <yoshuawuyts@gmail.com>",
+        "Friedel Ziegelmayer <me@dignifiedquire.com>",
+        "Contributors to async-std"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency",
+        "network-programming"
+      ],
+      "keywords": [
+        "async",
+        "await",
+        "future",
+        "std",
+        "task"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/async-rs/async-std",
+      "homepage": "https://async.rs",
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "async-task",
+      "version": "4.2.0",
+      "id": "async-task 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Task abstraction for building executors",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "atomic-waker",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "easy-parallel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "flaky_test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "flume",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.10",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "once_cell",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "smol",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "async-task",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "spawn-on-thread",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/examples/spawn-on-thread.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "spawn",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/examples/spawn.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "spawn-local",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/examples/spawn-local.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "join",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/tests/join.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "waker_panic",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/tests/waker_panic.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "waker_pending",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/tests/waker_pending.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "cancel",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/tests/cancel.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "basic",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/tests/basic.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "panic",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/tests/panic.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "waker_ready",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/tests/waker_ready.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "ready",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/tests/ready.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "spawn",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/benches/spawn.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "default": [
+          "std"
+        ],
+        "std": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/async-task-4.2.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency",
+        "no-std"
+      ],
+      "keywords": [
+        "futures",
+        "task",
+        "executor",
+        "spawn"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/async-task",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.39"
+    },
+    {
+      "name": "atomic-waker",
+      "version": "1.0.0",
+      "id": "atomic-waker 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "A synchronization primitive for task wakeup",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.5",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "atomic-waker",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/atomic-waker-1.0.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "basic",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/atomic-waker-1.0.0/tests/basic.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/atomic-waker-1.0.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency"
+      ],
+      "keywords": [
+        "waker",
+        "notify",
+        "wake",
+        "futures",
+        "async"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/stjepang/atomic-waker",
+      "homepage": "https://github.com/stjepang/atomic-waker",
+      "documentation": "https://docs.rs/atomic-waker",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "blocking",
+      "version": "1.2.0",
+      "id": "blocking 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "A thread pool for isolating blocking I/O in async programs",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "async-channel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.4.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "async-task",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^4.0.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "atomic-waker",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "fastrand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.3.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.11.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "once_cell",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.4.1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "blocking",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/blocking-1.2.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "ls",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/blocking-1.2.0/examples/ls.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "unblock",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/blocking-1.2.0/tests/unblock.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/blocking-1.2.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency"
+      ],
+      "keywords": [
+        "async",
+        "file",
+        "stdio",
+        "stdin",
+        "process"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/blocking",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.40"
+    },
+    {
+      "name": "bumpalo",
+      "version": "3.10.0",
+      "id": "bumpalo 3.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "A fast bump allocation arena for Rust.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "criterion",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "quickcheck",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.9.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.7",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "bumpalo",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/bumpalo-3.10.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "try_alloc",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/bumpalo-3.10.0/tests/try_alloc.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "benches",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/bumpalo-3.10.0/benches/benches.rs",
+          "edition": "2018",
+          "required-features": [
+            "collections"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "allocator_api": [],
+        "boxed": [],
+        "collections": [],
+        "default": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/bumpalo-3.10.0/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "all-features": true
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Nick Fitzgerald <fitzgen@gmail.com>"
+      ],
+      "categories": [
+        "memory-management",
+        "rust-patterns",
+        "no-std"
+      ],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/fitzgen/bumpalo",
+      "homepage": null,
+      "documentation": "https://docs.rs/bumpalo",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "cache-padded",
+      "version": "1.2.0",
+      "id": "cache-padded 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Prevent false sharing by padding and aligning to the length of a cache line",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "cache-padded",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cache-padded-1.2.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "padding",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cache-padded-1.2.0/tests/padding.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cache-padded-1.2.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "concurrency",
+        "no-std"
+      ],
+      "keywords": [
+        "cache",
+        "padding",
+        "lock-free",
+        "atomic"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/cache-padded",
+      "homepage": "https://github.com/smol-rs/cache-padded",
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "cc",
+      "version": "1.0.73",
+      "id": "cc 1.0.73 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "jobserver",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.16",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "tempfile",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "cc",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "bin"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "gcc-shim",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/src/bin/gcc-shim.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "cxxflags",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/tests/cxxflags.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/tests/test.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "cc_env",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/tests/cc_env.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "cflags",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/tests/cflags.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "jobserver": [
+          "dep:jobserver"
+        ],
+        "parallel": [
+          "jobserver"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cc-1.0.73/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Alex Crichton <alex@alexcrichton.com>"
+      ],
+      "categories": [
+        "development-tools::build-utils"
+      ],
+      "keywords": [
+        "build-dependencies"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/alexcrichton/cc-rs",
+      "homepage": "https://github.com/alexcrichton/cc-rs",
+      "documentation": "https://docs.rs/cc",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "cfg-if",
+      "version": "1.0.0",
+      "id": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "compiler_builtins",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.2",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rustc-std-workspace-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": "core",
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "cfg-if",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cfg-if-1.0.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "xcrate",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cfg-if-1.0.0/tests/xcrate.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "compiler_builtins": [
+          "dep:compiler_builtins"
+        ],
+        "core": [
+          "dep:core"
+        ],
+        "rustc-dep-of-std": [
+          "core",
+          "compiler_builtins"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/cfg-if-1.0.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Alex Crichton <alex@alexcrichton.com>"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/alexcrichton/cfg-if",
+      "homepage": "https://github.com/alexcrichton/cfg-if",
+      "documentation": "https://docs.rs/cfg-if",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "concurrent-queue",
+      "version": "1.2.2",
+      "id": "concurrent-queue 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Concurrent multi-producer multi-consumer queue",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "cache-padded",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.1.1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "easy-parallel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3.1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "fastrand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.3.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "concurrent-queue",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/concurrent-queue-1.2.2/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "unbounded",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/concurrent-queue-1.2.2/tests/unbounded.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "bounded",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/concurrent-queue-1.2.2/tests/bounded.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "single",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/concurrent-queue-1.2.2/tests/single.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/concurrent-queue-1.2.2/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "concurrency"
+      ],
+      "keywords": [
+        "channel",
+        "mpmc",
+        "spsc",
+        "spmc",
+        "mpsc"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/stjepang/concurrent-queue",
+      "homepage": "https://github.com/stjepang/concurrent-queue",
+      "documentation": "https://docs.rs/concurrent-queue",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "crossbeam-utils",
+      "version": "0.8.10",
+      "id": "crossbeam-utils 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Utilities for concurrent programming",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "cfg-if",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "once_cell",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.8",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rustversion",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "loom",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.5",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(crossbeam_loom)",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "crossbeam-utils",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "parker",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/tests/parker.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "atomic_cell",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/tests/atomic_cell.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "cache_padded",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/tests/cache_padded.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "sharded_lock",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/tests/sharded_lock.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "wait_group",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/tests/wait_group.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "thread",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/tests/thread.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "atomic_cell",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/benches/atomic_cell.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "default": [
+          "std"
+        ],
+        "loom": [
+          "dep:loom"
+        ],
+        "nightly": [],
+        "once_cell": [
+          "dep:once_cell"
+        ],
+        "std": [
+          "once_cell"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/crossbeam-utils-0.8.10/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [],
+      "categories": [
+        "algorithms",
+        "concurrency",
+        "data-structures",
+        "no-std"
+      ],
+      "keywords": [
+        "scoped",
+        "thread",
+        "atomic",
+        "cache"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/crossbeam-rs/crossbeam",
+      "homepage": "https://github.com/crossbeam-rs/crossbeam/tree/master/crossbeam-utils",
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.36"
+    },
+    {
+      "name": "ctor",
+      "version": "0.1.22",
+      "id": "ctor 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "__attribute__((constructor)) for Rust",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "quote",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.9",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "syn",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.73",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [
+            "full",
+            "parsing",
+            "printing",
+            "proc-macro"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "libc-print",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.15",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "proc-macro"
+          ],
+          "crate_types": [
+            "proc-macro"
+          ],
+          "name": "ctor",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/ctor-0.1.22/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "example",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/ctor-0.1.22/src/example.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/ctor-0.1.22/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Matt Mastracci <matthew@mastracci.com>"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": "../README.md",
+      "repository": "https://github.com/mmastrac/rust-ctor",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "event-listener",
+      "version": "2.5.2",
+      "id": "event-listener 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Notify async tasks or threads",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [
+            "std"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "waker-fn",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "event-listener",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/event-listener-2.5.2/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "mutex",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/event-listener-2.5.2/examples/mutex.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "notify",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/event-listener-2.5.2/tests/notify.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/event-listener-2.5.2/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency"
+      ],
+      "keywords": [
+        "condvar",
+        "eventcount",
+        "wake",
+        "blocking",
+        "park"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/event-listener",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.36"
+    },
+    {
+      "name": "fastrand",
+      "version": "1.7.0",
+      "id": "fastrand 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "A simple and fast random number generator",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "getrandom",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.8",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wyhash",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.5",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "instant",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "getrandom",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "js"
+          ],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "instant",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "wasm-bindgen"
+          ],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "fastrand",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/fastrand-1.7.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "char",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/fastrand-1.7.0/tests/char.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "smoke",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/fastrand-1.7.0/tests/smoke.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "bench",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/fastrand-1.7.0/benches/bench.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/fastrand-1.7.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "algorithms"
+      ],
+      "keywords": [
+        "simple",
+        "fast",
+        "rand",
+        "random",
+        "wyrand"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/fastrand",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.34"
+    },
+    {
+      "name": "futures-channel",
+      "version": "0.3.21",
+      "id": "futures-channel 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Channels for asynchronous communication using futures-rs.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "futures-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.21",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-sink",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.21",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "futures-channel",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-channel-0.3.21/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "mpsc-close",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-channel-0.3.21/tests/mpsc-close.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "oneshot",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-channel-0.3.21/tests/oneshot.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "mpsc",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-channel-0.3.21/tests/mpsc.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "channel",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-channel-0.3.21/tests/channel.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "sync_mpsc",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-channel-0.3.21/benches/sync_mpsc.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-channel-0.3.21/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "alloc": [
+          "futures-core/alloc"
+        ],
+        "cfg-target-has-atomic": [],
+        "default": [
+          "std"
+        ],
+        "futures-sink": [
+          "dep:futures-sink"
+        ],
+        "sink": [
+          "futures-sink"
+        ],
+        "std": [
+          "alloc",
+          "futures-core/std"
+        ],
+        "unstable": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-channel-0.3.21/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "all-features": true,
+            "rustdoc-args": [
+              "--cfg",
+              "docsrs"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [],
+      "categories": [],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang/futures-rs",
+      "homepage": "https://rust-lang.github.io/futures-rs",
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.45"
+    },
+    {
+      "name": "futures-core",
+      "version": "0.3.21",
+      "id": "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "The core traits and types in for the `futures` library.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "futures-core",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-core-0.3.21/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-core-0.3.21/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "alloc": [],
+        "cfg-target-has-atomic": [],
+        "default": [
+          "std"
+        ],
+        "std": [
+          "alloc"
+        ],
+        "unstable": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-core-0.3.21/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "all-features": true,
+            "rustdoc-args": [
+              "--cfg",
+              "docsrs"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [],
+      "categories": [],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang/futures-rs",
+      "homepage": "https://rust-lang.github.io/futures-rs",
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.36"
+    },
+    {
+      "name": "futures-io",
+      "version": "0.3.21",
+      "id": "futures-io 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "The `AsyncRead`, `AsyncWrite`, `AsyncSeek`, and `AsyncBufRead` traits for the futures-rs library.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "futures-io",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-io-0.3.21/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {
+        "default": [
+          "std"
+        ],
+        "std": [],
+        "unstable": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-io-0.3.21/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "all-features": true,
+            "rustdoc-args": [
+              "--cfg",
+              "docsrs"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [],
+      "categories": [],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang/futures-rs",
+      "homepage": "https://rust-lang.github.io/futures-rs",
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.36"
+    },
+    {
+      "name": "futures-lite",
+      "version": "1.12.0",
+      "id": "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Futures, streams, and async I/O combinators",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "fastrand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.3.4",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.5",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-io",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.5",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "memchr",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.3.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "parking",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "pin-project-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "waker-fn",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "spin_on",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "futures-lite",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-lite-1.12.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {
+        "alloc": [],
+        "default": [
+          "std"
+        ],
+        "fastrand": [
+          "dep:fastrand"
+        ],
+        "futures-io": [
+          "dep:futures-io"
+        ],
+        "memchr": [
+          "dep:memchr"
+        ],
+        "parking": [
+          "dep:parking"
+        ],
+        "std": [
+          "alloc",
+          "fastrand",
+          "futures-io",
+          "parking",
+          "memchr",
+          "waker-fn"
+        ],
+        "waker-fn": [
+          "dep:waker-fn"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/futures-lite-1.12.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>",
+        "Contributors to futures-rs"
+      ],
+      "categories": [
+        "asynchronous",
+        "concurrency"
+      ],
+      "keywords": [
+        "asynchronous",
+        "futures",
+        "async"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/futures-lite",
+      "homepage": "https://github.com/smol-rs/futures-lite",
+      "documentation": "https://docs.rs/futures-lite",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "gloo-timers",
+      "version": "0.2.4",
+      "id": "gloo-timers 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Convenience crate for working with JavaScript timers",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "futures-channel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "js-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.31",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-util",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.4",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.4",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "gloo-timers",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/gloo-timers-0.2.4/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "web",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/gloo-timers-0.2.4/tests/web.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "default": [],
+        "futures": [
+          "futures-core",
+          "futures-channel"
+        ],
+        "futures-channel": [
+          "dep:futures-channel"
+        ],
+        "futures-core": [
+          "dep:futures-core"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/gloo-timers-0.2.4/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "features": [
+              "futures"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Rust and WebAssembly Working Group"
+      ],
+      "categories": [
+        "api-bindings",
+        "asynchronous",
+        "wasm"
+      ],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/rustwasm/gloo/tree/master/crates/timers",
+      "homepage": "https://github.com/rustwasm/gloo",
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "hermit-abi",
+      "version": "0.1.19",
+      "id": "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "hermit-abi is small interface to call functions from the unikernel RustyHermit.\nIt is used to build the target `x86_64-unknown-hermit`.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "compiler_builtins",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rustc-std-workspace-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": "core",
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.51",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "hermit-abi",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/hermit-abi-0.1.19/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {
+        "compiler_builtins": [
+          "dep:compiler_builtins"
+        ],
+        "core": [
+          "dep:core"
+        ],
+        "default": [],
+        "docs": [],
+        "rustc-dep-of-std": [
+          "core",
+          "compiler_builtins/rustc-dep-of-std",
+          "libc/rustc-dep-of-std"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/hermit-abi-0.1.19/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "default-target": "x86_64-unknown-hermit",
+            "features": [
+              "docs"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Stefan Lankes"
+      ],
+      "categories": [
+        "os"
+      ],
+      "keywords": [
+        "unikernel",
+        "libos"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/hermitcore/libhermit-rs",
+      "homepage": null,
+      "documentation": "https://hermitcore.github.io/rusty-hermit/hermit_abi",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "instant",
+      "version": "0.1.12",
+      "id": "instant 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "BSD-3-Clause",
+      "license_file": null,
+      "description": "A partial replacement for std::time::Instant that works on WASM too.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "cfg-if",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "js-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "asmjs-unknown-emscripten",
+          "registry": null
+        },
+        {
+          "name": "stdweb",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "asmjs-unknown-emscripten",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": "wasm-bindgen_rs",
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "asmjs-unknown-emscripten",
+          "registry": null
+        },
+        {
+          "name": "web-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [
+            "Window",
+            "Performance",
+            "PerformanceTiming"
+          ],
+          "target": "asmjs-unknown-emscripten",
+          "registry": null
+        },
+        {
+          "name": "js-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "wasm32-unknown-emscripten",
+          "registry": null
+        },
+        {
+          "name": "stdweb",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "wasm32-unknown-emscripten",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": "wasm-bindgen_rs",
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "wasm32-unknown-emscripten",
+          "registry": null
+        },
+        {
+          "name": "web-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [
+            "Window",
+            "Performance",
+            "PerformanceTiming"
+          ],
+          "target": "wasm32-unknown-emscripten",
+          "registry": null
+        },
+        {
+          "name": "js-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "wasm32-unknown-unknown",
+          "registry": null
+        },
+        {
+          "name": "stdweb",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "wasm32-unknown-unknown",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": null,
+          "rename": "wasm-bindgen_rs",
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": "wasm32-unknown-unknown",
+          "registry": null
+        },
+        {
+          "name": "web-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [
+            "Window",
+            "Performance",
+            "PerformanceTiming"
+          ],
+          "target": "wasm32-unknown-unknown",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "instant",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/instant-0.1.12/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "wasm",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/instant-0.1.12/tests/wasm.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "inaccurate": [],
+        "js-sys": [
+          "dep:js-sys"
+        ],
+        "now": [],
+        "stdweb": [
+          "dep:stdweb"
+        ],
+        "wasm-bindgen": [
+          "js-sys",
+          "wasm-bindgen_rs",
+          "web-sys"
+        ],
+        "wasm-bindgen_rs": [
+          "dep:wasm-bindgen_rs"
+        ],
+        "web-sys": [
+          "dep:web-sys"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/instant-0.1.12/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "sebcrozet <developer@crozet.re>"
+      ],
+      "categories": [],
+      "keywords": [
+        "time",
+        "wasm"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/sebcrozet/instant",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "js-sys",
+      "version": "0.3.58",
+      "id": "js-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Bindings for all JS global objects and functions in all JS environments like\nNode.js and browsers, built on `#[wasm_bindgen]` using the `wasm-bindgen` crate.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.81",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.31",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=0.3.31",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "web-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.58",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "Headers",
+            "Response",
+            "ResponseInit"
+          ],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "js-sys",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/js-sys-0.3.58/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "headless",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/js-sys-0.3.58/tests/headless.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "wasm",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/js-sys-0.3.58/tests/wasm/main.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/js-sys-0.3.58/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "The wasm-bindgen Developers"
+      ],
+      "categories": [
+        "wasm"
+      ],
+      "keywords": [],
+      "readme": "./README.md",
+      "repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/js-sys",
+      "homepage": "https://rustwasm.github.io/wasm-bindgen/",
+      "documentation": "https://docs.rs/js-sys",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "kv-log-macro",
+      "version": "1.0.7",
+      "id": "kv-log-macro 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Log macro for log's kv-unstable backend.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "log",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.8",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "kv_unstable"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "femme",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.2.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "kv-log-macro",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/kv-log-macro-1.0.7/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "main",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/kv-log-macro-1.0.7/examples/main.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/kv-log-macro-1.0.7/tests/test.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/kv-log-macro-1.0.7/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Yoshua Wuyts <yoshuawuyts@gmail.com>"
+      ],
+      "categories": [
+        "text-processing"
+      ],
+      "keywords": [
+        "log",
+        "macro",
+        "kv",
+        "key",
+        "value"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/yoshuawuyts/kv-log-macro",
+      "homepage": null,
+      "documentation": "https://docs.rs/kv-log-macro",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "lazy_static",
+      "version": "1.4.0",
+      "id": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "A macro for declaring lazily evaluated statics in Rust.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "spin",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.5.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "doc-comment",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "lazy_static",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/lazy_static-1.4.0/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/lazy_static-1.4.0/tests/test.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "no_std",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/lazy_static-1.4.0/tests/no_std.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "spin": [
+          "dep:spin"
+        ],
+        "spin_no_std": [
+          "spin"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/lazy_static-1.4.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Marvin L\u00f6bel <loebel.marvin@gmail.com>"
+      ],
+      "categories": [
+        "no-std",
+        "rust-patterns",
+        "memory-management"
+      ],
+      "keywords": [
+        "macro",
+        "lazy",
+        "static"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang-nursery/lazy-static.rs",
+      "homepage": null,
+      "documentation": "https://docs.rs/lazy_static",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "libc",
+      "version": "0.2.126",
+      "id": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Raw FFI bindings to platform libraries like libc.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "rustc-std-workspace-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "libc",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.126/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "const_fn",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.126/tests/const_fn.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.126/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "align": [],
+        "const-extern-fn": [],
+        "default": [
+          "std"
+        ],
+        "extra_traits": [],
+        "rustc-dep-of-std": [
+          "align",
+          "rustc-std-workspace-core"
+        ],
+        "rustc-std-workspace-core": [
+          "dep:rustc-std-workspace-core"
+        ],
+        "std": [],
+        "use_std": [
+          "std"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/libc-0.2.126/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "features": [
+              "const-extern-fn",
+              "extra_traits"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "The Rust Project Developers"
+      ],
+      "categories": [
+        "external-ffi-bindings",
+        "no-std",
+        "os"
+      ],
+      "keywords": [
+        "libc",
+        "ffi",
+        "bindings",
+        "operating",
+        "system"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang/libc",
+      "homepage": "https://github.com/rust-lang/libc",
+      "documentation": "https://docs.rs/libc/",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "log",
+      "version": "0.4.17",
+      "id": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "A lightweight logging facade for Rust\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "cfg-if",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "sval",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=1.0.0-alpha.5",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "value-bag",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=1.0.0-alpha.9",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rustversion",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "derive"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde_test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "sval",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=1.0.0-alpha.5",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "derive"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "value-bag",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=1.0.0-alpha.9",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "test"
+          ],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "log",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/log-0.4.17/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "filters",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/log-0.4.17/tests/filters.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "macros",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/log-0.4.17/tests/macros.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "value",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/log-0.4.17/benches/value.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/log-0.4.17/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "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"
+        ],
+        "max_level_debug": [],
+        "max_level_error": [],
+        "max_level_info": [],
+        "max_level_off": [],
+        "max_level_trace": [],
+        "max_level_warn": [],
+        "release_max_level_debug": [],
+        "release_max_level_error": [],
+        "release_max_level_info": [],
+        "release_max_level_off": [],
+        "release_max_level_trace": [],
+        "release_max_level_warn": [],
+        "serde": [
+          "dep:serde"
+        ],
+        "std": [],
+        "sval": [
+          "dep:sval"
+        ],
+        "value-bag": [
+          "dep:value-bag"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/log-0.4.17/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "features": [
+              "std",
+              "serde",
+              "kv_unstable_std",
+              "kv_unstable_sval",
+              "kv_unstable_serde"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "The Rust Project Developers"
+      ],
+      "categories": [
+        "development-tools::debugging"
+      ],
+      "keywords": [
+        "logging"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang/log",
+      "homepage": null,
+      "documentation": "https://docs.rs/log",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "memchr",
+      "version": "2.5.0",
+      "id": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Unlicense/MIT",
+      "license_file": null,
+      "description": "Safe interface to memchr.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "compiler_builtins",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.2",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rustc-std-workspace-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": "core",
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.18",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "quickcheck",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "memchr",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/memchr-2.5.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/memchr-2.5.0/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "compiler_builtins": [
+          "dep:compiler_builtins"
+        ],
+        "core": [
+          "dep:core"
+        ],
+        "default": [
+          "std"
+        ],
+        "libc": [
+          "dep:libc"
+        ],
+        "rustc-dep-of-std": [
+          "core",
+          "compiler_builtins"
+        ],
+        "std": [],
+        "use_std": [
+          "std"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/memchr-2.5.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Andrew Gallant <jamslam@gmail.com>",
+        "bluss"
+      ],
+      "categories": [],
+      "keywords": [
+        "memchr",
+        "char",
+        "scan",
+        "strchr",
+        "string"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/BurntSushi/memchr",
+      "homepage": "https://github.com/BurntSushi/memchr",
+      "documentation": "https://docs.rs/memchr/",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "num_cpus",
+      "version": "1.13.1",
+      "id": "num_cpus 1.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Get the number of CPUs on a machine.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "hermit-abi",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.3",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))",
+          "registry": null
+        },
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.26",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(not(windows))",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "num_cpus",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/num_cpus-1.13.1/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "values",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/num_cpus-1.13.1/examples/values.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/num_cpus-1.13.1/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Sean McArthur <sean@seanmonstar.com>"
+      ],
+      "categories": [
+        "hardware-support"
+      ],
+      "keywords": [
+        "cpu",
+        "cpus",
+        "cores"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/seanmonstar/num_cpus",
+      "homepage": null,
+      "documentation": "https://docs.rs/num_cpus",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "once_cell",
+      "version": "1.12.0",
+      "id": "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Single assignment cells and lazy values.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "atomic-polyfill",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "parking_lot_core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.9.3",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "crossbeam-utils",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.8.7",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "lazy_static",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "regex",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.2.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "once_cell",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "bench",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/examples/bench.rs",
+          "edition": "2018",
+          "required-features": [
+            "std"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "bench_acquire",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/examples/bench_acquire.rs",
+          "edition": "2018",
+          "required-features": [
+            "std"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "bench_vs_lazy_static",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/examples/bench_vs_lazy_static.rs",
+          "edition": "2018",
+          "required-features": [
+            "std"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "lazy_static",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/examples/lazy_static.rs",
+          "edition": "2018",
+          "required-features": [
+            "std"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "reentrant_init_deadlocks",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/examples/reentrant_init_deadlocks.rs",
+          "edition": "2018",
+          "required-features": [
+            "std"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "regex",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/examples/regex.rs",
+          "edition": "2018",
+          "required-features": [
+            "std"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_synchronization",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/examples/test_synchronization.rs",
+          "edition": "2018",
+          "required-features": [
+            "std"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "it",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/tests/it.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "alloc": [
+          "race"
+        ],
+        "atomic-polyfill": [
+          "dep:atomic-polyfill"
+        ],
+        "default": [
+          "std"
+        ],
+        "parking_lot": [
+          "parking_lot_core"
+        ],
+        "parking_lot_core": [
+          "dep:parking_lot_core"
+        ],
+        "race": [],
+        "std": [
+          "alloc"
+        ],
+        "unstable": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/once_cell-1.12.0/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "all-features": true
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Aleksey Kladov <aleksey.kladov@gmail.com>"
+      ],
+      "categories": [
+        "rust-patterns",
+        "memory-management"
+      ],
+      "keywords": [
+        "lazy",
+        "static"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/matklad/once_cell",
+      "homepage": null,
+      "documentation": "https://docs.rs/once_cell",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "parking",
+      "version": "2.0.0",
+      "id": "parking 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Thread parking and unparking",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "easy-parallel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3.0.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "parking",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/parking-2.0.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "parking",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/parking-2.0.0/tests/parking.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/parking-2.0.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>",
+        "The Rust Project Developers"
+      ],
+      "categories": [
+        "concurrency"
+      ],
+      "keywords": [
+        "park",
+        "notify",
+        "thread",
+        "wake",
+        "condition"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/stjepang/parking",
+      "homepage": "https://github.com/stjepang/parking",
+      "documentation": "https://docs.rs/parking",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "pin-project-lite",
+      "version": "0.2.9",
+      "id": "pin-project-lite 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "A lightweight version of pin-project written with declarative macros.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "rustversion",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "static_assertions",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "trybuild",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.49",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "pin-project-lite",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-project-lite-0.2.9/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-project-lite-0.2.9/tests/test.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "compiletest",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-project-lite-0.2.9/tests/compiletest.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "drop_order",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-project-lite-0.2.9/tests/drop_order.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "lint",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-project-lite-0.2.9/tests/lint.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "proper_unpin",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-project-lite-0.2.9/tests/proper_unpin.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "expandtest",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-project-lite-0.2.9/tests/expandtest.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-project-lite-0.2.9/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "targets": [
+              "x86_64-unknown-linux-gnu"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [],
+      "categories": [
+        "no-std",
+        "rust-patterns"
+      ],
+      "keywords": [
+        "pin",
+        "macros"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/taiki-e/pin-project-lite",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.37"
+    },
+    {
+      "name": "pin-utils",
+      "version": "0.1.0",
+      "id": "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Utilities for pinning\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "pin-utils",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-utils-0.1.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "projection",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-utils-0.1.0/tests/projection.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "stack_pin",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-utils-0.1.0/tests/stack_pin.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/pin-utils-0.1.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Josef Brandl <mail@josefbrandl.de>"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang-nursery/pin-utils",
+      "homepage": null,
+      "documentation": "https://docs.rs/pin-utils",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "polling",
+      "version": "2.2.0",
+      "id": "polling 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Portable interface to epoll, kqueue, event ports, and wepoll",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "cfg-if",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "log",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.11",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "easy-parallel",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3.1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.77",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))",
+          "registry": null
+        },
+        {
+          "name": "wepoll-ffi",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "null-overlapped-wakeups-patch"
+          ],
+          "target": "cfg(windows)",
+          "registry": null
+        },
+        {
+          "name": "winapi",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.9",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "ioapiset",
+            "winsock2"
+          ],
+          "target": "cfg(windows)",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "polling",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/polling-2.2.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "example"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "two-listeners",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/polling-2.2.0/examples/two-listeners.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "precision",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/polling-2.2.0/tests/precision.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "concurrent_modification",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/polling-2.2.0/tests/concurrent_modification.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "timeout",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/polling-2.2.0/tests/timeout.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "notify",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/polling-2.2.0/tests/notify.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "default": [
+          "std"
+        ],
+        "std": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/polling-2.2.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "asynchronous",
+        "network-programming",
+        "os"
+      ],
+      "keywords": [
+        "mio",
+        "epoll",
+        "kqueue",
+        "iocp",
+        "wepoll"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/smol-rs/polling",
+      "homepage": "https://github.com/smol-rs/polling",
+      "documentation": "https://docs.rs/polling",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "proc-macro2",
+      "version": "1.0.40",
+      "id": "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "A substitute implementation of the compiler's `proc_macro` API to decouple\ntoken-based libraries from the procedural macro use case.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "unicode-ident",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "quote",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "proc-macro2",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.40/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.40/tests/test.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "features",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.40/tests/features.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "comments",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.40/tests/comments.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_fmt",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.40/tests/test_fmt.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "marker",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.40/tests/marker.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.40/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "default": [
+          "proc-macro"
+        ],
+        "nightly": [],
+        "proc-macro": [],
+        "span-locations": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/proc-macro2-1.0.40/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "rustc-args": [
+              "--cfg",
+              "procmacro2_semver_exempt"
+            ],
+            "rustdoc-args": [
+              "--cfg",
+              "procmacro2_semver_exempt",
+              "--cfg",
+              "doc_cfg"
+            ],
+            "targets": [
+              "x86_64-unknown-linux-gnu"
+            ]
+          }
+        },
+        "playground": {
+          "features": [
+            "span-locations"
+          ]
+        }
+      },
+      "publish": null,
+      "authors": [
+        "David Tolnay <dtolnay@gmail.com>",
+        "Alex Crichton <alex@alexcrichton.com>"
+      ],
+      "categories": [
+        "development-tools::procedural-macro-helpers"
+      ],
+      "keywords": [
+        "macros"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/dtolnay/proc-macro2",
+      "homepage": null,
+      "documentation": "https://docs.rs/proc-macro2",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.31"
+    },
+    {
+      "name": "quote",
+      "version": "1.0.20",
+      "id": "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Quasi-quoting macro quote!(...)",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "proc-macro2",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.40",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rustversion",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "trybuild",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.52",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "diff"
+          ],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "quote",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/quote-1.0.20/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/quote-1.0.20/tests/test.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "compiletest",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/quote-1.0.20/tests/compiletest.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/quote-1.0.20/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "default": [
+          "proc-macro"
+        ],
+        "proc-macro": [
+          "proc-macro2/proc-macro"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/quote-1.0.20/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "targets": [
+              "x86_64-unknown-linux-gnu"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "David Tolnay <dtolnay@gmail.com>"
+      ],
+      "categories": [
+        "development-tools::procedural-macro-helpers"
+      ],
+      "keywords": [
+        "syn"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/dtolnay/quote",
+      "homepage": null,
+      "documentation": "https://docs.rs/quote/",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.31"
+    },
+    {
+      "name": "rust-async-std-project",
+      "version": "0.1.0",
+      "id": "rust-async-std-project 0.1.0 (path+file://{{ mock_workspace }})",
+      "license": null,
+      "license_file": null,
+      "description": null,
+      "source": null,
+      "dependencies": [
+        {
+          "name": "async-std",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.9.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "rust-async-std-project",
+          "src_path": "/home/sayrer/github/grafica/rust-async-std-project/not_a_file.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/github/grafica/rust-async-std-project/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [],
+      "categories": [],
+      "keywords": [],
+      "readme": null,
+      "repository": null,
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "slab",
+      "version": "0.4.6",
+      "id": "slab 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT",
+      "license_file": null,
+      "description": "Pre-allocated storage for a uniform data type",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "serde",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.95",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [
+            "alloc"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "derive"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde_test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "slab",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/slab-0.4.6/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "slab",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/slab-0.4.6/tests/slab.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "serde",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/slab-0.4.6/tests/serde.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "default": [
+          "std"
+        ],
+        "serde": [
+          "dep:serde"
+        ],
+        "std": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/slab-0.4.6/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Carl Lerche <me@carllerche.com>"
+      ],
+      "categories": [
+        "memory-management",
+        "data-structures",
+        "no-std"
+      ],
+      "keywords": [
+        "slab",
+        "allocator",
+        "no_std"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/tokio-rs/slab",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.31"
+    },
+    {
+      "name": "socket2",
+      "version": "0.4.4",
+      "id": "socket2 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Utilities for handling networking sockets with a maximal amount of configuration\npossible intended.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "libc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.114",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(unix)",
+          "registry": null
+        },
+        {
+          "name": "winapi",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.9",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "handleapi",
+            "ws2ipdef",
+            "ws2tcpip"
+          ],
+          "target": "cfg(windows)",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "socket2",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/socket2-0.4.4/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {
+        "all": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/socket2-0.4.4/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "all-features": true,
+            "rustdoc-args": [
+              "--cfg",
+              "docsrs"
+            ]
+          }
+        },
+        "playground": {
+          "features": [
+            "all"
+          ]
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Alex Crichton <alex@alexcrichton.com>",
+        "Thomas de Zeeuw <thomasdezeeuw@gmail.com>"
+      ],
+      "categories": [
+        "api-bindings",
+        "network-programming"
+      ],
+      "keywords": [
+        "io",
+        "socket",
+        "network"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/rust-lang/socket2",
+      "homepage": "https://github.com/rust-lang/socket2",
+      "documentation": "https://docs.rs/socket2",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "syn",
+      "version": "1.0.98",
+      "id": "syn 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Parser for Rust source code",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "proc-macro2",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.39",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "quote",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "unicode-ident",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "anyhow",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "automod",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "flate2",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "insta",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rayon",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "ref-cast",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "regex",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "reqwest",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.11",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "blocking"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "syn-test-suite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "tar",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.16",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "termcolor",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "walkdir",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^2.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "syn",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_stmt",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_stmt.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_precedence",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_precedence.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_ident",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_ident.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_iterators",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_iterators.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "zzz_stable",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/zzz_stable.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_expr",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_expr.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_pat",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_pat.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_round_trip",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_round_trip.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_ty",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_ty.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_generics",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_generics.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_lit",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_lit.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_meta",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_meta.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_size",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_size.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_attribute",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_attribute.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_derive_input",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_derive_input.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_asyncness",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_asyncness.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_visibility",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_visibility.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_grouping",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_grouping.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_item",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_item.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "regression",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/regression.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_path",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_path.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_token_trees",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_token_trees.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_parse_buffer",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_parse_buffer.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_shebang",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_shebang.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_parse_stream",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_parse_stream.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_receiver",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_receiver.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "test_should_parse",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/tests/test_should_parse.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "rust",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/benches/rust.rs",
+          "edition": "2018",
+          "required-features": [
+            "full",
+            "parsing"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "file",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/benches/file.rs",
+          "edition": "2018",
+          "required-features": [
+            "full",
+            "parsing"
+          ],
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "clone-impls": [],
+        "default": [
+          "derive",
+          "parsing",
+          "printing",
+          "clone-impls",
+          "proc-macro"
+        ],
+        "derive": [],
+        "extra-traits": [],
+        "fold": [],
+        "full": [],
+        "parsing": [],
+        "printing": [
+          "quote"
+        ],
+        "proc-macro": [
+          "proc-macro2/proc-macro",
+          "quote/proc-macro"
+        ],
+        "quote": [
+          "dep:quote"
+        ],
+        "test": [
+          "syn-test-suite/all-features"
+        ],
+        "visit": [],
+        "visit-mut": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/syn-1.0.98/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "all-features": true,
+            "targets": [
+              "x86_64-unknown-linux-gnu"
+            ],
+            "rustdoc-args": [
+              "--cfg",
+              "doc_cfg"
+            ]
+          }
+        },
+        "playground": {
+          "features": [
+            "full",
+            "visit",
+            "visit-mut",
+            "fold",
+            "extra-traits"
+          ]
+        }
+      },
+      "publish": null,
+      "authors": [
+        "David Tolnay <dtolnay@gmail.com>"
+      ],
+      "categories": [
+        "development-tools::procedural-macro-helpers"
+      ],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/dtolnay/syn",
+      "homepage": null,
+      "documentation": "https://docs.rs/syn",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.31"
+    },
+    {
+      "name": "unicode-ident",
+      "version": "1.0.1",
+      "id": "unicode-ident 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0",
+      "license_file": null,
+      "description": "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "criterion",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "fst",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "rand",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.8",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "small_rng"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "roaring",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.9",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "ucd-trie",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "unicode-xid",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "unicode-ident",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/unicode-ident-1.0.1/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "compare",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/unicode-ident-1.0.1/tests/compare.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "static_size",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/unicode-ident-1.0.1/tests/static_size.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "xid",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/unicode-ident-1.0.1/benches/xid.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/unicode-ident-1.0.1/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "targets": [
+              "x86_64-unknown-linux-gnu"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "David Tolnay <dtolnay@gmail.com>"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/dtolnay/unicode-ident",
+      "homepage": null,
+      "documentation": "https://docs.rs/unicode-ident",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": "1.31"
+    },
+    {
+      "name": "value-bag",
+      "version": "1.0.0-alpha.9",
+      "id": "value-bag 1.0.0-alpha.9 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Anonymous structured values",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "ctor",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "erased-serde",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": null,
+          "rename": "erased-serde1",
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde_fmt",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": null,
+          "rename": "serde1_fmt",
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": null,
+          "rename": "serde1_lib",
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "sval",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=1.0.0-alpha.5",
+          "kind": null,
+          "rename": "sval1_lib",
+          "optional": true,
+          "uses_default_features": false,
+          "features": [
+            "fmt"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde_json",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": "serde1_json",
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde_test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1",
+          "kind": "dev",
+          "rename": "serde1_test",
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "sval_json",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=1.0.0-alpha.5",
+          "kind": "dev",
+          "rename": "sval1_json",
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "std"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "sval",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=1.0.0-alpha.5",
+          "kind": "dev",
+          "rename": "sval1_lib",
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "test"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "version_check",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.9",
+          "kind": "build",
+          "rename": "rustc",
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "value-bag",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/value-bag-1.0.0-alpha.9/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "bench"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "capture",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/value-bag-1.0.0-alpha.9/benches/capture.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/value-bag-1.0.0-alpha.9/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "erased-serde1": [
+          "dep:erased-serde1"
+        ],
+        "error": [
+          "std",
+          "sval1_lib/std"
+        ],
+        "serde": [
+          "serde1"
+        ],
+        "serde1": [
+          "serde1_lib",
+          "sval1_lib/serde1",
+          "sval1_lib/alloc",
+          "erased-serde1/alloc",
+          "serde1_fmt"
+        ],
+        "serde1_fmt": [
+          "dep:serde1_fmt"
+        ],
+        "serde1_lib": [
+          "dep:serde1_lib"
+        ],
+        "std": [],
+        "sval": [
+          "sval1"
+        ],
+        "sval1": [
+          "sval1_lib"
+        ],
+        "sval1_lib": [
+          "dep:sval1_lib"
+        ],
+        "test": [
+          "std"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/value-bag-1.0.0-alpha.9/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "features": [
+              "std",
+              "error",
+              "sval",
+              "serde",
+              "test"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Ashley Mannix <ashleymannix@live.com.au>"
+      ],
+      "categories": [
+        "encoding",
+        "no-std"
+      ],
+      "keywords": [
+        "serialization",
+        "no_std"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/sval-rs/value-bag",
+      "homepage": null,
+      "documentation": "https://docs.rs/value-bag",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "version_check",
+      "version": "0.9.4",
+      "id": "version_check 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Tiny crate to check the version of the installed/running rustc.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "version_check",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/version_check-0.9.4/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/version_check-0.9.4/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Sergio Benitez <sb@sergio.bz>"
+      ],
+      "categories": [],
+      "keywords": [
+        "version",
+        "rustc",
+        "minimum",
+        "check"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/SergioBenitez/version_check",
+      "homepage": null,
+      "documentation": "https://docs.rs/version_check/",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "waker-fn",
+      "version": "1.1.0",
+      "id": "waker-fn 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "Apache-2.0 OR MIT",
+      "license_file": null,
+      "description": "Convert closures into wakers",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "waker-fn",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/waker-fn-1.1.0/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/waker-fn-1.1.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Stjepan Glavina <stjepang@gmail.com>"
+      ],
+      "categories": [
+        "concurrency"
+      ],
+      "keywords": [
+        "async",
+        "waker",
+        "wake",
+        "closure",
+        "callback"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/stjepang/waker-fn",
+      "homepage": "https://github.com/stjepang/waker-fn",
+      "documentation": "https://docs.rs/waker-fn",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "wasm-bindgen",
+      "version": "0.2.81",
+      "id": "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Easy support for interacting between JS and Rust.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "cfg-if",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "serde_json",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-macro",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=0.2.81",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "js-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.58",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "serde_derive",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=0.4.31",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=0.3.31",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test-crate-a",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test-crate-b",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.1",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "wasm-bindgen",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "non_wasm",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/tests/non_wasm.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "std-crate-no-std-dep",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/tests/std-crate-no-std-dep.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "wasm",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/tests/wasm/main.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "headless",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/tests/headless/main.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "unwrap_throw",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/tests/unwrap_throw.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "must_use",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/tests/must_use.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "default": [
+          "spans",
+          "std"
+        ],
+        "enable-interning": [
+          "std"
+        ],
+        "serde": [
+          "dep:serde"
+        ],
+        "serde-serialize": [
+          "serde",
+          "serde_json",
+          "std"
+        ],
+        "serde_json": [
+          "dep:serde_json"
+        ],
+        "spans": [
+          "wasm-bindgen-macro/spans"
+        ],
+        "std": [],
+        "strict-macro": [
+          "wasm-bindgen-macro/strict-macro"
+        ],
+        "xxx_debug_only_print_generated_code": [
+          "wasm-bindgen-macro/xxx_debug_only_print_generated_code"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-0.2.81/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "features": [
+              "serde-serialize"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "The wasm-bindgen Developers"
+      ],
+      "categories": [
+        "wasm"
+      ],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/rustwasm/wasm-bindgen",
+      "homepage": "https://rustwasm.github.io/",
+      "documentation": "https://docs.rs/wasm-bindgen",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "wasm-bindgen-backend",
+      "version": "0.2.81",
+      "id": "wasm-bindgen-backend 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Backend code generation of the wasm-bindgen tool\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "bumpalo",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^3.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "lazy_static",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.2",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "log",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "proc-macro2",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "quote",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "syn",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "full"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-shared",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=0.2.81",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "wasm-bindgen-backend",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-backend-0.2.81/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {
+        "extra-traits": [
+          "syn/extra-traits"
+        ],
+        "spans": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-backend-0.2.81/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "The wasm-bindgen Developers"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": null,
+      "repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/backend",
+      "homepage": "https://rustwasm.github.io/wasm-bindgen/",
+      "documentation": "https://docs.rs/wasm-bindgen-backend",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "wasm-bindgen-futures",
+      "version": "0.4.31",
+      "id": "wasm-bindgen-futures 0.4.31 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Bridging the gap between Rust Futures and JavaScript Promises",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "cfg-if",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-core",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.8",
+          "kind": null,
+          "rename": null,
+          "optional": true,
+          "uses_default_features": false,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "js-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.58",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.81",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "futures-channel-preview",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.0-alpha.18",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "futures-lite",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.11.3",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": false,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.31",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "web-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.24",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "MessageEvent",
+            "Worker"
+          ],
+          "target": "cfg(target_feature = \"atomics\")",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "wasm-bindgen-futures",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-futures-0.4.31/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "tests",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-futures-0.4.31/tests/tests.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "futures-core": [
+          "dep:futures-core"
+        ],
+        "futures-core-03-stream": [
+          "futures-core"
+        ]
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-futures-0.4.31/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "The wasm-bindgen Developers"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": "./README.md",
+      "repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/futures",
+      "homepage": "https://rustwasm.github.io/wasm-bindgen/",
+      "documentation": "https://docs.rs/wasm-bindgen-futures",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "wasm-bindgen-macro",
+      "version": "0.2.81",
+      "id": "wasm-bindgen-macro 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Definition of the `#[wasm_bindgen]` attribute, an internal dependency\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "quote",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-macro-support",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=0.2.81",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "trybuild",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.81",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "strict-macro"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.31",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "proc-macro"
+          ],
+          "crate_types": [
+            "proc-macro"
+          ],
+          "name": "wasm-bindgen-macro",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-macro-0.2.81/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "ui",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-macro-0.2.81/tests/ui.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "spans": [
+          "wasm-bindgen-macro-support/spans"
+        ],
+        "strict-macro": [
+          "wasm-bindgen-macro-support/strict-macro"
+        ],
+        "xxx_debug_only_print_generated_code": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-macro-0.2.81/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "The wasm-bindgen Developers"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": "README.md",
+      "repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro",
+      "homepage": "https://rustwasm.github.io/wasm-bindgen/",
+      "documentation": "https://docs.rs/wasm-bindgen",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "wasm-bindgen-macro-support",
+      "version": "0.2.81",
+      "id": "wasm-bindgen-macro-support 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "The part of the implementation of the `#[wasm_bindgen]` attribute that is not in the shared backend crate\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "proc-macro2",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "quote",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "syn",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0.67",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [
+            "visit",
+            "full"
+          ],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-backend",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=0.2.81",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-shared",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "=0.2.81",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "wasm-bindgen-macro-support",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-macro-support-0.2.81/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        }
+      ],
+      "features": {
+        "extra-traits": [
+          "syn/extra-traits"
+        ],
+        "spans": [
+          "wasm-bindgen-backend/spans"
+        ],
+        "strict-macro": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-macro-support-0.2.81/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "The wasm-bindgen Developers"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": null,
+      "repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/macro-support",
+      "homepage": "https://rustwasm.github.io/wasm-bindgen/",
+      "documentation": "https://docs.rs/wasm-bindgen",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "wasm-bindgen-shared",
+      "version": "0.2.81",
+      "id": "wasm-bindgen-shared 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Shared support between wasm-bindgen and wasm-bindgen cli, an internal\ndependency.\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "wasm-bindgen-shared",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-shared-0.2.81/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-shared-0.2.81/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wasm-bindgen-shared-0.2.81/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "The wasm-bindgen Developers"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": null,
+      "repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/shared",
+      "homepage": "https://rustwasm.github.io/wasm-bindgen/",
+      "documentation": "https://docs.rs/wasm-bindgen-shared",
+      "edition": "2018",
+      "links": "wasm_bindgen",
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "web-sys",
+      "version": "0.3.58",
+      "id": "web-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Bindings for all Web APIs, a procedurally generated crate from WebIDL\n",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "js-sys",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.58",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.2.81",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-futures",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4.31",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        },
+        {
+          "name": "wasm-bindgen-test",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.3.31",
+          "kind": "dev",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "cfg(target_arch = \"wasm32\")",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "web-sys",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/web-sys-0.3.58/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": false,
+          "test": false
+        },
+        {
+          "kind": [
+            "test"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "wasm",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/web-sys-0.3.58/tests/wasm/main.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": true
+        }
+      ],
+      "features": {
+        "AbortController": [],
+        "AbortSignal": [
+          "EventTarget"
+        ],
+        "AddEventListenerOptions": [],
+        "AesCbcParams": [],
+        "AesCtrParams": [],
+        "AesDerivedKeyParams": [],
+        "AesGcmParams": [],
+        "AesKeyAlgorithm": [],
+        "AesKeyGenParams": [],
+        "Algorithm": [],
+        "AlignSetting": [],
+        "AllowedBluetoothDevice": [],
+        "AllowedUsbDevice": [],
+        "AlphaOption": [],
+        "AnalyserNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "AnalyserOptions": [],
+        "AngleInstancedArrays": [],
+        "Animation": [
+          "EventTarget"
+        ],
+        "AnimationEffect": [],
+        "AnimationEvent": [
+          "Event"
+        ],
+        "AnimationEventInit": [],
+        "AnimationPlayState": [],
+        "AnimationPlaybackEvent": [
+          "Event"
+        ],
+        "AnimationPlaybackEventInit": [],
+        "AnimationPropertyDetails": [],
+        "AnimationPropertyValueDetails": [],
+        "AnimationTimeline": [],
+        "AssignedNodesOptions": [],
+        "AttestationConveyancePreference": [],
+        "Attr": [
+          "EventTarget",
+          "Node"
+        ],
+        "AttributeNameValue": [],
+        "AudioBuffer": [],
+        "AudioBufferOptions": [],
+        "AudioBufferSourceNode": [
+          "AudioNode",
+          "AudioScheduledSourceNode",
+          "EventTarget"
+        ],
+        "AudioBufferSourceOptions": [],
+        "AudioConfiguration": [],
+        "AudioContext": [
+          "BaseAudioContext",
+          "EventTarget"
+        ],
+        "AudioContextOptions": [],
+        "AudioContextState": [],
+        "AudioData": [],
+        "AudioDataCopyToOptions": [],
+        "AudioDataInit": [],
+        "AudioDecoder": [],
+        "AudioDecoderConfig": [],
+        "AudioDecoderInit": [],
+        "AudioDecoderSupport": [],
+        "AudioDestinationNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "AudioEncoder": [],
+        "AudioEncoderConfig": [],
+        "AudioEncoderInit": [],
+        "AudioEncoderSupport": [],
+        "AudioListener": [],
+        "AudioNode": [
+          "EventTarget"
+        ],
+        "AudioNodeOptions": [],
+        "AudioParam": [],
+        "AudioParamMap": [],
+        "AudioProcessingEvent": [
+          "Event"
+        ],
+        "AudioSampleFormat": [],
+        "AudioScheduledSourceNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "AudioStreamTrack": [
+          "EventTarget",
+          "MediaStreamTrack"
+        ],
+        "AudioTrack": [],
+        "AudioTrackList": [
+          "EventTarget"
+        ],
+        "AudioWorklet": [
+          "Worklet"
+        ],
+        "AudioWorkletGlobalScope": [
+          "WorkletGlobalScope"
+        ],
+        "AudioWorkletNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "AudioWorkletNodeOptions": [],
+        "AudioWorkletProcessor": [],
+        "AuthenticationExtensionsClientInputs": [],
+        "AuthenticationExtensionsClientOutputs": [],
+        "AuthenticatorAssertionResponse": [
+          "AuthenticatorResponse"
+        ],
+        "AuthenticatorAttachment": [],
+        "AuthenticatorAttestationResponse": [
+          "AuthenticatorResponse"
+        ],
+        "AuthenticatorResponse": [],
+        "AuthenticatorSelectionCriteria": [],
+        "AuthenticatorTransport": [],
+        "AutoKeyword": [],
+        "AutocompleteInfo": [],
+        "BarProp": [],
+        "BaseAudioContext": [
+          "EventTarget"
+        ],
+        "BaseComputedKeyframe": [],
+        "BaseKeyframe": [],
+        "BasePropertyIndexedKeyframe": [],
+        "BasicCardRequest": [],
+        "BasicCardResponse": [],
+        "BasicCardType": [],
+        "BatteryManager": [
+          "EventTarget"
+        ],
+        "BeforeUnloadEvent": [
+          "Event"
+        ],
+        "BinaryType": [],
+        "BiquadFilterNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "BiquadFilterOptions": [],
+        "BiquadFilterType": [],
+        "Blob": [],
+        "BlobEvent": [
+          "Event"
+        ],
+        "BlobEventInit": [],
+        "BlobPropertyBag": [],
+        "BlockParsingOptions": [],
+        "Bluetooth": [
+          "EventTarget"
+        ],
+        "BluetoothAdvertisingEvent": [
+          "Event"
+        ],
+        "BluetoothAdvertisingEventInit": [],
+        "BluetoothCharacteristicProperties": [],
+        "BluetoothDataFilterInit": [],
+        "BluetoothDevice": [
+          "EventTarget"
+        ],
+        "BluetoothLeScanFilterInit": [],
+        "BluetoothManufacturerDataMap": [],
+        "BluetoothPermissionDescriptor": [],
+        "BluetoothPermissionResult": [
+          "EventTarget",
+          "PermissionStatus"
+        ],
+        "BluetoothPermissionStorage": [],
+        "BluetoothRemoteGattCharacteristic": [
+          "EventTarget"
+        ],
+        "BluetoothRemoteGattDescriptor": [],
+        "BluetoothRemoteGattServer": [],
+        "BluetoothRemoteGattService": [
+          "EventTarget"
+        ],
+        "BluetoothServiceDataMap": [],
+        "BluetoothUuid": [],
+        "BoxQuadOptions": [],
+        "BroadcastChannel": [
+          "EventTarget"
+        ],
+        "BrowserElementDownloadOptions": [],
+        "BrowserElementExecuteScriptOptions": [],
+        "BrowserFeedWriter": [],
+        "BrowserFindCaseSensitivity": [],
+        "BrowserFindDirection": [],
+        "Cache": [],
+        "CacheBatchOperation": [],
+        "CacheQueryOptions": [],
+        "CacheStorage": [],
+        "CacheStorageNamespace": [],
+        "CanvasCaptureMediaStream": [
+          "EventTarget",
+          "MediaStream"
+        ],
+        "CanvasGradient": [],
+        "CanvasPattern": [],
+        "CanvasRenderingContext2d": [],
+        "CanvasWindingRule": [],
+        "CaretChangedReason": [],
+        "CaretPosition": [],
+        "CaretStateChangedEventInit": [],
+        "CdataSection": [
+          "CharacterData",
+          "EventTarget",
+          "Node",
+          "Text"
+        ],
+        "ChannelCountMode": [],
+        "ChannelInterpretation": [],
+        "ChannelMergerNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "ChannelMergerOptions": [],
+        "ChannelPixelLayout": [],
+        "ChannelPixelLayoutDataType": [],
+        "ChannelSplitterNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "ChannelSplitterOptions": [],
+        "CharacterData": [
+          "EventTarget",
+          "Node"
+        ],
+        "CheckerboardReason": [],
+        "CheckerboardReport": [],
+        "CheckerboardReportService": [],
+        "ChromeFilePropertyBag": [],
+        "ChromeWorker": [
+          "EventTarget",
+          "Worker"
+        ],
+        "Client": [],
+        "ClientQueryOptions": [],
+        "ClientRectsAndTexts": [],
+        "ClientType": [],
+        "Clients": [],
+        "Clipboard": [
+          "EventTarget"
+        ],
+        "ClipboardEvent": [
+          "Event"
+        ],
+        "ClipboardEventInit": [],
+        "ClipboardItem": [],
+        "ClipboardItemOptions": [],
+        "ClipboardPermissionDescriptor": [],
+        "CloseEvent": [
+          "Event"
+        ],
+        "CloseEventInit": [],
+        "CodecState": [],
+        "CollectedClientData": [],
+        "Comment": [
+          "CharacterData",
+          "EventTarget",
+          "Node"
+        ],
+        "CompositeOperation": [],
+        "CompositionEvent": [
+          "Event",
+          "UiEvent"
+        ],
+        "CompositionEventInit": [],
+        "ComputedEffectTiming": [],
+        "ConnStatusDict": [],
+        "ConnectionType": [],
+        "ConsoleCounter": [],
+        "ConsoleCounterError": [],
+        "ConsoleEvent": [],
+        "ConsoleInstance": [],
+        "ConsoleInstanceOptions": [],
+        "ConsoleLevel": [],
+        "ConsoleLogLevel": [],
+        "ConsoleProfileEvent": [],
+        "ConsoleStackEntry": [],
+        "ConsoleTimerError": [],
+        "ConsoleTimerLogOrEnd": [],
+        "ConsoleTimerStart": [],
+        "ConstantSourceNode": [
+          "AudioNode",
+          "AudioScheduledSourceNode",
+          "EventTarget"
+        ],
+        "ConstantSourceOptions": [],
+        "ConstrainBooleanParameters": [],
+        "ConstrainDomStringParameters": [],
+        "ConstrainDoubleRange": [],
+        "ConstrainLongRange": [],
+        "ContextAttributes2d": [],
+        "ConvertCoordinateOptions": [],
+        "ConvolverNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "ConvolverOptions": [],
+        "Coordinates": [],
+        "Credential": [],
+        "CredentialCreationOptions": [],
+        "CredentialRequestOptions": [],
+        "CredentialsContainer": [],
+        "Crypto": [],
+        "CryptoKey": [],
+        "CryptoKeyPair": [],
+        "Csp": [],
+        "CspPolicies": [],
+        "CspReport": [],
+        "CspReportProperties": [],
+        "CssAnimation": [
+          "Animation",
+          "EventTarget"
+        ],
+        "CssBoxType": [],
+        "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"
+        ],
+        "CssPseudoElement": [],
+        "CssRule": [],
+        "CssRuleList": [],
+        "CssStyleDeclaration": [],
+        "CssStyleRule": [
+          "CssRule"
+        ],
+        "CssStyleSheet": [
+          "StyleSheet"
+        ],
+        "CssStyleSheetParsingMode": [],
+        "CssSupportsRule": [
+          "CssConditionRule",
+          "CssGroupingRule",
+          "CssRule"
+        ],
+        "CssTransition": [
+          "Animation",
+          "EventTarget"
+        ],
+        "CustomElementRegistry": [],
+        "CustomEvent": [
+          "Event"
+        ],
+        "CustomEventInit": [],
+        "DataTransfer": [],
+        "DataTransferItem": [],
+        "DataTransferItemList": [],
+        "DateTimeValue": [],
+        "DecoderDoctorNotification": [],
+        "DecoderDoctorNotificationType": [],
+        "DedicatedWorkerGlobalScope": [
+          "EventTarget",
+          "WorkerGlobalScope"
+        ],
+        "DelayNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "DelayOptions": [],
+        "DeviceAcceleration": [],
+        "DeviceAccelerationInit": [],
+        "DeviceLightEvent": [
+          "Event"
+        ],
+        "DeviceLightEventInit": [],
+        "DeviceMotionEvent": [
+          "Event"
+        ],
+        "DeviceMotionEventInit": [],
+        "DeviceOrientationEvent": [
+          "Event"
+        ],
+        "DeviceOrientationEventInit": [],
+        "DeviceProximityEvent": [
+          "Event"
+        ],
+        "DeviceProximityEventInit": [],
+        "DeviceRotationRate": [],
+        "DeviceRotationRateInit": [],
+        "DhKeyDeriveParams": [],
+        "DirectionSetting": [],
+        "Directory": [],
+        "DisplayMediaStreamConstraints": [],
+        "DisplayNameOptions": [],
+        "DisplayNameResult": [],
+        "DistanceModelType": [],
+        "DnsCacheDict": [],
+        "DnsCacheEntry": [],
+        "DnsLookupDict": [],
+        "Document": [
+          "EventTarget",
+          "Node"
+        ],
+        "DocumentFragment": [
+          "EventTarget",
+          "Node"
+        ],
+        "DocumentTimeline": [
+          "AnimationTimeline"
+        ],
+        "DocumentTimelineOptions": [],
+        "DocumentType": [
+          "EventTarget",
+          "Node"
+        ],
+        "DomError": [],
+        "DomException": [],
+        "DomImplementation": [],
+        "DomMatrix": [
+          "DomMatrixReadOnly"
+        ],
+        "DomMatrixReadOnly": [],
+        "DomParser": [],
+        "DomPoint": [
+          "DomPointReadOnly"
+        ],
+        "DomPointInit": [],
+        "DomPointReadOnly": [],
+        "DomQuad": [],
+        "DomQuadInit": [],
+        "DomQuadJson": [],
+        "DomRect": [
+          "DomRectReadOnly"
+        ],
+        "DomRectInit": [],
+        "DomRectList": [],
+        "DomRectReadOnly": [],
+        "DomRequest": [
+          "EventTarget"
+        ],
+        "DomRequestReadyState": [],
+        "DomStringList": [],
+        "DomStringMap": [],
+        "DomTokenList": [],
+        "DomWindowResizeEventDetail": [],
+        "DragEvent": [
+          "Event",
+          "MouseEvent",
+          "UiEvent"
+        ],
+        "DragEventInit": [],
+        "DynamicsCompressorNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "DynamicsCompressorOptions": [],
+        "EcKeyAlgorithm": [],
+        "EcKeyGenParams": [],
+        "EcKeyImportParams": [],
+        "EcdhKeyDeriveParams": [],
+        "EcdsaParams": [],
+        "EffectTiming": [],
+        "Element": [
+          "EventTarget",
+          "Node"
+        ],
+        "ElementCreationOptions": [],
+        "ElementDefinitionOptions": [],
+        "EncodedAudioChunk": [],
+        "EncodedAudioChunkInit": [],
+        "EncodedAudioChunkMetadata": [],
+        "EncodedAudioChunkType": [],
+        "EncodedVideoChunk": [],
+        "EncodedVideoChunkInit": [],
+        "EncodedVideoChunkMetadata": [],
+        "EncodedVideoChunkType": [],
+        "EndingTypes": [],
+        "ErrorCallback": [],
+        "ErrorEvent": [
+          "Event"
+        ],
+        "ErrorEventInit": [],
+        "Event": [],
+        "EventInit": [],
+        "EventListener": [],
+        "EventListenerOptions": [],
+        "EventModifierInit": [],
+        "EventSource": [
+          "EventTarget"
+        ],
+        "EventSourceInit": [],
+        "EventTarget": [],
+        "Exception": [],
+        "ExtBlendMinmax": [],
+        "ExtColorBufferFloat": [],
+        "ExtColorBufferHalfFloat": [],
+        "ExtDisjointTimerQuery": [],
+        "ExtFragDepth": [],
+        "ExtSRgb": [],
+        "ExtShaderTextureLod": [],
+        "ExtTextureFilterAnisotropic": [],
+        "ExtendableEvent": [
+          "Event"
+        ],
+        "ExtendableEventInit": [],
+        "ExtendableMessageEvent": [
+          "Event",
+          "ExtendableEvent"
+        ],
+        "ExtendableMessageEventInit": [],
+        "External": [],
+        "FakePluginMimeEntry": [],
+        "FakePluginTagInit": [],
+        "FetchEvent": [
+          "Event",
+          "ExtendableEvent"
+        ],
+        "FetchEventInit": [],
+        "FetchObserver": [
+          "EventTarget"
+        ],
+        "FetchReadableStreamReadDataArray": [],
+        "FetchReadableStreamReadDataDone": [],
+        "FetchState": [],
+        "File": [
+          "Blob"
+        ],
+        "FileCallback": [],
+        "FileList": [],
+        "FilePropertyBag": [],
+        "FileReader": [
+          "EventTarget"
+        ],
+        "FileReaderSync": [],
+        "FileSystem": [],
+        "FileSystemDirectoryEntry": [
+          "FileSystemEntry"
+        ],
+        "FileSystemDirectoryReader": [],
+        "FileSystemEntriesCallback": [],
+        "FileSystemEntry": [],
+        "FileSystemEntryCallback": [],
+        "FileSystemFileEntry": [
+          "FileSystemEntry"
+        ],
+        "FileSystemFlags": [],
+        "FillMode": [],
+        "FlashClassification": [],
+        "FlexLineGrowthState": [],
+        "FocusEvent": [
+          "Event",
+          "UiEvent"
+        ],
+        "FocusEventInit": [],
+        "FontFace": [],
+        "FontFaceDescriptors": [],
+        "FontFaceLoadStatus": [],
+        "FontFaceSet": [
+          "EventTarget"
+        ],
+        "FontFaceSetIterator": [],
+        "FontFaceSetIteratorResult": [],
+        "FontFaceSetLoadEvent": [
+          "Event"
+        ],
+        "FontFaceSetLoadEventInit": [],
+        "FontFaceSetLoadStatus": [],
+        "FormData": [],
+        "FrameType": [],
+        "FuzzingFunctions": [],
+        "GainNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "GainOptions": [],
+        "Gamepad": [],
+        "GamepadAxisMoveEvent": [
+          "Event",
+          "GamepadEvent"
+        ],
+        "GamepadAxisMoveEventInit": [],
+        "GamepadButton": [],
+        "GamepadButtonEvent": [
+          "Event",
+          "GamepadEvent"
+        ],
+        "GamepadButtonEventInit": [],
+        "GamepadEvent": [
+          "Event"
+        ],
+        "GamepadEventInit": [],
+        "GamepadHand": [],
+        "GamepadHapticActuator": [],
+        "GamepadHapticActuatorType": [],
+        "GamepadMappingType": [],
+        "GamepadPose": [],
+        "GamepadServiceTest": [],
+        "Geolocation": [],
+        "GetNotificationOptions": [],
+        "GetRootNodeOptions": [],
+        "GetUserMediaRequest": [],
+        "Gpu": [],
+        "GpuAdapter": [],
+        "GpuAddressMode": [],
+        "GpuAutoLayoutMode": [],
+        "GpuBindGroup": [],
+        "GpuBindGroupDescriptor": [],
+        "GpuBindGroupEntry": [],
+        "GpuBindGroupLayout": [],
+        "GpuBindGroupLayoutDescriptor": [],
+        "GpuBindGroupLayoutEntry": [],
+        "GpuBlendComponent": [],
+        "GpuBlendFactor": [],
+        "GpuBlendOperation": [],
+        "GpuBlendState": [],
+        "GpuBuffer": [],
+        "GpuBufferBinding": [],
+        "GpuBufferBindingLayout": [],
+        "GpuBufferBindingType": [],
+        "GpuBufferDescriptor": [],
+        "GpuCanvasCompositingAlphaMode": [],
+        "GpuCanvasConfiguration": [],
+        "GpuCanvasContext": [],
+        "GpuColorDict": [],
+        "GpuColorTargetState": [],
+        "GpuCommandBuffer": [],
+        "GpuCommandBufferDescriptor": [],
+        "GpuCommandEncoder": [],
+        "GpuCommandEncoderDescriptor": [],
+        "GpuCompareFunction": [],
+        "GpuCompilationInfo": [],
+        "GpuCompilationMessage": [],
+        "GpuCompilationMessageType": [],
+        "GpuComputePassDescriptor": [],
+        "GpuComputePassEncoder": [],
+        "GpuComputePassTimestampLocation": [],
+        "GpuComputePassTimestampWrite": [],
+        "GpuComputePipeline": [],
+        "GpuComputePipelineDescriptor": [],
+        "GpuCullMode": [],
+        "GpuDepthStencilState": [],
+        "GpuDevice": [
+          "EventTarget"
+        ],
+        "GpuDeviceDescriptor": [],
+        "GpuDeviceLostInfo": [],
+        "GpuDeviceLostReason": [],
+        "GpuError": [],
+        "GpuErrorFilter": [],
+        "GpuExtent3dDict": [],
+        "GpuExternalTexture": [],
+        "GpuExternalTextureBindingLayout": [],
+        "GpuExternalTextureDescriptor": [],
+        "GpuFeatureName": [],
+        "GpuFilterMode": [],
+        "GpuFragmentState": [],
+        "GpuFrontFace": [],
+        "GpuImageCopyBuffer": [],
+        "GpuImageCopyExternalImage": [],
+        "GpuImageCopyTexture": [],
+        "GpuImageCopyTextureTagged": [],
+        "GpuImageDataLayout": [],
+        "GpuIndexFormat": [],
+        "GpuLoadOp": [],
+        "GpuMipmapFilterMode": [],
+        "GpuMultisampleState": [],
+        "GpuObjectDescriptorBase": [],
+        "GpuOrigin2dDict": [],
+        "GpuOrigin3dDict": [],
+        "GpuOutOfMemoryError": [
+          "GpuError"
+        ],
+        "GpuPipelineDescriptorBase": [],
+        "GpuPipelineLayout": [],
+        "GpuPipelineLayoutDescriptor": [],
+        "GpuPowerPreference": [],
+        "GpuPredefinedColorSpace": [],
+        "GpuPrimitiveState": [],
+        "GpuPrimitiveTopology": [],
+        "GpuProgrammableStage": [],
+        "GpuQuerySet": [],
+        "GpuQuerySetDescriptor": [],
+        "GpuQueryType": [],
+        "GpuQueue": [],
+        "GpuQueueDescriptor": [],
+        "GpuRenderBundle": [],
+        "GpuRenderBundleDescriptor": [],
+        "GpuRenderBundleEncoder": [],
+        "GpuRenderBundleEncoderDescriptor": [],
+        "GpuRenderPassColorAttachment": [],
+        "GpuRenderPassDepthStencilAttachment": [],
+        "GpuRenderPassDescriptor": [],
+        "GpuRenderPassEncoder": [],
+        "GpuRenderPassLayout": [],
+        "GpuRenderPassTimestampLocation": [],
+        "GpuRenderPassTimestampWrite": [],
+        "GpuRenderPipeline": [],
+        "GpuRenderPipelineDescriptor": [],
+        "GpuRequestAdapterOptions": [],
+        "GpuSampler": [],
+        "GpuSamplerBindingLayout": [],
+        "GpuSamplerBindingType": [],
+        "GpuSamplerDescriptor": [],
+        "GpuShaderModule": [],
+        "GpuShaderModuleCompilationHint": [],
+        "GpuShaderModuleDescriptor": [],
+        "GpuStencilFaceState": [],
+        "GpuStencilOperation": [],
+        "GpuStorageTextureAccess": [],
+        "GpuStorageTextureBindingLayout": [],
+        "GpuStoreOp": [],
+        "GpuSupportedFeatures": [],
+        "GpuSupportedLimits": [],
+        "GpuTexture": [],
+        "GpuTextureAspect": [],
+        "GpuTextureBindingLayout": [],
+        "GpuTextureDescriptor": [],
+        "GpuTextureDimension": [],
+        "GpuTextureFormat": [],
+        "GpuTextureSampleType": [],
+        "GpuTextureView": [],
+        "GpuTextureViewDescriptor": [],
+        "GpuTextureViewDimension": [],
+        "GpuUncapturedErrorEvent": [
+          "Event"
+        ],
+        "GpuUncapturedErrorEventInit": [],
+        "GpuValidationError": [
+          "GpuError"
+        ],
+        "GpuVertexAttribute": [],
+        "GpuVertexBufferLayout": [],
+        "GpuVertexFormat": [],
+        "GpuVertexState": [],
+        "GpuVertexStepMode": [],
+        "GridDeclaration": [],
+        "GridTrackState": [],
+        "GroupedHistoryEventInit": [],
+        "HalfOpenInfoDict": [],
+        "HardwareAcceleration": [],
+        "HashChangeEvent": [
+          "Event"
+        ],
+        "HashChangeEventInit": [],
+        "Headers": [],
+        "HeadersGuardEnum": [],
+        "Hid": [
+          "EventTarget"
+        ],
+        "HidCollectionInfo": [],
+        "HidConnectionEvent": [
+          "Event"
+        ],
+        "HidConnectionEventInit": [],
+        "HidDevice": [
+          "EventTarget"
+        ],
+        "HidDeviceFilter": [],
+        "HidDeviceRequestOptions": [],
+        "HidInputReportEvent": [
+          "Event"
+        ],
+        "HidInputReportEventInit": [],
+        "HidReportInfo": [],
+        "HidReportItem": [],
+        "HidUnitSystem": [],
+        "HiddenPluginEventInit": [],
+        "History": [],
+        "HitRegionOptions": [],
+        "HkdfParams": [],
+        "HmacDerivedKeyParams": [],
+        "HmacImportParams": [],
+        "HmacKeyAlgorithm": [],
+        "HmacKeyGenParams": [],
+        "HtmlAllCollection": [],
+        "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"
+        ],
+        "HtmlCollection": [],
+        "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"
+        ],
+        "HttpConnDict": [],
+        "HttpConnInfo": [],
+        "HttpConnectionElement": [],
+        "IdbCursor": [],
+        "IdbCursorDirection": [],
+        "IdbCursorWithValue": [
+          "IdbCursor"
+        ],
+        "IdbDatabase": [
+          "EventTarget"
+        ],
+        "IdbFactory": [],
+        "IdbFileHandle": [
+          "EventTarget"
+        ],
+        "IdbFileMetadataParameters": [],
+        "IdbFileRequest": [
+          "DomRequest",
+          "EventTarget"
+        ],
+        "IdbIndex": [],
+        "IdbIndexParameters": [],
+        "IdbKeyRange": [],
+        "IdbLocaleAwareKeyRange": [
+          "IdbKeyRange"
+        ],
+        "IdbMutableFile": [
+          "EventTarget"
+        ],
+        "IdbObjectStore": [],
+        "IdbObjectStoreParameters": [],
+        "IdbOpenDbOptions": [],
+        "IdbOpenDbRequest": [
+          "EventTarget",
+          "IdbRequest"
+        ],
+        "IdbRequest": [
+          "EventTarget"
+        ],
+        "IdbRequestReadyState": [],
+        "IdbTransaction": [
+          "EventTarget"
+        ],
+        "IdbTransactionMode": [],
+        "IdbVersionChangeEvent": [
+          "Event"
+        ],
+        "IdbVersionChangeEventInit": [],
+        "IdleDeadline": [],
+        "IdleRequestOptions": [],
+        "IirFilterNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "IirFilterOptions": [],
+        "ImageBitmap": [],
+        "ImageBitmapFormat": [],
+        "ImageBitmapRenderingContext": [],
+        "ImageCapture": [],
+        "ImageCaptureError": [],
+        "ImageCaptureErrorEvent": [
+          "Event"
+        ],
+        "ImageCaptureErrorEventInit": [],
+        "ImageData": [],
+        "ImageDecodeOptions": [],
+        "ImageDecodeResult": [],
+        "ImageDecoder": [],
+        "ImageDecoderInit": [],
+        "ImageTrack": [
+          "EventTarget"
+        ],
+        "ImageTrackList": [],
+        "InputEvent": [
+          "Event",
+          "UiEvent"
+        ],
+        "InputEventInit": [],
+        "InstallTriggerData": [],
+        "IntersectionObserver": [],
+        "IntersectionObserverEntry": [],
+        "IntersectionObserverEntryInit": [],
+        "IntersectionObserverInit": [],
+        "IntlUtils": [],
+        "IterableKeyAndValueResult": [],
+        "IterableKeyOrValueResult": [],
+        "IterationCompositeOperation": [],
+        "JsonWebKey": [],
+        "KeyAlgorithm": [],
+        "KeyEvent": [],
+        "KeyIdsInitData": [],
+        "KeyboardEvent": [
+          "Event",
+          "UiEvent"
+        ],
+        "KeyboardEventInit": [],
+        "KeyframeEffect": [
+          "AnimationEffect"
+        ],
+        "KeyframeEffectOptions": [],
+        "L10nElement": [],
+        "L10nValue": [],
+        "LatencyMode": [],
+        "LifecycleCallbacks": [],
+        "LineAlignSetting": [],
+        "ListBoxObject": [],
+        "LocalMediaStream": [
+          "EventTarget",
+          "MediaStream"
+        ],
+        "LocaleInfo": [],
+        "Location": [],
+        "MediaCapabilities": [],
+        "MediaCapabilitiesInfo": [],
+        "MediaConfiguration": [],
+        "MediaDecodingConfiguration": [],
+        "MediaDecodingType": [],
+        "MediaDeviceInfo": [],
+        "MediaDeviceKind": [],
+        "MediaDevices": [
+          "EventTarget"
+        ],
+        "MediaElementAudioSourceNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "MediaElementAudioSourceOptions": [],
+        "MediaEncodingConfiguration": [],
+        "MediaEncodingType": [],
+        "MediaEncryptedEvent": [
+          "Event"
+        ],
+        "MediaError": [],
+        "MediaImage": [],
+        "MediaKeyError": [
+          "Event"
+        ],
+        "MediaKeyMessageEvent": [
+          "Event"
+        ],
+        "MediaKeyMessageEventInit": [],
+        "MediaKeyMessageType": [],
+        "MediaKeyNeededEventInit": [],
+        "MediaKeySession": [
+          "EventTarget"
+        ],
+        "MediaKeySessionType": [],
+        "MediaKeyStatus": [],
+        "MediaKeyStatusMap": [],
+        "MediaKeySystemAccess": [],
+        "MediaKeySystemConfiguration": [],
+        "MediaKeySystemMediaCapability": [],
+        "MediaKeySystemStatus": [],
+        "MediaKeys": [],
+        "MediaKeysPolicy": [],
+        "MediaKeysRequirement": [],
+        "MediaList": [],
+        "MediaMetadata": [],
+        "MediaMetadataInit": [],
+        "MediaPositionState": [],
+        "MediaQueryList": [
+          "EventTarget"
+        ],
+        "MediaQueryListEvent": [
+          "Event"
+        ],
+        "MediaQueryListEventInit": [],
+        "MediaRecorder": [
+          "EventTarget"
+        ],
+        "MediaRecorderErrorEvent": [
+          "Event"
+        ],
+        "MediaRecorderErrorEventInit": [],
+        "MediaRecorderOptions": [],
+        "MediaSession": [],
+        "MediaSessionAction": [],
+        "MediaSessionActionDetails": [],
+        "MediaSessionPlaybackState": [],
+        "MediaSource": [
+          "EventTarget"
+        ],
+        "MediaSourceEndOfStreamError": [],
+        "MediaSourceEnum": [],
+        "MediaSourceReadyState": [],
+        "MediaStream": [
+          "EventTarget"
+        ],
+        "MediaStreamAudioDestinationNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "MediaStreamAudioSourceNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "MediaStreamAudioSourceOptions": [],
+        "MediaStreamConstraints": [],
+        "MediaStreamError": [],
+        "MediaStreamEvent": [
+          "Event"
+        ],
+        "MediaStreamEventInit": [],
+        "MediaStreamTrack": [
+          "EventTarget"
+        ],
+        "MediaStreamTrackEvent": [
+          "Event"
+        ],
+        "MediaStreamTrackEventInit": [],
+        "MediaStreamTrackGenerator": [
+          "EventTarget",
+          "MediaStreamTrack"
+        ],
+        "MediaStreamTrackGeneratorInit": [],
+        "MediaStreamTrackProcessor": [],
+        "MediaStreamTrackProcessorInit": [],
+        "MediaStreamTrackState": [],
+        "MediaTrackConstraintSet": [],
+        "MediaTrackConstraints": [],
+        "MediaTrackSettings": [],
+        "MediaTrackSupportedConstraints": [],
+        "MessageChannel": [],
+        "MessageEvent": [
+          "Event"
+        ],
+        "MessageEventInit": [],
+        "MessagePort": [
+          "EventTarget"
+        ],
+        "MidiAccess": [
+          "EventTarget"
+        ],
+        "MidiConnectionEvent": [
+          "Event"
+        ],
+        "MidiConnectionEventInit": [],
+        "MidiInput": [
+          "EventTarget",
+          "MidiPort"
+        ],
+        "MidiInputMap": [],
+        "MidiMessageEvent": [
+          "Event"
+        ],
+        "MidiMessageEventInit": [],
+        "MidiOptions": [],
+        "MidiOutput": [
+          "EventTarget",
+          "MidiPort"
+        ],
+        "MidiOutputMap": [],
+        "MidiPort": [
+          "EventTarget"
+        ],
+        "MidiPortConnectionState": [],
+        "MidiPortDeviceState": [],
+        "MidiPortType": [],
+        "MimeType": [],
+        "MimeTypeArray": [],
+        "MouseEvent": [
+          "Event",
+          "UiEvent"
+        ],
+        "MouseEventInit": [],
+        "MouseScrollEvent": [
+          "Event",
+          "MouseEvent",
+          "UiEvent"
+        ],
+        "MozDebug": [],
+        "MutationEvent": [
+          "Event"
+        ],
+        "MutationObserver": [],
+        "MutationObserverInit": [],
+        "MutationObservingInfo": [],
+        "MutationRecord": [],
+        "NamedNodeMap": [],
+        "NativeOsFileReadOptions": [],
+        "NativeOsFileWriteAtomicOptions": [],
+        "NavigationType": [],
+        "Navigator": [],
+        "NavigatorAutomationInformation": [],
+        "NetworkCommandOptions": [],
+        "NetworkInformation": [
+          "EventTarget"
+        ],
+        "NetworkResultOptions": [],
+        "Node": [
+          "EventTarget"
+        ],
+        "NodeFilter": [],
+        "NodeIterator": [],
+        "NodeList": [],
+        "Notification": [
+          "EventTarget"
+        ],
+        "NotificationBehavior": [],
+        "NotificationDirection": [],
+        "NotificationEvent": [
+          "Event",
+          "ExtendableEvent"
+        ],
+        "NotificationEventInit": [],
+        "NotificationOptions": [],
+        "NotificationPermission": [],
+        "ObserverCallback": [],
+        "OesElementIndexUint": [],
+        "OesStandardDerivatives": [],
+        "OesTextureFloat": [],
+        "OesTextureFloatLinear": [],
+        "OesTextureHalfFloat": [],
+        "OesTextureHalfFloatLinear": [],
+        "OesVertexArrayObject": [],
+        "OfflineAudioCompletionEvent": [
+          "Event"
+        ],
+        "OfflineAudioCompletionEventInit": [],
+        "OfflineAudioContext": [
+          "BaseAudioContext",
+          "EventTarget"
+        ],
+        "OfflineAudioContextOptions": [],
+        "OfflineResourceList": [
+          "EventTarget"
+        ],
+        "OffscreenCanvas": [
+          "EventTarget"
+        ],
+        "OpenWindowEventDetail": [],
+        "OptionalEffectTiming": [],
+        "OrientationLockType": [],
+        "OrientationType": [],
+        "OscillatorNode": [
+          "AudioNode",
+          "AudioScheduledSourceNode",
+          "EventTarget"
+        ],
+        "OscillatorOptions": [],
+        "OscillatorType": [],
+        "OverSampleType": [],
+        "OvrMultiview2": [],
+        "PageTransitionEvent": [
+          "Event"
+        ],
+        "PageTransitionEventInit": [],
+        "PaintRequest": [],
+        "PaintRequestList": [],
+        "PaintWorkletGlobalScope": [
+          "WorkletGlobalScope"
+        ],
+        "PannerNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "PannerOptions": [],
+        "PanningModelType": [],
+        "Path2d": [],
+        "PaymentAddress": [],
+        "PaymentComplete": [],
+        "PaymentMethodChangeEvent": [
+          "Event",
+          "PaymentRequestUpdateEvent"
+        ],
+        "PaymentMethodChangeEventInit": [],
+        "PaymentRequestUpdateEvent": [
+          "Event"
+        ],
+        "PaymentRequestUpdateEventInit": [],
+        "PaymentResponse": [],
+        "Pbkdf2Params": [],
+        "PcImplIceConnectionState": [],
+        "PcImplIceGatheringState": [],
+        "PcImplSignalingState": [],
+        "PcObserverStateType": [],
+        "Performance": [
+          "EventTarget"
+        ],
+        "PerformanceEntry": [],
+        "PerformanceEntryEventInit": [],
+        "PerformanceEntryFilterOptions": [],
+        "PerformanceMark": [
+          "PerformanceEntry"
+        ],
+        "PerformanceMeasure": [
+          "PerformanceEntry"
+        ],
+        "PerformanceNavigation": [],
+        "PerformanceNavigationTiming": [
+          "PerformanceEntry",
+          "PerformanceResourceTiming"
+        ],
+        "PerformanceObserver": [],
+        "PerformanceObserverEntryList": [],
+        "PerformanceObserverInit": [],
+        "PerformanceResourceTiming": [
+          "PerformanceEntry"
+        ],
+        "PerformanceServerTiming": [],
+        "PerformanceTiming": [],
+        "PeriodicWave": [],
+        "PeriodicWaveConstraints": [],
+        "PeriodicWaveOptions": [],
+        "PermissionDescriptor": [],
+        "PermissionName": [],
+        "PermissionState": [],
+        "PermissionStatus": [
+          "EventTarget"
+        ],
+        "Permissions": [],
+        "PlaneLayout": [],
+        "PlaybackDirection": [],
+        "Plugin": [],
+        "PluginArray": [],
+        "PluginCrashedEventInit": [],
+        "PointerEvent": [
+          "Event",
+          "MouseEvent",
+          "UiEvent"
+        ],
+        "PointerEventInit": [],
+        "PopStateEvent": [
+          "Event"
+        ],
+        "PopStateEventInit": [],
+        "PopupBlockedEvent": [
+          "Event"
+        ],
+        "PopupBlockedEventInit": [],
+        "Position": [],
+        "PositionAlignSetting": [],
+        "PositionError": [],
+        "PositionOptions": [],
+        "Presentation": [],
+        "PresentationAvailability": [
+          "EventTarget"
+        ],
+        "PresentationConnection": [
+          "EventTarget"
+        ],
+        "PresentationConnectionAvailableEvent": [
+          "Event"
+        ],
+        "PresentationConnectionAvailableEventInit": [],
+        "PresentationConnectionBinaryType": [],
+        "PresentationConnectionCloseEvent": [
+          "Event"
+        ],
+        "PresentationConnectionCloseEventInit": [],
+        "PresentationConnectionClosedReason": [],
+        "PresentationConnectionList": [
+          "EventTarget"
+        ],
+        "PresentationConnectionState": [],
+        "PresentationReceiver": [],
+        "PresentationRequest": [
+          "EventTarget"
+        ],
+        "PresentationStyle": [],
+        "ProcessingInstruction": [
+          "CharacterData",
+          "EventTarget",
+          "Node"
+        ],
+        "ProfileTimelineLayerRect": [],
+        "ProfileTimelineMarker": [],
+        "ProfileTimelineMessagePortOperationType": [],
+        "ProfileTimelineStackFrame": [],
+        "ProfileTimelineWorkerOperationType": [],
+        "ProgressEvent": [
+          "Event"
+        ],
+        "ProgressEventInit": [],
+        "PromiseNativeHandler": [],
+        "PromiseRejectionEvent": [
+          "Event"
+        ],
+        "PromiseRejectionEventInit": [],
+        "PublicKeyCredential": [
+          "Credential"
+        ],
+        "PublicKeyCredentialCreationOptions": [],
+        "PublicKeyCredentialDescriptor": [],
+        "PublicKeyCredentialEntity": [],
+        "PublicKeyCredentialParameters": [],
+        "PublicKeyCredentialRequestOptions": [],
+        "PublicKeyCredentialRpEntity": [],
+        "PublicKeyCredentialType": [],
+        "PublicKeyCredentialUserEntity": [],
+        "PushEncryptionKeyName": [],
+        "PushEvent": [
+          "Event",
+          "ExtendableEvent"
+        ],
+        "PushEventInit": [],
+        "PushManager": [],
+        "PushMessageData": [],
+        "PushPermissionState": [],
+        "PushSubscription": [],
+        "PushSubscriptionInit": [],
+        "PushSubscriptionJson": [],
+        "PushSubscriptionKeys": [],
+        "PushSubscriptionOptions": [],
+        "PushSubscriptionOptionsInit": [],
+        "QueuingStrategy": [],
+        "RadioNodeList": [
+          "NodeList"
+        ],
+        "Range": [],
+        "RcwnPerfStats": [],
+        "RcwnStatus": [],
+        "ReadableStream": [],
+        "ReadableStreamByobReadResult": [],
+        "ReadableStreamByobReader": [],
+        "ReadableStreamDefaultReadResult": [],
+        "ReadableStreamDefaultReader": [],
+        "ReadableStreamGetReaderOptions": [],
+        "ReadableStreamIteratorOptions": [],
+        "ReadableStreamReaderMode": [],
+        "ReadableWritablePair": [],
+        "RecordingState": [],
+        "ReferrerPolicy": [],
+        "RegisterRequest": [],
+        "RegisterResponse": [],
+        "RegisteredKey": [],
+        "RegistrationOptions": [],
+        "Request": [],
+        "RequestCache": [],
+        "RequestCredentials": [],
+        "RequestDestination": [],
+        "RequestDeviceOptions": [],
+        "RequestInit": [],
+        "RequestMediaKeySystemAccessNotification": [],
+        "RequestMode": [],
+        "RequestRedirect": [],
+        "ResizeObserver": [],
+        "ResizeObserverBoxOptions": [],
+        "ResizeObserverEntry": [],
+        "ResizeObserverOptions": [],
+        "ResizeObserverSize": [],
+        "Response": [],
+        "ResponseInit": [],
+        "ResponseType": [],
+        "RsaHashedImportParams": [],
+        "RsaOaepParams": [],
+        "RsaOtherPrimesInfo": [],
+        "RsaPssParams": [],
+        "RtcAnswerOptions": [],
+        "RtcBundlePolicy": [],
+        "RtcCertificate": [],
+        "RtcCertificateExpiration": [],
+        "RtcCodecStats": [],
+        "RtcConfiguration": [],
+        "RtcDataChannel": [
+          "EventTarget"
+        ],
+        "RtcDataChannelEvent": [
+          "Event"
+        ],
+        "RtcDataChannelEventInit": [],
+        "RtcDataChannelInit": [],
+        "RtcDataChannelState": [],
+        "RtcDataChannelType": [],
+        "RtcDegradationPreference": [],
+        "RtcFecParameters": [],
+        "RtcIceCandidate": [],
+        "RtcIceCandidateInit": [],
+        "RtcIceCandidatePairStats": [],
+        "RtcIceCandidateStats": [],
+        "RtcIceComponentStats": [],
+        "RtcIceConnectionState": [],
+        "RtcIceCredentialType": [],
+        "RtcIceGatheringState": [],
+        "RtcIceServer": [],
+        "RtcIceTransportPolicy": [],
+        "RtcIdentityAssertion": [],
+        "RtcIdentityAssertionResult": [],
+        "RtcIdentityProvider": [],
+        "RtcIdentityProviderDetails": [],
+        "RtcIdentityProviderOptions": [],
+        "RtcIdentityProviderRegistrar": [],
+        "RtcIdentityValidationResult": [],
+        "RtcInboundRtpStreamStats": [],
+        "RtcLifecycleEvent": [],
+        "RtcMediaStreamStats": [],
+        "RtcMediaStreamTrackStats": [],
+        "RtcOfferAnswerOptions": [],
+        "RtcOfferOptions": [],
+        "RtcOutboundRtpStreamStats": [],
+        "RtcPeerConnection": [
+          "EventTarget"
+        ],
+        "RtcPeerConnectionIceEvent": [
+          "Event"
+        ],
+        "RtcPeerConnectionIceEventInit": [],
+        "RtcPriorityType": [],
+        "RtcRtcpParameters": [],
+        "RtcRtpCodecParameters": [],
+        "RtcRtpContributingSource": [],
+        "RtcRtpEncodingParameters": [],
+        "RtcRtpHeaderExtensionParameters": [],
+        "RtcRtpParameters": [],
+        "RtcRtpReceiver": [],
+        "RtcRtpSender": [],
+        "RtcRtpSourceEntry": [],
+        "RtcRtpSourceEntryType": [],
+        "RtcRtpSynchronizationSource": [],
+        "RtcRtpTransceiver": [],
+        "RtcRtpTransceiverDirection": [],
+        "RtcRtpTransceiverInit": [],
+        "RtcRtxParameters": [],
+        "RtcSdpType": [],
+        "RtcSessionDescription": [],
+        "RtcSessionDescriptionInit": [],
+        "RtcSignalingState": [],
+        "RtcStats": [],
+        "RtcStatsIceCandidatePairState": [],
+        "RtcStatsIceCandidateType": [],
+        "RtcStatsReport": [],
+        "RtcStatsReportInternal": [],
+        "RtcStatsType": [],
+        "RtcTrackEvent": [
+          "Event"
+        ],
+        "RtcTrackEventInit": [],
+        "RtcTransportStats": [],
+        "RtcdtmfSender": [
+          "EventTarget"
+        ],
+        "RtcdtmfToneChangeEvent": [
+          "Event"
+        ],
+        "RtcdtmfToneChangeEventInit": [],
+        "RtcrtpContributingSourceStats": [],
+        "RtcrtpStreamStats": [],
+        "Screen": [
+          "EventTarget"
+        ],
+        "ScreenColorGamut": [],
+        "ScreenLuminance": [],
+        "ScreenOrientation": [
+          "EventTarget"
+        ],
+        "ScriptProcessorNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "ScrollAreaEvent": [
+          "Event",
+          "UiEvent"
+        ],
+        "ScrollBehavior": [],
+        "ScrollBoxObject": [],
+        "ScrollIntoViewOptions": [],
+        "ScrollLogicalPosition": [],
+        "ScrollOptions": [],
+        "ScrollRestoration": [],
+        "ScrollSetting": [],
+        "ScrollState": [],
+        "ScrollToOptions": [],
+        "ScrollViewChangeEventInit": [],
+        "SecurityPolicyViolationEvent": [
+          "Event"
+        ],
+        "SecurityPolicyViolationEventDisposition": [],
+        "SecurityPolicyViolationEventInit": [],
+        "Selection": [],
+        "ServerSocketOptions": [],
+        "ServiceWorker": [
+          "EventTarget"
+        ],
+        "ServiceWorkerContainer": [
+          "EventTarget"
+        ],
+        "ServiceWorkerGlobalScope": [
+          "EventTarget",
+          "WorkerGlobalScope"
+        ],
+        "ServiceWorkerRegistration": [
+          "EventTarget"
+        ],
+        "ServiceWorkerState": [],
+        "ServiceWorkerUpdateViaCache": [],
+        "ShadowRoot": [
+          "DocumentFragment",
+          "EventTarget",
+          "Node"
+        ],
+        "ShadowRootInit": [],
+        "ShadowRootMode": [],
+        "ShareData": [],
+        "SharedWorker": [
+          "EventTarget"
+        ],
+        "SharedWorkerGlobalScope": [
+          "EventTarget",
+          "WorkerGlobalScope"
+        ],
+        "SignResponse": [],
+        "SocketElement": [],
+        "SocketOptions": [],
+        "SocketReadyState": [],
+        "SocketsDict": [],
+        "SourceBuffer": [
+          "EventTarget"
+        ],
+        "SourceBufferAppendMode": [],
+        "SourceBufferList": [
+          "EventTarget"
+        ],
+        "SpeechGrammar": [],
+        "SpeechGrammarList": [],
+        "SpeechRecognition": [
+          "EventTarget"
+        ],
+        "SpeechRecognitionAlternative": [],
+        "SpeechRecognitionError": [
+          "Event"
+        ],
+        "SpeechRecognitionErrorCode": [],
+        "SpeechRecognitionErrorInit": [],
+        "SpeechRecognitionEvent": [
+          "Event"
+        ],
+        "SpeechRecognitionEventInit": [],
+        "SpeechRecognitionResult": [],
+        "SpeechRecognitionResultList": [],
+        "SpeechSynthesis": [
+          "EventTarget"
+        ],
+        "SpeechSynthesisErrorCode": [],
+        "SpeechSynthesisErrorEvent": [
+          "Event",
+          "SpeechSynthesisEvent"
+        ],
+        "SpeechSynthesisErrorEventInit": [],
+        "SpeechSynthesisEvent": [
+          "Event"
+        ],
+        "SpeechSynthesisEventInit": [],
+        "SpeechSynthesisUtterance": [
+          "EventTarget"
+        ],
+        "SpeechSynthesisVoice": [],
+        "StereoPannerNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "StereoPannerOptions": [],
+        "Storage": [],
+        "StorageEstimate": [],
+        "StorageEvent": [
+          "Event"
+        ],
+        "StorageEventInit": [],
+        "StorageManager": [],
+        "StorageType": [],
+        "StreamPipeOptions": [],
+        "StyleRuleChangeEventInit": [],
+        "StyleSheet": [],
+        "StyleSheetApplicableStateChangeEventInit": [],
+        "StyleSheetChangeEventInit": [],
+        "StyleSheetList": [],
+        "SubtleCrypto": [],
+        "SupportedType": [],
+        "SvcOutputMetadata": [],
+        "SvgAngle": [],
+        "SvgAnimateElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgAnimationElement",
+          "SvgElement"
+        ],
+        "SvgAnimateMotionElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgAnimationElement",
+          "SvgElement"
+        ],
+        "SvgAnimateTransformElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgAnimationElement",
+          "SvgElement"
+        ],
+        "SvgAnimatedAngle": [],
+        "SvgAnimatedBoolean": [],
+        "SvgAnimatedEnumeration": [],
+        "SvgAnimatedInteger": [],
+        "SvgAnimatedLength": [],
+        "SvgAnimatedLengthList": [],
+        "SvgAnimatedNumber": [],
+        "SvgAnimatedNumberList": [],
+        "SvgAnimatedPreserveAspectRatio": [],
+        "SvgAnimatedRect": [],
+        "SvgAnimatedString": [],
+        "SvgAnimatedTransformList": [],
+        "SvgAnimationElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement"
+        ],
+        "SvgBoundingBoxOptions": [],
+        "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"
+        ],
+        "SvgLength": [],
+        "SvgLengthList": [],
+        "SvgLineElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement",
+          "SvgGeometryElement",
+          "SvgGraphicsElement"
+        ],
+        "SvgLinearGradientElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement",
+          "SvgGradientElement"
+        ],
+        "SvgMarkerElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement"
+        ],
+        "SvgMaskElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement"
+        ],
+        "SvgMatrix": [],
+        "SvgMetadataElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement"
+        ],
+        "SvgNumber": [],
+        "SvgNumberList": [],
+        "SvgPathElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement",
+          "SvgGeometryElement",
+          "SvgGraphicsElement"
+        ],
+        "SvgPathSeg": [],
+        "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"
+        ],
+        "SvgPathSegList": [],
+        "SvgPathSegMovetoAbs": [
+          "SvgPathSeg"
+        ],
+        "SvgPathSegMovetoRel": [
+          "SvgPathSeg"
+        ],
+        "SvgPatternElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement"
+        ],
+        "SvgPoint": [],
+        "SvgPointList": [],
+        "SvgPolygonElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement",
+          "SvgGeometryElement",
+          "SvgGraphicsElement"
+        ],
+        "SvgPolylineElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement",
+          "SvgGeometryElement",
+          "SvgGraphicsElement"
+        ],
+        "SvgPreserveAspectRatio": [],
+        "SvgRadialGradientElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement",
+          "SvgGradientElement"
+        ],
+        "SvgRect": [],
+        "SvgRectElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement",
+          "SvgGeometryElement",
+          "SvgGraphicsElement"
+        ],
+        "SvgScriptElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement"
+        ],
+        "SvgSetElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgAnimationElement",
+          "SvgElement"
+        ],
+        "SvgStopElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement"
+        ],
+        "SvgStringList": [],
+        "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"
+        ],
+        "SvgTransform": [],
+        "SvgTransformList": [],
+        "SvgUnitTypes": [],
+        "SvgUseElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement",
+          "SvgGraphicsElement"
+        ],
+        "SvgViewElement": [
+          "Element",
+          "EventTarget",
+          "Node",
+          "SvgElement"
+        ],
+        "SvgZoomAndPan": [],
+        "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"
+        ],
+        "TcpReadyState": [],
+        "TcpServerSocket": [
+          "EventTarget"
+        ],
+        "TcpServerSocketEvent": [
+          "Event"
+        ],
+        "TcpServerSocketEventInit": [],
+        "TcpSocket": [
+          "EventTarget"
+        ],
+        "TcpSocketBinaryType": [],
+        "TcpSocketErrorEvent": [
+          "Event"
+        ],
+        "TcpSocketErrorEventInit": [],
+        "TcpSocketEvent": [
+          "Event"
+        ],
+        "TcpSocketEventInit": [],
+        "Text": [
+          "CharacterData",
+          "EventTarget",
+          "Node"
+        ],
+        "TextDecodeOptions": [],
+        "TextDecoder": [],
+        "TextDecoderOptions": [],
+        "TextEncoder": [],
+        "TextMetrics": [],
+        "TextTrack": [
+          "EventTarget"
+        ],
+        "TextTrackCue": [
+          "EventTarget"
+        ],
+        "TextTrackCueList": [],
+        "TextTrackKind": [],
+        "TextTrackList": [
+          "EventTarget"
+        ],
+        "TextTrackMode": [],
+        "TimeEvent": [
+          "Event"
+        ],
+        "TimeRanges": [],
+        "Touch": [],
+        "TouchEvent": [
+          "Event",
+          "UiEvent"
+        ],
+        "TouchEventInit": [],
+        "TouchInit": [],
+        "TouchList": [],
+        "TrackEvent": [
+          "Event"
+        ],
+        "TrackEventInit": [],
+        "TransformStream": [],
+        "TransitionEvent": [
+          "Event"
+        ],
+        "TransitionEventInit": [],
+        "Transport": [],
+        "TreeBoxObject": [],
+        "TreeCellInfo": [],
+        "TreeView": [],
+        "TreeWalker": [],
+        "U2f": [],
+        "U2fClientData": [],
+        "UdpMessageEventInit": [],
+        "UdpOptions": [],
+        "UiEvent": [
+          "Event"
+        ],
+        "UiEventInit": [],
+        "Url": [],
+        "UrlSearchParams": [],
+        "Usb": [
+          "EventTarget"
+        ],
+        "UsbAlternateInterface": [],
+        "UsbConfiguration": [],
+        "UsbConnectionEvent": [
+          "Event"
+        ],
+        "UsbConnectionEventInit": [],
+        "UsbControlTransferParameters": [],
+        "UsbDevice": [],
+        "UsbDeviceFilter": [],
+        "UsbDeviceRequestOptions": [],
+        "UsbDirection": [],
+        "UsbEndpoint": [],
+        "UsbEndpointType": [],
+        "UsbInTransferResult": [],
+        "UsbInterface": [],
+        "UsbIsochronousInTransferPacket": [],
+        "UsbIsochronousInTransferResult": [],
+        "UsbIsochronousOutTransferPacket": [],
+        "UsbIsochronousOutTransferResult": [],
+        "UsbOutTransferResult": [],
+        "UsbPermissionDescriptor": [],
+        "UsbPermissionResult": [
+          "EventTarget",
+          "PermissionStatus"
+        ],
+        "UsbPermissionStorage": [],
+        "UsbRecipient": [],
+        "UsbRequestType": [],
+        "UsbTransferStatus": [],
+        "UserProximityEvent": [
+          "Event"
+        ],
+        "UserProximityEventInit": [],
+        "UserVerificationRequirement": [],
+        "ValidityState": [],
+        "ValueEvent": [
+          "Event"
+        ],
+        "ValueEventInit": [],
+        "VideoColorPrimaries": [],
+        "VideoColorSpace": [],
+        "VideoColorSpaceInit": [],
+        "VideoConfiguration": [],
+        "VideoDecoder": [],
+        "VideoDecoderConfig": [],
+        "VideoDecoderInit": [],
+        "VideoDecoderSupport": [],
+        "VideoEncoder": [],
+        "VideoEncoderConfig": [],
+        "VideoEncoderEncodeOptions": [],
+        "VideoEncoderInit": [],
+        "VideoEncoderSupport": [],
+        "VideoFacingModeEnum": [],
+        "VideoFrame": [],
+        "VideoFrameBufferInit": [],
+        "VideoFrameCopyToOptions": [],
+        "VideoFrameInit": [],
+        "VideoMatrixCoefficients": [],
+        "VideoPixelFormat": [],
+        "VideoPlaybackQuality": [],
+        "VideoStreamTrack": [
+          "EventTarget",
+          "MediaStreamTrack"
+        ],
+        "VideoTrack": [],
+        "VideoTrackList": [
+          "EventTarget"
+        ],
+        "VideoTransferCharacteristics": [],
+        "VisibilityState": [],
+        "VoidCallback": [],
+        "VrDisplay": [
+          "EventTarget"
+        ],
+        "VrDisplayCapabilities": [],
+        "VrEye": [],
+        "VrEyeParameters": [],
+        "VrFieldOfView": [],
+        "VrFrameData": [],
+        "VrLayer": [],
+        "VrMockController": [],
+        "VrMockDisplay": [],
+        "VrPose": [],
+        "VrServiceTest": [],
+        "VrStageParameters": [],
+        "VrSubmitFrameResult": [],
+        "VttCue": [
+          "EventTarget",
+          "TextTrackCue"
+        ],
+        "VttRegion": [],
+        "WakeLock": [],
+        "WakeLockSentinel": [
+          "EventTarget"
+        ],
+        "WakeLockType": [],
+        "WatchAdvertisementsOptions": [],
+        "WaveShaperNode": [
+          "AudioNode",
+          "EventTarget"
+        ],
+        "WaveShaperOptions": [],
+        "WebGl2RenderingContext": [],
+        "WebGlActiveInfo": [],
+        "WebGlBuffer": [],
+        "WebGlContextAttributes": [],
+        "WebGlContextEvent": [
+          "Event"
+        ],
+        "WebGlContextEventInit": [],
+        "WebGlFramebuffer": [],
+        "WebGlPowerPreference": [],
+        "WebGlProgram": [],
+        "WebGlQuery": [],
+        "WebGlRenderbuffer": [],
+        "WebGlRenderingContext": [],
+        "WebGlSampler": [],
+        "WebGlShader": [],
+        "WebGlShaderPrecisionFormat": [],
+        "WebGlSync": [],
+        "WebGlTexture": [],
+        "WebGlTransformFeedback": [],
+        "WebGlUniformLocation": [],
+        "WebGlVertexArrayObject": [],
+        "WebKitCssMatrix": [
+          "DomMatrix",
+          "DomMatrixReadOnly"
+        ],
+        "WebSocket": [
+          "EventTarget"
+        ],
+        "WebSocketDict": [],
+        "WebSocketElement": [],
+        "WebglColorBufferFloat": [],
+        "WebglCompressedTextureAstc": [],
+        "WebglCompressedTextureAtc": [],
+        "WebglCompressedTextureEtc": [],
+        "WebglCompressedTextureEtc1": [],
+        "WebglCompressedTexturePvrtc": [],
+        "WebglCompressedTextureS3tc": [],
+        "WebglCompressedTextureS3tcSrgb": [],
+        "WebglDebugRendererInfo": [],
+        "WebglDebugShaders": [],
+        "WebglDepthTexture": [],
+        "WebglDrawBuffers": [],
+        "WebglLoseContext": [],
+        "WebrtcGlobalStatisticsReport": [],
+        "WheelEvent": [
+          "Event",
+          "MouseEvent",
+          "UiEvent"
+        ],
+        "WheelEventInit": [],
+        "WidevineCdmManifest": [],
+        "Window": [
+          "EventTarget"
+        ],
+        "WindowClient": [
+          "Client"
+        ],
+        "Worker": [
+          "EventTarget"
+        ],
+        "WorkerDebuggerGlobalScope": [
+          "EventTarget"
+        ],
+        "WorkerGlobalScope": [
+          "EventTarget"
+        ],
+        "WorkerLocation": [],
+        "WorkerNavigator": [],
+        "WorkerOptions": [],
+        "WorkerType": [],
+        "Worklet": [],
+        "WorkletGlobalScope": [],
+        "WorkletOptions": [],
+        "WritableStream": [],
+        "WritableStreamDefaultWriter": [],
+        "XPathExpression": [],
+        "XPathNsResolver": [],
+        "XPathResult": [],
+        "XmlDocument": [
+          "Document",
+          "EventTarget",
+          "Node"
+        ],
+        "XmlHttpRequest": [
+          "EventTarget",
+          "XmlHttpRequestEventTarget"
+        ],
+        "XmlHttpRequestEventTarget": [
+          "EventTarget"
+        ],
+        "XmlHttpRequestResponseType": [],
+        "XmlHttpRequestUpload": [
+          "EventTarget",
+          "XmlHttpRequestEventTarget"
+        ],
+        "XmlSerializer": [],
+        "XrBoundedReferenceSpace": [
+          "EventTarget",
+          "XrReferenceSpace",
+          "XrSpace"
+        ],
+        "XrEye": [],
+        "XrFrame": [],
+        "XrHandedness": [],
+        "XrInputSource": [],
+        "XrInputSourceArray": [],
+        "XrInputSourceEvent": [
+          "Event"
+        ],
+        "XrInputSourceEventInit": [],
+        "XrInputSourcesChangeEvent": [
+          "Event"
+        ],
+        "XrInputSourcesChangeEventInit": [],
+        "XrLayer": [
+          "EventTarget"
+        ],
+        "XrPermissionDescriptor": [],
+        "XrPermissionStatus": [
+          "EventTarget",
+          "PermissionStatus"
+        ],
+        "XrPose": [],
+        "XrReferenceSpace": [
+          "EventTarget",
+          "XrSpace"
+        ],
+        "XrReferenceSpaceEvent": [
+          "Event"
+        ],
+        "XrReferenceSpaceEventInit": [],
+        "XrReferenceSpaceType": [],
+        "XrRenderState": [],
+        "XrRenderStateInit": [],
+        "XrRigidTransform": [],
+        "XrSession": [
+          "EventTarget"
+        ],
+        "XrSessionEvent": [
+          "Event"
+        ],
+        "XrSessionEventInit": [],
+        "XrSessionInit": [],
+        "XrSessionMode": [],
+        "XrSessionSupportedPermissionDescriptor": [],
+        "XrSpace": [
+          "EventTarget"
+        ],
+        "XrSystem": [
+          "EventTarget"
+        ],
+        "XrTargetRayMode": [],
+        "XrView": [],
+        "XrViewerPose": [
+          "XrPose"
+        ],
+        "XrViewport": [],
+        "XrVisibilityState": [],
+        "XrWebGlLayer": [
+          "EventTarget",
+          "XrLayer"
+        ],
+        "XrWebGlLayerInit": [],
+        "XsltProcessor": [],
+        "console": [],
+        "css": [],
+        "gpu_buffer_usage": [],
+        "gpu_color_write": [],
+        "gpu_map_mode": [],
+        "gpu_shader_stage": [],
+        "gpu_texture_usage": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/web-sys-0.3.58/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "all-features": true,
+            "rustdoc-args": [
+              "--cfg=web_sys_unstable_apis"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "The wasm-bindgen Developers"
+      ],
+      "categories": [],
+      "keywords": [],
+      "readme": "./README.md",
+      "repository": "https://github.com/rustwasm/wasm-bindgen/tree/master/crates/web-sys",
+      "homepage": "https://rustwasm.github.io/wasm-bindgen/web-sys/index.html",
+      "documentation": "https://rustwasm.github.io/wasm-bindgen/api/web_sys/",
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "wepoll-ffi",
+      "version": "0.1.2",
+      "id": "wepoll-ffi 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT OR Apache-2.0 OR BSD-2-Clause",
+      "license_file": null,
+      "description": "Bindings for the wepoll library",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "cc",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^1.0",
+          "kind": "build",
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": null,
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "wepoll-ffi",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wepoll-ffi-0.1.2/src/lib.rs",
+          "edition": "2018",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wepoll-ffi-0.1.2/build.rs",
+          "edition": "2018",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "null-overlapped-wakeups-patch": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/wepoll-ffi-0.1.2/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "targets": [
+              "x86_64-pc-windows-msvc"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Philip Degarmo <aclysma@gmail.com>"
+      ],
+      "categories": [
+        "external-ffi-bindings"
+      ],
+      "keywords": [
+        "wepoll"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/aclysma/wepoll-ffi",
+      "homepage": "https://github.com/aclysma/wepoll-ffi",
+      "documentation": null,
+      "edition": "2018",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "winapi",
+      "version": "0.3.9",
+      "id": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Raw FFI bindings for all of Windows API.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [
+        {
+          "name": "winapi-i686-pc-windows-gnu",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "i686-pc-windows-gnu",
+          "registry": null
+        },
+        {
+          "name": "winapi-x86_64-pc-windows-gnu",
+          "source": "registry+https://github.com/rust-lang/crates.io-index",
+          "req": "^0.4",
+          "kind": null,
+          "rename": null,
+          "optional": false,
+          "uses_default_features": true,
+          "features": [],
+          "target": "x86_64-pc-windows-gnu",
+          "registry": null
+        }
+      ],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "winapi",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-0.3.9/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-0.3.9/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {
+        "accctrl": [],
+        "aclapi": [],
+        "activation": [],
+        "adhoc": [],
+        "appmgmt": [],
+        "audioclient": [],
+        "audiosessiontypes": [],
+        "avrt": [],
+        "basetsd": [],
+        "bcrypt": [],
+        "bits": [],
+        "bits10_1": [],
+        "bits1_5": [],
+        "bits2_0": [],
+        "bits2_5": [],
+        "bits3_0": [],
+        "bits4_0": [],
+        "bits5_0": [],
+        "bitscfg": [],
+        "bitsmsg": [],
+        "bluetoothapis": [],
+        "bluetoothleapis": [],
+        "bthdef": [],
+        "bthioctl": [],
+        "bthledef": [],
+        "bthsdpdef": [],
+        "bugcodes": [],
+        "cderr": [],
+        "cfg": [],
+        "cfgmgr32": [],
+        "cguid": [],
+        "combaseapi": [],
+        "coml2api": [],
+        "commapi": [],
+        "commctrl": [],
+        "commdlg": [],
+        "commoncontrols": [],
+        "consoleapi": [],
+        "corecrt": [],
+        "corsym": [],
+        "d2d1": [],
+        "d2d1_1": [],
+        "d2d1_2": [],
+        "d2d1_3": [],
+        "d2d1effectauthor": [],
+        "d2d1effects": [],
+        "d2d1effects_1": [],
+        "d2d1effects_2": [],
+        "d2d1svg": [],
+        "d2dbasetypes": [],
+        "d3d": [],
+        "d3d10": [],
+        "d3d10_1": [],
+        "d3d10_1shader": [],
+        "d3d10effect": [],
+        "d3d10misc": [],
+        "d3d10sdklayers": [],
+        "d3d10shader": [],
+        "d3d11": [],
+        "d3d11_1": [],
+        "d3d11_2": [],
+        "d3d11_3": [],
+        "d3d11_4": [],
+        "d3d11on12": [],
+        "d3d11sdklayers": [],
+        "d3d11shader": [],
+        "d3d11tokenizedprogramformat": [],
+        "d3d12": [],
+        "d3d12sdklayers": [],
+        "d3d12shader": [],
+        "d3d9": [],
+        "d3d9caps": [],
+        "d3d9types": [],
+        "d3dcommon": [],
+        "d3dcompiler": [],
+        "d3dcsx": [],
+        "d3dkmdt": [],
+        "d3dkmthk": [],
+        "d3dukmdt": [],
+        "d3dx10core": [],
+        "d3dx10math": [],
+        "d3dx10mesh": [],
+        "datetimeapi": [],
+        "davclnt": [],
+        "dbghelp": [],
+        "dbt": [],
+        "dcommon": [],
+        "dcomp": [],
+        "dcompanimation": [],
+        "dcomptypes": [],
+        "dde": [],
+        "ddraw": [],
+        "ddrawi": [],
+        "ddrawint": [],
+        "debug": [
+          "impl-debug"
+        ],
+        "debugapi": [],
+        "devguid": [],
+        "devicetopology": [],
+        "devpkey": [],
+        "devpropdef": [],
+        "dinput": [],
+        "dinputd": [],
+        "dispex": [],
+        "dmksctl": [],
+        "dmusicc": [],
+        "docobj": [],
+        "documenttarget": [],
+        "dot1x": [],
+        "dpa_dsa": [],
+        "dpapi": [],
+        "dsgetdc": [],
+        "dsound": [],
+        "dsrole": [],
+        "dvp": [],
+        "dwmapi": [],
+        "dwrite": [],
+        "dwrite_1": [],
+        "dwrite_2": [],
+        "dwrite_3": [],
+        "dxdiag": [],
+        "dxfile": [],
+        "dxgi": [],
+        "dxgi1_2": [],
+        "dxgi1_3": [],
+        "dxgi1_4": [],
+        "dxgi1_5": [],
+        "dxgi1_6": [],
+        "dxgidebug": [],
+        "dxgiformat": [],
+        "dxgitype": [],
+        "dxva2api": [],
+        "dxvahd": [],
+        "eaptypes": [],
+        "enclaveapi": [],
+        "endpointvolume": [],
+        "errhandlingapi": [],
+        "everything": [],
+        "evntcons": [],
+        "evntprov": [],
+        "evntrace": [],
+        "excpt": [],
+        "exdisp": [],
+        "fibersapi": [],
+        "fileapi": [],
+        "functiondiscoverykeys_devpkey": [],
+        "gl-gl": [],
+        "guiddef": [],
+        "handleapi": [],
+        "heapapi": [],
+        "hidclass": [],
+        "hidpi": [],
+        "hidsdi": [],
+        "hidusage": [],
+        "highlevelmonitorconfigurationapi": [],
+        "hstring": [],
+        "http": [],
+        "ifdef": [],
+        "ifmib": [],
+        "imm": [],
+        "impl-debug": [],
+        "impl-default": [],
+        "in6addr": [],
+        "inaddr": [],
+        "inspectable": [],
+        "interlockedapi": [],
+        "intsafe": [],
+        "ioapiset": [],
+        "ipexport": [],
+        "iphlpapi": [],
+        "ipifcons": [],
+        "ipmib": [],
+        "iprtrmib": [],
+        "iptypes": [],
+        "jobapi": [],
+        "jobapi2": [],
+        "knownfolders": [],
+        "ks": [],
+        "ksmedia": [],
+        "ktmtypes": [],
+        "ktmw32": [],
+        "l2cmn": [],
+        "libloaderapi": [],
+        "limits": [],
+        "lmaccess": [],
+        "lmalert": [],
+        "lmapibuf": [],
+        "lmat": [],
+        "lmcons": [],
+        "lmdfs": [],
+        "lmerrlog": [],
+        "lmjoin": [],
+        "lmmsg": [],
+        "lmremutl": [],
+        "lmrepl": [],
+        "lmserver": [],
+        "lmshare": [],
+        "lmstats": [],
+        "lmsvc": [],
+        "lmuse": [],
+        "lmwksta": [],
+        "lowlevelmonitorconfigurationapi": [],
+        "lsalookup": [],
+        "memoryapi": [],
+        "minschannel": [],
+        "minwinbase": [],
+        "minwindef": [],
+        "mmdeviceapi": [],
+        "mmeapi": [],
+        "mmreg": [],
+        "mmsystem": [],
+        "mprapidef": [],
+        "msaatext": [],
+        "mscat": [],
+        "mschapp": [],
+        "mssip": [],
+        "mstcpip": [],
+        "mswsock": [],
+        "mswsockdef": [],
+        "namedpipeapi": [],
+        "namespaceapi": [],
+        "nb30": [],
+        "ncrypt": [],
+        "netioapi": [],
+        "nldef": [],
+        "ntddndis": [],
+        "ntddscsi": [],
+        "ntddser": [],
+        "ntdef": [],
+        "ntlsa": [],
+        "ntsecapi": [],
+        "ntstatus": [],
+        "oaidl": [],
+        "objbase": [],
+        "objidl": [],
+        "objidlbase": [],
+        "ocidl": [],
+        "ole2": [],
+        "oleauto": [],
+        "olectl": [],
+        "oleidl": [],
+        "opmapi": [],
+        "pdh": [],
+        "perflib": [],
+        "physicalmonitorenumerationapi": [],
+        "playsoundapi": [],
+        "portabledevice": [],
+        "portabledeviceapi": [],
+        "portabledevicetypes": [],
+        "powerbase": [],
+        "powersetting": [],
+        "powrprof": [],
+        "processenv": [],
+        "processsnapshot": [],
+        "processthreadsapi": [],
+        "processtopologyapi": [],
+        "profileapi": [],
+        "propidl": [],
+        "propkey": [],
+        "propkeydef": [],
+        "propsys": [],
+        "prsht": [],
+        "psapi": [],
+        "qos": [],
+        "realtimeapiset": [],
+        "reason": [],
+        "restartmanager": [],
+        "restrictederrorinfo": [],
+        "rmxfguid": [],
+        "roapi": [],
+        "robuffer": [],
+        "roerrorapi": [],
+        "rpc": [],
+        "rpcdce": [],
+        "rpcndr": [],
+        "rtinfo": [],
+        "sapi": [],
+        "sapi51": [],
+        "sapi53": [],
+        "sapiddk": [],
+        "sapiddk51": [],
+        "schannel": [],
+        "sddl": [],
+        "securityappcontainer": [],
+        "securitybaseapi": [],
+        "servprov": [],
+        "setupapi": [],
+        "shellapi": [],
+        "shellscalingapi": [],
+        "shlobj": [],
+        "shobjidl": [],
+        "shobjidl_core": [],
+        "shtypes": [],
+        "softpub": [],
+        "spapidef": [],
+        "spellcheck": [],
+        "sporder": [],
+        "sql": [],
+        "sqlext": [],
+        "sqltypes": [],
+        "sqlucode": [],
+        "sspi": [],
+        "std": [],
+        "stralign": [],
+        "stringapiset": [],
+        "strmif": [],
+        "subauth": [],
+        "synchapi": [],
+        "sysinfoapi": [],
+        "systemtopologyapi": [],
+        "taskschd": [],
+        "tcpestats": [],
+        "tcpmib": [],
+        "textstor": [],
+        "threadpoolapiset": [],
+        "threadpoollegacyapiset": [],
+        "timeapi": [],
+        "timezoneapi": [],
+        "tlhelp32": [],
+        "transportsettingcommon": [],
+        "tvout": [],
+        "udpmib": [],
+        "unknwnbase": [],
+        "urlhist": [],
+        "urlmon": [],
+        "usb": [],
+        "usbioctl": [],
+        "usbiodef": [],
+        "usbscan": [],
+        "usbspec": [],
+        "userenv": [],
+        "usp10": [],
+        "utilapiset": [],
+        "uxtheme": [],
+        "vadefs": [],
+        "vcruntime": [],
+        "vsbackup": [],
+        "vss": [],
+        "vsserror": [],
+        "vswriter": [],
+        "wbemads": [],
+        "wbemcli": [],
+        "wbemdisp": [],
+        "wbemprov": [],
+        "wbemtran": [],
+        "wct": [],
+        "werapi": [],
+        "winbase": [],
+        "wincodec": [],
+        "wincodecsdk": [],
+        "wincon": [],
+        "wincontypes": [],
+        "wincred": [],
+        "wincrypt": [],
+        "windef": [],
+        "windot11": [],
+        "windowsceip": [],
+        "windowsx": [],
+        "winefs": [],
+        "winerror": [],
+        "winevt": [],
+        "wingdi": [],
+        "winhttp": [],
+        "wininet": [],
+        "winineti": [],
+        "winioctl": [],
+        "winnetwk": [],
+        "winnls": [],
+        "winnt": [],
+        "winreg": [],
+        "winsafer": [],
+        "winscard": [],
+        "winsmcrd": [],
+        "winsock2": [],
+        "winspool": [],
+        "winstring": [],
+        "winsvc": [],
+        "wintrust": [],
+        "winusb": [],
+        "winusbio": [],
+        "winuser": [],
+        "winver": [],
+        "wlanapi": [],
+        "wlanihv": [],
+        "wlanihvtypes": [],
+        "wlantypes": [],
+        "wlclient": [],
+        "wmistr": [],
+        "wnnc": [],
+        "wow64apiset": [],
+        "wpdmtpextensions": [],
+        "ws2bth": [],
+        "ws2def": [],
+        "ws2ipdef": [],
+        "ws2spi": [],
+        "ws2tcpip": [],
+        "wtsapi32": [],
+        "wtypes": [],
+        "wtypesbase": [],
+        "xinput": []
+      },
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-0.3.9/Cargo.toml",
+      "metadata": {
+        "docs": {
+          "rs": {
+            "default-target": "x86_64-pc-windows-msvc",
+            "features": [
+              "everything",
+              "impl-debug",
+              "impl-default"
+            ],
+            "targets": [
+              "aarch64-pc-windows-msvc",
+              "i686-pc-windows-msvc",
+              "x86_64-pc-windows-msvc"
+            ]
+          }
+        }
+      },
+      "publish": null,
+      "authors": [
+        "Peter Atashian <retep998@gmail.com>"
+      ],
+      "categories": [
+        "external-ffi-bindings",
+        "no-std",
+        "os::windows-apis"
+      ],
+      "keywords": [
+        "windows",
+        "ffi",
+        "win32",
+        "com",
+        "directx"
+      ],
+      "readme": "README.md",
+      "repository": "https://github.com/retep998/winapi-rs",
+      "homepage": null,
+      "documentation": "https://docs.rs/winapi/",
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "winapi-i686-pc-windows-gnu",
+      "version": "0.4.0",
+      "id": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "winapi-i686-pc-windows-gnu",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-i686-pc-windows-gnu-0.4.0/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-i686-pc-windows-gnu-0.4.0/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-i686-pc-windows-gnu-0.4.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Peter Atashian <retep998@gmail.com>"
+      ],
+      "categories": [],
+      "keywords": [
+        "windows"
+      ],
+      "readme": null,
+      "repository": "https://github.com/retep998/winapi-rs",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    },
+    {
+      "name": "winapi-x86_64-pc-windows-gnu",
+      "version": "0.4.0",
+      "id": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+      "license": "MIT/Apache-2.0",
+      "license_file": null,
+      "description": "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.",
+      "source": "registry+https://github.com/rust-lang/crates.io-index",
+      "dependencies": [],
+      "targets": [
+        {
+          "kind": [
+            "lib"
+          ],
+          "crate_types": [
+            "lib"
+          ],
+          "name": "winapi-x86_64-pc-windows-gnu",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-x86_64-pc-windows-gnu-0.4.0/src/lib.rs",
+          "edition": "2015",
+          "doc": true,
+          "doctest": true,
+          "test": true
+        },
+        {
+          "kind": [
+            "custom-build"
+          ],
+          "crate_types": [
+            "bin"
+          ],
+          "name": "build-script-build",
+          "src_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-x86_64-pc-windows-gnu-0.4.0/build.rs",
+          "edition": "2015",
+          "doc": false,
+          "doctest": false,
+          "test": false
+        }
+      ],
+      "features": {},
+      "manifest_path": "/home/sayrer/.cargo/registry/src/jackfan.us.kg-1ecc6299db9ec823/winapi-x86_64-pc-windows-gnu-0.4.0/Cargo.toml",
+      "metadata": null,
+      "publish": null,
+      "authors": [
+        "Peter Atashian <retep998@gmail.com>"
+      ],
+      "categories": [],
+      "keywords": [
+        "windows"
+      ],
+      "readme": null,
+      "repository": "https://github.com/retep998/winapi-rs",
+      "homepage": null,
+      "documentation": null,
+      "edition": "2015",
+      "links": null,
+      "default_run": null,
+      "rust_version": null
+    }
+  ],
+  "workspace_members": [
+    "rust-async-std-project 0.1.0 (path+file://{{ mock_workspace }})"
+  ],
+  "resolve": {
+    "nodes": [
+      {
+        "id": "async-channel 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "concurrent-queue 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+          "event-listener 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "concurrent_queue",
+            "pkg": "concurrent-queue 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "event_listener",
+            "pkg": "event-listener 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_core",
+            "pkg": "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "async-executor 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "async-task 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "concurrent-queue 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+          "fastrand 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "slab 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "async_task",
+            "pkg": "async-task 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "concurrent_queue",
+            "pkg": "concurrent-queue 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "fastrand",
+            "pkg": "fastrand 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_lite",
+            "pkg": "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "once_cell",
+            "pkg": "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "slab",
+            "pkg": "slab 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "async-global-executor 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "async-channel 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+          "async-executor 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+          "async-io 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "async-lock 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "blocking 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "num_cpus 1.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
+          "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "async_channel",
+            "pkg": "async-channel 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "async_executor",
+            "pkg": "async-executor 1.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "async_io",
+            "pkg": "async-io 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "async_lock",
+            "pkg": "async-lock 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "blocking",
+            "pkg": "blocking 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_lite",
+            "pkg": "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "num_cpus",
+            "pkg": "num_cpus 1.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "once_cell",
+            "pkg": "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "async-io",
+          "default"
+        ]
+      },
+      {
+        "id": "async-io 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "concurrent-queue 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+          "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+          "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "parking 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "polling 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "slab 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+          "socket2 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+          "waker-fn 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "concurrent_queue",
+            "pkg": "concurrent-queue 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_lite",
+            "pkg": "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "libc",
+            "pkg": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(unix)"
+              }
+            ]
+          },
+          {
+            "name": "log",
+            "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "once_cell",
+            "pkg": "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "parking",
+            "pkg": "parking 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "polling",
+            "pkg": "polling 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "slab",
+            "pkg": "slab 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "socket2",
+            "pkg": "socket2 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "waker_fn",
+            "pkg": "waker-fn 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "winapi",
+            "pkg": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(windows)"
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "async-lock 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "event-listener 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "event_listener",
+            "pkg": "event-listener 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "async-std 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "async-channel 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+          "async-global-executor 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "async-io 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "async-lock 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "crossbeam-utils 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-channel 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-io 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "gloo-timers 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+          "kv-log-macro 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+          "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+          "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "pin-project-lite 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+          "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "slab 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen-futures 0.4.31 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "async_channel",
+            "pkg": "async-channel 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "async_global_executor",
+            "pkg": "async-global-executor 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(not(target_os = \"unknown\"))"
+              }
+            ]
+          },
+          {
+            "name": "async_io",
+            "pkg": "async-io 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(not(target_os = \"unknown\"))"
+              }
+            ]
+          },
+          {
+            "name": "async_lock",
+            "pkg": "async-lock 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "crossbeam_utils",
+            "pkg": "crossbeam-utils 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_channel",
+            "pkg": "futures-channel 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(target_arch = \"wasm32\")"
+              }
+            ]
+          },
+          {
+            "name": "futures_core",
+            "pkg": "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_io",
+            "pkg": "futures-io 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_lite",
+            "pkg": "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(not(target_os = \"unknown\"))"
+              }
+            ]
+          },
+          {
+            "name": "gloo_timers",
+            "pkg": "gloo-timers 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(target_arch = \"wasm32\")"
+              }
+            ]
+          },
+          {
+            "name": "kv_log_macro",
+            "pkg": "kv-log-macro 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "log",
+            "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "memchr",
+            "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "once_cell",
+            "pkg": "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "pin_project_lite",
+            "pkg": "pin-project-lite 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "pin_utils",
+            "pkg": "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "slab",
+            "pkg": "slab 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen_futures",
+            "pkg": "wasm-bindgen-futures 0.4.31 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(target_arch = \"wasm32\")"
+              }
+            ]
+          }
+        ],
+        "features": [
+          "alloc",
+          "async-channel",
+          "async-global-executor",
+          "async-io",
+          "async-lock",
+          "crossbeam-utils",
+          "default",
+          "futures-channel",
+          "futures-core",
+          "futures-io",
+          "futures-lite",
+          "gloo-timers",
+          "kv-log-macro",
+          "log",
+          "memchr",
+          "once_cell",
+          "pin-project-lite",
+          "pin-utils",
+          "slab",
+          "std",
+          "wasm-bindgen-futures"
+        ]
+      },
+      {
+        "id": "async-task 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "atomic-waker 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "blocking 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "async-channel 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+          "async-task 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "atomic-waker 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "fastrand 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "async_channel",
+            "pkg": "async-channel 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "async_task",
+            "pkg": "async-task 4.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "atomic_waker",
+            "pkg": "atomic-waker 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "fastrand",
+            "pkg": "fastrand 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_lite",
+            "pkg": "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "once_cell",
+            "pkg": "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "bumpalo 3.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "default"
+        ]
+      },
+      {
+        "id": "cache-padded 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "cc 1.0.73 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "concurrent-queue 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cache-padded 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cache_padded",
+            "pkg": "cache-padded 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "crossbeam-utils 0.8.10 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cfg_if",
+            "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "once_cell",
+            "pkg": "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "default",
+          "once_cell",
+          "std"
+        ]
+      },
+      {
+        "id": "ctor 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+          "syn 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "quote",
+            "pkg": "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "syn",
+            "pkg": "syn 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "event-listener 2.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "fastrand 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "instant 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "instant",
+            "pkg": "instant 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(target_arch = \"wasm32\")"
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "futures-channel 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "futures_core",
+            "pkg": "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "alloc",
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "alloc",
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "futures-io 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "futures-lite 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "fastrand 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-io 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+          "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "parking 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "pin-project-lite 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+          "waker-fn 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "fastrand",
+            "pkg": "fastrand 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_core",
+            "pkg": "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_io",
+            "pkg": "futures-io 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "memchr",
+            "pkg": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "parking",
+            "pkg": "parking 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "pin_project_lite",
+            "pkg": "pin-project-lite 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "waker_fn",
+            "pkg": "waker-fn 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "alloc",
+          "default",
+          "fastrand",
+          "futures-io",
+          "memchr",
+          "parking",
+          "std",
+          "waker-fn"
+        ]
+      },
+      {
+        "id": "gloo-timers 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "futures-channel 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+          "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+          "js-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "futures_channel",
+            "pkg": "futures-channel 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "futures_core",
+            "pkg": "futures-core 0.3.21 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "js_sys",
+            "pkg": "js-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen",
+            "pkg": "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "default",
+          "futures",
+          "futures-channel",
+          "futures-core"
+        ]
+      },
+      {
+        "id": "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "libc",
+            "pkg": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "default"
+        ]
+      },
+      {
+        "id": "instant 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cfg_if",
+            "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "js-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "wasm_bindgen",
+            "pkg": "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "kv-log-macro 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "log",
+            "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "value-bag 1.0.0-alpha.9 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cfg_if",
+            "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "value_bag",
+            "pkg": "value-bag 1.0.0-alpha.9 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "kv_unstable",
+          "value-bag"
+        ]
+      },
+      {
+        "id": "memchr 2.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "num_cpus 1.13.1 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+          "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "hermit_abi",
+            "pkg": "hermit-abi 0.1.19 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))"
+              }
+            ]
+          },
+          {
+            "name": "libc",
+            "pkg": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(not(windows))"
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "once_cell 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "alloc",
+          "default",
+          "race",
+          "std"
+        ]
+      },
+      {
+        "id": "parking 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "pin-project-lite 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "polling 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+          "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wepoll-ffi 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+          "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cfg_if",
+            "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "libc",
+            "pkg": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(any(unix, target_os = \"fuchsia\", target_os = \"vxworks\"))"
+              }
+            ]
+          },
+          {
+            "name": "log",
+            "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wepoll_ffi",
+            "pkg": "wepoll-ffi 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(windows)"
+              }
+            ]
+          },
+          {
+            "name": "winapi",
+            "pkg": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(windows)"
+              }
+            ]
+          }
+        ],
+        "features": [
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "unicode-ident 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "unicode_ident",
+            "pkg": "unicode-ident 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "default",
+          "proc-macro"
+        ]
+      },
+      {
+        "id": "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "proc_macro2",
+            "pkg": "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "default",
+          "proc-macro"
+        ]
+      },
+      {
+        "id": "rust-async-std-project 0.1.0 (path+file://{{ mock_workspace }})",
+        "dependencies": [
+          "async-std 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "async_std",
+            "pkg": "async-std 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "slab 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": [
+          "default",
+          "std"
+        ]
+      },
+      {
+        "id": "socket2 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+          "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "libc",
+            "pkg": "libc 0.2.126 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(unix)"
+              }
+            ]
+          },
+          {
+            "name": "winapi",
+            "pkg": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(windows)"
+              }
+            ]
+          }
+        ],
+        "features": [
+          "all"
+        ]
+      },
+      {
+        "id": "syn 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+          "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+          "unicode-ident 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "proc_macro2",
+            "pkg": "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "quote",
+            "pkg": "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "unicode_ident",
+            "pkg": "unicode-ident 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "clone-impls",
+          "default",
+          "derive",
+          "full",
+          "parsing",
+          "printing",
+          "proc-macro",
+          "quote",
+          "visit"
+        ]
+      },
+      {
+        "id": "unicode-ident 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "value-bag 1.0.0-alpha.9 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "ctor 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
+          "version_check 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "ctor",
+            "pkg": "ctor 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "rustc",
+            "pkg": "version_check 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": "build",
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "version_check 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "waker-fn 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen-macro 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cfg_if",
+            "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen_macro",
+            "pkg": "wasm-bindgen-macro 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "default",
+          "spans",
+          "std"
+        ]
+      },
+      {
+        "id": "wasm-bindgen-backend 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "bumpalo 3.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+          "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+          "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+          "syn 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen-shared 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "bumpalo",
+            "pkg": "bumpalo 3.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "lazy_static",
+            "pkg": "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "log",
+            "pkg": "log 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "proc_macro2",
+            "pkg": "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "quote",
+            "pkg": "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "syn",
+            "pkg": "syn 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen_shared",
+            "pkg": "wasm-bindgen-shared 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "spans"
+        ]
+      },
+      {
+        "id": "wasm-bindgen-futures 0.4.31 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "js-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+          "web-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cfg_if",
+            "pkg": "cfg-if 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "js_sys",
+            "pkg": "js-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen",
+            "pkg": "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "web_sys",
+            "pkg": "web-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "cfg(target_feature = \"atomics\")"
+              }
+            ]
+          }
+        ],
+        "features": []
+      },
+      {
+        "id": "wasm-bindgen-macro 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen-macro-support 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "quote",
+            "pkg": "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen_macro_support",
+            "pkg": "wasm-bindgen-macro-support 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "spans"
+        ]
+      },
+      {
+        "id": "wasm-bindgen-macro-support 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+          "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+          "syn 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen-backend 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen-shared 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "proc_macro2",
+            "pkg": "proc-macro2 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "quote",
+            "pkg": "quote 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "syn",
+            "pkg": "syn 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen_backend",
+            "pkg": "wasm-bindgen-backend 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen_shared",
+            "pkg": "wasm-bindgen-shared 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "spans"
+        ]
+      },
+      {
+        "id": "wasm-bindgen-shared 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "web-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "js-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+          "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "js_sys",
+            "pkg": "js-sys 0.3.58 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          },
+          {
+            "name": "wasm_bindgen",
+            "pkg": "wasm-bindgen 0.2.81 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "Event",
+          "EventTarget",
+          "MessageEvent",
+          "Worker"
+        ]
+      },
+      {
+        "id": "wepoll-ffi 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "cc 1.0.73 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "cc",
+            "pkg": "cc 1.0.73 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": "build",
+                "target": null
+              }
+            ]
+          }
+        ],
+        "features": [
+          "null-overlapped-wakeups-patch"
+        ]
+      },
+      {
+        "id": "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [
+          "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+          "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)"
+        ],
+        "deps": [
+          {
+            "name": "winapi_i686_pc_windows_gnu",
+            "pkg": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "i686-pc-windows-gnu"
+              }
+            ]
+          },
+          {
+            "name": "winapi_x86_64_pc_windows_gnu",
+            "pkg": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+            "dep_kinds": [
+              {
+                "kind": null,
+                "target": "x86_64-pc-windows-gnu"
+              }
+            ]
+          }
+        ],
+        "features": [
+          "handleapi",
+          "ioapiset",
+          "winsock2",
+          "ws2ipdef",
+          "ws2tcpip"
+        ]
+      },
+      {
+        "id": "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      },
+      {
+        "id": "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+        "dependencies": [],
+        "deps": [],
+        "features": []
+      }
+    ],
+    "root": "rust-async-std-project 0.1.0 (path+file://{{ mock_workspace }})"
+  },
+  "target_directory": "{{ mock_workspace }}/target",
+  "version": 1,
+  "workspace_root": "{{ mock_workspace }}",
+  "metadata": null
+}

From 72a32637a45658dc6d219392a564f3af6c99c5c2 Mon Sep 17 00:00:00 2001
From: Robert Sayre <sayrer@gmail.com>
Date: Tue, 28 Jun 2022 11:43:28 -0700
Subject: [PATCH 7/8] Fix dep coalescing, run bootstrap.

---
 impl/src/context.rs                           | 36 +++++++++++++++++--
 .../cargo/remote/BUILD.async-std-1.9.0.bazel  |  1 +
 .../cargo/remote/BUILD.rand-0.8.3.bazel       | 12 +++++++
 .../cargo/remote/BUILD.reqwest-0.11.2.bazel   |  2 ++
 4 files changed, 49 insertions(+), 2 deletions(-)

diff --git a/impl/src/context.rs b/impl/src/context.rs
index c46fbdba2..511499f78 100644
--- a/impl/src/context.rs
+++ b/impl/src/context.rs
@@ -137,6 +137,34 @@ impl CrateDependencyContext {
       .cloned()
       .collect();
   }
+
+  pub fn add(&mut self, other: &CrateDependencyContext) {
+    self.dependencies = self
+      .dependencies
+      .union(&other.dependencies)
+      .cloned()
+      .collect();
+    self.proc_macro_dependencies = self
+      .proc_macro_dependencies
+      .union(&other.proc_macro_dependencies)
+      .cloned()
+      .collect();
+    self.build_dependencies = self
+      .build_dependencies
+      .union(&other.build_dependencies)
+      .cloned()
+      .collect();
+    self.build_proc_macro_dependencies = self
+      .build_proc_macro_dependencies
+      .union(&other.build_proc_macro_dependencies)
+      .cloned()
+      .collect();
+    self.dev_dependencies = self
+      .dev_dependencies
+      .union(&other.dev_dependencies)
+      .cloned()
+      .collect();
+  }
 }
 
 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
@@ -147,10 +175,14 @@ pub struct CrateTargetedDepContext {
 
 impl PlatformCrateAttribute<CrateDependencyContext> for CrateTargetedDepContext {
   fn new(platforms: Vec<String>, attrs: Vec<CrateDependencyContext>) -> Self {
-    assert_eq!(attrs.len(), 1);
+    let deps = attrs.iter().skip(1).fold(attrs[0].clone(), |mut acc, hs| {
+      acc.add(hs);
+      acc
+    });
+
     CrateTargetedDepContext {
       platform_targets: platforms,
-      deps: attrs[0].clone(),
+      deps,
     }
   }
 }
diff --git a/third_party/cargo/remote/BUILD.async-std-1.9.0.bazel b/third_party/cargo/remote/BUILD.async-std-1.9.0.bazel
index c0f7b21e6..d48d97424 100644
--- a/third_party/cargo/remote/BUILD.async-std-1.9.0.bazel
+++ b/third_party/cargo/remote/BUILD.async-std-1.9.0.bazel
@@ -136,6 +136,7 @@ rust_library(
             "@rules_rust//rust/platform:i686-apple-darwin",
             "@rules_rust//rust/platform:i686-pc-windows-msvc",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:wasm32-wasi",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
             "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
diff --git a/third_party/cargo/remote/BUILD.rand-0.8.3.bazel b/third_party/cargo/remote/BUILD.rand-0.8.3.bazel
index 009d2eab5..cf5345d03 100644
--- a/third_party/cargo/remote/BUILD.rand-0.8.3.bazel
+++ b/third_party/cargo/remote/BUILD.rand-0.8.3.bazel
@@ -77,5 +77,17 @@ rust_library(
             "@cargo_raze__rand_chacha__0_3_0//:rand_chacha",
         ],
         "//conditions:default": [],
+    }) + selects.with_or({
+        (
+            "@rules_rust//rust/platform:aarch64-apple-darwin",
+            "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
+            "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-unknown-linux-gnu",
+            "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
+        ): [
+            "@cargo_raze__libc__0_2_92//:libc",
+        ],
+        "//conditions:default": [],
     }),
 )
diff --git a/third_party/cargo/remote/BUILD.reqwest-0.11.2.bazel b/third_party/cargo/remote/BUILD.reqwest-0.11.2.bazel
index dccdafc1e..7573bf549 100644
--- a/third_party/cargo/remote/BUILD.reqwest-0.11.2.bazel
+++ b/third_party/cargo/remote/BUILD.reqwest-0.11.2.bazel
@@ -85,8 +85,10 @@ rust_library(
             "@rules_rust//rust/platform:aarch64-apple-darwin",
             "@rules_rust//rust/platform:aarch64-unknown-linux-gnu",
             "@rules_rust//rust/platform:i686-apple-darwin",
+            "@rules_rust//rust/platform:i686-pc-windows-msvc",
             "@rules_rust//rust/platform:i686-unknown-linux-gnu",
             "@rules_rust//rust/platform:x86_64-apple-darwin",
+            "@rules_rust//rust/platform:x86_64-pc-windows-msvc",
             "@rules_rust//rust/platform:x86_64-unknown-linux-gnu",
         ): [
             "@cargo_raze__base64__0_13_0//:base64",

From 531b64cbd78400caf4434062f5313d437fa4d59b Mon Sep 17 00:00:00 2001
From: Robert Sayre <sayrer@gmail.com>
Date: Tue, 28 Jun 2022 12:05:53 -0700
Subject: [PATCH 8/8] Fix test comment.

---
 impl/src/planning.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/impl/src/planning.rs b/impl/src/planning.rs
index 59f06fd41..1bd7b0bfc 100644
--- a/impl/src/planning.rs
+++ b/impl/src/planning.rs
@@ -499,7 +499,7 @@ pub mod tests {
       vec!["wasm32-unknown-unknown", "wasm32-wasi",]
     );
 
-    // The wasm-targeted deps should have both wasm platforms
+    // The os-targeted deps should only have wasm32-wasi
     let os_targeted_dep_context = async_std
       .targeted_deps
       .iter()