[INFO] fetching crate shared_lru 0.1.5...
[INFO] testing shared_lru-0.1.5 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate shared_lru 0.1.5 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate shared_lru 0.1.5
[INFO] finished tweaking crates.io crate shared_lru 0.1.5
[INFO] tweaked toml for crates.io crate shared_lru 0.1.5 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate shared_lru 0.1.5 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate shared_lru 0.1.5 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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ab45bfad9b5dbbd2bd3e6f1844fc38fefef2397379aad73871e672b8fa32add8
[INFO] running `Command { std: "docker" "start" "-a" "ab45bfad9b5dbbd2bd3e6f1844fc38fefef2397379aad73871e672b8fa32add8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ab45bfad9b5dbbd2bd3e6f1844fc38fefef2397379aad73871e672b8fa32add8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ab45bfad9b5dbbd2bd3e6f1844fc38fefef2397379aad73871e672b8fa32add8", kill_on_drop: false }`
[INFO] [stdout] ab45bfad9b5dbbd2bd3e6f1844fc38fefef2397379aad73871e672b8fa32add8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 44da109a3dffcff2e789a115b4f257a52cd405b57d6ce3e2b61d1ecefff31e2c
[INFO] running `Command { std: "docker" "start" "-a" "44da109a3dffcff2e789a115b4f257a52cd405b57d6ce3e2b61d1ecefff31e2c", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.109
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling once_cell v1.8.0
[INFO] [stderr]    Compiling ppv-lite86 v0.2.15
[INFO] [stderr]    Compiling ahash v0.7.6
[INFO] [stderr]    Compiling getrandom v0.2.3
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling rand_core v0.6.3
[INFO] [stderr]    Compiling dashmap v4.0.2
[INFO] [stderr]    Compiling hashbrown v0.11.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.4
[INFO] [stderr]    Compiling lru v0.7.0
[INFO] [stderr]    Compiling shared_lru v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:113:16
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn get(&self, k: &K) -> Option<ValueRef<K, V>> {
[INFO] [stdout]     |                ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn get(&self, k: &K) -> Option<ValueRef<'_, K, V>> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:123:26
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn get_or_insert(&self, k: K, insert_with: impl FnOnce() -> V) -> Option<ValueRef<K, V>>
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn get_or_insert(&self, k: K, insert_with: impl FnOnce() -> V) -> Option<ValueRef<'_, K, V>>
[INFO] [stdout]     |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get(&self, key: &K) -> Option<Ref<EntryId, (K, V)>> {
[INFO] [stdout]     |            ^^^^^                     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |            |
[INFO] [stdout]     |            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get(&self, key: &K) -> Option<Ref<'_, EntryId, (K, V)>> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.65s
[INFO] running `Command { std: "docker" "inspect" "44da109a3dffcff2e789a115b4f257a52cd405b57d6ce3e2b61d1ecefff31e2c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "44da109a3dffcff2e789a115b4f257a52cd405b57d6ce3e2b61d1ecefff31e2c", kill_on_drop: false }`
[INFO] [stdout] 44da109a3dffcff2e789a115b4f257a52cd405b57d6ce3e2b61d1ecefff31e2c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 67c571b919a70ffa559e4e0c6eba307cd6cfa75f5880547c3b8836c8abfa08b7
[INFO] running `Command { std: "docker" "start" "-a" "67c571b919a70ffa559e4e0c6eba307cd6cfa75f5880547c3b8836c8abfa08b7", kill_on_drop: false }`
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:113:16
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn get(&self, k: &K) -> Option<ValueRef<K, V>> {
[INFO] [stdout]     |                ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn get(&self, k: &K) -> Option<ValueRef<'_, K, V>> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:123:26
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn get_or_insert(&self, k: K, insert_with: impl FnOnce() -> V) -> Option<ValueRef<K, V>>
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn get_or_insert(&self, k: K, insert_with: impl FnOnce() -> V) -> Option<ValueRef<'_, K, V>>
[INFO] [stdout]     |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get(&self, key: &K) -> Option<Ref<EntryId, (K, V)>> {
[INFO] [stdout]     |            ^^^^^                     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |            |
[INFO] [stdout]     |            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get(&self, key: &K) -> Option<Ref<'_, EntryId, (K, V)>> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling shared_lru v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:113:16
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn get(&self, k: &K) -> Option<ValueRef<K, V>> {
[INFO] [stdout]     |                ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                |
[INFO] [stdout]     |                the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn get(&self, k: &K) -> Option<ValueRef<'_, K, V>> {
[INFO] [stdout]     |                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:123:26
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn get_or_insert(&self, k: K, insert_with: impl FnOnce() -> V) -> Option<ValueRef<K, V>>
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 123 |     pub fn get_or_insert(&self, k: K, insert_with: impl FnOnce() -> V) -> Option<ValueRef<'_, K, V>>
[INFO] [stdout]     |                                                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:184:12
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get(&self, key: &K) -> Option<Ref<EntryId, (K, V)>> {
[INFO] [stdout]     |            ^^^^^                     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |            |
[INFO] [stdout]     |            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get(&self, key: &K) -> Option<Ref<'_, EntryId, (K, V)>> {
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.04s
[INFO] running `Command { std: "docker" "inspect" "67c571b919a70ffa559e4e0c6eba307cd6cfa75f5880547c3b8836c8abfa08b7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "67c571b919a70ffa559e4e0c6eba307cd6cfa75f5880547c3b8836c8abfa08b7", kill_on_drop: false }`
[INFO] [stdout] 67c571b919a70ffa559e4e0c6eba307cd6cfa75f5880547c3b8836c8abfa08b7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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=warn" "-e" "RUSTDOCFLAGS=--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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] b6150626ac0558a2d6c0923a8a197fd99a1ed90424b1d2ca556f51da8aaa0e7b
[INFO] running `Command { std: "docker" "start" "-a" "b6150626ac0558a2d6c0923a8a197fd99a1ed90424b1d2ca556f51da8aaa0e7b", kill_on_drop: false }`
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:113:16
[INFO] [stderr]     |
[INFO] [stderr] 113 |     pub fn get(&self, k: &K) -> Option<ValueRef<K, V>> {
[INFO] [stderr]     |                ^^^^^                   ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                |
[INFO] [stderr]     |                the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 113 |     pub fn get(&self, k: &K) -> Option<ValueRef<'_, K, V>> {
[INFO] [stderr]     |                                                 +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:123:26
[INFO] [stderr]     |
[INFO] [stderr] 123 |     pub fn get_or_insert(&self, k: K, insert_with: impl FnOnce() -> V) -> Option<ValueRef<K, V>>
[INFO] [stderr]     |                          ^^^^^ the lifetime is elided here                       ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 123 |     pub fn get_or_insert(&self, k: K, insert_with: impl FnOnce() -> V) -> Option<ValueRef<'_, K, V>>
[INFO] [stderr]     |                                                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/lib.rs:184:12
[INFO] [stderr]     |
[INFO] [stderr] 184 |     fn get(&self, key: &K) -> Option<Ref<EntryId, (K, V)>> {
[INFO] [stderr]     |            ^^^^^                     ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |            |
[INFO] [stderr]     |            the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 184 |     fn get(&self, key: &K) -> Option<Ref<'_, EntryId, (K, V)>> {
[INFO] [stderr]     |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: `shared_lru` (lib) generated 3 warnings (run `cargo fix --lib -p shared_lru` to apply 3 suggestions)
[INFO] [stderr] warning: `shared_lru` (lib test) generated 3 warnings (3 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/shared_lru-c88e1d08bf01dbb5)
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests shared_lru
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::cache_send_sync ... ok
[INFO] [stdout] test tests::storage_send_sync ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b6150626ac0558a2d6c0923a8a197fd99a1ed90424b1d2ca556f51da8aaa0e7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6150626ac0558a2d6c0923a8a197fd99a1ed90424b1d2ca556f51da8aaa0e7b", kill_on_drop: false }`
[INFO] [stdout] b6150626ac0558a2d6c0923a8a197fd99a1ed90424b1d2ca556f51da8aaa0e7b
