[INFO] fetching crate rust-libretro-sys 0.3.2... [INFO] checking rust-libretro-sys-0.3.2 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate rust-libretro-sys 0.3.2 into /workspace/builds/worker-0-tc2/source [INFO] validating manifest of crates.io crate rust-libretro-sys 0.3.2 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate rust-libretro-sys 0.3.2 [INFO] finished tweaking crates.io crate rust-libretro-sys 0.3.2 [INFO] tweaked toml for crates.io crate rust-libretro-sys 0.3.2 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 49 packages to latest compatible versions [INFO] [stderr] Adding ash v0.37.3+1.3.251 (available: v0.38.0+1.3.281) [INFO] [stderr] Adding bindgen v0.63.0 (available: v0.70.1) [INFO] [stderr] Adding bitflags v1.3.2 (available: v2.6.0) [INFO] [stderr] Adding libloading v0.7.4 (available: v0.8.5) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (available: v0.6.5) [INFO] [stderr] Adding peeking_take_while v0.1.2 (available: v1.0.0) [INFO] [stderr] Adding rustc-hash v1.1.0 (available: v2.0.0) [INFO] [stderr] Adding syn v1.0.109 (available: v2.0.77) [INFO] [stderr] Adding which v4.4.2 (available: v6.0.3) [INFO] [stderr] Adding windows-sys v0.52.0 (available: v0.59.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 00dc020fe41820f995ea0316ad5188ef1d0cb15b749f3407f9a6e85fad4c351e [INFO] running `Command { std: "docker" "start" "-a" "00dc020fe41820f995ea0316ad5188ef1d0cb15b749f3407f9a6e85fad4c351e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "00dc020fe41820f995ea0316ad5188ef1d0cb15b749f3407f9a6e85fad4c351e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "00dc020fe41820f995ea0316ad5188ef1d0cb15b749f3407f9a6e85fad4c351e", kill_on_drop: false }` [INFO] [stdout] 00dc020fe41820f995ea0316ad5188ef1d0cb15b749f3407f9a6e85fad4c351e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 97bae894692470c11abf9a5e52ef2a577d9f6de7ce20f185376964179033f2e9 [INFO] running `Command { std: "docker" "start" "-a" "97bae894692470c11abf9a5e52ef2a577d9f6de7ce20f185376964179033f2e9", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling libc v0.2.159 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Compiling minimal-lexical v0.2.1 [INFO] [stderr] Compiling bitflags v2.6.0 [INFO] [stderr] Compiling linux-raw-sys v0.4.14 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling libloading v0.8.5 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling home v0.5.9 [INFO] [stderr] Compiling bindgen v0.63.0 [INFO] [stderr] Compiling rustc-hash v1.1.0 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Compiling peeking_take_while v0.1.2 [INFO] [stderr] Compiling log v0.4.22 [INFO] [stderr] Compiling bitflags v1.3.2 [INFO] [stderr] Compiling lazycell v1.3.0 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Compiling rust-libretro-sys-proc v0.3.2 [INFO] [stderr] Compiling rust-libretro-sys v0.3.2 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `rust_libretro_sys` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/lib.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/lib.rs:27:6 [INFO] [stderr] | [INFO] [stderr] 27 | ($base:expr_2021, $id:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/lib.rs:27:23 [INFO] [stderr] | [INFO] [stderr] 27 | ($base:expr_2021, $id:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:176623 [INFO] [stdout] | [INFO] [stdout] 3 | ... ; extern "C" { # [doc = " Sets callbacks. retro_set_environment() is guaranteed to be called\n before retro_init().\n\n The rest of the set_* functions are guaranteed to have been called\n before the first call to retro_run() is made."] pub fn retro_set_environment (arg1 : retro_environment_t) ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:176920 [INFO] [stdout] | [INFO] [stdout] 3 | ... : retro_environment_t) ; } extern "C" { pub fn retro_set_video_refresh (arg1 : retro_video_refresh_t) ; } extern "C" { pub fn retro_s... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:176999 [INFO] [stdout] | [INFO] [stdout] 3 | ...: retro_video_refresh_t) ; } extern "C" { pub fn retro_set_audio_sample (arg1 : retro_audio_sample_t) ; } extern "C" { pub fn retro_se... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:177076 [INFO] [stdout] | [INFO] [stdout] 3 | ...ro_audio_sample_t) ; } extern "C" { pub fn retro_set_audio_sample_batch (arg1 : retro_audio_sample_batch_t) ; } extern "C" { pub fn re... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:177165 [INFO] [stdout] | [INFO] [stdout] 3 | ...etro_audio_sample_batch_t) ; } extern "C" { pub fn retro_set_input_poll (arg1 : retro_input_poll_t) ; } extern "C" { pub fn retro_set_... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:177238 [INFO] [stdout] | [INFO] [stdout] 3 | ...rg1 : retro_input_poll_t) ; } extern "C" { pub fn retro_set_input_state (arg1 : retro_input_state_t) ; } extern "C" { # [doc = " Libra... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:177313 [INFO] [stdout] | [INFO] [stdout] 3 | ...nput_state_t) ; } extern "C" { # [doc = " Library global initialization/deinitialization."] pub fn retro_init () ; } extern "C" { pub ... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:177412 [INFO] [stdout] | [INFO] [stdout] 3 | ...alization."] pub fn retro_init () ; } extern "C" { pub fn retro_deinit () ; } extern "C" { # [doc = " Must return RETRO_API_VERSION. U... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:177452 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Must return RETRO_API_VERSION. Used to validate ABI compatibility\n when the API is revised."] pub fn retro_api_version () -> :: core :: ffi :: c_uint ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:177631 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Gets statically known system info. Pointers provided in *info\n must be statically allocated.\n Can be called at any time, even before retro_init()."] pub fn retro_get_system_info (info : * mut retro_system_info) ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:177872 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Gets information about system audio/video timings and geometry.\n Can be called only after retro_load_game() has successfully completed.\n NOTE: The implementation of this function might not initialize every\n variable if needed.\n E.g. geom.aspect_ratio might not be initialized if core doesn't\n desire a particular aspect ratio."] pub fn retro_get_system_av_info (info : * mut retro_system_av_info) ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:178302 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Sets device to be used for player 'port'.\n By default, RETRO_DEVICE_JOYPAD is assumed to be plugged into all\n available ports.\n Setting a particular device type is not a guarantee that libretro cores\n will only poll input based on that particular device type. It is only a\n hint to the libretro core when a core cannot automatically detect the\n appropriate input device type on its own. It is also relevant when a\n core can change its behavior depending on device type.\n\n As part of the core's implementation of retro_set_controller_port_device,\n the core should call RETRO_ENVIRONMENT_SET_INPUT_DESCRIPTORS to notify the\n frontend if the descriptions for any controls have changed as a\n result of changing the device type."] pub fn retro_set_controller_port_device (port : :: core :: ffi :: c_uint , device : :: core :: ffi :: c_uint) ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:179178 [INFO] [stdout] | [INFO] [stdout] 3 | ...: core :: ffi :: c_uint) ; } extern "C" { # [doc = " Resets the current game."] pub fn retro_reset () ; } extern "C" { # [doc = " Runs... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:179255 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Runs the game for one video frame.\n During retro_run(), input_poll callback must be called at least once.\n\n If a frame is not rendered for reasons where a game \"dropped\" a frame,\n this still counts as a frame, and retro_run() should explicitly dupe\n a frame if GET_CAN_DUPE returns true.\n In this case, the video callback can take a NULL argument for data."] pub fn retro_run () ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:179670 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Returns the amount of data the implementation requires to serialize\n internal state (save states).\n Between calls to retro_load_game() and retro_unload_game(), the\n returned size is never allowed to be larger than a previous returned\n value, to ensure that the frontend can allocate a save state buffer once."] pub fn retro_serialize_size () -> usize ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:180053 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Serializes internal state. If failed, or size is lower than\n retro_serialize_size(), it should return false, true otherwise."] pub fn retro_serialize (data : * mut :: core :: ffi :: c_void , size : usize) -> bool ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] --> src/lib.rs:27:6 [INFO] [stdout] | [INFO] [stdout] 27 | ($base:expr_2021, $id:expr_2021) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #123742 for more information [INFO] [stdout] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] --> src/lib.rs:27:23 [INFO] [stdout] | [INFO] [stdout] 27 | ($base:expr_2021, $id:expr_2021) => { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #123742 for more information [INFO] [stdout] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0658`. [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:180295 [INFO] [stdout] | [INFO] [stdout] 3 | ...) -> bool ; } extern "C" { pub fn retro_unserialize (data : * const :: core :: ffi :: c_void , size : usize) -> bool ; } extern "C" { ... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rust-libretro-sys` (lib) due to 3 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:180402 [INFO] [stdout] | [INFO] [stdout] 3 | ...:: c_void , size : usize) -> bool ; } extern "C" { pub fn retro_cheat_reset () ; } extern "C" { pub fn retro_cheat_set (index : :: cor... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:180447 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { pub fn retro_cheat_set (index : :: core :: ffi :: c_uint , enabled : bool , code : * const :: core :: ffi :: c_char) ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:180581 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Loads a game.\n Return true to indicate successful loading and false to indicate load failure."] pub fn retro_load_game (game : * const retro_game_info) -> bool ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:180770 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Loads a \"special\" kind of game. Should not be used,\n except in extreme cases."] pub fn retro_load_game_special (game_type : :: core :: ffi :: c_uint , info : * const retro_game_info , num_info : usize) -> bool ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:181011 [INFO] [stdout] | [INFO] [stdout] 3 | ...; } extern "C" { # [doc = " Unloads the currently loaded game. Called before retro_deinit(void)."] pub fn retro_unload_game () ; } ext... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:181138 [INFO] [stdout] | [INFO] [stdout] 3 | ...d_game () ; } extern "C" { # [doc = " Gets region of game."] pub fn retro_get_region () -> :: core :: ffi :: c_uint ; } extern "C" { #... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:181244 [INFO] [stdout] | [INFO] [stdout] 3 | ... } extern "C" { # [doc = " Gets region of memory."] pub fn retro_get_memory_data (id : :: core :: ffi :: c_uint) -> * mut :: core :: ffi :: c_void ; } ex... [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> /opt/rustwide/target/debug/build/rust-libretro-sys-7d115c932665ad09/out/bindings_libretro.rs:3:181392 [INFO] [stdout] | [INFO] [stdout] 3 | ...re :: ffi :: c_void ; } extern "C" { pub fn retro_get_memory_size (id : :: core :: ffi :: c_uint) -> usize ; } [INFO] [stdout] | -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lib.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | ($base:expr, $id:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 27 | ($base:expr_2021, $id:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lib.rs:27:22 [INFO] [stdout] | [INFO] [stdout] 27 | ($base:expr, $id:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 27 | ($base:expr, $id:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 27 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: failed to migrate to next edition [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo fix --edition --allow-no-vcs --allow-dirty --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "97bae894692470c11abf9a5e52ef2a577d9f6de7ce20f185376964179033f2e9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "97bae894692470c11abf9a5e52ef2a577d9f6de7ce20f185376964179033f2e9", kill_on_drop: false }` [INFO] [stdout] 97bae894692470c11abf9a5e52ef2a577d9f6de7ce20f185376964179033f2e9