Dec 06 14:31:43.051 INFO testing Dialock/Logic_Solver against try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468 for pr-56514 Dec 06 14:31:43.051 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56514/worker-3/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-3/pr-56514/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468-alt build --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 06 14:31:43.293 INFO [stdout] d8e1b44873becb50bbb3819bfdffa7165b4b500bd6487fbd96accee30d045774 Dec 06 14:31:43.295 INFO running `"docker" "start" "-a" "d8e1b44873becb50bbb3819bfdffa7165b4b500bd6487fbd96accee30d045774"` Dec 06 14:31:44.000 INFO [stderr] usermod: no changes Dec 06 14:31:44.144 INFO [stderr] Compiling logic_solver v0.1.0 (/source) Dec 06 14:31:45.260 INFO [stderr] warning: unused import: `std::str::*` Dec 06 14:31:45.260 INFO [stderr] --> src/main.rs:6:5 Dec 06 14:31:45.260 INFO [stderr] | Dec 06 14:31:45.261 INFO [stderr] 6 | use std::str::*; Dec 06 14:31:45.264 INFO [stderr] | ^^^^^^^^^^^ Dec 06 14:31:45.264 INFO [stderr] | Dec 06 14:31:45.264 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 06 14:31:45.264 INFO [stderr] Dec 06 14:31:45.264 INFO [stderr] warning: unused imports: `Write`, `self` Dec 06 14:31:45.264 INFO [stderr] --> src/val_inval.rs:1:15 Dec 06 14:31:45.264 INFO [stderr] | Dec 06 14:31:45.264 INFO [stderr] 1 | use std::io::{self, Write}; Dec 06 14:31:45.264 INFO [stderr] | ^^^^ ^^^^^ Dec 06 14:31:45.264 INFO [stderr] Dec 06 14:31:45.264 INFO [stderr] warning: unused import: `std::collections::LinkedList` Dec 06 14:31:45.264 INFO [stderr] --> src/val_inval.rs:2:5 Dec 06 14:31:45.264 INFO [stderr] | Dec 06 14:31:45.264 INFO [stderr] 2 | use std::collections::LinkedList; Dec 06 14:31:45.264 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:45.264 INFO [stderr] Dec 06 14:31:45.264 INFO [stderr] warning: doc comment not used by rustdoc Dec 06 14:31:45.264 INFO [stderr] --> src/main.rs:45:3 Dec 06 14:31:45.264 INFO [stderr] | Dec 06 14:31:45.264 INFO [stderr] 45 | /// Parses the user input to select solver Dec 06 14:31:45.264 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:45.264 INFO [stderr] | Dec 06 14:31:45.264 INFO [stderr] = note: #[warn(unused_doc_comments)] on by default Dec 06 14:31:45.264 INFO [stderr] Dec 06 14:31:45.422 INFO [stderr] warning: unused variable: `list` Dec 06 14:31:45.422 INFO [stderr] --> src/truth_tree.rs:20:10 Dec 06 14:31:45.422 INFO [stderr] | Dec 06 14:31:45.422 INFO [stderr] 20 | let mut list: LinkedList = LinkedList::new(); Dec 06 14:31:45.422 INFO [stderr] | ^^^^ help: consider using `_list` instead Dec 06 14:31:45.422 INFO [stderr] | Dec 06 14:31:45.422 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 06 14:31:45.422 INFO [stderr] Dec 06 14:31:45.422 INFO [stderr] warning: unused variable: `s` Dec 06 14:31:45.422 INFO [stderr] --> src/truth_table_single.rs:2:31 Dec 06 14:31:45.422 INFO [stderr] | Dec 06 14:31:45.422 INFO [stderr] 2 | pub fn run_truth_table_single(s: &str) { Dec 06 14:31:45.422 INFO [stderr] | ^ help: consider using `_s` instead Dec 06 14:31:45.422 INFO [stderr] Dec 06 14:31:45.422 INFO [stderr] warning: unused variable: `list` Dec 06 14:31:45.423 INFO [stderr] --> src/main.rs:86:10 Dec 06 14:31:45.423 INFO [stderr] | Dec 06 14:31:45.423 INFO [stderr] 86 | let mut list: LinkedList = LinkedList::new(); Dec 06 14:31:45.423 INFO [stderr] | ^^^^ help: consider using `_list` instead Dec 06 14:31:45.423 INFO [stderr] Dec 06 14:31:45.434 INFO [stderr] warning: variable does not need to be mutable Dec 06 14:31:45.434 INFO [stderr] --> src/main.rs:86:6 Dec 06 14:31:45.434 INFO [stderr] | Dec 06 14:31:45.434 INFO [stderr] 86 | let mut list: LinkedList = LinkedList::new(); Dec 06 14:31:45.434 INFO [stderr] | ----^^^^ Dec 06 14:31:45.434 INFO [stderr] | | Dec 06 14:31:45.434 INFO [stderr] | help: remove this `mut` Dec 06 14:31:45.434 INFO [stderr] | Dec 06 14:31:45.434 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 06 14:31:45.440 INFO [stderr] Dec 06 14:31:45.441 INFO [stderr] warning: variable does not need to be mutable Dec 06 14:31:45.441 INFO [stderr] --> src/truth_tree.rs:20:6 Dec 06 14:31:45.441 INFO [stderr] | Dec 06 14:31:45.441 INFO [stderr] 20 | let mut list: LinkedList = LinkedList::new(); Dec 06 14:31:45.441 INFO [stderr] | ----^^^^ Dec 06 14:31:45.441 INFO [stderr] | | Dec 06 14:31:45.441 INFO [stderr] | help: remove this `mut` Dec 06 14:31:45.441 INFO [stderr] Dec 06 14:31:45.445 INFO [stderr] warning: function is never used: `run_tree` Dec 06 14:31:45.445 INFO [stderr] --> src/truth_tree.rs:5:1 Dec 06 14:31:45.445 INFO [stderr] | Dec 06 14:31:45.445 INFO [stderr] 5 | pub fn run_tree() { Dec 06 14:31:45.445 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Dec 06 14:31:45.445 INFO [stderr] | Dec 06 14:31:45.446 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 06 14:31:45.446 INFO [stderr] Dec 06 14:31:45.446 INFO [stderr] warning: function is never used: `check_string` Dec 06 14:31:45.446 INFO [stderr] --> src/truth_tree.rs:68:1 Dec 06 14:31:45.446 INFO [stderr] | Dec 06 14:31:45.446 INFO [stderr] 68 | fn check_string(s: &str) -> bool { Dec 06 14:31:45.446 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:45.446 INFO [stderr] Dec 06 14:31:45.446 INFO [stderr] warning: function is never used: `isolate_string` Dec 06 14:31:45.446 INFO [stderr] --> src/truth_tree.rs:96:1 Dec 06 14:31:45.446 INFO [stderr] | Dec 06 14:31:45.446 INFO [stderr] 96 | fn isolate_string(s: &str) { Dec 06 14:31:45.446 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:45.446 INFO [stderr] Dec 06 14:31:45.446 INFO [stderr] warning: function is never used: `evalute_argument` Dec 06 14:31:45.446 INFO [stderr] --> src/truth_tree.rs:100:1 Dec 06 14:31:45.446 INFO [stderr] | Dec 06 14:31:45.446 INFO [stderr] 100 | fn evalute_argument(s: &str) { Dec 06 14:31:45.446 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:45.446 INFO [stderr] Dec 06 14:31:45.446 INFO [stderr] warning: function is never used: `run_val_inval` Dec 06 14:31:45.446 INFO [stderr] --> src/val_inval.rs:4:1 Dec 06 14:31:45.447 INFO [stderr] | Dec 06 14:31:45.447 INFO [stderr] 4 | pub fn run_val_inval() { Dec 06 14:31:45.447 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:45.447 INFO [stderr] Dec 06 14:31:45.447 INFO [stderr] warning: function is never used: `run_true_multi` Dec 06 14:31:45.447 INFO [stderr] --> src/truth_table_multi.rs:2:1 Dec 06 14:31:45.447 INFO [stderr] | Dec 06 14:31:45.447 INFO [stderr] 2 | pub fn run_true_multi() { Dec 06 14:31:45.447 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:45.447 INFO [stderr] Dec 06 14:31:46.776 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.74s Dec 06 14:31:46.777 INFO [stderr] su: No module specific data is present Dec 06 14:31:47.199 INFO running `"docker" "inspect" "d8e1b44873becb50bbb3819bfdffa7165b4b500bd6487fbd96accee30d045774"` Dec 06 14:31:47.358 INFO running `"docker" "rm" "-f" "d8e1b44873becb50bbb3819bfdffa7165b4b500bd6487fbd96accee30d045774"` Dec 06 14:31:47.508 INFO [stdout] d8e1b44873becb50bbb3819bfdffa7165b4b500bd6487fbd96accee30d045774 Dec 06 14:31:47.514 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56514/worker-3/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-3/pr-56514/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468-alt test --frozen --no-run" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 06 14:31:47.999 INFO [stdout] 0c46148e950d3e465697223b6f54bddbac0f6bfb0885f5c6ca24182fad78cb26 Dec 06 14:31:48.004 INFO running `"docker" "start" "-a" "0c46148e950d3e465697223b6f54bddbac0f6bfb0885f5c6ca24182fad78cb26"` Dec 06 14:31:49.392 INFO [stderr] usermod: no changes Dec 06 14:31:49.495 INFO [stderr] Compiling logic_solver v0.1.0 (/source) Dec 06 14:31:50.552 INFO [stderr] warning: unused import: `std::str::*` Dec 06 14:31:50.552 INFO [stderr] --> src/main.rs:6:5 Dec 06 14:31:50.552 INFO [stderr] | Dec 06 14:31:50.552 INFO [stderr] 6 | use std::str::*; Dec 06 14:31:50.552 INFO [stderr] | ^^^^^^^^^^^ Dec 06 14:31:50.552 INFO [stderr] | Dec 06 14:31:50.552 INFO [stderr] = note: #[warn(unused_imports)] on by default Dec 06 14:31:50.552 INFO [stderr] Dec 06 14:31:50.552 INFO [stderr] warning: unused imports: `Write`, `self` Dec 06 14:31:50.552 INFO [stderr] --> src/val_inval.rs:1:15 Dec 06 14:31:50.552 INFO [stderr] | Dec 06 14:31:50.552 INFO [stderr] 1 | use std::io::{self, Write}; Dec 06 14:31:50.552 INFO [stderr] | ^^^^ ^^^^^ Dec 06 14:31:50.552 INFO [stderr] Dec 06 14:31:50.552 INFO [stderr] warning: unused import: `std::collections::LinkedList` Dec 06 14:31:50.552 INFO [stderr] --> src/val_inval.rs:2:5 Dec 06 14:31:50.552 INFO [stderr] | Dec 06 14:31:50.552 INFO [stderr] 2 | use std::collections::LinkedList; Dec 06 14:31:50.552 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:50.552 INFO [stderr] Dec 06 14:31:50.552 INFO [stderr] warning: doc comment not used by rustdoc Dec 06 14:31:50.552 INFO [stderr] --> src/main.rs:45:3 Dec 06 14:31:50.552 INFO [stderr] | Dec 06 14:31:50.552 INFO [stderr] 45 | /// Parses the user input to select solver Dec 06 14:31:50.552 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:50.552 INFO [stderr] | Dec 06 14:31:50.552 INFO [stderr] = note: #[warn(unused_doc_comments)] on by default Dec 06 14:31:50.552 INFO [stderr] Dec 06 14:31:50.636 INFO [stderr] warning: unused variable: `list` Dec 06 14:31:50.636 INFO [stderr] --> src/truth_tree.rs:20:10 Dec 06 14:31:50.636 INFO [stderr] | Dec 06 14:31:50.636 INFO [stderr] 20 | let mut list: LinkedList = LinkedList::new(); Dec 06 14:31:50.636 INFO [stderr] | ^^^^ help: consider using `_list` instead Dec 06 14:31:50.636 INFO [stderr] | Dec 06 14:31:50.636 INFO [stderr] = note: #[warn(unused_variables)] on by default Dec 06 14:31:50.636 INFO [stderr] Dec 06 14:31:50.636 INFO [stderr] warning: unused variable: `s` Dec 06 14:31:50.636 INFO [stderr] --> src/truth_table_single.rs:2:31 Dec 06 14:31:50.636 INFO [stderr] | Dec 06 14:31:50.636 INFO [stderr] 2 | pub fn run_truth_table_single(s: &str) { Dec 06 14:31:50.636 INFO [stderr] | ^ help: consider using `_s` instead Dec 06 14:31:50.636 INFO [stderr] Dec 06 14:31:50.636 INFO [stderr] warning: unused variable: `list` Dec 06 14:31:50.636 INFO [stderr] --> src/main.rs:86:10 Dec 06 14:31:50.636 INFO [stderr] | Dec 06 14:31:50.636 INFO [stderr] 86 | let mut list: LinkedList = LinkedList::new(); Dec 06 14:31:50.636 INFO [stderr] | ^^^^ help: consider using `_list` instead Dec 06 14:31:50.636 INFO [stderr] Dec 06 14:31:50.648 INFO [stderr] warning: variable does not need to be mutable Dec 06 14:31:50.648 INFO [stderr] --> src/main.rs:86:6 Dec 06 14:31:50.648 INFO [stderr] | Dec 06 14:31:50.648 INFO [stderr] 86 | let mut list: LinkedList = LinkedList::new(); Dec 06 14:31:50.648 INFO [stderr] | ----^^^^ Dec 06 14:31:50.648 INFO [stderr] | | Dec 06 14:31:50.648 INFO [stderr] | help: remove this `mut` Dec 06 14:31:50.648 INFO [stderr] | Dec 06 14:31:50.648 INFO [stderr] = note: #[warn(unused_mut)] on by default Dec 06 14:31:50.648 INFO [stderr] Dec 06 14:31:50.658 INFO [stderr] warning: variable does not need to be mutable Dec 06 14:31:50.658 INFO [stderr] --> src/truth_tree.rs:20:6 Dec 06 14:31:50.658 INFO [stderr] | Dec 06 14:31:50.658 INFO [stderr] 20 | let mut list: LinkedList = LinkedList::new(); Dec 06 14:31:50.658 INFO [stderr] | ----^^^^ Dec 06 14:31:50.658 INFO [stderr] | | Dec 06 14:31:50.658 INFO [stderr] | help: remove this `mut` Dec 06 14:31:50.658 INFO [stderr] Dec 06 14:31:50.658 INFO [stderr] warning: function is never used: `run_tree` Dec 06 14:31:50.658 INFO [stderr] --> src/truth_tree.rs:5:1 Dec 06 14:31:50.658 INFO [stderr] | Dec 06 14:31:50.658 INFO [stderr] 5 | pub fn run_tree() { Dec 06 14:31:50.658 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Dec 06 14:31:50.658 INFO [stderr] | Dec 06 14:31:50.658 INFO [stderr] = note: #[warn(dead_code)] on by default Dec 06 14:31:50.658 INFO [stderr] Dec 06 14:31:50.658 INFO [stderr] warning: function is never used: `check_string` Dec 06 14:31:50.658 INFO [stderr] --> src/truth_tree.rs:68:1 Dec 06 14:31:50.658 INFO [stderr] | Dec 06 14:31:50.658 INFO [stderr] 68 | fn check_string(s: &str) -> bool { Dec 06 14:31:50.658 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:50.658 INFO [stderr] Dec 06 14:31:50.658 INFO [stderr] warning: function is never used: `isolate_string` Dec 06 14:31:50.658 INFO [stderr] --> src/truth_tree.rs:96:1 Dec 06 14:31:50.658 INFO [stderr] | Dec 06 14:31:50.658 INFO [stderr] 96 | fn isolate_string(s: &str) { Dec 06 14:31:50.658 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:50.658 INFO [stderr] Dec 06 14:31:50.658 INFO [stderr] warning: function is never used: `evalute_argument` Dec 06 14:31:50.658 INFO [stderr] --> src/truth_tree.rs:100:1 Dec 06 14:31:50.658 INFO [stderr] | Dec 06 14:31:50.658 INFO [stderr] 100 | fn evalute_argument(s: &str) { Dec 06 14:31:50.658 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:50.658 INFO [stderr] Dec 06 14:31:50.658 INFO [stderr] warning: function is never used: `run_val_inval` Dec 06 14:31:50.658 INFO [stderr] --> src/val_inval.rs:4:1 Dec 06 14:31:50.658 INFO [stderr] | Dec 06 14:31:50.658 INFO [stderr] 4 | pub fn run_val_inval() { Dec 06 14:31:50.658 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:50.658 INFO [stderr] Dec 06 14:31:50.658 INFO [stderr] warning: function is never used: `run_true_multi` Dec 06 14:31:50.658 INFO [stderr] --> src/truth_table_multi.rs:2:1 Dec 06 14:31:50.658 INFO [stderr] | Dec 06 14:31:50.658 INFO [stderr] 2 | pub fn run_true_multi() { Dec 06 14:31:50.658 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ Dec 06 14:31:50.658 INFO [stderr] Dec 06 14:31:51.012 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.59s Dec 06 14:31:51.016 INFO [stderr] su: No module specific data is present Dec 06 14:31:51.551 INFO running `"docker" "inspect" "0c46148e950d3e465697223b6f54bddbac0f6bfb0885f5c6ca24182fad78cb26"` Dec 06 14:31:51.682 INFO running `"docker" "rm" "-f" "0c46148e950d3e465697223b6f54bddbac0f6bfb0885f5c6ca24182fad78cb26"` Dec 06 14:31:51.760 INFO [stdout] 0c46148e950d3e465697223b6f54bddbac0f6bfb0885f5c6ca24182fad78cb26 Dec 06 14:31:51.762 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56514/worker-3/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-3/pr-56514/try#6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +6eb0fd3ac58f9b16bddb9924a17c3b6c156aa468-alt test --frozen" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Dec 06 14:31:51.925 INFO [stdout] 1b25f6c3b8d9d8663bb0d643b15bee3cf987542d3c52ab81af7534ab29c4880e Dec 06 14:31:51.926 INFO running `"docker" "start" "-a" "1b25f6c3b8d9d8663bb0d643b15bee3cf987542d3c52ab81af7534ab29c4880e"` Dec 06 14:31:52.274 INFO [stderr] usermod: no changes Dec 06 14:31:52.324 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.03s Dec 06 14:31:52.336 INFO [stderr] Running /target/debug/deps/logic_solver-f196debfe4784c16 Dec 06 14:31:52.340 INFO [stdout] Dec 06 14:31:52.340 INFO [stdout] running 0 tests Dec 06 14:31:52.340 INFO [stdout] Dec 06 14:31:52.340 INFO [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out Dec 06 14:31:52.340 INFO [stdout] Dec 06 14:31:52.342 INFO [stderr] su: No module specific data is present Dec 06 14:31:52.760 INFO running `"docker" "inspect" "1b25f6c3b8d9d8663bb0d643b15bee3cf987542d3c52ab81af7534ab29c4880e"` Dec 06 14:31:52.874 INFO running `"docker" "rm" "-f" "1b25f6c3b8d9d8663bb0d643b15bee3cf987542d3c52ab81af7534ab29c4880e"` Dec 06 14:31:52.962 INFO [stdout] 1b25f6c3b8d9d8663bb0d643b15bee3cf987542d3c52ab81af7534ab29c4880e