[INFO] cloning repository https://github.com/Songbird0/json_parser [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Songbird0/json_parser" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSongbird0%2Fjson_parser"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSongbird0%2Fjson_parser'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 57805891c3e1d38450840bf8a199ff408adbd851 [INFO] testing Songbird0/json_parser against 1.44.0 for beta-1.45-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FSongbird0%2Fjson_parser" "/workspace/builds/worker-8/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/Songbird0/json_parser on toolchain 1.44.0 [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/Songbird0/json_parser [INFO] finished tweaking git repo https://github.com/Songbird0/json_parser [INFO] tweaked toml for git repo https://github.com/Songbird0/json_parser written to /workspace/builds/worker-8/source/Cargo.toml [INFO] crate git repo https://github.com/Songbird0/json_parser already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+1.44.0" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1.44.0" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] be113ed4bc7e0707bf0e9412b847159e678185259a3b6b6488c3645ca65ecc63 [INFO] running `"docker" "start" "-a" "be113ed4bc7e0707bf0e9412b847159e678185259a3b6b6488c3645ca65ecc63"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling memchr v2.2.0 [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Compiling nom v4.2.3 [INFO] [stderr] Compiling json_parser v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `nom::is_alphanumeric` [INFO] [stderr] --> src/parsers/mod.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use nom::is_alphanumeric; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `entry_list` [INFO] [stderr] --> src/ast/entries.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | entry_list: EntryList [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `key` [INFO] [stderr] --> src/ast/entries.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | key: K, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `value` [INFO] [stderr] --> src/ast/entries.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | value: Value [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `data` [INFO] [stderr] --> src/ast/values.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | data: V [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: bounds on generic parameters are not enforced in type aliases [INFO] [stderr] --> src/ast/entries.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | pub type EntryList = Option>>>; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(type_alias_bounds)]` on by default [INFO] [stderr] help: the bound will not be checked when the type alias is used, and should be removed [INFO] [stderr] | [INFO] [stderr] 6 | pub type EntryList = Option>>>; [INFO] [stderr] | -- [INFO] [stderr] [INFO] [stderr] warning: 6 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::is_alphanumeric` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use nom::is_alphanumeric; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.39s [INFO] running `"docker" "inspect" "be113ed4bc7e0707bf0e9412b847159e678185259a3b6b6488c3645ca65ecc63"` [INFO] running `"docker" "rm" "-f" "be113ed4bc7e0707bf0e9412b847159e678185259a3b6b6488c3645ca65ecc63"` [INFO] [stdout] be113ed4bc7e0707bf0e9412b847159e678185259a3b6b6488c3645ca65ecc63 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "MAP_USER_ID=0" "-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" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+1.44.0" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 4a770381c0c4e3d57544bea6cdc3dc1ec8999652980e2ccaef6d13f42292e598 [INFO] running `"docker" "start" "-a" "4a770381c0c4e3d57544bea6cdc3dc1ec8999652980e2ccaef6d13f42292e598"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling json_parser v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] warning: unused import: `nom::is_alphanumeric` [INFO] [stderr] --> src/parsers/mod.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use nom::is_alphanumeric; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `entry_list` [INFO] [stderr] --> src/ast/entries.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | entry_list: EntryList [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `key` [INFO] [stderr] --> src/ast/entries.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | key: K, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `value` [INFO] [stderr] --> src/ast/entries.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | value: Value [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `data` [INFO] [stderr] --> src/ast/values.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | data: V [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: bounds on generic parameters are not enforced in type aliases [INFO] [stderr] --> src/ast/entries.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | pub type EntryList = Option>>>; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(type_alias_bounds)]` on by default [INFO] [stderr] help: the bound will not be checked when the type alias is used, and should be removed [INFO] [stderr] | [INFO] [stderr] 6 | pub type EntryList = Option>>>; [INFO] [stderr] | -- [INFO] [stderr] [INFO] [stderr] warning: 6 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::is_alphanumeric` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use nom::is_alphanumeric; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> tests/empty_object_test.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::Err` [INFO] [stderr] --> tests/empty_object_test.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use nom::Err; [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::verbose_errors::Context` [INFO] [stderr] --> tests/empty_object_test.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use nom::verbose_errors::Context; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::ErrorKind` [INFO] [stderr] --> tests/empty_object_test.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use nom::ErrorKind; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | #[macro_use] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::is_alphanumeric` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use nom::is_alphanumeric; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] note: trace_macro [INFO] [stderr] --> tests/dummy_test.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | / named!( get_a<&[u8], Vec<&[u8]>>, dbg!( [INFO] [stderr] 8 | | complete!( [INFO] [stderr] 9 | | many0!( [INFO] [stderr] 10 | | tag!("a") [INFO] [stderr] 11 | | ) [INFO] [stderr] 12 | | ) [INFO] [stderr] 13 | | )); [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: expanding `named! { get_a < & [u8], Vec < & [u8] >>, dbg ! (complete ! (many0 ! (tag ! ("a")))) }` [INFO] [stderr] = note: to `fn get_a (i : &[u8]) -> $crate :: IResult < &[u8], Vec<&[u8]>, u32 > [INFO] [stderr] { dbg ! (i, complete ! (many0 ! (tag ! ("a")))) }` [INFO] [stderr] = note: expanding `dbg! { i, complete ! (many0 ! (tag ! ("a"))) }` [INFO] [stderr] = note: to `{ [INFO] [stderr] use $crate :: lib :: std :: result :: Result :: * ; let l = nom_line ! () [INFO] [stderr] ; match complete ! (i, many0 ! (tag ! ("a"))) [INFO] [stderr] { [INFO] [stderr] Err(e) => [INFO] [stderr] { [INFO] [stderr] nom_println ! [INFO] [stderr] ("Err({:?}) at l.{} by ' {} '", e, l, nom_stringify ! [INFO] [stderr] (complete ! (many0 ! (tag ! ("a"))))) ; Err(e) [INFO] [stderr] }, a => a, [INFO] [stderr] } [INFO] [stderr] }` [INFO] [stderr] = note: expanding `nom_line! { }` [INFO] [stderr] = note: to `line ! ()` [INFO] [stderr] = note: expanding `complete! { i, many0 ! (tag ! ("a")) }` [INFO] [stderr] = note: to `{ [INFO] [stderr] use $crate :: lib :: std :: result :: Result :: * ; use $crate :: [INFO] [stderr] { Err, ErrorKind } ; let i_ = i . clone() ; match many0 ! [INFO] [stderr] (i_, tag ! ("a")) [INFO] [stderr] { [INFO] [stderr] Err(Err :: Incomplete(_)) => [INFO] [stderr] { [INFO] [stderr] Err(Err :: [INFO] [stderr] Error(error_position ! (i, ErrorKind :: Complete :: < u32 >))) [INFO] [stderr] }, rest => rest [INFO] [stderr] } [INFO] [stderr] }` [INFO] [stderr] = note: expanding `many0! { i_, tag ! ("a") }` [INFO] [stderr] = note: to `{ [INFO] [stderr] use $crate :: lib :: std :: result :: Result :: * ; use $crate :: [INFO] [stderr] { Err, AtEof } ; let ret ; let mut res = $crate :: lib :: std :: vec :: [INFO] [stderr] Vec :: new() ; let mut input = i_ . clone() ; loop [INFO] [stderr] { [INFO] [stderr] let input_ = input . clone() ; match tag ! (input_, "a") [INFO] [stderr] { [INFO] [stderr] Ok((i, o)) => [INFO] [stderr] { [INFO] [stderr] if i == input [INFO] [stderr] { [INFO] [stderr] if i . at_eof() { ret = Ok((input, res)) ; } else [INFO] [stderr] { [INFO] [stderr] ret = [INFO] [stderr] Err(Err :: [INFO] [stderr] Error(error_position ! [INFO] [stderr] (input, $crate :: ErrorKind :: Many0))) ; [INFO] [stderr] } break ; [INFO] [stderr] } res . push(o) ; input = i ; [INFO] [stderr] }, Err(Err :: Error(_)) => { ret = Ok((input, res)) ; break ; }, [INFO] [stderr] Err(e) => { ret = Err(e) ; break ; }, [INFO] [stderr] } [INFO] [stderr] } ret [INFO] [stderr] }` [INFO] [stderr] = note: expanding `tag! { input_, "a" }` [INFO] [stderr] = note: to `{ [INFO] [stderr] use $crate :: lib :: std :: result :: Result :: * ; use $crate :: [INFO] [stderr] { Err, Needed, IResult, ErrorKind } ; use $crate :: [INFO] [stderr] { Compare, CompareResult, InputLength, need_more, InputTake } ; let res : [INFO] [stderr] IResult < _, _ > = match(input_) . compare("a") [INFO] [stderr] { [INFO] [stderr] CompareResult :: Ok => [INFO] [stderr] { let blen = "a" . input_len() ; Ok(input_ . take_split(blen)) }, [INFO] [stderr] CompareResult :: Incomplete => [INFO] [stderr] { need_more(input_, Needed :: Size("a" . input_len())) }, [INFO] [stderr] CompareResult :: Error => [INFO] [stderr] { [INFO] [stderr] let e : ErrorKind < u32 > = ErrorKind :: Tag ; [INFO] [stderr] Err(Err :: Error($crate :: Context :: Code(input_, e))) [INFO] [stderr] } [INFO] [stderr] } ; res [INFO] [stderr] }` [INFO] [stderr] = note: expanding `error_position! { input, $crate :: ErrorKind :: Many0 }` [INFO] [stderr] = note: to `{ $crate :: Context :: Code(input, ::nom::ErrorKind::Many0) }` [INFO] [stderr] = note: expanding `error_position! { i, ErrorKind :: Complete :: < u32 > }` [INFO] [stderr] = note: to `{ $crate :: Context :: Code(i, ErrorKind::Complete::) }` [INFO] [stderr] = note: expanding `nom_println! { "Err({:?}) at l.{} by ' {} '", e, l, nom_stringify ! [INFO] [stderr] (complete ! (many0 ! (tag ! ("a")))) }` [INFO] [stderr] = note: to `println ! [INFO] [stderr] ("Err({:?}) at l.{} by ' {} '", e, l, nom_stringify ! [INFO] [stderr] (complete ! (many0 ! (tag ! ("a")))))` [INFO] [stderr] = note: expanding `println! { "Err({:?}) at l.{} by ' {} '", e, l, nom_stringify ! [INFO] [stderr] (complete ! (many0 ! (tag ! ("a")))) }` [INFO] [stderr] = note: to `{ [INFO] [stderr] $crate :: io :: [INFO] [stderr] _print($crate :: format_args_nl ! [INFO] [stderr] ("Err({:?}) at l.{} by ' {} '", e, l, nom_stringify ! [INFO] [stderr] (complete ! (many0 ! (tag ! ("a")))))) ; [INFO] [stderr] }` [INFO] [stderr] = note: expanding `nom_stringify! { complete ! (many0 ! (tag ! ("a"))) }` [INFO] [stderr] = note: to `stringify ! (complete ! (many0 ! (tag ! ("a"))))` [INFO] [stderr] [INFO] [stderr] error[E0554]: `#![feature]` may not be used on the stable release channel [INFO] [stderr] --> tests/dummy_test.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | #![feature(trace_macros)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `nom::is_alphanumeric` [INFO] [stderr] --> src/parsers/mod.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use nom::is_alphanumeric; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0554`. [INFO] [stderr] error: could not compile `json_parser`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: field is never read: `entry_list` [INFO] [stderr] --> src/ast/entries.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | entry_list: EntryList [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: field is never read: `key` [INFO] [stderr] --> src/ast/entries.rs:22:5 [INFO] [stderr] | [INFO] [stderr] 22 | key: K, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `value` [INFO] [stderr] --> src/ast/entries.rs:23:5 [INFO] [stderr] | [INFO] [stderr] 23 | value: Value [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field is never read: `data` [INFO] [stderr] --> src/ast/values.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | data: V [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: bounds on generic parameters are not enforced in type aliases [INFO] [stderr] --> src/ast/entries.rs:6:23 [INFO] [stderr] | [INFO] [stderr] 6 | pub type EntryList = Option>>>; [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(type_alias_bounds)]` on by default [INFO] [stderr] help: the bound will not be checked when the type alias is used, and should be removed [INFO] [stderr] | [INFO] [stderr] 6 | pub type EntryList = Option>>>; [INFO] [stderr] | -- [INFO] [stderr] [INFO] [stderr] warning: 2 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: 6 warnings emitted [INFO] [stderr] [INFO] [stderr] warning: 4 warnings emitted [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "4a770381c0c4e3d57544bea6cdc3dc1ec8999652980e2ccaef6d13f42292e598"` [INFO] running `"docker" "rm" "-f" "4a770381c0c4e3d57544bea6cdc3dc1ec8999652980e2ccaef6d13f42292e598"` [INFO] [stdout] 4a770381c0c4e3d57544bea6cdc3dc1ec8999652980e2ccaef6d13f42292e598