[INFO] cloning repository https://github.com/skrap/aoc_rust_2018 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/skrap/aoc_rust_2018" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskrap%2Faoc_rust_2018", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskrap%2Faoc_rust_2018'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 34dc66371b3eb36e637ea0a25837331ba3dd3a92 [INFO] testing skrap/aoc_rust_2018 against beta-2020-07-24 for beta-1.46-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fskrap%2Faoc_rust_2018" "/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/skrap/aoc_rust_2018 on toolchain beta-2020-07-24 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/skrap/aoc_rust_2018 [INFO] finished tweaking git repo https://github.com/skrap/aoc_rust_2018 [INFO] tweaked toml for git repo https://github.com/skrap/aoc_rust_2018 written to /workspace/builds/worker-3/source/Cargo.toml [INFO] crate git repo https://github.com/skrap/aoc_rust_2018 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "fetch" "--locked" "--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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "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] ab4748752121722e5fdb2807e8338a46187e8a8c9bde9830c39144f2f468182b [INFO] running `Command { std: "docker" "start" "-a" "ab4748752121722e5fdb2807e8338a46187e8a8c9bde9830c39144f2f468182b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ab4748752121722e5fdb2807e8338a46187e8a8c9bde9830c39144f2f468182b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ab4748752121722e5fdb2807e8338a46187e8a8c9bde9830c39144f2f468182b", kill_on_drop: false }` [INFO] [stdout] ab4748752121722e5fdb2807e8338a46187e8a8c9bde9830c39144f2f468182b [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" "MAP_USER_ID=0" "-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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "build" "--frozen" "--message-format=json", 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] 12fa47894781ffda8da94ea48c9fd5586af4e12cb3f705c81dbc9039365c3d47 [INFO] running `Command { std: "docker" "start" "-a" "12fa47894781ffda8da94ea48c9fd5586af4e12cb3f705c81dbc9039365c3d47", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.44 [INFO] [stderr] Compiling linked-list v0.0.3 [INFO] [stderr] Compiling memchr v2.1.1 [INFO] [stderr] Compiling regex-syntax v0.6.4 [INFO] [stderr] Compiling slice-deque v0.1.16 [INFO] [stderr] Compiling aho-corasick v0.6.9 [INFO] [stderr] Compiling regex v1.1.0 [INFO] [stderr] Compiling advent_of_code v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/bin/24.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | 'game: loop { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/bin/19.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{BTreeMap, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `constl` [INFO] [stdout] --> src/bin/25.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | constl: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stdout` [INFO] [stdout] --> src/bin/18.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | let mut stdout = std::io::stdout(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stdout` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/7b.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | let mut new_deps = step.deps.drain(..).filter(|d| d != &name).collect(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/18.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | let mut stdout = std::io::stdout(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print` [INFO] [stdout] --> src/bin/15.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | fn print(&self, start_pos: &Pos) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/23.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | let mut start_region_bots : Vec<_> = start_bots.iter().filter(|b| b.intersects(&bot)).map(|b| b.clone()).collect(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `intersect` [INFO] [stdout] --> src/bin/23.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn intersect(a: &(Coord,Coord), b: &(Coord, Coord)) -> Option<(Coord,Coord)> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `union` [INFO] [stdout] --> src/bin/23.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn union(a: &(Coord,Coord), b: &(Coord, Coord)) -> (Coord,Coord) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `divide` [INFO] [stdout] --> src/bin/23.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn divide(a: &(Coord,Coord)) -> [Option<(Coord,Coord)>;2] { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `intersect` [INFO] [stdout] --> src/bin/23.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | fn intersect(&self, other: &Box) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `union` [INFO] [stdout] --> src/bin/23.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | fn union(&self, other: &Box) -> Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `split` [INFO] [stdout] --> src/bin/23.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | fn split(&self) -> [Option;8] { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bbox` [INFO] [stdout] --> src/bin/23.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | fn bbox(&self) -> Box { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `union` [INFO] [stdout] --> src/bin/23.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | fn union(&self, other: &Self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print` [INFO] [stdout] --> src/bin/15b.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | fn print(&self, units: &Vec) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print` [INFO] [stdout] --> src/bin/15b.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | fn print(&self, start_pos: &Pos) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/7a.rs:50:17 [INFO] [stdout] | [INFO] [stdout] 50 | let mut new_deps = step.deps.drain(..).filter(|d| d != ready_name).collect(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 9 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 31.69s [INFO] running `Command { std: "docker" "inspect" "12fa47894781ffda8da94ea48c9fd5586af4e12cb3f705c81dbc9039365c3d47", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "12fa47894781ffda8da94ea48c9fd5586af4e12cb3f705c81dbc9039365c3d47", kill_on_drop: false }` [INFO] [stdout] 12fa47894781ffda8da94ea48c9fd5586af4e12cb3f705c81dbc9039365c3d47 [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" "MAP_USER_ID=0" "-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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d40cdee6f0b59bff1b95b0c79e92b3efa1617e2471a56643991f6135a0e0ac97 [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" "d40cdee6f0b59bff1b95b0c79e92b3efa1617e2471a56643991f6135a0e0ac97", kill_on_drop: false }` [INFO] [stderr] Compiling advent_of_code v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: associated function is never used: `print` [INFO] [stdout] --> src/bin/15.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | fn print(&self, start_pos: &Pos) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `constl` [INFO] [stdout] --> src/bin/25.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | constl: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/7a.rs:50:17 [INFO] [stdout] | [INFO] [stdout] 50 | let mut new_deps = step.deps.drain(..).filter(|d| d != ready_name).collect(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print` [INFO] [stdout] --> src/bin/15b.rs:30:8 [INFO] [stdout] | [INFO] [stdout] 30 | fn print(&self, units: &Vec) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `print` [INFO] [stdout] --> src/bin/15b.rs:137:8 [INFO] [stdout] | [INFO] [stdout] 137 | fn print(&self, start_pos: &Pos) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused label [INFO] [stdout] --> src/bin/24.rs:121:5 [INFO] [stdout] | [INFO] [stdout] 121 | 'game: loop { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_labels)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/23.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | let mut start_region_bots : Vec<_> = start_bots.iter().filter(|b| b.intersects(&bot)).map(|b| b.clone()).collect(); [INFO] [stdout] | ----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `intersect` [INFO] [stdout] --> src/bin/23.rs:21:4 [INFO] [stdout] | [INFO] [stdout] 21 | fn intersect(a: &(Coord,Coord), b: &(Coord, Coord)) -> Option<(Coord,Coord)> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `union` [INFO] [stdout] --> src/bin/23.rs:31:4 [INFO] [stdout] | [INFO] [stdout] 31 | fn union(a: &(Coord,Coord), b: &(Coord, Coord)) -> (Coord,Coord) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `divide` [INFO] [stdout] --> src/bin/23.rs:37:4 [INFO] [stdout] | [INFO] [stdout] 37 | fn divide(a: &(Coord,Coord)) -> [Option<(Coord,Coord)>;2] { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `intersect` [INFO] [stdout] --> src/bin/23.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | fn intersect(&self, other: &Box) -> Option { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `union` [INFO] [stdout] --> src/bin/23.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | fn union(&self, other: &Box) -> Box { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `split` [INFO] [stdout] --> src/bin/23.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | fn split(&self) -> [Option;8] { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bbox` [INFO] [stdout] --> src/bin/23.rs:86:8 [INFO] [stdout] | [INFO] [stdout] 86 | fn bbox(&self) -> Box { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `union` [INFO] [stdout] --> src/bin/23.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | fn union(&self, other: &Self) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/7b.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | let mut new_deps = step.deps.drain(..).filter(|d| d != &name).collect(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VecDeque` [INFO] [stdout] --> src/bin/19.rs:2:34 [INFO] [stdout] | [INFO] [stdout] 2 | use std::collections::{BTreeMap, VecDeque}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 9 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `stdout` [INFO] [stdout] --> src/bin/18.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | let mut stdout = std::io::stdout(); [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stdout` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/bin/18.rs:121:9 [INFO] [stdout] | [INFO] [stdout] 121 | let mut stdout = std::io::stdout(); [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 7.98s [INFO] running `Command { std: "docker" "inspect" "d40cdee6f0b59bff1b95b0c79e92b3efa1617e2471a56643991f6135a0e0ac97", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d40cdee6f0b59bff1b95b0c79e92b3efa1617e2471a56643991f6135a0e0ac97", kill_on_drop: false }` [INFO] [stdout] d40cdee6f0b59bff1b95b0c79e92b3efa1617e2471a56643991f6135a0e0ac97 [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" "MAP_USER_ID=0" "-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@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "test" "--frozen", 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] d744f2473db16aa020729c9c23cafe7b8b9d9f98ca4dd414a235ebf47a0ff99d [INFO] running `Command { std: "docker" "start" "-a" "d744f2473db16aa020729c9c23cafe7b8b9d9f98ca4dd414a235ebf47a0ff99d", kill_on_drop: false }` [INFO] [stderr] warning: unused variable: `stdout` [INFO] [stderr] --> src/bin/18.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | let mut stdout = std::io::stdout(); [INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_stdout` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/bin/18.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | let mut stdout = std::io::stdout(); [INFO] [stderr] | ----^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `print` [INFO] [stderr] --> src/bin/15b.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | fn print(&self, units: &Vec) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `print` [INFO] [stderr] --> src/bin/15b.rs:137:8 [INFO] [stderr] | [INFO] [stderr] 137 | fn print(&self, start_pos: &Pos) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: field is never read: `constl` [INFO] [stderr] --> src/bin/25.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | constl: Option, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `print` [INFO] [stderr] --> src/bin/15.rs:137:8 [INFO] [stderr] | [INFO] [stderr] 137 | fn print(&self, start_pos: &Pos) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/bin/7a.rs:50:17 [INFO] [stderr] | [INFO] [stderr] 50 | let mut new_deps = step.deps.drain(..).filter(|d| d != ready_name).collect(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/bin/23.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | let mut start_region_bots : Vec<_> = start_bots.iter().filter(|b| b.intersects(&bot)).map(|b| b.clone()).collect(); [INFO] [stderr] | ----^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `intersect` [INFO] [stderr] --> src/bin/23.rs:21:4 [INFO] [stderr] | [INFO] [stderr] 21 | fn intersect(a: &(Coord,Coord), b: &(Coord, Coord)) -> Option<(Coord,Coord)> { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `union` [INFO] [stderr] --> src/bin/23.rs:31:4 [INFO] [stderr] | [INFO] [stderr] 31 | fn union(a: &(Coord,Coord), b: &(Coord, Coord)) -> (Coord,Coord) { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `divide` [INFO] [stderr] --> src/bin/23.rs:37:4 [INFO] [stderr] | [INFO] [stderr] 37 | fn divide(a: &(Coord,Coord)) -> [Option<(Coord,Coord)>;2] { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `intersect` [INFO] [stderr] --> src/bin/23.rs:47:8 [INFO] [stderr] | [INFO] [stderr] 47 | fn intersect(&self, other: &Box) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `union` [INFO] [stderr] --> src/bin/23.rs:53:8 [INFO] [stderr] | [INFO] [stderr] 53 | fn union(&self, other: &Box) -> Box { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `split` [INFO] [stderr] --> src/bin/23.rs:56:8 [INFO] [stderr] | [INFO] [stderr] 56 | fn split(&self) -> [Option;8] { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `bbox` [INFO] [stderr] --> src/bin/23.rs:86:8 [INFO] [stderr] | [INFO] [stderr] 86 | fn bbox(&self) -> Box { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function is never used: `union` [INFO] [stderr] --> src/bin/23.rs:94:8 [INFO] [stderr] | [INFO] [stderr] 94 | fn union(&self, other: &Self) -> Self { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 9 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused label [INFO] [stderr] --> src/bin/24.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | 'game: loop { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_labels)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/bin/7b.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | let mut new_deps = step.deps.drain(..).filter(|d| d != &name).collect(); [INFO] [stderr] | ----^^^^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_mut)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] warning: unused import: `VecDeque` [INFO] [stderr] --> src/bin/19.rs:2:34 [INFO] [stderr] | [INFO] [stderr] 2 | use std::collections::{BTreeMap, VecDeque}; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: 1 warning emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/10a-c10ddb4f8793f57e [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/11a-4463d4556bfe0f47 [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/12a-651a462a763972a3 [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/12b-f95d3f60fd272f8a [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/13a-b22e2a33d8a92bd8 [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 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/14-cfc31289f67bf2fe [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 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/14b-74615b54aa3889cb [INFO] [stderr] Running /opt/rustwide/target/debug/deps/15-e102d18794435fff [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/15b-d759f569dd6a885e [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/16-d67134dd5b0a16fc [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 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/16b-9229ac21c3a168aa [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/17-102c9998b9a29f10 [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 [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 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/18-1d8a6b22c8902976 [INFO] [stderr] Running /opt/rustwide/target/debug/deps/19-e9d8c07bf02e2b23 [INFO] [stderr] Running /opt/rustwide/target/debug/deps/1a-8eef984dbb717452 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/1b-d0ba794605ba6559 [INFO] [stderr] Running /opt/rustwide/target/debug/deps/20-a5b3786dfd7bb919 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/21-595b3e42fc608646 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/22-5de7222a77abbc70 [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 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/23-3fa9d66ee02214a0 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/24-f3752de62d1b847f [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/25-8132e27d9d61d8ee [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/2a-63fef50054dd1da1 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/2b-b8cfef2761ae93b6 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/3a-a86fad1d7d9608bd [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/3b-42a849937c6798f4 [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/4a-65832da5e14ef41c [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 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/5a-709904713fb56e1a [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/5b-da99b830dc3f8842 [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/6a-9c7441c86b985b6f [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/6b-a8c021a88d392981 [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [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 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/7a-8fb503cdd61cb5d3 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/7b-a16fb99c3b2e0179 [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/8-3b5ece7da48a96e6 [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 [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 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/9a-3c63e653b9067b49 [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/advent_of_code-f13e3bdf81f6716d [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [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 [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d744f2473db16aa020729c9c23cafe7b8b9d9f98ca4dd414a235ebf47a0ff99d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d744f2473db16aa020729c9c23cafe7b8b9d9f98ca4dd414a235ebf47a0ff99d", kill_on_drop: false }` [INFO] [stdout] d744f2473db16aa020729c9c23cafe7b8b9d9f98ca4dd414a235ebf47a0ff99d