[INFO] fetching crate torsh-cluster 0.1.0-alpha.1...
[INFO] checking torsh-cluster-0.1.0-alpha.1 against master#8b6b15b877fbceb1ee5d9a5a4746e7515901574a for pr-147294
[INFO] extracting crate torsh-cluster 0.1.0-alpha.1 into /workspace/builds/worker-2-tc1/source
[INFO] started tweaking crates.io crate torsh-cluster 0.1.0-alpha.1
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate torsh-cluster 0.1.0-alpha.1
[INFO] tweaked toml for crates.io crate torsh-cluster 0.1.0-alpha.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate torsh-cluster 0.1.0-alpha.1 on toolchain 8b6b15b877fbceb1ee5d9a5a4746e7515901574a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+8b6b15b877fbceb1ee5d9a5a4746e7515901574a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate torsh-cluster 0.1.0-alpha.1 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" "+8b6b15b877fbceb1ee5d9a5a4746e7515901574a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cached_proc_macro_types v0.1.1
[INFO] [stderr]   Downloaded cached_proc_macro v0.25.0
[INFO] [stderr]   Downloaded special v0.11.4
[INFO] [stderr]   Downloaded lambert_w v1.2.28
[INFO] [stderr]   Downloaded cached v0.56.0
[INFO] [stderr]   Downloaded scirs2-autograd v0.1.0-beta.3
[INFO] [stderr]   Downloaded numrs2 v0.1.0-beta.2
[INFO] [stderr]   Downloaded scirs2-core v0.1.0-beta.3
[INFO] [stderr]   Downloaded scirs2-spatial v0.1.0-beta.3
[INFO] [stderr]   Downloaded scirs2-neural v0.1.0-beta.3
[INFO] [stderr]   Downloaded scirs2-stats v0.1.0-beta.3
[INFO] [stderr]   Downloaded scirs2-cluster v0.1.0-beta.3
[INFO] [stderr]   Downloaded scirs2-linalg v0.1.0-beta.3
[INFO] [stderr]   Downloaded scirs2 v0.1.0-beta.3
[INFO] [stderr]   Downloaded torsh-tensor v0.1.0-alpha.1
[INFO] [stderr]   Downloaded torsh-core v0.1.0-alpha.1
[INFO] [stderr]   Downloaded scirs2-metrics v0.1.0-beta.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+8b6b15b877fbceb1ee5d9a5a4746e7515901574a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c9a34eec359ccbf2b94eb5fb3160784adfc3037d7fc1663ce4ae09d19c9bb21f
[INFO] running `Command { std: "docker" "start" "-a" "c9a34eec359ccbf2b94eb5fb3160784adfc3037d7fc1663ce4ae09d19c9bb21f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c9a34eec359ccbf2b94eb5fb3160784adfc3037d7fc1663ce4ae09d19c9bb21f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c9a34eec359ccbf2b94eb5fb3160784adfc3037d7fc1663ce4ae09d19c9bb21f", kill_on_drop: false }`
[INFO] [stdout] c9a34eec359ccbf2b94eb5fb3160784adfc3037d7fc1663ce4ae09d19c9bb21f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+8b6b15b877fbceb1ee5d9a5a4746e7515901574a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 11c85c095c4f4dd3336ad66b67e64e533f324b2e67477a1f4a74a222da169c68
[INFO] running `Command { std: "docker" "start" "-a" "11c85c095c4f4dd3336ad66b67e64e533f324b2e67477a1f4a74a222da169c68", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling jobserver v0.1.33
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]    Compiling rustix v1.0.7
[INFO] [stderr]    Compiling rustls-pki-types v1.12.0
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]    Compiling linux-raw-sys v0.9.4
[INFO] [stderr]    Compiling serde_derive v1.0.225
[INFO] [stderr]    Compiling thiserror-impl v2.0.16
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling ureq-proto v0.5.2
[INFO] [stderr]     Checking num-bigint v0.4.6
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling filetime v0.2.26
[INFO] [stderr]    Compiling crc32fast v1.4.2
[INFO] [stderr]     Checking safe_arch v0.7.4
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking regex-automata v0.4.11
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling darling_core v0.20.11
[INFO] [stderr]    Compiling katexit v0.1.5
[INFO] [stderr]    Compiling flate2 v1.1.2
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking wide v0.7.33
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]     Checking lapack-sys v0.14.0
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling webpki-root-certs v1.0.2
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking crossbeam-queue v0.3.12
[INFO] [stderr]     Checking cached_proc_macro_types v0.1.1
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling prettyplease v0.2.35
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling libloading v0.8.8
[INFO] [stderr]    Compiling lambert_w v1.2.28
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]    Compiling thiserror v2.0.16
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]     Checking rand_distr v0.5.1
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]     Checking toml_parser v1.0.3
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking serde_spanned v1.0.2
[INFO] [stderr]     Checking toml_datetime v0.7.2
[INFO] [stderr]     Checking toml_writer v1.0.3
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking regex v1.11.3
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]     Checking bumpalo v3.18.1
[INFO] [stderr]     Checking toml v0.9.7
[INFO] [stderr]    Compiling darling_macro v0.20.11
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling scirs2-neural v0.1.0-beta.3
[INFO] [stderr]    Compiling openssl-sys v0.9.109
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]     Checking libbz2-rs-sys v0.2.2
[INFO] [stderr]    Compiling xattr v1.5.1
[INFO] [stderr]    Compiling darling v0.20.11
[INFO] [stderr]     Checking time v0.3.41
[INFO] [stderr]    Compiling tar v0.4.44
[INFO] [stderr]    Compiling cached_proc_macro v0.25.0
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]     Checking bzip2 v0.6.0
[INFO] [stderr]     Checking zopfli v0.8.2
[INFO] [stderr]     Checking lzma-rust2 v0.13.0
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking sha1 v0.10.6
[INFO] [stderr]    Compiling openssl v0.10.73
[INFO] [stderr]    Compiling native-tls v0.2.14
[INFO] [stderr]     Checking memmap2 v0.9.8
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]     Checking deflate64 v0.1.9
[INFO] [stderr]     Checking iter-read v1.1.0
[INFO] [stderr]     Checking ppmd-rust v1.2.1
[INFO] [stderr]     Checking env_logger v0.8.4
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking rand_pcg v0.9.0
[INFO] [stderr]     Checking quickcheck v1.0.3
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling scirs2-cluster v0.1.0-beta.3
[INFO] [stderr]    Compiling scirs2-metrics v0.1.0-beta.3
[INFO] [stderr]    Compiling torsh-tensor v0.1.0-alpha.1
[INFO] [stderr]     Checking cached v0.56.0
[INFO] [stderr]     Checking clap_builder v4.5.40
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking serde v1.0.225
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking chrono v0.4.42
[INFO] [stderr]     Checking uuid v1.18.1
[INFO] [stderr]     Checking bincode v2.0.1
[INFO] [stderr]     Checking half v2.6.0
[INFO] [stderr]     Checking serde-pickle v1.2.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]     Checking tokio v1.47.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking simba v0.9.0
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking cauchy v0.4.0
[INFO] [stderr]     Checking num v0.4.3
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking special v0.11.4
[INFO] [stderr]     Checking clap v4.5.40
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]    Compiling ureq v3.1.2
[INFO] [stderr]    Compiling openblas-build v0.10.13
[INFO] [stderr]     Checking ndarray-rand v0.15.0
[INFO] [stderr]    Compiling openblas-src v0.10.13
[INFO] [stderr]     Checking lax v0.17.0
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking zip v5.1.1
[INFO] [stderr]     Checking ndarray-linalg v0.17.0
[INFO] [stderr]     Checking nalgebra v0.33.2
[INFO] [stderr]     Checking nalgebra v0.34.1
[INFO] [stderr]    Compiling qhull-sys v0.4.0
[INFO] [stderr]     Checking qhull v0.4.0
[INFO] [stderr]     Checking statrs v0.18.0
[INFO] [stderr]     Checking numrs2 v0.1.0-beta.2
[INFO] [stderr]     Checking scirs2-core v0.1.0-beta.3
[INFO] [stderr]     Checking scirs2-linalg v0.1.0-beta.3
[INFO] [stderr]     Checking scirs2-autograd v0.1.0-beta.3
[INFO] [stderr]     Checking scirs2-spatial v0.1.0-beta.3
[INFO] [stderr]     Checking scirs2 v0.1.0-beta.3
[INFO] [stderr]     Checking scirs2-stats v0.1.0-beta.3
[INFO] [stderr]     Checking torsh-core v0.1.0-alpha.1
[INFO] [stderr]     Checking torsh-cluster v0.1.0-alpha.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `approx::assert_relative_eq`
[INFO] [stdout]    --> src/algorithms/dbscan.rs:913:9
[INFO] [stdout]     |
[INFO] [stdout] 913 |     use approx::assert_relative_eq;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W unused-imports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scirs2_core::random::Random`
[INFO] [stdout]   --> src/algorithms/gaussian_mixture.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use scirs2_core::random::Random;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx::assert_relative_eq`
[INFO] [stdout]    --> src/algorithms/incremental.rs:565:9
[INFO] [stdout]     |
[INFO] [stdout] 565 |     use approx::assert_relative_eq;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `approx::assert_relative_eq`
[INFO] [stdout]    --> src/evaluation/metrics/gap_statistic.rs:368:9
[INFO] [stdout]     |
[INFO] [stdout] 368 |     use approx::assert_relative_eq;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `scirs2_core::random::Random`
[INFO] [stdout]   --> src/algorithms/gaussian_mixture.rs:28:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | use scirs2_core::random::Random;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W unused-imports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/algorithms/gaussian_mixture.rs:491:27
[INFO] [stdout]     |
[INFO] [stdout] 491 |             let idx = rng.gen_range(0..n_samples);
[INFO] [stdout]     |                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen_range`: Renamed to `random_range`
[INFO] [stdout]    --> src/algorithms/gaussian_mixture.rs:491:27
[INFO] [stdout]     |
[INFO] [stdout] 491 |             let idx = rng.gen_range(0..n_samples);
[INFO] [stdout]     |                           ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/algorithms/dbscan.rs:1114:13
[INFO] [stdout]      |
[INFO] [stdout] 1114 |         let data = Tensor::from_vec(vec![0.0, 0.0, 1.0, 1.0], &[2, 2])?;
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout]      |
[INFO] [stdout]      = note: requested on the command line with `-W unused-variables`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `data`
[INFO] [stdout]     --> src/algorithms/dbscan.rs:1189:13
[INFO] [stdout]      |
[INFO] [stdout] 1189 |         let data = Tensor::from_vec(vec![0.0, 0.0, 1.0, 1.0], &[2, 2])?;
[INFO] [stdout]      |             ^^^^ help: if this is intentional, prefix it with an underscore: `_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `initial_drift`
[INFO] [stdout]    --> src/algorithms/incremental.rs:615:13
[INFO] [stdout]     |
[INFO] [stdout] 615 |         let initial_drift = online_kmeans.detect_drift();
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_initial_drift`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]     --> src/algorithms/dbscan.rs:1182:17
[INFO] [stdout]      |
[INFO] [stdout] 1182 |         assert!(result.n_clusters() >= 0);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> examples/image_segmentation.rs:169:50
[INFO] [stdout]     |
[INFO] [stdout] 169 | fn simulate_segment_compactness(segment_id: i32, info: &ImageInfo) -> f32 {
[INFO] [stdout]     |                                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W unused-variables`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:292:47
[INFO] [stdout]     |
[INFO] [stdout] 292 |                 let age = 25.0 + thread_rng().gen::<f32>() * 10.0;
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:293:50
[INFO] [stdout]     |
[INFO] [stdout] 293 |                 let income = 45.0 + thread_rng().gen::<f32>() * 20.0;
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:294:52
[INFO] [stdout]     |
[INFO] [stdout] 294 |                 let spending = 60.0 + thread_rng().gen::<f32>() * 30.0;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:295:48
[INFO] [stdout]     |
[INFO] [stdout] 295 |                 let years = 1.0 + thread_rng().gen::<f32>() * 3.0;
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:296:52
[INFO] [stdout]     |
[INFO] [stdout] 296 |                 let purchases = 5.0 + thread_rng().gen::<f32>() * 10.0;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:297:44
[INFO] [stdout]     |
[INFO] [stdout] 297 |                 let tickets = thread_rng().gen::<f32>() * 2.0;
[INFO] [stdout]     |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:302:47
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 let age = 35.0 + thread_rng().gen::<f32>() * 15.0;
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:303:50
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 let income = 60.0 + thread_rng().gen::<f32>() * 40.0;
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:304:52
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 let spending = 40.0 + thread_rng().gen::<f32>() * 40.0;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:305:48
[INFO] [stdout]     |
[INFO] [stdout] 305 |                 let years = 3.0 + thread_rng().gen::<f32>() * 7.0;
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:306:52
[INFO] [stdout]     |
[INFO] [stdout] 306 |                 let purchases = 8.0 + thread_rng().gen::<f32>() * 12.0;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:307:50
[INFO] [stdout]     |
[INFO] [stdout] 307 |                 let tickets = 1.0 + thread_rng().gen::<f32>() * 3.0;
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:312:47
[INFO] [stdout]     |
[INFO] [stdout] 312 |                 let age = 40.0 + thread_rng().gen::<f32>() * 20.0;
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:313:50
[INFO] [stdout]     |
[INFO] [stdout] 313 |                 let income = 80.0 + thread_rng().gen::<f32>() * 50.0;
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:314:52
[INFO] [stdout]     |
[INFO] [stdout] 314 |                 let spending = 70.0 + thread_rng().gen::<f32>() * 25.0;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:315:48
[INFO] [stdout]     |
[INFO] [stdout] 315 |                 let years = 5.0 + thread_rng().gen::<f32>() * 10.0;
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:316:53
[INFO] [stdout]     |
[INFO] [stdout] 316 |                 let purchases = 15.0 + thread_rng().gen::<f32>() * 15.0;
[INFO] [stdout]     |                                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:317:50
[INFO] [stdout]     |
[INFO] [stdout] 317 |                 let tickets = 0.5 + thread_rng().gen::<f32>() * 2.0;
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:322:47
[INFO] [stdout]     |
[INFO] [stdout] 322 |                 let age = 30.0 + thread_rng().gen::<f32>() * 25.0;
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:323:50
[INFO] [stdout]     |
[INFO] [stdout] 323 |                 let income = 30.0 + thread_rng().gen::<f32>() * 25.0;
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:324:52
[INFO] [stdout]     |
[INFO] [stdout] 324 |                 let spending = 20.0 + thread_rng().gen::<f32>() * 30.0;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:325:48
[INFO] [stdout]     |
[INFO] [stdout] 325 |                 let years = 2.0 + thread_rng().gen::<f32>() * 8.0;
[INFO] [stdout]     |                                                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:326:52
[INFO] [stdout]     |
[INFO] [stdout] 326 |                 let purchases = 2.0 + thread_rng().gen::<f32>() * 6.0;
[INFO] [stdout]     |                                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:327:50
[INFO] [stdout]     |
[INFO] [stdout] 327 |                 let tickets = 2.0 + thread_rng().gen::<f32>() * 4.0;
[INFO] [stdout]     |                                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:425:36
[INFO] [stdout]     |
[INFO] [stdout] 425 |         0 => 5000.0 + thread_rng().gen::<f64>() * 3000.0, // Young professionals
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:426:36
[INFO] [stdout]     |
[INFO] [stdout] 426 |         1 => 8000.0 + thread_rng().gen::<f64>() * 4000.0, // Established families
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:427:37
[INFO] [stdout]     |
[INFO] [stdout] 427 |         2 => 15000.0 + thread_rng().gen::<f64>() * 8000.0, // High-value
[INFO] [stdout]     |                                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:428:36
[INFO] [stdout]     |
[INFO] [stdout] 428 |         _ => 3000.0 + thread_rng().gen::<f64>() * 2000.0, // Budget-conscious
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:435:34
[INFO] [stdout]     |
[INFO] [stdout] 435 |         0 => 0.15 + thread_rng().gen::<f64>() * 0.1, // Young professionals - moderate churn
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:436:34
[INFO] [stdout]     |
[INFO] [stdout] 436 |         1 => 0.05 + thread_rng().gen::<f64>() * 0.05, // Established families - low churn
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> examples/comprehensive_clustering_demo.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: requested on the command line with `-W unused-imports`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:437:34
[INFO] [stdout]     |
[INFO] [stdout] 437 |         2 => 0.03 + thread_rng().gen::<f64>() * 0.03, // High-value - very low churn
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:438:34
[INFO] [stdout]     |
[INFO] [stdout] 438 |         _ => 0.25 + thread_rng().gen::<f64>() * 0.15, // Budget-conscious - high churn
[INFO] [stdout]     |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:445:33
[INFO] [stdout]     |
[INFO] [stdout] 445 |         0 => 3.5 + thread_rng().gen::<f64>() * 1.0, // Young professionals - good engagement
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:446:33
[INFO] [stdout]     |
[INFO] [stdout] 446 |         1 => 3.0 + thread_rng().gen::<f64>() * 1.0, // Established families - moderate engagement
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:447:33
[INFO] [stdout]     |
[INFO] [stdout] 447 |         2 => 4.0 + thread_rng().gen::<f64>() * 0.8, // High-value - high engagement
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:448:33
[INFO] [stdout]     |
[INFO] [stdout] 448 |         _ => 2.5 + thread_rng().gen::<f64>() * 1.0, // Budget-conscious - lower engagement
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/customer_segmentation.rs:461:75
[INFO] [stdout]     |
[INFO] [stdout] 461 |     base_revenue_per_customer * segment_size as f64 * (0.8 + thread_rng().gen::<f64>() * 0.4)
[INFO] [stdout]     |                                                                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> examples/customer_segmentation.rs:211:5
[INFO] [stdout]     |
[INFO] [stdout] 211 |     info: &CustomerDatasetInfo,
[INFO] [stdout]     |     ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W unused-variables`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `segment_id`
[INFO] [stdout]    --> examples/customer_segmentation.rs:407:5
[INFO] [stdout]     |
[INFO] [stdout] 407 |     segment_id: i32,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `segment_id`
[INFO] [stdout]    --> examples/customer_segmentation.rs:466:5
[INFO] [stdout]     |
[INFO] [stdout] 466 |     segment_id: i32,
[INFO] [stdout]     |     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_segment_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:383:26
[INFO] [stdout]     |
[INFO] [stdout] 383 |             thread_rng().gen::<f32>() * 2.0 - 1.0,
[INFO] [stdout]     |                          ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:384:26
[INFO] [stdout]     |
[INFO] [stdout] 384 |             thread_rng().gen::<f32>() * 2.0 - 1.0,
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:392:26
[INFO] [stdout]     |
[INFO] [stdout] 392 |             thread_rng().gen::<f32>() * 2.0 + 4.0,
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:393:26
[INFO] [stdout]     |
[INFO] [stdout] 393 |             thread_rng().gen::<f32>() * 2.0 + 4.0,
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:401:26
[INFO] [stdout]     |
[INFO] [stdout] 401 |             thread_rng().gen::<f32>() * 2.0 - 6.0,
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:402:26
[INFO] [stdout]     |
[INFO] [stdout] 402 |             thread_rng().gen::<f32>() * 2.0 + 4.0,
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:421:41
[INFO] [stdout]     |
[INFO] [stdout] 421 |         let radius = 2.0 + thread_rng().gen::<f32>() * 0.5;
[INFO] [stdout]     |                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:429:41
[INFO] [stdout]     |
[INFO] [stdout] 429 |         let radius = 5.0 + thread_rng().gen::<f32>() * 0.5;
[INFO] [stdout]     |                                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:451:30
[INFO] [stdout]     |
[INFO] [stdout] 451 |                 thread_rng().gen::<f32>() * 4.0 - 2.0 + drift,
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `scirs2_core::Rng::gen`: Renamed to `random` to avoid conflict with the new `gen` keyword in Rust 2024.
[INFO] [stdout]    --> examples/comprehensive_clustering_demo.rs:452:30
[INFO] [stdout]     |
[INFO] [stdout] 452 |                 thread_rng().gen::<f32>() * 4.0 - 2.0 + drift,
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 50s
[INFO] running `Command { std: "docker" "inspect" "11c85c095c4f4dd3336ad66b67e64e533f324b2e67477a1f4a74a222da169c68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11c85c095c4f4dd3336ad66b67e64e533f324b2e67477a1f4a74a222da169c68", kill_on_drop: false }`
[INFO] [stdout] 11c85c095c4f4dd3336ad66b67e64e533f324b2e67477a1f4a74a222da169c68
