[INFO] fetching crate sshkit_rs 0.1.0... [INFO] testing sshkit_rs-0.1.0 against master#caccb4d0368bd918ef6668af8e13834d07040417 for pr-146098-1 [INFO] extracting crate sshkit_rs 0.1.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate sshkit_rs 0.1.0 [INFO] finished tweaking crates.io crate sshkit_rs 0.1.0 [INFO] tweaked toml for crates.io crate sshkit_rs 0.1.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate sshkit_rs 0.1.0 on toolchain caccb4d0368bd918ef6668af8e13834d07040417 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 69 packages to latest compatible versions [INFO] [stderr] Adding bb8 v0.8.6 (available: v0.9.0) [INFO] [stderr] Adding thiserror v1.0.69 (available: v2.0.17) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded ssh2 v0.9.5 [INFO] [stderr] Downloaded bb8 v0.8.6 [INFO] [stderr] Downloaded libssh2-sys v0.3.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a6c54d248eb96d2c1fd749163e8db89548b0b2827e3dc2bbad40e4754a74b80d [INFO] running `Command { std: "docker" "start" "-a" "a6c54d248eb96d2c1fd749163e8db89548b0b2827e3dc2bbad40e4754a74b80d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a6c54d248eb96d2c1fd749163e8db89548b0b2827e3dc2bbad40e4754a74b80d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a6c54d248eb96d2c1fd749163e8db89548b0b2827e3dc2bbad40e4754a74b80d", kill_on_drop: false }` [INFO] [stdout] a6c54d248eb96d2c1fd749163e8db89548b0b2827e3dc2bbad40e4754a74b80d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a34d6abf2249bed619f590b2543cab663e617bb359d1752ea4eb268b19c2ab8d [INFO] running `Command { std: "docker" "start" "-a" "a34d6abf2249bed619f590b2543cab663e617bb359d1752ea4eb268b19c2ab8d", kill_on_drop: false }` [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling shell-escape v0.1.5 [INFO] [stderr] Compiling libz-sys v1.1.22 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling libssh2-sys v0.3.1 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling openssl-sys v0.9.109 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tokio v1.47.1 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling ssh2 v0.9.5 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling bb8 v0.8.6 [INFO] [stderr] Compiling sshkit_rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.31s [INFO] running `Command { std: "docker" "inspect" "a34d6abf2249bed619f590b2543cab663e617bb359d1752ea4eb268b19c2ab8d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a34d6abf2249bed619f590b2543cab663e617bb359d1752ea4eb268b19c2ab8d", kill_on_drop: false }` [INFO] [stdout] a34d6abf2249bed619f590b2543cab663e617bb359d1752ea4eb268b19c2ab8d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a15815f4f2e689e02f6fb053705d3cf2f9dae76544866e8dd88667a317d165ce [INFO] running `Command { std: "docker" "start" "-a" "a15815f4f2e689e02f6fb053705d3cf2f9dae76544866e8dd88667a317d165ce", kill_on_drop: false }` [INFO] [stderr] Compiling sshkit_rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.89s [INFO] running `Command { std: "docker" "inspect" "a15815f4f2e689e02f6fb053705d3cf2f9dae76544866e8dd88667a317d165ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a15815f4f2e689e02f6fb053705d3cf2f9dae76544866e8dd88667a317d165ce", kill_on_drop: false }` [INFO] [stdout] a15815f4f2e689e02f6fb053705d3cf2f9dae76544866e8dd88667a317d165ce [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+caccb4d0368bd918ef6668af8e13834d07040417" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1eaadf10d11c97d544f960b6e4afec2ad349016097065bb5e31070ca65dcd587 [INFO] running `Command { std: "docker" "start" "-a" "1eaadf10d11c97d544f960b6e4afec2ad349016097065bb5e31070ca65dcd587", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.15s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sshkit_rs-4793c8654a91146e) [INFO] [stderr] Doc-tests sshkit_rs [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test src/lib.rs - SshKit::download (line 413) ... FAILED [INFO] [stdout] test src/lib.rs - SshKit::upload (line 253) ... FAILED [INFO] [stdout] test src/lib.rs - SshKit::run_command (line 121) ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- src/lib.rs - SshKit::download (line 413) stdout ---- [INFO] [stdout] error[E0432]: unresolved import `ssh_kit` [INFO] [stdout] --> src/lib.rs:414:5 [INFO] [stdout] | [INFO] [stdout] 3 | use ssh_kit::{ExecMode, SshKit}; [INFO] [stdout] | ^^^^^^^ use of unresolved module or unlinked crate `ssh_kit` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `ssh_kit`, use `cargo add ssh_kit` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Host` [INFO] [stdout] --> src/lib.rs:417:14 [INFO] [stdout] | [INFO] [stdout] 6 | let server = Host::new("127.0.0.1", "user", None).with_password("password"); [INFO] [stdout] | ^^^^ use of undeclared type `Host` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 2 + use ssh2::Host; [INFO] [stdout] | [INFO] [stdout] 2 + use sshkit_rs::Host; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FileOptions` [INFO] [stdout] --> src/lib.rs:420:17 [INFO] [stdout] | [INFO] [stdout] 9 | let file_opts = FileOptions::new("/path/to/remote/file").with_local_path("/path/to/local/file");; [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `FileOptions` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 + use sshkit_rs::FileOptions; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `sshkit` in this scope [INFO] [stdout] --> src/lib.rs:421:15 [INFO] [stdout] | [INFO] [stdout] 10 | let results = sshkit.on(server.clone()).download(file_opts, ExecMode::Sequential(None)).await?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks [INFO] [stdout] --> src/lib.rs:421:89 [INFO] [stdout] | [INFO] [stdout] 2 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_413_0() { [INFO] [stdout] | ----------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 10 | let results = sshkit.on(server.clone()).download(file_opts, ExecMode::Sequential(None)).await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error: aborting due to 5 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0432, E0433, E0728. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/lib.rs - SshKit::upload (line 253) stdout ---- [INFO] [stdout] error[E0432]: unresolved import `ssh_kit` [INFO] [stdout] --> src/lib.rs:254:5 [INFO] [stdout] | [INFO] [stdout] 3 | use ssh_kit::{ExecMode, SshKit}; [INFO] [stdout] | ^^^^^^^ use of unresolved module or unlinked crate `ssh_kit` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `ssh_kit`, use `cargo add ssh_kit` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Host` [INFO] [stdout] --> src/lib.rs:257:14 [INFO] [stdout] | [INFO] [stdout] 6 | let server = Host::new("127.0.0.1", "user", None).with_password("password"); [INFO] [stdout] | ^^^^ use of undeclared type `Host` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 2 + use ssh2::Host; [INFO] [stdout] | [INFO] [stdout] 2 + use sshkit_rs::Host; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `FileOptions` [INFO] [stdout] --> src/lib.rs:260:17 [INFO] [stdout] | [INFO] [stdout] 9 | let file_opts = FileOptions::new("/path/to/remote/file").with_local_path("/path/to/local/file");; [INFO] [stdout] | ^^^^^^^^^^^ use of undeclared type `FileOptions` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 + use sshkit_rs::FileOptions; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `sshkit` in this scope [INFO] [stdout] --> src/lib.rs:261:15 [INFO] [stdout] | [INFO] [stdout] 10 | let results = sshkit.on(server.clone()).upload(file_opts, ExecMode::Sequential(None)).await?; [INFO] [stdout] | ^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks [INFO] [stdout] --> src/lib.rs:261:87 [INFO] [stdout] | [INFO] [stdout] 2 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_253_0() { [INFO] [stdout] | ----------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 10 | let results = sshkit.on(server.clone()).upload(file_opts, ExecMode::Sequential(None)).await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error: aborting due to 5 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0432, E0433, E0728. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/lib.rs - SshKit::run_command (line 121) stdout ---- [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `SshKit` [INFO] [stdout] --> src/lib.rs:122:14 [INFO] [stdout] | [INFO] [stdout] 3 | let sshkit = SshKit::new(); [INFO] [stdout] | ^^^^^^ use of undeclared type `SshKit` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 + use sshkit_rs::SshKit; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Host` [INFO] [stdout] --> src/lib.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 4 | let server = Host::new("127.0.0.1", "user", None).with_password("password"); [INFO] [stdout] | ^^^^ use of undeclared type `Host` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 2 + use ssh2::Host; [INFO] [stdout] | [INFO] [stdout] 2 + use sshkit_rs::Host; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `CommandBuilder` [INFO] [stdout] --> src/lib.rs:124:23 [INFO] [stdout] | [INFO] [stdout] 5 | let command_builder = CommandBuilder::new("ls -la"); [INFO] [stdout] | ^^^^^^^^^^^^^^ use of undeclared type `CommandBuilder` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 2 + use sshkit_rs::CommandBuilder; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `ExecMode` [INFO] [stdout] --> src/lib.rs:125:17 [INFO] [stdout] | [INFO] [stdout] 6 | let exec_mode = ExecMode::Sequential(Some(Duration::from_secs(5))); [INFO] [stdout] | ^^^^^^^^ use of undeclared type `ExecMode` [INFO] [stdout] | [INFO] [stdout] help: consider importing this enum [INFO] [stdout] | [INFO] [stdout] 2 + use sshkit_rs::ExecMode; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of undeclared type `Duration` [INFO] [stdout] --> src/lib.rs:125:43 [INFO] [stdout] | [INFO] [stdout] 6 | let exec_mode = ExecMode::Sequential(Some(Duration::from_secs(5))); [INFO] [stdout] | ^^^^^^^^ use of undeclared type `Duration` [INFO] [stdout] | [INFO] [stdout] help: consider importing one of these structs [INFO] [stdout] | [INFO] [stdout] 2 + use std::time::Duration; [INFO] [stdout] | [INFO] [stdout] 2 + use tokio::time::Duration; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks [INFO] [stdout] --> src/lib.rs:126:77 [INFO] [stdout] | [INFO] [stdout] 2 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_121_0() { [INFO] [stdout] | ----------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 7 | let results = sshkit.on(server.clone()).execute(command_builder, exec_mode).await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error: aborting due to 6 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0433, E0728. [INFO] [stdout] For more information about an error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] src/lib.rs - SshKit::download (line 413) [INFO] [stdout] src/lib.rs - SshKit::run_command (line 121) [INFO] [stdout] src/lib.rs - SshKit::upload (line 253) [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.27s [INFO] [stdout] [INFO] [stderr] error: doctest failed, to rerun pass `--doc` [INFO] running `Command { std: "docker" "inspect" "1eaadf10d11c97d544f960b6e4afec2ad349016097065bb5e31070ca65dcd587", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1eaadf10d11c97d544f960b6e4afec2ad349016097065bb5e31070ca65dcd587", kill_on_drop: false }` [INFO] [stdout] 1eaadf10d11c97d544f960b6e4afec2ad349016097065bb5e31070ca65dcd587