diff --git a/README.md b/README.md
index c381e76..55f84aa 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# EL2 SweRV RISC-V CoreTM 1.3 from Western Digital
-This repository contains the SweRV EL2 CoreTM design RTL
+This repository contains the EL2 RISC-V SweRV CoreTM design RTL
## License
@@ -53,7 +53,7 @@ For example to build with a DCCM of size 64 Kb:
`% $RV_ROOT/configs/swerv.config -dccm_size=64`
-This will update the **default** snapshot in $RV_ROOT/configs/snapshots/default/ with parameters for a 64K DCCM.
+This will update the **default** snapshot in ./snapshots/default/ with parameters for a 64K DCCM.
Add `-snapshot=dccm64`, for example, if you wish to name your build snapshot *dccm64* and refer to it during the build.
@@ -70,7 +70,7 @@ target``typical_pd``.**
This script derives the following consistent set of include files :
- $RV_ROOT/configs/snapshots/default
+ ./snapshots/default
├── common_defines.vh # `defines for testbench or design
├── defines.h # #defines for C/assembly headers
├── el2_param.vh # Design parameters
@@ -99,13 +99,10 @@ Example for csh or its derivatives:
*(Name your snapshot to distinguish it from the default. Without an explicit name, it will update/override the __default__ snapshot)*
For example if `mybuild` is the name for the snapshot:
- set BUILD_PATH environment variable:
-
- `setenv BUILD_PATH snapshots/mybuild`
`$RV_ROOT/configs/swerv.config [configuration options..] -snapshot=mybuild`
- Snapshots are placed in `$BUILD_PATH` directory
+ Snapshots are placed in ./snapshots directory
1. Running a simple Hello World program (verilator)
diff --git a/configs/swerv.config b/configs/swerv.config
index d717517..d333ad5 100755
--- a/configs/swerv.config
+++ b/configs/swerv.config
@@ -37,7 +37,7 @@ my @verilog_vars = qw (xlen config_key reset_vec tec_rv_icg numiregs nmi_vec tar
# Include these macros in assembly (pattern matched)
my @asm_vars = qw (xlen reset_vec nmi_vec target dccm.* iccm.* pic.* memmap testbench.* protection.* core.*);
-my @asm_overridable = qw (reset_vec nmi_vec) ;
+my @asm_overridable = qw (reset_vec nmi_vec serialio external_data) ;
# Include these macros in PD (pattern matched)
my @pd_vars = qw (physical retstack target btb.* bht.* dccm.* iccm.* icache.* pic.* bus.* reset_vec nmi_vec build_ahb_lite datawidth );
@@ -308,9 +308,9 @@ my $div_new=1; # old or new div algorithm
my $fpga_optimize = 1;
# Default bitmanip options
-my $bitmanip_zba = 0;
+my $bitmanip_zba = 1;
my $bitmanip_zbb = 1;
-my $bitmanip_zbc = 0;
+my $bitmanip_zbc = 1;
my $bitmanip_zbe = 0;
my $bitmanip_zbf = 0;
my $bitmanip_zbp = 0;
@@ -504,7 +504,7 @@ our %csr = (#{{{
"exists" => "true",
},
"mimpid" => {
- "reset" => "0x3",
+ "reset" => "0x4",
"mask" => "0x0",
"exists" => "true",
},
@@ -904,7 +904,7 @@ our %config = (#{{{
"bitmanip_zbs" => $bitmanip_zbs, # Design Parm, Overridable
"fast_interrupt_redirect" => "$fast_interrupt_redirect", # Design Parm, Overridable
"lsu2dma" => $lsu2dma, # used by design/TB for LSU to DMA bridge
- "fpga_optimize" => $fpga_optimize # Optimize fpga speed by removing clock gating
+ "fpga_optimize" => $fpga_optimize # Design Parm, Overridable
},
"dccm" => {
@@ -1986,7 +1986,6 @@ my $pddata='
`include "common_defines.vh"
`undef RV_ASSERT_ON
`undef TEC_RV_ICG
-`define TEC_RV_ICG HDBLVT16_CKGTPLT_V5_12
`define RV_PHYSICAL 1
';
@@ -2595,8 +2594,10 @@ SECTIONS
. = $io;
.data.io . : { *(.data.io) }
$data_loc
- .data : ALIGN(0x800) { *(.*data) *(.rodata*) STACK = ALIGN(16) + 0x8000; }
- .bss : { *(.bss) }
+ .data : ALIGN(0x800) { *(.*data) *(.rodata*)}
+ .bss : {BSS_START = .; *(.*bss)}
+ BSS_END = .;
+ STACK = ALIGN(16) + 0x1000;
$iccm_ctl
$dccm_ctl
}
diff --git a/design/dbg/el2_dbg.sv b/design/dbg/el2_dbg.sv
index 09fdd12..f8b25a6 100644
--- a/design/dbg/el2_dbg.sv
+++ b/design/dbg/el2_dbg.sv
@@ -108,6 +108,7 @@ import el2_pkg::*;
// general inputs
input logic clk,
+ input logic free_clk,
input logic rst_l, // This includes both top rst and debug rst
input logic dbg_rst_l,
input logic clk_override,
@@ -247,6 +248,7 @@ import el2_pkg::*;
logic [2:0] sb_axi_size;
logic dbg_dm_rst_l;
+ logic rst_l_sync;
//clken
logic dbg_free_clken;
@@ -271,6 +273,9 @@ import el2_pkg::*;
assign dbg_dm_rst_l = dbg_rst_l & (dmcontrol_reg[0] | scan_mode);
assign dbg_core_rst_l = ~dmcontrol_reg[1] | scan_mode;
+ // synchronize the rst
+ rvsyncss #(1) rstl_syncff (.din(rst_l), .dout(rst_l_sync), .clk(free_clk), .rst_l(dbg_rst_l));
+
// system bus register
// sbcs[31:29], sbcs - [22]:sbbusyerror, [21]: sbbusy, [20]:sbreadonaddr, [19:17]:sbaccess, [16]:sbautoincrement, [15]:sbreadondata, [14:12]:sberror, sbsize=32, 128=0, 64/32/16/8 are legal
assign sbcs_reg[31:29] = 3'b1;
@@ -362,7 +367,7 @@ import el2_pkg::*;
assign dmstatus_haveresetn_wren = (dmi_reg_addr == 7'h10) & dmi_reg_wdata[28] & dmi_reg_en & dmi_reg_wr_en & dmcontrol_reg[0]; // clear the havereset
assign dmstatus_havereset = ~dmstatus_haveresetn;
- assign dmstatus_unavail = dmcontrol_reg[1] | ~rst_l;
+ assign dmstatus_unavail = dmcontrol_reg[1] | ~rst_l_sync;
assign dmstatus_running = ~(dmstatus_unavail | dmstatus_halted);
rvdffs #(1) dmstatus_resumeack_reg (.din(dmstatus_resumeack_din), .dout(dmstatus_resumeack), .en(dmstatus_resumeack_wren), .rst_l(dbg_dm_rst_l), .clk(dbg_free_clk));
diff --git a/design/dec/csrdecode b/design/dec/csrdecode
index b43c79b..3b80870 100644
--- a/design/dec/csrdecode
+++ b/design/dec/csrdecode
@@ -214,7 +214,7 @@ csr[ csr_mfdc ] = { csr_mfdc presync postsync }
csr[ csr_dcsr ] = { csr_dcsr }
csr[ csr_dpc ] = { csr_dpc }
csr[ csr_mtsel ] = { csr_mtsel }
-csr[ csr_mtdata1 ] = { csr_mtdata1 postsync }
+csr[ csr_mtdata1 ] = { csr_mtdata1 presync postsync }
csr[ csr_mtdata2 ] = { csr_mtdata2 postsync }
csr[ csr_mhpmc3 ] = { csr_mhpmc3 presync }
csr[ csr_mhpmc4 ] = { csr_mhpmc4 presync }
diff --git a/design/dec/decode b/design/dec/decode
index b9e98c8..c4aca83 100644
--- a/design/dec/decode
+++ b/design/dec/decode
@@ -3,23 +3,53 @@
clz = [011000000000.....001.....0010011]
ctz = [011000000001.....001.....0010011]
-pcnt = [011000000010.....001.....0010011]
+cpop = [011000000010.....001.....0010011]
sext_b = [011000000100.....001.....0010011]
sext_h = [011000000101.....001.....0010011]
-slo = [0010000..........001.....0110011]
-sro = [0010000..........101.....0110011]
-sloi = [0010000..........001.....0010011]
-sroi = [0010000..........101.....0010011]
min = [0000101..........100.....0110011]
-max = [0000101..........101.....0110011]
-minu = [0000101..........110.....0110011]
+max = [0000101..........110.....0110011]
+minu = [0000101..........101.....0110011]
maxu = [0000101..........111.....0110011]
andn = [0100000..........111.....0110011]
orn = [0100000..........110.....0110011]
xnor = [0100000..........100.....0110011]
-pack = [0000100..........100.....0110011]
+
+#pack = [0000100..........100.....0110011]
+zext_h = [000010000000.....100.....0110011]
+pack1 = [000010000001.....100.....0110011]
+pack2 = [000010000010.....100.....0110011]
+pack3 = [000010000011.....100.....0110011]
+pack4 = [000010000100.....100.....0110011]
+pack5 = [000010000101.....100.....0110011]
+pack6 = [000010000110.....100.....0110011]
+pack7 = [000010000111.....100.....0110011]
+pack8 = [000010001000.....100.....0110011]
+pack9 = [000010001001.....100.....0110011]
+pack10 = [000010001010.....100.....0110011]
+pack11 = [000010001011.....100.....0110011]
+pack12 = [000010001100.....100.....0110011]
+pack13 = [000010001101.....100.....0110011]
+pack14 = [000010001110.....100.....0110011]
+pack15 = [000010001111.....100.....0110011]
+pack16 = [000010010000.....100.....0110011]
+pack17 = [000010010001.....100.....0110011]
+pack18 = [000010010010.....100.....0110011]
+pack19 = [000010010011.....100.....0110011]
+pack20 = [000010010100.....100.....0110011]
+pack21 = [000010010101.....100.....0110011]
+pack22 = [000010010110.....100.....0110011]
+pack23 = [000010010111.....100.....0110011]
+pack24 = [000010011000.....100.....0110011]
+pack25 = [000010011001.....100.....0110011]
+pack26 = [000010011010.....100.....0110011]
+pack27 = [000010011011.....100.....0110011]
+pack28 = [000010011100.....100.....0110011]
+pack29 = [000010011101.....100.....0110011]
+pack30 = [000010011110.....100.....0110011]
+pack31 = [000010011111.....100.....0110011]
+
packu = [0100100..........100.....0110011]
packh = [0000100..........111.....0110011]
rol = [0110000..........001.....0110011]
@@ -30,28 +60,28 @@ sh1add = [0010000..........010.....0110011]
sh2add = [0010000..........100.....0110011]
sh3add = [0010000..........110.....0110011]
-sbset = [0010100..........001.....0110011]
-sbclr = [0100100..........001.....0110011]
-sbinv = [0110100..........001.....0110011]
-sbext = [0100100..........101.....0110011]
+bset = [0010100..........001.....0110011]
+bclr = [0100100..........001.....0110011]
+binv = [0110100..........001.....0110011]
+bext = [0100100..........101.....0110011]
-sbseti = [0010100..........001.....0010011]
-sbclri = [0100100..........001.....0010011]
-sbinvi = [0110100..........001.....0010011]
-sbexti = [0100100..........101.....0010011]
+bseti = [0010100..........001.....0010011]
+bclri = [0100100..........001.....0010011]
+binvi = [0110100..........001.....0010011]
+bexti = [0100100..........101.....0010011]
grev = [0110100..........101.....0110011]
#grevi = [01101............101.....0010011]
-grevi0 = [011010000000.....101.....0010011]
-grevi1 = [011010000001.....101.....0010011]
-grevi2 = [011010000010.....101.....0010011]
-grevi3 = [011010000011.....101.....0010011]
-grevi4 = [011010000100.....101.....0010011]
-grevi5 = [011010000101.....101.....0010011]
-grevi6 = [011010000110.....101.....0010011]
-grevi7 = [011010000111.....101.....0010011]
-grevi8 = [011010001000.....101.....0010011]
-grevi9 = [011010001001.....101.....0010011]
+grevi0 = [011010000000.....101.....0010011]
+grevi1 = [011010000001.....101.....0010011]
+grevi2 = [011010000010.....101.....0010011]
+grevi3 = [011010000011.....101.....0010011]
+grevi4 = [011010000100.....101.....0010011]
+grevi5 = [011010000101.....101.....0010011]
+grevi6 = [011010000110.....101.....0010011]
+grevi7 = [011010000111.....101.....0010011]
+grevi8 = [011010001000.....101.....0010011]
+grevi9 = [011010001001.....101.....0010011]
grevi10 = [011010001010.....101.....0010011]
grevi11 = [011010001011.....101.....0010011]
grevi12 = [011010001100.....101.....0010011]
@@ -74,8 +104,7 @@ grevi27 = [011010011011.....101.....0010011]
grevi28 = [011010011100.....101.....0010011]
grevi29 = [011010011101.....101.....0010011]
grevi30 = [011010011110.....101.....0010011]
-#grevi31 = [011010011111.....101.....0010011] # REV
-rev = [011010011111.....101.....0010011]
+grevi31 = [011010011111.....101.....0010011]
gorc = [0010100..........101.....0110011]
#gorci = [00101............101.....0010011]
@@ -96,8 +125,7 @@ gorci12 = [001010001100.....101.....0010011]
gorci13 = [001010001101.....101.....0010011]
gorci14 = [001010001110.....101.....0010011]
gorci15 = [001010001111.....101.....0010011]
-#gorci16 = [001010010000.....101.....0010011] # ORC16
-orc16 = [001010010000.....101.....0010011]
+gorci16 = [001010010000.....101.....0010011]
gorci17 = [001010010001.....101.....0010011]
gorci18 = [001010010010.....101.....0010011]
gorci19 = [001010010011.....101.....0010011]
@@ -121,8 +149,8 @@ shfli = [00001000.........001.....0010011]
unshfl = [0000100..........101.....0110011]
unshfli = [00001000.........101.....0010011]
-bdep = [0100100..........110.....0110011]
-bext = [0000100..........110.....0110011]
+bdecompress = [0100100..........110.....0110011]
+bcompress = [0000100..........110.....0110011]
clmul = [0000101..........001.....0110011]
clmulr = [0000101..........010.....0110011]
@@ -137,6 +165,11 @@ crc32c_w = [011000011010.....001.....0010011]
bfp = [0100100..........111.....0110011]
+xperm_n = [0010100..........010.....0110011]
+xperm_b = [0010100..........100.....0110011]
+xperm_h = [0010100..........110.....0110011]
+
+
@@ -348,11 +381,9 @@ rv32i = {
fence_i
clz
ctz
- pcnt
+ cpop
sext_b
sext_h
- slo
- sro
min
max
pack
@@ -361,13 +392,13 @@ rv32i = {
rol
ror
zbb
- sbset
- sbclr
- sbinv
- sbext
- zbs
+ bset
+ bclr
+ binv
bext
- bdep
+ zbs
+ bcompress
+ bdecompress
zbe
clmul
clmulh
@@ -377,6 +408,9 @@ rv32i = {
gorc
shfl
unshfl
+ xperm_n
+ xperm_b
+ xperm_h
zbp
crc32_b
crc32_h
@@ -398,13 +432,9 @@ rv32i = {
rv32i[clz] = { alu zbb rs1 rd clz }
rv32i[ctz] = { alu zbb rs1 rd ctz }
-rv32i[pcnt] = { alu zbb rs1 rd pcnt }
+rv32i[cpop] = { alu zbb rs1 rd cpop }
rv32i[sext_b] = { alu zbb rs1 rd sext_b}
rv32i[sext_h] = { alu zbb rs1 rd sext_h}
-rv32i[slo] = { alu zbp rs1 rs2 rd slo }
-rv32i[sro] = { alu zbp rs1 rs2 rd sro }
-rv32i[sloi] = { alu zbp rs1 rd shimm5 slo }
-rv32i[sroi] = { alu zbp rs1 rd shimm5 sro }
rv32i[min] = { alu zbb rs1 rs2 rd sub min }
rv32i[max] = { alu zbb rs1 rs2 rd sub max }
rv32i[minu] = { alu zbb rs1 rs2 rd unsign sub min }
@@ -412,30 +442,33 @@ rv32i[maxu] = { alu zbb rs1 rs2 rd unsign sub max }
rv32i[andn] = { alu zbb zbp rs1 rs2 rd land }
rv32i[orn] = { alu zbb zbp rs1 rs2 rd lor }
rv32i[xnor] = { alu zbb zbp rs1 rs2 rd lxor }
-rv32i[pack] = { alu zbb zbp rs1 rs2 rd pack }
-rv32i[packu] = { alu zbb zbp rs1 rs2 rd packu }
-rv32i[packh] = { alu zbb zbp rs1 rs2 rd packh }
+rv32i[packu] = { alu zbp rs1 rs2 rd packu }
+rv32i[packh] = { alu zbp rs1 rs2 rd packh zbe zbf}
rv32i[rol] = { alu zbb zbp rs1 rs2 rd rol }
rv32i[ror] = { alu zbb zbp rs1 rs2 rd ror }
rv32i[rori] = { alu zbb zbp rs1 rd shimm5 ror }
-rv32i[sbset] = { alu zbs rs1 rs2 rd sbset }
-rv32i[sbclr] = { alu zbs rs1 rs2 rd sbclr }
-rv32i[sbinv] = { alu zbs rs1 rs2 rd sbinv }
-rv32i[sbext] = { alu zbs rs1 rs2 rd sbext }
-rv32i[sbseti] = { alu zbs rs1 rd shimm5 sbset }
-rv32i[sbclri] = { alu zbs rs1 rd shimm5 sbclr }
-rv32i[sbinvi] = { alu zbs rs1 rd shimm5 sbinv }
-rv32i[sbexti] = { alu zbs rs1 rd shimm5 sbext }
+rv32i[bset] = { alu zbs rs1 rs2 rd bset }
+rv32i[bclr] = { alu zbs rs1 rs2 rd bclr }
+rv32i[binv] = { alu zbs rs1 rs2 rd binv }
+rv32i[bext] = { alu zbs rs1 rs2 rd bext }
+rv32i[bseti] = { alu zbs rs1 rd shimm5 bset }
+rv32i[bclri] = { alu zbs rs1 rd shimm5 bclr }
+rv32i[binvi] = { alu zbs rs1 rd shimm5 binv }
+rv32i[bexti] = { alu zbs rs1 rd shimm5 bext }
rv32i[sh1add] = { alu zba rs1 rs2 rd sh1add}
rv32i[sh2add] = { alu zba rs1 rs2 rd sh2add}
rv32i[sh3add] = { alu zba rs1 rs2 rd sh3add}
+#v32i[pack] = { alu zbp rs1 rs2 rd pack zbe zbf}
+rv32i[zext_h] = { alu zbb zbp rs1 rs2 rd pack zbe zbf} # pack with rs2=x0
+rv32i[pack{1-31}]= { alu zbp rs1 rs2 rd pack zbe zbf}
+
rv32i[mul] = { mul rs1 rs2 rd low }
rv32i[mulh] = { mul rs1 rs2 rd rs1_sign rs2_sign }
rv32i[mulhu] = { mul rs1 rs2 rd }
rv32i[mulhsu] = { mul rs1 rs2 rd rs1_sign }
-rv32i[bext] = { mul zbe rs1 rs2 rd bext }
-rv32i[bdep] = { mul zbe rs1 rs2 rd bdep }
+rv32i[bcompress] = { mul zbe rs1 rs2 rd bcompress }
+rv32i[bdecompress] = { mul zbe rs1 rs2 rd bdecompress }
rv32i[clmul] = { mul zbc rs1 rs2 rd clmul }
rv32i[clmulh] = { mul zbc rs1 rs2 rd clmulh}
rv32i[clmulr] = { mul zbc rs1 rs2 rd clmulr}
@@ -452,19 +485,16 @@ rv32i[bfp] = { mul zbf rs1 rs2 rd bfp }
rv32i[grev] = { mul zbp rs1 rs2 rd grev }
rv32i[grevi{0-23}] = { mul zbp rs1 rd shimm5 grev }
-rv32i[grevi{25-30}] = { mul zbp rs1 rd shimm5 grev }
+rv32i[grevi{25-31}] = { mul zbp rs1 rd shimm5 grev }
rv32i[rev8] = { alu zbb zbp rs1 rd shimm5 grev } # grevi24
-rv32i[rev] = { alu zbb zbp rs1 rd shimm5 grev } # grevi31
rv32i[gorc] = { mul zbp rs1 rs2 rd gorc }
rv32i[gorci{0-6}] = { mul zbp rs1 rd shimm5 gorc }
-rv32i[gorci{8-15}] = { mul zbp rs1 rd shimm5 gorc }
-rv32i[gorci{17-31}] = { mul zbp rs1 rd shimm5 gorc }
+rv32i[gorci{8-31}] = { mul zbp rs1 rd shimm5 gorc }
rv32i[orc_b] = { alu zbb zbp rs1 rd shimm5 gorc } # gorci7
-rv32i[orc16] = { alu zbb zbp rs1 rd shimm5 gorc } # gorci16
rv32i[shfl] = { mul zbp rs1 rs2 rd shfl }
@@ -473,6 +503,11 @@ rv32i[shfli] = { mul zbp rs1 rd shimm5 shfl }
rv32i[unshfl] = { mul zbp rs1 rs2 rd unshfl}
rv32i[unshfli] = { mul zbp rs1 rd shimm5 unshfl}
+rv32i[xperm_n] = { mul zbp rs1 rs2 rd xperm_n}
+rv32i[xperm_b] = { mul zbp rs1 rs2 rd xperm_b}
+rv32i[xperm_h] = { mul zbp rs1 rs2 rd xperm_h}
+
+
rv32i[div] = { div rs1 rs2 rd }
rv32i[divu] = { div rs1 rs2 rd unsign }
diff --git a/design/dec/el2_dec_decode_ctl.sv b/design/dec/el2_dec_decode_ctl.sv
index 7d71917..255e320 100644
--- a/design/dec/el2_dec_decode_ctl.sv
+++ b/design/dec/el2_dec_decode_ctl.sv
@@ -371,6 +371,8 @@ import el2_pkg::*;
logic bitmanip_zbf_legal;
logic bitmanip_zba_legal;
logic bitmanip_zbb_zbp_legal;
+ logic bitmanip_zbp_zbe_zbf_legal;
+ logic bitmanip_zbb_zbp_zbe_zbf_legal;
logic bitmanip_legal;
logic data_gate_en;
@@ -563,15 +565,13 @@ end // else: !if(pt.BTB_ENABLE==1)
assign i0_ap.clz = i0_dp.clz;
assign i0_ap.ctz = i0_dp.ctz;
- assign i0_ap.pcnt = i0_dp.pcnt;
+ assign i0_ap.cpop = i0_dp.cpop;
assign i0_ap.sext_b = i0_dp.sext_b;
assign i0_ap.sext_h = i0_dp.sext_h;
assign i0_ap.sh1add = i0_dp.sh1add;
assign i0_ap.sh2add = i0_dp.sh2add;
assign i0_ap.sh3add = i0_dp.sh3add;
assign i0_ap.zba = i0_dp.zba;
- assign i0_ap.slo = i0_dp.slo;
- assign i0_ap.sro = i0_dp.sro;
assign i0_ap.min = i0_dp.min;
assign i0_ap.max = i0_dp.max;
assign i0_ap.pack = i0_dp.pack;
@@ -582,10 +582,10 @@ end // else: !if(pt.BTB_ENABLE==1)
assign i0_ap.grev = i0_dp.grev;
assign i0_ap.gorc = i0_dp.gorc;
assign i0_ap.zbb = i0_dp.zbb;
- assign i0_ap.sbset = i0_dp.sbset;
- assign i0_ap.sbclr = i0_dp.sbclr;
- assign i0_ap.sbinv = i0_dp.sbinv;
- assign i0_ap.sbext = i0_dp.sbext;
+ assign i0_ap.bset = i0_dp.bset;
+ assign i0_ap.bclr = i0_dp.bclr;
+ assign i0_ap.binv = i0_dp.binv;
+ assign i0_ap.bext = i0_dp.bext;
assign i0_ap.csr_write = i0_csr_write_only_d;
assign i0_ap.csr_imm = i0_dp.csr_imm;
@@ -831,25 +831,29 @@ end : cam_array
assign mul_p.valid = mul_decode_d;
- assign mul_p.rs1_sign = i0_dp.rs1_sign;
- assign mul_p.rs2_sign = i0_dp.rs2_sign;
- assign mul_p.low = i0_dp.low;
- assign mul_p.bext = i0_dp.bext;
- assign mul_p.bdep = i0_dp.bdep;
- assign mul_p.clmul = i0_dp.clmul;
- assign mul_p.clmulh = i0_dp.clmulh;
- assign mul_p.clmulr = i0_dp.clmulr;
- assign mul_p.grev = i0_dp.grev;
- assign mul_p.gorc = i0_dp.gorc;
- assign mul_p.shfl = i0_dp.shfl;
- assign mul_p.unshfl = i0_dp.unshfl;
- assign mul_p.crc32_b = i0_dp.crc32_b;
- assign mul_p.crc32_h = i0_dp.crc32_h;
- assign mul_p.crc32_w = i0_dp.crc32_w;
- assign mul_p.crc32c_b = i0_dp.crc32c_b;
- assign mul_p.crc32c_h = i0_dp.crc32c_h;
- assign mul_p.crc32c_w = i0_dp.crc32c_w;
- assign mul_p.bfp = i0_dp.bfp;
+ assign mul_p.rs1_sign = i0_dp.rs1_sign;
+ assign mul_p.rs2_sign = i0_dp.rs2_sign;
+ assign mul_p.low = i0_dp.low;
+ assign mul_p.bcompress = i0_dp.bcompress;
+ assign mul_p.bdecompress = i0_dp.bdecompress;
+ assign mul_p.clmul = i0_dp.clmul;
+ assign mul_p.clmulh = i0_dp.clmulh;
+ assign mul_p.clmulr = i0_dp.clmulr;
+ assign mul_p.grev = i0_dp.grev;
+ assign mul_p.gorc = i0_dp.gorc;
+ assign mul_p.shfl = i0_dp.shfl;
+ assign mul_p.unshfl = i0_dp.unshfl;
+ assign mul_p.xperm_n = i0_dp.xperm_n;
+ assign mul_p.xperm_b = i0_dp.xperm_b;
+ assign mul_p.xperm_h = i0_dp.xperm_h;
+ assign mul_p.crc32_b = i0_dp.crc32_b;
+ assign mul_p.crc32_h = i0_dp.crc32_h;
+ assign mul_p.crc32_w = i0_dp.crc32_w;
+ assign mul_p.crc32c_b = i0_dp.crc32c_b;
+ assign mul_p.crc32c_h = i0_dp.crc32c_h;
+ assign mul_p.crc32c_w = i0_dp.crc32c_w;
+ assign mul_p.bfp = i0_dp.bfp;
+
always_comb begin
lsu_p = '0;
@@ -1065,53 +1069,63 @@ end : cam_array
if (pt.BITMANIP_ZBB == 1)
- assign bitmanip_zbb_legal = 1'b1;
+ assign bitmanip_zbb_legal = 1'b1;
else
- assign bitmanip_zbb_legal = ~(i0_dp.zbb & ~i0_dp.zbp);
+ assign bitmanip_zbb_legal = ~(i0_dp.zbb & ~i0_dp.zbp);
if (pt.BITMANIP_ZBS == 1)
- assign bitmanip_zbs_legal = 1'b1;
+ assign bitmanip_zbs_legal = 1'b1;
else
- assign bitmanip_zbs_legal = ~i0_dp.zbs;
+ assign bitmanip_zbs_legal = ~i0_dp.zbs;
if (pt.BITMANIP_ZBE == 1)
- assign bitmanip_zbe_legal = 1'b1;
+ assign bitmanip_zbe_legal = 1'b1;
else
- assign bitmanip_zbe_legal = ~i0_dp.zbe;
+ assign bitmanip_zbe_legal = ~(i0_dp.zbe & ~i0_dp.zbp & ~i0_dp.zbf);
if (pt.BITMANIP_ZBC == 1)
- assign bitmanip_zbc_legal = 1'b1;
+ assign bitmanip_zbc_legal = 1'b1;
else
- assign bitmanip_zbc_legal = ~i0_dp.zbc;
+ assign bitmanip_zbc_legal = ~i0_dp.zbc;
if (pt.BITMANIP_ZBP == 1)
- assign bitmanip_zbp_legal = 1'b1;
+ assign bitmanip_zbp_legal = 1'b1;
else
- assign bitmanip_zbp_legal = ~(i0_dp.zbp & ~i0_dp.zbb);
+ assign bitmanip_zbp_legal = ~(i0_dp.zbp & ~i0_dp.zbb & ~i0_dp.zbe & ~i0_dp.zbf);
if (pt.BITMANIP_ZBR == 1)
- assign bitmanip_zbr_legal = 1'b1;
+ assign bitmanip_zbr_legal = 1'b1;
else
- assign bitmanip_zbr_legal = ~i0_dp.zbr;
+ assign bitmanip_zbr_legal = ~i0_dp.zbr;
if (pt.BITMANIP_ZBF == 1)
- assign bitmanip_zbf_legal = 1'b1;
+ assign bitmanip_zbf_legal = 1'b1;
else
- assign bitmanip_zbf_legal = ~i0_dp.zbf;
+ assign bitmanip_zbf_legal = ~(i0_dp.zbf & ~i0_dp.zbp & ~i0_dp.zbe);
if (pt.BITMANIP_ZBA == 1)
- assign bitmanip_zba_legal = 1'b1;
+ assign bitmanip_zba_legal = 1'b1;
else
- assign bitmanip_zba_legal = ~i0_dp.zba;
+ assign bitmanip_zba_legal = ~i0_dp.zba;
if ( (pt.BITMANIP_ZBB == 1) | (pt.BITMANIP_ZBP == 1) )
- assign bitmanip_zbb_zbp_legal = 1'b1;
+ assign bitmanip_zbb_zbp_legal = 1'b1;
else
- assign bitmanip_zbb_zbp_legal = ~(i0_dp.zbb & i0_dp.zbp);
+ assign bitmanip_zbb_zbp_legal = ~(i0_dp.zbb & i0_dp.zbp & ~i0_dp.zbf); // added ~ZBF to exclude ZEXT.H
+
+ if ( (pt.BITMANIP_ZBP == 1) | (pt.BITMANIP_ZBE == 1) | (pt.BITMANIP_ZBF == 1))
+ assign bitmanip_zbp_zbe_zbf_legal = 1'b1;
+ else
+ assign bitmanip_zbp_zbe_zbf_legal = ~(i0_dp.zbp & i0_dp.zbe & i0_dp.zbf & ~i0_dp.zbb); // added ~ZBB to exclude ZEXT.H
+
+ if ( (pt.BITMANIP_ZBB == 1) | (pt.BITMANIP_ZBP == 1) | (pt.BITMANIP_ZBE == 1) | (pt.BITMANIP_ZBF == 1))
+ assign bitmanip_zbb_zbp_zbe_zbf_legal = 1'b1;
+ else
+ assign bitmanip_zbb_zbp_zbe_zbf_legal = ~(i0_dp.zbp & i0_dp.zbe & i0_dp.zbf & i0_dp.zbb); // added only for ZEXT.H
assign any_csr_d = i0_dp.csr_read | i0_csr_write;
- assign bitmanip_legal = bitmanip_zbb_legal & bitmanip_zbs_legal & bitmanip_zbe_legal & bitmanip_zbc_legal & bitmanip_zbp_legal & bitmanip_zbr_legal & bitmanip_zbf_legal & bitmanip_zba_legal & bitmanip_zbb_zbp_legal;
+ assign bitmanip_legal = bitmanip_zbb_legal & bitmanip_zbs_legal & bitmanip_zbe_legal & bitmanip_zbc_legal & bitmanip_zbp_legal & bitmanip_zbr_legal & bitmanip_zbf_legal & bitmanip_zba_legal & bitmanip_zbb_zbp_legal & bitmanip_zbp_zbe_zbf_legal & bitmanip_zbb_zbp_zbe_zbf_legal;
assign i0_legal = i0_dp.legal & (~any_csr_d | dec_csr_legal_d) & bitmanip_legal;
@@ -1505,21 +1519,19 @@ import el2_pkg::*;
assign i[31:0] = inst[31:0];
+assign out.alu = (i[30]&i[24]&i[23]&!i[22]&!i[21]&!i[20]&i[14]&!i[5]&i[4]) | (i[30]
+ &!i[27]&!i[24]&i[4]) | (!i[30]&!i[25]&i[13]&i[12]) | (!i[29]&!i[27]
+ &!i[5]&i[4]) | (i[27]&i[25]&i[14]&i[4]) | (!i[29]&!i[25]&!i[13]&!i[12]
+ &i[4]) | (i[29]&i[27]&!i[14]&i[12]&i[4]) | (!i[27]&i[14]&!i[5]&i[4]) | (
+ i[30]&!i[29]&!i[13]&i[4]) | (!i[27]&!i[25]&i[5]&i[4]) | (i[13]&!i[5]
+ &i[4]) | (i[2]) | (i[6]) | (!i[30]&i[29]&!i[24]&!i[23]&i[22]&i[21]
+ &i[20]&!i[5]&i[4]) | (!i[12]&!i[5]&i[4]);
-assign out.alu = (i[30]&i[24]&i[23]&!i[22]&!i[21]&!i[20]&i[14]&!i[5]&i[4]) | (i[29]
- &!i[27]&!i[24]&i[4]) | (!i[25]&!i[13]&!i[12]&i[4]) | (!i[30]&!i[25]
- &i[13]&i[12]) | (i[27]&i[25]&i[14]&i[4]) | (i[29]&i[27]&!i[14]&i[4]) | (
- i[29]&!i[14]&i[5]&i[4]) | (!i[27]&!i[25]&i[14]&i[4]) | (i[30]&!i[29]
- &!i[13]&i[4]) | (!i[30]&!i[27]&!i[25]&i[4]) | (i[13]&!i[5]&i[4]) | (
- !i[12]&!i[5]&i[4]) | (i[2]) | (i[6]) | (i[30]&i[24]&i[23]&i[22]&i[21]
- &i[20]&!i[5]&i[4]) | (!i[30]&i[29]&!i[24]&!i[23]&i[22]&i[21]&i[20]
- &!i[5]&i[4]) | (!i[30]&i[24]&!i[23]&!i[22]&!i[21]&!i[20]&!i[5]&i[4]);
-
-assign out.rs1 = (!i[14]&!i[13]&!i[2]) | (!i[13]&i[11]&!i[2]) | (i[19]&i[13]&!i[2]) | (
- !i[13]&i[10]&!i[2]) | (i[18]&i[13]&!i[2]) | (!i[13]&i[9]&!i[2]) | (
- i[17]&i[13]&!i[2]) | (!i[13]&i[8]&!i[2]) | (i[16]&i[13]&!i[2]) | (
- !i[13]&i[7]&!i[2]) | (i[15]&i[13]&!i[2]) | (!i[4]&!i[3]) | (!i[6]
- &!i[2]);
+assign out.rs1 = (!i[13]&i[11]&!i[2]) | (!i[13]&i[10]&!i[2]) | (i[19]&i[13]&!i[2]) | (
+ !i[13]&i[9]&!i[2]) | (i[18]&i[13]&!i[2]) | (!i[13]&i[8]&!i[2]) | (
+ i[17]&i[13]&!i[2]) | (!i[13]&i[7]&!i[2]) | (i[16]&i[13]&!i[2]) | (
+ i[15]&i[13]&!i[2]) | (!i[4]&!i[2]) | (!i[14]&!i[13]&i[6]&!i[3]) | (
+ !i[6]&!i[2]);
assign out.rs2 = (i[5]&!i[4]&!i[2]) | (!i[6]&i[5]&!i[2]);
@@ -1528,7 +1540,7 @@ assign out.imm12 = (!i[4]&!i[3]&i[2]) | (i[13]&!i[5]&i[4]&!i[2]) | (!i[13]&!i[12
assign out.rd = (!i[5]&!i[2]) | (i[5]&i[2]) | (i[4]);
-assign out.shimm5 = (i[27]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&!i[13]&i[12]
+assign out.shimm5 = (!i[29]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[27]&!i[13]&i[12]
&!i[5]&i[4]&!i[2]) | (i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
assign out.imm20 = (i[5]&i[3]) | (i[4]&i[2]);
@@ -1562,15 +1574,14 @@ assign out.sll = (!i[29]&!i[27]&!i[25]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
assign out.sra = (i[30]&!i[29]&!i[27]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
-assign out.srl = (!i[30]&!i[29]&!i[27]&!i[25]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.srl = (!i[30]&!i[27]&!i[25]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
assign out.slt = (!i[29]&!i[25]&!i[14]&i[13]&!i[6]&i[4]&!i[2]) | (!i[14]&i[13]&!i[5]
&i[4]&!i[2]);
-assign out.unsign = (!i[27]&i[25]&i[14]&i[12]&!i[6]&i[5]&!i[2]) | (!i[14]&i[13]
- &i[12]&!i[5]&!i[2]) | (i[13]&i[6]&!i[4]&!i[2]) | (i[14]&!i[5]&!i[4]) | (
- !i[25]&!i[14]&i[13]&i[12]&!i[6]&!i[2]) | (i[27]&i[25]&i[14]&i[13]
- &!i[6]&i[5]&!i[2]);
+assign out.unsign = (!i[14]&i[13]&i[12]&!i[5]&!i[2]) | (i[13]&i[6]&!i[4]&!i[2]) | (
+ i[14]&!i[5]&!i[4]) | (!i[25]&!i[14]&i[13]&i[12]&!i[6]&!i[2]) | (
+ i[25]&i[14]&i[12]&!i[6]&i[5]&!i[2]);
assign out.condbr = (i[6]&!i[4]&!i[2]);
@@ -1625,19 +1636,17 @@ assign out.ecall = (!i[21]&!i[20]&!i[13]&!i[12]&i[6]&i[4]);
assign out.mret = (i[29]&!i[13]&!i[12]&i[6]&i[4]);
-assign out.mul = (!i[30]&i[27]&i[24]&i[20]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (
- i[29]&i[27]&!i[24]&i[23]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (
- i[29]&i[27]&!i[24]&!i[20]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (
- i[27]&!i[25]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]) | (i[30]&i[27]&i[13]
- &!i[6]&i[5]&i[4]&!i[2]) | (i[29]&i[27]&i[22]&!i[20]&i[14]&!i[13]
- &i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[21]&i[20]&i[14]&!i[13]
- &i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[22]&i[21]&i[14]&!i[13]
- &i[12]&!i[5]&i[4]&!i[2]) | (i[30]&i[29]&i[27]&!i[23]&i[14]&!i[13]
- &i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&i[27]&i[23]&i[14]&!i[13]&i[12]
- &!i[5]&i[4]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&i[12]&!i[6]
- &i[4]&!i[2]) | (i[25]&!i[14]&!i[6]&i[5]&i[4]&!i[2]) | (i[30]&!i[27]
- &i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&i[14]
- &!i[6]&i[5]&!i[2]);
+assign out.mul = (i[29]&!i[27]&i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[30]
+ &i[27]&i[13]&!i[6]&i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[23]&!i[20]
+ &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[21]&i[20]
+ &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&i[24]&i[21]
+ &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[24]&!i[22]
+ &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&i[29]&i[23]&i[14]
+ &!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[30]&i[29]&i[27]&i[22]&i[14]
+ &!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[27]&!i[25]&i[13]&!i[12]&!i[6]
+ &i[5]&i[4]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&i[12]&!i[6]
+ &i[4]&!i[2]) | (i[25]&!i[14]&!i[6]&i[5]&i[4]&!i[2]) | (i[29]&i[27]
+ &i[14]&!i[6]&i[5]&!i[2]);
assign out.rs1_sign = (!i[27]&i[25]&!i[14]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]) | (
!i[27]&i[25]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
@@ -1654,169 +1663,173 @@ assign out.fence = (!i[5]&i[3]);
assign out.fence_i = (i[12]&!i[5]&i[3]);
-assign out.clz = (i[30]&!i[27]&!i[24]&!i[22]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]&!i[5]
+assign out.clz = (i[29]&!i[27]&!i[24]&!i[22]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]&!i[5]
&i[4]&!i[2]);
-assign out.ctz = (i[30]&!i[27]&!i[24]&!i[22]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]
+assign out.ctz = (i[29]&!i[27]&!i[24]&!i[22]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]
&!i[2]);
-assign out.pcnt = (i[30]&!i[27]&!i[24]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
+assign out.cpop = (i[29]&!i[27]&!i[24]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
-assign out.sext_b = (i[30]&!i[27]&i[22]&!i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
+assign out.sext_b = (i[29]&!i[27]&i[22]&!i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
-assign out.sext_h = (i[30]&!i[27]&i[22]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
+assign out.sext_h = (i[29]&!i[27]&i[22]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
-assign out.slo = (!i[30]&i[29]&!i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.min = (i[27]&i[25]&i[14]&!i[13]&!i[6]&i[5]&!i[2]);
-assign out.sro = (!i[30]&i[29]&!i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.max = (i[27]&i[25]&i[14]&i[13]&!i[6]&i[5]&!i[2]);
-assign out.min = (i[27]&i[25]&i[14]&!i[12]&!i[6]&i[5]&!i[2]);
-
-assign out.max = (i[27]&i[25]&i[14]&i[12]&!i[6]&i[5]&!i[2]);
-
-assign out.pack = (!i[30]&i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]);
+assign out.pack = (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]);
assign out.packu = (i[30]&i[27]&!i[13]&!i[12]&i[5]&i[4]&!i[2]);
assign out.packh = (!i[30]&i[27]&!i[25]&i[13]&i[12]&!i[6]&i[5]&!i[2]);
-assign out.rol = (i[30]&!i[27]&!i[14]&i[12]&!i[6]&i[5]&i[4]&!i[2]);
+assign out.rol = (i[29]&!i[27]&!i[14]&i[12]&!i[6]&i[5]&i[4]&!i[2]);
-assign out.ror = (i[30]&i[29]&!i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.ror = (i[29]&!i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
-assign out.zbb = (i[30]&!i[27]&!i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (
- !i[30]&i[27]&i[14]&i[13]&i[12]&!i[6]&i[5]&!i[2]) | (i[30]&i[29]&!i[27]
- &i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[27]&!i[13]&!i[12]&i[5]
- &i[4]&!i[2]) | (i[30]&i[14]&!i[13]&!i[12]&!i[6]&i[5]&!i[2]) | (i[30]
- &!i[27]&i[13]&!i[6]&i[5]&i[4]&!i[2]) | (i[30]&i[29]&!i[27]&!i[6]&i[5]
- &i[4]&!i[2]) | (i[30]&i[29]&i[24]&i[23]&i[22]&i[21]&i[20]&i[14]&!i[13]
- &i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&i[29]&i[27]&!i[24]&!i[23]&i[22]
- &i[21]&i[20]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&i[27]
- &i[24]&!i[23]&!i[22]&!i[21]&!i[20]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (
- i[30]&i[29]&i[24]&i[23]&!i[22]&!i[21]&!i[20]&i[14]&!i[13]&i[12]&!i[5]
- &i[4]&!i[2]) | (i[27]&i[25]&i[14]&!i[6]&i[5]&!i[2]);
+assign out.zbb = (!i[30]&!i[29]&i[27]&!i[24]&!i[23]&!i[22]&!i[21]&!i[20]&!i[13]
+ &!i[12]&i[5]&i[4]&!i[2]) | (i[29]&!i[27]&!i[24]&!i[13]&i[12]&!i[5]
+ &i[4]&!i[2]) | (i[29]&!i[27]&i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (
+ i[30]&!i[27]&i[14]&!i[12]&!i[6]&i[5]&!i[2]) | (i[30]&!i[27]&i[13]
+ &!i[6]&i[5]&i[4]&!i[2]) | (i[29]&!i[27]&i[12]&!i[6]&i[5]&i[4]&!i[2]) | (
+ !i[30]&i[29]&!i[24]&!i[23]&i[22]&i[21]&i[20]&i[14]&!i[13]&i[12]&!i[5]
+ &i[4]&!i[2]) | (i[30]&i[29]&i[24]&i[23]&!i[22]&!i[21]&!i[20]&i[14]
+ &!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[27]&i[25]&i[14]&!i[6]&i[5]&!i[2]);
-assign out.sbset = (!i[30]&i[29]&i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.bset = (!i[30]&i[29]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
-assign out.sbclr = (i[30]&!i[29]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.bclr = (i[30]&!i[29]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
-assign out.sbinv = (i[30]&i[29]&i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.binv = (i[30]&i[29]&i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
-assign out.sbext = (i[30]&!i[29]&i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.bext = (i[30]&!i[29]&i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
assign out.zbs = (i[29]&i[27]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]) | (i[30]&!i[29]
&i[27]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
-assign out.bext = (!i[30]&i[27]&!i[25]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
+assign out.bcompress = (!i[30]&!i[29]&i[27]&!i[25]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
-assign out.bdep = (i[30]&i[27]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
+assign out.bdecompress = (i[30]&i[27]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
-assign out.zbe = (i[27]&!i[25]&i[13]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
+assign out.zbe = (i[30]&i[27]&i[14]&i[13]&!i[12]&!i[6]&i[5]&!i[2]) | (!i[30]&i[27]
+ &!i[25]&i[13]&i[12]&!i[6]&i[5]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]
+ &!i[12]&!i[6]&i[5]&i[4]&!i[2]);
assign out.clmul = (i[27]&i[25]&!i[14]&!i[13]&!i[6]&i[5]&i[4]&!i[2]);
assign out.clmulh = (i[27]&!i[14]&i[13]&i[12]&!i[6]&i[5]&!i[2]);
-assign out.clmulr = (i[27]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
+assign out.clmulr = (i[27]&i[25]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
assign out.zbc = (i[27]&i[25]&!i[14]&!i[6]&i[5]&i[4]&!i[2]);
assign out.grev = (i[30]&i[29]&i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
-assign out.gorc = (!i[30]&i[29]&i[27]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.gorc = (!i[30]&i[29]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
assign out.shfl = (!i[30]&!i[29]&i[27]&!i[25]&!i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
assign out.unshfl = (!i[30]&!i[29]&i[27]&!i[25]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
-assign out.zbp = (!i[30]&i[29]&!i[27]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (!i[30]&!i[29]
- &i[27]&!i[13]&i[12]&!i[5]&i[4]&!i[2]) | (i[30]&!i[27]&i[13]&!i[6]
- &i[5]&i[4]&!i[2]) | (i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | (
- i[30]&i[14]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | (i[29]&!i[27]&i[12]&!i[6]
- &i[5]&i[4]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]&i[12]&!i[6]&i[5]&i[4]
- &!i[2]) | (i[29]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+assign out.xperm_n = (i[29]&i[27]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
-assign out.crc32_b = (i[30]&!i[27]&i[24]&!i[23]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]
+assign out.xperm_b = (i[29]&i[27]&!i[13]&!i[12]&i[5]&i[4]&!i[2]);
+
+assign out.xperm_h = (i[29]&i[27]&i[14]&i[13]&!i[6]&i[5]&!i[2]);
+
+assign out.zbp = (i[30]&!i[27]&!i[14]&i[12]&!i[6]&i[5]&i[4]&!i[2]) | (!i[30]&i[27]
+ &!i[25]&i[13]&i[12]&!i[6]&i[5]&!i[2]) | (i[30]&!i[27]&i[13]&!i[6]
+ &i[5]&i[4]&!i[2]) | (i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | (
+ i[30]&i[14]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | (i[29]&i[27]&!i[12]&!i[6]
+ &i[5]&i[4]&!i[2]) | (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&i[12]&!i[6]
+ &i[4]&!i[2]) | (i[29]&i[14]&!i[13]&i[12]&!i[6]&i[4]&!i[2]);
+
+assign out.crc32_b = (i[29]&!i[27]&i[24]&!i[23]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]
&!i[5]&i[4]&!i[2]);
-assign out.crc32_h = (i[30]&!i[27]&i[24]&!i[23]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]
+assign out.crc32_h = (i[29]&!i[27]&i[24]&!i[23]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]
&!i[2]);
-assign out.crc32_w = (i[30]&!i[27]&i[24]&!i[23]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]
+assign out.crc32_w = (i[29]&!i[27]&i[24]&!i[23]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]
&!i[2]);
-assign out.crc32c_b = (i[30]&!i[27]&i[23]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]&!i[5]
+assign out.crc32c_b = (i[29]&!i[27]&i[23]&!i[21]&!i[20]&!i[14]&!i[13]&i[12]&!i[5]
&i[4]&!i[2]);
-assign out.crc32c_h = (i[30]&!i[27]&i[23]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
+assign out.crc32c_h = (i[29]&!i[27]&i[23]&i[20]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
-assign out.crc32c_w = (i[30]&!i[27]&i[23]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
+assign out.crc32c_w = (i[29]&!i[27]&i[23]&i[21]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
-assign out.zbr = (i[30]&!i[27]&i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
+assign out.zbr = (i[29]&!i[27]&i[24]&!i[14]&!i[13]&i[12]&!i[5]&i[4]&!i[2]);
assign out.bfp = (i[30]&i[27]&i[13]&i[12]&!i[6]&i[5]&!i[2]);
-assign out.zbf = (i[30]&i[27]&i[13]&i[12]&!i[6]&i[5]&!i[2]);
+assign out.zbf = (!i[30]&!i[29]&i[27]&!i[25]&!i[13]&!i[12]&i[5]&i[4]&!i[2]) | (
+ i[27]&!i[25]&i[13]&i[12]&!i[6]&i[5]&!i[2]);
-assign out.sh1add = (i[29]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
+assign out.sh1add = (i[29]&!i[27]&!i[14]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
-assign out.sh2add = (i[29]&i[14]&!i[13]&!i[12]&i[5]&i[4]&!i[2]);
+assign out.sh2add = (i[29]&!i[27]&i[14]&!i[13]&!i[12]&i[5]&i[4]&!i[2]);
-assign out.sh3add = (i[29]&i[14]&i[13]&!i[6]&i[5]&!i[2]);
+assign out.sh3add = (i[29]&!i[27]&i[14]&i[13]&!i[6]&i[5]&!i[2]);
-assign out.zba = (i[29]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
+assign out.zba = (i[29]&!i[27]&!i[12]&!i[6]&i[5]&i[4]&!i[2]);
-assign out.pm_alu = (i[28]&i[22]&!i[13]&!i[12]&i[4]) | (!i[30]&!i[29]&!i[27]&!i[25]
+assign out.pm_alu = (i[28]&i[20]&!i[13]&!i[12]&i[4]) | (!i[30]&!i[29]&!i[27]&!i[25]
&!i[6]&i[4]) | (!i[29]&!i[27]&!i[25]&!i[13]&i[12]&!i[6]&i[4]) | (
!i[29]&!i[27]&!i[25]&!i[14]&!i[6]&i[4]) | (i[13]&!i[5]&i[4]) | (i[4]
&i[2]) | (!i[12]&!i[5]&i[4]);
-assign out.legal = (!i[31]&!i[30]&!i[29]&i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]
- &i[22]&!i[21]&i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11]
+assign out.legal = (!i[31]&!i[30]&i[29]&i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]
+ &!i[22]&i[21]&!i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11]
&!i[10]&!i[9]&!i[8]&!i[7]&i[6]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (
- !i[31]&!i[30]&i[29]&i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&!i[22]
- &i[21]&!i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11]&!i[10]
+ !i[31]&!i[30]&!i[29]&i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&i[22]
+ &!i[21]&i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11]&!i[10]
&!i[9]&!i[8]&!i[7]&i[6]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]
&!i[30]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&!i[22]&!i[21]
&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[11]&!i[10]&!i[9]&!i[8]
- &!i[7]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]&i[29]&!i[28]&!i[26]
- &!i[25]&i[24]&!i[22]&!i[20]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (
- !i[31]&i[29]&!i[28]&!i[26]&!i[25]&i[24]&!i[22]&!i[21]&!i[6]&!i[5]
- &i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[29]&!i[28]&!i[26]&!i[25]&!i[23]
- &!i[22]&!i[20]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[29]
- &!i[28]&!i[26]&!i[25]&!i[24]&!i[23]&!i[21]&!i[6]&!i[5]&i[4]&!i[3]
- &i[1]&i[0]) | (!i[31]&!i[30]&!i[29]&!i[28]&!i[26]&i[25]&i[13]&!i[6]
- &i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[28]&!i[26]&!i[25]&!i[24]
- &!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[28]&!i[27]
- &!i[26]&!i[25]&i[14]&!i[12]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]
- &!i[30]&!i[28]&!i[27]&!i[26]&!i[25]&i[13]&!i[12]&!i[6]&i[4]&!i[3]
- &i[1]&i[0]) | (!i[31]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[13]&!i[12]
- &!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[28]&!i[27]&!i[26]&!i[25]
- &i[14]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[29]
- &!i[28]&!i[26]&!i[13]&i[12]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (
+ &!i[7]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]&i[30]&i[29]&!i[28]
+ &!i[26]&!i[25]&i[24]&!i[22]&!i[20]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (
+ !i[31]&i[30]&i[29]&!i[28]&!i[26]&!i[25]&i[24]&!i[22]&!i[21]&!i[6]
+ &!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[30]&i[29]&!i[28]&!i[26]
+ &!i[25]&!i[23]&!i[22]&!i[20]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (
+ !i[31]&i[30]&i[29]&!i[28]&!i[26]&!i[25]&!i[24]&!i[23]&!i[21]&!i[6]
+ &!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[29]&!i[28]&!i[26]
+ &i[25]&i[13]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[28]&i[27]&!i[26]
+ &!i[25]&!i[24]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]
+ &i[29]&!i[28]&!i[26]&!i[25]&i[13]&!i[12]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (
+ !i[31]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[13]&!i[12]&!i[6]&i[4]
+ &!i[3]&i[1]&i[0]) | (!i[31]&i[30]&!i[28]&!i[26]&!i[25]&i[14]&!i[6]
+ &!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[29]&!i[28]&!i[26]
+ &!i[13]&i[12]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]&!i[30]&!i[29]
+ &!i[28]&!i[27]&!i[26]&!i[25]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]
+ &i[30]&i[29]&!i[28]&!i[26]&!i[25]&!i[13]&i[12]&i[5]&i[4]&!i[3]&!i[2]
+ &i[1]&i[0]) | (!i[31]&i[30]&!i[28]&i[27]&!i[26]&!i[25]&!i[13]&i[12]
+ &!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[29]&!i[28]&!i[26]&!i[25]
+ &i[14]&!i[6]&i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[29]&!i[28]&i[27]
+ &!i[26]&!i[25]&!i[13]&i[12]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]
+ &!i[30]&!i[29]&!i[28]&!i[27]&!i[26]&!i[6]&i[5]&i[4]&!i[3]&i[1]&i[0]) | (
!i[31]&!i[30]&!i[29]&!i[28]&!i[26]&i[14]&!i[6]&i[5]&i[4]&!i[3]&i[1]
- &i[0]) | (!i[31]&i[30]&!i[28]&i[27]&!i[26]&!i[25]&!i[13]&i[12]&!i[6]
- &i[4]&!i[3]&i[1]&i[0]) | (!i[31]&i[29]&!i[28]&i[27]&!i[26]&!i[25]
- &!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]&!i[28]&!i[27]
- &!i[26]&!i[25]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[30]
- &!i[29]&!i[28]&!i[27]&!i[26]&!i[6]&i[5]&i[4]&!i[3]&i[1]&i[0]) | (
- !i[14]&!i[13]&!i[12]&i[6]&i[5]&!i[4]&!i[3]&i[1]&i[0]) | (!i[31]&!i[29]
- &!i[28]&!i[26]&!i[25]&i[14]&!i[6]&i[5]&i[4]&!i[3]&i[1]&i[0]) | (
- !i[31]&i[29]&!i[28]&!i[26]&!i[25]&!i[13]&i[12]&i[5]&i[4]&!i[3]&!i[2]
- &i[1]&i[0]) | (i[14]&i[6]&i[5]&!i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[14]
- &!i[13]&i[5]&!i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[12]&!i[6]&!i[5]&i[4]
- &!i[3]&i[1]&i[0]) | (!i[13]&i[12]&i[6]&i[5]&!i[3]&!i[2]&i[1]&i[0]) | (
- !i[31]&!i[30]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&!i[22]
- &!i[21]&!i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[13]&!i[11]
- &!i[10]&!i[9]&!i[8]&!i[7]&!i[6]&!i[5]&!i[4]&i[3]&i[2]&i[1]&i[0]) | (
- !i[31]&!i[30]&!i[29]&!i[28]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]
- &!i[13]&!i[12]&!i[11]&!i[10]&!i[9]&!i[8]&!i[7]&!i[6]&!i[5]&!i[4]&i[3]
- &i[2]&i[1]&i[0]) | (i[13]&i[6]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (
+ &i[0]) | (!i[14]&!i[13]&!i[12]&i[6]&i[5]&!i[4]&!i[3]&i[1]&i[0]) | (
+ i[14]&i[6]&i[5]&!i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[14]&!i[13]&i[5]
+ &!i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[12]&!i[6]&!i[5]&i[4]&!i[3]&i[1]
+ &i[0]) | (!i[13]&i[12]&i[6]&i[5]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]
+ &!i[30]&!i[29]&!i[28]&!i[27]&!i[26]&!i[25]&!i[24]&!i[23]&!i[22]&!i[21]
+ &!i[20]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[13]&!i[11]&!i[10]
+ &!i[9]&!i[8]&!i[7]&!i[6]&!i[5]&!i[4]&i[3]&i[2]&i[1]&i[0]) | (!i[31]
+ &!i[30]&!i[29]&!i[28]&!i[19]&!i[18]&!i[17]&!i[16]&!i[15]&!i[14]&!i[13]
+ &!i[12]&!i[11]&!i[10]&!i[9]&!i[8]&!i[7]&!i[6]&!i[5]&!i[4]&i[3]&i[2]
+ &i[1]&i[0]) | (i[13]&i[6]&i[5]&i[4]&!i[3]&!i[2]&i[1]&i[0]) | (!i[31]
+ &!i[30]&!i[28]&!i[26]&!i[25]&i[14]&!i[12]&!i[6]&i[4]&!i[3]&i[1]&i[0]) | (
i[6]&i[5]&!i[4]&i[3]&i[2]&i[1]&i[0]) | (!i[14]&!i[12]&!i[6]&!i[4]
&!i[3]&!i[2]&i[1]&i[0]) | (!i[13]&!i[6]&!i[5]&!i[4]&!i[3]&!i[2]&i[1]
&i[0]) | (i[13]&!i[6]&!i[5]&i[4]&!i[3]&i[1]&i[0]) | (!i[6]&i[4]&!i[3]
&i[2]&i[1]&i[0]);
+
+
endmodule // el2_dec_dec_ctl
diff --git a/design/dec/el2_dec_tlu_ctl.sv b/design/dec/el2_dec_tlu_ctl.sv
index 7b98983..511c0ad 100644
--- a/design/dec/el2_dec_tlu_ctl.sv
+++ b/design/dec/el2_dec_tlu_ctl.sv
@@ -604,8 +604,8 @@ localparam DCSR_STEP = 2;
assign debug_brkpt_status_ns = (debug_brkpt_valid | debug_brkpt_status_f) & (internal_dbg_halt_mode & ~dcsr_single_step_running_f);
// acks back to interface
- assign mpc_debug_halt_ack_ns = mpc_halt_state_f & internal_dbg_halt_mode_f & mpc_debug_halt_req_sync & core_empty;
- assign mpc_debug_run_ack_ns = (mpc_debug_run_req_sync & ~dbg_halt_state_ns & ~mpc_debug_halt_req_sync) | (mpc_debug_run_ack_f & mpc_debug_run_req_sync) ;
+ assign mpc_debug_halt_ack_ns = (mpc_halt_state_f & internal_dbg_halt_mode_f & mpc_debug_halt_req_sync & core_empty) | (mpc_debug_halt_ack_f & mpc_debug_halt_req_sync);
+ assign mpc_debug_run_ack_ns = (mpc_debug_run_req_sync & ~internal_dbg_halt_mode & ~mpc_debug_halt_req_sync) | (mpc_debug_run_ack_f & mpc_debug_run_req_sync) ;
// Pins
assign mpc_debug_halt_ack = mpc_debug_halt_ack_f;
@@ -2595,12 +2595,14 @@ assign csr_dicago = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[3]
assign presync = (dec_csr_rdaddr_d[10]&dec_csr_rdaddr_d[4]&dec_csr_rdaddr_d[3]
&!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[7]
&dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]
- &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[6]
+ &!dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[5]
+ &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]
+ &!dec_csr_rdaddr_d[1]&dec_csr_rdaddr_d[0]) | (!dec_csr_rdaddr_d[6]
&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]
&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11]
- &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]
- &!dec_csr_rdaddr_d[1]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4]
- &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]&!dec_csr_rdaddr_d[0]) | (
+ &!dec_csr_rdaddr_d[4]&!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[1]
+ &!dec_csr_rdaddr_d[0]) | (dec_csr_rdaddr_d[11]&!dec_csr_rdaddr_d[4]
+ &!dec_csr_rdaddr_d[3]&dec_csr_rdaddr_d[2]&!dec_csr_rdaddr_d[1]) | (
dec_csr_rdaddr_d[7]&!dec_csr_rdaddr_d[5]&!dec_csr_rdaddr_d[4]
&!dec_csr_rdaddr_d[3]&!dec_csr_rdaddr_d[2]&dec_csr_rdaddr_d[1]);
@@ -2727,7 +2729,7 @@ assign dec_csr_legal_d = ( dec_csr_any_unq_d &
assign dec_csr_rddata_d[31:0] = ( ({32{csr_misa}} & 32'h40001104) |
({32{csr_mvendorid}} & 32'h00000045) |
({32{csr_marchid}} & 32'h00000010) |
- ({32{csr_mimpid}} & 32'h3) |
+ ({32{csr_mimpid}} & 32'h4) |
({32{csr_mhartid}} & {core_id[31:4], 4'b0}) |
({32{csr_mstatus}} & {19'b0, 2'b11, 3'b0, mstatus[1], 3'b0, mstatus[0], 3'b0}) |
({32{csr_mtvec}} & {mtvec[30:1], 1'b0, mtvec[0]}) |
diff --git a/design/el2_dma_ctrl.sv b/design/el2_dma_ctrl.sv
index fcdaa42..b47ce97 100644
--- a/design/el2_dma_ctrl.sv
+++ b/design/el2_dma_ctrl.sv
@@ -318,7 +318,7 @@ module el2_dma_ctrl #(
//Dbg outputs
assign dma_dbg_ready = fifo_empty & dbg_dma_bubble;
assign dma_dbg_cmd_done = (fifo_valid[RspPtr] & fifo_dbg[RspPtr] & fifo_done[RspPtr]);
- assign dma_dbg_cmd_fail = |fifo_error[RspPtr];
+ assign dma_dbg_cmd_fail = (|fifo_error[RspPtr] & dma_dbg_cmd_done) ;
assign dma_dbg_sz[1:0] = fifo_sz[RspPtr][1:0];
assign dma_dbg_addr[1:0] = fifo_addr[RspPtr][1:0];
diff --git a/design/el2_pic_ctrl.sv b/design/el2_pic_ctrl.sv
index a36deeb..8f8881f 100644
--- a/design/el2_pic_ctrl.sv
+++ b/design/el2_pic_ctrl.sv
@@ -196,7 +196,15 @@ rvdff #(1) picm_rde_flop (.*, .din (picm_rden), .dout(picm_rden_ff),
rvdff #(1) picm_mke_flop (.*, .din (picm_mken), .dout(picm_mken_ff), .clk(free_clk));
rvdff #(32) picm_dat_flop (.*, .din (picm_wr_data[31:0]), .dout(picm_wr_data_ff[31:0]), .clk(pic_data_c1_clk));
-
+//rvsyncss #(pt.PIC_TOTAL_INT_PLUS1-1) sync_inst
+//(
+// .clk (free_clk),
+// .dout(extintsrc_req_sync[pt.PIC_TOTAL_INT_PLUS1-1:1]),
+// .din (extintsrc_req[pt.PIC_TOTAL_INT_PLUS1-1:1]),
+// .*) ;
+//
+//assign extintsrc_req_sync[0] = extintsrc_req[0];
+/*
genvar p ;
for (p=0; p<=INT_ENABLE_GRPS ; p++) begin : IO_CLK_GRP
if (p==INT_ENABLE_GRPS) begin : LAST_GRP
@@ -207,10 +215,45 @@ for (p=0; p<=INT_ENABLE_GRPS ; p++) begin : IO_CLK_GRP
rvoclkhdr intenable_c1_cgc ( .en(intenable_clk_enable_grp[p]), .l1clk(gw_clk[p]), .* );
end
end
+*/
genvar i ;
+genvar p ;
+for (p=0; p<=INT_ENABLE_GRPS ; p++) begin : IO_CLK_GRP
+wire grp_clk, grp_clken;
+
+ assign grp_clken = |intenable_clk_enable[(p==INT_ENABLE_GRPS?pt.PIC_TOTAL_INT_PLUS1-1:p*4+3) : p*4] | io_clk_override;
+
+ `ifndef RV_FPGA_OPTIMIZE
+ rvclkhdr intenable_c1_cgc( .en(grp_clken), .l1clk(grp_clk), .* );
+ `else
+ assign gw_clk[p] = 1'b0 ;
+ `endif
+
+ for(genvar i= (p==0 ? 1: 0); i< (p==INT_ENABLE_GRPS ? pt.PIC_TOTAL_INT_PLUS1-p*4 :4); i++) begin : GW
+ el2_configurable_gw gw_inst(
+ .*,
+ .gw_clk(grp_clk),
+ .rawclk(clk),
+ .clken (grp_clken),
+ .extintsrc_req(extintsrc_req[i+p*4]) ,
+ .meigwctrl_polarity(gw_config_reg[i+p*4][0]) ,
+ .meigwctrl_type(gw_config_reg[i+p*4][1]) ,
+ .meigwclr(gw_clear_reg_we[i+p*4]) ,
+ .extintsrc_req_config(extintsrc_req_gw[i+p*4])
+ );
+ end
+end
+
+
+
+
+
+
+
+
for (i=0; i 0 ) begin : NON_ZERO_INT
@@ -227,9 +270,11 @@ for (i=0; i> shift_amount[4:0] ); // 62-32 unused
- assign sout[31:0] = ( shift_long[31:0] & shift_mask[31:0] ) | ( {32{ap_slo}} & ~shift_mask[31:0] );
+ assign sout[31:0] = shift_long[31:0] & shift_mask[31:0];
@@ -363,26 +354,26 @@ import el2_pkg::*;
- // * * * * * * * * * * * * * * * * * * BitManip : PCNT * * * * * * * * * * * * * * * * * *
+ // * * * * * * * * * * * * * * * * * * BitManip : CPOP * * * * * * * * * * * * * * * * * *
- logic [5:0] bitmanip_pcnt;
- logic [5:0] bitmanip_pcnt_result;
+ logic [5:0] bitmanip_cpop;
+ logic [5:0] bitmanip_cpop_result;
- integer bitmanip_pcnt_i;
+ integer bitmanip_cpop_i;
always_comb
begin
- bitmanip_pcnt[5:0] = 6'b0;
+ bitmanip_cpop[5:0] = 6'b0;
- for (bitmanip_pcnt_i=0; bitmanip_pcnt_i<32; bitmanip_pcnt_i++)
+ for (bitmanip_cpop_i=0; bitmanip_cpop_i<32; bitmanip_cpop_i++)
begin
- bitmanip_pcnt[5:0] = bitmanip_pcnt[5:0] + {5'b0,a_in[bitmanip_pcnt_i]};
- end // FOR bitmanip_pcnt_i
+ bitmanip_cpop[5:0] = bitmanip_cpop[5:0] + {5'b0,a_in[bitmanip_cpop_i]};
+ end // FOR bitmanip_cpop_i
end // ALWAYS_COMB
- assign bitmanip_pcnt_result[5:0] = {6{ap_pcnt}} & bitmanip_pcnt[5:0];
+ assign bitmanip_cpop_result[5:0] = {6{ap_cpop}} & bitmanip_cpop[5:0];
@@ -404,7 +395,6 @@ import el2_pkg::*;
assign bitmanip_minmax_sel = ap_min | ap_max;
-
logic bitmanip_minmax_sel_a;
assign bitmanip_minmax_sel_a = ge ^ ap_min;
@@ -414,6 +404,7 @@ import el2_pkg::*;
+
// * * * * * * * * * * * * * * * * * * BitManip : PACK, PACKU, PACKH * * * * * * * * * * * * * * *
logic [31:0] bitmanip_pack_result;
@@ -426,18 +417,10 @@ import el2_pkg::*;
- // * * * * * * * * * * * * * * * * * * BitManip : REV, REV8, ORC_B * * * * * * * * * * * * * * * *
+ // * * * * * * * * * * * * * * * * * * BitManip : REV, ORC_B * * * * * * * * * * * * * * * * * *
- logic [31:0] bitmanip_rev_result;
logic [31:0] bitmanip_rev8_result;
logic [31:0] bitmanip_orc_b_result;
- logic [31:0] bitmanip_orc16_result;
-
- assign bitmanip_rev_result[31:0] = {32{ap_rev}} &
- {a_in[00],a_in[01],a_in[02],a_in[03],a_in[04],a_in[05],a_in[06],a_in[07],
- a_in[08],a_in[09],a_in[10],a_in[11],a_in[12],a_in[13],a_in[14],a_in[15],
- a_in[16],a_in[17],a_in[18],a_in[19],a_in[20],a_in[21],a_in[22],a_in[23],
- a_in[24],a_in[25],a_in[26],a_in[27],a_in[28],a_in[29],a_in[30],a_in[31]};
assign bitmanip_rev8_result[31:0] = {32{ap_rev8}} & {a_in[7:0],a_in[15:8],a_in[23:16],a_in[31:24]};
@@ -466,8 +449,6 @@ import el2_pkg::*;
assign bitmanip_orc_b_result[31:0] = {32{ap_orc_b}} & { {8{| a_in[31:24]}}, {8{| a_in[23:16]}}, {8{| a_in[15:8]}}, {8{| a_in[7:0]}} };
- assign bitmanip_orc16_result[31:0] = {32{ap_orc16}} & { {a_in[31:16] | a_in[15:0]}, {a_in[31:16] | a_in[15:0]} };
-
// * * * * * * * * * * * * * * * * * * BitManip : ZBSET, ZBCLR, ZBINV * * * * * * * * * * * * * *
@@ -477,16 +458,16 @@ import el2_pkg::*;
assign bitmanip_sb_1hot[31:0] = ( 32'h00000001 << b_in[4:0] );
- assign bitmanip_sb_data[31:0] = ( {32{ap_sbset}} & ( a_in[31:0] | bitmanip_sb_1hot[31:0]) ) |
- ( {32{ap_sbclr}} & ( a_in[31:0] & ~bitmanip_sb_1hot[31:0]) ) |
- ( {32{ap_sbinv}} & ( a_in[31:0] ^ bitmanip_sb_1hot[31:0]) );
+ assign bitmanip_sb_data[31:0] = ( {32{ap_bset}} & ( a_in[31:0] | bitmanip_sb_1hot[31:0]) ) |
+ ( {32{ap_bclr}} & ( a_in[31:0] & ~bitmanip_sb_1hot[31:0]) ) |
+ ( {32{ap_binv}} & ( a_in[31:0] ^ bitmanip_sb_1hot[31:0]) );
- assign sel_shift = ap.sll | ap.srl | ap.sra | ap_slo | ap_sro | ap_rol | ap_ror;
+ assign sel_shift = ap.sll | ap.srl | ap.sra | ap_rol | ap_ror;
assign sel_adder = (ap.add | ap.sub | ap_zba) & ~ap.slt & ~ap_min & ~ap_max;
assign sel_pc = ap.jal | pp_in.pcall | pp_in.pja | pp_in.pret;
assign csr_write_data[31:0]= (ap.csr_imm) ? b_in[31:0] : a_in[31:0];
@@ -501,18 +482,16 @@ import el2_pkg::*;
({32{sel_pc}} & {pcout[31:1],1'b0} ) |
({32{ap.csr_write}} & csr_write_data[31:0] ) |
{31'b0, slt_one} |
- ({32{ap_sbext}} & {31'b0, sout[0]} ) |
+ ({32{ap_bext}} & {31'b0, sout[0]} ) |
{26'b0, bitmanip_clz_ctz_result[5:0]} |
- {26'b0, bitmanip_pcnt_result[5:0]} |
+ {26'b0, bitmanip_cpop_result[5:0]} |
bitmanip_sext_result[31:0] |
bitmanip_minmax_result[31:0] |
bitmanip_pack_result[31:0] |
bitmanip_packu_result[31:0] |
bitmanip_packh_result[31:0] |
- bitmanip_rev_result[31:0] |
bitmanip_rev8_result[31:0] |
bitmanip_orc_b_result[31:0] |
- bitmanip_orc16_result[31:0] |
bitmanip_sb_data[31:0];
diff --git a/design/exu/el2_exu_mul_ctl.sv b/design/exu/el2_exu_mul_ctl.sv
index 9b6dae7..e47a7d8 100644
--- a/design/exu/el2_exu_mul_ctl.sv
+++ b/design/exu/el2_exu_mul_ctl.sv
@@ -53,8 +53,8 @@ import el2_pkg::*;
// ZBE
- logic ap_bext;
- logic ap_bdep;
+ logic ap_bcompress;
+ logic ap_bdecompress;
// ZBC
logic ap_clmul;
@@ -66,6 +66,9 @@ import el2_pkg::*;
logic ap_gorc;
logic ap_shfl;
logic ap_unshfl;
+ logic ap_xperm_n;
+ logic ap_xperm_b;
+ logic ap_xperm_h;
// ZBR
logic ap_crc32_b;
@@ -81,13 +84,13 @@ import el2_pkg::*;
if (pt.BITMANIP_ZBE == 1)
begin
- assign ap_bext = mul_p.bext;
- assign ap_bdep = mul_p.bdep;
+ assign ap_bcompress = mul_p.bcompress;
+ assign ap_bdecompress = mul_p.bdecompress;
end
else
begin
- assign ap_bext = 1'b0;
- assign ap_bdep = 1'b0;
+ assign ap_bcompress = 1'b0;
+ assign ap_bdecompress = 1'b0;
end
if (pt.BITMANIP_ZBC == 1)
@@ -109,6 +112,9 @@ import el2_pkg::*;
assign ap_gorc = mul_p.gorc;
assign ap_shfl = mul_p.shfl;
assign ap_unshfl = mul_p.unshfl;
+ assign ap_xperm_n = mul_p.xperm_n;
+ assign ap_xperm_b = mul_p.xperm_b;
+ assign ap_xperm_h = mul_p.xperm_h;
end
else
begin
@@ -116,6 +122,9 @@ import el2_pkg::*;
assign ap_gorc = 1'b0;
assign ap_shfl = 1'b0;
assign ap_unshfl = 1'b0;
+ assign ap_xperm_n = 1'b0;
+ assign ap_xperm_b = 1'b0;
+ assign ap_xperm_h = 1'b0;
end
if (pt.BITMANIP_ZBR == 1)
@@ -175,59 +184,61 @@ import el2_pkg::*;
assign prod_x[65:0] = rs1_x * rs2_x;
- // * * * * * * * * * * * * * * * * * * BitManip : BEXT, BDEP * * * * * * * * * * * * * * * * * *
- // *** BEXT == "gather" ***
+ // * * * * * * * * * * * * * * * * * * BitManip : BCOMPRESS, BDECOMPRESS * * * * * * * * * * * * *
- logic [31:0] bext_d;
- logic bext_test_bit_d;
- integer bext_i, bext_j;
+
+ // *** BCOMPRESS == "gather" ***
+
+ logic [31:0] bcompress_d;
+ logic bcompress_test_bit_d;
+ integer bcompress_i, bcompress_j;
always_comb
begin
- bext_j = 0;
- bext_test_bit_d = 1'b0;
- bext_d[31:0] = 32'b0;
+ bcompress_j = 0;
+ bcompress_test_bit_d = 1'b0;
+ bcompress_d[31:0] = 32'b0;
- for (bext_i=0; bext_i<32; bext_i++)
+ for (bcompress_i=0; bcompress_i<32; bcompress_i++)
begin
- bext_test_bit_d = rs2_in[bext_i];
- if (bext_test_bit_d)
+ bcompress_test_bit_d = rs2_in[bcompress_i];
+ if (bcompress_test_bit_d)
begin
- bext_d[bext_j] = rs1_in[bext_i];
- bext_j = bext_j + 1;
- end // IF bext_test_bit
- end // FOR bext_i
+ bcompress_d[bcompress_j] = rs1_in[bcompress_i];
+ bcompress_j = bcompress_j + 1;
+ end // IF bcompress_test_bit
+ end // FOR bcompress_i
end // ALWAYS_COMB
- // *** BDEP == "scatter" ***
+ // *** BDECOMPRESS == "scatter" ***
- logic [31:0] bdep_d;
- logic bdep_test_bit_d;
- integer bdep_i, bdep_j;
+ logic [31:0] bdecompress_d;
+ logic bdecompress_test_bit_d;
+ integer bdecompress_i, bdecompress_j;
always_comb
begin
- bdep_j = 0;
- bdep_test_bit_d = 1'b0;
- bdep_d[31:0] = 32'b0;
+ bdecompress_j = 0;
+ bdecompress_test_bit_d = 1'b0;
+ bdecompress_d[31:0] = 32'b0;
- for (bdep_i=0; bdep_i<32; bdep_i++)
+ for (bdecompress_i=0; bdecompress_i<32; bdecompress_i++)
begin
- bdep_test_bit_d = rs2_in[bdep_i];
- if (bdep_test_bit_d)
+ bdecompress_test_bit_d = rs2_in[bdecompress_i];
+ if (bdecompress_test_bit_d)
begin
- bdep_d[bdep_i] = rs1_in[bdep_j];
- bdep_j = bdep_j + 1;
- end // IF bdep_test_bit
- end // FOR bdep_i
+ bdecompress_d[bdecompress_i] = rs1_in[bdecompress_j];
+ bdecompress_j = bdecompress_j + 1;
+ end // IF bdecompress_test_bit
+ end // FOR bdecompress_i
end // ALWAYS_COMB
@@ -450,6 +461,88 @@ import el2_pkg::*;
+ // * * * * * * * * * * * * * * * * * * BitManip : XPERM * * * * * * * * * * * * * * * * *
+
+//
+// These instructions operate on nibbles/bytes/half-words/words.
+// rs1 is a vector of data words and rs2 is a vector of indices into rs1.
+// The result of the instruction is the vector rs2 with each element replaced by the corresponding data word from rs1,
+// or zero then the index in rs2 is out of bounds.
+//
+// uint_xlen_t xperm(uint_xlen_t rs1, uint_xlen_t rs2, int sz_log2)
+// {
+// uint_xlen_t r = 0;
+// uint_xlen_t sz = 1LL << sz_log2;
+// uint_xlen_t mask = (1LL << sz) - 1;
+// for (int i = 0; i < XLEN; i += sz)
+// { uint_xlen_t pos = ((rs2 >> i) & mask) << sz_log2;
+// if (pos < XLEN)
+// r |= ((rs1 >> pos) & mask) << i;
+// }
+// return r;
+// }
+//
+// uint_xlen_t xperm_n (uint_xlen_t rs1, uint_xlen_t rs2) { return xperm(rs1, rs2, 2); }
+// uint_xlen_t xperm_b (uint_xlen_t rs1, uint_xlen_t rs2) { return xperm(rs1, rs2, 3); }
+// uint_xlen_t xperm_h (uint_xlen_t rs1, uint_xlen_t rs2) { return xperm(rs1, rs2, 4); }
+// uint_xlen_t xperm_w (uint_xlen_t rs1, uint_xlen_t rs2) { return xperm(rs1, rs2, 5); } Not part of RV32
+//
+// The xperm.[nbhw] instructions can be implemented with an XLEN/4-lane nibble-wide crossbarswitch.
+
+// *** XPERM_B ***
+
+ // XLEN = 32
+ // SZ_LOG2 = 3
+ // SZ = 4'd8;
+ // MASK = ( 1 << 8 ) - 1
+ // = 8'hFF
+
+ // integer xperm_b_i;
+ // logic [31:0] xperm_b_r;
+ // logic [3:0] xperm_b_sz;
+ // logic [7:0] xperm_b_mask;
+ // logic [31:0] xperm_b_pos;
+ //
+ //
+ // assign xperm_b_sz[3:0] = 4'd8;
+ // assign xperm_b_mask[7:0] = 8'hff;
+ //
+ // always_comb
+ // begin
+ // xperm_b_r[31:0] = 32'b0;
+ //
+ // for (xperm_b_i=0; xperm_b_i<32; xperm_b_i = xperm_b_i + xperm_b_sz) // This code did not work...
+ // begin
+ // xperm_b_pos[31:0] = ( (rs2_in[31:0] >> xperm_b_i) & {24'h0,xperm_b_mask[7:0]} ) << 3;
+ // if (xperm_b_pos[31:0] < 32'd32)
+ // xperm_b_r[31:0] = xperm_b_r[31:0] | ( ((rs1_in[31:0] >> xperm_b_pos[4:0]) & {24'h0,xperm_b_mask[7:0]}) << xperm_b_i );
+ // end
+ // end
+
+ logic [31:0] xperm_n;
+ logic [31:0] xperm_b;
+ logic [31:0] xperm_h;
+
+ assign xperm_n[03:00] = { 4{ ~rs2_in[03] }} & ( (rs1_in[31:0] >> {rs2_in[02:00],2'b0}) & 4'hf ); // This is a 8:1 mux with qualified selects
+ assign xperm_n[07:04] = { 4{ ~rs2_in[07] }} & ( (rs1_in[31:0] >> {rs2_in[06:04],2'b0}) & 4'hf );
+ assign xperm_n[11:08] = { 4{ ~rs2_in[11] }} & ( (rs1_in[31:0] >> {rs2_in[10:08],2'b0}) & 4'hf );
+ assign xperm_n[15:12] = { 4{ ~rs2_in[15] }} & ( (rs1_in[31:0] >> {rs2_in[14:12],2'b0}) & 4'hf );
+ assign xperm_n[19:16] = { 4{ ~rs2_in[19] }} & ( (rs1_in[31:0] >> {rs2_in[18:16],2'b0}) & 4'hf );
+ assign xperm_n[23:20] = { 4{ ~rs2_in[23] }} & ( (rs1_in[31:0] >> {rs2_in[22:20],2'b0}) & 4'hf );
+ assign xperm_n[27:24] = { 4{ ~rs2_in[27] }} & ( (rs1_in[31:0] >> {rs2_in[26:24],2'b0}) & 4'hf );
+ assign xperm_n[31:28] = { 4{ ~rs2_in[31] }} & ( (rs1_in[31:0] >> {rs2_in[30:28],2'b0}) & 4'hf );
+
+ assign xperm_b[07:00] = { 8{ ~(| rs2_in[07:02]) }} & ( (rs1_in[31:0] >> {rs2_in[01:00],3'b0}) & 8'hff ); // This is a 4:1 mux with qualified selects
+ assign xperm_b[15:08] = { 8{ ~(| rs2_in[15:10]) }} & ( (rs1_in[31:0] >> {rs2_in[09:08],3'b0}) & 8'hff );
+ assign xperm_b[23:16] = { 8{ ~(| rs2_in[23:18]) }} & ( (rs1_in[31:0] >> {rs2_in[17:16],3'b0}) & 8'hff );
+ assign xperm_b[31:24] = { 8{ ~(| rs2_in[31:26]) }} & ( (rs1_in[31:0] >> {rs2_in[25:24],3'b0}) & 8'hff );
+
+ assign xperm_h[15:00] = {16{ ~(| rs2_in[15:01]) }} & ( (rs1_in[31:0] >> {rs2_in[00] ,4'b0}) & 16'hffff ); // This is a 2:1 mux with qualified selects
+ assign xperm_h[31:16] = {16{ ~(| rs2_in[31:17]) }} & ( (rs1_in[31:0] >> {rs2_in[16] ,4'b0}) & 16'hffff );
+
+
+
+
// * * * * * * * * * * * * * * * * * * BitManip : CRC32, CRC32c * * * * * * * * * * * * * * * * *
// *** computed from https: //crccalc.com ***
@@ -564,12 +657,26 @@ import el2_pkg::*;
// * * * * * * * * * * * * * * * * * * BitManip : BFP * * * * * * * * * * * * * * * * * *
+
+ // uint_xlen_t bfp(uint_xlen_t rs1, uint_xlen_t rs2)
+ // {
+ // uint_xlen_t cfg = rs2 >> (XLEN/2);
+ // if ((cfg >> 30) == 2) cfg = cfg >> 16;
+ // int len = (cfg >> 8) & (XLEN/2-1);
+ // int off = cfg & (XLEN-1);
+ // len = len ? len : XLEN/2;
+ // uint_xlen_t mask = slo(0, len) << off;
+ // uint_xlen_t data = rs2 << off;
+ // return (data & mask) | (rs1 & ~mask);
+
+
logic [4:0] bfp_len;
logic [4:0] bfp_off;
logic [31:0] bfp_len_mask_;
+ logic [31:0] bfp_off_mask_;
logic [15:0] bfp_preshift_data;
- logic [63:0] bfp_shift_data;
- logic [63:0] bfp_shift_mask;
+ logic [31:0] bfp_shift_data;
+ logic [31:0] bfp_shift_mask;
logic [31:0] bfp_result_d;
@@ -578,13 +685,13 @@ import el2_pkg::*;
assign bfp_off[4:0] = rs2_in[20:16];
assign bfp_len_mask_[31:0] = 32'hffff_ffff << bfp_len[4:0];
+ assign bfp_off_mask_[31:0] = 32'hffff_ffff << bfp_off[4:0];
assign bfp_preshift_data[15:0]= rs2_in[15:0] & ~bfp_len_mask_[15:0];
- assign bfp_shift_data[63:0] = {16'b0,bfp_preshift_data[15:0], 16'b0,bfp_preshift_data[15:0]} << bfp_off[4:0];
- assign bfp_shift_mask[63:0] = {bfp_len_mask_[31:0], bfp_len_mask_[31:0]} << bfp_off[4:0];
-
- assign bfp_result_d[31:0] = bfp_shift_data[63:32] | (rs1_in[31:0] & bfp_shift_mask[63:32]);
+ assign bfp_shift_data[31:0] = {16'b0,bfp_preshift_data[15:0]} << bfp_off[4:0];
+ assign bfp_shift_mask[31:0] = (bfp_len_mask_[31:0] << bfp_off[4:0]) | ~bfp_off_mask_[31:0];
+ assign bfp_result_d[31:0] = bfp_shift_data[31:0] | (rs1_in[31:0] & bfp_shift_mask[31:0]);
@@ -592,24 +699,27 @@ import el2_pkg::*;
// * * * * * * * * * * * * * * * * * * BitManip : Common logic * * * * * * * * * * * * * * * * * *
- assign bitmanip_sel_d = ap_bext | ap_bdep | ap_clmul | ap_clmulh | ap_clmulr | ap_grev | ap_gorc | ap_shfl | ap_unshfl | crc32_all | ap_bfp;
+ assign bitmanip_sel_d = ap_bcompress | ap_bdecompress | ap_clmul | ap_clmulh | ap_clmulr | ap_grev | ap_gorc | ap_shfl | ap_unshfl | crc32_all | ap_bfp | ap_xperm_n | ap_xperm_b | ap_xperm_h;
- assign bitmanip_d[31:0] = ( {32{ap_bext}} & bext_d[31:0] ) |
- ( {32{ap_bdep}} & bdep_d[31:0] ) |
- ( {32{ap_clmul}} & clmul_raw_d[31:0] ) |
- ( {32{ap_clmulh}} & {1'b0,clmul_raw_d[62:32]} ) |
- ( {32{ap_clmulr}} & clmul_raw_d[62:31] ) |
- ( {32{ap_grev}} & grev_d[31:0] ) |
- ( {32{ap_gorc}} & gorc_d[31:0] ) |
- ( {32{ap_shfl}} & shfl_d[31:0] ) |
- ( {32{ap_unshfl}} & unshfl_d[31:0] ) |
- ( {32{ap_crc32_b}} & crc32_bd[31:0] ) |
- ( {32{ap_crc32_h}} & crc32_hd[31:0] ) |
- ( {32{ap_crc32_w}} & crc32_wd[31:0] ) |
- ( {32{ap_crc32c_b}} & crc32c_bd[31:0] ) |
- ( {32{ap_crc32c_h}} & crc32c_hd[31:0] ) |
- ( {32{ap_crc32c_w}} & crc32c_wd[31:0] ) |
- ( {32{ap_bfp}} & bfp_result_d[31:0] );
+ assign bitmanip_d[31:0] = ( {32{ap_bcompress}} & bcompress_d[31:0] ) |
+ ( {32{ap_bdecompress}} & bdecompress_d[31:0] ) |
+ ( {32{ap_clmul}} & clmul_raw_d[31:0] ) |
+ ( {32{ap_clmulh}} & {1'b0,clmul_raw_d[62:32]} ) |
+ ( {32{ap_clmulr}} & clmul_raw_d[62:31] ) |
+ ( {32{ap_grev}} & grev_d[31:0] ) |
+ ( {32{ap_gorc}} & gorc_d[31:0] ) |
+ ( {32{ap_shfl}} & shfl_d[31:0] ) |
+ ( {32{ap_unshfl}} & unshfl_d[31:0] ) |
+ ( {32{ap_crc32_b}} & crc32_bd[31:0] ) |
+ ( {32{ap_crc32_h}} & crc32_hd[31:0] ) |
+ ( {32{ap_crc32_w}} & crc32_wd[31:0] ) |
+ ( {32{ap_crc32c_b}} & crc32c_bd[31:0] ) |
+ ( {32{ap_crc32c_h}} & crc32c_hd[31:0] ) |
+ ( {32{ap_crc32c_w}} & crc32c_wd[31:0] ) |
+ ( {32{ap_bfp}} & bfp_result_d[31:0] ) |
+ ( {32{ap_xperm_n}} & xperm_n[31:0] ) |
+ ( {32{ap_xperm_b}} & xperm_b[31:0] ) |
+ ( {32{ap_xperm_h}} & xperm_h[31:0] );
diff --git a/design/flist b/design/flist
new file mode 100644
index 0000000..179e8ee
--- /dev/null
+++ b/design/flist
@@ -0,0 +1,43 @@
+$RV_ROOT/design/el2_swerv_wrapper.sv
+$RV_ROOT/design/el2_mem.sv
+$RV_ROOT/design/el2_pic_ctrl.sv
+$RV_ROOT/design/el2_swerv.sv
+$RV_ROOT/design/el2_dma_ctrl.sv
+$RV_ROOT/design/ifu/el2_ifu_aln_ctl.sv
+$RV_ROOT/design/ifu/el2_ifu_compress_ctl.sv
+$RV_ROOT/design/ifu/el2_ifu_ifc_ctl.sv
+$RV_ROOT/design/ifu/el2_ifu_bp_ctl.sv
+$RV_ROOT/design/ifu/el2_ifu_ic_mem.sv
+$RV_ROOT/design/ifu/el2_ifu_mem_ctl.sv
+$RV_ROOT/design/ifu/el2_ifu_iccm_mem.sv
+$RV_ROOT/design/ifu/el2_ifu.sv
+$RV_ROOT/design/dec/el2_dec_decode_ctl.sv
+$RV_ROOT/design/dec/el2_dec_gpr_ctl.sv
+$RV_ROOT/design/dec/el2_dec_ib_ctl.sv
+$RV_ROOT/design/dec/el2_dec_tlu_ctl.sv
+$RV_ROOT/design/dec/el2_dec_trigger.sv
+$RV_ROOT/design/dec/el2_dec.sv
+$RV_ROOT/design/exu/el2_exu_alu_ctl.sv
+$RV_ROOT/design/exu/el2_exu_mul_ctl.sv
+$RV_ROOT/design/exu/el2_exu_div_ctl.sv
+$RV_ROOT/design/exu/el2_exu.sv
+$RV_ROOT/design/lsu/el2_lsu.sv
+$RV_ROOT/design/lsu/el2_lsu_clkdomain.sv
+$RV_ROOT/design/lsu/el2_lsu_addrcheck.sv
+$RV_ROOT/design/lsu/el2_lsu_lsc_ctl.sv
+$RV_ROOT/design/lsu/el2_lsu_stbuf.sv
+$RV_ROOT/design/lsu/el2_lsu_bus_buffer.sv
+$RV_ROOT/design/lsu/el2_lsu_bus_intf.sv
+$RV_ROOT/design/lsu/el2_lsu_ecc.sv
+$RV_ROOT/design/lsu/el2_lsu_dccm_mem.sv
+$RV_ROOT/design/lsu/el2_lsu_dccm_ctl.sv
+$RV_ROOT/design/lsu/el2_lsu_trigger.sv
+$RV_ROOT/design/dbg/el2_dbg.sv
+$RV_ROOT/design/dmi/dmi_wrapper.v
+$RV_ROOT/design/dmi/dmi_jtag_to_core_sync.v
+$RV_ROOT/design/dmi/rvjtag_tap.v
+$RV_ROOT/design/lib/el2_lib.sv
+-v $RV_ROOT/design/lib/beh_lib.sv
+-v $RV_ROOT/design/lib/mem_lib.sv
+$RV_ROOT/design/lib/ahb_to_axi4.sv
+$RV_ROOT/design/lib/axi4_to_ahb.sv
diff --git a/design/ifu/el2_ifu_aln_ctl.sv b/design/ifu/el2_ifu_aln_ctl.sv
index 9deda1b..59eb97f 100644
--- a/design/ifu/el2_ifu_aln_ctl.sv
+++ b/design/ifu/el2_ifu_aln_ctl.sv
@@ -186,8 +186,8 @@ import el2_pkg::*;
logic consume_fb1, consume_fb0;
logic [1:0] icaf_eff;
- localparam BRDATA_SIZE = pt.BTB_ENABLE ? 16+($clog2(pt.BTB_SIZE)*2*pt.BTB_FULLYA) : 2;
- localparam BRDATA_WIDTH = pt.BTB_ENABLE ? 8+($clog2(pt.BTB_SIZE)*pt.BTB_FULLYA) : 1;
+ localparam BRDATA_SIZE = pt.BTB_ENABLE ? 16+($clog2(pt.BTB_SIZE)*2*pt.BTB_FULLYA) : 4;
+ localparam BRDATA_WIDTH = pt.BTB_ENABLE ? 8+($clog2(pt.BTB_SIZE)*pt.BTB_FULLYA) : 2;
logic [BRDATA_SIZE-1:0] brdata_in, brdata2, brdata1, brdata0;
logic [BRDATA_SIZE-1:0] brdata1eff, brdata0eff;
logic [BRDATA_SIZE-1:0] brdata1final, brdata0final;
@@ -229,8 +229,9 @@ else begin
.din({qwen[2] ? {misc_data_in[MHI:0], brdata_in[BRDATA_SIZE-1:0]} : {misc2[MHI:0], brdata2[BRDATA_SIZE-1:0]},
qwen[1] ? {misc_data_in[MHI:0], brdata_in[BRDATA_SIZE-1:0]} : {misc1[MHI:0], brdata1[BRDATA_SIZE-1:0]},
qwen[0] ? {misc_data_in[MHI:0], brdata_in[BRDATA_SIZE-1:0]} : {misc0[MHI:0], brdata0[BRDATA_SIZE-1:0]}}),
- .dout({misc2[MHI:0],misc1[MHI:0],misc0[MHI:0],
- brdata2[BRDATA_SIZE-1:0], brdata1[BRDATA_SIZE-1:0], brdata0[BRDATA_SIZE-1:0]})
+ .dout({misc2[MHI:0], brdata2[BRDATA_SIZE-1:0],
+ misc1[MHI:0], brdata1[BRDATA_SIZE-1:0],
+ misc0[MHI:0], brdata0[BRDATA_SIZE-1:0]})
);
end
@@ -395,7 +396,7 @@ end
assign {brdata1eff[BRDATA_SIZE-1:0],brdata0eff[BRDATA_SIZE-1:0]} = (({BRDATA_SIZE*2{qren[0]}} & {brdata1[BRDATA_SIZE-1:0],brdata0[BRDATA_SIZE-1:0]}) |
({BRDATA_SIZE*2{qren[1]}} & {brdata2[BRDATA_SIZE-1:0],brdata1[BRDATA_SIZE-1:0]}) |
- ({BRDATA_SIZE*2{qren[2]}} & {brdata0[BRDATA_SIZE-1:0],brdata2[BRDATA_SIZE-1:0]}));
+ ({BRDATA_SIZE*2{qren[2]}} & {brdata0[BRDATA_SIZE-1:0],brdata2[BRDATA_SIZE-1:0]}));
assign brdata0final[BRDATA_SIZE-1:0] = (({BRDATA_SIZE{q0sel[0]}} & { brdata0eff[2*BRDATA_WIDTH-1:0]}) |
({BRDATA_SIZE{q0sel[1]}} & {{BRDATA_WIDTH{1'b0}},brdata0eff[BRDATA_SIZE-1:BRDATA_WIDTH]}));
diff --git a/design/ifu/el2_ifu_bp_ctl.sv b/design/ifu/el2_ifu_bp_ctl.sv
index 6c2f6e5..3e16391 100644
--- a/design/ifu/el2_ifu_bp_ctl.sv
+++ b/design/ifu/el2_ifu_bp_ctl.sv
@@ -721,10 +721,10 @@ end // if (!pt.BTB_FULLYA)
always_comb begin
btb_vbank0_rd_data_f = '0;
btb_vbank1_rd_data_f = '0;
- btb_tag_hit = '0;
- btb_upper_hit = '0;
- btb_offset_0 = '0;
- btb_offset_1 = '0;
+// btb_tag_hit = '0;
+// btb_upper_hit = '0;
+// btb_offset_0 = '0;
+// btb_offset_1 = '0;
found1 = 1'b0;
hit0 = 1'b0;
@@ -734,22 +734,28 @@ end // if (!pt.BTB_FULLYA)
btb_fa_wr_addr0 = '0;
for(int i=0; iTM 1.4 from Western Digital
+
+* Upgraded bit-manipulation support for Zba, Zbb, Zbc, Zbe, Zbf, Zbp, Zbr, Zbs to `0.94` draft spec.
+ * Zba, Zbb, Zbc and Zbs are enabled by default. Use `-set=bitmanip_zb*=1` to enable other sub-extensions.
+* Simulation performance improvement coding style changes in branch predictor and PIC
+* Several corner case and exotic bug fixes :
+ * MPC run ack timing
+ * Force halt mechanism and MPC
+ * Store data collision with DCCM DMA error when address is 0x0
+ * RAW hazard on mtdata1
+ * Errors on DMA access could leak into Dbg abstract cmd ocurring at same time
+ * Icache parity error and branch error collision leading to fwd progress issue
+* Fixed linter warning for async reset
+
+
# EL2 SweRV RISC-V CoreTM 1.3 from Western Digital
@@ -8,10 +23,10 @@
* Significantly lower power in sleep as well as normal operation.
* Enhanced debug memory abstract command to access internal as well as external memories
* Added bit-manipulation support for Zba, Zbb, Zbc, Zbe, Zbf, Zbp, Zbr, Zbs (Jan 29, 2020 Draft spec).
- * Zbs and Zbb are enabled by default. Use -set=bitmanip+zb*=1 to enable other sub-extensions.
+ * Zbs and Zbb are enabled by default. Use `-set=bitmanip_zb*=1` to enable other sub-extensions.
* Enhancements and additional configurations options for a faster divider
-* JTAG controller intial state issue fixed
-* Branch predictor fully-associative mode for 8,16,32 entries.
+* JTAG bypass register intial state issue fixed
+* New branch predictor fully-associative option with 8,16,32 entries.
* Corner case bugs fixes related to
* Bus protocol corner cases (ahb)
* Fetch bus error recording improved accuracy
@@ -25,7 +40,7 @@
* Handling bigger test sizes using associative arrays in external memory slaves,
* simplified test building process and CCM loading functions (only program.hex is generated, no data.hex)
* Improved Makefile and example tests (see README)
- * Generating crt0 and link.ld from swerv.config
+ * Generating link.ld with swerv.config
# EL2 SweRV RISC-V CoreTM 1.2 from Western Digital
## Release Notes
diff --git a/testbench/asm/printf.c b/testbench/asm/printf.c
index aab027b..c25f4bc 100644
--- a/testbench/asm/printf.c
+++ b/testbench/asm/printf.c
@@ -31,6 +31,8 @@ whisperPuts(const char* s)
{
while (*s)
whisperPutc(*s++);
+ whisperPutc('\n');
+// whisperPutc(0xd);
return 1;
}
diff --git a/testbench/dasm.svi b/testbench/dasm.svi
index 777fdbe..aef232c 100644
--- a/testbench/dasm.svi
+++ b/testbench/dasm.svi
@@ -15,70 +15,71 @@
//
// Run time disassembler functions
-// supports RISCV extentions I, C, M
+// supports RISCV extentions I, C, M, A
+`ifndef RV_NUM_THREADS
+`define RV_NUM_THREADS 1
+`endif
-bit[31:0] gpr[32];
+bit[31:0] [31:0] gpr[`RV_NUM_THREADS];
// main DASM function
-function string dasm(input[31:0] opcode, input[31:0] pc, input[4:0] regn, input[31:0] regv);
- if(regn) gpr[regn] = regv;
-
- if( opcode[1:0] == 2'b11 ) return dasm32(opcode, pc);
- else return dasm16(opcode, pc);
+function string dasm(input[31:0] opcode, input[31:0] pc, input[4:0] regn, input[31:0] regv, input tid=0);
+ dasm = (opcode[1:0] == 2'b11) ? dasm32(opcode, pc, tid) : dasm16(opcode, pc, tid);
+ if(regn) gpr[tid][regn] = regv;
endfunction
///////////////// 16 bits instructions ///////////////////////
-function string dasm16( input[31:0] opcode, input[31:0] pc);
+function string dasm16( input[31:0] opcode, input[31:0] pc, input tid=0);
case(opcode[1:0])
- 0: return dasm16_0(opcode);
+ 0: return dasm16_0(opcode, tid);
1: return dasm16_1(opcode, pc);
2: return dasm16_2(opcode);
endcase
return $sformatf(".short 0x%h", opcode[15:0]);
endfunction
-function string dasm16_0( input[31:0] opcode);
+function string dasm16_0( input[31:0] opcode, tid);
case(opcode[15:13])
3'b000: return dasm16_ciw(opcode);
- 3'b001: return {"c.fld", dasm16_cl(opcode)};
- 3'b010: return {"c.lw", dasm16_cl(opcode)};
- 3'b011: return {"c.flw", dasm16_cl(opcode)};
- 3'b101: return {"c.fsd", dasm16_cl(opcode)};
- 3'b110: return {"c.sw", dasm16_cl(opcode)};
- 3'b111: return {"c.fsw", dasm16_cl(opcode)};
+ 3'b001: return {"c.fld ", dasm16_cl(opcode, tid)};
+ 3'b010: return {"c.lw ", dasm16_cl(opcode, tid)};
+ 3'b011: return {"c.flw ", dasm16_cl(opcode, tid)};
+ 3'b101: return {"c.fsd ", dasm16_cl(opcode, tid)};
+ 3'b110: return {"c.sw ", dasm16_cl(opcode, tid)};
+ 3'b111: return {"c.fsw ", dasm16_cl(opcode, tid)};
endcase
- return $sformatf(".short 0x%h", opcode[15:0]);
+ return $sformatf(".short 0x%h", opcode[15:0]);
endfunction
function string dasm16_ciw( input[31:0] opcode);
int imm;
imm=0;
- if(opcode[15:0] == 0) return ".short 0";
+ if(opcode[15:0] == 0) return ".short 0";
{imm[5:4],imm[9:6],imm[2],imm[3]} = opcode[12:5];
- return $sformatf("c.addi4spn %s, 0x%0h", abi_reg[opcode[4:2]+8], imm);
+ return $sformatf("c.addi4spn %s,0x%0h", abi_reg[opcode[4:2]+8], imm);
endfunction
-function string dasm16_cl( input[31:0] opcode);
+function string dasm16_cl( input[31:0] opcode, input tid=0);
int imm;
imm=0;
imm[5:3] = opcode[12:10];
imm[7:6] = opcode[6:5];
- return $sformatf(" %s, %0d(%s) [%h]", abi_reg[opcode[4:2]+8], imm, abi_reg[opcode[9:7]+8], gpr[opcode[9:7]+8]+imm);
+ return $sformatf(" %s,%0d(%s) [%h]", abi_reg[opcode[4:2]+8], imm, abi_reg[opcode[9:7]+8], gpr[tid][opcode[9:7]+8]+imm);
endfunction
function string dasm16_1( input[31:0] opcode, input[31:0] pc);
case(opcode[15:13])
- 3'b000: return opcode[11:7]==0 ? "c.nop" : {"c.addi",dasm16_ci(opcode)};
- 3'b001: return {"c.jal", dasm16_cj(opcode, pc)};
- 3'b010: return {"c.li", dasm16_ci(opcode)};
+ 3'b000: return opcode[11:7]==0 ? "c.nop" : {"c.addi ",dasm16_ci(opcode)};
+ 3'b001: return {"c.jal ", dasm16_cj(opcode, pc)};
+ 3'b010: return {"c.li ", dasm16_ci(opcode)};
3'b011: return dasm16_1_3(opcode);
3'b100: return dasm16_cr(opcode);
- 3'b101: return {"c.j", dasm16_cj(opcode, pc)};
- 3'b110: return {"c.beqz", dasm16_cb(opcode, pc)};
- 3'b111: return {"c.bnez", dasm16_cb(opcode, pc)};
+ 3'b101: return {"c.j ", dasm16_cj(opcode, pc)};
+ 3'b110: return {"c.beqz ", dasm16_cb(opcode, pc)};
+ 3'b111: return {"c.bnez ", dasm16_cb(opcode, pc)};
endcase
endfunction
@@ -87,7 +88,7 @@ int imm;
imm=0;
imm[4:0] = opcode[6:2];
if(opcode[12]) imm [31:5] = '1;
- return $sformatf(" %s, %0d", abi_reg[opcode[11:7]], imm);
+ return $sformatf("%s,%0d", abi_reg[opcode[11:7]], imm);
endfunction
function string dasm16_cj( input[31:0] opcode, input[31:0] pc);
@@ -95,16 +96,16 @@ bit[31:0] imm;
imm=0;
{imm[11],imm[4],imm[9:8],imm[10],imm[6], imm[7],imm[3:1], imm[5]} = opcode[12:2];
if(opcode[12]) imm [31:12] = '1;
- return $sformatf(" 0x%h", imm+pc);
+ return $sformatf("0x%0h", imm+pc);
endfunction
function string dasm16_cb( input[31:0] opcode, input[31:0] pc);
bit[31:0] imm;
imm=0;
- {imm[11],imm[4:3]} = opcode[12:10];
- {imm[7], imm[6],imm[2:1], imm[5]} = opcode[6:2];
+ {imm[8],imm[4:3]} = opcode[12:10];
+ {imm[7:6],imm[2:1], imm[5]} = opcode[6:2];
if(opcode[12]) imm [31:9] = '1;
- return $sformatf(" %s, 0x%h",abi_reg[opcode[9:7]+8], imm+pc);
+ return $sformatf("%s,0x%0h",abi_reg[opcode[9:7]+8], imm+pc);
endfunction
function string dasm16_cr( input[31:0] opcode);
@@ -114,16 +115,16 @@ bit[31:0] imm;
imm[4:0] = opcode[6:2];
if(opcode[5]) imm [31:5] = '1;
case(opcode[11:10])
- 0: return $sformatf("c.srli %s, %0d", abi_reg[opcode[9:7]+8], imm[5:0]);
- 1: return $sformatf("c.srai %s, %0d", abi_reg[opcode[9:7]+8], imm[5:0]);
- 2: return $sformatf("c.andi %s, 0x%h", abi_reg[opcode[9:7]+8], imm);
+ 0: return $sformatf("c.srli %s,%0d", abi_reg[opcode[9:7]+8], imm[5:0]);
+ 1: return $sformatf("c.srai %s,%0d", abi_reg[opcode[9:7]+8], imm[5:0]);
+ 2: return $sformatf("c.andi %s,0x%0h", abi_reg[opcode[9:7]+8], imm);
endcase
case(opcode[6:5])
- 0: return $sformatf("c.sub %s, %s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]);
- 1: return $sformatf("c.xor %s, %s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]);
- 2: return $sformatf("c.or %s, %s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]);
- 3: return $sformatf("c.and %s, %s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]);
+ 0: return $sformatf("c.sub %s,%s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]);
+ 1: return $sformatf("c.xor %s,%s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]);
+ 2: return $sformatf("c.or %s,%s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]);
+ 3: return $sformatf("c.and %s,%s", abi_reg[opcode[9:7]+8], abi_reg[opcode[4:2]+8]);
endcase
endfunction
@@ -137,78 +138,78 @@ int imm;
return $sformatf("c.addi16sp %0d", imm);
end
else begin
- // {imm[4], imm[6],imm[8:7], imm[5]} = opcode[6:2];
imm[16:12] = opcode[6:2];
if(opcode[12]) imm [31:17] = '1;
- return $sformatf("c.lui %3s, 0x%h", abi_reg[opcode[11:7]], imm);
+ return $sformatf("c.lui %s,0x%0h", abi_reg[opcode[11:7]], imm);
end
endfunction
-function string dasm16_2( input[31:0] opcode);
+function string dasm16_2( input[31:0] opcode, input tid=0);
case(opcode[15:13])
- 3'b000: return {"c.slli", dasm16_ci(opcode)};
- 3'b001: return {"c.fldsp", dasm16_cls(opcode,1)};
- 3'b010: return {"c.lwsp", dasm16_cls(opcode)};
- 3'b011: return {"c.flwsp", dasm16_cls(opcode)};
- 3'b101: return {"c.fsdsp", dasm16_css(opcode,1)};
- 3'b110: return {"c.swsp", dasm16_css(opcode)};
- 3'b111: return {"c.fswsp", dasm16_css(opcode)};
+ 3'b000: return {"c.slli ", dasm16_ci(opcode)};
+ 3'b001: return {"c.fldsp ", dasm16_cls(opcode,1,tid)};
+ 3'b010: return {"c.lwsp ", dasm16_cls(opcode,0,tid)};
+ 3'b011: return {"c.flwsp ", dasm16_cls(opcode,0,tid)};
+ 3'b101: return {"c.fsdsp ", dasm16_css(opcode,1,tid)};
+ 3'b110: return {"c.swsp ", dasm16_css(opcode,0,tid)};
+ 3'b111: return {"c.fswsp ", dasm16_css(opcode,0,tid)};
endcase
if(opcode[12]) begin
if(opcode[12:2] == 0) return "c.ebreak";
- else if(opcode[6:2] == 0) return $sformatf("c.jalr %s", abi_reg[opcode[11:7]]);
- else return $sformatf("c.add %s, %s", abi_reg[opcode[11:7]], abi_reg[opcode[6:2]]);
+ else if(opcode[6:2] == 0) return $sformatf("c.jalr %s", abi_reg[opcode[11:7]]);
+ else return $sformatf("c.add %s,%s", abi_reg[opcode[11:7]], abi_reg[opcode[6:2]]);
end
else begin
- if(opcode[6:2] == 0) return $sformatf("c.jr %s", abi_reg[opcode[11:7]]);
- else return $sformatf("c.mv %s, %s", abi_reg[opcode[11:7]], abi_reg[opcode[6:2]]);
+ if(opcode[6:2] == 0) return $sformatf("c.jr %s", abi_reg[opcode[11:7]]);
+ else return $sformatf("c.mv %s,%s", abi_reg[opcode[11:7]], abi_reg[opcode[6:2]]);
end
endfunction
-function string dasm16_cls( input[31:0] opcode, input sh1=0);
+function string dasm16_cls( input[31:0] opcode, input sh1=0, tid=0);
bit[31:0] imm;
imm=0;
if(sh1) {imm[4:3],imm[8:6]} = opcode[6:2];
else {imm[4:2],imm[7:6]} = opcode[6:2];
imm[5] = opcode[12];
- return $sformatf(" %s, 0x%0h [%h]", abi_reg[opcode[11:7]], imm, gpr[2]+imm);
+ return $sformatf("%s,0x%0h [%h]", abi_reg[opcode[11:7]], imm, gpr[tid][2]+imm);
endfunction
-function string dasm16_css( input[31:0] opcode, input sh1=0);
+function string dasm16_css( input[31:0] opcode, input sh1=0, tid=0);
bit[31:0] imm;
imm=0;
if(sh1) {imm[5:3],imm[8:6]} = opcode[12:7];
else {imm[5:2],imm[7:6]} = opcode[12:7];
- return $sformatf(" %s, 0x%0h [%h]", abi_reg[opcode[6:2]], imm, gpr[2]+imm);
+ return $sformatf("%s,0x%0h [%h]", abi_reg[opcode[6:2]], imm, gpr[tid][2]+imm);
endfunction
///////////////// 32 bit instructions ///////////////////////
-function string dasm32( input[31:0] opcode, input[31:0] pc);
+function string dasm32( input[31:0] opcode, input[31:0] pc, input tid=0);
case(opcode[6:0])
- 7'b0110111: return {"lui", dasm32_u(opcode)};
- 7'b0010111: return {"auipc", dasm32_u(opcode)};
- 7'b1101111: return {"jal", dasm32_j(opcode,pc)};
- 7'b1100111: return {"jalr", dasm32_jr(opcode,pc)};
+ 7'b0110111: return {"lui ", dasm32_u(opcode)};
+ 7'b0010111: return {"auipc ", dasm32_u(opcode)};
+ 7'b1101111: return {"jal ", dasm32_j(opcode,pc)};
+ 7'b1100111: return {"jalr ", dasm32_jr(opcode,pc)};
7'b1100011: return dasm32_b(opcode,pc);
- 7'b0000011: return dasm32_l(opcode);
- 7'b0100011: return dasm32_s(opcode);
+ 7'b0000011: return dasm32_l(opcode,tid);
+ 7'b0100011: return dasm32_s(opcode,tid);
7'b0010011: return dasm32_ai(opcode);
7'b0110011: return dasm32_ar(opcode);
7'b0001111: return {"fence", dasm32_fence(opcode)};
7'b1110011: return dasm32_e(opcode);
+ 7'b0101111: return dasm32_a(opcode,tid);
endcase
- return $sformatf(".long 0x%h", opcode);
+ return $sformatf(".long 0x%h", opcode);
endfunction
function string dasm32_u( input[31:0] opcode);
bit[31:0] imm;
imm=0;
imm[31:12] = opcode[31:12];
- return $sformatf(" %s, 0x%0h", abi_reg[opcode[11:7]], imm);
+ return $sformatf("%s,0x%0h", abi_reg[opcode[11:7]], imm);
endfunction
function string dasm32_j( input[31:0] opcode, input[31:0] pc);
@@ -216,7 +217,7 @@ int imm;
imm=0;
{imm[20], imm[10:1], imm[11], imm[19:12]} = opcode[31:12];
if(opcode[31]) imm[31:20] = '1;
- return $sformatf(" %s, 0x%0h",abi_reg[opcode[11:7]], imm+pc);
+ return $sformatf("%s,0x%0h",abi_reg[opcode[11:7]], imm+pc);
endfunction
function string dasm32_jr( input[31:0] opcode, input[31:0] pc);
@@ -224,7 +225,7 @@ int imm;
imm=0;
imm[11:1] = opcode[31:19];
if(opcode[31]) imm[31:12] = '1;
- return $sformatf(" %s, %s, 0x%0h",abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm+pc);
+ return $sformatf("%s,%s,0x%0h",abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm+pc);
endfunction
function string dasm32_b( input[31:0] opcode, input[31:0] pc);
@@ -235,35 +236,35 @@ string mn;
{imm[4:1],imm[11]} = opcode[11:7];
if(opcode[31]) imm[31:12] = '1;
case(opcode[14:12])
- 0: mn = "beq";
- 1: mn = "bne";
- 2,3 : return $sformatf(".long 0x%h", opcode);
- 4: mn = "blt";
- 5: mn = "bge";
- 6: mn = "bltu";
- 7: mn = "bgeu";
+ 0: mn = "beq ";
+ 1: mn = "bne ";
+ 2,3 : return $sformatf(".long 0x%h", opcode);
+ 4: mn = "blt ";
+ 5: mn = "bge ";
+ 6: mn = "bltu ";
+ 7: mn = "bgeu ";
endcase
- return $sformatf("%s %s, %s, 0x%0h", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm+pc);
+ return $sformatf("%s%s,%s,0x%0h", mn, abi_reg[opcode[19:15]], abi_reg[opcode[24:20]], imm+pc);
endfunction
-function string dasm32_l( input[31:0] opcode);
+function string dasm32_l( input[31:0] opcode, input tid=0);
int imm;
string mn;
imm=0;
imm[11:0] = opcode[31:20];
if(opcode[31]) imm[31:12] = '1;
case(opcode[14:12])
- 0: mn = "lb";
- 1: mn = "lh";
- 2: mn = "lw";
- 4: mn = "lbu";
- 5: mn = "lhu";
- default : return $sformatf(".long 0x%h", opcode);
+ 0: mn = "lb ";
+ 1: mn = "lh ";
+ 2: mn = "lw ";
+ 4: mn = "lbu ";
+ 5: mn = "lhu ";
+ default : return $sformatf(".long 0x%h", opcode);
endcase
- return $sformatf("%s %s, %0d(%s) [%h]", mn, abi_reg[opcode[11:7]], imm, abi_reg[opcode[19:15]], imm+gpr[opcode[19:15]]);
+ return $sformatf("%s%s,%0d(%s) [%h]", mn, abi_reg[opcode[11:7]], imm, abi_reg[opcode[19:15]], imm+gpr[tid][opcode[19:15]]);
endfunction
-function string dasm32_s( input[31:0] opcode);
+function string dasm32_s( input[31:0] opcode, input tid=0);
int imm;
string mn;
imm=0;
@@ -271,12 +272,12 @@ string mn;
imm[4:0] = opcode[11:7];
if(opcode[31]) imm[31:12] = '1;
case(opcode[14:12])
- 0: mn = "sb";
- 1: mn = "sh";
- 2: mn = "sw";
- default : return $sformatf(".long 0x%h", opcode);
+ 0: mn = "sb ";
+ 1: mn = "sh ";
+ 2: mn = "sw ";
+ default : return $sformatf(".long 0x%h", opcode);
endcase
- return $sformatf("%s %s, %0d(%s) [%h]", mn, abi_reg[opcode[24:20]], imm, abi_reg[opcode[19:15]], imm+gpr[opcode[19:15]]);
+ return $sformatf("%s%s,%0d(%s) [%h]", mn, abi_reg[opcode[24:20]], imm, abi_reg[opcode[19:15]], imm+gpr[tid][opcode[19:15]]);
endfunction
function string dasm32_ai( input[31:0] opcode);
@@ -286,16 +287,16 @@ string mn;
imm[11:0] = opcode[31:20];
if(opcode[31]) imm[31:12] = '1;
case(opcode[14:12])
- 0: mn = "addi";
- 2: mn = "slti";
- 3: mn = "sltiu";
- 4: mn = "xori";
- 6: mn = "ori";
- 7: mn = "andi";
+ 0: mn = "addi ";
+ 2: mn = "slti ";
+ 3: mn = "sltiu ";
+ 4: mn = "xori ";
+ 6: mn = "ori ";
+ 7: mn = "andi ";
default: return dasm32_si(opcode);
endcase
-return $sformatf("%s %s, %s, %0d", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm);
+return $sformatf("%s%s,%s,%0d", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm);
endfunction
function string dasm32_si( input[31:0] opcode);
@@ -307,7 +308,7 @@ string mn;
5: mn = opcode[30] ? "srli": "srai";
endcase
- return $sformatf("%s %s, %s, %0d", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm);
+ return $sformatf("%s %s,%s,%0d", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], imm);
endfunction
@@ -316,27 +317,27 @@ function string dasm32_ar( input[31:0] opcode);
string mn;
if(opcode[25])
case(opcode[14:12])
- 0: mn = "mul";
- 1: mn = "mulh";
- 2: mn = "mulhsu";
- 3: mn = "mulhu";
- 4: mn = "div";
- 5: mn = "divu";
- 6: mn = "rem";
- 7: mn = "remu";
+ 0: mn = "mul ";
+ 1: mn = "mulh ";
+ 2: mn = "mulhsu ";
+ 3: mn = "mulhu ";
+ 4: mn = "div ";
+ 5: mn = "divu ";
+ 6: mn = "rem ";
+ 7: mn = "remu ";
endcase
else
case(opcode[14:12])
- 0: mn = opcode[30]? "sub":"add";
- 1: mn = "sll";
- 2: mn = "slt";
- 3: mn = "sltu";
- 4: mn = "xor";
- 5: mn = opcode[30]? "sra" :"srl";
- 6: mn = "or";
- 7: mn = "and";
+ 0: mn = opcode[30]? "sub ":"add ";
+ 1: mn = "sll ";
+ 2: mn = "slt ";
+ 3: mn = "sltu ";
+ 4: mn = "xor ";
+ 5: mn = opcode[30]? "sra ":"srl ";
+ 6: mn = "or ";
+ 7: mn = "and ";
endcase
- return $sformatf("%s %s, %s, %s", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], abi_reg[opcode[24:20]]);
+ return $sformatf("%s%s,%s,%s", mn, abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], abi_reg[opcode[24:20]]);
endfunction
function string dasm32_fence( input[31:0] opcode);
@@ -348,12 +349,12 @@ function string dasm32_e(input[31:0] opcode);
else if({opcode[31:21],opcode [19:7]} == 0) return "ebreak";
else
case(opcode[14:12])
- 1: return {"csrrw", dasm32_csr(opcode)};
- 2: return {"csrrs", dasm32_csr(opcode)};
- 3: return {"csrrc", dasm32_csr(opcode)};
- 5: return {"csrrwi", dasm32_csr(opcode, 1)};
- 6: return {"csrrsi", dasm32_csr(opcode, 1)};
- 7: return {"csrrci", dasm32_csr(opcode, 1)};
+ 1: return {"csrrw ", dasm32_csr(opcode)};
+ 2: return {"csrrs ", dasm32_csr(opcode)};
+ 3: return {"csrrc ", dasm32_csr(opcode)};
+ 5: return {"csrrwi ", dasm32_csr(opcode, 1)};
+ 6: return {"csrrsi ", dasm32_csr(opcode, 1)};
+ 7: return {"csrrci ", dasm32_csr(opcode, 1)};
endcase
endfunction
@@ -363,12 +364,32 @@ function string dasm32_csr(input[31:0] opcode, input im=0);
bit[11:0] csr;
csr = opcode[31:20];
if(im) begin
- return $sformatf(" %s, csr_%0h, 0x%h", abi_reg[opcode[11:7]], csr, opcode[19:15]);
+ return $sformatf("%s,csr_%0h,0x%h", abi_reg[opcode[11:7]], csr, opcode[19:15]);
end
else begin
- return $sformatf(" %s, csr_%0h, %s", abi_reg[opcode[11:7]], csr, abi_reg[opcode[19:15]]);
+ return $sformatf("%s,csr_%0h,%s", abi_reg[opcode[11:7]], csr, abi_reg[opcode[19:15]]);
end
endfunction
+//atomics
+function string dasm32_a(input[31:0] opcode, input tid=0);
+ case(opcode[31:27])
+ 'b00010: return $sformatf("lr.w %s,(%s) [%h]", abi_reg[opcode[11:7]], abi_reg[opcode[19:15]], gpr[tid][opcode[19:15]]);
+ 'b00011: return $sformatf("sc.w %s,%s,(%s) [%h]", abi_reg[opcode[11:7]], abi_reg[opcode[24:20]], abi_reg[opcode[19:15]], gpr[tid][opcode[19:15]]);
+ 'b00001: return {"amoswap.w", dasm32_amo(opcode, tid)};
+ 'b00000: return {"amoadd.w", dasm32_amo(opcode, tid)};
+ 'b00100: return {"amoxor.w", dasm32_amo(opcode, tid)};
+ 'b01100: return {"amoand.w", dasm32_amo(opcode, tid)};
+ 'b01000: return {"amoor.w", dasm32_amo(opcode, tid)};
+ 'b10000: return {"amomin.w", dasm32_amo(opcode, tid)};
+ 'b10100: return {"amomax.w", dasm32_amo(opcode, tid)};
+ 'b11000: return {"amominu.w", dasm32_amo(opcode, tid)};
+ 'b11100: return {"amomaxu.w", dasm32_amo(opcode, tid)};
+ endcase
+ return $sformatf(".long 0x%h", opcode);
+endfunction
+function string dasm32_amo( input[31:0] opcode, input tid=0);
+ return $sformatf(" %s,%s,(%s) [%h]", abi_reg[opcode[11:7]], abi_reg[opcode[24:20]], abi_reg[opcode[19:15]], gpr[tid][opcode[19:15]]);
+endfunction
diff --git a/testbench/hex/cmark_dccm.hex b/testbench/hex/cmark_dccm.hex
index 119b842..568823e 100755
--- a/testbench/hex/cmark_dccm.hex
+++ b/testbench/hex/cmark_dccm.hex
@@ -1,2169 +1,2046 @@
@00000000
-00 00 00 00 B7 52 55 5F 93 82 52 55 73 90 02 7C
-17 11 04 F0 13 01 01 5D EF 70 F0 11 97 05 00 00
-93 85 45 FE 05 45 88 C1 B7 02 58 D0 13 03 F0 0F
-23 80 62 00 E3 0A 00 FE 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 03 47 05 00
-E3 09 07 2A 39 71 B7 02 04 F0 22 DE 26 DC 2A 86
-4A DA 4E D8 52 D6 56 D4 5A D2 5E D0 01 45 13 0E
-50 02 37 08 58 D0 93 08 00 03 93 03 D0 02 93 04
-A0 02 13 04 00 02 93 82 02 00 93 0F B1 00 25 4F
-A9 4E 19 A8 BE 86 23 00 E8 00 B2 87 05 05 36 86
-03 C7 17 00 63 06 07 20 93 07 16 00 E3 14 C7 FF
-03 43 16 00 63 0E 03 1E 09 06 63 05 C3 1F E3 15
-13 23 03 C7 17 00 3E 86 85 07 BE 86 63 12 17 07
-03 C7 17 00 3E 86 85 07 63 1C 17 05 03 C7 26 00
-3E 86 93 87 26 00 63 15 17 05 03 C7 36 00 3E 86
-93 87 36 00 63 1E 17 03 03 C7 46 00 3E 86 93 87
-46 00 63 17 17 03 03 C7 56 00 3E 86 93 87 56 00
-63 10 17 03 03 C7 66 00 3E 86 93 87 66 00 63 19
-17 01 03 C7 76 00 3E 86 93 87 76 00 E3 0B 17 F9
-09 06 63 08 77 02 63 0C 97 02 93 09 07 FD 13 F9
-F9 0F 81 46 63 73 2F 0B 13 07 87 FA 13 79 F7 0F
-E3 68 24 F5 13 1A 29 00 B3 0B 5A 00 83 A9 0B 00
-82 89 03 C7 17 00 B2 87 05 06 E3 18 97 FC 03 C7
-17 00 91 05 B2 87 81 46 05 06 F9 B7 03 47 59 00
-13 9B 26 00 B3 0A DB 00 93 0B 07 FD 93 96 1A 00
-93 F9 FB 0F 3E 86 D2 96 93 07 59 00 63 62 3F 11
-03 47 69 00 13 96 26 00 33 0B D6 00 13 0A 07 FD
-93 16 1B 00 93 7A FA 0F 3E 86 DE 96 93 07 69 00
-63 60 5F 0F 03 47 79 00 93 9B 26 00 33 86 DB 00
-93 09 07 FD 13 1B 16 00 93 FA F9 0F 3E 86 B3 06
-6A 01 93 07 79 00 63 6D 5F 0B 03 C7 17 00 13 9A
-26 00 B3 0A DA 00 13 0B 07 FD 3E 86 93 9B 1A 00
-85 07 13 7A FB 0F 3E 89 B3 86 79 01 63 6A 4F 09
-03 C7 17 00 93 99 26 00 CE 96 93 0B 07 FD 13 9A
-16 00 93 FA FB 0F 3E 86 B3 06 4B 01 85 07 63 69
-5F 07 03 47 29 00 13 96 26 00 33 0B D6 00 13 0A
-07 FD 93 19 1B 00 93 7A FA 0F 3E 86 B3 86 3B 01
-93 07 29 00 63 66 5F 05 03 47 39 00 93 9B 26 00
-DE 96 13 0B 07 FD 93 99 16 00 93 7A FB 0F 3E 86
-B3 06 3A 01 93 07 39 00 63 64 5F 03 03 47 49 00
-13 96 26 00 B3 0B D6 00 13 0A 07 FD 93 96 1B 00
-93 79 FA 0F 3E 86 DA 96 93 07 49 00 E3 70 3F EF
-09 06 5D B5 23 00 C8 01 03 C7 17 00 E3 1E 07 DE
-72 54 E2 54 52 59 C2 59 32 5A A2 5A 12 5B 82 5B
-21 61 82 80 98 41 81 49 91 05 11 A0 B6 89 93 7A
-F7 00 13 83 7A 05 63 44 5F 01 13 83 0A 03 93 86
-19 00 13 0B C1 00 33 0A DB 00 A3 0F 6A FE 11 83
-71 FF 13 09 C1 00 33 07 39 01 B3 09 F7 41 93 FA
-79 00 63 89 0A 06 85 4B 63 8F 7A 05 09 43 63 87
-6A 04 0D 4B 63 8F 6A 03 11 4A 63 87 4A 03 15 49
-63 8F 2A 01 99 49 63 87 3A 01 83 4A 07 00 7D 17
-23 00 58 01 83 4B 07 00 7D 17 23 00 78 01 03 43
-07 00 7D 17 23 00 68 00 03 4B 07 00 7D 17 23 00
-68 01 03 4A 07 00 7D 17 23 00 48 01 03 49 07 00
-7D 17 23 00 28 01 83 49 07 00 7D 17 23 00 38 01
-63 05 F7 05 83 4A 07 00 61 17 23 00 58 01 83 4B
-77 00 23 00 78 01 03 43 67 00 23 00 68 00 03 4B
-57 00 23 00 68 01 03 4A 47 00 23 00 48 01 03 49
-37 00 23 00 28 01 83 49 27 00 23 00 38 01 83 4A
-17 00 23 00 58 01 E3 1F F7 FB 36 95 D5 B1 03 C9
-05 00 05 05 91 05 23 00 28 01 D9 B9 03 AA 05 00
-01 49 91 05 B3 7A DA 03 4A 87 13 0B C1 00 05 09
-B3 0B 2B 01 CA 89 93 8A 0A 03 A3 8F 5B FF B3 5B
-DA 03 63 78 4F 0F 4A 87 13 0B C1 00 05 09 B3 0A
-2B 01 33 FA DB 03 13 0A 0A 03 A3 8F 4A FF 33 DA
-DB 03 63 78 7F 0D 93 0B C1 00 4A 87 13 89 29 00
-33 8B 2B 01 B3 7A DA 03 93 8B 0A 03 A3 0F 7B FF
-B3 5A DA 03 63 77 4F 0B 13 0A C1 00 4A 87 13 89
-39 00 33 0B 2A 01 B3 FB DA 03 13 8A 0B 03 A3 0F
-4B FF B3 DB DA 03 63 76 5F 09 93 0A C1 00 4A 87
-13 89 49 00 33 8B 2A 01 33 FA DB 03 93 0A 0A 03
-A3 0F 5B FF B3 DA DB 03 63 75 7F 07 93 0B C1 00
-4A 87 13 89 59 00 33 8B 2B 01 33 FA DA 03 93 0B
-0A 03 A3 0F 7B FF 33 DA DA 03 63 74 5F 05 93 0A
-C1 00 4A 87 13 89 69 00 33 8B 2A 01 B3 7B DA 03
-93 8A 0B 03 A3 0F 5B FF 33 5B DA 03 63 73 4F 03
-4A 87 13 89 79 00 93 09 C1 00 33 8A 29 01 B3 7B
-DB 03 93 8A 0B 03 A3 0F 5A FF 33 5A DB 03 E3 6B
-6F EF CA 89 63 55 D9 08 33 8B 26 41 93 7B 7B 00
-63 8C 0B 04 85 4A 63 84 5B 05 09 4A 63 8E 4B 03
-0D 4B 63 88 6B 03 91 4A 63 82 5B 03 15 4A 63 8C
-4B 01 19 4B 63 86 6B 01 23 00 68 00 93 09 19 00
-23 00 68 00 85 09 23 00 68 00 85 09 23 00 68 00
-85 09 23 00 68 00 85 09 23 00 68 00 85 09 23 00
-68 00 85 09 63 85 36 03 23 00 68 00 23 00 68 00
-23 00 68 00 23 00 68 00 23 00 68 00 23 00 68 00
-23 00 68 00 23 00 68 00 A1 09 E3 9F 36 FD 13 03
-C1 00 1A 97 B3 06 F7 41 93 FB 76 00 63 89 0B 06
-85 4A 63 8F 5B 05 09 4A 63 87 4B 05 0D 4B 63 8F
-6B 03 91 49 63 87 3B 03 15 43 63 8F 6B 00 99 46
-63 87 DB 00 83 4B 07 00 7D 17 23 00 78 01 83 4A
-07 00 7D 17 23 00 58 01 03 4A 07 00 7D 17 23 00
-48 01 03 4B 07 00 7D 17 23 00 68 01 83 49 07 00
-7D 17 23 00 38 01 03 43 07 00 7D 17 23 00 68 00
-83 46 07 00 7D 17 23 00 D8 00 63 05 F7 05 83 4B
-07 00 61 17 23 00 78 01 83 4A 77 00 23 00 58 01
-03 4A 67 00 23 00 48 01 03 4B 57 00 23 00 68 01
-83 49 47 00 23 00 38 01 03 43 37 00 23 00 68 00
-83 46 27 00 23 00 D8 00 83 4B 17 00 23 00 78 01
-E3 1F F7 FB 4A 95 AD B4 98 41 91 05 83 4B 07 00
-63 82 0B 06 23 00 78 01 03 49 17 00 63 0C 09 04
-23 00 28 01 83 4A 27 00 63 86 0A 04 23 00 58 01
-03 4A 37 00 63 00 0A 04 23 00 48 01 03 4B 47 00
-63 0A 0B 02 23 00 68 01 83 49 57 00 63 84 09 02
-23 00 38 01 03 43 67 00 63 0E 03 00 23 00 68 00
-83 46 77 00 81 CA 21 07 23 00 D8 00 83 4B 07 00
-E3 92 0B FA 05 05 ED BA 03 A3 05 00 01 47 91 05
-BA 86 13 79 73 00 05 07 93 0A C1 00 33 8A EA 00
-13 0B 09 03 A3 0F 6A FF 93 5B 33 00 BA 89 63 88
-0B 0E 13 F9 7B 00 BA 86 93 0A C1 00 05 07 33 8A
-EA 00 13 0B 09 03 A3 0F 6A FF 93 5B 63 00 63 88
-0B 0C 13 F9 7B 00 BA 86 93 0A C1 00 13 87 29 00
-33 8A EA 00 13 0B 09 03 A3 0F 6A FF 93 5B 93 00
-63 87 0B 0A 13 F9 7B 00 BA 86 93 0A C1 00 13 87
-39 00 33 8A EA 00 13 0B 09 03 A3 0F 6A FF 93 5B
-C3 00 63 86 0B 08 13 F9 7B 00 BA 86 93 0A C1 00
-13 87 49 00 33 8A EA 00 13 0B 09 03 A3 0F 6A FF
-93 5B F3 00 63 85 0B 06 13 F9 7B 00 BA 86 93 0A
-C1 00 13 87 59 00 33 8A EA 00 13 0B 09 03 A3 0F
-6A FF 93 5B 23 01 63 84 0B 04 13 F9 7B 00 BA 86
-93 0A C1 00 13 87 69 00 33 8A EA 00 13 0B 09 03
-A3 0F 6A FF 93 5B 53 01 63 83 0B 02 BA 86 13 F9
-7B 00 13 87 79 00 93 09 C1 00 B3 8A E9 00 13 0A
-09 03 A3 8F 4A FF 13 53 83 01 E3 1B 03 EE 13 0B
-C1 00 DA 96 B3 8B F6 41 93 F9 7B 00 63 89 09 06
-05 49 63 8F 29 05 89 4A 63 87 59 05 0D 4A 63 8F
-49 03 11 43 63 87 69 02 15 4B 63 8F 69 01 99 4B
-63 87 79 01 83 C9 06 00 FD 16 23 00 38 01 03 C9
-06 00 FD 16 23 00 28 01 83 CA 06 00 FD 16 23 00
-58 01 03 CA 06 00 FD 16 23 00 48 01 03 C3 06 00
-FD 16 23 00 68 00 03 CB 06 00 FD 16 23 00 68 01
-83 CB 06 00 FD 16 23 00 78 01 63 85 F6 05 83 C9
-06 00 E1 16 23 00 38 01 03 C9 76 00 23 00 28 01
-83 CA 66 00 23 00 58 01 03 CA 56 00 23 00 48 01
-03 C3 46 00 23 00 68 00 03 CB 36 00 23 00 68 01
-83 CB 26 00 23 00 78 01 83 C9 16 00 23 00 38 01
-E3 9F F6 FB 3A 95 29 B8 83 AA 05 00 91 05 56 87
-63 C3 0A 26 01 49 33 6B D7 03 13 0A C1 00 CA 89
-05 09 B3 0B 2A 01 4A 8A 33 47 D7 03 13 0B 0B 03
-A3 8F 6B FF 71 CB 33 6B D7 03 CA 89 93 0B C1 00
-05 09 CA 9B 33 47 D7 03 13 0B 0B 03 A3 8F 6B FF
-45 CF 33 6B D7 03 CA 89 93 0B C1 00 13 09 2A 00
-CA 9B 33 47 D7 03 13 0B 0B 03 A3 8F 6B FF 49 CF
-33 6B D7 03 CA 89 93 0B C1 00 13 09 3A 00 CA 9B
-33 47 D7 03 13 0B 0B 03 A3 8F 6B FF 35 CF 33 6B
-D7 03 CA 89 93 0B C1 00 13 09 4A 00 CA 9B 33 47
-D7 03 13 0B 0B 03 A3 8F 6B FF 39 CF 33 6B D7 03
-CA 89 93 0B C1 00 13 09 5A 00 CA 9B 33 47 D7 03
-13 0B 0B 03 A3 8F 6B FF 21 C3 33 6B D7 03 CA 89
-93 0B C1 00 13 09 6A 00 CA 9B 33 47 D7 03 13 0B
-0B 03 A3 8F 6B FF 0D C3 33 6B D7 03 CA 89 13 09
-7A 00 13 0A C1 00 B3 0B 2A 01 33 47 D7 03 13 0B
-0B 03 A3 8F 6B FF 01 FB 4A 87 63 55 D9 08 33 8A
-26 41 93 7B 7A 00 63 8C 0B 04 05 4B 63 84 6B 05
-09 4A 63 8E 4B 03 0D 4B 63 88 6B 03 11 4A 63 82
-4B 03 15 4B 63 8C 6B 01 19 4A 63 86 4B 01 23 00
-68 00 13 07 19 00 23 00 68 00 05 07 23 00 68 00
-05 07 23 00 68 00 05 07 23 00 68 00 05 07 23 00
-68 00 05 07 23 00 68 00 05 07 63 05 D7 02 23 00
-68 00 23 00 68 00 23 00 68 00 23 00 68 00 23 00
-68 00 23 00 68 00 23 00 68 00 23 00 68 00 21 07
-E3 1F D7 FC 74 00 33 87 36 01 33 03 F7 41 93 7B
-73 00 63 89 0B 06 05 4B 63 8F 6B 05 09 4A 63 87
-4B 05 8D 46 63 8F DB 02 11 43 63 87 6B 02 15 4B
-63 8F 6B 01 19 4A 63 87 4B 01 83 4B 07 00 7D 17
-23 00 78 01 83 46 07 00 7D 17 23 00 D8 00 03 43
-07 00 7D 17 23 00 68 00 03 4B 07 00 7D 17 23 00
-68 01 03 4A 07 00 7D 17 23 00 48 01 83 4B 07 00
-7D 17 23 00 78 01 83 46 07 00 7D 17 23 00 D8 00
-63 05 F7 05 03 43 07 00 61 17 23 00 68 00 03 4B
-77 00 23 00 68 01 03 4A 67 00 23 00 48 01 83 4B
-57 00 23 00 78 01 83 46 47 00 23 00 D8 00 03 43
-37 00 23 00 68 00 03 4B 27 00 23 00 68 01 03 4A
-17 00 23 00 48 01 E3 1F F7 FB E3 DD 0A B4 13 89
-29 00 4A 95 6F F0 CF DB 1A 87 13 03 00 02 63 14
-77 E4 6F F0 0F E7 33 07 50 41 23 00 78 00 FD 16
-51 BB 01 45 82 80 39 71 13 03 41 02 2E D2 9A 85
+B7 52 55 59 93 82 52 55 73 90 02 7C 17 11 04 F0
+13 01 41 5D EF 70 E0 14 97 02 58 D0 93 82 82 FE
+13 03 F0 0F 23 80 62 00 05 43 23 A0 62 00 E3 05
+00 FE 01 00 01 00 01 00 01 00 01 00 01 00 01 00
+01 00 01 00 01 00 03 48 05 00 63 0B 08 28 39 71
+22 DE 37 04 04 F0 26 DC 4A DA 4E D8 52 D6 AA 86
+56 D4 5A D2 5E D0 01 45 93 0F 50 02 B7 08 58 D0
+13 03 00 03 93 09 D0 02 13 09 A0 02 93 04 00 02
+13 04 04 00 29 4F 93 03 B1 00 A5 42 13 0A D0 02
+03 C6 16 00 93 87 16 00 63 03 F8 03 23 80 08 01
+05 05 BE 86 32 88 E3 15 08 FE 72 54 E2 54 52 59
+C2 59 32 5A A2 5A 12 5B 82 5B 21 61 82 80 75 D6
+13 8E 26 00 63 00 F6 07 63 1D 66 1E 03 C7 17 00
+BE 86 85 07 E3 0C 67 FE 89 06 03 C8 17 00 63 05
+37 03 63 0A 27 03 93 0A 07 FD 13 FE FA 0F 81 4E
+63 F2 C2 05 13 07 87 FA 13 77 F7 0F E3 E5 E4 FA
+0A 07 22 97 1C 43 82 87 42 87 03 C8 27 00 B6 87
+85 06 E3 1A 27 FD 42 87 91 05 03 C8 27 00 85 06
+81 4E C9 BF 23 80 08 01 03 C8 26 00 F2 86 E3 11
+08 F6 A5 BF 03 C8 17 00 19 A0 93 0A 07 FD 13 9E
+2E 00 76 9E 93 06 08 FD 3E 8B 06 0E 85 07 93 F6
+F6 0F 42 87 B3 8E CA 01 03 C8 17 00 E3 FF D2 FC
+93 06 2B 00 41 BF 98 41 81 47 91 05 11 A0 B2 87
+93 7E F7 00 13 8E 7E 05 63 C4 D2 01 13 8E 0E 03
+13 86 17 00 93 0E C1 00 B2 9E A3 8F CE FF 11 83
+79 FF 78 00 BA 97 03 C7 07 00 FD 17 23 80 E8 00
+E3 9B F3 FE 32 95 E3 15 08 EE 01 B7 03 AE 05 00
+01 47 91 05 B3 7A EE 03 13 0B C1 00 BA 87 05 07
+B3 0B EB 00 72 8B 93 8A 0A 03 A3 8F 5B FF 33 5E
+EE 03 E3 E1 62 FF 3A 8E 63 57 D7 01 23 80 C8 00
+05 0E E3 9D CE FF 70 00 B2 97 03 C6 07 00 FD 17
+23 80 C8 00 E3 9B 77 FE 3A 95 E3 1B 08 E8 75 B5
+98 41 91 05 83 47 07 00 99 C7 05 07 23 80 F8 00
+83 47 07 00 FD FB 23 80 E8 01 05 05 E3 1A 08 E6
+69 B5 90 41 01 47 91 05 13 7E 76 00 BA 87 93 0E
+C1 00 05 07 BA 9E 13 0E 0E 03 A3 8F CE FF 0D 82
+65 F6 70 00 B2 97 03 C6 07 00 FD 17 23 80 C8 00
+E3 9B 77 FE 3A 95 55 B7 83 AB 05 00 91 05 5E 87
+63 CA 0B 06 81 47 33 6E E7 03 3E 8B 93 0A C1 00
+85 07 BE 9A 33 47 E7 03 13 0E 0E 03 A3 8F CA FF
+7D F3 3E 87 63 D7 D7 01 23 80 C8 00 05 07 E3 1D
+D7 FF 78 00 5A 97 03 46 07 00 7D 17 23 80 C8 00
+E3 1B 77 FE 63 C4 0B 02 3E 95 E3 13 08 DE F5 BB
+83 C7 05 00 05 05 91 05 23 80 F8 00 E3 1A 08 DC
+ED B3 32 87 F2 86 13 06 00 02 01 BD 93 07 2B 00
+3E 95 E1 BF 33 07 70 41 23 80 48 01 FD 1E 59 B7
+01 45 82 80 39 71 13 03 41 02 2E D2 9A 85 06 CE
+32 D4 36 D6 3A D8 3E DA 42 DC 46 DE 1A C6 A1 33
+F2 40 21 61 82 80 13 77 F5 0F B7 07 58 D0 23 80
+E7 00 3A 85 82 80 13 77 F5 0F B7 07 58 D0 23 80
+E7 00 3A 85 82 80 83 47 05 00 37 07 58 D0 99 C7
+05 05 23 00 F7 00 83 47 05 00 FD FB A9 47 23 00
+F7 00 05 45 82 80 39 71 13 03 41 02 2E D2 9A 85
06 CE 32 D4 36 D6 3A D8 3E DA 42 DC 46 DE 1A C6
-EF F0 CF D2 F2 40 21 61 82 80 39 71 13 03 41 02
-2E D2 9A 85 06 CE 32 D4 36 D6 3A D8 3E DA 42 DC
-46 DE 1A C6 EF F0 8F D0 F2 40 21 61 82 80 19 C6
-03 15 25 00 83 95 25 00 0D 8D 82 80 83 17 05 00
-13 97 07 01 93 52 07 01 13 F3 07 F0 93 D3 82 00
-33 66 73 00 23 10 C5 00 83 96 05 00 03 15 25 00
-13 98 06 01 93 58 08 01 13 FE 06 F0 93 DE 88 00
-33 6F DE 01 23 90 E5 01 83 95 25 00 0D 8D 82 80
-03 97 05 00 83 97 25 00 23 10 E5 00 23 11 F5 00
-82 80 D1 48 B3 52 15 03 61 73 23 A0 05 00 13 07
-03 08 93 87 05 01 93 86 85 00 93 88 E2 FF 13 98
-38 00 2E 98 23 A2 05 01 13 9E 28 00 23 11 08 00
-23 10 E8 00 42 9E 13 05 48 00 63 FB 07 3F 13 07
-88 00 63 77 C7 3F 23 A4 05 00 94 C1 C8 C5 93 43
-F3 FF FD 5E 23 12 D8 01 23 13 78 00 63 8D 08 20
-13 1F 06 01 E1 7F 93 F2 38 00 13 5F 0F 01 01 45
-93 CE FF FF 63 8D 02 0C 05 43 63 84 62 08 89 43
-63 8D 72 02 93 82 87 00 63 F8 02 03 93 0F 47 00
-63 F4 CF 03 13 15 3F 00 94 C3 93 76 85 07 9C C1
-13 93 86 00 D8 C3 B3 63 D3 00 23 10 77 00 23 11
-D7 01 BE 86 7E 87 96 87 05 45 93 82 87 00 63 F1
-02 05 93 03 47 00 63 FD C3 03 93 1F 05 01 93 DF
-0F 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF 7F 00
-94 C3 B3 66 F3 01 9C C1 13 93 86 00 D8 C3 B3 6F
-D3 00 23 10 F7 01 23 11 D7 01 BE 86 1E 87 96 87
-05 05 93 82 87 00 63 F1 02 05 93 03 47 00 63 FD
-C3 03 13 13 05 01 93 5F 03 01 33 C3 EF 01 0E 03
-13 73 83 07 93 FF 7F 00 94 C3 B3 66 F3 01 9C C1
-13 93 86 00 D8 C3 B3 6F D3 00 23 10 F7 01 23 11
-D7 01 BE 86 1E 87 96 87 05 05 63 86 A8 12 93 82
+DD 31 F2 40 21 61 82 80 F3 25 00 B8 73 25 00 B0
+F3 27 00 B8 E3 9A F5 FE 82 80 19 C6 03 15 25 00
+83 95 25 00 0D 8D 82 80 83 17 05 00 13 97 07 01
+93 52 07 01 13 F3 07 F0 93 D3 82 00 33 66 73 00
+23 10 C5 00 83 96 05 00 03 15 25 00 13 98 06 01
+93 58 08 01 13 FE 06 F0 93 DE 88 00 33 6F DE 01
+23 90 E5 01 83 95 25 00 0D 8D 82 80 03 97 05 00
+83 97 25 00 23 10 E5 00 23 11 F5 00 82 80 D1 48
+B3 52 15 03 61 73 23 A0 05 00 13 07 03 08 93 87
+05 01 93 86 85 00 93 88 E2 FF 13 98 38 00 2E 98
+23 A2 05 01 13 9E 28 00 23 11 08 00 23 10 E8 00
+42 9E 13 05 48 00 63 FB 07 3F 13 07 88 00 63 77
+C7 3F 23 A4 05 00 94 C1 C8 C5 93 43 F3 FF FD 5E
+23 12 D8 01 23 13 78 00 63 8D 08 20 13 1F 06 01
+E1 7F 93 F2 38 00 13 5F 0F 01 01 45 93 CE FF FF
+63 8D 02 0C 05 43 63 84 62 08 89 43 63 8D 72 02
+93 82 87 00 63 F8 02 03 93 0F 47 00 63 F4 CF 03
+13 15 3F 00 94 C3 93 76 85 07 9C C1 13 93 86 00
+D8 C3 B3 63 D3 00 23 10 77 00 23 11 D7 01 BE 86
+7E 87 96 87 05 45 93 82 87 00 63 F1 02 05 93 03
+47 00 63 FD C3 03 93 1F 05 01 93 DF 0F 01 33 C3
+EF 01 0E 03 13 73 83 07 93 FF 7F 00 94 C3 B3 66
+F3 01 9C C1 13 93 86 00 D8 C3 B3 6F D3 00 23 10
+F7 01 23 11 D7 01 BE 86 1E 87 96 87 05 05 93 82
87 00 63 F1 02 05 93 03 47 00 63 FD C3 03 13 13
05 01 93 5F 03 01 33 C3 EF 01 0E 03 13 73 83 07
93 FF 7F 00 94 C3 B3 66 F3 01 9C C1 13 93 86 00
D8 C3 B3 6F D3 00 23 10 F7 01 23 11 D7 01 BE 86
-1E 87 96 87 93 82 87 00 05 05 63 F1 02 05 93 03
-47 00 63 FD C3 03 13 13 05 01 93 5F 03 01 33 C3
-EF 01 0E 03 13 73 83 07 93 FF 7F 00 94 C3 B3 66
-F3 01 9C C1 13 93 86 00 D8 C3 B3 6F D3 00 23 10
-F7 01 23 11 D7 01 BE 86 1E 87 96 87 93 82 87 00
-13 03 15 00 63 F1 02 05 93 03 47 00 63 FD C3 03
-93 1F 03 01 93 DF 0F 01 33 C3 EF 01 0E 03 13 73
-83 07 93 FF 7F 00 94 C3 B3 66 F3 01 9C C1 13 93
-86 00 D8 C3 B3 6F D3 00 23 10 F7 01 23 11 D7 01
-BE 86 1E 87 96 87 93 82 87 00 13 03 25 00 63 F1
-02 05 93 03 47 00 63 FD C3 03 93 1F 03 01 93 DF
-0F 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF 7F 00
+1E 87 96 87 05 05 63 86 A8 12 93 82 87 00 63 F1
+02 05 93 03 47 00 63 FD C3 03 13 13 05 01 93 5F
+03 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF 7F 00
94 C3 B3 66 F3 01 9C C1 13 93 86 00 D8 C3 B3 6F
D3 00 23 10 F7 01 23 11 D7 01 BE 86 1E 87 96 87
-0D 05 E3 9E A8 EC 88 42 29 CD 15 48 33 DF 08 03
-91 68 05 47 13 8E F8 FF 11 A8 03 28 05 00 23 91
-EE 00 05 07 63 0F 08 02 AA 86 42 85 83 AE 46 00
-E3 65 E7 FF 93 12 07 01 93 D3 02 01 13 83 13 00
-93 1F 83 00 93 F7 0F 70 B3 C6 C3 00 03 28 05 00
-B3 E8 D7 00 B3 F2 C8 01 23 91 5E 00 05 07 E3 15
-08 FC 05 48 81 48 01 45 81 4F 85 42 13 7F 78 00
-85 0F AE 87 01 47 63 0B 0F 04 05 46 63 03 CF 04
-09 4E 63 0D CF 03 8D 4E 63 07 DF 03 91 43 63 01
-7F 02 15 43 63 0B 6F 00 99 46 63 05 DF 00 9C 41
-05 47 A5 C7 9C 43 05 07 AD C3 9C 43 05 07 B1 CF
-9C 43 05 07 B9 CB 9C 43 05 07 A1 CB 9C 43 05 07
-A9 C7 9C 43 05 07 B1 C3 63 02 E8 0C 9C 43 05 07
-3A 8F 85 CF 9C 43 05 07 8D CB 9C 43 13 07 2F 00
-8D C7 9C 43 13 07 3F 00 8D C3 9C 43 13 07 4F 00
-89 CF 9C 43 13 07 5F 00 89 CB 9C 43 13 07 6F 00
-89 C7 9C 43 13 07 7F 00 E1 F3 AE 86 42 86 BE 85
-25 C7 51 C2 C9 C1 83 AE 46 00 03 AE 45 00 83 97
-0E 00 83 13 2E 00 03 93 2E 00 13 9F 07 01 13 5F
-0F 01 13 5F 8F 00 93 F7 07 F0 B3 E7 E7 01 23 90
-FE 00 03 1F 0E 00 33 03 73 40 93 1E 0F 01 93 D3
-0E 01 93 77 0F F0 13 DF 83 00 B3 EE E7 01 23 10
-DE 01 63 5A 60 02 2E 8E 8C 41 7D 16 63 8D 08 00
-23 A0 C8 01 F2 88 51 FF 1D C2 85 C5 2E 8E 7D 16
-8C 41 E3 97 08 FE 72 85 F2 88 F5 B7 AE 86 42 87
-42 86 BE 85 B5 BF 36 8E 7D 17 94 42 C1 BF E3 97
-05 EC 23 A0 08 00 63 89 5F 00 06 08 19 C5 AA 85
-81 4F 81 48 01 45 5D BD 82 80 23 20 00 00 02 90
-B6 87 2A 87 81 46 1D B1 03 28 06 00 93 08 88 00
-63 F1 E8 04 98 42 13 03 47 00 63 7C F3 02 23 20
-16 01 1C 41 83 92 05 00 03 96 25 00 23 20 F8 00
-23 20 05 01 23 22 E8 00 83 A3 06 00 13 85 43 00
-88 C2 83 25 48 00 42 85 23 90 55 00 23 91 C5 00
-82 80 01 48 42 85 82 80 AA 87 08 41 D4 43 50 41
-18 41 D0 C3 54 C1 98 C3 23 20 05 00 82 80 D0 41
-54 41 98 41 50 C1 D4 C1 18 C1 88 C1 82 80 03 96
-25 00 63 4D 06 00 01 E5 05 A8 08 41 05 C5 03 23
-45 00 83 13 23 00 E3 9A C3 FE 82 80 01 CD 03 97
-05 00 19 A0 08 41 01 C9 5C 41 83 C2 07 00 E3 9B
-E2 FE 82 80 01 45 82 80 82 80 2D C9 1C 41 81 48
-23 20 15 01 AA 86 BD C3 98 43 94 C3 3E 85 25 C3
-83 22 07 00 1C C3 3A 85 63 8A 02 04 03 A3 02 00
-23 A0 E2 00 16 85 63 03 03 04 83 23 03 00 23 20
-53 00 1A 85 63 8C 03 02 83 A5 03 00 23 A0 63 00
-1E 85 8D C5 03 A8 05 00 23 A0 75 00 2E 85 63 0F
-08 00 03 26 08 00 23 20 B8 00 42 85 C2 88 19 C6
-32 85 1C 41 23 20 15 01 AA 86 D9 FF 82 80 82 80
-79 71 22 D4 5A C8 5E C6 66 C2 6A C0 06 D6 26 D2
-4A D0 4E CE 52 CC 56 CA 62 C4 2A 84 2E 8B 32 8D
-85 4B 85 4C 63 01 04 10 01 4C 81 44 81 4A 13 F7
-7B 00 05 0C A2 87 01 49 31 CB 85 46 63 03 D7 04
-89 40 63 0D 17 02 8D 42 63 07 57 02 11 43 63 01
-67 02 95 43 63 0B 77 00 19 45 63 05 A7 00 1C 40
-05 49 A5 C7 9C 43 05 09 AD C3 9C 43 05 09 B1 CF
-9C 43 05 09 B9 CB 9C 43 05 09 A1 CB 9C 43 05 09
-A9 C7 9C 43 05 09 B1 C3 63 81 2B 05 9C 43 05 09
-CA 85 85 CF 9C 43 05 09 8D CB 9C 43 13 89 25 00
-8D C7 9C 43 13 89 35 00 8D C3 9C 43 13 89 45 00
-89 CF 9C 43 13 89 55 00 89 CB 9C 43 13 89 65 00
-89 C7 9C 43 13 89 75 00 E1 F3 22 8A DE 89 3E 84
-63 04 09 02 63 8C 09 02 15 C8 4C 40 03 25 4A 00
-6A 86 02 9B 63 54 A0 02 22 86 00 40 FD 19 81 CC
-90 C0 B2 84 E3 10 09 FE 63 8F 09 00 11 CC 22 86
-FD 19 00 40 F5 F4 B2 8A B2 84 ED B7 52 86 7D 19
-03 2A 0A 00 E9 BF 01 FC 23 A0 04 00 63 08 9C 01
-86 0B 56 84 01 B7 23 20 00 00 02 90 B2 50 22 54
-92 54 02 59 F2 49 62 4A 42 4B B2 4B 22 4C 92 4C
-02 4D 56 85 D2 4A 45 61 82 80 1D 71 A6 CA CE C6
-D2 C4 5E DE FD 74 13 1A 07 01 86 CE A2 CC CA C8
-D6 C2 DA C0 62 DC 66 DA 6A D8 6E D6 2E C2 32 C6
-AA 89 B6 8B D9 8C 13 5A 0A 01 19 E1 6F 10 70 48
-93 18 15 00 33 0F A0 40 B2 98 13 13 1F 00 C6 86
-01 46 0A 0F 33 05 D3 00 B3 85 A6 40 93 80 E5 FF
-93 D2 10 00 93 83 12 00 13 F4 73 00 AA 87 59 C4
-05 48 63 0C 04 07 09 49 63 02 24 07 8D 4A 63 08
-54 05 11 4B 63 0E 64 03 15 4C 63 04 84 03 99 4C
-63 0A 94 01 03 5D 05 00 93 07 25 00 33 0E AA 01
-23 10 C5 01 83 DE 07 00 89 07 B3 0F DA 01 23 9F
-F7 FF 83 DD 07 00 89 07 B3 05 BA 01 23 9F B7 FE
-83 D0 07 00 89 07 B3 02 1A 00 23 9F 57 FE 83 D3
-07 00 89 07 33 04 7A 00 23 9F 87 FE 03 D8 07 00
-89 07 33 09 0A 01 23 9F 27 FF 83 DA 07 00 89 07
-33 0B 5A 01 23 9F 67 FF 63 85 D7 06 03 DC 07 00
-83 DC 27 00 03 DD 47 00 83 DF 67 00 83 DE 87 00
-03 DE A7 00 83 DD C7 00 83 D5 E7 00 B3 00 8A 01
-B3 03 9A 01 B3 02 AA 01 33 04 FA 01 33 09 DA 01
-B3 0A CA 01 33 08 BA 01 33 0B BA 00 23 90 17 00
-23 91 77 00 23 92 57 00 23 93 87 00 23 94 27 01
-23 95 57 01 23 96 07 01 23 97 67 01 C1 07 E3 9F
-D7 F8 93 0E 16 00 B3 06 E5 41 63 84 D9 01 76 86
-D5 B5 92 43 33 08 30 41 01 4F 81 4F 13 15 28 00
-33 8D 68 00 B3 87 A8 41 13 8C E7 FF 93 5C 1C 00
-13 8E 1C 00 93 1D 2F 00 93 75 7E 00 B3 87 7D 00
-EA 86 D1 CD 85 40 63 82 15 08 89 42 63 87 55 06
-0D 44 63 8C 85 04 11 49 63 81 25 05 95 4A 63 86
-55 03 19 4B 63 8B 65 01 03 1C 0D 00 93 06 2D 00
-91 07 B3 0C EC 02 23 AE 97 FF 03 9E 06 00 91 07
-89 06 B3 0D EE 02 23 AE B7 FF 83 95 06 00 91 07
-89 06 B3 80 E5 02 23 AE 17 FE 83 92 06 00 91 07
-89 06 33 84 E2 02 23 AE 87 FE 03 99 06 00 91 07
-89 06 B3 0A E9 02 23 AE 57 FF 03 9B 06 00 91 07
-89 06 33 0C EB 02 23 AE 87 FF 83 9C 06 00 91 07
-89 06 33 8E EC 02 23 AE C7 FF 63 87 16 07 83 9D
-06 00 83 90 26 00 03 9B 46 00 83 9A 66 00 03 99
-86 00 03 94 A6 00 83 92 C6 00 83 95 E6 00 B3 8C
-ED 02 C1 06 93 87 07 02 33 8C E0 02 23 A0 97 FF
-33 0E EB 02 23 A2 87 FF B3 8D EA 02 23 A4 C7 FF
-B3 00 E9 02 23 A6 B7 FF 33 0B E4 02 23 A8 17 FE
-B3 8A E2 02 23 AA 67 FF 33 89 E5 02 23 AC 57 FF
-23 AE 27 FF E3 9D 16 F9 93 86 1F 00 76 9F B3 08
-AD 40 63 84 CF 00 B6 8F E1 B5 92 4F 13 97 2E 00
-81 40 7E 97 01 4E 81 46 81 45 0E 08 33 0D A7 00
-33 03 A7 41 93 03 C3 FF 93 DE 23 00 13 84 1E 00
-93 72 34 00 6A 8F 63 8C 02 0E 85 4C 63 8A 92 05
-09 4C 63 85 82 03 F2 8D 03 2E 0D 00 93 97 00 01
-93 D0 07 01 F2 96 63 D7 D4 1A 13 8F A0 00 93 18
-0F 01 93 D0 08 41 81 46 13 0F 4D 00 F2 8F 03 2E
-0F 00 13 93 00 01 93 53 03 01 F2 96 63 DB D4 16
-93 86 A3 00 93 9C 06 01 93 D0 0C 41 81 46 11 0F
-72 8C 03 2E 0F 00 93 9D 00 01 93 D7 0D 01 F2 96
-63 DC D4 12 93 88 A7 00 93 9F 08 01 13 93 08 01
-93 DE 0F 01 93 50 03 41 81 46 11 0F 63 19 E7 07
-93 8D 15 00 33 07 0D 41 63 07 B6 14 EE 85 B9 B7
-83 22 4F 00 93 8E AA 00 13 94 0E 01 93 53 04 41
-01 49 13 9E 03 01 B3 06 59 00 93 5C 0E 01 63 DF
-D4 08 03 2E 8F 00 93 87 AC 00 93 9A 07 01 13 DB
-0A 41 81 46 13 19 0B 01 F2 96 93 58 09 01 63 D0
-D4 0A 93 82 A8 00 93 9C 02 01 13 9C 02 01 93 DE
-0C 01 93 50 0C 41 81 46 31 0F E3 0B E7 F9 83 23
-0F 00 93 9E 00 01 13 D4 0E 01 B3 80 76 00 63 C5
-14 08 33 2E 7E 00 B3 02 C4 01 93 9C 02 01 93 DD
-0C 41 03 2B 4F 00 93 97 0D 01 11 0F 33 89 60 01
-93 DA 07 01 E3 C6 24 F7 B3 A8 63 01 83 22 4F 00
-B3 8F 1A 01 13 93 0F 01 93 53 03 41 13 9E 03 01
-B3 06 59 00 93 5C 0E 01 E3 C5 D4 F6 33 2C 5B 00
-03 2E 8F 00 B3 8D 8C 01 93 90 0D 01 13 DB 00 41
-13 19 0B 01 F2 96 93 58 09 01 E3 C4 D4 F6 B3 AF
-C2 01 33 83 F8 01 93 13 03 01 13 14 03 01 93 DE
-03 01 93 50 04 41 8D B7 93 06 A4 00 13 9C 06 01
-93 5D 0C 41 81 40 B5 BF B3 20 CC 01 33 8B 17 00
-93 1A 0B 01 13 19 0B 01 93 DE 0A 01 93 50 09 41
-E9 B5 B3 AE CF 01 33 84 D3 01 93 12 04 01 93 D0
-02 41 71 B5 33 AB CD 01 B3 8A 60 01 13 99 0A 01
-93 50 09 41 91 BD A9 67 93 F5 10 00 13 FD F0 0F
-93 8A 17 00 33 0B B0 40 33 FE 6A 01 13 59 1D 00
-B3 48 2E 01 93 F6 18 00 13 D7 8E 00 93 57 2D 00
-93 5D 1E 00 91 CA E9 7F 13 83 1F 00 B3 C3 6D 00
-93 9E 03 01 93 DD 0E 01 33 C4 B7 01 93 70 14 00
-93 D2 17 00 13 D8 1D 00 63 8B 00 00 E9 7C 13 8C
-1C 00 33 4F 88 01 13 15 0F 01 13 58 05 01 33 C6
-02 01 93 75 16 00 13 DD 27 00 13 59 18 00 91 C9
-69 7B 93 0A 1B 00 B3 4D 59 01 13 9E 0D 01 13 59
-0E 01 B3 48 A9 01 93 F6 18 00 93 DF 37 00 93 50
-19 00 91 CA 69 73 93 03 13 00 B3 CE 70 00 13 94
-0E 01 93 50 04 01 B3 C2 F0 01 93 FC 12 00 13 DC
-47 00 93 D5 10 00 63 8B 0C 00 69 7F 13 05 1F 00
-33 C8 A5 00 13 16 08 01 93 55 06 01 33 4D BC 00
-13 7B 1D 00 95 83 93 D8 15 00 63 0B 0B 00 E9 7A
-13 8E 1A 00 B3 CD C8 01 13 99 0D 01 93 58 09 01
-93 F6 18 00 13 D4 18 00 63 8B F6 00 E9 7F 13 83
-1F 00 B3 43 64 00 93 9E 03 01 13 D4 0E 01 B3 40
-87 00 93 F2 10 00 93 5C 17 00 13 56 14 00 63 8B
-02 00 69 7C 13 0F 1C 00 33 45 E6 01 13 18 05 01
-13 56 08 01 B3 C5 CC 00 13 FD 15 00 13 5B 27 00
-13 59 16 00 63 0B 0D 00 E9 77 93 8A 17 00 33 4E
-59 01 93 1D 0E 01 13 D9 0D 01 B3 48 69 01 93 FF
-18 00 93 56 37 00 93 50 19 00 63 8B 0F 00 69 73
-93 03 13 00 B3 CE 70 00 13 94 0E 01 93 50 04 01
-B3 C2 D0 00 93 FC 12 00 13 5C 47 00 93 D5 10 00
-63 8B 0C 00 69 7F 13 05 1F 00 33 C8 A5 00 13 16
-08 01 93 55 06 01 33 4D BC 00 13 7B 1D 00 93 5A
-57 00 93 D8 15 00 63 0B 0B 00 E9 77 13 8E 17 00
-B3 CD C8 01 13 99 0D 01 93 58 09 01 B3 CF 1A 01
-93 F6 1F 00 13 53 67 00 93 D2 18 00 91 CA E9 73
-93 8E 13 00 33 C4 D2 01 93 10 04 01 93 D2 00 01
-B3 4C 53 00 13 FC 1C 00 1D 83 93 D5 12 00 63 0B
-0C 00 69 7F 13 05 1F 00 33 C8 A5 00 13 16 08 01
-93 55 06 01 13 FD 15 00 93 DD 15 00 63 0B ED 00
-69 7B 93 0A 1B 00 B3 C7 5D 01 13 9E 07 01 93 5D
-0E 01 63 94 09 00 6F 10 60 5C 92 4C 13 94 29 00
-81 45 22 86 66 85 EF 50 B0 7B 32 4D 93 9F 19 00
-66 85 B3 05 94 01 B3 82 7F 01 81 43 26 C4 B3 84
-72 41 13 83 E4 FF 93 5E 13 00 93 80 1E 00 13 9C
-13 00 13 F7 70 00 B3 06 8D 01 5E 86 81 47 45 C7
-05 4F 63 07 E7 09 09 48 63 0B 07 07 0D 4B 63 0F
-67 05 91 4A 63 03 57 05 15 4E 63 07 C7 03 19 49
-63 0B 27 01 83 98 06 00 83 97 0B 00 89 06 13 86
-2B 00 B3 87 F8 02 03 94 06 00 83 1C 06 00 89 06
-09 06 B3 0F 94 03 FE 97 83 94 06 00 03 13 06 00
-89 06 09 06 B3 8E 64 02 F6 97 83 90 06 00 03 1C
-06 00 89 06 09 06 33 87 80 03 BA 97 03 9F 06 00
-03 18 06 00 89 06 09 06 33 0B 0F 03 DA 97 83 9A
-06 00 03 1E 06 00 89 06 09 06 33 89 CA 03 CA 97
-83 98 06 00 03 14 06 00 09 06 89 06 B3 8C 88 02
-E6 97 63 06 56 08 83 9F 06 00 03 13 06 00 83 90
-26 00 83 1A 26 00 33 87 6F 02 83 94 46 00 03 1C
-46 00 83 9E 66 00 03 1B 66 00 03 9E 86 00 03 19
-86 00 83 9C A6 00 03 14 A6 00 83 98 C6 00 33 83
-50 03 B3 80 E7 00 83 1F C6 00 03 98 E6 00 03 1F
-E6 00 41 06 C1 06 B3 87 84 03 B3 8A 60 00 B3 84
-6E 03 33 8C FA 00 B3 0E 2E 03 33 0B 9C 00 33 87
-8C 02 33 0E DB 01 33 89 F8 03 B3 0C EE 00 33 04
-E8 03 B3 88 2C 01 B3 87 88 00 E3 1E 56 F6 1C C1
-11 05 CE 93 E3 95 A5 EA A2 44 B3 02 30 41 13 95
-22 00 81 47 01 43 01 48 81 46 13 96 32 00 33 8D
-A5 00 B3 8F A5 41 13 8F CF FF 93 50 2F 00 93 8A
-10 00 13 FC 3A 00 EA 8E 63 02 0C 52 05 4B 63 09
-6C 05 09 47 63 04 EC 02 9A 8E 03 23 0D 00 C2 07
-13 DE 07 01 1A 98 63 DF 04 5D 13 08 AE 00 93 18
-08 01 93 D7 08 41 01 48 93 0E 4D 00 9A 83 03 A3
-0E 00 93 92 07 01 93 DF 02 01 1A 98 63 D3 04 5B
-13 8C AF 00 13 1B 0C 01 93 57 0B 41 01 48 91 0E
-1A 87 03 A3 0E 00 C2 07 13 DE 07 01 1A 98 63 D5
-04 57 13 08 AE 00 93 13 08 01 93 12 08 01 93 D0
-03 01 93 D7 02 41 01 48 91 0E 63 91 D5 4B 85 06
-B3 05 CD 40 E3 9D D9 F4 93 F8 F7 0F 13 D9 80 00
-33 CD B8 01 13 7E 1D 00 93 DC 18 00 93 D2 1D 00
-63 0B 0E 00 69 74 13 03 14 00 B3 C3 62 00 13 98
-03 01 93 52 08 01 B3 CF 5C 00 13 FF 1F 00 93 D0
-28 00 13 D7 12 00 63 0B 0F 00 E9 7A 13 8C 1A 00
-B3 47 87 01 13 9B 07 01 13 57 0B 01 B3 CE E0 00
-13 F5 1E 00 93 DD 38 00 13 5E 17 00 11 C9 69 76
-93 06 16 00 B3 45 DE 00 13 9D 05 01 13 5E 0D 01
-B3 CC CD 01 13 F4 1C 00 13 D3 48 00 13 5F 1E 00
-11 C8 E9 73 13 88 13 00 B3 42 0F 01 93 9F 02 01
-13 DF 0F 01 B3 40 E3 01 93 FA 10 00 13 DC 58 00
-13 55 1F 00 63 8B 0A 00 69 7B 13 07 1B 00 B3 47
-E5 00 93 9E 07 01 13 D5 0E 01 B3 4D AC 00 93 F6
-1D 00 13 D6 68 00 13 54 15 00 91 CA E9 75 13 8D
-15 00 33 4E A4 01 93 1C 0E 01 13 D4 0C 01 33 43
-86 00 93 73 13 00 93 D8 78 00 93 50 14 00 63 8B
-03 00 69 78 93 02 18 00 B3 CF 50 00 13 9F 0F 01
-93 50 0F 01 93 FA 10 00 93 DE 10 00 63 8B 1A 01
-69 7C 13 0B 1C 00 33 C7 6E 01 93 17 07 01 93 DE
-07 01 33 C5 2E 01 93 7D 15 00 13 56 19 00 93 DC
-1E 00 63 8B 0D 00 E9 76 93 85 16 00 33 CD BC 00
-13 1E 0D 01 93 5C 0E 01 33 C4 CC 00 13 73 14 00
-93 53 29 00 13 DF 1C 00 63 0B 03 00 E9 78 13 88
-18 00 B3 42 0F 01 93 9F 02 01 13 DF 0F 01 B3 40
-7F 00 93 FA 10 00 13 5C 39 00 13 55 1F 00 63 8B
-0A 00 69 7B 13 07 1B 00 B3 47 E5 00 93 9E 07 01
-13 D5 0E 01 B3 4D AC 00 13 F6 1D 00 93 56 49 00
-13 54 15 00 11 CA E9 75 13 8D 15 00 33 4E A4 01
-93 1C 0E 01 13 D4 0C 01 33 C3 86 00 93 73 13 00
-93 58 59 00 93 50 14 00 63 8B 03 00 69 78 93 02
-18 00 B3 CF 50 00 13 9F 0F 01 93 50 0F 01 B3 CA
-18 00 13 FC 1A 00 13 5B 69 00 93 DD 10 00 63 0B
-0C 00 69 77 93 0E 17 00 B3 C7 DD 01 13 95 07 01
-93 5D 05 01 33 46 BB 01 93 76 16 00 13 59 79 00
-13 D4 1D 00 91 CA E9 75 13 8D 15 00 33 4E A4 01
-93 1C 0E 01 13 D4 0C 01 93 53 14 00 13 73 14 00
-1E C8 63 0C 23 01 E9 78 13 88 18 00 B3 C2 03 01
-93 9F 02 01 13 DF 0F 01 7A C8 81 4A 81 42 63 88
-09 32 B2 40 13 9C 29 00 13 94 19 00 01 47 52 CE
-5E C4 86 8A 33 09 14 00 62 CA 01 4B 26 CC 3A 8A
-E2 8B 92 4E 93 14 2A 00 5E 86 33 85 D4 01 81 45
-EF 50 10 30 A2 4F 2A 8F 01 45 B3 07 59 41 93 8D
-E7 FF 13 D6 1D 00 93 06 16 00 13 FD 76 00 7E 86
-D6 86 81 47 63 06 0D 0A 85 45 63 08 BD 08 09 4E
-63 0C CD 07 8D 4C 63 00 9D 07 11 43 63 04 6D 04
-95 43 63 08 7D 02 99 48 63 0C 1D 01 03 98 0A 00
-83 92 0F 00 93 86 2A 00 33 86 8F 00 B3 07 58 02
-83 90 06 00 03 1C 06 00 89 06 22 96 33 87 80 03
-BA 97 83 94 06 00 83 1E 06 00 89 06 22 96 B3 8D
-D4 03 EE 97 03 9D 06 00 83 15 06 00 89 06 22 96
-33 0E BD 02 F2 97 83 9C 06 00 03 13 06 00 89 06
-22 96 B3 83 6C 02 9E 97 83 98 06 00 03 18 06 00
-89 06 22 96 B3 82 08 03 96 97 83 90 06 00 03 1C
-06 00 89 06 22 96 33 87 80 03 BA 97 63 03 D9 0A
-B3 04 86 00 83 9C 06 00 03 13 06 00 B3 8E 84 00
-03 9E 04 00 03 9D 26 00 B3 83 8E 00 83 90 46 00
-83 9D 0E 00 33 87 6C 02 B3 85 83 00 83 9E 66 00
-83 9C 03 00 33 88 85 00 03 93 86 00 03 9C 05 00
-83 98 A6 00 83 13 08 00 B3 02 88 00 33 0D CD 03
-03 98 C6 00 33 86 82 00 83 92 02 00 83 95 E6 00
-03 1E 06 00 BA 97 C1 06 22 96 B3 84 B0 03 B3 80
-A7 01 B3 8D 9E 03 B3 8E 90 00 B3 0C 83 03 33 87
-BE 01 33 83 78 02 33 0C 97 01 B3 08 58 02 B3 03
-6C 00 33 88 C5 03 33 8D 13 01 B3 07 0D 01 E3 11
-D9 F6 23 20 FF 00 93 06 15 00 11 0F 89 0F 63 84
-D9 12 36 85 59 B5 33 23 F3 01 03 A9 4E 00 B3 8A
-60 00 13 9C 0A 01 93 57 0C 41 93 9C 07 01 B3 08
-2E 01 91 0E 13 D4 0C 01 63 DE 14 09 83 AA 4E 00
-13 0F A4 00 93 10 0F 01 93 DF 00 41 81 48 13 93
-0F 01 33 8B 58 01 13 5C 03 01 63 DF 64 09 03 A3
-8E 00 93 0C AC 00 13 94 0C 01 13 59 04 41 01 4B
-93 18 09 01 33 08 6B 00 93 D3 08 01 63 D0 04 0B
-13 8C A3 00 13 1B 0C 01 13 17 0C 01 93 50 0B 01
-93 57 07 41 01 48 B1 0E E3 83 D5 B7 83 AF 0E 00
-13 9F 07 01 93 50 0F 01 33 0E F8 01 E3 D5 C4 F7
-03 A9 4E 00 13 8B A0 00 13 17 0B 01 93 57 07 41
-01 4E 93 9C 07 01 B3 08 2E 01 91 0E 13 D4 0C 01
-E3 C6 14 F7 33 A8 2F 01 83 AA 4E 00 B3 03 04 01
-93 92 03 01 93 DF 02 41 13 93 0F 01 33 8B 58 01
-13 5C 03 01 E3 C5 64 F7 33 27 59 01 03 A3 8E 00
-B3 07 EC 00 13 9E 07 01 13 59 0E 41 93 18 09 01
-33 08 6B 00 93 D3 08 01 E3 C4 04 F7 B3 A2 6A 00
-B3 8F 53 00 13 9F 0F 01 93 9A 0F 01 93 50 0F 01
-93 D7 0A 41 8D B7 13 0F 1B 00 A2 9A 4E 9A 22 99
-63 00 AB 7E 7A 8B 35 BB 33 29 67 00 B3 0C 2E 01
-13 94 0C 01 93 98 0C 01 93 50 04 01 93 D7 08 41
-61 BC 33 AF 63 00 B3 80 EF 01 93 9A 00 01 93 D7
-0A 41 B1 BC 33 A9 6E 00 B3 0C 2E 01 13 94 0C 01
-93 57 04 41 15 B4 93 72 FD 0F 93 DA 8E 00 C2 47
-93 DF 12 00 33 C9 57 00 13 7E 19 00 93 DC 17 00
-63 0B 0E 00 E9 76 93 80 16 00 B3 CD 1C 00 93 9E
-0D 01 93 DC 0E 01 33 CD 9F 01 13 73 1D 00 13 DC
-22 00 13 D8 1C 00 63 0B 03 00 E9 78 13 8F 18 00
-33 45 E8 01 93 15 05 01 13 D8 05 01 B3 43 0C 01
-13 F7 13 00 13 D6 32 00 13 5E 18 00 11 CB 69 7B
-93 07 1B 00 33 44 FE 00 13 19 04 01 13 5E 09 01
-B3 4F CE 00 93 F0 1F 00 93 D6 42 00 13 53 1E 00
-63 8B 00 00 E9 7D 93 8E 1D 00 B3 4C D3 01 13 9D
-0C 01 13 53 0D 01 33 4C D3 00 93 78 1C 00 13 DF
-52 00 13 57 13 00 63 8B 08 00 69 75 93 05 15 00
-33 48 B7 00 93 13 08 01 13 D7 03 01 33 46 E7 01
-13 7B 16 00 93 D7 62 00 93 50 17 00 63 0B 0B 00
-69 79 13 0E 19 00 33 C4 C0 01 93 1F 04 01 93 D0
-0F 01 B3 C6 F0 00 93 FD 16 00 93 D2 72 00 13 DC
-10 00 63 8B 0D 00 E9 7E 93 8C 1E 00 33 4D 9C 01
-13 13 0D 01 13 5C 03 01 93 78 1C 00 93 53 1C 00
-63 8B 58 00 69 7F 13 05 1F 00 B3 C5 A3 00 13 98
-05 01 93 53 08 01 33 C7 53 01 13 76 17 00 13 DB
-1A 00 93 DF 13 00 11 CA E9 77 13 89 17 00 33 CE
-2F 01 13 14 0E 01 93 5F 04 01 B3 40 FB 01 93 F6
-10 00 93 DD 2A 00 13 D3 1F 00 91 CA E9 72 93 8E
-12 00 B3 4C D3 01 13 9D 0C 01 13 53 0D 01 33 4C
-B3 01 93 78 1C 00 13 DF 3A 00 13 56 13 00 63 8B
-08 00 69 75 93 05 15 00 33 48 B6 00 93 13 08 01
-13 D6 03 01 33 47 E6 01 13 7B 17 00 93 D7 4A 00
-93 50 16 00 63 0B 0B 00 69 79 13 0E 19 00 33 C4
-C0 01 93 1F 04 01 93 D0 0F 01 B3 C6 17 00 93 FD
-16 00 93 D2 5A 00 13 DC 10 00 63 8B 0D 00 E9 7E
-93 8C 1E 00 33 4D 9C 01 13 13 0D 01 13 5C 03 01
-B3 C8 82 01 13 FF 18 00 13 D5 6A 00 13 5B 1C 00
-63 0B 0F 00 E9 75 13 88 15 00 B3 43 0B 01 13 96
-03 01 13 5B 06 01 33 47 AB 00 13 79 17 00 93 DA
-7A 00 93 50 1B 00 63 0B 09 00 E9 77 13 8E 17 00
-33 C4 C0 01 93 1F 04 01 93 D0 0F 01 93 F6 10 00
-13 D4 10 00 63 8B 56 01 E9 7D 93 82 1D 00 B3 4E
-54 00 93 9C 0E 01 13 D4 0C 01 81 4D 81 46 63 80
-09 1A 32 4D 92 4D 93 9A 19 00 6A 8C 33 8B AA 01
-13 99 29 00 81 4C 01 4D 13 93 2C 00 81 45 33 05
-B3 01 4A 86 EF 50 C0 58 AA 86 81 45 5E 85 B3 08
-8B 41 13 8F E8 FF 13 58 1F 00 93 03 18 00 13 F6
-33 00 2A 83 E2 88 81 4E 59 C2 05 47 63 0C E6 04
-89 47 63 06 F6 02 03 1E 0C 00 83 1F 05 00 93 08
-2C 00 33 03 55 01 B3 00 FE 03 93 DE 50 40 93 D2
-20 40 13 FF F2 00 13 F8 FE 07 B3 0E 0F 03 83 93
-08 00 03 16 03 00 89 08 56 93 B3 87 C3 02 13 D7
-27 40 13 DE 57 40 93 7F F7 00 93 70 FE 07 B3 82
-1F 02 96 9E 03 9F 08 00 03 18 03 00 89 08 56 93
-B3 03 0F 03 13 D6 23 40 93 D7 53 40 13 77 F6 00
-13 FE F7 07 B3 0F C7 03 FE 9E 63 03 1B 0B B3 00
-53 01 03 9F 08 00 03 18 03 00 33 86 50 01 83 93
-28 00 03 97 00 00 03 1E 06 00 33 03 56 01 83 92
-48 00 B3 0F 0F 03 83 17 03 00 83 90 68 00 A1 08
-56 93 33 8F E3 02 13 D8 5F 40 93 D3 2F 40 13 F7
-F3 00 93 73 F8 07 B3 82 C2 03 13 56 5F 40 13 5E
-2F 40 93 7F FE 00 13 76 F6 07 B3 80 F0 02 13 D8
-52 40 93 D7 22 40 13 FF F7 00 93 72 F8 07 33 07
-77 02 13 DE 50 40 93 D3 20 40 93 F0 F3 00 93 77
-FE 07 B3 8F CF 02 BA 9E 33 06 5F 02 33 88 FE 01
-33 8F F0 02 B3 02 C8 00 B3 8E E2 01 E3 11 1B F7
-23 A0 D6 01 93 88 15 00 91 06 09 05 63 84 19 01
-C6 85 75 B5 93 06 1D 00 56 9C CE 9C 56 9B 63 81
-A5 5F 36 8D 51 B5 93 F6 FA 0F 93 5D 8B 00 B3 C0
-86 00 13 F3 10 00 93 DF 16 00 93 52 14 00 63 0B
-03 00 69 7E 93 0E 1E 00 33 CF D2 01 93 18 0F 01
-93 D2 08 01 33 CC 5F 00 93 7C 1C 00 13 DB 26 00
-93 D4 12 00 63 8B 0C 00 69 77 13 08 17 00 B3 C7
-04 01 13 94 07 01 93 54 04 01 33 45 9B 00 13 76
-15 00 93 D5 36 00 93 DB 14 00 11 CA E9 73 13 8D
-13 00 33 C9 AB 01 93 1A 09 01 93 DB 0A 01 B3 C0
-75 01 13 F3 10 00 93 DF 46 00 93 D2 1B 00 63 0B
-03 00 69 7E 93 0E 1E 00 33 CF D2 01 93 18 0F 01
-93 D2 08 01 33 CC 5F 00 93 7C 1C 00 13 DB 56 00
-93 D4 12 00 63 8B 0C 00 69 77 13 08 17 00 B3 C7
-04 01 13 94 07 01 93 54 04 01 33 C5 64 01 93 75
-15 00 13 D6 66 00 93 DB 14 00 91 C9 E9 73 13 8D
-13 00 33 C9 AB 01 93 1A 09 01 93 DB 0A 01 B3 C0
-CB 00 13 F3 10 00 9D 82 93 D8 1B 00 63 0B 03 00
-E9 7F 13 8E 1F 00 B3 CE C8 01 13 9F 0E 01 93 58
-0F 01 93 F2 18 00 13 D8 18 00 63 8B D2 00 69 7C
-93 0C 1C 00 33 4B 98 01 13 17 0B 01 13 58 07 01
-B3 C7 0D 01 13 F4 17 00 93 D4 1D 00 13 5D 18 00
-11 C8 69 75 93 05 15 00 33 46 BD 00 93 13 06 01
-13 DD 03 01 33 C9 A4 01 93 7A 19 00 93 DB 2D 00
-13 5E 1D 00 63 8B 0A 00 E9 70 13 83 10 00 B3 46
-6E 00 93 9F 06 01 13 DE 0F 01 B3 CE CB 01 13 FF
-1E 00 93 D8 3D 00 13 57 1E 00 63 0B 0F 00 E9 72
-13 8C 12 00 B3 4C 87 01 13 9B 0C 01 13 57 0B 01
-33 C8 E8 00 13 74 18 00 93 D4 4D 00 93 53 17 00
-11 C8 69 75 93 05 15 00 B3 C7 B3 00 13 96 07 01
-93 53 06 01 33 CD 74 00 13 79 1D 00 93 DA 5D 00
-93 DF 13 00 63 0B 09 00 E9 7B 93 80 1B 00 33 C3
-1F 00 93 16 03 01 93 DF 06 01 33 CE 5F 01 93 7E
-1E 00 13 DF 6D 00 13 DB 1F 00 63 8B 0E 00 E9 78
-93 82 18 00 33 4C 5B 00 93 1C 0C 01 13 DB 0C 01
-33 47 6F 01 13 78 17 00 93 DD 7D 00 93 57 1B 00
-63 0B 08 00 69 74 93 04 14 00 33 C5 97 00 93 15
-05 01 93 D7 05 01 13 F6 17 00 13 D5 17 00 63 0B
-B6 01 E9 73 13 8D 13 00 33 49 A5 01 93 1A 09 01
-13 D5 0A 01 63 8B 09 12 32 43 B3 0B 30 41 93 90
-19 00 B3 06 13 00 93 92 1B 00 01 4F 93 9F 2B 00
-33 8C 56 00 33 8E 86 41 93 0E EE FF 93 D8 1E 00
-93 8C 18 00 13 FB 7C 00 E2 87 63 08 0B 08 05 47
-63 0C EB 06 09 48 63 02 0B 07 8D 4D 63 08 BB 05
-11 44 63 0E 8B 02 95 44 63 04 9B 02 99 45 63 0A
-BB 00 03 56 0C 00 93 07 2C 00 B3 03 46 41 23 10
-7C 00 03 DD 07 00 89 07 33 09 4D 41 23 9F 27 FF
-83 DA 07 00 89 07 B3 8B 4A 41 23 9F 77 FF 83 D0
-07 00 89 07 33 83 40 41 23 9F 67 FE 03 DE 07 00
-89 07 B3 0E 4E 41 23 9F D7 FF 83 D8 07 00 89 07
-B3 8C 48 41 23 9F 97 FF 03 DB 07 00 89 07 33 07
-4B 41 23 9F E7 FE 63 85 D7 06 83 DD 07 00 03 D4
-27 00 83 D4 47 00 03 D6 67 00 03 DD 87 00 03 D8
-A7 00 83 D5 C7 00 03 D9 E7 00 B3 83 4D 41 B3 0A
-44 41 B3 8B 44 41 B3 00 46 41 33 03 4D 41 33 0E
-48 41 B3 8E 45 41 B3 08 49 41 23 90 77 00 23 91
-57 01 23 92 77 01 23 93 17 00 23 94 67 00 23 95
-C7 01 23 96 D7 01 23 97 17 01 C1 07 E3 9F D7 F8
-05 0F B3 06 FC 41 E3 95 E9 EF F6 40 66 44 13 1C
-05 01 D6 44 46 49 B6 49 26 4A 96 4A 06 4B F2 5B
-D2 5C 42 5D B2 5D 13 55 0C 41 62 5C 25 61 82 80
-12 44 D2 4F E2 44 72 4A A2 4B 33 0B 30 41 33 07
-F4 01 13 18 2B 00 01 4D 01 4E 81 46 01 46 93 15
-3B 00 B3 02 07 01 B3 00 57 40 93 8D C0 FF 93 DE
-2D 00 93 8C 1E 00 13 F3 3C 00 16 8F 63 0F 03 10
-05 4C 63 0A 83 05 89 48 63 05 13 03 F2 83 03 AE
-02 00 93 17 0D 01 13 DD 07 01 F2 96 63 D1 D4 1C
-13 0B AD 00 13 14 0B 01 13 5D 04 41 81 46 13 8F
-42 00 F2 8F 03 2E 0F 00 93 10 0D 01 93 DD 00 01
-F2 96 63 D5 D4 18 93 86 AD 00 13 9C 06 01 13 5D
-0C 41 81 46 11 0F F2 88 03 2E 0F 00 93 13 0D 01
-93 D7 03 01 F2 96 63 D6 D4 14 13 84 A7 00 93 1F
-04 01 93 10 04 01 93 DE 0F 01 13 DD 00 41 81 46
-11 0F 63 1C E7 09 93 03 16 00 33 87 B2 40 63 0C
-C5 F8 1E 86 B9 B7 33 2E BE 01 83 2A 4F 00 33 83
-CC 01 13 1C 03 01 93 53 0C 41 93 97 03 01 33 0B
-5D 01 11 0F 13 D9 07 01 63 DD 64 09 03 23 4F 00
-93 0E A9 00 93 9C 0E 01 93 DD 0C 41 01 4B 13 9E
-0D 01 B3 06 6B 00 13 5C 0E 01 63 DE D4 08 03 2E
-8F 00 93 07 AC 00 13 99 07 01 93 5A 09 41 81 46
-13 9B 0A 01 F2 96 13 54 0B 01 63 DF D4 08 13 03
-A4 00 13 1C 03 01 93 18 03 01 93 5E 0C 01 13 DD
-08 41 81 46 31 0F E3 08 E7 F7 83 2D 0F 00 93 1E
-0D 01 93 DC 0E 01 33 8D B6 01 E3 D6 A4 F7 83 2A
-4F 00 93 86 AC 00 93 98 06 01 93 D3 08 41 01 4D
-93 97 03 01 33 0B 5D 01 11 0F 13 D9 07 01 E3 C7
-64 F7 33 A4 5D 01 03 23 4F 00 B3 0F 89 00 93 90
-0F 01 93 DD 00 41 13 9E 0D 01 B3 06 6B 00 13 5C
-0E 01 E3 C6 D4 F6 B3 A8 6A 00 03 2E 8F 00 B3 03
-1C 01 13 9D 03 01 93 5A 0D 41 13 9B 0A 01 F2 96
-13 54 0B 01 E3 C5 D4 F6 B3 2F C3 01 B3 00 F4 01
-93 9D 00 01 93 9C 00 01 93 DE 0D 01 13 DD 0C 41
-95 B7 33 AD C8 01 B3 8A A7 01 13 99 0A 01 13 9B
-0A 01 93 5E 09 01 13 5D 0B 41 5D BD B3 AE CF 01
-B3 8C DD 01 13 93 0C 01 13 5D 03 41 A5 BD 33 AF
-C3 01 B3 0A ED 01 13 99 0A 01 13 5D 09 41 81 B5
-92 4A B3 0B 30 41 13 95 2B 00 56 99 01 4E 81 4A
-81 48 81 46 13 96 3B 00 B3 0D A9 00 33 0D B9 41
-13 03 CD FF 13 57 23 00 93 03 17 00 93 F0 73 00
-6E 88 63 88 00 24 85 4F 63 8E F0 0F 89 4E 63 89
-D0 0D 0D 4F 63 84 E0 0B 91 42 63 8F 50 06 15 4C
-63 8A 80 05 99 4C 63 85 90 03 72 88 03 AE 0D 00
-93 97 0A 01 13 DB 07 01 F2 98 63 DB 14 3B 93 08
-AB 00 13 93 08 01 93 5A 03 41 81 48 13 88 4D 00
-72 87 03 2E 08 00 93 93 0A 01 93 D0 03 01 F2 98
-63 DF 14 37 93 82 A0 00 13 9C 02 01 93 5A 0C 41
-81 48 11 08 F2 8C 03 2E 08 00 93 97 0A 01 13 DB
-07 01 F2 98 63 D4 14 35 93 08 AB 00 13 93 08 01
-93 5A 03 41 81 48 11 08 72 87 03 2E 08 00 93 93
-0A 01 93 D0 03 01 F2 98 63 D9 14 31 93 82 A0 00
-13 9C 02 01 93 5A 0C 41 81 48 11 08 F2 8C 03 2E
-08 00 93 97 0A 01 13 DB 07 01 F2 98 63 DE 14 2D
-93 08 AB 00 13 93 08 01 93 5A 03 41 81 48 11 08
-72 87 03 2E 08 00 93 93 0A 01 93 D0 03 01 F2 98
-63 D3 14 2B 93 82 A0 00 13 9C 02 01 93 5A 0C 41
-81 48 11 08 F2 8C 03 2E 08 00 93 97 0A 01 13 DB
-07 01 F2 98 63 D4 14 27 93 08 AB 00 13 93 08 01
-93 93 08 01 13 5B 03 01 93 DA 03 41 81 48 11 08
-63 11 28 13 93 83 16 00 33 89 CD 40 E3 8D D5 8A
-9E 86 5D B5 33 2E 1E 00 83 2B 48 00 33 8F CE 01
-93 12 0F 01 93 D7 02 41 93 9A 07 01 33 07 7B 01
-11 08 13 DD 0A 01 63 D2 E4 12 03 2F 48 00 93 0F
-AD 00 93 9E 0F 01 93 D0 0E 41 01 47 13 9E 00 01
-33 0C E7 01 93 52 0E 01 63 D3 84 13 03 27 88 00
-93 8A A2 00 13 9D 0A 01 93 5B 0D 41 01 4C 93 98
-0B 01 B3 00 EC 00 93 D3 08 01 63 D4 14 12 03 2C
-C8 00 13 8E A3 00 93 12 0E 01 13 DF 02 41 81 40
-93 1C 0F 01 33 8B 80 01 93 D7 0C 01 63 D5 64 13
-83 20 08 01 93 88 A7 00 93 93 08 01 13 D7 03 41
-01 4B 13 13 07 01 B3 0E 1B 00 93 5F 03 01 63 D6
-D4 13 03 2B 48 01 93 8C AF 00 93 97 0C 01 13 DC
-07 41 81 4E 93 1B 0C 01 33 8D 6E 01 93 DA 0B 01
-63 D7 A4 13 03 2E 88 01 13 83 AA 00 93 1F 03 01
-93 D0 0F 41 01 4D 93 9E 00 01 B3 08 CD 01 13 DF
-0E 01 63 D8 14 13 93 0B AF 00 13 9D 0B 01 13 97
-0B 01 13 5B 0D 01 93 5A 07 41 81 48 71 08 E3 03
-28 EF 83 20 08 00 93 9F 0A 01 93 DE 0F 01 33 8B
-18 00 E3 D1 64 EF 83 2B 48 00 13 8C AE 00 93 1C
-0C 01 93 D7 0C 41 01 4B 93 9A 07 01 33 07 7B 01
-11 08 13 DD 0A 01 E3 C2 E4 EE B3 A8 70 01 03 2F
-48 00 33 03 1D 01 93 13 03 01 93 D0 03 41 13 9E
-00 01 33 0C E7 01 93 52 0E 01 E3 C1 84 EF B3 AC
-EB 01 03 27 88 00 B3 87 92 01 13 9B 07 01 93 5B
-0B 41 93 98 0B 01 B3 00 EC 00 93 D3 08 01 E3 C0
-14 EE 33 23 EF 00 03 2C C8 00 B3 8F 63 00 93 9E
-0F 01 13 DF 0E 41 93 1C 0F 01 33 8B 80 01 93 D7
-0C 01 E3 CF 64 ED B3 2B 87 01 83 20 08 01 B3 8A
-77 01 13 9D 0A 01 13 57 0D 41 13 13 07 01 B3 0E
-1B 00 93 5F 03 01 E3 CE D4 ED 33 2F 1C 00 03 2B
-48 01 33 8E EF 01 93 12 0E 01 13 DC 02 41 93 1B
-0C 01 33 8D 6E 01 93 DA 0B 01 E3 CD A4 ED 33 A7
-60 01 B3 88 EA 00 03 2E 88 01 93 93 08 01 93 D0
-03 41 93 9E 00 01 B3 08 CD 01 13 DF 0E 01 E3 CC
-14 ED B3 22 CB 01 33 0C 5F 00 93 1C 0C 01 93 17
-0C 01 13 DB 0C 01 93 DA 07 41 C9 BD B3 AB CC 01
-B3 0A 7B 01 13 9D 0A 01 13 97 0A 01 13 5B 0D 01
-93 5A 07 41 69 BB B3 2F C7 01 B3 8E F0 01 13 9F
-0E 01 93 5A 0F 41 B1 BB B3 AB CC 01 B3 0A 7B 01
-13 9D 0A 01 93 5A 0D 41 1D B3 B3 2F C7 01 B3 8E
-F0 01 13 9F 0E 01 93 5A 0F 41 C5 B9 B3 AB CC 01
-B3 0A 7B 01 13 9D 0A 01 93 5A 0D 41 6D B9 B3 2F
-C7 01 B3 8E F0 01 13 9F 0E 01 93 5A 0F 41 51 B1
-B3 2B C8 01 B3 0A 7B 01 13 9D 0A 01 93 5A 0D 41
-B1 B1 81 47 01 47 81 4D 6F E0 1F 84 01 49 81 48
-6F E0 1F C8 41 11 14 45 2E 87 22 C4 4C 45 32 84
-50 41 08 41 06 C6 EF E0 4F B2 B3 46 A4 00 13 77
-F5 0F 93 17 05 01 93 F2 16 00 13 D3 07 01 13 56
-17 00 13 58 14 00 63 8B 02 00 E9 70 93 83 10 00
-33 45 78 00 93 15 05 01 13 D8 05 01 B3 48 C8 00
-13 FE 18 00 93 5E 27 00 93 52 18 00 63 0B 0E 00
-69 7F 93 0F 1F 00 33 C4 F2 01 93 16 04 01 93 D2
-06 01 B3 C7 D2 01 93 F0 17 00 13 56 37 00 93 D8
-12 00 63 8B 00 00 E9 73 93 85 13 00 33 C5 B8 00
-13 18 05 01 93 58 08 01 33 CE C8 00 93 7E 1E 00
-13 5F 47 00 93 D7 18 00 63 8B 0E 00 E9 7F 13 84
-1F 00 B3 C6 87 00 93 92 06 01 93 D7 02 01 B3 C0
-E7 01 93 F3 10 00 13 56 57 00 13 DE 17 00 63 8B
-03 00 E9 75 13 88 15 00 33 45 0E 01 93 18 05 01
-13 DE 08 01 B3 4E CE 00 13 FF 1E 00 93 5F 67 00
-93 50 1E 00 63 0B 0F 00 69 74 93 06 14 00 B3 C2
-D0 00 93 97 02 01 93 D0 07 01 B3 C3 F0 01 13 F6
-13 00 1D 83 13 DE 10 00 11 CA E9 75 13 88 15 00
-33 45 0E 01 93 18 05 01 13 DE 08 01 93 7E 1E 00
-93 52 1E 00 63 8B EE 00 69 7F 93 0F 1F 00 33 C4
-F2 01 93 16 04 01 93 D2 06 01 93 57 83 00 B3 C0
-57 00 93 F3 10 00 13 56 83 00 93 D8 12 00 13 53
-93 00 63 8B 03 00 69 77 93 05 17 00 33 C8 B8 00
-13 15 08 01 93 58 05 01 33 4E 13 01 93 7E 1E 00
-13 5F 26 00 93 D0 18 00 63 8B 0E 00 E9 7F 13 84
-1F 00 B3 C6 80 00 93 92 06 01 93 D0 02 01 B3 C7
-E0 01 93 F3 17 00 13 53 36 00 93 D8 10 00 63 8B
+93 82 87 00 05 05 63 F1 02 05 93 03 47 00 63 FD
+C3 03 13 13 05 01 93 5F 03 01 33 C3 EF 01 0E 03
+13 73 83 07 93 FF 7F 00 94 C3 B3 66 F3 01 9C C1
+13 93 86 00 D8 C3 B3 6F D3 00 23 10 F7 01 23 11
+D7 01 BE 86 1E 87 96 87 93 82 87 00 13 03 15 00
+63 F1 02 05 93 03 47 00 63 FD C3 03 93 1F 03 01
+93 DF 0F 01 33 C3 EF 01 0E 03 13 73 83 07 93 FF
+7F 00 94 C3 B3 66 F3 01 9C C1 13 93 86 00 D8 C3
+B3 6F D3 00 23 10 F7 01 23 11 D7 01 BE 86 1E 87
+96 87 93 82 87 00 13 03 25 00 63 F1 02 05 93 03
+47 00 63 FD C3 03 93 1F 03 01 93 DF 0F 01 33 C3
+EF 01 0E 03 13 73 83 07 93 FF 7F 00 94 C3 B3 66
+F3 01 9C C1 13 93 86 00 D8 C3 B3 6F D3 00 23 10
+F7 01 23 11 D7 01 BE 86 1E 87 96 87 0D 05 E3 9E
+A8 EC 88 42 29 CD 15 48 33 DF 08 03 91 68 05 47
+13 8E F8 FF 11 A8 03 28 05 00 23 91 EE 00 05 07
+63 0F 08 02 AA 86 42 85 83 AE 46 00 E3 65 E7 FF
+93 12 07 01 93 D3 02 01 13 83 13 00 93 1F 83 00
+93 F7 0F 70 B3 C6 C3 00 03 28 05 00 B3 E8 D7 00
+B3 F2 C8 01 23 91 5E 00 05 07 E3 15 08 FC 05 48
+81 48 01 45 81 4F 85 42 13 7F 78 00 85 0F AE 87
+01 47 63 0B 0F 04 05 46 63 03 CF 04 09 4E 63 0D
+CF 03 8D 4E 63 07 DF 03 91 43 63 01 7F 02 15 43
+63 0B 6F 00 99 46 63 05 DF 00 9C 41 05 47 A5 C7
+9C 43 05 07 AD C3 9C 43 05 07 B1 CF 9C 43 05 07
+B9 CB 9C 43 05 07 A1 CB 9C 43 05 07 A9 C7 9C 43
+05 07 B1 C3 63 02 E8 0C 9C 43 05 07 3A 8F 85 CF
+9C 43 05 07 8D CB 9C 43 13 07 2F 00 8D C7 9C 43
+13 07 3F 00 8D C3 9C 43 13 07 4F 00 89 CF 9C 43
+13 07 5F 00 89 CB 9C 43 13 07 6F 00 89 C7 9C 43
+13 07 7F 00 E1 F3 AE 86 42 86 BE 85 25 C7 51 C2
+C9 C1 83 AE 46 00 03 AE 45 00 83 97 0E 00 83 13
+2E 00 03 93 2E 00 13 9F 07 01 13 5F 0F 01 13 5F
+8F 00 93 F7 07 F0 B3 E7 E7 01 23 90 FE 00 03 1F
+0E 00 33 03 73 40 93 1E 0F 01 93 D3 0E 01 93 77
+0F F0 13 DF 83 00 B3 EE E7 01 23 10 DE 01 63 5A
+60 02 2E 8E 8C 41 7D 16 63 8D 08 00 23 A0 C8 01
+F2 88 51 FF 1D C2 85 C5 2E 8E 7D 16 8C 41 E3 97
+08 FE 72 85 F2 88 F5 B7 AE 86 42 87 42 86 BE 85
+B5 BF 36 8E 7D 17 94 42 C1 BF E3 97 05 EC 23 A0
+08 00 63 89 5F 00 06 08 19 C5 AA 85 81 4F 81 48
+01 45 5D BD 82 80 23 20 00 00 02 90 B6 87 2A 87
+81 46 1D B1 03 28 06 00 93 08 88 00 63 F1 E8 04
+98 42 13 03 47 00 63 7C F3 02 23 20 16 01 1C 41
+83 92 05 00 03 96 25 00 23 20 F8 00 23 20 05 01
+23 22 E8 00 83 A3 06 00 13 85 43 00 88 C2 83 25
+48 00 42 85 23 90 55 00 23 91 C5 00 82 80 01 48
+42 85 82 80 AA 87 08 41 D4 43 50 41 18 41 D0 C3
+54 C1 98 C3 23 20 05 00 82 80 D0 41 54 41 98 41
+50 C1 D4 C1 18 C1 88 C1 82 80 03 96 25 00 63 4D
+06 00 01 E5 05 A8 08 41 05 C5 03 23 45 00 83 13
+23 00 E3 9A C3 FE 82 80 01 CD 03 97 05 00 19 A0
+08 41 01 C9 5C 41 83 C2 07 00 E3 9B E2 FE 82 80
+01 45 82 80 82 80 2D C9 1C 41 81 48 23 20 15 01
+AA 86 BD C3 98 43 94 C3 3E 85 25 C3 83 22 07 00
+1C C3 3A 85 63 8A 02 04 03 A3 02 00 23 A0 E2 00
+16 85 63 03 03 04 83 23 03 00 23 20 53 00 1A 85
+63 8C 03 02 83 A5 03 00 23 A0 63 00 1E 85 8D C5
+03 A8 05 00 23 A0 75 00 2E 85 63 0F 08 00 03 26
+08 00 23 20 B8 00 42 85 C2 88 19 C6 32 85 1C 41
+23 20 15 01 AA 86 D9 FF 82 80 82 80 79 71 22 D4
+5A C8 5E C6 66 C2 6A C0 06 D6 26 D2 4A D0 4E CE
+52 CC 56 CA 62 C4 2A 84 2E 8B 32 8D 85 4B 85 4C
+63 01 04 10 01 4C 81 44 81 4A 13 F7 7B 00 05 0C
+A2 87 01 49 31 CB 85 46 63 03 D7 04 89 40 63 0D
+17 02 8D 42 63 07 57 02 11 43 63 01 67 02 95 43
+63 0B 77 00 19 45 63 05 A7 00 1C 40 05 49 A5 C7
+9C 43 05 09 AD C3 9C 43 05 09 B1 CF 9C 43 05 09
+B9 CB 9C 43 05 09 A1 CB 9C 43 05 09 A9 C7 9C 43
+05 09 B1 C3 63 81 2B 05 9C 43 05 09 CA 85 85 CF
+9C 43 05 09 8D CB 9C 43 13 89 25 00 8D C7 9C 43
+13 89 35 00 8D C3 9C 43 13 89 45 00 89 CF 9C 43
+13 89 55 00 89 CB 9C 43 13 89 65 00 89 C7 9C 43
+13 89 75 00 E1 F3 22 8A DE 89 3E 84 63 04 09 02
+63 8C 09 02 15 C8 4C 40 03 25 4A 00 6A 86 02 9B
+63 54 A0 02 22 86 00 40 FD 19 81 CC 90 C0 B2 84
+E3 10 09 FE 63 8F 09 00 11 CC 22 86 FD 19 00 40
+F5 F4 B2 8A B2 84 ED B7 52 86 7D 19 03 2A 0A 00
+E9 BF 01 FC 23 A0 04 00 63 08 9C 01 86 0B 56 84
+01 B7 23 20 00 00 02 90 B2 50 22 54 92 54 02 59
+F2 49 62 4A 42 4B B2 4B 22 4C 92 4C 02 4D 56 85
+D2 4A 45 61 82 80 1D 71 A6 CA CE C6 D2 C4 5E DE
+FD 74 13 1A 07 01 86 CE A2 CC CA C8 D6 C2 DA C0
+62 DC 66 DA 6A D8 6E D6 2E C2 32 C6 AA 89 B6 8B
+D9 8C 13 5A 0A 01 19 E1 6F 10 70 48 93 18 15 00
+33 0F A0 40 B2 98 13 13 1F 00 C6 86 01 46 0A 0F
+33 05 D3 00 B3 85 A6 40 93 80 E5 FF 93 D2 10 00
+93 83 12 00 13 F4 73 00 AA 87 59 C4 05 48 63 0C
+04 07 09 49 63 02 24 07 8D 4A 63 08 54 05 11 4B
+63 0E 64 03 15 4C 63 04 84 03 99 4C 63 0A 94 01
+03 5D 05 00 93 07 25 00 33 0E AA 01 23 10 C5 01
+83 DE 07 00 89 07 B3 0F DA 01 23 9F F7 FF 83 DD
+07 00 89 07 B3 05 BA 01 23 9F B7 FE 83 D0 07 00
+89 07 B3 02 1A 00 23 9F 57 FE 83 D3 07 00 89 07
+33 04 7A 00 23 9F 87 FE 03 D8 07 00 89 07 33 09
+0A 01 23 9F 27 FF 83 DA 07 00 89 07 33 0B 5A 01
+23 9F 67 FF 63 85 D7 06 03 DC 07 00 83 DC 27 00
+03 DD 47 00 83 DF 67 00 83 DE 87 00 03 DE A7 00
+83 DD C7 00 83 D5 E7 00 B3 00 8A 01 B3 03 9A 01
+B3 02 AA 01 33 04 FA 01 33 09 DA 01 B3 0A CA 01
+33 08 BA 01 33 0B BA 00 23 90 17 00 23 91 77 00
+23 92 57 00 23 93 87 00 23 94 27 01 23 95 57 01
+23 96 07 01 23 97 67 01 C1 07 E3 9F D7 F8 93 0E
+16 00 B3 06 E5 41 63 84 D9 01 76 86 D5 B5 92 43
+33 08 30 41 01 4F 81 4F 13 15 28 00 33 8D 68 00
+B3 87 A8 41 13 8C E7 FF 93 5C 1C 00 13 8E 1C 00
+93 1D 2F 00 93 75 7E 00 B3 87 7D 00 EA 86 D1 CD
+85 40 63 82 15 08 89 42 63 87 55 06 0D 44 63 8C
+85 04 11 49 63 81 25 05 95 4A 63 86 55 03 19 4B
+63 8B 65 01 03 1C 0D 00 93 06 2D 00 91 07 B3 0C
+EC 02 23 AE 97 FF 03 9E 06 00 91 07 89 06 B3 0D
+EE 02 23 AE B7 FF 83 95 06 00 91 07 89 06 B3 80
+E5 02 23 AE 17 FE 83 92 06 00 91 07 89 06 33 84
+E2 02 23 AE 87 FE 03 99 06 00 91 07 89 06 B3 0A
+E9 02 23 AE 57 FF 03 9B 06 00 91 07 89 06 33 0C
+EB 02 23 AE 87 FF 83 9C 06 00 91 07 89 06 33 8E
+EC 02 23 AE C7 FF 63 87 16 07 83 9D 06 00 83 90
+26 00 03 9B 46 00 83 9A 66 00 03 99 86 00 03 94
+A6 00 83 92 C6 00 83 95 E6 00 B3 8C ED 02 C1 06
+93 87 07 02 33 8C E0 02 23 A0 97 FF 33 0E EB 02
+23 A2 87 FF B3 8D EA 02 23 A4 C7 FF B3 00 E9 02
+23 A6 B7 FF 33 0B E4 02 23 A8 17 FE B3 8A E2 02
+23 AA 67 FF 33 89 E5 02 23 AC 57 FF 23 AE 27 FF
+E3 9D 16 F9 93 86 1F 00 76 9F B3 08 AD 40 63 84
+CF 00 B6 8F E1 B5 92 4F 13 97 2E 00 81 40 7E 97
+01 4E 81 46 81 45 0E 08 33 0D A7 00 33 03 A7 41
+93 03 C3 FF 93 DE 23 00 13 84 1E 00 93 72 34 00
+6A 8F 63 8C 02 0E 85 4C 63 8A 92 05 09 4C 63 85
+82 03 F2 8D 03 2E 0D 00 93 97 00 01 93 D0 07 01
+F2 96 63 D7 D4 1A 13 8F A0 00 93 18 0F 01 93 D0
+08 41 81 46 13 0F 4D 00 F2 8F 03 2E 0F 00 13 93
+00 01 93 53 03 01 F2 96 63 DB D4 16 93 86 A3 00
+93 9C 06 01 93 D0 0C 41 81 46 11 0F 72 8C 03 2E
+0F 00 93 9D 00 01 93 D7 0D 01 F2 96 63 DC D4 12
+93 88 A7 00 93 9F 08 01 13 93 08 01 93 DE 0F 01
+93 50 03 41 81 46 11 0F 63 19 E7 07 93 8D 15 00
+33 07 0D 41 63 07 B6 14 EE 85 B9 B7 83 22 4F 00
+93 8E AA 00 13 94 0E 01 93 53 04 41 01 49 13 9E
+03 01 B3 06 59 00 93 5C 0E 01 63 DF D4 08 03 2E
+8F 00 93 87 AC 00 93 9A 07 01 13 DB 0A 41 81 46
+13 19 0B 01 F2 96 93 58 09 01 63 D0 D4 0A 93 82
+A8 00 93 9C 02 01 13 9C 02 01 93 DE 0C 01 93 50
+0C 41 81 46 31 0F E3 0B E7 F9 83 23 0F 00 93 9E
+00 01 13 D4 0E 01 B3 80 76 00 63 C5 14 08 33 2E
+7E 00 B3 02 C4 01 93 9C 02 01 93 DD 0C 41 03 2B
+4F 00 93 97 0D 01 11 0F 33 89 60 01 93 DA 07 01
+E3 C6 24 F7 B3 A8 63 01 83 22 4F 00 B3 8F 1A 01
+13 93 0F 01 93 53 03 41 13 9E 03 01 B3 06 59 00
+93 5C 0E 01 E3 C5 D4 F6 33 2C 5B 00 03 2E 8F 00
+B3 8D 8C 01 93 90 0D 01 13 DB 00 41 13 19 0B 01
+F2 96 93 58 09 01 E3 C4 D4 F6 B3 AF C2 01 33 83
+F8 01 93 13 03 01 13 14 03 01 93 DE 03 01 93 50
+04 41 8D B7 93 06 A4 00 13 9C 06 01 93 5D 0C 41
+81 40 B5 BF B3 20 CC 01 33 8B 17 00 93 1A 0B 01
+13 19 0B 01 93 DE 0A 01 93 50 09 41 E9 B5 B3 AE
+CF 01 33 84 D3 01 93 12 04 01 93 D0 02 41 71 B5
+33 AB CD 01 B3 8A 60 01 13 99 0A 01 93 50 09 41
+91 BD A9 67 93 F5 10 00 13 FD F0 0F 93 8A 17 00
+33 0B B0 40 33 FE 6A 01 13 59 1D 00 B3 48 2E 01
+93 F6 18 00 13 D7 8E 00 93 57 2D 00 93 5D 1E 00
+91 CA E9 7F 13 83 1F 00 B3 C3 6D 00 93 9E 03 01
+93 DD 0E 01 33 C4 B7 01 93 70 14 00 93 D2 17 00
+13 D8 1D 00 63 8B 00 00 E9 7C 13 8C 1C 00 33 4F
+88 01 13 15 0F 01 13 58 05 01 33 C6 02 01 93 75
+16 00 13 DD 27 00 13 59 18 00 91 C9 69 7B 93 0A
+1B 00 B3 4D 59 01 13 9E 0D 01 13 59 0E 01 B3 48
+A9 01 93 F6 18 00 93 DF 37 00 93 50 19 00 91 CA
+69 73 93 03 13 00 B3 CE 70 00 13 94 0E 01 93 50
+04 01 B3 C2 F0 01 93 FC 12 00 13 DC 47 00 93 D5
+10 00 63 8B 0C 00 69 7F 13 05 1F 00 33 C8 A5 00
+13 16 08 01 93 55 06 01 33 4D BC 00 13 7B 1D 00
+95 83 93 D8 15 00 63 0B 0B 00 E9 7A 13 8E 1A 00
+B3 CD C8 01 13 99 0D 01 93 58 09 01 93 F6 18 00
+13 D4 18 00 63 8B F6 00 E9 7F 13 83 1F 00 B3 43
+64 00 93 9E 03 01 13 D4 0E 01 B3 40 87 00 93 F2
+10 00 93 5C 17 00 13 56 14 00 63 8B 02 00 69 7C
+13 0F 1C 00 33 45 E6 01 13 18 05 01 13 56 08 01
+B3 C5 CC 00 13 FD 15 00 13 5B 27 00 13 59 16 00
+63 0B 0D 00 E9 77 93 8A 17 00 33 4E 59 01 93 1D
+0E 01 13 D9 0D 01 B3 48 69 01 93 FF 18 00 93 56
+37 00 93 50 19 00 63 8B 0F 00 69 73 93 03 13 00
+B3 CE 70 00 13 94 0E 01 93 50 04 01 B3 C2 D0 00
+93 FC 12 00 13 5C 47 00 93 D5 10 00 63 8B 0C 00
+69 7F 13 05 1F 00 33 C8 A5 00 13 16 08 01 93 55
+06 01 33 4D BC 00 13 7B 1D 00 93 5A 57 00 93 D8
+15 00 63 0B 0B 00 E9 77 13 8E 17 00 B3 CD C8 01
+13 99 0D 01 93 58 09 01 B3 CF 1A 01 93 F6 1F 00
+13 53 67 00 93 D2 18 00 91 CA E9 73 93 8E 13 00
+33 C4 D2 01 93 10 04 01 93 D2 00 01 B3 4C 53 00
+13 FC 1C 00 1D 83 93 D5 12 00 63 0B 0C 00 69 7F
+13 05 1F 00 33 C8 A5 00 13 16 08 01 93 55 06 01
+13 FD 15 00 93 DD 15 00 63 0B ED 00 69 7B 93 0A
+1B 00 B3 C7 5D 01 13 9E 07 01 93 5D 0E 01 63 94
+09 00 6F 10 60 5C 92 4C 13 94 29 00 81 45 22 86
+66 85 EF 50 B0 7B 32 4D 93 9F 19 00 66 85 B3 05
+94 01 B3 82 7F 01 81 43 26 C4 B3 84 72 41 13 83
+E4 FF 93 5E 13 00 93 80 1E 00 13 9C 13 00 13 F7
+70 00 B3 06 8D 01 5E 86 81 47 45 C7 05 4F 63 07
+E7 09 09 48 63 0B 07 07 0D 4B 63 0F 67 05 91 4A
+63 03 57 05 15 4E 63 07 C7 03 19 49 63 0B 27 01
+83 98 06 00 83 97 0B 00 89 06 13 86 2B 00 B3 87
+F8 02 03 94 06 00 83 1C 06 00 89 06 09 06 B3 0F
+94 03 FE 97 83 94 06 00 03 13 06 00 89 06 09 06
+B3 8E 64 02 F6 97 83 90 06 00 03 1C 06 00 89 06
+09 06 33 87 80 03 BA 97 03 9F 06 00 03 18 06 00
+89 06 09 06 33 0B 0F 03 DA 97 83 9A 06 00 03 1E
+06 00 89 06 09 06 33 89 CA 03 CA 97 83 98 06 00
+03 14 06 00 09 06 89 06 B3 8C 88 02 E6 97 63 06
+56 08 83 9F 06 00 03 13 06 00 83 90 26 00 83 1A
+26 00 33 87 6F 02 83 94 46 00 03 1C 46 00 83 9E
+66 00 03 1B 66 00 03 9E 86 00 03 19 86 00 83 9C
+A6 00 03 14 A6 00 83 98 C6 00 33 83 50 03 B3 80
+E7 00 83 1F C6 00 03 98 E6 00 03 1F E6 00 41 06
+C1 06 B3 87 84 03 B3 8A 60 00 B3 84 6E 03 33 8C
+FA 00 B3 0E 2E 03 33 0B 9C 00 33 87 8C 02 33 0E
+DB 01 33 89 F8 03 B3 0C EE 00 33 04 E8 03 B3 88
+2C 01 B3 87 88 00 E3 1E 56 F6 1C C1 11 05 CE 93
+E3 95 A5 EA A2 44 B3 02 30 41 13 95 22 00 81 47
+01 43 01 48 81 46 13 96 32 00 33 8D A5 00 B3 8F
+A5 41 13 8F CF FF 93 50 2F 00 93 8A 10 00 13 FC
+3A 00 EA 8E 63 02 0C 52 05 4B 63 09 6C 05 09 47
+63 04 EC 02 9A 8E 03 23 0D 00 C2 07 13 DE 07 01
+1A 98 63 DF 04 5D 13 08 AE 00 93 18 08 01 93 D7
+08 41 01 48 93 0E 4D 00 9A 83 03 A3 0E 00 93 92
+07 01 93 DF 02 01 1A 98 63 D3 04 5B 13 8C AF 00
+13 1B 0C 01 93 57 0B 41 01 48 91 0E 1A 87 03 A3
+0E 00 C2 07 13 DE 07 01 1A 98 63 D5 04 57 13 08
+AE 00 93 13 08 01 93 12 08 01 93 D0 03 01 93 D7
+02 41 01 48 91 0E 63 91 D5 4B 85 06 B3 05 CD 40
+E3 9D D9 F4 93 F8 F7 0F 13 D9 80 00 33 CD B8 01
+13 7E 1D 00 93 DC 18 00 93 D2 1D 00 63 0B 0E 00
+69 74 13 03 14 00 B3 C3 62 00 13 98 03 01 93 52
+08 01 B3 CF 5C 00 13 FF 1F 00 93 D0 28 00 13 D7
+12 00 63 0B 0F 00 E9 7A 13 8C 1A 00 B3 47 87 01
+13 9B 07 01 13 57 0B 01 B3 CE E0 00 13 F5 1E 00
+93 DD 38 00 13 5E 17 00 11 C9 69 76 93 06 16 00
+B3 45 DE 00 13 9D 05 01 13 5E 0D 01 B3 CC CD 01
+13 F4 1C 00 13 D3 48 00 13 5F 1E 00 11 C8 E9 73
+13 88 13 00 B3 42 0F 01 93 9F 02 01 13 DF 0F 01
+B3 40 E3 01 93 FA 10 00 13 DC 58 00 13 55 1F 00
+63 8B 0A 00 69 7B 13 07 1B 00 B3 47 E5 00 93 9E
+07 01 13 D5 0E 01 B3 4D AC 00 93 F6 1D 00 13 D6
+68 00 13 54 15 00 91 CA E9 75 13 8D 15 00 33 4E
+A4 01 93 1C 0E 01 13 D4 0C 01 33 43 86 00 93 73
+13 00 93 D8 78 00 93 50 14 00 63 8B 03 00 69 78
+93 02 18 00 B3 CF 50 00 13 9F 0F 01 93 50 0F 01
+93 FA 10 00 93 DE 10 00 63 8B 1A 01 69 7C 13 0B
+1C 00 33 C7 6E 01 93 17 07 01 93 DE 07 01 33 C5
+2E 01 93 7D 15 00 13 56 19 00 93 DC 1E 00 63 8B
+0D 00 E9 76 93 85 16 00 33 CD BC 00 13 1E 0D 01
+93 5C 0E 01 33 C4 CC 00 13 73 14 00 93 53 29 00
+13 DF 1C 00 63 0B 03 00 E9 78 13 88 18 00 B3 42
+0F 01 93 9F 02 01 13 DF 0F 01 B3 40 7F 00 93 FA
+10 00 13 5C 39 00 13 55 1F 00 63 8B 0A 00 69 7B
+13 07 1B 00 B3 47 E5 00 93 9E 07 01 13 D5 0E 01
+B3 4D AC 00 13 F6 1D 00 93 56 49 00 13 54 15 00
+11 CA E9 75 13 8D 15 00 33 4E A4 01 93 1C 0E 01
+13 D4 0C 01 33 C3 86 00 93 73 13 00 93 58 59 00
+93 50 14 00 63 8B 03 00 69 78 93 02 18 00 B3 CF
+50 00 13 9F 0F 01 93 50 0F 01 B3 CA 18 00 13 FC
+1A 00 13 5B 69 00 93 DD 10 00 63 0B 0C 00 69 77
+93 0E 17 00 B3 C7 DD 01 13 95 07 01 93 5D 05 01
+33 46 BB 01 93 76 16 00 13 59 79 00 13 D4 1D 00
+91 CA E9 75 13 8D 15 00 33 4E A4 01 93 1C 0E 01
+13 D4 0C 01 93 53 14 00 13 73 14 00 1E C8 63 0C
+23 01 E9 78 13 88 18 00 B3 C2 03 01 93 9F 02 01
+13 DF 0F 01 7A C8 81 4A 81 42 63 88 09 32 B2 40
+13 9C 29 00 13 94 19 00 01 47 52 CE 5E C4 86 8A
+33 09 14 00 62 CA 01 4B 26 CC 3A 8A E2 8B 92 4E
+93 14 2A 00 5E 86 33 85 D4 01 81 45 EF 50 10 30
+A2 4F 2A 8F 01 45 B3 07 59 41 93 8D E7 FF 13 D6
+1D 00 93 06 16 00 13 FD 76 00 7E 86 D6 86 81 47
+63 06 0D 0A 85 45 63 08 BD 08 09 4E 63 0C CD 07
+8D 4C 63 00 9D 07 11 43 63 04 6D 04 95 43 63 08
+7D 02 99 48 63 0C 1D 01 03 98 0A 00 83 92 0F 00
+93 86 2A 00 33 86 8F 00 B3 07 58 02 83 90 06 00
+03 1C 06 00 89 06 22 96 33 87 80 03 BA 97 83 94
+06 00 83 1E 06 00 89 06 22 96 B3 8D D4 03 EE 97
+03 9D 06 00 83 15 06 00 89 06 22 96 33 0E BD 02
+F2 97 83 9C 06 00 03 13 06 00 89 06 22 96 B3 83
+6C 02 9E 97 83 98 06 00 03 18 06 00 89 06 22 96
+B3 82 08 03 96 97 83 90 06 00 03 1C 06 00 89 06
+22 96 33 87 80 03 BA 97 63 03 D9 0A B3 04 86 00
+83 9C 06 00 03 13 06 00 B3 8E 84 00 03 9E 04 00
+03 9D 26 00 B3 83 8E 00 83 90 46 00 83 9D 0E 00
+33 87 6C 02 B3 85 83 00 83 9E 66 00 83 9C 03 00
+33 88 85 00 03 93 86 00 03 9C 05 00 83 98 A6 00
+83 13 08 00 B3 02 88 00 33 0D CD 03 03 98 C6 00
+33 86 82 00 83 92 02 00 83 95 E6 00 03 1E 06 00
+BA 97 C1 06 22 96 B3 84 B0 03 B3 80 A7 01 B3 8D
+9E 03 B3 8E 90 00 B3 0C 83 03 33 87 BE 01 33 83
+78 02 33 0C 97 01 B3 08 58 02 B3 03 6C 00 33 88
+C5 03 33 8D 13 01 B3 07 0D 01 E3 11 D9 F6 23 20
+FF 00 93 06 15 00 11 0F 89 0F 63 84 D9 12 36 85
+59 B5 33 23 F3 01 03 A9 4E 00 B3 8A 60 00 13 9C
+0A 01 93 57 0C 41 93 9C 07 01 B3 08 2E 01 91 0E
+13 D4 0C 01 63 DE 14 09 83 AA 4E 00 13 0F A4 00
+93 10 0F 01 93 DF 00 41 81 48 13 93 0F 01 33 8B
+58 01 13 5C 03 01 63 DF 64 09 03 A3 8E 00 93 0C
+AC 00 13 94 0C 01 13 59 04 41 01 4B 93 18 09 01
+33 08 6B 00 93 D3 08 01 63 D0 04 0B 13 8C A3 00
+13 1B 0C 01 13 17 0C 01 93 50 0B 01 93 57 07 41
+01 48 B1 0E E3 83 D5 B7 83 AF 0E 00 13 9F 07 01
+93 50 0F 01 33 0E F8 01 E3 D5 C4 F7 03 A9 4E 00
+13 8B A0 00 13 17 0B 01 93 57 07 41 01 4E 93 9C
+07 01 B3 08 2E 01 91 0E 13 D4 0C 01 E3 C6 14 F7
+33 A8 2F 01 83 AA 4E 00 B3 03 04 01 93 92 03 01
+93 DF 02 41 13 93 0F 01 33 8B 58 01 13 5C 03 01
+E3 C5 64 F7 33 27 59 01 03 A3 8E 00 B3 07 EC 00
+13 9E 07 01 13 59 0E 41 93 18 09 01 33 08 6B 00
+93 D3 08 01 E3 C4 04 F7 B3 A2 6A 00 B3 8F 53 00
+13 9F 0F 01 93 9A 0F 01 93 50 0F 01 93 D7 0A 41
+8D B7 13 0F 1B 00 A2 9A 4E 9A 22 99 63 00 AB 7E
+7A 8B 35 BB 33 29 67 00 B3 0C 2E 01 13 94 0C 01
+93 98 0C 01 93 50 04 01 93 D7 08 41 61 BC 33 AF
+63 00 B3 80 EF 01 93 9A 00 01 93 D7 0A 41 B1 BC
+33 A9 6E 00 B3 0C 2E 01 13 94 0C 01 93 57 04 41
+15 B4 93 72 FD 0F 93 DA 8E 00 C2 47 93 DF 12 00
+33 C9 57 00 13 7E 19 00 93 DC 17 00 63 0B 0E 00
+E9 76 93 80 16 00 B3 CD 1C 00 93 9E 0D 01 93 DC
+0E 01 33 CD 9F 01 13 73 1D 00 13 DC 22 00 13 D8
+1C 00 63 0B 03 00 E9 78 13 8F 18 00 33 45 E8 01
+93 15 05 01 13 D8 05 01 B3 43 0C 01 13 F7 13 00
+13 D6 32 00 13 5E 18 00 11 CB 69 7B 93 07 1B 00
+33 44 FE 00 13 19 04 01 13 5E 09 01 B3 4F CE 00
+93 F0 1F 00 93 D6 42 00 13 53 1E 00 63 8B 00 00
+E9 7D 93 8E 1D 00 B3 4C D3 01 13 9D 0C 01 13 53
+0D 01 33 4C D3 00 93 78 1C 00 13 DF 52 00 13 57
+13 00 63 8B 08 00 69 75 93 05 15 00 33 48 B7 00
+93 13 08 01 13 D7 03 01 33 46 E7 01 13 7B 16 00
+93 D7 62 00 93 50 17 00 63 0B 0B 00 69 79 13 0E
+19 00 33 C4 C0 01 93 1F 04 01 93 D0 0F 01 B3 C6
+F0 00 93 FD 16 00 93 D2 72 00 13 DC 10 00 63 8B
+0D 00 E9 7E 93 8C 1E 00 33 4D 9C 01 13 13 0D 01
+13 5C 03 01 93 78 1C 00 93 53 1C 00 63 8B 58 00
+69 7F 13 05 1F 00 B3 C5 A3 00 13 98 05 01 93 53
+08 01 33 C7 53 01 13 76 17 00 13 DB 1A 00 93 DF
+13 00 11 CA E9 77 13 89 17 00 33 CE 2F 01 13 14
+0E 01 93 5F 04 01 B3 40 FB 01 93 F6 10 00 93 DD
+2A 00 13 D3 1F 00 91 CA E9 72 93 8E 12 00 B3 4C
+D3 01 13 9D 0C 01 13 53 0D 01 33 4C B3 01 93 78
+1C 00 13 DF 3A 00 13 56 13 00 63 8B 08 00 69 75
+93 05 15 00 33 48 B6 00 93 13 08 01 13 D6 03 01
+33 47 E6 01 13 7B 17 00 93 D7 4A 00 93 50 16 00
+63 0B 0B 00 69 79 13 0E 19 00 33 C4 C0 01 93 1F
+04 01 93 D0 0F 01 B3 C6 17 00 93 FD 16 00 93 D2
+5A 00 13 DC 10 00 63 8B 0D 00 E9 7E 93 8C 1E 00
+33 4D 9C 01 13 13 0D 01 13 5C 03 01 B3 C8 82 01
+13 FF 18 00 13 D5 6A 00 13 5B 1C 00 63 0B 0F 00
+E9 75 13 88 15 00 B3 43 0B 01 13 96 03 01 13 5B
+06 01 33 47 AB 00 13 79 17 00 93 DA 7A 00 93 50
+1B 00 63 0B 09 00 E9 77 13 8E 17 00 33 C4 C0 01
+93 1F 04 01 93 D0 0F 01 93 F6 10 00 13 D4 10 00
+63 8B 56 01 E9 7D 93 82 1D 00 B3 4E 54 00 93 9C
+0E 01 13 D4 0C 01 81 4D 81 46 63 80 09 1A 32 4D
+92 4D 93 9A 19 00 6A 8C 33 8B AA 01 13 99 29 00
+81 4C 01 4D 13 93 2C 00 81 45 33 05 B3 01 4A 86
+EF 50 C0 58 AA 86 81 45 5E 85 B3 08 8B 41 13 8F
+E8 FF 13 58 1F 00 93 03 18 00 13 F6 33 00 2A 83
+E2 88 81 4E 59 C2 05 47 63 0C E6 04 89 47 63 06
+F6 02 03 1E 0C 00 83 1F 05 00 93 08 2C 00 33 03
+55 01 B3 00 FE 03 93 DE 50 40 93 D2 20 40 13 FF
+F2 00 13 F8 FE 07 B3 0E 0F 03 83 93 08 00 03 16
+03 00 89 08 56 93 B3 87 C3 02 13 D7 27 40 13 DE
+57 40 93 7F F7 00 93 70 FE 07 B3 82 1F 02 96 9E
+03 9F 08 00 03 18 03 00 89 08 56 93 B3 03 0F 03
+13 D6 23 40 93 D7 53 40 13 77 F6 00 13 FE F7 07
+B3 0F C7 03 FE 9E 63 03 1B 0B B3 00 53 01 03 9F
+08 00 03 18 03 00 33 86 50 01 83 93 28 00 03 97
+00 00 03 1E 06 00 33 03 56 01 83 92 48 00 B3 0F
+0F 03 83 17 03 00 83 90 68 00 A1 08 56 93 33 8F
+E3 02 13 D8 5F 40 93 D3 2F 40 13 F7 F3 00 93 73
+F8 07 B3 82 C2 03 13 56 5F 40 13 5E 2F 40 93 7F
+FE 00 13 76 F6 07 B3 80 F0 02 13 D8 52 40 93 D7
+22 40 13 FF F7 00 93 72 F8 07 33 07 77 02 13 DE
+50 40 93 D3 20 40 93 F0 F3 00 93 77 FE 07 B3 8F
+CF 02 BA 9E 33 06 5F 02 33 88 FE 01 33 8F F0 02
+B3 02 C8 00 B3 8E E2 01 E3 11 1B F7 23 A0 D6 01
+93 88 15 00 91 06 09 05 63 84 19 01 C6 85 75 B5
+93 06 1D 00 56 9C CE 9C 56 9B 63 81 A5 5F 36 8D
+51 B5 93 F6 FA 0F 93 5D 8B 00 B3 C0 86 00 13 F3
+10 00 93 DF 16 00 93 52 14 00 63 0B 03 00 69 7E
+93 0E 1E 00 33 CF D2 01 93 18 0F 01 93 D2 08 01
+33 CC 5F 00 93 7C 1C 00 13 DB 26 00 93 D4 12 00
+63 8B 0C 00 69 77 13 08 17 00 B3 C7 04 01 13 94
+07 01 93 54 04 01 33 45 9B 00 13 76 15 00 93 D5
+36 00 93 DB 14 00 11 CA E9 73 13 8D 13 00 33 C9
+AB 01 93 1A 09 01 93 DB 0A 01 B3 C0 75 01 13 F3
+10 00 93 DF 46 00 93 D2 1B 00 63 0B 03 00 69 7E
+93 0E 1E 00 33 CF D2 01 93 18 0F 01 93 D2 08 01
+33 CC 5F 00 93 7C 1C 00 13 DB 56 00 93 D4 12 00
+63 8B 0C 00 69 77 13 08 17 00 B3 C7 04 01 13 94
+07 01 93 54 04 01 33 C5 64 01 93 75 15 00 13 D6
+66 00 93 DB 14 00 91 C9 E9 73 13 8D 13 00 33 C9
+AB 01 93 1A 09 01 93 DB 0A 01 B3 C0 CB 00 13 F3
+10 00 9D 82 93 D8 1B 00 63 0B 03 00 E9 7F 13 8E
+1F 00 B3 CE C8 01 13 9F 0E 01 93 58 0F 01 93 F2
+18 00 13 D8 18 00 63 8B D2 00 69 7C 93 0C 1C 00
+33 4B 98 01 13 17 0B 01 13 58 07 01 B3 C7 0D 01
+13 F4 17 00 93 D4 1D 00 13 5D 18 00 11 C8 69 75
+93 05 15 00 33 46 BD 00 93 13 06 01 13 DD 03 01
+33 C9 A4 01 93 7A 19 00 93 DB 2D 00 13 5E 1D 00
+63 8B 0A 00 E9 70 13 83 10 00 B3 46 6E 00 93 9F
+06 01 13 DE 0F 01 B3 CE CB 01 13 FF 1E 00 93 D8
+3D 00 13 57 1E 00 63 0B 0F 00 E9 72 13 8C 12 00
+B3 4C 87 01 13 9B 0C 01 13 57 0B 01 33 C8 E8 00
+13 74 18 00 93 D4 4D 00 93 53 17 00 11 C8 69 75
+93 05 15 00 B3 C7 B3 00 13 96 07 01 93 53 06 01
+33 CD 74 00 13 79 1D 00 93 DA 5D 00 93 DF 13 00
+63 0B 09 00 E9 7B 93 80 1B 00 33 C3 1F 00 93 16
+03 01 93 DF 06 01 33 CE 5F 01 93 7E 1E 00 13 DF
+6D 00 13 DB 1F 00 63 8B 0E 00 E9 78 93 82 18 00
+33 4C 5B 00 93 1C 0C 01 13 DB 0C 01 33 47 6F 01
+13 78 17 00 93 DD 7D 00 93 57 1B 00 63 0B 08 00
+69 74 93 04 14 00 33 C5 97 00 93 15 05 01 93 D7
+05 01 13 F6 17 00 13 D5 17 00 63 0B B6 01 E9 73
+13 8D 13 00 33 49 A5 01 93 1A 09 01 13 D5 0A 01
+63 8B 09 12 32 43 B3 0B 30 41 93 90 19 00 B3 06
+13 00 93 92 1B 00 01 4F 93 9F 2B 00 33 8C 56 00
+33 8E 86 41 93 0E EE FF 93 D8 1E 00 93 8C 18 00
+13 FB 7C 00 E2 87 63 08 0B 08 05 47 63 0C EB 06
+09 48 63 02 0B 07 8D 4D 63 08 BB 05 11 44 63 0E
+8B 02 95 44 63 04 9B 02 99 45 63 0A BB 00 03 56
+0C 00 93 07 2C 00 B3 03 46 41 23 10 7C 00 03 DD
+07 00 89 07 33 09 4D 41 23 9F 27 FF 83 DA 07 00
+89 07 B3 8B 4A 41 23 9F 77 FF 83 D0 07 00 89 07
+33 83 40 41 23 9F 67 FE 03 DE 07 00 89 07 B3 0E
+4E 41 23 9F D7 FF 83 D8 07 00 89 07 B3 8C 48 41
+23 9F 97 FF 03 DB 07 00 89 07 33 07 4B 41 23 9F
+E7 FE 63 85 D7 06 83 DD 07 00 03 D4 27 00 83 D4
+47 00 03 D6 67 00 03 DD 87 00 03 D8 A7 00 83 D5
+C7 00 03 D9 E7 00 B3 83 4D 41 B3 0A 44 41 B3 8B
+44 41 B3 00 46 41 33 03 4D 41 33 0E 48 41 B3 8E
+45 41 B3 08 49 41 23 90 77 00 23 91 57 01 23 92
+77 01 23 93 17 00 23 94 67 00 23 95 C7 01 23 96
+D7 01 23 97 17 01 C1 07 E3 9F D7 F8 05 0F B3 06
+FC 41 E3 95 E9 EF F6 40 66 44 13 1C 05 01 D6 44
+46 49 B6 49 26 4A 96 4A 06 4B F2 5B D2 5C 42 5D
+B2 5D 13 55 0C 41 62 5C 25 61 82 80 12 44 D2 4F
+E2 44 72 4A A2 4B 33 0B 30 41 33 07 F4 01 13 18
+2B 00 01 4D 01 4E 81 46 01 46 93 15 3B 00 B3 02
+07 01 B3 00 57 40 93 8D C0 FF 93 DE 2D 00 93 8C
+1E 00 13 F3 3C 00 16 8F 63 0F 03 10 05 4C 63 0A
+83 05 89 48 63 05 13 03 F2 83 03 AE 02 00 93 17
+0D 01 13 DD 07 01 F2 96 63 D1 D4 1C 13 0B AD 00
+13 14 0B 01 13 5D 04 41 81 46 13 8F 42 00 F2 8F
+03 2E 0F 00 93 10 0D 01 93 DD 00 01 F2 96 63 D5
+D4 18 93 86 AD 00 13 9C 06 01 13 5D 0C 41 81 46
+11 0F F2 88 03 2E 0F 00 93 13 0D 01 93 D7 03 01
+F2 96 63 D6 D4 14 13 84 A7 00 93 1F 04 01 93 10
+04 01 93 DE 0F 01 13 DD 00 41 81 46 11 0F 63 1C
+E7 09 93 03 16 00 33 87 B2 40 63 0C C5 F8 1E 86
+B9 B7 33 2E BE 01 83 2A 4F 00 33 83 CC 01 13 1C
+03 01 93 53 0C 41 93 97 03 01 33 0B 5D 01 11 0F
+13 D9 07 01 63 DD 64 09 03 23 4F 00 93 0E A9 00
+93 9C 0E 01 93 DD 0C 41 01 4B 13 9E 0D 01 B3 06
+6B 00 13 5C 0E 01 63 DE D4 08 03 2E 8F 00 93 07
+AC 00 13 99 07 01 93 5A 09 41 81 46 13 9B 0A 01
+F2 96 13 54 0B 01 63 DF D4 08 13 03 A4 00 13 1C
+03 01 93 18 03 01 93 5E 0C 01 13 DD 08 41 81 46
+31 0F E3 08 E7 F7 83 2D 0F 00 93 1E 0D 01 93 DC
+0E 01 33 8D B6 01 E3 D6 A4 F7 83 2A 4F 00 93 86
+AC 00 93 98 06 01 93 D3 08 41 01 4D 93 97 03 01
+33 0B 5D 01 11 0F 13 D9 07 01 E3 C7 64 F7 33 A4
+5D 01 03 23 4F 00 B3 0F 89 00 93 90 0F 01 93 DD
+00 41 13 9E 0D 01 B3 06 6B 00 13 5C 0E 01 E3 C6
+D4 F6 B3 A8 6A 00 03 2E 8F 00 B3 03 1C 01 13 9D
+03 01 93 5A 0D 41 13 9B 0A 01 F2 96 13 54 0B 01
+E3 C5 D4 F6 B3 2F C3 01 B3 00 F4 01 93 9D 00 01
+93 9C 00 01 93 DE 0D 01 13 DD 0C 41 95 B7 33 AD
+C8 01 B3 8A A7 01 13 99 0A 01 13 9B 0A 01 93 5E
+09 01 13 5D 0B 41 5D BD B3 AE CF 01 B3 8C DD 01
+13 93 0C 01 13 5D 03 41 A5 BD 33 AF C3 01 B3 0A
+ED 01 13 99 0A 01 13 5D 09 41 81 B5 92 4A B3 0B
+30 41 13 95 2B 00 56 99 01 4E 81 4A 81 48 81 46
+13 96 3B 00 B3 0D A9 00 33 0D B9 41 13 03 CD FF
+13 57 23 00 93 03 17 00 93 F0 73 00 6E 88 63 88
+00 24 85 4F 63 8E F0 0F 89 4E 63 89 D0 0D 0D 4F
+63 84 E0 0B 91 42 63 8F 50 06 15 4C 63 8A 80 05
+99 4C 63 85 90 03 72 88 03 AE 0D 00 93 97 0A 01
+13 DB 07 01 F2 98 63 DB 14 3B 93 08 AB 00 13 93
+08 01 93 5A 03 41 81 48 13 88 4D 00 72 87 03 2E
+08 00 93 93 0A 01 93 D0 03 01 F2 98 63 DF 14 37
+93 82 A0 00 13 9C 02 01 93 5A 0C 41 81 48 11 08
+F2 8C 03 2E 08 00 93 97 0A 01 13 DB 07 01 F2 98
+63 D4 14 35 93 08 AB 00 13 93 08 01 93 5A 03 41
+81 48 11 08 72 87 03 2E 08 00 93 93 0A 01 93 D0
+03 01 F2 98 63 D9 14 31 93 82 A0 00 13 9C 02 01
+93 5A 0C 41 81 48 11 08 F2 8C 03 2E 08 00 93 97
+0A 01 13 DB 07 01 F2 98 63 DE 14 2D 93 08 AB 00
+13 93 08 01 93 5A 03 41 81 48 11 08 72 87 03 2E
+08 00 93 93 0A 01 93 D0 03 01 F2 98 63 D3 14 2B
+93 82 A0 00 13 9C 02 01 93 5A 0C 41 81 48 11 08
+F2 8C 03 2E 08 00 93 97 0A 01 13 DB 07 01 F2 98
+63 D4 14 27 93 08 AB 00 13 93 08 01 93 93 08 01
+13 5B 03 01 93 DA 03 41 81 48 11 08 63 11 28 13
+93 83 16 00 33 89 CD 40 E3 8D D5 8A 9E 86 5D B5
+33 2E 1E 00 83 2B 48 00 33 8F CE 01 93 12 0F 01
+93 D7 02 41 93 9A 07 01 33 07 7B 01 11 08 13 DD
+0A 01 63 D2 E4 12 03 2F 48 00 93 0F AD 00 93 9E
+0F 01 93 D0 0E 41 01 47 13 9E 00 01 33 0C E7 01
+93 52 0E 01 63 D3 84 13 03 27 88 00 93 8A A2 00
+13 9D 0A 01 93 5B 0D 41 01 4C 93 98 0B 01 B3 00
+EC 00 93 D3 08 01 63 D4 14 12 03 2C C8 00 13 8E
+A3 00 93 12 0E 01 13 DF 02 41 81 40 93 1C 0F 01
+33 8B 80 01 93 D7 0C 01 63 D5 64 13 83 20 08 01
+93 88 A7 00 93 93 08 01 13 D7 03 41 01 4B 13 13
+07 01 B3 0E 1B 00 93 5F 03 01 63 D6 D4 13 03 2B
+48 01 93 8C AF 00 93 97 0C 01 13 DC 07 41 81 4E
+93 1B 0C 01 33 8D 6E 01 93 DA 0B 01 63 D7 A4 13
+03 2E 88 01 13 83 AA 00 93 1F 03 01 93 D0 0F 41
+01 4D 93 9E 00 01 B3 08 CD 01 13 DF 0E 01 63 D8
+14 13 93 0B AF 00 13 9D 0B 01 13 97 0B 01 13 5B
+0D 01 93 5A 07 41 81 48 71 08 E3 03 28 EF 83 20
+08 00 93 9F 0A 01 93 DE 0F 01 33 8B 18 00 E3 D1
+64 EF 83 2B 48 00 13 8C AE 00 93 1C 0C 01 93 D7
+0C 41 01 4B 93 9A 07 01 33 07 7B 01 11 08 13 DD
+0A 01 E3 C2 E4 EE B3 A8 70 01 03 2F 48 00 33 03
+1D 01 93 13 03 01 93 D0 03 41 13 9E 00 01 33 0C
+E7 01 93 52 0E 01 E3 C1 84 EF B3 AC EB 01 03 27
+88 00 B3 87 92 01 13 9B 07 01 93 5B 0B 41 93 98
+0B 01 B3 00 EC 00 93 D3 08 01 E3 C0 14 EE 33 23
+EF 00 03 2C C8 00 B3 8F 63 00 93 9E 0F 01 13 DF
+0E 41 93 1C 0F 01 33 8B 80 01 93 D7 0C 01 E3 CF
+64 ED B3 2B 87 01 83 20 08 01 B3 8A 77 01 13 9D
+0A 01 13 57 0D 41 13 13 07 01 B3 0E 1B 00 93 5F
+03 01 E3 CE D4 ED 33 2F 1C 00 03 2B 48 01 33 8E
+EF 01 93 12 0E 01 13 DC 02 41 93 1B 0C 01 33 8D
+6E 01 93 DA 0B 01 E3 CD A4 ED 33 A7 60 01 B3 88
+EA 00 03 2E 88 01 93 93 08 01 93 D0 03 41 93 9E
+00 01 B3 08 CD 01 13 DF 0E 01 E3 CC 14 ED B3 22
+CB 01 33 0C 5F 00 93 1C 0C 01 93 17 0C 01 13 DB
+0C 01 93 DA 07 41 C9 BD B3 AB CC 01 B3 0A 7B 01
+13 9D 0A 01 13 97 0A 01 13 5B 0D 01 93 5A 07 41
+69 BB B3 2F C7 01 B3 8E F0 01 13 9F 0E 01 93 5A
+0F 41 B1 BB B3 AB CC 01 B3 0A 7B 01 13 9D 0A 01
+93 5A 0D 41 1D B3 B3 2F C7 01 B3 8E F0 01 13 9F
+0E 01 93 5A 0F 41 C5 B9 B3 AB CC 01 B3 0A 7B 01
+13 9D 0A 01 93 5A 0D 41 6D B9 B3 2F C7 01 B3 8E
+F0 01 13 9F 0E 01 93 5A 0F 41 51 B1 B3 2B C8 01
+B3 0A 7B 01 13 9D 0A 01 93 5A 0D 41 B1 B1 81 47
+01 47 81 4D 6F E0 1F 84 01 49 81 48 6F E0 1F C8
+41 11 14 45 2E 87 22 C4 4C 45 32 84 50 41 08 41
+06 C6 EF E0 4F B2 B3 46 A4 00 13 77 F5 0F 93 17
+05 01 93 F2 16 00 13 D3 07 01 13 56 17 00 13 58
+14 00 63 8B 02 00 E9 70 93 83 10 00 33 45 78 00
+93 15 05 01 13 D8 05 01 B3 48 C8 00 13 FE 18 00
+93 5E 27 00 93 52 18 00 63 0B 0E 00 69 7F 93 0F
+1F 00 33 C4 F2 01 93 16 04 01 93 D2 06 01 B3 C7
+D2 01 93 F0 17 00 13 56 37 00 93 D8 12 00 63 8B
+00 00 E9 73 93 85 13 00 33 C5 B8 00 13 18 05 01
+93 58 08 01 33 CE C8 00 93 7E 1E 00 13 5F 47 00
+93 D7 18 00 63 8B 0E 00 E9 7F 13 84 1F 00 B3 C6
+87 00 93 92 06 01 93 D7 02 01 B3 C0 E7 01 93 F3
+10 00 13 56 57 00 13 DE 17 00 63 8B 03 00 E9 75
+13 88 15 00 33 45 0E 01 93 18 05 01 13 DE 08 01
+B3 4E CE 00 13 FF 1E 00 93 5F 67 00 93 50 1E 00
+63 0B 0F 00 69 74 93 06 14 00 B3 C2 D0 00 93 97
+02 01 93 D0 07 01 B3 C3 F0 01 13 F6 13 00 1D 83
+13 DE 10 00 11 CA E9 75 13 88 15 00 33 45 0E 01
+93 18 05 01 13 DE 08 01 93 7E 1E 00 93 52 1E 00
+63 8B EE 00 69 7F 93 0F 1F 00 33 C4 F2 01 93 16
+04 01 93 D2 06 01 93 57 83 00 B3 C0 57 00 93 F3
+10 00 13 56 83 00 93 D8 12 00 13 53 93 00 63 8B
03 00 69 77 93 05 17 00 33 C8 B8 00 13 15 08 01
-93 58 05 01 33 CE 68 00 93 7E 1E 00 13 5F 46 00
+93 58 05 01 33 4E 13 01 93 7E 1E 00 13 5F 26 00
93 D0 18 00 63 8B 0E 00 E9 7F 13 84 1F 00 B3 C6
80 00 93 92 06 01 93 D0 02 01 B3 C7 E0 01 93 F3
-17 00 13 53 56 00 93 D8 10 00 63 8B 03 00 69 77
+17 00 13 53 36 00 93 D8 10 00 63 8B 03 00 69 77
93 05 17 00 33 C8 B8 00 13 15 08 01 93 58 05 01
-33 CE 68 00 93 7E 1E 00 13 5F 66 00 93 D0 18 00
+33 CE 68 00 93 7E 1E 00 13 5F 46 00 93 D0 18 00
63 8B 0E 00 E9 7F 13 84 1F 00 B3 C6 80 00 93 92
-06 01 93 D0 02 01 B3 C7 E0 01 93 F3 17 00 1D 82
-13 D5 10 00 63 8B 03 00 69 73 13 07 13 00 B3 45
-E5 00 13 98 05 01 13 55 08 01 93 78 15 00 05 81
-63 8B C8 00 69 7E 93 0E 1E 00 33 4F D5 01 93 1F
-0F 01 13 D5 0F 01 B2 40 22 44 41 01 82 80 79 71
-4A D2 22 D6 26 D4 4E D0 52 CE 56 CC 5A CA 5E C8
-62 C6 66 C4 6A C2 2A 87 36 89 11 E2 05 46 FD 15
-13 F4 C5 FF 13 0A 44 00 81 47 63 02 07 34 93 82
-17 00 B3 86 52 02 13 88 27 00 13 8E 37 00 13 8F
-47 00 93 8E 57 00 93 88 67 00 13 83 77 00 3E 85
-A1 07 93 93 36 00 63 F3 E3 06 B3 09 08 03 16 85
-13 9B 39 00 63 7C EB 04 B3 0B CE 03 42 85 13 9C
-3B 00 63 75 EC 04 B3 0C EF 03 72 85 13 9D 3C 00
-63 7E ED 02 B3 8F DE 03 7A 85 93 95 3F 00 63 F7
-E5 02 33 84 18 03 76 85 93 1A 34 00 63 F0 EA 02
-B3 04 63 02 46 85 93 92 34 00 63 F9 E2 00 33 88
-F7 02 1A 85 13 1E 38 00 E3 6B EE F6 33 07 A5 02
-AA 8A 93 14 17 00 33 04 9A 00 63 06 05 26 C1 6E
-81 46 81 43 85 4F 33 0F 8A 40 FD 1E 93 09 F5 FF
-33 06 F6 03 93 98 0F 01 93 D7 08 01 13 93 16 00
-33 0B 83 00 13 0C F5 FF 93 7C 3C 00 B3 0B 6F 01
-05 4E 13 88 1F 00 13 5D F6 41 93 52 0D 01 33 07
-56 00 33 76 D7 01 33 06 56 40 B3 88 C7 00 13 93
-08 01 13 5C 03 01 E2 97 23 10 8B 01 13 FD F7 0F
-23 90 AB 01 93 05 2B 00 63 76 AE 1E 63 83 0C 0E
-63 8C CC 09 89 4B 63 86 7C 05 B3 0C 06 03 42 08
-93 52 08 01 B3 08 BF 00 93 05 4B 00 13 88 2F 00
-09 4E 13 D7 FC 41 13 53 07 01 33 86 6C 00 33 7C
-D6 01 33 06 6C 40 B3 87 C2 00 13 9D 07 01 93 5B
-0D 01 B3 8C 5B 00 23 11 7B 01 13 FB FC 0F 23 90
-68 01 B3 02 06 03 93 18 08 01 13 D3 08 01 33 0C
-BF 00 05 0E 05 08 89 05 13 D7 F2 41 93 57 07 01
-33 86 F2 00 33 7D D6 01 33 06 FD 40 B3 0B C3 00
-93 9C 0B 01 13 DB 0C 01 B3 02 6B 00 23 9F 65 FF
-93 F8 F2 0F 23 10 1C 01 33 03 06 03 13 1C 08 01
-93 57 0C 01 33 0D BF 00 89 05 05 0E 05 08 13 57
-F3 41 93 5B 07 01 33 06 73 01 B3 7C D6 01 33 86
-7C 41 33 8B C7 00 93 12 0B 01 93 D8 02 01 33 83
-F8 00 23 9F 15 FF 13 7C F3 0F 23 10 8D 01 63 73
-AE 10 33 06 06 03 93 07 28 00 13 0B 38 00 13 1D
-08 01 93 52 0D 01 93 98 07 01 13 1D 0B 01 13 D3
-08 01 93 58 0D 01 13 07 18 00 13 5D F6 41 13 5D
-0D 01 6A 96 33 76 D6 01 33 0D A6 41 93 1B 07 01
-33 07 ED 02 33 86 A2 01 13 1D 06 01 13 56 0D 01
-B2 92 B3 0C BF 00 23 90 C5 00 13 FD F2 0F 23 90
-AC 01 66 8C 66 86 E6 82 93 5C F7 41 13 DD 0C 01
-6A 97 B3 7C D7 01 33 8D AC 41 B3 07 FD 02 93 DB
-0B 01 33 87 AB 01 93 1C 07 01 13 DD 0C 01 EA 9B
-23 91 A5 01 13 F7 FB 0F 23 11 EC 00 A1 05 13 DC
-F7 41 93 5C 0C 01 E6 97 33 FD D7 01 B3 0B 9D 41
-33 8B 6B 03 33 07 73 01 13 1C 07 01 93 5C 0C 01
-66 93 23 9E 95 FF 93 77 F3 0F 23 12 F6 00 11 0E
-11 08 13 56 FB 41 13 5D 06 01 B3 0B AB 01 33 FB
-DB 01 33 06 AB 41 33 87 C8 00 13 1C 07 01 93 5C
-0C 01 E6 98 23 9F 95 FF 13 F3 F8 0F 23 93 62 00
-E3 61 AE F0 85 0F 01 4E 11 C1 4E 8E 85 03 F2 9F
-AA 96 E3 E7 A3 DA A2 94 93 86 F4 FF 23 24 89 00
-93 F3 C6 FF 32 54 13 8F 43 00 23 22 49 01 23 20
-59 01 23 26 E9 01 A2 54 12 59 82 59 72 4A E2 4A
-52 4B C2 4B 32 4C A2 4C 12 4D 45 61 82 80 19 04
-FD 5A 7D 55 89 44 A1 BB 2A 88 63 06 05 3E B3 08
-A0 40 13 17 25 00 2E 97 13 93 28 00 81 45 01 45
-81 4F 81 4E 8E 08 B3 06 E3 00 B3 07 D7 40 93 82
-C7 FF 93 D3 22 00 13 8E 13 00 93 77 7E 00 36 8E
-63 80 07 22 05 4F 63 89 E7 0F 89 42 63 84 57 0C
-8D 43 63 81 77 0A 11 4F 63 8C E7 07 95 42 63 87
-57 04 99 43 63 84 77 02 7E 8E 83 AF 06 00 42 05
-13 5F 05 01 FE 9E 63 57 D6 37 93 0E AF 00 13 9E
-0E 01 13 55 0E 41 81 4E 13 8E 46 00 7E 8F 83 2F
-0E 00 42 05 93 52 05 01 FE 9E 63 5C D6 33 93 8E
-A2 00 13 95 0E 01 41 85 81 4E 11 0E FE 82 83 2F
-0E 00 93 17 05 01 93 D3 07 01 FE 9E 63 52 D6 31
-93 8E A3 00 93 97 0E 01 13 D5 07 41 81 4E 11 0E
-FE 83 83 2F 0E 00 13 1F 05 01 13 55 0F 01 FE 9E
-63 57 D6 2D 93 0E A5 00 13 9F 0E 01 13 55 0F 41
-81 4E 11 0E FE 82 83 2F 0E 00 42 05 93 53 05 01
-FE 9E 63 5D D6 29 93 8E A3 00 13 95 0E 01 41 85
-81 4E 11 0E FE 83 83 2F 0E 00 93 17 05 01 13 DF
-07 01 FE 9E 63 53 D6 27 93 0E AF 00 93 97 0E 01
-13 D5 07 41 81 4E 11 0E 7E 8F 83 2F 0E 00 93 12
-05 01 13 D5 02 01 FE 9E 63 58 D6 23 93 0E A5 00
-93 92 0E 01 13 D5 02 41 81 4E 11 0E 63 12 C7 11
-85 05 33 87 16 41 E3 10 B8 EC 82 80 B3 AF 7F 00
-B3 07 FF 01 83 2F 4E 00 93 92 07 01 13 DF 02 41
-93 17 0F 01 33 85 FE 01 11 0E 93 D2 07 01 63 53
-A6 10 83 23 4E 00 A9 02 13 95 02 01 93 57 05 41
-01 45 13 9F 07 01 B3 0E 75 00 93 57 0F 01 63 55
-D6 11 83 2F 8E 00 A9 07 93 9E 07 01 13 DF 0E 41
-81 4E 93 12 0F 01 FE 9E 13 D5 02 01 63 57 D6 11
-83 23 CE 00 29 05 93 1E 05 01 93 D2 0E 41 81 4E
-13 9F 02 01 B3 82 7E 00 93 57 0F 01 63 59 56 10
-A9 07 83 2F 0E 01 93 92 07 01 13 DF 02 41 81 42
-13 15 0F 01 B3 8E F2 01 93 57 05 01 63 5B D6 11
-83 23 4E 01 A9 07 93 9E 07 01 13 D5 0E 41 81 4E
-13 1F 05 01 9E 9E 93 52 0F 01 63 5D D6 11 83 2F
-8E 01 A9 02 93 9E 02 01 13 DF 0E 41 81 4E 13 15
-0F 01 FE 9E 93 57 05 01 63 5F D6 11 13 85 A7 00
-93 17 05 01 13 D5 07 41 81 4E 71 0E E3 02 C7 F1
-83 23 0E 00 42 05 13 5F 05 01 9E 9E E3 50 D6 F1
-93 0E AF 00 83 2F 4E 00 13 95 0E 01 13 5F 05 41
-81 4E 93 17 0F 01 33 85 FE 01 11 0E 93 D2 07 01
-E3 41 A6 F0 B3 A3 F3 01 33 8F 72 00 83 23 4E 00
-93 1E 0F 01 93 D7 0E 41 13 9F 07 01 B3 0E 75 00
-93 57 0F 01 E3 4F D6 EF B3 AF 7F 00 B3 82 F7 01
-83 2F 8E 00 13 95 02 01 13 5F 05 41 93 12 0F 01
-FE 9E 13 D5 02 01 E3 4D D6 EF B3 A3 F3 01 33 0F
-75 00 83 23 CE 00 93 17 0F 01 93 D2 07 41 13 9F
-02 01 B3 82 7E 00 93 57 0F 01 E3 4B 56 EE B3 AF
-7F 00 33 85 F7 01 83 2F 0E 01 93 1E 05 01 13 DF
-0E 41 13 15 0F 01 B3 8E F2 01 93 57 05 01 E3 49
-D6 EF B3 A3 F3 01 33 8F 77 00 83 23 4E 01 93 12
-0F 01 13 D5 02 41 13 1F 05 01 9E 9E 93 52 0F 01
-E3 47 D6 EF B3 AF 7F 00 33 85 F2 01 83 2F 8E 01
-93 17 05 01 13 DF 07 41 13 15 0F 01 FE 9E 93 57
-05 01 E3 45 D6 EF B3 A3 F3 01 33 8F 77 00 93 12
-0F 01 13 D5 02 41 D5 B5 B3 23 FF 01 B3 07 75 00
-13 9F 07 01 13 55 0F 41 C9 BB B3 A2 F3 01 33 05
-5F 00 93 13 05 01 13 D5 03 41 71 BB B3 A7 F2 01
-33 8F F3 00 93 12 0F 01 13 D5 02 41 9D B3 B3 A2
-F3 01 B3 07 55 00 93 93 07 01 13 D5 03 41 15 BB
-33 AF F2 01 33 85 E3 01 93 12 05 01 13 D5 02 41
-FD B9 B3 27 FF 01 B3 83 F2 00 13 9F 03 01 13 55
-0F 41 E1 B1 B3 27 FE 01 B3 02 FF 00 93 93 02 01
-13 D5 03 41 51 B9 01 45 82 80 63 01 05 16 41 11
-B3 03 A0 40 13 18 15 00 22 C6 26 C4 13 94 13 00
-4A C2 4E C0 32 98 81 4F 81 42 8A 03 B3 08 04 01
-33 06 18 41 13 03 E6 FF 93 54 13 00 13 87 14 00
-93 97 2F 00 13 79 77 00 AE 97 46 87 63 0F 09 08
-85 49 63 02 39 09 09 4E 63 07 C9 07 8D 4E 63 0C
-D9 05 11 4F 63 01 E9 05 15 46 63 06 C9 02 19 43
-63 0B 69 00 83 94 08 00 13 87 28 00 91 07 33 89
-D4 02 23 AE 27 FF 83 19 07 00 91 07 09 07 33 8E
-D9 02 23 AE C7 FF 83 1E 07 00 91 07 09 07 33 8F
-DE 02 23 AE E7 FF 03 16 07 00 91 07 09 07 33 03
-D6 02 23 AE 67 FE 83 14 07 00 91 07 09 07 33 89
-D4 02 23 AE 27 FF 83 19 07 00 91 07 09 07 33 8E
-D9 02 23 AE C7 FF 83 1E 07 00 91 07 09 07 33 8F
-DE 02 23 AE E7 FF 63 07 E8 06 83 19 07 00 03 19
-27 00 83 14 47 00 03 1F 67 00 83 1E 87 00 03 1E
-A7 00 03 13 C7 00 03 16 E7 00 B3 89 D9 02 41 07
-93 87 07 02 33 09 D9 02 23 A0 37 FF B3 84 D4 02
-23 A2 27 FF 33 0F DF 02 23 A4 97 FE B3 8E DE 02
-23 A6 E7 FF 33 0E DE 02 23 A8 D7 FF 33 03 D3 02
-23 AA C7 FF 33 06 D6 02 23 AC 67 FE 23 AE C7 FE
-E3 1D E8 F8 85 02 AA 9F 33 88 78 40 E3 18 55 EC
-32 44 A2 44 12 49 82 49 41 01 82 80 82 80 63 00
-05 1E B3 02 A0 40 93 16 06 01 93 17 15 00 93 93
-12 00 C1 82 33 86 F5 00 81 4F 8A 02 B3 85 C3 00
-33 07 B6 40 13 03 E7 FF 13 58 13 00 93 08 18 00
-13 FE 78 00 AE 87 63 08 0E 08 85 4E 63 0C DE 07
-09 4F 63 02 EE 07 0D 47 63 08 EE 04 11 43 63 0E
-6E 02 15 48 63 04 0E 03 99 48 63 0A 1E 01 03 DE
-05 00 93 87 25 00 B3 8E C6 01 23 90 D5 01 03 DF
-07 00 89 07 33 87 E6 01 23 9F E7 FE 03 D3 07 00
-89 07 33 88 66 00 23 9F 07 FF 83 D8 07 00 89 07
-33 8E 16 01 23 9F C7 FF 83 DE 07 00 89 07 33 8F
-D6 01 23 9F E7 FF 03 D7 07 00 89 07 33 83 E6 00
-23 9F 67 FE 03 D8 07 00 89 07 B3 88 06 01 23 9F
-17 FF 63 09 F6 10 41 11 22 C6 03 D4 07 00 03 DF
-27 00 83 DE 47 00 03 DE 67 00 03 D3 87 00 83 D8
-A7 00 03 D8 C7 00 03 D7 E7 00 36 94 36 9F B6 9E
-36 9E 36 93 B6 98 36 98 36 97 23 90 87 00 23 91
-E7 01 23 92 D7 01 23 93 C7 01 23 94 67 00 23 95
-17 01 23 96 07 01 23 97 E7 00 C1 07 E3 17 F6 FA
-85 0F 33 86 55 40 63 04 F5 0B B3 85 C3 00 B3 07
-B6 40 13 84 E7 FF 13 5F 14 00 93 0E 1F 00 13 FE
-7E 00 AE 87 E3 03 0E F8 05 43 63 04 6E 06 89 48
-63 0A 1E 05 0D 48 63 00 0E 05 11 47 63 06 EE 02
-15 44 63 0C 8E 00 19 4F 63 1C EE 07 03 D3 07 00
-89 07 B3 88 66 00 23 9F 17 FF 03 D8 07 00 89 07
-33 87 06 01 23 9F E7 FE 03 D4 07 00 89 07 33 8F
-86 00 23 9F E7 FF 83 DE 07 00 89 07 33 8E D6 01
-23 9F C7 FF 03 D3 07 00 89 07 B3 88 66 00 23 9F
-17 FF 03 D8 07 00 89 07 33 87 06 01 23 9F E7 FE
-E3 15 F6 F0 85 0F 33 86 55 40 E3 10 F5 F7 32 44
-41 01 82 80 85 0F 33 86 55 40 E3 11 F5 E5 82 80
-83 DE 05 00 93 87 25 00 33 8E D6 01 23 90 C5 01
-B5 BF 63 08 05 1A 79 71 26 D2 AA 84 4E CE 93 99
-24 00 4A D0 2E 85 32 89 81 45 4E 86 22 D4 06 D6
-36 84 52 CC 56 CA 5A C8 5E C6 62 C4 66 C2 EF 30
-30 49 93 96 14 00 AA 85 A2 96 4E 95 01 46 33 83
-86 40 93 00 E3 FF 93 D2 10 00 93 83 12 00 93 17
-16 00 93 F8 73 00 CA 97 22 87 01 4E 63 85 08 0A
-05 48 63 87 08 09 09 4A 63 8B 48 07 8D 4A 63 8F
-58 05 11 4B 63 83 68 05 95 4B 63 87 78 03 19 4C
-63 8B 88 01 83 9C 07 00 03 1E 04 00 89 07 13 07
-24 00 33 8E CC 03 83 9E 07 00 03 1F 07 00 89 07
-09 07 B3 8F EE 03 7E 9E 83 99 07 00 03 13 07 00
-89 07 09 07 B3 80 69 02 06 9E 83 92 07 00 83 13
-07 00 89 07 09 07 B3 88 72 02 46 9E 03 98 07 00
-03 1A 07 00 89 07 09 07 B3 0A 48 03 56 9E 03 9B
-07 00 83 1B 07 00 89 07 09 07 33 0C 7B 03 62 9E
-83 9C 07 00 83 1E 07 00 09 07 89 07 33 8F DC 03
-7A 9E 63 85 E6 08 83 9F 07 00 83 19 07 00 83 90
-27 00 83 1A 27 00 B3 88 3F 03 03 98 47 00 03 1C
-47 00 83 92 67 00 83 1B 67 00 83 9C 87 00 03 1B
-87 00 03 9F A7 00 03 1A A7 00 83 9E C7 00 B3 8F
-50 03 83 19 C7 00 03 93 E7 00 83 13 E7 00 46 9E
-41 07 C1 07 B3 00 88 03 B3 0A FE 01 33 8C 72 03
-33 88 1A 00 B3 82 6C 03 B3 0B 88 01 B3 08 4F 03
-B3 8C 5B 00 33 8B 3E 03 33 8F 1C 01 33 0A 73 02
-B3 0E 6F 01 33 8E 4E 01 E3 9F E6 F6 23 A0 C5 01
-91 05 26 96 E3 15 B5 EA B2 50 22 54 92 54 02 59
-F2 49 62 4A D2 4A 42 4B B2 4B 22 4C 92 4C 45 61
-82 80 82 80 5D 71 86 C6 A2 C4 A6 C2 CA C0 4E DE
-52 DC 56 DA 5A D8 5E D6 62 D4 66 D2 6A D0 6E CE
-2E C4 36 C6 63 0F 05 1A 13 14 15 00 AA 8A B2 89
-33 09 86 00 93 14 25 00 01 4B 81 4B A2 47 13 1F
-2B 00 26 86 33 85 E7 01 81 45 EF 30 70 2C 32 46
-2A 8F 81 4F 33 07 39 41 93 00 E7 FF 93 D2 10 00
-13 83 12 00 93 73 73 00 B2 85 CE 86 81 47 63 86
-03 0A 05 48 63 88 03 09 89 48 63 8C 13 07 0D 4A
-63 80 43 07 11 4C 63 84 83 05 95 4C 63 88 93 03
-19 4D 63 8C A3 01 83 9D 09 00 03 1E 06 00 93 86
-29 00 B3 05 86 00 B3 87 CD 03 83 9E 06 00 03 95
-05 00 89 06 A2 95 33 87 AE 02 BA 97 83 90 06 00
-83 92 05 00 89 06 A2 95 33 83 50 02 9A 97 83 93
-06 00 03 98 05 00 89 06 A2 95 B3 88 03 03 C6 97
-03 9A 06 00 03 9C 05 00 89 06 A2 95 B3 0C 8A 03
-E6 97 03 9D 06 00 83 9D 05 00 89 06 A2 95 33 0E
-BD 03 F2 97 83 9E 06 00 03 95 05 00 89 06 A2 95
-33 87 AE 02 BA 97 63 03 D9 0A 03 93 06 00 83 93
-05 00 B3 80 85 00 B3 82 80 00 33 07 73 02 03 9E
-00 00 03 9D 26 00 33 88 82 00 83 9D 02 00 03 9A
-46 00 B3 08 88 00 83 1C 08 00 83 90 66 00 B3 8E
-88 00 33 0D CD 03 03 93 86 00 03 9C 08 00 83 92
-A6 00 83 93 0E 00 33 85 8E 00 03 98 C6 00 B3 05
-85 00 83 1E 05 00 BA 97 33 0A BA 03 03 95 E6 00
-03 9E 05 00 B3 8D A7 01 C1 06 A2 95 B3 80 90 03
-B3 88 4D 01 33 07 83 03 B3 8C 18 00 33 83 72 02
-33 8C EC 00 B3 02 D8 03 B3 03 6C 00 33 08 C5 03
-33 8D 53 00 B3 07 0D 01 E3 11 D9 F6 23 20 FF 00
-93 86 1F 00 11 0F 09 06 63 84 DA 00 B6 8F 59 B5
-13 8F 1B 00 A2 99 56 9B 22 99 63 84 FB 01 FA 8B
-B1 BD B6 40 26 44 96 44 06 49 F2 59 62 5A D2 5A
-42 5B B2 5B 22 5C 92 5C 02 5D F2 4D 61 61 82 80
-63 04 05 1C 79 71 4E CE 93 19 15 00 22 D4 26 D2
-4A D0 52 CC 56 CA 5A C8 5E C6 62 C4 06 D6 2A 8B
-2E 84 B6 84 B2 8A 33 0A 36 01 13 19 25 00 81 4B
-01 4C 13 98 2B 00 33 05 04 01 4A 86 81 45 EF 30
-30 0D AA 83 A6 88 01 43 B3 07 5A 41 93 80 E7 FF
-93 D2 10 00 93 85 12 00 13 F6 35 00 46 85 D6 86
-81 4E 59 C2 05 47 63 0C E6 04 09 4E 63 06 C6 03
-83 9E 0A 00 03 9F 08 00 93 86 2A 00 33 85 38 01
-B3 8F EE 03 13 D8 2F 40 93 D7 5F 40 93 70 F8 00
-93 F2 F7 07 B3 8E 50 02 83 95 06 00 03 16 05 00
-89 06 4E 95 33 8E C5 02 13 57 2E 40 13 5F 5E 40
-93 7F F7 00 13 78 FF 07 B3 87 0F 03 BE 9E 83 90
-06 00 83 12 05 00 89 06 4E 95 B3 85 50 02 13 D6
-25 40 13 DE 55 40 13 77 F6 00 13 7F FE 07 B3 0F
-E7 03 FE 9E 63 03 DA 0A 33 08 35 01 83 90 06 00
-83 12 05 00 B3 07 38 01 03 9E 26 00 03 17 08 00
-83 9F 07 00 33 85 37 01 03 96 46 00 33 8F 50 02
-03 18 05 00 83 95 66 00 A1 06 4E 95 B3 00 EE 02
-93 52 2F 40 13 5E 5F 40 13 F7 F2 00 93 77 FE 07
-33 06 F6 03 13 DF 50 40 93 DF 20 40 93 72 FF 07
-93 F0 FF 00 B3 85 05 03 13 5E 56 40 13 58 26 40
-93 7F F8 00 13 76 FE 07 B3 07 F7 02 13 DF 55 40
-13 D7 25 40 13 78 F7 00 93 75 FF 07 B3 80 50 02
-BE 9E B3 82 CF 02 33 8E 1E 00 B3 0F B8 02 33 06
-5E 00 B3 0E F6 01 E3 11 DA F6 23 A0 D3 01 93 06
-13 00 91 03 89 08 63 04 DB 00 36 83 75 B5 93 03
-1C 00 CE 9A DA 9B 4E 9A 63 04 6C 00 1E 8C 51 B5
-B2 50 22 54 92 54 02 59 F2 49 62 4A D2 4A 42 4B
-B2 4B 22 4C 45 61 82 80 82 80 13 03 F5 FF 85 47
-B2 88 63 FA 67 16 85 05 93 92 05 01 93 D5 02 01
-37 06 04 F0 93 D3 35 00 9D 4E 93 F6 75 00 01 47
-13 06 86 0A A1 4F 11 48 05 4E 13 0F C0 02 93 F7
-33 00 63 8C D6 11 63 68 D8 12 93 83 D6 FF 93 92
-03 01 8A 07 93 D6 02 01 B3 03 F6 00 63 68 DE 10
-83 A6 03 01 A5 47 A1 43 B3 02 F7 00 63 F5 62 12
-41 11 22 C6 35 A0 63 66 88 0C 93 06 D4 FF 93 97
-06 01 13 94 23 00 93 D2 07 01 B3 03 86 00 63 65
-5E 0A 83 A6 03 01 A5 42 A1 43 BA 92 63 F3 62 08
-03 C4 06 00 B3 87 E8 00 23 80 87 00 03 C7 16 00
-A3 80 E7 00 03 C4 26 00 23 81 87 00 03 C7 36 00
-A3 81 E7 00 63 84 03 03 03 C4 46 00 23 82 87 00
-03 C7 56 00 A3 82 E7 00 03 C4 66 00 23 83 87 00
-63 96 F3 01 83 C6 76 00 A3 83 D7 00 85 05 BE 93
-93 97 05 01 93 D5 07 01 23 80 E3 01 16 87 13 F4
-75 00 93 D2 35 00 93 F3 32 00 E3 16 D4 F7 93 96
-23 00 A5 42 B3 07 D6 00 BA 92 94 5B A1 43 E3 E1
-62 F8 63 79 A7 02 32 44 33 06 E5 40 81 45 33 85
-E8 00 41 01 6F 30 C0 61 83 A6 03 00 95 42 91 43
-A9 BF 13 94 23 00 B3 03 86 00 83 A6 03 02 A5 42
-A1 43 A1 B7 32 44 41 01 82 80 93 92 27 00 B3 03
-56 00 83 A6 03 03 A5 47 A1 43 FD BD 83 A6 03 00
-95 47 91 43 D5 BD 93 92 27 00 B3 06 56 00 94 52
-A5 47 A1 43 D5 B5 01 47 33 06 E5 40 81 45 33 85
-E8 00 6F 30 E0 5B E3 69 A7 FE 82 80 1C 41 2A 8E
-01 45 03 C7 07 00 3E 88 61 C3 93 06 C0 02 13 88
-17 00 63 07 D7 24 88 41 13 06 07 FD 93 72 F6 0F
-A5 48 13 03 15 00 63 E4 58 0A 23 A0 65 00 83 C8
-17 00 63 8A 08 12 13 87 27 00 63 85 D8 12 13 86
-08 FD 13 0F E0 02 A5 4F 93 07 C0 02 93 76 F6 0F
-63 84 E8 03 63 E4 DF 0A 83 48 18 00 13 05 17 00
-3A 88 63 81 08 10 63 8C F8 20 13 86 08 FD 2A 87
-93 76 F6 0F E3 90 E8 FF 03 A3 05 01 15 45 93 03
-13 00 23 A8 75 00 03 43 18 00 3A 88 63 0E 03 02
-13 08 C0 02 93 08 17 00 63 01 03 1D 93 0E 50 04
-25 4F 93 0F C0 02 93 07 03 FD 13 76 F3 0D 93 F6
-F7 0F 63 0C D6 0B 63 7F DF 14 83 A2 45 01 46 88
-05 45 13 87 12 00 D8 C9 23 20 0E 01 82 80 93 03
-B0 02 63 0F 77 02 93 0E D0 02 63 0B D7 03 13 0F
-E0 02 63 04 E7 15 83 AF 45 00 23 A0 65 00 05 45
-93 87 1F 00 DC C1 23 20 0E 01 82 80 83 A2 05 01
-3A 88 05 45 13 87 12 00 98 C9 23 20 0E 01 82 80
-23 A0 65 00 03 C6 17 00 63 0E 06 14 13 88 27 00
-63 0A D6 14 94 45 13 07 06 FD 93 72 F7 0F 25 45
-93 88 16 00 63 7C 55 00 13 03 E0 02 63 03 66 10
-23 A4 15 01 05 45 23 20 0E 01 82 80 23 A4 15 01
-83 C8 27 00 63 89 08 00 93 0E C0 02 13 07 18 00
-E3 9F D8 ED 3A 88 11 45 85 B7 C8 49 93 03 15 00
-23 AA 75 00 83 4E 17 00 63 89 0E 0E 13 0F C0 02
-13 88 18 00 63 84 EE 0F 83 AF C5 00 93 87 5E FD
-13 F6 D7 0F 93 86 1F 00 D4 C5 09 C6 05 45 23 20
-0E 01 82 80 83 C2 18 00 63 84 02 0C 13 88 28 00
-63 80 E2 0D 03 A3 85 01 13 87 02 FD 13 75 F7 0F
-93 0E 13 00 A5 43 23 AC D5 01 E3 E9 A3 FC 83 C2
-28 00 63 8A 02 08 13 87 38 00 63 85 E2 09 A5 48
-13 0F C0 02 93 8F 02 FD 13 F6 FF 0F 63 F9 C8 00
-D4 41 3A 88 05 45 93 87 16 00 DC C1 F1 B5 83 42
-18 00 13 03 17 00 3A 88 63 8E 02 04 63 86 E2 07
-1A 87 C9 BF 03 43 17 00 13 88 18 00 46 87 63 0E
-03 02 63 0D F3 03 C2 88 BD BD 23 A0 65 00 03 C3
-17 00 63 05 03 02 93 88 27 00 63 00 D3 02 42 87
-B1 BD 23 A4 15 01 03 C3 27 00 63 09 03 00 93 03
-C0 02 93 08 18 00 E3 14 73 FE 46 88 15 45 AD B5
-01 45 9D B5 3A 88 1D 45 85 B5 46 88 0D 45 A9 BD
-19 45 99 BD 09 45 89 BD 1A 88 1D 45 B1 B5 2A 88
-11 45 99 B5 19 71 A2 DC A6 DA CA D8 D2 D4 D6 D2
-DA D0 DE CE 86 DE CE D6 2E 89 83 C5 05 00 4A C6
-02 D8 02 C8 02 DA 02 DC 02 DE 82 C0 82 C2 82 C4
-82 C6 02 CA 02 CC 02 CE 02 D0 02 D2 02 D4 02 D6
-04 18 2A 8A B2 8B 36 8B BA 8A 3E 84 E3 8C 05 1C
-93 09 C1 00 A6 85 4E 85 15 33 AA 87 93 92 27 00
-98 08 33 03 57 00 B2 46 83 23 03 FC A6 85 03 C6
-06 00 13 88 13 00 23 20 03 FD 4E 85 35 CA FD 39
-AA 88 13 9E 28 00 93 0E 01 05 33 8F CE 01 B2 47
-83 2F 0F FC A6 85 83 C2 07 00 13 87 1F 00 23 20
-EF FC 4E 85 63 86 02 04 D1 39 2A 83 93 13 23 00
-94 08 33 86 76 00 B2 48 03 28 06 FC A6 85 03 CE
-08 00 93 0E 18 00 23 20 D6 FD 4E 85 63 02 0E 02
-75 31 0A 05 8C 08 33 8F A5 00 B2 47 83 2F 0F FC
-83 C2 07 00 13 87 1F 00 23 20 EF FC E3 94 02 F6
-4A C6 4A 9A 83 45 09 00 E3 7C 49 13 93 00 C0 02
-4A 83 B3 C9 75 01 63 80 15 02 23 00 33 01 B2 43
-33 83 53 01 1A C6 63 7C 43 01 83 45 03 00 B3 C9
-75 01 E3 94 15 FE 56 93 1A C6 E3 68 43 FF 83 4B
-09 00 4A C6 93 09 C1 00 63 83 0B 0A A6 85 4E 85
-35 39 AA 86 13 96 26 00 13 08 01 05 B3 08 C8 00
-B2 4E 03 AE 08 FC A6 85 03 CF 0E 00 93 0F 1E 00
-23 A0 F8 FD 4E 85 63 09 0F 06 09 39 AA 87 93 92
-27 00 98 08 33 03 57 00 B2 4B 83 23 03 FC A6 85
-83 C6 0B 00 13 86 13 00 23 20 C3 FC 4E 85 A9 C6
-F5 36 2A 88 93 18 28 00 13 0E 01 05 B3 0E 1E 01
-B2 4F 03 AF 0E FC A6 85 83 C7 0F 00 93 02 1F 00
-23 A0 5E FC 4E 85 8D C3 D1 36 0A 05 8C 08 33 83
-A5 00 32 47 83 23 03 FC 83 4B 07 00 93 86 13 00
-23 20 D3 FC E3 94 0B F6 4A C6 63 72 49 03 93 00
-C0 02 83 49 09 00 33 C6 69 01 E3 87 19 02 23 00
-C9 00 32 48 33 09 58 01 4A C6 E3 64 49 FF 69 7A
-14 08 26 86 13 0E 1A 00 83 AE 06 00 93 53 14 00
-33 C4 8E 00 13 FF FE 0F 93 9F 0E 01 93 78 14 00
-93 D2 0F 01 13 55 1F 00 63 88 08 00 B3 C7 C3 01
-93 95 07 01 93 D3 05 01 33 C3 A3 00 13 77 13 00
-93 5B 2F 00 93 D0 13 00 19 C7 B3 CA C0 01 13 9B
-0A 01 93 50 0B 01 B3 C9 70 01 13 F9 19 00 13 58
-3F 00 93 DF 10 00 63 08 09 00 33 CA CF 01 13 14
-0A 01 93 5F 04 01 B3 C8 0F 01 13 F5 18 00 93 55
-4F 00 13 D7 1F 00 19 C5 B3 47 C7 01 93 93 07 01
-13 D7 03 01 33 C3 E5 00 93 7B 13 00 93 5A 5F 00
-93 59 17 00 63 88 0B 00 33 CB C9 01 93 10 0B 01
-93 D9 00 01 33 C9 59 01 13 78 19 00 13 5A 6F 00
-13 D5 19 00 63 08 08 00 33 44 C5 01 93 1F 04 01
-13 D5 0F 01 B3 48 AA 00 93 F5 18 00 13 5F 7F 00
-13 57 15 00 99 C5 B3 47 C7 01 93 93 07 01 13 D7
-03 01 13 73 17 00 13 5B 17 00 63 08 E3 01 B3 4B
-CB 01 93 9A 0B 01 13 DB 0A 01 93 D0 82 00 B3 C9
-60 01 13 F9 19 00 13 D8 82 00 93 5F 1B 00 93 D2
-92 00 63 08 09 00 33 CA CF 01 13 14 0A 01 93 5F
-04 01 33 C5 F2 01 93 75 15 00 93 58 28 00 93 D3
-1F 00 99 C5 33 CF C3 01 93 17 0F 01 93 D3 07 01
-33 C7 78 00 13 73 17 00 93 5B 38 00 93 D0 13 00
-63 08 03 00 B3 CA C0 01 13 9B 0A 01 93 50 0B 01
-B3 C9 1B 00 13 F9 19 00 93 52 48 00 93 DF 10 00
-63 08 09 00 33 CA CF 01 13 14 0A 01 93 5F 04 01
-33 C5 F2 01 93 75 15 00 93 58 58 00 93 D3 1F 00
-99 C5 33 CF C3 01 93 17 0F 01 93 D3 07 01 33 C7
-78 00 13 73 17 00 93 5B 68 00 93 D0 13 00 63 08
-03 00 B3 CA C0 01 13 9B 0A 01 93 50 0B 01 B3 C9
-1B 00 13 F9 19 00 13 58 78 00 13 D4 10 00 63 08
-09 00 B3 42 C4 01 13 9A 02 01 13 54 0A 01 93 7F
-14 00 13 5F 14 00 63 88 0F 01 33 45 CF 01 93 15
-05 01 13 DF 05 01 93 D8 0E 01 B3 C7 E8 01 93 F3
-F8 0F 13 F7 17 00 93 DE 0E 01 13 D3 13 00 13 5B
-1F 00 19 C7 B3 4B CB 01 93 9A 0B 01 13 DB 0A 01
-B3 40 63 01 93 F9 10 00 13 D9 23 00 13 5A 1B 00
-63 88 09 00 33 48 CA 01 93 12 08 01 13 DA 02 01
-33 44 49 01 93 7F 14 00 13 D5 33 00 93 57 1A 00
-63 88 0F 00 B3 C5 C7 01 13 9F 05 01 93 57 0F 01
-B3 48 F5 00 13 F7 18 00 13 D3 43 00 13 DB 17 00
-19 C7 B3 4B CB 01 93 9A 0B 01 13 DB 0A 01 B3 40
-63 01 93 F9 10 00 13 D9 53 00 13 5A 1B 00 63 88
-09 00 33 48 CA 01 93 12 08 01 13 DA 02 01 33 44
-49 01 93 7F 14 00 13 D5 63 00 93 57 1A 00 63 88
-0F 00 B3 C5 C7 01 13 9F 05 01 93 57 0F 01 B3 48
-F5 00 13 F7 18 00 93 D3 73 00 93 DA 17 00 19 C7
-33 C3 CA 01 93 1B 03 01 93 DA 0B 01 13 FB 1A 00
-13 D9 1A 00 63 08 7B 00 B3 40 C9 01 93 99 00 01
-13 D9 09 01 13 D8 8E 00 B3 42 28 01 13 FA 12 00
-13 D4 8E 00 13 5F 19 00 93 DE 9E 00 63 08 0A 00
-B3 4F CF 01 13 95 0F 01 13 5F 05 01 B3 C5 EE 01
-93 F8 15 00 13 57 24 00 13 53 1F 00 63 88 08 00
-B3 47 C3 01 93 93 07 01 13 D3 03 01 B3 4B 67 00
-93 FA 1B 00 13 5B 34 00 13 59 13 00 63 88 0A 00
-B3 40 C9 01 93 99 00 01 13 D9 09 01 33 48 2B 01
-93 72 18 00 13 5A 44 00 13 55 19 00 63 88 02 00
-B3 4E C5 01 93 9F 0E 01 13 D5 0F 01 33 4F AA 00
-93 75 1F 00 93 58 54 00 93 53 15 00 99 C5 33 C7
-C3 01 93 17 07 01 93 D3 07 01 33 C3 78 00 93 7B
-13 00 93 5A 64 00 93 D9 13 00 63 88 0B 00 33 CB
-C9 01 93 10 0B 01 93 D9 00 01 33 C9 3A 01 13 78
-19 00 1D 80 93 DE 19 00 63 08 08 00 B3 C2 CE 01
-13 9A 02 01 93 5E 0A 01 93 FF 1E 00 93 D8 1E 00
-63 88 8F 00 33 C5 C8 01 13 1F 05 01 93 58 0F 01
-0C 42 93 D9 18 00 33 C7 15 01 93 F3 F5 0F 13 93
-05 01 93 77 17 00 93 5B 03 01 93 DA 13 00 99 C7
-33 CB C9 01 93 10 0B 01 93 D9 00 01 33 C9 3A 01
-13 78 19 00 93 D2 23 00 93 DE 19 00 63 08 08 00
-33 C4 CE 01 13 1A 04 01 93 5E 0A 01 B3 CF D2 01
-13 F5 1F 00 13 DF 33 00 13 D3 1E 00 19 C5 B3 48
-C3 01 13 97 08 01 13 53 07 01 B3 47 6F 00 93 FA
-17 00 13 DB 43 00 13 59 13 00 63 88 0A 00 B3 40
-C9 01 93 99 00 01 13 D9 09 01 33 48 2B 01 93 72
-18 00 13 DA 53 00 93 5F 19 00 63 88 02 00 33 C4
-CF 01 93 1E 04 01 93 DF 0E 01 33 45 FA 01 13 7F
-15 00 93 D8 63 00 93 DA 1F 00 63 08 0F 00 33 C7
-CA 01 13 13 07 01 93 5A 03 01 B3 C7 58 01 13 FB
-17 00 93 D3 73 00 13 D9 1A 00 63 08 0B 00 B3 40
-C9 01 93 99 00 01 13 D9 09 01 13 78 19 00 13 54
-19 00 63 08 78 00 B3 42 C4 01 13 9A 02 01 13 54
-0A 01 93 DE 8B 00 B3 CF 8E 00 13 FF 1F 00 13 D5
-8B 00 13 53 14 00 93 DB 9B 00 63 08 0F 00 B3 48
-C3 01 13 97 08 01 13 53 07 01 B3 CA 6B 00 93 F7
-1A 00 13 5B 25 00 93 59 13 00 99 C7 B3 C3 C9 01
-93 90 03 01 93 D9 00 01 33 49 3B 01 93 72 19 00
-13 58 35 00 93 DE 19 00 63 88 02 00 33 CA CE 01
-13 14 0A 01 93 5E 04 01 B3 4F D8 01 13 FF 1F 00
-93 5B 45 00 13 D3 1E 00 63 08 0F 00 B3 48 C3 01
-13 97 08 01 13 53 07 01 B3 CA 6B 00 93 F7 1A 00
-13 5B 55 00 93 59 13 00 99 C7 B3 C3 C9 01 93 90
-03 01 93 D9 00 01 33 49 3B 01 93 72 19 00 13 58
-65 00 93 DE 19 00 63 88 02 00 33 CA CE 01 13 14
-0A 01 93 5E 04 01 B3 4F D8 01 13 FF 1F 00 1D 81
-13 D7 1E 00 63 08 0F 00 B3 4B C7 01 93 98 0B 01
-13 D7 08 01 13 73 17 00 13 5B 17 00 63 08 A3 00
-B3 4A CB 01 93 97 0A 01 13 DB 07 01 93 D3 05 01
-B3 C0 63 01 93 F9 F3 0F 13 F9 10 00 C1 81 93 D2
-19 00 13 54 1B 00 63 08 09 00 33 48 C4 01 13 1A
-08 01 13 54 0A 01 B3 CE 82 00 93 FF 1E 00 13 DF
-29 00 93 58 14 00 63 88 0F 00 33 C5 C8 01 93 1B
-05 01 93 D8 0B 01 33 47 1F 01 13 73 17 00 93 DA
-39 00 93 D3 18 00 63 08 03 00 B3 C7 C3 01 13 9B
-07 01 93 53 0B 01 B3 C0 7A 00 13 F9 10 00 93 D2
-49 00 13 D4 13 00 63 08 09 00 33 48 C4 01 13 1A
-08 01 13 54 0A 01 B3 CE 82 00 93 FF 1E 00 13 DF
-59 00 93 58 14 00 63 88 0F 00 33 C5 C8 01 93 1B
-05 01 93 D8 0B 01 33 47 1F 01 13 73 17 00 93 DA
-69 00 93 D3 18 00 63 08 03 00 B3 C7 C3 01 13 9B
-07 01 93 53 0B 01 B3 C0 7A 00 13 F9 10 00 93 D9
-79 00 13 DA 13 00 63 08 09 00 B3 42 CA 01 13 98
-02 01 13 5A 08 01 93 7E 1A 00 13 5F 1A 00 63 88
-3E 01 33 44 CF 01 93 1F 04 01 13 DF 0F 01 13 D5
-85 00 B3 4B E5 01 93 F8 1B 00 13 D7 85 00 93 57
-1F 00 A5 81 63 88 08 00 33 C3 C7 01 93 1A 03 01
-93 D7 0A 01 33 CB F5 00 93 73 1B 00 93 50 27 00
-93 D2 17 00 63 88 03 00 33 C9 C2 01 93 19 09 01
-93 D2 09 01 33 C8 50 00 13 7A 18 00 93 5E 37 00
-13 DF 12 00 63 08 0A 00 33 44 CF 01 93 1F 04 01
-13 DF 0F 01 33 C5 EE 01 93 7B 15 00 93 58 47 00
-93 5A 1F 00 63 88 0B 00 B3 C5 CA 01 13 93 05 01
-93 5A 03 01 B3 C7 58 01 13 FB 17 00 93 53 57 00
-93 D9 1A 00 63 08 0B 00 B3 C0 C9 01 13 99 00 01
-93 59 09 01 B3 C2 33 01 13 F8 12 00 13 5A 67 00
-93 DF 19 00 63 08 08 00 B3 CE CF 01 13 94 0E 01
-93 5F 04 01 33 4F FA 01 13 75 1F 00 1D 83 13 D3
-1F 00 19 C5 B3 4B C3 01 93 98 0B 01 13 D3 08 01
-93 75 13 00 13 54 13 00 63 88 E5 00 B3 4A C4 01
-93 97 0A 01 13 D4 07 01 91 06 11 06 E3 96 D4 80
-F6 50 22 85 66 54 D6 54 46 59 B6 59 26 5A 96 5A
-06 5B F6 4B 09 61 82 80 56 99 4A C6 63 63 49 FD
-6F F0 EF FD 33 0A A9 00 63 6A 49 ED 6F F0 2F FD
-63 96 05 F0 6F F0 AF FC 01 11 26 CA 83 14 05 00
-06 CE 22 CC 93 D7 74 40 4A C8 4E C6 93 F0 17 00
-63 8B 00 00 F2 40 62 44 42 49 B2 49 13 F5 F4 07
-D2 44 05 61 82 80 13 D7 34 40 93 72 F7 00 13 93
-42 00 93 F6 74 00 03 D4 85 03 AA 89 2E 89 33 67
-53 00 63 87 06 50 05 45 63 83 A6 28 13 95 04 01
-41 81 A6 8E B3 CF 8E 00 93 F0 FE 0F 93 F8 1F 00
-13 DF 10 00 93 53 14 00 63 8B 08 00 69 77 93 02
-17 00 B3 C7 53 00 13 93 07 01 93 53 03 01 33 48
-7F 00 93 75 18 00 93 D6 20 00 93 D8 13 00 91 C9
-69 76 13 04 16 00 33 CE 88 00 93 1F 0E 01 93 D8
-0F 01 33 CF 16 01 13 77 1F 00 93 D2 30 00 93 D6
-18 00 11 CB 69 73 93 03 13 00 B3 C7 76 00 13 98
-07 01 93 56 08 01 B3 C5 D2 00 13 F4 15 00 13 D6
-40 00 13 D7 16 00 11 C8 69 7E 93 0F 1E 00 B3 48
-F7 01 13 9F 08 01 13 57 0F 01 B3 42 C7 00 13 F3
-12 00 93 D3 50 00 13 54 17 00 63 0B 03 00 69 78
-93 06 18 00 B3 47 D4 00 93 95 07 01 13 D4 05 01
-33 46 74 00 13 7E 16 00 93 DF 60 00 13 53 14 00
-63 0B 0E 00 E9 78 13 8F 18 00 33 47 E3 01 93 12
-07 01 13 D3 02 01 B3 43 F3 01 13 F8 13 00 93 D0
-70 00 13 5E 13 00 63 0B 08 00 E9 76 93 85 16 00
-B3 47 BE 00 13 94 07 01 13 5E 04 01 13 76 1E 00
-93 52 1E 00 63 0B 16 00 E9 7F 93 88 1F 00 33 CF
-12 01 13 17 0F 01 93 52 07 01 21 81 33 43 55 00
-93 73 F5 0F 13 78 13 00 93 D0 13 00 13 DE 12 00
-63 0B 08 00 E9 76 93 85 16 00 B3 47 BE 00 13 94
-07 01 13 5E 04 01 33 46 1E 00 93 7F 16 00 93 D8
-23 00 13 53 1E 00 63 8B 0F 00 69 7F 13 07 1F 00
-B3 42 E3 00 13 95 02 01 13 53 05 01 33 C8 68 00
-93 70 18 00 93 D5 33 00 93 5F 13 00 63 8B 00 00
-E9 76 13 84 16 00 B3 C7 8F 00 13 9E 07 01 93 5F
-0E 01 33 C6 F5 01 93 78 16 00 13 DF 43 00 13 D8
-1F 00 63 8B 08 00 69 77 93 02 17 00 33 45 58 00
-13 13 05 01 13 58 03 01 B3 40 0F 01 93 F5 10 00
-13 D4 53 00 93 58 18 00 91 C9 E9 76 13 8E 16 00
-B3 C7 C8 01 93 9F 07 01 93 D8 0F 01 33 46 14 01
-13 7F 16 00 13 D7 63 00 93 D0 18 00 63 0B 0F 00
-E9 72 13 85 12 00 33 C3 A0 00 13 18 03 01 93 50
-08 01 B3 45 17 00 13 F4 15 00 93 D3 73 00 93 D8
-10 00 11 C8 E9 76 13 8E 16 00 B3 C7 C8 01 93 9F
-07 01 93 D8 0F 01 33 C6 13 01 13 7F 16 00 13 D8
-18 00 63 0B 0F 00 69 77 93 02 17 00 33 45 58 00
-13 13 05 01 13 58 03 01 13 F5 FE 07 93 F4 04 F0
-F2 40 62 44 B3 6E 95 00 23 1C 09 03 13 E9 0E 08
-23 90 29 01 D2 44 42 49 B2 49 05 61 82 80 D0 55
-94 59 03 25 89 02 CC 59 EF B0 3F F5 33 46 A4 00
-93 78 F5 0F 93 1E 05 01 13 7E 16 00 13 DF 0E 01
-93 DF 18 00 13 53 14 00 63 0B 0E 00 E9 77 93 80
-17 00 33 47 13 00 93 12 07 01 13 D3 02 01 B3 46
-F3 01 93 F3 16 00 13 D8 28 00 13 5E 13 00 63 8B
-03 00 E9 75 13 84 15 00 33 45 8E 00 13 16 05 01
-13 5E 06 01 B3 4E 0E 01 93 FF 1E 00 93 D7 38 00
-93 53 1E 00 63 8B 0F 00 E9 70 13 87 10 00 B3 C2
-E3 00 13 93 02 01 93 53 03 01 B3 C6 F3 00 13 F8
-16 00 93 D5 48 00 93 DE 13 00 63 0B 08 00 69 74
-13 06 14 00 33 C5 CE 00 13 1E 05 01 93 5E 0E 01
-B3 CF BE 00 93 F7 1F 00 93 D0 58 00 13 D8 1E 00
-91 CB 69 77 93 02 17 00 33 43 58 00 93 13 03 01
-13 D8 03 01 B3 46 18 00 93 F5 16 00 13 D4 68 00
-93 5F 18 00 91 C9 69 76 13 0E 16 00 33 C5 CF 01
-93 1E 05 01 93 DF 0E 01 B3 C7 8F 00 93 F0 17 00
-93 D8 78 00 13 D8 1F 00 63 8B 00 00 69 77 93 02
-17 00 33 43 58 00 93 13 03 01 13 D8 03 01 93 76
-18 00 13 55 18 00 63 8B 16 01 E9 75 13 84 15 00
-33 46 85 00 13 1E 06 01 13 55 0E 01 93 5E 8F 00
-B3 4F D5 01 93 F0 1F 00 93 58 8F 00 93 53 15 00
-13 5F 9F 00 63 8B 00 00 E9 77 13 87 17 00 B3 C2
-E3 00 13 93 02 01 93 53 03 01 33 C8 E3 01 93 75
-18 00 93 D6 28 00 93 DE 13 00 91 C9 69 74 13 06
-14 00 33 CE CE 00 13 15 0E 01 93 5E 05 01 B3 CF
-DE 00 93 F0 1F 00 13 DF 38 00 93 D3 1E 00 63 8B
-00 00 E9 77 13 87 17 00 B3 C2 E3 00 13 93 02 01
-93 53 03 01 33 C8 E3 01 93 75 18 00 13 D4 48 00
-93 DE 13 00 91 C9 E9 76 13 86 16 00 33 CE CE 00
-13 15 0E 01 93 5E 05 01 B3 CF 8E 00 93 F0 1F 00
-13 DF 58 00 93 D3 1E 00 63 8B 00 00 E9 77 13 87
-17 00 B3 C2 E3 00 13 93 02 01 93 53 03 01 33 C8
-E3 01 93 75 18 00 13 D4 68 00 93 DE 13 00 91 C9
-E9 76 13 86 16 00 33 CE CE 00 13 15 0E 01 93 5E
-05 01 B3 CF 8E 00 93 F0 1F 00 93 D8 78 00 13 D3
-1E 00 63 8B 00 00 69 7F 93 07 1F 00 33 47 F3 00
-93 12 07 01 13 D3 02 01 93 73 13 00 13 55 13 00
-63 8B 13 01 69 78 93 05 18 00 33 44 B5 00 93 16
-04 01 13 D5 06 01 03 56 C9 03 13 1E 05 01 03 54
-89 03 93 5E 0E 41 E3 17 06 B0 23 1E A9 02 19 B6
-93 03 20 02 3A 88 63 54 77 00 13 08 20 02 83 25
-49 01 83 16 29 00 03 16 09 00 03 25 89 01 A2 87
-13 77 F8 0F EF F0 0F 85 83 55 E9 03 13 14 05 01
-93 5E 04 41 03 54 89 03 E3 96 05 AC 23 1F A9 02
-D1 B4 01 11 4A C8 03 19 05 00 06 CE 22 CC 93 57
-79 40 26 CA 52 C4 4E C6 93 F0 17 00 2E 8A B2 84
-13 74 F9 07 63 9E 00 28 13 57 39 40 93 72 F7 00
-93 96 42 00 13 73 79 00 03 54 86 03 AA 89 33 E7
-D2 00 63 00 03 7C 05 45 63 0D A3 52 13 15 09 01
-41 81 CA 8E B3 4F D4 01 93 F0 FE 0F 93 F8 1F 00
-13 DF 10 00 93 53 14 00 63 8B 08 00 69 77 93 02
-17 00 B3 C7 53 00 13 93 07 01 93 53 03 01 33 C8
-E3 01 93 75 18 00 93 D6 20 00 93 D8 13 00 91 C9
-69 76 13 04 16 00 33 CE 88 00 93 1F 0E 01 93 D8
-0F 01 33 CF D8 00 13 77 1F 00 93 D2 30 00 93 D6
-18 00 11 CB 69 73 93 03 13 00 B3 C7 76 00 13 98
-07 01 93 56 08 01 B3 C5 56 00 13 F4 15 00 13 D6
-40 00 13 D7 16 00 11 C8 69 7E 93 0F 1E 00 B3 48
-F7 01 13 9F 08 01 13 57 0F 01 B3 42 C7 00 13 F3
-12 00 93 D3 50 00 13 54 17 00 63 0B 03 00 69 78
-93 06 18 00 B3 47 D4 00 93 95 07 01 13 D4 05 01
-33 46 74 00 13 7E 16 00 93 DF 60 00 13 53 14 00
-63 0B 0E 00 E9 78 13 8F 18 00 33 47 E3 01 93 12
-07 01 13 D3 02 01 B3 43 F3 01 13 F8 13 00 93 D0
-70 00 13 5E 13 00 63 0B 08 00 E9 76 93 85 16 00
-B3 47 BE 00 13 94 07 01 13 5E 04 01 13 76 1E 00
-93 52 1E 00 63 0B 16 00 E9 7F 93 88 1F 00 33 CF
-12 01 13 17 0F 01 93 52 07 01 21 81 33 43 55 00
-93 73 F5 0F 13 78 13 00 93 D0 13 00 13 DE 12 00
-63 0B 08 00 E9 76 93 85 16 00 B3 47 BE 00 13 94
-07 01 13 5E 04 01 33 46 1E 00 93 7F 16 00 93 D8
-23 00 13 53 1E 00 63 8B 0F 00 69 7F 13 07 1F 00
-B3 42 E3 00 13 95 02 01 13 53 05 01 33 48 13 01
-93 70 18 00 93 D5 33 00 93 5F 13 00 63 8B 00 00
-E9 76 13 84 16 00 B3 C7 8F 00 13 9E 07 01 93 5F
-0E 01 33 C6 BF 00 93 78 16 00 13 DF 43 00 13 D8
-1F 00 63 8B 08 00 69 77 93 02 17 00 33 45 58 00
-13 13 05 01 13 58 03 01 B3 40 E8 01 93 F5 10 00
-13 D4 53 00 93 58 18 00 91 C9 E9 76 13 8E 16 00
-B3 C7 C8 01 93 9F 07 01 93 D8 0F 01 33 C6 88 00
-13 7F 16 00 13 D7 63 00 93 D0 18 00 63 0B 0F 00
-E9 72 13 85 12 00 33 C3 A0 00 13 18 03 01 93 50
-08 01 B3 C5 E0 00 13 F4 15 00 93 D3 73 00 93 D8
-10 00 11 C8 E9 76 13 8E 16 00 B3 C7 C8 01 93 9F
-07 01 93 D8 0F 01 33 C6 13 01 13 7F 16 00 13 D8
-18 00 63 0B 0F 00 69 77 93 02 17 00 33 45 58 00
-13 13 05 01 13 58 03 01 13 F4 FE 07 13 79 09 F0
-B3 6E 24 01 23 9C 04 03 93 E0 0E 08 23 90 19 00
-03 19 0A 00 93 59 79 40 93 F5 19 00 13 78 F9 07
-63 9F 05 28 93 53 39 40 13 FE F3 00 93 16 4E 00
-93 77 79 00 83 D9 84 03 33 67 DE 00 63 8A 07 54
-85 42 63 86 57 58 13 15 09 01 41 81 4A 88 B3 45
-38 01 93 70 F8 0F 93 FE 15 00 13 D7 10 00 93 D8
-19 00 63 8B 0E 00 E9 73 13 8E 13 00 B3 CF C8 01
-93 97 0F 01 93 D8 07 01 33 4F 17 01 93 72 1F 00
-93 D6 20 00 93 DE 18 00 63 8B 02 00 69 76 93 09
-16 00 33 C3 3E 01 93 15 03 01 93 DE 05 01 33 C7
-DE 00 93 73 17 00 13 DE 30 00 93 D2 1E 00 63 8B
-03 00 E9 7F 93 88 1F 00 B3 C7 12 01 13 9F 07 01
-93 52 0F 01 B3 C6 C2 01 13 F6 16 00 93 D9 40 00
-93 D3 12 00 11 CA 69 73 93 05 13 00 B3 CE B3 00
-13 97 0E 01 93 53 07 01 33 CE 33 01 93 7F 1E 00
-93 D8 50 00 13 D6 13 00 63 8B 0F 00 69 7F 93 02
-1F 00 B3 47 56 00 93 96 07 01 13 D6 06 01 B3 49
-16 01 13 F3 19 00 93 DE 60 00 93 5F 16 00 63 0B
-03 00 E9 75 13 87 15 00 B3 C3 EF 00 13 9E 03 01
-93 5F 0E 01 B3 C8 FE 01 13 FF 18 00 93 D0 70 00
-93 D9 1F 00 63 0B 0F 00 E9 72 93 86 12 00 B3 C7
-D9 00 13 96 07 01 93 59 06 01 13 F3 19 00 13 DE
-19 00 63 0B 13 00 E9 7E 93 85 1E 00 33 47 BE 00
-93 13 07 01 13 DE 03 01 21 81 B3 4F C5 01 93 78
-F5 0F 13 FF 1F 00 93 D0 18 00 93 59 1E 00 63 0B
-0F 00 E9 72 93 86 12 00 B3 C7 D9 00 13 96 07 01
-93 59 06 01 33 C3 19 00 93 7E 13 00 13 D7 28 00
-93 DF 19 00 63 8B 0E 00 E9 75 93 83 15 00 33 CE
-7F 00 13 15 0E 01 93 5F 05 01 33 CF EF 00 93 70
-1F 00 93 D2 38 00 13 D3 1F 00 63 8B 00 00 E9 76
-13 86 16 00 B3 47 C3 00 93 99 07 01 13 D3 09 01
-B3 4E 53 00 13 F7 1E 00 93 D3 48 00 13 5F 13 00
-11 CB E9 75 13 8E 15 00 33 45 CF 01 93 1F 05 01
-13 DF 0F 01 B3 C0 E3 01 93 F2 10 00 93 D6 58 00
-93 5E 1F 00 63 8B 02 00 69 76 93 09 16 00 B3 C7
-3E 01 13 93 07 01 93 5E 03 01 33 C7 D6 01 93 73
-17 00 13 DE 68 00 93 D0 1E 00 63 8B 03 00 E9 75
-13 85 15 00 B3 CF A0 00 13 9F 0F 01 93 50 0F 01
-B3 42 1E 00 13 F6 12 00 93 D8 78 00 93 DE 10 00
-11 CA E9 76 93 89 16 00 B3 C7 3E 01 13 93 07 01
-93 5E 03 01 33 C7 D8 01 93 73 17 00 13 DF 1E 00
-63 8B 03 00 69 7E 93 05 1E 00 33 45 BF 00 93 1F
-05 01 13 DF 0F 01 13 78 F8 07 13 79 09 F0 B3 60
-28 01 23 9C E4 03 93 E4 00 08 23 10 9A 00 F2 40
-33 05 04 41 62 44 D2 44 42 49 B2 49 22 4A 05 61
-82 80 14 5A CC 58 50 56 88 54 EF B0 0F F1 33 46
-A4 00 93 78 F5 0F 93 1E 05 01 13 7E 16 00 13 DF
-0E 01 93 DF 18 00 13 53 14 00 63 0B 0E 00 E9 77
-93 80 17 00 33 47 13 00 93 12 07 01 13 D3 02 01
-B3 46 F3 01 93 F3 16 00 13 D8 28 00 13 5E 13 00
-63 8B 03 00 E9 75 13 84 15 00 33 45 8E 00 13 16
-05 01 13 5E 06 01 B3 4E 0E 01 93 FF 1E 00 93 D7
-38 00 93 53 1E 00 63 8B 0F 00 E9 70 13 87 10 00
-B3 C2 E3 00 13 93 02 01 93 53 03 01 B3 C6 F3 00
-13 F8 16 00 93 D5 48 00 93 DE 13 00 63 0B 08 00
-69 74 13 06 14 00 33 C5 CE 00 13 1E 05 01 93 5E
-0E 01 B3 CF BE 00 93 F7 1F 00 93 D0 58 00 13 D8
-1E 00 91 CB 69 77 93 02 17 00 33 43 58 00 93 13
-03 01 13 D8 03 01 B3 46 18 00 93 F5 16 00 13 D4
-68 00 93 5F 18 00 91 C9 69 76 13 0E 16 00 33 C5
-CF 01 93 1E 05 01 93 DF 0E 01 B3 C7 8F 00 93 F0
-17 00 93 D8 78 00 13 D8 1F 00 63 8B 00 00 69 77
+06 01 93 D0 02 01 B3 C7 E0 01 93 F3 17 00 13 53
+56 00 93 D8 10 00 63 8B 03 00 69 77 93 05 17 00
+33 C8 B8 00 13 15 08 01 93 58 05 01 33 CE 68 00
+93 7E 1E 00 13 5F 66 00 93 D0 18 00 63 8B 0E 00
+E9 7F 13 84 1F 00 B3 C6 80 00 93 92 06 01 93 D0
+02 01 B3 C7 E0 01 93 F3 17 00 1D 82 13 D5 10 00
+63 8B 03 00 69 73 13 07 13 00 B3 45 E5 00 13 98
+05 01 13 55 08 01 93 78 15 00 05 81 63 8B C8 00
+69 7E 93 0E 1E 00 33 4F D5 01 93 1F 0F 01 13 D5
+0F 01 B2 40 22 44 41 01 82 80 79 71 4A D2 22 D6
+26 D4 4E D0 52 CE 56 CC 5A CA 5E C8 62 C6 66 C4
+6A C2 2A 87 36 89 11 E2 05 46 FD 15 13 F4 C5 FF
+13 0A 44 00 81 47 63 02 07 34 93 82 17 00 B3 86
+52 02 13 88 27 00 13 8E 37 00 13 8F 47 00 93 8E
+57 00 93 88 67 00 13 83 77 00 3E 85 A1 07 93 93
+36 00 63 F3 E3 06 B3 09 08 03 16 85 13 9B 39 00
+63 7C EB 04 B3 0B CE 03 42 85 13 9C 3B 00 63 75
+EC 04 B3 0C EF 03 72 85 13 9D 3C 00 63 7E ED 02
+B3 8F DE 03 7A 85 93 95 3F 00 63 F7 E5 02 33 84
+18 03 76 85 93 1A 34 00 63 F0 EA 02 B3 04 63 02
+46 85 93 92 34 00 63 F9 E2 00 33 88 F7 02 1A 85
+13 1E 38 00 E3 6B EE F6 33 07 A5 02 AA 8A 93 14
+17 00 33 04 9A 00 63 06 05 26 C1 6E 81 46 81 43
+85 4F 33 0F 8A 40 FD 1E 93 09 F5 FF 33 06 F6 03
+93 98 0F 01 93 D7 08 01 13 93 16 00 33 0B 83 00
+13 0C F5 FF 93 7C 3C 00 B3 0B 6F 01 05 4E 13 88
+1F 00 13 5D F6 41 93 52 0D 01 33 07 56 00 33 76
+D7 01 33 06 56 40 B3 88 C7 00 13 93 08 01 13 5C
+03 01 E2 97 23 10 8B 01 13 FD F7 0F 23 90 AB 01
+93 05 2B 00 63 76 AE 1E 63 83 0C 0E 63 8C CC 09
+89 4B 63 86 7C 05 B3 0C 06 03 42 08 93 52 08 01
+B3 08 BF 00 93 05 4B 00 13 88 2F 00 09 4E 13 D7
+FC 41 13 53 07 01 33 86 6C 00 33 7C D6 01 33 06
+6C 40 B3 87 C2 00 13 9D 07 01 93 5B 0D 01 B3 8C
+5B 00 23 11 7B 01 13 FB FC 0F 23 90 68 01 B3 02
+06 03 93 18 08 01 13 D3 08 01 33 0C BF 00 05 0E
+05 08 89 05 13 D7 F2 41 93 57 07 01 33 86 F2 00
+33 7D D6 01 33 06 FD 40 B3 0B C3 00 93 9C 0B 01
+13 DB 0C 01 B3 02 6B 00 23 9F 65 FF 93 F8 F2 0F
+23 10 1C 01 33 03 06 03 13 1C 08 01 93 57 0C 01
+33 0D BF 00 89 05 05 0E 05 08 13 57 F3 41 93 5B
+07 01 33 06 73 01 B3 7C D6 01 33 86 7C 41 33 8B
+C7 00 93 12 0B 01 93 D8 02 01 33 83 F8 00 23 9F
+15 FF 13 7C F3 0F 23 10 8D 01 63 73 AE 10 33 06
+06 03 93 07 28 00 13 0B 38 00 13 1D 08 01 93 52
+0D 01 93 98 07 01 13 1D 0B 01 13 D3 08 01 93 58
+0D 01 13 07 18 00 13 5D F6 41 13 5D 0D 01 6A 96
+33 76 D6 01 33 0D A6 41 93 1B 07 01 33 07 ED 02
+33 86 A2 01 13 1D 06 01 13 56 0D 01 B2 92 B3 0C
+BF 00 23 90 C5 00 13 FD F2 0F 23 90 AC 01 66 8C
+66 86 E6 82 93 5C F7 41 13 DD 0C 01 6A 97 B3 7C
+D7 01 33 8D AC 41 B3 07 FD 02 93 DB 0B 01 33 87
+AB 01 93 1C 07 01 13 DD 0C 01 EA 9B 23 91 A5 01
+13 F7 FB 0F 23 11 EC 00 A1 05 13 DC F7 41 93 5C
+0C 01 E6 97 33 FD D7 01 B3 0B 9D 41 33 8B 6B 03
+33 07 73 01 13 1C 07 01 93 5C 0C 01 66 93 23 9E
+95 FF 93 77 F3 0F 23 12 F6 00 11 0E 11 08 13 56
+FB 41 13 5D 06 01 B3 0B AB 01 33 FB DB 01 33 06
+AB 41 33 87 C8 00 13 1C 07 01 93 5C 0C 01 E6 98
+23 9F 95 FF 13 F3 F8 0F 23 93 62 00 E3 61 AE F0
+85 0F 01 4E 11 C1 4E 8E 85 03 F2 9F AA 96 E3 E7
+A3 DA A2 94 93 86 F4 FF 23 24 89 00 93 F3 C6 FF
+32 54 13 8F 43 00 23 22 49 01 23 20 59 01 23 26
+E9 01 A2 54 12 59 82 59 72 4A E2 4A 52 4B C2 4B
+32 4C A2 4C 12 4D 45 61 82 80 19 04 FD 5A 7D 55
+89 44 A1 BB 2A 88 63 06 05 3E B3 08 A0 40 13 17
+25 00 2E 97 13 93 28 00 81 45 01 45 81 4F 81 4E
+8E 08 B3 06 E3 00 B3 07 D7 40 93 82 C7 FF 93 D3
+22 00 13 8E 13 00 93 77 7E 00 36 8E 63 80 07 22
+05 4F 63 89 E7 0F 89 42 63 84 57 0C 8D 43 63 81
+77 0A 11 4F 63 8C E7 07 95 42 63 87 57 04 99 43
+63 84 77 02 7E 8E 83 AF 06 00 42 05 13 5F 05 01
+FE 9E 63 57 D6 37 93 0E AF 00 13 9E 0E 01 13 55
+0E 41 81 4E 13 8E 46 00 7E 8F 83 2F 0E 00 42 05
+93 52 05 01 FE 9E 63 5C D6 33 93 8E A2 00 13 95
+0E 01 41 85 81 4E 11 0E FE 82 83 2F 0E 00 93 17
+05 01 93 D3 07 01 FE 9E 63 52 D6 31 93 8E A3 00
+93 97 0E 01 13 D5 07 41 81 4E 11 0E FE 83 83 2F
+0E 00 13 1F 05 01 13 55 0F 01 FE 9E 63 57 D6 2D
+93 0E A5 00 13 9F 0E 01 13 55 0F 41 81 4E 11 0E
+FE 82 83 2F 0E 00 42 05 93 53 05 01 FE 9E 63 5D
+D6 29 93 8E A3 00 13 95 0E 01 41 85 81 4E 11 0E
+FE 83 83 2F 0E 00 93 17 05 01 13 DF 07 01 FE 9E
+63 53 D6 27 93 0E AF 00 93 97 0E 01 13 D5 07 41
+81 4E 11 0E 7E 8F 83 2F 0E 00 93 12 05 01 13 D5
+02 01 FE 9E 63 58 D6 23 93 0E A5 00 93 92 0E 01
+13 D5 02 41 81 4E 11 0E 63 12 C7 11 85 05 33 87
+16 41 E3 10 B8 EC 82 80 B3 AF 7F 00 B3 07 FF 01
+83 2F 4E 00 93 92 07 01 13 DF 02 41 93 17 0F 01
+33 85 FE 01 11 0E 93 D2 07 01 63 53 A6 10 83 23
+4E 00 A9 02 13 95 02 01 93 57 05 41 01 45 13 9F
+07 01 B3 0E 75 00 93 57 0F 01 63 55 D6 11 83 2F
+8E 00 A9 07 93 9E 07 01 13 DF 0E 41 81 4E 93 12
+0F 01 FE 9E 13 D5 02 01 63 57 D6 11 83 23 CE 00
+29 05 93 1E 05 01 93 D2 0E 41 81 4E 13 9F 02 01
+B3 82 7E 00 93 57 0F 01 63 59 56 10 A9 07 83 2F
+0E 01 93 92 07 01 13 DF 02 41 81 42 13 15 0F 01
+B3 8E F2 01 93 57 05 01 63 5B D6 11 83 23 4E 01
+A9 07 93 9E 07 01 13 D5 0E 41 81 4E 13 1F 05 01
+9E 9E 93 52 0F 01 63 5D D6 11 83 2F 8E 01 A9 02
+93 9E 02 01 13 DF 0E 41 81 4E 13 15 0F 01 FE 9E
+93 57 05 01 63 5F D6 11 13 85 A7 00 93 17 05 01
+13 D5 07 41 81 4E 71 0E E3 02 C7 F1 83 23 0E 00
+42 05 13 5F 05 01 9E 9E E3 50 D6 F1 93 0E AF 00
+83 2F 4E 00 13 95 0E 01 13 5F 05 41 81 4E 93 17
+0F 01 33 85 FE 01 11 0E 93 D2 07 01 E3 41 A6 F0
+B3 A3 F3 01 33 8F 72 00 83 23 4E 00 93 1E 0F 01
+93 D7 0E 41 13 9F 07 01 B3 0E 75 00 93 57 0F 01
+E3 4F D6 EF B3 AF 7F 00 B3 82 F7 01 83 2F 8E 00
+13 95 02 01 13 5F 05 41 93 12 0F 01 FE 9E 13 D5
+02 01 E3 4D D6 EF B3 A3 F3 01 33 0F 75 00 83 23
+CE 00 93 17 0F 01 93 D2 07 41 13 9F 02 01 B3 82
+7E 00 93 57 0F 01 E3 4B 56 EE B3 AF 7F 00 33 85
+F7 01 83 2F 0E 01 93 1E 05 01 13 DF 0E 41 13 15
+0F 01 B3 8E F2 01 93 57 05 01 E3 49 D6 EF B3 A3
+F3 01 33 8F 77 00 83 23 4E 01 93 12 0F 01 13 D5
+02 41 13 1F 05 01 9E 9E 93 52 0F 01 E3 47 D6 EF
+B3 AF 7F 00 33 85 F2 01 83 2F 8E 01 93 17 05 01
+13 DF 07 41 13 15 0F 01 FE 9E 93 57 05 01 E3 45
+D6 EF B3 A3 F3 01 33 8F 77 00 93 12 0F 01 13 D5
+02 41 D5 B5 B3 23 FF 01 B3 07 75 00 13 9F 07 01
+13 55 0F 41 C9 BB B3 A2 F3 01 33 05 5F 00 93 13
+05 01 13 D5 03 41 71 BB B3 A7 F2 01 33 8F F3 00
+93 12 0F 01 13 D5 02 41 9D B3 B3 A2 F3 01 B3 07
+55 00 93 93 07 01 13 D5 03 41 15 BB 33 AF F2 01
+33 85 E3 01 93 12 05 01 13 D5 02 41 FD B9 B3 27
+FF 01 B3 83 F2 00 13 9F 03 01 13 55 0F 41 E1 B1
+B3 27 FE 01 B3 02 FF 00 93 93 02 01 13 D5 03 41
+51 B9 01 45 82 80 63 01 05 16 41 11 B3 03 A0 40
+13 18 15 00 22 C6 26 C4 13 94 13 00 4A C2 4E C0
+32 98 81 4F 81 42 8A 03 B3 08 04 01 33 06 18 41
+13 03 E6 FF 93 54 13 00 13 87 14 00 93 97 2F 00
+13 79 77 00 AE 97 46 87 63 0F 09 08 85 49 63 02
+39 09 09 4E 63 07 C9 07 8D 4E 63 0C D9 05 11 4F
+63 01 E9 05 15 46 63 06 C9 02 19 43 63 0B 69 00
+83 94 08 00 13 87 28 00 91 07 33 89 D4 02 23 AE
+27 FF 83 19 07 00 91 07 09 07 33 8E D9 02 23 AE
+C7 FF 83 1E 07 00 91 07 09 07 33 8F DE 02 23 AE
+E7 FF 03 16 07 00 91 07 09 07 33 03 D6 02 23 AE
+67 FE 83 14 07 00 91 07 09 07 33 89 D4 02 23 AE
+27 FF 83 19 07 00 91 07 09 07 33 8E D9 02 23 AE
+C7 FF 83 1E 07 00 91 07 09 07 33 8F DE 02 23 AE
+E7 FF 63 07 E8 06 83 19 07 00 03 19 27 00 83 14
+47 00 03 1F 67 00 83 1E 87 00 03 1E A7 00 03 13
+C7 00 03 16 E7 00 B3 89 D9 02 41 07 93 87 07 02
+33 09 D9 02 23 A0 37 FF B3 84 D4 02 23 A2 27 FF
+33 0F DF 02 23 A4 97 FE B3 8E DE 02 23 A6 E7 FF
+33 0E DE 02 23 A8 D7 FF 33 03 D3 02 23 AA C7 FF
+33 06 D6 02 23 AC 67 FE 23 AE C7 FE E3 1D E8 F8
+85 02 AA 9F 33 88 78 40 E3 18 55 EC 32 44 A2 44
+12 49 82 49 41 01 82 80 82 80 63 00 05 1E B3 02
+A0 40 93 16 06 01 93 17 15 00 93 93 12 00 C1 82
+33 86 F5 00 81 4F 8A 02 B3 85 C3 00 33 07 B6 40
+13 03 E7 FF 13 58 13 00 93 08 18 00 13 FE 78 00
+AE 87 63 08 0E 08 85 4E 63 0C DE 07 09 4F 63 02
+EE 07 0D 47 63 08 EE 04 11 43 63 0E 6E 02 15 48
+63 04 0E 03 99 48 63 0A 1E 01 03 DE 05 00 93 87
+25 00 B3 8E C6 01 23 90 D5 01 03 DF 07 00 89 07
+33 87 E6 01 23 9F E7 FE 03 D3 07 00 89 07 33 88
+66 00 23 9F 07 FF 83 D8 07 00 89 07 33 8E 16 01
+23 9F C7 FF 83 DE 07 00 89 07 33 8F D6 01 23 9F
+E7 FF 03 D7 07 00 89 07 33 83 E6 00 23 9F 67 FE
+03 D8 07 00 89 07 B3 88 06 01 23 9F 17 FF 63 09
+F6 10 41 11 22 C6 03 D4 07 00 03 DF 27 00 83 DE
+47 00 03 DE 67 00 03 D3 87 00 83 D8 A7 00 03 D8
+C7 00 03 D7 E7 00 36 94 36 9F B6 9E 36 9E 36 93
+B6 98 36 98 36 97 23 90 87 00 23 91 E7 01 23 92
+D7 01 23 93 C7 01 23 94 67 00 23 95 17 01 23 96
+07 01 23 97 E7 00 C1 07 E3 17 F6 FA 85 0F 33 86
+55 40 63 04 F5 0B B3 85 C3 00 B3 07 B6 40 13 84
+E7 FF 13 5F 14 00 93 0E 1F 00 13 FE 7E 00 AE 87
+E3 03 0E F8 05 43 63 04 6E 06 89 48 63 0A 1E 05
+0D 48 63 00 0E 05 11 47 63 06 EE 02 15 44 63 0C
+8E 00 19 4F 63 1C EE 07 03 D3 07 00 89 07 B3 88
+66 00 23 9F 17 FF 03 D8 07 00 89 07 33 87 06 01
+23 9F E7 FE 03 D4 07 00 89 07 33 8F 86 00 23 9F
+E7 FF 83 DE 07 00 89 07 33 8E D6 01 23 9F C7 FF
+03 D3 07 00 89 07 B3 88 66 00 23 9F 17 FF 03 D8
+07 00 89 07 33 87 06 01 23 9F E7 FE E3 15 F6 F0
+85 0F 33 86 55 40 E3 10 F5 F7 32 44 41 01 82 80
+85 0F 33 86 55 40 E3 11 F5 E5 82 80 83 DE 05 00
+93 87 25 00 33 8E D6 01 23 90 C5 01 B5 BF 63 08
+05 1A 79 71 26 D2 AA 84 4E CE 93 99 24 00 4A D0
+2E 85 32 89 81 45 4E 86 22 D4 06 D6 36 84 52 CC
+56 CA 5A C8 5E C6 62 C4 66 C2 EF 30 30 49 93 96
+14 00 AA 85 A2 96 4E 95 01 46 33 83 86 40 93 00
+E3 FF 93 D2 10 00 93 83 12 00 93 17 16 00 93 F8
+73 00 CA 97 22 87 01 4E 63 85 08 0A 05 48 63 87
+08 09 09 4A 63 8B 48 07 8D 4A 63 8F 58 05 11 4B
+63 83 68 05 95 4B 63 87 78 03 19 4C 63 8B 88 01
+83 9C 07 00 03 1E 04 00 89 07 13 07 24 00 33 8E
+CC 03 83 9E 07 00 03 1F 07 00 89 07 09 07 B3 8F
+EE 03 7E 9E 83 99 07 00 03 13 07 00 89 07 09 07
+B3 80 69 02 06 9E 83 92 07 00 83 13 07 00 89 07
+09 07 B3 88 72 02 46 9E 03 98 07 00 03 1A 07 00
+89 07 09 07 B3 0A 48 03 56 9E 03 9B 07 00 83 1B
+07 00 89 07 09 07 33 0C 7B 03 62 9E 83 9C 07 00
+83 1E 07 00 09 07 89 07 33 8F DC 03 7A 9E 63 85
+E6 08 83 9F 07 00 83 19 07 00 83 90 27 00 83 1A
+27 00 B3 88 3F 03 03 98 47 00 03 1C 47 00 83 92
+67 00 83 1B 67 00 83 9C 87 00 03 1B 87 00 03 9F
+A7 00 03 1A A7 00 83 9E C7 00 B3 8F 50 03 83 19
+C7 00 03 93 E7 00 83 13 E7 00 46 9E 41 07 C1 07
+B3 00 88 03 B3 0A FE 01 33 8C 72 03 33 88 1A 00
+B3 82 6C 03 B3 0B 88 01 B3 08 4F 03 B3 8C 5B 00
+33 8B 3E 03 33 8F 1C 01 33 0A 73 02 B3 0E 6F 01
+33 8E 4E 01 E3 9F E6 F6 23 A0 C5 01 91 05 26 96
+E3 15 B5 EA B2 50 22 54 92 54 02 59 F2 49 62 4A
+D2 4A 42 4B B2 4B 22 4C 92 4C 45 61 82 80 82 80
+5D 71 86 C6 A2 C4 A6 C2 CA C0 4E DE 52 DC 56 DA
+5A D8 5E D6 62 D4 66 D2 6A D0 6E CE 2E C4 36 C6
+63 0F 05 1A 13 14 15 00 AA 8A B2 89 33 09 86 00
+93 14 25 00 01 4B 81 4B A2 47 13 1F 2B 00 26 86
+33 85 E7 01 81 45 EF 30 70 2C 32 46 2A 8F 81 4F
+33 07 39 41 93 00 E7 FF 93 D2 10 00 13 83 12 00
+93 73 73 00 B2 85 CE 86 81 47 63 86 03 0A 05 48
+63 88 03 09 89 48 63 8C 13 07 0D 4A 63 80 43 07
+11 4C 63 84 83 05 95 4C 63 88 93 03 19 4D 63 8C
+A3 01 83 9D 09 00 03 1E 06 00 93 86 29 00 B3 05
+86 00 B3 87 CD 03 83 9E 06 00 03 95 05 00 89 06
+A2 95 33 87 AE 02 BA 97 83 90 06 00 83 92 05 00
+89 06 A2 95 33 83 50 02 9A 97 83 93 06 00 03 98
+05 00 89 06 A2 95 B3 88 03 03 C6 97 03 9A 06 00
+03 9C 05 00 89 06 A2 95 B3 0C 8A 03 E6 97 03 9D
+06 00 83 9D 05 00 89 06 A2 95 33 0E BD 03 F2 97
+83 9E 06 00 03 95 05 00 89 06 A2 95 33 87 AE 02
+BA 97 63 03 D9 0A 03 93 06 00 83 93 05 00 B3 80
+85 00 B3 82 80 00 33 07 73 02 03 9E 00 00 03 9D
+26 00 33 88 82 00 83 9D 02 00 03 9A 46 00 B3 08
+88 00 83 1C 08 00 83 90 66 00 B3 8E 88 00 33 0D
+CD 03 03 93 86 00 03 9C 08 00 83 92 A6 00 83 93
+0E 00 33 85 8E 00 03 98 C6 00 B3 05 85 00 83 1E
+05 00 BA 97 33 0A BA 03 03 95 E6 00 03 9E 05 00
+B3 8D A7 01 C1 06 A2 95 B3 80 90 03 B3 88 4D 01
+33 07 83 03 B3 8C 18 00 33 83 72 02 33 8C EC 00
+B3 02 D8 03 B3 03 6C 00 33 08 C5 03 33 8D 53 00
+B3 07 0D 01 E3 11 D9 F6 23 20 FF 00 93 86 1F 00
+11 0F 09 06 63 84 DA 00 B6 8F 59 B5 13 8F 1B 00
+A2 99 56 9B 22 99 63 84 FB 01 FA 8B B1 BD B6 40
+26 44 96 44 06 49 F2 59 62 5A D2 5A 42 5B B2 5B
+22 5C 92 5C 02 5D F2 4D 61 61 82 80 63 04 05 1C
+79 71 4E CE 93 19 15 00 22 D4 26 D2 4A D0 52 CC
+56 CA 5A C8 5E C6 62 C4 06 D6 2A 8B 2E 84 B6 84
+B2 8A 33 0A 36 01 13 19 25 00 81 4B 01 4C 13 98
+2B 00 33 05 04 01 4A 86 81 45 EF 30 30 0D AA 83
+A6 88 01 43 B3 07 5A 41 93 80 E7 FF 93 D2 10 00
+93 85 12 00 13 F6 35 00 46 85 D6 86 81 4E 59 C2
+05 47 63 0C E6 04 09 4E 63 06 C6 03 83 9E 0A 00
+03 9F 08 00 93 86 2A 00 33 85 38 01 B3 8F EE 03
+13 D8 2F 40 93 D7 5F 40 93 70 F8 00 93 F2 F7 07
+B3 8E 50 02 83 95 06 00 03 16 05 00 89 06 4E 95
+33 8E C5 02 13 57 2E 40 13 5F 5E 40 93 7F F7 00
+13 78 FF 07 B3 87 0F 03 BE 9E 83 90 06 00 83 12
+05 00 89 06 4E 95 B3 85 50 02 13 D6 25 40 13 DE
+55 40 13 77 F6 00 13 7F FE 07 B3 0F E7 03 FE 9E
+63 03 DA 0A 33 08 35 01 83 90 06 00 83 12 05 00
+B3 07 38 01 03 9E 26 00 03 17 08 00 83 9F 07 00
+33 85 37 01 03 96 46 00 33 8F 50 02 03 18 05 00
+83 95 66 00 A1 06 4E 95 B3 00 EE 02 93 52 2F 40
+13 5E 5F 40 13 F7 F2 00 93 77 FE 07 33 06 F6 03
+13 DF 50 40 93 DF 20 40 93 72 FF 07 93 F0 FF 00
+B3 85 05 03 13 5E 56 40 13 58 26 40 93 7F F8 00
+13 76 FE 07 B3 07 F7 02 13 DF 55 40 13 D7 25 40
+13 78 F7 00 93 75 FF 07 B3 80 50 02 BE 9E B3 82
+CF 02 33 8E 1E 00 B3 0F B8 02 33 06 5E 00 B3 0E
+F6 01 E3 11 DA F6 23 A0 D3 01 93 06 13 00 91 03
+89 08 63 04 DB 00 36 83 75 B5 93 03 1C 00 CE 9A
+DA 9B 4E 9A 63 04 6C 00 1E 8C 51 B5 B2 50 22 54
+92 54 02 59 F2 49 62 4A D2 4A 42 4B B2 4B 22 4C
+45 61 82 80 82 80 13 03 F5 FF 85 47 B2 88 63 FA
+67 16 85 05 93 92 05 01 93 D5 02 01 37 06 04 F0
+93 D3 35 00 9D 4E 93 F6 75 00 01 47 13 06 86 0A
+A1 4F 11 48 05 4E 13 0F C0 02 93 F7 33 00 63 8C
+D6 11 63 68 D8 12 93 83 D6 FF 93 92 03 01 8A 07
+93 D6 02 01 B3 03 F6 00 63 68 DE 10 83 A6 03 01
+A5 47 A1 43 B3 02 F7 00 63 F5 62 12 41 11 22 C6
+35 A0 63 66 88 0C 93 06 D4 FF 93 97 06 01 13 94
+23 00 93 D2 07 01 B3 03 86 00 63 65 5E 0A 83 A6
+03 01 A5 42 A1 43 BA 92 63 F3 62 08 03 C4 06 00
+B3 87 E8 00 23 80 87 00 03 C7 16 00 A3 80 E7 00
+03 C4 26 00 23 81 87 00 03 C7 36 00 A3 81 E7 00
+63 84 03 03 03 C4 46 00 23 82 87 00 03 C7 56 00
+A3 82 E7 00 03 C4 66 00 23 83 87 00 63 96 F3 01
+83 C6 76 00 A3 83 D7 00 85 05 BE 93 93 97 05 01
+93 D5 07 01 23 80 E3 01 16 87 13 F4 75 00 93 D2
+35 00 93 F3 32 00 E3 16 D4 F7 93 96 23 00 A5 42
+B3 07 D6 00 BA 92 94 5B A1 43 E3 E1 62 F8 63 79
+A7 02 32 44 33 06 E5 40 81 45 33 85 E8 00 41 01
+6F 30 C0 61 83 A6 03 00 95 42 91 43 A9 BF 13 94
+23 00 B3 03 86 00 83 A6 03 02 A5 42 A1 43 A1 B7
+32 44 41 01 82 80 93 92 27 00 B3 03 56 00 83 A6
+03 03 A5 47 A1 43 FD BD 83 A6 03 00 95 47 91 43
+D5 BD 93 92 27 00 B3 06 56 00 94 52 A5 47 A1 43
+D5 B5 01 47 33 06 E5 40 81 45 33 85 E8 00 6F 30
+E0 5B E3 69 A7 FE 82 80 1C 41 2A 8E 01 45 03 C7
+07 00 3E 88 61 C3 93 06 C0 02 13 88 17 00 63 07
+D7 24 88 41 13 06 07 FD 93 72 F6 0F A5 48 13 03
+15 00 63 E4 58 0A 23 A0 65 00 83 C8 17 00 63 8A
+08 12 13 87 27 00 63 85 D8 12 13 86 08 FD 13 0F
+E0 02 A5 4F 93 07 C0 02 93 76 F6 0F 63 84 E8 03
+63 E4 DF 0A 83 48 18 00 13 05 17 00 3A 88 63 81
+08 10 63 8C F8 20 13 86 08 FD 2A 87 93 76 F6 0F
+E3 90 E8 FF 03 A3 05 01 15 45 93 03 13 00 23 A8
+75 00 03 43 18 00 3A 88 63 0E 03 02 13 08 C0 02
+93 08 17 00 63 01 03 1D 93 0E 50 04 25 4F 93 0F
+C0 02 93 07 03 FD 13 76 F3 0D 93 F6 F7 0F 63 0C
+D6 0B 63 7F DF 14 83 A2 45 01 46 88 05 45 13 87
+12 00 D8 C9 23 20 0E 01 82 80 93 03 B0 02 63 0F
+77 02 93 0E D0 02 63 0B D7 03 13 0F E0 02 63 04
+E7 15 83 AF 45 00 23 A0 65 00 05 45 93 87 1F 00
+DC C1 23 20 0E 01 82 80 83 A2 05 01 3A 88 05 45
+13 87 12 00 98 C9 23 20 0E 01 82 80 23 A0 65 00
+03 C6 17 00 63 0E 06 14 13 88 27 00 63 0A D6 14
+94 45 13 07 06 FD 93 72 F7 0F 25 45 93 88 16 00
+63 7C 55 00 13 03 E0 02 63 03 66 10 23 A4 15 01
+05 45 23 20 0E 01 82 80 23 A4 15 01 83 C8 27 00
+63 89 08 00 93 0E C0 02 13 07 18 00 E3 9F D8 ED
+3A 88 11 45 85 B7 C8 49 93 03 15 00 23 AA 75 00
+83 4E 17 00 63 89 0E 0E 13 0F C0 02 13 88 18 00
+63 84 EE 0F 83 AF C5 00 93 87 5E FD 13 F6 D7 0F
+93 86 1F 00 D4 C5 09 C6 05 45 23 20 0E 01 82 80
+83 C2 18 00 63 84 02 0C 13 88 28 00 63 80 E2 0D
+03 A3 85 01 13 87 02 FD 13 75 F7 0F 93 0E 13 00
+A5 43 23 AC D5 01 E3 E9 A3 FC 83 C2 28 00 63 8A
+02 08 13 87 38 00 63 85 E2 09 A5 48 13 0F C0 02
+93 8F 02 FD 13 F6 FF 0F 63 F9 C8 00 D4 41 3A 88
+05 45 93 87 16 00 DC C1 F1 B5 83 42 18 00 13 03
+17 00 3A 88 63 8E 02 04 63 86 E2 07 1A 87 C9 BF
+03 43 17 00 13 88 18 00 46 87 63 0E 03 02 63 0D
+F3 03 C2 88 BD BD 23 A0 65 00 03 C3 17 00 63 05
+03 02 93 88 27 00 63 00 D3 02 42 87 B1 BD 23 A4
+15 01 03 C3 27 00 63 09 03 00 93 03 C0 02 93 08
+18 00 E3 14 73 FE 46 88 15 45 AD B5 01 45 9D B5
+3A 88 1D 45 85 B5 46 88 0D 45 A9 BD 19 45 99 BD
+09 45 89 BD 1A 88 1D 45 B1 B5 2A 88 11 45 99 B5
+19 71 A2 DC A6 DA CA D8 D2 D4 D6 D2 DA D0 DE CE
+86 DE CE D6 2E 89 83 C5 05 00 4A C6 02 D8 02 C8
+02 DA 02 DC 02 DE 82 C0 82 C2 82 C4 82 C6 02 CA
+02 CC 02 CE 02 D0 02 D2 02 D4 02 D6 04 18 2A 8A
+B2 8B 36 8B BA 8A 3E 84 E3 8C 05 1C 93 09 C1 00
+A6 85 4E 85 15 33 AA 87 93 92 27 00 98 08 33 03
+57 00 B2 46 83 23 03 FC A6 85 03 C6 06 00 13 88
+13 00 23 20 03 FD 4E 85 35 CA FD 39 AA 88 13 9E
+28 00 93 0E 01 05 33 8F CE 01 B2 47 83 2F 0F FC
+A6 85 83 C2 07 00 13 87 1F 00 23 20 EF FC 4E 85
+63 86 02 04 D1 39 2A 83 93 13 23 00 94 08 33 86
+76 00 B2 48 03 28 06 FC A6 85 03 CE 08 00 93 0E
+18 00 23 20 D6 FD 4E 85 63 02 0E 02 75 31 0A 05
+8C 08 33 8F A5 00 B2 47 83 2F 0F FC 83 C2 07 00
+13 87 1F 00 23 20 EF FC E3 94 02 F6 4A C6 4A 9A
+83 45 09 00 E3 7C 49 13 93 00 C0 02 4A 83 B3 C9
+75 01 63 80 15 02 23 00 33 01 B2 43 33 83 53 01
+1A C6 63 7C 43 01 83 45 03 00 B3 C9 75 01 E3 94
+15 FE 56 93 1A C6 E3 68 43 FF 83 4B 09 00 4A C6
+93 09 C1 00 63 83 0B 0A A6 85 4E 85 35 39 AA 86
+13 96 26 00 13 08 01 05 B3 08 C8 00 B2 4E 03 AE
+08 FC A6 85 03 CF 0E 00 93 0F 1E 00 23 A0 F8 FD
+4E 85 63 09 0F 06 09 39 AA 87 93 92 27 00 98 08
+33 03 57 00 B2 4B 83 23 03 FC A6 85 83 C6 0B 00
+13 86 13 00 23 20 C3 FC 4E 85 A9 C6 F5 36 2A 88
+93 18 28 00 13 0E 01 05 B3 0E 1E 01 B2 4F 03 AF
+0E FC A6 85 83 C7 0F 00 93 02 1F 00 23 A0 5E FC
+4E 85 8D C3 D1 36 0A 05 8C 08 33 83 A5 00 32 47
+83 23 03 FC 83 4B 07 00 93 86 13 00 23 20 D3 FC
+E3 94 0B F6 4A C6 63 72 49 03 93 00 C0 02 83 49
+09 00 33 C6 69 01 E3 87 19 02 23 00 C9 00 32 48
+33 09 58 01 4A C6 E3 64 49 FF 69 7A 14 08 26 86
+13 0E 1A 00 83 AE 06 00 93 53 14 00 33 C4 8E 00
+13 FF FE 0F 93 9F 0E 01 93 78 14 00 93 D2 0F 01
+13 55 1F 00 63 88 08 00 B3 C7 C3 01 93 95 07 01
+93 D3 05 01 33 C3 A3 00 13 77 13 00 93 5B 2F 00
+93 D0 13 00 19 C7 B3 CA C0 01 13 9B 0A 01 93 50
+0B 01 B3 C9 70 01 13 F9 19 00 13 58 3F 00 93 DF
+10 00 63 08 09 00 33 CA CF 01 13 14 0A 01 93 5F
+04 01 B3 C8 0F 01 13 F5 18 00 93 55 4F 00 13 D7
+1F 00 19 C5 B3 47 C7 01 93 93 07 01 13 D7 03 01
+33 C3 E5 00 93 7B 13 00 93 5A 5F 00 93 59 17 00
+63 88 0B 00 33 CB C9 01 93 10 0B 01 93 D9 00 01
+33 C9 59 01 13 78 19 00 13 5A 6F 00 13 D5 19 00
+63 08 08 00 33 44 C5 01 93 1F 04 01 13 D5 0F 01
+B3 48 AA 00 93 F5 18 00 13 5F 7F 00 13 57 15 00
+99 C5 B3 47 C7 01 93 93 07 01 13 D7 03 01 13 73
+17 00 13 5B 17 00 63 08 E3 01 B3 4B CB 01 93 9A
+0B 01 13 DB 0A 01 93 D0 82 00 B3 C9 60 01 13 F9
+19 00 13 D8 82 00 93 5F 1B 00 93 D2 92 00 63 08
+09 00 33 CA CF 01 13 14 0A 01 93 5F 04 01 33 C5
+F2 01 93 75 15 00 93 58 28 00 93 D3 1F 00 99 C5
+33 CF C3 01 93 17 0F 01 93 D3 07 01 33 C7 78 00
+13 73 17 00 93 5B 38 00 93 D0 13 00 63 08 03 00
+B3 CA C0 01 13 9B 0A 01 93 50 0B 01 B3 C9 1B 00
+13 F9 19 00 93 52 48 00 93 DF 10 00 63 08 09 00
+33 CA CF 01 13 14 0A 01 93 5F 04 01 33 C5 F2 01
+93 75 15 00 93 58 58 00 93 D3 1F 00 99 C5 33 CF
+C3 01 93 17 0F 01 93 D3 07 01 33 C7 78 00 13 73
+17 00 93 5B 68 00 93 D0 13 00 63 08 03 00 B3 CA
+C0 01 13 9B 0A 01 93 50 0B 01 B3 C9 1B 00 13 F9
+19 00 13 58 78 00 13 D4 10 00 63 08 09 00 B3 42
+C4 01 13 9A 02 01 13 54 0A 01 93 7F 14 00 13 5F
+14 00 63 88 0F 01 33 45 CF 01 93 15 05 01 13 DF
+05 01 93 D8 0E 01 B3 C7 E8 01 93 F3 F8 0F 13 F7
+17 00 93 DE 0E 01 13 D3 13 00 13 5B 1F 00 19 C7
+B3 4B CB 01 93 9A 0B 01 13 DB 0A 01 B3 40 63 01
+93 F9 10 00 13 D9 23 00 13 5A 1B 00 63 88 09 00
+33 48 CA 01 93 12 08 01 13 DA 02 01 33 44 49 01
+93 7F 14 00 13 D5 33 00 93 57 1A 00 63 88 0F 00
+B3 C5 C7 01 13 9F 05 01 93 57 0F 01 B3 48 F5 00
+13 F7 18 00 13 D3 43 00 13 DB 17 00 19 C7 B3 4B
+CB 01 93 9A 0B 01 13 DB 0A 01 B3 40 63 01 93 F9
+10 00 13 D9 53 00 13 5A 1B 00 63 88 09 00 33 48
+CA 01 93 12 08 01 13 DA 02 01 33 44 49 01 93 7F
+14 00 13 D5 63 00 93 57 1A 00 63 88 0F 00 B3 C5
+C7 01 13 9F 05 01 93 57 0F 01 B3 48 F5 00 13 F7
+18 00 93 D3 73 00 93 DA 17 00 19 C7 33 C3 CA 01
+93 1B 03 01 93 DA 0B 01 13 FB 1A 00 13 D9 1A 00
+63 08 7B 00 B3 40 C9 01 93 99 00 01 13 D9 09 01
+13 D8 8E 00 B3 42 28 01 13 FA 12 00 13 D4 8E 00
+13 5F 19 00 93 DE 9E 00 63 08 0A 00 B3 4F CF 01
+13 95 0F 01 13 5F 05 01 B3 C5 EE 01 93 F8 15 00
+13 57 24 00 13 53 1F 00 63 88 08 00 B3 47 C3 01
+93 93 07 01 13 D3 03 01 B3 4B 67 00 93 FA 1B 00
+13 5B 34 00 13 59 13 00 63 88 0A 00 B3 40 C9 01
+93 99 00 01 13 D9 09 01 33 48 2B 01 93 72 18 00
+13 5A 44 00 13 55 19 00 63 88 02 00 B3 4E C5 01
+93 9F 0E 01 13 D5 0F 01 33 4F AA 00 93 75 1F 00
+93 58 54 00 93 53 15 00 99 C5 33 C7 C3 01 93 17
+07 01 93 D3 07 01 33 C3 78 00 93 7B 13 00 93 5A
+64 00 93 D9 13 00 63 88 0B 00 33 CB C9 01 93 10
+0B 01 93 D9 00 01 33 C9 3A 01 13 78 19 00 1D 80
+93 DE 19 00 63 08 08 00 B3 C2 CE 01 13 9A 02 01
+93 5E 0A 01 93 FF 1E 00 93 D8 1E 00 63 88 8F 00
+33 C5 C8 01 13 1F 05 01 93 58 0F 01 0C 42 93 D9
+18 00 33 C7 15 01 93 F3 F5 0F 13 93 05 01 93 77
+17 00 93 5B 03 01 93 DA 13 00 99 C7 33 CB C9 01
+93 10 0B 01 93 D9 00 01 33 C9 3A 01 13 78 19 00
+93 D2 23 00 93 DE 19 00 63 08 08 00 33 C4 CE 01
+13 1A 04 01 93 5E 0A 01 B3 CF D2 01 13 F5 1F 00
+13 DF 33 00 13 D3 1E 00 19 C5 B3 48 C3 01 13 97
+08 01 13 53 07 01 B3 47 6F 00 93 FA 17 00 13 DB
+43 00 13 59 13 00 63 88 0A 00 B3 40 C9 01 93 99
+00 01 13 D9 09 01 33 48 2B 01 93 72 18 00 13 DA
+53 00 93 5F 19 00 63 88 02 00 33 C4 CF 01 93 1E
+04 01 93 DF 0E 01 33 45 FA 01 13 7F 15 00 93 D8
+63 00 93 DA 1F 00 63 08 0F 00 33 C7 CA 01 13 13
+07 01 93 5A 03 01 B3 C7 58 01 13 FB 17 00 93 D3
+73 00 13 D9 1A 00 63 08 0B 00 B3 40 C9 01 93 99
+00 01 13 D9 09 01 13 78 19 00 13 54 19 00 63 08
+78 00 B3 42 C4 01 13 9A 02 01 13 54 0A 01 93 DE
+8B 00 B3 CF 8E 00 13 FF 1F 00 13 D5 8B 00 13 53
+14 00 93 DB 9B 00 63 08 0F 00 B3 48 C3 01 13 97
+08 01 13 53 07 01 B3 CA 6B 00 93 F7 1A 00 13 5B
+25 00 93 59 13 00 99 C7 B3 C3 C9 01 93 90 03 01
+93 D9 00 01 33 49 3B 01 93 72 19 00 13 58 35 00
+93 DE 19 00 63 88 02 00 33 CA CE 01 13 14 0A 01
+93 5E 04 01 B3 4F D8 01 13 FF 1F 00 93 5B 45 00
+13 D3 1E 00 63 08 0F 00 B3 48 C3 01 13 97 08 01
+13 53 07 01 B3 CA 6B 00 93 F7 1A 00 13 5B 55 00
+93 59 13 00 99 C7 B3 C3 C9 01 93 90 03 01 93 D9
+00 01 33 49 3B 01 93 72 19 00 13 58 65 00 93 DE
+19 00 63 88 02 00 33 CA CE 01 13 14 0A 01 93 5E
+04 01 B3 4F D8 01 13 FF 1F 00 1D 81 13 D7 1E 00
+63 08 0F 00 B3 4B C7 01 93 98 0B 01 13 D7 08 01
+13 73 17 00 13 5B 17 00 63 08 A3 00 B3 4A CB 01
+93 97 0A 01 13 DB 07 01 93 D3 05 01 B3 C0 63 01
+93 F9 F3 0F 13 F9 10 00 C1 81 93 D2 19 00 13 54
+1B 00 63 08 09 00 33 48 C4 01 13 1A 08 01 13 54
+0A 01 B3 CE 82 00 93 FF 1E 00 13 DF 29 00 93 58
+14 00 63 88 0F 00 33 C5 C8 01 93 1B 05 01 93 D8
+0B 01 33 47 1F 01 13 73 17 00 93 DA 39 00 93 D3
+18 00 63 08 03 00 B3 C7 C3 01 13 9B 07 01 93 53
+0B 01 B3 C0 7A 00 13 F9 10 00 93 D2 49 00 13 D4
+13 00 63 08 09 00 33 48 C4 01 13 1A 08 01 13 54
+0A 01 B3 CE 82 00 93 FF 1E 00 13 DF 59 00 93 58
+14 00 63 88 0F 00 33 C5 C8 01 93 1B 05 01 93 D8
+0B 01 33 47 1F 01 13 73 17 00 93 DA 69 00 93 D3
+18 00 63 08 03 00 B3 C7 C3 01 13 9B 07 01 93 53
+0B 01 B3 C0 7A 00 13 F9 10 00 93 D9 79 00 13 DA
+13 00 63 08 09 00 B3 42 CA 01 13 98 02 01 13 5A
+08 01 93 7E 1A 00 13 5F 1A 00 63 88 3E 01 33 44
+CF 01 93 1F 04 01 13 DF 0F 01 13 D5 85 00 B3 4B
+E5 01 93 F8 1B 00 13 D7 85 00 93 57 1F 00 A5 81
+63 88 08 00 33 C3 C7 01 93 1A 03 01 93 D7 0A 01
+33 CB F5 00 93 73 1B 00 93 50 27 00 93 D2 17 00
+63 88 03 00 33 C9 C2 01 93 19 09 01 93 D2 09 01
+33 C8 50 00 13 7A 18 00 93 5E 37 00 13 DF 12 00
+63 08 0A 00 33 44 CF 01 93 1F 04 01 13 DF 0F 01
+33 C5 EE 01 93 7B 15 00 93 58 47 00 93 5A 1F 00
+63 88 0B 00 B3 C5 CA 01 13 93 05 01 93 5A 03 01
+B3 C7 58 01 13 FB 17 00 93 53 57 00 93 D9 1A 00
+63 08 0B 00 B3 C0 C9 01 13 99 00 01 93 59 09 01
+B3 C2 33 01 13 F8 12 00 13 5A 67 00 93 DF 19 00
+63 08 08 00 B3 CE CF 01 13 94 0E 01 93 5F 04 01
+33 4F FA 01 13 75 1F 00 1D 83 13 D3 1F 00 19 C5
+B3 4B C3 01 93 98 0B 01 13 D3 08 01 93 75 13 00
+13 54 13 00 63 88 E5 00 B3 4A C4 01 93 97 0A 01
+13 D4 07 01 91 06 11 06 E3 96 D4 80 F6 50 22 85
+66 54 D6 54 46 59 B6 59 26 5A 96 5A 06 5B F6 4B
+09 61 82 80 56 99 4A C6 63 63 49 FD 6F F0 EF FD
+33 0A A9 00 63 6A 49 ED 6F F0 2F FD 63 96 05 F0
+6F F0 AF FC 01 11 26 CA 83 14 05 00 06 CE 22 CC
+93 D7 74 40 4A C8 4E C6 93 F0 17 00 63 8B 00 00
+F2 40 62 44 42 49 B2 49 13 F5 F4 07 D2 44 05 61
+82 80 13 D7 34 40 93 72 F7 00 13 93 42 00 93 F6
+74 00 03 D4 85 03 AA 89 2E 89 33 67 53 00 63 87
+06 50 05 45 63 83 A6 28 13 95 04 01 41 81 A6 8E
+B3 CF 8E 00 93 F0 FE 0F 93 F8 1F 00 13 DF 10 00
+93 53 14 00 63 8B 08 00 69 77 93 02 17 00 B3 C7
+53 00 13 93 07 01 93 53 03 01 33 48 7F 00 93 75
+18 00 93 D6 20 00 93 D8 13 00 91 C9 69 76 13 04
+16 00 33 CE 88 00 93 1F 0E 01 93 D8 0F 01 33 CF
+16 01 13 77 1F 00 93 D2 30 00 93 D6 18 00 11 CB
+69 73 93 03 13 00 B3 C7 76 00 13 98 07 01 93 56
+08 01 B3 C5 D2 00 13 F4 15 00 13 D6 40 00 13 D7
+16 00 11 C8 69 7E 93 0F 1E 00 B3 48 F7 01 13 9F
+08 01 13 57 0F 01 B3 42 C7 00 13 F3 12 00 93 D3
+50 00 13 54 17 00 63 0B 03 00 69 78 93 06 18 00
+B3 47 D4 00 93 95 07 01 13 D4 05 01 33 46 74 00
+13 7E 16 00 93 DF 60 00 13 53 14 00 63 0B 0E 00
+E9 78 13 8F 18 00 33 47 E3 01 93 12 07 01 13 D3
+02 01 B3 43 F3 01 13 F8 13 00 93 D0 70 00 13 5E
+13 00 63 0B 08 00 E9 76 93 85 16 00 B3 47 BE 00
+13 94 07 01 13 5E 04 01 13 76 1E 00 93 52 1E 00
+63 0B 16 00 E9 7F 93 88 1F 00 33 CF 12 01 13 17
+0F 01 93 52 07 01 21 81 33 43 55 00 93 73 F5 0F
+13 78 13 00 93 D0 13 00 13 DE 12 00 63 0B 08 00
+E9 76 93 85 16 00 B3 47 BE 00 13 94 07 01 13 5E
+04 01 33 46 1E 00 93 7F 16 00 93 D8 23 00 13 53
+1E 00 63 8B 0F 00 69 7F 13 07 1F 00 B3 42 E3 00
+13 95 02 01 13 53 05 01 33 C8 68 00 93 70 18 00
+93 D5 33 00 93 5F 13 00 63 8B 00 00 E9 76 13 84
+16 00 B3 C7 8F 00 13 9E 07 01 93 5F 0E 01 33 C6
+F5 01 93 78 16 00 13 DF 43 00 13 D8 1F 00 63 8B
+08 00 69 77 93 02 17 00 33 45 58 00 13 13 05 01
+13 58 03 01 B3 40 0F 01 93 F5 10 00 13 D4 53 00
+93 58 18 00 91 C9 E9 76 13 8E 16 00 B3 C7 C8 01
+93 9F 07 01 93 D8 0F 01 33 46 14 01 13 7F 16 00
+13 D7 63 00 93 D0 18 00 63 0B 0F 00 E9 72 13 85
+12 00 33 C3 A0 00 13 18 03 01 93 50 08 01 B3 45
+17 00 13 F4 15 00 93 D3 73 00 93 D8 10 00 11 C8
+E9 76 13 8E 16 00 B3 C7 C8 01 93 9F 07 01 93 D8
+0F 01 33 C6 13 01 13 7F 16 00 13 D8 18 00 63 0B
+0F 00 69 77 93 02 17 00 33 45 58 00 13 13 05 01
+13 58 03 01 13 F5 FE 07 93 F4 04 F0 F2 40 62 44
+B3 6E 95 00 23 1C 09 03 13 E9 0E 08 23 90 29 01
+D2 44 42 49 B2 49 05 61 82 80 D0 55 94 59 03 25
+89 02 CC 59 EF B0 3F F5 33 46 A4 00 93 78 F5 0F
+93 1E 05 01 13 7E 16 00 13 DF 0E 01 93 DF 18 00
+13 53 14 00 63 0B 0E 00 E9 77 93 80 17 00 33 47
+13 00 93 12 07 01 13 D3 02 01 B3 46 F3 01 93 F3
+16 00 13 D8 28 00 13 5E 13 00 63 8B 03 00 E9 75
+13 84 15 00 33 45 8E 00 13 16 05 01 13 5E 06 01
+B3 4E 0E 01 93 FF 1E 00 93 D7 38 00 93 53 1E 00
+63 8B 0F 00 E9 70 13 87 10 00 B3 C2 E3 00 13 93
+02 01 93 53 03 01 B3 C6 F3 00 13 F8 16 00 93 D5
+48 00 93 DE 13 00 63 0B 08 00 69 74 13 06 14 00
+33 C5 CE 00 13 1E 05 01 93 5E 0E 01 B3 CF BE 00
+93 F7 1F 00 93 D0 58 00 13 D8 1E 00 91 CB 69 77
93 02 17 00 33 43 58 00 93 13 03 01 13 D8 03 01
-93 76 18 00 13 55 18 00 63 8B 16 01 E9 75 13 84
-15 00 33 46 85 00 13 1E 06 01 13 55 0E 01 93 5E
-8F 00 B3 4F D5 01 93 F0 1F 00 93 58 8F 00 93 53
-15 00 13 5F 9F 00 63 8B 00 00 E9 77 13 87 17 00
-B3 C2 E3 00 13 93 02 01 93 53 03 01 33 C8 E3 01
-93 75 18 00 93 D6 28 00 93 DE 13 00 91 C9 69 74
-13 06 14 00 33 CE CE 00 13 15 0E 01 93 5E 05 01
-B3 CF DE 00 93 F0 1F 00 13 DF 38 00 93 D3 1E 00
+B3 46 18 00 93 F5 16 00 13 D4 68 00 93 5F 18 00
+91 C9 69 76 13 0E 16 00 33 C5 CF 01 93 1E 05 01
+93 DF 0E 01 B3 C7 8F 00 93 F0 17 00 93 D8 78 00
+13 D8 1F 00 63 8B 00 00 69 77 93 02 17 00 33 43
+58 00 93 13 03 01 13 D8 03 01 93 76 18 00 13 55
+18 00 63 8B 16 01 E9 75 13 84 15 00 33 46 85 00
+13 1E 06 01 13 55 0E 01 93 5E 8F 00 B3 4F D5 01
+93 F0 1F 00 93 58 8F 00 93 53 15 00 13 5F 9F 00
63 8B 00 00 E9 77 13 87 17 00 B3 C2 E3 00 13 93
-02 01 93 53 03 01 33 C8 E3 01 93 75 18 00 13 D4
-48 00 93 DE 13 00 91 C9 E9 76 13 86 16 00 33 CE
-CE 00 13 15 0E 01 93 5E 05 01 B3 CF 8E 00 93 F0
-1F 00 13 DF 58 00 93 D3 1E 00 63 8B 00 00 E9 77
+02 01 93 53 03 01 33 C8 E3 01 93 75 18 00 93 D6
+28 00 93 DE 13 00 91 C9 69 74 13 06 14 00 33 CE
+CE 00 13 15 0E 01 93 5E 05 01 B3 CF DE 00 93 F0
+1F 00 13 DF 38 00 93 D3 1E 00 63 8B 00 00 E9 77
13 87 17 00 B3 C2 E3 00 13 93 02 01 93 53 03 01
-33 C8 E3 01 93 75 18 00 13 D4 68 00 93 DE 13 00
+33 C8 E3 01 93 75 18 00 13 D4 48 00 93 DE 13 00
91 C9 E9 76 13 86 16 00 33 CE CE 00 13 15 0E 01
-93 5E 05 01 B3 CF 8E 00 93 F0 1F 00 93 D8 78 00
-13 D3 1E 00 63 8B 00 00 69 7F 93 07 1F 00 33 47
-F3 00 93 12 07 01 13 D3 02 01 93 73 13 00 13 55
-13 00 63 8B 13 01 69 78 93 05 18 00 33 44 B5 00
-93 16 04 01 13 D5 06 01 03 D6 C4 03 13 1E 05 01
-03 D4 84 03 93 5E 0E 41 E3 1E 06 84 23 9E A4 02
-91 B8 93 03 20 02 3A 88 63 54 77 00 13 08 20 02
-CC 48 83 96 24 00 03 96 04 00 88 4C A2 87 13 77
-F8 0F EF E0 3F 81 83 D5 E4 03 13 14 05 01 93 5E
-04 41 03 D4 84 03 E3 9F 05 80 23 9F A4 02 19 B8
-93 0F 20 02 BA 88 63 54 F7 01 93 08 20 02 03 96
-04 00 83 96 24 00 CC 48 88 4C CE 87 13 F7 F8 0F
-EF E0 4F FD 03 D6 E4 03 13 1F 05 01 83 D9 84 03
-13 58 0F 41 E3 15 06 A8 23 9F A4 02 49 B4 CC 58
-94 58 D0 54 88 54 EF B0 4F C1 33 43 35 01 13 77
-F5 0F 13 78 13 00 42 05 93 5E 05 01 93 55 17 00
-93 D7 19 00 63 0B 08 00 E9 70 93 89 10 00 B3 C3
-37 01 13 9E 03 01 93 57 0E 01 B3 C6 F5 00 93 FF
-16 00 93 58 27 00 13 D8 17 00 63 8B 0F 00 69 76
-13 0F 16 00 B3 42 E8 01 13 93 02 01 13 58 03 01
-33 45 18 01 93 75 15 00 93 50 37 00 93 5F 18 00
-91 C9 E9 79 93 83 19 00 33 CE 7F 00 93 17 0E 01
-93 DF 07 01 B3 C6 F0 01 93 F8 16 00 13 5F 47 00
-13 D5 1F 00 63 8B 08 00 69 76 93 02 16 00 33 43
-55 00 13 18 03 01 13 55 08 01 B3 45 AF 00 93 F0
-15 00 93 59 57 00 93 58 15 00 63 8B 00 00 E9 73
-13 8E 13 00 B3 C7 C8 01 93 9F 07 01 93 D8 0F 01
-B3 C6 38 01 13 FF 16 00 93 52 67 00 93 D5 18 00
-63 0B 0F 00 69 76 13 03 16 00 33 C8 65 00 13 15
-08 01 93 55 05 01 B3 C0 55 00 93 F9 10 00 1D 83
-93 D8 15 00 63 8B 09 00 E9 73 13 8E 13 00 B3 C7
-C8 01 93 9F 07 01 93 D8 0F 01 93 F6 18 00 13 D8
-18 00 63 8B E6 00 69 7F 93 02 1F 00 33 46 58 00
-13 13 06 01 13 58 03 01 13 D5 8E 00 B3 45 05 01
-93 F0 15 00 93 D9 8E 00 93 5F 18 00 93 DE 9E 00
-63 8B 00 00 69 77 93 03 17 00 33 CE 7F 00 93 17
-0E 01 93 DF 07 01 B3 C8 FE 01 13 FF 18 00 93 D6
-29 00 13 D5 1F 00 63 0B 0F 00 E9 72 13 86 12 00
-33 43 C5 00 13 18 03 01 13 55 08 01 B3 C5 A6 00
-93 F0 15 00 93 DE 39 00 93 5F 15 00 63 8B 00 00
+93 5E 05 01 B3 CF 8E 00 93 F0 1F 00 13 DF 58 00
+93 D3 1E 00 63 8B 00 00 E9 77 13 87 17 00 B3 C2
+E3 00 13 93 02 01 93 53 03 01 33 C8 E3 01 93 75
+18 00 13 D4 68 00 93 DE 13 00 91 C9 E9 76 13 86
+16 00 33 CE CE 00 13 15 0E 01 93 5E 05 01 B3 CF
+8E 00 93 F0 1F 00 93 D8 78 00 13 D3 1E 00 63 8B
+00 00 69 7F 93 07 1F 00 33 47 F3 00 93 12 07 01
+13 D3 02 01 93 73 13 00 13 55 13 00 63 8B 13 01
+69 78 93 05 18 00 33 44 B5 00 93 16 04 01 13 D5
+06 01 03 56 C9 03 13 1E 05 01 03 54 89 03 93 5E
+0E 41 E3 17 06 B0 23 1E A9 02 19 B6 93 03 20 02
+3A 88 63 54 77 00 13 08 20 02 83 25 49 01 83 16
+29 00 03 16 09 00 03 25 89 01 A2 87 13 77 F8 0F
+EF F0 0F 85 83 55 E9 03 13 14 05 01 93 5E 04 41
+03 54 89 03 E3 96 05 AC 23 1F A9 02 D1 B4 01 11
+4A C8 03 19 05 00 06 CE 22 CC 93 57 79 40 26 CA
+52 C4 4E C6 93 F0 17 00 2E 8A B2 84 13 74 F9 07
+63 9E 00 28 13 57 39 40 93 72 F7 00 93 96 42 00
+13 73 79 00 03 54 86 03 AA 89 33 E7 D2 00 63 00
+03 7C 05 45 63 0D A3 52 13 15 09 01 41 81 CA 8E
+B3 4F D4 01 93 F0 FE 0F 93 F8 1F 00 13 DF 10 00
+93 53 14 00 63 8B 08 00 69 77 93 02 17 00 B3 C7
+53 00 13 93 07 01 93 53 03 01 33 C8 E3 01 93 75
+18 00 93 D6 20 00 93 D8 13 00 91 C9 69 76 13 04
+16 00 33 CE 88 00 93 1F 0E 01 93 D8 0F 01 33 CF
+D8 00 13 77 1F 00 93 D2 30 00 93 D6 18 00 11 CB
+69 73 93 03 13 00 B3 C7 76 00 13 98 07 01 93 56
+08 01 B3 C5 56 00 13 F4 15 00 13 D6 40 00 13 D7
+16 00 11 C8 69 7E 93 0F 1E 00 B3 48 F7 01 13 9F
+08 01 13 57 0F 01 B3 42 C7 00 13 F3 12 00 93 D3
+50 00 13 54 17 00 63 0B 03 00 69 78 93 06 18 00
+B3 47 D4 00 93 95 07 01 13 D4 05 01 33 46 74 00
+13 7E 16 00 93 DF 60 00 13 53 14 00 63 0B 0E 00
+E9 78 13 8F 18 00 33 47 E3 01 93 12 07 01 13 D3
+02 01 B3 43 F3 01 13 F8 13 00 93 D0 70 00 13 5E
+13 00 63 0B 08 00 E9 76 93 85 16 00 B3 47 BE 00
+13 94 07 01 13 5E 04 01 13 76 1E 00 93 52 1E 00
+63 0B 16 00 E9 7F 93 88 1F 00 33 CF 12 01 13 17
+0F 01 93 52 07 01 21 81 33 43 55 00 93 73 F5 0F
+13 78 13 00 93 D0 13 00 13 DE 12 00 63 0B 08 00
+E9 76 93 85 16 00 B3 47 BE 00 13 94 07 01 13 5E
+04 01 33 46 1E 00 93 7F 16 00 93 D8 23 00 13 53
+1E 00 63 8B 0F 00 69 7F 13 07 1F 00 B3 42 E3 00
+13 95 02 01 13 53 05 01 33 48 13 01 93 70 18 00
+93 D5 33 00 93 5F 13 00 63 8B 00 00 E9 76 13 84
+16 00 B3 C7 8F 00 13 9E 07 01 93 5F 0E 01 33 C6
+BF 00 93 78 16 00 13 DF 43 00 13 D8 1F 00 63 8B
+08 00 69 77 93 02 17 00 33 45 58 00 13 13 05 01
+13 58 03 01 B3 40 E8 01 93 F5 10 00 13 D4 53 00
+93 58 18 00 91 C9 E9 76 13 8E 16 00 B3 C7 C8 01
+93 9F 07 01 93 D8 0F 01 33 C6 88 00 13 7F 16 00
+13 D7 63 00 93 D0 18 00 63 0B 0F 00 E9 72 13 85
+12 00 33 C3 A0 00 13 18 03 01 93 50 08 01 B3 C5
+E0 00 13 F4 15 00 93 D3 73 00 93 D8 10 00 11 C8
+E9 76 13 8E 16 00 B3 C7 C8 01 93 9F 07 01 93 D8
+0F 01 33 C6 13 01 13 7F 16 00 13 D8 18 00 63 0B
+0F 00 69 77 93 02 17 00 33 45 58 00 13 13 05 01
+13 58 03 01 13 F4 FE 07 13 79 09 F0 B3 6E 24 01
+23 9C 04 03 93 E0 0E 08 23 90 19 00 03 19 0A 00
+93 59 79 40 93 F5 19 00 13 78 F9 07 63 9F 05 28
+93 53 39 40 13 FE F3 00 93 16 4E 00 93 77 79 00
+83 D9 84 03 33 67 DE 00 63 8A 07 54 85 42 63 86
+57 58 13 15 09 01 41 81 4A 88 B3 45 38 01 93 70
+F8 0F 93 FE 15 00 13 D7 10 00 93 D8 19 00 63 8B
+0E 00 E9 73 13 8E 13 00 B3 CF C8 01 93 97 0F 01
+93 D8 07 01 33 4F 17 01 93 72 1F 00 93 D6 20 00
+93 DE 18 00 63 8B 02 00 69 76 93 09 16 00 33 C3
+3E 01 93 15 03 01 93 DE 05 01 33 C7 DE 00 93 73
+17 00 13 DE 30 00 93 D2 1E 00 63 8B 03 00 E9 7F
+93 88 1F 00 B3 C7 12 01 13 9F 07 01 93 52 0F 01
+B3 C6 C2 01 13 F6 16 00 93 D9 40 00 93 D3 12 00
+11 CA 69 73 93 05 13 00 B3 CE B3 00 13 97 0E 01
+93 53 07 01 33 CE 33 01 93 7F 1E 00 93 D8 50 00
+13 D6 13 00 63 8B 0F 00 69 7F 93 02 1F 00 B3 47
+56 00 93 96 07 01 13 D6 06 01 B3 49 16 01 13 F3
+19 00 93 DE 60 00 93 5F 16 00 63 0B 03 00 E9 75
+13 87 15 00 B3 C3 EF 00 13 9E 03 01 93 5F 0E 01
+B3 C8 FE 01 13 FF 18 00 93 D0 70 00 93 D9 1F 00
+63 0B 0F 00 E9 72 93 86 12 00 B3 C7 D9 00 13 96
+07 01 93 59 06 01 13 F3 19 00 13 DE 19 00 63 0B
+13 00 E9 7E 93 85 1E 00 33 47 BE 00 93 13 07 01
+13 DE 03 01 21 81 B3 4F C5 01 93 78 F5 0F 13 FF
+1F 00 93 D0 18 00 93 59 1E 00 63 0B 0F 00 E9 72
+93 86 12 00 B3 C7 D9 00 13 96 07 01 93 59 06 01
+33 C3 19 00 93 7E 13 00 13 D7 28 00 93 DF 19 00
+63 8B 0E 00 E9 75 93 83 15 00 33 CE 7F 00 13 15
+0E 01 93 5F 05 01 33 CF EF 00 93 70 1F 00 93 D2
+38 00 13 D3 1F 00 63 8B 00 00 E9 76 13 86 16 00
+B3 47 C3 00 93 99 07 01 13 D3 09 01 B3 4E 53 00
+13 F7 1E 00 93 D3 48 00 13 5F 13 00 11 CB E9 75
+13 8E 15 00 33 45 CF 01 93 1F 05 01 13 DF 0F 01
+B3 C0 E3 01 93 F2 10 00 93 D6 58 00 93 5E 1F 00
+63 8B 02 00 69 76 93 09 16 00 B3 C7 3E 01 13 93
+07 01 93 5E 03 01 33 C7 D6 01 93 73 17 00 13 DE
+68 00 93 D0 1E 00 63 8B 03 00 E9 75 13 85 15 00
+B3 CF A0 00 13 9F 0F 01 93 50 0F 01 B3 42 1E 00
+13 F6 12 00 93 D8 78 00 93 DE 10 00 11 CA E9 76
+93 89 16 00 B3 C7 3E 01 13 93 07 01 93 5E 03 01
+33 C7 D8 01 93 73 17 00 13 DF 1E 00 63 8B 03 00
+69 7E 93 05 1E 00 33 45 BF 00 93 1F 05 01 13 DF
+0F 01 13 78 F8 07 13 79 09 F0 B3 60 28 01 23 9C
+E4 03 93 E4 00 08 23 10 9A 00 F2 40 33 05 04 41
+62 44 D2 44 42 49 B2 49 22 4A 05 61 82 80 14 5A
+CC 58 50 56 88 54 EF B0 0F F1 33 46 A4 00 93 78
+F5 0F 93 1E 05 01 13 7E 16 00 13 DF 0E 01 93 DF
+18 00 13 53 14 00 63 0B 0E 00 E9 77 93 80 17 00
+33 47 13 00 93 12 07 01 13 D3 02 01 B3 46 F3 01
+93 F3 16 00 13 D8 28 00 13 5E 13 00 63 8B 03 00
+E9 75 13 84 15 00 33 45 8E 00 13 16 05 01 13 5E
+06 01 B3 4E 0E 01 93 FF 1E 00 93 D7 38 00 93 53
+1E 00 63 8B 0F 00 E9 70 13 87 10 00 B3 C2 E3 00
+13 93 02 01 93 53 03 01 B3 C6 F3 00 13 F8 16 00
+93 D5 48 00 93 DE 13 00 63 0B 08 00 69 74 13 06
+14 00 33 C5 CE 00 13 1E 05 01 93 5E 0E 01 B3 CF
+BE 00 93 F7 1F 00 93 D0 58 00 13 D8 1E 00 91 CB
+69 77 93 02 17 00 33 43 58 00 93 13 03 01 13 D8
+03 01 B3 46 18 00 93 F5 16 00 13 D4 68 00 93 5F
+18 00 91 C9 69 76 13 0E 16 00 33 C5 CF 01 93 1E
+05 01 93 DF 0E 01 B3 C7 8F 00 93 F0 17 00 93 D8
+78 00 13 D8 1F 00 63 8B 00 00 69 77 93 02 17 00
+33 43 58 00 93 13 03 01 13 D8 03 01 93 76 18 00
+13 55 18 00 63 8B 16 01 E9 75 13 84 15 00 33 46
+85 00 13 1E 06 01 13 55 0E 01 93 5E 8F 00 B3 4F
+D5 01 93 F0 1F 00 93 58 8F 00 93 53 15 00 13 5F
+9F 00 63 8B 00 00 E9 77 13 87 17 00 B3 C2 E3 00
+13 93 02 01 93 53 03 01 33 C8 E3 01 93 75 18 00
+93 D6 28 00 93 DE 13 00 91 C9 69 74 13 06 14 00
+33 CE CE 00 13 15 0E 01 93 5E 05 01 B3 CF DE 00
+93 F0 1F 00 13 DF 38 00 93 D3 1E 00 63 8B 00 00
+E9 77 13 87 17 00 B3 C2 E3 00 13 93 02 01 93 53
+03 01 33 C8 E3 01 93 75 18 00 13 D4 48 00 93 DE
+13 00 91 C9 E9 76 13 86 16 00 33 CE CE 00 13 15
+0E 01 93 5E 05 01 B3 CF 8E 00 93 F0 1F 00 13 DF
+58 00 93 D3 1E 00 63 8B 00 00 E9 77 13 87 17 00
+B3 C2 E3 00 13 93 02 01 93 53 03 01 33 C8 E3 01
+93 75 18 00 13 D4 68 00 93 DE 13 00 91 C9 E9 76
+13 86 16 00 33 CE CE 00 13 15 0E 01 93 5E 05 01
+B3 CF 8E 00 93 F0 1F 00 93 D8 78 00 13 D3 1E 00
+63 8B 00 00 69 7F 93 07 1F 00 33 47 F3 00 93 12
+07 01 13 D3 02 01 93 73 13 00 13 55 13 00 63 8B
+13 01 69 78 93 05 18 00 33 44 B5 00 93 16 04 01
+13 D5 06 01 03 D6 C4 03 13 1E 05 01 03 D4 84 03
+93 5E 0E 41 E3 1E 06 84 23 9E A4 02 91 B8 93 03
+20 02 3A 88 63 54 77 00 13 08 20 02 CC 48 83 96
+24 00 03 96 04 00 88 4C A2 87 13 77 F8 0F EF E0
+3F 81 83 D5 E4 03 13 14 05 01 93 5E 04 41 03 D4
+84 03 E3 9F 05 80 23 9F A4 02 19 B8 93 0F 20 02
+BA 88 63 54 F7 01 93 08 20 02 03 96 04 00 83 96
+24 00 CC 48 88 4C CE 87 13 F7 F8 0F EF E0 4F FD
+03 D6 E4 03 13 1F 05 01 83 D9 84 03 13 58 0F 41
+E3 15 06 A8 23 9F A4 02 49 B4 CC 58 94 58 D0 54
+88 54 EF B0 4F C1 33 43 35 01 13 77 F5 0F 13 78
+13 00 42 05 93 5E 05 01 93 55 17 00 93 D7 19 00
+63 0B 08 00 E9 70 93 89 10 00 B3 C3 37 01 13 9E
+03 01 93 57 0E 01 B3 C6 F5 00 93 FF 16 00 93 58
+27 00 13 D8 17 00 63 8B 0F 00 69 76 13 0F 16 00
+B3 42 E8 01 13 93 02 01 13 58 03 01 33 45 18 01
+93 75 15 00 93 50 37 00 93 5F 18 00 91 C9 E9 79
+93 83 19 00 33 CE 7F 00 93 17 0E 01 93 DF 07 01
+B3 C6 F0 01 93 F8 16 00 13 5F 47 00 13 D5 1F 00
+63 8B 08 00 69 76 93 02 16 00 33 43 55 00 13 18
+03 01 13 55 08 01 B3 45 AF 00 93 F0 15 00 93 59
+57 00 93 58 15 00 63 8B 00 00 E9 73 13 8E 13 00
+B3 C7 C8 01 93 9F 07 01 93 D8 0F 01 B3 C6 38 01
+13 FF 16 00 93 52 67 00 93 D5 18 00 63 0B 0F 00
+69 76 13 03 16 00 33 C8 65 00 13 15 08 01 93 55
+05 01 B3 C0 55 00 93 F9 10 00 1D 83 93 D8 15 00
+63 8B 09 00 E9 73 13 8E 13 00 B3 C7 C8 01 93 9F
+07 01 93 D8 0F 01 93 F6 18 00 13 D8 18 00 63 8B
+E6 00 69 7F 93 02 1F 00 33 46 58 00 13 13 06 01
+13 58 03 01 13 D5 8E 00 B3 45 05 01 93 F0 15 00
+93 D9 8E 00 93 5F 18 00 93 DE 9E 00 63 8B 00 00
69 77 93 03 17 00 33 CE 7F 00 93 17 0E 01 93 DF
-07 01 B3 C8 FE 01 13 FF 18 00 93 D2 49 00 13 D5
-1F 00 63 0B 0F 00 E9 76 13 86 16 00 33 43 C5 00
-13 18 03 01 13 55 08 01 B3 C5 A2 00 93 F0 15 00
-93 DE 59 00 93 5F 15 00 63 8B 00 00 69 77 93 03
+07 01 B3 C8 FE 01 13 FF 18 00 93 D6 29 00 13 D5
+1F 00 63 0B 0F 00 E9 72 13 86 12 00 33 43 C5 00
+13 18 03 01 13 55 08 01 B3 C5 A6 00 93 F0 15 00
+93 DE 39 00 93 5F 15 00 63 8B 00 00 69 77 93 03
17 00 33 CE 7F 00 93 17 0E 01 93 DF 07 01 B3 C8
-FE 01 13 FF 18 00 93 D2 69 00 13 D5 1F 00 63 0B
+FE 01 13 FF 18 00 93 D2 49 00 13 D5 1F 00 63 0B
0F 00 E9 76 13 86 16 00 33 43 C5 00 13 18 03 01
-13 55 08 01 B3 C5 A2 00 93 F0 15 00 93 D9 79 00
-93 5F 15 00 63 8B 00 00 E9 7E 13 87 1E 00 B3 C3
-EF 00 13 9E 03 01 93 5F 0E 01 93 F7 1F 00 13 D5
-1F 00 63 8B 37 01 E9 78 13 8F 18 00 B3 42 E5 01
-93 96 02 01 13 D5 06 01 03 D6 C4 03 13 13 05 01
-83 D9 84 03 13 58 03 41 E3 13 06 80 23 9E A4 02
-6F F0 EF FF 03 1E 45 00 39 71 22 DC 6A C8 06 DE
-26 DA 4A D8 4E D6 52 D4 56 D2 5A D0 5E CE 62 CC
-66 CA 6E C6 40 51 2A 8D E3 52 C0 0B 2E 8B 01 48
-81 4E 81 4C 01 4F 13 7C F8 0F 63 4D 0B 38 E3 0D
-04 08 A2 87 19 A0 9C 43 99 C7 83 A2 47 00 83 93
-22 00 E3 9A 63 FF 22 8A 03 26 0A 00 01 47 23 20
-EA 00 52 84 3D C6 08 42 23 20 46 01 52 87 32 84
-2D C1 14 41 10 C1 32 87 2A 84 A1 CE 84 42 88 C2
-2A 87 36 84 B9 C4 03 A9 04 00 94 C0 36 87 26 84
-63 01 09 04 83 28 09 00 23 20 99 00 26 87 4A 84
-63 89 08 02 83 A9 08 00 23 A0 28 01 4A 87 46 84
-63 81 09 02 03 AA 09 00 23 A0 19 01 46 87 4E 84
-63 09 0A 00 03 26 0A 00 4E 87 23 20 EA 00 52 84
-59 FA 63 8E 07 30 83 AA 47 00 13 83 1C 00 93 1B
-03 01 83 9D 0A 00 93 DC 0B 01 93 FF 1D 00 63 8B
-0F 00 13 D7 9D 40 93 70 17 00 06 9F 93 12 0F 01
-13 DF 02 01 83 A3 07 00 63 8A 03 00 03 A6 03 00
-90 C3 1C 40 23 A0 F3 00 23 20 74 00 63 47 0B 00
-05 0B 13 1A 0B 01 13 5B 0A 41 05 08 93 1A 08 01
-13 D8 0A 41 E3 11 0E F1 13 9E 2C 00 33 03 DE 41
-B3 0B 6F 00 93 9C 0B 01 93 D4 0C 01 63 49 B0 66
-03 2D 04 00 A2 8D 83 2A 0D 00 83 2B 4D 00 83 A7
-4A 00 03 A5 0A 00 23 22 FD 00 23 A2 7A 01 23 20
-AD 00 23 A0 0A 00 63 48 0B 22 03 AC 4D 00 83 AD
-0D 00 83 18 2C 00 63 82 68 25 E3 98 0D FE 03 2B
-04 00 83 2D 0B 00 6E 87 83 29 44 00 69 78 93 00
-18 00 03 9E 09 00 13 13 0E 01 93 5C 03 01 13 DD
-8C 00 13 7F FE 0F 93 15 8E 01 13 15 8D 01 13 5A
-1F 00 13 5C 2F 00 13 59 3F 00 93 53 4F 00 93 52
-5F 00 93 5F 6F 00 13 56 7F 00 93 D7 85 41 93 59
-85 41 13 DF 9C 00 93 DE AC 00 13 DE BC 00 13 D3
-CC 00 93 D8 DC 00 13 D8 EC 00 93 D6 FC 00 B3 CC
-97 00 13 FD 1C 00 13 D5 14 00 63 08 0D 00 B3 44
-15 00 93 95 04 01 13 D5 05 01 B3 4C AA 00 13 FD
+13 55 08 01 B3 C5 A2 00 93 F0 15 00 93 DE 59 00
+93 5F 15 00 63 8B 00 00 69 77 93 03 17 00 33 CE
+7F 00 93 17 0E 01 93 DF 07 01 B3 C8 FE 01 13 FF
+18 00 93 D2 69 00 13 D5 1F 00 63 0B 0F 00 E9 76
+13 86 16 00 33 43 C5 00 13 18 03 01 13 55 08 01
+B3 C5 A2 00 93 F0 15 00 93 D9 79 00 93 5F 15 00
+63 8B 00 00 E9 7E 13 87 1E 00 B3 C3 EF 00 13 9E
+03 01 93 5F 0E 01 93 F7 1F 00 13 D5 1F 00 63 8B
+37 01 E9 78 13 8F 18 00 B3 42 E5 01 93 96 02 01
+13 D5 06 01 03 D6 C4 03 13 13 05 01 83 D9 84 03
+13 58 03 41 E3 13 06 80 23 9E A4 02 6F F0 EF FF
+03 1E 45 00 39 71 22 DC 6A C8 06 DE 26 DA 4A D8
+4E D6 52 D4 56 D2 5A D0 5E CE 62 CC 66 CA 6E C6
+40 51 2A 8D E3 52 C0 0B 2E 8B 01 48 81 4E 81 4C
+01 4F 13 7C F8 0F 63 4D 0B 38 E3 0D 04 08 A2 87
+19 A0 9C 43 99 C7 83 A2 47 00 83 93 22 00 E3 9A
+63 FF 22 8A 03 26 0A 00 01 47 23 20 EA 00 52 84
+3D C6 08 42 23 20 46 01 52 87 32 84 2D C1 14 41
+10 C1 32 87 2A 84 A1 CE 84 42 88 C2 2A 87 36 84
+B9 C4 03 A9 04 00 94 C0 36 87 26 84 63 01 09 04
+83 28 09 00 23 20 99 00 26 87 4A 84 63 89 08 02
+83 A9 08 00 23 A0 28 01 4A 87 46 84 63 81 09 02
+03 AA 09 00 23 A0 19 01 46 87 4E 84 63 09 0A 00
+03 26 0A 00 4E 87 23 20 EA 00 52 84 59 FA 63 8E
+07 30 83 AA 47 00 13 83 1C 00 93 1B 03 01 83 9D
+0A 00 93 DC 0B 01 93 FF 1D 00 63 8B 0F 00 13 D7
+9D 40 93 70 17 00 06 9F 93 12 0F 01 13 DF 02 01
+83 A3 07 00 63 8A 03 00 03 A6 03 00 90 C3 1C 40
+23 A0 F3 00 23 20 74 00 63 47 0B 00 05 0B 13 1A
+0B 01 13 5B 0A 41 05 08 93 1A 08 01 13 D8 0A 41
+E3 11 0E F1 13 9E 2C 00 33 03 DE 41 B3 0B 6F 00
+93 9C 0B 01 93 D4 0C 01 63 49 B0 66 03 2D 04 00
+A2 8D 83 2A 0D 00 83 2B 4D 00 83 A7 4A 00 03 A5
+0A 00 23 22 FD 00 23 A2 7A 01 23 20 AD 00 23 A0
+0A 00 63 48 0B 22 03 AC 4D 00 83 AD 0D 00 83 18
+2C 00 63 82 68 25 E3 98 0D FE 03 2B 04 00 83 2D
+0B 00 6E 87 83 29 44 00 69 78 93 00 18 00 03 9E
+09 00 13 13 0E 01 93 5C 03 01 13 DD 8C 00 13 7F
+FE 0F 93 15 8E 01 13 15 8D 01 13 5A 1F 00 13 5C
+2F 00 13 59 3F 00 93 53 4F 00 93 52 5F 00 93 5F
+6F 00 13 56 7F 00 93 D7 85 41 93 59 85 41 13 DF
+9C 00 93 DE AC 00 13 DE BC 00 13 D3 CC 00 93 D8
+DC 00 13 D8 EC 00 93 D6 FC 00 B3 CC 97 00 13 FD
+1C 00 13 D5 14 00 63 08 0D 00 B3 44 15 00 93 95
+04 01 13 D5 05 01 B3 4C AA 00 13 FD 1C 00 05 81
+63 08 0D 00 B3 44 15 00 93 95 04 01 13 D5 05 01
+B3 4C AC 00 13 FD 1C 00 05 81 63 08 0D 00 B3 44
+15 00 93 95 04 01 13 D5 05 01 B3 4C A9 00 13 FD
1C 00 05 81 63 08 0D 00 B3 44 15 00 93 95 04 01
-13 D5 05 01 B3 4C AC 00 13 FD 1C 00 05 81 63 08
-0D 00 B3 44 15 00 93 95 04 01 13 D5 05 01 B3 4C
-A9 00 13 FD 1C 00 05 81 63 08 0D 00 B3 44 15 00
-93 95 04 01 13 D5 05 01 B3 CC A3 00 13 FD 1C 00
+13 D5 05 01 B3 CC A3 00 13 FD 1C 00 05 81 63 08
+0D 00 B3 44 15 00 93 95 04 01 13 D5 05 01 B3 CC
+A2 00 13 FD 1C 00 05 81 63 08 0D 00 B3 44 15 00
+93 95 04 01 13 D5 05 01 B3 CC AF 00 13 FD 1C 00
05 81 63 08 0D 00 B3 44 15 00 93 95 04 01 13 D5
-05 01 B3 CC A2 00 13 FD 1C 00 05 81 63 08 0D 00
-B3 44 15 00 93 95 04 01 13 D5 05 01 B3 CC AF 00
-13 FD 1C 00 05 81 63 08 0D 00 B3 44 15 00 93 95
-04 01 13 D5 05 01 93 7C 15 00 93 55 15 00 63 88
-CC 00 33 CD 15 00 93 14 0D 01 93 D5 04 01 33 C5
-B9 00 93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00
-93 14 0D 01 93 D5 04 01 33 45 BF 00 93 7C 15 00
-85 81 63 88 0C 00 33 CD 15 00 93 14 0D 01 93 D5
-04 01 33 C5 BE 00 93 7C 15 00 85 81 63 88 0C 00
-33 CD 15 00 93 14 0D 01 93 D5 04 01 33 45 BE 00
-93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00 93 14
-0D 01 93 D5 04 01 33 45 B3 00 93 7C 15 00 85 81
-63 88 0C 00 33 CD 15 00 93 14 0D 01 93 D5 04 01
-33 C5 B8 00 93 7C 15 00 85 81 63 88 0C 00 33 CD
-15 00 93 14 0D 01 93 D5 04 01 33 45 B8 00 93 7C
+05 01 93 7C 15 00 93 55 15 00 63 88 CC 00 33 CD
+15 00 93 14 0D 01 93 D5 04 01 33 C5 B9 00 93 7C
15 00 85 81 63 88 0C 00 33 CD 15 00 93 14 0D 01
-93 D5 04 01 13 F5 15 00 93 D4 15 00 63 08 D5 00
-B3 CC 14 00 13 9D 0C 01 93 54 0D 01 63 8A 0D 06
-83 AD 0D 00 A9 BD 83 AE 4D 00 83 AD 0D 00 83 C6
-0E 00 63 8C 86 01 E3 8C 0D DC 83 AE 4D 00 83 AD
-0D 00 83 C6 0E 00 E3 98 86 FF 03 2B 04 00 03 27
-0B 00 D9 B3 63 02 04 50 A2 87 21 A0 9C 43 E3 8C
-07 C6 D8 43 83 40 07 00 E3 9A 80 FF AD B1 48 43
-85 0E 93 96 0E 01 83 04 15 00 93 DE 06 01 13 F9
-14 00 B3 08 2F 01 93 99 08 01 13 DF 09 01 39 B3
-83 2D 4B 00 01 4E 01 43 23 A2 BA 01 23 22 7B 01
-23 A0 EA 00 23 20 5B 01 85 49 81 4C 05 4D 93 FA
-79 00 85 0C A2 87 01 47 63 8B 0A 04 05 4B 63 83
-6A 05 89 4B 63 8D 7A 03 8D 40 63 87 1A 02 11 4A
-63 81 4A 03 15 4C 63 8B 8A 01 19 49 63 85 2A 01
-1C 40 05 47 A5 C7 9C 43 05 07 AD C3 9C 43 05 07
-B1 CF 9C 43 05 07 B9 CB 9C 43 05 07 A1 CB 9C 43
-05 07 A9 C7 9C 43 05 07 B1 C3 63 01 37 05 9C 43
-05 07 BA 83 85 CF 9C 43 05 07 8D CB 9C 43 13 87
-23 00 8D C7 9C 43 13 87 33 00 8D C3 9C 43 13 87
-43 00 89 CF 9C 43 13 87 53 00 89 CB 9C 43 13 87
-63 00 89 C7 9C 43 13 87 73 00 E1 F3 CE 86 25 C7
-AD CE A5 CF 83 2D 44 00 83 AA 47 00 03 9B 0D 00
-83 9B 2A 00 83 95 2D 00 93 10 0B 01 13 DC 00 01
-13 75 0B F0 13 59 8C 00 B3 63 25 01 23 90 7D 00
-83 98 0A 00 B3 8E 75 41 13 98 08 01 13 5A 08 01
-93 F2 08 F0 93 5F 8A 00 33 E6 F2 01 23 90 CA 00
-63 55 D0 03 3E 8F 9C 43 FD 16 63 0D 0E 00 23 20
-EE 01 7A 8E 51 FF 91 CE 85 C3 3E 8F FD 16 9C 43
-E3 17 0E FE 7A 83 7A 8E F5 B7 22 8F 7D 17 00 40
-E9 BF 99 C3 3E 84 E1 BD 23 20 0E 00 63 8E AC 01
-86 09 63 08 03 00 9A 87 01 4E 01 43 81 4C 3E 84
-7D BD 23 20 00 00 02 90 03 27 03 00 63 01 07 22
-03 24 43 00 E9 72 93 8C 12 00 83 1F 04 00 13 96
-0F 01 93 56 06 01 93 DE 86 00 13 FF FF 0F 13 9E
-8F 01 13 93 8E 01 93 55 8E 41 13 5D 1F 00 93 5D
-2F 00 93 5A 3F 00 13 5B 4F 00 93 5B 5F 00 93 50
-6F 00 13 5C 7F 00 13 55 83 41 13 D9 96 00 93 D3
-A6 00 93 D7 B6 00 93 D9 C6 00 93 D8 D6 00 13 D8
-E6 00 13 D4 F6 00 33 CA 95 00 93 72 1A 00 13 D6
-14 00 63 88 02 00 B3 44 96 01 93 9F 04 01 13 D6
-0F 01 B3 46 CD 00 13 FF 16 00 13 53 16 00 63 08
-0F 00 B3 4E 93 01 13 9E 0E 01 13 53 0E 01 33 CA
-6D 00 93 72 1A 00 13 56 13 00 63 88 02 00 B3 44
-96 01 93 9F 04 01 13 D6 0F 01 B3 C6 CA 00 13 FF
-16 00 13 53 16 00 63 08 0F 00 B3 4E 93 01 13 9E
-0E 01 13 53 0E 01 33 4A 6B 00 93 72 1A 00 13 56
-13 00 63 88 02 00 B3 44 96 01 93 9F 04 01 13 D6
-0F 01 B3 C6 CB 00 13 FF 16 00 13 53 16 00 63 08
-0F 00 B3 4E 93 01 13 9E 0E 01 13 53 0E 01 33 CA
-60 00 93 72 1A 00 13 56 13 00 63 88 02 00 B3 44
-96 01 93 9F 04 01 13 D6 0F 01 93 76 16 00 13 5E
-16 00 63 88 86 01 33 4F 9E 01 93 1E 0F 01 13 DE
-0E 01 33 43 C5 01 13 7A 13 00 93 5F 1E 00 63 08
-0A 00 B3 C2 9F 01 93 94 02 01 93 DF 04 01 33 46
-F9 01 93 76 16 00 13 DE 1F 00 99 C6 33 4F 9E 01
-93 1E 0F 01 13 DE 0E 01 33 C3 C3 01 13 7A 13 00
-93 5F 1E 00 63 08 0A 00 B3 C2 9F 01 93 94 02 01
-93 DF 04 01 33 C6 F7 01 93 76 16 00 13 DE 1F 00
-99 C6 33 4F 9E 01 93 1E 0F 01 13 DE 0E 01 33 C3
-C9 01 13 7A 13 00 93 5F 1E 00 63 08 0A 00 B3 C2
-9F 01 93 94 02 01 93 DF 04 01 33 C6 F8 01 93 76
+93 D5 04 01 33 45 BF 00 93 7C 15 00 85 81 63 88
+0C 00 33 CD 15 00 93 14 0D 01 93 D5 04 01 33 C5
+BE 00 93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00
+93 14 0D 01 93 D5 04 01 33 45 BE 00 93 7C 15 00
+85 81 63 88 0C 00 33 CD 15 00 93 14 0D 01 93 D5
+04 01 33 45 B3 00 93 7C 15 00 85 81 63 88 0C 00
+33 CD 15 00 93 14 0D 01 93 D5 04 01 33 C5 B8 00
+93 7C 15 00 85 81 63 88 0C 00 33 CD 15 00 93 14
+0D 01 93 D5 04 01 33 45 B8 00 93 7C 15 00 85 81
+63 88 0C 00 33 CD 15 00 93 14 0D 01 93 D5 04 01
+13 F5 15 00 93 D4 15 00 63 08 D5 00 B3 CC 14 00
+13 9D 0C 01 93 54 0D 01 63 8A 0D 06 83 AD 0D 00
+A9 BD 83 AE 4D 00 83 AD 0D 00 83 C6 0E 00 63 8C
+86 01 E3 8C 0D DC 83 AE 4D 00 83 AD 0D 00 83 C6
+0E 00 E3 98 86 FF 03 2B 04 00 03 27 0B 00 D9 B3
+63 02 04 50 A2 87 21 A0 9C 43 E3 8C 07 C6 D8 43
+83 40 07 00 E3 9A 80 FF AD B1 48 43 85 0E 93 96
+0E 01 83 04 15 00 93 DE 06 01 13 F9 14 00 B3 08
+2F 01 93 99 08 01 13 DF 09 01 39 B3 83 2D 4B 00
+01 4E 01 43 23 A2 BA 01 23 22 7B 01 23 A0 EA 00
+23 20 5B 01 85 49 81 4C 05 4D 93 FA 79 00 85 0C
+A2 87 01 47 63 8B 0A 04 05 4B 63 83 6A 05 89 4B
+63 8D 7A 03 8D 40 63 87 1A 02 11 4A 63 81 4A 03
+15 4C 63 8B 8A 01 19 49 63 85 2A 01 1C 40 05 47
+A5 C7 9C 43 05 07 AD C3 9C 43 05 07 B1 CF 9C 43
+05 07 B9 CB 9C 43 05 07 A1 CB 9C 43 05 07 A9 C7
+9C 43 05 07 B1 C3 63 01 37 05 9C 43 05 07 BA 83
+85 CF 9C 43 05 07 8D CB 9C 43 13 87 23 00 8D C7
+9C 43 13 87 33 00 8D C3 9C 43 13 87 43 00 89 CF
+9C 43 13 87 53 00 89 CB 9C 43 13 87 63 00 89 C7
+9C 43 13 87 73 00 E1 F3 CE 86 25 C7 AD CE A5 CF
+83 2D 44 00 83 AA 47 00 03 9B 0D 00 83 9B 2A 00
+83 95 2D 00 93 10 0B 01 13 DC 00 01 13 75 0B F0
+13 59 8C 00 B3 63 25 01 23 90 7D 00 83 98 0A 00
+B3 8E 75 41 13 98 08 01 13 5A 08 01 93 F2 08 F0
+93 5F 8A 00 33 E6 F2 01 23 90 CA 00 63 55 D0 03
+3E 8F 9C 43 FD 16 63 0D 0E 00 23 20 EE 01 7A 8E
+51 FF 91 CE 85 C3 3E 8F FD 16 9C 43 E3 17 0E FE
+7A 83 7A 8E F5 B7 22 8F 7D 17 00 40 E9 BF 99 C3
+3E 84 E1 BD 23 20 0E 00 63 8E AC 01 86 09 63 08
+03 00 9A 87 01 4E 01 43 81 4C 3E 84 7D BD 23 20
+00 00 02 90 03 27 03 00 63 01 07 22 03 24 43 00
+E9 72 93 8C 12 00 83 1F 04 00 13 96 0F 01 93 56
+06 01 93 DE 86 00 13 FF FF 0F 13 9E 8F 01 13 93
+8E 01 93 55 8E 41 13 5D 1F 00 93 5D 2F 00 93 5A
+3F 00 13 5B 4F 00 93 5B 5F 00 93 50 6F 00 13 5C
+7F 00 13 55 83 41 13 D9 96 00 93 D3 A6 00 93 D7
+B6 00 93 D9 C6 00 93 D8 D6 00 13 D8 E6 00 13 D4
+F6 00 33 CA 95 00 93 72 1A 00 13 D6 14 00 63 88
+02 00 B3 44 96 01 93 9F 04 01 13 D6 0F 01 B3 46
+CD 00 13 FF 16 00 13 53 16 00 63 08 0F 00 B3 4E
+93 01 13 9E 0E 01 13 53 0E 01 33 CA 6D 00 93 72
+1A 00 13 56 13 00 63 88 02 00 B3 44 96 01 93 9F
+04 01 13 D6 0F 01 B3 C6 CA 00 13 FF 16 00 13 53
+16 00 63 08 0F 00 B3 4E 93 01 13 9E 0E 01 13 53
+0E 01 33 4A 6B 00 93 72 1A 00 13 56 13 00 63 88
+02 00 B3 44 96 01 93 9F 04 01 13 D6 0F 01 B3 C6
+CB 00 13 FF 16 00 13 53 16 00 63 08 0F 00 B3 4E
+93 01 13 9E 0E 01 13 53 0E 01 33 CA 60 00 93 72
+1A 00 13 56 13 00 63 88 02 00 B3 44 96 01 93 9F
+04 01 13 D6 0F 01 93 76 16 00 13 5E 16 00 63 88
+86 01 33 4F 9E 01 93 1E 0F 01 13 DE 0E 01 33 43
+C5 01 13 7A 13 00 93 5F 1E 00 63 08 0A 00 B3 C2
+9F 01 93 94 02 01 93 DF 04 01 33 46 F9 01 93 76
16 00 13 DE 1F 00 99 C6 33 4F 9E 01 93 1E 0F 01
-13 DE 0E 01 33 43 C8 01 13 7A 13 00 93 5F 1E 00
+13 DE 0E 01 33 C3 C3 01 13 7A 13 00 93 5F 1E 00
63 08 0A 00 B3 C2 9F 01 93 94 02 01 93 DF 04 01
-13 F6 1F 00 93 D4 1F 00 63 08 86 00 B3 C6 94 01
-13 9F 06 01 93 54 0F 01 18 43 E3 16 07 E4 F2 50
-62 54 42 59 B2 59 22 5A 92 5A 02 5B F2 4B 62 4C
-D2 4C 42 4D B2 4D 26 85 D2 54 21 61 82 80 05 4A
-E3 09 04 DA 81 4C 81 4A 81 4B 93 75 7A 00 85 0B
-22 86 01 49 B1 C9 85 4D 63 83 B5 05 89 4F 63 8D
-F5 03 0D 47 63 87 E5 02 91 40 63 81 15 02 95 42
-63 8B 55 00 19 4F 63 85 E5 01 10 40 05 49 25 C6
-10 42 05 09 2D C2 10 42 05 09 31 CE 10 42 05 09
-39 CA 10 42 05 09 21 CA 10 42 05 09 29 C6 10 42
-05 09 31 C2 63 01 49 05 10 42 05 09 CA 83 05 CE
-10 42 05 09 0D CA 10 42 13 89 23 00 0D C6 10 42
-13 89 33 00 0D C2 10 42 13 89 43 00 09 CE 10 42
-13 89 53 00 09 CA 10 42 13 89 63 00 09 C6 10 42
-13 89 73 00 61 F2 A2 89 D2 8D 32 84 63 07 09 02
-63 80 0D 04 15 CC 4C 40 03 A5 49 00 6A 86 EF E0
-5F C8 63 57 A0 02 A2 87 00 40 FD 1D 63 8F 0C 00
-23 A0 FC 00 BE 8C E3 1D 09 FC 63 80 0D 02 19 CC
-A2 87 FD 1D 00 40 E3 95 0C FE BE 8A BE 8C E5 B7
-CE 87 7D 19 83 A9 09 00 D1 BF 01 F8 23 A0 0C 00
-05 44 63 89 8B 00 06 0A 56 84 DD BD 01 4C 2E 8B
-81 44 AD B8 56 84 AD B8 83 27 00 00 02 90 01 11
-26 CA 44 4D 22 CC 4A C8 4E C6 06 CE 69 79 23 2C
-05 02 23 2E 05 02 AA 89 01 44 05 09 63 8E 04 40
-85 45 4E 85 EF F0 0F F0 83 D7 89 03 13 77 F5 0F
-13 56 17 00 B3 C6 A7 00 93 F2 16 00 93 D3 17 00
-63 88 02 00 B3 C0 23 01 13 93 00 01 93 53 03 01
-B3 C5 C3 00 13 F8 15 00 93 58 27 00 13 DF 13 00
-63 08 08 00 33 4E 2F 01 93 1E 0E 01 13 DF 0E 01
-B3 4F 1F 01 93 F6 1F 00 93 52 37 00 93 50 1F 00
-99 C6 B3 C7 20 01 13 96 07 01 93 50 06 01 33 C3
-50 00 93 73 13 00 93 55 47 00 13 DE 10 00 63 88
-03 00 33 48 2E 01 93 18 08 01 13 DE 08 01 B3 4E
-BE 00 13 FF 1E 00 93 5F 57 00 93 57 1E 00 63 08
-0F 00 B3 C6 27 01 93 92 06 01 93 D7 02 01 33 C6
-F7 01 93 70 16 00 13 53 67 00 13 D8 17 00 63 88
-00 00 B3 43 28 01 93 95 03 01 13 D8 05 01 B3 48
-68 00 13 FE 18 00 1D 83 93 5F 18 00 63 08 0E 00
-B3 CE 2F 01 13 9F 0E 01 93 5F 0F 01 93 F6 1F 00
-13 D6 1F 00 63 88 E6 00 B3 42 26 01 93 97 02 01
-13 D6 07 01 21 81 B3 40 C5 00 13 73 F5 0F 93 F3
-10 00 93 55 13 00 13 5E 16 00 63 88 03 00 33 48
-2E 01 93 18 08 01 13 DE 08 01 33 47 BE 00 93 7E
-17 00 13 5F 23 00 93 52 1E 00 63 88 0E 00 B3 CF
-22 01 93 96 0F 01 93 D2 06 01 B3 C7 E2 01 13 F6
-17 00 13 55 33 00 93 D5 12 00 19 C6 B3 C0 25 01
-93 93 00 01 93 D5 03 01 33 C8 A5 00 93 78 18 00
-13 5E 43 00 13 DF 15 00 63 88 08 00 33 47 2F 01
-93 1E 07 01 13 DF 0E 01 B3 4F CF 01 93 F2 1F 00
-93 56 53 00 13 55 1F 00 63 88 02 00 B3 47 25 01
-13 96 07 01 13 55 06 01 B3 40 D5 00 93 F3 10 00
-93 55 63 00 13 5E 15 00 63 88 03 00 33 48 2E 01
-93 18 08 01 13 DE 08 01 33 47 BE 00 93 7E 17 00
-13 53 73 00 93 52 1E 00 63 88 0E 00 33 CF 22 01
-93 1F 0F 01 93 D2 0F 01 B3 C6 62 00 13 F6 16 00
-93 D0 12 00 19 C6 B3 C7 20 01 13 95 07 01 93 50
-05 01 FD 55 23 9C 19 02 4E 85 EF F0 AF CF 83 D3
-89 03 13 78 F5 0F 13 5E 18 00 B3 C5 A3 00 93 F8
-15 00 13 D3 13 00 63 88 08 00 33 47 23 01 93 1E
-07 01 13 D3 0E 01 33 4F C3 01 93 7F 1F 00 93 52
-28 00 93 57 13 00 63 88 0F 00 B3 C6 27 01 13 96
-06 01 93 57 06 01 B3 C0 57 00 93 F3 10 00 93 55
-38 00 13 D7 17 00 63 88 03 00 B3 48 27 01 13 9E
-08 01 13 57 0E 01 B3 4E B7 00 13 F3 1E 00 13 5F
-48 00 93 57 17 00 63 08 03 00 B3 CF 27 01 93 92
-0F 01 93 D7 02 01 B3 C6 E7 01 93 F0 16 00 13 56
-58 00 93 D8 17 00 63 88 00 00 B3 C3 28 01 93 95
-03 01 93 D8 05 01 33 CE C8 00 13 77 1E 00 93 5E
-68 00 93 DF 18 00 19 C7 33 C3 2F 01 13 1F 03 01
-93 5F 0F 01 B3 C2 DF 01 93 F6 12 00 13 58 78 00
-13 D6 1F 00 99 C6 B3 47 26 01 93 90 07 01 13 D6
-00 01 93 73 16 00 13 5E 16 00 63 88 03 01 B3 45
-2E 01 93 98 05 01 13 DE 08 01 21 81 33 47 C5 01
-93 7E F5 0F 13 73 17 00 13 DF 1E 00 13 58 1E 00
-63 08 03 00 B3 4F 28 01 93 92 0F 01 13 D8 02 01
-B3 46 E8 01 93 F0 16 00 13 D6 2E 00 93 55 18 00
-63 88 00 00 B3 C7 25 01 93 93 07 01 93 D5 03 01
-B3 C8 C5 00 13 FE 18 00 13 D5 3E 00 13 DF 15 00
-63 08 0E 00 33 47 2F 01 13 13 07 01 13 5F 03 01
-B3 4F AF 00 93 F2 1F 00 13 D8 4E 00 13 56 1F 00
-63 88 02 00 B3 46 26 01 93 90 06 01 13 D6 00 01
-B3 47 06 01 93 F3 17 00 93 D5 5E 00 13 55 16 00
-63 88 03 00 B3 48 25 01 13 9E 08 01 13 55 0E 01
-33 47 B5 00 13 73 17 00 13 DF 6E 00 13 58 15 00
-63 08 03 00 B3 4F 28 01 93 92 0F 01 13 D8 02 01
-B3 46 E8 01 93 F0 16 00 93 DE 7E 00 93 53 18 00
-63 88 00 00 33 C6 23 01 93 17 06 01 93 D3 07 01
-B3 C5 D3 01 93 F8 15 00 13 D7 13 00 63 88 08 00
-33 4E 27 01 13 15 0E 01 13 57 05 01 23 9C E9 02
-01 CC 05 04 E3 96 84 BE F2 40 62 44 D2 44 42 49
-B2 49 01 45 05 61 82 80 23 9D E9 02 05 44 E3 85
-84 FE 05 44 F1 B6 95 47 63 E5 A7 04 B7 02 04 F0
-0A 05 13 83 02 09 B3 03 65 00 83 A5 03 00 82 85
-37 06 04 F0 03 25 86 5C 82 80 B7 08 04 F0 03 A5
-08 5D 82 80 37 08 04 F0 03 25 C8 5C 82 80 37 07
-04 F0 03 25 07 0F 82 80 B7 06 04 F0 03 A5 C6 0E
-82 80 01 45 82 80 B3 46 B5 00 93 F2 16 00 13 57
-15 00 13 D6 15 00 63 8B 02 00 69 73 93 03 13 00
-B3 47 76 00 93 95 07 01 13 D6 05 01 33 48 E6 00
-93 78 18 00 13 5E 25 00 93 52 16 00 63 8B 08 00
-E9 7E 13 8F 1E 00 B3 CF E2 01 93 96 0F 01 93 D2
-06 01 33 C7 C2 01 13 73 17 00 93 53 35 00 93 D8
-12 00 63 0B 03 00 E9 75 13 86 15 00 B3 C7 C8 00
-13 98 07 01 93 58 08 01 33 CE 78 00 93 7E 1E 00
-13 5F 45 00 13 D3 18 00 63 8B 0E 00 E9 7F 93 86
-1F 00 B3 42 D3 00 13 97 02 01 13 53 07 01 B3 43
-E3 01 93 F5 13 00 13 56 55 00 93 5E 13 00 91 C9
-69 78 93 08 18 00 B3 C7 1E 01 13 9E 07 01 93 5E
-0E 01 33 CF CE 00 93 7F 1F 00 93 56 65 00 93 D5
-1E 00 63 8B 0F 00 E9 72 13 87 12 00 33 C3 E5 00
-93 13 03 01 93 D5 03 01 33 C6 D5 00 13 78 16 00
-93 58 75 00 13 DF 15 00 63 0B 08 00 E9 77 13 8E
-17 00 33 45 CF 01 93 1E 05 01 13 DF 0E 01 93 7F
-1F 00 13 55 1F 00 63 8B 1F 01 E9 76 93 82 16 00
-33 47 55 00 13 13 07 01 13 55 03 01 82 80 B3 C6
-A5 00 13 77 F5 0F 93 F2 16 00 AA 87 13 56 17 00
-13 D8 15 00 63 8B 02 00 E9 75 13 83 15 00 B3 43
-68 00 13 95 03 01 13 58 05 01 B3 48 C8 00 13 FE
-18 00 93 5E 27 00 93 55 18 00 63 0B 0E 00 69 7F
-93 0F 1F 00 B3 C6 F5 01 93 92 06 01 93 D5 02 01
-33 C6 D5 01 13 73 16 00 93 53 37 00 93 DE 15 00
-63 0B 03 00 69 78 93 08 18 00 33 C5 1E 01 13 1E
-05 01 93 5E 0E 01 33 CF 7E 00 93 7F 1F 00 93 56
-47 00 93 D3 1E 00 63 8B 0F 00 E9 72 93 85 12 00
-33 C6 B3 00 13 13 06 01 93 53 03 01 33 C8 D3 00
-93 78 18 00 13 5E 57 00 93 D2 13 00 63 8B 08 00
-E9 7E 13 8F 1E 00 33 C5 E2 01 93 1F 05 01 93 D2
-0F 01 B3 C6 C2 01 93 F5 16 00 13 53 67 00 13 DE
-12 00 91 C9 69 76 93 03 16 00 33 48 7E 00 93 18
-08 01 13 DE 08 01 B3 4E 6E 00 13 FF 1E 00 1D 83
-93 55 1E 00 63 0B 0F 00 E9 7F 93 82 1F 00 33 C5
-55 00 93 16 05 01 93 D5 06 01 13 F3 15 00 13 DE
-15 00 63 0B E3 00 69 76 93 03 16 00 33 48 7E 00
-93 18 08 01 13 DE 08 01 93 DE 87 00 33 CF CE 01
-93 7F 1F 00 13 D7 87 00 13 53 1E 00 A5 83 63 8B
-0F 00 E9 72 93 86 12 00 33 45 D3 00 93 15 05 01
-13 D3 05 01 33 C6 67 00 93 73 16 00 13 58 27 00
-93 5F 13 00 63 8B 03 00 E9 78 13 8E 18 00 B3 CE
-CF 01 13 9F 0E 01 93 5F 0F 01 B3 C7 0F 01 93 F2
-17 00 93 56 37 00 93 D3 1F 00 63 8B 02 00 E9 75
-13 83 15 00 33 C5 63 00 13 16 05 01 93 53 06 01
-33 C8 D3 00 93 78 18 00 13 5E 47 00 93 D2 13 00
-63 8B 08 00 E9 7E 13 8F 1E 00 B3 CF E2 01 93 97
-0F 01 93 D2 07 01 B3 C6 C2 01 93 F5 16 00 13 53
-57 00 93 D8 12 00 91 C9 69 76 93 03 16 00 33 C5
-78 00 13 18 05 01 93 58 08 01 33 CE 68 00 93 7E
-1E 00 13 5F 67 00 93 D5 18 00 63 8B 0E 00 E9 7F
-93 87 1F 00 B3 C2 F5 00 93 96 02 01 93 D5 06 01
-33 C3 E5 01 13 76 13 00 1D 83 13 DE 15 00 11 CA
-E9 73 13 88 13 00 33 45 0E 01 93 18 05 01 13 DE
-08 01 93 7E 1E 00 13 55 1E 00 63 8B EE 00 69 7F
-93 0F 1F 00 B3 47 F5 01 93 92 07 01 13 D5 02 01
-82 80 33 C6 A5 00 93 76 F5 0F 13 17 05 01 93 72
-16 00 AA 87 13 53 07 01 13 D8 16 00 13 DE 15 00
-63 8B 02 00 69 75 93 03 15 00 B3 45 7E 00 93 98
-05 01 13 DE 08 01 B3 4E 0E 01 13 FF 1E 00 93 DF
-26 00 13 55 1E 00 63 0B 0F 00 69 76 93 02 16 00
-33 47 55 00 13 18 07 01 13 55 08 01 B3 43 F5 01
-93 F8 13 00 93 D5 36 00 93 52 15 00 63 8B 08 00
-69 7E 93 0E 1E 00 33 CF D2 01 93 1F 0F 01 93 D2
-0F 01 33 C6 B2 00 13 77 16 00 13 D8 46 00 13 DE
-12 00 11 CB E9 73 93 88 13 00 33 45 1E 01 93 15
-05 01 13 DE 05 01 B3 4E 0E 01 13 FF 1E 00 93 DF
-56 00 93 53 1E 00 63 0B 0F 00 E9 72 13 86 12 00
-33 C7 C3 00 13 18 07 01 93 53 08 01 B3 C8 F3 01
-93 F5 18 00 13 DE 66 00 93 D2 13 00 91 C9 E9 7E
-13 8F 1E 00 33 C5 E2 01 93 1F 05 01 93 D2 0F 01
-33 C6 C2 01 13 77 16 00 9D 82 13 DE 12 00 11 CB
-69 78 93 03 18 00 B3 48 7E 00 93 95 08 01 13 DE
-05 01 93 7E 1E 00 13 58 1E 00 63 94 DE 38 13 56
-83 00 33 47 C8 00 93 73 17 00 93 56 83 00 13 5F
-18 00 13 53 93 00 63 8B 03 00 E9 78 93 85 18 00
-33 4E BF 00 93 1E 0E 01 13 DF 0E 01 B3 4F 6F 00
-93 F2 1F 00 13 D8 26 00 13 53 1F 00 63 8B 02 00
-69 76 13 07 16 00 33 45 E3 00 93 13 05 01 13 D3
-03 01 B3 48 03 01 93 F5 18 00 13 DE 36 00 13 58
-13 00 91 C9 E9 7E 13 8F 1E 00 B3 4F E8 01 93 92
-0F 01 13 D8 02 01 33 46 C8 01 93 73 16 00 13 D7
-46 00 13 5E 18 00 63 8B 03 00 69 73 93 08 13 00
-33 45 1E 01 93 15 05 01 13 DE 05 01 B3 4E EE 00
-13 FF 1E 00 93 DF 56 00 13 53 1E 00 63 0B 0F 00
-E9 72 13 88 12 00 33 46 03 01 93 13 06 01 13 D3
-03 01 33 47 F3 01 93 78 17 00 93 D5 66 00 93 5F
-13 00 63 8B 08 00 69 7E 93 0E 1E 00 33 C5 DF 01
-13 1F 05 01 93 5F 0F 01 B3 C2 BF 00 13 F8 12 00
-9D 82 93 D8 1F 00 63 0B 08 00 69 76 93 03 16 00
-33 C3 78 00 13 17 03 01 93 58 07 01 93 F5 18 00
-93 DF 18 00 63 8B D5 00 69 7E 93 0E 1E 00 33 C5
-DF 01 13 1F 05 01 93 5F 0F 01 93 D2 07 01 33 C8
-5F 00 93 F3 F2 0F 93 76 18 00 C1 83 13 D6 13 00
-13 DE 1F 00 91 CA 69 73 13 07 13 00 B3 48 EE 00
-93 95 08 01 13 DE 05 01 B3 4E CE 00 13 FF 1E 00
-93 DF 23 00 13 53 1E 00 63 0B 0F 00 E9 72 13 88
-12 00 33 45 03 01 93 16 05 01 13 D3 06 01 33 46
-F3 01 13 77 16 00 93 D8 33 00 93 5F 13 00 11 CB
-E9 75 13 8E 15 00 B3 CE CF 01 13 9F 0E 01 93 5F
-0F 01 B3 C2 1F 01 13 F8 12 00 93 D6 43 00 93 D8
-1F 00 63 0B 08 00 69 73 13 06 13 00 33 C5 C8 00
-13 17 05 01 93 58 07 01 B3 C5 D8 00 13 FE 15 00
-93 DE 53 00 13 D3 18 00 63 0B 0E 00 69 7F 93 0F
-1F 00 B3 42 F3 01 13 98 02 01 13 53 08 01 B3 46
-D3 01 13 F6 16 00 13 D7 63 00 93 5E 13 00 11 CA
-E9 78 93 85 18 00 33 C5 BE 00 13 1E 05 01 93 5E
-0E 01 33 CF EE 00 93 7F 1F 00 93 D3 73 00 13 D6
-1E 00 63 8B 0F 00 E9 72 13 88 12 00 33 43 06 01
-93 16 03 01 13 D6 06 01 13 77 16 00 93 5E 16 00
-63 17 77 12 13 DF 87 00 B3 4F DF 01 93 F3 1F 00
-93 D2 87 00 13 D7 1E 00 A5 83 63 8B 03 00 69 78
-13 03 18 00 B3 46 67 00 13 96 06 01 13 57 06 01
-B3 48 F7 00 93 F5 18 00 13 DE 22 00 93 53 17 00
-91 C9 E9 7E 13 8F 1E 00 33 C5 E3 01 93 1F 05 01
-93 D3 0F 01 B3 47 7E 00 13 F8 17 00 13 D3 32 00
-93 D5 13 00 63 0B 08 00 E9 76 13 86 16 00 33 C7
-C5 00 93 18 07 01 93 D5 08 01 33 4E B3 00 93 7E
-1E 00 13 DF 42 00 13 D8 15 00 63 8B 0E 00 E9 7F
-93 83 1F 00 33 45 78 00 93 17 05 01 13 D8 07 01
-33 43 0F 01 13 76 13 00 93 D6 52 00 93 5E 18 00
-11 CA 69 77 93 08 17 00 B3 C5 1E 01 13 9E 05 01
-93 5E 0E 01 33 CF D6 01 93 7F 1F 00 93 D3 62 00
-13 D6 1E 00 63 8B 0F 00 E9 77 13 88 17 00 33 45
-06 01 13 13 05 01 13 56 03 01 B3 C6 C3 00 93 F8
-16 00 93 D2 72 00 13 5F 16 00 63 8B 08 00 69 77
-93 05 17 00 33 4E BF 00 93 1E 0E 01 13 DF 0E 01
-93 7F 1F 00 13 55 1F 00 63 8A 5F 00 E9 73 93 87
-13 00 33 48 F5 00 13 15 08 01 41 81 82 80 E9 78
-93 85 18 00 33 C5 BE 00 13 1E 05 01 93 5E 0E 01
-D1 B5 69 7F 93 0F 1F 00 33 45 F8 01 93 12 05 01
-13 D8 02 01 AD B1 B3 C6 A5 00 13 77 F5 0F 93 17
-05 01 93 F2 16 00 13 D3 07 01 13 56 17 00 93 D8
-15 00 63 8B 02 00 E9 75 93 83 15 00 33 C5 78 00
-13 18 05 01 93 58 08 01 33 CE C8 00 93 7E 1E 00
-13 5F 27 00 93 D5 18 00 63 8B 0E 00 E9 7F 93 86
-1F 00 B3 C2 D5 00 93 97 02 01 93 D5 07 01 33 C6
-E5 01 93 73 16 00 13 58 37 00 13 DF 15 00 63 8B
-03 00 E9 78 13 8E 18 00 33 45 CF 01 93 1E 05 01
-13 DF 0E 01 B3 4F 0F 01 93 F2 1F 00 93 56 47 00
-13 58 1F 00 63 8B 02 00 E9 77 93 85 17 00 33 46
-B8 00 93 13 06 01 13 D8 03 01 B3 48 D8 00 13 FE
-18 00 93 5E 57 00 93 57 18 00 63 0B 0E 00 69 7F
-93 0F 1F 00 33 C5 F7 01 93 12 05 01 93 D7 02 01
-B3 C6 D7 01 93 F5 16 00 93 53 67 00 93 DE 17 00
-91 C9 69 76 13 08 16 00 B3 C8 0E 01 13 9E 08 01
-93 5E 0E 01 33 CF 7E 00 93 7F 1F 00 1D 83 93 D5
-1E 00 63 8B 0F 00 E9 72 93 87 12 00 33 C5 F5 00
-93 16 05 01 93 D5 06 01 93 F3 15 00 93 DE 15 00
-63 8B E3 00 69 76 13 08 16 00 B3 C8 0E 01 13 9E
-08 01 93 5E 0E 01 13 5F 83 00 B3 4F DF 01 93 F2
-1F 00 13 57 83 00 93 D3 1E 00 13 53 93 00 63 8B
-02 00 E9 77 93 86 17 00 33 C5 D3 00 93 15 05 01
-93 D3 05 01 33 46 73 00 13 78 16 00 93 58 27 00
-93 D2 13 00 63 0B 08 00 69 7E 93 0E 1E 00 33 CF
-D2 01 93 1F 0F 01 93 D2 0F 01 33 C3 12 01 93 77
-13 00 93 56 37 00 13 D8 12 00 91 CB E9 75 93 83
-15 00 33 45 78 00 13 16 05 01 13 58 06 01 B3 48
-D8 00 13 FE 18 00 93 5E 47 00 93 55 18 00 63 0B
-0E 00 69 7F 93 0F 1F 00 B3 C2 F5 01 13 93 02 01
-93 55 03 01 B3 C7 D5 01 93 F3 17 00 93 56 57 00
-13 DE 15 00 63 8B 03 00 69 76 13 08 16 00 33 45
-0E 01 93 18 05 01 13 DE 08 01 B3 4E DE 00 13 FF
-1E 00 93 5F 67 00 93 53 1E 00 63 0B 0F 00 E9 72
-13 83 12 00 B3 C5 63 00 93 97 05 01 93 D3 07 01
-B3 C6 F3 01 13 F6 16 00 1D 83 93 DE 13 00 11 CA
+33 C6 F7 01 93 76 16 00 13 DE 1F 00 99 C6 33 4F
+9E 01 93 1E 0F 01 13 DE 0E 01 33 C3 C9 01 13 7A
+13 00 93 5F 1E 00 63 08 0A 00 B3 C2 9F 01 93 94
+02 01 93 DF 04 01 33 C6 F8 01 93 76 16 00 13 DE
+1F 00 99 C6 33 4F 9E 01 93 1E 0F 01 13 DE 0E 01
+33 43 C8 01 13 7A 13 00 93 5F 1E 00 63 08 0A 00
+B3 C2 9F 01 93 94 02 01 93 DF 04 01 13 F6 1F 00
+93 D4 1F 00 63 08 86 00 B3 C6 94 01 13 9F 06 01
+93 54 0F 01 18 43 E3 16 07 E4 F2 50 62 54 42 59
+B2 59 22 5A 92 5A 02 5B F2 4B 62 4C D2 4C 42 4D
+B2 4D 26 85 D2 54 21 61 82 80 05 4A E3 09 04 DA
+81 4C 81 4A 81 4B 93 75 7A 00 85 0B 22 86 01 49
+B1 C9 85 4D 63 83 B5 05 89 4F 63 8D F5 03 0D 47
+63 87 E5 02 91 40 63 81 15 02 95 42 63 8B 55 00
+19 4F 63 85 E5 01 10 40 05 49 25 C6 10 42 05 09
+2D C2 10 42 05 09 31 CE 10 42 05 09 39 CA 10 42
+05 09 21 CA 10 42 05 09 29 C6 10 42 05 09 31 C2
+63 01 49 05 10 42 05 09 CA 83 05 CE 10 42 05 09
+0D CA 10 42 13 89 23 00 0D C6 10 42 13 89 33 00
+0D C2 10 42 13 89 43 00 09 CE 10 42 13 89 53 00
+09 CA 10 42 13 89 63 00 09 C6 10 42 13 89 73 00
+61 F2 A2 89 D2 8D 32 84 63 07 09 02 63 80 0D 04
+15 CC 4C 40 03 A5 49 00 6A 86 EF E0 5F C8 63 57
+A0 02 A2 87 00 40 FD 1D 63 8F 0C 00 23 A0 FC 00
+BE 8C E3 1D 09 FC 63 80 0D 02 19 CC A2 87 FD 1D
+00 40 E3 95 0C FE BE 8A BE 8C E5 B7 CE 87 7D 19
+83 A9 09 00 D1 BF 01 F8 23 A0 0C 00 05 44 63 89
+8B 00 06 0A 56 84 DD BD 01 4C 2E 8B 81 44 AD B8
+56 84 AD B8 83 27 00 00 02 90 01 11 26 CA 44 4D
+22 CC 4A C8 4E C6 06 CE 69 79 23 2C 05 02 23 2E
+05 02 AA 89 01 44 05 09 63 8E 04 40 85 45 4E 85
+EF F0 0F F0 83 D7 89 03 13 77 F5 0F 13 56 17 00
+B3 C6 A7 00 93 F2 16 00 93 D3 17 00 63 88 02 00
+B3 C0 23 01 13 93 00 01 93 53 03 01 B3 C5 C3 00
+13 F8 15 00 93 58 27 00 13 DF 13 00 63 08 08 00
+33 4E 2F 01 93 1E 0E 01 13 DF 0E 01 B3 4F 1F 01
+93 F6 1F 00 93 52 37 00 93 50 1F 00 99 C6 B3 C7
+20 01 13 96 07 01 93 50 06 01 33 C3 50 00 93 73
+13 00 93 55 47 00 13 DE 10 00 63 88 03 00 33 48
+2E 01 93 18 08 01 13 DE 08 01 B3 4E BE 00 13 FF
+1E 00 93 5F 57 00 93 57 1E 00 63 08 0F 00 B3 C6
+27 01 93 92 06 01 93 D7 02 01 33 C6 F7 01 93 70
+16 00 13 53 67 00 13 D8 17 00 63 88 00 00 B3 43
+28 01 93 95 03 01 13 D8 05 01 B3 48 68 00 13 FE
+18 00 1D 83 93 5F 18 00 63 08 0E 00 B3 CE 2F 01
+13 9F 0E 01 93 5F 0F 01 93 F6 1F 00 13 D6 1F 00
+63 88 E6 00 B3 42 26 01 93 97 02 01 13 D6 07 01
+21 81 B3 40 C5 00 13 73 F5 0F 93 F3 10 00 93 55
+13 00 13 5E 16 00 63 88 03 00 33 48 2E 01 93 18
+08 01 13 DE 08 01 33 47 BE 00 93 7E 17 00 13 5F
+23 00 93 52 1E 00 63 88 0E 00 B3 CF 22 01 93 96
+0F 01 93 D2 06 01 B3 C7 E2 01 13 F6 17 00 13 55
+33 00 93 D5 12 00 19 C6 B3 C0 25 01 93 93 00 01
+93 D5 03 01 33 C8 A5 00 93 78 18 00 13 5E 43 00
+13 DF 15 00 63 88 08 00 33 47 2F 01 93 1E 07 01
+13 DF 0E 01 B3 4F CF 01 93 F2 1F 00 93 56 53 00
+13 55 1F 00 63 88 02 00 B3 47 25 01 13 96 07 01
+13 55 06 01 B3 40 D5 00 93 F3 10 00 93 55 63 00
+13 5E 15 00 63 88 03 00 33 48 2E 01 93 18 08 01
+13 DE 08 01 33 47 BE 00 93 7E 17 00 13 53 73 00
+93 52 1E 00 63 88 0E 00 33 CF 22 01 93 1F 0F 01
+93 D2 0F 01 B3 C6 62 00 13 F6 16 00 93 D0 12 00
+19 C6 B3 C7 20 01 13 95 07 01 93 50 05 01 FD 55
+23 9C 19 02 4E 85 EF F0 AF CF 83 D3 89 03 13 78
+F5 0F 13 5E 18 00 B3 C5 A3 00 93 F8 15 00 13 D3
+13 00 63 88 08 00 33 47 23 01 93 1E 07 01 13 D3
+0E 01 33 4F C3 01 93 7F 1F 00 93 52 28 00 93 57
+13 00 63 88 0F 00 B3 C6 27 01 13 96 06 01 93 57
+06 01 B3 C0 57 00 93 F3 10 00 93 55 38 00 13 D7
+17 00 63 88 03 00 B3 48 27 01 13 9E 08 01 13 57
+0E 01 B3 4E B7 00 13 F3 1E 00 13 5F 48 00 93 57
+17 00 63 08 03 00 B3 CF 27 01 93 92 0F 01 93 D7
+02 01 B3 C6 E7 01 93 F0 16 00 13 56 58 00 93 D8
+17 00 63 88 00 00 B3 C3 28 01 93 95 03 01 93 D8
+05 01 33 CE C8 00 13 77 1E 00 93 5E 68 00 93 DF
+18 00 19 C7 33 C3 2F 01 13 1F 03 01 93 5F 0F 01
+B3 C2 DF 01 93 F6 12 00 13 58 78 00 13 D6 1F 00
+99 C6 B3 47 26 01 93 90 07 01 13 D6 00 01 93 73
+16 00 13 5E 16 00 63 88 03 01 B3 45 2E 01 93 98
+05 01 13 DE 08 01 21 81 33 47 C5 01 93 7E F5 0F
+13 73 17 00 13 DF 1E 00 13 58 1E 00 63 08 03 00
+B3 4F 28 01 93 92 0F 01 13 D8 02 01 B3 46 E8 01
+93 F0 16 00 13 D6 2E 00 93 55 18 00 63 88 00 00
+B3 C7 25 01 93 93 07 01 93 D5 03 01 B3 C8 C5 00
+13 FE 18 00 13 D5 3E 00 13 DF 15 00 63 08 0E 00
+33 47 2F 01 13 13 07 01 13 5F 03 01 B3 4F AF 00
+93 F2 1F 00 13 D8 4E 00 13 56 1F 00 63 88 02 00
+B3 46 26 01 93 90 06 01 13 D6 00 01 B3 47 06 01
+93 F3 17 00 93 D5 5E 00 13 55 16 00 63 88 03 00
+B3 48 25 01 13 9E 08 01 13 55 0E 01 33 47 B5 00
+13 73 17 00 13 DF 6E 00 13 58 15 00 63 08 03 00
+B3 4F 28 01 93 92 0F 01 13 D8 02 01 B3 46 E8 01
+93 F0 16 00 93 DE 7E 00 93 53 18 00 63 88 00 00
+33 C6 23 01 93 17 06 01 93 D3 07 01 B3 C5 D3 01
+93 F8 15 00 13 D7 13 00 63 88 08 00 33 4E 27 01
+13 15 0E 01 13 57 05 01 23 9C E9 02 01 CC 05 04
+E3 96 84 BE F2 40 62 44 D2 44 42 49 B2 49 01 45
+05 61 82 80 23 9D E9 02 05 44 E3 85 84 FE 05 44
+F1 B6 95 47 63 E5 A7 04 B7 02 04 F0 0A 05 13 83
+02 09 B3 03 65 00 83 A5 03 00 82 85 37 06 04 F0
+03 25 86 5C 82 80 B7 08 04 F0 03 A5 08 5D 82 80
+37 08 04 F0 03 25 C8 5C 82 80 37 07 04 F0 03 25
+07 0F 82 80 B7 06 04 F0 03 A5 C6 0E 82 80 01 45
+82 80 B3 46 B5 00 93 F2 16 00 13 57 15 00 13 D6
+15 00 63 8B 02 00 69 73 93 03 13 00 B3 47 76 00
+93 95 07 01 13 D6 05 01 33 48 E6 00 93 78 18 00
+13 5E 25 00 93 52 16 00 63 8B 08 00 E9 7E 13 8F
+1E 00 B3 CF E2 01 93 96 0F 01 93 D2 06 01 33 C7
+C2 01 13 73 17 00 93 53 35 00 93 D8 12 00 63 0B
+03 00 E9 75 13 86 15 00 B3 C7 C8 00 13 98 07 01
+93 58 08 01 33 CE 78 00 93 7E 1E 00 13 5F 45 00
+13 D3 18 00 63 8B 0E 00 E9 7F 93 86 1F 00 B3 42
+D3 00 13 97 02 01 13 53 07 01 B3 43 E3 01 93 F5
+13 00 13 56 55 00 93 5E 13 00 91 C9 69 78 93 08
+18 00 B3 C7 1E 01 13 9E 07 01 93 5E 0E 01 33 CF
+CE 00 93 7F 1F 00 93 56 65 00 93 D5 1E 00 63 8B
+0F 00 E9 72 13 87 12 00 33 C3 E5 00 93 13 03 01
+93 D5 03 01 33 C6 D5 00 13 78 16 00 93 58 75 00
+13 DF 15 00 63 0B 08 00 E9 77 13 8E 17 00 33 45
+CF 01 93 1E 05 01 13 DF 0E 01 93 7F 1F 00 13 55
+1F 00 63 8B 1F 01 E9 76 93 82 16 00 33 47 55 00
+13 13 07 01 13 55 03 01 82 80 B3 C6 A5 00 13 77
+F5 0F 93 F2 16 00 AA 87 13 56 17 00 13 D8 15 00
+63 8B 02 00 E9 75 13 83 15 00 B3 43 68 00 13 95
+03 01 13 58 05 01 B3 48 C8 00 13 FE 18 00 93 5E
+27 00 93 55 18 00 63 0B 0E 00 69 7F 93 0F 1F 00
+B3 C6 F5 01 93 92 06 01 93 D5 02 01 33 C6 D5 01
+13 73 16 00 93 53 37 00 93 DE 15 00 63 0B 03 00
69 78 93 08 18 00 33 C5 1E 01 13 1E 05 01 93 5E
-0E 01 13 FF 1E 00 13 D5 1E 00 63 0B EF 00 E9 7F
-93 82 1F 00 33 43 55 00 93 15 03 01 13 D5 05 01
-82 80 01 45 82 80 73 27 00 B0 B7 07 04 F0 23 A2
-E7 5C 82 80 73 27 00 B0 B7 07 04 F0 23 A0 E7 5C
-82 80 B7 07 04 F0 B7 02 04 F0 03 A5 07 5C 03 A3
-42 5C 33 05 65 40 82 80 93 07 80 3E 33 55 F5 02
-82 80 85 47 23 00 F5 00 82 80 23 00 05 00 82 80
-AA 82 2A 96 63 56 C5 00 23 00 B5 00 05 05 DD BF
-16 85 82 80 82 80 75 71 06 C7 B7 07 04 F0 B7 00
-04 F0 B7 02 04 F0 03 A6 07 5D 83 A5 C0 5C 03 A3
-02 0F 37 07 04 F0 83 26 C7 0E B7 03 04 F0 22 C5
-26 C3 13 14 06 01 93 14 03 01 83 A8 83 5C 13 56
-04 41 13 D8 04 41 05 45 4A C1 CE DE D2 DC D6 DA
-DA D8 DE D6 E2 D4 E6 D2 EA D0 EE CE 23 07 A1 04
-23 16 C1 00 23 17 B1 00 23 18 01 01 36 D4 63 93
-08 00 9D 48 32 49 46 D6 E3 1B 09 3C E3 0F 08 42
-B2 59 B7 0C 04 F0 13 8D 4C 5D 13 F7 29 00 93 FD
-19 00 33 3E E0 00 6A CA 23 16 01 04 93 FE 49 00
-6E 8F B3 85 CD 01 63 88 0E 00 93 8F 15 00 93 90
-0F 01 93 D5 00 01 93 02 00 7D 33 D5 B2 02 01 44
-2A D2 E3 10 0F 3E E3 10 07 3C E3 95 0E 3A 63 10
-0F 1C 63 17 07 1C 13 F5 49 00 19 C5 02 56 83 15
-C1 00 12 55 EF C0 6F FC 22 5A 63 0F 0A 6C 37 0C
-04 F0 B7 0C 04 F0 13 0D C1 00 F3 23 00 B0 23 22
-7C 5C 6A 85 EF E0 BF F6 73 2D 00 B0 03 55 C1 00
-81 45 23 A0 AC 5D EF F0 8F D2 AA 85 03 55 E1 00
-03 2C 4C 5C EF F0 AF D1 AA 85 03 55 01 01 B3 0A
-8D 41 EF F0 CF D0 92 54 AA 85 93 9C 04 01 13 D5
-0C 01 EF F0 CF CF 21 68 93 06 58 B0 AA 89 E3 06
-D5 3A 63 E6 A6 16 89 6D 93 82 2D 8F E3 01 55 3C
-15 6D 93 00 FD EA E3 12 15 3E B7 0C 04 F0 13 85
-0C 15 EF 90 4F 86 93 0B 8D 60 39 68 9D 66 13 0A
-48 5A 5E 8C 13 8B 96 A7 B7 0C 04 F0 83 A8 8C 0E
-01 49 01 4D E3 87 08 3A B7 0D 04 F0 89 A8 03 D6
-A4 FF 63 03 46 0F 37 07 04 F0 D2 86 EA 85 13 05
-47 24 EF 90 4F 82 83 D7 C4 FF 13 8E 17 00 93 1E
-0E 01 93 DF 0E 01 23 9E F4 FF 05 0D 83 A2 8C 0E
-7E 99 93 15 0D 01 13 1F 09 01 13 13 09 01 13 DD
-05 01 13 54 0F 01 13 59 03 41 63 74 5D 10 13 14
-4D 00 33 06 A4 01 13 15 26 00 98 08 B3 04 A7 00
-83 A7 C4 FD 23 9E 04 FE 13 FE 17 00 63 02 0E 02
-03 D6 64 FF 63 0E 66 01 DA 86 EA 85 13 85 0D 1E
-EF 80 7F FB 83 DE C4 FF 93 8F 1E 00 23 9E F4 FF
-B3 05 A4 01 93 92 25 00 13 0F 01 05 B3 04 5F 00
-83 A8 C4 FD 13 F3 28 00 63 06 03 02 03 D6 84 FF
-63 02 86 03 B7 03 04 F0 DE 86 EA 85 13 85 03 21
-EF 80 7F F7 03 D8 C4 FF 83 A8 C4 FD 93 06 18 00
-23 9E D4 FE 6A 94 13 16 24 00 88 08 93 F0 48 00
-B3 04 C5 00 E3 9D 00 F0 83 DF C4 FF 3D BF E2 45
-EF 80 3F FF B2 59 2A D8 13 F7 29 00 E3 0D 07 E2
-83 17 E1 00 03 16 C1 00 F2 45 12 55 13 99 07 01
-54 18 33 66 C9 00 EF B0 8F DB B2 59 29 BD 25 6A
-13 07 2A A0 E3 09 E5 20 BD 6B 13 84 5B 9F E3 1E
-85 26 B7 05 04 F0 89 64 13 85 45 18 93 8B 74 FD
-39 6B EF 80 5F EF 13 0A AA E3 5E 8C 13 0B 4B 71
-61 BD 92 54 B7 0B 04 F0 A6 85 13 85 4B 27 EF 80
-9F ED 37 0C 04 F0 D6 85 13 05 CC 28 13 0B 80 3E
-EF 80 7F EC B3 DD 6A 03 B7 03 04 F0 13 85 43 2A
-EE 85 EF 80 5F EB 13 08 70 3E 63 6F 58 45 B7 0A
-04 F0 05 04 13 85 CA 2B 13 1D 04 01 EF 80 BF E9
-13 59 0D 41 03 AF 8C 0E 22 53 B7 05 04 F0 13 85
-85 31 B3 05 E3 03 37 0A 04 F0 B7 0B 04 F0 37 0C
-04 F0 37 0B 04 F0 B7 0D 04 F0 EF 80 DF E6 93 05
-0A 33 13 85 CB 33 EF 80 1F E6 93 05 4C 35 13 05
-0B 37 EF 80 5F E5 B7 03 04 F0 93 85 8D 38 13 85
-03 39 EF 80 5F E4 CE 85 B7 09 04 F0 13 85 89 3A
-EF 80 7F E3 32 5A 13 78 1A 00 63 05 08 0E 83 A8
-8C 0E 63 81 08 0E 01 4D B7 04 04 F0 93 16 4D 00
-B3 80 A6 01 13 96 20 00 98 08 B3 07 C7 00 03 D6
-67 FF EA 85 13 85 44 3C EF 80 FF DF 93 0E 1D 00
-93 9F 0E 01 93 DA 0F 01 93 92 4A 00 03 AE 8C 0E
-33 84 52 01 13 1D 24 00 13 0F 01 05 13 85 44 3C
-33 03 AF 01 D6 85 63 F6 CA 09 03 56 63 FF 93 09
-01 05 EF 80 5F DC 93 85 1A 00 93 9B 05 01 13 DC
-0B 01 13 1B 4C 00 03 AA 8C 0E B3 0D 8B 01 93 93
-2D 00 13 85 44 3C 33 88 79 00 E2 85 63 7B 4C 05
-03 56 68 FF EF 80 3F D9 93 06 1C 00 13 96 06 01
-93 5A 06 01 13 97 4A 00 83 A8 8C 0E B3 07 57 01
-13 9E 27 00 93 0E 01 05 13 85 44 3C B3 8F CE 01
-D6 85 63 F0 1A 03 03 D6 6F FF EF 80 DF D5 93 82
-1A 00 03 A5 8C 0E 13 94 02 01 13 5D 04 01 E3 67
-AD F2 32 5A 93 74 2A 00 FD C0 83 A0 8C 0E 63 8F
-00 1E 01 44 37 0A 04 F0 13 13 44 00 B3 05 83 00
-93 9B 25 00 13 0C 01 05 33 0B 7C 01 03 56 8B FF
-A2 85 13 05 0A 3E EF 80 1F D1 93 03 14 00 93 99
-03 01 93 DA 09 01 13 98 4A 00 83 AD 8C 0E B3 08
-58 01 93 96 28 00 90 08 13 05 0A 3E 33 07 D6 00
-D6 85 63 F5 BA 09 03 56 87 FF 84 08 EF 80 BF CD
-93 87 1A 00 93 9E 07 01 13 D4 0E 01 93 1F 44 00
-03 AE 8C 0E B3 82 8F 00 13 9D 22 00 13 05 0A 3E
-33 8F A4 01 A2 85 63 7B C4 05 03 56 8F FF 93 09
-01 05 EF 80 5F CA 93 05 14 00 93 9B 05 01 13 DC
-0B 01 13 1B 4C 00 03 A3 8C 0E B3 0D 8B 01 93 93
-2D 00 13 05 0A 3E B3 8A 79 00 E2 85 63 70 6C 02
-03 D6 8A FF EF 80 3F C7 13 08 1C 00 03 A5 8C 0E
-93 18 08 01 13 D4 08 01 E3 68 A4 F2 32 5A 93 70
-4A 00 63 91 00 12 83 A0 8C 0E 81 44 37 0D 04 F0
-63 8D 00 0C 93 95 44 00 33 8B 95 00 93 03 01 05
-93 1D 2B 00 B3 89 B3 01 03 D6 49 FF A6 85 13 05
-8D 41 EF 80 5F C2 13 88 14 00 93 18 08 01 13 D4
-08 01 13 1A 44 00 83 AA 8C 0E B3 06 8A 00 13 96
-26 00 98 08 13 05 8D 41 33 0E C7 00 A2 85 63 76
-54 09 03 56 4E FF EF 80 1F BF 93 07 14 00 93 9E
-07 01 93 DB 0E 01 93 9F 4B 00 83 A4 8C 0E B3 82
-7F 01 13 9F 22 00 13 03 01 05 13 05 8D 41 33 0C
-E3 01 DE 85 63 FB 9B 04 03 56 4C FF EF 80 BF BB
-93 85 1B 00 93 9D 05 01 93 D9 0D 01 93 93 49 00
-03 AB 8C 0E B3 8A 33 01 13 98 2A 00 93 08 01 05
-13 05 8D 41 33 84 08 01 CE 85 63 F0 69 03 03 56
-44 FF 13 8A 19 00 EF 80 1F B8 03 A5 8C 0E 93 16
-0A 01 93 D4 06 01 E3 E7 A4 F2 63 0F 09 64 63 5F
-20 63 37 09 04 F0 13 05 09 48 EF 80 DF B5 BA 40
-2A 44 9A 44 0A 49 F6 59 66 5A D6 5A 46 5B B6 5B
-26 5C 96 5C 06 5D F6 4D 49 61 82 80 13 7F 4A 00
-E3 05 0F FC 83 A6 8C 0E E9 D2 01 4C 37 0D 04 F0
-13 16 4C 00 33 07 86 01 13 1E 27 00 9C 08 B3 8E
-C7 01 03 D6 AE FF E2 85 13 05 CD 3F EF 80 BF B0
-93 02 1C 00 93 94 02 01 93 DB 04 01 13 9F 4B 00
-83 AF 8C 0E 33 03 7F 01 93 15 23 00 13 0C 01 05
-33 0B BC 00 13 05 CD 3F DE 85 E3 F6 FB E9 03 56
-AB FF 13 0A 01 05 EF 80 1F AD 93 83 1B 00 93 99
-03 01 93 DA 09 01 13 98 4A 00 83 AD 8C 0E B3 08
-58 01 13 94 28 00 13 05 CD 3F B3 06 8A 00 D6 85
-E3 FB BA E5 03 D6 A6 FF EF 80 FF A9 13 87 1A 00
-13 1E 07 01 93 54 0E 01 93 97 44 00 03 A6 8C 0E
-B3 8E 97 00 93 9F 2E 00 93 02 01 05 13 05 CD 3F
-B3 8B F2 01 A6 85 E3 F0 C4 E2 03 D6 AB FF EF 80
-9F A6 13 8F 14 00 03 A5 8C 0E 13 13 0F 01 13 5C
-03 01 E3 67 AC F2 01 B5 83 A8 8C 0E A2 56 E1 64
-13 87 04 6A B3 80 16 03 37 06 04 F0 93 0F 40 06
-13 05 C6 2F B3 87 E0 02 33 DE B7 03 B3 8E 60 03
-33 76 FE 03 B3 D5 BE 03 EF 80 FF A1 09 65 93 02
-F5 70 E3 E1 52 B9 A5 B6 E9 7A 05 44 37 0C 04 F0
-B7 0C 04 F0 13 0D C1 00 13 8B 1A 00 93 0D 70 3E
-93 1B 24 00 33 8E 8B 00 13 14 1E 00 22 D4 F3 24
-00 B0 23 22 9C 5C 82 C2 82 C4 81 4B 63 0F 04 40
-85 45 6A 85 EF D0 1F F9 83 5E 41 04 13 7F F5 0F
-93 52 1F 00 B3 CF AE 00 93 F5 1F 00 93 D3 1E 00
-99 C5 B3 C0 63 01 13 93 00 01 93 53 03 01 B3 C6
-53 00 13 F8 16 00 93 58 2F 00 13 D9 13 00 63 08
-08 00 33 47 69 01 93 17 07 01 13 D9 07 01 33 46
-19 01 93 79 16 00 13 5A 3F 00 93 5E 19 00 63 88
-09 00 B3 CA 6E 01 13 9E 0A 01 93 5E 0E 01 B3 CF
-4E 01 93 F5 1F 00 93 52 4F 00 93 D3 1E 00 99 C5
-B3 C0 63 01 13 93 00 01 93 53 03 01 B3 C6 53 00
-13 F8 16 00 93 58 5F 00 13 D9 13 00 63 08 08 00
-33 47 69 01 93 17 07 01 13 D9 07 01 33 46 19 01
-93 79 16 00 13 5A 6F 00 93 5E 19 00 63 88 09 00
-B3 CA 6E 01 13 9E 0A 01 93 5E 0E 01 B3 CF 4E 01
-93 F5 1F 00 13 5F 7F 00 13 D3 1E 00 99 C5 B3 42
-63 01 93 90 02 01 13 D3 00 01 93 73 13 00 93 58
-13 00 63 88 E3 01 B3 C6 68 01 13 98 06 01 93 58
-08 01 21 81 33 47 15 01 13 79 F5 0F 13 76 17 00
-93 59 19 00 93 DA 18 00 19 C6 B3 C7 6A 01 13 9A
-07 01 93 5A 0A 01 33 CE 3A 01 93 7E 1E 00 93 5F
-29 00 93 D2 1A 00 63 88 0E 00 B3 C5 62 01 13 9F
-05 01 93 52 0F 01 B3 C0 F2 01 13 F3 10 00 93 53
-39 00 93 D8 12 00 63 08 03 00 B3 C6 68 01 13 98
-06 01 93 58 08 01 33 C5 78 00 13 76 15 00 13 57
-49 00 13 DA 18 00 19 C6 B3 49 6A 01 93 97 09 01
-13 DA 07 01 B3 4A EA 00 13 FE 1A 00 93 5E 59 00
-13 5F 1A 00 63 08 0E 00 B3 4F 6F 01 93 95 0F 01
-13 DF 05 01 B3 42 DF 01 93 F0 12 00 13 53 69 00
-13 58 1F 00 63 88 00 00 B3 43 68 01 93 96 03 01
-13 D8 06 01 B3 48 68 00 13 F6 18 00 13 59 79 00
-93 59 18 00 19 C6 33 C5 69 01 13 17 05 01 93 59
-07 01 B3 C7 29 01 13 FA 17 00 93 DE 19 00 63 08
-0A 00 B3 CA 6E 01 13 9E 0A 01 93 5E 0E 01 FD 55
-6A 85 23 12 D1 05 EF D0 FF D8 83 5F 41 04 13 7F
-F5 0F 13 53 1F 00 B3 C5 AF 00 93 F2 15 00 13 D8
-1F 00 63 88 02 00 B3 40 68 01 93 93 00 01 13 D8
-03 01 B3 46 68 00 93 F8 16 00 13 56 2F 00 93 59
-18 00 63 88 08 00 33 C9 69 01 13 17 09 01 93 59
-07 01 B3 C7 C9 00 13 FA 17 00 93 5A 3F 00 93 DF
-19 00 63 08 0A 00 33 CE 6F 01 93 1E 0E 01 93 DF
-0E 01 B3 C5 5F 01 93 F2 15 00 13 53 4F 00 13 D8
-1F 00 63 88 02 00 B3 40 68 01 93 93 00 01 13 D8
-03 01 B3 46 68 00 93 F8 16 00 13 56 5F 00 93 59
-18 00 63 88 08 00 33 C9 69 01 13 17 09 01 93 59
-07 01 B3 C7 C9 00 13 FA 17 00 93 5A 6F 00 93 DF
-19 00 63 08 0A 00 33 CE 6F 01 93 1E 0E 01 93 DF
-0E 01 B3 C5 5F 01 93 F2 15 00 13 5F 7F 00 93 D3
-1F 00 63 88 02 00 33 C3 63 01 93 10 03 01 93 D3
-00 01 13 F8 13 00 13 D6 13 00 63 08 E8 01 B3 46
-66 01 93 98 06 01 13 D6 08 01 21 81 33 49 C5 00
-93 79 F5 0F 13 77 19 00 13 DA 19 00 13 5E 16 00
-19 C7 B3 47 6E 01 93 9A 07 01 13 DE 0A 01 B3 4E
-4E 01 93 FF 1E 00 93 D5 29 00 13 53 1E 00 63 88
-0F 00 B3 42 63 01 13 9F 02 01 13 53 0F 01 B3 40
-B3 00 93 F3 10 00 13 D8 39 00 13 56 13 00 63 88
-03 00 B3 46 66 01 93 98 06 01 13 D6 08 01 33 45
-06 01 13 79 15 00 13 D7 49 00 93 5A 16 00 63 08
-09 00 33 CA 6A 01 93 17 0A 01 93 DA 07 01 33 CE
-EA 00 93 7E 1E 00 93 DF 59 00 13 DF 1A 00 63 88
-0E 00 B3 45 6F 01 93 92 05 01 13 DF 02 01 33 43
-FF 01 93 70 13 00 93 D3 69 00 93 58 1F 00 63 88
-00 00 33 C8 68 01 93 16 08 01 93 D8 06 01 33 C6
-78 00 13 79 16 00 93 D9 79 00 13 DA 18 00 63 08
-09 00 33 45 6A 01 13 17 05 01 13 5A 07 01 B3 47
-3A 01 93 FA 17 00 93 5F 1A 00 63 88 0A 00 33 CE
-6F 01 93 1E 0E 01 93 DF 0E 01 23 12 F1 05 63 8C
-0B 02 85 0B E3 16 74 BF 22 54 F3 25 00 B0 23 A0
-BC 5C B3 84 95 40 E3 FD 9D BA 13 0B 80 3E B3 DD
-64 03 A9 42 33 DF B2 03 13 03 1F 00 B3 00 64 02
-06 D4 6F F0 8F CB 23 13 F1 05 85 4B 55 BE 85 49
-63 18 39 C3 63 16 08 C2 37 3A 15 34 93 0A 5A 41
-13 0B 60 06 8D 6B 56 C6 23 18 61 01 13 86 5B 41
-6F F0 0F C1 33 08 A4 02 B3 08 0D 01 46 D0 63 0A
-0F C4 6F F0 CF E0 33 03 A4 02 93 06 14 00 93 93
-06 01 13 D4 03 01 B3 04 6D 00 26 CE 63 89 0E C2
-D1 BF 6A CC 05 44 63 02 07 C2 F1 BF B7 0C 04 F0
-13 85 4C 49 EF 80 2F D2 D9 B2 13 0C 60 06 23 18
-81 01 01 46 6F F0 CF BB B7 00 04 F0 13 85 40 43
-EF 80 6F D0 6D B2 B7 07 04 F0 13 85 47 0F EF 80
-8F CF 31 6E 93 0B 2E E5 99 6E B5 6F 13 8A 7E E4
-5E 8C 13 8B 0F 4B 6F F0 2F C9 B7 08 04 F0 13 85
-48 12 EF 80 4F CD 05 66 93 0B 96 19 11 69 0D 65
-13 0A F9 9B 5E 8C 13 0B 05 34 6F F0 EF C6 37 0F
-04 F0 13 05 4F 1B EF 80 0F CB 25 63 B9 63 13 0A
-43 D8 93 0B 70 74 13 0C 70 74 13 8B 13 3C 6F F0
-AF C4 92 54 01 44 6F F0 EF DA 41 6A 13 04 FA FF
-7D 59 B7 0C 04 F0 6F F0 EF D9
+0E 01 33 CF 7E 00 93 7F 1F 00 93 56 47 00 93 D3
+1E 00 63 8B 0F 00 E9 72 93 85 12 00 33 C6 B3 00
+13 13 06 01 93 53 03 01 33 C8 D3 00 93 78 18 00
+13 5E 57 00 93 D2 13 00 63 8B 08 00 E9 7E 13 8F
+1E 00 33 C5 E2 01 93 1F 05 01 93 D2 0F 01 B3 C6
+C2 01 93 F5 16 00 13 53 67 00 13 DE 12 00 91 C9
+69 76 93 03 16 00 33 48 7E 00 93 18 08 01 13 DE
+08 01 B3 4E 6E 00 13 FF 1E 00 1D 83 93 55 1E 00
+63 0B 0F 00 E9 7F 93 82 1F 00 33 C5 55 00 93 16
+05 01 93 D5 06 01 13 F3 15 00 13 DE 15 00 63 0B
+E3 00 69 76 93 03 16 00 33 48 7E 00 93 18 08 01
+13 DE 08 01 93 DE 87 00 33 CF CE 01 93 7F 1F 00
+13 D7 87 00 13 53 1E 00 A5 83 63 8B 0F 00 E9 72
+93 86 12 00 33 45 D3 00 93 15 05 01 13 D3 05 01
+33 C6 67 00 93 73 16 00 13 58 27 00 93 5F 13 00
+63 8B 03 00 E9 78 13 8E 18 00 B3 CE CF 01 13 9F
+0E 01 93 5F 0F 01 B3 C7 0F 01 93 F2 17 00 93 56
+37 00 93 D3 1F 00 63 8B 02 00 E9 75 13 83 15 00
+33 C5 63 00 13 16 05 01 93 53 06 01 33 C8 D3 00
+93 78 18 00 13 5E 47 00 93 D2 13 00 63 8B 08 00
+E9 7E 13 8F 1E 00 B3 CF E2 01 93 97 0F 01 93 D2
+07 01 B3 C6 C2 01 93 F5 16 00 13 53 57 00 93 D8
+12 00 91 C9 69 76 93 03 16 00 33 C5 78 00 13 18
+05 01 93 58 08 01 33 CE 68 00 93 7E 1E 00 13 5F
+67 00 93 D5 18 00 63 8B 0E 00 E9 7F 93 87 1F 00
+B3 C2 F5 00 93 96 02 01 93 D5 06 01 33 C3 E5 01
+13 76 13 00 1D 83 13 DE 15 00 11 CA E9 73 13 88
+13 00 33 45 0E 01 93 18 05 01 13 DE 08 01 93 7E
+1E 00 13 55 1E 00 63 8B EE 00 69 7F 93 0F 1F 00
+B3 47 F5 01 93 92 07 01 13 D5 02 01 82 80 33 C6
+A5 00 93 76 F5 0F 13 17 05 01 93 72 16 00 AA 87
+13 53 07 01 13 D8 16 00 13 DE 15 00 63 8B 02 00
+69 75 93 03 15 00 B3 45 7E 00 93 98 05 01 13 DE
+08 01 B3 4E 0E 01 13 FF 1E 00 93 DF 26 00 13 55
+1E 00 63 0B 0F 00 69 76 93 02 16 00 33 47 55 00
+13 18 07 01 13 55 08 01 B3 43 F5 01 93 F8 13 00
+93 D5 36 00 93 52 15 00 63 8B 08 00 69 7E 93 0E
+1E 00 33 CF D2 01 93 1F 0F 01 93 D2 0F 01 33 C6
+B2 00 13 77 16 00 13 D8 46 00 13 DE 12 00 11 CB
+E9 73 93 88 13 00 33 45 1E 01 93 15 05 01 13 DE
+05 01 B3 4E 0E 01 13 FF 1E 00 93 DF 56 00 93 53
+1E 00 63 0B 0F 00 E9 72 13 86 12 00 33 C7 C3 00
+13 18 07 01 93 53 08 01 B3 C8 F3 01 93 F5 18 00
+13 DE 66 00 93 D2 13 00 91 C9 E9 7E 13 8F 1E 00
+33 C5 E2 01 93 1F 05 01 93 D2 0F 01 33 C6 C2 01
+13 77 16 00 9D 82 13 DE 12 00 11 CB 69 78 93 03
+18 00 B3 48 7E 00 93 95 08 01 13 DE 05 01 93 7E
+1E 00 13 58 1E 00 63 94 DE 38 13 56 83 00 33 47
+C8 00 93 73 17 00 93 56 83 00 13 5F 18 00 13 53
+93 00 63 8B 03 00 E9 78 93 85 18 00 33 4E BF 00
+93 1E 0E 01 13 DF 0E 01 B3 4F 6F 00 93 F2 1F 00
+13 D8 26 00 13 53 1F 00 63 8B 02 00 69 76 13 07
+16 00 33 45 E3 00 93 13 05 01 13 D3 03 01 B3 48
+03 01 93 F5 18 00 13 DE 36 00 13 58 13 00 91 C9
+E9 7E 13 8F 1E 00 B3 4F E8 01 93 92 0F 01 13 D8
+02 01 33 46 C8 01 93 73 16 00 13 D7 46 00 13 5E
+18 00 63 8B 03 00 69 73 93 08 13 00 33 45 1E 01
+93 15 05 01 13 DE 05 01 B3 4E EE 00 13 FF 1E 00
+93 DF 56 00 13 53 1E 00 63 0B 0F 00 E9 72 13 88
+12 00 33 46 03 01 93 13 06 01 13 D3 03 01 33 47
+F3 01 93 78 17 00 93 D5 66 00 93 5F 13 00 63 8B
+08 00 69 7E 93 0E 1E 00 33 C5 DF 01 13 1F 05 01
+93 5F 0F 01 B3 C2 BF 00 13 F8 12 00 9D 82 93 D8
+1F 00 63 0B 08 00 69 76 93 03 16 00 33 C3 78 00
+13 17 03 01 93 58 07 01 93 F5 18 00 93 DF 18 00
+63 8B D5 00 69 7E 93 0E 1E 00 33 C5 DF 01 13 1F
+05 01 93 5F 0F 01 93 D2 07 01 33 C8 5F 00 93 F3
+F2 0F 93 76 18 00 C1 83 13 D6 13 00 13 DE 1F 00
+91 CA 69 73 13 07 13 00 B3 48 EE 00 93 95 08 01
+13 DE 05 01 B3 4E CE 00 13 FF 1E 00 93 DF 23 00
+13 53 1E 00 63 0B 0F 00 E9 72 13 88 12 00 33 45
+03 01 93 16 05 01 13 D3 06 01 33 46 F3 01 13 77
+16 00 93 D8 33 00 93 5F 13 00 11 CB E9 75 13 8E
+15 00 B3 CE CF 01 13 9F 0E 01 93 5F 0F 01 B3 C2
+1F 01 13 F8 12 00 93 D6 43 00 93 D8 1F 00 63 0B
+08 00 69 73 13 06 13 00 33 C5 C8 00 13 17 05 01
+93 58 07 01 B3 C5 D8 00 13 FE 15 00 93 DE 53 00
+13 D3 18 00 63 0B 0E 00 69 7F 93 0F 1F 00 B3 42
+F3 01 13 98 02 01 13 53 08 01 B3 46 D3 01 13 F6
+16 00 13 D7 63 00 93 5E 13 00 11 CA E9 78 93 85
+18 00 33 C5 BE 00 13 1E 05 01 93 5E 0E 01 33 CF
+EE 00 93 7F 1F 00 93 D3 73 00 13 D6 1E 00 63 8B
+0F 00 E9 72 13 88 12 00 33 43 06 01 93 16 03 01
+13 D6 06 01 13 77 16 00 93 5E 16 00 63 17 77 12
+13 DF 87 00 B3 4F DF 01 93 F3 1F 00 93 D2 87 00
+13 D7 1E 00 A5 83 63 8B 03 00 69 78 13 03 18 00
+B3 46 67 00 13 96 06 01 13 57 06 01 B3 48 F7 00
+93 F5 18 00 13 DE 22 00 93 53 17 00 91 C9 E9 7E
+13 8F 1E 00 33 C5 E3 01 93 1F 05 01 93 D3 0F 01
+B3 47 7E 00 13 F8 17 00 13 D3 32 00 93 D5 13 00
+63 0B 08 00 E9 76 13 86 16 00 33 C7 C5 00 93 18
+07 01 93 D5 08 01 33 4E B3 00 93 7E 1E 00 13 DF
+42 00 13 D8 15 00 63 8B 0E 00 E9 7F 93 83 1F 00
+33 45 78 00 93 17 05 01 13 D8 07 01 33 43 0F 01
+13 76 13 00 93 D6 52 00 93 5E 18 00 11 CA 69 77
+93 08 17 00 B3 C5 1E 01 13 9E 05 01 93 5E 0E 01
+33 CF D6 01 93 7F 1F 00 93 D3 62 00 13 D6 1E 00
+63 8B 0F 00 E9 77 13 88 17 00 33 45 06 01 13 13
+05 01 13 56 03 01 B3 C6 C3 00 93 F8 16 00 93 D2
+72 00 13 5F 16 00 63 8B 08 00 69 77 93 05 17 00
+33 4E BF 00 93 1E 0E 01 13 DF 0E 01 93 7F 1F 00
+13 55 1F 00 63 8A 5F 00 E9 73 93 87 13 00 33 48
+F5 00 13 15 08 01 41 81 82 80 E9 78 93 85 18 00
+33 C5 BE 00 13 1E 05 01 93 5E 0E 01 D1 B5 69 7F
+93 0F 1F 00 33 45 F8 01 93 12 05 01 13 D8 02 01
+AD B1 B3 C6 A5 00 13 77 F5 0F 93 17 05 01 93 F2
+16 00 13 D3 07 01 13 56 17 00 93 D8 15 00 63 8B
+02 00 E9 75 93 83 15 00 33 C5 78 00 13 18 05 01
+93 58 08 01 33 CE C8 00 93 7E 1E 00 13 5F 27 00
+93 D5 18 00 63 8B 0E 00 E9 7F 93 86 1F 00 B3 C2
+D5 00 93 97 02 01 93 D5 07 01 33 C6 E5 01 93 73
+16 00 13 58 37 00 13 DF 15 00 63 8B 03 00 E9 78
+13 8E 18 00 33 45 CF 01 93 1E 05 01 13 DF 0E 01
+B3 4F 0F 01 93 F2 1F 00 93 56 47 00 13 58 1F 00
+63 8B 02 00 E9 77 93 85 17 00 33 46 B8 00 93 13
+06 01 13 D8 03 01 B3 48 D8 00 13 FE 18 00 93 5E
+57 00 93 57 18 00 63 0B 0E 00 69 7F 93 0F 1F 00
+33 C5 F7 01 93 12 05 01 93 D7 02 01 B3 C6 D7 01
+93 F5 16 00 93 53 67 00 93 DE 17 00 91 C9 69 76
+13 08 16 00 B3 C8 0E 01 13 9E 08 01 93 5E 0E 01
+33 CF 7E 00 93 7F 1F 00 1D 83 93 D5 1E 00 63 8B
+0F 00 E9 72 93 87 12 00 33 C5 F5 00 93 16 05 01
+93 D5 06 01 93 F3 15 00 93 DE 15 00 63 8B E3 00
+69 76 13 08 16 00 B3 C8 0E 01 13 9E 08 01 93 5E
+0E 01 13 5F 83 00 B3 4F DF 01 93 F2 1F 00 13 57
+83 00 93 D3 1E 00 13 53 93 00 63 8B 02 00 E9 77
+93 86 17 00 33 C5 D3 00 93 15 05 01 93 D3 05 01
+33 46 73 00 13 78 16 00 93 58 27 00 93 D2 13 00
+63 0B 08 00 69 7E 93 0E 1E 00 33 CF D2 01 93 1F
+0F 01 93 D2 0F 01 33 C3 12 01 93 77 13 00 93 56
+37 00 13 D8 12 00 91 CB E9 75 93 83 15 00 33 45
+78 00 13 16 05 01 13 58 06 01 B3 48 D8 00 13 FE
+18 00 93 5E 47 00 93 55 18 00 63 0B 0E 00 69 7F
+93 0F 1F 00 B3 C2 F5 01 13 93 02 01 93 55 03 01
+B3 C7 D5 01 93 F3 17 00 93 56 57 00 13 DE 15 00
+63 8B 03 00 69 76 13 08 16 00 33 45 0E 01 93 18
+05 01 13 DE 08 01 B3 4E DE 00 13 FF 1E 00 93 5F
+67 00 93 53 1E 00 63 0B 0F 00 E9 72 13 83 12 00
+B3 C5 63 00 93 97 05 01 93 D3 07 01 B3 C6 F3 01
+13 F6 16 00 1D 83 93 DE 13 00 11 CA 69 78 93 08
+18 00 33 C5 1E 01 13 1E 05 01 93 5E 0E 01 13 FF
+1E 00 13 D5 1E 00 63 0B EF 00 E9 7F 93 82 1F 00
+33 43 55 00 93 15 03 01 13 D5 05 01 82 80 01 45
+82 80 73 27 00 B0 B7 07 04 F0 23 A2 E7 5C 82 80
+73 27 00 B0 B7 07 04 F0 23 A0 E7 5C 82 80 B7 07
+04 F0 B7 02 04 F0 03 A5 07 5C 03 A3 42 5C 33 05
+65 40 82 80 93 07 80 3E 33 55 F5 02 82 80 85 47
+23 00 F5 00 82 80 23 00 05 00 82 80 AA 82 2A 96
+63 56 C5 00 23 00 B5 00 05 05 DD BF 16 85 82 80
+82 80 75 71 06 C7 B7 07 04 F0 B7 00 04 F0 B7 02
+04 F0 03 A6 07 5D 83 A5 C0 5C 03 A3 02 0F 37 07
+04 F0 83 26 C7 0E B7 03 04 F0 22 C5 26 C3 13 14
+06 01 93 14 03 01 83 A8 83 5C 13 56 04 41 13 D8
+04 41 05 45 4A C1 CE DE D2 DC D6 DA DA D8 DE D6
+E2 D4 E6 D2 EA D0 EE CE 23 07 A1 04 23 16 C1 00
+23 17 B1 00 23 18 01 01 36 D4 63 93 08 00 9D 48
+32 49 46 D6 E3 1B 09 3C E3 0F 08 42 B2 59 B7 0C
+04 F0 13 8D 4C 5D 13 F7 29 00 93 FD 19 00 33 3E
+E0 00 6A CA 23 16 01 04 93 FE 49 00 6E 8F B3 85
+CD 01 63 88 0E 00 93 8F 15 00 93 90 0F 01 93 D5
+00 01 93 02 00 7D 33 D5 B2 02 01 44 2A D2 E3 10
+0F 3E E3 10 07 3C E3 95 0E 3A 63 10 0F 1C 63 17
+07 1C 13 F5 49 00 19 C5 02 56 83 15 C1 00 12 55
+EF C0 6F FC 22 5A 63 0F 0A 6C 37 0C 04 F0 B7 0C
+04 F0 13 0D C1 00 F3 23 00 B0 23 22 7C 5C 6A 85
+EF E0 BF F6 73 2D 00 B0 03 55 C1 00 81 45 23 A0
+AC 5D EF F0 8F D2 AA 85 03 55 E1 00 03 2C 4C 5C
+EF F0 AF D1 AA 85 03 55 01 01 B3 0A 8D 41 EF F0
+CF D0 92 54 AA 85 93 9C 04 01 13 D5 0C 01 EF F0
+CF CF 21 68 93 06 58 B0 AA 89 E3 06 D5 3A 63 E6
+A6 16 89 6D 93 82 2D 8F E3 01 55 3C 15 6D 93 00
+FD EA E3 12 15 3E B7 0C 04 F0 13 85 0C 15 EF 90
+6F 81 93 0B 8D 60 39 68 9D 66 13 0A 48 5A 5E 8C
+13 8B 96 A7 B7 0C 04 F0 83 A8 8C 0E 01 49 01 4D
+E3 87 08 3A B7 0D 04 F0 89 A8 03 D6 A4 FF 63 03
+46 0F 37 07 04 F0 D2 86 EA 85 13 05 47 24 EF 80
+7F FD 83 D7 C4 FF 13 8E 17 00 93 1E 0E 01 93 DF
+0E 01 23 9E F4 FF 05 0D 83 A2 8C 0E 7E 99 93 15
+0D 01 13 1F 09 01 13 13 09 01 13 DD 05 01 13 54
+0F 01 13 59 03 41 63 74 5D 10 13 14 4D 00 33 06
+A4 01 13 15 26 00 98 08 B3 04 A7 00 83 A7 C4 FD
+23 9E 04 FE 13 FE 17 00 63 02 0E 02 03 D6 64 FF
+63 0E 66 01 DA 86 EA 85 13 85 0D 1E EF 80 9F F6
+83 DE C4 FF 93 8F 1E 00 23 9E F4 FF B3 05 A4 01
+93 92 25 00 13 0F 01 05 B3 04 5F 00 83 A8 C4 FD
+13 F3 28 00 63 06 03 02 03 D6 84 FF 63 02 86 03
+B7 03 04 F0 DE 86 EA 85 13 85 03 21 EF 80 9F F2
+03 D8 C4 FF 83 A8 C4 FD 93 06 18 00 23 9E D4 FE
+6A 94 13 16 24 00 88 08 93 F0 48 00 B3 04 C5 00
+E3 9D 00 F0 83 DF C4 FF 3D BF E2 45 EF 80 3F FF
+B2 59 2A D8 13 F7 29 00 E3 0D 07 E2 83 17 E1 00
+03 16 C1 00 F2 45 12 55 13 99 07 01 54 18 33 66
+C9 00 EF B0 8F DB B2 59 29 BD 25 6A 13 07 2A A0
+E3 09 E5 20 BD 6B 13 84 5B 9F E3 1E 85 26 B7 05
+04 F0 89 64 13 85 45 18 93 8B 74 FD 39 6B EF 80
+7F EA 13 0A AA E3 5E 8C 13 0B 4B 71 61 BD 92 54
+B7 0B 04 F0 A6 85 13 85 4B 27 EF 80 BF E8 37 0C
+04 F0 D6 85 13 05 CC 28 13 0B 80 3E EF 80 9F E7
+B3 DD 6A 03 B7 03 04 F0 13 85 43 2A EE 85 EF 80
+7F E6 13 08 70 3E 63 6F 58 45 B7 0A 04 F0 05 04
+13 85 CA 2B 13 1D 04 01 EF 80 DF E4 13 59 0D 41
+03 AF 8C 0E 22 53 B7 05 04 F0 13 85 85 31 B3 05
+E3 03 37 0A 04 F0 B7 0B 04 F0 37 0C 04 F0 37 0B
+04 F0 B7 0D 04 F0 EF 80 FF E1 93 05 0A 33 13 85
+CB 33 EF 80 3F E1 93 05 4C 35 13 05 0B 37 EF 80
+7F E0 B7 03 04 F0 93 85 8D 38 13 85 03 39 EF 80
+7F DF CE 85 B7 09 04 F0 13 85 89 3A EF 80 9F DE
+32 5A 13 78 1A 00 63 05 08 0E 83 A8 8C 0E 63 81
+08 0E 01 4D B7 04 04 F0 93 16 4D 00 B3 80 A6 01
+13 96 20 00 98 08 B3 07 C7 00 03 D6 67 FF EA 85
+13 85 44 3C EF 80 1F DB 93 0E 1D 00 93 9F 0E 01
+93 DA 0F 01 93 92 4A 00 03 AE 8C 0E 33 84 52 01
+13 1D 24 00 13 0F 01 05 13 85 44 3C 33 03 AF 01
+D6 85 63 F6 CA 09 03 56 63 FF 93 09 01 05 EF 80
+7F D7 93 85 1A 00 93 9B 05 01 13 DC 0B 01 13 1B
+4C 00 03 AA 8C 0E B3 0D 8B 01 93 93 2D 00 13 85
+44 3C 33 88 79 00 E2 85 63 7B 4C 05 03 56 68 FF
+EF 80 5F D4 93 06 1C 00 13 96 06 01 93 5A 06 01
+13 97 4A 00 83 A8 8C 0E B3 07 57 01 13 9E 27 00
+93 0E 01 05 13 85 44 3C B3 8F CE 01 D6 85 63 F0
+1A 03 03 D6 6F FF EF 80 FF D0 93 82 1A 00 03 A5
+8C 0E 13 94 02 01 13 5D 04 01 E3 67 AD F2 32 5A
+93 74 2A 00 FD C0 83 A0 8C 0E 63 8F 00 1E 01 44
+37 0A 04 F0 13 13 44 00 B3 05 83 00 93 9B 25 00
+13 0C 01 05 33 0B 7C 01 03 56 8B FF A2 85 13 05
+0A 3E EF 80 3F CC 93 03 14 00 93 99 03 01 93 DA
+09 01 13 98 4A 00 83 AD 8C 0E B3 08 58 01 93 96
+28 00 90 08 13 05 0A 3E 33 07 D6 00 D6 85 63 F5
+BA 09 03 56 87 FF 84 08 EF 80 DF C8 93 87 1A 00
+93 9E 07 01 13 D4 0E 01 93 1F 44 00 03 AE 8C 0E
+B3 82 8F 00 13 9D 22 00 13 05 0A 3E 33 8F A4 01
+A2 85 63 7B C4 05 03 56 8F FF 93 09 01 05 EF 80
+7F C5 93 05 14 00 93 9B 05 01 13 DC 0B 01 13 1B
+4C 00 03 A3 8C 0E B3 0D 8B 01 93 93 2D 00 13 05
+0A 3E B3 8A 79 00 E2 85 63 70 6C 02 03 D6 8A FF
+EF 80 5F C2 13 08 1C 00 03 A5 8C 0E 93 18 08 01
+13 D4 08 01 E3 68 A4 F2 32 5A 93 70 4A 00 63 91
+00 12 83 A0 8C 0E 81 44 37 0D 04 F0 63 8D 00 0C
+93 95 44 00 33 8B 95 00 93 03 01 05 93 1D 2B 00
+B3 89 B3 01 03 D6 49 FF A6 85 13 05 8D 41 EF 80
+7F BD 13 88 14 00 93 18 08 01 13 D4 08 01 13 1A
+44 00 83 AA 8C 0E B3 06 8A 00 13 96 26 00 98 08
+13 05 8D 41 33 0E C7 00 A2 85 63 76 54 09 03 56
+4E FF EF 80 3F BA 93 07 14 00 93 9E 07 01 93 DB
+0E 01 93 9F 4B 00 83 A4 8C 0E B3 82 7F 01 13 9F
+22 00 13 03 01 05 13 05 8D 41 33 0C E3 01 DE 85
+63 FB 9B 04 03 56 4C FF EF 80 DF B6 93 85 1B 00
+93 9D 05 01 93 D9 0D 01 93 93 49 00 03 AB 8C 0E
+B3 8A 33 01 13 98 2A 00 93 08 01 05 13 05 8D 41
+33 84 08 01 CE 85 63 F0 69 03 03 56 44 FF 13 8A
+19 00 EF 80 3F B3 03 A5 8C 0E 93 16 0A 01 93 D4
+06 01 E3 E7 A4 F2 63 0F 09 64 63 5F 20 63 37 09
+04 F0 13 05 09 48 EF 80 FF B0 BA 40 2A 44 9A 44
+0A 49 F6 59 66 5A D6 5A 46 5B B6 5B 26 5C 96 5C
+06 5D F6 4D 49 61 82 80 13 7F 4A 00 E3 05 0F FC
+83 A6 8C 0E E9 D2 01 4C 37 0D 04 F0 13 16 4C 00
+33 07 86 01 13 1E 27 00 9C 08 B3 8E C7 01 03 D6
+AE FF E2 85 13 05 CD 3F EF 80 DF AB 93 02 1C 00
+93 94 02 01 93 DB 04 01 13 9F 4B 00 83 AF 8C 0E
+33 03 7F 01 93 15 23 00 13 0C 01 05 33 0B BC 00
+13 05 CD 3F DE 85 E3 F6 FB E9 03 56 AB FF 13 0A
+01 05 EF 80 3F A8 93 83 1B 00 93 99 03 01 93 DA
+09 01 13 98 4A 00 83 AD 8C 0E B3 08 58 01 13 94
+28 00 13 05 CD 3F B3 06 8A 00 D6 85 E3 FB BA E5
+03 D6 A6 FF EF 80 1F A5 13 87 1A 00 13 1E 07 01
+93 54 0E 01 93 97 44 00 03 A6 8C 0E B3 8E 97 00
+93 9F 2E 00 93 02 01 05 13 05 CD 3F B3 8B F2 01
+A6 85 E3 F0 C4 E2 03 D6 AB FF EF 80 BF A1 13 8F
+14 00 03 A5 8C 0E 13 13 0F 01 13 5C 03 01 E3 67
+AC F2 01 B5 83 A8 8C 0E A2 56 E1 64 13 87 04 6A
+B3 80 16 03 37 06 04 F0 93 0F 40 06 13 05 C6 2F
+B3 87 E0 02 33 DE B7 03 B3 8E 60 03 33 76 FE 03
+B3 D5 BE 03 EF 80 1F 9D 09 65 93 02 F5 70 E3 E1
+52 B9 A5 B6 E9 7A 05 44 37 0C 04 F0 B7 0C 04 F0
+13 0D C1 00 13 8B 1A 00 93 0D 70 3E 93 1B 24 00
+33 8E 8B 00 13 14 1E 00 22 D4 F3 24 00 B0 23 22
+9C 5C 82 C2 82 C4 81 4B 63 0F 04 40 85 45 6A 85
+EF D0 1F F9 83 5E 41 04 13 7F F5 0F 93 52 1F 00
+B3 CF AE 00 93 F5 1F 00 93 D3 1E 00 99 C5 B3 C0
+63 01 13 93 00 01 93 53 03 01 B3 C6 53 00 13 F8
+16 00 93 58 2F 00 13 D9 13 00 63 08 08 00 33 47
+69 01 93 17 07 01 13 D9 07 01 33 46 19 01 93 79
+16 00 13 5A 3F 00 93 5E 19 00 63 88 09 00 B3 CA
+6E 01 13 9E 0A 01 93 5E 0E 01 B3 CF 4E 01 93 F5
+1F 00 93 52 4F 00 93 D3 1E 00 99 C5 B3 C0 63 01
+13 93 00 01 93 53 03 01 B3 C6 53 00 13 F8 16 00
+93 58 5F 00 13 D9 13 00 63 08 08 00 33 47 69 01
+93 17 07 01 13 D9 07 01 33 46 19 01 93 79 16 00
+13 5A 6F 00 93 5E 19 00 63 88 09 00 B3 CA 6E 01
+13 9E 0A 01 93 5E 0E 01 B3 CF 4E 01 93 F5 1F 00
+13 5F 7F 00 13 D3 1E 00 99 C5 B3 42 63 01 93 90
+02 01 13 D3 00 01 93 73 13 00 93 58 13 00 63 88
+E3 01 B3 C6 68 01 13 98 06 01 93 58 08 01 21 81
+33 47 15 01 13 79 F5 0F 13 76 17 00 93 59 19 00
+93 DA 18 00 19 C6 B3 C7 6A 01 13 9A 07 01 93 5A
+0A 01 33 CE 3A 01 93 7E 1E 00 93 5F 29 00 93 D2
+1A 00 63 88 0E 00 B3 C5 62 01 13 9F 05 01 93 52
+0F 01 B3 C0 F2 01 13 F3 10 00 93 53 39 00 93 D8
+12 00 63 08 03 00 B3 C6 68 01 13 98 06 01 93 58
+08 01 33 C5 78 00 13 76 15 00 13 57 49 00 13 DA
+18 00 19 C6 B3 49 6A 01 93 97 09 01 13 DA 07 01
+B3 4A EA 00 13 FE 1A 00 93 5E 59 00 13 5F 1A 00
+63 08 0E 00 B3 4F 6F 01 93 95 0F 01 13 DF 05 01
+B3 42 DF 01 93 F0 12 00 13 53 69 00 13 58 1F 00
+63 88 00 00 B3 43 68 01 93 96 03 01 13 D8 06 01
+B3 48 68 00 13 F6 18 00 13 59 79 00 93 59 18 00
+19 C6 33 C5 69 01 13 17 05 01 93 59 07 01 B3 C7
+29 01 13 FA 17 00 93 DE 19 00 63 08 0A 00 B3 CA
+6E 01 13 9E 0A 01 93 5E 0E 01 FD 55 6A 85 23 12
+D1 05 EF D0 FF D8 83 5F 41 04 13 7F F5 0F 13 53
+1F 00 B3 C5 AF 00 93 F2 15 00 13 D8 1F 00 63 88
+02 00 B3 40 68 01 93 93 00 01 13 D8 03 01 B3 46
+68 00 93 F8 16 00 13 56 2F 00 93 59 18 00 63 88
+08 00 33 C9 69 01 13 17 09 01 93 59 07 01 B3 C7
+C9 00 13 FA 17 00 93 5A 3F 00 93 DF 19 00 63 08
+0A 00 33 CE 6F 01 93 1E 0E 01 93 DF 0E 01 B3 C5
+5F 01 93 F2 15 00 13 53 4F 00 13 D8 1F 00 63 88
+02 00 B3 40 68 01 93 93 00 01 13 D8 03 01 B3 46
+68 00 93 F8 16 00 13 56 5F 00 93 59 18 00 63 88
+08 00 33 C9 69 01 13 17 09 01 93 59 07 01 B3 C7
+C9 00 13 FA 17 00 93 5A 6F 00 93 DF 19 00 63 08
+0A 00 33 CE 6F 01 93 1E 0E 01 93 DF 0E 01 B3 C5
+5F 01 93 F2 15 00 13 5F 7F 00 93 D3 1F 00 63 88
+02 00 33 C3 63 01 93 10 03 01 93 D3 00 01 13 F8
+13 00 13 D6 13 00 63 08 E8 01 B3 46 66 01 93 98
+06 01 13 D6 08 01 21 81 33 49 C5 00 93 79 F5 0F
+13 77 19 00 13 DA 19 00 13 5E 16 00 19 C7 B3 47
+6E 01 93 9A 07 01 13 DE 0A 01 B3 4E 4E 01 93 FF
+1E 00 93 D5 29 00 13 53 1E 00 63 88 0F 00 B3 42
+63 01 13 9F 02 01 13 53 0F 01 B3 40 B3 00 93 F3
+10 00 13 D8 39 00 13 56 13 00 63 88 03 00 B3 46
+66 01 93 98 06 01 13 D6 08 01 33 45 06 01 13 79
+15 00 13 D7 49 00 93 5A 16 00 63 08 09 00 33 CA
+6A 01 93 17 0A 01 93 DA 07 01 33 CE EA 00 93 7E
+1E 00 93 DF 59 00 13 DF 1A 00 63 88 0E 00 B3 45
+6F 01 93 92 05 01 13 DF 02 01 33 43 FF 01 93 70
+13 00 93 D3 69 00 93 58 1F 00 63 88 00 00 33 C8
+68 01 93 16 08 01 93 D8 06 01 33 C6 78 00 13 79
+16 00 93 D9 79 00 13 DA 18 00 63 08 09 00 33 45
+6A 01 13 17 05 01 13 5A 07 01 B3 47 3A 01 93 FA
+17 00 93 5F 1A 00 63 88 0A 00 33 CE 6F 01 93 1E
+0E 01 93 DF 0E 01 23 12 F1 05 63 8C 0B 02 85 0B
+E3 16 74 BF 22 54 F3 25 00 B0 23 A0 BC 5C B3 84
+95 40 E3 FD 9D BA 13 0B 80 3E B3 DD 64 03 A9 42
+33 DF B2 03 13 03 1F 00 B3 00 64 02 06 D4 6F F0
+8F CB 23 13 F1 05 85 4B 55 BE 85 49 63 18 39 C3
+63 16 08 C2 37 3A 15 34 93 0A 5A 41 13 0B 60 06
+8D 6B 56 C6 23 18 61 01 13 86 5B 41 6F F0 0F C1
+33 08 A4 02 B3 08 0D 01 46 D0 63 0A 0F C4 6F F0
+CF E0 33 03 A4 02 93 06 14 00 93 93 06 01 13 D4
+03 01 B3 04 6D 00 26 CE 63 89 0E C2 D1 BF 6A CC
+05 44 63 02 07 C2 F1 BF B7 0C 04 F0 13 85 4C 49
+EF 80 4F CD D9 B2 13 0C 60 06 23 18 81 01 01 46
+6F F0 CF BB B7 00 04 F0 13 85 40 43 EF 80 8F CB
+6D B2 B7 07 04 F0 13 85 47 0F EF 80 AF CA 31 6E
+93 0B 2E E5 99 6E B5 6F 13 8A 7E E4 5E 8C 13 8B
+0F 4B 6F F0 2F C9 B7 08 04 F0 13 85 48 12 EF 80
+6F C8 05 66 93 0B 96 19 11 69 0D 65 13 0A F9 9B
+5E 8C 13 0B 05 34 6F F0 EF C6 37 0F 04 F0 13 05
+4F 1B EF 80 2F C6 25 63 B9 63 13 0A 43 D8 93 0B
+70 74 13 0C 70 74 13 8B 13 3C 6F F0 AF C4 92 54
+01 44 6F F0 EF DA 41 6A 13 04 FA FF 7D 59 B7 0C
+04 F0 6F F0 EF D9
+@D0580000
+00 00 00 00
@F0040000
-C4 02 00 00 A0 00 00 00 A0 00 00 00 A0 00 00 00
-A0 00 00 00 A0 00 00 00 A0 00 00 00 A0 00 00 00
-A0 00 00 00 A0 00 00 00 A0 00 00 00 BE 03 00 00
-88 08 00 00 A0 00 00 00 A0 00 00 00 A0 00 00 00
-A0 00 00 00 A0 00 00 00 A0 00 00 00 A0 00 00 00
-A0 00 00 00 A0 00 00 00 A0 00 00 00 A8 06 00 00
-A0 00 00 00 A0 00 00 00 A0 00 00 00 38 06 00 00
-A0 00 00 00 CC 03 00 00 A0 00 00 00 A0 00 00 00
-C4 02 00 00 A8 05 04 F0 B0 05 04 F0 B8 05 04 F0
-42 6E 00 00 1A 6E 00 00 24 6E 00 00 2E 6E 00 00
-38 6E 00 00 10 6E 00 00 88 05 04 F0 90 05 04 F0
+66 01 00 00 A6 00 00 00 A6 00 00 00 A6 00 00 00
+A6 00 00 00 A6 00 00 00 A6 00 00 00 A6 00 00 00
+A6 00 00 00 A6 00 00 00 A6 00 00 00 B0 02 00 00
+58 02 00 00 A6 00 00 00 A6 00 00 00 A6 00 00 00
+A6 00 00 00 A6 00 00 00 A6 00 00 00 A6 00 00 00
+A6 00 00 00 A6 00 00 00 A6 00 00 00 22 02 00 00
+A6 00 00 00 A6 00 00 00 A6 00 00 00 00 02 00 00
+A6 00 00 00 AC 01 00 00 A6 00 00 00 A6 00 00 00
+66 01 00 00 A8 05 04 F0 B0 05 04 F0 B8 05 04 F0
+6E 66 00 00 46 66 00 00 50 66 00 00 5A 66 00 00
+64 66 00 00 3C 66 00 00 88 05 04 F0 90 05 04 F0
98 05 04 F0 A0 05 04 F0 58 05 04 F0 64 05 04 F0
70 05 04 F0 7C 05 04 F0 28 05 04 F0 34 05 04 F0
40 05 04 F0 4C 05 04 F0 F8 04 04 F0 04 05 04 F0
diff --git a/testbench/hex/data.hex b/testbench/hex/data.hex
deleted file mode 100755
index b71d0ef..0000000
--- a/testbench/hex/data.hex
+++ /dev/null
@@ -1,8 +0,0 @@
-@00001000
-2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
-2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
-2D 2D 0A 48 65 6C 6C 6F 20 57 6F 72 6C 64 20 66
-72 6F 6D 20 53 77 65 52 56 20 45 4C 32 20 40 57
-44 43 20 21 21 0A 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
-2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D
-2D 2D 2D 2D 2D 2D 2D 2D 0A 00
diff --git a/testbench/hex/dhry.hex b/testbench/hex/dhry.hex
new file mode 100644
index 0000000..d2e46d8
--- /dev/null
+++ b/testbench/hex/dhry.hex
@@ -0,0 +1,317 @@
+@80000000
+B7 52 55 59 93 82 52 55 73 90 02 7C 17 41 04 70
+13 01 41 E2 97 00 00 6E E7 80 C0 69 97 02 58 50
+93 82 42 FE 13 03 F0 0F 23 80 62 00 05 43 23 A0
+62 00 E3 05 00 FE 01 00 01 00 01 00 01 00 01 00
+01 00 01 00 01 00 01 00 01 00
+@D0580000
+00 00 00 00
+@EE000000
+41 11 4A C0 37 39 04 F0 83 27 09 D5 22 C4 00 41
+94 43 03 AF 47 00 83 AE 87 00 03 AE 07 01 03 A3
+47 01 83 A8 87 01 03 A8 C7 01 90 57 D8 57 CC 53
+06 C6 26 C2 AA 84 88 53 14 C0 94 40 23 22 E4 01
+23 24 D4 01 23 28 C4 01 23 2A 64 00 23 2C 14 01
+23 2E 04 01 08 D0 10 D4 58 D4 4C D0 15 47 D8 C4
+14 C0 9C 43 B7 36 04 F0 83 A5 86 D4 1C C0 03 26
+09 D5 58 C4 29 45 31 06 99 22 5C 40 A1 CF 9C 40
+B2 40 22 44 03 AF 07 00 83 AE 47 00 03 AE 87 00
+03 A3 C7 00 83 A8 07 01 03 A8 47 01 88 4F CC 4F
+90 53 D4 53 98 57 DC 57 23 A0 E4 01 23 A2 D4 01
+23 A4 C4 01 23 A6 64 00 23 A8 14 01 23 AA 04 01
+88 CC CC CC 90 D0 D4 D0 98 D4 DC D4 02 49 92 44
+41 01 82 80 88 44 99 47 93 05 84 00 5C C4 55 20
+83 27 09 D5 48 44 13 06 C4 00 9C 43 B2 40 92 44
+1C C0 22 44 02 49 A9 45 41 01 D1 A0 B7 37 04 F0
+03 C7 C7 D4 93 07 10 04 63 03 F7 00 82 80 1C 41
+37 37 04 F0 03 27 87 D4 A5 07 99 8F 1C C1 82 80
+B7 37 04 F0 03 A6 07 D5 09 C6 18 42 18 C1 03 A6
+07 D5 B7 37 04 F0 83 A5 87 D4 31 06 29 45 41 A0
+B7 37 04 F0 83 C7 C7 D4 37 37 04 F0 83 26 C7 E1
+93 87 F7 FB 93 B7 17 00 D5 8F 23 2E F7 E0 B7 37
+04 F0 13 07 20 04 A3 86 E7 D4 82 80 B7 37 04 F0
+13 07 10 04 23 86 E7 D4 B7 37 04 F0 23 AE 07 E0
+82 80 09 47 63 0A E5 02 8D 47 9C C1 85 47 63 09
+F5 00 63 FF A7 00 91 47 63 1F F5 00 98 C1 82 80
+B7 37 04 F0 03 A7 87 D4 93 07 40 06 E3 D9 E7 FE
+23 A0 05 00 82 80 82 80 85 47 9C C1 82 80 09 05
+2E 95 08 C2 82 80 13 07 56 00 13 08 80 0C 33 08
+07 03 93 17 27 00 0A 06 3E 95 14 C1 38 DD 54 C1
+B3 07 C8 00 AE 97 94 4B D8 CB 98 CF 13 87 16 00
+98 CB 18 41 C2 95 85 67 B2 95 BE 95 23 AA E5 FA
+B7 37 04 F0 15 47 23 A4 E7 D4 82 80 13 75 F5 0F
+93 F5 F5 0F 63 04 B5 00 01 45 82 80 B7 37 04 F0
+23 86 A7 D4 05 45 82 80 03 47 25 00 83 C7 35 00
+63 02 F7 02 41 11 06 C6 A9 2E 81 47 63 58 A0 00
+B7 37 04 F0 29 47 23 A4 E7 D4 85 47 B2 40 3E 85
+41 01 82 80 01 A0 79 15 13 35 15 00 82 80 03 48
+05 00 63 0B 08 28 39 71 22 DE 37 04 04 F0 26 DC
+4A DA 4E D8 52 D6 AA 86 56 D4 5A D2 5E D0 01 45
+93 0F 50 02 B7 08 58 D0 13 03 00 03 93 09 D0 02
+13 09 A0 02 93 04 00 02 13 04 04 00 29 4F 93 03
+B1 00 A5 42 13 0A D0 02 03 C6 16 00 93 87 16 00
+63 03 F8 03 23 80 08 01 05 05 BE 86 32 88 E3 15
+08 FE 72 54 E2 54 52 59 C2 59 32 5A A2 5A 12 5B
+82 5B 21 61 82 80 75 D6 13 8E 26 00 63 00 F6 07
+63 1D 66 1E 03 C7 17 00 BE 86 85 07 E3 0C 67 FE
+89 06 03 C8 17 00 63 05 37 03 63 0A 27 03 93 0A
+07 FD 13 FE FA 0F 81 4E 63 F2 C2 05 13 07 87 FA
+13 77 F7 0F E3 E5 E4 FA 0A 07 22 97 1C 43 82 87
+42 87 03 C8 27 00 B6 87 85 06 E3 1A 27 FD 42 87
+91 05 03 C8 27 00 85 06 81 4E C9 BF 23 80 08 01
+03 C8 26 00 F2 86 E3 11 08 F6 A5 BF 03 C8 17 00
+19 A0 93 0A 07 FD 13 9E 2E 00 76 9E 93 06 08 FD
+3E 8B 06 0E 85 07 93 F6 F6 0F 42 87 B3 8E CA 01
+03 C8 17 00 E3 FF D2 FC 93 06 2B 00 41 BF 98 41
+81 47 91 05 11 A0 B2 87 93 7E F7 00 13 8E 7E 05
+63 C4 D2 01 13 8E 0E 03 13 86 17 00 93 0E C1 00
+B2 9E A3 8F CE FF 11 83 79 FF 78 00 BA 97 03 C7
+07 00 FD 17 23 80 E8 00 E3 9B F3 FE 32 95 E3 15
+08 EE 01 B7 03 AE 05 00 01 47 91 05 B3 7A EE 03
+13 0B C1 00 BA 87 05 07 B3 0B EB 00 72 8B 93 8A
+0A 03 A3 8F 5B FF 33 5E EE 03 E3 E1 62 FF 3A 8E
+63 57 D7 01 23 80 C8 00 05 0E E3 9D CE FF 70 00
+B2 97 03 C6 07 00 FD 17 23 80 C8 00 E3 9B 77 FE
+3A 95 E3 1B 08 E8 75 B5 98 41 91 05 83 47 07 00
+99 C7 05 07 23 80 F8 00 83 47 07 00 FD FB 23 80
+E8 01 05 05 E3 1A 08 E6 69 B5 90 41 01 47 91 05
+13 7E 76 00 BA 87 93 0E C1 00 05 07 BA 9E 13 0E
+0E 03 A3 8F CE FF 0D 82 65 F6 70 00 B2 97 03 C6
+07 00 FD 17 23 80 C8 00 E3 9B 77 FE 3A 95 55 B7
+83 AB 05 00 91 05 5E 87 63 CA 0B 06 81 47 33 6E
+E7 03 3E 8B 93 0A C1 00 85 07 BE 9A 33 47 E7 03
+13 0E 0E 03 A3 8F CA FF 7D F3 3E 87 63 D7 D7 01
+23 80 C8 00 05 07 E3 1D D7 FF 78 00 5A 97 03 46
+07 00 7D 17 23 80 C8 00 E3 1B 77 FE 63 C4 0B 02
+3E 95 E3 13 08 DE F5 BB 83 C7 05 00 05 05 91 05
+23 80 F8 00 E3 1A 08 DC ED B3 32 87 F2 86 13 06
+00 02 01 BD 93 07 2B 00 3E 95 E1 BF 33 07 70 41
+23 80 48 01 FD 1E 59 B7 01 45 82 80 39 71 13 03
+41 02 2E D2 9A 85 06 CE 32 D4 36 D6 3A D8 3E DA
+42 DC 46 DE 1A C6 A1 33 F2 40 21 61 82 80 13 77
+F5 0F B7 07 58 D0 23 80 E7 00 3A 85 82 80 13 77
+F5 0F B7 07 58 D0 23 80 E7 00 3A 85 82 80 83 47
+05 00 37 07 58 D0 99 C7 05 05 23 00 F7 00 83 47
+05 00 FD FB A9 47 23 00 F7 00 05 45 82 80 39 71
+13 03 41 02 2E D2 9A 85 06 CE 32 D4 36 D6 3A D8
+3E DA 42 DC 46 DE 1A C6 DD 31 F2 40 21 61 82 80
+F3 25 00 B8 73 25 00 B0 F3 27 00 B8 E3 9A F5 FE
+82 80 33 67 B5 00 FD 53 0D 8B 79 E7 B7 87 7F 7F
+93 87 F7 F7 10 41 94 41 B3 72 F6 00 33 63 F6 00
+BE 92 B3 E2 62 00 63 97 72 0C 63 18 D6 06 50 41
+D4 41 B3 72 F6 00 33 63 F6 00 BE 92 B3 E2 62 00
+63 98 72 0A 63 1B D6 04 10 45 94 45 B3 72 F6 00
+33 63 F6 00 BE 92 B3 E2 62 00 63 91 72 0A 63 1E
+D6 02 50 45 D4 45 B3 72 F6 00 33 63 F6 00 BE 92
+B3 E2 62 00 63 9A 72 08 63 11 D6 02 10 49 94 49
+B3 72 F6 00 33 63 F6 00 BE 92 B3 E2 62 00 63 93
+72 08 51 05 D1 05 E3 0F D6 F6 13 17 06 01 93 97
+06 01 63 1C F7 00 13 57 06 01 93 D7 06 01 33 05
+F7 40 93 75 F5 0F 91 E9 82 80 41 83 C1 83 33 05
+F7 40 93 75 F5 0F 91 E1 82 80 13 77 F7 0F 93 F7
+F7 0F 33 05 F7 40 82 80 03 46 05 00 83 C6 05 00
+05 05 85 05 63 13 D6 00 65 FA 33 05 D6 40 82 80
+11 05 91 05 E3 12 D6 FE 01 45 82 80 21 05 A1 05
+E3 1C D6 FC 01 45 82 80 31 05 B1 05 E3 16 D6 FC
+01 45 82 80 41 05 C1 05 E3 10 D6 FC 01 45 82 80
+@EE0006B0
+37 07 04 F0 6D 71 13 07 C7 59 B7 07 04 F0 93 87
+C7 5B 03 2F 07 00 83 2E 47 00 03 2E 87 00 DA D9
+93 0F 01 0A 37 3B 04 F0 83 28 07 01 03 28 47 01
+08 4F 83 55 C7 01 03 46 E7 01 94 43 03 23 C7 00
+23 28 FB D5 D8 43 89 4F 23 24 81 10 23 22 91 10
+7E D5 84 18 93 0F 80 02 37 34 04 F0 23 26 11 10
+E2 D5 7E D7 7A D9 76 DB 72 DD 23 20 21 11 CE DF
+D2 DD D6 DB DE D7 E6 D3 EA D1 EE CF 23 22 94 D4
+26 D1 1A DF C6 C1 C2 C3 83 A8 87 00 03 A8 C7 00
+23 16 B1 0C 23 07 C1 0C 8C 4B D0 4B 36 D8 3A DA
+94 4F 03 D7 C7 01 83 C7 E7 01 AA C5 37 0C 04 F0
+37 05 04 F0 23 16 E1 04 23 07 F1 04 13 07 0C 63
+A9 47 13 05 45 08 23 2E F7 64 02 D3 46 DC 42 DE
+AE C0 B2 C2 B6 C4 EF F0 9F DB B7 07 04 F0 83 A7
+C7 61 63 8B 07 50 37 05 04 F0 13 05 45 0B EF F0
+1F DA 37 05 04 F0 93 05 80 3E 13 05 05 11 EF F0
+1F DB EF F0 FF DC B7 07 04 F0 23 A6 A7 62 B7 07
+04 F0 93 87 C7 5D D8 43 83 AD 07 00 37 08 04 F0
+3A C2 98 47 85 44 B7 39 04 F0 3A C4 D8 47 37 3A
+04 F0 37 34 04 F0 3A C6 98 4B B7 3B 04 F0 B7 3A
+04 F0 3A C8 D8 4B 93 0C C8 5F 3A CA 98 4F 3A CC
+03 D7 C7 01 83 C7 E7 01 23 1E E1 00 A3 0F F1 00
+13 07 10 04 23 86 E9 D4 13 07 20 04 A3 06 E4 D4
+12 47 85 47 8C 08 BA CA 22 47 08 18 23 2E FA E0
+BA CC 32 47 3E D6 EE C8 BA CE 42 47 BA D0 52 47
+BA D2 62 47 BA D4 03 57 C1 01 23 16 E1 06 03 47
+F1 01 23 07 E1 06 EF F0 3F 9D 93 37 15 00 30 10
+8D 45 09 45 23 2E FA E0 9D 47 3E D4 EF F0 3F 95
+A2 56 0D 46 93 05 0C 63 13 85 4B D5 EF F0 BF 94
+03 25 0B D5 EF F0 CF F7 03 47 D4 D4 93 07 00 04
+63 F0 E7 3C 13 0D 10 04 0D 49 6A 85 93 05 30 04
+EF F0 DF 96 B2 57 13 07 1D 00 63 07 F5 34 83 47
+D4 D4 13 7D F7 0F E3 F2 A7 FF 93 17 19 00 3E 99
+A2 58 83 C6 C9 D4 13 07 10 04 33 46 19 03 B2 87
+63 97 E6 00 03 A7 8A D4 93 07 96 00 99 8F 85 04
+13 07 90 3E E3 96 E4 F2 46 C6 32 C4 3E C2 EF F0
+3F C9 AA 85 37 05 04 F0 B7 3C 04 F0 13 05 05 14
+23 A0 BC D4 EF F0 BF C5 37 05 04 F0 13 05 05 15
+EF F0 FF C2 83 A5 8A D4 37 05 04 F0 13 05 85 18
+B7 04 04 F0 EF F0 BF C3 95 45 13 85 44 1A EF F0
+1F C3 83 25 CA E1 37 05 04 F0 13 05 05 1C EF F0
+1F C2 85 45 13 85 44 1A EF F0 7F C1 83 C5 C9 D4
+37 05 04 F0 13 05 C5 1D EF F0 7F C0 B7 09 04 F0
+93 05 10 04 13 85 89 1F EF F0 7F BF 83 45 D4 D4
+37 05 04 F0 13 05 45 21 EF F0 7F BE 93 05 20 04
+13 85 89 1F EF F0 BF BD 93 8B 4B D5 83 A5 0B 02
+37 05 04 F0 13 05 05 23 EF F0 7F BC 9D 45 13 85
+44 1A EF F0 DF BB B7 07 04 F0 93 87 07 63 83 A5
+C7 65 37 05 04 F0 13 05 C5 24 EF F0 5F BA 37 05
+04 F0 13 05 85 26 EF F0 9F B7 03 27 0B D5 37 05
+04 F0 13 05 45 29 0C 43 37 0C 04 F0 B7 0B 04 F0
+EF F0 FF B7 37 05 04 F0 13 05 05 2B EF F0 3F B5
+03 27 0B D5 13 05 0C 2E B7 0A 04 F0 4C 43 37 0A
+04 F0 B7 09 04 F0 EF F0 9F B5 81 45 13 85 44 1A
+EF F0 FF B4 03 27 0B D5 13 85 CB 2F 37 04 04 F0
+0C 47 EF F0 DF B3 89 45 13 85 44 1A EF F0 3F B3
+03 27 0B D5 13 85 8A 31 4C 47 EF F0 5F B2 C5 45
+13 85 44 1A EF F0 BF B1 83 25 0B D5 13 05 4A 33
+37 3B 04 F0 C1 05 EF F0 9F B0 13 85 C9 34 EF F0
+1F AE 03 27 4B D4 37 05 04 F0 13 05 05 38 0C 43
+EF F0 FF AE 37 05 04 F0 13 05 C5 39 EF F0 3F AC
+03 27 4B D4 13 05 0C 2E 4C 43 EF F0 5F AD 81 45
+13 85 44 1A EF F0 BF AC 03 27 4B D4 13 85 CB 2F
+0C 47 EF F0 DF AB 85 45 13 85 44 1A EF F0 3F AB
+03 27 4B D4 13 85 8A 31 4C 47 EF F0 5F AA C9 45
+13 85 44 1A EF F0 BF A9 83 25 4B D4 13 05 4A 33
+C1 05 EF F0 DF A8 13 85 C9 34 EF F0 5F A6 92 47
+37 05 04 F0 13 05 C5 3D BE 85 EF F0 5F A7 95 45
+13 85 44 1A EF F0 BF A6 B2 48 22 46 37 05 04 F0
+33 09 19 41 93 17 39 00 33 89 27 41 B3 05 C9 40
+13 05 85 3F EF F0 BF A4 B5 45 13 85 44 1A EF F0
+1F A4 A2 55 37 05 04 F0 13 05 45 41 EF F0 3F A3
+9D 45 13 85 44 1A EF F0 9F A2 B2 55 37 05 04 F0
+13 05 05 43 EF F0 BF A1 85 45 13 85 44 1A EF F0
+1F A1 37 05 04 F0 0C 18 13 05 C5 44 EF F0 3F A0
+37 05 04 F0 13 05 45 46 EF F0 7F 9D 37 05 04 F0
+8C 08 13 05 85 49 EF F0 9F 9E 37 05 04 F0 13 05
+05 4B EF F0 DF 9B 29 45 EF F0 7F 99 B7 07 04 F0
+03 A7 C7 62 83 A5 0C D4 93 07 70 0C 99 8D 23 24
+B4 62 63 C9 B7 0A 37 05 04 F0 13 05 45 4E EF F0
+1F 9B 37 05 04 F0 13 05 45 4F EF F0 5F 98 37 05
+04 F0 13 05 C5 52 EF F0 9F 97 29 45 EF F0 3F 95
+83 20 C1 10 03 24 81 10 83 24 41 10 03 29 01 10
+FE 59 6E 5A DE 5A 4E 5B BE 5B 2E 5C 9E 5C 0E 5D
+FE 4D 01 45 51 61 82 80 6C 10 01 45 EF F0 6F D8
+03 AE 0C 00 03 A3 4C 00 83 A8 8C 00 03 A8 CC 00
+03 A5 0C 01 83 A5 4C 01 03 A6 8C 01 83 D6 CC 01
+03 C7 EC 01 83 47 D4 D4 05 0D F2 C8 9A CA C6 CC
+C2 CE AA D0 AE D2 B2 D4 23 16 D1 06 23 07 E1 06
+23 A4 9A D4 13 7D FD 0F 26 89 E3 F8 A7 C5 B5 B1
+25 49 BD B1 37 05 04 F0 13 06 80 3E 13 05 C5 54
+EF F0 FF 8F 37 05 04 F0 13 05 45 57 EF F0 3F 8F
+83 25 84 62 B7 F7 76 48 93 87 07 80 B3 C7 B7 02
+13 06 40 06 37 05 04 F0 13 05 45 59 33 E6 C7 02
+B7 D7 9A 3B 93 87 07 A0 B3 C5 B7 02 EF F0 3F 8C
+29 45 EF F0 DF 87 2D B7 37 05 04 F0 13 05 05 0E
+EF F0 FF 88 FD B4
+@F0040000
+7E 03 00 EE BE 02 00 EE BE 02 00 EE BE 02 00 EE
+BE 02 00 EE BE 02 00 EE BE 02 00 EE BE 02 00 EE
+BE 02 00 EE BE 02 00 EE BE 02 00 EE C8 04 00 EE
+70 04 00 EE BE 02 00 EE BE 02 00 EE BE 02 00 EE
+BE 02 00 EE BE 02 00 EE BE 02 00 EE BE 02 00 EE
+BE 02 00 EE BE 02 00 EE BE 02 00 EE 3A 04 00 EE
+BE 02 00 EE BE 02 00 EE BE 02 00 EE 18 04 00 EE
+BE 02 00 EE C4 03 00 EE BE 02 00 EE BE 02 00 EE
+7E 03 00 EE 44 68 72 79 73 74 6F 6E 65 20 42 65
+6E 63 68 6D 61 72 6B 2C 20 56 65 72 73 69 6F 6E
+20 32 2E 31 20 28 4C 61 6E 67 75 61 67 65 3A 20
+43 29 00 00 50 72 6F 67 72 61 6D 20 63 6F 6D 70
+69 6C 65 64 20 77 69 74 68 20 27 72 65 67 69 73
+74 65 72 27 20 61 74 74 72 69 62 75 74 65 00 00
+50 72 6F 67 72 61 6D 20 63 6F 6D 70 69 6C 65 64
+20 77 69 74 68 6F 75 74 20 27 72 65 67 69 73 74
+65 72 27 20 61 74 74 72 69 62 75 74 65 00 00 00
+45 78 65 63 75 74 69 6F 6E 20 73 74 61 72 74 73
+2C 20 25 64 20 72 75 6E 73 20 74 68 72 6F 75 67
+68 20 44 68 72 79 73 74 6F 6E 65 0A 00 00 00 00
+45 6E 64 5F 74 69 6D 65 3D 25 64 0A 00 00 00 00
+46 69 6E 61 6C 20 76 61 6C 75 65 73 20 6F 66 20
+74 68 65 20 76 61 72 69 61 62 6C 65 73 20 75 73
+65 64 20 69 6E 20 74 68 65 20 62 65 6E 63 68 6D
+61 72 6B 3A 0A 00 00 00 49 6E 74 5F 47 6C 6F 62
+3A 20 20 20 20 20 20 20 20 20 20 20 20 25 64 0A
+00 00 00 00 20 20 20 20 20 20 20 20 73 68 6F 75
+6C 64 20 62 65 3A 20 20 20 25 64 0A 00 00 00 00
+42 6F 6F 6C 5F 47 6C 6F 62 3A 20 20 20 20 20 20
+20 20 20 20 20 25 64 0A 00 00 00 00 43 68 5F 31
+5F 47 6C 6F 62 3A 20 20 20 20 20 20 20 20 20 20
+20 25 63 0A 00 00 00 00 20 20 20 20 20 20 20 20
+73 68 6F 75 6C 64 20 62 65 3A 20 20 20 25 63 0A
+00 00 00 00 43 68 5F 32 5F 47 6C 6F 62 3A 20 20
+20 20 20 20 20 20 20 20 20 25 63 0A 00 00 00 00
+41 72 72 5F 31 5F 47 6C 6F 62 5B 38 5D 3A 20 20
+20 20 20 20 20 25 64 0A 00 00 00 00 41 72 72 5F
+32 5F 47 6C 6F 62 5B 38 5D 5B 37 5D 3A 20 20 20
+20 25 64 0A 00 00 00 00 20 20 20 20 20 20 20 20
+73 68 6F 75 6C 64 20 62 65 3A 20 20 20 4E 75 6D
+62 65 72 5F 4F 66 5F 52 75 6E 73 20 2B 20 31 30
+00 00 00 00 50 74 72 5F 47 6C 6F 62 2D 3E 50 74
+72 5F 43 6F 6D 70 3A 20 20 25 78 0A 00 00 00 00
+20 20 20 20 20 20 20 20 73 68 6F 75 6C 64 20 62
+65 3A 20 20 20 28 69 6D 70 6C 65 6D 65 6E 74 61
+74 69 6F 6E 2D 64 65 70 65 6E 64 65 6E 74 29 00
+20 20 44 69 73 63 72 3A 20 20 20 20 20 20 20 20
+20 20 20 20 20 25 64 0A 00 00 00 00 20 20 45 6E
+75 6D 5F 43 6F 6D 70 3A 20 20 20 20 20 20 20 20
+20 25 64 0A 00 00 00 00 20 20 49 6E 74 5F 43 6F
+6D 70 3A 20 20 20 20 20 20 20 20 20 20 25 64 0A
+00 00 00 00 20 20 53 74 72 5F 43 6F 6D 70 3A 20
+20 20 20 20 20 20 20 20 20 25 73 00 20 20 20 20
+20 20 20 20 73 68 6F 75 6C 64 20 62 65 3A 20 20
+20 44 48 52 59 53 54 4F 4E 45 20 50 52 4F 47 52
+41 4D 2C 20 53 4F 4D 45 20 53 54 52 49 4E 47 00
+4E 65 78 74 5F 50 74 72 5F 47 6C 6F 62 2D 3E 50
+74 72 5F 43 6F 6D 70 3A 25 78 0A 00 20 20 20 20
+20 20 20 20 73 68 6F 75 6C 64 20 62 65 3A 20 20
+20 28 69 6D 70 6C 65 6D 65 6E 74 61 74 69 6F 6E
+2D 64 65 70 65 6E 64 65 6E 74 29 2C 20 73 61 6D
+65 20 61 73 20 61 62 6F 76 65 00 00 49 6E 74 5F
+31 5F 4C 6F 63 3A 20 20 20 20 20 20 20 20 20 20
+20 25 64 0A 00 00 00 00 49 6E 74 5F 32 5F 4C 6F
+63 3A 20 20 20 20 20 20 20 20 20 20 20 25 64 0A
+00 00 00 00 49 6E 74 5F 33 5F 4C 6F 63 3A 20 20
+20 20 20 20 20 20 20 20 20 25 64 0A 00 00 00 00
+45 6E 75 6D 5F 4C 6F 63 3A 20 20 20 20 20 20 20
+20 20 20 20 20 25 64 0A 00 00 00 00 53 74 72 5F
+31 5F 4C 6F 63 3A 20 20 20 20 20 20 20 20 20 20
+20 25 73 00 20 20 20 20 20 20 20 20 73 68 6F 75
+6C 64 20 62 65 3A 20 20 20 44 48 52 59 53 54 4F
+4E 45 20 50 52 4F 47 52 41 4D 2C 20 31 27 53 54
+20 53 54 52 49 4E 47 00 53 74 72 5F 32 5F 4C 6F
+63 3A 20 20 20 20 20 20 20 20 20 20 20 25 73 00
+20 20 20 20 20 20 20 20 73 68 6F 75 6C 64 20 62
+65 3A 20 20 20 44 48 52 59 53 54 4F 4E 45 20 50
+52 4F 47 52 41 4D 2C 20 32 27 4E 44 20 53 54 52
+49 4E 47 00 55 73 65 72 20 74 69 6D 65 20 25 64
+0A 00 00 00 4D 65 61 73 75 72 65 64 20 74 69 6D
+65 20 74 6F 6F 20 73 6D 61 6C 6C 20 74 6F 20 6F
+62 74 61 69 6E 20 6D 65 61 6E 69 6E 67 66 75 6C
+20 72 65 73 75 6C 74 73 00 00 00 00 50 6C 65 61
+73 65 20 69 6E 63 72 65 61 73 65 20 6E 75 6D 62
+65 72 20 6F 66 20 72 75 6E 73 00 00 52 75 6E 20
+74 69 6D 65 20 3D 20 25 64 20 63 6C 6F 63 6B 73
+20 66 6F 72 20 25 64 20 44 68 72 79 73 74 6F 6E
+65 73 0A 00 44 68 72 79 73 74 6F 6E 65 73 20 70
+65 72 20 53 65 63 6F 6E 64 20 70 65 72 20 4D 48
+7A 3A 20 00 25 64 2E 25 30 32 64 00 44 48 52 59
+53 54 4F 4E 45 20 50 52 4F 47 52 41 4D 2C 20 53
+4F 4D 45 20 53 54 52 49 4E 47 00 00 44 48 52 59
+53 54 4F 4E 45 20 50 52 4F 47 52 41 4D 2C 20 31
+27 53 54 20 53 54 52 49 4E 47 00 00 44 48 52 59
+53 54 4F 4E 45 20 50 52 4F 47 52 41 4D 2C 20 32
+27 4E 44 20 53 54 52 49 4E 47 00 00 44 48 52 59
+53 54 4F 4E 45 20 50 52 4F 47 52 41 4D 2C 20 33
+27 52 44 20 53 54 52 49 4E 47 00
+@FFFFFFF0
+00 00 00 EE FF FF 00 EE
+@FFFFFFF8
+00 00 04 F0 30 3E 04 F0
diff --git a/testbench/hex/program.hex b/testbench/hex/program.hex
deleted file mode 100644
index 0e2bf73..0000000
--- a/testbench/hex/program.hex
+++ /dev/null
@@ -1,18 +0,0 @@
-@00000000
-73 10 20 B0 73 10 20 B8 B7 00 00 EE 73 90 50 30
-B7 50 55 5F 93 80 50 55 73 90 00 7C B7 01 58 D0
-17 12 00 00 13 02 02 FE 83 02 02 00 23 80 51 00
-05 02 E3 9B 02 FE B7 01 58 D0 93 02 F0 0F 23 80
-51 00 E3 0A 00 FE 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00 01 00
-01 00 01 00 01 00 01 00 01 00 01 00 01 00
diff --git a/testbench/tb_top.sv b/testbench/tb_top.sv
index a6d2288..f8693ca 100644
--- a/testbench/tb_top.sv
+++ b/testbench/tb_top.sv
@@ -312,6 +312,7 @@ module tb_top ( input bit core_clk );
wire[63:0] WriteData;
string abi_reg[32]; // ABI register names
+`define DEC rvtop.swerv.dec
assign mailbox_write = lmem.mailbox_write;
assign WriteData = lmem.WriteData;
@@ -336,7 +337,7 @@ module tb_top ( input bit core_clk );
// End Of test monitor
if(mailbox_write && WriteData[7:0] == 8'hff) begin
$display("TEST_PASSED");
- $display("\nFinished : minstret = %0d, mcycle = %0d", rvtop.swerv.dec.tlu.minstretl[31:0],rvtop.swerv.dec.tlu.mcyclel[31:0]);
+ $display("\nFinished : minstret = %0d, mcycle = %0d", `DEC.tlu.minstretl[31:0],`DEC.tlu.mcyclel[31:0]);
$display("See \"exec.log\" for execution trace with register updates..\n");
$finish;
end
@@ -349,9 +350,9 @@ module tb_top ( input bit core_clk );
// trace monitor
always @(posedge core_clk) begin
- wb_valid <= rvtop.swerv.dec.dec_i0_wen_r;
- wb_dest <= rvtop.swerv.dec.dec_i0_waddr_r;
- wb_data <= rvtop.swerv.dec.dec_i0_wdata_r;
+ wb_valid <= `DEC.dec_i0_wen_r;
+ wb_dest <= `DEC.dec_i0_waddr_r;
+ wb_data <= `DEC.dec_i0_wdata_r;
if (trace_rv_i_valid_ip) begin
$fwrite(tp,"%b,%h,%h,%0h,%0h,3,%b,%h,%h,%b\n", trace_rv_i_valid_ip, 0, trace_rv_i_address_ip,
0, trace_rv_i_insn_ip,trace_rv_i_exception_ip,trace_rv_i_ecause_ip,
@@ -365,10 +366,14 @@ module tb_top ( input bit core_clk );
dasm(trace_rv_i_insn_ip, trace_rv_i_address_ip, wb_dest & {5{wb_valid}}, wb_data)
);
end
- if(rvtop.swerv.dec.dec_nonblock_load_wen)
- $fwrite (el, "%10d : %32s=%h ; nbL\n", cycleCnt, abi_reg[rvtop.swerv.dec.dec_nonblock_load_waddr], rvtop.swerv.dec.lsu_nonblock_load_data);
- if(rvtop.swerv.dec.exu_div_wren)
- $fwrite (el, "%10d : %32s=%h ; nbD\n", cycleCnt, abi_reg[rvtop.swerv.dec.div_waddr_wb], rvtop.swerv.dec.exu_div_result);
+ if(`DEC.dec_nonblock_load_wen) begin
+ $fwrite (el, "%10d : %32s=%h ; nbL\n", cycleCnt, abi_reg[`DEC.dec_nonblock_load_waddr], `DEC.lsu_nonblock_load_data);
+ tb_top.gpr[0][`DEC.dec_nonblock_load_waddr] = `DEC.lsu_nonblock_load_data;
+ end
+ if(`DEC.exu_div_wren) begin
+ $fwrite (el, "%10d : %32s=%h ; nbD\n", cycleCnt, abi_reg[`DEC.div_waddr_wb], `DEC.exu_div_result);
+ tb_top.gpr[0][`DEC.div_waddr_wb] = `DEC.exu_div_result;
+ end
end
@@ -952,7 +957,9 @@ addresses:
0xfffffff0 - ICCM start address to load
0xfffffff4 - ICCM end address to load
*/
-
+`ifndef VERILATOR
+init_iccm();
+`endif
addr = 'hffff_fff0;
saddr = {lmem.mem[addr+3],lmem.mem[addr+2],lmem.mem[addr+1],lmem.mem[addr]};
if ( (saddr < `RV_ICCM_SADR) || (saddr > `RV_ICCM_EADR)) return;
diff --git a/testbench/tests/Coremark/Makefile b/testbench/tests/Coremark/Makefile
deleted file mode 100644
index 2313be7..0000000
--- a/testbench/tests/Coremark/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-export TEST = cmark
-#export CONF_PARAMS= -set=btb_size=512 -set=bht_size=2048 -set=iccm_size=128
-export CONF_PARAMS= -set=btb_size=512 -set=bht_size=2048 -set=iccm_enable=0
-export OFILES = crt0.o cmark.o printf.o
-export BUILD_PATH = $(shell pwd)/snapshots/default
-export TEST_CFLAGS = -finline-limit=400 -mbranch-cost=1 -Ofast -fno-code-hoisting -funroll-all-loops
-
-program.hex:
- $(MAKE) -e -f $(RV_ROOT)/tools/make.common $(BUILD_PATH)/defines.h
- $(MAKE) -e -f $(RV_ROOT)/tools/make.common $@
-
-.DEFAULT:
- $(MAKE) -e program.hex
- $(MAKE) -e -f $(RV_ROOT)/tools/make.common $@
diff --git a/testbench/tests/Coremark/cmark.c b/testbench/tests/Coremark/cmark.c
deleted file mode 100644
index b366c80..0000000
--- a/testbench/tests/Coremark/cmark.c
+++ /dev/null
@@ -1,2167 +0,0 @@
-#include "defines.h"
-
-#define ITERATIONS 1
-
-
-/*
-Author : Shay Gal-On, EEMBC
-
-This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009
-All rights reserved.
-
-EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the
-CoreMark License that is distributed with the official EEMBC COREMARK Software release.
-If you received this EEMBC CoreMark Software without the accompanying CoreMark License,
-you must discontinue use and download the official release from www.coremark.org.
-
-Also, if you are publicly displaying scores generated from the EEMBC CoreMark software,
-make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file.
-
-EEMBC
-4354 Town Center Blvd. Suite 114-200
-El Dorado Hills, CA, 95762
-*/
-
-//#include "/wd/users/jrahmeh/coremark_v1.0/riscv/coremark.h"
-
-/*
-Author : Shay Gal-On, EEMBC
-
-This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009
-All rights reserved.
-
-EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the
-CoreMark License that is distributed with the official EEMBC COREMARK Software release.
-If you received this EEMBC CoreMark Software without the accompanying CoreMark License,
-you must discontinue use and download the official release from www.coremark.org.
-
-Also, if you are publicly displaying scores generated from the EEMBC CoreMark software,
-make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file.
-
-EEMBC
-4354 Town Center Blvd. Suite 114-200
-El Dorado Hills, CA, 95762
-*/
-/* Topic: Description
- This file contains declarations of the various benchmark functions.
-*/
-
-/* Configuration: TOTAL_DATA_SIZE
- Define total size for data algorithms will operate on
-*/
-#ifndef TOTAL_DATA_SIZE
-#define TOTAL_DATA_SIZE 2*1000
-#endif
-
-#define SEED_ARG 0
-#define SEED_FUNC 1
-#define SEED_VOLATILE 2
-
-#define MEM_STATIC 0
-#define MEM_MALLOC 1
-#define MEM_STACK 2
-
-/* File : core_portme.h */
-
-/*
- Author : Shay Gal-On, EEMBC
- Legal : TODO!
-*/
-/* Topic : Description
- This file contains configuration constants required to execute on different platforms
-*/
-#ifndef CORE_PORTME_H
-#define CORE_PORTME_H
-/************************/
-/* Data types and settings */
-/************************/
-/* Configuration : HAS_FLOAT
- Define to 1 if the platform supports floating point.
-*/
-#ifndef HAS_FLOAT
-#define HAS_FLOAT 0
-#endif
-/* Configuration : HAS_TIME_H
- Define to 1 if platform has the time.h header file,
- and implementation of functions thereof.
-*/
-#ifndef HAS_TIME_H
-#define HAS_TIME_H 0
-#endif
-/* Configuration : USE_CLOCK
- Define to 1 if platform has the time.h header file,
- and implementation of functions thereof.
-*/
-#ifndef USE_CLOCK
-#define USE_CLOCK 0
-#endif
-/* Configuration : HAS_STDIO
- Define to 1 if the platform has stdio.h.
-*/
-#ifndef HAS_STDIO
-#define HAS_STDIO 0
-#endif
-/* Configuration : HAS_PRINTF
- Define to 1 if the platform has stdio.h and implements the printf function.
-*/
-#ifndef HAS_PRINTF
-#define HAS_PRINTF 1
-int whisperPrintf(const char* format, ...);
-#define ee_printf whisperPrintf
-#endif
-
-/* Configuration : CORE_TICKS
- Define type of return from the timing functions.
- */
-#include
-typedef clock_t CORE_TICKS;
-
-/* Definitions : COMPILER_VERSION, COMPILER_FLAGS, MEM_LOCATION
- Initialize these strings per platform
-*/
-#ifndef COMPILER_VERSION
- #ifdef __GNUC__
- #define COMPILER_VERSION "GCC"__VERSION__
- #else
- #define COMPILER_VERSION "Please put compiler version here (e.g. gcc 4.1)"
- #endif
-#endif
-#ifndef COMPILER_FLAGS
- #define COMPILER_FLAGS "-O2"
-#endif
-
-#ifndef MEM_LOCATION
-// #define MEM_LOCATION "STACK"
- #define MEM_LOCATION "STATIC"
-#endif
-
-/* Data Types :
- To avoid compiler issues, define the data types that need ot be used for 8b, 16b and 32b in .
-
- *Imprtant* :
- ee_ptr_int needs to be the data type used to hold pointers, otherwise coremark may fail!!!
-*/
-typedef signed short ee_s16;
-typedef unsigned short ee_u16;
-typedef signed int ee_s32;
-typedef double ee_f32;
-typedef unsigned char ee_u8;
-typedef unsigned int ee_u32;
-typedef ee_u32 ee_ptr_int;
-typedef size_t ee_size_t;
-/* align_mem :
- This macro is used to align an offset to point to a 32b value. It is used in the Matrix algorithm to initialize the input memory blocks.
-*/
-#define align_mem(x) (void *)(4 + (((ee_ptr_int)(x) - 1) & ~3))
-
-/* Configuration : SEED_METHOD
- Defines method to get seed values that cannot be computed at compile time.
-
- Valid values :
- SEED_ARG - from command line.
- SEED_FUNC - from a system function.
- SEED_VOLATILE - from volatile variables.
-*/
-#ifndef SEED_METHOD
-#define SEED_METHOD SEED_VOLATILE
-#endif
-
-/* Configuration : MEM_METHOD
- Defines method to get a block of memry.
-
- Valid values :
- MEM_MALLOC - for platforms that implement malloc and have malloc.h.
- MEM_STATIC - to use a static memory array.
- MEM_STACK - to allocate the data block on the stack (NYI).
-*/
-#ifndef MEM_METHOD
-//#define MEM_METHOD MEM_STACK
-#define MEM_METHOD MEM_STATIC
-#endif
-
-/* Configuration : MULTITHREAD
- Define for parallel execution
-
- Valid values :
- 1 - only one context (default).
- N>1 - will execute N copies in parallel.
-
- Note :
- If this flag is defined to more then 1, an implementation for launching parallel contexts must be defined.
-
- Two sample implementations are provided. Use or to enable them.
-
- It is valid to have a different implementation of and in ,
- to fit a particular architecture.
-*/
-#ifndef MULTITHREAD
-#define MULTITHREAD 1
-#define USE_PTHREAD 0
-#define USE_FORK 0
-#define USE_SOCKET 0
-#endif
-
-/* Configuration : MAIN_HAS_NOARGC
- Needed if platform does not support getting arguments to main.
-
- Valid values :
- 0 - argc/argv to main is supported
- 1 - argc/argv to main is not supported
-
- Note :
- This flag only matters if MULTITHREAD has been defined to a value greater then 1.
-*/
-#ifndef MAIN_HAS_NOARGC
-#define MAIN_HAS_NOARGC 1
-#endif
-
-/* Configuration : MAIN_HAS_NORETURN
- Needed if platform does not support returning a value from main.
-
- Valid values :
- 0 - main returns an int, and return value will be 0.
- 1 - platform does not support returning a value from main
-*/
-#ifndef MAIN_HAS_NORETURN
-#define MAIN_HAS_NORETURN 1
-#endif
-
-/* Variable : default_num_contexts
- Not used for this simple port, must cintain the value 1.
-*/
-extern ee_u32 default_num_contexts;
-
-typedef struct CORE_PORTABLE_S {
- ee_u8 portable_id;
-} core_portable;
-
-/* target specific init/fini */
-void portable_init(core_portable *p, int *argc, char *argv[]);
-void portable_fini(core_portable *p);
-
-#if !defined(PROFILE_RUN) && !defined(PERFORMANCE_RUN) && !defined(VALIDATION_RUN)
-#if (TOTAL_DATA_SIZE==1200)
-#define PROFILE_RUN 1
-#elif (TOTAL_DATA_SIZE==2000)
-#define PERFORMANCE_RUN 1
-#else
-#define VALIDATION_RUN 1
-#endif
-#endif
-
-#endif /* CORE_PORTME_H */
-
-
-#if HAS_STDIO
-#include
-#endif
-#if HAS_PRINTF
-#ifndef ee_printf
-#define ee_printf printf
-#endif
-#endif
-
-/* Actual benchmark execution in iterate */
-void *iterate(void *pres);
-
-/* Typedef: secs_ret
- For machines that have floating point support, get number of seconds as a double.
- Otherwise an unsigned int.
-*/
-#if HAS_FLOAT
-typedef double secs_ret;
-#else
-typedef ee_u32 secs_ret;
-#endif
-
-#if MAIN_HAS_NORETURN
-#define MAIN_RETURN_VAL
-#define MAIN_RETURN_TYPE void
-#else
-#define MAIN_RETURN_VAL 0
-#define MAIN_RETURN_TYPE int
-#endif
-
-void start_time(void);
-void stop_time(void);
-CORE_TICKS get_time(void);
-secs_ret time_in_secs(CORE_TICKS ticks);
-
-/* Misc useful functions */
-ee_u16 crcu8(ee_u8 data, ee_u16 crc);
-ee_u16 crc16(ee_s16 newval, ee_u16 crc);
-ee_u16 crcu16(ee_u16 newval, ee_u16 crc);
-ee_u16 crcu32(ee_u32 newval, ee_u16 crc);
-ee_u8 check_data_types();
-void *portable_malloc(ee_size_t size);
-void portable_free(void *p);
-ee_s32 parseval(char *valstring);
-
-/* Algorithm IDS */
-#define ID_LIST (1<<0)
-#define ID_MATRIX (1<<1)
-#define ID_STATE (1<<2)
-#define ALL_ALGORITHMS_MASK (ID_LIST|ID_MATRIX|ID_STATE)
-#define NUM_ALGORITHMS 3
-
-/* list data structures */
-typedef struct list_data_s {
- ee_s16 data16;
- ee_s16 idx;
-} list_data;
-
-typedef struct list_head_s {
- struct list_head_s *next;
- struct list_data_s *info;
-} list_head;
-
-
-/*matrix benchmark related stuff */
-#define MATDAT_INT 1
-#if MATDAT_INT
-typedef ee_s16 MATDAT;
-typedef ee_s32 MATRES;
-#else
-typedef ee_f16 MATDAT;
-typedef ee_f32 MATRES;
-#endif
-
-typedef struct MAT_PARAMS_S {
- int N;
- MATDAT *A;
- MATDAT *B;
- MATRES *C;
-} mat_params;
-
-/* state machine related stuff */
-/* List of all the possible states for the FSM */
-typedef enum CORE_STATE {
- CORE_START=0,
- CORE_INVALID,
- CORE_S1,
- CORE_S2,
- CORE_INT,
- CORE_FLOAT,
- CORE_EXPONENT,
- CORE_SCIENTIFIC,
- NUM_CORE_STATES
-} core_state_e ;
-
-
-/* Helper structure to hold results */
-typedef struct RESULTS_S {
- /* inputs */
- ee_s16 seed1; /* Initializing seed */
- ee_s16 seed2; /* Initializing seed */
- ee_s16 seed3; /* Initializing seed */
- void *memblock[4]; /* Pointer to safe memory location */
- ee_u32 size; /* Size of the data */
- ee_u32 iterations; /* Number of iterations to execute */
- ee_u32 execs; /* Bitmask of operations to execute */
- struct list_head_s *list;
- mat_params mat;
- /* outputs */
- ee_u16 crc;
- ee_u16 crclist;
- ee_u16 crcmatrix;
- ee_u16 crcstate;
- ee_s16 err;
- /* ultithread specific */
- core_portable port;
-} core_results;
-
-/* Multicore execution handling */
-#if (MULTITHREAD>1)
-ee_u8 core_start_parallel(core_results *res);
-ee_u8 core_stop_parallel(core_results *res);
-#endif
-
-/* list benchmark functions */
-list_head *core_list_init(ee_u32 blksize, list_head *memblock, ee_s16 seed);
-ee_u16 core_bench_list(core_results *res, ee_s16 finder_idx);
-
-/* state benchmark functions */
-void core_init_state(ee_u32 size, ee_s16 seed, ee_u8 *p);
-ee_u16 core_bench_state(ee_u32 blksize, ee_u8 *memblock,
- ee_s16 seed1, ee_s16 seed2, ee_s16 step, ee_u16 crc);
-
-/* matrix benchmark functions */
-ee_u32 core_init_matrix(ee_u32 blksize, void *memblk, ee_s32 seed, mat_params *p);
-ee_u16 core_bench_matrix(mat_params *p, ee_s16 seed, ee_u16 crc);
-
-
-
-
-
-/*
-Topic: Description
- Benchmark using a linked list.
-
- Linked list is a common data structure used in many applications.
-
- For our purposes, this will excercise the memory units of the processor.
- In particular, usage of the list pointers to find and alter data.
-
- We are not using Malloc since some platforms do not support this library.
-
- Instead, the memory block being passed in is used to create a list,
- and the benchmark takes care not to add more items then can be
- accomodated by the memory block. The porting layer will make sure
- that we have a valid memory block.
-
- All operations are done in place, without using any extra memory.
-
- The list itself contains list pointers and pointers to data items.
- Data items contain the following:
-
- idx - An index that captures the initial order of the list.
- data - Variable data initialized based on the input parameters. The 16b are divided as follows:
- o Upper 8b are backup of original data.
- o Bit 7 indicates if the lower 7 bits are to be used as is or calculated.
- o Bits 0-2 indicate type of operation to perform to get a 7b value.
- o Bits 3-6 provide input for the operation.
-
-*/
-
-/* local functions */
-
-list_head *core_list_find(list_head *list,list_data *info);
-list_head *core_list_reverse(list_head *list);
-list_head *core_list_remove(list_head *item);
-list_head *core_list_undo_remove(list_head *item_removed, list_head *item_modified);
-list_head *core_list_insert_new(list_head *insert_point
- , list_data *info, list_head **memblock, list_data **datablock
- , list_head *memblock_end, list_data *datablock_end);
-typedef ee_s32(*list_cmp)(list_data *a, list_data *b, core_results *res);
-list_head *core_list_mergesort(list_head *list, list_cmp cmp, core_results *res);
-
-ee_s16 calc_func(ee_s16 *pdata, core_results *res) {
- ee_s16 data=*pdata;
- ee_s16 retval;
- ee_u8 optype=(data>>7) & 1; /* bit 7 indicates if the function result has been cached */
- if (optype) /* if cached, use cache */
- return (data & 0x007f);
- else { /* otherwise calculate and cache the result */
- ee_s16 flag=data & 0x7; /* bits 0-2 is type of function to perform */
- ee_s16 dtype=((data>>3) & 0xf); /* bits 3-6 is specific data for the operation */
- dtype |= dtype << 4; /* replicate the lower 4 bits to get an 8b value */
- switch (flag) {
- case 0:
- if (dtype<0x22) /* set min period for bit corruption */
- dtype=0x22;
- retval=core_bench_state(res->size,res->memblock[3],res->seed1,res->seed2,dtype,res->crc);
- if (res->crcstate==0)
- res->crcstate=retval;
- break;
- case 1:
- retval=core_bench_matrix(&(res->mat),dtype,res->crc);
- if (res->crcmatrix==0)
- res->crcmatrix=retval;
- break;
- default:
- retval=data;
- break;
- }
- res->crc=crcu16(retval,res->crc);
- retval &= 0x007f;
- *pdata = (data & 0xff00) | 0x0080 | retval; /* cache the result */
- return retval;
- }
-}
-/* Function: cmp_complex
- Compare the data item in a list cell.
-
- Can be used by mergesort.
-*/
-ee_s32 cmp_complex(list_data *a, list_data *b, core_results *res) {
- ee_s16 val1=calc_func(&(a->data16),res);
- ee_s16 val2=calc_func(&(b->data16),res);
- return val1 - val2;
-}
-
-/* Function: cmp_idx
- Compare the idx item in a list cell, and regen the data.
-
- Can be used by mergesort.
-*/
-ee_s32 cmp_idx(list_data *a, list_data *b, core_results *res) {
- if (res==NULL) {
- a->data16 = (a->data16 & 0xff00) | (0x00ff & (a->data16>>8));
- b->data16 = (b->data16 & 0xff00) | (0x00ff & (b->data16>>8));
- }
- return a->idx - b->idx;
-}
-
-void copy_info(list_data *to,list_data *from) {
- to->data16=from->data16;
- to->idx=from->idx;
-}
-
-/* Benchmark for linked list:
- - Try to find multiple data items.
- - List sort
- - Operate on data from list (crc)
- - Single remove/reinsert
- * At the end of this function, the list is back to original state
-*/
-ee_u16 core_bench_list(core_results *res, ee_s16 finder_idx) {
- ee_u16 retval=0;
- ee_u16 found=0,missed=0;
- list_head *list=res->list;
- ee_s16 find_num=res->seed3;
- list_head *this_find;
- list_head *finder, *remover;
- list_data info;
- ee_s16 i;
-
- info.idx=finder_idx;
- /* find values in the list, and change the list each time (reverse and cache if value found) */
- for (i=0; inext->info->data16 >> 8) & 1;
- }
- else {
- found++;
- if (this_find->info->data16 & 0x1) /* use found value */
- retval+=(this_find->info->data16 >> 9) & 1;
- /* and cache next item at the head of the list (if any) */
- if (this_find->next != NULL) {
- finder = this_find->next;
- this_find->next = finder->next;
- finder->next=list->next;
- list->next=finder;
- }
- }
- if (info.idx>=0)
- info.idx++;
-#if CORE_DEBUG
- ee_printf("List find %d: [%d,%d,%d]\n",i,retval,missed,found);
-#endif
- }
- retval+=found*4-missed;
- /* sort the list by data content and remove one item*/
- if (finder_idx>0)
- list=core_list_mergesort(list,cmp_complex,res);
- remover=core_list_remove(list->next);
- /* CRC data content of list from location of index N forward, and then undo remove */
- finder=core_list_find(list,&info);
- if (!finder)
- finder=list->next;
- while (finder) {
- retval=crc16(list->info->data16,retval);
- finder=finder->next;
- }
-#if CORE_DEBUG
- ee_printf("List sort 1: %04x\n",retval);
-#endif
- remover=core_list_undo_remove(remover,list->next);
- /* sort the list by index, in effect returning the list to original state */
- list=core_list_mergesort(list,cmp_idx,NULL);
- /* CRC data content of list */
- finder=list->next;
- while (finder) {
- retval=crc16(list->info->data16,retval);
- finder=finder->next;
- }
-#if CORE_DEBUG
- ee_printf("List sort 2: %04x\n",retval);
-#endif
- return retval;
-}
-/* Function: core_list_init
- Initialize list with data.
-
- Parameters:
- blksize - Size of memory to be initialized.
- memblock - Pointer to memory block.
- seed - Actual values chosen depend on the seed parameter.
- The seed parameter MUST be supplied from a source that cannot be determined at compile time
-
- Returns:
- Pointer to the head of the list.
-
-*/
-list_head *core_list_init(ee_u32 blksize, list_head *memblock, ee_s16 seed) {
- /* calculated pointers for the list */
- ee_u32 per_item=16+sizeof(struct list_data_s);
- ee_u32 size=(blksize/per_item)-2; /* to accomodate systems with 64b pointers, and make sure same code is executed, set max list elements */
- list_head *memblock_end=memblock+size;
- list_data *datablock=(list_data *)(memblock_end);
- list_data *datablock_end=datablock+size;
- /* some useful variables */
- ee_u32 i;
- list_head *finder,*list=memblock;
- list_data info;
-
- /* create a fake items for the list head and tail */
- list->next=NULL;
- list->info=datablock;
- list->info->idx=0x0000;
- list->info->data16=(ee_s16)0x8080;
- memblock++;
- datablock++;
- info.idx=0x7fff;
- info.data16=(ee_s16)0xffff;
- core_list_insert_new(list,&info,&memblock,&datablock,memblock_end,datablock_end);
-
- /* then insert size items */
- for (i=0; inext;
- i=1;
- while (finder->next!=NULL) {
- if (iinfo->idx=i++;
- else {
- ee_u16 pat=(ee_u16)(i++ ^ seed); /* get a pseudo random number */
- finder->info->idx=0x3fff & (((i & 0x07) << 8) | pat); /* make sure the mixed items end up after the ones in sequence */
- }
- finder=finder->next;
- }
- list = core_list_mergesort(list,cmp_idx,NULL);
-#if CORE_DEBUG
- ee_printf("Initialized list:\n");
- finder=list;
- while (finder) {
- ee_printf("[%04x,%04x]",finder->info->idx,(ee_u16)finder->info->data16);
- finder=finder->next;
- }
- ee_printf("\n");
-#endif
- return list;
-}
-
-/* Function: core_list_insert
- Insert an item to the list
-
- Parameters:
- insert_point - where to insert the item.
- info - data for the cell.
- memblock - pointer for the list header
- datablock - pointer for the list data
- memblock_end - end of region for list headers
- datablock_end - end of region for list data
-
- Returns:
- Pointer to new item.
-*/
-list_head *core_list_insert_new(list_head *insert_point, list_data *info, list_head **memblock, list_data **datablock
- , list_head *memblock_end, list_data *datablock_end) {
- list_head *newitem;
-
- if ((*memblock+1) >= memblock_end)
- return NULL;
- if ((*datablock+1) >= datablock_end)
- return NULL;
-
- newitem=*memblock;
- (*memblock)++;
- newitem->next=insert_point->next;
- insert_point->next=newitem;
-
- newitem->info=*datablock;
- (*datablock)++;
- copy_info(newitem->info,info);
-
- return newitem;
-}
-
-/* Function: core_list_remove
- Remove an item from the list.
-
- Operation:
- For a singly linked list, remove by copying the data from the next item
- over to the current cell, and unlinking the next item.
-
- Note:
- since there is always a fake item at the end of the list, no need to check for NULL.
-
- Returns:
- Removed item.
-*/
-list_head *core_list_remove(list_head *item) {
- list_data *tmp;
- list_head *ret=item->next;
- /* swap data pointers */
- tmp=item->info;
- item->info=ret->info;
- ret->info=tmp;
- /* and eliminate item */
- item->next=item->next->next;
- ret->next=NULL;
- return ret;
-}
-
-/* Function: core_list_undo_remove
- Undo a remove operation.
-
- Operation:
- Since we want each iteration of the benchmark to be exactly the same,
- we need to be able to undo a remove.
- Link the removed item back into the list, and switch the info items.
-
- Parameters:
- item_removed - Return value from the
- item_modified - List item that was modified during
-
- Returns:
- The item that was linked back to the list.
-
-*/
-list_head *core_list_undo_remove(list_head *item_removed, list_head *item_modified) {
- list_data *tmp;
- /* swap data pointers */
- tmp=item_removed->info;
- item_removed->info=item_modified->info;
- item_modified->info=tmp;
- /* and insert item */
- item_removed->next=item_modified->next;
- item_modified->next=item_removed;
- return item_removed;
-}
-
-/* Function: core_list_find
- Find an item in the list
-
- Operation:
- Find an item by idx (if not 0) or specific data value
-
- Parameters:
- list - list head
- info - idx or data to find
-
- Returns:
- Found item, or NULL if not found.
-*/
-list_head *core_list_find(list_head *list,list_data *info) {
- if (info->idx>=0) {
- while (list && (list->info->idx != info->idx))
- list=list->next;
- return list;
- } else {
- while (list && ((list->info->data16 & 0xff) != info->data16))
- list=list->next;
- return list;
- }
-}
-/* Function: core_list_reverse
- Reverse a list
-
- Operation:
- Rearrange the pointers so the list is reversed.
-
- Parameters:
- list - list head
- info - idx or data to find
-
- Returns:
- Found item, or NULL if not found.
-*/
-
-list_head *core_list_reverse(list_head *list) {
- list_head *next=NULL, *tmp;
- while (list) {
- tmp=list->next;
- list->next=next;
- next=list;
- list=tmp;
- }
- return next;
-}
-/* Function: core_list_mergesort
- Sort the list in place without recursion.
-
- Description:
- Use mergesort, as for linked list this is a realistic solution.
- Also, since this is aimed at embedded, care was taken to use iterative rather then recursive algorithm.
- The sort can either return the list to original order (by idx) ,
- or use the data item to invoke other other algorithms and change the order of the list.
-
- Parameters:
- list - list to be sorted.
- cmp - cmp function to use
-
- Returns:
- New head of the list.
-
- Note:
- We have a special header for the list that will always be first,
- but the algorithm could theoretically modify where the list starts.
-
- */
-list_head *core_list_mergesort(list_head *list, list_cmp cmp, core_results *res) {
- list_head *p, *q, *e, *tail;
- ee_s32 insize, nmerges, psize, qsize, i;
-
- insize = 1;
-
- while (1) {
- p = list;
- list = NULL;
- tail = NULL;
-
- nmerges = 0; /* count number of merges we do in this pass */
-
- while (p) {
- nmerges++; /* there exists a merge to be done */
- /* step `insize' places along from p */
- q = p;
- psize = 0;
- for (i = 0; i < insize; i++) {
- psize++;
- q = q->next;
- if (!q) break;
- }
-
- /* if q hasn't fallen off end, we have two lists to merge */
- qsize = insize;
-
- /* now we have two lists; merge them */
- while (psize > 0 || (qsize > 0 && q)) {
-
- /* decide whether next element of merge comes from p or q */
- if (psize == 0) {
- /* p is empty; e must come from q. */
- e = q; q = q->next; qsize--;
- } else if (qsize == 0 || !q) {
- /* q is empty; e must come from p. */
- e = p; p = p->next; psize--;
- } else if (cmp(p->info,q->info,res) <= 0) {
- /* First element of p is lower (or same); e must come from p. */
- e = p; p = p->next; psize--;
- } else {
- /* First element of q is lower; e must come from q. */
- e = q; q = q->next; qsize--;
- }
-
- /* add the next element to the merged list */
- if (tail) {
- tail->next = e;
- } else {
- list = e;
- }
- tail = e;
- }
-
- /* now p has stepped `insize' places along, and q has too */
- p = q;
- }
-
- tail->next = NULL;
-
- /* If we have done only one merge, we're finished. */
- if (nmerges <= 1) /* allow for nmerges==0, the empty list case */
- return list;
-
- /* Otherwise repeat, merging lists twice the size */
- insize *= 2;
- }
-#if COMPILER_REQUIRES_SORT_RETURN
- return list;
-#endif
-}
-/*
-Author : Shay Gal-On, EEMBC
-
-This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009
-All rights reserved.
-
-EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the
-CoreMark License that is distributed with the official EEMBC COREMARK Software release.
-If you received this EEMBC CoreMark Software without the accompanying CoreMark License,
-you must discontinue use and download the official release from www.coremark.org.
-
-Also, if you are publicly displaying scores generated from the EEMBC CoreMark software,
-make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file.
-
-EEMBC
-4354 Town Center Blvd. Suite 114-200
-El Dorado Hills, CA, 95762
-*/
-/* File: core_main.c
- This file contains the framework to acquire a block of memory, seed initial parameters, tun t he benchmark and report the results.
-*/
-//#include "coremark.h"
-
-/* Function: iterate
- Run the benchmark for a specified number of iterations.
-
- Operation:
- For each type of benchmarked algorithm:
- a - Initialize the data block for the algorithm.
- b - Execute the algorithm N times.
-
- Returns:
- NULL.
-*/
-static ee_u16 list_known_crc[] = {(ee_u16)0xd4b0,(ee_u16)0x3340,(ee_u16)0x6a79,(ee_u16)0xe714,(ee_u16)0xe3c1};
-static ee_u16 matrix_known_crc[] = {(ee_u16)0xbe52,(ee_u16)0x1199,(ee_u16)0x5608,(ee_u16)0x1fd7,(ee_u16)0x0747};
-static ee_u16 state_known_crc[] = {(ee_u16)0x5e47,(ee_u16)0x39bf,(ee_u16)0xe5a4,(ee_u16)0x8e3a,(ee_u16)0x8d84};
-void *iterate(void *pres) {
- ee_u32 i;
- ee_u16 crc;
- core_results *res=(core_results *)pres;
- ee_u32 iterations=res->iterations;
- res->crc=0;
- res->crclist=0;
- res->crcmatrix=0;
- res->crcstate=0;
-
- for (i=0; icrc=crcu16(crc,res->crc);
- crc=core_bench_list(res,-1);
- res->crc=crcu16(crc,res->crc);
- if (i==0) res->crclist=res->crc;
- }
- return NULL;
-}
-
-#if (SEED_METHOD==SEED_ARG)
-ee_s32 get_seed_args(int i, int argc, char *argv[]);
-#define get_seed(x) (ee_s16)get_seed_args(x,argc,argv)
-#define get_seed_32(x) get_seed_args(x,argc,argv)
-#else /* via function or volatile */
-ee_s32 get_seed_32(int i);
-#define get_seed(x) (ee_s16)get_seed_32(x)
-#endif
-
-#if (MEM_METHOD==MEM_STATIC)
-ee_u8 static_memblk[TOTAL_DATA_SIZE];
-#endif
-char *mem_name[3] = {"Static","Heap","Stack"};
-/* Function: main
- Main entry routine for the benchmark.
- This function is responsible for the following steps:
-
- 1 - Initialize input seeds from a source that cannot be determined at compile time.
- 2 - Initialize memory block for use.
- 3 - Run and time the benchmark.
- 4 - Report results, testing the validity of the output if the seeds are known.
-
- Arguments:
- 1 - first seed : Any value
- 2 - second seed : Must be identical to first for iterations to be identical
- 3 - third seed : Any value, should be at least an order of magnitude less then the input size, but bigger then 32.
- 4 - Iterations : Special, if set to 0, iterations will be automatically determined such that the benchmark will run between 10 to 100 secs
-
-*/
-
-#if MAIN_HAS_NOARGC
-MAIN_RETURN_TYPE main(void) {
- int argc=0;
- char *argv[1];
-#else
-MAIN_RETURN_TYPE main(int argc, char *argv[]) {
-#endif
- ee_u16 i,j=0,num_algorithms=0;
- ee_s16 known_id=-1,total_errors=0;
- ee_u16 seedcrc=0;
- CORE_TICKS total_time;
- core_results results[MULTITHREAD];
-#if (MEM_METHOD==MEM_STACK)
- ee_u8 stack_memblock[TOTAL_DATA_SIZE*MULTITHREAD];
-#endif
- /* first call any initializations needed */
- portable_init(&(results[0].port), &argc, argv);
- /* First some checks to make sure benchmark will run ok */
- if (sizeof(struct list_head_s)>128) {
- ee_printf("list_head structure too big for comparable data!\n");
- return MAIN_RETURN_VAL;
- }
- results[0].seed1=get_seed(1);
- results[0].seed2=get_seed(2);
- results[0].seed3=get_seed(3);
- results[0].iterations=get_seed_32(4);
-#if CORE_DEBUG
- results[0].iterations=1;
-#endif
- results[0].execs=get_seed_32(5);
- if (results[0].execs==0) { /* if not supplied, execute all algorithms */
- results[0].execs=ALL_ALGORITHMS_MASK;
- }
- /* put in some default values based on one seed only for easy testing */
- if ((results[0].seed1==0) && (results[0].seed2==0) && (results[0].seed3==0)) { /* validation run */
- results[0].seed1=0;
- results[0].seed2=0;
- results[0].seed3=0x66;
- }
- if ((results[0].seed1==1) && (results[0].seed2==0) && (results[0].seed3==0)) { /* perfromance run */
- results[0].seed1=0x3415;
- results[0].seed2=0x3415;
- results[0].seed3=0x66;
- }
-#if (MEM_METHOD==MEM_STATIC)
- results[0].memblock[0]=(void *)static_memblk;
- results[0].size=TOTAL_DATA_SIZE;
- results[0].err=0;
- #if (MULTITHREAD>1)
- #error "Cannot use a static data area with multiple contexts!"
- #endif
-#elif (MEM_METHOD==MEM_MALLOC)
- for (i=0 ; i1)
- if (default_num_contexts>MULTITHREAD) {
- default_num_contexts=MULTITHREAD;
- }
- for (i=0 ; i=0) {
- for (i=0 ; i 0)
- ee_printf("Iterations/Sec : %f\n",default_num_contexts*results[0].iterations/time_in_secs(total_time));
-#else
- ee_printf("Total time (secs): %d\n",time_in_secs(total_time));
- if (time_in_secs(total_time) > 0)
-// ee_printf("Iterations/Sec : %d\n",default_num_contexts*results[0].iterations/time_in_secs(total_time));
- ee_printf("Iterat/Sec/MHz : %d.%02d\n",1000*default_num_contexts*results[0].iterations/time_in_secs(total_time),
- 100000*default_num_contexts*results[0].iterations/time_in_secs(total_time) % 100);
-#endif
- if (time_in_secs(total_time) < 10) {
- ee_printf("ERROR! Must execute for at least 10 secs for a valid result!\n");
- total_errors++;
- }
-
- ee_printf("Iterations : %u\n",(ee_u32)default_num_contexts*results[0].iterations);
- ee_printf("Compiler version : %s\n",COMPILER_VERSION);
- ee_printf("Compiler flags : %s\n",COMPILER_FLAGS);
-#if (MULTITHREAD>1)
- ee_printf("Parallel %s : %d\n",PARALLEL_METHOD,default_num_contexts);
-#endif
- ee_printf("Memory location : %s\n",MEM_LOCATION);
- /* output for verification */
- ee_printf("seedcrc : 0x%04x\n",seedcrc);
- if (results[0].execs & ID_LIST)
- for (i=0 ; i1)
- ee_printf(" / %d:%s",default_num_contexts,PARALLEL_METHOD);
-#endif
- ee_printf("\n");
- }
-#endif
- }
- if (total_errors>0)
- ee_printf("Errors detected\n");
- if (total_errors<0)
- ee_printf("Cannot validate operation for these seed values, please compare with results on a known platform.\n");
-
-#if (MEM_METHOD==MEM_MALLOC)
- for (i=0 ; i>(from)) & (~(0xffffffff << (to))))
-
-#if CORE_DEBUG
-void printmat(MATDAT *A, ee_u32 N, char *name) {
- ee_u32 i,j;
- ee_printf("Matrix %s [%dx%d]:\n",name,N,N);
- for (i=0; i N times,
- changing the matrix values slightly by a constant amount each time.
-*/
-ee_u16 core_bench_matrix(mat_params *p, ee_s16 seed, ee_u16 crc) {
- ee_u32 N=p->N;
- MATRES *C=p->C;
- MATDAT *A=p->A;
- MATDAT *B=p->B;
- MATDAT val=(MATDAT)seed;
-
- crc=crc16(matrix_test(N,C,A,B,val),crc);
-
- return crc;
-}
-
-/* Function: matrix_test
- Perform matrix manipulation.
-
- Parameters:
- N - Dimensions of the matrix.
- C - memory for result matrix.
- A - input matrix
- B - operator matrix (not changed during operations)
-
- Returns:
- A CRC value that captures all results calculated in the function.
- In particular, crc of the value calculated on the result matrix
- after each step by .
-
- Operation:
-
- 1 - Add a constant value to all elements of a matrix.
- 2 - Multiply a matrix by a constant.
- 3 - Multiply a matrix by a vector.
- 4 - Multiply a matrix by a matrix.
- 5 - Add a constant value to all elements of a matrix.
-
- After the last step, matrix A is back to original contents.
-*/
-ee_s16 matrix_test(ee_u32 N, MATRES *C, MATDAT *A, MATDAT *B, MATDAT val) {
- ee_u16 crc=0;
- MATDAT clipval=matrix_big(val);
-
- matrix_add_const(N,A,val); /* make sure data changes */
-#if CORE_DEBUG
- printmat(A,N,"matrix_add_const");
-#endif
- matrix_mul_const(N,C,A,val);
- crc=crc16(matrix_sum(N,C,clipval),crc);
-#if CORE_DEBUG
- printmatC(C,N,"matrix_mul_const");
-#endif
- matrix_mul_vect(N,C,A,B);
- crc=crc16(matrix_sum(N,C,clipval),crc);
-#if CORE_DEBUG
- printmatC(C,N,"matrix_mul_vect");
-#endif
- matrix_mul_matrix(N,C,A,B);
- crc=crc16(matrix_sum(N,C,clipval),crc);
-#if CORE_DEBUG
- printmatC(C,N,"matrix_mul_matrix");
-#endif
- matrix_mul_matrix_bitextract(N,C,A,B);
- crc=crc16(matrix_sum(N,C,clipval),crc);
-#if CORE_DEBUG
- printmatC(C,N,"matrix_mul_matrix_bitextract");
-#endif
-
- matrix_add_const(N,A,-val); /* return matrix to initial value */
- return crc;
-}
-
-/* Function : matrix_init
- Initialize the memory block for matrix benchmarking.
-
- Parameters:
- blksize - Size of memory to be initialized.
- memblk - Pointer to memory block.
- seed - Actual values chosen depend on the seed parameter.
- p - pointers to containing initialized matrixes.
-
- Returns:
- Matrix dimensions.
-
- Note:
- The seed parameter MUST be supplied from a source that cannot be determined at compile time
-*/
-ee_u32 core_init_matrix(ee_u32 blksize, void *memblk, ee_s32 seed, mat_params *p) {
- ee_u32 N=0;
- MATDAT *A;
- MATDAT *B;
- ee_s32 order=1;
- MATDAT val;
- ee_u32 i=0,j=0;
- if (seed==0)
- seed=1;
- while (jA=A;
- p->B=B;
- p->C=(MATRES *)align_mem(B+N*N);
- p->N=N;
-#if CORE_DEBUG
- printmat(A,N,"A");
- printmat(B,N,"B");
-#endif
- return N;
-}
-
-/* Function: matrix_sum
- Calculate a function that depends on the values of elements in the matrix.
-
- For each element, accumulate into a temporary variable.
-
- As long as this value is under the parameter clipval,
- add 1 to the result if the element is bigger then the previous.
-
- Otherwise, reset the accumulator and add 10 to the result.
-*/
-ee_s16 matrix_sum(ee_u32 N, MATRES *C, MATDAT clipval) {
- MATRES tmp=0,prev=0,cur=0;
- ee_s16 ret=0;
- ee_u32 i,j;
- for (i=0; iclipval) {
- ret+=10;
- tmp=0;
- } else {
- ret += (cur>prev) ? 1 : 0;
- }
- prev=cur;
- }
- }
- return ret;
-}
-
-/* Function: matrix_mul_const
- Multiply a matrix by a constant.
- This could be used as a scaler for instance.
-*/
-void matrix_mul_const(ee_u32 N, MATRES *C, MATDAT *A, MATDAT val) {
- ee_u32 i,j;
- for (i=0; i0) {
- for(i=0;i>3) & 0x3];
- next=4;
- break;
- case 3: /* float */
- case 4: /* float */
- buf=floatpat[(seed>>3) & 0x3];
- next=8;
- break;
- case 5: /* scientific */
- case 6: /* scientific */
- buf=scipat[(seed>>3) & 0x3];
- next=8;
- break;
- case 7: /* invalid */
- buf=errpat[(seed>>3) & 0x3];
- next=8;
- break;
- default: /* Never happen, just to make some compilers happy */
- break;
- }
- }
- size++;
- while (total='0') & (c<='9')) ? 1 : 0;
- return retval;
-}
-
-/* Function: core_state_transition
- Actual state machine.
-
- The state machine will continue scanning until either:
- 1 - an invalid input is detcted.
- 2 - a valid number has been detected.
-
- The input pointer is updated to point to the end of the token, and the end state is returned (either specific format determined or invalid).
-*/
-
-enum CORE_STATE core_state_transition( ee_u8 **instr , ee_u32 *transition_count) {
- ee_u8 *str=*instr;
- ee_u8 NEXT_SYMBOL;
- enum CORE_STATE state=CORE_START;
- for( ; *str && state != CORE_INVALID; str++ ) {
- NEXT_SYMBOL = *str;
- if (NEXT_SYMBOL==',') /* end of this input */ {
- str++;
- break;
- }
- switch(state) {
- case CORE_START:
- if(ee_isdigit(NEXT_SYMBOL)) {
- state = CORE_INT;
- }
- else if( NEXT_SYMBOL == '+' || NEXT_SYMBOL == '-' ) {
- state = CORE_S1;
- }
- else if( NEXT_SYMBOL == '.' ) {
- state = CORE_FLOAT;
- }
- else {
- state = CORE_INVALID;
- transition_count[CORE_INVALID]++;
- }
- transition_count[CORE_START]++;
- break;
- case CORE_S1:
- if(ee_isdigit(NEXT_SYMBOL)) {
- state = CORE_INT;
- transition_count[CORE_S1]++;
- }
- else if( NEXT_SYMBOL == '.' ) {
- state = CORE_FLOAT;
- transition_count[CORE_S1]++;
- }
- else {
- state = CORE_INVALID;
- transition_count[CORE_S1]++;
- }
- break;
- case CORE_INT:
- if( NEXT_SYMBOL == '.' ) {
- state = CORE_FLOAT;
- transition_count[CORE_INT]++;
- }
- else if(!ee_isdigit(NEXT_SYMBOL)) {
- state = CORE_INVALID;
- transition_count[CORE_INT]++;
- }
- break;
- case CORE_FLOAT:
- if( NEXT_SYMBOL == 'E' || NEXT_SYMBOL == 'e' ) {
- state = CORE_S2;
- transition_count[CORE_FLOAT]++;
- }
- else if(!ee_isdigit(NEXT_SYMBOL)) {
- state = CORE_INVALID;
- transition_count[CORE_FLOAT]++;
- }
- break;
- case CORE_S2:
- if( NEXT_SYMBOL == '+' || NEXT_SYMBOL == '-' ) {
- state = CORE_EXPONENT;
- transition_count[CORE_S2]++;
- }
- else {
- state = CORE_INVALID;
- transition_count[CORE_S2]++;
- }
- break;
- case CORE_EXPONENT:
- if(ee_isdigit(NEXT_SYMBOL)) {
- state = CORE_SCIENTIFIC;
- transition_count[CORE_EXPONENT]++;
- }
- else {
- state = CORE_INVALID;
- transition_count[CORE_EXPONENT]++;
- }
- break;
- case CORE_SCIENTIFIC:
- if(!ee_isdigit(NEXT_SYMBOL)) {
- state = CORE_INVALID;
- transition_count[CORE_INVALID]++;
- }
- break;
- default:
- break;
- }
- }
- *instr=str;
- return state;
-}
-/*
-Author : Shay Gal-On, EEMBC
-
-This file is part of EEMBC(R) and CoreMark(TM), which are Copyright (C) 2009
-All rights reserved.
-
-EEMBC CoreMark Software is a product of EEMBC and is provided under the terms of the
-CoreMark License that is distributed with the official EEMBC COREMARK Software release.
-If you received this EEMBC CoreMark Software without the accompanying CoreMark License,
-you must discontinue use and download the official release from www.coremark.org.
-
-Also, if you are publicly displaying scores generated from the EEMBC CoreMark software,
-make sure that you are in compliance with Run and Reporting rules specified in the accompanying readme.txt file.
-
-EEMBC
-4354 Town Center Blvd. Suite 114-200
-El Dorado Hills, CA, 95762
-*/
-//#include "coremark.h"
-/* Function: get_seed
- Get a values that cannot be determined at compile time.
-
- Since different embedded systems and compilers are used, 3 different methods are provided:
- 1 - Using a volatile variable. This method is only valid if the compiler is forced to generate code that
- reads the value of a volatile variable from memory at run time.
- Please note, if using this method, you would need to modify core_portme.c to generate training profile.
- 2 - Command line arguments. This is the preferred method if command line arguments are supported.
- 3 - System function. If none of the first 2 methods is available on the platform,
- a system function which is not a stub can be used.
-
- e.g. read the value on GPIO pins connected to switches, or invoke special simulator functions.
-*/
-#if (SEED_METHOD==SEED_VOLATILE)
- extern volatile ee_s32 seed1_volatile;
- extern volatile ee_s32 seed2_volatile;
- extern volatile ee_s32 seed3_volatile;
- extern volatile ee_s32 seed4_volatile;
- extern volatile ee_s32 seed5_volatile;
- ee_s32 get_seed_32(int i) {
- ee_s32 retval;
- switch (i) {
- case 1:
- retval=seed1_volatile;
- break;
- case 2:
- retval=seed2_volatile;
- break;
- case 3:
- retval=seed3_volatile;
- break;
- case 4:
- retval=seed4_volatile;
- break;
- case 5:
- retval=seed5_volatile;
- break;
- default:
- retval=0;
- break;
- }
- return retval;
- }
-#elif (SEED_METHOD==SEED_ARG)
-ee_s32 parseval(char *valstring) {
- ee_s32 retval=0;
- ee_s32 neg=1;
- int hexmode=0;
- if (*valstring == '-') {
- neg=-1;
- valstring++;
- }
- if ((valstring[0] == '0') && (valstring[1] == 'x')) {
- hexmode=1;
- valstring+=2;
- }
- /* first look for digits */
- if (hexmode) {
- while (((*valstring >= '0') && (*valstring <= '9')) || ((*valstring >= 'a') && (*valstring <= 'f'))) {
- ee_s32 digit=*valstring-'0';
- if (digit>9)
- digit=10+*valstring-'a';
- retval*=16;
- retval+=digit;
- valstring++;
- }
- } else {
- while ((*valstring >= '0') && (*valstring <= '9')) {
- ee_s32 digit=*valstring-'0';
- retval*=10;
- retval+=digit;
- valstring++;
- }
- }
- /* now add qualifiers */
- if (*valstring=='K')
- retval*=1024;
- if (*valstring=='M')
- retval*=1024*1024;
-
- retval*=neg;
- return retval;
-}
-
-ee_s32 get_seed_args(int i, int argc, char *argv[]) {
- if (argc>i)
- return parseval(argv[i]);
- return 0;
-}
-
-#elif (SEED_METHOD==SEED_FUNC)
-/* If using OS based function, you must define and implement the functions below in core_portme.h and core_portme.c ! */
-ee_s32 get_seed_32(int i) {
- ee_s32 retval;
- switch (i) {
- case 1:
- retval=portme_sys1();
- break;
- case 2:
- retval=portme_sys2();
- break;
- case 3:
- retval=portme_sys3();
- break;
- case 4:
- retval=portme_sys4();
- break;
- case 5:
- retval=portme_sys5();
- break;
- default:
- retval=0;
- break;
- }
- return retval;
-}
-#endif
-
-/* Function: crc*
- Service functions to calculate 16b CRC code.
-
-*/
-ee_u16 crcu8(ee_u8 data, ee_u16 crc )
-{
- ee_u8 i=0,x16=0,carry=0;
-
- for (i = 0; i < 8; i++)
- {
- x16 = (ee_u8)((data & 1) ^ ((ee_u8)crc & 1));
- data >>= 1;
-
- if (x16 == 1)
- {
- crc ^= 0x4002;
- carry = 1;
- }
- else
- carry = 0;
- crc >>= 1;
- if (carry)
- crc |= 0x8000;
- else
- crc &= 0x7fff;
- }
- return crc;
-}
-ee_u16 crcu16(ee_u16 newval, ee_u16 crc) {
- crc=crcu8( (ee_u8) (newval) ,crc);
- crc=crcu8( (ee_u8) ((newval)>>8) ,crc);
- return crc;
-}
-ee_u16 crcu32(ee_u32 newval, ee_u16 crc) {
- crc=crc16((ee_s16) newval ,crc);
- crc=crc16((ee_s16) (newval>>16) ,crc);
- return crc;
-}
-ee_u16 crc16(ee_s16 newval, ee_u16 crc) {
- return crcu16((ee_u16)newval, crc);
-}
-
-ee_u8 check_data_types() {
- ee_u8 retval=0;
- if (sizeof(ee_u8) != 1) {
- ee_printf("ERROR: ee_u8 is not an 8b datatype!\n");
- retval++;
- }
- if (sizeof(ee_u16) != 2) {
- ee_printf("ERROR: ee_u16 is not a 16b datatype!\n");
- retval++;
- }
- if (sizeof(ee_s16) != 2) {
- ee_printf("ERROR: ee_s16 is not a 16b datatype!\n");
- retval++;
- }
- if (sizeof(ee_s32) != 4) {
- ee_printf("ERROR: ee_s32 is not a 32b datatype!\n");
- retval++;
- }
- if (sizeof(ee_u32) != 4) {
- ee_printf("ERROR: ee_u32 is not a 32b datatype!\n");
- retval++;
- }
- if (sizeof(ee_ptr_int) != sizeof(int *)) {
- ee_printf("ERROR: ee_ptr_int is not a datatype that holds an int pointer!\n");
- retval++;
- }
- if (retval>0) {
- ee_printf("ERROR: Please modify the datatypes in core_portme.h!\n");
- }
- return retval;
-}
-/*
- File : core_portme.c
-*/
-/*
- Author : Shay Gal-On, EEMBC
- Legal : TODO!
-*/
-#include
-#include
-//#include "coremark.h"
-
-#if VALIDATION_RUN
- volatile ee_s32 seed1_volatile=0x3415;
- volatile ee_s32 seed2_volatile=0x3415;
- volatile ee_s32 seed3_volatile=0x66;
-#endif
-#if PERFORMANCE_RUN
- volatile ee_s32 seed1_volatile=0x0;
- volatile ee_s32 seed2_volatile=0x0;
- volatile ee_s32 seed3_volatile=0x66;
-#endif
-#if PROFILE_RUN
- volatile ee_s32 seed1_volatile=0x8;
- volatile ee_s32 seed2_volatile=0x8;
- volatile ee_s32 seed3_volatile=0x8;
-#endif
- volatile ee_s32 seed4_volatile=ITERATIONS;
- volatile ee_s32 seed5_volatile=0;
-/* Porting : Timing functions
- How to capture time and convert to seconds must be ported to whatever is supported by the platform.
- e.g. Read value from on board RTC, read value from cpu clock cycles performance counter etc.
- Sample implementation for standard time.h and windows.h definitions included.
-*/
-/* Define : TIMER_RES_DIVIDER
- Divider to trade off timer resolution and total time that can be measured.
-
- Use lower values to increase resolution, but make sure that overflow does not occur.
- If there are issues with the return value overflowing, increase this value.
- */
-//#define NSECS_PER_SEC CLOCKS_PER_SEC
-#define NSECS_PER_SEC 1000000000
-#define CORETIMETYPE clock_t
-//#define GETMYTIME(_t) (*_t=clock())
-#define GETMYTIME(_t) (*_t=0)
-#define MYTIMEDIFF(fin,ini) ((fin)-(ini))
-#define TIMER_RES_DIVIDER 1
-#define SAMPLE_TIME_IMPLEMENTATION 1
-//#define EE_TICKS_PER_SEC (NSECS_PER_SEC / TIMER_RES_DIVIDER)
-
-#define EE_TICKS_PER_SEC 1000
-
-/** Define Host specific (POSIX), or target specific global time variables. */
-static CORETIMETYPE start_time_val, stop_time_val;
-
-/* Function : start_time
- This function will be called right before starting the timed portion of the benchmark.
-
- Implementation may be capturing a system timer (as implemented in the example code)
- or zeroing some system parameters - e.g. setting the cpu clocks cycles to 0.
-*/
-void start_time(void) {
-uint32_t mcyclel;
- asm volatile ("csrr %0,mcycle" : "=r" (mcyclel) );
- start_time_val = mcyclel;
-}
-/* Function : stop_time
- This function will be called right after ending the timed portion of the benchmark.
-
- Implementation may be capturing a system timer (as implemented in the example code)
- or other system parameters - e.g. reading the current value of cpu cycles counter.
-*/
-void stop_time(void) {
-uint32_t mcyclel;
- asm volatile ("csrr %0,mcycle" : "=r" (mcyclel) );
- stop_time_val = mcyclel;
-}
-/* Function : get_time
- Return an abstract "ticks" number that signifies time on the system.
-
- Actual value returned may be cpu cycles, milliseconds or any other value,
- as long as it can be converted to seconds by .
- This methodology is taken to accomodate any hardware or simulated platform.
- The sample implementation returns millisecs by default,
- and the resolution is controlled by
-*/
-CORE_TICKS get_time(void) {
- CORE_TICKS elapsed=(CORE_TICKS)(MYTIMEDIFF(stop_time_val, start_time_val));
- return elapsed;
-}
-/* Function : time_in_secs
- Convert the value returned by get_time to seconds.
-
- The type is used to accomodate systems with no support for floating point.
- Default implementation implemented by the EE_TICKS_PER_SEC macro above.
-*/
-secs_ret time_in_secs(CORE_TICKS ticks) {
- secs_ret retval=((secs_ret)ticks) / (secs_ret)EE_TICKS_PER_SEC;
- return retval;
-}
-
-ee_u32 default_num_contexts=1;
-
-/* Function : portable_init
- Target specific initialization code
- Test for some common mistakes.
-*/
-void portable_init(core_portable *p, int *argc, char *argv[])
-{
- if (sizeof(ee_ptr_int) != sizeof(ee_u8 *)) {
- ee_printf("ERROR! Please define ee_ptr_int to a type that holds a pointer!\n");
- }
- if (sizeof(ee_u32) != 4) {
- ee_printf("ERROR! Please define ee_u32 to a 32b unsigned type!\n");
- }
- p->portable_id=1;
-}
-/* Function : portable_fini
- Target specific final code
-*/
-void portable_fini(core_portable *p)
-{
- p->portable_id=0;
-}
-
-
-void* memset(void* s, int c, size_t n)
-{
- asm("mv t0, a0");
- asm("add a2, a2, a0"); // end = s + n
- asm(".memset_loop: bge a0, a2, .memset_end");
- asm("sb a1, 0(a0)");
- asm("addi a0, a0, 1");
- asm("j .memset_loop");
- asm(".memset_end:");
- asm("mv a0, t0");
- asm("jr ra");
-}
diff --git a/testbench/tests/Coremark/printf.c b/testbench/tests/Coremark/printf.c
deleted file mode 100644
index 5ce56a9..0000000
--- a/testbench/tests/Coremark/printf.c
+++ /dev/null
@@ -1,262 +0,0 @@
-#include
-#include "defines.h"
-
-static int
-whisperPutc(char c)
-{
-// __whisper_console_io = c;
-// __whisper_console_io = c;
- *(volatile char*)(RV_SERIALIO) = c;
- return c;
-}
-
-
-static int
-whisperPuts(const char* s)
-{
- while (*s)
- whisperPutc(*s++);
- return 1;
-}
-
-
-static int
-whisperPrintUnsigned(unsigned value, int width, char pad)
-{
- char buffer[20];
- int charCount = 0;
-
- do
- {
- char c = '0' + (value % 10);
- value = value / 10;
- buffer[charCount++] = c;
- }
- while (value);
-
- for (int i = charCount; i < width; ++i)
- whisperPutc(pad);
-
- char* p = buffer + charCount - 1;
- for (int i = 0; i < charCount; ++i)
- whisperPutc(*p--);
-
- return charCount;
-}
-
-
-static int
-whisperPrintDecimal(int value, int width, char pad)
-{
- char buffer[20];
- int charCount = 0;
-
- unsigned neg = value < 0;
- if (neg)
- {
- value = -value;
- whisperPutc('-');
- width--;
- }
-
- do
- {
- char c = '0' + (value % 10);
- value = value / 10;
- buffer[charCount++] = c;
- }
- while (value);
-
- for (int i = charCount; i < width; ++i)
- whisperPutc(pad);
-
- char* p = buffer + charCount - 1;
- for (int i = 0; i < charCount; ++i)
- whisperPutc(*p--);
-
- if (neg)
- charCount++;
-
- return charCount;
-}
-
-
-static int
-whisperPrintInt(int value, int width, int pad, int base)
-{
- if (base == 10)
- return whisperPrintDecimal(value, width, pad);
-
- char buffer[20];
- int charCount = 0;
-
- unsigned uu = value;
-
- if (base == 8)
- {
- do
- {
- char c = '0' + (uu & 7);
- buffer[charCount++] = c;
- uu >>= 3;
- }
- while (uu);
- }
- else if (base == 16)
- {
- do
- {
- int digit = uu & 0xf;
- char c = digit < 10 ? '0' + digit : 'a' + digit - 10;
- buffer[charCount++] = c;
- uu >>= 4;
- }
- while (uu);
- }
- else
- return -1;
-
- char* p = buffer + charCount - 1;
- for (unsigned i = 0; i < charCount; ++i)
- whisperPutc(*p--);
-
- return charCount;
-}
-
-
-#if 0
-// Print with g format
-static int
-whisperPrintDoubleG(double value)
-{
- return 0;
-}
-
-
-// Print with f format
-static int
-whisperPrintDoubleF(double value)
-{
- return 0;
-}
-#endif
-
-
-int
-whisperPrintfImpl(const char* format, va_list ap)
-{
- int count = 0; // Printed character count
-
- for (const char* fp = format; *fp; fp++)
- {
- char pad = ' ';
- int width = 0; // Field width
-
- if (*fp != '%')
- {
- whisperPutc(*fp);
- ++count;
- continue;
- }
-
- ++fp; // Skip %
-
- if (*fp == 0)
- break;
-
- if (*fp == '%')
- {
- whisperPutc('%');
- continue;
- }
-
- while (*fp == '0')
- {
- pad = '0';
- fp++; // Pad zero not yet implented.
- }
-
- if (*fp == '-')
- {
- fp++; // Pad right not yet implemented.
- }
-
- if (*fp == '*')
- {
- int outWidth = va_arg(ap, int);
- fp++; // Width not yet implemented.
- }
- else if (*fp >= '0' && *fp <= '9')
- { // Width not yet implemented.
- while (*fp >= '0' && *fp <= '9')
- width = width * 10 + (*fp++ - '0');
- }
-
- switch (*fp)
- {
- case 'd':
- count += whisperPrintDecimal(va_arg(ap, int), width, pad);
- break;
-
- case 'u':
- count += whisperPrintUnsigned((unsigned) va_arg(ap, unsigned), width, pad);
- break;
-
- case 'x':
- case 'X':
- count += whisperPrintInt(va_arg(ap, int), width, pad, 16);
- break;
-
- case 'o':
- count += whisperPrintInt(va_arg(ap, int), width, pad, 8);
- break;
-
- case 'c':
- whisperPutc(va_arg(ap, int));
- ++count;
- break;
-
- case 's':
- count += whisperPuts(va_arg(ap, char*));
- break;
-
-#if 0
- case 'g':
- count += whisperPrintDoubleG(va_arg(ap, double));
- break;
-
- case 'f':
- count += whisperPrintDoubleF(va_arg(ap, double));
-#endif
-
- }
- }
-
- return count;
-}
-
-
-int
-whisperPrintf(const char* format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- int code = whisperPrintfImpl(format, ap);
- va_end(ap);
-
- return code;
-}
-
-
-int
-printf(const char* format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- int code = whisperPrintfImpl(format, ap);
- va_end(ap);
-
- return code;
-}
diff --git a/testbench/tests/dhry/dhry_1.c b/testbench/tests/dhry/dhry_1.c
index 264410c..6ebbd9c 100644
--- a/testbench/tests/dhry/dhry_1.c
+++ b/testbench/tests/dhry/dhry_1.c
@@ -135,18 +135,14 @@ main ()
/* Warning: With 16-Bit processors and Number_Of_Runs > 32000, */
/* overflow may occur for this array element. */
- printf ("\n");
printf ("Dhrystone Benchmark, Version 2.1 (Language: C)\n");
- printf ("\n");
if (Reg)
{
printf ("Program compiled with 'register' attribute\n");
- printf ("\n");
}
else
{
printf ("Program compiled without 'register' attribute\n");
- printf ("\n");
}
#ifndef SWERV
@@ -257,10 +253,7 @@ main ()
#endif
- printf ("Execution ends\n");
- printf ("\n");
- printf ("Final values of the variables used in the benchmark:\n");
- printf ("\n");
+ printf ("Final values of the variables used in the benchmark:\n\n");
printf ("Int_Glob: %d\n", Int_Glob);
printf (" should be: %d\n", 5);
printf ("Bool_Glob: %d\n", Bool_Glob);
@@ -273,8 +266,7 @@ main ()
printf (" should be: %d\n", 7);
printf ("Arr_2_Glob[8][7]: %d\n", Arr_2_Glob[8][7]);
printf (" should be: Number_Of_Runs + 10\n");
- printf ("Ptr_Glob->\n");
- printf (" Ptr_Comp: %d\n", (int) Ptr_Glob->Ptr_Comp);
+ printf ("Ptr_Glob->Ptr_Comp: %x\n", (int) Ptr_Glob->Ptr_Comp);
printf (" should be: (implementation-dependent)\n");
printf (" Discr: %d\n", Ptr_Glob->Discr);
printf (" should be: %d\n", 0);
@@ -282,10 +274,9 @@ main ()
printf (" should be: %d\n", 2);
printf (" Int_Comp: %d\n", Ptr_Glob->variant.var_1.Int_Comp);
printf (" should be: %d\n", 17);
- printf (" Str_Comp: %s\n", Ptr_Glob->variant.var_1.Str_Comp);
+ printf (" Str_Comp: %s", Ptr_Glob->variant.var_1.Str_Comp);
printf (" should be: DHRYSTONE PROGRAM, SOME STRING\n");
- printf ("Next_Ptr_Glob->\n");
- printf (" Ptr_Comp: %d\n", (int) Next_Ptr_Glob->Ptr_Comp);
+ printf ("Next_Ptr_Glob->Ptr_Comp:%x\n", (int) Next_Ptr_Glob->Ptr_Comp);
printf (" should be: (implementation-dependent), same as above\n");
printf (" Discr: %d\n", Next_Ptr_Glob->Discr);
printf (" should be: %d\n", 0);
@@ -293,8 +284,7 @@ main ()
printf (" should be: %d\n", 1);
printf (" Int_Comp: %d\n", Next_Ptr_Glob->variant.var_1.Int_Comp);
printf (" should be: %d\n", 18);
- printf (" Str_Comp: %s\n",
- Next_Ptr_Glob->variant.var_1.Str_Comp);
+ printf (" Str_Comp: %s", Next_Ptr_Glob->variant.var_1.Str_Comp);
printf (" should be: DHRYSTONE PROGRAM, SOME STRING\n");
printf ("Int_1_Loc: %d\n", Int_1_Loc);
printf (" should be: %d\n", 5);
@@ -304,9 +294,9 @@ main ()
printf (" should be: %d\n", 7);
printf ("Enum_Loc: %d\n", Enum_Loc);
printf (" should be: %d\n", 1);
- printf ("Str_1_Loc: %s\n", Str_1_Loc);
+ printf ("Str_1_Loc: %s", Str_1_Loc);
printf (" should be: DHRYSTONE PROGRAM, 1'ST STRING\n");
- printf ("Str_2_Loc: %s\n", Str_2_Loc);
+ printf ("Str_2_Loc: %s", Str_2_Loc);
printf (" should be: DHRYSTONE PROGRAM, 2'ND STRING\n");
printf ("\n");
diff --git a/testbench/tests/dhry/dhry_2.c b/testbench/tests/dhry/dhry_2.c
index ecf4de3..19ee89a 100644
--- a/testbench/tests/dhry/dhry_2.c
+++ b/testbench/tests/dhry/dhry_2.c
@@ -26,7 +26,7 @@
extern int Int_Glob;
extern char Ch_1_Glob;
-
+#if 0
int
strcmp(const char* s1, const char* s2)
{
@@ -39,7 +39,9 @@ strcmp(const char* s1, const char* s2)
return 0;
return *s1 > *s2? 1 : -1;
}
-
+#else
+extern int strcmp( char* s1, char* s2);
+#endif
Boolean Func_3 (Enumeration Enum_Par_Val);
diff --git a/tools/Makefile b/tools/Makefile
index 9901a7a..4db08fc 100755
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -41,23 +41,14 @@ TBDIR = ${RV_ROOT}/testbench
# Define test name
TEST = hello_world
-
-# Define test name
-ifneq (,$(wildcard $(TBDIR)/asm/$(TEST).s))
- TEST_DIR = ${TBDIR}/asm
-else
-ifneq (,$(wildcard $(TBDIR)/asm/$(TEST).c))
- TEST_DIR = ${TBDIR}/asm
-else
-ifneq (,$(wildcard $(TBDIR)/tests/$(TEST)))
- TEST_DIR = $(TBDIR)/tests/$(TEST)
-else
- TEST_DIR = ${TBDIR}/asm
-endif
-endif
-endif
+TEST_DIR = ${TBDIR}/asm
HEX_DIR = ${TBDIR}/hex
+# Determine test directory
+ifneq (,$(wildcard $(TBDIR)/tests/$(TEST)))
+ TEST_DIR = $(TBDIR)/tests/$(TEST)
+endif
+
OFILES = $(TEST).o
ifdef debug
@@ -101,7 +92,7 @@ VERILATOR_MAKE_FLAGS = OPT_FAST="-Os"
all: clean verilator
clean:
- rm -rf *.log *.s *.hex *.dis *.tbl irun* vcs* simv* snapshots swerv* \
+ rm -rf *.log *.s *.hex *.dis *.tbl irun* vcs* simv* *.map snapshots swerv* \
verilator* *.exe obj* *.o ucli.key vc_hdrs.h csrc *.csv work\
dataset.asdb library.cfg vsimsa.cfg riviera-build wave.asdb
@@ -189,7 +180,7 @@ program.hex:
else
program.hex: $(OFILES) $(LINK)
@echo Building $(TEST)
- $(GCC_PREFIX)-gcc -Wl,-m,elf32lriscv -Wl,--discard-none -T$(LINK) -o $(TEST).exe $(OFILES) -nostartfiles -nostdlib $(TEST_LIBS)
+ $(GCC_PREFIX)-gcc $(ABI) -Wl,-Map=$(TEST).map -lgcc -T$(LINK) -o $(TEST).exe $(OFILES) -nostartfiles $(TEST_LIBS)
$(GCC_PREFIX)-objcopy -O verilog $(TEST).exe program.hex
$(GCC_PREFIX)-objdump -S $(TEST).exe > $(TEST).dis
@echo Completed building $(TEST)