Files
FPGA-Neural/sim/neuron_parallel.vcd
micheleandClaude Sonnet 5 07a48e401f fix: close 7 zero-value/mid-run guard gaps found in re-certification campaign
Fixes all 7 bugs found in the FPGA-Neural re-certification campaign
(docs/validation/bugs.md, CERTIFICATION.md), per campaign policy that
fixes land as a commit separate from the analysis work (commits
313a199..77e74db):

- BUG-005 (CRITICAL): layer_sequencer.v -- RUN_NETWORK(num_layers=0)
  ran through 256 fabricated layers reading arbitrary PSRAM data as
  descriptors. Now an immediate no-op.
- BUG-007 (CRITICAL): spi_engine.v -- SET_NET_TYPE received mid-run
  remapped the arbiter mux and hung the in-progress engine. Now
  rejected while graph_busy/seq_busy, verified not to partially apply.
- BUG-002 (MEDIA): neuron_parallel.v -- N_INPUTS=0 bypassed the
  elaboration-time guard, leaving x_bus/w_bus undriven. Guard extended
  to reject N_INPUTS==0.
- BUG-003 (MEDIA): neuron_parallel.v -- n_inputs_real=0 at runtime had
  inconsistent behavior across repeated runs. Now an explicit early-out
  via the existing "finishing" completion path.
- BUG-004 (BASSA): neuron_memory.v -- n_neurons_real=0 silently ignored
  the limit. Fixed at all three entry points into the vulnerable
  termination checks (STATE_READ_X, STATE_READ_W, and the X->W
  dispatch).
- BUG-006 (BASSA): graph_engine.v -- num_neurons_graph=0 relied on an
  incidental guard rather than a real one. Now an explicit no-op.
- BUG-001 (INFO): removed sim/top.v, confirmed dead code from the
  pre-INT8 Q8.8 era.

Every bug-reproduction testbench is rewritten from observe-only to
hard-assert the fixed behavior (sim/*_bug00[2-7]*_tb.v), verified
individually and via a full regression (44 testbenches, 43 PASS, 0
FAIL/ERROR, 1 benchmark by design). Re-verified on the real toolchain
(Yosys synth_ecp5 + nextpnr-ecp5): 0 constraint errors, Fmax 68.65 MHz
(was 67.91 MHz, within known placement noise), critical path
structurally unchanged (neuron_parallel/mac8 accumulator carry chain).

Updates docs/validation/bugs.md and CERTIFICATION.md to reflect the
resolved state, and docs/FPGA-NeuralNetwork-Engine.md + the LaTeX
datasheet (IT/EN) with inline notes on each fixed edge case, closing
the datasheet/RTL gap flagged in C.13 of the original certification.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013xXuuRUWZScuo1DeYJxs3v
2026-09-04 20:29:05 +02:00

1585 lines
28 KiB
Plaintext

$date
Fri Sep 4 20:17:19 2026
$end
$version
Icarus Verilog
$end
$timescale
1ps
$end
$scope module tb $end
$var wire 8 ! y [7:0] $end
$var wire 1 " done $end
$var wire 1 # busy $end
$var parameter 32 $ ACC_WIDTH $end
$var parameter 2 % ACT_NONE $end
$var parameter 2 & ACT_RELU $end
$var parameter 32 ' DATA_WIDTH $end
$var parameter 32 ( N_INPUTS $end
$var parameter 32 ) PARALLEL $end
$var reg 2 * activation [1:0] $end
$var reg 8 + bias [7:0] $end
$var reg 1 , clk $end
$var reg 16 - n_inputs_real [15:0] $end
$var reg 1 . rst $end
$var reg 1 / start $end
$var reg 256 0 w_bus [255:0] $end
$var reg 256 1 x_bus [255:0] $end
$var integer 32 2 cycles_full [31:0] $end
$var integer 32 3 cycles_reduced [31:0] $end
$var integer 32 4 errors [31:0] $end
$var integer 32 5 i [31:0] $end
$var integer 32 6 t_done [31:0] $end
$var integer 32 7 t_start [31:0] $end
$scope module dut $end
$var wire 2 8 activation [1:0] $end
$var wire 8 9 bias [7:0] $end
$var wire 1 , clk $end
$var wire 1 : final_acc_in_range $end
$var wire 1 ; final_acc_le_zero $end
$var wire 1 < final_acc_upper_all0 $end
$var wire 16 = n_inputs_real [15:0] $end
$var wire 1 . rst $end
$var wire 1 / start $end
$var wire 256 > w_bus [255:0] $end
$var wire 256 ? x_bus [255:0] $end
$var wire 8 @ y_relu [7:0] $end
$var wire 8 A y_none [7:0] $end
$var wire 64 B x_group [63:0] $end
$var wire 64 C w_group [63:0] $end
$var wire 16 D groups_real [15:0] $end
$var wire 1 E final_acc_upper_all1 $end
$var wire 1 F final_acc_sign $end
$var wire 32 G final_acc [31:0] $end
$var wire 32 H bias_ext [31:0] $end
$var wire 32 I acc_next [31:0] $end
$var parameter 32 J ACC_WIDTH $end
$var parameter 2 K ACT_NONE $end
$var parameter 2 L ACT_RELU $end
$var parameter 32 M DATA_WIDTH $end
$var parameter 32 N GROUPS $end
$var parameter 32 O GROUP_INDEX_WIDTH $end
$var parameter 32 P N_INPUTS $end
$var parameter 32 Q PARALLEL $end
$var reg 32 R acc [31:0] $end
$var reg 1 # busy $end
$var reg 1 " done $end
$var reg 1 S finishing $end
$var reg 2 T group_index [1:0] $end
$var reg 8 U y [7:0] $end
$scope module u_mac8 $end
$var wire 32 V acc_in [31:0] $end
$var wire 64 W w_bus [63:0] $end
$var wire 64 X x_bus [63:0] $end
$var wire 32 Y acc_out [31:0] $end
$var parameter 32 Z ACC_WIDTH $end
$var parameter 32 [ DATA_WIDTH $end
$var parameter 32 \ PARALLEL $end
$var parameter 32 ] TREE_LEVELS $end
$scope begin GEN_MAC[0] $end
$var parameter 2 ^ i $end
$scope module u_mac $end
$var wire 32 _ acc_in [31:0] $end
$var wire 8 ` w [7:0] $end
$var wire 8 a x [7:0] $end
$var wire 32 b product_ext [31:0] $end
$var wire 16 c product [15:0] $end
$var wire 32 d acc_out [31:0] $end
$var parameter 32 e ACC_WIDTH $end
$var parameter 32 f DATA_WIDTH $end
$var parameter 64 g PROD_WIDTH $end
$upscope $end
$upscope $end
$scope begin GEN_MAC[1] $end
$var parameter 2 h i $end
$scope module u_mac $end
$var wire 32 i acc_in [31:0] $end
$var wire 8 j w [7:0] $end
$var wire 8 k x [7:0] $end
$var wire 32 l product_ext [31:0] $end
$var wire 16 m product [15:0] $end
$var wire 32 n acc_out [31:0] $end
$var parameter 32 o ACC_WIDTH $end
$var parameter 32 p DATA_WIDTH $end
$var parameter 64 q PROD_WIDTH $end
$upscope $end
$upscope $end
$scope begin GEN_MAC[2] $end
$var parameter 3 r i $end
$scope module u_mac $end
$var wire 32 s acc_in [31:0] $end
$var wire 8 t w [7:0] $end
$var wire 8 u x [7:0] $end
$var wire 32 v product_ext [31:0] $end
$var wire 16 w product [15:0] $end
$var wire 32 x acc_out [31:0] $end
$var parameter 32 y ACC_WIDTH $end
$var parameter 32 z DATA_WIDTH $end
$var parameter 64 { PROD_WIDTH $end
$upscope $end
$upscope $end
$scope begin GEN_MAC[3] $end
$var parameter 3 | i $end
$scope module u_mac $end
$var wire 32 } acc_in [31:0] $end
$var wire 8 ~ w [7:0] $end
$var wire 8 !" x [7:0] $end
$var wire 32 "" product_ext [31:0] $end
$var wire 16 #" product [15:0] $end
$var wire 32 $" acc_out [31:0] $end
$var parameter 32 %" ACC_WIDTH $end
$var parameter 32 &" DATA_WIDTH $end
$var parameter 64 '" PROD_WIDTH $end
$upscope $end
$upscope $end
$scope begin GEN_MAC[4] $end
$var parameter 4 (" i $end
$scope module u_mac $end
$var wire 32 )" acc_in [31:0] $end
$var wire 8 *" w [7:0] $end
$var wire 8 +" x [7:0] $end
$var wire 32 ," product_ext [31:0] $end
$var wire 16 -" product [15:0] $end
$var wire 32 ." acc_out [31:0] $end
$var parameter 32 /" ACC_WIDTH $end
$var parameter 32 0" DATA_WIDTH $end
$var parameter 64 1" PROD_WIDTH $end
$upscope $end
$upscope $end
$scope begin GEN_MAC[5] $end
$var parameter 4 2" i $end
$scope module u_mac $end
$var wire 32 3" acc_in [31:0] $end
$var wire 8 4" w [7:0] $end
$var wire 8 5" x [7:0] $end
$var wire 32 6" product_ext [31:0] $end
$var wire 16 7" product [15:0] $end
$var wire 32 8" acc_out [31:0] $end
$var parameter 32 9" ACC_WIDTH $end
$var parameter 32 :" DATA_WIDTH $end
$var parameter 64 ;" PROD_WIDTH $end
$upscope $end
$upscope $end
$scope begin GEN_MAC[6] $end
$var parameter 4 <" i $end
$scope module u_mac $end
$var wire 32 =" acc_in [31:0] $end
$var wire 8 >" w [7:0] $end
$var wire 8 ?" x [7:0] $end
$var wire 32 @" product_ext [31:0] $end
$var wire 16 A" product [15:0] $end
$var wire 32 B" acc_out [31:0] $end
$var parameter 32 C" ACC_WIDTH $end
$var parameter 32 D" DATA_WIDTH $end
$var parameter 64 E" PROD_WIDTH $end
$upscope $end
$upscope $end
$scope begin GEN_MAC[7] $end
$var parameter 4 F" i $end
$scope module u_mac $end
$var wire 32 G" acc_in [31:0] $end
$var wire 8 H" w [7:0] $end
$var wire 8 I" x [7:0] $end
$var wire 32 J" product_ext [31:0] $end
$var wire 16 K" product [15:0] $end
$var wire 32 L" acc_out [31:0] $end
$var parameter 32 M" ACC_WIDTH $end
$var parameter 32 N" DATA_WIDTH $end
$var parameter 64 O" PROD_WIDTH $end
$upscope $end
$upscope $end
$scope begin GEN_TREE_INPUT[0] $end
$var parameter 2 P" i $end
$upscope $end
$scope begin GEN_TREE_INPUT[1] $end
$var parameter 2 Q" i $end
$upscope $end
$scope begin GEN_TREE_INPUT[2] $end
$var parameter 3 R" i $end
$upscope $end
$scope begin GEN_TREE_INPUT[3] $end
$var parameter 3 S" i $end
$upscope $end
$scope begin GEN_TREE_INPUT[4] $end
$var parameter 4 T" i $end
$upscope $end
$scope begin GEN_TREE_INPUT[5] $end
$var parameter 4 U" i $end
$upscope $end
$scope begin GEN_TREE_INPUT[6] $end
$var parameter 4 V" i $end
$upscope $end
$scope begin GEN_TREE_INPUT[7] $end
$var parameter 4 W" i $end
$upscope $end
$scope begin GEN_TREE_LEVEL[0] $end
$var parameter 2 X" level $end
$scope begin GEN_TREE_NODE[0] $end
$var parameter 2 Y" node $end
$upscope $end
$scope begin GEN_TREE_NODE[1] $end
$var parameter 2 Z" node $end
$upscope $end
$scope begin GEN_TREE_NODE[2] $end
$var parameter 3 [" node $end
$upscope $end
$scope begin GEN_TREE_NODE[3] $end
$var parameter 3 \" node $end
$upscope $end
$upscope $end
$scope begin GEN_TREE_LEVEL[1] $end
$var parameter 2 ]" level $end
$scope begin GEN_TREE_NODE[0] $end
$var parameter 2 ^" node $end
$upscope $end
$scope begin GEN_TREE_NODE[1] $end
$var parameter 2 _" node $end
$upscope $end
$upscope $end
$scope begin GEN_TREE_LEVEL[2] $end
$var parameter 3 `" level $end
$scope begin GEN_TREE_NODE[0] $end
$var parameter 2 a" node $end
$upscope $end
$upscope $end
$upscope $end
$upscope $end
$scope task run_neuron $end
$upscope $end
$scope task test_1 $end
$upscope $end
$scope task test_2 $end
$upscope $end
$scope task test_3 $end
$upscope $end
$scope task test_4 $end
$upscope $end
$scope task test_5 $end
$upscope $end
$scope task test_6 $end
$upscope $end
$scope task test_7 $end
$var reg 1 b" pass_7 $end
$upscope $end
$upscope $end
$enddefinitions $end
$comment Show the parameter values. $end
$dumpall
b0 a"
b10 `"
b1 _"
b0 ^"
b1 ]"
b11 \"
b10 ["
b1 Z"
b0 Y"
b0 X"
b111 W"
b110 V"
b101 U"
b100 T"
b11 S"
b10 R"
b1 Q"
b0 P"
b10000 O"
b1000 N"
b100000 M"
b111 F"
b10000 E"
b1000 D"
b100000 C"
b110 <"
b10000 ;"
b1000 :"
b100000 9"
b101 2"
b10000 1"
b1000 0"
b100000 /"
b100 ("
b10000 '"
b1000 &"
b100000 %"
b11 |
b10000 {
b1000 z
b100000 y
b10 r
b10000 q
b1000 p
b100000 o
b1 h
b10000 g
b1000 f
b100000 e
b0 ^
b11 ]
b1000 \
b1000 [
b100000 Z
b1000 Q
b100000 P
b10 O
b100 N
b1000 M
b1 L
b0 K
b100000 J
b1000 )
b100000 (
b1000 '
b1 &
b0 %
b100000 $
$end
#0
$dumpvars
xb"
bx L"
bx K"
bx J"
bx I"
bx H"
b0 G"
bx B"
bx A"
bx @"
bx ?"
bx >"
b0 ="
bx 8"
bx 7"
bx 6"
bx 5"
bx 4"
b0 3"
bx ."
bx -"
bx ,"
bx +"
bx *"
b0 )"
bx $"
bx #"
bx ""
bx !"
bx ~
b0 }
bx x
bx w
bx v
bx u
bx t
b0 s
bx n
bx m
bx l
bx k
bx j
b0 i
bx d
bx c
bx b
bx a
bx `
b0 _
bx Y
bx X
bx W
bx V
bx U
bx T
xS
bx R
bx I
b0 H
bx G
xF
xE
b100 D
bx C
bx B
bx A
bx @
b0 ?
b0 >
b100000 =
x<
x;
x:
b0 9
b1 8
bx 7
bx 6
bx 5
b0 4
bx 3
bx 2
b0 1
b0 0
0/
1.
b100000 -
0,
b0 +
b1 *
x#
x"
bx !
$end
#5000
b0 I
b0 Y
b0 d
b0 n
b0 x
b0 $"
b0 ."
b0 8"
b0 B"
b0 L"
b0 A
1:
b0 @
b0 b
b0 l
b0 v
b0 ""
b0 ,"
b0 6"
b0 @"
b0 J"
1<
1;
b0 c
b0 a
b0 m
b0 k
b0 w
b0 u
b0 #"
b0 !"
b0 -"
b0 +"
b0 7"
b0 5"
b0 A"
b0 ?"
b0 K"
b0 I"
b0 `
b0 j
b0 t
b0 ~
b0 *"
b0 4"
b0 >"
b0 H"
0F
0E
b0 B
b0 X
b0 C
b0 W
0S
0"
0#
b0 !
b0 U
b0 G
b0 R
b0 V
b0 T
1,
#10000
0,
#15000
b1 @
0;
b1 A
b10 x
b10 v
b11111111111111111111111111111100 n
b11111111111111111111111111111100 l
b100 I
b100 Y
b110 d
b110 b
b10 w
b1 t
b10 u
b1111111111111100 m
b11111111 j
b100 k
b110 c
b10 `
b11 a
b1 G
b1 H
b11111111100000010 C
b11111111100000010 W
b11111111100000010 0
b11111111100000010 >
b100000010000000011 B
b100000010000000011 X
b100000010000000011 1
b100000010000000011 ?
b1 +
b1 9
0.
1,
#20000
0,
#25000
1#
1/
1,
#30000
0,
#35000
b0 d
b0 b
b0 n
b0 l
b0 x
b0 v
b101 @
b0 a
b0 k
b0 u
b0 c
b0 `
b0 m
b0 j
b0 w
b0 t
b101 A
b0 B
b0 X
b0 C
b0 W
b1 T
b101 G
b100 I
b100 Y
b100 R
b100 V
0/
1,
#40000
0,
#45000
b10 T
1,
#50000
0,
#55000
b11 T
1,
#60000
0,
#65000
1S
1,
#70000
0,
#75000
0S
1"
0#
b101 !
b101 U
1,
#80000
0,
#85000
0"
b100 @
b100 A
b11111111111111111111111111111111 L"
b11111111111111111111111111111111 J"
b11111111111111111111111111111111 B"
b11111111111111111111111111111111 @"
b11111111111111111111111111111111 8"
b11111111111111111111111111111111 6"
b11111111111111111111111111111111 ."
b11111111111111111111111111111111 ,"
b11111111111111111111111111111111 $"
b11111111111111111111111111111111 ""
b11111111111111111111111111111111 x
b11111111111111111111111111111111 v
b11111111111111111111111111111111 n
b11111111111111111111111111111111 l
b11111111111111111111111111111100 I
b11111111111111111111111111111100 Y
b11111111111111111111111111111111 d
b11111111111111111111111111111111 b
b1111111111111111 K"
b11111111 H"
b1 I"
b1111111111111111 A"
b11111111 >"
b1 ?"
b1111111111111111 7"
b11111111 4"
b1 5"
b1111111111111111 -"
b11111111 *"
b1 +"
b1111111111111111 #"
b11111111 ~
b1 !"
b1111111111111111 w
b11111111 t
b1 u
b1111111111111111 m
b11111111 j
b1 k
b1111111111111111 c
b11111111 `
b1 a
b100 G
b0 H
b1111111111111111111111111111111111111111111111111111111111111111 C
b1111111111111111111111111111111111111111111111111111111111111111 W
b100000001000000010000000100000001000000010000000100000001 B
b100000001000000010000000100000001000000010000000100000001 X
b100000 5
b0 +
b0 9
b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 0
b1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 >
b100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001 1
b100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001 ?
1,
#90000
0,
#95000
b0 @
1;
b0 A
1#
b0 G
b11111111111111111111111111111000 I
b11111111111111111111111111111000 Y
b0 R
b0 V
b0 T
1/
1,
#100000
0,
#105000
0<
b11111000 A
1F
1E
b1 T
b11111111111111111111111111111000 G
b11111111111111111111111111110000 I
b11111111111111111111111111110000 Y
b11111111111111111111111111111000 R
b11111111111111111111111111111000 V
0/
1,
#110000
0,
#115000
b11110000 A
b10 T
b11111111111111111111111111110000 G
b11111111111111111111111111101000 I
b11111111111111111111111111101000 Y
b11111111111111111111111111110000 R
b11111111111111111111111111110000 V
1,
#120000
0,
#125000
b11101000 A
b11 T
b11111111111111111111111111101000 G
b11111111111111111111111111100000 I
b11111111111111111111111111100000 Y
b11111111111111111111111111101000 R
b11111111111111111111111111101000 V
1,
#130000
0,
#135000
b11100000 A
1S
b11111111111111111111111111100000 G
b11111111111111111111111111011000 I
b11111111111111111111111111011000 Y
b11111111111111111111111111100000 R
b11111111111111111111111111100000 V
1,
#140000
0,
#145000
0S
1"
0#
b0 !
b0 U
1,
#150000
0,
#155000
0"
b11001000 d
b11001000 b
b11001000 n
b11001000 l
b11001000 x
b11001000 v
b11001000 $"
b11001000 ""
b11001000 ."
b11001000 ,"
b11001000 8"
b11001000 6"
b11001000 B"
b11001000 @"
b11000100000 I
b11000100000 Y
b11001000 L"
b11001000 J"
b10 `
b10 j
b10 t
b10 ~
b10 *"
b10 4"
b10 >"
b10 H"
b11001000 c
b1100100 a
b11001000 m
b1100100 k
b11001000 w
b1100100 u
b11001000 #"
b1100100 !"
b11001000 -"
b1100100 +"
b11001000 7"
b1100100 5"
b11001000 A"
b1100100 ?"
b11001000 K"
b1100100 I"
b100000 5
b1000000010000000100000001000000010000000100000001000000010 C
b1000000010000000100000001000000010000000100000001000000010 W
b1000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010 0
b1000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010 >
b110010001100100011001000110010001100100011001000110010001100100 B
b110010001100100011001000110010001100100011001000110010001100100 X
b110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100 1
b110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100 ?
1,
#160000
0,
#165000
1<
1:
b0 A
0F
0E
1#
b0 G
b11001000000 I
b11001000000 Y
b0 R
b0 V
b0 T
1/
1,
#170000
0,
#175000
0:
b1111111 @
0<
0;
b1111111 A
b1 T
b11001000000 G
b110010000000 I
b110010000000 Y
b11001000000 R
b11001000000 V
0/
1,
#180000
0,
#185000
b10 T
b110010000000 G
b1001011000000 I
b1001011000000 Y
b110010000000 R
b110010000000 V
1,
#190000
0,
#195000
b11 T
b1001011000000 G
b1100100000000 I
b1100100000000 Y
b1001011000000 R
b1001011000000 V
1,
#200000
0,
#205000
1S
b1100100000000 G
b1111101000000 I
b1111101000000 Y
b1100100000000 R
b1100100000000 V
1,
#210000
0,
#215000
0S
1"
0#
b1111111 !
b1111111 U
1,
#220000
0,
#225000
0"
b10 d
b10 b
b11111111111111111111111111111111 n
b11111111111111111111111111111111 l
b10 x
b10 v
b11111111111111111111111111111111 $"
b11111111111111111111111111111111 ""
b10 ."
b10 ,"
b11111111111111111111111111111111 8"
b11111111111111111111111111111111 6"
b10 B"
b10 @"
b1100100000100 I
b1100100000100 Y
b11111111111111111111111111111111 L"
b11111111111111111111111111111111 J"
b1100011110000 G
b11111111111111111111111111110000 H
b1 `
b1 j
b1 t
b1 ~
b1 *"
b1 4"
b1 >"
b1 H"
b10 c
b10 a
b1111111111111111 m
b11111111 k
b10 w
b10 u
b1111111111111111 #"
b11111111 !"
b10 -"
b10 +"
b1111111111111111 7"
b11111111 5"
b10 A"
b10 ?"
b1111111111111111 K"
b11111111 I"
b100000 5
b11110000 +
b11110000 9
b100000001000000010000000100000001000000010000000100000001 C
b100000001000000010000000100000001000000010000000100000001 W
b100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001 0
b100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001 >
b1111111100000010111111110000001011111111000000101111111100000010 B
b1111111100000010111111110000001011111111000000101111111100000010 X
b1111111100000010111111110000001011111111000000101111111100000010111111110000001011111111000000101111111100000010111111110000001011111111000000101111111100000010111111110000001011111111000000101111111100000010111111110000001011111111000000101111111100000010 1
b1111111100000010111111110000001011111111000000101111111100000010111111110000001011111111000000101111111100000010111111110000001011111111000000101111111100000010111111110000001011111111000000101111111100000010111111110000001011111111000000101111111100000010 ?
1,
#230000
0,
#235000
b0 @
b11110000 A
1;
1:
1F
1E
1#
b11111111111111111111111111110000 G
b100 I
b100 Y
b0 R
b0 V
b0 T
1/
1,
#240000
0,
#245000
b11110100 A
b1 T
b11111111111111111111111111110100 G
b1000 I
b1000 Y
b100 R
b100 V
0/
1,
#250000
0,
#255000
b11111000 A
b10 T
b11111111111111111111111111111000 G
b1100 I
b1100 Y
b1000 R
b1000 V
1,
#260000
0,
#265000
b11111100 A
b11 T
b11111111111111111111111111111100 G
b10000 I
b10000 Y
b1100 R
b1100 V
1,
#270000
0,
#275000
1<
1:
b0 A
0F
0E
1S
b0 G
b10100 I
b10100 Y
b10000 R
b10000 V
1,
#280000
0,
#285000
0S
1"
0#
b0 !
b0 U
1,
#290000
0,
#295000
0"
b1101 @
0;
b1101 A
b0 d
b0 b
b0 n
b0 l
b0 x
b0 v
b0 $"
b0 ""
b0 ."
b0 ,"
b0 8"
b0 6"
b0 B"
b0 @"
b10000 I
b10000 Y
b0 L"
b0 J"
b1101 G
b11111111111111111111111111111101 H
b0 `
b0 j
b0 t
b0 ~
b0 *"
b0 4"
b0 >"
b0 H"
b0 c
b0 a
b0 m
b0 k
b0 w
b0 u
b0 #"
b0 !"
b0 -"
b0 +"
b0 7"
b0 5"
b0 A"
b0 ?"
b0 K"
b0 I"
b100 5
b0 *
b0 8
b11111101 +
b11111101 9
b0 C
b0 W
b11111111111111111111111111111111 0
b11111111111111111111111111111111 >
b0 B
b0 X
b1000000010000000100000001 1
b1000000010000000100000001 ?
1,
#300000
0,
#305000
b0 @
b11111111111111111111111111111111 d
b11111111111111111111111111111111 b
b11111111111111111111111111111111 n
b11111111111111111111111111111111 l
b11111111111111111111111111111111 x
b11111111111111111111111111111111 v
b11111111111111111111111111111111 $"
b11111111111111111111111111111111 ""
1;
0<
b11111101 A
b1111111111111111 c
b1 a
b1111111111111111 m
b1 k
b1111111111111111 w
b1 u
b1111111111111111 #"
b1 !"
b11111111 `
b11111111 j
b11111111 t
b11111111 ~
1F
1E
b1000000010000000100000001 B
b1000000010000000100000001 X
b11111111111111111111111111111111 C
b11111111111111111111111111111111 W
1#
b11111111111111111111111111111101 G
b11111111111111111111111111111100 I
b11111111111111111111111111111100 Y
b0 R
b0 V
b0 T
1/
1,
#310000
0,
#315000
b0 d
b0 b
b0 n
b0 l
b0 x
b0 v
b0 $"
b0 ""
b0 a
b0 k
b0 u
b0 !"
b0 c
b0 `
b0 m
b0 j
b0 w
b0 t
b0 #"
b0 ~
b11111001 A
b0 B
b0 X
b0 C
b0 W
b1 T
b11111111111111111111111111111001 G
b11111111111111111111111111111100 I
b11111111111111111111111111111100 Y
b11111111111111111111111111111100 R
b11111111111111111111111111111100 V
0/
1,
#320000
0,
#325000
b10 T
1,
#330000
0,
#335000
b11 T
1,
#340000
0,
#345000
1S
1,
#350000
0,
#355000
0S
1"
0#
b11111001 !
b11111001 U
1,
#360000
0,
#365000
0"
1:
b11111100 A
b11111111111111111111111100111000 L"
b11111111111111111111111100111000 J"
b11111111111111111111111100111000 B"
b11111111111111111111111100111000 @"
b11111111111111111111111100111000 8"
b11111111111111111111111100111000 6"
b11111111111111111111111100111000 ."
b11111111111111111111111100111000 ,"
b11111111111111111111111100111000 $"
b11111111111111111111111100111000 ""
b11111111111111111111111100111000 x
b11111111111111111111111100111000 v
b11111111111111111111111100111000 n
b11111111111111111111111100111000 l
b11111111111111111111100110111100 I
b11111111111111111111100110111100 Y
b11111111111111111111111100111000 d
b11111111111111111111111100111000 b
1E
b1111111100111000 K"
b11111110 H"
b1100100 I"
b1111111100111000 A"
b11111110 >"
b1100100 ?"
b1111111100111000 7"
b11111110 4"
b1100100 5"
b1111111100111000 -"
b11111110 *"
b1100100 +"
b1111111100111000 #"
b11111110 ~
b1100100 !"
b1111111100111000 w
b11111110 t
b1100100 u
b1111111100111000 m
b11111110 j
b1100100 k
b1111111100111000 c
b11111110 `
b1100100 a
b11111111111111111111111111111100 G
b0 H
b1111111011111110111111101111111011111110111111101111111011111110 C
b1111111011111110111111101111111011111110111111101111111011111110 W
b110010001100100011001000110010001100100011001000110010001100100 B
b110010001100100011001000110010001100100011001000110010001100100 X
b100000 5
b0 +
b0 9
b1111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110 0
b1111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110111111101111111011111110 >
b110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100 1
b110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100011001000110010001100100 ?
b0 *
b0 8
1,
#370000
0,
#375000
1<
1:
b0 A
0F
0E
1#
b0 G
b11111111111111111111100111000000 I
b11111111111111111111100111000000 Y
b0 R
b0 V
b0 T
1/
1,
#380000
0,
#385000
0:
0<
b10000000 A
1F
b1 T
b11111111111111111111100111000000 G
b11111111111111111111001110000000 I
b11111111111111111111001110000000 Y
b11111111111111111111100111000000 R
b11111111111111111111100111000000 V
0/
1,
#390000
0,
#395000
b10 T
b11111111111111111111001110000000 G
b11111111111111111110110101000000 I
b11111111111111111110110101000000 Y
b11111111111111111111001110000000 R
b11111111111111111111001110000000 V
1,
#400000
0,
#405000
b11 T
b11111111111111111110110101000000 G
b11111111111111111110011100000000 I
b11111111111111111110011100000000 Y
b11111111111111111110110101000000 R
b11111111111111111110110101000000 V
1,
#410000
0,
#415000
1S
b11111111111111111110011100000000 G
b11111111111111111110000011000000 I
b11111111111111111110000011000000 Y
b11111111111111111110011100000000 R
b11111111111111111110011100000000 V
1,
#420000
0,
#425000
0S
1"
0#
b10000000 !
b10000000 U
1,
#430000
0,
#435000
0"
b1 d
b1 b
b1 n
b1 l
b1 x
b1 v
b1 $"
b1 ""
b1 ."
b1 ,"
b1 8"
b1 6"
b1 B"
b1 @"
b11111111111111111110011100001000 I
b11111111111111111110011100001000 Y
b1 L"
b1 J"
b1 `
b1 j
b1 t
b1 ~
b1 *"
b1 4"
b1 >"
b1 H"
b1 c
b1 a
b1 m
b1 k
b1 w
b1 u
b1 #"
b1 !"
b1 -"
b1 +"
b1 7"
b1 5"
b1 A"
b1 ?"
b1 K"
b1 I"
b110110011 7
b100000 5
b100000001000000010000000100000001000000010000000100000001 C
b100000001000000010000000100000001000000010000000100000001 W
b100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001 0
b100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001 >
b100000001000000010000000100000001000000010000000100000001 B
b100000001000000010000000100000001000000010000000100000001 X
b100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001 1
b100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001 ?
1b"
b1 *
b1 8
1,
#440000
0,
#445000
b0 A
1:
1<
0F
1#
b0 G
b1000 I
b1000 Y
b0 R
b0 V
b0 T
1/
1,
#450000
0,
#455000
b1000 @
0;
b1000 A
b1 T
b1000 G
b10000 I
b10000 Y
b1000 R
b1000 V
0/
1,
#460000
0,
#465000
b10000 @
b10000 A
b10 T
b10000 G
b11000 I
b11000 Y
b10000 R
b10000 V
1,
#470000
0,
#475000
b11000 @
b11000 A
b11 T
b11000 G
b100000 I
b100000 Y
b11000 R
b11000 V
1,
#480000
0,
#485000
b100000 @
b100000 A
1S
b100000 G
b101000 I
b101000 Y
b100000 R
b100000 V
1,
#490000
0,
#495000
0S
1"
0#
b100000 !
b100000 U
1,
#500000
0,
#505000
0"
b10011001001001 d
b10011001001001 b
b10011001001001 n
b10011001001001 l
b10011001001001 x
b10011001001001 v
b10011001001001 $"
b10011001001001 ""
b10011001001001 ."
b10011001001001 ,"
b10011001001001 8"
b10011001001001 6"
b10011001001001 B"
b10011001001001 @"
b10011001001101000 I
b10011001001101000 Y
b10011001001001 L"
b10011001001001 J"
b1100011 `
b1100011 j
b1100011 t
b1100011 ~
b1100011 *"
b1100011 4"
b1100011 >"
b1100011 H"
b10011001001001 c
b1100011 a
b10011001001001 m
b1100011 k
b10011001001001 w
b1100011 u
b10011001001001 #"
b1100011 !"
b10011001001001 -"
b1100011 +"
b10011001001001 7"
b1100011 5"
b10011001001001 A"
b1100011 ?"
b10011001001001 K"
b1100011 I"
b111111001 7
b1 D
b1000 -
b1000 =
b100000 5
b110001101100011011000110110001101100011011000110110001101100011 C
b110001101100011011000110110001101100011011000110110001101100011 W
b110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110000000100000001000000010000000100000001000000010000000100000001 0
b110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110000000100000001000000010000000100000001000000010000000100000001 >
b110001101100011011000110110001101100011011000110110001101100011 B
b110001101100011011000110110001101100011011000110110001101100011 X
b110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110000000100000001000000010000000100000001000000010000000100000001 1
b110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110110001101100011011000110000000100000001000000010000000100000001000000010000000100000001 ?
b111 2
b111111001 6
1,
#510000
0,
#515000
b0 @
b1 d
b1 b
b1 n
b1 l
b1 x
b1 v
b1 $"
b1 ""
b1 ."
b1 ,"
b1 8"
b1 6"
b1 B"
b1 @"
b1 L"
b1 J"
1;
b0 A
b1 a
b1 k
b1 u
b1 !"
b1 +"
b1 5"
b1 ?"
b1 I"
b1 c
b1 `
b1 m
b1 j
b1 w
b1 t
b1 #"
b1 ~
b1 -"
b1 *"
b1 7"
b1 4"
b1 A"
b1 >"
b1 K"
b1 H"
b100000001000000010000000100000001000000010000000100000001 B
b100000001000000010000000100000001000000010000000100000001 X
b100000001000000010000000100000001000000010000000100000001 C
b100000001000000010000000100000001000000010000000100000001 W
1#
b0 G
b1000 I
b1000 Y
b0 R
b0 V
b0 T
1/
1,
#520000
0,
#525000
b1000 @
0;
b1000 A
1S
b1000 G
b10000 I
b10000 Y
b1000 R
b1000 V
0/
1,
#530000
0,
#535000
0S
1"
0#
b1000 !
b1000 U
1,
#540000
0,
#545000
0"
b100 D
b100000 -
b100000 =
b100 3
b1000100001 6
1,