summaryrefslogtreecommitdiff
path: root/loragw_hal/src
diff options
context:
space:
mode:
Diffstat (limited to 'loragw_hal/src')
-rw-r--r--loragw_hal/src/agc_fw.var374
-rw-r--r--loragw_hal/src/arb_fw.var132
-rw-r--r--loragw_hal/src/loragw_hal.c72
-rw-r--r--loragw_hal/src/loragw_reg.c595
4 files changed, 606 insertions, 567 deletions
diff --git a/loragw_hal/src/agc_fw.var b/loragw_hal/src/agc_fw.var
index a0dde65..c913e0c 100644
--- a/loragw_hal/src/agc_fw.var
+++ b/loragw_hal/src/agc_fw.var
@@ -12,193 +12,193 @@ Description:
static uint8_t agc_firmware[MCU_AGC_FW_BYTE] = {
0x8A, 0x51, 0x11, 0x28, 0xFF, 0xBF, 0xFF, 0xBF, 0x80, 0x40, 0x03, 0x4E, 0x83, 0x52, 0x03, 0x53,
-0xA1, 0xC0, 0x04, 0x88, 0xA2, 0xC0, 0x0A, 0xC8, 0xA3, 0x00, 0x01, 0x88, 0xA4, 0xC0, 0x8A, 0x51,
-0x99, 0xEC, 0x8A, 0x51, 0xC4, 0xED, 0x83, 0x96, 0x03, 0x53, 0x2E, 0x48, 0xB4, 0x00, 0x2D, 0x48,
-0xB3, 0x40, 0x2C, 0x08, 0xB2, 0x00, 0x2B, 0x48, 0xB1, 0x00, 0x83, 0x52, 0x03, 0x53, 0x19, 0x54,
-0x99, 0x50, 0x19, 0x95, 0x99, 0x91, 0x19, 0x52, 0x99, 0x92, 0x19, 0x93, 0x99, 0xD3, 0x18, 0x12,
-0x90, 0x30, 0xA8, 0xC0, 0x28, 0xC8, 0x8B, 0x00, 0x98, 0x10, 0x18, 0x11, 0x98, 0x51, 0x97, 0x81,
-0x9A, 0x41, 0x9B, 0x81, 0x83, 0x96, 0x03, 0x53, 0xD1, 0x41, 0xD1, 0x8A, 0x0F, 0xB0, 0x83, 0x52,
-0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xD9, 0x40, 0xC9, 0x41, 0xD2, 0x41,
-0xD2, 0x8A, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xDA, 0x40, 0x06, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xCA, 0x00, 0x02, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xD3, 0x40, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xDB, 0x80, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xCB, 0x40, 0x03, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xD4, 0x00, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xDC, 0x40, 0x12, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xCC, 0x00, 0x04, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xD5, 0x40, 0x0F, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xDD, 0x80, 0x18, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xCD, 0x40, 0x04, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xD6, 0x40, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xDE, 0x80, 0x1E, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xCE, 0x40, 0x05, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xD7, 0x80, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xDF, 0xC0, 0x24, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xCF, 0x80, 0x05, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xD8, 0x00, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xE0, 0xC0, 0x2A, 0x70, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53,
-0xD0, 0xC0, 0xB9, 0x81, 0xBA, 0x81, 0xBB, 0xC1, 0xBC, 0x81, 0xBD, 0xC1, 0xBE, 0xC1, 0xBF, 0x01,
-0xC0, 0xC1, 0xC1, 0x01, 0x06, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96,
-0x03, 0x53, 0xC2, 0xC0, 0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96,
-0x03, 0x53, 0xC3, 0x00, 0x12, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96,
-0x03, 0x53, 0xC4, 0xC0, 0x18, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96,
-0x03, 0x53, 0xC5, 0x00, 0x1E, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96,
-0x03, 0x53, 0xC6, 0x00, 0x24, 0x30, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96,
-0x03, 0x53, 0xC7, 0x40, 0x2A, 0x70, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96,
-0x03, 0x53, 0xC8, 0xC0, 0xEF, 0x01, 0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0x28, 0x69, 0x29, 0xA9,
-0x2B, 0xE9, 0xA1, 0xA9, 0xA1, 0xA9, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x81,
-0x08, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xE9, 0xBE,
-0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8,
-0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xD1, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53,
-0xA8, 0xC0, 0x05, 0x30, 0x03, 0xD0, 0xA8, 0x8D, 0xFF, 0x7E, 0x03, 0x9D, 0x4A, 0xA9, 0x83, 0x96,
-0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xD9, 0xBE, 0x84, 0x80, 0x00, 0x48,
-0x83, 0x52, 0x03, 0x53, 0xA9, 0x00, 0x29, 0x87, 0x28, 0xC4, 0xAA, 0x00, 0x2A, 0x08, 0x83, 0x96,
-0x03, 0x53, 0xAF, 0x80, 0x6F, 0xC8, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96,
-0x03, 0x53, 0xB0, 0xC0, 0x0C, 0x30, 0x8A, 0x51, 0x84, 0x65, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53,
-0x98, 0x95, 0x98, 0x51, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xE9, 0xBE, 0x84, 0x80, 0x83, 0x93,
-0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x03, 0x30, 0x03, 0xD0, 0xA8, 0x8D, 0xFF, 0x7E,
-0x03, 0x9D, 0x7D, 0x69, 0x03, 0xD0, 0x28, 0x4D, 0xA9, 0x00, 0x29, 0x08, 0x96, 0x00, 0x83, 0x96,
-0x03, 0x53, 0x6F, 0x18, 0x8C, 0xA9, 0x90, 0x69, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x93, 0xE9,
-0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x18, 0x55, 0x18, 0x11, 0x01, 0xF0, 0xA8, 0xC0, 0x28, 0xC8,
-0x83, 0x96, 0x03, 0x53, 0xEF, 0x87, 0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0xA0, 0x69, 0xA1, 0xA9,
-0x2B, 0xE9, 0xEE, 0xC1, 0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C, 0xA7, 0x29, 0xA8, 0xA9, 0xAA, 0xE9,
-0xDE, 0x69, 0xDE, 0x69, 0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53,
-0x6E, 0x88, 0xE3, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x83, 0x93, 0x80, 0x40,
-0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE3, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53,
-0xA8, 0xC0, 0x28, 0xC8, 0x96, 0x00, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xB1, 0x7E, 0x84, 0x80,
-0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x95, 0x00, 0x98, 0x54, 0x98, 0x10,
-0x01, 0xF0, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xEE, 0x47, 0x04, 0xF0, 0x6E, 0x82,
-0x03, 0x5C, 0xDB, 0x69, 0xDC, 0x29, 0xAA, 0xE9, 0xDE, 0x69, 0xDE, 0x69, 0x83, 0x96, 0x03, 0x53,
-0x6C, 0x48, 0xC9, 0x7E, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0,
-0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xE7, 0x80, 0x69, 0x48, 0xB9, 0xBE, 0x84, 0x80, 0x00, 0x48,
-0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xE8, 0x00, 0x68, 0x08,
-0x67, 0x07, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xEB, 0x80,
-0x68, 0x08, 0x67, 0x07, 0xD6, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x97, 0x40,
-0x83, 0x96, 0x03, 0x53, 0x6D, 0x88, 0xC9, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53,
-0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xE7, 0x80, 0x6A, 0x48, 0xB9, 0xBE, 0x84, 0x80,
-0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xE8, 0x00,
-0x68, 0x08, 0x67, 0x07, 0xD6, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x9C, 0x00,
-0x83, 0x96, 0x03, 0x53, 0xEE, 0xC1, 0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C, 0x30, 0x6A, 0x31, 0xAA,
-0x33, 0xEA, 0xBB, 0x6A, 0xBB, 0x6A, 0x6E, 0x88, 0xB1, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52,
-0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x95, 0x00, 0x0D, 0x08, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53,
-0x6E, 0x88, 0xB5, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x80, 0x40, 0x83, 0x96,
-0x03, 0x53, 0x6E, 0x88, 0xB5, 0xBE, 0x84, 0x80, 0x88, 0x30, 0x00, 0x42, 0x03, 0x5C, 0x51, 0xAA,
-0x52, 0xAA, 0x7A, 0x2A, 0x6E, 0x88, 0xE3, 0xBE, 0x84, 0x80, 0x0F, 0xB0, 0x00, 0x42, 0x03, 0x18,
-0x5A, 0xEA, 0x5B, 0x2A, 0x7A, 0x2A, 0x6E, 0x88, 0xE3, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x01, 0xBE,
-0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE3, 0xBE, 0x84, 0x80,
-0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE3, 0xBE,
-0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x96, 0x00, 0x98, 0x54,
-0x98, 0x10, 0xAE, 0x2A, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xB5, 0xBE, 0x84, 0x80, 0x2D, 0xB0,
-0x00, 0x42, 0x03, 0x18, 0x84, 0x6A, 0x85, 0xAA, 0xAE, 0x2A, 0x6E, 0x88, 0xE3, 0xBE, 0x84, 0x80,
-0x08, 0xF0, 0x00, 0x42, 0x03, 0x5C, 0x8D, 0xEA, 0x8E, 0xEA, 0xAE, 0x2A, 0x6E, 0x88, 0xE3, 0xBE,
-0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53,
-0x6E, 0x88, 0xE3, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x80, 0x40, 0x83, 0x96,
-0x03, 0x53, 0x6E, 0x88, 0xE3, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0,
-0x28, 0xC8, 0x96, 0x00, 0x98, 0x54, 0x98, 0x10, 0xAE, 0x2A, 0xAE, 0x2A, 0x01, 0xF0, 0x83, 0x52,
-0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xEE, 0x47, 0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C,
-0xBA, 0x2A, 0xBB, 0x6A, 0x33, 0xEA, 0xEF, 0x01, 0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0xC1, 0xAA,
-0xC2, 0xAA, 0xC4, 0xAA, 0x0C, 0x6C, 0x0C, 0x6C, 0x6F, 0x18, 0xC7, 0x2A, 0xCB, 0x2A, 0x83, 0x52,
-0x03, 0x53, 0x18, 0x14, 0xCE, 0x2A, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x0E, 0x08, 0xA8, 0xC0,
-0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xE2, 0x00, 0x88, 0x30, 0x62, 0x02, 0x03, 0x5C, 0xD9, 0x2A,
-0xDA, 0x2A, 0x0C, 0xAB, 0x6F, 0xC8, 0xE9, 0xBE, 0x84, 0x80, 0x0B, 0x70, 0x83, 0x93, 0x00, 0x42,
-0x03, 0x18, 0xE3, 0x2A, 0xE4, 0xEA, 0x0C, 0xAB, 0x6F, 0xC8, 0xE9, 0xBE, 0x84, 0x80, 0x00, 0x48,
-0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xE9, 0xBE,
-0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8,
-0xE9, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x03, 0x30, 0x03, 0xD0,
-0xA8, 0x8D, 0xFF, 0x7E, 0x03, 0x9D, 0xFF, 0xEA, 0x03, 0xD0, 0x28, 0x4D, 0xA9, 0x00, 0x29, 0x08,
-0x96, 0x00, 0x18, 0x55, 0x18, 0x11, 0x47, 0x2B, 0x2D, 0xB0, 0x83, 0x96, 0x03, 0x53, 0x62, 0x02,
-0x03, 0x18, 0x13, 0xEB, 0x14, 0xAB, 0x47, 0x2B, 0x6F, 0xC8, 0xE9, 0xBE, 0x84, 0x80, 0x09, 0x30,
-0x83, 0x93, 0x00, 0x42, 0x03, 0x5C, 0x1D, 0x2B, 0x1E, 0x2B, 0x47, 0x2B, 0x6F, 0xC8, 0xE9, 0xBE,
-0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53,
-0x6F, 0xC8, 0xE9, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x80, 0x40, 0x83, 0x96,
-0x03, 0x53, 0x6F, 0xC8, 0xE9, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0,
-0x03, 0x30, 0x03, 0xD0, 0xA8, 0x8D, 0xFF, 0x7E, 0x03, 0x9D, 0x39, 0x2B, 0x03, 0xD0, 0x28, 0x4D,
-0xA9, 0x00, 0x29, 0x08, 0x96, 0x00, 0x18, 0x55, 0x18, 0x11, 0x47, 0x2B, 0x47, 0x2B, 0x83, 0x52,
-0x0F, 0x48, 0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xE1, 0x00, 0x33, 0xB0, 0x61, 0x02,
-0x03, 0x5C, 0x53, 0x2B, 0x54, 0xEB, 0xA5, 0x2B, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x07, 0x70,
-0x83, 0x93, 0x00, 0x42, 0x03, 0x18, 0x5D, 0x6B, 0x5E, 0x6B, 0xA5, 0x2B, 0x6F, 0xC8, 0xEC, 0xBE,
-0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53,
-0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x80, 0x40, 0x83, 0x96,
-0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xD1, 0x7E, 0x84, 0x80, 0x00, 0x48,
-0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x05, 0x30, 0x03, 0xD0, 0xA8, 0x8D, 0xFF, 0x7E, 0x03, 0x9D,
-0x7C, 0x6B, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xD9, 0xBE,
-0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA9, 0x00, 0x29, 0x87, 0x28, 0xC4, 0xAA, 0x00,
-0x2A, 0x08, 0x83, 0x96, 0x03, 0x53, 0xAF, 0x80, 0x6F, 0xC8, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40,
-0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB0, 0xC0, 0x0C, 0x30, 0x8A, 0x51, 0x84, 0x65, 0x8A, 0x51,
-0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0xFE, 0xEB, 0x0F, 0xB0, 0x83, 0x96, 0x03, 0x53,
-0x61, 0x02, 0x03, 0x18, 0xAC, 0x2B, 0xAD, 0x6B, 0xFE, 0xEB, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80,
-0x83, 0x93, 0x80, 0x88, 0x03, 0x59, 0xB5, 0x6B, 0xB6, 0x6B, 0xFE, 0xEB, 0x6F, 0xC8, 0xEC, 0xBE,
-0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x83, 0x96, 0x03, 0x53,
-0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x28, 0xC8, 0x80, 0x40, 0x83, 0x96,
-0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xD1, 0x7E, 0x84, 0x80, 0x00, 0x48,
-0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x05, 0x30, 0x03, 0xD0, 0xA8, 0x8D, 0xFF, 0x7E, 0x03, 0x9D,
-0xD4, 0x2B, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xD9, 0xBE,
-0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA9, 0x00, 0x29, 0x87, 0x28, 0xC4, 0xAA, 0x00,
-0x2A, 0x08, 0x83, 0x96, 0x03, 0x53, 0xAF, 0x80, 0x6F, 0xC8, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40,
-0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB0, 0xC0, 0x0C, 0x30, 0x8A, 0x51, 0x84, 0x65, 0x8A, 0x51,
-0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0xFE, 0xEB, 0xFE, 0xEB, 0x01, 0xF0, 0x83, 0x52,
-0xA8, 0xC0, 0x28, 0xC8, 0x83, 0x96, 0x03, 0x53, 0xEF, 0x87, 0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C,
-0x0A, 0x6C, 0x0B, 0xAC, 0xC4, 0xAA, 0x0C, 0x6C, 0x6C, 0x48, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0,
-0x28, 0xC8, 0x9A, 0x00, 0x51, 0x70, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x82, 0x03, 0x5C, 0x19, 0xAC,
-0x1A, 0xAC, 0x21, 0x6C, 0x40, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x9B, 0x40,
-0xDE, 0x69, 0x28, 0x30, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x82, 0x03, 0x5C, 0x28, 0x6C, 0x29, 0xAC,
-0x30, 0x6C, 0x80, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x9B, 0x40, 0xDE, 0x69,
-0x15, 0x70, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x82, 0x03, 0x5C, 0x37, 0x2C, 0x38, 0xAC, 0x3F, 0x6C,
-0x08, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x9B, 0x40, 0xDE, 0x69, 0x11, 0x30,
-0x83, 0x96, 0x03, 0x53, 0x6B, 0x82, 0x03, 0x5C, 0x46, 0xAC, 0x47, 0xEC, 0x4E, 0xEC, 0x10, 0xF0,
-0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x9B, 0x40, 0xDE, 0x69, 0x0B, 0x70, 0x83, 0x96,
-0x03, 0x53, 0x6B, 0x82, 0x03, 0x5C, 0x55, 0xEC, 0x56, 0xEC, 0x5D, 0x2C, 0x20, 0xF0, 0x83, 0x52,
-0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8, 0x9B, 0x40, 0xDE, 0x69, 0x06, 0x30, 0x83, 0x96, 0x03, 0x53,
-0x6B, 0x82, 0x03, 0x5C, 0x64, 0xAC, 0x65, 0xEC, 0x6C, 0xEC, 0x01, 0xF0, 0x83, 0x52, 0x03, 0x53,
-0xA8, 0xC0, 0x28, 0xC8, 0x9B, 0x40, 0xDE, 0x69, 0x04, 0xF0, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x82,
-0x03, 0x5C, 0x73, 0x2C, 0x74, 0xEC, 0x7B, 0x6C, 0x02, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0,
-0x28, 0xC8, 0x9B, 0x40, 0xDE, 0x69, 0x02, 0xF0, 0x83, 0x96, 0x03, 0x53, 0x6B, 0x82, 0x03, 0x5C,
-0x82, 0x6C, 0x83, 0xAC, 0x8A, 0xAC, 0x04, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA8, 0xC0, 0x28, 0xC8,
-0x9B, 0x40, 0xDE, 0x69, 0x83, 0x52, 0x03, 0x53, 0x9B, 0x81, 0xDE, 0x69, 0xDE, 0x69, 0xDE, 0x69,
-0xDE, 0x69, 0xDE, 0x69, 0xDE, 0x69, 0xDE, 0x69, 0xDE, 0x69, 0xDE, 0x69, 0xDE, 0x69, 0x8A, 0x51,
-0x11, 0x28, 0x8B, 0xDC, 0x9C, 0xEC, 0x9D, 0x2C, 0x75, 0x6D, 0x18, 0x12, 0x00, 0xB0, 0x13, 0xDB,
-0x01, 0xF0, 0x9F, 0x80, 0x1F, 0x88, 0xA5, 0x00, 0x25, 0x58, 0xA7, 0x2C, 0xAB, 0x2C, 0x83, 0x52,
-0x03, 0x53, 0x18, 0x14, 0xAE, 0x2C, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x12, 0xC8, 0x9F, 0x80,
-0x1F, 0x88, 0xAC, 0x00, 0x25, 0x08, 0xA0, 0x80, 0x20, 0x88, 0xAD, 0x40, 0x04, 0xF0, 0x8A, 0x51,
-0xA8, 0xA5, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x11, 0xC8, 0x9F, 0x80, 0x1F, 0x88, 0xAC, 0x00,
-0x25, 0x08, 0xA0, 0x80, 0x20, 0x88, 0xAD, 0x40, 0x05, 0x30, 0x8A, 0x51, 0xA8, 0xA5, 0x8A, 0x51,
-0x83, 0x52, 0x03, 0x53, 0x10, 0x88, 0x9F, 0x80, 0x1F, 0x88, 0xAC, 0x00, 0x25, 0x08, 0xA0, 0x80,
-0x20, 0x88, 0xAD, 0x40, 0x06, 0x30, 0x8A, 0x51, 0xA8, 0xA5, 0x8A, 0x51, 0x03, 0x30, 0x83, 0x52,
-0x03, 0x53, 0x9F, 0x80, 0x1F, 0x88, 0xAC, 0x00, 0x25, 0x08, 0xA0, 0x80, 0x20, 0x88, 0xAD, 0x40,
-0x00, 0xB0, 0x8A, 0x51, 0xA8, 0xA5, 0x8A, 0x51, 0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0x9F, 0x80,
-0x1F, 0x88, 0xAC, 0x00, 0x25, 0x08, 0xA0, 0x80, 0x20, 0x88, 0xAD, 0x40, 0x00, 0xB0, 0x8A, 0x51,
-0xA8, 0xA5, 0x8A, 0x51, 0x0F, 0xB0, 0x83, 0x52, 0x03, 0x53, 0x9F, 0x80, 0x1F, 0x88, 0xAC, 0x00,
-0x25, 0x08, 0xA0, 0x80, 0x20, 0x88, 0xAD, 0x40, 0x00, 0xB0, 0x8A, 0x51, 0xA8, 0xA5, 0x8A, 0x51,
-0x83, 0x52, 0x03, 0x53, 0x25, 0x08, 0x03, 0x9D, 0x06, 0xAD, 0x1D, 0x2D, 0x93, 0x1D, 0x09, 0xAD,
-0x0D, 0xED, 0x83, 0x52, 0x03, 0x53, 0x19, 0xD7, 0x10, 0x6D, 0x83, 0x52, 0x03, 0x53, 0x19, 0x93,
-0x93, 0xD9, 0x13, 0xED, 0x17, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x99, 0x17, 0x1A, 0xED, 0x83, 0x52,
-0x03, 0x53, 0x99, 0xD3, 0x19, 0x51, 0x99, 0xD5, 0x33, 0x2D, 0x93, 0x1D, 0x20, 0x6D, 0x24, 0xAD,
-0x83, 0x52, 0x03, 0x53, 0x19, 0x96, 0x27, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0x93, 0xD9,
-0x2A, 0xED, 0x2E, 0x2D, 0x83, 0x52, 0x03, 0x53, 0x99, 0xD6, 0x31, 0xED, 0x83, 0x52, 0x03, 0x53,
-0x99, 0x92, 0x19, 0x10, 0x99, 0x94, 0x93, 0x1D, 0x36, 0x2D, 0x37, 0x6D, 0x44, 0xAD, 0x1D, 0xB0,
-0x9F, 0x80, 0x1F, 0x88, 0xAC, 0x00, 0x25, 0x08, 0xA0, 0x80, 0x20, 0x88, 0xAD, 0x40, 0x08, 0xF0,
-0x8A, 0x51, 0xA8, 0xA5, 0x8A, 0x51, 0x54, 0xED, 0x3B, 0xF0, 0x83, 0x52, 0x03, 0x53, 0x9F, 0x80,
-0x1F, 0x88, 0xAC, 0x00, 0x25, 0x08, 0xA0, 0x80, 0x20, 0x88, 0xAD, 0x40, 0x08, 0xF0, 0x8A, 0x51,
-0xA8, 0xA5, 0x8A, 0x51, 0x54, 0xED, 0x54, 0xED, 0x83, 0x52, 0x03, 0x53, 0x93, 0x1B, 0x59, 0x2D,
-0x5A, 0x2D, 0x54, 0xED, 0x5B, 0x6D, 0x25, 0x08, 0x03, 0x9D, 0x5F, 0xAD, 0x62, 0xED, 0x99, 0x91,
-0x19, 0x95, 0x65, 0x2D, 0x99, 0x50, 0x19, 0x54, 0x65, 0x2D, 0x03, 0x30, 0x9F, 0x80, 0x1F, 0x88,
-0xAC, 0x00, 0x25, 0x08, 0xA0, 0x80, 0x20, 0x88, 0xAD, 0x40, 0x00, 0xB0, 0x8A, 0x51, 0xA8, 0xA5,
-0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x18, 0x56, 0x75, 0x6D, 0x90, 0x30, 0x9F, 0x80, 0x1F, 0x88,
-0x8B, 0x00, 0x24, 0xC8, 0x81, 0x80, 0x23, 0x08, 0x8A, 0xC0, 0x22, 0xC8, 0x84, 0x80, 0x21, 0x4E,
-0x83, 0xC0, 0x80, 0x0E, 0x00, 0xCE, 0x09, 0x80, 0x83, 0x52, 0x03, 0x53, 0xA7, 0x40, 0x83, 0x96,
-0x03, 0x53, 0x30, 0xC8, 0x03, 0x9D, 0x8D, 0x2D, 0x99, 0x2D, 0x2F, 0x88, 0x83, 0x52, 0x03, 0x53,
-0xA6, 0x00, 0x26, 0x08, 0x88, 0x80, 0x27, 0x48, 0x80, 0x38, 0xA6, 0x00, 0x26, 0x08, 0x86, 0xC0,
-0xA7, 0x6D, 0x83, 0x96, 0x03, 0x53, 0x2F, 0x88, 0x83, 0x52, 0x03, 0x53, 0xA6, 0x00, 0x26, 0x08,
-0x88, 0x80, 0x27, 0x48, 0x80, 0x38, 0xA6, 0x00, 0x26, 0x08, 0x85, 0xC0, 0xA7, 0x6D, 0x08, 0x40,
-0x83, 0x52, 0x03, 0x53, 0x9E, 0x40, 0x2D, 0x48, 0x03, 0x9D, 0xAF, 0xAD, 0xB9, 0x6D, 0x2C, 0x08,
-0x9D, 0x40, 0x1D, 0x48, 0x88, 0x80, 0x1E, 0x48, 0x80, 0x38, 0x9D, 0x40, 0x1D, 0x48, 0x86, 0xC0,
-0xC3, 0x2D, 0x2C, 0x08, 0x9D, 0x40, 0x1D, 0x48, 0x88, 0x80, 0x1E, 0x48, 0x80, 0x38, 0x9D, 0x40,
-0x1D, 0x48, 0x85, 0xC0, 0xC3, 0x2D, 0x08, 0x40, 0x83, 0x96, 0x03, 0x53, 0x8A, 0x51, 0xD9, 0x25,
-0x8A, 0x51, 0xAB, 0x40, 0x8A, 0x51, 0xDA, 0x25, 0x8A, 0x51, 0xAC, 0x00, 0x8A, 0x51, 0xDB, 0x65,
-0x8A, 0x51, 0xAD, 0x40, 0x8A, 0x51, 0xDC, 0x25, 0x8A, 0x51, 0xAE, 0x40, 0x83, 0x01, 0x8A, 0x51,
-0x13, 0x68, 0x00, 0xF4, 0x01, 0x34, 0x02, 0x34, 0x03, 0x74, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xA4, 0xC0, 0x04, 0x88, 0xA5, 0x00, 0x0A, 0xC8, 0xA6, 0x00, 0x01, 0x88, 0xA7, 0x40, 0x8A, 0x51,
+0x09, 0x6C, 0x8A, 0x51, 0x20, 0x6D, 0x83, 0x96, 0x03, 0x53, 0x2F, 0x88, 0xB5, 0x40, 0x2E, 0x48,
+0xB4, 0x00, 0x2D, 0x48, 0xB3, 0x40, 0x2C, 0x08, 0xB2, 0x00, 0x83, 0x52, 0x03, 0x53, 0x19, 0x54,
+0x99, 0x50, 0x19, 0x95, 0x99, 0x91, 0x19, 0x52, 0x99, 0x92, 0x18, 0x12, 0x90, 0x30, 0xAB, 0x40,
+0x2B, 0x48, 0x8B, 0x00, 0x98, 0x10, 0x18, 0x11, 0x98, 0x51, 0x97, 0x81, 0x9A, 0x41, 0x9B, 0x81,
+0x83, 0x96, 0x03, 0x53, 0xD2, 0x41, 0xD2, 0x8A, 0x0F, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40,
+0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDA, 0x40, 0xCA, 0x41, 0xD3, 0x81, 0xD3, 0xCA, 0x0C, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDB, 0x80, 0x06, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCB, 0x40, 0x02, 0xF0,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD4, 0x00, 0x0C, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDC, 0x40, 0x0C, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCC, 0x00, 0x03, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD5, 0x40, 0x0C, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDD, 0x80, 0x12, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCD, 0x40, 0x04, 0xF0,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD6, 0x40, 0x0F, 0xB0,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDE, 0x80, 0x18, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCE, 0x40, 0x04, 0xF0,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD7, 0x80, 0x0C, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xDF, 0xC0, 0x1E, 0xB0,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xCF, 0x80, 0x05, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD8, 0x00, 0x0C, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE0, 0xC0, 0x24, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD0, 0xC0, 0x05, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD9, 0x40, 0x0C, 0x30,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE1, 0x00, 0x2A, 0x70,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xD1, 0x00, 0xBA, 0x81,
+0xBB, 0xC1, 0xBC, 0x81, 0xBD, 0xC1, 0xBE, 0xC1, 0xBF, 0x01, 0xC0, 0xC1, 0xC1, 0x01, 0xC2, 0x01,
+0x06, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC3, 0x00,
+0x0C, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC4, 0xC0,
+0x12, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC5, 0x00,
+0x18, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC6, 0x00,
+0x1E, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC7, 0x40,
+0x24, 0x30, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC8, 0xC0,
+0x2A, 0x70, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xC9, 0x00,
+0xEF, 0x01, 0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0x26, 0xA9, 0x27, 0xE9, 0x29, 0xA9, 0x9F, 0x69,
+0x9F, 0x69, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x81, 0x08, 0xF0, 0x83, 0x52,
+0x03, 0x53, 0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x83, 0x52,
+0x03, 0x53, 0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80,
+0x00, 0x48, 0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x05, 0x30,
+0x03, 0xD0, 0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x48, 0x69, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8,
+0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53,
+0xAC, 0x00, 0x2C, 0x87, 0x2B, 0x44, 0xAD, 0x40, 0x2D, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB0, 0xC0,
+0x6F, 0xC8, 0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB1, 0x00,
+0x0C, 0x30, 0x8A, 0x51, 0xE0, 0x64, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51,
+0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x52,
+0x03, 0x53, 0xAB, 0x40, 0x03, 0x30, 0x03, 0xD0, 0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x7B, 0x69,
+0x03, 0xD0, 0x2B, 0xCD, 0xAC, 0x00, 0x2C, 0x08, 0x96, 0x00, 0x83, 0x96, 0x03, 0x53, 0x6F, 0x18,
+0x8A, 0xA9, 0x8E, 0xE9, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0x91, 0xA9, 0x83, 0x52, 0x03, 0x53,
+0x18, 0xD0, 0x18, 0x55, 0x18, 0x11, 0x01, 0xF0, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53,
+0xEF, 0x87, 0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0x9E, 0x29, 0x9F, 0x69, 0x29, 0xA9, 0xEE, 0xC1,
+0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C, 0xA5, 0xE9, 0xA6, 0xE9, 0xA8, 0xA9, 0xDC, 0x29, 0xDC, 0x29,
+0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE6, 0xBE,
+0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x2B, 0x48, 0x83, 0x93, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53,
+0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48,
+0x96, 0x00, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xB2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52,
+0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x95, 0x00, 0x98, 0x54, 0x98, 0x10, 0x01, 0xF0, 0xAB, 0x40,
+0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEE, 0x47, 0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C, 0xD9, 0x29,
+0xDA, 0x29, 0xA8, 0xA9, 0xDC, 0x29, 0xDC, 0x29, 0x83, 0x96, 0x03, 0x53, 0x6C, 0x48, 0xCA, 0x7E,
+0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96,
+0x03, 0x53, 0xE4, 0x00, 0x6A, 0x48, 0xBA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53,
+0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE5, 0x40, 0x65, 0x48, 0x64, 0x87, 0x83, 0x52,
+0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x97, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6D, 0x88, 0xCA, 0x7E,
+0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53,
+0xE4, 0x00, 0x6B, 0x88, 0xBA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40,
+0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE5, 0x40, 0x65, 0x48, 0x64, 0x87, 0x83, 0x52, 0x03, 0x53,
+0xAB, 0x40, 0x2B, 0x48, 0x9C, 0x00, 0x83, 0x96, 0x03, 0x53, 0xEE, 0xC1, 0x04, 0xF0, 0x6E, 0x82,
+0x03, 0x5C, 0x23, 0xAA, 0x24, 0x6A, 0x26, 0xAA, 0xAE, 0x2A, 0xAE, 0x2A, 0x6E, 0x88, 0xB2, 0x7E,
+0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x95, 0x00, 0x0D, 0x08,
+0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xB6, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53,
+0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xB6, 0xBE, 0x84, 0x80, 0x88, 0x30,
+0x00, 0x42, 0x03, 0x5C, 0x44, 0x6A, 0x45, 0xAA, 0x6D, 0x2A, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80,
+0x0F, 0xB0, 0x00, 0x42, 0x03, 0x18, 0x4D, 0xEA, 0x4E, 0xEA, 0x6D, 0x2A, 0x6E, 0x88, 0xE6, 0xBE,
+0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x83, 0x96, 0x03, 0x53,
+0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x2B, 0x48, 0x80, 0x40, 0x83, 0x96,
+0x03, 0x53, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40,
+0x2B, 0x48, 0x96, 0x00, 0x98, 0x54, 0x98, 0x10, 0xA1, 0xAA, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88,
+0xB6, 0xBE, 0x84, 0x80, 0x2D, 0xB0, 0x00, 0x42, 0x03, 0x18, 0x77, 0x6A, 0x78, 0xEA, 0xA1, 0xAA,
+0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x08, 0xF0, 0x00, 0x42, 0x03, 0x5C, 0x80, 0x2A, 0x81, 0x6A,
+0xA1, 0xAA, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53,
+0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53,
+0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6E, 0x88, 0xE6, 0xBE, 0x84, 0x80, 0x00, 0x48,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x96, 0x00, 0x98, 0x54, 0x98, 0x10, 0xA1, 0xAA,
+0xA1, 0xAA, 0x01, 0xF0, 0x83, 0x52, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEE, 0x47,
+0x04, 0xF0, 0x6E, 0x82, 0x03, 0x5C, 0xAD, 0x2A, 0xAE, 0x2A, 0x26, 0xAA, 0xEF, 0x01, 0x02, 0xF0,
+0x6F, 0xC2, 0x03, 0x5C, 0xB4, 0xEA, 0xB5, 0x2A, 0xB7, 0x6A, 0xFF, 0x2B, 0xFF, 0x2B, 0x6F, 0x18,
+0xBA, 0x2A, 0xBE, 0x6A, 0x83, 0x52, 0x03, 0x53, 0x18, 0x14, 0xC1, 0xAA, 0x83, 0x52, 0x03, 0x53,
+0x18, 0xD0, 0x0E, 0x08, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xE3, 0x40, 0x88, 0x30,
+0x63, 0x42, 0x03, 0x5C, 0xCC, 0xEA, 0xCD, 0x2A, 0xFF, 0xEA, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80,
+0x0B, 0x70, 0x83, 0x93, 0x00, 0x42, 0x03, 0x18, 0xD6, 0x2A, 0xD7, 0x6A, 0xFF, 0xEA, 0x6F, 0xC8,
+0xEA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x83, 0x96,
+0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53, 0x2B, 0x48, 0x80, 0x40,
+0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53,
+0xAB, 0x40, 0x03, 0x30, 0x03, 0xD0, 0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0xF2, 0x2A, 0x03, 0xD0,
+0x2B, 0xCD, 0xAC, 0x00, 0x2C, 0x08, 0x96, 0x00, 0x18, 0x55, 0x18, 0x11, 0x3A, 0x2B, 0x2D, 0xB0,
+0x83, 0x96, 0x03, 0x53, 0x63, 0x42, 0x03, 0x18, 0x06, 0xAB, 0x07, 0xEB, 0x3A, 0x2B, 0x6F, 0xC8,
+0xEA, 0xBE, 0x84, 0x80, 0x09, 0x30, 0x83, 0x93, 0x00, 0x42, 0x03, 0x5C, 0x10, 0x6B, 0x11, 0xAB,
+0x3A, 0x2B, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53,
+0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53,
+0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEA, 0xBE, 0x84, 0x80, 0x00, 0x48,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x03, 0x30, 0x03, 0xD0, 0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D,
+0x2C, 0xEB, 0x03, 0xD0, 0x2B, 0xCD, 0xAC, 0x00, 0x2C, 0x08, 0x96, 0x00, 0x18, 0x55, 0x18, 0x11,
+0x3A, 0x2B, 0x3A, 0x2B, 0x83, 0x52, 0x0F, 0x48, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53,
+0xE2, 0x00, 0x29, 0x70, 0x62, 0x02, 0x03, 0x5C, 0x46, 0xEB, 0x47, 0x2B, 0x98, 0xEB, 0x6F, 0xC8,
+0xEC, 0xBE, 0x84, 0x80, 0x07, 0x70, 0x83, 0x93, 0x00, 0x42, 0x03, 0x18, 0x50, 0xAB, 0x51, 0xEB,
+0x98, 0xEB, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x01, 0xBE, 0x83, 0x52, 0x03, 0x53,
+0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53,
+0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48,
+0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x05, 0x30, 0x03, 0xD0,
+0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0x6F, 0xAB, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE,
+0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAC, 0x00,
+0x2C, 0x87, 0x2B, 0x44, 0xAD, 0x40, 0x2D, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB0, 0xC0, 0x6F, 0xC8,
+0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB1, 0x00, 0x0C, 0x30,
+0x8A, 0x51, 0xE0, 0x64, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0xF1, 0x6B,
+0x0F, 0xB0, 0x83, 0x96, 0x03, 0x53, 0x62, 0x02, 0x03, 0x18, 0x9F, 0xAB, 0xA0, 0xAB, 0xF1, 0x6B,
+0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x88, 0x03, 0x59, 0xA8, 0xEB, 0xA9, 0x2B,
+0xF1, 0x6B, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48, 0xFF, 0x7E, 0x83, 0x52, 0x03, 0x53,
+0xAB, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x83, 0x52, 0x03, 0x53,
+0x2B, 0x48, 0x80, 0x40, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE, 0x84, 0x80, 0x00, 0x48,
+0xD2, 0x7E, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x05, 0x30, 0x03, 0xD0,
+0xAB, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0xC7, 0x6B, 0x83, 0x96, 0x03, 0x53, 0x6F, 0xC8, 0xEC, 0xBE,
+0x84, 0x80, 0x00, 0x48, 0xDA, 0xBE, 0x84, 0x80, 0x00, 0x48, 0x83, 0x52, 0x03, 0x53, 0xAC, 0x00,
+0x2C, 0x87, 0x2B, 0x44, 0xAD, 0x40, 0x2D, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB0, 0xC0, 0x6F, 0xC8,
+0x83, 0x52, 0x03, 0x53, 0xAE, 0x40, 0x2E, 0x48, 0x83, 0x96, 0x03, 0x53, 0xB1, 0x00, 0x0C, 0x30,
+0x8A, 0x51, 0xE0, 0x64, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x98, 0x95, 0x98, 0x51, 0xF1, 0x6B,
+0xF1, 0x6B, 0x01, 0xF0, 0x83, 0x52, 0xAB, 0x40, 0x2B, 0x48, 0x83, 0x96, 0x03, 0x53, 0xEF, 0x87,
+0x02, 0xF0, 0x6F, 0xC2, 0x03, 0x5C, 0xFD, 0xEB, 0xFE, 0xEB, 0xB7, 0x6A, 0xFF, 0x2B, 0x6C, 0x48,
+0x83, 0x52, 0x03, 0x53, 0xAB, 0x40, 0x2B, 0x48, 0x9A, 0x00, 0xDC, 0x29, 0xDC, 0x29, 0x8A, 0x51,
+0x11, 0x28, 0x8B, 0xDC, 0x0C, 0x6C, 0x0D, 0xAC, 0xD1, 0xEC, 0x18, 0x12, 0x00, 0xB0, 0x13, 0xDB,
+0x01, 0xF0, 0xA2, 0xC0, 0x22, 0xC8, 0xA8, 0xC0, 0x28, 0x18, 0x17, 0xEC, 0x1B, 0xEC, 0x83, 0x52,
+0x03, 0x53, 0x18, 0x14, 0x1E, 0xEC, 0x83, 0x52, 0x03, 0x53, 0x18, 0xD0, 0x12, 0xC8, 0xA2, 0xC0,
+0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x04, 0xF0, 0x8A, 0x51,
+0x04, 0x25, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x11, 0xC8, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80,
+0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x05, 0x30, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51,
+0x83, 0x52, 0x03, 0x53, 0x10, 0x88, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00,
+0x23, 0x08, 0xB0, 0xC0, 0x06, 0x30, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0x03, 0x30, 0x83, 0x52,
+0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0,
+0x00, 0xB0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0x07, 0x70, 0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0,
+0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x00, 0xB0, 0x8A, 0x51,
+0x04, 0x25, 0x8A, 0x51, 0x0F, 0xB0, 0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80,
+0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x00, 0xB0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51,
+0x83, 0x52, 0x03, 0x53, 0x93, 0x1D, 0x75, 0x2C, 0x79, 0x2C, 0x83, 0x52, 0x03, 0x53, 0x19, 0x96,
+0x7C, 0x2C, 0x83, 0x52, 0x03, 0x53, 0x19, 0x52, 0x93, 0xD9, 0x7F, 0xAC, 0x83, 0xAC, 0x83, 0x52,
+0x03, 0x53, 0x99, 0xD6, 0x86, 0xAC, 0x83, 0x52, 0x03, 0x53, 0x99, 0x92, 0x28, 0xC8, 0x03, 0x9D,
+0x8A, 0xAC, 0x8D, 0xEC, 0x19, 0x51, 0x99, 0xD5, 0x8F, 0x2C, 0x19, 0x10, 0x99, 0x94, 0x93, 0x1D,
+0x92, 0xAC, 0x93, 0xEC, 0xA0, 0x6C, 0x1D, 0xB0, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8,
+0xA3, 0x00, 0x23, 0x08, 0xB0, 0xC0, 0x08, 0xF0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0xB0, 0xAC,
+0x3B, 0xF0, 0x83, 0x52, 0x03, 0x53, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00,
+0x23, 0x08, 0xB0, 0xC0, 0x08, 0xF0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0xB0, 0xAC, 0xB0, 0xAC,
+0x83, 0x52, 0x03, 0x53, 0x93, 0x1B, 0xB5, 0x2C, 0xB6, 0x2C, 0xB0, 0xAC, 0xB7, 0x6C, 0x28, 0xC8,
+0x03, 0x9D, 0xBB, 0x6C, 0xBE, 0x6C, 0x99, 0x91, 0x19, 0x95, 0xC1, 0xAC, 0x99, 0x50, 0x19, 0x54,
+0xC1, 0xAC, 0x03, 0x30, 0xA2, 0xC0, 0x22, 0xC8, 0xAF, 0x80, 0x28, 0xC8, 0xA3, 0x00, 0x23, 0x08,
+0xB0, 0xC0, 0x00, 0xB0, 0x8A, 0x51, 0x04, 0x25, 0x8A, 0x51, 0x83, 0x52, 0x03, 0x53, 0x18, 0x56,
+0xD1, 0xEC, 0x90, 0x30, 0xA2, 0xC0, 0x22, 0xC8, 0x8B, 0x00, 0x27, 0x48, 0x81, 0x80, 0x26, 0x08,
+0x8A, 0xC0, 0x25, 0x08, 0x84, 0x80, 0x24, 0x4E, 0x83, 0xC0, 0x80, 0x0E, 0x00, 0xCE, 0x09, 0x80,
+0x83, 0x52, 0x03, 0x53, 0xAA, 0x00, 0x83, 0x96, 0x03, 0x53, 0x31, 0x08, 0x03, 0x9D, 0xE9, 0x2C,
+0xF5, 0x6C, 0x30, 0xC8, 0x83, 0x52, 0x03, 0x53, 0xA9, 0x00, 0x29, 0x08, 0x88, 0x80, 0x2A, 0x08,
+0x80, 0x38, 0xA9, 0x00, 0x29, 0x08, 0x86, 0xC0, 0x03, 0xAD, 0x83, 0x96, 0x03, 0x53, 0x30, 0xC8,
+0x83, 0x52, 0x03, 0x53, 0xA9, 0x00, 0x29, 0x08, 0x88, 0x80, 0x2A, 0x08, 0x80, 0x38, 0xA9, 0x00,
+0x29, 0x08, 0x85, 0xC0, 0x03, 0xAD, 0x08, 0x40, 0x83, 0x52, 0x03, 0x53, 0xA1, 0xC0, 0x30, 0xC8,
+0x03, 0x9D, 0x0B, 0xED, 0x15, 0xED, 0x2F, 0x88, 0xA0, 0x80, 0x20, 0x88, 0x88, 0x80, 0x21, 0xC8,
+0x80, 0x38, 0xA0, 0x80, 0x20, 0x88, 0x86, 0xC0, 0x1F, 0x6D, 0x2F, 0x88, 0xA0, 0x80, 0x20, 0x88,
+0x88, 0x80, 0x21, 0xC8, 0x80, 0x38, 0xA0, 0x80, 0x20, 0x88, 0x85, 0xC0, 0x1F, 0x6D, 0x08, 0x40,
+0x83, 0x96, 0x03, 0x53, 0x8A, 0x51, 0x35, 0xE5, 0x8A, 0x51, 0xAC, 0x00, 0x8A, 0x51, 0x36, 0xE5,
+0x8A, 0x51, 0xAD, 0x40, 0x8A, 0x51, 0x37, 0x25, 0x8A, 0x51, 0xAE, 0x40, 0x8A, 0x51, 0x38, 0xA5,
+0x8A, 0x51, 0xAF, 0x80, 0x83, 0x01, 0x8A, 0x51, 0x13, 0x68, 0x00, 0xF4, 0x01, 0x34, 0x02, 0x34,
+0x03, 0x74, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
diff --git a/loragw_hal/src/arb_fw.var b/loragw_hal/src/arb_fw.var
index 2cb66f5..58e4f96 100644
--- a/loragw_hal/src/arb_fw.var
+++ b/loragw_hal/src/arb_fw.var
@@ -11,7 +11,7 @@ Description:
*/
static uint8_t arb_firmware[MCU_ARB_FW_BYTE] = {
-0x31, 0xAA, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
+0xFF, 0xE9, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
@@ -73,70 +73,70 @@ static uint8_t arb_firmware[MCU_ARB_FW_BYTE] = {
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
-0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
-0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
-0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
-0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
-0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
-0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
-0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF,
-0xFF, 0xBF, 0x64, 0xC0, 0x80, 0x81, 0x84, 0x0A, 0x04, 0xC6, 0x03, 0x59, 0x00, 0xF4, 0x04, 0xC6,
-0x2A, 0xAA, 0xDA, 0x81, 0x83, 0x93, 0x22, 0x30, 0x84, 0x80, 0x5A, 0xB0, 0x29, 0x62, 0xDB, 0xC1,
-0xDC, 0x81, 0xDD, 0xC1, 0xE3, 0x81, 0xE1, 0x41, 0xE2, 0x41, 0xF6, 0x30, 0x84, 0x80, 0xFE, 0x70,
-0x29, 0x62, 0x83, 0x01, 0xA8, 0xAA, 0x83, 0x52, 0xE2, 0x41, 0x08, 0xF0, 0x62, 0x02, 0x03, 0x5C,
-0x4A, 0xAA, 0x4B, 0xEA, 0x4D, 0xEA, 0x70, 0xAA, 0x70, 0xAA, 0x62, 0x08, 0x32, 0x3E, 0x84, 0x80,
-0x83, 0x93, 0x80, 0x81, 0x62, 0x08, 0x3A, 0x7E, 0x84, 0x80, 0x80, 0x81, 0x62, 0x08, 0x4A, 0x3E,
-0x84, 0x80, 0x80, 0x81, 0x62, 0x08, 0x22, 0xFE, 0x84, 0x80, 0x80, 0x81, 0x62, 0x08, 0x42, 0xFE,
-0x84, 0x80, 0x80, 0x81, 0x62, 0x08, 0x2A, 0x3E, 0x84, 0x80, 0x80, 0x81, 0x01, 0xF0, 0xDE, 0x80,
-0x5E, 0x88, 0xE2, 0xC7, 0x08, 0xF0, 0x62, 0x02, 0x03, 0x5C, 0x6F, 0x6A, 0x70, 0xAA, 0x4D, 0xEA,
-0xE1, 0x41, 0x5A, 0x50, 0xDA, 0x90, 0x08, 0x40, 0x83, 0x52, 0xDF, 0xC0, 0xDA, 0x90, 0x5F, 0xC8,
-0xDE, 0x80, 0x5E, 0x88, 0x96, 0x00, 0x8D, 0xDC, 0x7E, 0x6A, 0x7F, 0xAA, 0xA7, 0x2A, 0x15, 0x54,
-0xDA, 0xD4, 0x82, 0x6A, 0x0D, 0xDD, 0x85, 0xAA, 0x86, 0xAA, 0x82, 0x6A, 0x87, 0xEA, 0x10, 0x88,
-0xDE, 0x80, 0x5E, 0x88, 0x83, 0x96, 0xF8, 0x40, 0x83, 0x52, 0x11, 0xC8, 0xDE, 0x80, 0x5E, 0x88,
-0x83, 0x96, 0xF9, 0x80, 0x83, 0x52, 0x0F, 0x48, 0xDE, 0x80, 0x5E, 0x88, 0x83, 0x96, 0xFB, 0xC0,
-0x83, 0x52, 0x0E, 0x08, 0xDE, 0x80, 0x5E, 0x88, 0x83, 0x96, 0xF7, 0xC0, 0x83, 0x52, 0x12, 0xC8,
-0xDE, 0x80, 0x5E, 0x88, 0x83, 0x96, 0xFA, 0x80, 0x83, 0x52, 0x15, 0x10, 0xA7, 0x2A, 0x08, 0x40,
-0x43, 0x62, 0xD0, 0xAA, 0xD0, 0xAA, 0xE1, 0x41, 0x04, 0xF0, 0x61, 0x02, 0x03, 0x5C, 0xB1, 0xEA,
-0xB2, 0xEA, 0xB4, 0xEA, 0xD0, 0xAA, 0xD0, 0xAA, 0x5A, 0x94, 0x61, 0x08, 0x74, 0xA2, 0x83, 0x52,
-0xDA, 0x1C, 0xBB, 0x6A, 0xBC, 0x2A, 0xBE, 0x6A, 0x36, 0xE3, 0xBE, 0x6A, 0x83, 0x52, 0x0D, 0x9C,
-0xC2, 0xAA, 0xC3, 0xEA, 0xC5, 0xEA, 0xD0, 0xAA, 0xD0, 0xAA, 0x01, 0xF0, 0xE0, 0xC0, 0x60, 0xC8,
-0xE1, 0xC7, 0x04, 0xF0, 0x61, 0x02, 0x03, 0x5C, 0xCE, 0x2A, 0xCF, 0x6A, 0xB4, 0xEA, 0xD0, 0xAA,
-0x83, 0x52, 0x0D, 0x9C, 0xD4, 0xEA, 0xD5, 0x2A, 0xAB, 0x2A, 0x5A, 0xDC, 0xD8, 0xEA, 0xD9, 0x2A,
-0xDB, 0x6A, 0xE0, 0x62, 0xDB, 0x6A, 0x83, 0x52, 0x5A, 0x50, 0xD0, 0xAA, 0xD0, 0xAA, 0x00, 0xA8,
-0x83, 0x52, 0xDC, 0x81, 0xE2, 0x41, 0x08, 0xF0, 0x62, 0x02, 0x03, 0x5C, 0xE8, 0xEA, 0xE9, 0x2A,
-0xEB, 0x6A, 0x35, 0x2B, 0x35, 0x2B, 0x62, 0x08, 0x2A, 0x3E, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48,
-0x01, 0x7A, 0x03, 0x9D, 0xF4, 0x2A, 0xF5, 0x6A, 0x2A, 0xEB, 0x01, 0xF0, 0xDE, 0x80, 0x5E, 0x88,
-0xDC, 0x07, 0x62, 0x08, 0x2A, 0x3E, 0x84, 0x80, 0x80, 0x81, 0x62, 0x08, 0x42, 0xFE, 0x84, 0x80,
-0x00, 0x48, 0xDE, 0x80, 0x5E, 0x88, 0x97, 0x40, 0x62, 0x08, 0x22, 0xFE, 0x84, 0x80, 0x00, 0x48,
-0xDE, 0x80, 0x5E, 0x88, 0x98, 0xC0, 0x62, 0x08, 0x32, 0x3E, 0x84, 0x80, 0x00, 0x48, 0xDE, 0x80,
-0x5E, 0x88, 0x99, 0x00, 0x62, 0x08, 0x3A, 0x7E, 0x84, 0x80, 0x00, 0x48, 0xDE, 0x80, 0x5E, 0x88,
-0x9A, 0x00, 0x62, 0x08, 0xDE, 0x80, 0x5E, 0x88, 0x9B, 0x40, 0x62, 0x08, 0x4A, 0x3E, 0x84, 0x80,
-0x00, 0x48, 0xDE, 0x80, 0x5E, 0x88, 0x9C, 0x00, 0x95, 0x94, 0x95, 0x94, 0x95, 0x94, 0x95, 0x94,
-0x95, 0x50, 0x2A, 0xEB, 0x01, 0xF0, 0xDE, 0x80, 0x5E, 0x88, 0xE2, 0xC7, 0x08, 0xF0, 0x62, 0x02,
-0x03, 0x5C, 0x33, 0x2B, 0x34, 0xEB, 0xEB, 0x6A, 0x35, 0x2B, 0x08, 0x40, 0x83, 0x52, 0x5A, 0x91,
-0xE2, 0x41, 0x08, 0xF0, 0x62, 0x02, 0x03, 0x5C, 0x3E, 0x6B, 0x3F, 0xAB, 0x41, 0xAB, 0x96, 0x2B,
-0x96, 0x2B, 0x5A, 0xD9, 0x44, 0xAB, 0x45, 0xEB, 0x85, 0xEB, 0x14, 0x30, 0x83, 0x96, 0x7B, 0xC2,
-0x03, 0x18, 0x4B, 0x2B, 0x4C, 0xEB, 0x4F, 0x6B, 0x83, 0x52, 0x5A, 0xD5, 0x4F, 0x6B, 0x01, 0xF0,
-0x83, 0x52, 0xDE, 0x80, 0x62, 0x4A, 0x56, 0x2B, 0x03, 0xD0, 0xDE, 0x4D, 0xFF, 0x7E, 0x03, 0x9D,
-0x54, 0xEB, 0x5E, 0x88, 0x13, 0x45, 0x03, 0x9D, 0x5E, 0x6B, 0x5F, 0xAB, 0x6A, 0x2B, 0x62, 0x08,
-0x2A, 0x3E, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x01, 0x7A, 0x03, 0x9D, 0x68, 0xEB, 0x69, 0x2B,
-0x85, 0xEB, 0x6A, 0x2B, 0x62, 0x08, 0x42, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x96,
-0x7A, 0xC6, 0x03, 0x9D, 0x74, 0x2B, 0x75, 0x6B, 0x85, 0xEB, 0x83, 0x52, 0x62, 0x08, 0x22, 0xFE,
+0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0xFF, 0xBF, 0x64, 0xC0,
+0x80, 0x81, 0x84, 0x0A, 0x04, 0xC6, 0x03, 0x59, 0x00, 0xF4, 0x04, 0xC6, 0xF8, 0x29, 0xDB, 0xC1,
+0x83, 0x93, 0x20, 0xF0, 0x84, 0x80, 0x5B, 0xF0, 0xF7, 0x61, 0xE1, 0x41, 0xDF, 0x01, 0xE0, 0x01,
+0xF6, 0x30, 0x84, 0x80, 0xFE, 0x70, 0xF7, 0x61, 0x83, 0x01, 0x42, 0x6A, 0x83, 0x52, 0xDD, 0x80,
+0xDB, 0xD0, 0x5D, 0x88, 0xDC, 0x40, 0x5C, 0x48, 0x96, 0x00, 0x8D, 0xDC, 0x18, 0x6A, 0x19, 0xAA,
+0x41, 0x6A, 0x15, 0x54, 0xDB, 0x14, 0x1C, 0xAA, 0x0D, 0xDD, 0x1F, 0x2A, 0x20, 0x2A, 0x1C, 0xAA,
+0x21, 0x6A, 0x10, 0x88, 0xDC, 0x40, 0x5C, 0x48, 0x83, 0x96, 0xF8, 0x40, 0x83, 0x52, 0x11, 0xC8,
+0xDC, 0x40, 0x5C, 0x48, 0x83, 0x96, 0xF9, 0x80, 0x83, 0x52, 0x0F, 0x48, 0xDC, 0x40, 0x5C, 0x48,
+0x83, 0x96, 0xFB, 0xC0, 0x83, 0x52, 0x0E, 0x08, 0xDC, 0x40, 0x5C, 0x48, 0x83, 0x96, 0xF7, 0xC0,
+0x83, 0x52, 0x12, 0xC8, 0xDC, 0x40, 0x5C, 0x48, 0x83, 0x96, 0xFA, 0x80, 0x83, 0x52, 0x15, 0x10,
+0x41, 0x6A, 0x08, 0x40, 0xD6, 0xE2, 0x83, 0x52, 0x9E, 0x81, 0x46, 0xAA, 0x1E, 0x48, 0x01, 0xBE,
+0xDE, 0x80, 0x5E, 0x88, 0x9E, 0x40, 0x71, 0xEA, 0xDF, 0x01, 0x08, 0xF0, 0x5F, 0xC2, 0x03, 0x5C,
+0x52, 0xAA, 0x53, 0xEA, 0x55, 0xEA, 0x71, 0xEA, 0x71, 0xEA, 0x5B, 0xD4, 0x5F, 0xC8, 0x0E, 0x62,
+0x83, 0x52, 0xDB, 0x5C, 0x5C, 0xEA, 0x5D, 0x2A, 0x5F, 0x6A, 0x36, 0xE3, 0x5F, 0x6A, 0x83, 0x52,
+0x0D, 0x9C, 0x63, 0xEA, 0x64, 0xAA, 0x66, 0xEA, 0x71, 0xEA, 0x71, 0xEA, 0x01, 0xF0, 0xDE, 0x80,
+0x5E, 0x88, 0xDF, 0x87, 0x08, 0xF0, 0x5F, 0xC2, 0x03, 0x5C, 0x6F, 0x6A, 0x70, 0xAA, 0x55, 0xEA,
+0x71, 0xEA, 0x0D, 0x9C, 0x74, 0xEA, 0x75, 0x2A, 0x4C, 0xAA, 0x5B, 0x1C, 0x78, 0xEA, 0x79, 0x2A,
+0x7B, 0x6A, 0x80, 0xE2, 0x7B, 0x6A, 0x83, 0x52, 0x5B, 0x90, 0x46, 0xAA, 0x46, 0xAA, 0x00, 0xA8,
+0x83, 0x52, 0xD9, 0x81, 0xE0, 0x01, 0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0x88, 0x6A, 0x89, 0xAA,
+0x8B, 0xEA, 0xD5, 0x2A, 0xD5, 0x2A, 0x60, 0xC8, 0x28, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48,
+0x01, 0x7A, 0x03, 0x9D, 0x94, 0xAA, 0x95, 0xEA, 0xCA, 0xEA, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48,
+0xD9, 0x07, 0x60, 0xC8, 0x28, 0xFE, 0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x40, 0xBE, 0x84, 0x80,
+0x00, 0x48, 0xDC, 0x40, 0x5C, 0x48, 0x97, 0x40, 0x60, 0xC8, 0x20, 0xBE, 0x84, 0x80, 0x00, 0x48,
+0xDC, 0x40, 0x5C, 0x48, 0x98, 0xC0, 0x60, 0xC8, 0x30, 0xFE, 0x84, 0x80, 0x00, 0x48, 0xDC, 0x40,
+0x5C, 0x48, 0x99, 0x00, 0x60, 0xC8, 0x38, 0x3E, 0x84, 0x80, 0x00, 0x48, 0xDC, 0x40, 0x5C, 0x48,
+0x9A, 0x00, 0x60, 0xC8, 0xDC, 0x40, 0x5C, 0x48, 0x9B, 0x40, 0x60, 0xC8, 0x48, 0xFE, 0x84, 0x80,
+0x00, 0x48, 0xDC, 0x40, 0x5C, 0x48, 0x9C, 0x00, 0x95, 0x94, 0x95, 0x94, 0x95, 0x94, 0x95, 0x94,
+0x95, 0x50, 0xCA, 0xEA, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, 0xE0, 0x87, 0x08, 0xF0, 0x60, 0xC2,
+0x03, 0x5C, 0xD3, 0x2A, 0xD4, 0xEA, 0x8B, 0xEA, 0xD5, 0x2A, 0x08, 0x40, 0x83, 0x52, 0x95, 0x41,
+0x96, 0x41, 0x97, 0x81, 0x98, 0x01, 0x99, 0x41, 0x9A, 0x41, 0x9B, 0x81, 0x9C, 0x41, 0x9E, 0x81,
+0xE0, 0x01, 0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0xE6, 0x2A, 0xE7, 0x6A, 0xE9, 0x2A, 0x0C, 0xAB,
+0x0C, 0xAB, 0x60, 0xC8, 0x30, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x81, 0x60, 0xC8, 0x38, 0x3E,
+0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x48, 0xFE, 0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x20, 0xBE,
+0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x40, 0xBE, 0x84, 0x80, 0x80, 0x81, 0x60, 0xC8, 0x28, 0xFE,
+0x84, 0x80, 0x80, 0x81, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, 0xE0, 0x87, 0x08, 0xF0, 0x60, 0xC2,
+0x03, 0x5C, 0x0B, 0xEB, 0x0C, 0xAB, 0xE9, 0x2A, 0xDF, 0x01, 0x5B, 0x90, 0xDB, 0xD0, 0xD9, 0x81,
+0x5B, 0xD1, 0x83, 0x96, 0xFB, 0x01, 0x83, 0x52, 0x97, 0x81, 0x98, 0x01, 0x99, 0x41, 0x9A, 0x41,
+0x9B, 0x81, 0x9C, 0x41, 0xD4, 0x41, 0xD5, 0x81, 0xD2, 0x41, 0xD3, 0x81, 0xD0, 0x01, 0xD1, 0x41,
+0xD6, 0x81, 0xD7, 0xC1, 0x83, 0x96, 0xF8, 0x81, 0xF9, 0xC1, 0xFB, 0x01, 0xF7, 0x01, 0xFA, 0xC1,
+0xFC, 0xC1, 0xFD, 0x01, 0xF6, 0xC1, 0x83, 0x52, 0xE0, 0x01, 0xDF, 0x01, 0xE1, 0x41, 0x5B, 0x90,
+0xDB, 0xD0, 0x5B, 0xD1, 0xD9, 0x81, 0xD8, 0x41, 0xDA, 0x81, 0x08, 0x40, 0x83, 0x52, 0x5B, 0xD1,
+0xE0, 0x01, 0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0x3E, 0x6B, 0x3F, 0xAB, 0x41, 0xAB, 0x96, 0x2B,
+0x96, 0x2B, 0x5B, 0x19, 0x44, 0xAB, 0x45, 0xEB, 0x85, 0xEB, 0x14, 0x30, 0x83, 0x96, 0x7B, 0xC2,
+0x03, 0x18, 0x4B, 0x2B, 0x4C, 0xEB, 0x4F, 0x6B, 0x83, 0x52, 0x5B, 0x15, 0x4F, 0x6B, 0x01, 0xF0,
+0x83, 0x52, 0xDC, 0x40, 0x60, 0x0A, 0x56, 0x2B, 0x03, 0xD0, 0xDC, 0x0D, 0xFF, 0x7E, 0x03, 0x9D,
+0x54, 0xEB, 0x5C, 0x48, 0x13, 0x45, 0x03, 0x9D, 0x5E, 0x6B, 0x5F, 0xAB, 0x6A, 0x2B, 0x60, 0xC8,
+0x28, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x01, 0x7A, 0x03, 0x9D, 0x68, 0xEB, 0x69, 0x2B,
+0x85, 0xEB, 0x6A, 0x2B, 0x60, 0xC8, 0x40, 0xBE, 0x84, 0x80, 0x83, 0x93, 0x00, 0x48, 0x83, 0x96,
+0x7A, 0xC6, 0x03, 0x9D, 0x74, 0x2B, 0x75, 0x6B, 0x85, 0xEB, 0x83, 0x52, 0x60, 0xC8, 0x20, 0xBE,
0x84, 0x80, 0x00, 0x48, 0x83, 0x96, 0x77, 0x06, 0x03, 0x9D, 0x7F, 0xEB, 0x80, 0x6B, 0x85, 0xEB,
-0x83, 0x52, 0x5A, 0xD5, 0x85, 0xEB, 0x85, 0xEB, 0x85, 0xEB, 0x83, 0x52, 0x5A, 0x1D, 0x89, 0xEB,
-0x8A, 0xEB, 0x8C, 0xEB, 0x96, 0x2B, 0x96, 0x2B, 0x01, 0xF0, 0xDE, 0x80, 0x5E, 0x88, 0xE2, 0xC7,
-0x08, 0xF0, 0x62, 0x02, 0x03, 0x5C, 0x95, 0x2B, 0x96, 0x2B, 0x41, 0xAB, 0x5A, 0xD9, 0x99, 0x2B,
-0x9A, 0x2B, 0xFF, 0x2B, 0xE2, 0x41, 0x08, 0xF0, 0x62, 0x02, 0x03, 0x5C, 0xA0, 0xAB, 0xA1, 0xEB,
-0xA3, 0x2B, 0xFF, 0x2B, 0xFF, 0x2B, 0x01, 0xF0, 0xDE, 0x80, 0x62, 0x4A, 0xA9, 0x2B, 0x03, 0xD0,
-0xDE, 0x4D, 0xFF, 0x7E, 0x03, 0x9D, 0xA7, 0x6B, 0x5E, 0x88, 0x13, 0x45, 0x03, 0x9D, 0xB1, 0x2B,
-0xB2, 0x2B, 0xF3, 0xAB, 0x62, 0x08, 0x2A, 0x3E, 0x84, 0x80, 0x83, 0x93, 0x80, 0x88, 0x03, 0x9D,
-0xBA, 0x6B, 0xBB, 0xAB, 0xF3, 0xAB, 0x5A, 0xD9, 0xBE, 0xAB, 0xBF, 0xEB, 0xF3, 0xAB, 0x83, 0x96,
-0x78, 0x48, 0x83, 0x52, 0xDE, 0x80, 0x62, 0x08, 0x32, 0x3E, 0x84, 0x80, 0x5E, 0x88, 0x80, 0x40,
-0x83, 0x96, 0x79, 0x88, 0x83, 0x52, 0xDE, 0x80, 0x62, 0x08, 0x3A, 0x7E, 0x84, 0x80, 0x5E, 0x88,
-0x80, 0x40, 0x83, 0x96, 0x7B, 0xC8, 0x83, 0x52, 0xDE, 0x80, 0x62, 0x08, 0x4A, 0x3E, 0x84, 0x80,
-0x5E, 0x88, 0x80, 0x40, 0x83, 0x96, 0x77, 0xC8, 0x83, 0x52, 0xDE, 0x80, 0x62, 0x08, 0x22, 0xFE,
-0x84, 0x80, 0x5E, 0x88, 0x80, 0x40, 0x83, 0x96, 0x7A, 0x88, 0x83, 0x52, 0xDE, 0x80, 0x62, 0x08,
-0x42, 0xFE, 0x84, 0x80, 0x5E, 0x88, 0x80, 0x40, 0x62, 0x08, 0x2A, 0x3E, 0x84, 0x80, 0x80, 0x81,
-0x80, 0xCA, 0x5A, 0xD5, 0xFF, 0x2B, 0x01, 0xF0, 0xDE, 0x80, 0x5E, 0x88, 0xE2, 0xC7, 0x08, 0xF0,
-0x62, 0x02, 0x03, 0x5C, 0xFC, 0xAB, 0xFD, 0xEB, 0xA3, 0x2B, 0xFF, 0x2B, 0xFF, 0x2B, 0x08, 0x40
+0x83, 0x52, 0x5B, 0x15, 0x85, 0xEB, 0x85, 0xEB, 0x85, 0xEB, 0x83, 0x52, 0x5B, 0x5D, 0x89, 0xEB,
+0x8A, 0xEB, 0x8C, 0xEB, 0x96, 0x2B, 0x96, 0x2B, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, 0xE0, 0x87,
+0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0x95, 0x2B, 0x96, 0x2B, 0x41, 0xAB, 0x5B, 0x19, 0x99, 0x2B,
+0x9A, 0x2B, 0xFF, 0x2B, 0xE0, 0x01, 0x08, 0xF0, 0x60, 0xC2, 0x03, 0x5C, 0xA0, 0xAB, 0xA1, 0xEB,
+0xA3, 0x2B, 0xFF, 0x2B, 0xFF, 0x2B, 0x01, 0xF0, 0xDC, 0x40, 0x60, 0x0A, 0xA9, 0x2B, 0x03, 0xD0,
+0xDC, 0x0D, 0xFF, 0x7E, 0x03, 0x9D, 0xA7, 0x6B, 0x5C, 0x48, 0x13, 0x45, 0x03, 0x9D, 0xB1, 0x2B,
+0xB2, 0x2B, 0xF3, 0xAB, 0x60, 0xC8, 0x28, 0xFE, 0x84, 0x80, 0x83, 0x93, 0x80, 0x88, 0x03, 0x9D,
+0xBA, 0x6B, 0xBB, 0xAB, 0xF3, 0xAB, 0x5B, 0x19, 0xBE, 0xAB, 0xBF, 0xEB, 0xF3, 0xAB, 0x83, 0x96,
+0x78, 0x48, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, 0x30, 0xFE, 0x84, 0x80, 0x5C, 0x48, 0x80, 0x40,
+0x83, 0x96, 0x79, 0x88, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, 0x38, 0x3E, 0x84, 0x80, 0x5C, 0x48,
+0x80, 0x40, 0x83, 0x96, 0x7B, 0xC8, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, 0x48, 0xFE, 0x84, 0x80,
+0x5C, 0x48, 0x80, 0x40, 0x83, 0x96, 0x77, 0xC8, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8, 0x20, 0xBE,
+0x84, 0x80, 0x5C, 0x48, 0x80, 0x40, 0x83, 0x96, 0x7A, 0x88, 0x83, 0x52, 0xDC, 0x40, 0x60, 0xC8,
+0x40, 0xBE, 0x84, 0x80, 0x5C, 0x48, 0x80, 0x40, 0x60, 0xC8, 0x28, 0xFE, 0x84, 0x80, 0x80, 0x81,
+0x80, 0xCA, 0x5B, 0x15, 0xFF, 0x2B, 0x01, 0xF0, 0xDC, 0x40, 0x5C, 0x48, 0xE0, 0x87, 0x08, 0xF0,
+0x60, 0xC2, 0x03, 0x5C, 0xFC, 0xAB, 0xFD, 0xEB, 0xA3, 0x2B, 0xFF, 0x2B, 0xFF, 0x2B, 0x08, 0x40
};
diff --git a/loragw_hal/src/loragw_hal.c b/loragw_hal/src/loragw_hal.c
index fcbc32a..9f9bf8a 100644
--- a/loragw_hal/src/loragw_hal.c
+++ b/loragw_hal/src/loragw_hal.c
@@ -70,7 +70,7 @@ const uint32_t rf_tx_upfreq[LGW_RF_CHAIN_NB] = LGW_RF_TX_UPFREQ;
#define SX1257_RX_LNA_GAIN 1 /* 1 to 6, 1 highest gain */
#define SX1257_RX_BB_GAIN 12 /* 0 to 15 , 15 highest gain */
#define SX1257_RX_ADC_BW 7 /* 0 to 7, 2:100<BW<200, 5:200<BW<400,7:400<BW (kHz) */
-#define SX1257_RX_ADC_TRIM 7 /* 0 to 7, 6 for 32MHz ref, 5 for 36MHz ref */
+#define SX1257_RX_ADC_TRIM 6 /* 0 to 7, 6 for 32MHz ref, 5 for 36MHz ref */
#define SX1257_RXBB_BW 2
#define RSSI_OFFSET_LORA_MULTI -100.0 // TODO: need to find proper value with calibration
@@ -613,7 +613,7 @@ int lgw_start(void) {
lgw_reg_w(LGW_CORR2_DETECT_EN, (if_enable[2] == true) ? lora_multi_sfmask[2] : 0); /* default 0 */
lgw_reg_w(LGW_CORR3_DETECT_EN, (if_enable[3] == true) ? lora_multi_sfmask[3] : 0); /* default 0 */
- lgw_reg_w(LGW_PPM_OFFSET, 0x60); /* if the threshold is 16ms, use 0x60 to enable ppm_offset for SF12 and SF11 @125kHz*/
+ lgw_reg_w(LGW_PPM_OFFSET, 0x60); /* as the threshold is 16ms, use 0x60 to enable ppm_offset for SF12 and SF11 @125kHz*/
lgw_reg_w(LGW_CONCENTRATOR_MODEM_ENABLE,1); /* default 0 */
@@ -895,12 +895,12 @@ int lgw_send(struct lgw_pkt_tx_s pkt_data) {
/* metadata 9, CRC, Lora CR & SF */
switch (pkt_data.datarate) {
- case DR_LORA_SF7: buff[9] |= 7; break;
- case DR_LORA_SF8: buff[9] |= 8; break;
- case DR_LORA_SF9: buff[9] |= 9; break;
- case DR_LORA_SF10: buff[9] |= 10; break;
- case DR_LORA_SF11: buff[9] |= 11; break;
- case DR_LORA_SF12: buff[9] |= 12; break;
+ case DR_LORA_SF7: buff[9] = 7; break;
+ case DR_LORA_SF8: buff[9] = 8; break;
+ case DR_LORA_SF9: buff[9] = 9; break;
+ case DR_LORA_SF10: buff[9] = 10; break;
+ case DR_LORA_SF11: buff[9] = 11; break;
+ case DR_LORA_SF12: buff[9] = 12; break;
default: DEBUG_PRINTF("ERROR: UNEXPECTED VALUE %d IN SWITCH STATEMENT\n", pkt_data.datarate);
}
switch (pkt_data.coderate) {
@@ -917,16 +917,22 @@ int lgw_send(struct lgw_pkt_tx_s pkt_data) {
/* metadata 10, payload size */
buff[10] = pkt_data.size;
- /* metadata 11, implicit header & modulation bandwidth */
+ /* metadata 11, implicit header, modulation bandwidth, PPM offset & polarity */
switch (pkt_data.bandwidth) {
- case BW_125KHZ: buff[11] |= 0; break;
- case BW_250KHZ: buff[11] |= 1; break;
- case BW_500KHZ: buff[11] |= 2; break;
+ case BW_125KHZ: buff[11] = 0; break;
+ case BW_250KHZ: buff[11] = 1; break;
+ case BW_500KHZ: buff[11] = 2; break;
default: DEBUG_PRINTF("ERROR: UNEXPECTED VALUE %d IN SWITCH STATEMENT\n", pkt_data.bandwidth);
}
if (pkt_data.no_header == true) {
buff[11] |= 0x04; /* set 'implicit header' bit */
}
+ if (SET_PPM_ON(pkt_data.bandwidth,pkt_data.datarate)) {
+ buff[11] |= 0x08; /* set 'PPM offset' bit at 1 */
+ }
+ if (pkt_data.invert_pol == true) {
+ buff[11] |= 0x10; /* set 'TX polarity' bit at 1 */
+ }
/* metadata 12 & 13, Lora preamble size */
if (pkt_data.preamble < MIN_LORA_PREAMBLE) { /* enforce minimum preamble size */
@@ -940,13 +946,6 @@ int lgw_send(struct lgw_pkt_tx_s pkt_data) {
buff[14] = 0;
buff[15] = 0;
- /* TODO: need a metadata for PPM offset */
- if (SET_PPM_ON(pkt_data.bandwidth,pkt_data.datarate)) {
- lgw_reg_w(LGW_TX_PPM_OFFSET, 1);
- } else {
- lgw_reg_w(LGW_TX_PPM_OFFSET, 0);
- }
-
} else {
DEBUG_MSG("ERROR: ONLY LORA TX SUPPORTED FOR NOW\n");
return LGW_HAL_ERROR;
@@ -983,4 +982,39 @@ int lgw_send(struct lgw_pkt_tx_s pkt_data) {
return LGW_HAL_SUCCESS;
}
+/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
+
+int lgw_status(uint8_t select, uint8_t *code) {
+ int32_t read_value;
+
+ /* check input variables */
+ CHECK_NULL(code);
+
+ if (select == TX_STATUS) {
+ lgw_reg_r(LGW_TX_STATUS, &read_value);
+ if (lgw_is_started == false) {
+ *code = TX_OFF;
+ } else if ((read_value & 0x70) == 0) {
+ *code = TX_EMPTY;
+ } else if ((read_value & 0x10) != 0) {
+ *code = TX_DELAYED;
+ } else if ((read_value & 0x60) != 0) {
+ *code = TX_EMITTING;
+ } else {
+ *code = TX_STATUS_UNKNOWN;
+ }
+ return LGW_HAL_SUCCESS;
+
+ } else if (select == RX_STATUS) {
+ *code = RX_STATUS_UNKNOWN; /* todo */
+ return LGW_HAL_SUCCESS;
+
+ } else {
+ DEBUG_MSG("ERROR: SELECTION INVALID, NO STATUS TO RETURN\n");
+ return LGW_HAL_ERROR;
+ }
+
+}
+
+
/* --- EOF ------------------------------------------------------------------ */
diff --git a/loragw_hal/src/loragw_reg.c b/loragw_hal/src/loragw_reg.c
index 3026f50..31da925 100644
--- a/loragw_hal/src/loragw_reg.c
+++ b/loragw_hal/src/loragw_reg.c
@@ -47,7 +47,6 @@ struct lgw_reg_s {
uint8_t offs; /*!< position of the register LSB (between 0 to 7) */
bool sign; /*!< 1 indicates the register is signed (2 complem.) */
uint8_t leng; /*!< number of bits in the register */
- char name[40]; /*!< name of the register */
bool rdon; /*!< 1 indicates a read-only register */
int32_t dflt; /*!< register default value */
};
@@ -59,302 +58,308 @@ struct lgw_reg_s {
#define PAGE_MASK 0x03
/*
-auto generated register mapping for C code : 24-Jun-2013 20:29:09
+auto generated register mapping for C code : 11-Jul-2013 13:20:40
this file contains autogenerated C struct used to access the Lora register from the Primer firmware
this file is autogenerated from registers description
-290 registers are defined
+293 registers are defined
*/
const struct lgw_reg_s loregs[LGW_TOTALREGS] = {
- {-1,0,0,0,2,"PAGE_REG",0,0},
- {-1,0,7,0,1,"SOFT_RESET",0,0},
- {-1,1,0,0,8,"VERSION",1,100},
- {-1,2,0,0,16,"RX_DATA_BUF_ADDR",0,0},
- {-1,4,0,0,8,"RX_DATA_BUF_DATA",1,0},
- {-1,5,0,0,8,"TX_DATA_BUF_ADDR",0,0},
- {-1,6,0,0,8,"TX_DATA_BUF_DATA",0,0},
- {-1,7,0,0,8,"CAPTURE_RAM_ADDR",0,0},
- {-1,8,0,0,8,"CAPTURE_RAM_DATA",1,0},
- {-1,9,0,0,8,"MCU_PROM_ADDR",0,0},
- {-1,10,0,0,8,"MCU_PROM_DATA",0,0},
- {-1,11,0,0,8,"RX_PACKET_DATA_FIFO_NUM_STORED",0,0},
- {-1,12,0,0,16,"RX_PACKET_DATA_FIFO_ADDR_POINTER",1,0},
- {-1,14,0,0,8,"RX_PACKET_DATA_FIFO_STATUS",1,0},
- {-1,15,0,0,8,"RX_PACKET_DATA_FIFO_PAYLOAD_SIZE",1,0},
- {-1,16,0,0,1,"MBWSSF_MODEM_ENABLE",0,0},
- {-1,16,1,0,1,"CONCENTRATOR_MODEM_ENABLE",0,0},
- {-1,16,2,0,1,"FSK_MODEM_ENABLE",0,0},
- {-1,17,0,0,1,"CLK32M_EN",0,0},
- {-1,17,1,0,1,"CLKHS_EN",0,0},
- {-1,18,0,0,1,"START_BIST0",0,0},
- {-1,18,1,0,1,"START_BIST1",0,0},
- {-1,18,2,0,1,"CLEAR_BIST0",0,0},
- {-1,18,3,0,1,"CLEAR_BIST1",0,0},
- {-1,19,0,0,1,"BIST0_FINISHED",1,0},
- {-1,19,1,0,1,"BIST1_FINISHED",1,0},
- {-1,20,0,0,1,"MCU_AGC_PROG_RAM_BIST_STATUS",1,0},
- {-1,20,1,0,1,"MCU_ARB_PROG_RAM_BIST_STATUS",1,0},
- {-1,20,2,0,1,"CAPTURE_RAM_BIST_STATUS",1,0},
- {-1,20,3,0,1,"CHAN_FIR_RAM0_BIST_STATUS",1,0},
- {-1,20,4,0,1,"CHAN_FIR_RAM1_BIST_STATUS",1,0},
- {-1,21,0,0,1,"CORR0_RAM_BIST_STATUS",1,0},
- {-1,21,1,0,1,"CORR1_RAM_BIST_STATUS",1,0},
- {-1,21,2,0,1,"CORR2_RAM_BIST_STATUS",1,0},
- {-1,21,3,0,1,"CORR3_RAM_BIST_STATUS",1,0},
- {-1,21,4,0,1,"CORR4_RAM_BIST_STATUS",1,0},
- {-1,21,5,0,1,"CORR5_RAM_BIST_STATUS",1,0},
- {-1,21,6,0,1,"CORR6_RAM_BIST_STATUS",1,0},
- {-1,21,7,0,1,"CORR7_RAM_BIST_STATUS",1,0},
- {-1,22,0,0,1,"MODEM0_RAM0_BIST_STATUS",1,0},
- {-1,22,1,0,1,"MODEM1_RAM0_BIST_STATUS",1,0},
- {-1,22,2,0,1,"MODEM2_RAM0_BIST_STATUS",1,0},
- {-1,22,3,0,1,"MODEM3_RAM0_BIST_STATUS",1,0},
- {-1,22,4,0,1,"MODEM4_RAM0_BIST_STATUS",1,0},
- {-1,22,5,0,1,"MODEM5_RAM0_BIST_STATUS",1,0},
- {-1,22,6,0,1,"MODEM6_RAM0_BIST_STATUS",1,0},
- {-1,22,7,0,1,"MODEM7_RAM0_BIST_STATUS",1,0},
- {-1,23,0,0,1,"MODEM0_RAM1_BIST_STATUS",1,0},
- {-1,23,1,0,1,"MODEM1_RAM1_BIST_STATUS",1,0},
- {-1,23,2,0,1,"MODEM2_RAM1_BIST_STATUS",1,0},
- {-1,23,3,0,1,"MODEM3_RAM1_BIST_STATUS",1,0},
- {-1,23,4,0,1,"MODEM4_RAM1_BIST_STATUS",1,0},
- {-1,23,5,0,1,"MODEM5_RAM1_BIST_STATUS",1,0},
- {-1,23,6,0,1,"MODEM6_RAM1_BIST_STATUS",1,0},
- {-1,23,7,0,1,"MODEM7_RAM1_BIST_STATUS",1,0},
- {-1,24,0,0,1,"MODEM0_RAM2_BIST_STATUS",1,0},
- {-1,24,1,0,1,"MODEM1_RAM2_BIST_STATUS",1,0},
- {-1,24,2,0,1,"MODEM2_RAM2_BIST_STATUS",1,0},
- {-1,24,3,0,1,"MODEM3_RAM2_BIST_STATUS",1,0},
- {-1,24,4,0,1,"MODEM4_RAM2_BIST_STATUS",1,0},
- {-1,24,5,0,1,"MODEM5_RAM2_BIST_STATUS",1,0},
- {-1,24,6,0,1,"MODEM6_RAM2_BIST_STATUS",1,0},
- {-1,24,7,0,1,"MODEM7_RAM2_BIST_STATUS",1,0},
- {-1,25,0,0,1,"MODEM_MBWSSF_RAM0_BIST_STATUS",1,0},
- {-1,25,1,0,1,"MODEM_MBWSSF_RAM1_BIST_STATUS",1,0},
- {-1,25,2,0,1,"MODEM_MBWSSF_RAM2_BIST_STATUS",1,0},
- {-1,26,0,0,1,"MCU_AGC_DATA_RAM_BIST0_STATUS",1,0},
- {-1,26,1,0,1,"MCU_AGC_DATA_RAM_BIST1_STATUS",1,0},
- {-1,26,2,0,1,"MCU_ARB_DATA_RAM_BIST0_STATUS",1,0},
- {-1,26,3,0,1,"MCU_ARB_DATA_RAM_BIST1_STATUS",1,0},
- {-1,26,4,0,1,"TX_TOP_RAM_BIST0_STATUS",1,0},
- {-1,26,5,0,1,"TX_TOP_RAM_BIST1_STATUS",1,0},
- {-1,26,6,0,1,"DATA_MNGT_RAM_BIST0_STATUS",1,0},
- {-1,26,7,0,1,"DATA_MNGT_RAM_BIST1_STATUS",1,0},
- {-1,27,0,0,8,"GPIO_SELECT",0,0},
- {-1,28,0,0,8,"GPIO_MUX",0,0},
- {-1,127,0,0,1,"EMERGENCY_FORCE_HOST_CTRL",0,0},
- {0,29,0,0,1,"RX_INVERT_IQ",0,0},
- {0,29,1,0,1,"MODEM_INVERT_IQ",0,1},
- {0,29,2,0,1,"MBWSSF_MODEM_INVERT_IQ",0,0},
- {0,29,3,0,1,"RX_EDGE_SELECT",0,0},
- {0,29,4,0,1,"MISC_RADIO_EN",0,0},
- {0,30,0,0,4,"FILTER_GAIN",0,7},
- {0,31,0,0,8,"RADIO_SELECT",0,240},
- {0,32,0,1,13,"IF_FREQ_0",0,-384},
- {0,34,0,1,13,"IF_FREQ_1",0,-128},
- {0,36,0,1,13,"IF_FREQ_2",0,128},
- {0,38,0,1,13,"IF_FREQ_3",0,384},
- {0,40,0,1,13,"IF_FREQ_4",0,-384},
- {0,42,0,1,13,"IF_FREQ_5",0,-128},
- {0,44,0,1,13,"IF_FREQ_6",0,128},
- {0,46,0,1,13,"IF_FREQ_7",0,384},
- {0,48,0,1,13,"IF_FREQ_8",0,0},
- {0,50,0,1,13,"IF_FREQ_9",0,0},
- {0,60,0,0,1,"CHANN_OVERRIDE_AGC_GAIN",0,0},
- {0,60,1,0,4,"CHANN_AGC_GAIN",0,7},
- {0,61,0,0,7,"CORR0_DETECT_EN",0,0},
- {0,62,0,0,7,"CORR1_DETECT_EN",0,0},
- {0,63,0,0,7,"CORR2_DETECT_EN",0,0},
- {0,64,0,0,7,"CORR3_DETECT_EN",0,0},
- {0,65,0,0,7,"CORR4_DETECT_EN",0,0},
- {0,66,0,0,7,"CORR5_DETECT_EN",0,0},
- {0,67,0,0,7,"CORR6_DETECT_EN",0,0},
- {0,68,0,0,7,"CORR7_DETECT_EN",0,0},
- {0,69,0,0,1,"CORR_SAME_PEAKS_OPTION_SF6",0,0},
- {0,69,1,0,1,"CORR_SAME_PEAKS_OPTION_SF7",0,1},
- {0,69,2,0,1,"CORR_SAME_PEAKS_OPTION_SF8",0,1},
- {0,69,3,0,1,"CORR_SAME_PEAKS_OPTION_SF9",0,1},
- {0,69,4,0,1,"CORR_SAME_PEAKS_OPTION_SF10",0,1},
- {0,69,5,0,1,"CORR_SAME_PEAKS_OPTION_SF11",0,1},
- {0,69,6,0,1,"CORR_SAME_PEAKS_OPTION_SF12",0,1},
- {0,70,0,0,4,"CORR_SIG_NOISE_RATIO_SF6",0,4},
- {0,70,4,0,4,"CORR_SIG_NOISE_RATIO_SF7",0,4},
- {0,71,0,0,4,"CORR_SIG_NOISE_RATIO_SF8",0,4},
- {0,71,4,0,4,"CORR_SIG_NOISE_RATIO_SF9",0,4},
- {0,72,0,0,4,"CORR_SIG_NOISE_RATIO_SF10",0,4},
- {0,72,4,0,4,"CORR_SIG_NOISE_RATIO_SF11",0,4},
- {0,73,0,0,4,"CORR_SIG_NOISE_RATIO_SF12",0,4},
- {0,74,0,0,4,"CORR_NUM_SAME_PEAK",0,4},
- {0,74,4,0,3,"CORR_MAC_GAIN",0,5},
- {0,75,0,0,12,"ADJUST_MODEM_START_OFFSET_RDX8",0,0},
- {0,77,0,0,12,"ADJUST_MODEM_START_OFFSET_RDX4",0,0},
- {0,79,0,0,12,"ADJUST_MODEM_START_OFFSET_SF12_RDX4",0,4092},
- {0,81,0,0,8,"DBG_CORR_SELECT_SF",0,7},
- {0,82,0,0,8,"DBG_CORR_SELECT_CHANNEL",0,0},
- {0,83,0,0,8,"DBG_DETECT_CPT",1,0},
- {0,84,0,0,8,"DBG_SYMB_CPT",1,0},
- {0,85,0,0,1,"CHIRP_INVERT_RX",0,1},
- {0,85,1,0,1,"DC_NOTCH_EN",0,0},
- {0,86,0,0,1,"IMPLICIT_CRC_EN",0,0},
- {0,86,1,0,3,"IMPLICIT_CODING_RATE",0,0},
- {0,87,0,0,8,"IMPLICIT_PAYLOAD_LENGHT",0,0},
- {0,88,0,0,8,"FREQ_TO_TIME_INVERT",0,29},
- {0,89,0,0,6,"FREQ_TO_TIME_DRIFT",0,9},
- {0,90,0,0,2,"PAYLOAD_FINE_TIMING_GAIN",0,2},
- {0,90,2,0,2,"PREAMBLE_FINE_TIMING_GAIN",0,1},
- {0,90,4,0,2,"TRACKING_INTEGRAL",0,0},
- {0,91,0,0,4,"FRAME_SYNCH_PEAK1_POS",0,1},
- {0,91,4,0,4,"FRAME_SYNCH_PEAK2_POS",0,2},
- {0,92,0,0,16,"PREAMBLE_SYMB1_NB",0,10},
- {0,94,0,0,1,"FRAME_SYNCH_GAIN",0,1},
- {0,94,1,0,1,"SYNCH_DETECT_TH",0,1},
- {0,95,0,0,4,"LLR_SCALE",0,8},
- {0,95,4,0,2,"SNR_AVG_CST",0,2},
- {0,96,0,0,7,"PPM_OFFSET",0,0},
- {0,97,0,0,8,"MAX_PAYLOAD_LEN",0,255},
- {0,98,0,0,1,"ONLY_CRC_EN",0,1},
- {0,99,0,0,8,"ZERO_PAD",0,0},
- {0,100,0,0,4,"DEC_GAIN_OFFSET",0,8},
- {0,101,0,0,1,"FORCE_HOST_REG_CTRL",0,1},
- {0,101,1,0,1,"FORCE_HOST_RADIO_CTRL",0,1},
- {0,101,2,0,1,"FORCE_HOST_FE_CTRL",0,1},
- {0,101,3,0,1,"FORCE_DEC_FILTER_GAIN",0,1},
- {0,102,0,0,1,"MCU_RST_0",0,1},
- {0,102,1,0,1,"MCU_RST_1",0,1},
- {0,102,2,0,1,"MCU_SELECT_MUX_0",0,0},
- {0,102,3,0,1,"MCU_SELECT_MUX_1",0,0},
- {0,102,4,0,1,"MCU_CORRUPTION_DETECTED_0",1,0},
- {0,102,5,0,1,"MCU_CORRUPTION_DETECTED_1",1,0},
- {0,103,0,0,8,"CHANN_SELECT_RSSI",0,1},
- {0,104,0,0,8,"RSSI_BB_DEFAULT_VALUE",0,32},
- {0,105,0,0,8,"RSSI_DEC_DEFAULT_VALUE",0,100},
- {0,106,0,0,8,"RSSI_CHANN_DEFAULT_VALUE",0,100},
- {0,107,0,0,5,"RSSI_BB_FILTER_ALPHA",0,7},
- {0,108,0,0,5,"RSSI_DEC_FILTER_ALPHA",0,5},
- {0,109,0,0,5,"RSSI_CHANN_FILTER_ALPHA",0,8},
- {0,110,0,0,6,"IQ_MISMATCH_A_AMP_COEFF",0,0},
- {0,111,0,0,6,"IQ_MISMATCH_A_PHI_COEFF",0,0},
- {0,112,0,0,6,"IQ_MISMATCH_B_AMP_COEFF",0,0},
- {0,112,6,0,1,"IQ_MISMATCH_B_SEL_I",0,0},
- {0,113,0,0,6,"IQ_MISMATCH_B_PHI_COEFF",0,0},
- {1,29,0,0,1,"TX_TRIG_IMMEDIATE",0,0},
- {1,29,1,0,1,"TX_TRIG_DELAYED",0,0},
- {1,29,2,0,1,"TX_TRIG_GPS",0,0},
- {1,30,0,0,16,"TX_START_DELAY",0,0},
- {1,32,0,0,4,"TX_FRAME_SYNCH_PEAK1_POS",0,1},
- {1,32,4,0,4,"TX_FRAME_SYNCH_PEAK2_POS",0,2},
- {1,33,0,0,16,"TX_PREAMBLE_SYMB1_NB",0,10},
- {1,35,0,0,8,"TX_OFFSET_I",0,0},
- {1,36,0,0,8,"TX_OFFSET_Q",0,0},
- {1,37,0,0,1,"TX_MODE",0,0},
- {1,37,1,0,4,"TX_ZERO_PAD",0,0},
- {1,37,5,0,1,"TX_PPM_OFFSET",0,0},
- {1,37,6,0,1,"TX_CHIRP_INVERT",0,0},
- {1,37,7,0,1,"TX_CONT_CHIRP",0,0},
- {1,38,0,0,2,"TX_GAIN",0,0},
- {1,38,2,0,3,"TX_CHIRP_LOW_PASS",0,0},
- {1,38,5,0,2,"TX_FCC_WIDEBAND",0,0},
- {1,38,7,0,1,"TX_SWAP_IQ",0,0},
- {1,39,0,0,1,"MBWSSF_IMPLICIT_HEADER",0,0},
- {1,39,1,0,1,"MBWSSF_IMPLICIT_CRC_EN",0,0},
- {1,39,2,0,3,"MBWSSF_IMPLICIT_CODING_RATE",0,0},
- {1,40,0,0,8,"MBWSSF_IMPLICIT_PAYLOAD_LENGHT",0,0},
- {1,41,0,0,1,"MBWSSF_AGC_FREEZE_ON_DETECT",0,1},
- {1,42,0,0,4,"MBWSSF_FRAME_SYNCH_PEAK1_POS",0,1},
- {1,42,4,0,4,"MBWSSF_FRAME_SYNCH_PEAK2_POS",0,2},
- {1,43,0,0,16,"MBWSSF_PREAMBLE_SYMB1_NB",0,10},
- {1,45,0,0,1,"MBWSSF_FRAME_SYNCH_GAIN",0,1},
- {1,45,1,0,1,"MBWSSF_SYNCH_DETECT_TH",0,1},
- {1,46,0,0,8,"MBWSSF_DETECT_MIN_SINGLE_PEAK",0,10},
- {1,47,0,0,3,"MBWSSF_DETECT_TRIG_SAME_PEAK_NB",0,3},
- {1,48,0,0,8,"MBWSSF_FREQ_TO_TIME_INVERT",0,29},
- {1,49,0,0,6,"MBWSSF_FREQ_TO_TIME_DRIFT",0,36},
- {1,50,0,0,12,"MBWSSF_PPM_CORRECTION",0,0},
- {1,52,0,0,2,"MBWSSF_PAYLOAD_FINE_TIMING_GAIN",0,2},
- {1,52,2,0,2,"MBWSSF_PREAMBLE_FINE_TIMING_GAIN",0,1},
- {1,52,4,0,2,"MBWSSF_TRACKING_INTEGRAL",0,0},
- {1,53,0,0,8,"MBWSSF_ZERO_PAD",0,0},
- {1,54,0,0,2,"MBWSSF_MODEM_BW",0,0},
- {1,54,2,0,1,"MBWSSF_RADIO_SELECT",0,0},
- {1,54,3,0,1,"MBWSSF_RX_CHIRP_INVERT",0,1},
- {1,55,0,0,4,"MBWSSF_LLR_SCALE",0,8},
- {1,55,4,0,2,"MBWSSF_SNR_AVG_CST",0,3},
- {1,55,6,0,1,"MBWSSF_PPM_OFFSET",0,0},
- {1,56,0,0,4,"MBWSSF_RATE_SF",0,7},
- {1,56,4,0,1,"MBWSSF_ONLY_CRC_EN",0,1},
- {1,57,0,0,8,"MBWSSF_MAX_PAYLOAD_LEN",0,255},
- {2,29,0,0,8,"SPI_RADIO_A__DATA",0,0},
- {2,30,0,0,8,"SPI_RADIO_A__DATA_READBACK",1,0},
- {2,31,0,0,14,"SPI_RADIO_A__ADDR",0,0},
- {2,33,0,0,1,"SPI_RADIO_A__CS",0,0},
- {2,34,0,0,8,"SPI_RADIO_B__DATA",0,0},
- {2,35,0,0,8,"SPI_RADIO_B__DATA_READBACK",1,0},
- {2,36,0,0,14,"SPI_RADIO_B__ADDR",0,0},
- {2,38,0,0,1,"SPI_RADIO_B__CS",0,0},
- {2,39,0,0,1,"RADIO_A_EN",0,0},
- {2,39,1,0,1,"RADIO_B_EN",0,0},
- {2,39,2,0,1,"RADIO_RST",0,1},
- {2,39,3,0,1,"LNA_A_EN",0,0},
- {2,39,4,0,1,"PA_A_EN",0,0},
- {2,39,5,0,1,"LNA_B_EN",0,0},
- {2,39,6,0,1,"PA_B_EN",0,0},
- {2,40,0,0,2,"PA_A_GAIN",0,0},
- {2,40,2,0,2,"PA_B_GAIN",0,0},
- {2,41,0,0,4,"LNA_A_CTRL_LUT",0,2},
- {2,41,4,0,4,"PA_A_CTRL_LUT",0,4},
- {2,42,0,0,4,"LNA_B_CTRL_LUT",0,2},
- {2,42,4,0,4,"PA_B_CTRL_LUT",0,4},
- {2,43,0,0,5,"CAPTURE_SOURCE",0,0},
- {2,43,5,0,1,"CAPTURE_START",0,0},
- {2,43,6,0,1,"CAPTURE_FORCE_TRIGGER",0,0},
- {2,43,7,0,1,"CAPTURE_WRAP",0,0},
- {2,44,0,0,16,"CAPTURE_PERIOD",0,0},
- {2,46,0,0,3,"LED_REG",0,3},
- {2,47,0,0,8,"MODEM_STATUS",1,0},
- {2,48,0,0,8,"VALID_HEADER_COUNTER_0",1,0},
- {2,49,0,0,8,"VALID_HEADER_COUNTER_1",1,0},
- {2,50,0,0,8,"VALID_PACKET_COUNTER_0",1,0},
- {2,51,0,0,8,"VALID_PACKET_COUNTER_1",1,0},
- {2,52,0,0,8,"VALID_HEADER_COUNTER_MBWSSF",1,0},
- {2,53,0,0,8,"VALID_HEADER_COUNTER_FSK",1,0},
- {2,54,0,0,8,"VALID_PACKET_COUNTER_MBWSSF",1,0},
- {2,55,0,0,8,"VALID_PACKET_COUNTER_FSK",1,0},
- {2,56,0,0,8,"CHANN_RSSI",1,0},
- {2,57,0,0,8,"BB_RSSI",1,0},
- {2,58,0,0,8,"DEC_RSSI",1,0},
- {2,59,0,0,8,"DBG_MCU_DATA",1,0},
- {2,60,0,0,8,"DBG_ARB_MCU_RAM_DATA",1,0},
- {2,61,0,0,8,"DBG_AGC_MCU_RAM_DATA",1,0},
- {2,62,0,0,16,"NEXT_PACKET_CNT",1,0},
- {2,64,0,0,16,"ADDR_CAPTURE_COUNT",1,0},
- {2,66,0,0,32,"TIMESTAMP",1,0},
- {2,70,0,0,4,"DBG_CHANN0_GAIN",1,0},
- {2,70,4,0,4,"DBG_CHANN1_GAIN",1,0},
- {2,71,0,0,4,"DBG_CHANN2_GAIN",1,0},
- {2,71,4,0,4,"DBG_CHANN3_GAIN",1,0},
- {2,72,0,0,4,"DBG_CHANN4_GAIN",1,0},
- {2,72,4,0,4,"DBG_CHANN5_GAIN",1,0},
- {2,73,0,0,4,"DBG_CHANN6_GAIN",1,0},
- {2,73,4,0,4,"DBG_CHANN7_GAIN",1,0},
- {2,74,0,0,4,"DBG_DEC_FILT_GAIN",1,0},
- {2,75,0,0,3,"SPI_DATA_FIFO_PTR",1,0},
- {2,75,3,0,3,"PACKET_DATA_FIFO_PTR",1,0},
- {2,76,0,0,8,"DBG_ARB_MCU_RAM_ADDR",0,0},
- {2,77,0,0,8,"DBG_AGC_MCU_RAM_ADDR",0,0},
- {2,78,0,0,1,"SPI_MASTER_CHIP_SELECT_POLARITY",0,0},
- {2,78,1,0,1,"SPI_MASTER_CPOL",0,0},
- {2,78,2,0,1,"SPI_MASTER_CPHA",0,0},
- {2,79,0,0,1,"SIG_GEN_ANALYSER_MUX_SEL",0,0},
- {2,80,0,0,1,"SIG_GEN_EN",0,0},
- {2,80,1,0,1,"SIG_ANALYSER_EN",0,0},
- {2,80,2,0,2,"SIG_ANALYSER_AVG_LEN",0,0},
- {2,80,4,0,3,"SIG_ANALYSER_PRECISION",0,0},
- {2,80,7,0,1,"SIG_ANALYSER_VALID_OUT",1,0},
- {2,81,0,0,8,"SIG_GEN_FREQ",0,0},
- {2,82,0,0,8,"SIG_ANALYSER_FREQ",0,0},
- {2,83,0,0,8,"SIG_ANALYSER_I_OUT",1,0},
- {2,84,0,0,8,"SIG_ANALYSER_Q_OUT",1,0},
- {2,85,0,0,1,"GPS_EN",0,0},
- {2,85,1,0,1,"GPS_POL",0,1}
+ {-1,0,0,0,2,0,0}, /* PAGE_REG */
+ {-1,0,7,0,1,0,0}, /* SOFT_RESET */
+ {-1,1,0,0,8,1,101}, /* VERSION */
+ {-1,2,0,0,16,0,0}, /* RX_DATA_BUF_ADDR */
+ {-1,4,0,0,8,0,0}, /* RX_DATA_BUF_DATA */
+ {-1,5,0,0,8,0,0}, /* TX_DATA_BUF_ADDR */
+ {-1,6,0,0,8,0,0}, /* TX_DATA_BUF_DATA */
+ {-1,7,0,0,8,0,0}, /* CAPTURE_RAM_ADDR */
+ {-1,8,0,0,8,1,0}, /* CAPTURE_RAM_DATA */
+ {-1,9,0,0,8,0,0}, /* MCU_PROM_ADDR */
+ {-1,10,0,0,8,0,0}, /* MCU_PROM_DATA */
+ {-1,11,0,0,8,0,0}, /* RX_PACKET_DATA_FIFO_NUM_STORED */
+ {-1,12,0,0,16,1,0}, /* RX_PACKET_DATA_FIFO_ADDR_POINTER */
+ {-1,14,0,0,8,1,0}, /* RX_PACKET_DATA_FIFO_STATUS */
+ {-1,15,0,0,8,1,0}, /* RX_PACKET_DATA_FIFO_PAYLOAD_SIZE */
+ {-1,16,0,0,1,0,0}, /* MBWSSF_MODEM_ENABLE */
+ {-1,16,1,0,1,0,0}, /* CONCENTRATOR_MODEM_ENABLE */
+ {-1,16,2,0,1,0,0}, /* FSK_MODEM_ENABLE */
+ {-1,17,0,0,1,0,0}, /* CLK32M_EN */
+ {-1,17,1,0,1,0,0}, /* CLKHS_EN */
+ {-1,18,0,0,1,0,0}, /* START_BIST0 */
+ {-1,18,1,0,1,0,0}, /* START_BIST1 */
+ {-1,18,2,0,1,0,0}, /* CLEAR_BIST0 */
+ {-1,18,3,0,1,0,0}, /* CLEAR_BIST1 */
+ {-1,19,0,0,1,1,0}, /* BIST0_FINISHED */
+ {-1,19,1,0,1,1,0}, /* BIST1_FINISHED */
+ {-1,20,0,0,1,1,0}, /* MCU_AGC_PROG_RAM_BIST_STATUS */
+ {-1,20,1,0,1,1,0}, /* MCU_ARB_PROG_RAM_BIST_STATUS */
+ {-1,20,2,0,1,1,0}, /* CAPTURE_RAM_BIST_STATUS */
+ {-1,20,3,0,1,1,0}, /* CHAN_FIR_RAM0_BIST_STATUS */
+ {-1,20,4,0,1,1,0}, /* CHAN_FIR_RAM1_BIST_STATUS */
+ {-1,21,0,0,1,1,0}, /* CORR0_RAM_BIST_STATUS */
+ {-1,21,1,0,1,1,0}, /* CORR1_RAM_BIST_STATUS */
+ {-1,21,2,0,1,1,0}, /* CORR2_RAM_BIST_STATUS */
+ {-1,21,3,0,1,1,0}, /* CORR3_RAM_BIST_STATUS */
+ {-1,21,4,0,1,1,0}, /* CORR4_RAM_BIST_STATUS */
+ {-1,21,5,0,1,1,0}, /* CORR5_RAM_BIST_STATUS */
+ {-1,21,6,0,1,1,0}, /* CORR6_RAM_BIST_STATUS */
+ {-1,21,7,0,1,1,0}, /* CORR7_RAM_BIST_STATUS */
+ {-1,22,0,0,1,1,0}, /* MODEM0_RAM0_BIST_STATUS */
+ {-1,22,1,0,1,1,0}, /* MODEM1_RAM0_BIST_STATUS */
+ {-1,22,2,0,1,1,0}, /* MODEM2_RAM0_BIST_STATUS */
+ {-1,22,3,0,1,1,0}, /* MODEM3_RAM0_BIST_STATUS */
+ {-1,22,4,0,1,1,0}, /* MODEM4_RAM0_BIST_STATUS */
+ {-1,22,5,0,1,1,0}, /* MODEM5_RAM0_BIST_STATUS */
+ {-1,22,6,0,1,1,0}, /* MODEM6_RAM0_BIST_STATUS */
+ {-1,22,7,0,1,1,0}, /* MODEM7_RAM0_BIST_STATUS */
+ {-1,23,0,0,1,1,0}, /* MODEM0_RAM1_BIST_STATUS */
+ {-1,23,1,0,1,1,0}, /* MODEM1_RAM1_BIST_STATUS */
+ {-1,23,2,0,1,1,0}, /* MODEM2_RAM1_BIST_STATUS */
+ {-1,23,3,0,1,1,0}, /* MODEM3_RAM1_BIST_STATUS */
+ {-1,23,4,0,1,1,0}, /* MODEM4_RAM1_BIST_STATUS */
+ {-1,23,5,0,1,1,0}, /* MODEM5_RAM1_BIST_STATUS */
+ {-1,23,6,0,1,1,0}, /* MODEM6_RAM1_BIST_STATUS */
+ {-1,23,7,0,1,1,0}, /* MODEM7_RAM1_BIST_STATUS */
+ {-1,24,0,0,1,1,0}, /* MODEM0_RAM2_BIST_STATUS */
+ {-1,24,1,0,1,1,0}, /* MODEM1_RAM2_BIST_STATUS */
+ {-1,24,2,0,1,1,0}, /* MODEM2_RAM2_BIST_STATUS */
+ {-1,24,3,0,1,1,0}, /* MODEM3_RAM2_BIST_STATUS */
+ {-1,24,4,0,1,1,0}, /* MODEM4_RAM2_BIST_STATUS */
+ {-1,24,5,0,1,1,0}, /* MODEM5_RAM2_BIST_STATUS */
+ {-1,24,6,0,1,1,0}, /* MODEM6_RAM2_BIST_STATUS */
+ {-1,24,7,0,1,1,0}, /* MODEM7_RAM2_BIST_STATUS */
+ {-1,25,0,0,1,1,0}, /* MODEM_MBWSSF_RAM0_BIST_STATUS */
+ {-1,25,1,0,1,1,0}, /* MODEM_MBWSSF_RAM1_BIST_STATUS */
+ {-1,25,2,0,1,1,0}, /* MODEM_MBWSSF_RAM2_BIST_STATUS */
+ {-1,26,0,0,1,1,0}, /* MCU_AGC_DATA_RAM_BIST0_STATUS */
+ {-1,26,1,0,1,1,0}, /* MCU_AGC_DATA_RAM_BIST1_STATUS */
+ {-1,26,2,0,1,1,0}, /* MCU_ARB_DATA_RAM_BIST0_STATUS */
+ {-1,26,3,0,1,1,0}, /* MCU_ARB_DATA_RAM_BIST1_STATUS */
+ {-1,26,4,0,1,1,0}, /* TX_TOP_RAM_BIST0_STATUS */
+ {-1,26,5,0,1,1,0}, /* TX_TOP_RAM_BIST1_STATUS */
+ {-1,26,6,0,1,1,0}, /* DATA_MNGT_RAM_BIST0_STATUS */
+ {-1,26,7,0,1,1,0}, /* DATA_MNGT_RAM_BIST1_STATUS */
+ {-1,27,0,0,4,0,0}, /* GPIO_SELECT_INPUT */
+ {-1,28,0,0,4,0,0}, /* GPIO_SELECT_OUTPUT */
+ {-1,29,0,0,5,0,0}, /* GPIO_MODE */
+ {-1,30,0,0,5,1,0}, /* GPIO_PIN_REG_IN */
+ {-1,31,0,0,5,0,0}, /* GPIO_PIN_REG_OUT */
+ {-1,32,0,0,8,0,0}, /* MCU_AGC_STATUS */
+ {-1,126,0,0,8,1,1}, /* CHIP_ID */
+ {-1,127,0,0,1,0,0}, /* EMERGENCY_FORCE_HOST_CTRL */
+ {0,33,0,0,1,0,0}, /* RX_INVERT_IQ */
+ {0,33,1,0,1,0,1}, /* MODEM_INVERT_IQ */
+ {0,33,2,0,1,0,0}, /* MBWSSF_MODEM_INVERT_IQ */
+ {0,33,3,0,1,0,0}, /* RX_EDGE_SELECT */
+ {0,33,4,0,1,0,0}, /* MISC_RADIO_EN */
+ {0,34,0,0,4,0,7}, /* FILTER_GAIN */
+ {0,35,0,0,8,0,240}, /* RADIO_SELECT */
+ {0,36,0,1,13,0,-384}, /* IF_FREQ_0 */
+ {0,38,0,1,13,0,-128}, /* IF_FREQ_1 */
+ {0,40,0,1,13,0,128}, /* IF_FREQ_2 */
+ {0,42,0,1,13,0,384}, /* IF_FREQ_3 */
+ {0,44,0,1,13,0,-384}, /* IF_FREQ_4 */
+ {0,46,0,1,13,0,-128}, /* IF_FREQ_5 */
+ {0,48,0,1,13,0,128}, /* IF_FREQ_6 */
+ {0,50,0,1,13,0,384}, /* IF_FREQ_7 */
+ {0,52,0,1,13,0,0}, /* IF_FREQ_8 */
+ {0,54,0,1,13,0,0}, /* IF_FREQ_9 */
+ {0,64,0,0,1,0,0}, /* CHANN_OVERRIDE_AGC_GAIN */
+ {0,64,1,0,4,0,7}, /* CHANN_AGC_GAIN */
+ {0,65,0,0,7,0,0}, /* CORR0_DETECT_EN */
+ {0,66,0,0,7,0,0}, /* CORR1_DETECT_EN */
+ {0,67,0,0,7,0,0}, /* CORR2_DETECT_EN */
+ {0,68,0,0,7,0,0}, /* CORR3_DETECT_EN */
+ {0,69,0,0,7,0,0}, /* CORR4_DETECT_EN */
+ {0,70,0,0,7,0,0}, /* CORR5_DETECT_EN */
+ {0,71,0,0,7,0,0}, /* CORR6_DETECT_EN */
+ {0,72,0,0,7,0,0}, /* CORR7_DETECT_EN */
+ {0,73,0,0,1,0,0}, /* CORR_SAME_PEAKS_OPTION_SF6 */
+ {0,73,1,0,1,0,1}, /* CORR_SAME_PEAKS_OPTION_SF7 */
+ {0,73,2,0,1,0,1}, /* CORR_SAME_PEAKS_OPTION_SF8 */
+ {0,73,3,0,1,0,1}, /* CORR_SAME_PEAKS_OPTION_SF9 */
+ {0,73,4,0,1,0,1}, /* CORR_SAME_PEAKS_OPTION_SF10 */
+ {0,73,5,0,1,0,1}, /* CORR_SAME_PEAKS_OPTION_SF11 */
+ {0,73,6,0,1,0,1}, /* CORR_SAME_PEAKS_OPTION_SF12 */
+ {0,74,0,0,4,0,4}, /* CORR_SIG_NOISE_RATIO_SF6 */
+ {0,74,4,0,4,0,4}, /* CORR_SIG_NOISE_RATIO_SF7 */
+ {0,75,0,0,4,0,4}, /* CORR_SIG_NOISE_RATIO_SF8 */
+ {0,75,4,0,4,0,4}, /* CORR_SIG_NOISE_RATIO_SF9 */
+ {0,76,0,0,4,0,4}, /* CORR_SIG_NOISE_RATIO_SF10 */
+ {0,76,4,0,4,0,4}, /* CORR_SIG_NOISE_RATIO_SF11 */
+ {0,77,0,0,4,0,4}, /* CORR_SIG_NOISE_RATIO_SF12 */
+ {0,78,0,0,4,0,4}, /* CORR_NUM_SAME_PEAK */
+ {0,78,4,0,3,0,5}, /* CORR_MAC_GAIN */
+ {0,79,0,0,12,0,0}, /* ADJUST_MODEM_START_OFFSET_RDX8 */
+ {0,81,0,0,12,0,0}, /* ADJUST_MODEM_START_OFFSET_RDX4 */
+ {0,83,0,0,12,0,4092}, /* ADJUST_MODEM_START_OFFSET_SF12_RDX4 */
+ {0,85,0,0,8,0,7}, /* DBG_CORR_SELECT_SF */
+ {0,86,0,0,8,0,0}, /* DBG_CORR_SELECT_CHANNEL */
+ {0,87,0,0,8,1,0}, /* DBG_DETECT_CPT */
+ {0,88,0,0,8,1,0}, /* DBG_SYMB_CPT */
+ {0,89,0,0,1,0,1}, /* CHIRP_INVERT_RX */
+ {0,89,1,0,1,0,0}, /* DC_NOTCH_EN */
+ {0,90,0,0,1,0,0}, /* IMPLICIT_CRC_EN */
+ {0,90,1,0,3,0,0}, /* IMPLICIT_CODING_RATE */
+ {0,91,0,0,8,0,0}, /* IMPLICIT_PAYLOAD_LENGHT */
+ {0,92,0,0,8,0,29}, /* FREQ_TO_TIME_INVERT */
+ {0,93,0,0,6,0,9}, /* FREQ_TO_TIME_DRIFT */
+ {0,94,0,0,2,0,2}, /* PAYLOAD_FINE_TIMING_GAIN */
+ {0,94,2,0,2,0,1}, /* PREAMBLE_FINE_TIMING_GAIN */
+ {0,94,4,0,2,0,0}, /* TRACKING_INTEGRAL */
+ {0,95,0,0,4,0,1}, /* FRAME_SYNCH_PEAK1_POS */
+ {0,95,4,0,4,0,2}, /* FRAME_SYNCH_PEAK2_POS */
+ {0,96,0,0,16,0,10}, /* PREAMBLE_SYMB1_NB */
+ {0,98,0,0,1,0,1}, /* FRAME_SYNCH_GAIN */
+ {0,98,1,0,1,0,1}, /* SYNCH_DETECT_TH */
+ {0,99,0,0,4,0,8}, /* LLR_SCALE */
+ {0,99,4,0,2,0,2}, /* SNR_AVG_CST */
+ {0,100,0,0,7,0,0}, /* PPM_OFFSET */
+ {0,101,0,0,8,0,255}, /* MAX_PAYLOAD_LEN */
+ {0,102,0,0,1,0,1}, /* ONLY_CRC_EN */
+ {0,103,0,0,8,0,0}, /* ZERO_PAD */
+ {0,104,0,0,4,0,8}, /* DEC_GAIN_OFFSET */
+ {0,104,4,0,4,0,7}, /* CHAN_GAIN_OFFSET */
+ {0,105,0,0,1,0,1}, /* FORCE_HOST_REG_CTRL */
+ {0,105,1,0,1,0,1}, /* FORCE_HOST_RADIO_CTRL */
+ {0,105,2,0,1,0,1}, /* FORCE_HOST_FE_CTRL */
+ {0,105,3,0,1,0,1}, /* FORCE_DEC_FILTER_GAIN */
+ {0,106,0,0,1,0,1}, /* MCU_RST_0 */
+ {0,106,1,0,1,0,1}, /* MCU_RST_1 */
+ {0,106,2,0,1,0,0}, /* MCU_SELECT_MUX_0 */
+ {0,106,3,0,1,0,0}, /* MCU_SELECT_MUX_1 */
+ {0,106,4,0,1,1,0}, /* MCU_CORRUPTION_DETECTED_0 */
+ {0,106,5,0,1,1,0}, /* MCU_CORRUPTION_DETECTED_1 */
+ {0,106,6,0,1,0,0}, /* MCU_SELECT_EDGE_0 */
+ {0,106,7,0,1,0,0}, /* MCU_SELECT_EDGE_1 */
+ {0,107,0,0,8,0,1}, /* CHANN_SELECT_RSSI */
+ {0,108,0,0,8,0,32}, /* RSSI_BB_DEFAULT_VALUE */
+ {0,109,0,0,8,0,100}, /* RSSI_DEC_DEFAULT_VALUE */
+ {0,110,0,0,8,0,100}, /* RSSI_CHANN_DEFAULT_VALUE */
+ {0,111,0,0,5,0,7}, /* RSSI_BB_FILTER_ALPHA */
+ {0,112,0,0,5,0,5}, /* RSSI_DEC_FILTER_ALPHA */
+ {0,113,0,0,5,0,8}, /* RSSI_CHANN_FILTER_ALPHA */
+ {0,114,0,0,6,0,0}, /* IQ_MISMATCH_A_AMP_COEFF */
+ {0,115,0,0,6,0,0}, /* IQ_MISMATCH_A_PHI_COEFF */
+ {0,116,0,0,6,0,0}, /* IQ_MISMATCH_B_AMP_COEFF */
+ {0,116,6,0,1,0,0}, /* IQ_MISMATCH_B_SEL_I */
+ {0,117,0,0,6,0,0}, /* IQ_MISMATCH_B_PHI_COEFF */
+ {1,33,0,0,1,0,0}, /* TX_TRIG_IMMEDIATE */
+ {1,33,1,0,1,0,0}, /* TX_TRIG_DELAYED */
+ {1,33,2,0,1,0,0}, /* TX_TRIG_GPS */
+ {1,34,0,0,16,0,0}, /* TX_START_DELAY */
+ {1,36,0,0,4,0,1}, /* TX_FRAME_SYNCH_PEAK1_POS */
+ {1,36,4,0,4,0,2}, /* TX_FRAME_SYNCH_PEAK2_POS */
+ {1,39,0,0,8,0,0}, /* TX_OFFSET_I */
+ {1,40,0,0,8,0,0}, /* TX_OFFSET_Q */
+ {1,41,0,0,1,0,0}, /* TX_MODE */
+ {1,41,1,0,4,0,0}, /* TX_ZERO_PAD */
+ {1,41,5,0,1,0,0}, /* TX_EDGE_SELECT */
+ {1,42,0,0,2,0,0}, /* TX_GAIN */
+ {1,42,2,0,3,0,0}, /* TX_CHIRP_LOW_PASS */
+ {1,42,5,0,2,0,0}, /* TX_FCC_WIDEBAND */
+ {1,42,7,0,1,0,1}, /* TX_SWAP_IQ */
+ {1,43,0,0,1,0,0}, /* MBWSSF_IMPLICIT_HEADER */
+ {1,43,1,0,1,0,0}, /* MBWSSF_IMPLICIT_CRC_EN */
+ {1,43,2,0,3,0,0}, /* MBWSSF_IMPLICIT_CODING_RATE */
+ {1,44,0,0,8,0,0}, /* MBWSSF_IMPLICIT_PAYLOAD_LENGHT */
+ {1,45,0,0,1,0,1}, /* MBWSSF_AGC_FREEZE_ON_DETECT */
+ {1,46,0,0,4,0,1}, /* MBWSSF_FRAME_SYNCH_PEAK1_POS */
+ {1,46,4,0,4,0,2}, /* MBWSSF_FRAME_SYNCH_PEAK2_POS */
+ {1,47,0,0,16,0,10}, /* MBWSSF_PREAMBLE_SYMB1_NB */
+ {1,49,0,0,1,0,1}, /* MBWSSF_FRAME_SYNCH_GAIN */
+ {1,49,1,0,1,0,1}, /* MBWSSF_SYNCH_DETECT_TH */
+ {1,50,0,0,8,0,10}, /* MBWSSF_DETECT_MIN_SINGLE_PEAK */
+ {1,51,0,0,3,0,3}, /* MBWSSF_DETECT_TRIG_SAME_PEAK_NB */
+ {1,52,0,0,8,0,29}, /* MBWSSF_FREQ_TO_TIME_INVERT */
+ {1,53,0,0,6,0,36}, /* MBWSSF_FREQ_TO_TIME_DRIFT */
+ {1,54,0,0,12,0,0}, /* MBWSSF_PPM_CORRECTION */
+ {1,56,0,0,2,0,2}, /* MBWSSF_PAYLOAD_FINE_TIMING_GAIN */
+ {1,56,2,0,2,0,1}, /* MBWSSF_PREAMBLE_FINE_TIMING_GAIN */
+ {1,56,4,0,2,0,0}, /* MBWSSF_TRACKING_INTEGRAL */
+ {1,57,0,0,8,0,0}, /* MBWSSF_ZERO_PAD */
+ {1,58,0,0,2,0,0}, /* MBWSSF_MODEM_BW */
+ {1,58,2,0,1,0,0}, /* MBWSSF_RADIO_SELECT */
+ {1,58,3,0,1,0,1}, /* MBWSSF_RX_CHIRP_INVERT */
+ {1,59,0,0,4,0,8}, /* MBWSSF_LLR_SCALE */
+ {1,59,4,0,2,0,3}, /* MBWSSF_SNR_AVG_CST */
+ {1,59,6,0,1,0,0}, /* MBWSSF_PPM_OFFSET */
+ {1,60,0,0,4,0,7}, /* MBWSSF_RATE_SF */
+ {1,60,4,0,1,0,1}, /* MBWSSF_ONLY_CRC_EN */
+ {1,61,0,0,8,0,255}, /* MBWSSF_MAX_PAYLOAD_LEN */
+ {1,62,0,0,8,1,0}, /* TX_STATUS */
+ {2,33,0,0,8,0,0}, /* SPI_RADIO_A__DATA */
+ {2,34,0,0,8,1,0}, /* SPI_RADIO_A__DATA_READBACK */
+ {2,35,0,0,14,0,0}, /* SPI_RADIO_A__ADDR */
+ {2,37,0,0,1,0,0}, /* SPI_RADIO_A__CS */
+ {2,38,0,0,8,0,0}, /* SPI_RADIO_B__DATA */
+ {2,39,0,0,8,1,0}, /* SPI_RADIO_B__DATA_READBACK */
+ {2,40,0,0,14,0,0}, /* SPI_RADIO_B__ADDR */
+ {2,42,0,0,1,0,0}, /* SPI_RADIO_B__CS */
+ {2,43,0,0,1,0,0}, /* RADIO_A_EN */
+ {2,43,1,0,1,0,0}, /* RADIO_B_EN */
+ {2,43,2,0,1,0,1}, /* RADIO_RST */
+ {2,43,3,0,1,0,0}, /* LNA_A_EN */
+ {2,43,4,0,1,0,0}, /* PA_A_EN */
+ {2,43,5,0,1,0,0}, /* LNA_B_EN */
+ {2,43,6,0,1,0,0}, /* PA_B_EN */
+ {2,44,0,0,2,0,0}, /* PA_GAIN */
+ {2,45,0,0,4,0,2}, /* LNA_A_CTRL_LUT */
+ {2,45,4,0,4,0,4}, /* PA_A_CTRL_LUT */
+ {2,46,0,0,4,0,2}, /* LNA_B_CTRL_LUT */
+ {2,46,4,0,4,0,4}, /* PA_B_CTRL_LUT */
+ {2,47,0,0,5,0,0}, /* CAPTURE_SOURCE */
+ {2,47,5,0,1,0,0}, /* CAPTURE_START */
+ {2,47,6,0,1,0,0}, /* CAPTURE_FORCE_TRIGGER */
+ {2,47,7,0,1,0,0}, /* CAPTURE_WRAP */
+ {2,48,0,0,16,0,0}, /* CAPTURE_PERIOD */
+ {2,50,0,0,3,0,3}, /* LED_REG */
+ {2,51,0,0,8,1,0}, /* MODEM_STATUS */
+ {2,52,0,0,8,1,0}, /* VALID_HEADER_COUNTER_0 */
+ {2,54,0,0,8,1,0}, /* VALID_PACKET_COUNTER_0 */
+ {2,56,0,0,8,1,0}, /* VALID_HEADER_COUNTER_MBWSSF */
+ {2,57,0,0,8,1,0}, /* VALID_HEADER_COUNTER_FSK */
+ {2,58,0,0,8,1,0}, /* VALID_PACKET_COUNTER_MBWSSF */
+ {2,59,0,0,8,1,0}, /* VALID_PACKET_COUNTER_FSK */
+ {2,60,0,0,8,1,0}, /* CHANN_RSSI */
+ {2,61,0,0,8,1,0}, /* BB_RSSI */
+ {2,62,0,0,8,1,0}, /* DEC_RSSI */
+ {2,63,0,0,8,1,0}, /* DBG_MCU_DATA */
+ {2,64,0,0,8,1,0}, /* DBG_ARB_MCU_RAM_DATA */
+ {2,65,0,0,8,1,0}, /* DBG_AGC_MCU_RAM_DATA */
+ {2,66,0,0,16,1,0}, /* NEXT_PACKET_CNT */
+ {2,68,0,0,16,1,0}, /* ADDR_CAPTURE_COUNT */
+ {2,70,0,0,32,1,0}, /* TIMESTAMP */
+ {2,74,0,0,4,1,0}, /* DBG_CHANN0_GAIN */
+ {2,74,4,0,4,1,0}, /* DBG_CHANN1_GAIN */
+ {2,75,0,0,4,1,0}, /* DBG_CHANN2_GAIN */
+ {2,75,4,0,4,1,0}, /* DBG_CHANN3_GAIN */
+ {2,76,0,0,4,1,0}, /* DBG_CHANN4_GAIN */
+ {2,76,4,0,4,1,0}, /* DBG_CHANN5_GAIN */
+ {2,77,0,0,4,1,0}, /* DBG_CHANN6_GAIN */
+ {2,77,4,0,4,1,0}, /* DBG_CHANN7_GAIN */
+ {2,78,0,0,4,1,0}, /* DBG_DEC_FILT_GAIN */
+ {2,79,0,0,3,1,0}, /* SPI_DATA_FIFO_PTR */
+ {2,79,3,0,3,1,0}, /* PACKET_DATA_FIFO_PTR */
+ {2,80,0,0,8,0,0}, /* DBG_ARB_MCU_RAM_ADDR */
+ {2,81,0,0,8,0,0}, /* DBG_AGC_MCU_RAM_ADDR */
+ {2,82,0,0,1,0,0}, /* SPI_MASTER_CHIP_SELECT_POLARITY */
+ {2,82,1,0,1,0,0}, /* SPI_MASTER_CPOL */
+ {2,82,2,0,1,0,0}, /* SPI_MASTER_CPHA */
+ {2,83,0,0,1,0,0}, /* SIG_GEN_ANALYSER_MUX_SEL */
+ {2,84,0,0,1,0,0}, /* SIG_GEN_EN */
+ {2,84,1,0,1,0,0}, /* SIG_ANALYSER_EN */
+ {2,84,2,0,2,0,0}, /* SIG_ANALYSER_AVG_LEN */
+ {2,84,4,0,3,0,0}, /* SIG_ANALYSER_PRECISION */
+ {2,84,7,0,1,1,0}, /* SIG_ANALYSER_VALID_OUT */
+ {2,85,0,0,8,0,0}, /* SIG_GEN_FREQ */
+ {2,86,0,0,8,0,0}, /* SIG_ANALYSER_FREQ */
+ {2,87,0,0,8,1,0}, /* SIG_ANALYSER_I_OUT */
+ {2,88,0,0,8,1,0}, /* SIG_ANALYSER_Q_OUT */
+ {2,89,0,0,1,0,0}, /* GPS_EN */
+ {2,89,1,0,1,0,1}, /* GPS_POL */
+ {2,90,0,1,8,0,0}, /* SW_TEST_REG1 */
+ {2,91,2,1,6,0,0}, /* SW_TEST_REG2 */
+ {2,92,0,1,16,0,0} /* SW_TEST_REG3 */
};
/* -------------------------------------------------------------------------- */
@@ -469,9 +474,9 @@ int lgw_reg_check(FILE *f) {
lgw_reg_r(i, &read_value);
ptr = (read_value == r.dflt) ? ok_msg : notok_msg;
if (r.sign == true)
- fprintf(f, "%s reg: %s read: %d (%x) default: %d (%x)\n", ptr, r.name, read_value, read_value, r.dflt, r.dflt);
+ fprintf(f, "%s reg number %d read: %d (%x) default: %d (%x)\n", ptr, i, read_value, read_value, r.dflt, r.dflt);
else
- fprintf(f, "%s reg: %s read: %u (%x) default: %u (%x)\n", ptr, r.name, read_value, read_value, r.dflt, r.dflt);
+ fprintf(f, "%s reg number %d read: %u (%x) default: %u (%x)\n", ptr, i, read_value, read_value, r.dflt, r.dflt);
}
fprintf(f, "End of register verification\n");