Files
FPGA-Neural/sim/neuron_parallel.vcd
T
micheleandClaude Sonnet 5 97a21be240 feat: flash boot/persistence subsystem (SPI master, copy engine, CRC32 slot catalog)
Adds FPGA-exclusive access to the onboard W25Q128JV SPI NOR flash for
weights/bias/network persistence, layered as spi_flash_master (raw SPI,
USRMCLK-driven) -> flash_copy_engine (flash<->PSRAM streaming, erase-
before-write, Page Program loop) -> flash_slot_manager (16-slot catalog
with CRC32), exposed via 8 new SPI opcodes (0x40-0x47). Fixes two
pre-existing bugs found during bring-up: a psram_controller.v request
lost during power-up, and a one-cycle-pulse race in the PSRAM arbiter
request handshake. Full simulation + real Yosys/nextpnr-ecp5 synthesis
verification (0 errors, Fmax 66.68MHz) in WORKLOG.md and
docs/FPGA-Neural-Flash-Subsystem-Verification.md.

Also updates docs/pinout to reflect the 56-signal real .lpf (3 new
flash pins) and documents the WRITE_RAM/READ_RAM host backpressure
risk found while testing this subsystem.

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

1585 lines
28 KiB
Plaintext

$date
Fri Sep 4 07:38:13 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,