[INFO] fetching crate math_adapter 0.3.8... [INFO] testing math_adapter-0.3.8 against beta-2025-04-20 for beta-1.87-3 [INFO] extracting crate math_adapter 0.3.8 into /workspace/builds/worker-6-tc2/source [INFO] validating manifest of crates.io crate math_adapter 0.3.8 on toolchain beta-2025-04-20 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-04-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate math_adapter 0.3.8 [INFO] removed 3 missing examples [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate math_adapter 0.3.8 [INFO] tweaked toml for crates.io crate math_adapter 0.3.8 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate crates.io crate math_adapter 0.3.8 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-04-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a16bec5b5a1de4f0488d8fcda850da8dfcde8d6dd20db36339e3dbb963be202c [INFO] running `Command { std: "docker" "start" "-a" "a16bec5b5a1de4f0488d8fcda850da8dfcde8d6dd20db36339e3dbb963be202c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a16bec5b5a1de4f0488d8fcda850da8dfcde8d6dd20db36339e3dbb963be202c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a16bec5b5a1de4f0488d8fcda850da8dfcde8d6dd20db36339e3dbb963be202c", kill_on_drop: false }` [INFO] [stdout] a16bec5b5a1de4f0488d8fcda850da8dfcde8d6dd20db36339e3dbb963be202c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] fcdcaf3b47dade28accc251c143e8b6684891151a3189f524fec44eff10fcc4b [INFO] running `Command { std: "docker" "start" "-a" "fcdcaf3b47dade28accc251c143e8b6684891151a3189f524fec44eff10fcc4b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.40 [INFO] [stderr] Compiling quote v1.0.20 [INFO] [stderr] Compiling unicode-ident v1.0.2 [INFO] [stderr] Compiling syn v1.0.98 [INFO] [stderr] Compiling winterval v0.1.5 [INFO] [stderr] Compiling type_constructor v0.1.19 [INFO] [stderr] Compiling memchr v2.5.0 [INFO] [stderr] Compiling regex-syntax v0.6.27 [INFO] [stderr] Compiling once_cell v1.13.0 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling itertools v0.10.3 [INFO] [stderr] Compiling mod_interface_runtime v0.1.1 [INFO] [stderr] Compiling for_each v0.1.3 [INFO] [stderr] Compiling literally v0.1.3 [INFO] [stderr] Compiling former_runtime v0.1.11 [INFO] [stderr] Compiling paste v1.0.7 [INFO] [stderr] Compiling convert_case v0.5.0 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Compiling math_adapter v0.3.8 (/opt/rustwide/workdir) [INFO] [stderr] Compiling mem_tools v0.1.1 [INFO] [stderr] Compiling aho-corasick v0.7.18 [INFO] [stderr] Compiling iter_tools v0.1.4 [INFO] [stderr] Compiling regex v1.6.0 [INFO] [stderr] Compiling proc_macro_tools v0.1.17 [INFO] [stderr] Compiling structmeta-derive v0.1.5 [INFO] [stderr] Compiling clone_dyn_meta v0.1.1 [INFO] [stderr] Compiling derive_more v0.99.17 [INFO] [stderr] Compiling impls_index_meta v0.1.1 [INFO] [stderr] Compiling former_meta v0.1.12 [INFO] [stderr] Compiling impls_index v0.1.3 [INFO] [stderr] Compiling clone_dyn v0.1.0 [INFO] [stderr] Compiling former v0.1.12 [INFO] [stderr] Compiling woptions_runtime v0.1.3 [INFO] [stderr] Compiling structmeta v0.1.5 [INFO] [stderr] Compiling parse-display-derive v0.5.5 [INFO] [stderr] Compiling parse-display v0.5.5 [INFO] [stderr] Compiling derive_tools v0.1.5 [INFO] [stderr] Compiling mod_interface_meta v0.1.11 [INFO] [stderr] Compiling mod_interface v0.1.13 [INFO] [stderr] Compiling meta_tools_min v0.2.13 [INFO] [stderr] Compiling woptions_meta v0.1.3 [INFO] [stderr] Compiling woptions v0.1.3 [INFO] [stderr] Compiling meta_tools v0.2.18 [INFO] [stdout] warning: unexpected `cfg` condition value: `naglebra` [INFO] [stdout] --> rust/impl/math/math_adapter_lib.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | #[ cfg( feature = "naglebra" )] [INFO] [stdout] | ^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | help: there is a expected value with a similar name: `"nalgebra"` [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `cgmath`, `cgmath_ops`, `default`, `default_ops`, `full`, `nalgebra`, `nalgebra_ops`, `use_alloc`, `use_std`, and `winit` [INFO] [stdout] = help: consider adding `naglebra` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself [INFO] [stdout] --> rust/impl/math/abs/nan_like.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | *self == < $( $Args )* >::NAN [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | for_each_float!( impl_nan_like_for_float ); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(invalid_nan_comparisons)]` on by default [INFO] [stdout] = note: this warning originates in the macro `impl_nan_like_for_float` which comes from the expansion of the macro `for_each_float` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead [INFO] [stdout] | [INFO] [stdout] 64 - *self == < $( $Args )* >::NAN [INFO] [stdout] 64 + *self.is_nan() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself [INFO] [stdout] --> rust/impl/math/abs/nan_like.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | *self == < $( $Args )* >::NAN [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | for_each_float!( impl_nan_like_for_float ); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_nan_like_for_float` which comes from the expansion of the macro `for_each_float` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead [INFO] [stdout] | [INFO] [stdout] 64 - *self == < $( $Args )* >::NAN [INFO] [stdout] 64 + *self.is_nan() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 27.27s [INFO] running `Command { std: "docker" "inspect" "fcdcaf3b47dade28accc251c143e8b6684891151a3189f524fec44eff10fcc4b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fcdcaf3b47dade28accc251c143e8b6684891151a3189f524fec44eff10fcc4b", kill_on_drop: false }` [INFO] [stdout] fcdcaf3b47dade28accc251c143e8b6684891151a3189f524fec44eff10fcc4b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-04-20" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 6db01a87c47367265c9f53d86c8f4479aeb1abe7c6e2286e9c368de9c0c89f78 [INFO] running `Command { std: "docker" "start" "-a" "6db01a87c47367265c9f53d86c8f4479aeb1abe7c6e2286e9c368de9c0c89f78", kill_on_drop: false }` [INFO] [stderr] Compiling type_constructor v0.1.19 [INFO] [stderr] Compiling once_cell v1.13.0 [INFO] [stderr] Compiling serde v1.0.139 [INFO] [stderr] Compiling serde_derive v1.0.139 [INFO] [stderr] Compiling serde_json v1.0.82 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling trybuild v1.0.63 [INFO] [stderr] Compiling rustversion v1.0.8 [INFO] [stderr] Compiling proc_macro_tools v0.1.17 [INFO] [stderr] Compiling parse-display-derive v0.5.5 [INFO] [stderr] Compiling anyhow v1.0.58 [INFO] [stderr] Compiling pretty_assertions v1.2.1 [INFO] [stderr] Compiling inspect_type v0.1.2 [INFO] [stderr] Compiling is_slice v0.1.1 [INFO] [stderr] Compiling glob v0.3.0 [INFO] [stderr] Compiling implements v0.1.1 [INFO] [stderr] Compiling winterval v0.1.5 [INFO] [stderr] Compiling clone_dyn_meta v0.1.1 [INFO] [stderr] Compiling impls_index_meta v0.1.1 [INFO] [stderr] Compiling former_meta v0.1.12 [INFO] [stderr] Compiling dissimilar v1.0.4 [INFO] [stderr] Compiling either v1.6.1 [INFO] [stderr] Compiling clone_dyn v0.1.0 [INFO] [stderr] Compiling data_type v0.1.9 [INFO] [stderr] Compiling typing_tools v0.1.5 [INFO] [stderr] Compiling diagnostics_tools v0.1.3 [INFO] [stderr] Compiling impls_index v0.1.3 [INFO] [stderr] Compiling former v0.1.12 [INFO] [stderr] Compiling woptions_runtime v0.1.3 [INFO] [stderr] Compiling parse-display v0.5.5 [INFO] [stderr] Compiling derive_tools v0.1.5 [INFO] [stderr] Compiling mod_interface_meta v0.1.11 [INFO] [stderr] Compiling mod_interface v0.1.13 [INFO] [stderr] Compiling meta_tools_min v0.2.13 [INFO] [stderr] Compiling woptions_meta v0.1.3 [INFO] [stderr] Compiling toml v0.5.9 [INFO] [stderr] Compiling woptions v0.1.3 [INFO] [stderr] Compiling meta_tools v0.2.18 [INFO] [stderr] Compiling math_adapter v0.3.8 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition value: `naglebra` [INFO] [stdout] --> rust/impl/math/math_adapter_lib.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | #[ cfg( feature = "naglebra" )] [INFO] [stdout] | ^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | help: there is a expected value with a similar name: `"nalgebra"` [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `cgmath`, `cgmath_ops`, `default`, `default_ops`, `full`, `nalgebra`, `nalgebra_ops`, `use_alloc`, `use_std`, and `winit` [INFO] [stdout] = help: consider adding `naglebra` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself [INFO] [stdout] --> rust/impl/math/abs/nan_like.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | *self == < $( $Args )* >::NAN [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | for_each_float!( impl_nan_like_for_float ); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(invalid_nan_comparisons)]` on by default [INFO] [stdout] = note: this warning originates in the macro `impl_nan_like_for_float` which comes from the expansion of the macro `for_each_float` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead [INFO] [stdout] | [INFO] [stdout] 64 - *self == < $( $Args )* >::NAN [INFO] [stdout] 64 + *self.is_nan() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself [INFO] [stdout] --> rust/impl/math/abs/nan_like.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | *self == < $( $Args )* >::NAN [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | for_each_float!( impl_nan_like_for_float ); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_nan_like_for_float` which comes from the expansion of the macro `for_each_float` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead [INFO] [stdout] | [INFO] [stdout] 64 - *self == < $( $Args )* >::NAN [INFO] [stdout] 64 + *self.is_nan() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling wtest_basic v0.1.14 [INFO] [stderr] Compiling test_tools v0.1.5 [INFO] [stdout] warning: unexpected `cfg` condition value: `naglebra` [INFO] [stdout] --> rust/impl/math/math_adapter_lib.rs:36:11 [INFO] [stdout] | [INFO] [stdout] 36 | #[ cfg( feature = "naglebra" )] [INFO] [stdout] | ^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | help: there is a expected value with a similar name: `"nalgebra"` [INFO] [stdout] | [INFO] [stdout] = note: expected values for `feature` are: `cgmath`, `cgmath_ops`, `default`, `default_ops`, `full`, `nalgebra`, `nalgebra_ops`, `use_alloc`, `use_std`, and `winit` [INFO] [stdout] = help: consider adding `naglebra` as a feature in `Cargo.toml` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself [INFO] [stdout] --> rust/impl/math/abs/nan_like.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | *self == < $( $Args )* >::NAN [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | for_each_float!( impl_nan_like_for_float ); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(invalid_nan_comparisons)]` on by default [INFO] [stdout] = note: this warning originates in the macro `impl_nan_like_for_float` which comes from the expansion of the macro `for_each_float` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead [INFO] [stdout] | [INFO] [stdout] 64 - *self == < $( $Args )* >::NAN [INFO] [stdout] 64 + *self.is_nan() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: incorrect NaN comparison, NaN cannot be directly compared to itself [INFO] [stdout] --> rust/impl/math/abs/nan_like.rs:64:11 [INFO] [stdout] | [INFO] [stdout] 64 | *self == < $( $Args )* >::NAN [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 71 | for_each_float!( impl_nan_like_for_float ); [INFO] [stdout] | ------------------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_nan_like_for_float` which comes from the expansion of the macro `for_each_float` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: use `f32::is_nan()` or `f64::is_nan()` instead [INFO] [stdout] | [INFO] [stdout] 64 - *self == < $( $Args )* >::NAN [INFO] [stdout] 64 + *self.is_nan() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: attempted to repeat an expression containing no syntax variables matched as repeating at this depth [INFO] [stdout] --> rust/test/math/helper_test.rs:103:10 [INFO] [stdout] | [INFO] [stdout] 103 | $( $Arg : tt )* [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: attempted to repeat an expression containing no syntax variables matched as repeating at this depth [INFO] [stdout] --> rust/test/math/macro_tools_test.rs:13:10 [INFO] [stdout] | [INFO] [stdout] 13 | $( $Arg : tt )* [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: attempted to repeat an expression containing no syntax variables matched as repeating at this depth [INFO] [stdout] --> rust/test/math/macro_tools_test.rs:589:10 [INFO] [stdout] | [INFO] [stdout] 589 | $( $Arg : tt )* [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: attempted to repeat an expression containing no syntax variables matched as repeating at this depth [INFO] [stdout] --> rust/test/math/macro_tools_test.rs:846:10 [INFO] [stdout] | [INFO] [stdout] 846 | $( $Arg : tt )* [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `math_adapter` (test "math_adapter_tests") due to 4 previous errors [INFO] running `Command { std: "docker" "inspect" "6db01a87c47367265c9f53d86c8f4479aeb1abe7c6e2286e9c368de9c0c89f78", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6db01a87c47367265c9f53d86c8f4479aeb1abe7c6e2286e9c368de9c0c89f78", kill_on_drop: false }` [INFO] [stdout] 6db01a87c47367265c9f53d86c8f4479aeb1abe7c6e2286e9c368de9c0c89f78