[INFO] fetching crate twitch-irc 1.0.0... [INFO] testing twitch-irc-1.0.0 against 1.49.0 for beta-1.50-1 [INFO] extracting crate twitch-irc 1.0.0 into /workspace/builds/worker-10/source [INFO] validating manifest of crates.io crate twitch-irc 1.0.0 on toolchain 1.49.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.49.0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate twitch-irc 1.0.0 [INFO] removed 0 missing examples [INFO] finished tweaking crates.io crate twitch-irc 1.0.0 [INFO] tweaked toml for crates.io crate twitch-irc 1.0.0 written to /workspace/builds/worker-10/source/Cargo.toml [INFO] crate crates.io crate twitch-irc 1.0.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.49.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/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" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] dddae4ab215552d267f942e1d79f57b156796e90b620e6a50790d655745eff3b [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "dddae4ab215552d267f942e1d79f57b156796e90b620e6a50790d655745eff3b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "dddae4ab215552d267f942e1d79f57b156796e90b620e6a50790d655745eff3b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dddae4ab215552d267f942e1d79f57b156796e90b620e6a50790d655745eff3b", kill_on_drop: false }` [INFO] [stdout] dddae4ab215552d267f942e1d79f57b156796e90b620e6a50790d655745eff3b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4573046acf09c3ae6c5c2e3f8ea6292bd71bd75ebd65e54fb203d5b87cf71e9c [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "4573046acf09c3ae6c5c2e3f8ea6292bd71bd75ebd65e54fb203d5b87cf71e9c", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.53 [INFO] [stderr] Compiling smallvec v1.5.1 [INFO] [stderr] Compiling openssl-sys v0.9.58 [INFO] [stderr] Compiling net2 v0.2.36 [INFO] [stderr] Compiling iovec v0.1.4 [INFO] [stderr] Compiling chrono v0.4.19 [INFO] [stderr] Compiling mio v0.6.23 [INFO] [stderr] Compiling openssl v0.10.30 [INFO] [stderr] Compiling native-tls v0.2.6 [INFO] [stderr] Compiling pin-project-internal v1.0.2 [INFO] [stderr] Compiling futures-macro v0.3.8 [INFO] [stderr] Compiling tokio-macros v0.2.6 [INFO] [stderr] Compiling thiserror-impl v1.0.22 [INFO] [stderr] Compiling enum_dispatch v0.3.4 [INFO] [stderr] Compiling async-trait v0.1.42 [INFO] [stderr] Compiling tokio v0.2.23 [INFO] [stderr] Compiling thiserror v1.0.22 [INFO] [stderr] Compiling pin-project v1.0.2 [INFO] [stderr] Compiling futures-util v0.3.8 [INFO] [stderr] Compiling tokio-native-tls v0.1.0 [INFO] [stderr] Compiling tokio-util v0.3.1 [INFO] [stderr] Compiling futures-executor v0.3.8 [INFO] [stderr] Compiling futures v0.3.8 [INFO] [stderr] Compiling twitch-irc v1.0.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 04s [INFO] running `Command { std: "docker" "inspect" "4573046acf09c3ae6c5c2e3f8ea6292bd71bd75ebd65e54fb203d5b87cf71e9c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4573046acf09c3ae6c5c2e3f8ea6292bd71bd75ebd65e54fb203d5b87cf71e9c", kill_on_drop: false }` [INFO] [stdout] 4573046acf09c3ae6c5c2e3f8ea6292bd71bd75ebd65e54fb203d5b87cf71e9c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 5b68f2a6d087f0773214adeebcef68f14460120530c0c875ae8a36e3d6fe2692 [INFO] running `Command { std: "docker" "start" "-a" "5b68f2a6d087f0773214adeebcef68f14460120530c0c875ae8a36e3d6fe2692", kill_on_drop: false }` [INFO] [stderr] Compiling env_logger v0.8.2 [INFO] [stderr] Compiling twitch-irc v1.0.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 11.47s [INFO] running `Command { std: "docker" "inspect" "5b68f2a6d087f0773214adeebcef68f14460120530c0c875ae8a36e3d6fe2692", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5b68f2a6d087f0773214adeebcef68f14460120530c0c875ae8a36e3d6fe2692", kill_on_drop: false }` [INFO] [stdout] 5b68f2a6d087f0773214adeebcef68f14460120530c0c875ae8a36e3d6fe2692 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:b8eeb62f26c39b23691079a6cb6de528d8e88b4d71a8f6b1d30f8ba7d9c16de9" "/opt/rustwide/cargo-home/bin/cargo" "+1.49.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d93491e728b1e93d1bfa7ff77e6678930d6a47f4a2ec054a14eb76353e02d58c [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "d93491e728b1e93d1bfa7ff77e6678930d6a47f4a2ec054a14eb76353e02d58c", kill_on_drop: false }` [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.16s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/twitch_irc-3c7951536bba86ce [INFO] [stdout] [INFO] [stdout] running 113 tests [INFO] [stdout] test message::commands::clearchat::tests::test_chat_clear ... ok [INFO] [stdout] test message::commands::clearchat::tests::test_permaban ... ok [INFO] [stdout] test message::commands::globaluserstate::tests::test_plain_new_user ... ok [INFO] [stdout] test message::commands::clearchat::tests::test_timeout ... ok [INFO] [stdout] test message::commands::hosttarget::tests::test_fresh_host_on ... ok [INFO] [stdout] test message::commands::ping::tests::test_with_arguments ... ok [INFO] [stdout] test message::commands::hosttarget::tests::test_host_off ... ok [INFO] [stdout] test message::commands::pong::tests::test_basic ... ok [INFO] [stdout] test message::commands::hosttarget::tests::test_host_off_no_viewer_count ... ok [INFO] [stdout] test message::commands::hosttarget::tests::test_stale_host_on ... ok [INFO] [stdout] test message::commands::join::tests::test_basic ... ok [INFO] [stdout] test message::commands::notice::tests::test_basic ... ok [INFO] [stdout] test message::commands::notice::tests::test_pre_login ... ok [INFO] [stdout] test message::commands::part::tests::test_basic ... ok [INFO] [stdout] test message::commands::ping::tests::test_basic ... ok [INFO] [stdout] test message::commands::clearmsg::tests::test_simple ... ok [INFO] [stdout] test message::commands::clearmsg::tests::test_action ... ok [INFO] [stdout] test message::commands::globaluserstate::tests::test_badges_no_color ... ok [INFO] [stdout] test message::commands::globaluserstate::tests::test_basic ... ok [INFO] [stdout] test message::commands::pong::tests::test_with_argument ... ok [INFO] [stdout] test message::commands::reconnect::tests::test_basic ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_basic_example ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_emote_index_complete_out_of_range ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_message_with_bits ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_display_name_with_middle_space ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_korean_display_name ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_emote_after_emoji ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_emote_index_beyond_out_of_range ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_action_and_badges ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_anongiftpaidupgrade_no_promo ... ok [INFO] [stdout] test message::commands::roomstate::tests::test_partial_1 ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_anongiftpaidupgrade_with_promo ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_anonsubgift ... ok [INFO] [stdout] test message::commands::roomstate::tests::test_partial_2 ... ok [INFO] [stdout] test message::commands::roomstate::tests::test_basic_full ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_anonsubmysterygift ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_display_name_with_trailing_space ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_emote_non_numeric_id ... ok [INFO] [stdout] test message::commands::roomstate::tests::test_followers_non_zero ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_extremely_incorrect_emote_index ... ok [INFO] [stdout] test message::commands::roomstate::tests::test_basic_full2 ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_incorrect_emote_index ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_bitsbadgetier ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_emotes_1 ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_giftpaidupgrade_no_promo ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_unknown ... ok [INFO] [stdout] test message::commands::userstate::tests::test_basic ... ok [INFO] [stdout] test message::commands::privmsg::tests::test_greyname_no_color ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_giftpaidupgrade_with_promo ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_submysterygift_ananonymousgifter ... ok [INFO] [stdout] test message::prefix::tests::test_display_full_1 ... ok [INFO] [stdout] test message::prefix::tests::test_display_full_2 ... ok [INFO] [stdout] test message::prefix::tests::test_display_full_3 ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_raid ... ok [INFO] [stdout] test message::prefix::tests::test_display_host_only ... ok [INFO] [stdout] test message::prefix::tests::test_display_full_4_user_without_host_invalid_edge_case ... ok [INFO] [stdout] test message::commands::whisper::tests::test_basic ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_resub ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_submysterygift ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_resub_no_share_streak ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_sneaky_action_invalid_emote_tag ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_ritual ... ok [INFO] [stdout] test message::tags::tests::test_decode_unescape_dangling_backslash_at_end ... ok [INFO] [stdout] test message::tests::test_asian_characters_display_name ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_sub ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_subgift ... ok [INFO] [stdout] test message::commands::usernotice::tests::test_subgift_ananonymousgifter ... ok [INFO] [stdout] test message::tags::tests::test_override_1 ... ok [INFO] [stdout] test message::tags::tests::test_decode_unescape_1 ... ok [INFO] [stdout] test message::tags::tests::test_parse_tag_no_value ... ok [INFO] [stdout] test message::tags::tests::test_override_2 ... ok [INFO] [stdout] test message::tests::test_complex_prefix ... ok [INFO] [stdout] test message::tests::test_empty_trailing_param_2 ... ok [INFO] [stdout] test message::tests::test_away_2 ... ok [INFO] [stdout] test message::tests::test_confusing_prefix_trailing_param ... ok [INFO] [stdout] test message::tests::test_invalid_empty_tags ... ok [INFO] [stdout] test message::tags::tests::test_decode_unescapes_dangling_backslash ... ok [INFO] [stdout] test message::tests::test_away_1 ... ok [INFO] [stdout] test message::tests::test_invalid_middle_params_too_many_spaces_after_command ... ok [INFO] [stdout] test message::tests::test_invalid_middle_params_space_after_command ... ok [INFO] [stdout] test message::tests::test_invalid_middle_params_too_many_spaces_between_params ... ok [INFO] [stdout] test message::tests::test_empty_trailing_param_1 ... ok [INFO] [stdout] test message::tests::test_invalid_nothing_after_prefix ... ok [INFO] [stdout] test message::tests::test_invalid_nothing_after_tags ... ok [INFO] [stdout] test message::tests::test_invalid_spaces_at_start_of_line ... ok [INFO] [stdout] test message::tests::test_irc_macro ... ok [INFO] [stdout] test message::tags::tests::test_decode_unescapes_all_decode_sequences ... ok [INFO] [stdout] test message::tests::test_lowercase_command ... ok [INFO] [stdout] test message::tests::test_newline_in_source ... ok [INFO] [stdout] test message::tests::test_invalid_command_1 ... ok [INFO] [stdout] test message::tests::test_ping_1 ... ok [INFO] [stdout] test message::tests::test_invalid_command_2 ... ok [INFO] [stdout] test message::tests::test_ping_2 ... ok [INFO] [stdout] test message::tests::test_invalid_empty_prefix ... ok [INFO] [stdout] test message::tests::test_invalid_middle_params_trailing_space ... ok [INFO] [stdout] test message::tests::test_pure_irc_3 ... ok [INFO] [stdout] test message::tests::test_invalid_empty_command_2 ... ok [INFO] [stdout] test message::tests::test_pure_irc_4 ... ok [INFO] [stdout] test message::tests::test_join_2 ... ok [INFO] [stdout] test message::tests::test_invalid_empty_command_1 ... ok [INFO] [stdout] test message::tests::test_join_1 ... ok [INFO] [stdout] test message::tests::test_pure_irc_8 ... ok [INFO] [stdout] test message::tests::test_stringify_pass ... ok [INFO] [stdout] test message::tests::test_privmsg ... ok [INFO] [stdout] test message::tests::test_pure_irc_1 ... ok [INFO] [stdout] test message::tests::test_pure_irc_7 ... ok [INFO] [stdout] test message::tests::test_pure_irc_6 ... ok [INFO] [stdout] test message::tests::test_vendor_tags ... ok [INFO] [stdout] test message::tests::test_invalid_command_3 ... ok [INFO] [stdout] test message::tests::test_numeric_command ... ok [INFO] [stdout] test message::tests::test_invalid_command_4 ... ok [INFO] [stdout] test message::tests::test_pure_irc_2 ... ok [INFO] [stdout] test message::tests::test_pure_irc_5 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 113 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Doc-tests twitch_irc [INFO] [stdout] [INFO] [stdout] running 14 tests [INFO] [stdout] test src/lib.rs - (line 132) ... FAILED [INFO] [stdout] test src/lib.rs - (line 87) ... ok [INFO] [stdout] test src/lib.rs - (line 12) ... ok [INFO] [stdout] test src/lib.rs - (line 62) ... ok [INFO] [stdout] test src/lib.rs - (line 115) ... ok [INFO] [stdout] test src/message/mod.rs - irc (line 116) ... ok [INFO] [stdout] test src/message/prefix.rs - message::prefix::IRCPrefix (line 33) ... ok [INFO] [stdout] test src/message/commands/mod.rs - message::commands::ServerMessage (line 436) ... ok [INFO] [stdout] test src/message/prefix.rs - message::prefix::IRCPrefix (line 46) ... ok [INFO] [stdout] test src/message/tags.rs - message::tags::IRCTags (line 53) ... ok [INFO] [stdout] test src/message/prefix.rs - message::prefix::IRCPrefix (line 20) ... ok [INFO] [stdout] test src/message/commands/usernotice.rs - message::commands::usernotice::UserNoticeEvent (line 127) ... ok [INFO] [stdout] test src/message/prefix.rs - message::prefix::IRCPrefix::parse (line 97) ... ok [INFO] [stdout] test src/message/prefix.rs - message::prefix::IRCPrefix::parse (line 86) ... ok [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- src/lib.rs - (line 132) stdout ---- [INFO] [stdout] error[E0432]: unresolved imports `twitch_irc::login::RefreshingLoginCredentials`, `twitch_irc::login::TokenStorage`, `twitch_irc::login::UserAccessToken` [INFO] [stdout] --> src/lib.rs:134:25 [INFO] [stdout] | [INFO] [stdout] 5 | use twitch_irc::login::{RefreshingLoginCredentials, TokenStorage, UserAccessToken}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^ no `UserAccessToken` in `login` [INFO] [stdout] | | | [INFO] [stdout] | | no `TokenStorage` in `login` [INFO] [stdout] | no `RefreshingLoginCredentials` in `login` [INFO] [stdout] [INFO] [stdout] error: aborting due to previous error [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0432`. [INFO] [stdout] Couldn't compile the test. [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] src/lib.rs - (line 132) [INFO] [stdout] [INFO] [stdout] test result: FAILED. 13 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass '--doc' [INFO] running `Command { std: "docker" "inspect" "d93491e728b1e93d1bfa7ff77e6678930d6a47f4a2ec054a14eb76353e02d58c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d93491e728b1e93d1bfa7ff77e6678930d6a47f4a2ec054a14eb76353e02d58c", kill_on_drop: false }` [INFO] [stdout] d93491e728b1e93d1bfa7ff77e6678930d6a47f4a2ec054a14eb76353e02d58c