[INFO] cloning repository https://github.com/AIOSaber/aiosaber-client [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/AIOSaber/aiosaber-client" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAIOSaber%2Faiosaber-client", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAIOSaber%2Faiosaber-client'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3aa7fbd6b8f4a564ba23e99afb6653998f871d20 [INFO] checking AIOSaber/aiosaber-client against try#a7a572ce3edd6d476191fbfe92c9c1986e009b34 for pr-87190-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FAIOSaber%2Faiosaber-client" "/workspace/builds/worker-6/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/AIOSaber/aiosaber-client on toolchain a7a572ce3edd6d476191fbfe92c9c1986e009b34 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a7a572ce3edd6d476191fbfe92c9c1986e009b34" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/AIOSaber/aiosaber-client [INFO] finished tweaking git repo https://github.com/AIOSaber/aiosaber-client [INFO] tweaked toml for git repo https://github.com/AIOSaber/aiosaber-client written to /workspace/builds/worker-6/source/Cargo.toml [INFO] crate git repo https://github.com/AIOSaber/aiosaber-client already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a7a572ce3edd6d476191fbfe92c9c1986e009b34" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded powershell_script v0.2.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+a7a572ce3edd6d476191fbfe92c9c1986e009b34" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] bc26e680a55a4698f055926f49d57034d1e098144d1720ea4981df0c0101f2ed [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" "bc26e680a55a4698f055926f49d57034d1e098144d1720ea4981df0c0101f2ed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bc26e680a55a4698f055926f49d57034d1e098144d1720ea4981df0c0101f2ed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bc26e680a55a4698f055926f49d57034d1e098144d1720ea4981df0c0101f2ed", kill_on_drop: false }` [INFO] [stdout] bc26e680a55a4698f055926f49d57034d1e098144d1720ea4981df0c0101f2ed [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+a7a572ce3edd6d476191fbfe92c9c1986e009b34" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e0faf437778290204ebeaec3709ad8a137796b517e8ccee21f44596b75b5982d [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" "e0faf437778290204ebeaec3709ad8a137796b517e8ccee21f44596b75b5982d", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo. [INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously. [INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html [INFO] [stderr] When building the following dependencies, the given features will no longer be used: [INFO] [stderr] [INFO] [stderr] built v0.4.4 (as host dependency): chrono, git2, semver [INFO] [stderr] serde v1.0.127 (as host dependency): derive [INFO] [stderr] syn v1.0.74 (as host dependency): visit [INFO] [stderr] tokio v1.10.0: winapi [INFO] [stderr] [INFO] [stderr] Compiling libc v0.2.99 [INFO] [stderr] Compiling autocfg v1.0.1 [INFO] [stderr] Compiling pkg-config v0.3.19 [INFO] [stderr] Compiling serde_derive v1.0.127 [INFO] [stderr] Compiling serde v1.0.127 [INFO] [stderr] Compiling version_check v0.9.3 [INFO] [stderr] Checking bytes v1.0.1 [INFO] [stderr] Compiling proc-macro-hack v0.5.19 [INFO] [stderr] Checking scopeguard v1.1.0 [INFO] [stderr] Checking smallvec v1.6.1 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking bitflags v1.3.1 [INFO] [stderr] Checking tinyvec_macros v0.1.0 [INFO] [stderr] Checking percent-encoding v2.1.0 [INFO] [stderr] Compiling proc-macro-nested v0.1.7 [INFO] [stderr] Compiling httparse v1.4.1 [INFO] [stderr] Checking ppv-lite86 v0.2.10 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling openssl v0.10.35 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Checking base64 v0.13.0 [INFO] [stderr] Checking opaque-debug v0.3.0 [INFO] [stderr] Checking mime v0.3.16 [INFO] [stderr] Checking httpdate v1.0.1 [INFO] [stderr] Compiling serde_json v1.0.66 [INFO] [stderr] Compiling crc32fast v1.2.1 [INFO] [stderr] Checking byteorder v1.4.3 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking safemem v0.3.3 [INFO] [stderr] Compiling encoding_rs v0.8.28 [INFO] [stderr] Checking remove_dir_all v0.5.3 [INFO] [stderr] Checking lazycell v1.3.0 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Compiling curl v0.4.38 [INFO] [stderr] Checking quick-error v1.2.3 [INFO] [stderr] Checking scoped-tls v1.0.0 [INFO] [stderr] Checking linked-hash-map v0.5.4 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking instant v0.1.10 [INFO] [stderr] Checking tinyvec v1.3.1 [INFO] [stderr] Checking lock_api v0.4.4 [INFO] [stderr] Checking form_urlencoded v1.0.1 [INFO] [stderr] Checking tracing-core v0.1.18 [INFO] [stderr] Checking http v0.2.4 [INFO] [stderr] Checking input_buffer v0.4.0 [INFO] [stderr] Compiling semver v0.10.0 [INFO] [stderr] Compiling generic-array v0.14.4 [INFO] [stderr] Compiling unicase v2.6.0 [INFO] [stderr] Compiling tokio v1.10.0 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling futures-macro v0.3.16 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Compiling futures-util v0.3.16 [INFO] [stderr] Compiling indexmap v1.7.0 [INFO] [stderr] Compiling miniz_oxide v0.4.4 [INFO] [stderr] Checking log v0.4.14 [INFO] [stderr] Checking walkdir v2.3.2 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Checking twoway v0.1.8 [INFO] [stderr] Checking buf_redux v0.8.4 [INFO] [stderr] Checking futures-channel v0.3.16 [INFO] [stderr] Checking want v0.3.0 [INFO] [stderr] Checking tracing v0.1.26 [INFO] [stderr] Compiling syn v1.0.74 [INFO] [stderr] Checking regex v1.5.4 [INFO] [stderr] Checking unicode-normalization v0.1.19 [INFO] [stderr] Compiling mime_guess v2.0.3 [INFO] [stderr] Checking parking_lot_core v0.8.3 [INFO] [stderr] Checking mio v0.7.13 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking getrandom v0.2.3 [INFO] [stderr] Checking socket2 v0.4.1 [INFO] [stderr] Checking time v0.1.43 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking net2 v0.2.37 [INFO] [stderr] Checking inotify-sys v0.1.5 [INFO] [stderr] Checking atty v0.2.14 [INFO] [stderr] Checking filetime v0.2.15 [INFO] [stderr] Compiling jobserver v0.1.23 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking flate2 v1.0.20 [INFO] [stderr] Checking parking_lot v0.11.1 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Compiling paste-impl v0.1.18 [INFO] [stderr] Checking inotify v0.7.1 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking sha-1 v0.9.7 [INFO] [stderr] Compiling cc v1.0.69 [INFO] [stderr] Checking env_logger v0.8.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking http-body v0.4.3 [INFO] [stderr] Checking headers-core v0.2.0 [INFO] [stderr] Checking idna v0.2.3 [INFO] [stderr] Checking headers v0.3.4 [INFO] [stderr] Checking rand v0.8.4 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking mio-extras v2.0.6 [INFO] [stderr] Checking paste v0.1.18 [INFO] [stderr] Checking url v2.2.2 [INFO] [stderr] Checking notify v4.0.17 [INFO] [stderr] Compiling libz-sys v1.1.3 [INFO] [stderr] Compiling openssl-sys v0.9.65 [INFO] [stderr] Compiling libgit2-sys v0.12.22+1.1.0 [INFO] [stderr] Compiling bzip2-sys v0.1.11+1.0.8 [INFO] [stderr] Compiling curl-sys v0.4.45+curl-7.78.0 [INFO] [stderr] Compiling jemalloc-sys v0.3.2 [INFO] [stderr] Checking tempfile v3.2.0 [INFO] [stderr] Checking tungstenite v0.12.0 [INFO] [stderr] Checking multipart v0.17.1 [INFO] [stderr] Compiling native-tls v0.2.8 [INFO] [stderr] Checking bzip2 v0.4.3 [INFO] [stderr] Compiling tokio-macros v1.3.0 [INFO] [stderr] Compiling pin-project-internal v1.0.8 [INFO] [stderr] Compiling thiserror-impl v1.0.26 [INFO] [stderr] Checking git2 v0.13.21 [INFO] [stderr] Checking thiserror v1.0.26 [INFO] [stderr] Checking zip v0.5.13 [INFO] [stderr] Checking pin-project v1.0.8 [INFO] [stderr] Checking futures v0.3.16 [INFO] [stderr] Checking tokio-util v0.6.7 [INFO] [stderr] Checking tokio-native-tls v0.3.0 [INFO] [stderr] Checking tokio-stream v0.1.7 [INFO] [stderr] Checking tokio-tungstenite v0.13.0 [INFO] [stderr] Checking h2 v0.3.3 [INFO] [stderr] Checking serde_urlencoded v0.7.0 [INFO] [stderr] Checking toml v0.5.8 [INFO] [stderr] Checking semver v0.9.0 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking uuid v0.8.2 [INFO] [stderr] Checking cargo-lock v4.0.1 [INFO] [stderr] Checking built v0.4.4 [INFO] [stderr] Checking hyper v0.14.11 [INFO] [stderr] Compiling aiosaber-client v0.0.1 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2018 edition to 2021 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking warp v0.3.1 [INFO] [stderr] Checking reqwest v0.11.4 [INFO] [stderr] Checking jemallocator v0.3.2 [INFO] [stderr] Checking jemalloc-ctl v0.3.3 [INFO] [stderr] Migrating src/main.rs from 2018 edition to 2021 [INFO] [stdout] error: environment variable `CLIENT_VERSION` not defined [INFO] [stdout] --> src/main.rs:184:19 [INFO] [stdout] | [INFO] [stdout] 184 | let version = env!("CLIENT_VERSION").to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `env` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: changes to closure capture in Rust 2021 will affect drop order [INFO] [stdout] --> src/webserver.rs:31:50 [INFO] [stdout] | [INFO] [stdout] 31 | let web_server = tokio::spawn(async move { [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 32 | | let cors = warp::cors() [INFO] [stdout] 33 | | .allow_methods(vec!["GET", "POST"]) [INFO] [stdout] 34 | | .allow_origins(vec!["https://beatsaver.com", "https://scoresaber.com"]); [INFO] [stdout] ... | [INFO] [stdout] 51 | | let version = self.version.clone(); [INFO] [stdout] | | ------------ in Rust 2018, this closure captures all of `self`, but in Rust 2021, it will only capture `self.version` [INFO] [stdout] ... | [INFO] [stdout] 79 | | .await; [INFO] [stdout] 80 | | }); [INFO] [stdout] | |_________^ [INFO] [stdout] 81 | (web_server, handler) [INFO] [stdout] 82 | } [INFO] [stdout] | - in Rust 2018, `self` is dropped here, but in Rust 2021, only `self.version` will be dropped here as part of the closure [INFO] [stdout] | [INFO] [stdout] = note: `--force-warn rust-2021-incompatible-closure-captures` implied by `--force-warn rust-2021-compatibility` [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a dummy let to cause `self` to be fully captured [INFO] [stdout] | [INFO] [stdout] 31 ~ let web_server = tokio::spawn(async move { [INFO] [stdout] 32 + let _ = &self; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: changes to closure capture in Rust 2021 will affect drop order [INFO] [stdout] --> src/queue_handler.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | tokio::spawn(async move { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 43 | | match receiver.await { [INFO] [stdout] 44 | | Ok(result) => { [INFO] [stdout] 45 | | match result { [INFO] [stdout] ... | [INFO] [stdout] 50 | | data: ResultMessageData::MapInstallSuccess(config.id, map.id, version.hash), [INFO] [stdout] | | --------- in Rust 2018, this closure captures all of `config`, but in Rust 2021, it will only capture `config.id` [INFO] [stdout] ... | [INFO] [stdout] 68 | | } [INFO] [stdout] 69 | | }) [INFO] [stdout] | |_________^ [INFO] [stdout] 70 | } [INFO] [stdout] | - in Rust 2018, `config` is dropped here, but in Rust 2021, only `config.id` will be dropped here as part of the closure [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a dummy let to cause `config` to be fully captured [INFO] [stdout] | [INFO] [stdout] 42 ~ tokio::spawn(async move { [INFO] [stdout] 43 + let _ = &config; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to previous error; 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `aiosaber-client` due to 2 previous errors; 2 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: environment variable `CLIENT_VERSION` not defined [INFO] [stdout] --> src/main.rs:184:19 [INFO] [stdout] | [INFO] [stdout] 184 | let version = env!("CLIENT_VERSION").to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `env` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: changes to closure capture in Rust 2021 will affect drop order [INFO] [stdout] --> src/webserver.rs:31:50 [INFO] [stdout] | [INFO] [stdout] 31 | let web_server = tokio::spawn(async move { [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 32 | | let cors = warp::cors() [INFO] [stdout] 33 | | .allow_methods(vec!["GET", "POST"]) [INFO] [stdout] 34 | | .allow_origins(vec!["https://beatsaver.com", "https://scoresaber.com"]); [INFO] [stdout] ... | [INFO] [stdout] 51 | | let version = self.version.clone(); [INFO] [stdout] | | ------------ in Rust 2018, this closure captures all of `self`, but in Rust 2021, it will only capture `self.version` [INFO] [stdout] ... | [INFO] [stdout] 79 | | .await; [INFO] [stdout] 80 | | }); [INFO] [stdout] | |_________^ [INFO] [stdout] 81 | (web_server, handler) [INFO] [stdout] 82 | } [INFO] [stdout] | - in Rust 2018, `self` is dropped here, but in Rust 2021, only `self.version` will be dropped here as part of the closure [INFO] [stdout] | [INFO] [stdout] = note: `--force-warn rust-2021-incompatible-closure-captures` implied by `--force-warn rust-2021-compatibility` [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a dummy let to cause `self` to be fully captured [INFO] [stdout] | [INFO] [stdout] 31 ~ let web_server = tokio::spawn(async move { [INFO] [stdout] 32 + let _ = &self; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: changes to closure capture in Rust 2021 will affect drop order [INFO] [stdout] --> src/queue_handler.rs:42:33 [INFO] [stdout] | [INFO] [stdout] 42 | tokio::spawn(async move { [INFO] [stdout] | _________________________________^ [INFO] [stdout] 43 | | match receiver.await { [INFO] [stdout] 44 | | Ok(result) => { [INFO] [stdout] 45 | | match result { [INFO] [stdout] ... | [INFO] [stdout] 50 | | data: ResultMessageData::MapInstallSuccess(config.id, map.id, version.hash), [INFO] [stdout] | | --------- in Rust 2018, this closure captures all of `config`, but in Rust 2021, it will only capture `config.id` [INFO] [stdout] ... | [INFO] [stdout] 68 | | } [INFO] [stdout] 69 | | }) [INFO] [stdout] | |_________^ [INFO] [stdout] 70 | } [INFO] [stdout] | - in Rust 2018, `config` is dropped here, but in Rust 2021, only `config.id` will be dropped here as part of the closure [INFO] [stdout] | [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: add a dummy let to cause `config` to be fully captured [INFO] [stdout] | [INFO] [stdout] 42 ~ tokio::spawn(async move { [INFO] [stdout] 43 + let _ = &config; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to previous error; 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: build failed [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" "e0faf437778290204ebeaec3709ad8a137796b517e8ccee21f44596b75b5982d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e0faf437778290204ebeaec3709ad8a137796b517e8ccee21f44596b75b5982d", kill_on_drop: false }` [INFO] [stdout] e0faf437778290204ebeaec3709ad8a137796b517e8ccee21f44596b75b5982d