[INFO] fetching crate secra-memory 0.1.1... [INFO] testing secra-memory-0.1.1 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate secra-memory 0.1.1 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate secra-memory 0.1.1 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate secra-memory 0.1.1 [INFO] tweaked toml for crates.io crate secra-memory 0.1.1 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate secra-memory 0.1.1 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate secra-memory 0.1.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e87642315e05ed238fb7a296dcf7a8988b5e7fa2d4563cd06ccccf30aff4ad8e [INFO] running `Command { std: "docker" "start" "-a" "e87642315e05ed238fb7a296dcf7a8988b5e7fa2d4563cd06ccccf30aff4ad8e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e87642315e05ed238fb7a296dcf7a8988b5e7fa2d4563cd06ccccf30aff4ad8e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e87642315e05ed238fb7a296dcf7a8988b5e7fa2d4563cd06ccccf30aff4ad8e", kill_on_drop: false }` [INFO] [stdout] e87642315e05ed238fb7a296dcf7a8988b5e7fa2d4563cd06ccccf30aff4ad8e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9a93c1425e39102ec892f922d7221e463b31e50cdc5ef9eadeb100c284238f6b [INFO] running `Command { std: "docker" "start" "-a" "9a93c1425e39102ec892f922d7221e463b31e50cdc5ef9eadeb100c284238f6b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.104 [INFO] [stderr] Compiling unicode-ident v1.0.22 [INFO] [stderr] Compiling quote v1.0.42 [INFO] [stderr] Compiling libc v0.2.178 [INFO] [stderr] Compiling cfg-if v1.0.4 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling futures-sink v0.3.31 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling zerocopy v0.8.31 [INFO] [stderr] Compiling concurrent-queue v2.5.0 [INFO] [stderr] Compiling futures-channel v0.3.31 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling parking v2.2.1 [INFO] [stderr] Compiling event-listener v5.4.1 [INFO] [stderr] Compiling lock_api v0.4.14 [INFO] [stderr] Compiling portable-atomic v1.13.0 [INFO] [stderr] Compiling zmij v1.0.3 [INFO] [stderr] Compiling event-listener-strategy v0.5.4 [INFO] [stderr] Compiling serde_json v1.0.148 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Compiling async-lock v3.4.2 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling crossbeam-channel v0.5.15 [INFO] [stderr] Compiling tagptr v0.2.0 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling dashmap v5.5.3 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling moka v0.12.12 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling secra-memory v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.87s [INFO] running `Command { std: "docker" "inspect" "9a93c1425e39102ec892f922d7221e463b31e50cdc5ef9eadeb100c284238f6b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9a93c1425e39102ec892f922d7221e463b31e50cdc5ef9eadeb100c284238f6b", kill_on_drop: false }` [INFO] [stdout] 9a93c1425e39102ec892f922d7221e463b31e50cdc5ef9eadeb100c284238f6b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 47c2dfb62e6504f35b3b9baf77206579c4bf350fcde31857f1f4bdeab4e15c6f [INFO] running `Command { std: "docker" "start" "-a" "47c2dfb62e6504f35b3b9baf77206579c4bf350fcde31857f1f4bdeab4e15c6f", kill_on_drop: false }` [INFO] [stderr] Compiling secra-memory v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.90s [INFO] running `Command { std: "docker" "inspect" "47c2dfb62e6504f35b3b9baf77206579c4bf350fcde31857f1f4bdeab4e15c6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "47c2dfb62e6504f35b3b9baf77206579c4bf350fcde31857f1f4bdeab4e15c6f", kill_on_drop: false }` [INFO] [stdout] 47c2dfb62e6504f35b3b9baf77206579c4bf350fcde31857f1f4bdeab4e15c6f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] b6d6381cd36963100ec49a7cf66e3e13e54d3038a0c8e09a2ae1d53666430639 [INFO] running `Command { std: "docker" "start" "-a" "b6d6381cd36963100ec49a7cf66e3e13e54d3038a0c8e09a2ae1d53666430639", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/secra_memory-4583959090bf2c4d) [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] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/secra_memory-910bb6f7b548cb91) [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] [stderr] Doc-tests secra_memory [INFO] [stdout] [INFO] [stdout] running 3 tests [INFO] [stdout] test src/manager.rs - manager::MemoryManager::clear_module (line 259) ... FAILED [INFO] [stdout] test src/lib.rs - cache (line 28) ... FAILED [INFO] [stdout] test src/lib.rs - cache (line 38) ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- src/manager.rs - manager::MemoryManager::clear_module (line 259) stdout ---- [INFO] [stdout] error[E0425]: cannot find value `memory_manager` in this scope [INFO] [stdout] --> src/manager.rs:261:1 [INFO] [stdout] | [INFO] [stdout] 261 | memory_manager.clear_module("user_plugin", "user").await?; [INFO] [stdout] | ^^^^^^^^^^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `memory_manager` in this scope [INFO] [stdout] --> src/manager.rs:264:1 [INFO] [stdout] | [INFO] [stdout] 264 | memory_manager.clear_module("order_service", "order").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/manager.rs:261:52 [INFO] [stdout] | [INFO] [stdout] 259 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_manager_rs_259_0() { [INFO] [stdout] | --------------------------------------- this is not `async` [INFO] [stdout] 260 | // 清空 user_plugin 插件的 user 模块缓存 [INFO] [stdout] 261 | memory_manager.clear_module("user_plugin", "user").await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks [INFO] [stdout] --> src/manager.rs:264:55 [INFO] [stdout] | [INFO] [stdout] 259 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_manager_rs_259_0() { [INFO] [stdout] | --------------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 264 | memory_manager.clear_module("order_service", "order").await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, 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 - cache (line 28) stdout ---- [INFO] [stdout] error[E0433]: cannot find type `MemoryManager` in this scope [INFO] [stdout] --> src/lib.rs:30:22 [INFO] [stdout] | [INFO] [stdout] 30 | let memory_manager = MemoryManager::new_with_defaults(); [INFO] [stdout] | ^^^^^^^^^^^^^ use of undeclared type `MemoryManager` [INFO] [stdout] | [INFO] [stdout] help: consider importing this struct [INFO] [stdout] | [INFO] [stdout] 28 + use secra_memory::MemoryManager; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] ---- src/lib.rs - cache (line 38) stdout ---- [INFO] [stdout] error: cannot find derive macro `Serialize` in this scope [INFO] [stdout] --> src/lib.rs:40:10 [INFO] [stdout] | [INFO] [stdout] 40 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider importing this derive macro [INFO] [stdout] | [INFO] [stdout] 38 + use serde::Serialize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error: cannot find derive macro `Deserialize` in this scope [INFO] [stdout] --> src/lib.rs:40:21 [INFO] [stdout] | [INFO] [stdout] 40 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: consider importing this derive macro [INFO] [stdout] | [INFO] [stdout] 38 + use serde::Deserialize; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cache` in this scope [INFO] [stdout] --> src/lib.rs:44:1 [INFO] [stdout] | [INFO] [stdout] 44 | cache.set("user:123", &user, None).await?; [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cache` in this scope [INFO] [stdout] --> src/lib.rs:47:26 [INFO] [stdout] | [INFO] [stdout] 47 | let user: Option = cache.get("user:123").await?; [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cache` in this scope [INFO] [stdout] --> src/lib.rs:50:1 [INFO] [stdout] | [INFO] [stdout] 50 | cache.delete("user:123").await?; [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cache` in this scope [INFO] [stdout] --> src/lib.rs:53:1 [INFO] [stdout] | [INFO] [stdout] 53 | cache.clear().await?; [INFO] [stdout] | ^^^^^ not found in this scope [INFO] [stdout] [INFO] [stdout] error[E0425]: cannot find value `cache` in this scope [INFO] [stdout] --> src/lib.rs:56:1 [INFO] [stdout] | [INFO] [stdout] 56 | cache.clear_module("user").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:44:36 [INFO] [stdout] | [INFO] [stdout] 38 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_38_0() { [INFO] [stdout] | ---------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 44 | cache.set("user:123", &user, None).await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks [INFO] [stdout] --> src/lib.rs:47:48 [INFO] [stdout] | [INFO] [stdout] 38 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_38_0() { [INFO] [stdout] | ---------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 47 | let user: Option = cache.get("user:123").await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks [INFO] [stdout] --> src/lib.rs:50:26 [INFO] [stdout] | [INFO] [stdout] 38 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_38_0() { [INFO] [stdout] | ---------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 50 | cache.delete("user:123").await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks [INFO] [stdout] --> src/lib.rs:53:15 [INFO] [stdout] | [INFO] [stdout] 38 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_38_0() { [INFO] [stdout] | ---------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 53 | cache.clear().await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error[E0728]: `await` is only allowed inside `async` functions and blocks [INFO] [stdout] --> src/lib.rs:56:28 [INFO] [stdout] | [INFO] [stdout] 38 | fn main() { #[allow(non_snake_case)] fn _doctest_main_src_lib_rs_38_0() { [INFO] [stdout] | ---------------------------------- this is not `async` [INFO] [stdout] ... [INFO] [stdout] 56 | cache.clear_module("user").await?; [INFO] [stdout] | ^^^^^ only allowed inside `async` functions and blocks [INFO] [stdout] [INFO] [stdout] error: aborting due to 12 previous errors [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0425, E0728. [INFO] [stdout] For more information about an error, try `rustc --explain E0425`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] src/lib.rs - cache (line 28) [INFO] [stdout] src/lib.rs - cache (line 38) [INFO] [stdout] src/manager.rs - manager::MemoryManager::clear_module (line 259) [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s [INFO] [stdout] [INFO] [stderr] error: doctest failed, to rerun pass `--doc` [INFO] running `Command { std: "docker" "inspect" "b6d6381cd36963100ec49a7cf66e3e13e54d3038a0c8e09a2ae1d53666430639", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b6d6381cd36963100ec49a7cf66e3e13e54d3038a0c8e09a2ae1d53666430639", kill_on_drop: false }` [INFO] [stdout] b6d6381cd36963100ec49a7cf66e3e13e54d3038a0c8e09a2ae1d53666430639