[INFO] fetching crate ta 0.5.0... [INFO] testing ta-0.5.0 against 1.55.0 for beta-1.56-1 [INFO] extracting crate ta 0.5.0 into /workspace/builds/worker-2/source [INFO] validating manifest of crates.io crate ta 0.5.0 on toolchain 1.55.0 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.55.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate ta 0.5.0 [INFO] removed 1 missing examples [INFO] finished tweaking crates.io crate ta 0.5.0 [INFO] tweaked toml for crates.io crate ta 0.5.0 written to /workspace/builds/worker-2/source/Cargo.toml [INFO] crate crates.io crate ta 0.5.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.55.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/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:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a431f282f25aa0e27698cecd33f26186e9daedec477ee24a8ae6b5f2ba9836f5 [INFO] running `Command { std: "docker" "start" "-a" "a431f282f25aa0e27698cecd33f26186e9daedec477ee24a8ae6b5f2ba9836f5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a431f282f25aa0e27698cecd33f26186e9daedec477ee24a8ae6b5f2ba9836f5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a431f282f25aa0e27698cecd33f26186e9daedec477ee24a8ae6b5f2ba9836f5", kill_on_drop: false }` [INFO] [stdout] a431f282f25aa0e27698cecd33f26186e9daedec477ee24a8ae6b5f2ba9836f5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 12096e9865cca3e3da7f25aca3343f18be25e7285e72b92f4b35a23002a5bb99 [INFO] running `Command { std: "docker" "start" "-a" "12096e9865cca3e3da7f25aca3343f18be25e7285e72b92f4b35a23002a5bb99", kill_on_drop: false }` [INFO] [stderr] Compiling ta v0.5.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.86s [INFO] running `Command { std: "docker" "inspect" "12096e9865cca3e3da7f25aca3343f18be25e7285e72b92f4b35a23002a5bb99", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "12096e9865cca3e3da7f25aca3343f18be25e7285e72b92f4b35a23002a5bb99", kill_on_drop: false }` [INFO] [stdout] 12096e9865cca3e3da7f25aca3343f18be25e7285e72b92f4b35a23002a5bb99 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e2e505bea43c064b90201298b11c4d99f98987dd1a8871d788e32b5285f85249 [INFO] running `Command { std: "docker" "start" "-a" "e2e505bea43c064b90201298b11c4d99f98987dd1a8871d788e32b5285f85249", kill_on_drop: false }` [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling serde v1.0.116 [INFO] [stderr] Compiling libc v0.2.97 [INFO] [stderr] Compiling itoa v0.4.6 [INFO] [stderr] Compiling assert_approx_eq v1.1.0 [INFO] [stderr] Compiling bencher v0.1.5 [INFO] [stderr] Compiling regex-automata v0.1.9 [INFO] [stderr] Compiling csv-core v0.1.10 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling bstr v0.2.14 [INFO] [stderr] Compiling bincode v1.3.1 [INFO] [stderr] Compiling csv v1.1.3 [INFO] [stderr] Compiling ta v0.5.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 12.59s [INFO] running `Command { std: "docker" "inspect" "e2e505bea43c064b90201298b11c4d99f98987dd1a8871d788e32b5285f85249", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e2e505bea43c064b90201298b11c4d99f98987dd1a8871d788e32b5285f85249", kill_on_drop: false }` [INFO] [stdout] e2e505bea43c064b90201298b11c4d99f98987dd1a8871d788e32b5285f85249 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:a89201d6b5b9fd45c15d5952ece0a0129e7e80cb26ec023fd59cf09bc26f1604" "/opt/rustwide/cargo-home/bin/cargo" "+1.55.0" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 857614eff233aeb66e3035f5e15b42ee0bf282cf09a355f8b5f24f5a441187da [INFO] running `Command { std: "docker" "start" "-a" "857614eff233aeb66e3035f5e15b42ee0bf282cf09a355f8b5f24f5a441187da", kill_on_drop: false }` [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.02s [INFO] [stdout] [INFO] [stderr] Running unittests (/opt/rustwide/target/debug/deps/ta-2f67d6581164690a) [INFO] [stdout] running 130 tests [INFO] [stdout] test indicators::average_true_range::tests::test_next ... ok [INFO] [stdout] test indicators::average_true_range::tests::test_default ... ok [INFO] [stdout] test helpers::tests::test_max3 ... ok [INFO] [stdout] test data_item::tests::test_builder ... ok [INFO] [stdout] test indicators::average_true_range::tests::test_new ... ok [INFO] [stdout] test indicators::average_true_range::tests::test_indicator ... ok [INFO] [stdout] test indicators::average_true_range::tests::test_display ... ok [INFO] [stdout] test indicators::average_true_range::tests::test_reset ... ok [INFO] [stdout] test indicators::bollinger_bands::tests::test_default ... ok [INFO] [stdout] test indicators::bollinger_bands::tests::test_display ... ok [INFO] [stdout] test indicators::bollinger_bands::tests::test_indicator ... ok [INFO] [stdout] test indicators::bollinger_bands::tests::test_new ... ok [INFO] [stdout] test indicators::chandelier_exit::tests::test_next_bar ... ok [INFO] [stdout] test indicators::commodity_channel_index::tests::test_next_bar ... ok [INFO] [stdout] test indicators::commodity_channel_index::tests::test_reset ... ok [INFO] [stdout] test indicators::commodity_channel_index::tests::test_display ... ok [INFO] [stdout] test indicators::chandelier_exit::tests::test_reset ... ok [INFO] [stdout] test indicators::commodity_channel_index::tests::test_new ... ok [INFO] [stdout] test indicators::bollinger_bands::tests::test_next ... ok [INFO] [stdout] test indicators::bollinger_bands::tests::test_reset ... ok [INFO] [stdout] test indicators::chandelier_exit::tests::test_new ... ok [INFO] [stdout] test indicators::chandelier_exit::tests::test_default ... ok [INFO] [stdout] test indicators::commodity_channel_index::tests::test_default ... ok [INFO] [stdout] test indicators::chandelier_exit::tests::test_display ... ok [INFO] [stdout] test indicators::efficiency_ratio::tests::test_display ... ok [INFO] [stdout] test indicators::efficiency_ratio::tests::test_indicator ... ok [INFO] [stdout] test indicators::efficiency_ratio::tests::test_new ... ok [INFO] [stdout] test indicators::efficiency_ratio::tests::test_reset ... ok [INFO] [stdout] test indicators::efficiency_ratio::tests::test_next ... ok [INFO] [stdout] test indicators::exponential_moving_average::tests::test_default ... ok [INFO] [stdout] test indicators::exponential_moving_average::tests::test_display ... ok [INFO] [stdout] test indicators::exponential_moving_average::tests::test_indicator ... ok [INFO] [stdout] test indicators::exponential_moving_average::tests::test_new ... ok [INFO] [stdout] test indicators::exponential_moving_average::tests::test_next ... ok [INFO] [stdout] test indicators::exponential_moving_average::tests::test_reset ... ok [INFO] [stdout] test indicators::fast_stochastic::tests::test_default ... ok [INFO] [stdout] test indicators::fast_stochastic::tests::test_display ... ok [INFO] [stdout] test indicators::fast_stochastic::tests::test_indicator ... ok [INFO] [stdout] test indicators::fast_stochastic::tests::test_new ... ok [INFO] [stdout] test indicators::fast_stochastic::tests::test_next_with_bars ... ok [INFO] [stdout] test indicators::fast_stochastic::tests::test_next_with_f64 ... ok [INFO] [stdout] test indicators::fast_stochastic::tests::test_reset ... ok [INFO] [stdout] test indicators::keltner_channel::tests::test_default ... ok [INFO] [stdout] test indicators::keltner_channel::tests::test_display ... ok [INFO] [stdout] test indicators::keltner_channel::tests::test_indicator ... ok [INFO] [stdout] test indicators::keltner_channel::tests::test_new ... ok [INFO] [stdout] test indicators::keltner_channel::tests::test_next ... ok [INFO] [stdout] test indicators::keltner_channel::tests::test_reset ... ok [INFO] [stdout] test indicators::maximum::tests::test_default ... ok [INFO] [stdout] test indicators::maximum::tests::test_display ... ok [INFO] [stdout] test indicators::maximum::tests::test_indicator ... ok [INFO] [stdout] test indicators::maximum::tests::test_new ... ok [INFO] [stdout] test indicators::keltner_channel::tests::test_next_with_data_item ... ok [INFO] [stdout] test indicators::maximum::tests::test_next ... ok [INFO] [stdout] test indicators::maximum::tests::test_next_with_bars ... ok [INFO] [stdout] test indicators::mean_absolute_deviation::tests::test_default ... ok [INFO] [stdout] test indicators::mean_absolute_deviation::tests::test_display ... ok [INFO] [stdout] test indicators::mean_absolute_deviation::tests::test_indicator ... ok [INFO] [stdout] test indicators::mean_absolute_deviation::tests::test_next ... ok [INFO] [stdout] test indicators::mean_absolute_deviation::tests::test_reset ... ok [INFO] [stdout] test indicators::minimum::tests::test_default ... ok [INFO] [stdout] test indicators::minimum::tests::test_display ... ok [INFO] [stdout] test indicators::minimum::tests::test_new ... ok [INFO] [stdout] test indicators::minimum::tests::test_next ... ok [INFO] [stdout] test indicators::minimum::tests::test_next_with_bars ... ok [INFO] [stdout] test indicators::minimum::tests::test_reset ... ok [INFO] [stdout] test indicators::money_flow_index::tests::test_default ... ok [INFO] [stdout] test indicators::money_flow_index::tests::test_display ... ok [INFO] [stdout] test indicators::money_flow_index::tests::test_new ... ok [INFO] [stdout] test indicators::maximum::tests::test_reset ... ok [INFO] [stdout] test indicators::money_flow_index::tests::test_reset ... ok [INFO] [stdout] test indicators::moving_average_convergence_divergence::tests::test_default ... ok [INFO] [stdout] test indicators::minimum::tests::test_indicator ... ok [INFO] [stdout] test indicators::money_flow_index::tests::test_next_bar ... ok [INFO] [stdout] test indicators::mean_absolute_deviation::tests::test_new ... ok [INFO] [stdout] test indicators::moving_average_convergence_divergence::tests::test_macd ... ok [INFO] [stdout] test indicators::moving_average_convergence_divergence::tests::test_display ... ok [INFO] [stdout] test indicators::moving_average_convergence_divergence::tests::test_indicator ... ok [INFO] [stdout] test indicators::on_balance_volume::tests::test_default ... ok [INFO] [stdout] test indicators::moving_average_convergence_divergence::tests::test_reset ... ok [INFO] [stdout] test indicators::moving_average_convergence_divergence::tests::test_new ... ok [INFO] [stdout] test indicators::on_balance_volume::tests::test_next_bar ... ok [INFO] [stdout] test indicators::on_balance_volume::tests::test_reset ... ok [INFO] [stdout] test indicators::percentage_price_oscillator::tests::test_default ... ok [INFO] [stdout] test indicators::percentage_price_oscillator::tests::test_display ... ok [INFO] [stdout] test indicators::percentage_price_oscillator::tests::test_indicator ... ok [INFO] [stdout] test indicators::percentage_price_oscillator::tests::test_new ... ok [INFO] [stdout] test indicators::percentage_price_oscillator::tests::test_next ... ok [INFO] [stdout] test indicators::percentage_price_oscillator::tests::test_reset ... ok [INFO] [stdout] test indicators::rate_of_change::tests::test_indicator ... ok [INFO] [stdout] test indicators::rate_of_change::tests::test_new ... ok [INFO] [stdout] test indicators::rate_of_change::tests::test_next_bar ... ok [INFO] [stdout] test indicators::rate_of_change::tests::test_next_f64 ... ok [INFO] [stdout] test indicators::rate_of_change::tests::test_reset ... ok [INFO] [stdout] test indicators::relative_strength_index::tests::test_default ... ok [INFO] [stdout] test indicators::relative_strength_index::tests::test_display ... ok [INFO] [stdout] test indicators::relative_strength_index::tests::test_indicator ... ok [INFO] [stdout] test indicators::relative_strength_index::tests::test_new ... ok [INFO] [stdout] test indicators::relative_strength_index::tests::test_next ... ok [INFO] [stdout] test indicators::on_balance_volume::tests::test_display ... ok [INFO] [stdout] test indicators::relative_strength_index::tests::test_reset ... ok [INFO] [stdout] test indicators::simple_moving_average::tests::test_display ... ok [INFO] [stdout] test indicators::simple_moving_average::tests::test_indicator ... ok [INFO] [stdout] test indicators::simple_moving_average::tests::test_next ... ok [INFO] [stdout] test indicators::simple_moving_average::tests::test_reset ... ok [INFO] [stdout] test indicators::slow_stochastic::tests::test_default ... ok [INFO] [stdout] test indicators::slow_stochastic::tests::test_display ... ok [INFO] [stdout] test indicators::slow_stochastic::tests::test_indicator ... ok [INFO] [stdout] test indicators::slow_stochastic::tests::test_new ... ok [INFO] [stdout] test indicators::slow_stochastic::tests::test_next_with_f64 ... ok [INFO] [stdout] test indicators::slow_stochastic::tests::test_reset ... ok [INFO] [stdout] test indicators::simple_moving_average::tests::test_next_with_bars ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_new ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_next_same_values ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_next_with_bars ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_reset ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_next ... ok [INFO] [stdout] test indicators::slow_stochastic::tests::test_next_with_bars ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_next_floating_point_error ... ok [INFO] [stdout] test indicators::simple_moving_average::tests::test_new ... ok [INFO] [stdout] test indicators::true_range::tests::test_next_bar ... ok [INFO] [stdout] test indicators::true_range::tests::test_reset ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_indicator ... ok [INFO] [stdout] test indicators::simple_moving_average::tests::test_default ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_default ... ok [INFO] [stdout] test indicators::true_range::tests::test_next_f64 ... ok [INFO] [stdout] test indicators::standard_deviation::tests::test_display ... ok [INFO] [stdout] test indicators::true_range::tests::test_display ... ok [INFO] [stdout] test indicators::true_range::tests::test_default ... ok [INFO] [stdout] test indicators::true_range::tests::test_indicator ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 130 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stderr] Doc-tests ta [INFO] [stdout] [INFO] [stdout] running 21 tests [INFO] [stdout] test src/indicators/minimum.rs - indicators::minimum::Minimum (line 17) ... ok [INFO] [stdout] test src/indicators/slow_stochastic.rs - indicators::slow_stochastic::SlowStochastic (line 20) ... ok [INFO] [stdout] test src/indicators/efficiency_ratio.rs - indicators::efficiency_ratio::EfficiencyRatio (line 19) ... ok [INFO] [stdout] test src/indicators/fast_stochastic.rs - indicators::fast_stochastic::FastStochastic (line 32) ... ok [INFO] [stdout] test src/indicators/on_balance_volume.rs - indicators::on_balance_volume::OnBalanceVolume (line 30) ... ok [INFO] [stdout] test src/indicators/keltner_channel.rs - indicators::keltner_channel::KeltnerChannel (line 27) ... ok [INFO] [stdout] test src/indicators/average_true_range.rs - indicators::average_true_range::AverageTrueRange (line 31) ... ok [INFO] [stdout] test src/data_item.rs - data_item::DataItem (line 11) ... ok [INFO] [stdout] test src/lib.rs - (line 14) ... ok [INFO] [stdout] test src/indicators/chandelier_exit.rs - indicators::chandelier_exit::ChandelierExit (line 29) ... ok [INFO] [stdout] test src/indicators/bollinger_bands.rs - indicators::bollinger_bands::BollingerBands (line 26) ... ok [INFO] [stdout] test src/indicators/simple_moving_average.rs - indicators::simple_moving_average::SimpleMovingAverage (line 26) ... ok [INFO] [stdout] test src/indicators/true_range.rs - indicators::true_range::TrueRange (line 23) ... ok [INFO] [stdout] test src/indicators/rate_of_change.rs - indicators::rate_of_change::RateOfChange (line 26) ... ok [INFO] [stdout] test src/indicators/exponential_moving_average.rs - indicators::exponential_moving_average::ExponentialMovingAverage (line 39) ... ok [INFO] [stdout] test src/indicators/percentage_price_oscillator.rs - indicators::percentage_price_oscillator::PercentagePriceOscillator (line 33) ... ok [INFO] [stdout] test src/indicators/standard_deviation.rs - indicators::standard_deviation::StandardDeviation (line 28) ... ok [INFO] [stdout] test src/indicators/relative_strength_index.rs - indicators::relative_strength_index::RelativeStrengthIndex (line 56) ... ok [INFO] [stdout] test src/indicators/money_flow_index.rs - indicators::money_flow_index::MoneyFlowIndex (line 37) ... ok [INFO] [stdout] test src/indicators/moving_average_convergence_divergence.rs - indicators::moving_average_convergence_divergence::MovingAverageConvergenceDivergence (line 33) ... ok [INFO] [stdout] test src/indicators/maximum.rs - indicators::maximum::Maximum (line 17) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.21s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "857614eff233aeb66e3035f5e15b42ee0bf282cf09a355f8b5f24f5a441187da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "857614eff233aeb66e3035f5e15b42ee0bf282cf09a355f8b5f24f5a441187da", kill_on_drop: false }` [INFO] [stdout] 857614eff233aeb66e3035f5e15b42ee0bf282cf09a355f8b5f24f5a441187da