[INFO] crate cargo-download 0.1.2 is already in cache [INFO] testing cargo-download-0.1.2 against beta-2019-09-28 for beta-1.39-1 [INFO] extracting crate cargo-download 0.1.2 into work/builds/worker-4/source [INFO] validating manifest of crates.io crate cargo-download 0.1.2 on toolchain beta-2019-09-28 [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+beta-2019-09-28" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking crates.io crate cargo-download 0.1.2 [INFO] finished tweaking crates.io crate cargo-download 0.1.2 [INFO] tweaked toml for crates.io crate cargo-download 0.1.2 written to work/builds/worker-4/source/Cargo.toml [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+beta-2019-09-28" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/big/crater/work/cargo-home/bin/cargo" "+beta-2019-09-28" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2019-09-28" "build" "--frozen"` [INFO] [stdout] a19a7451afd4ab3f9bd10508d4665013a3ce3c251ccad18834438e66d1c5227b [INFO] running `"docker" "start" "-a" "a19a7451afd4ab3f9bd10508d4665013a3ce3c251ccad18834438e66d1c5227b"` [INFO] [stderr] Compiling slog v1.7.1 [INFO] [stderr] Compiling case v0.1.0 [INFO] [stderr] Compiling itertools v0.6.5 [INFO] [stderr] Compiling slog-extra v0.1.2 [INFO] [stderr] Compiling derive-error v0.0.3 [INFO] [stderr] Compiling slog-stream v1.2.1 [INFO] [stderr] Compiling slog-term v1.5.0 [INFO] [stderr] Compiling slog-stdlog v1.1.0 [INFO] [stderr] Compiling slog-envlogger v0.5.0 [INFO] [stderr] Compiling cargo-download v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/args.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | let matches = try!(parser.get_matches_from_safe(argv)); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/logging.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | try!(slog_stdlog::set_logger(logger)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/logging.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | try!(output.write_all(msg.as_bytes())); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/args.rs:233:32 [INFO] [stderr] | [INFO] [stderr] 233 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/args.rs:267:32 [INFO] [stderr] | [INFO] [stderr] 267 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/logging.rs:104:35 [INFO] [stderr] | [INFO] [stderr] 104 | fn format(&self, output: &mut io::Write, [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:158:62 [INFO] [stderr] | [INFO] [stderr] 158 | fn get_newest_version(crate_: &Crate) -> Result> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:185:73 [INFO] [stderr] | [INFO] [stderr] 185 | fn download_crate(name: &str, version: &Version) -> Result, Box> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/main.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | / lazy_static! { [INFO] [stderr] 50 | | /// Application / package name, as filled out by Cargo. [INFO] [stderr] 51 | | static ref NAME: &'static str = option_env!("CARGO_PKG_NAME") [INFO] [stderr] 52 | | .unwrap_or("cargo-download"); [INFO] [stderr] ... | [INFO] [stderr] 55 | | static ref VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION"); [INFO] [stderr] 56 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/main.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | / lazy_static! { [INFO] [stderr] 50 | | /// Application / package name, as filled out by Cargo. [INFO] [stderr] 51 | | static ref NAME: &'static str = option_env!("CARGO_PKG_NAME") [INFO] [stderr] 52 | | .unwrap_or("cargo-download"); [INFO] [stderr] ... | [INFO] [stderr] 55 | | static ref VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION"); [INFO] [stderr] 56 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/args.rs:298:1 [INFO] [stderr] | [INFO] [stderr] 298 | / lazy_static! { [INFO] [stderr] 299 | | static ref ABOUT: &'static str = option_env!("CARGO_PKG_DESCRIPTION").unwrap_or(""); [INFO] [stderr] 300 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/args.rs:317:17 [INFO] [stderr] | [INFO] [stderr] 317 | .author(crate_authors!(", ")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/args.rs:317:17 [INFO] [stderr] | [INFO] [stderr] 317 | .author(crate_authors!(", ")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/logging.rs:157:1 [INFO] [stderr] | [INFO] [stderr] 157 | / lazy_static! { [INFO] [stderr] 158 | | /// Map of log levels to their ANSI terminal styles. [INFO] [stderr] 159 | | // (Level doesn't implement Hash so it has to be usize). [INFO] [stderr] 160 | | static ref TTY_LEVEL_STYLES: HashMap = hashmap!{ [INFO] [stderr] ... | [INFO] [stderr] 168 | | static ref TTY_FINE_PREFIX_STYLE: Style = Style::new().dimmed(); [INFO] [stderr] 169 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/logging.rs:157:1 [INFO] [stderr] | [INFO] [stderr] 157 | / lazy_static! { [INFO] [stderr] 158 | | /// Map of log levels to their ANSI terminal styles. [INFO] [stderr] 159 | | // (Level doesn't implement Hash so it has to be usize). [INFO] [stderr] 160 | | static ref TTY_LEVEL_STYLES: HashMap = hashmap!{ [INFO] [stderr] ... | [INFO] [stderr] 168 | | static ref TTY_FINE_PREFIX_STYLE: Style = Style::new().dimmed(); [INFO] [stderr] 169 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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 48.65s [INFO] running `"docker" "inspect" "a19a7451afd4ab3f9bd10508d4665013a3ce3c251ccad18834438e66d1c5227b"` [INFO] running `"docker" "rm" "-f" "a19a7451afd4ab3f9bd10508d4665013a3ce3c251ccad18834438e66d1c5227b"` [INFO] [stdout] a19a7451afd4ab3f9bd10508d4665013a3ce3c251ccad18834438e66d1c5227b [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2019-09-28" "test" "--frozen" "--no-run"` [INFO] [stdout] 338a360332606a849e103943ec748fd0c13df50f1069c67b9e556d1778c44c7b [INFO] running `"docker" "start" "-a" "338a360332606a849e103943ec748fd0c13df50f1069c67b9e556d1778c44c7b"` [INFO] [stderr] Compiling cargo-download v0.1.2 (/opt/rustwide/workdir) [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/args.rs:39:19 [INFO] [stderr] | [INFO] [stderr] 39 | let matches = try!(parser.get_matches_from_safe(argv)); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/logging.rs:87:5 [INFO] [stderr] | [INFO] [stderr] 87 | try!(slog_stdlog::set_logger(logger)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/logging.rs:139:9 [INFO] [stderr] | [INFO] [stderr] 139 | try!(output.write_all(msg.as_bytes())); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/args.rs:233:32 [INFO] [stderr] | [INFO] [stderr] 233 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/args.rs:267:32 [INFO] [stderr] | [INFO] [stderr] 267 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/logging.rs:104:35 [INFO] [stderr] | [INFO] [stderr] 104 | fn format(&self, output: &mut io::Write, [INFO] [stderr] | ^^^^^^^^^ help: use `dyn`: `dyn io::Write` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:158:62 [INFO] [stderr] | [INFO] [stderr] 158 | fn get_newest_version(crate_: &Crate) -> Result> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/main.rs:185:73 [INFO] [stderr] | [INFO] [stderr] 185 | fn download_crate(name: &str, version: &Version) -> Result, Box> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/main.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | / lazy_static! { [INFO] [stderr] 50 | | /// Application / package name, as filled out by Cargo. [INFO] [stderr] 51 | | static ref NAME: &'static str = option_env!("CARGO_PKG_NAME") [INFO] [stderr] 52 | | .unwrap_or("cargo-download"); [INFO] [stderr] ... | [INFO] [stderr] 55 | | static ref VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION"); [INFO] [stderr] 56 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/main.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | / lazy_static! { [INFO] [stderr] 50 | | /// Application / package name, as filled out by Cargo. [INFO] [stderr] 51 | | static ref NAME: &'static str = option_env!("CARGO_PKG_NAME") [INFO] [stderr] 52 | | .unwrap_or("cargo-download"); [INFO] [stderr] ... | [INFO] [stderr] 55 | | static ref VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION"); [INFO] [stderr] 56 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/args.rs:298:1 [INFO] [stderr] | [INFO] [stderr] 298 | / lazy_static! { [INFO] [stderr] 299 | | static ref ABOUT: &'static str = option_env!("CARGO_PKG_DESCRIPTION").unwrap_or(""); [INFO] [stderr] 300 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/args.rs:317:17 [INFO] [stderr] | [INFO] [stderr] 317 | .author(crate_authors!(", ")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/args.rs:317:17 [INFO] [stderr] | [INFO] [stderr] 317 | .author(crate_authors!(", ")) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/logging.rs:157:1 [INFO] [stderr] | [INFO] [stderr] 157 | / lazy_static! { [INFO] [stderr] 158 | | /// Map of log levels to their ANSI terminal styles. [INFO] [stderr] 159 | | // (Level doesn't implement Hash so it has to be usize). [INFO] [stderr] 160 | | static ref TTY_LEVEL_STYLES: HashMap = hashmap!{ [INFO] [stderr] ... | [INFO] [stderr] 168 | | static ref TTY_FINE_PREFIX_STYLE: Style = Style::new().dimmed(); [INFO] [stderr] 169 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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: use of deprecated item 'std::sync::ONCE_INIT': the `new` function is now preferred [INFO] [stderr] --> src/logging.rs:157:1 [INFO] [stderr] | [INFO] [stderr] 157 | / lazy_static! { [INFO] [stderr] 158 | | /// Map of log levels to their ANSI terminal styles. [INFO] [stderr] 159 | | // (Level doesn't implement Hash so it has to be usize). [INFO] [stderr] 160 | | static ref TTY_LEVEL_STYLES: HashMap = hashmap!{ [INFO] [stderr] ... | [INFO] [stderr] 168 | | static ref TTY_FINE_PREFIX_STYLE: Style = Style::new().dimmed(); [INFO] [stderr] 169 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [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 13.84s [INFO] running `"docker" "inspect" "338a360332606a849e103943ec748fd0c13df50f1069c67b9e556d1778c44c7b"` [INFO] running `"docker" "rm" "-f" "338a360332606a849e103943ec748fd0c13df50f1069c67b9e556d1778c44c7b"` [INFO] [stdout] 338a360332606a849e103943ec748fd0c13df50f1069c67b9e556d1778c44c7b [INFO] running `"docker" "create" "-v" "/big/crater/work/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/big/crater/work/builds/worker-4/source:/opt/rustwide/workdir:ro,Z" "-v" "/big/crater/work/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/big/crater/work/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2019-09-28" "test" "--frozen"` [INFO] [stdout] 391cc14cd2dd66fa4b1c5f53bf8e36c8b78dd74b98a720ec44f5c76a48ee141e [INFO] running `"docker" "start" "-a" "391cc14cd2dd66fa4b1c5f53bf8e36c8b78dd74b98a720ec44f5c76a48ee141e"` [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.10s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/cargo_download-8eec8ef91c64e39a [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test logging::tests::default_level ... ok [INFO] [stdout] test logging::tests::verbosity_levels ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "391cc14cd2dd66fa4b1c5f53bf8e36c8b78dd74b98a720ec44f5c76a48ee141e"` [INFO] running `"docker" "rm" "-f" "391cc14cd2dd66fa4b1c5f53bf8e36c8b78dd74b98a720ec44f5c76a48ee141e"` [INFO] [stdout] 391cc14cd2dd66fa4b1c5f53bf8e36c8b78dd74b98a720ec44f5c76a48ee141e