[INFO] fetching crate soapy 0.2.9... [INFO] testing soapy-0.2.9 against master#caccb4d0368bd918ef6668af8e13834d07040417 for pr-146098-1 [INFO] extracting crate soapy 0.2.9 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate soapy 0.2.9 [INFO] finished tweaking crates.io crate soapy 0.2.9 [INFO] tweaked toml for crates.io crate soapy 0.2.9 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate soapy 0.2.9 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 5 packages to latest compatible versions [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 soapy-derive v0.2.8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 8395975f8e39fd6502c301e53d78e3e6b5305bc73648d22e04428077c8220a26 [INFO] running `Command { std: "docker" "start" "-a" "8395975f8e39fd6502c301e53d78e3e6b5305bc73648d22e04428077c8220a26", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8395975f8e39fd6502c301e53d78e3e6b5305bc73648d22e04428077c8220a26", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8395975f8e39fd6502c301e53d78e3e6b5305bc73648d22e04428077c8220a26", kill_on_drop: false }` [INFO] [stdout] 8395975f8e39fd6502c301e53d78e3e6b5305bc73648d22e04428077c8220a26 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 9dae56590a719e278e34a12ad8dc9fd0e34e46557f3d4eca0a9e212719935825 [INFO] running `Command { std: "docker" "start" "-a" "9dae56590a719e278e34a12ad8dc9fd0e34e46557f3d4eca0a9e212719935825", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling soapy-derive v0.2.8 [INFO] [stderr] Compiling soapy v0.2.9 (/opt/rustwide/workdir) [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/slice.rs:151:23 [INFO] [stdout] | [INFO] [stdout] 151 | pub const fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 151 | pub const fn iter(&self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/slice.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn iter_mut(&mut self) -> IterMut { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 180 | pub fn iter_mut(&mut self) -> IterMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.56s [INFO] running `Command { std: "docker" "inspect" "9dae56590a719e278e34a12ad8dc9fd0e34e46557f3d4eca0a9e212719935825", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9dae56590a719e278e34a12ad8dc9fd0e34e46557f3d4eca0a9e212719935825", kill_on_drop: false }` [INFO] [stdout] 9dae56590a719e278e34a12ad8dc9fd0e34e46557f3d4eca0a9e212719935825 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] a27bc6e42aef0abc7803cc242ecb428780dcc9d1a01f7792cefac74b51121f6d [INFO] running `Command { std: "docker" "start" "-a" "a27bc6e42aef0abc7803cc242ecb428780dcc9d1a01f7792cefac74b51121f6d", kill_on_drop: false }` [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/slice.rs:151:23 [INFO] [stdout] | [INFO] [stdout] 151 | pub const fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 151 | pub const fn iter(&self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/slice.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn iter_mut(&mut self) -> IterMut { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 180 | pub fn iter_mut(&mut self) -> IterMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling soapy v0.2.9 (/opt/rustwide/workdir) [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/slice.rs:151:23 [INFO] [stdout] | [INFO] [stdout] 151 | pub const fn iter(&self) -> Iter { [INFO] [stdout] | ^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 151 | pub const fn iter(&self) -> Iter<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/slice.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | pub fn iter_mut(&mut self) -> IterMut { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 180 | pub fn iter_mut(&mut self) -> IterMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.54s [INFO] running `Command { std: "docker" "inspect" "a27bc6e42aef0abc7803cc242ecb428780dcc9d1a01f7792cefac74b51121f6d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a27bc6e42aef0abc7803cc242ecb428780dcc9d1a01f7792cefac74b51121f6d", kill_on_drop: false }` [INFO] [stdout] a27bc6e42aef0abc7803cc242ecb428780dcc9d1a01f7792cefac74b51121f6d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 3ba3b38321fb20e35bdbd4b525c8e26cd8e31e8a1a0130306e0bb65476e40cae [INFO] running `Command { std: "docker" "start" "-a" "3ba3b38321fb20e35bdbd4b525c8e26cd8e31e8a1a0130306e0bb65476e40cae", kill_on_drop: false }` [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/slice.rs:151:23 [INFO] [stderr] | [INFO] [stderr] 151 | pub const fn iter(&self) -> Iter { [INFO] [stderr] | ^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 151 | pub const fn iter(&self) -> Iter<'_, T> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/slice.rs:180:21 [INFO] [stderr] | [INFO] [stderr] 180 | pub fn iter_mut(&mut self) -> IterMut { [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | | [INFO] [stderr] | the lifetime is elided here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 180 | pub fn iter_mut(&mut self) -> IterMut<'_, T> { [INFO] [stderr] | +++ [INFO] [stderr] [INFO] [stderr] warning: `soapy` (lib) generated 2 warnings (run `cargo fix --lib -p soapy` to apply 2 suggestions) [INFO] [stderr] warning: `soapy` (lib test) generated 2 warnings (2 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/soapy-1fe15b4b980fded5) [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 soapy [INFO] [stdout] [INFO] [stdout] running 59 tests [INFO] [stdout] test src/borrow_tests.rs - borrow_tests::simultaneous_mutable_and_immutable::fail (line 11) - compile fail ... ok [INFO] [stdout] test src/borrow_tests.rs - borrow_tests::swap_slices_by_mut_ref::as_mut_slice (line 91) - compile fail ... ok [INFO] [stdout] test src/borrow_tests.rs - borrow_tests::multiple_mutable_borrows::fail (line 35) - compile fail ... ok [INFO] [stdout] test src/borrow_tests.rs - borrow_tests::swap_slices_by_mut_ref::as_mut (line 77) - compile fail ... ok [INFO] [stdout] test src/borrow_tests.rs - borrow_tests::swap_slices_by_mut_ref (line 51) ... ok [INFO] [stdout] test src/lib.rs - (line 87) ... ok [INFO] [stdout] test src/lib.rs - (line 103) ... ok [INFO] [stdout] test src/lib.rs - (line 122) ... ok [INFO] [stdout] test src/lib.rs - (line 65) ... ok [INFO] [stdout] test src/lib.rs - (line 33) ... ok [INFO] [stdout] test src/lib.rs - (line 20) ... ok [INFO] [stdout] test src/borrow_tests.rs - borrow_tests::multiple_mutable_borrows (line 24) ... ok [INFO] [stdout] test src/borrow_tests.rs - borrow_tests::simultaneous_mutable_and_immutable (line 1) ... ok [INFO] [stdout] test src/lib.rs - Soapy (line 204) ... ok [INFO] [stdout] test src/lib.rs - readme_tests (line 352) ... ok [INFO] [stdout] test src/borrow_tests.rs - borrow_tests::swap_slices_by_mut_ref::deref_mut (line 63) - compile fail ... ok [INFO] [stdout] test src/lib.rs - readme_tests (line 306) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::first (line 355) ... ok [INFO] [stdout] test src/lib.rs - (line 46) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::idx_mut (line 295) ... ok [INFO] [stdout] test src/lib.rs - soa (line 246) ... ok [INFO] [stdout] test src/lib.rs - (line 9) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::chunks_exact (line 442) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::is_empty (line 118) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::first_mut (line 374) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::get (line 202) ... ok [INFO] [stdout] test src/lib.rs - Soapy (line 219) ... ok [INFO] [stdout] test src/lib.rs - soa (line 235) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::idx (line 263) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::last (line 393) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::len (line 102) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::get_mut (line 231) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::last_mut (line 412) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::as_slice (line 549) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::iter_mut (line 168) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::as_mut_slice (line 567) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::swap (line 328) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::clear (line 530) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::slices_mut (line 494) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::capacity (line 153) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::new (line 48) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::iter (line 138) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::remove (line 294) ... ok [INFO] [stdout] test src/slice.rs - slice::Slice::slices (line 469) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::insert (line 267) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::pop (line 240) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::append (line 503) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::push (line 218) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::reserve_exact (line 351) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::shrink_to (line 394) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::into_raw_parts (line 182) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::swap_remove (line 472) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::with_capacity (line 73) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::with (line 134) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::reserve (line 322) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::shrink_to_fit (line 371) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::truncate (line 445) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::truncate (line 434) ... ok [INFO] [stdout] test src/soa.rs - soa::Soa::truncate (line 422) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 59 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 4.09s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "3ba3b38321fb20e35bdbd4b525c8e26cd8e31e8a1a0130306e0bb65476e40cae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3ba3b38321fb20e35bdbd4b525c8e26cd8e31e8a1a0130306e0bb65476e40cae", kill_on_drop: false }` [INFO] [stdout] 3ba3b38321fb20e35bdbd4b525c8e26cd8e31e8a1a0130306e0bb65476e40cae