[INFO] cloning repository https://github.com/zveroboy/exercism-2022 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/zveroboy/exercism-2022" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzveroboy%2Fexercism-2022", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzveroboy%2Fexercism-2022'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 82956abb2c7b083086b562a4f3a31b99bc1ec515 [INFO] testing zveroboy/exercism-2022 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fzveroboy%2Fexercism-2022" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/zveroboy/exercism-2022 [INFO] finished tweaking git repo https://github.com/zveroboy/exercism-2022 [INFO] tweaked toml for git repo https://github.com/zveroboy/exercism-2022 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/zveroboy/exercism-2022 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/zveroboy/exercism-2022 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded serde v1.0.159 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 09cb2e16f5f2a189d517e8319d55528c468a45901be5827a8fe159350d0658c6 [INFO] running `Command { std: "docker" "start" "-a" "09cb2e16f5f2a189d517e8319d55528c468a45901be5827a8fe159350d0658c6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "09cb2e16f5f2a189d517e8319d55528c468a45901be5827a8fe159350d0658c6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "09cb2e16f5f2a189d517e8319d55528c468a45901be5827a8fe159350d0658c6", kill_on_drop: false }` [INFO] [stdout] 09cb2e16f5f2a189d517e8319d55528c468a45901be5827a8fe159350d0658c6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 343fde1a628705f6657d1822b1c4ab0663ea6c12039c80184f91d4578e4fd179 [INFO] running `Command { std: "docker" "start" "-a" "343fde1a628705f6657d1822b1c4ab0663ea6c12039c80184f91d4578e4fd179", kill_on_drop: false }` [INFO] [stderr] Compiling time v0.3.20 [INFO] [stderr] Compiling unicode-segmentation v1.10.1 [INFO] [stderr] Compiling exercism_2022 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition value: `add-a-variant` [INFO] [stdout] --> src/exercises/semi_structured_logs.rs:72:7 [INFO] [stdout] | [INFO] [stdout] 72 | #[cfg(feature = "add-a-variant")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `grapheme` [INFO] [stdout] = help: consider adding `add-a-variant` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/exercises/parallel_letter_frequency.rs:47:66 [INFO] [stdout] | [INFO] [stdout] 47 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &str> { [INFO] [stdout] | -- -- -- ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is named here [INFO] [stdout] | the lifetime is named 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: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 47 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &'a str> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/exercises/parallel_letter_frequency.rs:183:66 [INFO] [stdout] | [INFO] [stdout] 183 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &str> { [INFO] [stdout] | -- -- -- ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is named here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 183 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &'a str> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/exercises/tournament.rs:85:25 [INFO] [stdout] | [INFO] [stdout] 85 | fn parse_line(line: &str) -> Option { [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] 85 | fn parse_line(line: &str) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.17s [INFO] running `Command { std: "docker" "inspect" "343fde1a628705f6657d1822b1c4ab0663ea6c12039c80184f91d4578e4fd179", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "343fde1a628705f6657d1822b1c4ab0663ea6c12039c80184f91d4578e4fd179", kill_on_drop: false }` [INFO] [stdout] 343fde1a628705f6657d1822b1c4ab0663ea6c12039c80184f91d4578e4fd179 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5b01cf127307d8e442b71d40f740e970b6d8acce456a459e57e17908b888f402 [INFO] running `Command { std: "docker" "start" "-a" "5b01cf127307d8e442b71d40f740e970b6d8acce456a459e57e17908b888f402", kill_on_drop: false }` [INFO] [stdout] warning: unexpected `cfg` condition value: `add-a-variant` [INFO] [stdout] --> src/exercises/semi_structured_logs.rs:72:7 [INFO] [stdout] | [INFO] [stdout] 72 | #[cfg(feature = "add-a-variant")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `grapheme` [INFO] [stdout] = help: consider adding `add-a-variant` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/exercises/parallel_letter_frequency.rs:47:66 [INFO] [stdout] | [INFO] [stdout] 47 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &str> { [INFO] [stdout] | -- -- -- ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is named here [INFO] [stdout] | the lifetime is named 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: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 47 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &'a str> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/exercises/parallel_letter_frequency.rs:183:66 [INFO] [stdout] | [INFO] [stdout] 183 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &str> { [INFO] [stdout] | -- -- -- ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is named here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 183 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &'a str> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/exercises/tournament.rs:85:25 [INFO] [stdout] | [INFO] [stdout] 85 | fn parse_line(line: &str) -> Option { [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] 85 | fn parse_line(line: &str) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling exercism_2022 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `align_of`, `borrow::BorrowMut`, and `size_of` [INFO] [stdout] --> tests/parallel_letter_frequency.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | use std::{borrow::BorrowMut, collections::HashMap, mem::{size_of, align_of}, rc::Rc}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `add-a-variant` [INFO] [stdout] --> src/exercises/semi_structured_logs.rs:72:7 [INFO] [stdout] | [INFO] [stdout] 72 | #[cfg(feature = "add-a-variant")] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `grapheme` [INFO] [stdout] = help: consider adding `add-a-variant` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `S1` should have a snake case name [INFO] [stdout] --> tests/parallel_letter_frequency.rs:171:9 [INFO] [stdout] | [INFO] [stdout] 171 | let S1 = String::from("bbb"); [INFO] [stdout] | ^^ help: convert the identifier to snake case (notice the capitalization): `s1` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `Rc1` should have a snake case name [INFO] [stdout] --> tests/parallel_letter_frequency.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | let Rc1 = Rc::new(String::from("ccc")); [INFO] [stdout] | ^^^ help: convert the identifier to snake case: `rc1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/exercises/parallel_letter_frequency.rs:47:66 [INFO] [stdout] | [INFO] [stdout] 47 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &str> { [INFO] [stdout] | -- -- -- ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is named here [INFO] [stdout] | the lifetime is named 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: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 47 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &'a str> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/exercises/parallel_letter_frequency.rs:183:66 [INFO] [stdout] | [INFO] [stdout] 183 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &str> { [INFO] [stdout] | -- -- -- ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | the lifetime is named here the same lifetime is named here [INFO] [stdout] | the lifetime is named here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 183 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &'a str> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/exercises/tournament.rs:85:25 [INFO] [stdout] | [INFO] [stdout] 85 | fn parse_line(line: &str) -> Option { [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] 85 | fn parse_line(line: &str) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1.19s [INFO] running `Command { std: "docker" "inspect" "5b01cf127307d8e442b71d40f740e970b6d8acce456a459e57e17908b888f402", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5b01cf127307d8e442b71d40f740e970b6d8acce456a459e57e17908b888f402", kill_on_drop: false }` [INFO] [stdout] 5b01cf127307d8e442b71d40f740e970b6d8acce456a459e57e17908b888f402 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] f8247b83fdd034776d5b49daba72d793a60eba9a2c04acb8c577d0c9eda4ce24 [INFO] running `Command { std: "docker" "start" "-a" "f8247b83fdd034776d5b49daba72d793a60eba9a2c04acb8c577d0c9eda4ce24", kill_on_drop: false }` [INFO] [stderr] warning: unexpected `cfg` condition value: `add-a-variant` [INFO] [stderr] --> src/exercises/semi_structured_logs.rs:72:7 [INFO] [stderr] | [INFO] [stderr] 72 | #[cfg(feature = "add-a-variant")] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: expected values for `feature` are: `grapheme` [INFO] [stderr] = help: consider adding `add-a-variant` as a feature in `Cargo.toml` [INFO] [stderr] = note: see for more information about checking conditional configuration [INFO] [stderr] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stderr] [INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/exercises/parallel_letter_frequency.rs:47:66 [INFO] [stderr] | [INFO] [stderr] 47 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &str> { [INFO] [stderr] | -- -- -- ^^^^ the same lifetime is elided here [INFO] [stderr] | | | | [INFO] [stderr] | | the lifetime is named here the same lifetime is named here [INFO] [stderr] | the lifetime is named 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: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 47 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &'a str> { [INFO] [stderr] | ++ [INFO] [stderr] [INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/exercises/parallel_letter_frequency.rs:183:66 [INFO] [stderr] | [INFO] [stderr] 183 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &str> { [INFO] [stderr] | -- -- -- ^^^^ the same lifetime is elided here [INFO] [stderr] | | | | [INFO] [stderr] | | the lifetime is named here the same lifetime is named here [INFO] [stderr] | the lifetime is named here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 183 | fn split<'a>(input: &'a [&'a str], len: usize) -> Chunks<'a, &'a str> { [INFO] [stderr] | ++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/exercises/tournament.rs:85:25 [INFO] [stderr] | [INFO] [stderr] 85 | fn parse_line(line: &str) -> Option { [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] 85 | fn parse_line(line: &str) -> Option> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `exercism_2022` (lib) generated 4 warnings (run `cargo fix --lib -p exercism_2022` to apply 3 suggestions) [INFO] [stderr] warning: unused imports: `align_of`, `borrow::BorrowMut`, and `size_of` [INFO] [stderr] --> tests/parallel_letter_frequency.rs:2:11 [INFO] [stderr] | [INFO] [stderr] 2 | use std::{borrow::BorrowMut, collections::HashMap, mem::{size_of, align_of}, rc::Rc}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^ ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable `S1` should have a snake case name [INFO] [stderr] --> tests/parallel_letter_frequency.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | let S1 = String::from("bbb"); [INFO] [stderr] | ^^ help: convert the identifier to snake case (notice the capitalization): `s1` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: variable `Rc1` should have a snake case name [INFO] [stderr] --> tests/parallel_letter_frequency.rs:176:9 [INFO] [stderr] | [INFO] [stderr] 176 | let Rc1 = Rc::new(String::from("ccc")); [INFO] [stderr] | ^^^ help: convert the identifier to snake case: `rc1` [INFO] [stderr] [INFO] [stderr] warning: `exercism_2022` (test "parallel_letter_frequency") generated 3 warnings (run `cargo fix --test "parallel_letter_frequency" -p exercism_2022` to apply 1 suggestion) [INFO] [stderr] warning: `exercism_2022` (lib test) generated 4 warnings (4 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/exercism_2022-8cf4a1589d16e4c9) [INFO] [stdout] [INFO] [stdout] running 194 tests [INFO] [stdout] test exercises::allergies::allergic_to_eggs_and_peanuts ... ignored [INFO] [stdout] test exercises::allergies::allergic_to_eggs_and_shellfish ... ignored [INFO] [stdout] test exercises::allergies::allergic_to_everything ... ignored [INFO] [stdout] test exercises::allergies::allergic_to_just_eggs ... ignored [INFO] [stdout] test exercises::allergies::allergic_to_just_peanuts ... ignored [INFO] [stdout] test exercises::allergies::allergic_to_just_strawberries ... ignored [INFO] [stdout] test exercises::allergies::allergic_to_many_things ... ignored [INFO] [stdout] test exercises::allergies::is_allergic_to_eggs ... ignored [INFO] [stdout] test exercises::allergies::is_allergic_to_eggs_and_shellfish_but_not_strawberries ... ignored [INFO] [stdout] test exercises::allergies::no_allergies_at_all ... ignored [INFO] [stdout] test exercises::allergies::scores_over_255_do_not_trigger_false_positives ... ignored [INFO] [stdout] test exercises::anagram::test_case_insensitive_anagrams ... ignored [INFO] [stdout] test exercises::anagram::test_detect_anagram ... ignored [INFO] [stdout] test exercises::anagram::test_detect_simple_anagram ... ignored [INFO] [stdout] test exercises::anagram::test_different_words_but_same_ascii_sum ... ignored [INFO] [stdout] test exercises::anagram::test_does_not_confuse_different_duplicates ... ignored [INFO] [stdout] test exercises::anagram::test_does_not_detect_a_differently_cased_unicode_word_as_its_own_anagram ... ignored [INFO] [stdout] test exercises::anagram::test_does_not_detect_a_differently_cased_word_as_its_own_anagram ... ignored [INFO] [stdout] test exercises::anagram::test_does_not_detect_a_word_as_its_own_anagram ... ignored [INFO] [stdout] test exercises::anagram::test_eliminate_anagram_subsets ... ignored [INFO] [stdout] test exercises::anagram::test_misleading_unicode_anagrams ... ignored [INFO] [stdout] test exercises::anagram::test_multiple_anagrams ... ignored [INFO] [stdout] test exercises::allergies::is_not_allergic_to_anything ... ok [INFO] [stdout] test exercises::anagram::test_same_bytes_different_chars ... ignored [INFO] [stdout] test exercises::anagram::test_unicode_anagrams ... ignored [INFO] [stdout] test exercises::assembly_line::production_rate_per_hour_at_speed_four ... ignored [INFO] [stdout] test exercises::anagram::test_no_matches ... ok [INFO] [stdout] test exercises::assembly_line::production_rate_per_hour_at_speed_nine ... ignored [INFO] [stdout] test exercises::assembly_line::production_rate_per_hour_at_speed_one ... ignored [INFO] [stdout] test exercises::assembly_line::production_rate_per_hour_at_speed_seven ... ignored [INFO] [stdout] test exercises::assembly_line::production_rate_per_hour_at_speed_zero ... ok [INFO] [stdout] test exercises::assembly_line::production_rate_per_minute_at_speed_eight ... ignored [INFO] [stdout] test exercises::assembly_line::production_rate_per_minute_at_speed_five ... ignored [INFO] [stdout] test exercises::assembly_line::production_rate_per_minute_at_speed_one ... ignored [INFO] [stdout] test exercises::assembly_line::production_rate_per_minute_at_speed_ten ... ignored [INFO] [stdout] test exercises::assembly_line::production_rate_per_minute_at_speed_zero ... ignored [INFO] [stdout] test exercises::clock::test_add_across_midnight ... ignored [INFO] [stdout] test exercises::clock::test_add_minutes ... ignored [INFO] [stdout] test exercises::clock::test_add_more_than_one_day ... ignored [INFO] [stdout] test exercises::clock::test_add_more_than_one_hour ... ignored [INFO] [stdout] test exercises::clock::test_add_more_than_two_days ... ignored [INFO] [stdout] test exercises::clock::test_add_more_than_two_hours_with_carry ... ignored [INFO] [stdout] test exercises::clock::test_add_no_minutes ... ignored [INFO] [stdout] test exercises::clock::test_add_to_next_hour ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_a_minute_apart ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_an_hour_apart ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_for_equality ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_hour_overflow ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_hour_overflow_by_several_days ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_minutes_overflow ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_minutes_overflow_by_several_days ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_negative_hour ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_negative_hour_that_wraps ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_negative_hour_that_wraps_multiple_times ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_negative_hours_and_minutes ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_negative_hours_and_minutes_that_wrap ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_negative_minute ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_negative_minute_that_wraps ... ignored [INFO] [stdout] test exercises::clock::test_compare_clocks_with_negative_minute_that_wraps_multiple ... ignored [INFO] [stdout] test exercises::clock::test_compare_full_clock_and_zeroed_clock ... ignored [INFO] [stdout] test exercises::clock::test_hour_rolls_over ... ignored [INFO] [stdout] test exercises::clock::test_hour_rolls_over_continuously ... ignored [INFO] [stdout] test exercises::clock::test_hours_and_minutes_roll_over ... ignored [INFO] [stdout] test exercises::clock::test_hours_and_minutes_roll_over_continuously ... ignored [INFO] [stdout] test exercises::clock::test_hours_and_minutes_roll_over_to_exactly_midnight ... ignored [INFO] [stdout] test exercises::clock::test_midnight_is_zero_hours ... ignored [INFO] [stdout] test exercises::clock::test_minutes_roll_over ... ignored [INFO] [stdout] test exercises::clock::test_minutes_roll_over_continuously ... ignored [INFO] [stdout] test exercises::clock::test_negative_hour ... ignored [INFO] [stdout] test exercises::clock::test_negative_hour_and_minutes_both_roll_over ... ignored [INFO] [stdout] test exercises::clock::test_negative_hour_and_minutes_both_roll_over_continuously ... ignored [INFO] [stdout] test exercises::clock::test_negative_hour_roll_over ... ignored [INFO] [stdout] test exercises::clock::test_negative_hour_roll_over_continuously ... ignored [INFO] [stdout] test exercises::clock::test_negative_minutes ... ignored [INFO] [stdout] test exercises::clock::test_negative_minutes_roll_over ... ignored [INFO] [stdout] test exercises::clock::test_negative_minutes_roll_over_continuously ... ignored [INFO] [stdout] test exercises::clock::test_negative_one_twenty_minutes_is_two_prev_hours ... ignored [INFO] [stderr] Running tests/parallel_letter_frequency.rs (/opt/rustwide/target/debug/deps/parallel_letter_frequency-9ef31a6a6bf3f349) [INFO] [stdout] test exercises::clock::test_negative_sixty_minutes_is_prev_hour ... ignored [INFO] [stdout] test exercises::clock::test_past_the_hour ... ignored [INFO] [stdout] test exercises::clock::test_sixty_minutes_is_next_hour ... ignored [INFO] [stdout] test exercises::clock::test_subtract_across_midnight ... ignored [INFO] [stdout] test exercises::clock::test_subtract_minutes ... ignored [INFO] [stdout] test exercises::clock::test_subtract_more_than_an_hour ... ignored [INFO] [stdout] test exercises::clock::test_subtract_more_than_one_day ... ignored [INFO] [stdout] test exercises::clock::test_subtract_more_than_two_days ... ignored [INFO] [stdout] test exercises::clock::test_subtract_more_than_two_hours ... ignored [INFO] [stdout] test exercises::clock::test_subtract_more_than_two_hours_with_borrow ... ignored [INFO] [stdout] test exercises::clock::test_subtract_to_previous_hour ... ignored [INFO] [stdout] test exercises::clock::test_zero_hour_and_negative_minutes ... ignored [INFO] [stdout] test exercises::gigasecond::test_another_date ... ignored [INFO] [stdout] test exercises::gigasecond::test_another_datetime ... ignored [INFO] [stdout] test exercises::gigasecond::test_datetime ... ignored [INFO] [stdout] test exercises::gigasecond::test_third_date ... ignored [INFO] [stdout] test exercises::high_scores::test_latest_score ... ignored [INFO] [stdout] test exercises::high_scores::test_latest_score_empty ... ignored [INFO] [stdout] test exercises::high_scores::test_personal_best ... ignored [INFO] [stdout] test exercises::high_scores::test_personal_best_empty ... ignored [INFO] [stdout] test exercises::high_scores::test_personal_top_three ... ignored [INFO] [stdout] test exercises::high_scores::test_personal_top_three_empty ... ignored [INFO] [stdout] test exercises::high_scores::test_personal_top_three_highest_to_lowest ... ignored [INFO] [stdout] test exercises::high_scores::test_personal_top_three_only_one_score ... ignored [INFO] [stdout] test exercises::high_scores::test_personal_top_three_with_less_than_three_scores ... ignored [INFO] [stdout] test exercises::high_scores::test_personal_top_three_with_tie ... ignored [INFO] [stdout] test exercises::clock::test_on_the_hour ... ok [INFO] [stdout] test exercises::gigasecond::test_date ... ok [INFO] [stdout] test exercises::high_scores::test_list_of_scores ... ok [INFO] [stdout] test exercises::lucians_luscious_lasagna::elapsed_time_in_minutes_for_multiple_layers ... ok [INFO] [stdout] test exercises::lucians_luscious_lasagna::elapsed_time_in_minutes_for_one_layer ... ok [INFO] [stdout] test exercises::luhn::strings_that_contain_non_digits_are_invalid ... ignored [INFO] [stdout] test exercises::luhn::symbols_are_invalid ... ignored [INFO] [stdout] test exercises::luhn::test_a_simple_valid_sin_that_becomes_invalid_if_reversed ... ignored [INFO] [stdout] test exercises::luhn::test_a_simple_valid_sin_that_remains_valid_if_reversed ... ignored [INFO] [stdout] test exercises::luhn::test_a_single_zero_is_invalid ... ignored [INFO] [stdout] test exercises::luhn::test_a_valid_canadian_sin ... ignored [INFO] [stdout] test exercises::luhn::test_input_digit_9_is_correctly_converted_to_output_digit_9 ... ignored [INFO] [stdout] test exercises::luhn::test_invalid_canadian_sin ... ignored [INFO] [stdout] test exercises::luhn::test_invalid_char_in_middle_with_sum_divisible_by_10_isnt_allowed ... ignored [INFO] [stdout] test exercises::luhn::test_invalid_credit_card ... ignored [INFO] [stdout] test exercises::luhn::test_more_than_a_single_zero_is_valid ... ignored [INFO] [stdout] test exercises::lucians_luscious_lasagna::remaining_minutes_in_oven_to_be_10 ... ok [INFO] [stdout] test exercises::luhn::test_single_zero_with_space_is_invalid ... ignored [INFO] [stdout] test exercises::luhn::test_using_ascii_value_for_doubled_nondigit_isnt_allowed ... ignored [INFO] [stdout] test exercises::luhn::test_using_ascii_value_for_nondoubled_nondigit_isnt_allowed ... ignored [INFO] [stdout] test exercises::luhn::test_valid_number_with_an_even_number_of_digits ... ignored [INFO] [stdout] test exercises::luhn::test_valid_number_with_an_odd_number_of_spaces ... ignored [INFO] [stdout] test exercises::luhn::test_valid_strings_with_a_nondigit_added_at_the_end_become_invalid ... ignored [INFO] [stderr] Doc-tests exercism_2022 [INFO] [stdout] test exercises::luhn::test_valid_strings_with_numeric_unicode_characters_become_invalid ... ignored [INFO] [stdout] test exercises::luhn::test_valid_strings_with_punctuation_included_become_invalid ... ignored [INFO] [stdout] test exercises::luhn::test_valid_strings_with_symbols_included_become_invalid ... ignored [INFO] [stdout] test exercises::minesweeper::board_with_only_mines ... ignored [INFO] [stdout] test exercises::minesweeper::cross ... ignored [INFO] [stdout] test exercises::minesweeper::horizontal_line ... ignored [INFO] [stdout] test exercises::minesweeper::horizontal_line_mines_at_edges ... ignored [INFO] [stdout] test exercises::minesweeper::large_board ... ignored [INFO] [stdout] test exercises::minesweeper::mine_surrounded_by_spaces ... ignored [INFO] [stdout] test exercises::minesweeper::no_columns ... ignored [INFO] [stdout] test exercises::minesweeper::no_mines ... ignored [INFO] [stdout] test exercises::minesweeper::space_surrounded_by_mines ... ignored [INFO] [stdout] test exercises::minesweeper::vertical_line ... ignored [INFO] [stdout] test exercises::minesweeper::vertical_line_mines_at_edges ... ignored [INFO] [stdout] test exercises::reverse_string::test_a_capitalized_word ... ignored [INFO] [stdout] test exercises::reverse_string::test_a_palindrome ... ignored [INFO] [stdout] test exercises::reverse_string::test_a_sentence_with_punctuation ... ignored [INFO] [stdout] test exercises::reverse_string::test_a_word ... ignored [INFO] [stdout] test exercises::reverse_string::test_an_even_sized_word ... ignored [INFO] [stdout] test exercises::reverse_string::test_wide_characters ... ignored [INFO] [stdout] test exercises::semi_structured_logs::emits_error ... ignored [INFO] [stdout] test exercises::minesweeper::no_rows ... ok [INFO] [stdout] test exercises::semi_structured_logs::emits_warning ... ignored [INFO] [stdout] test exercises::semi_structured_logs::log_emits_error ... ignored [INFO] [stdout] test exercises::semi_structured_logs::log_emits_info ... ignored [INFO] [stdout] test exercises::semi_structured_logs::log_emits_warning ... ignored [INFO] [stdout] test exercises::reverse_string::test_an_empty_string ... ok [INFO] [stdout] test exercises::space_age::jupiter_age ... ignored [INFO] [stdout] test exercises::space_age::mars_age ... ignored [INFO] [stdout] test exercises::space_age::mercury_age ... ignored [INFO] [stdout] test exercises::space_age::neptune_age ... ignored [INFO] [stdout] test exercises::space_age::saturn_age ... ignored [INFO] [stdout] test exercises::space_age::uranus_age ... ignored [INFO] [stdout] test exercises::space_age::venus_age ... ignored [INFO] [stdout] test exercises::sublist::huge_sublist_not_in_huge_list ... ignored [INFO] [stdout] test exercises::sublist::partially_matching_sublist_at_start ... ignored [INFO] [stdout] test exercises::sublist::recurring_values_sublist ... ignored [INFO] [stdout] test exercises::sublist::recurring_values_unequal ... ignored [INFO] [stdout] test exercises::sublist::second_list_missing_element_from_first_list ... ignored [INFO] [stdout] test exercises::sublist::sublist_at_end ... ignored [INFO] [stdout] test exercises::sublist::sublist_early_in_huge_list ... ignored [INFO] [stdout] test exercises::sublist::sublist_in_middle ... ignored [INFO] [stdout] test exercises::sublist::superlist_at_end ... ignored [INFO] [stdout] test exercises::sublist::superlist_at_start ... ignored [INFO] [stdout] test exercises::sublist::superlist_early_in_huge_list ... ignored [INFO] [stdout] test exercises::sublist::superlist_in_middle ... ignored [INFO] [stdout] test exercises::sublist::test_1_is_not_2 ... ignored [INFO] [stdout] test exercises::sublist::test_anything_is_a_superlist_of_empty ... ignored [INFO] [stdout] test exercises::sublist::test_compare_larger_equal_lists ... ignored [INFO] [stdout] test exercises::sublist::test_empty_is_a_sublist_of_anything ... ignored [INFO] [stdout] test exercises::sublist::test_sublist_at_start ... ignored [INFO] [stdout] test exercises::tournament::a_different_team_can_win ... ignored [INFO] [stdout] test exercises::tournament::a_draw_is_one_point_each ... ignored [INFO] [stdout] test exercises::tournament::a_win_can_also_be_expressed_as_a_loss ... ignored [INFO] [stdout] test exercises::tournament::a_win_is_three_points_a_loss_is_zero_points ... ignored [INFO] [stdout] test exercises::tournament::incomplete_competition_not_all_pairs_have_played ... ignored [INFO] [stdout] test exercises::tournament::there_can_be_more_than_one_match ... ignored [INFO] [stdout] test exercises::tournament::there_can_be_more_than_one_winner ... ignored [INFO] [stdout] test exercises::tournament::there_can_be_more_than_two_teams ... ignored [INFO] [stdout] test exercises::tournament::ties_broken_alphabetically ... ignored [INFO] [stdout] test exercises::tournament::typical_input ... ignored [INFO] [stdout] test exercises::tournament::just_the_header_if_no_input ... ok [INFO] [stdout] test exercises::lucians_luscious_lasagna::expected_minutes_in_oven_to_be_40 ... ok [INFO] [stdout] test exercises::lucians_luscious_lasagna::preparation_time_in_minutes_to_be_4 ... ok [INFO] [stdout] test exercises::space_age::earth_age ... ok [INFO] [stdout] test exercises::sublist::empty_equals_empty ... ok [INFO] [stdout] test exercises::semi_structured_logs::emits_info ... ok [INFO] [stdout] test exercises::luhn::test_single_digit_strings_can_not_be_valid ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 18 passed; 0 failed; 176 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 11 tests [INFO] [stdout] test test_all_three_anthems_1_worker ... ignored [INFO] [stdout] test test_all_three_anthems_3_workers ... ignored [INFO] [stdout] test test_case_insensitivity ... ignored [INFO] [stdout] test test_many_empty_lines ... ignored [INFO] [stdout] test test_many_times_same_text ... ignored [INFO] [stdout] test test_non_integer_multiple_of_threads ... ignored [INFO] [stdout] test test_numbers_dont_count ... ignored [INFO] [stdout] test test_one_letter ... ignored [INFO] [stdout] test test_punctuation_doesnt_count ... ignored [INFO] [stdout] test foo ... ok [INFO] [stdout] test test_no_texts ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 9 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [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] running `Command { std: "docker" "inspect" "f8247b83fdd034776d5b49daba72d793a60eba9a2c04acb8c577d0c9eda4ce24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f8247b83fdd034776d5b49daba72d793a60eba9a2c04acb8c577d0c9eda4ce24", kill_on_drop: false }` [INFO] [stdout] f8247b83fdd034776d5b49daba72d793a60eba9a2c04acb8c577d0c9eda4ce24