[INFO] cloning repository https://github.com/Rasmus20B/fmplib [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Rasmus20B/fmplib" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRasmus20B%2Ffmplib", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRasmus20B%2Ffmplib'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 66245e5269275724bacfe1437fb1f73bc587a2f3 [INFO] checking Rasmus20B/fmplib against try#29194e8f603400afdb2f86c9418e9fccb1628ea0 for pr-135331-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FRasmus20B%2Ffmplib" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Rasmus20B/fmplib [INFO] finished tweaking git repo https://github.com/Rasmus20B/fmplib [INFO] tweaked toml for git repo https://github.com/Rasmus20B/fmplib written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Rasmus20B/fmplib on toolchain 29194e8f603400afdb2f86c9418e9fccb1628ea0 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+29194e8f603400afdb2f86c9418e9fccb1628ea0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Rasmus20B/fmplib 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" "+29194e8f603400afdb2f86c9418e9fccb1628ea0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+29194e8f603400afdb2f86c9418e9fccb1628ea0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] cb0cab460ed9fa734700600ae131928764e20b8e492a9dedbaf88eb221f2ca95 [INFO] running `Command { std: "docker" "start" "-a" "cb0cab460ed9fa734700600ae131928764e20b8e492a9dedbaf88eb221f2ca95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cb0cab460ed9fa734700600ae131928764e20b8e492a9dedbaf88eb221f2ca95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cb0cab460ed9fa734700600ae131928764e20b8e492a9dedbaf88eb221f2ca95", kill_on_drop: false }` [INFO] [stdout] cb0cab460ed9fa734700600ae131928764e20b8e492a9dedbaf88eb221f2ca95 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=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:cf8efcab8866f2cf4285301c7418e2f4f2a9b088c91ba69c40d5b659f81557f7" "/opt/rustwide/cargo-home/bin/cargo" "+29194e8f603400afdb2f86c9418e9fccb1628ea0" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 69b0d207744bdd8fdb9a8470e005e842801057ee8606a76bd597f82710c9b02b [INFO] running `Command { std: "docker" "start" "-a" "69b0d207744bdd8fdb9a8470e005e842801057ee8606a76bd597f82710c9b02b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Compiling syn v2.0.72 [INFO] [stderr] Compiling serde_derive v1.0.204 [INFO] [stderr] Checking serde v1.0.204 [INFO] [stderr] Checking serde_json v1.0.122 [INFO] [stderr] Checking burnfmlib v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::decompile::decompiler` [INFO] [stdout] --> src/decompile/decompiler.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::decompile::decompiler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::decompile::decompiler` [INFO] [stdout] --> src/decompile/decompiler.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::decompile::decompiler; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `table_idx` [INFO] [stdout] --> src/fmp_format/chunk.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let table_idx = 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_idx` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/util/format_decode.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | Err(e) => "value not utf-8.".to_string() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/decompile/decompiler.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | for i in 1..=*n.unwrap() as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/decompile/decompiler.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 56 | for i in 1..=*n.unwrap() as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/decompile/decompiler.rs:212:25 [INFO] [stdout] | [INFO] [stdout] 212 | let s = fm_string_decrypt(chunk.data.unwrap_or(&[0])); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/decompile/decompiler.rs:380:33 [INFO] [stdout] | [INFO] [stdout] 380 | ... for i in &mut *instrs { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/decompile/decompiler.rs:425:25 [INFO] [stdout] | [INFO] [stdout] 425 | let s = fm_string_decrypt(chunk.data.unwrap_or(&[0])); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instrs` [INFO] [stdout] --> src/decompile/decompiler.rs:442:25 [INFO] [stdout] | [INFO] [stdout] 442 | let instrs = &mut fmp_file.scripts.get_mut(&script.parse().unwrap()).unwrap().instructions; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_instrs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/decompile/decompiler.rs:461:34 [INFO] [stdout] | [INFO] [stdout] 461 | ... for (i, ins) in instrs.enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/decompile/decompiler.rs:478:29 [INFO] [stdout] | [INFO] [stdout] 478 | let s = fm_string_decrypt(chunk.data.unwrap_or(&[0])); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `table_idx` [INFO] [stdout] --> src/fmp_format/chunk.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 55 | let table_idx = 0; [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_table_idx` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/util/format_decode.rs:25:13 [INFO] [stdout] | [INFO] [stdout] 25 | Err(e) => "value not utf-8.".to_string() [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/decompile/decompiler.rs:43:21 [INFO] [stdout] | [INFO] [stdout] 43 | for i in 1..=*n.unwrap() as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/decompile/decompiler.rs:56:21 [INFO] [stdout] | [INFO] [stdout] 56 | for i in 1..=*n.unwrap() as usize { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/decompile/decompiler.rs:212:25 [INFO] [stdout] | [INFO] [stdout] 212 | let s = fm_string_decrypt(chunk.data.unwrap_or(&[0])); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/decompile/decompiler.rs:380:33 [INFO] [stdout] | [INFO] [stdout] 380 | ... for i in &mut *instrs { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/decompile/decompiler.rs:425:25 [INFO] [stdout] | [INFO] [stdout] 425 | let s = fm_string_decrypt(chunk.data.unwrap_or(&[0])); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `instrs` [INFO] [stdout] --> src/decompile/decompiler.rs:442:25 [INFO] [stdout] | [INFO] [stdout] 442 | let instrs = &mut fmp_file.scripts.get_mut(&script.parse().unwrap()).unwrap().instructions; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_instrs` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> src/decompile/decompiler.rs:461:34 [INFO] [stdout] | [INFO] [stdout] 461 | ... for (i, ins) in instrs.enumerate() { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/decompile/decompiler.rs:478:29 [INFO] [stdout] | [INFO] [stdout] 478 | let s = fm_string_decrypt(chunk.data.unwrap_or(&[0])); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChunkType` is never used [INFO] [stdout] --> src/fmp_format/chunk.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ChunkType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Chunk` is never constructed [INFO] [stdout] --> src/fmp_format/chunk.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Chunk<'a> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/fmp_format/chunk.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl<'a> Chunk<'a> { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 26 | pub fn new(ctype: ChunkType, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_chunk_from_code` is never used [INFO] [stdout] --> src/fmp_format/chunk.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn get_chunk_from_code<'a>(code: &'a[u8], offset: &mut usize, path: &mut Vec, local : usize) -> Result, &'static st... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIELD_TYPE` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const FIELD_TYPE : u16 = 2; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMPONENT_DESC` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const COMPONENT_DESC : u16 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMPONENT_NAME` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const COMPONENT_NAME : u16 = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CREATOR_ACCOUNT_NAME` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const CREATOR_ACCOUNT_NAME : u16 = 129; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CREATOR_USER_NAME` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const CREATOR_USER_NAME : u16 = 130; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sector` is never constructed [INFO] [stdout] --> src/fmp_format/sector.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Sector<'a> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/fmp_format/sector.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 14 | impl<'a> Sector<'a> { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 15 | fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_sector` is never used [INFO] [stdout] --> src/fmp_format/sector.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn get_sector(sector: &[u8]) -> Sector { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_int` is never used [INFO] [stdout] --> src/util/format_decode.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn get_int(bytes: &[u8]) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SECTOR_SIZE` is never used [INFO] [stdout] --> src/decompile/decompiler.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const SECTOR_SIZE : usize = 4096; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decompile_calculation` is never used [INFO] [stdout] --> src/decompile/decompiler.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn decompile_calculation(bytecode: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decompile_fmp12_file_with_header` is never used [INFO] [stdout] --> src/decompile/decompiler.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn decompile_fmp12_file_with_header(path: &Path) -> FmpFile { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decompile_fmp12_file` is never used [INFO] [stdout] --> src/decompile/decompiler.rs:118:8 [INFO] [stdout] | [INFO] [stdout] 118 | pub fn decompile_fmp12_file(path: &Path) -> FmpFile { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Instruction` is never used [INFO] [stdout] --> src/script_engine/instructions.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | #[repr(u8)] pub enum Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INSTRUCTIONMAP` is never used [INFO] [stdout] --> src/script_engine/instructions.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 220 | pub static INSTRUCTIONMAP : [Option; 255] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScriptStep` is never constructed [INFO] [stdout] --> src/script_engine/instructions.rs:479:12 [INFO] [stdout] | [INFO] [stdout] 479 | pub struct ScriptStep { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Script` is never constructed [INFO] [stdout] --> src/script_engine/instructions.rs:485:12 [INFO] [stdout] | [INFO] [stdout] 485 | pub struct Script { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FMComponentType` is never used [INFO] [stdout] --> src/repr/component.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum FMComponentType { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentField` is never constructed [INFO] [stdout] --> src/repr/component.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct FMComponentField { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl FMComponentField { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentTest` is never constructed [INFO] [stdout] --> src/repr/component.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | pub struct FMComponentTest { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 48 | impl FMComponentTest { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 49 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentTable` is never constructed [INFO] [stdout] --> src/repr/component.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct FMComponentTable { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_init` are never used [INFO] [stdout] --> src/repr/component.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl FMComponentTable { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] 70 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn new_init() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentScript` is never constructed [INFO] [stdout] --> src/repr/component.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct FMComponentScript { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl FMComponentScript { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 102 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentTableOccurence` is never constructed [INFO] [stdout] --> src/repr/component.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | pub struct FMComponentTableOccurence { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:123:12 [INFO] [stdout] | [INFO] [stdout] 122 | impl FMComponentTableOccurence { [INFO] [stdout] | ------------------------------ associated function in this implementation [INFO] [stdout] 123 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentRelationship` is never constructed [INFO] [stdout] --> src/repr/component.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 135 | pub struct FMComponentRelationship { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 143 | impl FMComponentRelationship { [INFO] [stdout] | ---------------------------- associated function in this implementation [INFO] [stdout] 144 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentLayout` is never constructed [INFO] [stdout] --> src/repr/component.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 156 | pub struct FMComponentLayout { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 162 | impl FMComponentLayout { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 163 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentValueList` is never constructed [INFO] [stdout] --> src/repr/component.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 173 | pub struct FMComponentValueList { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 179 | impl FMComponentValueList { [INFO] [stdout] | ------------------------- associated function in this implementation [INFO] [stdout] 180 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FmpFile` is never constructed [INFO] [stdout] --> src/repr/file.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct FmpFile { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/file.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl FmpFile { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/fmp_format/sector.rs:33:27 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn get_sector(sector: &[u8]) -> Sector { [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] 33 | pub fn get_sector(sector: &[u8]) -> Sector<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `ChunkType` is never used [INFO] [stdout] --> src/fmp_format/chunk.rs:4:10 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum ChunkType { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Chunk` is never constructed [INFO] [stdout] --> src/fmp_format/chunk.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | pub struct Chunk<'a> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/fmp_format/chunk.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 25 | impl<'a> Chunk<'a> { [INFO] [stdout] | ------------------ associated function in this implementation [INFO] [stdout] 26 | pub fn new(ctype: ChunkType, [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_chunk_from_code` is never used [INFO] [stdout] --> src/fmp_format/chunk.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn get_chunk_from_code<'a>(code: &'a[u8], offset: &mut usize, path: &mut Vec, local : usize) -> Result, &'static st... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `FIELD_TYPE` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | pub const FIELD_TYPE : u16 = 2; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMPONENT_DESC` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:2:11 [INFO] [stdout] | [INFO] [stdout] 2 | pub const COMPONENT_DESC : u16 = 3; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `COMPONENT_NAME` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:3:11 [INFO] [stdout] | [INFO] [stdout] 3 | pub const COMPONENT_NAME : u16 = 16; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CREATOR_ACCOUNT_NAME` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:4:11 [INFO] [stdout] | [INFO] [stdout] 4 | pub const CREATOR_ACCOUNT_NAME : u16 = 129; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `CREATOR_USER_NAME` is never used [INFO] [stdout] --> src/fmp_format/metadata_constants.rs:5:11 [INFO] [stdout] | [INFO] [stdout] 5 | pub const CREATOR_USER_NAME : u16 = 130; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Sector` is never constructed [INFO] [stdout] --> src/fmp_format/sector.rs:5:12 [INFO] [stdout] | [INFO] [stdout] 5 | pub struct Sector<'a> { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/fmp_format/sector.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 14 | impl<'a> Sector<'a> { [INFO] [stdout] | ------------------- associated function in this implementation [INFO] [stdout] 15 | fn new( [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_sector` is never used [INFO] [stdout] --> src/fmp_format/sector.rs:33:8 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn get_sector(sector: &[u8]) -> Sector { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_path_int` is never used [INFO] [stdout] --> src/util/format_decode.rs:2:8 [INFO] [stdout] | [INFO] [stdout] 2 | pub fn get_path_int(bytes : &[u8]) -> usize { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_int` is never used [INFO] [stdout] --> src/util/format_decode.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn get_int(bytes: &[u8]) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fm_string_decrypt` is never used [INFO] [stdout] --> src/util/format_decode.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn fm_string_decrypt(bytes: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `SECTOR_SIZE` is never used [INFO] [stdout] --> src/decompile/decompiler.rs:14:7 [INFO] [stdout] | [INFO] [stdout] 14 | const SECTOR_SIZE : usize = 4096; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decompile_calculation` is never used [INFO] [stdout] --> src/decompile/decompiler.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn decompile_calculation(bytecode: &[u8]) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decompile_fmp12_file_with_header` is never used [INFO] [stdout] --> src/decompile/decompiler.rs:109:8 [INFO] [stdout] | [INFO] [stdout] 109 | pub fn decompile_fmp12_file_with_header(path: &Path) -> FmpFile { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `decompile_fmp12_file` is never used [INFO] [stdout] --> src/decompile/decompiler.rs:118:8 [INFO] [stdout] | [INFO] [stdout] 118 | pub fn decompile_fmp12_file(path: &Path) -> FmpFile { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `Instruction` is never used [INFO] [stdout] --> src/script_engine/instructions.rs:5:22 [INFO] [stdout] | [INFO] [stdout] 5 | #[repr(u8)] pub enum Instruction { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `INSTRUCTIONMAP` is never used [INFO] [stdout] --> src/script_engine/instructions.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 220 | pub static INSTRUCTIONMAP : [Option; 255] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScriptStep` is never constructed [INFO] [stdout] --> src/script_engine/instructions.rs:479:12 [INFO] [stdout] | [INFO] [stdout] 479 | pub struct ScriptStep { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Script` is never constructed [INFO] [stdout] --> src/script_engine/instructions.rs:485:12 [INFO] [stdout] | [INFO] [stdout] 485 | pub struct Script { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `FMComponentType` is never used [INFO] [stdout] --> src/repr/component.rs:7:10 [INFO] [stdout] | [INFO] [stdout] 7 | pub enum FMComponentType { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentField` is never constructed [INFO] [stdout] --> src/repr/component.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | pub struct FMComponentField { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl FMComponentField { [INFO] [stdout] | --------------------- associated function in this implementation [INFO] [stdout] 27 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentTest` is never constructed [INFO] [stdout] --> src/repr/component.rs:40:12 [INFO] [stdout] | [INFO] [stdout] 40 | pub struct FMComponentTest { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:49:12 [INFO] [stdout] | [INFO] [stdout] 48 | impl FMComponentTest { [INFO] [stdout] | -------------------- associated function in this implementation [INFO] [stdout] 49 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentTable` is never constructed [INFO] [stdout] --> src/repr/component.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct FMComponentTable { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated functions `new` and `new_init` are never used [INFO] [stdout] --> src/repr/component.rs:70:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl FMComponentTable { [INFO] [stdout] | --------------------- associated functions in this implementation [INFO] [stdout] 70 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 80 | pub fn new_init() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentScript` is never constructed [INFO] [stdout] --> src/repr/component.rs:93:12 [INFO] [stdout] | [INFO] [stdout] 93 | pub struct FMComponentScript { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:102:12 [INFO] [stdout] | [INFO] [stdout] 101 | impl FMComponentScript { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 102 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentTableOccurence` is never constructed [INFO] [stdout] --> src/repr/component.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | pub struct FMComponentTableOccurence { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:123:12 [INFO] [stdout] | [INFO] [stdout] 122 | impl FMComponentTableOccurence { [INFO] [stdout] | ------------------------------ associated function in this implementation [INFO] [stdout] 123 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentRelationship` is never constructed [INFO] [stdout] --> src/repr/component.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 135 | pub struct FMComponentRelationship { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:144:12 [INFO] [stdout] | [INFO] [stdout] 143 | impl FMComponentRelationship { [INFO] [stdout] | ---------------------------- associated function in this implementation [INFO] [stdout] 144 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentLayout` is never constructed [INFO] [stdout] --> src/repr/component.rs:156:12 [INFO] [stdout] | [INFO] [stdout] 156 | pub struct FMComponentLayout { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:163:12 [INFO] [stdout] | [INFO] [stdout] 162 | impl FMComponentLayout { [INFO] [stdout] | ---------------------- associated function in this implementation [INFO] [stdout] 163 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FMComponentValueList` is never constructed [INFO] [stdout] --> src/repr/component.rs:173:12 [INFO] [stdout] | [INFO] [stdout] 173 | pub struct FMComponentValueList { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/component.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 179 | impl FMComponentValueList { [INFO] [stdout] | ------------------------- associated function in this implementation [INFO] [stdout] 180 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `FmpFile` is never constructed [INFO] [stdout] --> src/repr/file.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct FmpFile { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/repr/file.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl FmpFile { [INFO] [stdout] | ------------ associated function in this implementation [INFO] [stdout] 18 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/fmp_format/sector.rs:33:27 [INFO] [stdout] | [INFO] [stdout] 33 | pub fn get_sector(sector: &[u8]) -> Sector { [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] 33 | pub fn get_sector(sector: &[u8]) -> Sector<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 11.86s [INFO] running `Command { std: "docker" "inspect" "69b0d207744bdd8fdb9a8470e005e842801057ee8606a76bd597f82710c9b02b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "69b0d207744bdd8fdb9a8470e005e842801057ee8606a76bd597f82710c9b02b", kill_on_drop: false }` [INFO] [stdout] 69b0d207744bdd8fdb9a8470e005e842801057ee8606a76bd597f82710c9b02b