[INFO] fetching crate pitot 0.0.1...
[INFO] testing pitot-0.0.1 against beta-2021-08-01 for beta-1.55-1
[INFO] extracting crate pitot 0.0.1 into /workspace/builds/worker-0/source
[INFO] validating manifest of crates.io crate pitot 0.0.1 on toolchain beta-2021-08-01
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate pitot 0.0.1
[INFO] finished tweaking crates.io crate pitot 0.0.1
[INFO] tweaked toml for crates.io crate pitot 0.0.1 written to /workspace/builds/worker-0/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded env_logger v0.3.5
[INFO] [stderr]   Downloaded termios v0.2.2
[INFO] [stderr]   Downloaded chrono v0.3.0
[INFO] [stderr]   Downloaded inotify v0.4.2
[INFO] [stderr]   Downloaded serial v0.3.4
[INFO] [stderr]   Downloaded nom v3.2.1
[INFO] [stderr]   Downloaded ioctl-rs v0.1.6
[INFO] [stderr]   Downloaded ws v0.7.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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" "+beta-2021-08-01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4013e04155314d390b81da6f80e8e7d8d3ea3b903c3778df981ddc9bb3a4c905
[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" "4013e04155314d390b81da6f80e8e7d8d3ea3b903c3778df981ddc9bb3a4c905", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4013e04155314d390b81da6f80e8e7d8d3ea3b903c3778df981ddc9bb3a4c905", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4013e04155314d390b81da6f80e8e7d8d3ea3b903c3778df981ddc9bb3a4c905", kill_on_drop: false }`
[INFO] [stdout] 4013e04155314d390b81da6f80e8e7d8d3ea3b903c3778df981ddc9bb3a4c905
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/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=warn" "-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" "+beta-2021-08-01" "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] f44867e5e5a04043b2972d9d50ae06c23b079343f7adcef69d6a1d14f5a33a9b
[INFO] running `Command { std: "docker" "start" "-a" "f44867e5e5a04043b2972d9d50ae06c23b079343f7adcef69d6a1d14f5a33a9b", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v0.1.11
[INFO] [stderr]    Compiling termios v0.2.2
[INFO] [stderr]    Compiling ioctl-rs v0.1.6
[INFO] [stderr]    Compiling inotify-sys v0.1.5
[INFO] [stderr]    Compiling thread-id v2.0.0
[INFO] [stderr]    Compiling nom v3.2.1
[INFO] [stderr]    Compiling mio-extras v2.0.6
[INFO] [stderr]    Compiling chrono v0.3.0
[INFO] [stderr]    Compiling thread_local v0.2.7
[INFO] [stderr]    Compiling aho-corasick v0.5.3
[INFO] [stderr]    Compiling inotify v0.4.2
[INFO] [stderr]    Compiling serial v0.3.4
[INFO] [stderr]    Compiling ws v0.7.9
[INFO] [stderr]    Compiling regex v0.1.80
[INFO] [stderr]    Compiling env_logger v0.3.5
[INFO] [stderr]    Compiling pitot v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sensor/gnss/fake.rs:25:31
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn run(&mut self, h: &mut Pushable<SensorData>) {
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<SensorData>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sensor/gnss/ublox.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |             try!(self.refill());
[INFO] [stdout]     |             ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sensor/gnss/ublox.rs:150:9
[INFO] [stdout]     |
[INFO] [stdout] 150 |         try!(self.serial
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sensor/gnss/ublox.rs:188:17
[INFO] [stdout]     |
[INFO] [stdout] 188 |                 try!(self.serial
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]    --> src/sensor/gnss/ublox.rs:377:62
[INFO] [stdout]     |
[INFO] [stdout] 377 |                          Some((mag_dec as f32 * 1.0e-2, Some((mag_dec_accuracy as f32 * 1.0e-2))))
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sensor/gnss/ublox.rs:440:31
[INFO] [stdout]     |
[INFO] [stdout] 440 |     fn run(&mut self, h: &mut Pushable<SensorData>) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<SensorData>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sensor/gnss/ublox.rs:480:32
[INFO] [stdout]     |
[INFO] [stdout] 480 |     pub fn new() -> Option<Box<Sensor>> {
[INFO] [stdout]     |                                ^^^^^^ help: use `dyn`: `dyn Sensor`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sensor/gnss/ublox.rs:489:25
[INFO] [stdout]     |
[INFO] [stdout] 489 |                         try!(settings.set_baud_rate(BaudRate::Baud9600));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/sensor/gnss/ublox.rs:519:25
[INFO] [stdout]     |
[INFO] [stdout] 519 |                         try!(settings.set_baud_rate(BAUD_RATE));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/sensor/sdr/uat.rs:244:16
[INFO] [stdout]     |
[INFO] [stdout] 244 |         typ @ 0...1 => {
[INFO] [stdout]     |                ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sensor/sdr/uat.rs:317:31
[INFO] [stdout]     |
[INFO] [stdout] 317 |     fn run(&mut self, h: &mut Pushable<SensorData>) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<SensorData>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/sensor/sdr/es.rs:110:31
[INFO] [stdout]     |
[INFO] [stdout] 110 |     fn run(&mut self, h: &mut Pushable<SensorData>) {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<SensorData>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/sensor/mod.rs:37:31
[INFO] [stdout]    |
[INFO] [stdout] 37 |     fn run(&mut self, h: &mut Pushable<SensorData>);
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<SensorData>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/processor/ownship.rs:40:36
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn run(&mut self, handle: &mut Pushable<Report>, i: ChainedIter) {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<Report>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/processor/ownship.rs:80:25
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn new() -> Box<Processor> {
[INFO] [stdout]    |                         ^^^^^^^^^ help: use `dyn`: `dyn Processor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/processor/clock.rs:36:36
[INFO] [stdout]    |
[INFO] [stdout] 36 |     fn run(&mut self, handle: &mut Pushable<Report>, i: ChainedIter) {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<Report>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/processor/traffic.rs:169:36
[INFO] [stdout]     |
[INFO] [stdout] 169 |     fn run(&mut self, handle: &mut Pushable<Report>, i: ChainedIter) {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<Report>`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `...` range patterns are deprecated
[INFO] [stdout]    --> src/processor/traffic.rs:307:17
[INFO] [stdout]     |
[INFO] [stdout] 307 |         0xA00001...0xAFFFFF => {
[INFO] [stdout]     |                 ^^^ help: use `..=` for an inclusive range
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/processor/fisb.rs:35:36
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn run(&mut self, handle: &mut Pushable<Report>, i: ChainedIter) {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<Report>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/processor/mod.rs:40:36
[INFO] [stdout]    |
[INFO] [stdout] 40 |     fn run(&mut self, handle: &mut Pushable<Report>, i: ChainedIter);
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<Report>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/transport/udp.rs:60:36
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn run(&mut self, handle: &mut Handle, i: ChainedIter) {
[INFO] [stdout]    |                                    ^^^^^^ help: use `dyn`: `dyn Handle`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/transport/udp.rs:126:25
[INFO] [stdout]     |
[INFO] [stdout] 126 |     pub fn new() -> Box<Transport> {
[INFO] [stdout]     |                         ^^^^^^^^^ help: use `dyn`: `dyn Transport`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/transport/udp.rs:162:9
[INFO] [stdout]     |
[INFO] [stdout] 162 |         try!(file.read_to_end(&mut buf));
[INFO] [stdout]     |         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/transport/udp.rs:160:24
[INFO] [stdout]     |
[INFO] [stdout] 160 |         let mut file = try!(File::open(LEASE_FILE_PATH));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/transport/mod.rs:28:36
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn run(&mut self, handle: &mut Handle, i: ChainedIter);
[INFO] [stdout]    |                                    ^^^^^^ help: use `dyn`: `dyn Handle`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocol/gdl90.rs:64:36
[INFO] [stdout]    |
[INFO] [stdout] 64 |     fn run(&mut self, handle: &mut Pushable<Payload>, i: ChainedIter) {
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<Payload>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/protocol/gdl90.rs:408:25
[INFO] [stdout]     |
[INFO] [stdout] 408 |     pub fn new() -> Box<Protocol> {
[INFO] [stdout]     |                         ^^^^^^^^ help: use `dyn`: `dyn Protocol`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocol/websocket.rs:51:37
[INFO] [stdout]    |
[INFO] [stdout] 51 |     fn run(&mut self, _handle: &mut Pushable<Payload>, i: ChainedIter) {
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<Payload>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/protocol/mod.rs:35:36
[INFO] [stdout]    |
[INFO] [stdout] 35 |     fn run(&mut self, handle: &mut Pushable<Payload>, i: ChainedIter);
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn Pushable<Payload>`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pitot/mod.rs:30:22
[INFO] [stdout]    |
[INFO] [stdout] 30 |     sensors: Vec<Box<Sensor>>,
[INFO] [stdout]    |                      ^^^^^^ help: use `dyn`: `dyn Sensor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pitot/mod.rs:31:25
[INFO] [stdout]    |
[INFO] [stdout] 31 |     processors: Vec<Box<Processor>>,
[INFO] [stdout]    |                         ^^^^^^^^^ help: use `dyn`: `dyn Processor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pitot/mod.rs:32:24
[INFO] [stdout]    |
[INFO] [stdout] 32 |     protocols: Vec<Box<Protocol>>,
[INFO] [stdout]    |                        ^^^^^^^^ help: use `dyn`: `dyn Protocol`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pitot/mod.rs:33:25
[INFO] [stdout]    |
[INFO] [stdout] 33 |     transports: Vec<Box<Transport>>,
[INFO] [stdout]    |                         ^^^^^^^^^ help: use `dyn`: `dyn Transport`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pitot/mod.rs:58:42
[INFO] [stdout]    |
[INFO] [stdout] 58 |     pub fn link_sensor(&mut self, s: Box<Sensor>) {
[INFO] [stdout]    |                                          ^^^^^^ help: use `dyn`: `dyn Sensor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pitot/mod.rs:62:45
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn link_processor(&mut self, p: Box<Processor>) {
[INFO] [stdout]    |                                             ^^^^^^^^^ help: use `dyn`: `dyn Processor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pitot/mod.rs:66:44
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub fn link_protocol(&mut self, p: Box<Protocol>) {
[INFO] [stdout]    |                                            ^^^^^^^^ help: use `dyn`: `dyn Protocol`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/pitot/mod.rs:70:45
[INFO] [stdout]    |
[INFO] [stdout] 70 |     pub fn link_transport(&mut self, t: Box<Transport>) {
[INFO] [stdout]    |                                             ^^^^^^^^^ help: use `dyn`: `dyn Transport`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:54:83
[INFO] [stdout]    |
[INFO] [stdout] 54 | ...                   p.link_sensor(Box::new(e) as Box<Sensor>);
[INFO] [stdout]    |                                                        ^^^^^^ help: use `dyn`: `dyn Sensor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:58:85
[INFO] [stdout]    |
[INFO] [stdout] 58 | ...                   p.link_sensor(Box::new(e) as Box<Sensor>);
[INFO] [stdout]    |                                                        ^^^^^^ help: use `dyn`: `dyn Sensor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:63:70
[INFO] [stdout]    |
[INFO] [stdout] 63 |     p.link_processor(Box::new(processor::clock::Clock::new()) as Box<Processor>);
[INFO] [stdout]    |                                                                      ^^^^^^^^^ help: use `dyn`: `dyn Processor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:64:74
[INFO] [stdout]    |
[INFO] [stdout] 64 |     p.link_processor(Box::new(processor::traffic::Traffic::new()) as Box<Processor>);
[INFO] [stdout]    |                                                                          ^^^^^^^^^ help: use `dyn`: `dyn Processor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/main.rs:65:68
[INFO] [stdout]    |
[INFO] [stdout] 65 |     p.link_processor(Box::new(processor::fisb::FISB::new()) as Box<Processor>);
[INFO] [stdout]    |                                                                    ^^^^^^^^^ help: use `dyn`: `dyn Processor`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout]   --> src/sensor/gnss/fake.rs:45:8
[INFO] [stdout]    |
[INFO] [stdout] 45 |     fn new() -> Option<Box<Self>> {
[INFO] [stdout]    |        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/protocol/gdl90.rs:135:9
[INFO] [stdout]     |
[INFO] [stdout] 135 |         &buf[4..436].clone_from_slice(&e.payload);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit status: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note: "cc" "-m64" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.1.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.10.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.11.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.12.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.13.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.14.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.15.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.2.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.3.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.4.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.5.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.6.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.7.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.8.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.pitot.90599a10-cgu.9.rcgu.o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629.10lvo44694z8el9j.rcgu.o" "-Wl,--as-needed" "-L" "/opt/rustwide/target/debug/deps" "-L" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-lrtlsdr" "-ldump978" "-ldump1090" "-Wl,-Bstatic" "/opt/rustwide/target/debug/deps/libinotify-73248375a5d588c1.rlib" "/opt/rustwide/target/debug/deps/libinotify_sys-c56339ef9e285c5d.rlib" "/opt/rustwide/target/debug/deps/libbitflags-9edba51b86190379.rlib" "/opt/rustwide/target/debug/deps/libws-17f6b0f11b1244c8.rlib" "/opt/rustwide/target/debug/deps/liburl-06380d169e8252a6.rlib" "/opt/rustwide/target/debug/deps/libpercent_encoding-76122f85aad64373.rlib" "/opt/rustwide/target/debug/deps/libidna-861f73d9e96468f0.rlib" "/opt/rustwide/target/debug/deps/libunicode_normalization-9937e5bde6b792fd.rlib" "/opt/rustwide/target/debug/deps/libtinyvec-37d41940def455b4.rlib" "/opt/rustwide/target/debug/deps/libtinyvec_macros-92a1c487a2a985df.rlib" "/opt/rustwide/target/debug/deps/libunicode_bidi-afe326ebf8dbe853.rlib" "/opt/rustwide/target/debug/deps/libmatches-9cfb84f2ef24c6e0.rlib" "/opt/rustwide/target/debug/deps/libsha1-20d116fa5fbf495f.rlib" "/opt/rustwide/target/debug/deps/librand-09d71756e0b0b4c3.rlib" "/opt/rustwide/target/debug/deps/libmio_extras-8a65b1652ebb3c01.rlib" "/opt/rustwide/target/debug/deps/liblazycell-82ec22512f24c50a.rlib" "/opt/rustwide/target/debug/deps/libmio-592ba1d803fc4980.rlib" "/opt/rustwide/target/debug/deps/libslab-d8039491c225f987.rlib" "/opt/rustwide/target/debug/deps/libnet2-633757bb9ef578ac.rlib" "/opt/rustwide/target/debug/deps/libcfg_if-ffb7f11ad1437080.rlib" "/opt/rustwide/target/debug/deps/libhttparse-c567b0f61aebf2a9.rlib" "/opt/rustwide/target/debug/deps/libbytes-6c4fc6f20c07b71d.rlib" "/opt/rustwide/target/debug/deps/libiovec-f2ef797ffe2c4176.rlib" "/opt/rustwide/target/debug/deps/libbyteorder-f30fa083324a1476.rlib" "/opt/rustwide/target/debug/deps/libserde_json-18be2a2d5123b4b6.rlib" "/opt/rustwide/target/debug/deps/libryu-58d6bdbbdb00e196.rlib" "/opt/rustwide/target/debug/deps/libitoa-3af14a1bb7e125c4.rlib" "/opt/rustwide/target/debug/deps/libserde-7fdb8f204cf34bbe.rlib" "/opt/rustwide/target/debug/deps/libnom-2d94ee3bd5712ede.rlib" "/opt/rustwide/target/debug/deps/libmemchr-3e855cdf3dc1500e.rlib" "/opt/rustwide/target/debug/deps/libserial-ac20e406c95ea3c9.rlib" "/opt/rustwide/target/debug/deps/libioctl_rs-d1fa68aefc3547f4.rlib" "/opt/rustwide/target/debug/deps/libtermios-75e0527fd7a9676a.rlib" "/opt/rustwide/target/debug/deps/libchrono-185c3d047c199537.rlib" "/opt/rustwide/target/debug/deps/libnum-29c00b54fa122e11.rlib" "/opt/rustwide/target/debug/deps/libnum_iter-383ace21da403e34.rlib" "/opt/rustwide/target/debug/deps/libnum_integer-3eda5be0b7f54121.rlib" "/opt/rustwide/target/debug/deps/libnum_traits-d0a58c91d8ef5575.rlib" "/opt/rustwide/target/debug/deps/libtime-40e44ca593cdcc0c.rlib" "/opt/rustwide/target/debug/deps/libenv_logger-32df8592f4e3bb64.rlib" "/opt/rustwide/target/debug/deps/libregex-b53210b3c968af61.rlib" "/opt/rustwide/target/debug/deps/libutf8_ranges-00dd5dd0276011cb.rlib" "/opt/rustwide/target/debug/deps/libregex_syntax-ae4f23d3afb51b1c.rlib" "/opt/rustwide/target/debug/deps/libthread_local-d12c2649fc4eec99.rlib" "/opt/rustwide/target/debug/deps/libthread_id-812ae4e079262018.rlib" "/opt/rustwide/target/debug/deps/libaho_corasick-355147f961a0af61.rlib" "/opt/rustwide/target/debug/deps/libmemchr-1716e49b58537fbd.rlib" "/opt/rustwide/target/debug/deps/liblibc-d8303f359ee6d076.rlib" "/opt/rustwide/target/debug/deps/liblog-1bfa4e4f3f840233.rlib" "/opt/rustwide/target/debug/deps/liblog-18e19f5b5787b169.rlib" "/opt/rustwide/target/debug/deps/libcfg_if-0d27f345b2a6a3cd.rlib" "-Wl,--start-group" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-197d933f09d9a590.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-46a006cddfd334f0.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-5b9870310e470b38.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-260022ba8f1ab4ee.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-71377435a799394f.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-658ee5924fde57cd.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-9e8627da6bd1b94a.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd_detect-19fdaac49f59be84.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-cb00e2691ea45905.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-50f6726defae5ae1.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-2afc16311deea26e.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-bb5cb0fe086ee8cf.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-896053247b5dfd0b.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-735e1f2ac3cf23be.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-9dfb6622644c732c.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-beea7d9617fe25c5.rlib" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-8ef7dd43fc671f88.rlib" "-Wl,--end-group" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-a9a3b2ad67977f47.rlib" "-Wl,-Bdynamic" "-lc" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/opt/rustwide/rustup-home/toolchains/beta-2021-08-01-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/opt/rustwide/target/debug/deps/pitot-2903cc3c88032629" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs"
[INFO] [stdout]   = note: /usr/bin/ld: cannot find -lrtlsdr
[INFO] [stdout]           /usr/bin/ld: cannot find -ldump978
[INFO] [stdout]           /usr/bin/ld: cannot find -ldump1090
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 44 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `pitot` due to 2 previous errors; 44 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f44867e5e5a04043b2972d9d50ae06c23b079343f7adcef69d6a1d14f5a33a9b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f44867e5e5a04043b2972d9d50ae06c23b079343f7adcef69d6a1d14f5a33a9b", kill_on_drop: false }`
[INFO] [stdout] f44867e5e5a04043b2972d9d50ae06c23b079343f7adcef69d6a1d14f5a33a9b
