[INFO] fetching crate http_desync_guardian 0.1.3...
[INFO] testing http_desync_guardian-0.1.3 against 1.75.0 for beta-1.76-1
[INFO] extracting crate http_desync_guardian 0.1.3 into /workspace/builds/worker-4-tc1/source
[INFO] validating manifest of crates.io crate http_desync_guardian 0.1.3 on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate http_desync_guardian 0.1.3
[INFO] finished tweaking crates.io crate http_desync_guardian 0.1.3
[INFO] tweaked toml for crates.io crate http_desync_guardian 0.1.3 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded snailquote v0.3.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d14d631a5d1c90eba157c82696c4aa7d096f96afaabd2472be2e9f45ff0dca60
[INFO] running `Command { std: "docker" "start" "-a" "d14d631a5d1c90eba157c82696c4aa7d096f96afaabd2472be2e9f45ff0dca60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d14d631a5d1c90eba157c82696c4aa7d096f96afaabd2472be2e9f45ff0dca60", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d14d631a5d1c90eba157c82696c4aa7d096f96afaabd2472be2e9f45ff0dca60", kill_on_drop: false }`
[INFO] [stdout] d14d631a5d1c90eba157c82696c4aa7d096f96afaabd2472be2e9f45ff0dca60
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 982df9ba19501700bfeced353df425017de3af2fa7da29855acaff1006b2d8f7
[INFO] running `Command { std: "docker" "start" "-a" "982df9ba19501700bfeced353df425017de3af2fa7da29855acaff1006b2d8f7", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling unicode-segmentation v1.10.1
[INFO] [stderr]    Compiling http_desync_guardian v0.1.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling strum v0.18.0
[INFO] [stderr]    Compiling smallvec v1.11.2
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling strum_macros v0.18.0
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicPtr::<T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> src/metrics.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 |             .compare_and_swap(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.99s
[INFO] running `Command { std: "docker" "inspect" "982df9ba19501700bfeced353df425017de3af2fa7da29855acaff1006b2d8f7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "982df9ba19501700bfeced353df425017de3af2fa7da29855acaff1006b2d8f7", kill_on_drop: false }`
[INFO] [stdout] 982df9ba19501700bfeced353df425017de3af2fa7da29855acaff1006b2d8f7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d4c3c14b0fdf5f40867d81e232256e5fe2d8355689a98029a5d2011f662fafa1
[INFO] running `Command { std: "docker" "start" "-a" "d4c3c14b0fdf5f40867d81e232256e5fe2d8355689a98029a5d2011f662fafa1", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.151
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling criterion-plot v0.4.5
[INFO] [stderr]    Compiling serde_cbor v0.11.2
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicPtr::<T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> src/metrics.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 |             .compare_and_swap(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling snailquote v0.3.1
[INFO] [stderr]    Compiling csv-core v0.1.11
[INFO] [stderr]    Compiling csv v1.3.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling criterion v0.3.6
[INFO] [stderr]    Compiling http_desync_guardian v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/http_token_utils.rs:389:9
[INFO] [stdout]     |
[INFO] [stdout] 389 | /         &[TE, CL].iter().for_each(|h| {
[INFO] [stdout] 390 | |             h.iter().for_each(|b| {
[INFO] [stdout] 391 | |                 assert_eq!(b.to_ascii_lowercase(), *b);
[INFO] [stdout] 392 | |             });
[INFO] [stdout] 393 | |         });
[INFO] [stdout]     | |__________^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 389 |         let _ = &[TE, CL].iter().for_each(|h| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/request_analyzer.rs:1456:17
[INFO] [stdout]      |
[INFO] [stdout] 1456 |                 format!("Case {}. Expected '{}' to be in '{}'", case.name, m, s)
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]      = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1456 -                 format!("Case {}. Expected '{}' to be in '{}'", case.name, m, s)
[INFO] [stdout] 1456 +                 "Case {}. Expected '{}' to be in '{}'", case.name, m, s
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 5.33s
[INFO] running `Command { std: "docker" "inspect" "d4c3c14b0fdf5f40867d81e232256e5fe2d8355689a98029a5d2011f662fafa1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d4c3c14b0fdf5f40867d81e232256e5fe2d8355689a98029a5d2011f662fafa1", kill_on_drop: false }`
[INFO] [stdout] d4c3c14b0fdf5f40867d81e232256e5fe2d8355689a98029a5d2011f662fafa1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 2858a66a59cab9760133a033b9ca8a193d0eed446fdd6884c19ae67d796b0247
[INFO] running `Command { std: "docker" "start" "-a" "2858a66a59cab9760133a033b9ca8a193d0eed446fdd6884c19ae67d796b0247", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::AtomicPtr::<T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stderr]   --> src/metrics.rs:85:14
[INFO] [stderr]    |
[INFO] [stderr] 85 |             .compare_and_swap(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `http_desync_guardian` (lib) generated 1 warning
[INFO] [stderr] warning: unused borrow that must be used
[INFO] [stderr]    --> src/http_token_utils.rs:389:9
[INFO] [stderr]     |
[INFO] [stderr] 389 | /         &[TE, CL].iter().for_each(|h| {
[INFO] [stderr] 390 | |             h.iter().for_each(|b| {
[INFO] [stderr] 391 | |                 assert_eq!(b.to_ascii_lowercase(), *b);
[INFO] [stderr] 392 | |             });
[INFO] [stderr] 393 | |         });
[INFO] [stderr]     | |__________^ the borrow produces a value
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 389 |         let _ = &[TE, CL].iter().for_each(|h| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/request_analyzer.rs:1456:17
[INFO] [stderr]      |
[INFO] [stderr] 1456 |                 format!("Case {}. Expected '{}' to be in '{}'", case.name, m, s)
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr]      = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1456 -                 format!("Case {}. Expected '{}' to be in '{}'", case.name, m, s)
[INFO] [stderr] 1456 +                 "Case {}. Expected '{}' to be in '{}'", case.name, m, s
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: `http_desync_guardian` (lib test) generated 2 warnings (run `cargo fix --lib -p http_desync_guardian --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/http_desync_guardian-ac7fd7f41c237a36)
[INFO] [stdout] 
[INFO] [stdout] running 106 tests
[INFO] [stdout] test http_token_utils::tests::test_obfuscate_value ... ok
[INFO] [stdout] test http_token_utils::tests::test_parse_num ... ok
[INFO] [stdout] test http_token_utils::tests::test_header_value ... ok
[INFO] [stdout] test http_token_utils::tests::test_arbitrary_non_utf8_bytes ... ok
[INFO] [stdout] test http_token_utils::tests::test_obfuscate_large_value ... ok
[INFO] [stdout] test http_token_utils::tests::test_same_char ... ok
[INFO] [stdout] test http_token_utils::tests::test_same_letters ... ok
[INFO] [stdout] test http_token_utils::tests::test_tchar ... ok
[INFO] [stdout] test http_token_utils::tests::test_to_ascii ... ok
[INFO] [stdout] test http_token_utils::tests::test_to_ascii_large_value ... ok
[INFO] [stdout] test http_token_utils::tests::test_trim ... ok
[INFO] [stdout] test http_token_utils::tests::test_utf8_delimiters ... ok
[INFO] [stdout] test http_token_utils::tests::test_utf8_spaces ... ok
[INFO] [stdout] test http_token_utils::tests::test_valid_te ... ok
[INFO] [stdout] test http_token_utils::tests::verify_essential_headers_lowercase ... ok
[INFO] [stdout] test http_token_utils::tests::verify_te_options_lowercase ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_empty_uri ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_empty_uri_bad_delimiters ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_line_by_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_missing_uri ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_non_compliant_request_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_non_compliant_terminator_request_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_non_missing_empty_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_non_tchar_request_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_partial ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_request_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_request_line_http_09 ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_acceptable_multiline_content_type ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_allow_multiline_content_type ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_mimic_header_severe ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_multiline_besides_content_type ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_headers ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_crafted_smuggling ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_content_type ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_mimic_header ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_lfcr ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_first_line_multiline ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_multiline_headers ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_allow_multiline_content_type_other_acceptable ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_no_header_value ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_non_tchar_request_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_field_name_tier ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_malformed_status_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_h2_not_analyzed ... ok
[INFO] [stdout] test request_analyzer::tests::test_field_value_tier ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_spaces_in_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_header_tier ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_bad_request_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_empty_header_name ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_empty_header_name_double_colon ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_empty_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_no_headers ... ok
[INFO] [stdout] test request_analyzer::tests::test_h3_not_analyzed ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_malformed_request_single_line_partial ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request_first_multiline ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request_missing_empty_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request_multiline ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_malformed_request_single_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_spaces_in_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_te_with_space ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_missing_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request_partial_header ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_print_request_insufficient_buffer_length ... ok
[INFO] [stdout] test tests::test_classification_reason_metrics_callback ... ok
[INFO] [stdout] test request_analyzer::tests::test_te_ok ... ok
[INFO] [stdout] test request_analyzer::tests::test_very_many_headers ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_analyze_request ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_analyze_raw_request ... ok
[INFO] [stdout] test request_analyzer::tests::test_very_many_headers_raw ... ok
[INFO] [stdout] test tests::test_classification_metrics_callback_required - should panic ... ok
[INFO] [stdout] test tests::test_classification_metrics_settings_required - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_print_request_parameters_invalid_buffer_length - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_print_request_parameters_null_request - should panic ... ok
[INFO] [stdout] test tests::test_invalid_header_tier ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_print_request_parameters_null_buffer - should panic ... ok
[INFO] [stdout] test tests::test_log_callback ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_method - should panic ... ok
[INFO] [stdout] test tests::test_logger_settings_required - should panic ... ok
[INFO] [stdout] test tests::test_non_compliant_header_tier ... ok
[INFO] [stdout] test tests::test_request_tier_metrics_callback ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_header_name - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_verdict - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_once_per_minute ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_header_value - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_100_per_second ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_once_per_second ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_uri - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_round_down ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_version - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_time_stamp_overflow ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_try_acquire_value ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_raw_request_null_buffer - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_twice_per_second ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_twice_per_minute ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_raw_request_null_verdict - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_raw_request_zero_buffer_size - should panic ... ok
[INFO] [stdout] test tests::test_logger_callback_required - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_request - should panic ... ok
[INFO] [stdout] test tests::test_tier_metrics_callback_required - should panic ... ok
[INFO] [stdout] test tests::test_tier_metrics_settings_required - should panic ... ok
[INFO] [stdout] test request_analyzer::tests::file_tests ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_fuzzing_input ... ok
[INFO] [stdout] test http_token_utils::tests::test_same_char_covers_all_utf8 ... ok
[INFO] [stdout] test request_analyzer::tests::test_walk_through_states ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 106 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 13.51s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests http_desync_guardian
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test src/http_token_utils.rs - http_token_utils::SP (line 34) ... ignored
[INFO] [stdout] test src/http_token_utils.rs - http_token_utils::SP (line 57) ... ignored
[INFO] [stdout] test src/http_token_utils.rs - http_token_utils::TokenSimilarity::Distant (line 119) - compile ... ok
[INFO] [stdout] test src/http_token_utils.rs - http_token_utils::TokenSimilarity::Identical (line 101) - compile ... ok
[INFO] [stdout] test src/http_token_utils.rs - http_token_utils::TokenSimilarity::SameLetters (line 110) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "2858a66a59cab9760133a033b9ca8a193d0eed446fdd6884c19ae67d796b0247", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2858a66a59cab9760133a033b9ca8a193d0eed446fdd6884c19ae67d796b0247", kill_on_drop: false }`
[INFO] [stdout] 2858a66a59cab9760133a033b9ca8a193d0eed446fdd6884c19ae67d796b0247
[INFO] testing http_desync_guardian-0.1.3 against beta-2023-12-22 for beta-1.76-1
[INFO] extracting crate http_desync_guardian 0.1.3 into /workspace/builds/worker-4-tc2/source
[INFO] validating manifest of crates.io crate http_desync_guardian 0.1.3 on toolchain beta-2023-12-22
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate http_desync_guardian 0.1.3
[INFO] finished tweaking crates.io crate http_desync_guardian 0.1.3
[INFO] tweaked toml for crates.io crate http_desync_guardian 0.1.3 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-12-22" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7357be5480a90c936c51bcbd9aecdb4ec3a71d0d4e0ea4d3212c7e22d813c7eb
[INFO] running `Command { std: "docker" "start" "-a" "7357be5480a90c936c51bcbd9aecdb4ec3a71d0d4e0ea4d3212c7e22d813c7eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7357be5480a90c936c51bcbd9aecdb4ec3a71d0d4e0ea4d3212c7e22d813c7eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7357be5480a90c936c51bcbd9aecdb4ec3a71d0d4e0ea4d3212c7e22d813c7eb", kill_on_drop: false }`
[INFO] [stdout] 7357be5480a90c936c51bcbd9aecdb4ec3a71d0d4e0ea4d3212c7e22d813c7eb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "RUSTDOCFLAGS=--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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9de8a30ceac24735a038fbc750c32d1a3037d1a698186549f4c9dfa5677d058e
[INFO] running `Command { std: "docker" "start" "-a" "9de8a30ceac24735a038fbc750c32d1a3037d1a698186549f4c9dfa5677d058e", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling unicode-segmentation v1.10.1
[INFO] [stderr]    Compiling http_desync_guardian v0.1.3 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling smallvec v1.11.2
[INFO] [stderr]    Compiling strum v0.18.0
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling strum_macros v0.18.0
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicPtr::<T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> src/metrics.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 |             .compare_and_swap(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 3.00s
[INFO] running `Command { std: "docker" "inspect" "9de8a30ceac24735a038fbc750c32d1a3037d1a698186549f4c9dfa5677d058e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9de8a30ceac24735a038fbc750c32d1a3037d1a698186549f4c9dfa5677d058e", kill_on_drop: false }`
[INFO] [stdout] 9de8a30ceac24735a038fbc750c32d1a3037d1a698186549f4c9dfa5677d058e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "RUSTDOCFLAGS=--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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 21cb7132b941555c522673391fafcbed673d87336a22df3e68f5b428f814e638
[INFO] running `Command { std: "docker" "start" "-a" "21cb7132b941555c522673391fafcbed673d87336a22df3e68f5b428f814e638", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.151
[INFO] [stderr]    Compiling memchr v2.7.1
[INFO] [stderr]    Compiling clap v2.34.0
[INFO] [stderr]    Compiling serde_cbor v0.11.2
[INFO] [stderr]    Compiling criterion-plot v0.4.5
[INFO] [stderr]    Compiling unicode_categories v0.1.1
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stdout] warning: use of deprecated method `std::sync::atomic::AtomicPtr::<T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stdout]   --> src/metrics.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 |             .compare_and_swap(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling snailquote v0.3.1
[INFO] [stderr]    Compiling csv-core v0.1.11
[INFO] [stderr]    Compiling csv v1.3.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling criterion v0.3.6
[INFO] [stderr]    Compiling http_desync_guardian v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/http_token_utils.rs:389:9
[INFO] [stdout]     |
[INFO] [stdout] 389 | /         &[TE, CL].iter().for_each(|h| {
[INFO] [stdout] 390 | |             h.iter().for_each(|b| {
[INFO] [stdout] 391 | |                 assert_eq!(b.to_ascii_lowercase(), *b);
[INFO] [stdout] 392 | |             });
[INFO] [stdout] 393 | |         });
[INFO] [stdout]     | |__________^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 389 |         let _ = &[TE, CL].iter().for_each(|h| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/request_analyzer.rs:1456:17
[INFO] [stdout]      |
[INFO] [stdout] 1456 |                 format!("Case {}. Expected '{}' to be in '{}'", case.name, m, s)
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]      = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1456 -                 format!("Case {}. Expected '{}' to be in '{}'", case.name, m, s)
[INFO] [stdout] 1456 +                 "Case {}. Expected '{}' to be in '{}'", case.name, m, s
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 7.90s
[INFO] running `Command { std: "docker" "inspect" "21cb7132b941555c522673391fafcbed673d87336a22df3e68f5b428f814e638", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "21cb7132b941555c522673391fafcbed673d87336a22df3e68f5b428f814e638", kill_on_drop: false }`
[INFO] [stdout] 21cb7132b941555c522673391fafcbed673d87336a22df3e68f5b428f814e638
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "RUSTDOCFLAGS=--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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-12-22" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 4e816922ab19e221e2bd6c962649e3bc98182ccf8c00275a5f4037a76bd581eb
[INFO] running `Command { std: "docker" "start" "-a" "4e816922ab19e221e2bd6c962649e3bc98182ccf8c00275a5f4037a76bd581eb", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated method `std::sync::atomic::AtomicPtr::<T>::compare_and_swap`: Use `compare_exchange` or `compare_exchange_weak` instead
[INFO] [stderr]   --> src/metrics.rs:85:14
[INFO] [stderr]    |
[INFO] [stderr] 85 |             .compare_and_swap(
[INFO] [stderr]    |              ^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `http_desync_guardian` (lib) generated 1 warning
[INFO] [stderr] warning: unused borrow that must be used
[INFO] [stderr]    --> src/http_token_utils.rs:389:9
[INFO] [stderr]     |
[INFO] [stderr] 389 | /         &[TE, CL].iter().for_each(|h| {
[INFO] [stderr] 390 | |             h.iter().for_each(|b| {
[INFO] [stderr] 391 | |                 assert_eq!(b.to_ascii_lowercase(), *b);
[INFO] [stderr] 392 | |             });
[INFO] [stderr] 393 | |         });
[INFO] [stderr]     | |__________^ the borrow produces a value
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 389 |         let _ = &[TE, CL].iter().for_each(|h| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/request_analyzer.rs:1456:17
[INFO] [stderr]      |
[INFO] [stderr] 1456 |                 format!("Case {}. Expected '{}' to be in '{}'", case.name, m, s)
[INFO] [stderr]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `assert!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `assert!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr]      = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1456 -                 format!("Case {}. Expected '{}' to be in '{}'", case.name, m, s)
[INFO] [stderr] 1456 +                 "Case {}. Expected '{}' to be in '{}'", case.name, m, s
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: `http_desync_guardian` (lib test) generated 2 warnings (run `cargo fix --lib -p http_desync_guardian --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/http_desync_guardian-5583cd1e42da73b9)
[INFO] [stdout] 
[INFO] [stdout] running 106 tests
[INFO] [stdout] test http_token_utils::tests::test_arbitrary_non_utf8_bytes ... ok
[INFO] [stdout] test http_token_utils::tests::test_obfuscate_value ... ok
[INFO] [stdout] test http_token_utils::tests::test_header_value ... ok
[INFO] [stdout] test http_token_utils::tests::test_obfuscate_large_value ... ok
[INFO] [stdout] test http_token_utils::tests::test_same_char ... ok
[INFO] [stdout] test http_token_utils::tests::test_parse_num ... ok
[INFO] [stdout] test http_token_utils::tests::test_same_letters ... ok
[INFO] [stdout] test http_token_utils::tests::test_tchar ... ok
[INFO] [stdout] test http_token_utils::tests::test_to_ascii ... ok
[INFO] [stdout] test http_token_utils::tests::test_to_ascii_large_value ... ok
[INFO] [stdout] test http_token_utils::tests::test_trim ... ok
[INFO] [stdout] test http_token_utils::tests::test_utf8_delimiters ... ok
[INFO] [stdout] test http_token_utils::tests::test_utf8_spaces ... ok
[INFO] [stdout] test http_token_utils::tests::test_valid_te ... ok
[INFO] [stdout] test http_token_utils::tests::verify_essential_headers_lowercase ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_empty_uri ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_empty_uri_bad_delimiters ... ok
[INFO] [stdout] test http_token_utils::tests::verify_te_options_lowercase ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_missing_uri ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_line_by_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_non_compliant_request_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_non_tchar_request_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_non_missing_empty_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_request_line_http_09 ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_partial ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_non_compliant_terminator_request_line ... ok
[INFO] [stdout] test raw_request_parser::tests::test_parse_request_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_first_line_multiline ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_allow_multiline_content_type ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_acceptable_multiline_content_type ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_headers ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_no_header_value ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_content_type ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_lfcr ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_allow_multiline_content_type_other_acceptable ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_mimic_header ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_multiline_headers ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_malformed_status_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_bad_multiline_mimic_header_severe ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_non_tchar_request_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_crafted_smuggling ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_spaces_in_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_field_name_tier ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_multiline_besides_content_type ... ok
[INFO] [stdout] test request_analyzer::tests::test_field_value_tier ... ok
[INFO] [stdout] test request_analyzer::tests::test_h2_not_analyzed ... ok
[INFO] [stdout] test request_analyzer::tests::test_h3_not_analyzed ... ok
[INFO] [stdout] test request_analyzer::tests::test_header_tier ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_bad_request_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_empty_header_name ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_empty_header_name_double_colon ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_malformed_request_single_line_partial ... ok
[INFO] [stdout] test request_analyzer::tests::test_no_headers ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_malformed_request_single_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request_missing_empty_line ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request_partial_header ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_missing_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request_first_multiline ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_request_multiline ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_empty_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_parse_spaces_in_uri ... ok
[INFO] [stdout] test request_analyzer::tests::test_te_ok ... ok
[INFO] [stdout] test request_analyzer::tests::test_te_with_space ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_print_request_insufficient_buffer_length ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_analyze_raw_request ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_analyze_request ... ok
[INFO] [stdout] test request_analyzer::tests::test_very_many_headers ... ok
[INFO] [stdout] test request_analyzer::tests::test_very_many_headers_raw ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_print_request_parameters_invalid_buffer_length - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_print_request_parameters_null_buffer - should panic ... ok
[INFO] [stdout] test tests::test_classification_metrics_callback_required - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_print_request_parameters_null_request - should panic ... ok
[INFO] [stdout] test tests::test_classification_metrics_settings_required - should panic ... ok
[INFO] [stdout] test tests::test_invalid_header_tier ... ok
[INFO] [stdout] test tests::test_log_callback ... ok
[INFO] [stdout] test tests::test_classification_reason_metrics_callback ... FAILED
[INFO] [stdout] test tests::test_logger_callback_required - should panic ... ok
[INFO] [stdout] test tests::test_non_compliant_header_tier ... ok
[INFO] [stdout] test tests::test_request_tier_metrics_callback ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_header_value - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_method - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_uri - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_verdict - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_once_per_minute ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_once_per_second ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_100_per_second ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_request - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_round_down ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_version - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_time_stamp_overflow ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_try_acquire_value ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_raw_request_null_verdict - should panic ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_raw_request_null_buffer - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_twice_per_minute ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_raw_request_zero_buffer_size - should panic ... ok
[INFO] [stdout] test ultralight_rate_limiter::tests::test_twice_per_second ... ok
[INFO] [stdout] test tests::test_http_desync_guardian_validate_request_analysis_parameters_null_header_name - should panic ... ok
[INFO] [stdout] test tests::test_logger_settings_required - should panic ... ok
[INFO] [stdout] test tests::test_tier_metrics_callback_required - should panic ... ok
[INFO] [stdout] test tests::test_tier_metrics_settings_required - should panic ... ok
[INFO] [stdout] test request_analyzer::tests::file_tests ... ok
[INFO] [stdout] test request_analyzer::tests::test_analyze_fuzzing_input ... ok
[INFO] [stdout] test http_token_utils::tests::test_same_char_covers_all_utf8 ... ok
[INFO] [stdout] test request_analyzer::tests::test_walk_through_states ... ok
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- tests::test_classification_reason_metrics_callback stdout ----
[INFO] [stdout] thread 'tests::test_classification_reason_metrics_callback' panicked at src/lib.rs:616:9:
[INFO] [stdout] assertion `left != right` failed
[INFO] [stdout]   left: 0
[INFO] [stdout]  right: 0
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55d0bc93bca6 - std::backtrace_rs::backtrace::libunwind::trace::h261606ad26a499c1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
[INFO] [stdout]    1:     0x55d0bc93bca6 - std::backtrace_rs::backtrace::trace_unsynchronized::hd183f0625477fb28
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55d0bc93bca6 - std::sys_common::backtrace::_print_fmt::hd7f8fef21b4eda67
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x55d0bc93bca6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h623d9b51f2f453f1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x55d0bc966c90 - core::fmt::rt::Argument::fmt::h9f417ac76a86f368
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/rt.rs:142:9
[INFO] [stdout]    5:     0x55d0bc966c90 - core::fmt::write::hc9b6faf4ac2aeff7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/fmt/mod.rs:1120:17
[INFO] [stdout]    6:     0x55d0bc93970f - std::io::Write::write_fmt::he04625a3a989fec3
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/io/mod.rs:1810:15
[INFO] [stdout]    7:     0x55d0bc93ba84 - std::sys_common::backtrace::_print::hd5d66399c7df88a2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x55d0bc93ba84 - std::sys_common::backtrace::print::he81ed2da642d37e5
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x55d0bc93d7f7 - std::panicking::default_hook::{{closure}}::h85773f4fa117163d
[INFO] [stdout]   10:     0x55d0bc93d4dd - std::panicking::default_hook::h6a1694a91d09b278
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:289:9
[INFO] [stdout]   11:     0x55d0bc8ce7c7 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h616ac37fa3cd6c8f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   12:     0x55d0bc8ce7c7 - test::test_main::{{closure}}::h00d84697cefdcbb6
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:138:21
[INFO] [stdout]   13:     0x55d0bc93de16 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcb3fe3b9bb537ba8
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2029:9
[INFO] [stdout]   14:     0x55d0bc93de16 - std::panicking::rust_panic_with_hook::h0a7ad96e90f7145b
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:783:13
[INFO] [stdout]   15:     0x55d0bc93db62 - std::panicking::begin_panic_handler::{{closure}}::h7919090525c6485e
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:657:13
[INFO] [stdout]   16:     0x55d0bc93c1a6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf3289479464f7dfe
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x55d0bc93d8c0 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:645:5
[INFO] [stdout]   18:     0x55d0bc820d35 - core::panicking::panic_fmt::hcc9f77c5c132af55
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x55d0bc82116b - core::panicking::assert_failed_inner::h9f13e27dd63c3a08
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:342:17
[INFO] [stdout]   20:     0x55d0bc8839be - core::panicking::assert_failed::h01d63fd1033cf3fd
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panicking.rs:297:5
[INFO] [stdout]   21:     0x55d0bc86328b - http_desync_guardian::tests::test_classification_reason_metrics_callback::h56c26a8bb8df30f9
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:616:9
[INFO] [stdout]   22:     0x55d0bc8631a7 - http_desync_guardian::tests::test_classification_reason_metrics_callback::{{closure}}::hf0186d8c67946ca1
[INFO] [stdout]                                at /opt/rustwide/workdir/src/lib.rs:604:53
[INFO] [stdout]   23:     0x55d0bc85e0d6 - core::ops::function::FnOnce::call_once::h512fe2efcfb5cc92
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55d0bc8d409f - core::ops::function::FnOnce::call_once::hd64d26f405258157
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x55d0bc8d409f - test::__rust_begin_short_backtrace::he21b0b7a6d731bf9
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:627:18
[INFO] [stdout]   26:     0x55d0bc8d2e21 - test::run_test_in_process::{{closure}}::hf5c73986d7bdfde2
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:60
[INFO] [stdout]   27:     0x55d0bc8d2e21 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h330011ad032aadc0
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x55d0bc8d2e21 - std::panicking::try::do_call::he61b0a958b795a41
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   29:     0x55d0bc8d2e21 - std::panicking::try::h7309da130f906eb7
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   30:     0x55d0bc8d2e21 - std::panic::catch_unwind::hc5c3a06fdaf0a92a
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   31:     0x55d0bc8d2e21 - test::run_test_in_process::h7e7b7c71c3324e0f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:650:27
[INFO] [stdout]   32:     0x55d0bc8d2e21 - test::run_test::{{closure}}::h1f509f28f5cf20b1
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:573:43
[INFO] [stdout]   33:     0x55d0bc89a156 - test::run_test::{{closure}}::h1754218abf443f6d
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/test/src/lib.rs:601:41
[INFO] [stdout]   34:     0x55d0bc89a156 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2ee174b9d5954948
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   35:     0x55d0bc89f1b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf60bee9c1a17ef09
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:529:17
[INFO] [stdout]   36:     0x55d0bc89f1b7 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h33d0dddec5216160
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x55d0bc89f1b7 - std::panicking::try::do_call::h144b3048b546f835
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:552:40
[INFO] [stdout]   38:     0x55d0bc89f1b7 - std::panicking::try::h978244d04646189f
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panicking.rs:516:19
[INFO] [stdout]   39:     0x55d0bc89f1b7 - std::panic::catch_unwind::hdf436369d188fe86
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/panic.rs:142:14
[INFO] [stdout]   40:     0x55d0bc89f1b7 - std::thread::Builder::spawn_unchecked_::{{closure}}::h87329cbdd33c79ec
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/thread/mod.rs:528:30
[INFO] [stdout]   41:     0x55d0bc89f1b7 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h401abbe67897d450
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x55d0bc9428c5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h5d7c8f150ab9c84c
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   43:     0x55d0bc9428c5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h570d5b005c242c15
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/alloc/src/boxed.rs:2015:9
[INFO] [stdout]   44:     0x55d0bc9428c5 - std::sys::unix::thread::Thread::new::thread_start::h36b0a20c0b2361ad
[INFO] [stdout]                                at /rustc/0e09125c6c3c2fd70d7de961bcf0e51575235fad/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   45:     0x7fcc335c5ac3 - <unknown>
[INFO] [stdout]   46:     0x7fcc33656bf4 - __clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     tests::test_classification_reason_metrics_callback
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 105 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 14.79s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "4e816922ab19e221e2bd6c962649e3bc98182ccf8c00275a5f4037a76bd581eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4e816922ab19e221e2bd6c962649e3bc98182ccf8c00275a5f4037a76bd581eb", kill_on_drop: false }`
[INFO] [stdout] 4e816922ab19e221e2bd6c962649e3bc98182ccf8c00275a5f4037a76bd581eb
