[INFO] cloning repository https://github.com/cameronfyfe/ripple [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/cameronfyfe/ripple" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcameronfyfe%2Fripple", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcameronfyfe%2Fripple'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 08329f564767a7422ba35e9ad0b409157df710cf [INFO] testing cameronfyfe/ripple against try#ecabaf78506b7a4668d42dc20268c086b93f0fad for pr-87041 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcameronfyfe%2Fripple" "/workspace/builds/worker-3/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/cameronfyfe/ripple on toolchain ecabaf78506b7a4668d42dc20268c086b93f0fad [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/cameronfyfe/ripple [INFO] finished tweaking git repo https://github.com/cameronfyfe/ripple [INFO] tweaked toml for git repo https://github.com/cameronfyfe/ripple written to /workspace/builds/worker-3/source/Cargo.toml [INFO] crate git repo https://github.com/cameronfyfe/ripple already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] abe7a1367063a70da8b7d930bc94793f84b78fc29722768f8629205283b7be55 [INFO] running `Command { std: "docker" "start" "-a" "abe7a1367063a70da8b7d930bc94793f84b78fc29722768f8629205283b7be55", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "abe7a1367063a70da8b7d930bc94793f84b78fc29722768f8629205283b7be55", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "abe7a1367063a70da8b7d930bc94793f84b78fc29722768f8629205283b7be55", kill_on_drop: false }` [INFO] [stdout] abe7a1367063a70da8b7d930bc94793f84b78fc29722768f8629205283b7be55 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 93e6af76a0b009dc3c4d8d42b382d16901d39be2ca0220bc0a80500c14fedf76 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "93e6af76a0b009dc3c4d8d42b382d16901d39be2ca0220bc0a80500c14fedf76", kill_on_drop: false }` [INFO] [stderr] Compiling ripple v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | (_) => AudioFormat::Invalid [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/lib.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 142 | if (i + chunk_size > bytes.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | (_) => { [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | (_) => () [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> src/lib.rs:153:24 [INFO] [stdout] | [INFO] [stdout] 153 | Ok(info) => parser.fmt_chunk_processed = true, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:15:22 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn u32_from_ieee(data: f32) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:20:22 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn u32_from_alaw(data: u8) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:25:23 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn u32_from_mulaw(data: u8) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u13_from_u32` [INFO] [stdout] --> src/data.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn u13_from_u32(data: u32) -> u16 { (data >> 22) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u14_from_u32` [INFO] [stdout] --> src/data.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn u14_from_u32(data: u32) -> u16 { (data >> 21) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u15_from_u32` [INFO] [stdout] --> src/data.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn u15_from_u32(data: u32) -> u16 { (data >> 20) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u16_from_u32` [INFO] [stdout] --> src/data.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn u16_from_u32(data: u32) -> u16 { (data >> 19) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `file_size` [INFO] [stdout] --> src/lib.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | file_size: u32, // total file size [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `data_size` [INFO] [stdout] --> src/lib.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | data_size: u32, // size of audio data [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `data_offset` [INFO] [stdout] --> src/lib.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | data_offset: u32, // offset of start of audio data in file [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `num_channels` [INFO] [stdout] --> src/lib.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | num_channels: u16, // no.of channels [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sample_rate` [INFO] [stdout] --> src/lib.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | sample_rate: u32, // sampling rate (blocks per second) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `ChunkType` [INFO] [stdout] --> src/lib.rs:82:6 [INFO] [stdout] | [INFO] [stdout] 82 | enum ChunkType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `id` [INFO] [stdout] --> src/lib.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn id(&self) -> u32 { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 19 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.27s [INFO] running `Command { std: "docker" "inspect" "93e6af76a0b009dc3c4d8d42b382d16901d39be2ca0220bc0a80500c14fedf76", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "93e6af76a0b009dc3c4d8d42b382d16901d39be2ca0220bc0a80500c14fedf76", kill_on_drop: false }` [INFO] [stdout] 93e6af76a0b009dc3c4d8d42b382d16901d39be2ca0220bc0a80500c14fedf76 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0786e74ee4da5c18e0d76d3d71f8819cd2668be1db48d41f7adc3cec7c694caf [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "0786e74ee4da5c18e0d76d3d71f8819cd2668be1db48d41f7adc3cec7c694caf", kill_on_drop: false }` [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | (_) => AudioFormat::Invalid [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/lib.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 142 | if (i + chunk_size > bytes.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | (_) => { [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | (_) => () [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> src/lib.rs:153:24 [INFO] [stdout] | [INFO] [stdout] 153 | Ok(info) => parser.fmt_chunk_processed = true, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:15:22 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn u32_from_ieee(data: f32) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:20:22 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn u32_from_alaw(data: u8) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:25:23 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn u32_from_mulaw(data: u8) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u13_from_u32` [INFO] [stdout] --> src/data.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn u13_from_u32(data: u32) -> u16 { (data >> 22) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u14_from_u32` [INFO] [stdout] --> src/data.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn u14_from_u32(data: u32) -> u16 { (data >> 21) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u15_from_u32` [INFO] [stdout] --> src/data.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn u15_from_u32(data: u32) -> u16 { (data >> 20) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u16_from_u32` [INFO] [stdout] --> src/data.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn u16_from_u32(data: u32) -> u16 { (data >> 19) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `file_size` [INFO] [stdout] --> src/lib.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | file_size: u32, // total file size [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `data_size` [INFO] [stdout] --> src/lib.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | data_size: u32, // size of audio data [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `data_offset` [INFO] [stdout] --> src/lib.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | data_offset: u32, // offset of start of audio data in file [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `num_channels` [INFO] [stdout] --> src/lib.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | num_channels: u16, // no.of channels [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sample_rate` [INFO] [stdout] --> src/lib.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | sample_rate: u32, // sampling rate (blocks per second) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `ChunkType` [INFO] [stdout] --> src/lib.rs:82:6 [INFO] [stdout] | [INFO] [stdout] 82 | enum ChunkType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `id` [INFO] [stdout] --> src/lib.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn id(&self) -> u32 { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 19 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling ripple v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:34:13 [INFO] [stdout] | [INFO] [stdout] 34 | (_) => AudioFormat::Invalid [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/lib.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 142 | if (i + chunk_size > bytes.len()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:170:13 [INFO] [stdout] | [INFO] [stdout] 170 | (_) => { [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around pattern [INFO] [stdout] --> src/lib.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 201 | (_) => () [INFO] [stdout] | ^^^ help: remove these parentheses [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `info` [INFO] [stdout] --> src/lib.rs:153:24 [INFO] [stdout] | [INFO] [stdout] 153 | Ok(info) => parser.fmt_chunk_processed = true, [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:15:22 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn u32_from_ieee(data: f32) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:20:22 [INFO] [stdout] | [INFO] [stdout] 20 | pub fn u32_from_alaw(data: u8) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `data` [INFO] [stdout] --> src/data.rs:25:23 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn u32_from_mulaw(data: u8) -> u32 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u13_from_u32` [INFO] [stdout] --> src/data.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn u13_from_u32(data: u32) -> u16 { (data >> 22) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u14_from_u32` [INFO] [stdout] --> src/data.rs:38:4 [INFO] [stdout] | [INFO] [stdout] 38 | fn u14_from_u32(data: u32) -> u16 { (data >> 21) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u15_from_u32` [INFO] [stdout] --> src/data.rs:39:4 [INFO] [stdout] | [INFO] [stdout] 39 | fn u15_from_u32(data: u32) -> u16 { (data >> 20) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `u16_from_u32` [INFO] [stdout] --> src/data.rs:40:4 [INFO] [stdout] | [INFO] [stdout] 40 | fn u16_from_u32(data: u32) -> u16 { (data >> 19) as u16 } [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `file_size` [INFO] [stdout] --> src/lib.rs:44:5 [INFO] [stdout] | [INFO] [stdout] 44 | file_size: u32, // total file size [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `data_size` [INFO] [stdout] --> src/lib.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | data_size: u32, // size of audio data [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `data_offset` [INFO] [stdout] --> src/lib.rs:46:5 [INFO] [stdout] | [INFO] [stdout] 46 | data_offset: u32, // offset of start of audio data in file [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `num_channels` [INFO] [stdout] --> src/lib.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | num_channels: u16, // no.of channels [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `sample_rate` [INFO] [stdout] --> src/lib.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | sample_rate: u32, // sampling rate (blocks per second) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum is never used: `ChunkType` [INFO] [stdout] --> src/lib.rs:82:6 [INFO] [stdout] | [INFO] [stdout] 82 | enum ChunkType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `id` [INFO] [stdout] --> src/lib.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | pub fn id(&self) -> u32 { [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 19 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `wavefile_array` should have an upper case name [INFO] [stdout] --> tests/pmc16.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const wavefile_array: [u8; 444524] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `WAVEFILE_ARRAY` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 3.80s [INFO] running `Command { std: "docker" "inspect" "0786e74ee4da5c18e0d76d3d71f8819cd2668be1db48d41f7adc3cec7c694caf", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0786e74ee4da5c18e0d76d3d71f8819cd2668be1db48d41f7adc3cec7c694caf", kill_on_drop: false }` [INFO] [stdout] 0786e74ee4da5c18e0d76d3d71f8819cd2668be1db48d41f7adc3cec7c694caf [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+ecabaf78506b7a4668d42dc20268c086b93f0fad" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 332a300cdb54c275d9f516a2c545a555318b005ec624df13eda7209cf3b992ce [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "332a300cdb54c275d9f516a2c545a555318b005ec624df13eda7209cf3b992ce", kill_on_drop: false }` [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/lib.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | (_) => AudioFormat::Invalid [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/lib.rs:142:12 [INFO] [stderr] | [INFO] [stderr] 142 | if (i + chunk_size > bytes.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/lib.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | (_) => { [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/lib.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | (_) => () [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `info` [INFO] [stderr] --> src/lib.rs:153:24 [INFO] [stderr] | [INFO] [stderr] 153 | Ok(info) => parser.fmt_chunk_processed = true, [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/data.rs:15:22 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn u32_from_ieee(data: f32) -> u32 { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/data.rs:20:22 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn u32_from_alaw(data: u8) -> u32 { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/data.rs:25:23 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn u32_from_mulaw(data: u8) -> u32 { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u13_from_u32` [INFO] [stderr] --> src/data.rs:37:4 [INFO] [stderr] | [INFO] [stderr] 37 | fn u13_from_u32(data: u32) -> u16 { (data >> 22) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u14_from_u32` [INFO] [stderr] --> src/data.rs:38:4 [INFO] [stderr] | [INFO] [stderr] 38 | fn u14_from_u32(data: u32) -> u16 { (data >> 21) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u15_from_u32` [INFO] [stderr] --> src/data.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | fn u15_from_u32(data: u32) -> u16 { (data >> 20) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u16_from_u32` [INFO] [stderr] --> src/data.rs:40:4 [INFO] [stderr] | [INFO] [stderr] 40 | fn u16_from_u32(data: u32) -> u16 { (data >> 19) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `file_size` [INFO] [stderr] --> src/lib.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | file_size: u32, // total file size [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `data_size` [INFO] [stderr] --> src/lib.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | data_size: u32, // size of audio data [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `data_offset` [INFO] [stderr] --> src/lib.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | data_offset: u32, // offset of start of audio data in file [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `num_channels` [INFO] [stderr] --> src/lib.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | num_channels: u16, // no.of channels [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `sample_rate` [INFO] [stderr] --> src/lib.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | sample_rate: u32, // sampling rate (blocks per second) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ChunkType` [INFO] [stderr] --> src/lib.rs:82:6 [INFO] [stderr] | [INFO] [stderr] 82 | enum ChunkType { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `id` [INFO] [stderr] --> src/lib.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn id(&self) -> u32 { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: 19 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/lib.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | (_) => AudioFormat::Invalid [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/lib.rs:142:12 [INFO] [stderr] | [INFO] [stderr] 142 | if (i + chunk_size > bytes.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/lib.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | (_) => { [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> src/lib.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | (_) => () [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `info` [INFO] [stderr] --> src/lib.rs:153:24 [INFO] [stderr] | [INFO] [stderr] 153 | Ok(info) => parser.fmt_chunk_processed = true, [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_info` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/data.rs:15:22 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn u32_from_ieee(data: f32) -> u32 { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/data.rs:20:22 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn u32_from_alaw(data: u8) -> u32 { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `data` [INFO] [stderr] --> src/data.rs:25:23 [INFO] [stderr] | [INFO] [stderr] 25 | pub fn u32_from_mulaw(data: u8) -> u32 { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_data` [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u13_from_u32` [INFO] [stderr] --> src/data.rs:37:4 [INFO] [stderr] | [INFO] [stderr] 37 | fn u13_from_u32(data: u32) -> u16 { (data >> 22) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u14_from_u32` [INFO] [stderr] --> src/data.rs:38:4 [INFO] [stderr] | [INFO] [stderr] 38 | fn u14_from_u32(data: u32) -> u16 { (data >> 21) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u15_from_u32` [INFO] [stderr] --> src/data.rs:39:4 [INFO] [stderr] | [INFO] [stderr] 39 | fn u15_from_u32(data: u32) -> u16 { (data >> 20) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `u16_from_u32` [INFO] [stderr] --> src/data.rs:40:4 [INFO] [stderr] | [INFO] [stderr] 40 | fn u16_from_u32(data: u32) -> u16 { (data >> 19) as u16 } [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `file_size` [INFO] [stderr] --> src/lib.rs:44:5 [INFO] [stderr] | [INFO] [stderr] 44 | file_size: u32, // total file size [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `data_size` [INFO] [stderr] --> src/lib.rs:45:5 [INFO] [stderr] | [INFO] [stderr] 45 | data_size: u32, // size of audio data [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `data_offset` [INFO] [stderr] --> src/lib.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | data_offset: u32, // offset of start of audio data in file [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `num_channels` [INFO] [stderr] --> src/lib.rs:48:5 [INFO] [stderr] | [INFO] [stderr] 48 | num_channels: u16, // no.of channels [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `sample_rate` [INFO] [stderr] --> src/lib.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | sample_rate: u32, // sampling rate (blocks per second) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `ChunkType` [INFO] [stderr] --> src/lib.rs:82:6 [INFO] [stderr] | [INFO] [stderr] 82 | enum ChunkType { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `id` [INFO] [stderr] --> src/lib.rs:90:12 [INFO] [stderr] | [INFO] [stderr] 90 | pub fn id(&self) -> u32 { [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: 19 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: constant `wavefile_array` should have an upper case name [INFO] [stderr] --> tests/pmc16.rs:14:7 [INFO] [stderr] | [INFO] [stderr] 14 | const wavefile_array: [u8; 444524] = [ [INFO] [stderr] | ^^^^^^^^^^^^^^ help: convert the identifier to upper case: `WAVEFILE_ARRAY` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(non_upper_case_globals)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.01s [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/ripple-31bb7d2d8695f988) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running tests/pmc16.rs (/opt/rustwide/target/debug/deps/pmc16-bbebd00f160a512a) [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stderr] Doc-tests ripple [INFO] [stdout] test test_add ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> /opt/rustwide/workdir/src/lib.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | (_) => AudioFormat::Invalid [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_parens)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> /opt/rustwide/workdir/src/lib.rs:142:12 [INFO] [stderr] | [INFO] [stderr] 142 | if (i + chunk_size > bytes.len()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> /opt/rustwide/workdir/src/lib.rs:170:13 [INFO] [stderr] | [INFO] [stderr] 170 | (_) => { [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around pattern [INFO] [stderr] --> /opt/rustwide/workdir/src/lib.rs:201:9 [INFO] [stderr] | [INFO] [stderr] 201 | (_) => () [INFO] [stderr] | ^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: 4 warnings emitted [INFO] [stderr] [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" "332a300cdb54c275d9f516a2c545a555318b005ec624df13eda7209cf3b992ce", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "332a300cdb54c275d9f516a2c545a555318b005ec624df13eda7209cf3b992ce", kill_on_drop: false }` [INFO] [stdout] 332a300cdb54c275d9f516a2c545a555318b005ec624df13eda7209cf3b992ce