[INFO] updating cached repository doberan/cmemo_rust [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/doberan/cmemo_rust [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/doberan/cmemo_rust" "work/ex/pr-63565/sources/master#c43d03a19f326f4a323569328cc501e86eb6d22e/gh/doberan/cmemo_rust"` [INFO] [stderr] Cloning into 'work/ex/pr-63565/sources/master#c43d03a19f326f4a323569328cc501e86eb6d22e/gh/doberan/cmemo_rust'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/doberan/cmemo_rust" "work/ex/pr-63565/sources/try#75eff020d0923c035c2fe220db4a0465cd847048/gh/doberan/cmemo_rust"` [INFO] [stderr] Cloning into 'work/ex/pr-63565/sources/try#75eff020d0923c035c2fe220db4a0465cd847048/gh/doberan/cmemo_rust'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ab07d54410c0ba3516fe624de595418ab31b6f89 [INFO] sha for GitHub repo doberan/cmemo_rust: ab07d54410c0ba3516fe624de595418ab31b6f89 [INFO] validating manifest of doberan/cmemo_rust on toolchain master#c43d03a19f326f4a323569328cc501e86eb6d22e [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c43d03a19f326f4a323569328cc501e86eb6d22e-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of doberan/cmemo_rust on toolchain try#75eff020d0923c035c2fe220db4a0465cd847048 [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+75eff020d0923c035c2fe220db4a0465cd847048-alt" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing doberan/cmemo_rust [INFO] finished frobbing doberan/cmemo_rust [INFO] frobbed toml for doberan/cmemo_rust written to work/ex/pr-63565/sources/master#c43d03a19f326f4a323569328cc501e86eb6d22e/gh/doberan/cmemo_rust/Cargo.toml [INFO] started frobbing doberan/cmemo_rust [INFO] finished frobbing doberan/cmemo_rust [INFO] frobbed toml for doberan/cmemo_rust written to work/ex/pr-63565/sources/try#75eff020d0923c035c2fe220db4a0465cd847048/gh/doberan/cmemo_rust/Cargo.toml [INFO] crate doberan/cmemo_rust already has a lockfile, it will not be regenerated [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+c43d03a19f326f4a323569328cc501e86eb6d22e-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+75eff020d0923c035c2fe220db4a0465cd847048-alt" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] checking doberan/cmemo_rust against master#c43d03a19f326f4a323569328cc501e86eb6d22e for pr-63565 [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-63565/worker-0/master#c43d03a19f326f4a323569328cc501e86eb6d22e:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/pr-63565/sources/master#c43d03a19f326f4a323569328cc501e86eb6d22e/gh/doberan/cmemo_rust:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+c43d03a19f326f4a323569328cc501e86eb6d22e-alt" "check" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 5cddec0208e0a923416d2209356386624adc5bf24f1d45285bf695b56b2008ad [INFO] running `"docker" "start" "-a" "5cddec0208e0a923416d2209356386624adc5bf24f1d45285bf695b56b2008ad"` [INFO] [stderr] Checking termion v1.5.3 [INFO] [stderr] Checking cmemo_rust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:2:19 [INFO] [stderr] | [INFO] [stderr] 2 | fn start_line(mut self) -> T; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(patterns_in_fns_without_body)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:3:18 [INFO] [stderr] | [INFO] [stderr] 3 | fn disp_line(mut self) -> T; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:4:22 [INFO] [stderr] | [INFO] [stderr] 4 | fn sepalate_line(mut self) -> T; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | fn end_line(mut self) -> T; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:6:13 [INFO] [stderr] | [INFO] [stderr] 6 | fn disp(mut self); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:2:19 [INFO] [stderr] | [INFO] [stderr] 2 | fn start_line(mut self) -> T; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(patterns_in_fns_without_body)]` on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:3:18 [INFO] [stderr] | [INFO] [stderr] 3 | fn disp_line(mut self) -> T; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:4:22 [INFO] [stderr] | [INFO] [stderr] 4 | fn sepalate_line(mut self) -> T; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | fn end_line(mut self) -> T; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: patterns aren't allowed in methods without bodies [INFO] [stderr] --> src/view/display.rs:6:13 [INFO] [stderr] | [INFO] [stderr] 6 | fn disp(mut self); [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #35203 [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/view/menu.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | fn disp(mut self) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/view/menu.rs:61:13 [INFO] [stderr] | [INFO] [stderr] 61 | fn disp(mut self) { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ffi::OsStr` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use std::ffi::OsStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process::Command` [INFO] [stderr] --> src/main.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use std::process::Command; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `fs`, `path` [INFO] [stderr] --> src/main.rs:18:11 [INFO] [stderr] | [INFO] [stderr] 18 | use std::{fs, path}; [INFO] [stderr] | ^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ffi::OsStr` [INFO] [stderr] --> src/main.rs:15:5 [INFO] [stderr] | [INFO] [stderr] 15 | use std::ffi::OsStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::process::Command` [INFO] [stderr] --> src/main.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | use std::process::Command; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `fs`, `path` [INFO] [stderr] --> src/main.rs:18:11 [INFO] [stderr] | [INFO] [stderr] 18 | use std::{fs, path}; [INFO] [stderr] | ^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `matches` [INFO] [stderr] --> src/main.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let matches = App::new("cmemo_rust") [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_matches` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:50:17 [INFO] [stderr] | [INFO] [stderr] 50 | write!(stdout, "{}", cursor::Goto(1, 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | write!(stdout, "{}", std::str::from_utf8(&arg).unwrap().to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | write!(stdout, "{}", n); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | write!(stdout, "{}", cursor::Left(1 as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | write!(stdout, "{}", cursor::Right(1 as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | / write!(*stdout, "{}", cursor::Goto( [INFO] [stderr] 78 | | (*window).cursor_x, (*window).cursor_y)); [INFO] [stderr] | |_________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | write!(*stdout, "> "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | write!(*stdout, "{}", clear::All); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused variable: `matches` [INFO] [stderr] --> src/main.rs:27:9 [INFO] [stderr] | [INFO] [stderr] 27 | let matches = App::new("cmemo_rust") [INFO] [stderr] | ^^^^^^^ help: consider prefixing with an underscore: `_matches` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:50:17 [INFO] [stderr] | [INFO] [stderr] 50 | write!(stdout, "{}", cursor::Goto(1, 2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:51:17 [INFO] [stderr] | [INFO] [stderr] 51 | write!(stdout, "{}", std::str::from_utf8(&arg).unwrap().to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | write!(stdout, "{}", n); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | write!(stdout, "{}", cursor::Left(1 as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | write!(stdout, "{}", cursor::Right(1 as u16)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:77:5 [INFO] [stderr] | [INFO] [stderr] 77 | / write!(*stdout, "{}", cursor::Goto( [INFO] [stderr] 78 | | (*window).cursor_x, (*window).cursor_y)); [INFO] [stderr] | |_________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | write!(*stdout, "> "); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:83:5 [INFO] [stderr] | [INFO] [stderr] 83 | write!(*stdout, "{}", clear::All); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this warning originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.10s [INFO] running `"docker" "inspect" "5cddec0208e0a923416d2209356386624adc5bf24f1d45285bf695b56b2008ad"` [INFO] running `"docker" "rm" "-f" "5cddec0208e0a923416d2209356386624adc5bf24f1d45285bf695b56b2008ad"` [INFO] [stdout] 5cddec0208e0a923416d2209356386624adc5bf24f1d45285bf695b56b2008ad