Nov 28 06:30:59.816 INFO checking dixe/Chip-8 against master#0b9f19dff1347e29bf4362ab5a8fab84b43023b5 for pr-56074 Nov 28 06:30:59.816 INFO running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/pr-56074/worker-3/master#0b9f19dff1347e29bf4362ab5a8fab84b43023b5:/target:rw,Z" "-v" "/mnt/big/crater/work/local/test-source/worker-3/pr-56074/master#0b9f19dff1347e29bf4362ab5a8fab84b43023b5:/source:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/source" "-e" "USER_ID=1000" "-e" "CMD=cargo +0b9f19dff1347e29bf4362ab5a8fab84b43023b5-alt check --frozen --all --all-targets" "-e" "CARGO_TARGET_DIR=/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/cargo-home" "-e" "RUSTUP_HOME=/rustup-home" "-m" "1536M" "--network" "none" "crater"` Nov 28 06:31:00.210 INFO [stdout] 6f6fb304e6312dd9778900180a2d6f564ca4c028e8bb02fd23f2a0cc064d3014 Nov 28 06:31:00.213 INFO running `"docker" "start" "-a" "6f6fb304e6312dd9778900180a2d6f564ca4c028e8bb02fd23f2a0cc064d3014"` Nov 28 06:31:02.311 INFO [stderr] usermod: no changes Nov 28 06:31:02.400 INFO [stderr] Checking chip8 v0.1.0 (/source) Nov 28 06:31:02.932 INFO [stderr] warning: unused variable: `inst` Nov 28 06:31:02.932 INFO [stderr] --> src/main.rs:62:9 Nov 28 06:31:02.932 INFO [stderr] | Nov 28 06:31:02.932 INFO [stderr] 62 | let inst = &instructions[chip.pc as usize]; Nov 28 06:31:02.932 INFO [stderr] | ^^^^ help: consider using `_inst` instead Nov 28 06:31:02.932 INFO [stderr] | Nov 28 06:31:02.932 INFO [stderr] = note: #[warn(unused_variables)] on by default Nov 28 06:31:02.932 INFO [stderr] Nov 28 06:31:02.932 INFO [stderr] warning: variable does not need to be mutable Nov 28 06:31:02.932 INFO [stderr] --> src/main.rs:46:9 Nov 28 06:31:02.932 INFO [stderr] | Nov 28 06:31:02.932 INFO [stderr] 46 | let mut instructions = &[Instruction::AddC {val: 10, vx:0}, Nov 28 06:31:02.932 INFO [stderr] | ----^^^^^^^^^^^^ Nov 28 06:31:02.932 INFO [stderr] | | Nov 28 06:31:02.932 INFO [stderr] | help: remove this `mut` Nov 28 06:31:02.932 INFO [stderr] | Nov 28 06:31:02.932 INFO [stderr] = note: #[warn(unused_mut)] on by default Nov 28 06:31:02.932 INFO [stderr] Nov 28 06:31:02.935 INFO [stderr] warning: variant is never constructed: `Clear` Nov 28 06:31:02.935 INFO [stderr] --> src/main.rs:9:5 Nov 28 06:31:02.935 INFO [stderr] | Nov 28 06:31:02.935 INFO [stderr] 9 | Clear, Nov 28 06:31:02.935 INFO [stderr] | ^^^^^ Nov 28 06:31:02.936 INFO [stderr] | Nov 28 06:31:02.936 INFO [stderr] = note: #[warn(dead_code)] on by default Nov 28 06:31:02.937 INFO [stderr] Nov 28 06:31:02.937 INFO [stderr] warning: variant is never constructed: `Ret` Nov 28 06:31:02.937 INFO [stderr] --> src/main.rs:10:5 Nov 28 06:31:02.937 INFO [stderr] | Nov 28 06:31:02.937 INFO [stderr] 10 | Ret, Nov 28 06:31:02.938 INFO [stderr] | ^^^ Nov 28 06:31:02.938 INFO [stderr] Nov 28 06:31:02.938 INFO [stderr] warning: variant is never constructed: `Call` Nov 28 06:31:02.938 INFO [stderr] --> src/main.rs:12:5 Nov 28 06:31:02.938 INFO [stderr] | Nov 28 06:31:02.938 INFO [stderr] 12 | Call {address: u16}, Nov 28 06:31:02.938 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.939 INFO [stderr] Nov 28 06:31:02.939 INFO [stderr] warning: variant is never constructed: `SkipNeq` Nov 28 06:31:02.939 INFO [stderr] --> src/main.rs:14:5 Nov 28 06:31:02.939 INFO [stderr] | Nov 28 06:31:02.939 INFO [stderr] 14 | SkipNeq {val: u8}, Nov 28 06:31:02.939 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.940 INFO [stderr] Nov 28 06:31:02.940 INFO [stderr] warning: variant is never constructed: `SkipEqReg` Nov 28 06:31:02.940 INFO [stderr] --> src/main.rs:15:5 Nov 28 06:31:02.940 INFO [stderr] | Nov 28 06:31:02.940 INFO [stderr] 15 | SkipEqReg {val: u8, vy: u8, vx: u8}, Nov 28 06:31:02.940 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.941 INFO [stderr] Nov 28 06:31:02.941 INFO [stderr] warning: variant is never constructed: `SetC` Nov 28 06:31:02.941 INFO [stderr] --> src/main.rs:16:5 Nov 28 06:31:02.941 INFO [stderr] | Nov 28 06:31:02.941 INFO [stderr] 16 | SetC {val: u8, vx: u8}, // VX = val Nov 28 06:31:02.941 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.949 INFO [stderr] Nov 28 06:31:02.949 INFO [stderr] warning: variant is never constructed: `SetR` Nov 28 06:31:02.949 INFO [stderr] --> src/main.rs:18:5 Nov 28 06:31:02.949 INFO [stderr] | Nov 28 06:31:02.949 INFO [stderr] 18 | SetR {vx: u8, vy: u8}, // Vx = reg[vy] Nov 28 06:31:02.949 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.950 INFO [stderr] Nov 28 06:31:02.950 INFO [stderr] warning: variant is never constructed: `OrR` Nov 28 06:31:02.950 INFO [stderr] --> src/main.rs:19:5 Nov 28 06:31:02.950 INFO [stderr] | Nov 28 06:31:02.950 INFO [stderr] 19 | OrR {vx: u8, vy: u8}, Nov 28 06:31:02.950 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.951 INFO [stderr] Nov 28 06:31:02.951 INFO [stderr] warning: variant is never constructed: `AndR` Nov 28 06:31:02.951 INFO [stderr] --> src/main.rs:20:5 Nov 28 06:31:02.951 INFO [stderr] | Nov 28 06:31:02.951 INFO [stderr] 20 | AndR {vx: u8, vy: u8}, Nov 28 06:31:02.951 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.951 INFO [stderr] Nov 28 06:31:02.952 INFO [stderr] warning: variant is never constructed: `XorR` Nov 28 06:31:02.952 INFO [stderr] --> src/main.rs:21:5 Nov 28 06:31:02.952 INFO [stderr] | Nov 28 06:31:02.952 INFO [stderr] 21 | XorR {vx: u8, vy: u8}, Nov 28 06:31:02.952 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.952 INFO [stderr] Nov 28 06:31:02.953 INFO [stderr] warning: variant is never constructed: `AddR` Nov 28 06:31:02.953 INFO [stderr] --> src/main.rs:22:5 Nov 28 06:31:02.953 INFO [stderr] | Nov 28 06:31:02.953 INFO [stderr] 22 | AddR {vx: u8, vy: u8}, // Remeber to set carry VF Nov 28 06:31:02.953 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.953 INFO [stderr] Nov 28 06:31:02.953 INFO [stderr] warning: variant is never constructed: `SubR` Nov 28 06:31:02.954 INFO [stderr] --> src/main.rs:23:5 Nov 28 06:31:02.954 INFO [stderr] | Nov 28 06:31:02.954 INFO [stderr] 23 | SubR {vx: u8, vy: u8}, // Remeber to set carry VF Nov 28 06:31:02.954 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.954 INFO [stderr] Nov 28 06:31:02.954 INFO [stderr] warning: variant is never constructed: `ShiftR` Nov 28 06:31:02.954 INFO [stderr] --> src/main.rs:24:5 Nov 28 06:31:02.955 INFO [stderr] | Nov 28 06:31:02.955 INFO [stderr] 24 | ShiftR{vx: u8}, // VF is set to least sig bit before shift Nov 28 06:31:02.955 INFO [stderr] | ^^^^^^^^^^^^^^ Nov 28 06:31:02.955 INFO [stderr] Nov 28 06:31:02.955 INFO [stderr] warning: variant is never constructed: `SubSwitch` Nov 28 06:31:02.955 INFO [stderr] --> src/main.rs:25:5 Nov 28 06:31:02.956 INFO [stderr] | Nov 28 06:31:02.956 INFO [stderr] 25 | SubSwitch{ vx: u8, vy: u8}, // VF 0 when borrow and 1 if not Nov 28 06:31:02.956 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.956 INFO [stderr] Nov 28 06:31:02.956 INFO [stderr] warning: variant is never constructed: `ShiftL` Nov 28 06:31:02.956 INFO [stderr] --> src/main.rs:26:5 Nov 28 06:31:02.957 INFO [stderr] | Nov 28 06:31:02.957 INFO [stderr] 26 | ShiftL{ vx: u8}, // vf set to most sig bit before shift Nov 28 06:31:02.957 INFO [stderr] | ^^^^^^^^^^^^^^^ Nov 28 06:31:02.957 INFO [stderr] Nov 28 06:31:02.957 INFO [stderr] warning: variant is never constructed: `NOP` Nov 28 06:31:02.957 INFO [stderr] --> src/main.rs:27:5 Nov 28 06:31:02.957 INFO [stderr] | Nov 28 06:31:02.958 INFO [stderr] 27 | NOP Nov 28 06:31:02.958 INFO [stderr] | ^^^ Nov 28 06:31:02.958 INFO [stderr] Nov 28 06:31:02.958 INFO [stderr] warning: field is never used: `ireg` Nov 28 06:31:02.958 INFO [stderr] --> src/main.rs:32:5 Nov 28 06:31:02.958 INFO [stderr] | Nov 28 06:31:02.959 INFO [stderr] 32 | ireg: u16, Nov 28 06:31:02.959 INFO [stderr] | ^^^^^^^^^ Nov 28 06:31:02.959 INFO [stderr] Nov 28 06:31:02.959 INFO [stderr] warning: field is never used: `memory` Nov 28 06:31:02.959 INFO [stderr] --> src/main.rs:33:5 Nov 28 06:31:02.959 INFO [stderr] | Nov 28 06:31:02.959 INFO [stderr] 33 | memory: [u8; 4096], Nov 28 06:31:02.960 INFO [stderr] | ^^^^^^^^^^^^^^^^^^ Nov 28 06:31:02.960 INFO [stderr] Nov 28 06:31:02.960 INFO [stderr] warning: variable `progLen` should have a snake case name such as `prog_len` Nov 28 06:31:02.960 INFO [stderr] --> src/main.rs:64:9 Nov 28 06:31:02.960 INFO [stderr] | Nov 28 06:31:02.960 INFO [stderr] 64 | let progLen = instructions.len(); Nov 28 06:31:02.961 INFO [stderr] | ^^^^^^^ Nov 28 06:31:02.961 INFO [stderr] | Nov 28 06:31:02.961 INFO [stderr] = note: #[warn(non_snake_case)] on by default Nov 28 06:31:02.961 INFO [stderr] Nov 28 06:31:03.108 INFO [stderr] warning: unused variable: `inst` Nov 28 06:31:03.109 INFO [stderr] --> src/main.rs:62:9 Nov 28 06:31:03.109 INFO [stderr] | Nov 28 06:31:03.113 INFO [stderr] 62 | let inst = &instructions[chip.pc as usize]; Nov 28 06:31:03.113 INFO [stderr] | ^^^^ help: consider using `_inst` instead Nov 28 06:31:03.113 INFO [stderr] | Nov 28 06:31:03.113 INFO [stderr] = note: #[warn(unused_variables)] on by default Nov 28 06:31:03.114 INFO [stderr] Nov 28 06:31:03.114 INFO [stderr] warning: variable does not need to be mutable Nov 28 06:31:03.114 INFO [stderr] --> src/main.rs:46:9 Nov 28 06:31:03.114 INFO [stderr] | Nov 28 06:31:03.114 INFO [stderr] 46 | let mut instructions = &[Instruction::AddC {val: 10, vx:0}, Nov 28 06:31:03.114 INFO [stderr] | ----^^^^^^^^^^^^ Nov 28 06:31:03.115 INFO [stderr] | | Nov 28 06:31:03.115 INFO [stderr] | help: remove this `mut` Nov 28 06:31:03.115 INFO [stderr] | Nov 28 06:31:03.115 INFO [stderr] = note: #[warn(unused_mut)] on by default Nov 28 06:31:03.115 INFO [stderr] Nov 28 06:31:03.116 INFO [stderr] warning: variant is never constructed: `Clear` Nov 28 06:31:03.116 INFO [stderr] --> src/main.rs:9:5 Nov 28 06:31:03.116 INFO [stderr] | Nov 28 06:31:03.116 INFO [stderr] 9 | Clear, Nov 28 06:31:03.116 INFO [stderr] | ^^^^^ Nov 28 06:31:03.117 INFO [stderr] | Nov 28 06:31:03.117 INFO [stderr] = note: #[warn(dead_code)] on by default Nov 28 06:31:03.117 INFO [stderr] Nov 28 06:31:03.117 INFO [stderr] warning: variant is never constructed: `Ret` Nov 28 06:31:03.117 INFO [stderr] --> src/main.rs:10:5 Nov 28 06:31:03.117 INFO [stderr] | Nov 28 06:31:03.118 INFO [stderr] 10 | Ret, Nov 28 06:31:03.118 INFO [stderr] | ^^^ Nov 28 06:31:03.118 INFO [stderr] Nov 28 06:31:03.118 INFO [stderr] warning: variant is never constructed: `Call` Nov 28 06:31:03.118 INFO [stderr] --> src/main.rs:12:5 Nov 28 06:31:03.119 INFO [stderr] | Nov 28 06:31:03.119 INFO [stderr] 12 | Call {address: u16}, Nov 28 06:31:03.119 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.119 INFO [stderr] Nov 28 06:31:03.119 INFO [stderr] warning: variant is never constructed: `SkipNeq` Nov 28 06:31:03.119 INFO [stderr] --> src/main.rs:14:5 Nov 28 06:31:03.119 INFO [stderr] | Nov 28 06:31:03.120 INFO [stderr] 14 | SkipNeq {val: u8}, Nov 28 06:31:03.120 INFO [stderr] | ^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.120 INFO [stderr] Nov 28 06:31:03.120 INFO [stderr] warning: variant is never constructed: `SkipEqReg` Nov 28 06:31:03.120 INFO [stderr] --> src/main.rs:15:5 Nov 28 06:31:03.121 INFO [stderr] | Nov 28 06:31:03.121 INFO [stderr] 15 | SkipEqReg {val: u8, vy: u8, vx: u8}, Nov 28 06:31:03.121 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.121 INFO [stderr] Nov 28 06:31:03.121 INFO [stderr] warning: variant is never constructed: `SetC` Nov 28 06:31:03.121 INFO [stderr] --> src/main.rs:16:5 Nov 28 06:31:03.122 INFO [stderr] | Nov 28 06:31:03.122 INFO [stderr] 16 | SetC {val: u8, vx: u8}, // VX = val Nov 28 06:31:03.122 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.122 INFO [stderr] Nov 28 06:31:03.122 INFO [stderr] warning: variant is never constructed: `SetR` Nov 28 06:31:03.122 INFO [stderr] --> src/main.rs:18:5 Nov 28 06:31:03.123 INFO [stderr] | Nov 28 06:31:03.123 INFO [stderr] 18 | SetR {vx: u8, vy: u8}, // Vx = reg[vy] Nov 28 06:31:03.123 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.123 INFO [stderr] Nov 28 06:31:03.123 INFO [stderr] warning: variant is never constructed: `OrR` Nov 28 06:31:03.124 INFO [stderr] --> src/main.rs:19:5 Nov 28 06:31:03.124 INFO [stderr] | Nov 28 06:31:03.124 INFO [stderr] 19 | OrR {vx: u8, vy: u8}, Nov 28 06:31:03.124 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.124 INFO [stderr] Nov 28 06:31:03.124 INFO [stderr] warning: variant is never constructed: `AndR` Nov 28 06:31:03.125 INFO [stderr] --> src/main.rs:20:5 Nov 28 06:31:03.125 INFO [stderr] | Nov 28 06:31:03.125 INFO [stderr] 20 | AndR {vx: u8, vy: u8}, Nov 28 06:31:03.125 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.125 INFO [stderr] Nov 28 06:31:03.125 INFO [stderr] warning: variant is never constructed: `XorR` Nov 28 06:31:03.125 INFO [stderr] --> src/main.rs:21:5 Nov 28 06:31:03.126 INFO [stderr] | Nov 28 06:31:03.126 INFO [stderr] 21 | XorR {vx: u8, vy: u8}, Nov 28 06:31:03.126 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.126 INFO [stderr] Nov 28 06:31:03.126 INFO [stderr] warning: variant is never constructed: `AddR` Nov 28 06:31:03.126 INFO [stderr] --> src/main.rs:22:5 Nov 28 06:31:03.127 INFO [stderr] | Nov 28 06:31:03.127 INFO [stderr] 22 | AddR {vx: u8, vy: u8}, // Remeber to set carry VF Nov 28 06:31:03.127 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.127 INFO [stderr] Nov 28 06:31:03.127 INFO [stderr] warning: variant is never constructed: `SubR` Nov 28 06:31:03.127 INFO [stderr] --> src/main.rs:23:5 Nov 28 06:31:03.127 INFO [stderr] | Nov 28 06:31:03.128 INFO [stderr] 23 | SubR {vx: u8, vy: u8}, // Remeber to set carry VF Nov 28 06:31:03.128 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.128 INFO [stderr] Nov 28 06:31:03.128 INFO [stderr] warning: variant is never constructed: `ShiftR` Nov 28 06:31:03.128 INFO [stderr] --> src/main.rs:24:5 Nov 28 06:31:03.128 INFO [stderr] | Nov 28 06:31:03.129 INFO [stderr] 24 | ShiftR{vx: u8}, // VF is set to least sig bit before shift Nov 28 06:31:03.129 INFO [stderr] | ^^^^^^^^^^^^^^ Nov 28 06:31:03.129 INFO [stderr] Nov 28 06:31:03.129 INFO [stderr] warning: variant is never constructed: `SubSwitch` Nov 28 06:31:03.129 INFO [stderr] --> src/main.rs:25:5 Nov 28 06:31:03.129 INFO [stderr] | Nov 28 06:31:03.129 INFO [stderr] 25 | SubSwitch{ vx: u8, vy: u8}, // VF 0 when borrow and 1 if not Nov 28 06:31:03.129 INFO [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.130 INFO [stderr] Nov 28 06:31:03.130 INFO [stderr] warning: variant is never constructed: `ShiftL` Nov 28 06:31:03.130 INFO [stderr] --> src/main.rs:26:5 Nov 28 06:31:03.130 INFO [stderr] | Nov 28 06:31:03.130 INFO [stderr] 26 | ShiftL{ vx: u8}, // vf set to most sig bit before shift Nov 28 06:31:03.130 INFO [stderr] | ^^^^^^^^^^^^^^^ Nov 28 06:31:03.130 INFO [stderr] Nov 28 06:31:03.131 INFO [stderr] warning: variant is never constructed: `NOP` Nov 28 06:31:03.131 INFO [stderr] --> src/main.rs:27:5 Nov 28 06:31:03.131 INFO [stderr] | Nov 28 06:31:03.131 INFO [stderr] 27 | NOP Nov 28 06:31:03.131 INFO [stderr] | ^^^ Nov 28 06:31:03.131 INFO [stderr] Nov 28 06:31:03.131 INFO [stderr] warning: field is never used: `ireg` Nov 28 06:31:03.132 INFO [stderr] --> src/main.rs:32:5 Nov 28 06:31:03.132 INFO [stderr] | Nov 28 06:31:03.132 INFO [stderr] 32 | ireg: u16, Nov 28 06:31:03.132 INFO [stderr] | ^^^^^^^^^ Nov 28 06:31:03.132 INFO [stderr] Nov 28 06:31:03.132 INFO [stderr] warning: field is never used: `memory` Nov 28 06:31:03.132 INFO [stderr] --> src/main.rs:33:5 Nov 28 06:31:03.133 INFO [stderr] | Nov 28 06:31:03.133 INFO [stderr] 33 | memory: [u8; 4096], Nov 28 06:31:03.133 INFO [stderr] | ^^^^^^^^^^^^^^^^^^ Nov 28 06:31:03.133 INFO [stderr] Nov 28 06:31:03.133 INFO [stderr] warning: variable `progLen` should have a snake case name such as `prog_len` Nov 28 06:31:03.133 INFO [stderr] --> src/main.rs:64:9 Nov 28 06:31:03.133 INFO [stderr] | Nov 28 06:31:03.134 INFO [stderr] 64 | let progLen = instructions.len(); Nov 28 06:31:03.134 INFO [stderr] | ^^^^^^^ Nov 28 06:31:03.134 INFO [stderr] | Nov 28 06:31:03.134 INFO [stderr] = note: #[warn(non_snake_case)] on by default Nov 28 06:31:03.134 INFO [stderr] Nov 28 06:31:03.171 INFO [stderr] Finished dev [unoptimized + debuginfo] target(s) in 0.82s Nov 28 06:31:03.190 INFO [stderr] su: No module specific data is present Nov 28 06:31:04.465 INFO running `"docker" "inspect" "6f6fb304e6312dd9778900180a2d6f564ca4c028e8bb02fd23f2a0cc064d3014"` Nov 28 06:31:04.839 INFO running `"docker" "rm" "-f" "6f6fb304e6312dd9778900180a2d6f564ca4c028e8bb02fd23f2a0cc064d3014"` Nov 28 06:31:05.148 INFO [stdout] 6f6fb304e6312dd9778900180a2d6f564ca4c028e8bb02fd23f2a0cc064d3014