summaryrefslogtreecommitdiffstats
path: root/api
diff options
context:
space:
mode:
authorOliver Schinagl <oliver@schinagl.nl>2011-06-28 13:40:27 (GMT)
committerOliver Schinagl <oliver@schinagl.nl>2011-06-28 13:40:27 (GMT)
commitfecdd9457cd3912c2b89aff1f99db0ba669af93b (patch)
tree34bbc7387ded825e303c3117b6c6da2cbe1fd771 /api
downloadAF903x_SRC-fecdd9457cd3912c2b89aff1f99db0ba669af93b.zip
AF903x_SRC-fecdd9457cd3912c2b89aff1f99db0ba669af93b.tar.gz
AF903x_SRC-fecdd9457cd3912c2b89aff1f99db0ba669af93b.tar.bz2
Initial checkin' of sourceball extracted from installer.
DRIVER_RELEASE_VERSION : v9.08.14.1 FW_RELEASE_VERSION : v8_8_63_0 API_RELEASE_VERSION : 200.20090402.0 Not sure what those version numbers relate to. Might be Driver, the actual driver (src) FW, the little bin file that is only a keymapping for the remote API, all the tuners or so from /api? No support for Asus U3100 mini (yet).
Diffstat (limited to 'api')
-rw-r--r--api/Afa_AF9007.c69
-rw-r--r--api/Afa_AF9007.h60
-rw-r--r--api/Afa_AF9007_Script.h92
-rw-r--r--api/Afa_PEACOCK.c394
-rw-r--r--api/Afa_PEACOCK.h60
-rw-r--r--api/Afa_Peacock_Script.h110
-rw-r--r--api/Afa_Pictor_Script.h78
-rw-r--r--api/Common.h286
-rw-r--r--api/Elonics_E4000.c108
-rw-r--r--api/Elonics_E4000.h60
-rw-r--r--api/Elonics_E4000_Script.h171
-rw-r--r--api/FCI_FC2580.c119
-rw-r--r--api/FCI_FC2580.h62
-rw-r--r--api/FCI_FC2580_Script.h61
-rw-r--r--api/Fitipower_FC0011.c453
-rw-r--r--api/Fitipower_FC0011.h61
-rw-r--r--api/Fitipower_FC0011_Script.h83
-rw-r--r--api/Fitipower_FC0012.c346
-rw-r--r--api/Fitipower_FC0012.h60
-rw-r--r--api/Fitipower_FC0012_Script.h77
-rw-r--r--api/Freescale_MC44CD02.c307
-rw-r--r--api/Freescale_MC44CD02.h61
-rw-r--r--api/Freescale_MC44CD02_Script.h129
-rw-r--r--api/ITD30x0.c703
-rw-r--r--api/ITD30x0.h254
-rw-r--r--api/Infineon_TUA6039.c248
-rw-r--r--api/Infineon_TUA6039.h60
-rw-r--r--api/Infineon_TUA6039_Script.h107
-rw-r--r--api/Infineon_TUA8010.c309
-rw-r--r--api/Infineon_TUA8010.h60
-rw-r--r--api/Infineon_TUA8010_Script.h64
-rw-r--r--api/Infineon_TUA9001.c283
-rw-r--r--api/Infineon_TUA9001.h61
-rw-r--r--api/Infineon_TUA9001_Script.h65
-rw-r--r--api/Integrant_ITD3020.c106
-rw-r--r--api/Integrant_ITD3020.h60
-rw-r--r--api/Integrant_ITD3020_Script.h92
-rw-r--r--api/MXL5005.c2783
-rw-r--r--api/MXL5005.h68
-rw-r--r--api/MXL5005_Initialize.c1259
-rw-r--r--api/Maxlinear_MXL5005.c325
-rw-r--r--api/Maxlinear_MXL5005.h64
-rw-r--r--api/Maxlinear_MXL5005_Script.h88
-rw-r--r--api/Microtune_MT2260B0.c115
-rw-r--r--api/Microtune_MT2260B0.h66
-rw-r--r--api/Microtune_MT2260B0_Script.h130
-rw-r--r--api/Microtune_MT2266.c178
-rw-r--r--api/Microtune_MT2266.h71
-rw-r--r--api/Microtune_MT2266_Script.h89
-rw-r--r--api/Microtune_MT2266_TA4029CTC_Script.h89
-rw-r--r--api/Panasonic_ENV77H11D5.c114
-rw-r--r--api/Panasonic_ENV77H11D5.h60
-rw-r--r--api/Panasonic_ENV77H11D5_Script.h128
-rw-r--r--api/Peacock.c2
-rw-r--r--api/Peacock.h0
-rw-r--r--api/Philips_FQD1218ME_MK5.c146
-rw-r--r--api/Philips_FQD1218ME_MK5.h60
-rw-r--r--api/Philips_FQD1218ME_MK5_Script.h92
-rw-r--r--api/Philips_TD1316AFIHP.c136
-rw-r--r--api/Philips_TD1316AFIHP.h60
-rw-r--r--api/Philips_TD1316AFIHP_Script.h78
-rw-r--r--api/Philips_TD1316_Script.h78
-rw-r--r--api/Philips_TDA18271.c139
-rw-r--r--api/Philips_TDA18271.h60
-rw-r--r--api/Philips_TDA18271_C2.c128
-rw-r--r--api/Philips_TDA18271_C2.h42
-rw-r--r--api/Philips_TDA18271_C2_Askey.c128
-rw-r--r--api/Philips_TDA18271_C2_Askey.h42
-rw-r--r--api/Philips_TDA18271_C2_Askey_Script.h58
-rw-r--r--api/Philips_TDA18271_C2_Script.h58
-rw-r--r--api/Philips_TDA18271_Script.h57
-rw-r--r--api/Philips_TDA18291HN.c166
-rw-r--r--api/Philips_TDA18291HN.h60
-rw-r--r--api/Philips_TDA18291HN_Script.h84
-rw-r--r--api/TDA18271.c2933
-rw-r--r--api/TDA18271.h67
-rw-r--r--api/TDA18271Local.h650
-rw-r--r--api/TDA18271StaticInstance_C2.h1670
-rw-r--r--api/TDA18271StaticInstance_C2_Askey.h1668
-rw-r--r--api/TDA18271_C2.c3599
-rw-r--r--api/TDA18271_C2.h177
-rw-r--r--api/TDA18271_C2_Askey.c3637
-rw-r--r--api/TDA18271_C2_Askey.h177
-rw-r--r--api/TDA18271local_C2.h891
-rw-r--r--api/TDA18271local_C2_Askey.h891
-rw-r--r--api/TDA18291.c1315
-rw-r--r--api/TDA18291.h74
-rw-r--r--api/TDA18291local.h347
-rw-r--r--api/Xceive_XC3028L.c180
-rw-r--r--api/Xceive_XC3028L.h60
-rw-r--r--api/Xceive_XC3028L_Script.h58
-rw-r--r--api/Xceive_XC4000.c213
-rw-r--r--api/Xceive_XC4000.h60
-rw-r--r--api/Xceive_XC4000_Script.h58
-rw-r--r--api/cmd.c990
-rw-r--r--api/cmd.h209
-rw-r--r--api/demodulator.c462
-rw-r--r--api/demodulator.h1305
-rw-r--r--api/demodulatorextend.c750
-rw-r--r--api/demodulatorextend.h1406
-rw-r--r--api/driver_tua8010.c366
-rw-r--r--api/driver_tua8010.h114
-rw-r--r--api/driver_tua8010_NeededFunctions.h98
-rw-r--r--api/driver_tua9001.c409
-rw-r--r--api/driver_tua9001.h112
-rw-r--r--api/driver_tua9001_NeededFunctions.h77
-rw-r--r--api/e4000.c859
-rw-r--r--api/e4000.h15
-rw-r--r--api/error.h147
-rw-r--r--api/fc2580.c451
-rw-r--r--api/fc2580.h191
-rw-r--r--api/firmware.h10713
-rw-r--r--api/i2c_driver.c65
-rw-r--r--api/i2c_driver.h21
-rw-r--r--api/inttype.h40
-rw-r--r--api/iocontrol.h738
-rw-r--r--api/mt2260.c1992
-rw-r--r--api/mt2260.h611
-rw-r--r--api/mt2260_userdef.c221
-rw-r--r--api/mt2260_userdef.h250
-rw-r--r--api/mt2266.c2368
-rw-r--r--api/mt2266.h780
-rw-r--r--api/mt2266_userdef.c545
-rw-r--r--api/mt2266_userdef.h288
-rw-r--r--api/mt_errordef.h143
-rw-r--r--api/register.h13519
-rw-r--r--api/standard.c4093
-rw-r--r--api/standard.h1013
-rw-r--r--api/type.h915
-rw-r--r--api/usb2impl.c177
-rw-r--r--api/usb2impl.h38
-rw-r--r--api/user.c142
-rw-r--r--api/user.h122
-rw-r--r--api/variable.h271
-rw-r--r--api/version.h3
-rw-r--r--api/xc3028_channelmaps.h2601
-rw-r--r--api/xc3028_control.c549
-rw-r--r--api/xc3028_control.h180
-rw-r--r--api/xc3028_firmwares.h16191
-rw-r--r--api/xc3028_scodes.h664
-rw-r--r--api/xc4000_channelmaps.h4028
-rw-r--r--api/xc4000_control.c347
-rw-r--r--api/xc4000_control.h145
-rw-r--r--api/xc4000_firmwares.h2993
-rw-r--r--api/xc4000_scodes.h906
-rw-r--r--api/xc4000_standards.h127
146 files changed, 107565 insertions, 0 deletions
diff --git a/api/Afa_AF9007.c b/api/Afa_AF9007.c
new file mode 100644
index 0000000..140f4cb
--- /dev/null
+++ b/api/Afa_AF9007.c
@@ -0,0 +1,69 @@
+/**
+ * @(#)Afa_AF9007.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> // for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Afa_AF9007_Script.h"
+
+
+Dword AF9007_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword AF9007_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword AF9007_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ return (Error_NO_ERROR);
+}
+
+
+TunerDescription tuner_AF9007 = {
+ AF9007_open,
+ AF9007_close,
+ AF9007_set,
+ AF9007_scripts,
+ AF9007_scriptSets,
+ 0, /** tuner i2c address */
+ 0, /** length of tuner register address */
+ 36167000, /** tuner if */
+ True, /** spectrum inverse */
+ 0xFF, /** tuner id */
+};
diff --git a/api/Afa_AF9007.h b/api/Afa_AF9007.h
new file mode 100644
index 0000000..83c1713
--- /dev/null
+++ b/api/Afa_AF9007.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Afa_AF9007.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Afa_AF9007_H__
+#define __Afa_AF9007_H__
+
+
+#define AF9007_VER_MAJOR 2
+#define AF9007_VER_MINOR 0
+
+extern TunerDescription tuner_AF9007;
+
+
+/**
+ *
+ */
+Dword AF9007_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword AF9007_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword AF9007_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Afa_AF9007_Script.h b/api/Afa_AF9007_Script.h
new file mode 100644
index 0000000..2a422a7
--- /dev/null
+++ b/api/Afa_AF9007_Script.h
@@ -0,0 +1,92 @@
+/** script version */
+
+#define AF9007_ADDRESS 0xC0
+#define AF9007_SCRIPTSETLENGTH 0x00000001
+
+
+Word AF9007_scriptSets[] = {
+ 0x50
+};
+
+ValueSet AF9007_scripts[] = {
+ {0xF600, 0x5},
+ {0xF601, 0x8},
+ {0xF602, 0xb},
+ {0xF603, 0x0e},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1f},
+ {0xF1E6, 0x01},
+ {0xF001, 0x00},
+ {0xF005, 0x01},
+ {0xF004, 0x00},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1C},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1C},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF000, 0x01},
+ {0xF047, 0x00},
+ {0xF007, 0x00},
+ {0xF12F, 0x00},
+ {0xF077, 0x00},
+ {0xF00A, 0x1A},
+ {0xF00B, 0x1B},
+ {0xF00C, 0x1A},
+ {0xF00D, 0x1B},
+ {0xF01F, 0x50},
+ {0xF020, 0x00},
+ {0xF029, 0x46},
+ {0xF02A, 0x00},
+ {0xF010, 0xDF},
+ {0xF011, 0x02},
+ {0xF00E, 0x44},
+ {0xF00F, 0x01},
+ {0xF014, 0xEB},
+ {0xF015, 0x02},
+ {0xF012, 0xF4},
+ {0xF013, 0x01},
+ {0x0066, 0x52},
+ {0xF01B, 0x26},
+ {0xF01C, 0x01},
+ {0xF01D, 0x12},
+ {0xF01E, 0x03},
+ {0xF025, 0xE8},
+ {0xF026, 0x00},
+ {0xF027, 0x5F},
+ {0xF028, 0x03},
+ {0x0044, 0xFF},
+ {0x0045, 0x03},
+ {0x0046, 0xFF},
+ {0x0047, 0x03},
+ {0x0048, 0xFF},
+ {0x0049, 0x03},
+ {0x004a, 0xFF},
+ {0x004b, 0x03},
+ {0x004c, 0xEB},
+ {0x004d, 0x02},
+ {0x0053, 0x68},
+ {0x0054, 0x03},
+ {0x0059, 0x12},
+ {0x005a, 0x03},
+ {0xF02B, 0x00},
+ {0xF02C, 0x01},
+ {0xF03B, 0x9A},
+ {0xF03C, 0x01},
+ {0xF03D, 0x5A},
+ {0xF03E, 0x01},
+ {0xF03F, 0x96},
+ {0xF040, 0x46},
+ {0xF031, 0x0},
+ {0x006b, 0x0A},
+ {0x006c, 0x14},
+ {0x006d, 0x08},
+}; \ No newline at end of file
diff --git a/api/Afa_PEACOCK.c b/api/Afa_PEACOCK.c
new file mode 100644
index 0000000..50fb84d
--- /dev/null
+++ b/api/Afa_PEACOCK.c
@@ -0,0 +1,394 @@
+/**
+ * @(#)Afa_PEACOCK.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Afa_Peacock_Script.h"
+
+
+Dword PEACOCK_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword PEACOCK_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword PEACOCK_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Long ckxtal;
+ Byte l_band;
+ Byte lna_band;
+ Byte lna_cap;
+ Word n_div;
+ Long n;
+ Word m_lo;
+ Word lo_freq;
+ Byte lo_freq_15_10;
+ Byte lo_freq_9_4;
+ Byte lo_freq_3_0;
+ Long i;
+ Byte readTmp;
+ Byte lo_cap;
+ Long lo_cap_min = -1;
+ Long lo_cap_max = -1;
+ Byte lpf_cap = 0x0c;
+ Byte lpf_bw;
+#if 1
+ Byte lna_gain = 7;
+ Byte pgc_gain = 6;
+ Byte pga_gain = 0;
+ Byte ofsi = 0x20;
+ Byte ofsq = 0x20;
+#endif
+ Byte tmp = 0;
+
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ ckxtal = (Long) ganymede->crystalFrequency;
+ if (ckxtal == 0) {
+ error = Error_INVALID_XTAL_FREQ;
+ goto exit;
+ }
+
+
+ /////////////////////////////////////////////////// set debug port
+
+ tmp = 0;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x07, 1, &tmp); // dgb_port 0:off
+ if (error) goto exit;
+
+ /////////////////////////////////////////////////// set frequency
+
+ if (frequency <= 400000) {
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ } else if (frequency > 400000 && frequency <= 440000) {
+ l_band = 0;
+ lna_band = 0;
+ } else if (frequency > 440000 && frequency <= 484000) {
+ l_band = 0;
+ lna_band = 1;
+ } else if (frequency > 484000 && frequency <= 533000) {
+ l_band = 0;
+ lna_band = 2;
+ } else if (frequency > 533000 && frequency <= 587000) {
+ l_band = 0;
+ lna_band = 3;
+ } else if (frequency > 587000 && frequency <= 645000) {
+ l_band = 0;
+ lna_band = 4;
+ } else if (frequency > 645000 && frequency <= 710000) {
+ l_band = 0;
+ lna_band = 5;
+ } else if (frequency > 710000 && frequency <= 782000) {
+ l_band = 0;
+ lna_band = 6;
+ } else if (frequency > 782000 && frequency <= 860000) {
+ l_band = 0;
+ lna_band = 7;
+ } else if (frequency > 860000 && frequency <= 1450000) {
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ } else if (frequency > 1450000 && frequency <= 1492000) {
+ l_band = 1;
+ lna_band = 0;
+ } else if (frequency > 1492000 && frequency <= 1660000) {
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ } else if (frequency > 1660000 && frequency <= 1685000) {
+ l_band = 1;
+ lna_band = 1;
+ } else { // frequency > 1685000
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ }
+
+ // set l_band
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x09, 1, &l_band);
+ if (error) goto exit;
+
+ // set lna_band
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x14, 1, &lna_band);
+ if (error) goto exit;
+
+ switch (lna_band)
+ {
+ case 0:
+ lna_cap = 0;
+ break;
+ case 1:
+ lna_cap = 7;
+ break;
+ case 2:
+ lna_cap = 15;
+ break;
+ case 3:
+ lna_cap = 23;
+ break;
+ case 4:
+ lna_cap = 32;
+ break;
+ case 5:
+ lna_cap = 39;
+ break;
+ case 6:
+ lna_cap = 48;
+ break;
+ case 7:
+ lna_cap = 55;
+ break;
+ }
+
+ // set lna_cap
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x13, 1, &lna_cap);
+ if (error) goto exit;
+
+ if (frequency <= 49000) {
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ } else if (frequency > 49000 && frequency <= 74000) {
+ n_div = 48;
+ n = 0;
+ } else if (frequency > 74000 && frequency <= 111000) {
+ n_div = 32;
+ n = 1;
+ } else if (frequency > 111000 && frequency <= 148000) {
+ n_div = 24;
+ n = 2;
+ } else if (frequency > 148000 && frequency <= 222000) {
+ n_div = 16;
+ n = 3;
+ } else if (frequency > 222000 && frequency <= 296000) {
+ n_div = 12;
+ n = 4;
+ } else if (frequency > 296000 && frequency <= 445000) {
+ n_div = 8;
+ n = 5;
+ } else if (frequency > 445000 && frequency <= 560000) {
+ n_div = 6;
+ n = 6;
+ } else if (frequency > 560000 && frequency <= 890000) {
+ n_div = 4;
+ n = 7;
+ } else if (frequency > 1187000 && frequency <= 1780000) {
+ n_div = 2;
+ n = 0;
+ } else { // frequency >1780000
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ }
+
+ // calculate frequency value
+ m_lo = (Word) (n_div * 32 * frequency / ckxtal);
+ lo_freq = (Word) n << 13;
+ lo_freq += m_lo;
+ lo_freq_15_10 = (lo_freq & (Word) 0xfc00) >> 10;
+ lo_freq_9_4 = (lo_freq & (Word) 0x03f0) >> 4;
+ lo_freq_3_0 = lo_freq & (Word) 0x000f;
+
+ // set lo_freq_15_10
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0d, 1, &lo_freq_15_10);
+ if (error) goto exit;
+
+ // set lo_freq_9_4
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0e, 1, &lo_freq_9_4);
+ if (error) goto exit;
+
+ // set lo_freq_3_0
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0f, 1, &lo_freq_3_0);
+ if (error) goto exit;
+
+ // write
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x3f, 1, &tmp);
+ if (error) goto exit;
+
+ // calculate lo_cap
+ for (i = 0; i < 32; i++) {
+
+ // set 0x10
+ tmp = (Byte) i;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x10, 1, &tmp);
+ if (error) goto exit;
+
+ // write
+ tmp = 0;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x3f, 1, &tmp);
+ if (error) goto exit;
+
+ // read
+ tmp = 0;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x01, 1, &tmp);
+ if (error) goto exit;
+
+ // get 0x02
+ error = Standard_readTunerRegisters (demodulator, chip, 0x02, 1, &readTmp);
+ if (error) goto exit;
+
+
+
+ readTmp = readTmp >> 6 & 0x03;
+
+ if (readTmp == 0 && lo_cap_min == -1)
+ lo_cap_min = i;
+
+ if (readTmp != 0 && lo_cap_min != -1 && lo_cap_max == -1)
+ lo_cap_max = i - 1;
+ }
+
+ if (lo_cap_min != -1 && lo_cap_max == -1)
+ lo_cap = (Byte) lo_cap_min;
+ else if (lo_cap_min == -1 && lo_cap_max == -1 && readTmp == 1)
+ lo_cap = 0;
+ else if (lo_cap_min == -1 && lo_cap_max == -1 && readTmp == 2)
+ lo_cap = 31;
+ else
+ lo_cap = (Byte) (lo_cap_min + lo_cap_max) / 2;
+
+ // set lo_cap
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x10, 1, &lo_cap);
+ if (error) goto exit;
+
+ // set lpf_cap
+ tmp = lpf_cap;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x18, 1, &tmp);
+ if (error) goto exit;
+
+ // write
+ tmp = 0;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x3f, 1, &tmp);
+ if (error) goto exit;
+
+
+ /////////////////////////////////////////////////// select BW
+
+ if (bandwidth == 5000)
+ lpf_bw = 0;
+ else if (bandwidth == 5500)
+ lpf_bw = 1;
+ else if (bandwidth == 6000)
+ lpf_bw = 2;
+ else if (bandwidth == 6500)
+ lpf_bw = 3;
+ else if (bandwidth == 7000)
+ lpf_bw = 4;
+ else if (bandwidth == 7500)
+ lpf_bw = 5;
+ else if (bandwidth == 8000)
+ lpf_bw = 6;
+ else if (bandwidth == 8500)
+ lpf_bw = 7;
+ else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+
+ // set bandwidth
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x19, 1, &lpf_bw);
+ if (error) goto exit;
+
+ // write
+ tmp = 0;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x3f, 1, &tmp);
+ if (error) goto exit;
+
+
+ /////////////////////////////////////////////////// tune gain
+#if 1
+ // set lna_gain
+ tmp = lna_gain;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x12, 1, &tmp);
+ if (error) goto exit;
+
+ // set pgc_gain
+ tmp = pgc_gain;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x17, 1, &tmp);
+ if (error) goto exit;
+
+ // set pga_gain
+ tmp = pga_gain;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x15, 1, &tmp);
+ if (error) goto exit;
+
+ // set 0x22
+ tmp = 0x02;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x22, 1, &tmp);
+ if (error) goto exit;
+
+ // set ofsi
+ tmp = ofsi;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x1a, 1, &tmp);
+ if (error) goto exit;
+
+ // set ofsq
+ tmp = ofsq;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x1b, 1, &tmp);
+ if (error) goto exit;
+
+ // set 1c
+ tmp = 0x2f;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x1c, 1, &tmp);
+ if (error) goto exit;
+
+ // write
+ tmp = 0;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x3f, 1, &tmp);
+ if (error) goto exit;
+#endif
+
+exit:
+
+ return error;
+}
+
+
+TunerDescription tuner_PEACOCK = {
+ PEACOCK_open,
+ PEACOCK_close,
+ PEACOCK_set,
+ PEACOCK_scripts,
+ PEACOCK_scriptSets,
+ PEACOCK_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ True, /** spectrum inverse */
+ 0x25, /** tuner id */
+};
diff --git a/api/Afa_PEACOCK.h b/api/Afa_PEACOCK.h
new file mode 100644
index 0000000..84ca6c8
--- /dev/null
+++ b/api/Afa_PEACOCK.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Afa_PEACOCK.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Afa_PEACOCK_H__
+#define __Afa_PEACOCK_H__
+
+
+#define PEACOCK_VER_MAJOR 2
+#define PEACOCK_VER_MINOR 0
+
+extern TunerDescription tuner_PEACOCK;
+
+
+/**
+ *
+ */
+Dword PEACOCK_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword PEACOCK_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword PEACOCK_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Afa_Peacock_Script.h b/api/Afa_Peacock_Script.h
new file mode 100644
index 0000000..5321f06
--- /dev/null
+++ b/api/Afa_Peacock_Script.h
@@ -0,0 +1,110 @@
+/** script version */
+
+#define PEACOCK_ADDRESS 0x9E
+#define PEACOCK_SCRIPTSETLENGTH 0x00000001
+
+
+Word PEACOCK_scriptSets[] = {
+ 0x62
+};
+
+ValueSet PEACOCK_scripts[] = {
+ {0xF600, 0x05},
+ {0xF601, 0x08},
+ {0xF602, 0x0B},
+ {0xF603, 0x0E},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x20},
+ {0xF80F, 0x40},
+ {0xF810, 0x54},
+ {0xF811, 0x5a},
+ {0x009f, 0xCF},
+ {0x009e, 0xE1},
+ {0x00a5, 0x01},
+ {0x00a2, 0x01},
+ {0x00a3, 0x32},
+ {0xF1E6, 0x01},
+ {0xF00A, 0x19},
+ {0xF00B, 0x1A},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF078, 0x00},
+ {0xF047, 0x01},
+ {0xF007, 0x01},
+ {0xF12F, 0x01},
+ {0xF077, 0x01},
+ {0x0079, 0x01},
+ {0x006e, 0x00},
+ {0x006f, 0x00},
+ {0xF01F, 0xA0},
+ {0xF020, 0x00},
+ {0xF029, 0x8C},
+ {0xF02A, 0x00},
+ {0xF010, 0xE3},
+ {0xF011, 0x03},
+ {0xF00E, 0xFF},
+ {0xF00F, 0x01},
+ {0xF014, 0x58},
+ {0xF015, 0x03},
+ {0xF012, 0xFF},
+ {0xF013, 0x01},
+ {0xF01B, 0xEF},
+ {0xF01C, 0x01},
+ {0xF01D, 0x68},
+ {0xF01E, 0x03},
+ {0xF025, 0xEF},
+ {0xF026, 0x01},
+ {0xF027, 0x68},
+ {0xF028, 0x03},
+ {0x0044, 0xFF},
+ {0x0045, 0x00},
+ {0x0046, 0xE0},
+ {0x0047, 0x00},
+ {0x0048, 0x70},
+ {0x0049, 0x00},
+ {0x004a, 0x50},
+ {0x004b, 0x00},
+ {0x004c, 0x58},
+ {0x004d, 0x03},
+ {0x0053, 0x68},
+ {0x0054, 0x03},
+ {0x0059, 0xFF},
+ {0x005a, 0x01},
+ {0x0081, 0xFF},
+ {0x0082, 0x01},
+ {0x0083, 0xEF},
+ {0x0084, 0x01},
+ {0x004f, 0x80},
+ {0x0050, 0x03},
+ {0x0055, 0x90},
+ {0x0056, 0x03},
+ {0x005b, 0xFF},
+ {0x005c, 0x01},
+ {0x0051, 0x8C},
+ {0x0052, 0x03},
+ {0x0057, 0x9C},
+ {0x0058, 0x03},
+ {0x005d, 0xFF},
+ {0x005e, 0x01},
+ {0xF02B, 0x00},
+ {0x0070, 0x00},
+ {0x0066, 0x52},
+ {0x009a, 0xFE},
+ {0x009b, 0xFE},
+ {0x009c, 0x99},
+ {0x009d, 0xFE},
+ {0xF02C, 0x01},
+ {0x006b, 0x0A},
+ {0x006c, 0x14},
+ {0x006d, 0x08},
+}; \ No newline at end of file
diff --git a/api/Afa_Pictor_Script.h b/api/Afa_Pictor_Script.h
new file mode 100644
index 0000000..60a0b71
--- /dev/null
+++ b/api/Afa_Pictor_Script.h
@@ -0,0 +1,78 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Afa_Pictor_Script.h
+*
+* Copyright 2009 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define PICTOR_ADDRESS 0xC0
+#define PICTOR_SCRIPTSETLENGTH 0x00000001
+
+Word Pictor_scriptSets[] = {
+0x32
+};
+
+ValueSet Pictor_scripts[] = {
+ {0x, 0x00},
+ {0x, 0x01},
+ {0x, 0x01},
+ {0x, 0x02},
+ {0x, 0x02},
+ {0x, 0x03},
+ {0x, 0x04},
+ {0x, 0x07},
+ {0x, 0xB0},
+ {0x, 0xE8},
+ {0x0043, 0x00},
+ {0x0046, 0x35},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0068, 0x0A},
+ {0x006a, 0x03},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0075, 0x8C},
+ {0x0076, 0x8C},
+ {0x0077, 0x8C},
+ {0x0078, 0xFF},
+ {0x0079, 0x01},
+ {0x007f, 0x00},
+ {0x0082, 0x12},
+ {0x0083, 0x02},
+ {0x0084, 0x0a},
+ {0x0085, 0x03},
+ {0x0086, 0xC8},
+ {0x0087, 0xB4},
+ {0x0088, 0xE6},
+ {0x0089, 0xCD},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x009b, 0x3C},
+ {0x009c, 0x28},
+ {0x00a4, 0x5A},
+ {0x00b3, 0x02},
+ {0x00b4, 0x32},
+ {0x00b6, 0x14},
+ {0x00c1, 0x00},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0xF01F, 0x8C},
+ {0xF020, 0x00},
+ {0xF029, 0x8C},
+ {0xF02A, 0x00},
+ {0xF077, 0x01},
+
+};
diff --git a/api/Common.h b/api/Common.h
new file mode 100644
index 0000000..ddde613
--- /dev/null
+++ b/api/Common.h
@@ -0,0 +1,286 @@
+#pragma once
+
+typedef unsigned char BYTE; /** At least 1 Byte */
+typedef unsigned short WORD; /** At least 2 Bytes */
+typedef signed short _s16;
+typedef unsigned long DWORD; /** At least 4 Bytes */
+typedef void * HANDLE; /** Pointer to memory location */
+
+#define TUNER_REGS_NUM 104
+#define INITCTRL_NUM 40
+#ifdef _MXL_PRODUCTION
+#define CHCTRL_NUM 39
+#else
+#define CHCTRL_NUM 36
+#endif
+
+#define MXLCTRL_NUM 189
+
+#define MASTER_CONTROL_ADDR 9
+
+/** Enumeration of AGC Mode */
+typedef enum
+{
+ MXL_DUAL_AGC = 0 ,
+ MXL_SINGLE_AGC
+} AGC_Mode ;
+
+/**
+ * Enumeration of Master Control Register State
+ */
+typedef enum
+{
+ MC_LOAD_START = 1 ,
+ MC_POWER_DOWN ,
+ MC_SYNTH_RESET ,
+ MC_SEQ_OFF
+} Master_Control_State ;
+
+/**
+ * Enumeration of MXL5005 Tuner Mode
+ */
+typedef enum
+{
+ MXL_ANALOG_MODE = 0 ,
+ MXL_DIGITAL_MODE
+
+} Tuner_Mode ;
+
+/**
+ * Enumeration of MXL5005 Tuner IF Mode
+ */
+typedef enum
+{
+ MXL_ZERO_IF = 0 ,
+ MXL_LOW_IF
+
+} Tuner_IF_Mode ;
+
+/**
+ * Enumeration of MXL5005 Tuner Clock Out Mode
+ */
+typedef enum
+{
+ MXL_CLOCK_OUT_DISABLE = 0 ,
+ MXL_CLOCK_OUT_ENABLE
+} Tuner_Clock_Out ;
+
+/**
+ * Enumeration of MXL5005 Tuner Div Out Mode
+ */
+typedef enum
+{
+ MXL_DIV_OUT_1 = 0 ,
+ MXL_DIV_OUT_4
+
+} Tuner_Div_Out ;
+
+/**
+ * Enumeration of MXL5005 Tuner Pull-up Cap Select Mode
+ */
+typedef enum
+{
+ MXL_CAP_SEL_DISABLE = 0 ,
+ MXL_CAP_SEL_ENABLE
+
+} Tuner_Cap_Select ;
+
+/**
+ * Enumeration of MXL5005 Tuner RSSI Mode
+ */
+typedef enum
+{
+ MXL_RSSI_DISABLE = 0 ,
+ MXL_RSSI_ENABLE
+
+} Tuner_RSSI ;
+
+/**
+ * Enumeration of MXL5005 Tuner Modulation Type
+ */
+typedef enum
+{
+ MXL_DEFAULT_MODULATION = 0 ,
+ MXL_DVBT,
+ MXL_ATSC,
+ MXL_QAM,
+ MXL_ANALOG_CABLE,
+ MXL_ANALOG_OTA
+
+} Tuner_Modu_Type ;
+
+/**
+ * Enumeration of MXL5005 Tuner Tracking Filter Type
+ */
+typedef enum
+{
+ MXL_TF_DEFAULT = 0 ,
+ MXL_TF_OFF,
+ MXL_TF_C,
+ MXL_TF_C_H,
+ MXL_TF_D,
+ MXL_TF_D_L,
+ MXL_TF_E,
+ MXL_TF_F,
+ MXL_TF_E_2,
+ MXL_TF_E_NA,
+ MXL_TF_G
+
+
+} Tuner_TF_Type ;
+
+/**
+ * MXL5005 Tuner Register Struct
+ */
+typedef struct _TunerReg_struct
+{
+ WORD Reg_Num ; // Tuner Register Address
+ WORD Reg_Val ; // Current sofware programmed value waiting to be writen
+} TunerReg_struct ;
+
+/**
+ * MXL5005 Tuner Control Struct
+ */
+typedef struct _TunerControl_struct {
+ WORD Ctrl_Num ; // Control Number
+ WORD size ; // Number of bits to represent Value
+ WORD addr[25] ; // Array of Tuner Register Address for each bit position
+ WORD bit[25] ; // Array of bit position in Register Address for each bit position
+ WORD val[25] ; // Binary representation of Value
+} TunerControl_struct ;
+
+/**
+ * MXL5005 Tuner Struct
+ */
+typedef struct _Tuner_struct
+{
+ BYTE Mode ; /** 0: Analog Mode ; 1: Digital Mode */
+ BYTE IF_Mode ; /** for Analog Mode, 0: zero IF; 1: low IF */
+ DWORD Chan_Bandwidth ; /** filter channel bandwidth (6, 7, 8) */
+ DWORD IF_OUT ; /** Desired IF Out Frequency */
+ WORD IF_OUT_LOAD ; /** IF Out Load Resistor (200/300 Ohms) */
+ DWORD RF_IN ; /** RF Input Frequency */
+ DWORD Fxtal ; /** XTAL Frequency */
+ BYTE AGC_Mode ; /** AGC Mode 0: Dual AGC; 1: Single AGC */
+ WORD TOP ; /** Value: take over point */
+ BYTE CLOCK_OUT ; /** 0: turn off clock out; 1: turn on clock out */
+ BYTE DIV_OUT ; /** 4MHz or 16MHz */
+ BYTE CAPSELECT ; /** 0: disable On-Chip pulling cap; 1: enable */
+ BYTE EN_RSSI ; /** 0: disable RSSI; 1: enable RSSI */
+ BYTE Mod_Type ; /** Modulation Type; */
+ /** 0 - Default; 1 - DVB-T; 2 - ATSC; 3 - QAM; 4 - Analog Cable */
+ BYTE TF_Type ; // Tracking Filter Type
+ // 0 - Default; 1 - Off; 2 - Type C; 3 - Type C-H
+
+ /** Calculated Settings */
+ DWORD RF_LO ; /** Synth RF LO Frequency */
+ DWORD IF_LO ; /** Synth IF LO Frequency */
+ DWORD TG_LO ; /** Synth TG_LO Frequency */
+
+ /** Pointers to ControlName Arrays */
+ WORD Init_Ctrl_Num ; /** Number of INIT Control Names */
+ TunerControl_struct Init_Ctrl[INITCTRL_NUM] ; /** INIT Control Names Array Pointer */
+ WORD CH_Ctrl_Num ; /** Number of CH Control Names */
+ TunerControl_struct CH_Ctrl[CHCTRL_NUM] ; /** CH Control Name Array Pointer */
+ WORD MXL_Ctrl_Num ; /** Number of MXL Control Names */
+ TunerControl_struct MXL_Ctrl[MXLCTRL_NUM] ; /** MXL Control Name Array Pointer */
+
+ /** Pointer to Tuner Register Array */
+ WORD TunerRegs_Num ; /** Number of Tuner Registers */
+ TunerReg_struct TunerRegs[TUNER_REGS_NUM] ; /** Tuner Register Array Pointer */
+} Tuner_struct ;
+
+
+
+typedef enum
+{
+ /**
+ * Initialization Control Names
+ */
+ DN_IQTN_AMP_CUT = 1 , /** 1 */
+ BB_MODE , /** 2 */
+ BB_BUF , /** 3 */
+ BB_BUF_OA , /** 4 */
+ BB_ALPF_BANDSELECT , /** 5 */
+ BB_IQSWAP , /** 6 */
+ BB_DLPF_BANDSEL , /** 7 */
+ RFSYN_CHP_GAIN , /** 8 */
+ RFSYN_EN_CHP_HIGAIN , /** 9 */
+ AGC_IF , /** 10 */
+ AGC_RF , /** 11 */
+ IF_DIVVAL , /** 12 */
+ IF_VCO_BIAS , /** 13 */
+ CHCAL_INT_MOD_IF , /** 14 */
+ CHCAL_FRAC_MOD_IF , /** 15 */
+ DRV_RES_SEL , /** 16 */
+ I_DRIVER , /** 17 */
+ EN_AAF , /** 18 */
+ EN_3P , /** 19 */
+ EN_AUX_3P , /** 20 */
+ SEL_AAF_BAND , /** 21 */
+ SEQ_ENCLK16_CLK_OUT , /** 22 */
+ SEQ_SEL4_16B , /** 23 */
+ XTAL_CAPSELECT , /** 24 */
+ IF_SEL_DBL , /** 25 */
+ RFSYN_R_DIV , /** 26 */
+ SEQ_EXTSYNTHCALIF , /** 27 */
+ SEQ_EXTDCCAL , /** 28 */
+ AGC_EN_RSSI , /** 29 */
+ RFA_ENCLKRFAGC , /** 30 */
+ RFA_RSSI_REFH , /** 31 */
+ RFA_RSSI_REF , /** 32 */
+ RFA_RSSI_REFL , /** 33 */
+ RFA_FLR , /** 34 */
+ RFA_CEIL , /** 35 */
+ SEQ_EXTIQFSMPULSE , /** 36 */
+ OVERRIDE_1 , /** 37 */
+ BB_INITSTATE_DLPF_TUNE, /** 38 */
+ TG_R_DIV, /** 39 */
+ EN_CHP_LIN_B , /** 40 */
+
+ /**
+ * Channel Change Control Names
+ */
+ DN_POLY = 51 , /** 51 */
+ DN_RFGAIN , /** 52 */
+ DN_CAP_RFLPF , /** 53 */
+ DN_EN_VHFUHFBAR , /** 54 */
+ DN_GAIN_ADJUST , /** 55 */
+ DN_IQTNBUF_AMP , /** 56 */
+ DN_IQTNGNBFBIAS_BST , /** 57 */
+ RFSYN_EN_OUTMUX , /** 58 */
+ RFSYN_SEL_VCO_OUT , /** 59 */
+ RFSYN_SEL_VCO_HI , /** 60 */
+ RFSYN_SEL_DIVM , /** 61 */
+ RFSYN_RF_DIV_BIAS , /** 62 */
+ DN_SEL_FREQ , /** 63 */
+ RFSYN_VCO_BIAS , /** 64 */
+ CHCAL_INT_MOD_RF , /** 65 */
+ CHCAL_FRAC_MOD_RF , /** 66 */
+ RFSYN_LPF_R , /** 67 */
+ CHCAL_EN_INT_RF , /** 68 */
+ TG_LO_DIVVAL , /** 69 */
+ TG_LO_SELVAL , /** 70 */
+ TG_DIV_VAL , /** 71 */
+ TG_VCO_BIAS , /** 72 */
+ SEQ_EXTPOWERUP , /** 73 */
+ OVERRIDE_2 , /** 74 */
+ OVERRIDE_3 , /** 75 */
+ OVERRIDE_4 , /** 76 */
+ SEQ_FSM_PULSE , /** 77 */
+ GPIO_4B, /** 78 */
+ GPIO_3B, /** 79 */
+ GPIO_4, /** 80 */
+ GPIO_3, /** 81 */
+ GPIO_1B, /** 82 */
+ DAC_A_ENABLE , /** 83 */
+ DAC_B_ENABLE , /** 84 */
+ DAC_DIN_A , /** 85 */
+ DAC_DIN_B , /** 86 */
+#ifdef _MXL_PRODUCTION
+ RFSYN_EN_DIV, /** 87 */
+ RFSYN_DIVM, /** 88 */
+ DN_BYPASS_AGC_I2C /** 89 */
+#endif
+
+} MXL5005_ControlName ;
diff --git a/api/Elonics_E4000.c b/api/Elonics_E4000.c
new file mode 100644
index 0000000..949df21
--- /dev/null
+++ b/api/Elonics_E4000.c
@@ -0,0 +1,108 @@
+/**
+ * @(#)Afa_E4000.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "e4000.h"
+#include "Elonics_E4000.h"
+#include "Elonics_E4000_Script.h"
+
+
+Demodulator* E4000_demodulator;
+Byte E4000_chip;
+Word E4000_bandwidth;
+Dword E4000_frequency;
+Dword Ref_clk=26000; //Tuner reference clock frequency (kHz)
+
+Dword E4000_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+ ) {
+ E4000_demodulator = demodulator;
+ E4000_chip = chip;
+
+ E4000_tunerreset ();
+ E4000_Tunerclock();
+ // E4000_filtercal();
+ E4000_Qpeak();
+ E4000_DCoffloop();
+ //E4000_commonmode();
+ E4000_GainControlinit();
+ return (Error_NO_ERROR);
+}
+
+
+Dword E4000_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+ )
+{
+ E4000_demodulator = demodulator;
+ E4000_chip = chip;
+ Dword error = 0;
+ Byte buffer[1];
+ buffer[0] = 0x00;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x00, 1, buffer);
+ //Powers down tuner (will recover if tuner initialisation is subsequently run)
+ return (Error_NO_ERROR);
+}
+
+
+Dword E4000_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ E4000_demodulator = demodulator;
+ E4000_chip = chip;
+ E4000_bandwidth=bandwidth;
+ E4000_frequency=frequency;
+ E4000_Gainmanual();
+ E4000_PLL();
+ E4000_LNAfilter();
+ E4000_IFfilter();
+ E4000_freqband();
+ E4000_DCoffLUT();
+ E4000_Gainauto();
+ Dword error = 0;
+return (Error_NO_ERROR);
+}
+
+
+
+
+TunerDescription tuner_E4000 = {
+ E4000_open,
+ E4000_close,
+ E4000_set,
+ E4000_scripts,
+ E4000_scriptSets,
+ 0xC8, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ False, /** spectrum inverse */
+ 0xFF, /** tuner id */
+};
diff --git a/api/Elonics_E4000.h b/api/Elonics_E4000.h
new file mode 100644
index 0000000..9fcb55c
--- /dev/null
+++ b/api/Elonics_E4000.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Elonics_E4000.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Elonics_E4000_H__
+#define __Elonics_E4000_H__
+
+
+#define E4000_VER_MAJOR 2
+#define E4000_VER_MINOR 0
+
+extern TunerDescription tuner_E4000;
+
+
+/**
+ *
+ */
+Dword E4000_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword E4000_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword E4000_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Elonics_E4000_Script.h b/api/Elonics_E4000_Script.h
new file mode 100644
index 0000000..606735c
--- /dev/null
+++ b/api/Elonics_E4000_Script.h
@@ -0,0 +1,171 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Infineon_E4000_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 0
+#define VERSION2 0
+#define VERSION3 0
+#define VERSION4 1
+
+
+
+#define E4000_ADDRESS 0xC0
+#define E4000_SCRIPTSETLENGTH 0x00000001
+
+Word E4000_scriptSets[] = {
+0x90
+};
+
+ValueSet E4000_scripts[] = {
+ {0x0046, 0x36},
+ {0x0051, 0x01},
+ {0x0057, 0x00},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x006d, 0x00},
+ {0x0070, 0x0A},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0075, 0x3},
+ {0x0076, 0x02},
+ {0x0077, 0x00},
+ {0x0078, 0x01},
+ {0x0079, 0x0},
+ {0x007a, 0x7E},
+ {0x007b, 0x3E},
+ {0x007e, 0x04},
+ {0x0081, 0x0A},
+ {0x008a, 0x01},
+ {0x008e, 0x01},
+ {0x0092, 0x06},
+ {0x0093, 0x00},
+ {0x0094, 0x01},
+ {0x0095, 0x02},
+ {0x0096, 0x01},
+ {0x0098, 0x0A},
+ {0x0099, 0x01},
+ {0x009b, 0x05},
+ {0x009c, 0x80},
+ {0x009f, 0xE1},
+ {0x00a0, 0xCF},
+ {0x00a3, 0x01},
+ {0x00a5, 0x01},
+ {0x00a6, 0x01},
+ {0x00a9, 0x00},
+ {0x00aa, 0x01},
+ {0x00b0, 0x01},
+ {0x00b3, 0x00},
+ {0x00c2, 0x05},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0x00c6, 0x19},
+ {0xF000, 0xF},
+ {0xF007, 0x0},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF01F, 0x82},
+ {0xF020, 0x00},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF029, 0x82},
+ {0xF02A, 0x00},
+ {0xF02B, 0x00},
+ {0xF02C, 0x01},
+ {0xF047, 0x0},
+ {0xF054, 0x0},
+ {0xF055, 0x0},
+ {0xF064, 0x03},
+ {0xF065, 0xF9},
+ {0xF066, 0x03},
+ {0xF067, 0x1},
+ {0xF06F, 0xe0},
+ {0xF070, 0x3},
+ {0xF072, 0x0f},
+ {0xF073, 0x03},
+ {0xF077, 0x01},
+ {0xF078, 0x00},
+ {0xF087, 0x0},
+ {0xF09B, 0x3f},
+ {0xF09C, 0x00},
+ {0xF09D, 0x20},
+ {0xF09E, 0x00},
+ {0xF09F, 0x0c},
+ {0xF0A0, 0x00},
+ {0xF130, 0x04},
+ {0xF132, 0x04},
+ {0xF144, 0x1a},
+ {0xF146, 0x00},
+ {0xF14A, 0x01},
+ {0xF14C, 0x00},
+ {0xF14D, 0x00},
+ {0xF14F, 0x04},
+ {0xF158, 0x7f},
+ {0xF15A, 0x00},
+ {0xF15B, 0x08},
+ {0xF15D, 0x03},
+ {0xF15E, 0x05},
+ {0xF163, 0x05},
+ {0xF166, 0x01},
+ {0xF167, 0x40},
+ {0xF168, 0x0f},
+ {0xF17A, 0x00},
+ {0xF17B, 0x00},
+ {0xF183, 0x01},
+ {0xF19D, 0x40},
+ {0xF1BC, 0x36},
+ {0xF1BD, 0x00},
+ {0xF1CB, 0xA0},
+ {0xF1CC, 0x01},
+ {0xF1E6, 0x00},
+ {0xF204, 0x10},
+ {0xF214, 0x0},
+ {0xF40E, 0x0A},
+ {0xF40F, 0x40},
+ {0xF410, 0x08},
+ {0xF55F, 0x0A},
+ {0xF561, 0x15},
+ {0xF562, 0x20},
+ {0xF5DF, 0xFB},
+ {0xF5E0, 0x00},
+ {0xF5E3, 0x09},
+ {0xF5E4, 0x01},
+ {0xF5E5, 0x01},
+ {0xF5F8, 0x01},
+ {0xF5FD, 0x01},
+ {0xF600, 0x05},
+ {0xF601, 0x08},
+ {0xF602, 0x0B},
+ {0xF603, 0x0E},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1F},
+ {0xF60E, 0x00},
+ {0xF60F, 0x04},
+ {0xF610, 0x32},
+ {0xF611, 0x10},
+ {0xF707, 0xFC},
+ {0xF708, 0x00},
+ {0xF709, 0x37},
+ {0xF70A, 0x00},
+ {0xF78B, 0x01},
+ {0xF80F, 0x40},
+ {0xF810, 0x54},
+ {0xF811, 0x5a},
+ {0xF905, 0x01},
+ {0xFB06, 0x3},
+ {0xFD8B, 0x00},
+};
diff --git a/api/FCI_FC2580.c b/api/FCI_FC2580.c
new file mode 100644
index 0000000..0d03e3c
--- /dev/null
+++ b/api/FCI_FC2580.c
@@ -0,0 +1,119 @@
+/**
+ * @(#)FCI_FC2580.h
+ *
+ * ==========================================================
+ * Version: 2.4
+ * Date: 2009.01.06
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2008.10.27 Tom Lin 1. update tuner code
+ * 2. modify AGC control to internal
+ * 2008.12.02 Tom Lin update tuner code to 1.4
+ * 2009.01.06 Tom Lin modify tuner registers 0x6b & 0x6c
+ * to be 0x0f & 0x11 for better per-
+ * formance
+ * 2009.03.23 Yinding turn on gpiot2 before tuner is opened
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "fc2580.h"
+#include "FCI_FC2580_Script.h"
+
+
+Demodulator* FCI_FC2580_demodulator;
+Byte FCI_FC2580_chip;
+
+
+Dword FC2580_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ FCI_FC2580_demodulator = demodulator;
+ FCI_FC2580_chip = chip;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_on, 1);
+ if (error) goto exit;
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_en, 1);
+ if (error) goto exit;
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_o, 1);
+ if (error) goto exit;
+
+ fc2580_set_init (1);
+
+exit :
+ return (error);
+}
+
+
+Dword FC2580_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword FC2580_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Byte bw;
+
+ FCI_FC2580_demodulator = demodulator;
+ FCI_FC2580_chip = chip;
+
+ if (bandwidth < 5000) {
+ bw = 1;
+ } else if (bandwidth < 6000) {
+ bw = 5;
+ } else if (bandwidth < 7000) {
+ bw = 6;
+ } else if (bandwidth < 8000) {
+ bw = 7;
+ } else if (bandwidth < 9000) {
+ bw = 8;
+ } else {
+ bw = 9;
+ }
+
+ fc2580_set_filter (bw);
+ fc2580_set_freq (frequency);
+
+ return (error);
+}
+
+
+TunerDescription tuner_FC2580 = {
+ FC2580_open, /** Function to open tuner. */
+ FC2580_close, /** Function to close tuner. */
+ FC2580_set, /** Function set frequency. */
+ FC2580_scripts, /** Scripts. */
+ FC2580_scriptSets, /** Length of scripts. */
+ FC2580_ADDRESS, /** The I2C address of tuner. */
+ 1, /** Valid length of tuner register. */
+ 0, /** IF frequency of tuner. */
+ True, /** Spectrum inversion. */
+ 0x32, /** tuner id */
+};
diff --git a/api/FCI_FC2580.h b/api/FCI_FC2580.h
new file mode 100644
index 0000000..a8a03fc
--- /dev/null
+++ b/api/FCI_FC2580.h
@@ -0,0 +1,62 @@
+/**
+ * @(#)FCI_FC2580.h
+ *
+ * ==========================================================
+ * Version: 2.3
+ * Date: 2009.01.06
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __FCI_FC2580_H__
+#define __FCI_FC2580_H__
+
+
+#define FC2580_VER_MAJOR 2
+#define FC2580_VER_MINOR 4
+
+extern TunerDescription tuner_FC2580;
+
+
+/**
+ *
+ */
+Dword FC2580_open (
+ IN Demodulator* demodulator,
+ IN StreamType streamType,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword FC2580_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+
+/**
+ *
+ */
+Dword FC2580_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/FCI_FC2580_Script.h b/api/FCI_FC2580_Script.h
new file mode 100644
index 0000000..9ade74d
--- /dev/null
+++ b/api/FCI_FC2580_Script.h
@@ -0,0 +1,61 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)FCI_FC2580_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define FC2580_ADDRESS 0xAC
+#define FC2580_SCRIPTSETLENGTH 0x00000001
+
+Word FC2580_scriptSets[] = {
+0x21
+};
+
+ValueSet FC2580_scripts[] = {
+ {0x0046, 0x32},
+ {0x0057, 0x01},
+ {0x0058, 0x00},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x05},
+ {0x00b3, 0x01},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0xF007, 0x00},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF00E, 0x00},
+ {0xF00F, 0x02},
+ {0xF010, 0x00},
+ {0xF011, 0x02},
+ {0xF012, 0x00},
+ {0xF013, 0x02},
+ {0xF014, 0x00},
+ {0xF015, 0x02},
+ {0xF01F, 0x96},
+ {0xF020, 0x00},
+ {0xF029, 0x96},
+ {0xF02A, 0x00},
+ {0xF077, 0x01},
+ {0xF1E6, 0x01},
+
+};
diff --git a/api/Fitipower_FC0011.c b/api/Fitipower_FC0011.c
new file mode 100644
index 0000000..90b93cf
--- /dev/null
+++ b/api/Fitipower_FC0011.c
@@ -0,0 +1,453 @@
+/**
+ * @(#)Fitipower_FC0011.cpp
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2009.03.27
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2009.03.27 Yinding update tuner register settings
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> // for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Fitipower_FC0011_Script.h"
+//#include <math.h> // for Linux
+
+
+Dword FC0011_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ /** Control tuner enable */
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_en, reg_top_gpiot2_en_pos, reg_top_gpiot2_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_on, reg_top_gpiot2_on_pos, reg_top_gpiot2_on_len, 1);
+ if (error) goto exit;
+
+ /** Control pin diode **/
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_on, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_en, 1);
+ if (error) goto exit;
+exit:
+ return (error);
+}
+
+
+Dword FC0011_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ /** Control pin diode **/
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_on, 0);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_en, 0);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+Dword FC0011_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ /* It's necessary for setting frequency and bandwidth*/
+ Dword error = Error_NO_ERROR;
+ Word fractional, xin;
+ Byte reg[18], floor_xdiv, fp,fa, vco_cal, vco_select, round_xdiv, rc_cal_forcing;
+ Dword fvco;
+
+ if ( (frequency < 45000) || (frequency > 1000000) )
+ {
+ goto exit;
+ }
+ //=========================== <arios> end
+
+
+ /***********************************************************/
+ /****************** initialization *************************/
+ /***********************************************************/
+
+ /**************add by roger****************/
+ reg[7] = 0x0f;
+ reg[8] = 0x3e;
+ reg[10] = 0xb8;
+ error = Standard_writeTunerRegisters (demodulator, chip, 7, 1, &reg[7]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 8, 1, &reg[8]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 10, 1, &reg[10]);
+ if (error) goto exit;
+ /**************add by roger****************/
+
+ reg[11] = 0x80;
+ reg[13] = 0x04;
+ error = Standard_writeTunerRegisters (demodulator, chip, 11, 1, &reg[11]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 13, 1, &reg[13]);
+ if (error) goto exit;
+
+ /***********************************************************/
+ /****************** start frequency setting ****************/
+ /***********************************************************/
+
+ /* generate the frequency of VCO and VCO_divider */
+
+ if (frequency < 54000)
+ {
+ fvco = frequency * 64;
+ reg[5] = 0x82;
+ }
+ else if (frequency <108000)
+ {
+ fvco = frequency * 32;
+ reg[5] = 0x42;
+ }
+ else if (frequency <216000)
+ {
+ fvco = frequency * 16;
+ reg[5] = 0x22;
+ }
+ else if (frequency <432000)
+ {
+ fvco = frequency * 8;
+ reg[5] = 0x12;
+ }
+ else
+ {
+ fvco = frequency * 4;
+ reg[5] = 0x0a;
+ }
+
+ /* calculate XIN for Fractional PLL with 18 MHz reference frequency */
+ floor_xdiv = (Byte)(fvco/18000);
+ fractional = (Word)(fvco - (floor_xdiv * 18000));
+ fractional = ((fractional<<15)/18000);
+ //if (fractional >=(Word)pow(2.0,14.0)) fractional = fractional + (Word)pow(2.0,15.0); /* sign extension */
+ if (fractional >=(Word)16384) fractional = fractional + (Word)32768;
+ if (fractional == 0) xin = 0;
+ else if (fractional >0 && fractional < 511) xin = 0x200;
+ else if (fractional > 65025) xin = 0xfe00;
+ else xin = fractional;
+
+ reg[3] = (Byte)(xin>>8) ; /* xin with 9 bit resolution */
+ reg[4] = (Byte)(xin & 0x00ff);
+
+ /* calculate fp and fa */
+ if ((fvco-floor_xdiv*18000)>=9000) round_xdiv = floor_xdiv + 1; //round operation
+ else round_xdiv = floor_xdiv;
+ fp = (Byte)(round_xdiv/8);
+ fa = round_xdiv - (fp<<3);
+ if (fa < 2)
+ {
+ fp = fp - 1;
+ fa = fa + 8;
+ }
+
+ if (fp > 31)
+ {
+ fp = fp & 0x1f;
+ fa = fa & 0x0f;
+ }
+
+ if (fa >= fp)
+ {
+ goto exit;
+ }
+ //=========================== <arios> end
+
+ reg[1] = fa;
+ reg[2] = fp;
+
+ /* select bandwidth */
+ if (bandwidth == 8000) reg[6] = 0x0;
+ else if (bandwidth == 7000) reg[6] = 0x40;
+ else reg[6] = 0x80;
+
+ /* Rough VCO selection */
+ if (fvco < 2320000)
+ {
+ vco_select = 0;
+ reg[6] = reg[6] & ~(0x18);
+ }
+ else if (fvco < 3080000)
+ {
+ vco_select = 1;
+ reg[6] = reg[6] & ~(0x18); // reset VCO select
+ reg[6] = reg[6] | 0x10;
+ }
+ else
+ {
+ vco_select = 2;
+ reg[6] = reg[6] & ~(0x18); // reset VCO select
+ reg[6] = reg[6] | 0x08;
+ }
+
+ /* fix clock out */
+ reg[6] = reg[6] | 0x20;
+
+ /** Write freq parameters to tuner */
+ error = Standard_writeTunerRegisters (demodulator, chip, 1, 1, &reg[1]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 2, 1, &reg[2]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 3, 1, &reg[3]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 4, 1, &reg[4]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 5, 1, &reg[5]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+
+ /***********************************************************/
+ /****************** start VCO selction *********************/
+ /***********************************************************/
+
+ /*calibration VCO*/
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal); /* vco_cal restart */
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal); /* vco_cal run */
+ if (error) goto exit;
+
+ /* read vco calibration value vco_cal Note for read_reg need read twice */
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);
+ if (error) goto exit;
+ User_delay (demodulator, 10);
+ error = Standard_readTunerRegisters (demodulator, chip, 14, 1, &vco_cal);
+ if (error) goto exit;
+
+ if ( ((vco_cal) & 0x40) == 0)
+ {
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpiot3_on, 1);
+ if (error) goto exit;
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpiot3_en, 1);
+ if (error) goto exit;
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpiot3_o, 1);
+ if (error) goto exit;
+ User_delay (demodulator, 10);
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpiot3_o, 0);
+ if (error) goto exit;
+ User_delay (demodulator, 10);
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 1, 1, &reg[1]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 2, 1, &reg[2]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 3, 1, &reg[3]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 4, 1, &reg[4]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 5, 1, &reg[5]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 7, 1, &reg[7]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 8, 1, &reg[8]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 10, 1, &reg[10]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 11, 1, &reg[11]);
+ if (error) goto exit;
+ error = Standard_writeTunerRegisters (demodulator, chip, 13, 1, &reg[13]);
+ if (error) goto exit;
+
+ /*calibration VCO*/
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal); /* vco_cal restart */
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal); /* vco_cal run */
+ if (error) goto exit;
+
+ /* read vco calibration value vco_cal Note for read_reg need read twice */
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);
+ if (error) goto exit;
+ User_delay (demodulator, 10);
+ error = Standard_readTunerRegisters (demodulator, chip, 14, 1, &vco_cal);
+ if (error) goto exit;
+ }
+
+ /* vco selection */
+ vco_cal = vco_cal & 0x3f;
+ switch(vco_select) {
+ case 0:
+ if (vco_cal < 0x08)
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x10; /* vco_select = 1; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+
+ /* recalibration */
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/* vco_cal restart */
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/* vco_cal run */
+ if (error) goto exit;
+ break;
+ }
+ else
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x00; /* vco_select = 0; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+ break;
+ }
+ case 1:
+ if (vco_cal < 0x05)
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x08; /* vco_select = 2; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+
+ /* recalibration */
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/* vco_cal restart */
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/* vco_cal run */
+ if (error) goto exit;
+ break;
+ }
+ else if (vco_cal > 0x30)
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x00; /* vco_select = 0; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+
+ /* recalibration */
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/*vco_cal restart*/
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/*vco_cal run*/
+ if (error) goto exit;
+ break;
+ }
+ else
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x10; /* vco_select = 1; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+ break;
+ }
+ default:
+ if (vco_cal > 0x35)
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x10; /* vco_select = 1; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+
+ /* recalibration */
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/* vco_cal restart */
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/* vco_cal run */
+ if (error) goto exit;
+ break;
+ }
+ else
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x08; /* vco_select = 2; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+ break;
+
+ }
+ }
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);
+ if (error) goto exit;
+ User_delay (demodulator, 10);
+ error = Standard_readTunerRegisters (demodulator, chip, 14, 1, &vco_cal);
+ if (error) goto exit;
+
+ reg[16] = 0x0b;
+
+ User_delay (demodulator, 10);
+ error = Standard_readTunerRegisters (demodulator, chip, 13, 1, &reg[13]);
+ if (error) goto exit;
+
+ rc_cal_forcing = reg[13] | 0x10;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 13, 1, &rc_cal_forcing);
+ if (error) goto exit;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 16, 1, &reg[16]);
+ if (error) goto exit;
+
+
+exit:
+ return(error);
+}
+
+
+TunerDescription tuner_FC0011 = {
+ FC0011_open, /** needed function*/
+ FC0011_close, /** needed function*/
+ FC0011_set, /** needed function*/
+ FC0011_scripts, /** Afa's tuner setting */
+ FC0011_scriptSets, /** Afa's tuner setting */
+ FC0011_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if frequency*/
+ True, /** spectrum inverse */
+ 0x28, /** tuner id */
+};
diff --git a/api/Fitipower_FC0011.h b/api/Fitipower_FC0011.h
new file mode 100644
index 0000000..5b8c138
--- /dev/null
+++ b/api/Fitipower_FC0011.h
@@ -0,0 +1,61 @@
+/**
+ * @(#)Fitipower_FC0011.h
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2009.03.27
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2009.03.27 Yinding update tuner register settings
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Fitipower_FC0011_H__
+#define __Fitipower_FC0011_H__
+
+
+#define FC0011_VER_MAJOR 2
+#define FC0011_VER_MINOR 1
+
+extern TunerDescription tuner_FC0011;
+
+
+/**
+ *
+ */
+Dword FC0011_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword FC0011_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword FC0011_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Fitipower_FC0011_Script.h b/api/Fitipower_FC0011_Script.h
new file mode 100644
index 0000000..d482f30
--- /dev/null
+++ b/api/Fitipower_FC0011_Script.h
@@ -0,0 +1,83 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Fiti_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+#define FC0011_ADDRESS 0xC0
+#define FC0011_SCRIPTSETLENGTH 0x00000001
+
+Word FC0011_scriptSets[] = {
+0x38
+};
+
+ValueSet FC0011_scripts[] = {
+ {0x0046, 0x28},
+ {0x0057, 0x00},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0068, 0xa5},
+ {0x006e, 0x01},
+ {0x0071, 0x0A},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x009b, 0x2D},
+ {0x009c, 0x60},
+ {0x009d, 0x23},
+ {0x00a4, 0x50},
+ {0x00ad, 0x50},
+ {0x00b3, 0x01},
+ {0x00b7, 0x88},
+ {0x00b8, 0xa6},
+ {0x00c3, 0x01},
+ {0x00c4, 0x01},
+ {0x00c7, 0x69},
+ {0xF007, 0x00},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1B},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1B},
+ {0xF00E, 0xFF},
+ {0xF00F, 0x01},
+ {0xF010, 0x00},
+ {0xF011, 0x02},
+ {0xF012, 0xFF},
+ {0xF013, 0x01},
+ {0xF014, 0x00},
+ {0xF015, 0x02},
+ {0xF01B, 0xEF},
+ {0xF01C, 0x01},
+ {0xF01D, 0x0f},
+ {0xF01E, 0x02},
+ {0xF01F, 0x6E},
+ {0xF020, 0x00},
+ {0xF025, 0xDE},
+ {0xF026, 0x00},
+ {0xF027, 0x0A},
+ {0xF028, 0x03},
+ {0xF029, 0x6E},
+ {0xF02A, 0x00},
+ {0xF047, 0x00},
+ {0xF054, 0x0},
+ {0xF055, 0x0},
+ {0xF077, 0x01},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Fitipower_FC0012.c b/api/Fitipower_FC0012.c
new file mode 100644
index 0000000..a4c0e96
--- /dev/null
+++ b/api/Fitipower_FC0012.c
@@ -0,0 +1,346 @@
+/**
+ * @(#)Fitipower_FC0012.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.09.17
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.09.17 Benny Chen added tuner version
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> // for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Fitipower_FC0012_Script.h"
+//#include <math.h> // for Linux
+
+
+Dword FC0012_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ /** Control tuner enable */
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_en, reg_top_gpiot2_en_pos, reg_top_gpiot2_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_LINK, p_reg_top_gpiot2_on, reg_top_gpiot2_on_pos, reg_top_gpiot2_on_len, 1);
+ if (error) goto exit;
+
+ /** Control pin diode **/
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_on, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_en, 1);
+ if (error) goto exit;
+exit:
+ return (error);
+}
+
+
+Dword FC0012_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ /** Control pin diode **/
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_on, 0);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_en, 0);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+Dword FC0012_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ /* It's necessary for setting frequency and bandwidth*/
+ Dword error = Error_NO_ERROR;
+ Word fractional, xin;
+ Byte reg[20], floor_xdiv, fp,fa, vco_cal, vco_select, round_xdiv, rc_cal_forcing;
+ Dword fvco;
+
+ /***********************************************************/
+ /****************** initialization *************************/
+ /***********************************************************/
+ reg[7] = 0x0f;
+ reg[8] = 0x9d;
+ reg[13] = 0x10;
+ reg[16] = 0x0b;
+ reg[19] = 0x10;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 7, 1, &reg[7]);
+ if (error) goto exit;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 8, 1, &reg[8]);
+ if (error) goto exit;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 13, 1, &reg[13]);
+ if (error) goto exit;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 16, 1, &reg[16]);
+ if (error) goto exit;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 19, 1, &reg[19]);
+ if (error) goto exit;
+
+ /***********************************************************/
+ /****************** start frequency setting ****************/
+ /***********************************************************/
+
+ /* generate the frequency of VCO and VCO_divider */
+
+ if (frequency * 96 < 3560000)
+ {
+ fvco = frequency * 96;
+ reg[5] = 0x82;
+ reg[6] = 0x00;
+ }
+ else if (frequency * 64 < 3560000)
+ {
+ fvco = frequency * 64;
+ reg[5] = 0x82;
+ reg[6] = 0x02;
+ }
+ else if (frequency * 48 < 3560000)
+ {
+ fvco = frequency * 48;
+ reg[5] = 0x42;
+ reg[6] = 0x00;
+ }
+ else if (frequency * 32 < 3560000)
+ {
+ fvco = frequency * 32;
+ reg[5] = 0x42;
+ reg[6] = 0x02;
+ }
+ else if (frequency * 24 < 3560000)
+ {
+ fvco = frequency * 24;
+ reg[5] = 0x22;
+ reg[6] = 0x00;
+ }
+ else if (frequency * 16 < 3560000)
+ {
+ fvco = frequency * 16;
+ reg[5] = 0x22;
+ reg[6] = 0x02;
+ }
+ else if (frequency * 12 < 3560000)
+ {
+ fvco = frequency * 12;
+ reg[5] = 0x12;
+ reg[6] = 0x00;
+ }
+ else if (frequency * 8 < 3560000)
+ {
+ fvco = frequency * 8;
+ reg[5] = 0x12;
+ reg[6] = 0x02;
+ }
+ else if (frequency * 6 < 3560000)
+ {
+ fvco = frequency * 6;
+ reg[5] = 0x0a;
+ reg[6] = 0x00;
+ }
+ else
+ {
+ fvco = frequency * 4;
+ reg[5] = 0x0a;
+ reg[6] = 0x02;
+ }
+
+
+ /* calculate XIN for Fractional PLL with 18 MHz reference frequency */
+ floor_xdiv = (Byte)(fvco/18000);
+ fractional = (Word)(fvco - (floor_xdiv * 18000));
+ fractional = ((fractional<<15)/18000);
+ //if (fractional >=(Word)pow(2.0,14.0)) fractional = fractional + (Word)pow(2.0,15.0); /* sign extension */
+ if (fractional >=(Word)16384) fractional = fractional + (Word)32768;
+ if (fractional == 0) xin = 0;
+ else xin = fractional;
+
+ reg[3] = (Byte)(xin>>8) ; /* xin with 9 bit resolution */
+ reg[4] = (Byte)(xin & 0x00ff);
+
+ /* calculate fp and fa */
+ if ((fvco-floor_xdiv*18000)>=9000) round_xdiv = floor_xdiv + 1; //round operation
+ else round_xdiv = floor_xdiv;
+ fp = (Byte)(round_xdiv/8);
+ fa = round_xdiv - (fp<<3);
+ if (fa < 2)
+ {
+ fp = fp - 1;
+ fa = fa + 8;
+ }
+
+ reg[1] = fa;
+ reg[2] = fp;
+
+ /* Rough VCO selection */
+ if (fvco < 3060000)
+ {
+ vco_select = 0;
+ }
+ else
+ {
+ vco_select = 1;
+ reg[6] = reg[6] | 0x08;
+ }
+
+ /* fix frequency less than 45 MHz */
+ if (frequency < 45000)
+ {
+ reg[1] = 0x06;
+ reg[2] = 0x11;
+ }
+
+ /* fix clock out */
+ reg[6] = reg[6] | 0x20;
+
+ /** Write freq parameters to tuner */
+ error = Standard_writeTunerRegisters (demodulator, chip, 0, 7, reg);
+ if (error) goto exit;
+
+ /***********************************************************/
+ /****************** start VCO selction *********************/
+ /***********************************************************/
+
+ /*calibration VCO*/
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal); /* vco_cal restart */
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal); /* vco_cal run */
+ if (error) goto exit;
+
+ /* read vco calibration value vco_cal Note for read_reg need read twice */
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);
+ if (error) goto exit;
+ User_delay (demodulator, 10);
+ error = Standard_readTunerRegisters (demodulator, chip, 14, 1, &vco_cal);
+ if (error) goto exit;
+
+ /* vco selection */
+ vco_cal = vco_cal & 0x3f;
+ switch(vco_select) {
+ case 0:
+ if (vco_cal < 0x08)
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x08; /* vco_select = 1; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+
+ /* recalibration */
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/* vco_cal restart */
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/* vco_cal run */
+ if (error) goto exit;
+ break;
+ }
+ else
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x00; /* vco_select = 0; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+ break;
+ }
+ case 1:
+ if (vco_cal > 0x2a)
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x00; /* vco_select = 0; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+
+ /* recalibration */
+ vco_cal = 0x80;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/*vco_cal restart*/
+ if (error) goto exit;
+
+ vco_cal = 0x00;
+ error = Standard_writeTunerRegisters (demodulator, chip, 14, 1, &vco_cal);/*vco_cal run*/
+ if (error) goto exit;
+ break;
+ }
+ else
+ {
+ reg[6] = reg[6] & ~(0x18); /* reset VCO select */
+ reg[6] = reg[6] | 0x08; /* vco_select = 1; */
+ reg[6] = reg[6] | 0x20; /* fix clock out */
+ error = Standard_writeTunerRegisters (demodulator, chip, 6, 1, &reg[6]);
+ if (error) goto exit;
+ break;
+ }
+
+ }
+
+ reg[16] = 0x0b;
+
+ User_delay (demodulator, 10);
+ error = Standard_readTunerRegisters (demodulator, chip, 13, 1, &reg[13]);
+ if (error) goto exit;
+
+ rc_cal_forcing = reg[13] | 0x10;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 13, 1, &rc_cal_forcing);
+ if (error) goto exit;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 16, 1, &reg[16]);
+ if (error) goto exit;
+
+
+exit:
+ return(error);
+}
+
+
+TunerDescription tuner_FC0012 = {
+ FC0012_open, /** needed function*/
+ FC0012_close, /** needed function*/
+ FC0012_set, /** needed function*/
+ FC0012_scripts, /** Afa's tuner setting */
+ FC0012_scriptSets, /** Afa's tuner setting */
+ FC0012_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if frequency*/
+ True, /** spectrum inverse */
+ 0x2E, /** tuner id */
+};
diff --git a/api/Fitipower_FC0012.h b/api/Fitipower_FC0012.h
new file mode 100644
index 0000000..7b94692
--- /dev/null
+++ b/api/Fitipower_FC0012.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Fitipower_FC0012.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.09.17
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.09.17 Benny Chen added tuner version
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Fitipower_FC0012_H__
+#define __Fitipower_FC0012_H__
+
+
+#define FC0012_VER_MAJOR 2
+#define FC0012_VER_MINOR 0
+
+extern TunerDescription tuner_FC0012;
+
+
+/**
+ *
+ */
+Dword FC0012_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword FC0012_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword FC0012_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Fitipower_FC0012_Script.h b/api/Fitipower_FC0012_Script.h
new file mode 100644
index 0000000..7100844
--- /dev/null
+++ b/api/Fitipower_FC0012_Script.h
@@ -0,0 +1,77 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Fiti_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+#define FC0012_ADDRESS 0xC0
+#define FC0012_SCRIPTSETLENGTH 0x00000001
+
+Word FC0012_scriptSets[] = {
+0x32
+};
+
+ValueSet FC0012_scripts[] = {
+ {0x0046, 0x2E},
+ {0x0057, 0x00},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x006e, 0x01},
+ {0x0071, 0x0A},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x009b, 0x2D},
+ {0x009c, 0x60},
+ {0x009d, 0x23},
+ {0x00b3, 0x01},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0xF007, 0x00},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1B},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1B},
+ {0xF00E, 0xFF},
+ {0xF00F, 0x01},
+ {0xF010, 0x00},
+ {0xF011, 0x02},
+ {0xF012, 0xFF},
+ {0xF013, 0x01},
+ {0xF014, 0x00},
+ {0xF015, 0x02},
+ {0xF01B, 0xEF},
+ {0xF01C, 0x01},
+ {0xF01D, 0x0f},
+ {0xF01E, 0x02},
+ {0xF01F, 0x6E},
+ {0xF020, 0x00},
+ {0xF025, 0xDE},
+ {0xF026, 0x00},
+ {0xF027, 0x0A},
+ {0xF028, 0x03},
+ {0xF029, 0x6E},
+ {0xF02A, 0x00},
+ {0xF047, 0x00},
+ {0xF054, 0x0},
+ {0xF055, 0x0},
+ {0xF077, 0x01},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Freescale_MC44CD02.c b/api/Freescale_MC44CD02.c
new file mode 100644
index 0000000..bf810ea
--- /dev/null
+++ b/api/Freescale_MC44CD02.c
@@ -0,0 +1,307 @@
+/**
+ * @(#)Freescale_MC44CD02.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Freescale_MC44CD02_Script.h"
+
+
+Bool powerDownMode = False;
+Bool bandLockActivated = False;
+Bool analogTestMode = False;
+Byte referenceClock = 36;
+Dword programmableDivider;
+Short dischargingCurrent = 266;
+Short chargingCurrent = 836;
+Short offsetAdjustment = -109;
+Short gainAdjustment = 221;
+Bool singleEndBuffer = True;
+Bool outputDriverDisabled = False;
+Byte sineWaveAmplitude = 1;
+Bool squareWaveShape = False;
+Bool clockHasPriority = False;
+Byte kneeVoltageShift = 0;
+Bool antiAliasingDisabled = False;
+Bool openDrainOutput = False;
+Bool stateOfOutputPort = False;
+Byte postAmplifierGain = 14;
+
+
+Dword MC44CD02_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ Byte values[7];
+
+ values[0] = 0;
+ if (powerDownMode == True)
+ values[0] |= 0x04;
+ if (bandLockActivated == True)
+ values[0] |= 0x02;
+ if (analogTestMode == True)
+ values[0] |= 0x01;
+
+ values[1] = 0;
+ if (referenceClock == 26)
+ values[1] |= 0x20;
+ programmableDivider = (666 * 6) / 1000;
+ values[1] |= (Byte) ((programmableDivider & 0x1F00) >> 8);
+
+ values[2] = (Byte) (programmableDivider & 0x00FF);
+
+ values[3] = 0;
+ switch (chargingCurrent) {
+ case 266 :
+ values[3] |= 0x00;
+ break;
+ case 106 :
+ values[3] |= 0x08;
+ break;
+ case 159 :
+ values[3] |= 0x10;
+ break;
+ case 213 :
+ values[3] |= 0x18;
+ break;
+ case 319 :
+ values[3] |= 0x20;
+ break;
+ case 379 :
+ values[3] |= 0x21;
+ break;
+ case 425 :
+ values[3] |= 0x30;
+ break;
+ default :
+ values[3] |= 0x31;
+ }
+ switch (chargingCurrent) {
+ case 836 :
+ values[3] |= 0x00;
+ break;
+ case 790 :
+ values[3] |= 0x01;
+ break;
+ case 744 :
+ values[3] |= 0x02;
+ break;
+ case 698 :
+ values[3] |= 0x03;
+ break;
+ case 880 :
+ values[3] |= 0x04;
+ break;
+ case 924 :
+ values[3] |= 0x05;
+ break;
+ case 967 :
+ values[3] |= 0x06;
+ break;
+ case 1011 :
+ values[3] |= 0x07;
+ }
+
+ values[4] = 0;
+ switch (offsetAdjustment) {
+ case -109 :
+ values[4] |= 0x00;
+ break;
+ case -73 :
+ values[4] |= 0x08;
+ break;
+ case -36 :
+ values[4] |= 0x10;
+ break;
+ case 0 :
+ values[4] |= 0x18;
+ break;
+ case 39 :
+ values[4] |= 0x20;
+ break;
+ case 77 :
+ values[4] |= 0x21;
+ break;
+ case 116 :
+ values[4] |= 0x30;
+ break;
+ case 154 :
+ values[4] |= 0x31;
+ }
+ switch (gainAdjustment) {
+ case 221 :
+ values[4] |= 0x00;
+ break;
+ case 227 :
+ values[4] |= 0x01;
+ break;
+ case 233 :
+ values[4] |= 0x02;
+ break;
+ case 240 :
+ values[4] |= 0x03;
+ break;
+ case 247 :
+ values[4] |= 0x04;
+ break;
+ case 255 :
+ values[4] |= 0x05;
+ break;
+ case 264 :
+ values[4] |= 0x06;
+ break;
+ case 274 :
+ values[4] |= 0x07;
+ }
+
+ values[5] = 0;
+ if (singleEndBuffer == True)
+ values[5] |= 0x80;
+ if (outputDriverDisabled == True)
+ values[5] |= 0x40;
+ if (sineWaveAmplitude == 1)
+ values[5] |= 0x20;
+ if (squareWaveShape == True)
+ values[5] |= 0x08;
+ if (clockHasPriority == True)
+ values[5] |= 0x04;
+ if (kneeVoltageShift == 0)
+ values[5] |= 0x00;
+
+ values[6] = 0;
+ if (antiAliasingDisabled == True)
+ values[6] |= 0x40;
+ if (openDrainOutput == True)
+ values[6] |= 0x20;
+ if (stateOfOutputPort == True)
+ values[6] |= 0x10;
+ switch (postAmplifierGain) {
+ case 14 :
+ values[6] |= 0x00;
+ break;
+ case 10 :
+ values[6] |= 0x04;
+ break;
+ case 12 :
+ values[6] |= 0x08;
+ break;
+ }
+ switch (8) {
+ case 8 :
+ values[6] |= 0x00;
+ break;
+ case 7 :
+ values[6] |= 0x02;
+ break;
+ case 6 :
+ values[6] |= 0x03;
+ break;
+ }
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x00, 7, values);
+
+ return (error);
+}
+
+
+Dword MC44CD02_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ return (error);
+}
+
+
+Dword MC44CD02_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Byte values[2];
+
+ values[0] = 0;
+ if (referenceClock == 26)
+ values[0] |= 0x20;
+ programmableDivider = (frequency * 6) / 1000;
+ values[0] |= (Byte) ((programmableDivider & 0x1F00) >> 8);
+
+ values[1] = (Byte) (programmableDivider & 0x00FF);
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x01, 2, values);
+ if (error) goto exit;
+
+ values[0] = 0;
+ if (antiAliasingDisabled == True)
+ values[0] |= 0x40;
+ if (openDrainOutput == True)
+ values[0] |= 0x20;
+ if (stateOfOutputPort == True)
+ values[0] |= 0x10;
+ switch (postAmplifierGain) {
+ case 14 :
+ values[0] |= 0x00;
+ break;
+ case 10 :
+ values[0] |= 0x04;
+ break;
+ case 12 :
+ values[0] |= 0x08;
+ break;
+ }
+ switch (bandwidth) {
+ case 8000 :
+ values[0] |= 0x00;
+ break;
+ case 7000 :
+ values[0] |= 0x02;
+ break;
+ case 6000 :
+ values[0] |= 0x03;
+ break;
+ }
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x06, 1, values);
+
+exit :
+ return (error);
+}
+
+
+TunerDescription tuner_MC44CD02 = {
+ MC44CD02_open,
+ MC44CD02_close,
+ MC44CD02_set,
+ MC44CD02_scripts,
+ MC44CD02_scriptSets,
+ MC44CD02_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ True, /** spectrum inverse */
+ 0x20, /** tuner id */
+};
diff --git a/api/Freescale_MC44CD02.h b/api/Freescale_MC44CD02.h
new file mode 100644
index 0000000..f849d6f
--- /dev/null
+++ b/api/Freescale_MC44CD02.h
@@ -0,0 +1,61 @@
+/**
+ * @(#)Freescale_MC44CD02.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Freescale_MC44CD02_H__
+#define __Freescale_MC44CD02_H__
+
+
+#define MC44CD02_VER_MAJOR 2
+#define MC44CD02_VER_MINOR 0
+
+extern TunerDescription tuner_MC44CD02;
+
+
+/**
+ *
+ */
+Dword MC44CD02_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword MC44CD02_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+
+/**
+ *
+ */
+Dword MC44CD02_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Freescale_MC44CD02_Script.h b/api/Freescale_MC44CD02_Script.h
new file mode 100644
index 0000000..cb8560a
--- /dev/null
+++ b/api/Freescale_MC44CD02_Script.h
@@ -0,0 +1,129 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+/*
+* @(#)Freescale_MC44CD02_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 1
+#define VERSION3 7
+#define VERSION4 0
+
+
+
+#define MC44CD02_ADDRESS 0xC0
+#define MC44CD02_SCRIPTSETLENGTH 0x00000001
+
+Word MC44CD02_scriptSets[] ={
+0x66
+};
+
+ValueSet MC44CD02_scripts[] = {
+ {0xF600, 0x05},
+ {0xF601, 0x08},
+ {0xF602, 0x0B},
+ {0xF603, 0x0E},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1F},
+ {0xF5F8, 0x01},
+ {0xF5DF, 0xFB},
+ {0xF5E0, 0x00},
+ {0xF5E3, 0x09},
+ {0xF5E4, 0x01},
+ {0xF5E5, 0x01},
+ {0xF5FD, 0x01},
+ {0x0081, 0x0A},
+ {0x00c4, 0x19},
+ {0x007e, 0x04},
+ {0x00c0, 0x05},
+ {0xF80F, 0x40},
+ {0xF810, 0x54},
+ {0xF811, 0x5a},
+ {0xF78B, 0x01},
+ {0xFB06, 0x3},
+ {0x00a0, 0xCF},
+ {0x009f, 0xE1},
+ {0x00a6, 0x01},
+ {0xFD8B, 0x00},
+ {0x00ad, 0x01},
+ {0x00a3, 0x01},
+ {0x00a4, 0x3C},
+ {0x00ab, 0x01},
+ {0x008e, 0x01},
+ {0x008a, 0x01},
+ {0x0099, 0x01},
+ {0x00a9, 0x00},
+ {0x00a5, 0x01},
+ {0x00aa, 0x01},
+ {0x0092, 0x06},
+ {0xF078, 0x00},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF02B, 0x00},
+ {0x0070, 0x0A},
+ {0xF1CB, 0xA0},
+ {0xF1CC, 0x01},
+ {0x0046, 0x20},
+ {0x00b3, 0x02},
+ {0xF047, 0x00},
+ {0xF007, 0x00},
+ {0xF1E6, 0x01},
+ {0x0074, 0x00},
+ {0xF077, 0x01},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1C},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1C},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0xF01F, 0xA0},
+ {0xF020, 0x00},
+ {0x0068, 0xA0},
+ {0xF029, 0x8C},
+ {0xF02A, 0x00},
+ {0xF010, 0x00},
+ {0xF011, 0x02},
+ {0xF00E, 0xE1},
+ {0xF00F, 0x00},
+ {0xF014, 0xBA},
+ {0xF015, 0x02},
+ {0xF012, 0xE1},
+ {0xF013, 0x00},
+ {0xF01B, 0x23},
+ {0xF01C, 0x03},
+ {0xF01D, 0x78},
+ {0xF01E, 0x00},
+ {0xF025, 0x23},
+ {0xF026, 0x03},
+ {0xF027, 0x78},
+ {0xF028, 0x00},
+ {0x006e, 0x52},
+ {0x006d, 0x00},
+ {0x0057, 0x01},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0093, 0x00},
+ {0x0096, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0079, 0x01},
+ {0x00c2, 0x00},
+ {0x00c1, 0x01},
+ {0xF02C, 0x01},
+ {0x00b0, 0x01},
+ {0xF000, 0xF},
+
+};
diff --git a/api/ITD30x0.c b/api/ITD30x0.c
new file mode 100644
index 0000000..b300409
--- /dev/null
+++ b/api/ITD30x0.c
@@ -0,0 +1,703 @@
+
+/*!
+*******************************************************************************
+* \FILE <ITD30x0.CPP>
+*
+* \BRIEF
+* <ITD30x0 MP user API v2.2 - the part of implementation>
+* - Source Integration
+* - Added "Reset PLL" Option
+* - Added "Power-down" Mode
+* - Added "A,B type Selection"
+* - RSSI Computing Option
+*
+* \DATE
+* < 2006-08-28 >
+*
+* \AUTHOR
+* Integrant Technologies. Inc.
+* - <Dennis Hong> <Dennis.Hong@analog.com>
+*******************************************************************************
+*/
+
+#include "ITD30x0.h"
+
+
+/* Global Variable */
+int i;
+int ADCOUT;
+int cnt_loop = 15;
+long TUNER_REFCLK;
+long LO_FREQ;
+long PLL_FREQ;
+long PLL_N, PLL_F, PLLR = 1;
+int old_VCO_BAND;
+int DIVSEL;
+int BAND;
+int VCORG;
+long TUNER_IF;
+long TUNER_RF;
+int RegRFAGC = 0;
+int RegDATA71, RegDATA72, RegData85;
+long fInpRFPOW = 0;
+int SPLIT_ID;
+INT_U8 CHIP_TYPE;
+INT_U8 CurBAND = CUR_RF_BAND3;
+INT_U8 FCCLK;
+INT_U8 RFAGC_SPEED_L; /* SPEED[2:0] we had a resolution of 10 bits for RFAGC */
+INT_U8 RFAGC_SPEED_H; /* SPEED[9:3] */
+INT_U8 IFAGC_SPEED;
+INT_U8 AGCMODE = 0; /* If this value = 0, Internal AGC mode. */
+ /* If this value = 1, External AGC mode */
+
+
+/* Band - III */
+/* LO Freq (MHz) BAND VCORGI2CDIVSEL */
+/* From To(dec) */
+RG_NUM_BAND BAND_III_PLL_TABLE[26]=
+{
+ {160000, 162850, 2, 0, 1},
+ {162850, 165350, 2, 1, 1},
+ {165350, 168350, 2, 2, 1},
+ {168350, 171600, 2, 3, 1},
+ {171600, 174800, 2, 4, 1},
+ {174800 , 176350, 2, 5, 1},
+ {176350, 179850, 2, 6, 1},
+ {179850, 183350, 2, 7, 1},
+ {183350, 188850, 2, 8, 1},
+ {188850, 191850, 2, 9, 1},
+ {191850, 195850, 2, 10, 1},
+ {195850, 200850, 2, 11, 1},
+ {200850, 205850, 2, 12, 1},
+ {205850, 211850, 2, 13, 1},
+ {211850, 216850, 2, 14, 1},
+ {216850, 221850, 2, 15, 1},
+ {221850, 226850, 0, 6, 2},
+ {226850, 231850, 0, 7, 2},
+ {231850, 236850, 0, 8, 2},
+ {236850, 240850, 0, 9, 2},
+ {240850, 247850, 0, 10, 2},
+ {247850, 254850, 0, 11, 2},
+ {254850, 261850, 0, 12, 2},
+ {261850, 268850, 0, 13, 2},
+ {268850, 277850, 0, 14, 2},
+ {277850, 285850, 0, 15, 2}
+};
+
+RG_NUM_BAND LBAND_PLL_TABLE[2]=
+{
+ {1445000, 1460000, 1, 1, 3},
+ {1460000, 1495000, 1, 2, 3}
+};
+
+RG_NUM_BAND FMBAND_PLL_TABLE[19]=
+{
+ {82500, 83000, 2, 2, 0},
+ {83000, 84300, 2, 3, 0},
+ {84300, 86000, 2, 4, 0},
+ {86000, 87300, 2, 5, 0},
+ {87300, 89000, 2, 6, 0},
+ {89000, 91000, 2, 7, 0},
+ {91000, 93000, 2, 8, 0},
+ {93000, 95000, 2, 9, 0},
+ {95000, 97000, 2, 10, 0},
+ {97000, 99100, 2, 11, 0},
+ {99100, 102000, 2, 12, 0},
+ {102000, 103000, 0, 2, 1},
+ {103000, 104500, 0, 3, 1},
+ {104500, 107000, 0, 4, 1},
+ {107000, 109000, 0, 5, 1},
+ {109000, 111000, 0, 6, 1},
+ {111000, 114000, 0, 7, 1},
+ {114000, 116300, 0, 8, 1},
+ {116300, 118000, 0, 9, 1}
+};
+
+DIV_CURRENT_SETTING ITD30x0MP_DCSET_A[4]=
+{
+ {0,0}, /* DIVSEL, DIVCON */
+ {1,1},
+ {2,2},
+ {3,6}
+};
+
+DIV_CURRENT_SETTING ITD30x0MP_DCSET_B[4]=
+{
+ {0,0}, /* DIVSEL, DIVCON */
+ {1,1},
+ {2,2},
+ {3,7}
+};
+
+long BAND3[BAND3CH_MAX]= { /*5A*/174928, /*5B*/176640, /*5C*/178352,\
+/*5D*/180064, /*6A*/181936, /*6B*/183648, /*6C*/185360, /*6D*/187072,\
+/*7A*/188928, /*7B*/190640, /*7C*/192352, /*7D*/194064, /*8A*/195936,\
+/*8B*/197648, /*8C*/199360, /*8D*/201072, /*9A*/202928, /*9B*/204640,\
+/*9C*/206352, /*9D*/208064, /*10A*/209936,/*10B*/211648,/*10C*/213360,\
+/*10D*/215072,/*11A*/216928,/*11B*/218640,/*11C*/220352,/*11D*/222064,\
+/*12A*/223936,/*12B*/225648,/*12C*/227360,/*12D*/229072,/*13A*/230784,\
+/*13B*/232496,/*13C*/234208,/*13D*/235776,/*13E*/237488,/*13F*/239200};
+
+long KBAND[KBANDCH_MAX]={ /*8A*/181280,/*8B*/183008,/*8C*/184736,\
+ /*10A*/193280,/*10B*/195008,/*10C*/196736,/*12A*/205280,/*12B*/207008,\
+ /*12C*/208736};
+
+
+long LBAND[LBANDCH_MAX]= {/*LA*/1452960,/*LB*/1454672,/*LC*/1456384,/*LD*/1458096, \
+ /*LE*/1459808,/*LF*/1461520,/*LG*/1463232,/*LH*/1464944,/*LI*/1466656,\
+ /*LJ*/1468386,/*LK*/1470080,/*LL*/1471792,/*LM*/1473504,/*LN*/1475216,\
+ /*LO*/1476928,/*LP*/1478640,/*LQ*/1480352,/*LR*/1482064,/*LS*/1483776,\
+ /*LT*/1485488,/*LU*/1487200,/*LV*/1488912,/*LW*/1490624};
+
+INT_U8* INITVAL;
+INT_U8 INITVAL_B3[68]=
+{
+ /*00:0x73*/ /*01:0x74*/ /*02:0x75*/ /*03:0x76*/ /*04:0x77*/
+ 0x80, 0x8a, 0x8d, 0xb3/*0xc3->0xb3*/, 0x11,
+ /*05:0x78*/ /*06:0x79*/ /*07:0x7A*/ /*08:0x7B*/ /*09:0x7C*/
+ 0x03, 0x00, 0x20, 0x40, 0x20,
+ /*10:0x7D*/ /*11:0x7E*/ /*12:0x7F*/ /*13:0x80*/ /*14:0x81*/
+ 0x06, 0x05, 0xb0/*0x90->0xb0*/, 0x00, 0x33,
+ /*15:0x82*/ /*16:0x83*/ /*17:0x84*/ /*18:0x85*/ /*19:0x86*/
+ 0x90, 0x09, 0x32, 0x88, 0xfd,
+ /*20:0x87*/ /*21:0x88*/ /*22:0x89*/ /*23:0x8A*/ /*24:0x8B*/
+ 0xf1, 0x2b, 0xff, 0xb2, 0x94,
+ /*25:0x8C*/ /*26:0x8D*/ /*27:0x8E*/ /*28:0x8F*/ /*29:0x90*/
+ 0xce, 0x55/*0x20->0x55*/, 0x0a, 0x7f, 0x81,
+ /*30:0x91*/ /*31:0x92*/ /*32:0x93*/ /*33:0x94*/ /*34:0x95*/
+ 0x7f, 0x81, 0x01, 0xc6, 0x40,
+ /*35:0x96*/ /*36:0x97*/ /*37:0x98*/ /*38:0x99*/ /*39:0x9A*/
+ 0x46, 0x7e/*0x70->0x7e*/, 0x13, 0x05, 0x00,
+ /*40:0x9B*/ /*41:0x9C*/ /*42:0x9D*/ /*43:0x9E*/ /*44:0x9F*/
+ 0x02/*0xc2->0x02*/, 0x00/*0x5a->0x00*/, 0x00/*0x63->0x00*/, 0xe0/*0xe7->0xe0*/, 0x80/*0x83->0x80*/,
+ /*45:0xA0*/ /*46:0xA1*/ /*47:0xA2*/ /*48:0xA3*/ /*49:0xA4*/
+ 0x01/*0x05->0x01*/, 0xb0, 0x7e, 0x7f, 0x00/*0x58->0x00*/,
+ /*50:0xA5*/ /*51:0xA6*/ /*52:0xA7*/ /*53:0xA8*/ /*54:0xA9*/
+ 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+ /*55:0xAA*/ /*56:0xAB*/ /*57:0xAC*/ /*58:0xAD*/ /*59:0xAE*/
+ 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+ /*60:0xAF*/ /*61:0xB0*/ /*62:0xB1*/ /*63:0xB2*/ /*64:0xB3*/
+ 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+ /*65:0xB4*/ /*66:0xB5*/ /*67:0xB6*/
+ 0x1f, 0x21, 0x08
+};
+
+INT_U8 INITVAL_LB[68]=
+{
+ /*00:0x73*/ /*01:0x74*/ /*02:0x75*/ /*03:0x76*/ /*04:0x77*/
+ 0x80/*0xf0->0x80*/, 0x9a, 0x82, 0xb3/*0xc3->0xb3*/, 0x11,
+ /*05:0x78*/ /*06:0x79*/ /*07:0x7A*/ /*08:0x7B*/ /*09:0x7C*/
+ 0x83,/*0x8b->0x83*/ 0x00/*0x92->0x00*/, 0x20/*0xcb->0x20*/, 0x40/*0xc6->0x40*/, 0x20/*0xff->0x20*/,
+ /*10:0x7D*/ /*11:0x7E*/ /*12:0x7F*/ /*13:0x80*/ /*14:0x81*/
+ 0x06/*0xcc->0x06*/, 0x05/*0x04->0x05*/, 0xb0/*0x90->0xb0*/, 0x00, 0x33/*0x31->0x33*/,
+ /*15:0x82*/ /*16:0x83*/ /*17:0x84*/ /*18:0x85*/ /*19:0x86*/
+ 0x70, 0x0d,/*0x2d->0x0d*/ 0x3b, 0x30/*0x34->0x30*/, 0xaa,
+ /*20:0x87*/ /*21:0x88*/ /*22:0x89*/ /*23:0x8A*/ /*24:0x8B*/
+ 0xd0, 0x2e, 0xff, 0xb2/*0xba->0xb2*/, 0x94,
+ /*25:0x8C*/ /*26:0x8D*/ /*27:0x8E*/ /*28:0x8F*/ /*29:0x90*/
+ 0xce, 0x55/*0x20->0x55*/, 0x2a/*0x24->0x2a*/, 0x7f/*0x3f->0x7f*/, 0x81,
+ /*30:0x91*/ /*31:0x92*/ /*32:0x93*/ /*33:0x94*/ /*34:0x95*/
+ 0x7f, 0x81, 0x01, 0xc6, 0x40/*0x3a->0x40*/,
+ /*35:0x96*/ /*36:0x97*/ /*37:0x98*/ /*38:0x99*/ /*39:0x9A*/
+ 0x46, 0x7e, 0x13, 0x05/*0x00->0x05*/, 0x00,
+ /*40:0x9B*/ /*41:0x9C*/ /*42:0x9D*/ /*43:0x9E*/ /*44:0x9F*/
+ 0x02/*0x00->0x02*/, 0x00/*0x04->0x00*/, 0x00, 0xe0/*0x40->0xe0*/, 0x80/*0x83->0x80*/,
+ /*45:0xA0*/ /*46:0xA1*/ /*47:0xA2*/ /*48:0xA3*/ /*49:0xA4*/
+ 0x01/*0x03->0x01*/, 0xb0/*0xb2->0xb0*/, 0x7e, 0x7f, 0x00/*0x84->0x00*/,
+ /*50:0xA5*/ /*51:0xA6*/ /*52:0xA7*/ /*53:0xA8*/ /*54:0xA9*/
+ 0x1f/*0x2f->0x1f*/, 0x1f, 0x1f, 0x1f, 0x1f,
+ /*55:0xAA*/ /*56:0xAB*/ /*57:0xAC*/ /*58:0xAD*/ /*59:0xAE*/
+ 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+ /*60:0xAF*/ /*61:0xB0*/ /*62:0xB1*/ /*63:0xB2*/ /*64:0xB3*/
+ 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
+ /*65:0xB4*/ /*66:0xB5*/ /*67:0xB6*/
+ 0x1f, 0x21/*0x20->0x21*/, 0x08
+};
+
+
+void WriteIIC (INT_U8 address, INT_U8 value) {
+ Standard_writeTunerRegisters (Integrant_ITD3020_EXT_demodulator, Integrant_ITD3020_EXT_chip, address, 1, &value);
+}
+
+
+void WriteIIC_MultiByte (INT_U8 address, INT_U8* buffer, INT_U8 bufferLength) {
+ Standard_writeTunerRegisters (Integrant_ITD3020_EXT_demodulator, Integrant_ITD3020_EXT_chip, address, bufferLength, buffer);
+}
+
+
+INT_U8 ReadIIC (INT_U8 address) {
+ Byte value;
+
+ Standard_readTunerRegisters (Integrant_ITD3020_EXT_demodulator, Integrant_ITD3020_EXT_chip, address, 1, &value);
+ return (value);
+}
+
+
+long SetFreq(long iRF)
+{
+ SPLIT_ID = ReadIIC(ID1);
+ if ( SPLIT_ID >= LBAND_REVISION )
+ {
+ if (iRF>1000) /* MHz */
+ {
+ if (TUNER_REFCLK>=20000) /* KHz */
+ {
+ PLLR=2;
+ WriteIIC(W50,(ReadIIC(W50)&0xfc) | 0x01);
+ WriteIIC(RCHP0, 0x1F); /* added by Shane, 2006.10.12, charge pump value change */
+ }
+ else
+ {
+ PLLR=1;
+ WriteIIC(W50,(ReadIIC(W50)&0xfc));
+ WriteIIC(RCHP0, 0x12); /* added by Shane, 2006.10.12, charge pump value change */
+ }
+ }
+ else
+ {
+ PLLR=1;
+ WriteIIC(W50,(ReadIIC(W50)&0xfc));
+ WriteIIC(RCHP0, 0x1F); /* added by Shane, 2006.10.12, charge pump value change */
+ }
+ }
+ else
+ {
+ PLLR=1;
+ WriteIIC(W50,(ReadIIC(W50)&0xfc));
+ }
+
+ LO_FREQ = iRF + TUNER_IF; /* TUNER_IF = 0.85 */
+ if (CurBAND==0) LO_FREQ = RFTuning(LO_FREQ, FMBAND_PLL_TABLE, FMBAND_TABLE_LEN);
+ else if (CurBAND==1) LO_FREQ = RFTuning(LO_FREQ, BAND_III_PLL_TABLE,BAND_III_TABLE_LEN);
+ else LO_FREQ = RFTuning(LO_FREQ, LBAND_PLL_TABLE, LBAND_TABLE_LEN);
+
+ return LO_FREQ;
+}
+
+long RFTuning(long fLO_FREQ, RG_NUM_BAND* pRGBAND, INT_U8 tlen)
+{
+ int i;
+ /* PM 5:37 2006-08-24 Added by Shane(Integrant) */
+ unsigned char fusepon; /* fuse power on */
+
+ cnt_loop = 15;
+
+ if (fLO_FREQ < 120000) {
+ if (CurBAND != CUR_RF_FMBAND)
+ ITD30x0MP_Tuner_Init();
+ } else if (fLO_FREQ < 255000) {
+ if (CurBAND != CUR_RF_BAND3)
+ ITD30x0MP_Tuner_Init();
+ } else if (fLO_FREQ > 1000000) {
+ if (CurBAND != CUR_RF_LBAND)
+ ITD30x0MP_Tuner_Init();
+ }
+
+ for(i=0; i<tlen; i++) /* BAND RANGE */
+ {
+ if((fLO_FREQ > pRGBAND[i].lo_from) && (fLO_FREQ <= pRGBAND[i].lo_to))
+ {
+ /* PARAM1=divsel, PARAM2=lband */
+ PLL_FREQ = LO2PLL_Freq(pRGBAND[i].DIVSEL, fLO_FREQ);
+ RegData85 = SetPrescaler(PLL_FREQ, TUNER_REFCLK );
+ BAND = pRGBAND[i].VCO_BAND;
+ VCORG = pRGBAND[i].VCO_RG;
+ DIVSEL = pRGBAND[i].DIVSEL;
+
+ WriteIIC(W03, (INITVAL[2] & 0xf0) | VCORG );
+ WriteIIC( W16, ( INITVAL[15]&0x0f ) | ( DIVSEL << 4 ) | ( BAND << 6 ) );
+
+ {
+ PLL_N = PLL_FREQ / (TUNER_REFCLK / PLLR );
+ PLL_F = (((PLL_FREQ*1024 / (TUNER_REFCLK / PLLR )) - PLL_N*1024) * (1 << 10));
+ RegData85 = (RegData85 & 0xfc) | ((PLL_N >> 8) & 0x03);
+ WriteIIC( W18, (Byte) (PLL_N & 0xff) );
+
+ /* 2006-08-24 Added by Shane(Integrant) */
+ if(ReadIIC(ID1) >= 0x12 && CurBAND == CUR_RF_LBAND) /* if the version of chip is over 0x12, it should be checked whether A or B. */
+ {
+ fusepon = ReadIIC(W29); /* A,B TYPE SELECTION */
+ WriteIIC( W29, (fusepon & 0xFE));
+ CHIP_TYPE = ReadIIC(ID2) & 0x10;
+ WriteIIC( W29, (fusepon | 0x01));
+ }
+ else /* it is A-Type That version of chip is small than 0x12. */
+ {
+ CHIP_TYPE = 0x10; /* default Chip Type = A */
+ }
+
+ if ( CHIP_TYPE==0x10 )
+ RegData85 = ( RegData85 & 0xc7 ) | ( ( ITD30x0MP_DCSET_A[DIVSEL].DIVCON ) << 3 );
+ else
+ RegData85 = ( RegData85 & 0xc7 ) | ( ( ITD30x0MP_DCSET_B[DIVSEL].DIVCON ) << 3 );
+
+ WriteIIC( W19, RegData85 );
+ WriteIIC( W20, (Byte) (PLL_F & 0xff) );
+ WriteIIC( W21, (Byte) ((PLL_F >> 8) & 0xff) );
+ WriteIIC( W22, (Byte) (INITVAL[21]&0xf0 | ( PLL_F >> 16 ) & 0x0f) );
+
+ PLLReset();
+
+ User_delay(NULL, 1);
+ }
+
+ while(1)
+ {
+ old_VCO_BAND = pRGBAND[i].VCO_BAND;
+ ADCOUT = ( ReadIIC(RD9) & 0xf0 ) >> 4;
+ if( ADCOUT < 4 ) i--;
+ else if( ADCOUT > 12 ) i++;
+ else break;
+
+ if((i >= 0) && (i < tlen))
+ {
+ BAND = pRGBAND[i].VCO_BAND;
+ VCORG = pRGBAND[i].VCO_RG;
+ DIVSEL = pRGBAND[i].DIVSEL;
+ WriteIIC( W03, ( INITVAL[2]&0xf0 ) | VCORG );
+ WriteIIC( W16, ( INITVAL[15]&0x0f ) | ( DIVSEL << 4 ) | ( BAND << 6 ) );
+
+ if(BAND != old_VCO_BAND)
+ {
+ PLL_FREQ = LO2PLL_Freq(pRGBAND[i].DIVSEL, LO_FREQ);
+ RegData85 = SetPrescaler(PLL_FREQ, TUNER_REFCLK );
+
+ PLL_N = PLL_FREQ / (TUNER_REFCLK / PLLR );
+ PLL_F = (((PLL_FREQ*1024 / (TUNER_REFCLK / PLLR )) - PLL_N*1024) * (1 << 10));
+ RegData85 = (RegData85 & 0xfc) | ((PLL_N >> 8) & 0x03);
+ WriteIIC( W18, (Byte) (PLL_N & 0xff) );
+
+ if ( CHIP_TYPE==0x10 )
+ RegData85 = ( RegData85&0xc7 ) | ( ( ITD30x0MP_DCSET_A[DIVSEL].DIVCON ) << 3 ); /* A Type */
+ else
+ RegData85 = ( RegData85&0xc7 ) | ( ( ITD30x0MP_DCSET_B[DIVSEL].DIVCON ) << 3 ); /* B Type */
+
+ WriteIIC( W19, RegData85 );
+ WriteIIC( W20, (Byte) (PLL_F & 0xff) );
+ WriteIIC( W21, (Byte) ((PLL_F >> 8) & 0xff) );
+ WriteIIC( W22, (Byte) (INITVAL[21]&0xf0 | ( PLL_F >> 16 ) & 0x0f) );
+
+ PLLReset();
+
+ User_delay(NULL, 1);
+ }
+
+ cnt_loop--;
+ if(cnt_loop == 0)
+ break;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ return fLO_FREQ;
+ }
+ }
+ return fLO_FREQ;
+}
+
+/*!
+******************************************************************************
+* \BRIEF
+* <LO2PLL_Freq() change LO Freq. to PLL Freq.>
+*
+* \PARAM <int divsel>
+* <Divider Selector(divsel) is used to compute PLL Frequency.>
+* \PARAM <long LO_FREQ>
+* <LO Frequency(LO_FREQ) equal RF Freq. + IF Freq.>
+*
+* \RETURN
+* <long>
+******************************************************************************
+*/
+
+long LO2PLL_Freq(int divsel,long LO_FREQ) /* LO Freq. to PLL Freq. */
+{
+ long PLL_FREQ=0;
+ switch(divsel)
+ {
+ case 0:
+ PLL_FREQ = LO_FREQ*8; /* PLLS=8 */
+ break;
+ case 1:
+ PLL_FREQ = LO_FREQ*4; /* PLLS=4 */
+ break;
+ case 2:
+ PLL_FREQ = LO_FREQ*2; /* PLLS=2 */
+ break;
+ case 3:
+ PLL_FREQ = LO_FREQ*1; /* PLLS=1 */
+ break;
+ default:
+ break;
+ /* add exceptional condition code */
+ }
+ return PLL_FREQ;
+}
+/*!
+*******************************************************************************
+* \BRIEF
+* <FCTuning() is used when Initialized.>
+*
+* \PARAM <void>
+*
+* \RETURN
+* <void>
+*******************************************************************************
+*/
+
+void FCTuning() /* Tuning function for Cut-Off Freq. */
+{
+ int rsv2;
+
+ WriteIIC( W13, 0x40 | ( INITVAL[12] & 0x3f ) ); /* Tune enable, Extune disable */
+
+ User_delay(NULL, 1);
+ rsv2 = (ReadIIC(RD1) & 0xf0) >> 4; /* Get CtuneI2C */
+
+ if(rsv2 > 13)
+ rsv2 = 13;
+
+ WriteIIC(W13, 0x80 | (INITVAL[12] & 0x3f)); /* Extune enable, Tune disable */
+ WriteIIC(W02, (rsv2 << 4) | (INITVAL[1] & 0x0f)); /* Set Extune */
+}
+
+/*!
+*******************************************************************************
+* \BRIEF
+* <For Tuner to Initialize, ITD30x0MP_Tuner_Init() is called after power-on>
+*
+* \PARAM <void>
+*
+* \RETURN
+* <void>
+*
+* \NOTE
+* <before you set, you should select options, TUNER_REFCLK, TUNER_RF.>
+*
+* \PARAGRAPH <title>
+* <paragraph>
+*
+* \PARAGRAPH
+* <another paragraph>
+*******************************************************************************
+*/
+
+void ITD30x0MP_Tuner_Init()
+{
+ /* FCCLK, if RF x-tal = 24.576MHz, 0x04. if RF x-tal = 16.384MHz, 0x05. */
+ /* if RF x-tal = 19.2MHz, 0x06 */
+ if (TUNER_RF < 120000) {
+ CurBAND = CUR_RF_FMBAND;
+ INITVAL = INITVAL_B3;
+ } else if (TUNER_RF < 255000) {
+ CurBAND = CUR_RF_BAND3;
+ INITVAL = INITVAL_B3;
+ } else if (TUNER_RF > 1000000) {
+ CurBAND = CUR_RF_LBAND;
+ INITVAL = INITVAL_LB;
+ }
+
+ if(TUNER_REFCLK <= 16384)
+ {
+ FCCLK = 5;
+ RFAGC_SPEED_L = 7;
+ RFAGC_SPEED_H = 0;
+ IFAGC_SPEED = 0x21;
+ }
+ else if(TUNER_REFCLK <= 19200)
+ {
+ FCCLK = 6;
+ RFAGC_SPEED_L = 7;
+ RFAGC_SPEED_H = 0;
+ IFAGC_SPEED = 0x21;
+ }
+ else if(TUNER_REFCLK <= 24576)
+ {
+ if(CurBAND == CUR_RF_LBAND)
+ {
+ FCCLK = 4;
+ RFAGC_SPEED_L = 1;
+ RFAGC_SPEED_H = 3;
+ IFAGC_SPEED = 0x20;
+ }
+ else
+ {
+ FCCLK = 4;
+ RFAGC_SPEED_L = 1;
+ RFAGC_SPEED_H = 3;
+ IFAGC_SPEED = 0xFF;
+ }
+ }
+
+ INITVAL[11] = FCCLK;
+ INITVAL[27] = AGCMODE << 5 | (INITVAL[27] & 0xdf);
+ INITVAL[43] = RFAGC_SPEED_L << 5 | (INITVAL[43] & 0x1f);
+ INITVAL[44] = RFAGC_SPEED_H | (INITVAL[44] & 0x80);
+ INITVAL[66] = IFAGC_SPEED;
+
+ WriteIIC_MultiByte(W01, INITVAL, 68);
+
+ /* addr 0xb5, IFAGC SPEED, if x-tal = 24.576MHz, 0xff. */
+ /* if x-tal = 16.384MHz or 19.2MHz, 0x21. */
+ /* (when agc mode = internal agc, this apply to ...) */
+
+ PostProcessingAfterInit();
+ SetFreq(TUNER_RF);
+
+ FCTuning();
+}
+/*!
+*******************************************************************************
+* \BRIEF
+* <PostProcessingAfterInit() is called when initialized.>
+*
+* \PARAM <void>
+* <void type>
+*
+* \RETURN
+* <void>
+*
+* \NOTE
+* <this process have to called for tuner to stable.>
+* \PARAGRAPH
+* <External AGC Mode = 0x08, Internal AGC Mode = 0x00>
+*******************************************************************************
+*/
+
+void PostProcessingAfterInit()
+{
+ WriteIIC (W48, 0x00);
+ WriteIIC (W49, AGCMODE << 3);
+}
+
+/*!
+*******************************************************************************
+* \BRIEF
+* <PowerDown() function is able to switch all blocks on Tuner.>
+*
+* \PARAM <bool bOnOff>
+* <all blocks on Tuner is Turn On/Off by bOnOff.>
+*
+* \RETURN
+* <void>
+*
+* \NOTE
+* <if bOnOff=1, power down mode , else bOnOff=0, power up mode.>
+*
+*******************************************************************************
+*/
+
+void PowerDownOnOff(unsigned char bOnOff)
+{
+ if (!bOnOff)
+ {
+ WriteIIC(W48, 0x00);
+ WriteIIC(W49, AGCMODE << 3);
+ }
+ else
+ {
+ WriteIIC(W48, 0x01);
+ WriteIIC(W49, AGCMODE << 3);
+ }
+}
+/*!
+*******************************************************************************
+* \BRIEF
+* <GetRssiValue() Function is used to Get RF Power.>
+*
+* \PARAM <void>
+* <void type>
+*
+* \RETURN
+* <integer value[dBm]>
+*
+* \NOTE
+* <when this function is called, SNR is not good.
+* we recommend to call under once per one second. >
+*
+* \PARAGRAPH <RF Power computing algorithm>
+* <RF input power =
+* -(RFAGC[8:0]x0.133dB)-(LNAGAIN[0]x22dB)-(MIXGAIN[0]x13dB)-9.5>
+*
+*
+* \PARAGRAPH
+* <RFAGC addr = 0x71, 0x72, LNAGAIN addr = 0x72[6] MIXERGAIN addr 0x72[7]>>
+*******************************************************************************
+*/
+
+int GetRssiValue()
+{
+ RegDATA71 = ReadIIC (RD10);
+ RegDATA72 = ReadIIC (RD11);
+ RegRFAGC = RegDATA71 + ((RegDATA72&0x01)*256);
+ fInpRFPOW = -(RegRFAGC*133) - ((RegDATA72&0x40)>>6)*22000-((RegDATA72&0x80)>>7)*13000-9500;
+ fInpRFPOW=fInpRFPOW/1000;
+ /*iRFAGC_val = RegRFAGC;*/
+ /*iRFPWR_dB = fInpRFPOW;*/
+ return fInpRFPOW;
+}
+/*!
+*******************************************************************************
+* \BRIEF
+* <GetPLLStatus() function inform us the status of PLL lock.>
+*
+* \PARAM <void>
+* <void type>
+*
+* \RETURN
+* <bool : True or False>
+*
+* \NOTE
+* <if this bit = 1, Lock else unLock >
+*******************************************************************************
+*/
+
+unsigned char GetPLLStatus()
+{
+ return (ReadIIC(RD2) & 0x01);
+}
+/*!
+*******************************************************************************
+* \BRIEF
+* <PLLReset() function is used to restart for PLL block. >
+*
+* \PARAM <void>
+*
+* \RETURN
+* <void>
+*
+* \NOTE
+* <Call this function after PLL-Setting>
+*******************************************************************************
+*/
+
+void PLLReset()
+{
+ unsigned char data, data_Low, data_High;
+
+ data = INITVAL[16];
+ data_Low = data & 0xfd;
+ data_High = data & 0xff | 0x02;
+
+ WriteIIC(W17,data_Low);
+ WriteIIC(W17,data_High);
+ WriteIIC(W17,data_Low);
+}
+
+INT_U8 SetPrescaler(long pllfreq, long iREF)
+{
+ unsigned char data;
+
+ data = INITVAL[18] & 0x3f;
+
+ if ((pllfreq/(iREF/PLLR))<64)
+ {
+ return (data | 0x80); /* PC4 */
+ }
+ else
+ {
+ return (data | 0x00); /* PC8 */
+ }
+}
diff --git a/api/ITD30x0.h b/api/ITD30x0.h
new file mode 100644
index 0000000..b765533
--- /dev/null
+++ b/api/ITD30x0.h
@@ -0,0 +1,254 @@
+
+/*!
+*******************************************************************************
+* \FILE <ITD30x0.H>
+*
+* \BRIEF
+* <ITD30x0 MP user API v2.2 - the part of declaration>
+* - Source Integration
+* - Added "Reset PLL" Option
+* - Added "Power-down" Mode
+* - Added "A,B type Selection"
+* - RSSI Computing Option
+*
+* \DATE
+* < 2006-08-28 >
+*
+* \AUTHOR
+* Integrant Technologies. Inc.
+* - <Dennis Hong> <chatmunk@integrant.com>
+*******************************************************************************
+*/
+#include "standard.h"
+
+extern Demodulator* Integrant_ITD3020_EXT_demodulator;
+extern Byte Integrant_ITD3020_EXT_chip;
+
+
+#pragma once
+
+/* Register Map Define */
+#define RD0 100 /*0x64*/
+#define ID1 101 /*0x65*/
+#define ID2 102 /*0x66*/
+#define ID3 103 /*0x67*/
+#define RD1 104 /*0x68*/
+#define RD2 105 /*0x69*/
+#define RD3 106 /*0x6a*/
+#define RD4 107 /*0x6b*/
+#define RD5 108 /*0x6c*/
+#define RD6 109 /*0x6d*/
+#define RD7 110 /*0x6e*/
+#define RD8 111 /*0x6f*/
+#define RD9 112 /*0x70*/
+#define RD10 113 /*0x71*/
+#define RD11 114 /*0x72*/
+#define W01 115 /*0x73*/
+#define W02 116 /*0x74*/
+#define W03 117 /*0x75*/
+#define W04 118 /*0x76*/
+#define W05 119 /*0x77*/
+#define W06 120 /*0x78*/
+#define W07 121 /*0x79*/
+#define W08 122 /*0x7a*/
+#define W09 123 /*0x7b*/
+#define W10 124 /*0x7c*/
+#define W11 125 /*0x7d*/
+#define W12 126 /*0x7e*/
+#define W13 127 /*0x7f*/
+#define W14 128 /*0x80*/
+#define W15 129 /*0x81*/
+#define W16 130 /*0x82*/
+#define W17 131 /*0x83*/
+#define W18 132 /*0x84*/
+#define W19 133 /*0x85*/
+#define W20 134 /*0x86*/
+#define W21 135 /*0x87*/
+#define W22 136 /*0x88*/
+#define W23 137 /*0x89*/
+#define W24 138 /*0x8a*/
+#define W25 139 /*0x8b*/
+#define W26 140 /*0x8c*/
+#define W27 141 /*0x8d*/
+#define W28 142 /*0x8e*/
+#define W29 143 /*0x8f*/
+#define W30 144 /*0x90*/
+#define W31 145 /*0x91*/
+#define W32 146 /*0x92*/
+#define W33 147 /*0x93*/
+#define W34 148 /*0x94*/
+#define W35 149 /*0x95*/
+#define W36 150 /*0x96*/
+#define W37 151 /*0x97*/
+#define W38 152 /*0x98*/
+#define W39 153 /*0x99*/
+#define W40 154 /*0x9a*/
+#define W41 155 /*0x9b*/
+#define W42 156 /*0x9c*/
+#define W43 157 /*0x9d*/
+#define W44 158 /*0x9e*/
+#define W45 159 /*0x9f*/
+#define W46 160 /*0xa0*/
+#define W47 161 /*0xa1*/
+#define W48 162 /*0xa2*/
+#define W49 163 /*0xa3*/
+#define W50 164 /*0xa4*/
+#define RCHP0 165 /*0xa5*/
+#define RCHP1 166 /*0xa6*/
+#define RCHP2 167 /*0xa7*/
+#define RCHP3 168 /*0xa8*/
+#define RCHP4 169 /*0xa9*/
+#define RCHP5 170 /*0xaa*/
+#define RCHP6 171 /*0xab*/
+#define RCHP7 172 /*0xac*/
+#define RCHP8 173 /*0xad*/
+#define RCHP9 174 /*0xae*/
+#define RCHP10 175 /*0xaf*/
+#define RCHP11 176 /*0xb0*/
+#define RCHP12 177 /*0xb1*/
+#define RCHP13 178 /*0xb2*/
+#define RCHP14 179 /*0xb3*/
+#define RCHP15 180 /*0xb4*/
+#define DIVAGO 181 /*0xb5*/
+#define AGODIS 182 /*0xb6*/
+#define CUR_RF_FMBAND 0
+#define CUR_RF_BAND3 1
+#define CUR_RF_LBAND 2
+#define REF_CLK16M 16
+#define REF_CLK16_384M 16384 /* => representation ~Hz */
+#define REF_CLK19_2M 19200 /* => representation ~Hz */
+#define REF_CLK24_576M 24576 /* => representation ~Hz */
+
+#define BAND3CH_5A 0
+#define BAND3CH_5B 1
+#define BAND3CH_5C 2
+#define BAND3CH_5D 3
+#define BAND3CH_6A 4
+#define BAND3CH_6B 5
+#define BAND3CH_6C 6
+#define BAND3CH_6D 7
+#define BAND3CH_7A 8
+#define BAND3CH_7B 9
+#define BAND3CH_7C 10
+#define BAND3CH_7D 11
+#define BAND3CH_8A 12
+#define BAND3CH_8B 13
+#define BAND3CH_8C 14
+#define BAND3CH_8D 15
+#define BAND3CH_9A 16
+#define BAND3CH_9B 17
+#define BAND3CH_9C 18
+#define BAND3CH_9D 19
+#define BAND3CH_10A 20
+#define BAND3CH_10B 21
+#define BAND3CH_10C 22
+#define BAND3CH_10D 23
+#define BAND3CH_11A 24
+#define BAND3CH_11B 25
+#define BAND3CH_11C 26
+#define BAND3CH_11D 27
+#define BAND3CH_12A 28
+#define BAND3CH_12B 29
+#define BAND3CH_12C 30
+#define BAND3CH_12D 31
+#define BAND3CH_13A 32
+#define BAND3CH_13B 33
+#define BAND3CH_13C 34
+#define BAND3CH_13D 35
+#define BAND3CH_13E 36
+#define BAND3CH_13F 37
+#define BAND3CH_MAX 38
+
+#define KBANDCH_8A 0
+#define KBANDCH_8B 1
+#define KBANDCH_8C 2
+#define KBANDCH_10A 3
+#define KBANDCH_10B 4
+#define KBANDCH_10C 5
+#define KBANDCH_12A 6
+#define KBANDCH_12B 7
+#define KBANDCH_12C 8
+#define KBANDCH_MAX 9
+
+#define LBANDCH_LA 0
+#define LBANDCH_LB 1
+#define LBANDCH_LC 2
+#define LBANDCH_LD 3
+#define LBANDCH_LE 4
+#define LBANDCH_LF 5
+#define LBANDCH_LG 6
+#define LBANDCH_LH 7
+#define LBANDCH_LI 8
+#define LBANDCH_LJ 9
+#define LBANDCH_LK 10
+#define LBANDCH_LL 11
+#define LBANDCH_LM 12
+#define LBANDCH_LN 13
+#define LBANDCH_LO 14
+#define LBANDCH_LP 15
+#define LBANDCH_LQ 16
+#define LBANDCH_LR 17
+#define LBANDCH_LS 18
+#define LBANDCH_LT 19
+#define LBANDCH_LU 20
+#define LBANDCH_LV 21
+#define LBANDCH_LW 22
+#define LBANDCH_MAX 23
+
+#define LBAND_REVISION 0x12
+#define LOW_IF_FREQ850 850 /* => representation ~Hz */
+#define BAND_III_TABLE_LEN 26
+#define LBAND_TABLE_LEN 2
+#define FMBAND_TABLE_LEN 19
+
+#define INT_U8 unsigned char
+
+typedef struct
+{
+ long lo_from; /* LO low boundary */
+ long lo_to; /* LO high boundary */
+ INT_U8 VCO_BAND; /* VCO_BAND */
+ INT_U8 VCO_RG; /* VCO_Range */
+ INT_U8 DIVSEL; /* Division selector */
+} RG_NUM_BAND;
+
+typedef struct
+{
+ INT_U8 DIVSEL; /* Div sel 0~3 */
+ INT_U8 DIVCON; /* Divcon 3bit */
+} DIV_CURRENT_SETTING;
+
+extern long BAND3[BAND3CH_MAX];
+extern long KBAND[KBANDCH_MAX];
+extern long LBAND[LBANDCH_MAX];
+extern int i;
+extern int ADCOUT;
+extern int cnt_loop;
+extern long TUNER_REFCLK;
+extern long LO_FREQ;
+extern long PLL_FREQ;
+extern long PLL_N, PLL_F;
+extern int old_VCO_BAND;
+extern int DIVSEL;
+extern int BAND;
+extern int VCORG;
+extern long TUNER_IF;
+extern long TUNER_RF;
+extern int RegRFAGC;
+extern int RegDATA71, RegDATA72;
+extern long fInpRFPOW;
+extern INT_U8 FCCLK;
+extern INT_U8 RFAGC_SPEED_L; /* SPEED[2:0] we had a resolution of 10 bits for RFAGC */
+extern INT_U8 RFAGC_SPEED_H; /* SPEED[9:3] */
+extern INT_U8 IFAGC_SPEED;
+extern INT_U8 AGCMODE;
+extern INT_U8 CurBAND;
+void PostProcessingAfterInit();
+void ITD30x0MP_Tuner_Init();
+long SetFreq(long iRF); /* Set RF Freq. Function. */
+void PLLReset();
+unsigned char GetPLLStatus();
+long LO2PLL_Freq(int divsel,long LO_FREQ);
+void usbSetSpeed(unsigned char bSpeedonUSB);
+long RFTuning(long fLO_FREQ, RG_NUM_BAND* pRGBAND, INT_U8 tlen);
+INT_U8 SetPrescaler(long pllfreq, long iREF);
diff --git a/api/Infineon_TUA6039.c b/api/Infineon_TUA6039.c
new file mode 100644
index 0000000..e47ce3a
--- /dev/null
+++ b/api/Infineon_TUA6039.c
@@ -0,0 +1,248 @@
+/**
+ * @(#)Infineon_TUA6039.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Infineon_TUA6039_Script.h"
+
+
+//#define ENABLE_AGC_CTRL
+//#define Step_Index 3;//166700UL
+#define IF_FREQ 36167
+
+//#define AGC_115DB 0x00
+#define AGC_115_MAXDB 0x10
+#define AGC_112_DEFDB 0x20
+#define AGC_109DB 0x30
+#define AGC_106DB 0x40
+#define AGC_103_MINDB 0x50
+#define AGC_EXT 0x60
+#define AGC_DIS_3_8V 0x70
+
+
+typedef enum Band{
+ VHF_L,
+ VHF_H,
+ UHF
+};
+
+
+typedef enum ChargePump{
+ CP_50uA,
+ CP_125uA
+};
+
+
+Dword SetStep_6039(Byte Step_Index, Byte *u8TunerData)
+{
+ Dword Step = 166670;
+
+ switch(Step_Index)
+ {
+ /* CB: 1 , CP , T2 , T1 , T0 , RSA , RSB , OS */
+ case 1:
+ Step = 50000;
+ u8TunerData[2] &= 0xc9; /* XX00X00X */
+ break;
+
+ case 2:
+ Step = 31250;
+ u8TunerData[2] &= 0xc9;
+ u8TunerData[2] |= 0x02; /* XX00X01X */
+ break;
+
+ case 3:
+ Step = 166670;
+ u8TunerData[2] &= 0xf9;
+ u8TunerData[2] |= 0x04; /* XXXXX10X */
+ break;
+
+ case 4:
+ Step = 62500;
+ u8TunerData[2] |=0x06; /* XXXXX11X */
+ break;
+
+ case 5:
+ Step = 125000;
+ u8TunerData[2] &= 0xf9;
+ u8TunerData[2] |= 0x30; /* XX11X00X */
+ break;
+
+ case 6:
+ Step = 142860;
+ u8TunerData[2] &=0xf9;
+ u8TunerData[2] |=0x32; /* XX11X01X */
+ break;
+
+ default:
+ Step = 166670;
+ u8TunerData[2] &= 0xf9;
+ u8TunerData[2] |= 0x04; /* XXXXX10X */
+ break;
+ }
+ return Step;
+}
+
+
+void SetBand_6039(Byte Band_Index, Word bandwidth, Byte *u8TunerData)
+{
+ //u8TunerData[3] &= 0xe0; /* X,X,X, P4,P3,P2,P1,P0 */
+ if(bandwidth == 8)
+ {
+ u8TunerData[3] = 0x00; /* X,X,X, P4=0,P3,P2,P1,P0 */
+ }
+ else
+ {
+ u8TunerData[3] = 0x10; /* X,X,X, P4=1,P3,P2,P1,P0 */
+ }
+
+ switch(Band_Index)
+ {
+ /* BB: X X X X P4 P3 P2 P1 P0 */
+ case VHF_L:
+ u8TunerData[3] |= 0x01; /* 0x01 */
+ break;
+
+ case VHF_H:
+ u8TunerData[3] |= 0x02; /* 0x02 */
+ break;
+
+ case UHF:
+ u8TunerData[3] |= 0x04; /* 0x04 */
+ break;
+
+ default:
+ //printf("Unknow band\n");
+ break;
+ }
+
+}
+
+
+void Set_ChargePump_6039(Byte CP_Index, Byte *u8TunerData)
+{
+ /* CB: 1 CP X X X X X X */
+ switch(CP_Index){
+ case CP_50uA: /* 50uA OR 125*/
+ u8TunerData[2] = 0xB4;
+ break;
+
+ case CP_125uA: /* 250 OR 650uA */
+ u8TunerData[2] = 0xf4; // ???
+ break;
+
+ default:
+ break;
+ }
+}
+
+
+Dword TUA6039_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword TUA6039_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword TUA6039_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Byte buffer[10];
+ Dword Step = 166700;
+ Byte AB = AGC_115_MAXDB;
+
+ //SetFreq(177500);
+ //unsigned long Step = GetStep();
+
+ if(frequency < 177500L)
+ {
+ SetBand_6039(VHF_L, bandwidth, buffer);
+ Set_ChargePump_6039(CP_50uA, buffer);
+ }
+
+ if(frequency >= 177500L && frequency <= 226500L)
+ {
+ SetBand_6039(VHF_H, bandwidth, buffer);
+ Set_ChargePump_6039(CP_50uA, buffer);
+ }
+
+ if(frequency > 226500L)
+ {
+ SetBand_6039(UHF, bandwidth, buffer);
+ Set_ChargePump_6039(CP_125uA, buffer); // ???
+ }
+
+ Step = SetStep_6039(3, buffer); // "3" is for 166.670 KHz
+
+ frequency += IF_FREQ; //add by martin 2006/03/06
+ frequency *= 1000;
+
+ buffer[0] = (char) ((frequency / Step) >>8) ;
+ buffer[1] = (char) ((frequency / Step) & 0xff);
+
+ error = Standard_writeTunerRegisters(demodulator, chip, 0x0000, 4, buffer);
+ if (error) goto exit;
+
+#ifdef ENABLE_AGC_CTRL
+ buffer[2] |= 0x98;
+ buffer[2] &= 0xdf; /* byte AB will follow */
+ buffer[3] = AB;
+
+ error = Standard_writeTunerRegisters(demodulator, chip, 0x0000, 4, buffer);
+ if (error) goto exit;
+#endif
+
+
+exit:
+ return(error);
+}
+
+
+TunerDescription tuner_TUA6039 = {
+ TUA6039_open,
+ TUA6039_close,
+ TUA6039_set,
+ TUA6039_scripts,
+ TUA6039_scriptSets,
+ TUA6039_ADDRESS, /** tuner i2c address */
+ 0, /** length of tuner register address */
+ 36167000, /** tuner if */
+ True, /** spectrum inverse */
+ 0x29, /** tuner id */
+};
diff --git a/api/Infineon_TUA6039.h b/api/Infineon_TUA6039.h
new file mode 100644
index 0000000..dc376c4
--- /dev/null
+++ b/api/Infineon_TUA6039.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Infineon_TUA6039.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Infineon_TUA6039_H__
+#define __Infineon_TUA6039_H__
+
+
+#define TUA6039_VER_MAJOR 2
+#define TUA6039_VER_MINOR 0
+
+extern TunerDescription tuner_TUA6039;
+
+
+/**
+ *
+ */
+Dword TUA6039_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TUA6039_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TUA6039_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Infineon_TUA6039_Script.h b/api/Infineon_TUA6039_Script.h
new file mode 100644
index 0000000..98ab349
--- /dev/null
+++ b/api/Infineon_TUA6039_Script.h
@@ -0,0 +1,107 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Infineon_EXT_EVB.cpp
+*
+* Copyright 2008 Afatech, Inc. All rights reserved.
+*/
+
+/** script version */
+
+#define VERSION1 0
+#define VERSION2 0
+#define VERSION3 0
+#define VERSION4 0
+
+#define TUA6039_ADDRESS 0xC2
+#define TUA6039_SCRIPTSETLENGTH 0x00000001
+
+
+Word TUA6039_scriptSets[] = {
+ 0x50
+};
+
+ValueSet TUA6039_scripts[] = {
+ {0xF600, 0x5},
+ {0xF601, 0x8},
+ {0xF602, 0xb},
+ {0xF603, 0x0e},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1f},
+ {0xF1E6, 0x01},
+ {0xF001, 0x00},
+ {0xF005, 0x01},
+ {0xF004, 0x00},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1C},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1C},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF000, 0x01},
+ {0xF047, 0x00},
+ {0xF007, 0x00},
+ {0xF12F, 0x00},
+ {0xF077, 0x00},
+ {0xF00A, 0x1A},
+ {0xF00B, 0x1B},
+ {0xF00C, 0x1A},
+ {0xF00D, 0x1B},
+ {0xF01F, 0x50},
+ {0xF020, 0x00},
+ {0xF029, 0x46},
+ {0xF02A, 0x00},
+ {0xF010, 0xDF},
+ {0xF011, 0x02},
+ {0xF00E, 0x44},
+ {0xF00F, 0x01},
+ {0xF014, 0xEB},
+ {0xF015, 0x02},
+ {0xF012, 0xF4},
+ {0xF013, 0x01},
+ {0x0066, 0x52},
+ {0xF01B, 0x26},
+ {0xF01C, 0x01},
+ {0xF01D, 0x12},
+ {0xF01E, 0x03},
+ {0xF025, 0xE8},
+ {0xF026, 0x00},
+ {0xF027, 0x5F},
+ {0xF028, 0x03},
+ {0x0044, 0xFF},
+ {0x0045, 0x03},
+ {0x0046, 0xFF},
+ {0x0047, 0x03},
+ {0x0048, 0xFF},
+ {0x0049, 0x03},
+ {0x004a, 0xFF},
+ {0x004b, 0x03},
+ {0x004c, 0xEB},
+ {0x004d, 0x02},
+ {0x0053, 0x68},
+ {0x0054, 0x03},
+ {0x0059, 0x12},
+ {0x005a, 0x03},
+ {0xF02B, 0x00},
+ {0xF02C, 0x01},
+ {0xF03B, 0x9A},
+ {0xF03C, 0x01},
+ {0xF03D, 0x5A},
+ {0xF03E, 0x01},
+ {0xF03F, 0x96},
+ {0xF040, 0x46},
+ {0xF031, 0x0},
+ {0x006b, 0x0A},
+ {0x006c, 0x14},
+ {0x006d, 0x08},
+}; \ No newline at end of file
diff --git a/api/Infineon_TUA8010.c b/api/Infineon_TUA8010.c
new file mode 100644
index 0000000..f98716b
--- /dev/null
+++ b/api/Infineon_TUA8010.c
@@ -0,0 +1,309 @@
+/**
+ * @(#)Infineon_TUA8010.cpp
+ *
+ * ==========================================================
+ * Version: 2.2
+ * Date: 2008.10.22
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.08.19 Tom Lin added tuner version
+ * 2008.10.16 Tom Lin update driver_TUA8010.cpp
+ * for U/V band switch
+ * 2008.10.22 Tom Lin enable clock out by tuner reg 0x03
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "driver_tua8010.h"
+#include "Infineon_TUA8010_Script.h"
+
+
+static Demodulator* DemodHandle = NULL;
+static Byte DemodChip = 0;
+
+/*========================================================================================================================
+ additional needed external funtions ( have to be provided by the user! )
+========================================================================================================================*/
+
+/**
+ * set / reset tuner reset input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setRESETN8010 (unsigned int i_state)
+{
+ Dword error = Error_NO_ERROR;
+
+ if (i_state == H_LEVEL) {
+ /* set tuner RXEN pin to "H" */
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot3_o, reg_top_gpiot3_o_pos, reg_top_gpiot3_o_len, 1);
+ if (error) goto exit;
+ } else {
+ /* set tuner RXEN pin to "L" */
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot3_o, reg_top_gpiot3_o_pos, reg_top_gpiot3_o_len, 0);
+ if (error) goto exit;
+ }
+
+exit:
+ if (error)
+ return (TUNER_ERR);
+ else
+ return (TUNER_OK);
+}
+
+/**
+ * set / reset tuner receive enable input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setRXEN8010 (unsigned int i_state)
+{
+ Dword error = Error_NO_ERROR;
+
+ if (i_state == H_LEVEL) {
+ /* set tuner RXEN pin to "H" */
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1);
+ if (error) goto exit;
+ } else {
+ /* set tuner RXEN pin to "L" */
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 0);
+ if (error) goto exit;
+ }
+
+exit:
+ if (error)
+ return (TUNER_ERR);
+ else
+ return (TUNER_OK);
+}
+
+
+/**
+ * set / reset tuner chiop enable input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setCEN8010 (unsigned int i_state)
+ {// wait for H/W design which GPIO to use
+ // if (i_state == H_LEVEL)
+ // /* set tuner CEN pin to "H" */
+ //
+ // else
+ // /* set tuner CEN pin to "L" */
+ //
+ return TUNER_OK;
+ }
+
+
+/**
+ * waitloop
+ * @param i_looptime * 1uS
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int waitloop8010 (unsigned int i_looptime)
+{
+ /* wait time = i_looptime * 1 uS */
+
+ User_delay (DemodHandle, i_looptime/1000);
+
+ return TUNER_OK;
+}
+
+
+/**
+ * i2cBusWrite
+ * @param deviceAdress chip address
+ * @param registerAdress register address
+ * @param *date pointer to data source
+ * @param length number of bytes to transmit
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int i2cBusWrite8010 (unsigned char deviceAddress, unsigned char registerAddress, char *date, unsigned int length)
+{
+ /* I2C write data format */
+ /* STA device_address ACK register_address ACK H_Byte-Data ACK L_Byte-Data !ACK STO */
+
+ /* STA = start condition, ACK = Acknowledge, STO = stop condition */
+ /* *date = pointer to data source */
+ /* length = number of bytes to write */
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_writeTunerRegisters (DemodHandle, DemodChip, (Word)registerAddress, (Byte)length, (Byte*)date);
+ if (error) goto exit;
+
+exit:
+ if (error)
+ return (TUNER_ERR);
+ else
+ return (TUNER_OK);
+}
+
+
+/**
+ * i2cBusRead
+ * @param deviceAdress chip address
+ * @param registerAdress register address
+ * @param *date pointer to data destination
+ * @param length number of bytes to read
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int i2cBusRead8010 (unsigned char deviceAddress, unsigned char registerAddress, char *date, unsigned int length)
+{
+ /* I2C read data format */
+ /* STA device_address ACK register_address ACK STA H_Byte-Data ACK device_address_read ACK H_Byte-Data ACK L_Byte-Data ACKH STO */
+
+ /* STA = start condition, ACK = Acknowledge (generated by TUA8010), ACKH = Acknowledge (generated by Host), STO = stop condition */
+ /* *date = pointer to data destination */
+ /* length = number of bytes to read */
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_readTunerRegisters (DemodHandle, DemodChip, (Word)registerAddress, (Byte)length, (Byte*)date);
+ if (error) goto exit;
+
+exit:
+ if (error)
+ return (TUNER_ERR);
+ else
+ return (TUNER_OK);
+}
+
+/*========================================================================================================================
+ end of additional needed external funtions
+========================================================================================================================*/
+
+Dword TUA8010_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ Byte buffer[2] = {0,};
+
+ DemodHandle = demodulator;
+ DemodChip = chip;
+
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot2_en, reg_top_gpiot2_en_pos, reg_top_gpiot2_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot2_on, reg_top_gpiot2_on_pos, reg_top_gpiot2_on_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot3_en, reg_top_gpiot3_en_pos, reg_top_gpiot3_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot3_on, reg_top_gpiot3_on_pos, reg_top_gpiot3_on_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (DemodHandle, DemodChip, Processor_LINK, p_reg_top_agc_od, 0);
+ if (error) goto exit;
+
+ error = initializeTUA8010();
+ if (error) {
+ error = Error_WRITE_TUNER_FAIL;
+ goto exit;
+ }
+
+ /** Enable clock output */
+ error = Standard_readTunerRegisters (DemodHandle, DemodChip, 0x03, 2, buffer);
+ if (error) goto exit;
+
+ buffer[0] = buffer[0] | 0x10;
+
+ error = Standard_writeTunerRegisters (DemodHandle, DemodChip, 0x03, 2, buffer);
+
+exit:
+ return (error);
+}
+
+
+Dword TUA8010_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ Byte buffer[2] = {0,};
+
+ DemodHandle = demodulator;
+ DemodChip = chip;
+
+ /** Disable clock output */
+ error = Standard_readTunerRegisters (DemodHandle, DemodChip, 0x03, 2, buffer);
+ if (error) goto exit;
+
+ buffer[0] = buffer[0] & 0xEF;
+
+ error = Standard_writeTunerRegisters (DemodHandle, DemodChip, 0x03, 2, buffer);
+
+exit:
+ return (error);
+}
+
+Dword TUA8010_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ DemodChip = chip;
+
+ Word bw = 0;
+
+ if (bandwidth == 8000)
+ bw = TUNER_BANDWIDTH_8MHZ;
+ else if (bandwidth == 7000)
+ bw = TUNER_BANDWIDTH_7MHZ;
+ else if (bandwidth == 6000)
+ bw = TUNER_BANDWIDTH_6MHZ;
+ else
+ bw = TUNER_BANDWIDTH_5MHZ;
+
+ error = tuneTUA8010 (frequency, (tunerDriverBW_t)bw);
+ if (error) {
+ error = Error_WRITE_TUNER_FAIL;
+ goto exit;
+ }
+
+exit:
+ return (error);
+}
+
+
+TunerDescription tuner_TUA8010 = {
+ TUA8010_open,
+ TUA8010_close,
+ TUA8010_set,
+ TUA8010_scripts,
+ TUA8010_scriptSets,
+ TUA8010_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ True, /** spectrum inverse */
+ 0x27, /** tuner id */
+};
diff --git a/api/Infineon_TUA8010.h b/api/Infineon_TUA8010.h
new file mode 100644
index 0000000..fcfd7c0
--- /dev/null
+++ b/api/Infineon_TUA8010.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Infineon_TUA8010.h
+ *
+ * ==========================================================
+ * Version: 2.2
+ * Date: 2008.10.22
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.08.19 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Infineon_TUA8010_H__
+#define __Infineon_TUA8010_H__
+
+
+#define TUA8010_VER_MAJOR 2
+#define TUA8010_VER_MINOR 2
+
+extern TunerDescription tuner_TUA8010;
+
+
+/**
+ *
+ */
+Dword TUA8010_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TUA8010_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TUA8010_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Infineon_TUA8010_Script.h b/api/Infineon_TUA8010_Script.h
new file mode 100644
index 0000000..0b18bec
--- /dev/null
+++ b/api/Infineon_TUA8010_Script.h
@@ -0,0 +1,64 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Infineon_TUA8010_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define TUA8010_ADDRESS 0xC0
+#define TUA8010_SCRIPTSETLENGTH 0x00000001
+
+Word TUA8010_scriptSets[] = {
+0x24
+};
+
+ValueSet TUA8010_scripts[] = {
+ {0x0046, 0x2C},
+ {0x0057, 0x00},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x006d, 0x00},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0075, 0x3},
+ {0x0076, 0x02},
+ {0x0077, 0x00},
+ {0x0078, 0x01},
+ {0x0079, 0x0},
+ {0x007a, 0x7E},
+ {0x007b, 0x3E},
+ {0x0093, 0x00},
+ {0x0094, 0x01},
+ {0x0095, 0x02},
+ {0x0096, 0x01},
+ {0x0098, 0x0A},
+ {0x009b, 0x05},
+ {0x009c, 0x80},
+ {0x00b3, 0x00},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0xF007, 0x0},
+ {0xF01F, 0x82},
+ {0xF020, 0x00},
+ {0xF029, 0x82},
+ {0xF02A, 0x00},
+ {0xF047, 0x0},
+ {0xF054, 0x0},
+ {0xF055, 0x0},
+ {0xF077, 0x01},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Infineon_TUA9001.c b/api/Infineon_TUA9001.c
new file mode 100644
index 0000000..d232745
--- /dev/null
+++ b/api/Infineon_TUA9001.c
@@ -0,0 +1,283 @@
+/**
+ * @(#)Infineon_TUA9001.cpp
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2008.10.01
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2008.10.01 Benny Chen fix a bug of C compile issue
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> // for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "driver_tua9001.h"
+#include "Infineon_TUA9001_Script.h"
+
+
+static Demodulator* DemodHandle = NULL;
+static Byte DemodChip = 0;
+
+/*========================================================================================================================
+ additional needed external funtions ( have to be provided by the user! )
+========================================================================================================================*/
+
+/**
+ * set / reset tuner reset input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setRESETN (unsigned int i_state)
+{
+ Dword error = Error_NO_ERROR;
+
+ if (i_state == H_LEVEL) {
+ /* set tuner RXEN pin to "H" */
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot3_o, reg_top_gpiot3_o_pos, reg_top_gpiot3_o_len, 1);
+ if (error) goto exit;
+ } else {
+ /* set tuner RXEN pin to "L" */
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot3_o, reg_top_gpiot3_o_pos, reg_top_gpiot3_o_len, 0);
+ if (error) goto exit;
+ }
+
+exit:
+ if (error)
+ return (TUNER_ERR);
+ else
+ return (TUNER_OK);
+}
+
+/**
+ * set / reset tuner receive enable input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setRXEN (unsigned int i_state)
+{
+ Dword error = Error_NO_ERROR;
+
+ if (i_state == H_LEVEL) {
+ /* set tuner RXEN pin to "H" */
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1);
+ if (error) goto exit;
+ } else {
+ /* set tuner RXEN pin to "L" */
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 0);
+ if (error) goto exit;
+ }
+
+exit:
+ if (error)
+ return (TUNER_ERR);
+ else
+ return (TUNER_OK);
+}
+
+
+/**
+ * set / reset tuner chiop enable input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setCEN (unsigned int i_state)
+ {// wait for H/W design which GPIO to use
+ // if (i_state == H_LEVEL)
+ // /* set tuner CEN pin to "H" */
+ //
+ // else
+ // /* set tuner CEN pin to "L" */
+ //
+ return TUNER_OK;
+ }
+
+
+/**
+ * waitloop
+ * @param i_looptime * 1uS
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int waitloop (unsigned int i_looptime)
+{
+ /* wait time = i_looptime * 1 uS */
+
+ User_delay (DemodHandle, i_looptime/1000);
+
+ return TUNER_OK;
+}
+
+
+/**
+ * i2cBusWrite
+ * @param deviceAdress chip address
+ * @param registerAdress register address
+ * @param *date pointer to data source
+ * @param length number of bytes to transmit
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int i2cBusWrite (unsigned char deviceAddress, unsigned char registerAddress, char *date, unsigned int length)
+{
+ /* I2C write data format */
+ /* STA device_address ACK register_address ACK H_Byte-Data ACK L_Byte-Data !ACK STO */
+
+ /* STA = start condition, ACK = Acknowledge, STO = stop condition */
+ /* *date = pointer to data source */
+ /* length = number of bytes to write */
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_writeTunerRegisters (DemodHandle, DemodChip, (Word)registerAddress, (Byte)length, (Byte*)date);
+ if (error) goto exit;
+
+exit:
+ if (error)
+ return (TUNER_ERR);
+ else
+ return (TUNER_OK);
+}
+
+
+/**
+ * i2cBusRead
+ * @param deviceAdress chip address
+ * @param registerAdress register address
+ * @param *date pointer to data destination
+ * @param length number of bytes to read
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int i2cBusRead (unsigned char deviceAddress, unsigned char registerAddress, char *date, unsigned int length)
+{
+ /* I2C read data format */
+ /* STA device_address ACK register_address ACK STA H_Byte-Data ACK device_address_read ACK H_Byte-Data ACK L_Byte-Data ACKH STO */
+
+ /* STA = start condition, ACK = Acknowledge (generated by TUA9001), ACKH = Acknowledge (generated by Host), STO = stop condition */
+ /* *date = pointer to data destination */
+ /* length = number of bytes to read */
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_readTunerRegisters (DemodHandle, DemodChip, (Word)registerAddress, (Byte)length, (Byte*)date);
+ if (error) goto exit;
+
+exit:
+ if (error)
+ return (TUNER_ERR);
+ else
+ return (TUNER_OK);
+}
+
+/*========================================================================================================================
+ end of additional needed external funtions
+========================================================================================================================*/
+
+Dword TUA9001_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ DemodHandle = demodulator;
+ DemodChip = chip;
+
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot2_en, reg_top_gpiot2_en_pos, reg_top_gpiot2_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot2_on, reg_top_gpiot2_on_pos, reg_top_gpiot2_on_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot3_en, reg_top_gpiot3_en_pos, reg_top_gpiot3_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (DemodHandle, DemodChip, Processor_LINK, p_reg_top_gpiot3_on, reg_top_gpiot3_on_pos, reg_top_gpiot3_on_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (DemodHandle, DemodChip, Processor_LINK, p_reg_top_agc_od, 0);
+ if (error) goto exit;
+
+ error = initializeTua9001();
+ if (error) {
+ error = Error_WRITE_TUNER_FAIL;
+ goto exit;
+ }
+
+exit:
+ return (error);
+}
+
+
+Dword TUA9001_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+Dword TUA9001_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Word bw = 0;
+
+ DemodChip = chip;
+
+ if (bandwidth == 8000)
+ bw = TUNER_BANDWIDTH_8MHZ;
+ else if (bandwidth == 7000)
+ bw = TUNER_BANDWIDTH_7MHZ;
+ else if (bandwidth == 6000)
+ bw = TUNER_BANDWIDTH_6MHZ;
+ else
+ bw = TUNER_BANDWIDTH_5MHZ;
+
+ error = tuneTua9001 (frequency, (tunerDriverBW_t)bw);
+ if (error) {
+ error = Error_WRITE_TUNER_FAIL;
+ goto exit;
+ }
+
+exit:
+ return (error);
+}
+
+
+TunerDescription tuner_TUA9001 = {
+ TUA9001_open,
+ TUA9001_close,
+ TUA9001_set,
+ TUA9001_scripts,
+ TUA9001_scriptSets,
+ TUA9001_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ True, /** spectrum inverse */
+ 0x27, /** tuner id */
+}; \ No newline at end of file
diff --git a/api/Infineon_TUA9001.h b/api/Infineon_TUA9001.h
new file mode 100644
index 0000000..550b9fc
--- /dev/null
+++ b/api/Infineon_TUA9001.h
@@ -0,0 +1,61 @@
+/**
+ * @(#)Infineon_TUA9001.h
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2008.10.01
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2008.10.01 Benny Chen fix a bug of C compile issue
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Infineon_TUA9001_H__
+#define __Infineon_TUA9001_H__
+
+
+#define TUA9001_VER_MAJOR 2
+#define TUA9001_VER_MINOR 1
+
+extern TunerDescription tuner_TUA9001;
+
+
+/**
+ *
+ */
+Dword TUA9001_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TUA9001_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TUA9001_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Infineon_TUA9001_Script.h b/api/Infineon_TUA9001_Script.h
new file mode 100644
index 0000000..dacb417
--- /dev/null
+++ b/api/Infineon_TUA9001_Script.h
@@ -0,0 +1,65 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Infineon_TUA9001_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define TUA9001_ADDRESS 0xC0
+#define TUA9001_SCRIPTSETLENGTH 0x00000001
+
+Word TUA9001_scriptSets[] = {
+0x25
+};
+
+ValueSet TUA9001_scripts[] = {
+ {0x0046, 0x27},
+ {0x0057, 0x00},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x006d, 0x00},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0075, 0x3},
+ {0x0076, 0x02},
+ {0x0077, 0x00},
+ {0x0078, 0x01},
+ {0x0079, 0x0},
+ {0x007a, 0x7E},
+ {0x007b, 0x3E},
+ {0x0093, 0x00},
+ {0x0094, 0x01},
+ {0x0095, 0x02},
+ {0x0096, 0x01},
+ {0x0098, 0x0A},
+ {0x009b, 0x05},
+ {0x009c, 0x80},
+ {0x00b3, 0x00},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0x00c7, 0x5D},
+ {0xF007, 0x0},
+ {0xF01F, 0x82},
+ {0xF020, 0x00},
+ {0xF029, 0x82},
+ {0xF02A, 0x00},
+ {0xF047, 0x0},
+ {0xF054, 0x0},
+ {0xF055, 0x0},
+ {0xF077, 0x01},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Integrant_ITD3020.c b/api/Integrant_ITD3020.c
new file mode 100644
index 0000000..e1fcc0d
--- /dev/null
+++ b/api/Integrant_ITD3020.c
@@ -0,0 +1,106 @@
+/**
+ * @(#)Integrant_ITD3020_EXT.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "ITD30x0.h"
+#include "Integrant_ITD3020_Script.h"
+
+
+Demodulator* Integrant_ITD3020_EXT_demodulator;
+Byte Integrant_ITD3020_EXT_chip;
+
+
+Dword ITD3020_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+ Integrant_ITD3020_EXT_demodulator = demodulator;
+ Integrant_ITD3020_EXT_chip = chip;
+
+ AGCMODE = 1; /** If this value = 0, Internal AGC mode. */
+ /** If this value = 1, External AGC mode */
+
+ TUNER_IF = ganymede->tunerDescription->ifFrequency / 1000;
+ TUNER_RF = 88000;
+ TUNER_REFCLK = REF_CLK16_384M;
+
+ ITD30x0MP_Tuner_Init();
+
+ return (error);
+}
+
+
+Dword ITD3020_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword ITD3020_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+ Integrant_ITD3020_EXT_demodulator = demodulator;
+ Integrant_ITD3020_EXT_chip = chip;
+
+ AGCMODE = 1; /** If this value = 0, Internal AGC mode. */
+ /** If this value = 1, External AGC mode */
+
+ TUNER_IF = ganymede->tunerDescription->ifFrequency / 1000;
+ TUNER_RF = frequency;
+ TUNER_REFCLK = REF_CLK16_384M;
+
+ SetFreq(TUNER_RF);
+
+ return (error);
+}
+
+
+TunerDescription tuner_ITD3020 = {
+ ITD3020_open,
+ ITD3020_close,
+ ITD3020_set,
+ ITD3020_scripts,
+ ITD3020_scriptSets,
+ ITD3020_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 850000, /** tuner if */
+ True, /** spectrum inverse */
+ 0x24, /** tuner id */
+};
diff --git a/api/Integrant_ITD3020.h b/api/Integrant_ITD3020.h
new file mode 100644
index 0000000..6a60303
--- /dev/null
+++ b/api/Integrant_ITD3020.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Integrant_ITD3020.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Integrant_ITD3020_H__
+#define __Integrant_ITD3020_H__
+
+
+#define ITD3020_VER_MAJOR 2
+#define ITD3020_VER_MINOR 0
+
+extern TunerDescription tuner_ITD3020;
+
+
+/**
+ *
+ */
+Dword ITD3020_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword ITD3020_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword ITD3020_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Integrant_ITD3020_Script.h b/api/Integrant_ITD3020_Script.h
new file mode 100644
index 0000000..c046dcc
--- /dev/null
+++ b/api/Integrant_ITD3020_Script.h
@@ -0,0 +1,92 @@
+/** script version */
+
+#define ITD3020_ADDRESS 0xC2
+#define ITD3020_SCRIPTSETLENGTH 0x00000001
+
+
+Word ITD3020_scriptSets[] = {
+ 0x50
+};
+
+ValueSet ITD3020_scripts[] = {
+ {0xF600, 0x5},
+ {0xF601, 0x8},
+ {0xF602, 0xb},
+ {0xF603, 0x0e},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1f},
+ {0xF1E6, 0x01},
+ {0xF001, 0x00},
+ {0xF005, 0x01},
+ {0xF004, 0x00},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1C},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1C},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF000, 0x01},
+ {0xF047, 0x00},
+ {0xF007, 0x00},
+ {0xF12F, 0x00},
+ {0xF077, 0x00},
+ {0xF00A, 0x1A},
+ {0xF00B, 0x1B},
+ {0xF00C, 0x1A},
+ {0xF00D, 0x1B},
+ {0xF01F, 0x50},
+ {0xF020, 0x00},
+ {0xF029, 0x46},
+ {0xF02A, 0x00},
+ {0xF010, 0xDF},
+ {0xF011, 0x02},
+ {0xF00E, 0x44},
+ {0xF00F, 0x01},
+ {0xF014, 0xEB},
+ {0xF015, 0x02},
+ {0xF012, 0xF4},
+ {0xF013, 0x01},
+ {0x0066, 0x52},
+ {0xF01B, 0x26},
+ {0xF01C, 0x01},
+ {0xF01D, 0x12},
+ {0xF01E, 0x03},
+ {0xF025, 0xE8},
+ {0xF026, 0x00},
+ {0xF027, 0x5F},
+ {0xF028, 0x03},
+ {0x0044, 0xFF},
+ {0x0045, 0x03},
+ {0x0046, 0xFF},
+ {0x0047, 0x03},
+ {0x0048, 0xFF},
+ {0x0049, 0x03},
+ {0x004a, 0xFF},
+ {0x004b, 0x03},
+ {0x004c, 0xEB},
+ {0x004d, 0x02},
+ {0x0053, 0x68},
+ {0x0054, 0x03},
+ {0x0059, 0x12},
+ {0x005a, 0x03},
+ {0xF02B, 0x00},
+ {0xF02C, 0x01},
+ {0xF03B, 0x9A},
+ {0xF03C, 0x01},
+ {0xF03D, 0x5A},
+ {0xF03E, 0x01},
+ {0xF03F, 0x96},
+ {0xF040, 0x46},
+ {0xF031, 0x0},
+ {0x006b, 0x0A},
+ {0x006c, 0x14},
+ {0x006d, 0x08},
+}; \ No newline at end of file
diff --git a/api/MXL5005.c b/api/MXL5005.c
new file mode 100644
index 0000000..74c8fc9
--- /dev/null
+++ b/api/MXL5005.c
@@ -0,0 +1,2783 @@
+/** MXL5005.cpp : Defines the initialization routines for the DLL. */
+/** 2.6.14 */
+
+#include "MXL5005.h"
+
+
+void InitTunerControls(Tuner_struct *Tuner)
+{
+ MXL5005_RegisterInit(Tuner);
+ MXL5005_ControlInit(Tuner);
+#ifdef _MXL_INTERNAL
+ MXL5005_MXLControlInit(Tuner);
+#endif
+}
+
+/**
+ *
+ * Function: MXL_ConfigTuner
+ *
+ * Description: Configure MXL5005Tuner structure for desired
+ * Channel Bandwidth/Channel Frequency
+ *
+ *
+ * Functions used:
+ * MXL_SynthIFLO_Calc
+ *
+ * Inputs:
+ * Tuner_struct: structure defined at higher level
+ * Mode: Tuner Mode (Analog/Digital)
+ * IF_Mode: IF Mode ( Zero/Low )
+ * Bandwidth: Filter Channel Bandwidth (in Hz)
+ * IF_out: Desired IF out Frequency (in Hz)
+ * Fxtal: Crystal Frerquency (in Hz)
+ * TOP: 0: Dual AGC; Value: take over point
+ * IF_OUT_LOAD: IF out load resistor (200/300 Ohms)
+ * CLOCK_OUT: 0: Turn off clock out; 1: turn on clock out
+ * DIV_OUT: 0: Div-1; 1: Div-4
+ * CAPSELECT: 0: Disable On-chip pulling cap; 1: Enable
+ * EN_RSSI: 0: Disable RSSI; 1: Enable RSSI
+ *
+ * Outputs:
+ * Tuner
+ *
+ * Return:
+ * 0 : Successful
+ * > 0 : Failed
+ *
+ */
+WORD MXL5005_TunerConfig(Tuner_struct *Tuner,
+ BYTE Mode, /* 0: Analog Mode; 1: Digital Mode */
+ BYTE IF_mode, /* for Analog Mode, 0: zero IF; 1: low IF */
+ DWORD Bandwidth, /* filter channel bandwidth (6, 7, 8) */
+ DWORD IF_out, /* Desired IF Out Frequency */
+ DWORD Fxtal, /* XTAL Frequency */
+ BYTE AGC_Mode, /* AGC Mode - Dual AGC: 0, Single AGC: 1 */
+ WORD TOP, /* 0: Dual AGC; Value: take over point */
+ WORD IF_OUT_LOAD, /* IF Out Load Resistor (200 / 300 Ohms) */
+ BYTE CLOCK_OUT, /* 0: turn off clock out; 1: turn on clock out */
+ BYTE DIV_OUT, /* 0: Div-1; 1: Div-4 */
+ BYTE CAPSELECT, /* 0: disable On-Chip pulling cap; 1: enable */
+ BYTE EN_RSSI, /* 0: disable RSSI; 1: enable RSSI */
+ BYTE Mod_Type, /* Modulation Type; */
+ /* 0 - Default; 1 - DVB-T; 2 - ATSC; 3 - QAM; 4 - Analog Cable */
+ BYTE TF_Type /* Tracking Filter */
+ /* 0 - Default; 1 - Off; 2 - Type C; 3 - Type C-H */
+ )
+{
+ WORD status = 0;
+
+ Tuner->Mode = Mode;
+ Tuner->IF_Mode = IF_mode;
+ Tuner->Chan_Bandwidth = Bandwidth;
+ Tuner->IF_OUT = IF_out;
+ Tuner->Fxtal = Fxtal;
+ Tuner->AGC_Mode = AGC_Mode;
+ Tuner->TOP = TOP;
+ Tuner->IF_OUT_LOAD = IF_OUT_LOAD;
+ Tuner->CLOCK_OUT = CLOCK_OUT;
+ Tuner->DIV_OUT = DIV_OUT;
+ Tuner->CAPSELECT = CAPSELECT;
+ Tuner->EN_RSSI = EN_RSSI;
+ Tuner->Mod_Type = Mod_Type;
+ Tuner->TF_Type = TF_Type;
+
+ /**
+ * Initialize all the controls and registers
+ */
+ InitTunerControls (Tuner);
+ /**
+ * Synthesizer LO frequency calculation
+ */
+ MXL_SynthIFLO_Calc( Tuner );
+
+ return status;
+}
+
+/**
+ *
+ * Function: MXL_SynthIFLO_Calc
+ *
+ * Description: Calculate Internal IF-LO Frequency
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * NONE
+ *
+ * Inputs:
+ * Tuner_struct: structure defined at higher level
+ *
+ * Outputs:
+ * Tuner
+ *
+ * Return:
+ * 0 : Successful
+ * > 0 : Failed
+ *
+ */
+void MXL_SynthIFLO_Calc(Tuner_struct *Tuner)
+{
+ if (Tuner->Mode == 1) /* Digital Mode */
+ {
+ Tuner->IF_LO = Tuner->IF_OUT;
+ }
+ else /* Analog Mode */
+ {
+ if(Tuner->IF_Mode == 0) /* Analog Zero IF mode */
+ {
+ Tuner->IF_LO = Tuner->IF_OUT + 400000;
+ }
+ else /* Analog Low IF mode */
+ {
+ Tuner->IF_LO = Tuner->IF_OUT + Tuner->Chan_Bandwidth/2;
+ }
+ }
+}
+
+/**
+ *
+ * Function: MXL_SynthRFTGLO_Calc
+ *
+ * Description: Calculate Internal RF-LO frequency and
+ * internal Tone-Gen(TG)-LO frequency
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * NONE
+ *
+ * Inputs:
+ * Tuner_struct: structure defined at higher level
+ *
+ * Outputs:
+ * Tuner
+ *
+ * Return:
+ * 0 : Successful
+ * > 0 : Failed
+ *
+ */
+void MXL_SynthRFTGLO_Calc(Tuner_struct *Tuner)
+{
+ if (Tuner->Mode == 1) /* Digital Mode */
+ {
+ /** remove 20.48MHz setting for 2.6.10 */
+ Tuner->RF_LO = Tuner->RF_IN;
+ Tuner->TG_LO = Tuner->RF_IN - 750000; /** change for 2.6.6 */
+ }
+ else /* Analog Mode */
+ {
+ if(Tuner->IF_Mode == 0) /* Analog Zero IF mode */
+ {
+ Tuner->RF_LO = Tuner->RF_IN - 400000;
+ Tuner->TG_LO = Tuner->RF_IN - 1750000;
+ }
+ else /* Analog Low IF mode */
+ {
+ Tuner->RF_LO = Tuner->RF_IN - Tuner->Chan_Bandwidth/2;
+ Tuner->TG_LO = Tuner->RF_IN - Tuner->Chan_Bandwidth + 500000;
+ }
+ }
+}
+
+/**
+ *
+ * Function: MXL_OverwriteICDefault
+ *
+ * Description: Overwrite the Default Register Setting
+ *
+ *
+ * Functions used:
+ *
+ * Inputs:
+ * Tuner_struct: structure defined at higher level
+ * Outputs:
+ * Tuner
+ *
+ * Return:
+ * 0 : Successful
+ * > 0 : Failed
+ *
+ */
+WORD MXL_OverwriteICDefault( Tuner_struct *Tuner)
+{
+ WORD status = 0;
+
+ status += MXL_ControlWrite(Tuner, OVERRIDE_1, 1);
+ status += MXL_ControlWrite(Tuner, OVERRIDE_2, 1);
+ status += MXL_ControlWrite(Tuner, OVERRIDE_3, 1);
+ status += MXL_ControlWrite(Tuner, OVERRIDE_4, 1);
+
+ return status;
+}
+
+/**
+ *
+ * Function: MXL_BlockInit
+ *
+ * Description: Tuner Initialization as a function of 'User Settings'
+ * * User settings in Tuner strcuture must be assigned
+ * first
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * Tuner_struct: structure defined at higher level
+ *
+ * Inputs:
+ * Tuner : Tuner structure defined at higher level
+ *
+ * Outputs:
+ * Tuner
+ *
+ * Return:
+ * 0 : Successful
+ * > 0 : Failed
+ *
+ */
+WORD MXL_BlockInit( Tuner_struct *Tuner )
+{
+ WORD status = 0;
+
+ status += MXL_OverwriteICDefault(Tuner);
+
+ /**
+ * Downconverter Control
+ */
+ status += MXL_ControlWrite(Tuner, DN_IQTN_AMP_CUT, Tuner->Mode ? 1 : 0);
+
+ /**
+ * Filter Control
+ */
+ status += MXL_ControlWrite(Tuner, BB_MODE, Tuner->Mode ? 0 : 1);
+ status += MXL_ControlWrite(Tuner, BB_BUF, Tuner->Mode ? 3 : 2);
+ status += MXL_ControlWrite(Tuner, BB_BUF_OA, Tuner->Mode ? 1 : 0);
+
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, Tuner->Mode ? 0 : 1);
+ status += MXL_ControlWrite(Tuner, BB_INITSTATE_DLPF_TUNE, 0);
+
+ /* Initialize Low-Pass Filter */
+ if (Tuner->Mode) { /* Digital Mode */
+ switch (Tuner->Chan_Bandwidth) {
+ case 8000000:
+ status += MXL_ControlWrite(Tuner, BB_DLPF_BANDSEL, 0);
+ break;
+ case 7000000:
+ status += MXL_ControlWrite(Tuner, BB_DLPF_BANDSEL, 2);
+ break;
+ case 6000000:
+ status += MXL_ControlWrite(Tuner, BB_DLPF_BANDSEL, 3);
+ break;
+ }
+ } else { /* Analog Mode */
+ switch (Tuner->Chan_Bandwidth) {
+ case 8000000: /* Low Zero */
+ status += MXL_ControlWrite(Tuner, BB_ALPF_BANDSELECT, (Tuner->IF_Mode ? 0 : 3));
+ break;
+ case 7000000:
+ status += MXL_ControlWrite(Tuner, BB_ALPF_BANDSELECT, (Tuner->IF_Mode ? 1 : 4));
+ break;
+ case 6000000:
+ status += MXL_ControlWrite(Tuner, BB_ALPF_BANDSELECT, (Tuner->IF_Mode ? 2 : 5));
+ break;
+ }
+ }
+
+ /**
+ * Charge Pump Control
+ */
+ status += MXL_ControlWrite(Tuner, RFSYN_CHP_GAIN, Tuner->Mode ? 5 : 8);
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_CHP_HIGAIN, Tuner->Mode ? 1 : 1);
+ status += MXL_ControlWrite(Tuner, EN_CHP_LIN_B, Tuner->Mode ? 0 : 0);
+
+ /**
+ * AGC TOP Control
+ */
+ if (Tuner->AGC_Mode == 0) /* Dual AGC */
+ {
+ status += MXL_ControlWrite(Tuner, AGC_IF, 15);
+ status += MXL_ControlWrite(Tuner, AGC_RF, 15);
+ }
+ else /* Single AGC Mode */
+ status += MXL_ControlWrite(Tuner, AGC_RF, Tuner->Mode? 15 : 12);
+
+
+ if (Tuner->TOP == 55) /* TOP == 5.5 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x0);
+
+ if (Tuner->TOP == 72) /* TOP == 7.2 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x1);
+
+ if (Tuner->TOP == 92) /* TOP == 9.2 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x2);
+
+ if (Tuner->TOP == 110) /* TOP == 11.0 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x3);
+
+ if (Tuner->TOP == 129) /* TOP == 12.9 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x4);
+
+ if (Tuner->TOP == 147) /* TOP == 14.7 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x5);
+
+ if (Tuner->TOP == 168) /* TOP == 16.8 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x6);
+
+ if (Tuner->TOP == 194) /* TOP == 19.4 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x7);
+
+ if (Tuner->TOP == 212) /* TOP == 21.2 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0x9);
+
+ if (Tuner->TOP == 232) /* TOP == 23.2 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0xA);
+
+ if (Tuner->TOP == 252) /* TOP == 25.2 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0xB);
+
+ if (Tuner->TOP == 271) /* TOP == 27.1 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0xC);
+
+ if (Tuner->TOP == 292) /* TOP == 29.2 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0xD);
+
+ if (Tuner->TOP == 317) /* TOP == 31.7 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0xE);
+
+ if (Tuner->TOP == 349) /* TOP == 34.9 */
+ status += MXL_ControlWrite(Tuner, AGC_IF, 0xF);
+
+ /**
+ * IF Synthesizer Control
+ */
+ status += MXL_IFSynthInit( Tuner );
+
+ /**
+ * IF UpConverter Control
+ */
+ if (Tuner->IF_OUT_LOAD == 200)
+ {
+ status += MXL_ControlWrite(Tuner, DRV_RES_SEL, 6);
+ status += MXL_ControlWrite(Tuner, I_DRIVER, 2);
+ }
+ if (Tuner->IF_OUT_LOAD == 300)
+ {
+ status += MXL_ControlWrite(Tuner, DRV_RES_SEL, 4);
+ status += MXL_ControlWrite(Tuner, I_DRIVER, 1);
+ }
+
+ /**
+ * Anti-Alias Filtering Control
+ */
+ /* initialise Anti-Aliasing Filter */
+ if (Tuner->Mode) { /* Digital Mode */
+ if (Tuner->IF_OUT >= 4000000UL && Tuner->IF_OUT <= 6280000UL) {
+ status += MXL_ControlWrite(Tuner, EN_AAF, 1);
+ status += MXL_ControlWrite(Tuner, EN_3P, 1);
+ status += MXL_ControlWrite(Tuner, EN_AUX_3P, 1);
+ status += MXL_ControlWrite(Tuner, SEL_AAF_BAND, 0);
+ }
+ if ((Tuner->IF_OUT == 36125000UL) || (Tuner->IF_OUT == 36150000UL)) {
+ status += MXL_ControlWrite(Tuner, EN_AAF, 1);
+ status += MXL_ControlWrite(Tuner, EN_3P, 1);
+ status += MXL_ControlWrite(Tuner, EN_AUX_3P, 1);
+ status += MXL_ControlWrite(Tuner, SEL_AAF_BAND, 1);
+ }
+ if (Tuner->IF_OUT > 36150000UL) {
+ status += MXL_ControlWrite(Tuner, EN_AAF, 0);
+ status += MXL_ControlWrite(Tuner, EN_3P, 1);
+ status += MXL_ControlWrite(Tuner, EN_AUX_3P, 1);
+ status += MXL_ControlWrite(Tuner, SEL_AAF_BAND, 1);
+ }
+ } else { /* Analog Mode */
+ if (Tuner->IF_OUT >= 4000000UL && Tuner->IF_OUT <= 5000000UL)
+ {
+ status += MXL_ControlWrite(Tuner, EN_AAF, 1);
+ status += MXL_ControlWrite(Tuner, EN_3P, 1);
+ status += MXL_ControlWrite(Tuner, EN_AUX_3P, 1);
+ status += MXL_ControlWrite(Tuner, SEL_AAF_BAND, 0);
+ }
+ if (Tuner->IF_OUT > 5000000UL)
+ {
+ status += MXL_ControlWrite(Tuner, EN_AAF, 0);
+ status += MXL_ControlWrite(Tuner, EN_3P, 0);
+ status += MXL_ControlWrite(Tuner, EN_AUX_3P, 0);
+ status += MXL_ControlWrite(Tuner, SEL_AAF_BAND, 0);
+ }
+ }
+
+ /**
+ * Demod Clock Out
+ */
+ if (Tuner->CLOCK_OUT)
+ status += MXL_ControlWrite(Tuner, SEQ_ENCLK16_CLK_OUT, 1);
+ else
+ status += MXL_ControlWrite(Tuner, SEQ_ENCLK16_CLK_OUT, 0);
+
+ if (Tuner->DIV_OUT == 1)
+ status += MXL_ControlWrite(Tuner, SEQ_SEL4_16B, 1);
+ if (Tuner->DIV_OUT == 0)
+ status += MXL_ControlWrite(Tuner, SEQ_SEL4_16B, 0);
+
+ /**
+ * Crystal Control
+ */
+ if (Tuner->CAPSELECT)
+ status += MXL_ControlWrite(Tuner, XTAL_CAPSELECT, 1);
+ else
+ status += MXL_ControlWrite(Tuner, XTAL_CAPSELECT, 0);
+
+ if (Tuner->Fxtal >= 12000000UL && Tuner->Fxtal <= 16000000UL)
+ status += MXL_ControlWrite(Tuner, IF_SEL_DBL, 1);
+ if (Tuner->Fxtal > 16000000UL && Tuner->Fxtal <= 32000000UL)
+ status += MXL_ControlWrite(Tuner, IF_SEL_DBL, 0);
+
+ if (Tuner->Fxtal >= 12000000UL && Tuner->Fxtal <= 22000000UL)
+ status += MXL_ControlWrite(Tuner, RFSYN_R_DIV, 3);
+ if (Tuner->Fxtal > 22000000UL && Tuner->Fxtal <= 32000000UL)
+ status += MXL_ControlWrite(Tuner, RFSYN_R_DIV, 0);
+
+ /**
+ * Misc Controls
+ */
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 1) /** Analog LowIF mode */
+ status += MXL_ControlWrite(Tuner, SEQ_EXTIQFSMPULSE, 0);
+ else
+ status += MXL_ControlWrite(Tuner, SEQ_EXTIQFSMPULSE, 1);
+
+ /** Set TG_R_DIV */
+ status += MXL_ControlWrite(Tuner, TG_R_DIV, MXL_Ceiling(Tuner->Fxtal, 1000000));
+
+ /**
+ * Apply Default value to BB_INITSTATE_DLPF_TUNE
+ */
+
+
+
+ /**
+ * RSSI Control
+ */
+ if(Tuner->EN_RSSI)
+ {
+ status += MXL_ControlWrite(Tuner, SEQ_EXTSYNTHCALIF, 1);
+ status += MXL_ControlWrite(Tuner, SEQ_EXTDCCAL, 1);
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 1);
+ status += MXL_ControlWrite(Tuner, RFA_ENCLKRFAGC, 1);
+ /* RSSI reference point */
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REF, 2);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFH, 3);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFL, 1);
+ /* TOP point */
+ status += MXL_ControlWrite(Tuner, RFA_FLR, 0);
+ status += MXL_ControlWrite(Tuner, RFA_CEIL, 12);
+ }
+
+ /**
+ * Modulation type bit settings
+ * Override the control values preset
+ */
+ if (Tuner->Mod_Type == MXL_DVBT) /** DVB-T Mode */
+ {
+ Tuner->AGC_Mode = 1; /* Single AGC Mode */
+
+ /* Enable RSSI */
+ status += MXL_ControlWrite(Tuner, SEQ_EXTSYNTHCALIF, 1);
+ status += MXL_ControlWrite(Tuner, SEQ_EXTDCCAL, 1);
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 1);
+ status += MXL_ControlWrite(Tuner, RFA_ENCLKRFAGC, 1);
+ /* RSSI reference point */
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REF, 3);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFH, 5);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFL, 1);
+ /* TOP point */
+ status += MXL_ControlWrite(Tuner, RFA_FLR, 2);
+ status += MXL_ControlWrite(Tuner, RFA_CEIL, 13);
+ if (Tuner->IF_OUT <= 6280000UL) /* Low IF */
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, 0);
+ else /* High IF */
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, 1);
+
+ }
+ if (Tuner->Mod_Type == MXL_ATSC) /* ATSC Mode */
+ {
+ Tuner->AGC_Mode = 1; /* Single AGC Mode */
+ Tuner->EN_RSSI = 1; /* Enable RSSI */
+ /* Enable RSSI */
+ status += MXL_ControlWrite(Tuner, SEQ_EXTSYNTHCALIF, 1);
+ status += MXL_ControlWrite(Tuner, SEQ_EXTDCCAL, 1);
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 1);
+ status += MXL_ControlWrite(Tuner, RFA_ENCLKRFAGC, 1);
+ /* RSSI reference point */
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REF, 2);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFH, 4);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFL, 1);
+ /* TOP point */
+ status += MXL_ControlWrite(Tuner, RFA_FLR, 2);
+ status += MXL_ControlWrite(Tuner, RFA_CEIL, 13);
+
+ status += MXL_ControlWrite(Tuner, BB_INITSTATE_DLPF_TUNE, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_CHP_GAIN, 5); /* Low Zero */
+ if (Tuner->IF_OUT <= 6280000UL) /* Low IF */
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, 0);
+ else /* High IF */
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, 1);
+ }
+ if (Tuner->Mod_Type == MXL_QAM) /* QAM Mode */
+ {
+ Tuner->Mode = MXL_DIGITAL_MODE;
+
+ /** Disable RSSI */ /** change here for v2.6.5 */
+ status += MXL_ControlWrite(Tuner, SEQ_EXTSYNTHCALIF, 1);
+ status += MXL_ControlWrite(Tuner, SEQ_EXTDCCAL, 1);
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 0);
+ status += MXL_ControlWrite(Tuner, RFA_ENCLKRFAGC, 1);
+
+ /* RSSI reference point */
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFH, 5);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REF, 3);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFL, 2);
+
+ status += MXL_ControlWrite(Tuner, RFSYN_CHP_GAIN, 3); /** change here for v2.6.5 */
+
+ if (Tuner->IF_OUT <= 6280000UL) /** Low IF */
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, 0);
+ else /** High IF */
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, 1);
+ }
+ if (Tuner->Mod_Type == MXL_ANALOG_CABLE) /** Analog Cable Mode */
+ {
+ Tuner->AGC_Mode = 1; /** Single AGC Mode */
+
+ /** Disable RSSI */
+ status += MXL_ControlWrite(Tuner, SEQ_EXTSYNTHCALIF, 1);
+ status += MXL_ControlWrite(Tuner, SEQ_EXTDCCAL, 1);
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 0);
+ status += MXL_ControlWrite(Tuner, RFA_ENCLKRFAGC, 1);
+
+ status += MXL_ControlWrite(Tuner, AGC_IF, 1); /** change for 2.6.3 */
+ status += MXL_ControlWrite(Tuner, AGC_RF, 15);
+
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, 1);
+ }
+
+ if (Tuner->Mod_Type == MXL_ANALOG_OTA) /** Analog OTA Terrestrial mode add for 2.6.7 */
+ {
+ /** Enable RSSI */
+ status += MXL_ControlWrite(Tuner, SEQ_EXTSYNTHCALIF, 1);
+ status += MXL_ControlWrite(Tuner, SEQ_EXTDCCAL, 1);
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 1);
+ status += MXL_ControlWrite(Tuner, RFA_ENCLKRFAGC, 1);
+
+ /** RSSI reference point */
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFH, 5);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REF, 3);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFL, 2);
+
+ status += MXL_ControlWrite(Tuner, RFSYN_CHP_GAIN, 3);
+
+ status += MXL_ControlWrite(Tuner, BB_IQSWAP, 1);
+ }
+
+ /** RSSI disable */
+ if(Tuner->EN_RSSI==0)
+ {
+ status += MXL_ControlWrite(Tuner, SEQ_EXTSYNTHCALIF, 1);
+ status += MXL_ControlWrite(Tuner, SEQ_EXTDCCAL, 1);
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 0);
+ status += MXL_ControlWrite(Tuner, RFA_ENCLKRFAGC, 1);
+ }
+
+ return status;
+}
+
+/**
+ *
+ * Function: MXL_IFSynthInit
+ *
+ * Description: Tuner IF Synthesizer related register initialization
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * Tuner_struct: structure defined at higher level
+ *
+ * Inputs:
+ * Tuner : Tuner structure defined at higher level
+ *
+ * Outputs:
+ * Tuner
+ *
+ * Return:
+ * 0 : Successful
+ * > 0 : Failed
+ *
+ */
+WORD MXL_IFSynthInit( Tuner_struct * Tuner )
+{
+ WORD status = 0;
+ /* Declare Local Variables */
+ DWORD Fref = 0;
+ DWORD Kdbl, intModVal;
+ DWORD fracModVal;
+ Kdbl = 2;
+
+ if (Tuner->Fxtal >= 12000000UL && Tuner->Fxtal <= 16000000UL)
+ Kdbl = 2;
+ if (Tuner->Fxtal > 16000000UL && Tuner->Fxtal <= 32000000UL)
+ Kdbl = 1;
+
+ /**
+ * IF Synthesizer Control
+ */
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 1) /* Analog Low IF mode */
+ {
+ if (Tuner->IF_LO == 41000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x0C);
+ Fref = 328000000UL;
+ }
+ if (Tuner->IF_LO == 47000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 376000000UL;
+ }
+ if (Tuner->IF_LO == 54000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x10);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x0C);
+ Fref = 324000000UL;
+ }
+ if (Tuner->IF_LO == 60000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x10);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 360000000UL;
+ }
+ if (Tuner->IF_LO == 39250000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x0C);
+ Fref = 314000000UL;
+ }
+ if (Tuner->IF_LO == 39650000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x0C);
+ Fref = 317200000UL;
+ }
+ if (Tuner->IF_LO == 40150000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x0C);
+ Fref = 321200000UL;
+ }
+ if (Tuner->IF_LO == 40650000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x0C);
+ Fref = 325200000UL;
+ }
+ }
+
+ if (Tuner->Mode || (Tuner->Mode == 0 && Tuner->IF_Mode == 0))
+ {
+ if (Tuner->IF_LO == 57000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x10);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 342000000UL;
+ }
+ if (Tuner->IF_LO == 44000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 352000000UL;
+ }
+ if (Tuner->IF_LO == 43750000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 350000000UL;
+ }
+ if (Tuner->IF_LO == 36650000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x04);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 366500000UL;
+ }
+ if (Tuner->IF_LO == 36150000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x04);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 361500000UL;
+ }
+ if (Tuner->IF_LO == 36000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x04);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 360000000UL;
+ }
+ if (Tuner->IF_LO == 35250000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x04);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 352500000UL;
+ }
+ if (Tuner->IF_LO == 34750000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x04);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 347500000UL;
+ }
+ if (Tuner->IF_LO == 6280000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x07);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 376800000UL;
+ }
+ if (Tuner->IF_LO == 5000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x09);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 360000000UL;
+ }
+ if (Tuner->IF_LO == 4500000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x06);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 360000000UL;
+ }
+ if (Tuner->IF_LO == 4570000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x06);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 365600000UL;
+ }
+ if (Tuner->IF_LO == 4000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x05);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 360000000UL;
+ }
+ if (Tuner->IF_LO == 57400000UL)
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x10);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 344400000UL;
+ }
+ if (Tuner->IF_LO == 44400000UL)
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 355200000UL;
+ }
+ if (Tuner->IF_LO == 44150000UL)
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x08);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 353200000UL;
+ }
+ if (Tuner->IF_LO == 37050000UL)
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x04);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 370500000UL;
+ }
+ if (Tuner->IF_LO == 36550000UL)
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x04);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 365500000UL;
+ }
+ if (Tuner->IF_LO == 36125000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x04);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 361250000UL;
+ }
+ if (Tuner->IF_LO == 6000000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x07);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 360000000UL;
+ }
+ if (Tuner->IF_LO == 5400000UL)
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x07);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x0C);
+ Fref = 324000000UL;
+ }
+ if (Tuner->IF_LO == 5380000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x07);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x0C);
+ Fref = 322800000UL;
+ }
+ if (Tuner->IF_LO == 5200000UL) {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x09);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 374400000UL;
+ }
+ if (Tuner->IF_LO == 4900000UL)
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x09);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 352800000UL;
+ }
+ if (Tuner->IF_LO == 4400000UL)
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x06);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 352000000UL;
+ }
+ if (Tuner->IF_LO == 4063000UL) /** add for 2.6.8 */
+ {
+ status += MXL_ControlWrite(Tuner, IF_DIVVAL, 0x05);
+ status += MXL_ControlWrite(Tuner, IF_VCO_BIAS, 0x08);
+ Fref = 365670000UL;
+ }
+ }
+ /* CHCAL_INT_MOD_IF */
+ /* CHCAL_FRAC_MOD_IF */
+ intModVal = Fref / (Tuner->Fxtal * Kdbl/2);
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_IF, intModVal );
+
+ fracModVal = (2<<15)*(Fref/1000 - (Tuner->Fxtal/1000 * Kdbl/2) * intModVal);
+ fracModVal = fracModVal / ((Tuner->Fxtal * Kdbl/2)/1000);
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_IF, fracModVal);
+
+
+
+ return status;
+}
+
+/**
+ *
+ * Function: MXL_GetXtalInt
+ *
+ * Description: return the Crystal Integration Value for
+ * TG_VCO_BIAS calculation
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * NONE
+ *
+ * Inputs:
+ * Crystal Frequency Value in Hz
+ *
+ * Outputs:
+ * Calculated Crystal Frequency Integration Value
+ *
+ * Return:
+ * 0 : Successful
+ * > 0 : Failed
+ *
+ */
+DWORD MXL_GetXtalInt(DWORD Xtal_Freq)
+{
+ if ((Xtal_Freq % 1000000) == 0)
+ return (Xtal_Freq / 10000);
+ else
+ return (((Xtal_Freq / 1000000) + 1)*100);
+}
+
+/**
+ *
+ * Function: MXL5005_TuneRF
+ *
+ * Description: Set control names to tune to requested RF_IN frequency
+ *
+ * Globals:
+ * None
+ *
+ * Functions used:
+ * MXL_SynthRFTGLO_Calc
+ * MXL5005_ControlWrite
+ * MXL_GetXtalInt
+ *
+ * Inputs:
+ * Tuner : Tuner structure defined at higher level
+ *
+ * Outputs:
+ * Tuner
+ *
+ * Return:
+ * 0 : Successful
+ * 1 : Unsuccessful
+ */
+WORD MXL_TuneRF(Tuner_struct *Tuner, DWORD RF_Freq)
+{
+ /* Declare Local Variables */
+ WORD status = 0;
+ DWORD divider_val, E3, E4, E5, E5A;
+ DWORD Fmax, Fmin, FmaxBin, FminBin;
+ DWORD Kdbl_RF = 2;
+ DWORD tg_divval;
+ DWORD tg_lo;
+ DWORD Xtal_Int;
+
+ DWORD Fref_TG;
+ DWORD Fvco;
+
+ Xtal_Int = MXL_GetXtalInt(Tuner->Fxtal );
+
+ Tuner->RF_IN = RF_Freq;
+
+ MXL_SynthRFTGLO_Calc( Tuner );
+
+ if (Tuner->Fxtal >= 12000000UL && Tuner->Fxtal <= 22000000UL)
+ Kdbl_RF = 2;
+ if (Tuner->Fxtal > 22000000 && Tuner->Fxtal <= 32000000)
+ Kdbl_RF = 1;
+
+ /**
+ * Downconverter Controls
+ *
+ * Look-Up Table Implementation for:
+ * DN_POLY
+ * DN_RFGAIN
+ * DN_CAP_RFLPF
+ * DN_EN_VHFUHFBAR
+ * DN_GAIN_ADJUST
+ * Change the boundary reference from RF_IN to RF_LO
+ */
+ if (Tuner->RF_LO < 40000000UL) {
+ return -1;
+ }
+ if (Tuner->RF_LO >= 40000000UL && Tuner->RF_LO <= 75000000UL) {
+ /* Look-Up Table implementation */
+ status += MXL_ControlWrite(Tuner, DN_POLY, 2);
+ status += MXL_ControlWrite(Tuner, DN_RFGAIN, 3);
+ status += MXL_ControlWrite(Tuner, DN_CAP_RFLPF, 423);
+ status += MXL_ControlWrite(Tuner, DN_EN_VHFUHFBAR, 1);
+ status += MXL_ControlWrite(Tuner, DN_GAIN_ADJUST, 1);
+ }
+ if (Tuner->RF_LO > 75000000UL && Tuner->RF_LO <= 100000000UL) {
+ /* Look-Up Table implementation */
+ status += MXL_ControlWrite(Tuner, DN_POLY, 3);
+ status += MXL_ControlWrite(Tuner, DN_RFGAIN, 3);
+ status += MXL_ControlWrite(Tuner, DN_CAP_RFLPF, 222);
+ status += MXL_ControlWrite(Tuner, DN_EN_VHFUHFBAR, 1);
+ status += MXL_ControlWrite(Tuner, DN_GAIN_ADJUST, 1);
+ }
+ if (Tuner->RF_LO > 100000000UL && Tuner->RF_LO <= 150000000UL) {
+ /* Look-Up Table implementation */
+ status += MXL_ControlWrite(Tuner, DN_POLY, 3);
+ status += MXL_ControlWrite(Tuner, DN_RFGAIN, 3);
+ status += MXL_ControlWrite(Tuner, DN_CAP_RFLPF, 147);
+ status += MXL_ControlWrite(Tuner, DN_EN_VHFUHFBAR, 1);
+ status += MXL_ControlWrite(Tuner, DN_GAIN_ADJUST, 2);
+ }
+ if (Tuner->RF_LO > 150000000UL && Tuner->RF_LO <= 200000000UL) {
+ /* Look-Up Table implementation */
+ status += MXL_ControlWrite(Tuner, DN_POLY, 3);
+ status += MXL_ControlWrite(Tuner, DN_RFGAIN, 3);
+ status += MXL_ControlWrite(Tuner, DN_CAP_RFLPF, 9);
+ status += MXL_ControlWrite(Tuner, DN_EN_VHFUHFBAR, 1);
+ status += MXL_ControlWrite(Tuner, DN_GAIN_ADJUST, 2);
+ }
+ if (Tuner->RF_LO > 200000000UL && Tuner->RF_LO <= 300000000UL) {
+ /* Look-Up Table implementation */
+ status += MXL_ControlWrite(Tuner, DN_POLY, 3);
+ status += MXL_ControlWrite(Tuner, DN_RFGAIN, 3);
+ status += MXL_ControlWrite(Tuner, DN_CAP_RFLPF, 0);
+ status += MXL_ControlWrite(Tuner, DN_EN_VHFUHFBAR, 1);
+ status += MXL_ControlWrite(Tuner, DN_GAIN_ADJUST, 3);
+ }
+ if (Tuner->RF_LO > 300000000UL && Tuner->RF_LO <= 650000000UL) {
+ /* Look-Up Table implementation */
+ status += MXL_ControlWrite(Tuner, DN_POLY, 3);
+ status += MXL_ControlWrite(Tuner, DN_RFGAIN, 1);
+ status += MXL_ControlWrite(Tuner, DN_CAP_RFLPF, 0);
+ status += MXL_ControlWrite(Tuner, DN_EN_VHFUHFBAR, 0);
+ status += MXL_ControlWrite(Tuner, DN_GAIN_ADJUST, 3);
+ }
+ if (Tuner->RF_LO > 650000000UL && Tuner->RF_LO <= 900000000UL) {
+ /* Look-Up Table implementation */
+ status += MXL_ControlWrite(Tuner, DN_POLY, 3);
+ status += MXL_ControlWrite(Tuner, DN_RFGAIN, 2);
+ status += MXL_ControlWrite(Tuner, DN_CAP_RFLPF, 0);
+ status += MXL_ControlWrite(Tuner, DN_EN_VHFUHFBAR, 0);
+ status += MXL_ControlWrite(Tuner, DN_GAIN_ADJUST, 3);
+ }
+ if (Tuner->RF_LO > 900000000UL) {
+ return -1;
+ }
+ /* DN_IQTNBUF_AMP */
+ /* DN_IQTNGNBFBIAS_BST */
+ if (Tuner->RF_LO >= 40000000UL && Tuner->RF_LO <= 75000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 75000000UL && Tuner->RF_LO <= 100000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 100000000UL && Tuner->RF_LO <= 150000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 150000000UL && Tuner->RF_LO <= 200000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 200000000UL && Tuner->RF_LO <= 300000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 300000000UL && Tuner->RF_LO <= 400000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 400000000UL && Tuner->RF_LO <= 450000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 450000000UL && Tuner->RF_LO <= 500000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 500000000UL && Tuner->RF_LO <= 550000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 550000000UL && Tuner->RF_LO <= 600000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 600000000UL && Tuner->RF_LO <= 650000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 650000000UL && Tuner->RF_LO <= 700000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 700000000UL && Tuner->RF_LO <= 750000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 750000000UL && Tuner->RF_LO <= 800000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 1);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 0);
+ }
+ if (Tuner->RF_LO > 800000000UL && Tuner->RF_LO <= 850000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 10);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 1);
+ }
+ if (Tuner->RF_LO > 850000000UL && Tuner->RF_LO <= 900000000UL) {
+ status += MXL_ControlWrite(Tuner, DN_IQTNBUF_AMP, 10);
+ status += MXL_ControlWrite(Tuner, DN_IQTNGNBFBIAS_BST, 1);
+ }
+
+ /**
+ * Set RF Synth and LO Path Control
+ *
+ * Look-Up table implementation for:
+ * RFSYN_EN_OUTMUX
+ * RFSYN_SEL_VCO_OUT
+ * RFSYN_SEL_VCO_HI
+ * RFSYN_SEL_DIVM
+ * RFSYN_RF_DIV_BIAS
+ * DN_SEL_FREQ
+ *
+ * Set divider_val, Fmax, Fmix to use in Equations
+ */
+ FminBin = 28000000UL;
+ FmaxBin = 42500000UL;
+ if (Tuner->RF_LO >= 40000000UL && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 1);
+ divider_val = 64;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 42500000UL;
+ FmaxBin = 56000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 1);
+ divider_val = 64;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 56000000UL;
+ FmaxBin = 85000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 1);
+ divider_val = 32;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 85000000UL;
+ FmaxBin = 112000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 1);
+ divider_val = 32;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 112000000UL;
+ FmaxBin = 170000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 2);
+ divider_val = 16;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 170000000UL;
+ FmaxBin = 225000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 2);
+ divider_val = 16;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 225000000UL;
+ FmaxBin = 300000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 4);
+ divider_val = 8;
+ Fmax = 340000000UL;
+ Fmin = FminBin;
+ }
+ FminBin = 300000000UL;
+ FmaxBin = 340000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 0);
+ divider_val = 8;
+ Fmax = FmaxBin;
+ Fmin = 225000000UL;
+ }
+ FminBin = 340000000UL;
+ FmaxBin = 450000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 2);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 0);
+ divider_val = 8;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 450000000UL;
+ FmaxBin = 680000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 0);
+ divider_val = 4;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 680000000UL;
+ FmaxBin = 900000000UL;
+ if (Tuner->RF_LO > FminBin && Tuner->RF_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1);
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 0);
+ divider_val = 4;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+
+ /* CHCAL_INT_MOD_RF */
+ /* CHCAL_FRAC_MOD_RF */
+ /* RFSYN_LPF_R */
+ /* CHCAL_EN_INT_RF */
+
+ /* Equation E3 */
+ /* RFSYN_VCO_BIAS */
+ E3 = (((Fmax-Tuner->RF_LO)/1000)*32)/((Fmax-Fmin)/1000) + 8;
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, E3);
+
+ /* Equation E4 */
+ /* CHCAL_INT_MOD_RF */
+ E4 = (Tuner->RF_LO*divider_val/1000)/(2*Tuner->Fxtal*Kdbl_RF/1000);
+ MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, E4);
+
+ /* Equation E5 */
+ /* CHCAL_FRAC_MOD_RF */
+ /* CHCAL_EN_INT_RF */
+ E5 = ((2<<17)*(Tuner->RF_LO/10000*divider_val - (E4*(2*Tuner->Fxtal*Kdbl_RF)/10000)))/(2*Tuner->Fxtal*Kdbl_RF/10000);
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, E5);
+
+ /* Equation E5A */
+ /* RFSYN_LPF_R */
+ E5A = (((Fmax - Tuner->RF_LO)/1000)*4/((Fmax-Fmin)/1000)) + 1;
+ status += MXL_ControlWrite(Tuner, RFSYN_LPF_R, E5A);
+
+ /* Euqation E5B */
+ /* CHCAL_EN_INIT_RF */
+ status += MXL_ControlWrite(Tuner, CHCAL_EN_INT_RF, ((E5 == 0) ? 1 : 0));
+
+ /**
+ * Set TG Synth
+ *
+ * Look-Up table implementation for:
+ * TG_LO_DIVVAL
+ * TG_LO_SELVAL
+ *
+ * Set divider_val, Fmax, Fmix to use in Equations
+ */
+ if (Tuner->TG_LO < 33000000UL) {
+ return -1;
+ }
+ FminBin = 33000000UL;
+ FmaxBin = 50000000UL;
+ if (Tuner->TG_LO >= FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0x6);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x0);
+ divider_val = 36;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 50000000UL;
+ FmaxBin = 67000000UL;
+ if (Tuner->TG_LO > FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0x1);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x0);
+ divider_val = 24;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 67000000UL;
+ FmaxBin = 100000000UL;
+ if (Tuner->TG_LO > FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0xC);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x2);
+ divider_val = 18;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 100000000UL;
+ FmaxBin = 150000000UL;
+ if (Tuner->TG_LO > FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0x8);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x2);
+ divider_val = 12;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 150000000UL;
+ FmaxBin = 200000000UL;
+ if (Tuner->TG_LO > FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0x0);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x2);
+ divider_val = 8;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 200000000UL;
+ FmaxBin = 300000000UL;
+ if (Tuner->TG_LO > FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0x8);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x3);
+ divider_val = 6;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 300000000UL;
+ FmaxBin = 400000000UL;
+ if (Tuner->TG_LO > FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0x0);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x3);
+ divider_val = 4;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 400000000UL;
+ FmaxBin = 600000000UL;
+ if (Tuner->TG_LO > FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0x8);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x7);
+ divider_val = 3;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+ FminBin = 600000000UL;
+ FmaxBin = 900000000UL;
+ if (Tuner->TG_LO > FminBin && Tuner->TG_LO <= FmaxBin) {
+ status += MXL_ControlWrite(Tuner, TG_LO_DIVVAL, 0x0);
+ status += MXL_ControlWrite(Tuner, TG_LO_SELVAL, 0x7);
+ divider_val = 2;
+ Fmax = FmaxBin;
+ Fmin = FminBin;
+ }
+
+ /* TG_DIV_VAL */
+ tg_divval = (Tuner->TG_LO*divider_val/100000)
+ *(MXL_Ceiling(Tuner->Fxtal,1000000) * 100) / (Tuner->Fxtal/1000);
+ status += MXL_ControlWrite(Tuner, TG_DIV_VAL, tg_divval);
+
+ if (Tuner->TG_LO > 600000000UL)
+ status += MXL_ControlWrite(Tuner, TG_DIV_VAL, tg_divval + 1 );
+
+ Fmax = 1800000000UL;
+ Fmin = 1200000000UL;
+
+
+
+ /** to prevent overflow of 32 bit unsigned integer, use following equation. Edit for v2.6.4 */
+ Fref_TG = (Tuner->Fxtal/1000)/ MXL_Ceiling(Tuner->Fxtal, 1000000); /** Fref_TF = Fref_TG*1000 */
+
+ Fvco = (Tuner->TG_LO/10000) * divider_val * Fref_TG; /** Fvco = Fvco/10 */
+
+ tg_lo = (((Fmax/10 - Fvco)/100)*32) / ((Fmax-Fmin)/1000)+8;
+
+
+ status += MXL_ControlWrite(Tuner, TG_VCO_BIAS , tg_lo);
+
+
+
+ /** add for 2.6.5 */
+ /** Special setting for QAM */
+ if(Tuner ->Mod_Type == MXL_QAM)
+ {
+ if(Tuner->RF_IN < 680000000)
+ status += MXL_ControlWrite(Tuner, RFSYN_CHP_GAIN, 3);
+ else
+ status += MXL_ControlWrite(Tuner, RFSYN_CHP_GAIN, 2);
+ }
+
+
+ /** remove 20.48MHz setting for 2.6.10 */
+
+ /**
+ * Off Chip Tracking Filter Control
+ */
+ if (Tuner->TF_Type == MXL_TF_OFF) /** Tracking Filter Off State; turn off all the banks */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0);
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0);
+
+ status += MXL_SetGPIO(Tuner, 3, 1); /** turn off Bank 1 */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** turn off Bank 2 */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** turn off Bank 3 */
+ }
+
+ if (Tuner->TF_Type == MXL_TF_C) /** Tracking Filter type C */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1);
+ status += MXL_ControlWrite(Tuner, DAC_DIN_A, 0);
+
+ if (Tuner->RF_IN >= 43000000 && Tuner->RF_IN < 150000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 150000000 && Tuner->RF_IN < 280000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 280000000 && Tuner->RF_IN < 360000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 360000000 && Tuner->RF_IN < 560000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 560000000 && Tuner->RF_IN < 580000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 29);
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 580000000 && Tuner->RF_IN < 630000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 630000000 && Tuner->RF_IN < 700000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 16);
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 700000000 && Tuner->RF_IN < 760000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 7);
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 760000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank3 Off */
+ }
+ }
+
+ if (Tuner->TF_Type == MXL_TF_C_H) /** Tracking Filter type C-H for Hauppauge only */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_DIN_A, 0);
+
+ if (Tuner->RF_IN >= 43000000 && Tuner->RF_IN < 150000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 150000000 && Tuner->RF_IN < 280000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 280000000 && Tuner->RF_IN < 360000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 360000000 && Tuner->RF_IN < 560000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 560000000 && Tuner->RF_IN < 580000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 580000000 && Tuner->RF_IN < 630000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 630000000 && Tuner->RF_IN < 700000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 700000000 && Tuner->RF_IN < 760000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 760000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank3 Off */
+ }
+ }
+
+ if (Tuner->TF_Type == MXL_TF_D) /** Tracking Filter type D */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+
+ if (Tuner->RF_IN >= 43000000 && Tuner->RF_IN < 174000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 174000000 && Tuner->RF_IN < 250000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 250000000 && Tuner->RF_IN < 310000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 310000000 && Tuner->RF_IN < 360000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 360000000 && Tuner->RF_IN < 470000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 470000000 && Tuner->RF_IN < 640000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 640000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ }
+
+
+ if (Tuner->TF_Type == MXL_TF_D_L) /** Tracking Filter type D-L for Lumanate ONLY change for 2.6.3 */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_DIN_A, 0);
+
+ if (Tuner->RF_IN >= 471000000 && (Tuner->RF_IN - 471000000)%6000000 != 0) /** if UHF and terrestrial => Turn off Tracking Filter */
+ {
+ /** Turn off all the banks */
+ status += MXL_SetGPIO(Tuner, 3, 1);
+ status += MXL_SetGPIO(Tuner, 1, 1);
+ status += MXL_SetGPIO(Tuner, 4, 1);
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0);
+
+ status += MXL_ControlWrite(Tuner, AGC_IF, 10);
+ }
+
+ else /** if VHF or cable => Turn on Tracking Filter */
+ {
+ if (Tuner->RF_IN >= 43000000 && Tuner->RF_IN < 140000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 140000000 && Tuner->RF_IN < 240000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 240000000 && Tuner->RF_IN < 340000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 340000000 && Tuner->RF_IN < 430000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 430000000 && Tuner->RF_IN < 470000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 470000000 && Tuner->RF_IN < 570000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 570000000 && Tuner->RF_IN < 620000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 0); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Offq */
+ }
+ if (Tuner->RF_IN >= 620000000 && Tuner->RF_IN < 760000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 760000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_A_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ }
+ }
+
+ if (Tuner->TF_Type == MXL_TF_E) /** Tracking Filter type E */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+
+ if (Tuner->RF_IN >= 43000000 && Tuner->RF_IN < 174000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 174000000 && Tuner->RF_IN < 250000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 250000000 && Tuner->RF_IN < 310000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 310000000 && Tuner->RF_IN < 360000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 360000000 && Tuner->RF_IN < 470000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 470000000 && Tuner->RF_IN < 640000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 640000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ }
+
+ if (Tuner->TF_Type == MXL_TF_F) /** Tracking Filter type F */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+
+ if (Tuner->RF_IN >= 43000000 && Tuner->RF_IN < 160000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 160000000 && Tuner->RF_IN < 210000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 210000000 && Tuner->RF_IN < 300000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 300000000 && Tuner->RF_IN < 390000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 390000000 && Tuner->RF_IN < 515000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 515000000 && Tuner->RF_IN < 650000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 650000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ }
+
+ if (Tuner->TF_Type == MXL_TF_E_2) /** Tracking Filter type E_2 */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+
+ if (Tuner->RF_IN >= 43000000 && Tuner->RF_IN < 174000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 174000000 && Tuner->RF_IN < 250000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 250000000 && Tuner->RF_IN < 350000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 on */
+ }
+ if (Tuner->RF_IN >= 350000000 && Tuner->RF_IN < 400000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 400000000 && Tuner->RF_IN < 570000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 570000000 && Tuner->RF_IN < 770000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 770000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ }
+
+ if (Tuner->TF_Type == MXL_TF_G) /** Tracking Filter type G add for v2.6.8 */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+
+ if (Tuner->RF_IN >= 50000000 && Tuner->RF_IN < 190000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 190000000 && Tuner->RF_IN < 280000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 280000000 && Tuner->RF_IN < 350000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 350000000 && Tuner->RF_IN < 400000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 400000000 && Tuner->RF_IN < 470000000) /** modified for 2.6.11 */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 470000000 && Tuner->RF_IN < 640000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 640000000 && Tuner->RF_IN < 820000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 820000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ }
+
+ if (Tuner->TF_Type == MXL_TF_E_NA) /** Tracking Filter type E-NA for Empia ONLY change for 2.6.8 */
+ {
+ status += MXL_ControlWrite(Tuner, DAC_DIN_B, 0);
+
+ if (Tuner->RF_IN >= 471000000 && (Tuner->RF_IN - 471000000)%6000000 != 0) /**if UHF and terrestrial=> Turn off Tracking Filter */
+ {
+ /** Turn off all the banks */
+ status += MXL_SetGPIO(Tuner, 3, 1);
+ status += MXL_SetGPIO(Tuner, 1, 1);
+ status += MXL_SetGPIO(Tuner, 4, 1);
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0);
+
+ /** 2.6.12 */
+ /** Turn on RSSI */
+ status += MXL_ControlWrite(Tuner, SEQ_EXTSYNTHCALIF, 1);
+ status += MXL_ControlWrite(Tuner, SEQ_EXTDCCAL, 1);
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 1);
+ status += MXL_ControlWrite(Tuner, RFA_ENCLKRFAGC, 1);
+
+ /** RSSI reference point */
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFH, 5);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REF, 3);
+ status += MXL_ControlWrite(Tuner, RFA_RSSI_REFL, 2);
+
+ /** following parameter is from analog OTA mode, can be change to seek better performance */
+ status += MXL_ControlWrite(Tuner, RFSYN_CHP_GAIN, 3);
+ }
+
+ else /** if VHF or Cable => Turn on Tracking Filter */
+ {
+ /** 2.6.12 */
+ /** Turn off RSSI */
+ status += MXL_ControlWrite(Tuner, AGC_EN_RSSI, 0);
+
+ /** change back from above condition */
+ status += MXL_ControlWrite(Tuner, RFSYN_CHP_GAIN, 5);
+ if (Tuner->RF_IN >= 43000000 && Tuner->RF_IN < 174000000)
+ {
+
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 174000000 && Tuner->RF_IN < 250000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 0); /** Bank1 On */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 250000000 && Tuner->RF_IN < 350000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ if (Tuner->RF_IN >= 350000000 && Tuner->RF_IN < 400000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 0); /** Bank2 On */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 400000000 && Tuner->RF_IN < 570000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 0); /** Bank4 Off */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 570000000 && Tuner->RF_IN < 770000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 0); /** Bank3 On */
+ }
+ if (Tuner->RF_IN >= 770000000 && Tuner->RF_IN <= 900000000)
+ {
+ status += MXL_ControlWrite(Tuner, DAC_B_ENABLE, 1); /** Bank4 On */
+ status += MXL_SetGPIO(Tuner, 4, 1); /** Bank1 Off */
+ status += MXL_SetGPIO(Tuner, 1, 1); /** Bank2 Off */
+ status += MXL_SetGPIO(Tuner, 3, 1); /** Bank3 Off */
+ }
+ }
+ }
+ return status;
+}
+
+WORD MXL_SetGPIO(Tuner_struct *Tuner, BYTE GPIO_Num, BYTE GPIO_Val)
+{
+ WORD status = 0;
+
+ if (GPIO_Num == 1)
+ status += MXL_ControlWrite(Tuner, GPIO_1B, GPIO_Val ? 0 : 1);
+ /* GPIO2 is not available */
+ if (GPIO_Num == 3)
+ {
+ if (GPIO_Val == 1) {
+ status += MXL_ControlWrite(Tuner, GPIO_3, 0);
+ status += MXL_ControlWrite(Tuner, GPIO_3B, 0);
+ }
+ if (GPIO_Val == 0) {
+ status += MXL_ControlWrite(Tuner, GPIO_3, 1);
+ status += MXL_ControlWrite(Tuner, GPIO_3B, 1);
+ }
+ if (GPIO_Val == 3) { /* tri-state */
+ status += MXL_ControlWrite(Tuner, GPIO_3, 0);
+ status += MXL_ControlWrite(Tuner, GPIO_3B, 1);
+ }
+ }
+ if (GPIO_Num == 4)
+ {
+ if (GPIO_Val == 1) {
+ status += MXL_ControlWrite(Tuner, GPIO_4, 0);
+ status += MXL_ControlWrite(Tuner, GPIO_4B, 0);
+ }
+ if (GPIO_Val == 0) {
+ status += MXL_ControlWrite(Tuner, GPIO_4, 1);
+ status += MXL_ControlWrite(Tuner, GPIO_4B, 1);
+ }
+ if (GPIO_Val == 3) { /* tri-state */
+ status += MXL_ControlWrite(Tuner, GPIO_4, 0);
+ status += MXL_ControlWrite(Tuner, GPIO_4B, 1);
+ }
+ }
+
+ return status;
+}
+
+/**
+ *
+ * Function: MXL_ControlWrite
+ *
+ * Description: Update control name value
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * MXL_ControlWrite( Tuner, controlName, value, Group )
+ *
+ * Inputs:
+ * Tuner : Tuner structure
+ * ControlName : Control name to be updated
+ * value : Value to be written
+ *
+ * Outputs:
+ * Tuner : Tuner structure defined at higher level
+ *
+ * Return:
+ * 0 : Successful write
+ * >0 : Value exceed maximum allowed for control number
+ *
+ */
+WORD MXL_ControlWrite(Tuner_struct *Tuner, WORD ControlNum, DWORD value)
+{
+ WORD status = 0;
+ /* Will write ALL Matching Control Name */
+ status += MXL_ControlWrite_Group( Tuner, ControlNum, value, 1 ); /* Write Matching INIT Control */
+ status += MXL_ControlWrite_Group( Tuner, ControlNum, value, 2 ); /* Write Matching CH Control */
+#ifdef _MXL_INTERNAL
+ status += MXL_ControlWrite_Group( Tuner, ControlNum, value, 3 ); /* Write Matching MXL Control */
+#endif
+
+ return status;
+}
+
+/**
+ *
+ * Function: MXL_ControlWrite
+ *
+ * Description: Update control name value
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * strcmp
+ *
+ * Inputs:
+ * Tuner_struct: structure defined at higher level
+ * ControlName : Control Name
+ * value : Value Assigned to Control Name
+ * controlGroup : Control Register Group
+ *
+ * Outputs:
+ * NONE
+ *
+ * Return:
+ * 0 : Successful write
+ * 1 : Value exceed maximum allowed for control name
+ * 2 : Control name not found
+ *
+ */
+WORD MXL_ControlWrite_Group(Tuner_struct *Tuner, WORD controlNum, DWORD value, WORD controlGroup)
+{
+ WORD i, j, k;
+ DWORD highLimit;
+ DWORD ctrlVal;
+
+ if( controlGroup == 1) /* Initial Control */
+ {
+ for (i=0; i<Tuner->Init_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->Init_Ctrl[i].Ctrl_Num )
+ { /* find the control Name */
+ highLimit = 1 << Tuner->Init_Ctrl[i].size ;
+ if ( value < highLimit)
+ {
+ for( j=0; j<Tuner->Init_Ctrl[i].size; j++)
+ {
+ Tuner->Init_Ctrl[i].val[j] = (BYTE)((value >> j) & 0x01);
+ /** change the register map accordingly */
+ MXL_RegWriteBit( Tuner, (BYTE)(Tuner->Init_Ctrl[i].addr[j]),
+ (BYTE)(Tuner->Init_Ctrl[i].bit[j]),
+ (BYTE)((value>>j) & 0x01) );
+ }
+ ctrlVal = 0;
+ for(k=0; k<Tuner->Init_Ctrl[i].size; k++)
+ {
+ ctrlVal += Tuner->Init_Ctrl[i].val[k] * (1 << k);
+ }
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ }
+ }
+ if ( controlGroup == 2) /* Chan change Control */
+ {
+ for (i=0; i<Tuner->CH_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->CH_Ctrl[i].Ctrl_Num )
+ { /* find the control Name */
+ highLimit = 1 << Tuner->CH_Ctrl[i].size;
+ if ( value < highLimit)
+ {
+ for( j=0; j<Tuner->CH_Ctrl[i].size; j++)
+ {
+ Tuner->CH_Ctrl[i].val[j] = (BYTE)((value >> j) & 0x01);
+ /** change the register map accordingly */
+ MXL_RegWriteBit( Tuner, (BYTE)(Tuner->CH_Ctrl[i].addr[j]),
+ (BYTE)(Tuner->CH_Ctrl[i].bit[j]),
+ (BYTE)((value>>j) & 0x01) );
+ }
+ ctrlVal = 0;
+ for(k=0; k<Tuner->CH_Ctrl[i].size; k++)
+ {
+ ctrlVal += Tuner->CH_Ctrl[i].val[k] * (1 << k);
+ }
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ }
+ }
+#ifdef _MXL_INTERNAL
+ if ( controlGroup == 3) /* Maxlinear Control */
+ {
+ for (i=0; i<Tuner->MXL_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->MXL_Ctrl[i].Ctrl_Num )
+ { /* find the control Name */
+ highLimit = (1 << Tuner->MXL_Ctrl[i].size);
+ if ( value < highLimit)
+ {
+ for( j=0; j<Tuner->MXL_Ctrl[i].size; j++)
+ {
+ Tuner->MXL_Ctrl[i].val[j] = (BYTE)((value >> j) & 0x01);
+ /** change the register map accordingly */
+ MXL_RegWriteBit( Tuner, (BYTE)(Tuner->MXL_Ctrl[i].addr[j]),
+ (BYTE)(Tuner->MXL_Ctrl[i].bit[j]),
+ (BYTE)((value>>j) & 0x01) );
+ }
+ ctrlVal = 0;
+ for(k=0; k<Tuner->MXL_Ctrl[i].size; k++)
+ {
+ ctrlVal += Tuner->MXL_Ctrl[i].val[k] * (1 << k);
+ }
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ }
+ }
+#endif
+ return 0; /* successful return */
+}
+
+/**
+ *
+ * Function: MXL_RegWrite
+ *
+ * Description: Update tuner register value
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * NONE
+ *
+ * Inputs:
+ * Tuner_struct: structure defined at higher level
+ * RegNum : Register address to be assigned a value
+ * RegVal : Register value to write
+ *
+ * Outputs:
+ * NONE
+ *
+ * Return:
+ * 0 : Successful write
+ * -1 : Invalid Register Address
+ *
+ */
+WORD MXL_RegWrite(Tuner_struct *Tuner, BYTE RegNum, BYTE RegVal)
+{
+ int i;
+
+ for (i=0; i<104; i++)
+ {
+ if (RegNum == Tuner->TunerRegs[i].Reg_Num )
+ {
+ Tuner->TunerRegs[i].Reg_Val = RegVal;
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+/**
+ *
+ * Function: MXL_RegRead
+ *
+ * Description: Retrieve tuner register value
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * NONE
+ *
+ * Inputs:
+ * Tuner_struct: structure defined at higher level
+ * RegNum : Register address to be assigned a value
+ *
+ * Outputs:
+ * RegVal : Retrieved register value
+ *
+ * Return:
+ * 0 : Successful read
+ * -1 : Invalid Register Address
+ *
+ */
+WORD MXL_RegRead(Tuner_struct *Tuner, BYTE RegNum, BYTE *RegVal)
+{
+ int i;
+
+ for (i=0; i<104; i++)
+ {
+ if (RegNum == Tuner->TunerRegs[i].Reg_Num )
+ {
+ *RegVal = (BYTE)(Tuner->TunerRegs[i].Reg_Val);
+ return 0;
+ }
+ }
+
+ return 1;
+}
+
+/**
+ *
+ * Function: MXL_ControlRead
+ *
+ * Description: Retrieve the control value based on the control name
+ *
+ * Globals:
+ * NONE
+ *
+ * Inputs:
+ * Tuner_struct : structure defined at higher level
+ * ControlName : Control Name
+ *
+ * Outputs:
+ * value : returned control value
+ *
+ * Return:
+ * 0 : Successful read
+ * -1 : Invalid control name
+ *
+ */
+WORD MXL_ControlRead(Tuner_struct *Tuner, WORD controlNum, DWORD * value)
+{
+ DWORD ctrlVal;
+ WORD i, k;
+
+ for (i=0; i<Tuner->Init_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->Init_Ctrl[i].Ctrl_Num )
+ {
+ ctrlVal = 0;
+ for(k=0; k<Tuner->Init_Ctrl[i].size; k++)
+ ctrlVal += Tuner->Init_Ctrl[i].val[k] * (1 << k);
+ *value = ctrlVal;
+ return 0;
+ }
+ }
+ for (i=0; i<Tuner->CH_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->CH_Ctrl[i].Ctrl_Num )
+ {
+ ctrlVal = 0;
+ for(k=0; k<Tuner->CH_Ctrl[i].size; k++)
+ ctrlVal += Tuner->CH_Ctrl[i].val[k] * (1 << k);
+ *value = ctrlVal;
+ return 0;
+ }
+ }
+
+#ifdef _MXL_INTERNAL
+ for (i=0; i<Tuner->MXL_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->MXL_Ctrl[i].Ctrl_Num )
+ {
+ ctrlVal = 0;
+ for(k=0; k<Tuner->MXL_Ctrl[i].size; k++)
+ ctrlVal += Tuner->MXL_Ctrl[i].val[k] * (1<<k);
+ *value = ctrlVal;
+ return 0;
+ }
+ }
+#endif
+ return 1;
+}
+
+/**
+ *
+ * Function: MXL_ControlRegRead
+ *
+ * Description: Retrieve the register addresses and count related to a
+ * a specific control name
+ *
+ * Globals:
+ * NONE
+ *
+ * Inputs:
+ * Tuner_struct : structure defined at higher level
+ * ControlName : Control Name
+ *
+ * Outputs:
+ * RegNum : returned register address array
+ * count : returned register count related to a control
+ *
+ * Return:
+ * 0 : Successful read
+ * -1 : Invalid control name
+ *
+ */
+WORD MXL_ControlRegRead(Tuner_struct *Tuner, WORD controlNum, BYTE *RegNum, int * count)
+{
+ WORD i, j, k;
+ WORD Count;
+
+ for (i=0; i<Tuner->Init_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->Init_Ctrl[i].Ctrl_Num )
+ {
+ Count = 1;
+ RegNum[0] = (BYTE)(Tuner->Init_Ctrl[i].addr[0]);
+
+ for(k=1; k<Tuner->Init_Ctrl[i].size; k++)
+ {
+ for (j= 0; j<Count; j++)
+ {
+ if (Tuner->Init_Ctrl[i].addr[k] != RegNum[j])
+ {
+ Count ++;
+ RegNum[Count-1] = (BYTE)(Tuner->Init_Ctrl[i].addr[k]);
+ }
+ }
+
+ }
+ *count = Count;
+ return 0;
+ }
+ }
+ for (i=0; i<Tuner->CH_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->CH_Ctrl[i].Ctrl_Num )
+ {
+ Count = 1;
+ RegNum[0] = (BYTE)(Tuner->CH_Ctrl[i].addr[0]);
+
+ for(k=1; k<Tuner->CH_Ctrl[i].size; k++)
+ {
+ for (j= 0; j<Count; j++)
+ {
+ if (Tuner->CH_Ctrl[i].addr[k] != RegNum[j])
+ {
+ Count ++;
+ RegNum[Count-1] = (BYTE)(Tuner->CH_Ctrl[i].addr[k]);
+ }
+ }
+ }
+ *count = Count;
+ return 0;
+ }
+ }
+#ifdef _MXL_INTERNAL
+ for (i=0; i<Tuner->MXL_Ctrl_Num; i++)
+ {
+ if ( controlNum == Tuner->MXL_Ctrl[i].Ctrl_Num )
+ {
+ Count = 1;
+ RegNum[0] = (BYTE)(Tuner->MXL_Ctrl[i].addr[0]);
+
+ for(k=1; k<Tuner->MXL_Ctrl[i].size; k++)
+ {
+ for (j= 0; j<Count; j++)
+ {
+ if (Tuner->MXL_Ctrl[i].addr[k] != RegNum[j])
+ {
+ Count ++;
+ RegNum[Count-1] = (BYTE)Tuner->MXL_Ctrl[i].addr[k];
+ }
+ }
+ }
+ *count = Count;
+ return 0;
+ }
+ }
+#endif
+ *count = 0;
+ return 1;
+}
+
+/**
+ *
+ * Function: MXL_RegWriteBit
+ *
+ * Description: Write a register for specified register address,
+ * register bit and register bit value
+ *
+ * Globals:
+ * NONE
+ *
+ * Inputs:
+ * Tuner_struct : structure defined at higher level
+ * address : register address
+ * bit : register bit number
+ * bitVal : register bit value
+ *
+ * Outputs:
+ * NONE
+ *
+ * Return:
+ * NONE
+ *
+ */
+void MXL_RegWriteBit(Tuner_struct *Tuner, BYTE address, BYTE bit, BYTE bitVal)
+{
+ int i;
+
+ /* Declare Local Constants */
+ const BYTE AND_MAP[8] = {
+ 0xFE, 0xFD, 0xFB, 0xF7,
+ 0xEF, 0xDF, 0xBF, 0x7F };
+
+ const BYTE OR_MAP[8] = {
+ 0x01, 0x02, 0x04, 0x08,
+ 0x10, 0x20, 0x40, 0x80 };
+
+ for(i=0; i<Tuner->TunerRegs_Num; i++) {
+ if ( Tuner->TunerRegs[i].Reg_Num == address ) {
+ if (bitVal)
+ Tuner->TunerRegs[i].Reg_Val |= OR_MAP[bit];
+ else
+ Tuner->TunerRegs[i].Reg_Val &= AND_MAP[bit];
+ break;
+ }
+ }
+};
+
+
+/**
+ *
+ * Function: MXL_Ceiling
+ *
+ * Description: Complete to closest increment of resolution
+ *
+ * Globals:
+ * NONE
+ *
+ * Functions used:
+ * NONE
+ *
+ * Inputs:
+ * value : Input number to compute
+ * resolution : Increment step
+ *
+ * Outputs:
+ * NONE
+ *
+ * Return:
+ * Computed value
+ *
+ */
+DWORD MXL_Ceiling( DWORD value, DWORD resolution )
+{
+ return (value/resolution + (value%resolution > 0 ? 1 : 0));
+};
+
+/**
+ * Retrieve the Initialzation Registers
+ */
+WORD MXL_GetInitRegister(Tuner_struct *Tuner, BYTE * RegNum, BYTE *RegVal, int *count)
+{
+ WORD status = 0;
+ int i;
+
+ BYTE RegAddr[] = {11, 12, 13, 22, 32, 43, 44, 53, 56, 59, 73,
+ 76, 77, 91, 134, 135, 137, 147,
+ 156, 166, 167, 168, 25 };
+ *count = sizeof(RegAddr) / sizeof(BYTE);
+
+ status += MXL_BlockInit(Tuner);
+
+ for (i=0; i< *count; i++)
+ {
+ RegNum[i] = RegAddr[i];
+ status += MXL_RegRead(Tuner, RegNum[i], &RegVal[i]);
+ }
+
+ return status;
+}
+
+WORD MXL_GetCHRegister(Tuner_struct *Tuner, BYTE * RegNum, BYTE *RegVal, int *count)
+{
+ WORD status = 0;
+ int i;
+
+/** add 77, 166, 167, 168 register for 2.6.12 */
+#ifdef _MXL_PRODUCTION
+ BYTE RegAddr[] = {14, 15, 16, 17, 22, 43, 65, 68, 69, 70, 73, 92, 93, 106,
+ 107, 108, 109, 110, 111, 112, 136, 138, 149, 77, 166, 167, 168 };
+#else
+ BYTE RegAddr[] = {14, 15, 16, 17, 22, 43, 68, 69, 70, 73, 92, 93, 106,
+ 107, 108, 109, 110, 111, 112, 136, 138, 149, 77, 166, 167, 168 };
+#endif
+
+ *count = sizeof(RegAddr) / sizeof(BYTE);
+
+ for (i=0; i< *count; i++)
+ {
+ RegNum[i] = RegAddr[i];
+ status += MXL_RegRead(Tuner, RegNum[i], &RegVal[i]);
+ }
+
+ return status;
+
+}
+
+WORD MXL_GetCHRegister_ZeroIF(Tuner_struct *Tuner, BYTE * RegNum, BYTE *RegVal, int *count)
+{
+ WORD status = 0;
+ int i;
+
+ BYTE RegAddr[] = {43, 136};
+
+ *count = sizeof(RegAddr) / sizeof(BYTE);
+
+ for (i=0; i<*count; i++)
+ {
+ RegNum[i] = RegAddr[i];
+ status += MXL_RegRead(Tuner, RegNum[i], &RegVal[i]);
+ }
+ return status;
+
+}
+
+WORD MXL_GetCHRegister_LowIF(Tuner_struct *Tuner, BYTE * RegNum, BYTE *RegVal, int *count)
+{
+ WORD status = 0;
+ int i;
+
+ BYTE RegAddr[] = {138};
+
+ *count = sizeof(RegAddr) / sizeof(BYTE);
+
+ for (i=0; i<*count; i++)
+ {
+ RegNum[i] = RegAddr[i];
+ status += MXL_RegRead(Tuner, RegNum[i], &RegVal[i]);
+ }
+ return status;
+
+}
+
+WORD MXL_GetMasterControl(BYTE *MasterReg, int state)
+{
+ if (state == 1) /** Load_Start */
+ *MasterReg = 0xF3;
+ if (state == 2) /** Power_Down */
+ *MasterReg = 0x41;
+ if (state == 3) /** Synth_Reset */
+ *MasterReg = 0xB1;
+ if (state == 4) /** Seq_Off */
+ *MasterReg = 0xF1;
+
+ return 0;
+}
+
+#ifdef _MXL_PRODUCTION
+WORD MXL_VCORange_Test(Tuner_struct *Tuner, int VCO_Range)
+{
+ WORD status = 0;
+
+ if (VCO_Range == 1) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_DIV, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_DIVM, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1 );
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 0 );
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 1) /* Analog Low IF Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 8 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 56 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 180224 );
+ }
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 0) /* Analog Zero IF Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 8 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 56 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 222822 );
+ }
+ if (Tuner->Mode == 1) /* Digital Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 8 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 56 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 229376 );
+ }
+ }
+
+ if (VCO_Range == 2) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_DIV, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_DIVM, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1 );
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 40 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 41 );
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 1) /* Analog Low IF Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 40 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 42 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 206438 );
+ }
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 0) /* Analog Zero IF Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 40 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 42 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 206438 );
+ }
+ if (Tuner->Mode == 1) /* Digital Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 40 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 41 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 16384 );
+ }
+ }
+
+ if (VCO_Range == 3) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_DIV, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_DIVM, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1 );
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 8 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 42 );
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 1) /* Analog Low IF Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 8 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 44 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 173670 );
+ }
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 0) /* Analog Zero IF Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 8 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 44 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 173670 );
+ }
+ if (Tuner->Mode == 1) /* Digital Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 8 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 42 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 245760 );
+ }
+ }
+
+ if (VCO_Range == 4) {
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_DIV, 1);
+ status += MXL_ControlWrite(Tuner, RFSYN_EN_OUTMUX, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_DIVM, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_DIVM, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_OUT, 1 );
+ status += MXL_ControlWrite(Tuner, RFSYN_RF_DIV_BIAS, 1 );
+ status += MXL_ControlWrite(Tuner, DN_SEL_FREQ, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 40 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 27 );
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 1) /* Analog Low IF Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 40 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 27 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 206438 );
+ }
+ if (Tuner->Mode == 0 && Tuner->IF_Mode == 0) /* Analog Zero IF Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 40 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 27 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 206438 );
+ }
+ if (Tuner->Mode == 1) /* Digital Mode */
+ {
+ status += MXL_ControlWrite(Tuner, RFSYN_SEL_VCO_HI, 0 );
+ status += MXL_ControlWrite(Tuner, RFSYN_VCO_BIAS, 40 );
+ status += MXL_ControlWrite(Tuner, CHCAL_INT_MOD_RF, 27 );
+ status += MXL_ControlWrite(Tuner, CHCAL_FRAC_MOD_RF, 212992 );
+ }
+ }
+
+ return status;
+}
+
+WORD MXL_Hystersis_Test(Tuner_struct *Tuner, int Hystersis)
+{
+ WORD status = 0;
+
+ if (Hystersis == 1)
+ status += MXL_ControlWrite(Tuner, DN_BYPASS_AGC_I2C, 1);
+
+ return status;
+}
+#endif
diff --git a/api/MXL5005.h b/api/MXL5005.h
new file mode 100644
index 0000000..7594e6f
--- /dev/null
+++ b/api/MXL5005.h
@@ -0,0 +1,68 @@
+/**
+ * MXL5005.h : main header file for the MXL5005 DLL
+ */
+#pragma once
+
+#include "Common.h"
+#ifdef _MXL_INTERNAL
+#include "Common_MXL.h"
+#endif
+
+void InitTunerControls( Tuner_struct *Tuner) ;
+
+WORD MXL_BlockInit( Tuner_struct *Tuner ) ;
+
+WORD MXL5005_RegisterInit (Tuner_struct * Tuner) ;
+WORD MXL5005_ControlInit (Tuner_struct *Tuner) ;
+
+#ifdef _MXL_INTERNAL
+ WORD MXL5005_MXLControlInit(Tuner_struct *Tuner) ;
+#endif
+
+WORD MXL5005_TunerConfig(Tuner_struct *Tuner,
+ BYTE Mode, /* 0: Analog Mode ; 1: Digital Mode */
+ BYTE IF_mode, /* for Analog Mode, 0: zero IF; 1: low IF */
+ DWORD Bandwidth, /* filter channel bandwidth (6, 7, 8) */
+ DWORD IF_out, /* Desired IF Out Frequency */
+ DWORD Fxtal, /* XTAL Frequency */
+ BYTE AGC_Mode, /* AGC Mode - Dual AGC: 0, Single AGC: 1 */
+ WORD TOP, /* 0: Dual AGC; Value: take over point */
+ WORD IF_OUT_LOAD,/* IF Out Load Resistor (200 / 300 Ohms) */
+ BYTE CLOCK_OUT, /* 0: turn off clock out; 1: turn on clock out */
+ BYTE DIV_OUT, /* 4MHz or 16MHz */
+ BYTE CAPSELECT, /* 0: disable On-Chip pulling cap; 1: enable */
+ BYTE EN_RSSI, /* 0: disable RSSI; 1: enable RSSI */
+ BYTE Mod_Type, /** Modulation Type; */
+ /** 0 - Default; 1 - DVB-T; 2 - ATSC; 3 - QAM; 4 - Analog Cable */
+ BYTE TF_Type /** Tracking Filter Type */
+ /** 0 - Default; 1 - Off; 2 - Type C; 3 - Type C-H */
+ ) ;
+
+void MXL_SynthIFLO_Calc(Tuner_struct *Tuner) ;
+void MXL_SynthRFTGLO_Calc(Tuner_struct *Tuner) ;
+WORD MXL_RegWrite(Tuner_struct *Tuner, BYTE RegNum, BYTE RegVal) ;
+WORD MXL_RegRead(Tuner_struct *Tuner, BYTE RegNum, BYTE *RegVal) ;
+WORD MXL_ControlWrite(Tuner_struct *Tuner, WORD ControlNum, DWORD value) ;
+WORD MXL_ControlWrite_Group(Tuner_struct *Tuner, WORD ControlNum, DWORD value, WORD controlGroup) ;
+WORD MXL_ControlRead(Tuner_struct *Tuner, WORD ControlNum, DWORD * value) ;
+WORD MXL_ControlRegRead(Tuner_struct *Tuner, WORD ControlNum, BYTE *RegNum, int * count) ;
+void MXL_RegWriteBit(Tuner_struct *Tuner, BYTE address, BYTE bit, BYTE bitVal);
+WORD MXL_IFSynthInit( Tuner_struct * Tuner ) ;
+WORD MXL_TuneRF(Tuner_struct *Tuner, DWORD RF_Freq) ;
+WORD MXL_OverwriteICDefault( Tuner_struct *Tuner) ;
+WORD MXL_SetGPIO(Tuner_struct *Tuner, BYTE GPIO_Num, BYTE GPIO_Val) ;
+DWORD MXL_Ceiling( DWORD value, DWORD resolution ) ;
+DWORD MXL_GetXtalInt(DWORD Xtal_Freq) ;
+
+WORD MXL_GetInitRegister(Tuner_struct *Tuner, BYTE * RegNum, BYTE *RegVal, int *count) ;
+WORD MXL_GetCHRegister(Tuner_struct *Tuner, BYTE * RegNum, BYTE *RegVal, int *count) ;
+WORD MXL_GetCHRegister_ZeroIF(Tuner_struct *Tuner, BYTE * RegNum, BYTE *RegVal, int *count) ;
+WORD MXL_GetCHRegister_LowIF(Tuner_struct *Tuner, BYTE * RegNum, BYTE *RegVal, int *count) ;
+WORD MXL_GetMasterControl(BYTE *MasterReg, int state) ;
+
+#ifdef _MXL_PRODUCTION
+WORD MXL_VCORange_Test(Tuner_struct *Tuner, int VCO_Range) ;
+WORD MXL_Hystersis_Test(Tuner_struct *Tuner, int Hystersis) ;
+#endif
+
+
diff --git a/api/MXL5005_Initialize.c b/api/MXL5005_Initialize.c
new file mode 100644
index 0000000..2239c0d
--- /dev/null
+++ b/api/MXL5005_Initialize.c
@@ -0,0 +1,1259 @@
+#include "MXL5005.h"
+
+WORD MXL5005_RegisterInit (Tuner_struct * Tuner)
+{
+ Tuner->TunerRegs_Num = TUNER_REGS_NUM ;
+
+ Tuner->TunerRegs[0].Reg_Num = 9 ;
+ Tuner->TunerRegs[0].Reg_Val = 0x40 ;
+
+ Tuner->TunerRegs[1].Reg_Num = 11 ;
+ Tuner->TunerRegs[1].Reg_Val = 0x19 ;
+
+ Tuner->TunerRegs[2].Reg_Num = 12 ;
+ Tuner->TunerRegs[2].Reg_Val = 0x60 ;
+
+ Tuner->TunerRegs[3].Reg_Num = 13 ;
+ Tuner->TunerRegs[3].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[4].Reg_Num = 14 ;
+ Tuner->TunerRegs[4].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[5].Reg_Num = 15 ;
+ Tuner->TunerRegs[5].Reg_Val = 0xC0 ;
+
+ Tuner->TunerRegs[6].Reg_Num = 16 ;
+ Tuner->TunerRegs[6].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[7].Reg_Num = 17 ;
+ Tuner->TunerRegs[7].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[8].Reg_Num = 18 ;
+ Tuner->TunerRegs[8].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[9].Reg_Num = 19 ;
+ Tuner->TunerRegs[9].Reg_Val = 0x34 ;
+
+ Tuner->TunerRegs[10].Reg_Num = 21 ;
+ Tuner->TunerRegs[10].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[11].Reg_Num = 22 ;
+ Tuner->TunerRegs[11].Reg_Val = 0x6B ;
+
+ Tuner->TunerRegs[12].Reg_Num = 23 ;
+ Tuner->TunerRegs[12].Reg_Val = 0x35 ;
+
+ Tuner->TunerRegs[13].Reg_Num = 24 ;
+ Tuner->TunerRegs[13].Reg_Val = 0x70 ;
+
+ Tuner->TunerRegs[14].Reg_Num = 25 ;
+ Tuner->TunerRegs[14].Reg_Val = 0x3E ;
+
+ Tuner->TunerRegs[15].Reg_Num = 26 ;
+ Tuner->TunerRegs[15].Reg_Val = 0x82 ;
+
+ Tuner->TunerRegs[16].Reg_Num = 31 ;
+ Tuner->TunerRegs[16].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[17].Reg_Num = 32 ;
+ Tuner->TunerRegs[17].Reg_Val = 0x40 ;
+
+ Tuner->TunerRegs[18].Reg_Num = 33 ;
+ Tuner->TunerRegs[18].Reg_Val = 0x53 ;
+
+ Tuner->TunerRegs[19].Reg_Num = 34 ;
+ Tuner->TunerRegs[19].Reg_Val = 0x81 ;
+
+ Tuner->TunerRegs[20].Reg_Num = 35 ;
+ Tuner->TunerRegs[20].Reg_Val = 0xC9 ;
+
+ Tuner->TunerRegs[21].Reg_Num = 36 ;
+ Tuner->TunerRegs[21].Reg_Val = 0x01 ;
+
+ Tuner->TunerRegs[22].Reg_Num = 37 ;
+ Tuner->TunerRegs[22].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[23].Reg_Num = 41 ;
+ Tuner->TunerRegs[23].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[24].Reg_Num = 42 ;
+ Tuner->TunerRegs[24].Reg_Val = 0xF8 ;
+
+ Tuner->TunerRegs[25].Reg_Num = 43 ;
+ Tuner->TunerRegs[25].Reg_Val = 0x43 ;
+
+ Tuner->TunerRegs[26].Reg_Num = 44 ;
+ Tuner->TunerRegs[26].Reg_Val = 0x20 ;
+
+ Tuner->TunerRegs[27].Reg_Num = 45 ;
+ Tuner->TunerRegs[27].Reg_Val = 0x80 ;
+
+ Tuner->TunerRegs[28].Reg_Num = 46 ;
+ Tuner->TunerRegs[28].Reg_Val = 0x88 ;
+
+ Tuner->TunerRegs[29].Reg_Num = 47 ;
+ Tuner->TunerRegs[29].Reg_Val = 0x86 ;
+
+ Tuner->TunerRegs[30].Reg_Num = 48 ;
+ Tuner->TunerRegs[30].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[31].Reg_Num = 49 ;
+ Tuner->TunerRegs[31].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[32].Reg_Num = 53 ;
+ Tuner->TunerRegs[32].Reg_Val = 0x94 ;
+
+ Tuner->TunerRegs[33].Reg_Num = 54 ;
+ Tuner->TunerRegs[33].Reg_Val = 0xFA ;
+
+ Tuner->TunerRegs[34].Reg_Num = 55 ;
+ Tuner->TunerRegs[34].Reg_Val = 0x92 ;
+
+ Tuner->TunerRegs[35].Reg_Num = 56 ;
+ Tuner->TunerRegs[35].Reg_Val = 0x80 ;
+
+ Tuner->TunerRegs[36].Reg_Num = 57 ;
+ Tuner->TunerRegs[36].Reg_Val = 0x41 ;
+
+ Tuner->TunerRegs[37].Reg_Num = 58 ;
+ Tuner->TunerRegs[37].Reg_Val = 0xDB ;
+
+ Tuner->TunerRegs[38].Reg_Num = 59 ;
+ Tuner->TunerRegs[38].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[39].Reg_Num = 60 ;
+ Tuner->TunerRegs[39].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[40].Reg_Num = 61 ;
+ Tuner->TunerRegs[40].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[41].Reg_Num = 62 ;
+ Tuner->TunerRegs[41].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[42].Reg_Num = 65 ;
+ Tuner->TunerRegs[42].Reg_Val = 0xF8 ;
+
+ Tuner->TunerRegs[43].Reg_Num = 66 ;
+ Tuner->TunerRegs[43].Reg_Val = 0xE4 ;
+
+ Tuner->TunerRegs[44].Reg_Num = 67 ;
+ Tuner->TunerRegs[44].Reg_Val = 0x90 ;
+
+ Tuner->TunerRegs[45].Reg_Num = 68 ;
+ Tuner->TunerRegs[45].Reg_Val = 0xC0 ;
+
+ Tuner->TunerRegs[46].Reg_Num = 69 ;
+ Tuner->TunerRegs[46].Reg_Val = 0x01 ;
+
+ Tuner->TunerRegs[47].Reg_Num = 70 ;
+ Tuner->TunerRegs[47].Reg_Val = 0x50 ;
+
+ Tuner->TunerRegs[48].Reg_Num = 71 ;
+ Tuner->TunerRegs[48].Reg_Val = 0x06 ;
+
+ Tuner->TunerRegs[49].Reg_Num = 72 ;
+ Tuner->TunerRegs[49].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[50].Reg_Num = 73 ;
+ Tuner->TunerRegs[50].Reg_Val = 0x20 ;
+
+ Tuner->TunerRegs[51].Reg_Num = 76 ;
+ Tuner->TunerRegs[51].Reg_Val = 0xBB ;
+
+ Tuner->TunerRegs[52].Reg_Num = 77 ;
+ Tuner->TunerRegs[52].Reg_Val = 0x13 ;
+
+ Tuner->TunerRegs[53].Reg_Num = 81 ;
+ Tuner->TunerRegs[53].Reg_Val = 0x04 ;
+
+ Tuner->TunerRegs[54].Reg_Num = 82 ;
+ Tuner->TunerRegs[54].Reg_Val = 0x75 ;
+
+ Tuner->TunerRegs[55].Reg_Num = 83 ;
+ Tuner->TunerRegs[55].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[56].Reg_Num = 84 ;
+ Tuner->TunerRegs[56].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[57].Reg_Num = 85 ;
+ Tuner->TunerRegs[57].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[58].Reg_Num = 91 ;
+ Tuner->TunerRegs[58].Reg_Val = 0x70 ;
+
+ Tuner->TunerRegs[59].Reg_Num = 92 ;
+ Tuner->TunerRegs[59].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[60].Reg_Num = 93 ;
+ Tuner->TunerRegs[60].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[61].Reg_Num = 94 ;
+ Tuner->TunerRegs[61].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[62].Reg_Num = 95 ;
+ Tuner->TunerRegs[62].Reg_Val = 0x0C ;
+
+ Tuner->TunerRegs[63].Reg_Num = 96 ;
+ Tuner->TunerRegs[63].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[64].Reg_Num = 97 ;
+ Tuner->TunerRegs[64].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[65].Reg_Num = 98 ;
+ Tuner->TunerRegs[65].Reg_Val = 0xE2 ;
+
+ Tuner->TunerRegs[66].Reg_Num = 99 ;
+ Tuner->TunerRegs[66].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[67].Reg_Num = 100 ;
+ Tuner->TunerRegs[67].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[68].Reg_Num = 101 ;
+ Tuner->TunerRegs[68].Reg_Val = 0x12 ;
+
+ Tuner->TunerRegs[69].Reg_Num = 102 ;
+ Tuner->TunerRegs[69].Reg_Val = 0x80 ;
+
+ Tuner->TunerRegs[70].Reg_Num = 103 ;
+ Tuner->TunerRegs[70].Reg_Val = 0x32 ;
+
+ Tuner->TunerRegs[71].Reg_Num = 104 ;
+ Tuner->TunerRegs[71].Reg_Val = 0xB4 ;
+
+ Tuner->TunerRegs[72].Reg_Num = 105 ;
+ Tuner->TunerRegs[72].Reg_Val = 0x60 ;
+
+ Tuner->TunerRegs[73].Reg_Num = 106 ;
+ Tuner->TunerRegs[73].Reg_Val = 0x83 ;
+
+ Tuner->TunerRegs[74].Reg_Num = 107 ;
+ Tuner->TunerRegs[74].Reg_Val = 0x84 ;
+
+ Tuner->TunerRegs[75].Reg_Num = 108 ;
+ Tuner->TunerRegs[75].Reg_Val = 0x9C ;
+
+ Tuner->TunerRegs[76].Reg_Num = 109 ;
+ Tuner->TunerRegs[76].Reg_Val = 0x02 ;
+
+ Tuner->TunerRegs[77].Reg_Num = 110 ;
+ Tuner->TunerRegs[77].Reg_Val = 0x81 ;
+
+ Tuner->TunerRegs[78].Reg_Num = 111 ;
+ Tuner->TunerRegs[78].Reg_Val = 0xC0 ;
+
+ Tuner->TunerRegs[79].Reg_Num = 112 ;
+ Tuner->TunerRegs[79].Reg_Val = 0x10 ;
+
+ Tuner->TunerRegs[80].Reg_Num = 131 ;
+ Tuner->TunerRegs[80].Reg_Val = 0x8A ;
+
+ Tuner->TunerRegs[81].Reg_Num = 132 ;
+ Tuner->TunerRegs[81].Reg_Val = 0x10 ;
+
+ Tuner->TunerRegs[82].Reg_Num = 133 ;
+ Tuner->TunerRegs[82].Reg_Val = 0x24 ;
+
+ Tuner->TunerRegs[83].Reg_Num = 134 ;
+ Tuner->TunerRegs[83].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[84].Reg_Num = 135 ;
+ Tuner->TunerRegs[84].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[85].Reg_Num = 136 ;
+ Tuner->TunerRegs[85].Reg_Val = 0x7E ;
+
+ Tuner->TunerRegs[86].Reg_Num = 137 ;
+ Tuner->TunerRegs[86].Reg_Val = 0x40 ;
+
+ Tuner->TunerRegs[87].Reg_Num = 138 ;
+ Tuner->TunerRegs[87].Reg_Val = 0x38 ;
+
+ Tuner->TunerRegs[88].Reg_Num = 146 ;
+ Tuner->TunerRegs[88].Reg_Val = 0xF6 ;
+
+ Tuner->TunerRegs[89].Reg_Num = 147 ;
+ Tuner->TunerRegs[89].Reg_Val = 0x1A ;
+
+ Tuner->TunerRegs[90].Reg_Num = 148 ;
+ Tuner->TunerRegs[90].Reg_Val = 0x62 ;
+
+ Tuner->TunerRegs[91].Reg_Num = 149 ;
+ Tuner->TunerRegs[91].Reg_Val = 0x33 ;
+
+ Tuner->TunerRegs[92].Reg_Num = 150 ;
+ Tuner->TunerRegs[92].Reg_Val = 0x80 ;
+
+ Tuner->TunerRegs[93].Reg_Num = 156 ;
+ Tuner->TunerRegs[93].Reg_Val = 0x56 ;
+
+ Tuner->TunerRegs[94].Reg_Num = 157 ;
+ Tuner->TunerRegs[94].Reg_Val = 0x17 ;
+
+ Tuner->TunerRegs[95].Reg_Num = 158 ;
+ Tuner->TunerRegs[95].Reg_Val = 0xA9 ;
+
+ Tuner->TunerRegs[96].Reg_Num = 159 ;
+ Tuner->TunerRegs[96].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[97].Reg_Num = 160 ;
+ Tuner->TunerRegs[97].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[98].Reg_Num = 161 ;
+ Tuner->TunerRegs[98].Reg_Val = 0x00 ;
+
+ Tuner->TunerRegs[99].Reg_Num = 162 ;
+ Tuner->TunerRegs[99].Reg_Val = 0x40 ;
+
+ Tuner->TunerRegs[100].Reg_Num = 166 ;
+ Tuner->TunerRegs[100].Reg_Val = 0xAE ;
+
+ Tuner->TunerRegs[101].Reg_Num = 167 ;
+ Tuner->TunerRegs[101].Reg_Val = 0x03 ;
+
+ Tuner->TunerRegs[102].Reg_Num = 168 ;
+ Tuner->TunerRegs[102].Reg_Val = 0xF2 ;
+
+ Tuner->TunerRegs[103].Reg_Num = 195 ;
+ Tuner->TunerRegs[103].Reg_Val = 0x00 ;
+
+ return 0 ;
+}
+
+WORD MXL5005_ControlInit (Tuner_struct *Tuner)
+{
+ Tuner->Init_Ctrl_Num = INITCTRL_NUM ;
+
+ Tuner->Init_Ctrl[0].Ctrl_Num = DN_IQTN_AMP_CUT ;
+ Tuner->Init_Ctrl[0].size = 1 ;
+ Tuner->Init_Ctrl[0].addr[0] = 73;
+ Tuner->Init_Ctrl[0].bit[0] = 7;
+ Tuner->Init_Ctrl[0].val[0] = 0;
+
+ Tuner->Init_Ctrl[1].Ctrl_Num = BB_MODE ;
+ Tuner->Init_Ctrl[1].size = 1 ;
+ Tuner->Init_Ctrl[1].addr[0] = 53;
+ Tuner->Init_Ctrl[1].bit[0] = 2;
+ Tuner->Init_Ctrl[1].val[0] = 1;
+
+ Tuner->Init_Ctrl[2].Ctrl_Num = BB_BUF ;
+ Tuner->Init_Ctrl[2].size = 2 ;
+ Tuner->Init_Ctrl[2].addr[0] = 53;
+ Tuner->Init_Ctrl[2].bit[0] = 1;
+ Tuner->Init_Ctrl[2].val[0] = 0;
+ Tuner->Init_Ctrl[2].addr[1] = 57;
+ Tuner->Init_Ctrl[2].bit[1] = 0;
+ Tuner->Init_Ctrl[2].val[1] = 1;
+
+ Tuner->Init_Ctrl[3].Ctrl_Num = BB_BUF_OA ;
+ Tuner->Init_Ctrl[3].size = 1 ;
+ Tuner->Init_Ctrl[3].addr[0] = 53;
+ Tuner->Init_Ctrl[3].bit[0] = 0;
+ Tuner->Init_Ctrl[3].val[0] = 0;
+
+ Tuner->Init_Ctrl[4].Ctrl_Num = BB_ALPF_BANDSELECT ;
+ Tuner->Init_Ctrl[4].size = 3 ;
+ Tuner->Init_Ctrl[4].addr[0] = 53;
+ Tuner->Init_Ctrl[4].bit[0] = 5;
+ Tuner->Init_Ctrl[4].val[0] = 0;
+ Tuner->Init_Ctrl[4].addr[1] = 53;
+ Tuner->Init_Ctrl[4].bit[1] = 6;
+ Tuner->Init_Ctrl[4].val[1] = 0;
+ Tuner->Init_Ctrl[4].addr[2] = 53;
+ Tuner->Init_Ctrl[4].bit[2] = 7;
+ Tuner->Init_Ctrl[4].val[2] = 1;
+
+ Tuner->Init_Ctrl[5].Ctrl_Num = BB_IQSWAP ;
+ Tuner->Init_Ctrl[5].size = 1 ;
+ Tuner->Init_Ctrl[5].addr[0] = 59;
+ Tuner->Init_Ctrl[5].bit[0] = 0;
+ Tuner->Init_Ctrl[5].val[0] = 0;
+
+ Tuner->Init_Ctrl[6].Ctrl_Num = BB_DLPF_BANDSEL ;
+ Tuner->Init_Ctrl[6].size = 2 ;
+ Tuner->Init_Ctrl[6].addr[0] = 53;
+ Tuner->Init_Ctrl[6].bit[0] = 3;
+ Tuner->Init_Ctrl[6].val[0] = 0;
+ Tuner->Init_Ctrl[6].addr[1] = 53;
+ Tuner->Init_Ctrl[6].bit[1] = 4;
+ Tuner->Init_Ctrl[6].val[1] = 1;
+
+ Tuner->Init_Ctrl[7].Ctrl_Num = RFSYN_CHP_GAIN ;
+ Tuner->Init_Ctrl[7].size = 4 ;
+ Tuner->Init_Ctrl[7].addr[0] = 22;
+ Tuner->Init_Ctrl[7].bit[0] = 4;
+ Tuner->Init_Ctrl[7].val[0] = 0;
+ Tuner->Init_Ctrl[7].addr[1] = 22;
+ Tuner->Init_Ctrl[7].bit[1] = 5;
+ Tuner->Init_Ctrl[7].val[1] = 1;
+ Tuner->Init_Ctrl[7].addr[2] = 22;
+ Tuner->Init_Ctrl[7].bit[2] = 6;
+ Tuner->Init_Ctrl[7].val[2] = 1;
+ Tuner->Init_Ctrl[7].addr[3] = 22;
+ Tuner->Init_Ctrl[7].bit[3] = 7;
+ Tuner->Init_Ctrl[7].val[3] = 0;
+
+ Tuner->Init_Ctrl[8].Ctrl_Num = RFSYN_EN_CHP_HIGAIN ;
+ Tuner->Init_Ctrl[8].size = 1 ;
+ Tuner->Init_Ctrl[8].addr[0] = 22;
+ Tuner->Init_Ctrl[8].bit[0] = 2;
+ Tuner->Init_Ctrl[8].val[0] = 0;
+
+ Tuner->Init_Ctrl[9].Ctrl_Num = AGC_IF ;
+ Tuner->Init_Ctrl[9].size = 4 ;
+ Tuner->Init_Ctrl[9].addr[0] = 76;
+ Tuner->Init_Ctrl[9].bit[0] = 0;
+ Tuner->Init_Ctrl[9].val[0] = 1;
+ Tuner->Init_Ctrl[9].addr[1] = 76;
+ Tuner->Init_Ctrl[9].bit[1] = 1;
+ Tuner->Init_Ctrl[9].val[1] = 1;
+ Tuner->Init_Ctrl[9].addr[2] = 76;
+ Tuner->Init_Ctrl[9].bit[2] = 2;
+ Tuner->Init_Ctrl[9].val[2] = 0;
+ Tuner->Init_Ctrl[9].addr[3] = 76;
+ Tuner->Init_Ctrl[9].bit[3] = 3;
+ Tuner->Init_Ctrl[9].val[3] = 1;
+
+ Tuner->Init_Ctrl[10].Ctrl_Num = AGC_RF ;
+ Tuner->Init_Ctrl[10].size = 4 ;
+ Tuner->Init_Ctrl[10].addr[0] = 76;
+ Tuner->Init_Ctrl[10].bit[0] = 4;
+ Tuner->Init_Ctrl[10].val[0] = 1;
+ Tuner->Init_Ctrl[10].addr[1] = 76;
+ Tuner->Init_Ctrl[10].bit[1] = 5;
+ Tuner->Init_Ctrl[10].val[1] = 1;
+ Tuner->Init_Ctrl[10].addr[2] = 76;
+ Tuner->Init_Ctrl[10].bit[2] = 6;
+ Tuner->Init_Ctrl[10].val[2] = 0;
+ Tuner->Init_Ctrl[10].addr[3] = 76;
+ Tuner->Init_Ctrl[10].bit[3] = 7;
+ Tuner->Init_Ctrl[10].val[3] = 1;
+
+ Tuner->Init_Ctrl[11].Ctrl_Num = IF_DIVVAL ;
+ Tuner->Init_Ctrl[11].size = 5 ;
+ Tuner->Init_Ctrl[11].addr[0] = 43;
+ Tuner->Init_Ctrl[11].bit[0] = 3;
+ Tuner->Init_Ctrl[11].val[0] = 0;
+ Tuner->Init_Ctrl[11].addr[1] = 43;
+ Tuner->Init_Ctrl[11].bit[1] = 4;
+ Tuner->Init_Ctrl[11].val[1] = 0;
+ Tuner->Init_Ctrl[11].addr[2] = 43;
+ Tuner->Init_Ctrl[11].bit[2] = 5;
+ Tuner->Init_Ctrl[11].val[2] = 0;
+ Tuner->Init_Ctrl[11].addr[3] = 43;
+ Tuner->Init_Ctrl[11].bit[3] = 6;
+ Tuner->Init_Ctrl[11].val[3] = 1;
+ Tuner->Init_Ctrl[11].addr[4] = 43;
+ Tuner->Init_Ctrl[11].bit[4] = 7;
+ Tuner->Init_Ctrl[11].val[4] = 0;
+
+ Tuner->Init_Ctrl[12].Ctrl_Num = IF_VCO_BIAS ;
+ Tuner->Init_Ctrl[12].size = 6 ;
+ Tuner->Init_Ctrl[12].addr[0] = 44;
+ Tuner->Init_Ctrl[12].bit[0] = 2;
+ Tuner->Init_Ctrl[12].val[0] = 0;
+ Tuner->Init_Ctrl[12].addr[1] = 44;
+ Tuner->Init_Ctrl[12].bit[1] = 3;
+ Tuner->Init_Ctrl[12].val[1] = 0;
+ Tuner->Init_Ctrl[12].addr[2] = 44;
+ Tuner->Init_Ctrl[12].bit[2] = 4;
+ Tuner->Init_Ctrl[12].val[2] = 0;
+ Tuner->Init_Ctrl[12].addr[3] = 44;
+ Tuner->Init_Ctrl[12].bit[3] = 5;
+ Tuner->Init_Ctrl[12].val[3] = 1;
+ Tuner->Init_Ctrl[12].addr[4] = 44;
+ Tuner->Init_Ctrl[12].bit[4] = 6;
+ Tuner->Init_Ctrl[12].val[4] = 0;
+ Tuner->Init_Ctrl[12].addr[5] = 44;
+ Tuner->Init_Ctrl[12].bit[5] = 7;
+ Tuner->Init_Ctrl[12].val[5] = 0;
+
+ Tuner->Init_Ctrl[13].Ctrl_Num = CHCAL_INT_MOD_IF ;
+ Tuner->Init_Ctrl[13].size = 7 ;
+ Tuner->Init_Ctrl[13].addr[0] = 11;
+ Tuner->Init_Ctrl[13].bit[0] = 0;
+ Tuner->Init_Ctrl[13].val[0] = 1;
+ Tuner->Init_Ctrl[13].addr[1] = 11;
+ Tuner->Init_Ctrl[13].bit[1] = 1;
+ Tuner->Init_Ctrl[13].val[1] = 0;
+ Tuner->Init_Ctrl[13].addr[2] = 11;
+ Tuner->Init_Ctrl[13].bit[2] = 2;
+ Tuner->Init_Ctrl[13].val[2] = 0;
+ Tuner->Init_Ctrl[13].addr[3] = 11;
+ Tuner->Init_Ctrl[13].bit[3] = 3;
+ Tuner->Init_Ctrl[13].val[3] = 1;
+ Tuner->Init_Ctrl[13].addr[4] = 11;
+ Tuner->Init_Ctrl[13].bit[4] = 4;
+ Tuner->Init_Ctrl[13].val[4] = 1;
+ Tuner->Init_Ctrl[13].addr[5] = 11;
+ Tuner->Init_Ctrl[13].bit[5] = 5;
+ Tuner->Init_Ctrl[13].val[5] = 0;
+ Tuner->Init_Ctrl[13].addr[6] = 11;
+ Tuner->Init_Ctrl[13].bit[6] = 6;
+ Tuner->Init_Ctrl[13].val[6] = 0;
+
+ Tuner->Init_Ctrl[14].Ctrl_Num = CHCAL_FRAC_MOD_IF ;
+ Tuner->Init_Ctrl[14].size = 16 ;
+ Tuner->Init_Ctrl[14].addr[0] = 13;
+ Tuner->Init_Ctrl[14].bit[0] = 0;
+ Tuner->Init_Ctrl[14].val[0] = 0;
+ Tuner->Init_Ctrl[14].addr[1] = 13;
+ Tuner->Init_Ctrl[14].bit[1] = 1;
+ Tuner->Init_Ctrl[14].val[1] = 0;
+ Tuner->Init_Ctrl[14].addr[2] = 13;
+ Tuner->Init_Ctrl[14].bit[2] = 2;
+ Tuner->Init_Ctrl[14].val[2] = 0;
+ Tuner->Init_Ctrl[14].addr[3] = 13;
+ Tuner->Init_Ctrl[14].bit[3] = 3;
+ Tuner->Init_Ctrl[14].val[3] = 0;
+ Tuner->Init_Ctrl[14].addr[4] = 13;
+ Tuner->Init_Ctrl[14].bit[4] = 4;
+ Tuner->Init_Ctrl[14].val[4] = 0;
+ Tuner->Init_Ctrl[14].addr[5] = 13;
+ Tuner->Init_Ctrl[14].bit[5] = 5;
+ Tuner->Init_Ctrl[14].val[5] = 0;
+ Tuner->Init_Ctrl[14].addr[6] = 13;
+ Tuner->Init_Ctrl[14].bit[6] = 6;
+ Tuner->Init_Ctrl[14].val[6] = 0;
+ Tuner->Init_Ctrl[14].addr[7] = 13;
+ Tuner->Init_Ctrl[14].bit[7] = 7;
+ Tuner->Init_Ctrl[14].val[7] = 0;
+ Tuner->Init_Ctrl[14].addr[8] = 12;
+ Tuner->Init_Ctrl[14].bit[8] = 0;
+ Tuner->Init_Ctrl[14].val[8] = 0;
+ Tuner->Init_Ctrl[14].addr[9] = 12;
+ Tuner->Init_Ctrl[14].bit[9] = 1;
+ Tuner->Init_Ctrl[14].val[9] = 0;
+ Tuner->Init_Ctrl[14].addr[10] = 12;
+ Tuner->Init_Ctrl[14].bit[10] = 2;
+ Tuner->Init_Ctrl[14].val[10] = 0;
+ Tuner->Init_Ctrl[14].addr[11] = 12;
+ Tuner->Init_Ctrl[14].bit[11] = 3;
+ Tuner->Init_Ctrl[14].val[11] = 0;
+ Tuner->Init_Ctrl[14].addr[12] = 12;
+ Tuner->Init_Ctrl[14].bit[12] = 4;
+ Tuner->Init_Ctrl[14].val[12] = 0;
+ Tuner->Init_Ctrl[14].addr[13] = 12;
+ Tuner->Init_Ctrl[14].bit[13] = 5;
+ Tuner->Init_Ctrl[14].val[13] = 1;
+ Tuner->Init_Ctrl[14].addr[14] = 12;
+ Tuner->Init_Ctrl[14].bit[14] = 6;
+ Tuner->Init_Ctrl[14].val[14] = 1;
+ Tuner->Init_Ctrl[14].addr[15] = 12;
+ Tuner->Init_Ctrl[14].bit[15] = 7;
+ Tuner->Init_Ctrl[14].val[15] = 0;
+
+ Tuner->Init_Ctrl[15].Ctrl_Num = DRV_RES_SEL ;
+ Tuner->Init_Ctrl[15].size = 3 ;
+ Tuner->Init_Ctrl[15].addr[0] = 147;
+ Tuner->Init_Ctrl[15].bit[0] = 2;
+ Tuner->Init_Ctrl[15].val[0] = 0;
+ Tuner->Init_Ctrl[15].addr[1] = 147;
+ Tuner->Init_Ctrl[15].bit[1] = 3;
+ Tuner->Init_Ctrl[15].val[1] = 1;
+ Tuner->Init_Ctrl[15].addr[2] = 147;
+ Tuner->Init_Ctrl[15].bit[2] = 4;
+ Tuner->Init_Ctrl[15].val[2] = 1;
+
+ Tuner->Init_Ctrl[16].Ctrl_Num = I_DRIVER ;
+ Tuner->Init_Ctrl[16].size = 2 ;
+ Tuner->Init_Ctrl[16].addr[0] = 147;
+ Tuner->Init_Ctrl[16].bit[0] = 0;
+ Tuner->Init_Ctrl[16].val[0] = 0;
+ Tuner->Init_Ctrl[16].addr[1] = 147;
+ Tuner->Init_Ctrl[16].bit[1] = 1;
+ Tuner->Init_Ctrl[16].val[1] = 1;
+
+ Tuner->Init_Ctrl[17].Ctrl_Num = EN_AAF ;
+ Tuner->Init_Ctrl[17].size = 1 ;
+ Tuner->Init_Ctrl[17].addr[0] = 147;
+ Tuner->Init_Ctrl[17].bit[0] = 7;
+ Tuner->Init_Ctrl[17].val[0] = 0;
+
+ Tuner->Init_Ctrl[18].Ctrl_Num = EN_3P ;
+ Tuner->Init_Ctrl[18].size = 1 ;
+ Tuner->Init_Ctrl[18].addr[0] = 147;
+ Tuner->Init_Ctrl[18].bit[0] = 6;
+ Tuner->Init_Ctrl[18].val[0] = 0;
+
+ Tuner->Init_Ctrl[19].Ctrl_Num = EN_AUX_3P ;
+ Tuner->Init_Ctrl[19].size = 1 ;
+ Tuner->Init_Ctrl[19].addr[0] = 156;
+ Tuner->Init_Ctrl[19].bit[0] = 0;
+ Tuner->Init_Ctrl[19].val[0] = 0;
+
+ Tuner->Init_Ctrl[20].Ctrl_Num = SEL_AAF_BAND ;
+ Tuner->Init_Ctrl[20].size = 1 ;
+ Tuner->Init_Ctrl[20].addr[0] = 147;
+ Tuner->Init_Ctrl[20].bit[0] = 5;
+ Tuner->Init_Ctrl[20].val[0] = 0;
+
+ Tuner->Init_Ctrl[21].Ctrl_Num = SEQ_ENCLK16_CLK_OUT ;
+ Tuner->Init_Ctrl[21].size = 1 ;
+ Tuner->Init_Ctrl[21].addr[0] = 137;
+ Tuner->Init_Ctrl[21].bit[0] = 4;
+ Tuner->Init_Ctrl[21].val[0] = 0;
+
+ Tuner->Init_Ctrl[22].Ctrl_Num = SEQ_SEL4_16B ;
+ Tuner->Init_Ctrl[22].size = 1 ;
+ Tuner->Init_Ctrl[22].addr[0] = 137;
+ Tuner->Init_Ctrl[22].bit[0] = 7;
+ Tuner->Init_Ctrl[22].val[0] = 0;
+
+ Tuner->Init_Ctrl[23].Ctrl_Num = XTAL_CAPSELECT ;
+ Tuner->Init_Ctrl[23].size = 1 ;
+ Tuner->Init_Ctrl[23].addr[0] = 91;
+ Tuner->Init_Ctrl[23].bit[0] = 5;
+ Tuner->Init_Ctrl[23].val[0] = 1;
+
+ Tuner->Init_Ctrl[24].Ctrl_Num = IF_SEL_DBL ;
+ Tuner->Init_Ctrl[24].size = 1 ;
+ Tuner->Init_Ctrl[24].addr[0] = 43;
+ Tuner->Init_Ctrl[24].bit[0] = 0;
+ Tuner->Init_Ctrl[24].val[0] = 1;
+
+ Tuner->Init_Ctrl[25].Ctrl_Num = RFSYN_R_DIV ;
+ Tuner->Init_Ctrl[25].size = 2 ;
+ Tuner->Init_Ctrl[25].addr[0] = 22;
+ Tuner->Init_Ctrl[25].bit[0] = 0;
+ Tuner->Init_Ctrl[25].val[0] = 1;
+ Tuner->Init_Ctrl[25].addr[1] = 22;
+ Tuner->Init_Ctrl[25].bit[1] = 1;
+ Tuner->Init_Ctrl[25].val[1] = 1;
+
+ Tuner->Init_Ctrl[26].Ctrl_Num = SEQ_EXTSYNTHCALIF ;
+ Tuner->Init_Ctrl[26].size = 1 ;
+ Tuner->Init_Ctrl[26].addr[0] = 134;
+ Tuner->Init_Ctrl[26].bit[0] = 2;
+ Tuner->Init_Ctrl[26].val[0] = 0;
+
+ Tuner->Init_Ctrl[27].Ctrl_Num = SEQ_EXTDCCAL ;
+ Tuner->Init_Ctrl[27].size = 1 ;
+ Tuner->Init_Ctrl[27].addr[0] = 137;
+ Tuner->Init_Ctrl[27].bit[0] = 3;
+ Tuner->Init_Ctrl[27].val[0] = 0;
+
+ Tuner->Init_Ctrl[28].Ctrl_Num = AGC_EN_RSSI ;
+ Tuner->Init_Ctrl[28].size = 1 ;
+ Tuner->Init_Ctrl[28].addr[0] = 77;
+ Tuner->Init_Ctrl[28].bit[0] = 7;
+ Tuner->Init_Ctrl[28].val[0] = 0;
+
+ Tuner->Init_Ctrl[29].Ctrl_Num = RFA_ENCLKRFAGC ;
+ Tuner->Init_Ctrl[29].size = 1 ;
+ Tuner->Init_Ctrl[29].addr[0] = 166;
+ Tuner->Init_Ctrl[29].bit[0] = 7;
+ Tuner->Init_Ctrl[29].val[0] = 1;
+
+ Tuner->Init_Ctrl[30].Ctrl_Num = RFA_RSSI_REFH ;
+ Tuner->Init_Ctrl[30].size = 3 ;
+ Tuner->Init_Ctrl[30].addr[0] = 166;
+ Tuner->Init_Ctrl[30].bit[0] = 0;
+ Tuner->Init_Ctrl[30].val[0] = 0;
+ Tuner->Init_Ctrl[30].addr[1] = 166;
+ Tuner->Init_Ctrl[30].bit[1] = 1;
+ Tuner->Init_Ctrl[30].val[1] = 1;
+ Tuner->Init_Ctrl[30].addr[2] = 166;
+ Tuner->Init_Ctrl[30].bit[2] = 2;
+ Tuner->Init_Ctrl[30].val[2] = 1;
+
+ Tuner->Init_Ctrl[31].Ctrl_Num = RFA_RSSI_REF ;
+ Tuner->Init_Ctrl[31].size = 3 ;
+ Tuner->Init_Ctrl[31].addr[0] = 166;
+ Tuner->Init_Ctrl[31].bit[0] = 3;
+ Tuner->Init_Ctrl[31].val[0] = 1;
+ Tuner->Init_Ctrl[31].addr[1] = 166;
+ Tuner->Init_Ctrl[31].bit[1] = 4;
+ Tuner->Init_Ctrl[31].val[1] = 0;
+ Tuner->Init_Ctrl[31].addr[2] = 166;
+ Tuner->Init_Ctrl[31].bit[2] = 5;
+ Tuner->Init_Ctrl[31].val[2] = 1;
+
+ Tuner->Init_Ctrl[32].Ctrl_Num = RFA_RSSI_REFL ;
+ Tuner->Init_Ctrl[32].size = 3 ;
+ Tuner->Init_Ctrl[32].addr[0] = 167;
+ Tuner->Init_Ctrl[32].bit[0] = 0;
+ Tuner->Init_Ctrl[32].val[0] = 1;
+ Tuner->Init_Ctrl[32].addr[1] = 167;
+ Tuner->Init_Ctrl[32].bit[1] = 1;
+ Tuner->Init_Ctrl[32].val[1] = 1;
+ Tuner->Init_Ctrl[32].addr[2] = 167;
+ Tuner->Init_Ctrl[32].bit[2] = 2;
+ Tuner->Init_Ctrl[32].val[2] = 0;
+
+ Tuner->Init_Ctrl[33].Ctrl_Num = RFA_FLR ;
+ Tuner->Init_Ctrl[33].size = 4 ;
+ Tuner->Init_Ctrl[33].addr[0] = 168;
+ Tuner->Init_Ctrl[33].bit[0] = 0;
+ Tuner->Init_Ctrl[33].val[0] = 0;
+ Tuner->Init_Ctrl[33].addr[1] = 168;
+ Tuner->Init_Ctrl[33].bit[1] = 1;
+ Tuner->Init_Ctrl[33].val[1] = 1;
+ Tuner->Init_Ctrl[33].addr[2] = 168;
+ Tuner->Init_Ctrl[33].bit[2] = 2;
+ Tuner->Init_Ctrl[33].val[2] = 0;
+ Tuner->Init_Ctrl[33].addr[3] = 168;
+ Tuner->Init_Ctrl[33].bit[3] = 3;
+ Tuner->Init_Ctrl[33].val[3] = 0;
+
+ Tuner->Init_Ctrl[34].Ctrl_Num = RFA_CEIL ;
+ Tuner->Init_Ctrl[34].size = 4 ;
+ Tuner->Init_Ctrl[34].addr[0] = 168;
+ Tuner->Init_Ctrl[34].bit[0] = 4;
+ Tuner->Init_Ctrl[34].val[0] = 1;
+ Tuner->Init_Ctrl[34].addr[1] = 168;
+ Tuner->Init_Ctrl[34].bit[1] = 5;
+ Tuner->Init_Ctrl[34].val[1] = 1;
+ Tuner->Init_Ctrl[34].addr[2] = 168;
+ Tuner->Init_Ctrl[34].bit[2] = 6;
+ Tuner->Init_Ctrl[34].val[2] = 1;
+ Tuner->Init_Ctrl[34].addr[3] = 168;
+ Tuner->Init_Ctrl[34].bit[3] = 7;
+ Tuner->Init_Ctrl[34].val[3] = 1;
+
+ Tuner->Init_Ctrl[35].Ctrl_Num = SEQ_EXTIQFSMPULSE ;
+ Tuner->Init_Ctrl[35].size = 1 ;
+ Tuner->Init_Ctrl[35].addr[0] = 135;
+ Tuner->Init_Ctrl[35].bit[0] = 0;
+ Tuner->Init_Ctrl[35].val[0] = 0;
+
+ Tuner->Init_Ctrl[36].Ctrl_Num = OVERRIDE_1 ;
+ Tuner->Init_Ctrl[36].size = 1 ;
+ Tuner->Init_Ctrl[36].addr[0] = 56;
+ Tuner->Init_Ctrl[36].bit[0] = 3;
+ Tuner->Init_Ctrl[36].val[0] = 0;
+
+ Tuner->Init_Ctrl[37].Ctrl_Num = BB_INITSTATE_DLPF_TUNE ;
+ Tuner->Init_Ctrl[37].size = 7 ;
+ Tuner->Init_Ctrl[37].addr[0] = 59;
+ Tuner->Init_Ctrl[37].bit[0] = 1;
+ Tuner->Init_Ctrl[37].val[0] = 0;
+ Tuner->Init_Ctrl[37].addr[1] = 59;
+ Tuner->Init_Ctrl[37].bit[1] = 2;
+ Tuner->Init_Ctrl[37].val[1] = 0;
+ Tuner->Init_Ctrl[37].addr[2] = 59;
+ Tuner->Init_Ctrl[37].bit[2] = 3;
+ Tuner->Init_Ctrl[37].val[2] = 0;
+ Tuner->Init_Ctrl[37].addr[3] = 59;
+ Tuner->Init_Ctrl[37].bit[3] = 4;
+ Tuner->Init_Ctrl[37].val[3] = 0;
+ Tuner->Init_Ctrl[37].addr[4] = 59;
+ Tuner->Init_Ctrl[37].bit[4] = 5;
+ Tuner->Init_Ctrl[37].val[4] = 0;
+ Tuner->Init_Ctrl[37].addr[5] = 59;
+ Tuner->Init_Ctrl[37].bit[5] = 6;
+ Tuner->Init_Ctrl[37].val[5] = 0;
+ Tuner->Init_Ctrl[37].addr[6] = 59;
+ Tuner->Init_Ctrl[37].bit[6] = 7;
+ Tuner->Init_Ctrl[37].val[6] = 0;
+
+ Tuner->Init_Ctrl[38].Ctrl_Num = TG_R_DIV ;
+ Tuner->Init_Ctrl[38].size = 6 ;
+ Tuner->Init_Ctrl[38].addr[0] = 32;
+ Tuner->Init_Ctrl[38].bit[0] = 2;
+ Tuner->Init_Ctrl[38].val[0] = 0;
+ Tuner->Init_Ctrl[38].addr[1] = 32;
+ Tuner->Init_Ctrl[38].bit[1] = 3;
+ Tuner->Init_Ctrl[38].val[1] = 0;
+ Tuner->Init_Ctrl[38].addr[2] = 32;
+ Tuner->Init_Ctrl[38].bit[2] = 4;
+ Tuner->Init_Ctrl[38].val[2] = 0;
+ Tuner->Init_Ctrl[38].addr[3] = 32;
+ Tuner->Init_Ctrl[38].bit[3] = 5;
+ Tuner->Init_Ctrl[38].val[3] = 0;
+ Tuner->Init_Ctrl[38].addr[4] = 32;
+ Tuner->Init_Ctrl[38].bit[4] = 6;
+ Tuner->Init_Ctrl[38].val[4] = 1;
+ Tuner->Init_Ctrl[38].addr[5] = 32;
+ Tuner->Init_Ctrl[38].bit[5] = 7;
+ Tuner->Init_Ctrl[38].val[5] = 0;
+
+ Tuner->Init_Ctrl[39].Ctrl_Num = EN_CHP_LIN_B ;
+ Tuner->Init_Ctrl[39].size = 1 ;
+ Tuner->Init_Ctrl[39].addr[0] = 25;
+ Tuner->Init_Ctrl[39].bit[0] = 3;
+ Tuner->Init_Ctrl[39].val[0] = 1;
+
+
+ Tuner->CH_Ctrl_Num = CHCTRL_NUM ;
+
+ Tuner->CH_Ctrl[0].Ctrl_Num = DN_POLY ;
+ Tuner->CH_Ctrl[0].size = 2 ;
+ Tuner->CH_Ctrl[0].addr[0] = 68;
+ Tuner->CH_Ctrl[0].bit[0] = 6;
+ Tuner->CH_Ctrl[0].val[0] = 1;
+ Tuner->CH_Ctrl[0].addr[1] = 68;
+ Tuner->CH_Ctrl[0].bit[1] = 7;
+ Tuner->CH_Ctrl[0].val[1] = 1;
+
+ Tuner->CH_Ctrl[1].Ctrl_Num = DN_RFGAIN ;
+ Tuner->CH_Ctrl[1].size = 2 ;
+ Tuner->CH_Ctrl[1].addr[0] = 70;
+ Tuner->CH_Ctrl[1].bit[0] = 6;
+ Tuner->CH_Ctrl[1].val[0] = 1;
+ Tuner->CH_Ctrl[1].addr[1] = 70;
+ Tuner->CH_Ctrl[1].bit[1] = 7;
+ Tuner->CH_Ctrl[1].val[1] = 0;
+
+ Tuner->CH_Ctrl[2].Ctrl_Num = DN_CAP_RFLPF ;
+ Tuner->CH_Ctrl[2].size = 9 ;
+ Tuner->CH_Ctrl[2].addr[0] = 69;
+ Tuner->CH_Ctrl[2].bit[0] = 5;
+ Tuner->CH_Ctrl[2].val[0] = 0;
+ Tuner->CH_Ctrl[2].addr[1] = 69;
+ Tuner->CH_Ctrl[2].bit[1] = 6;
+ Tuner->CH_Ctrl[2].val[1] = 0;
+ Tuner->CH_Ctrl[2].addr[2] = 69;
+ Tuner->CH_Ctrl[2].bit[2] = 7;
+ Tuner->CH_Ctrl[2].val[2] = 0;
+ Tuner->CH_Ctrl[2].addr[3] = 68;
+ Tuner->CH_Ctrl[2].bit[3] = 0;
+ Tuner->CH_Ctrl[2].val[3] = 0;
+ Tuner->CH_Ctrl[2].addr[4] = 68;
+ Tuner->CH_Ctrl[2].bit[4] = 1;
+ Tuner->CH_Ctrl[2].val[4] = 0;
+ Tuner->CH_Ctrl[2].addr[5] = 68;
+ Tuner->CH_Ctrl[2].bit[5] = 2;
+ Tuner->CH_Ctrl[2].val[5] = 0;
+ Tuner->CH_Ctrl[2].addr[6] = 68;
+ Tuner->CH_Ctrl[2].bit[6] = 3;
+ Tuner->CH_Ctrl[2].val[6] = 0;
+ Tuner->CH_Ctrl[2].addr[7] = 68;
+ Tuner->CH_Ctrl[2].bit[7] = 4;
+ Tuner->CH_Ctrl[2].val[7] = 0;
+ Tuner->CH_Ctrl[2].addr[8] = 68;
+ Tuner->CH_Ctrl[2].bit[8] = 5;
+ Tuner->CH_Ctrl[2].val[8] = 0;
+
+ Tuner->CH_Ctrl[3].Ctrl_Num = DN_EN_VHFUHFBAR ;
+ Tuner->CH_Ctrl[3].size = 1 ;
+ Tuner->CH_Ctrl[3].addr[0] = 70;
+ Tuner->CH_Ctrl[3].bit[0] = 5;
+ Tuner->CH_Ctrl[3].val[0] = 0;
+
+ Tuner->CH_Ctrl[4].Ctrl_Num = DN_GAIN_ADJUST ;
+ Tuner->CH_Ctrl[4].size = 3 ;
+ Tuner->CH_Ctrl[4].addr[0] = 73;
+ Tuner->CH_Ctrl[4].bit[0] = 4;
+ Tuner->CH_Ctrl[4].val[0] = 0;
+ Tuner->CH_Ctrl[4].addr[1] = 73;
+ Tuner->CH_Ctrl[4].bit[1] = 5;
+ Tuner->CH_Ctrl[4].val[1] = 1;
+ Tuner->CH_Ctrl[4].addr[2] = 73;
+ Tuner->CH_Ctrl[4].bit[2] = 6;
+ Tuner->CH_Ctrl[4].val[2] = 0;
+
+ Tuner->CH_Ctrl[5].Ctrl_Num = DN_IQTNBUF_AMP ;
+ Tuner->CH_Ctrl[5].size = 4 ;
+ Tuner->CH_Ctrl[5].addr[0] = 70;
+ Tuner->CH_Ctrl[5].bit[0] = 0;
+ Tuner->CH_Ctrl[5].val[0] = 0;
+ Tuner->CH_Ctrl[5].addr[1] = 70;
+ Tuner->CH_Ctrl[5].bit[1] = 1;
+ Tuner->CH_Ctrl[5].val[1] = 0;
+ Tuner->CH_Ctrl[5].addr[2] = 70;
+ Tuner->CH_Ctrl[5].bit[2] = 2;
+ Tuner->CH_Ctrl[5].val[2] = 0;
+ Tuner->CH_Ctrl[5].addr[3] = 70;
+ Tuner->CH_Ctrl[5].bit[3] = 3;
+ Tuner->CH_Ctrl[5].val[3] = 0;
+
+ Tuner->CH_Ctrl[6].Ctrl_Num = DN_IQTNGNBFBIAS_BST ;
+ Tuner->CH_Ctrl[6].size = 1 ;
+ Tuner->CH_Ctrl[6].addr[0] = 70;
+ Tuner->CH_Ctrl[6].bit[0] = 4;
+ Tuner->CH_Ctrl[6].val[0] = 1;
+
+ Tuner->CH_Ctrl[7].Ctrl_Num = RFSYN_EN_OUTMUX ;
+ Tuner->CH_Ctrl[7].size = 1 ;
+ Tuner->CH_Ctrl[7].addr[0] = 111;
+ Tuner->CH_Ctrl[7].bit[0] = 4;
+ Tuner->CH_Ctrl[7].val[0] = 0;
+
+ Tuner->CH_Ctrl[8].Ctrl_Num = RFSYN_SEL_VCO_OUT ;
+ Tuner->CH_Ctrl[8].size = 1 ;
+ Tuner->CH_Ctrl[8].addr[0] = 111;
+ Tuner->CH_Ctrl[8].bit[0] = 7;
+ Tuner->CH_Ctrl[8].val[0] = 1;
+
+ Tuner->CH_Ctrl[9].Ctrl_Num = RFSYN_SEL_VCO_HI ;
+ Tuner->CH_Ctrl[9].size = 1 ;
+ Tuner->CH_Ctrl[9].addr[0] = 111;
+ Tuner->CH_Ctrl[9].bit[0] = 6;
+ Tuner->CH_Ctrl[9].val[0] = 1;
+
+ Tuner->CH_Ctrl[10].Ctrl_Num = RFSYN_SEL_DIVM ;
+ Tuner->CH_Ctrl[10].size = 1 ;
+ Tuner->CH_Ctrl[10].addr[0] = 111;
+ Tuner->CH_Ctrl[10].bit[0] = 5;
+ Tuner->CH_Ctrl[10].val[0] = 0;
+
+ Tuner->CH_Ctrl[11].Ctrl_Num = RFSYN_RF_DIV_BIAS ;
+ Tuner->CH_Ctrl[11].size = 2 ;
+ Tuner->CH_Ctrl[11].addr[0] = 110;
+ Tuner->CH_Ctrl[11].bit[0] = 0;
+ Tuner->CH_Ctrl[11].val[0] = 1;
+ Tuner->CH_Ctrl[11].addr[1] = 110;
+ Tuner->CH_Ctrl[11].bit[1] = 1;
+ Tuner->CH_Ctrl[11].val[1] = 0;
+
+ Tuner->CH_Ctrl[12].Ctrl_Num = DN_SEL_FREQ ;
+ Tuner->CH_Ctrl[12].size = 3 ;
+ Tuner->CH_Ctrl[12].addr[0] = 69;
+ Tuner->CH_Ctrl[12].bit[0] = 2;
+ Tuner->CH_Ctrl[12].val[0] = 0;
+ Tuner->CH_Ctrl[12].addr[1] = 69;
+ Tuner->CH_Ctrl[12].bit[1] = 3;
+ Tuner->CH_Ctrl[12].val[1] = 0;
+ Tuner->CH_Ctrl[12].addr[2] = 69;
+ Tuner->CH_Ctrl[12].bit[2] = 4;
+ Tuner->CH_Ctrl[12].val[2] = 0;
+
+ Tuner->CH_Ctrl[13].Ctrl_Num = RFSYN_VCO_BIAS ;
+ Tuner->CH_Ctrl[13].size = 6 ;
+ Tuner->CH_Ctrl[13].addr[0] = 110;
+ Tuner->CH_Ctrl[13].bit[0] = 2;
+ Tuner->CH_Ctrl[13].val[0] = 0;
+ Tuner->CH_Ctrl[13].addr[1] = 110;
+ Tuner->CH_Ctrl[13].bit[1] = 3;
+ Tuner->CH_Ctrl[13].val[1] = 0;
+ Tuner->CH_Ctrl[13].addr[2] = 110;
+ Tuner->CH_Ctrl[13].bit[2] = 4;
+ Tuner->CH_Ctrl[13].val[2] = 0;
+ Tuner->CH_Ctrl[13].addr[3] = 110;
+ Tuner->CH_Ctrl[13].bit[3] = 5;
+ Tuner->CH_Ctrl[13].val[3] = 0;
+ Tuner->CH_Ctrl[13].addr[4] = 110;
+ Tuner->CH_Ctrl[13].bit[4] = 6;
+ Tuner->CH_Ctrl[13].val[4] = 0;
+ Tuner->CH_Ctrl[13].addr[5] = 110;
+ Tuner->CH_Ctrl[13].bit[5] = 7;
+ Tuner->CH_Ctrl[13].val[5] = 1;
+
+ Tuner->CH_Ctrl[14].Ctrl_Num = CHCAL_INT_MOD_RF ;
+ Tuner->CH_Ctrl[14].size = 7 ;
+ Tuner->CH_Ctrl[14].addr[0] = 14;
+ Tuner->CH_Ctrl[14].bit[0] = 0;
+ Tuner->CH_Ctrl[14].val[0] = 0;
+ Tuner->CH_Ctrl[14].addr[1] = 14;
+ Tuner->CH_Ctrl[14].bit[1] = 1;
+ Tuner->CH_Ctrl[14].val[1] = 0;
+ Tuner->CH_Ctrl[14].addr[2] = 14;
+ Tuner->CH_Ctrl[14].bit[2] = 2;
+ Tuner->CH_Ctrl[14].val[2] = 0;
+ Tuner->CH_Ctrl[14].addr[3] = 14;
+ Tuner->CH_Ctrl[14].bit[3] = 3;
+ Tuner->CH_Ctrl[14].val[3] = 0;
+ Tuner->CH_Ctrl[14].addr[4] = 14;
+ Tuner->CH_Ctrl[14].bit[4] = 4;
+ Tuner->CH_Ctrl[14].val[4] = 0;
+ Tuner->CH_Ctrl[14].addr[5] = 14;
+ Tuner->CH_Ctrl[14].bit[5] = 5;
+ Tuner->CH_Ctrl[14].val[5] = 0;
+ Tuner->CH_Ctrl[14].addr[6] = 14;
+ Tuner->CH_Ctrl[14].bit[6] = 6;
+ Tuner->CH_Ctrl[14].val[6] = 0;
+
+ Tuner->CH_Ctrl[15].Ctrl_Num = CHCAL_FRAC_MOD_RF ;
+ Tuner->CH_Ctrl[15].size = 18 ;
+ Tuner->CH_Ctrl[15].addr[0] = 17;
+ Tuner->CH_Ctrl[15].bit[0] = 6;
+ Tuner->CH_Ctrl[15].val[0] = 0;
+ Tuner->CH_Ctrl[15].addr[1] = 17;
+ Tuner->CH_Ctrl[15].bit[1] = 7;
+ Tuner->CH_Ctrl[15].val[1] = 0;
+ Tuner->CH_Ctrl[15].addr[2] = 16;
+ Tuner->CH_Ctrl[15].bit[2] = 0;
+ Tuner->CH_Ctrl[15].val[2] = 0;
+ Tuner->CH_Ctrl[15].addr[3] = 16;
+ Tuner->CH_Ctrl[15].bit[3] = 1;
+ Tuner->CH_Ctrl[15].val[3] = 0;
+ Tuner->CH_Ctrl[15].addr[4] = 16;
+ Tuner->CH_Ctrl[15].bit[4] = 2;
+ Tuner->CH_Ctrl[15].val[4] = 0;
+ Tuner->CH_Ctrl[15].addr[5] = 16;
+ Tuner->CH_Ctrl[15].bit[5] = 3;
+ Tuner->CH_Ctrl[15].val[5] = 0;
+ Tuner->CH_Ctrl[15].addr[6] = 16;
+ Tuner->CH_Ctrl[15].bit[6] = 4;
+ Tuner->CH_Ctrl[15].val[6] = 0;
+ Tuner->CH_Ctrl[15].addr[7] = 16;
+ Tuner->CH_Ctrl[15].bit[7] = 5;
+ Tuner->CH_Ctrl[15].val[7] = 0;
+ Tuner->CH_Ctrl[15].addr[8] = 16;
+ Tuner->CH_Ctrl[15].bit[8] = 6;
+ Tuner->CH_Ctrl[15].val[8] = 0;
+ Tuner->CH_Ctrl[15].addr[9] = 16;
+ Tuner->CH_Ctrl[15].bit[9] = 7;
+ Tuner->CH_Ctrl[15].val[9] = 0;
+ Tuner->CH_Ctrl[15].addr[10] = 15;
+ Tuner->CH_Ctrl[15].bit[10] = 0;
+ Tuner->CH_Ctrl[15].val[10] = 0;
+ Tuner->CH_Ctrl[15].addr[11] = 15;
+ Tuner->CH_Ctrl[15].bit[11] = 1;
+ Tuner->CH_Ctrl[15].val[11] = 0;
+ Tuner->CH_Ctrl[15].addr[12] = 15;
+ Tuner->CH_Ctrl[15].bit[12] = 2;
+ Tuner->CH_Ctrl[15].val[12] = 0;
+ Tuner->CH_Ctrl[15].addr[13] = 15;
+ Tuner->CH_Ctrl[15].bit[13] = 3;
+ Tuner->CH_Ctrl[15].val[13] = 0;
+ Tuner->CH_Ctrl[15].addr[14] = 15;
+ Tuner->CH_Ctrl[15].bit[14] = 4;
+ Tuner->CH_Ctrl[15].val[14] = 0;
+ Tuner->CH_Ctrl[15].addr[15] = 15;
+ Tuner->CH_Ctrl[15].bit[15] = 5;
+ Tuner->CH_Ctrl[15].val[15] = 0;
+ Tuner->CH_Ctrl[15].addr[16] = 15;
+ Tuner->CH_Ctrl[15].bit[16] = 6;
+ Tuner->CH_Ctrl[15].val[16] = 1;
+ Tuner->CH_Ctrl[15].addr[17] = 15;
+ Tuner->CH_Ctrl[15].bit[17] = 7;
+ Tuner->CH_Ctrl[15].val[17] = 1;
+
+ Tuner->CH_Ctrl[16].Ctrl_Num = RFSYN_LPF_R ;
+ Tuner->CH_Ctrl[16].size = 5 ;
+ Tuner->CH_Ctrl[16].addr[0] = 112;
+ Tuner->CH_Ctrl[16].bit[0] = 0;
+ Tuner->CH_Ctrl[16].val[0] = 0;
+ Tuner->CH_Ctrl[16].addr[1] = 112;
+ Tuner->CH_Ctrl[16].bit[1] = 1;
+ Tuner->CH_Ctrl[16].val[1] = 0;
+ Tuner->CH_Ctrl[16].addr[2] = 112;
+ Tuner->CH_Ctrl[16].bit[2] = 2;
+ Tuner->CH_Ctrl[16].val[2] = 0;
+ Tuner->CH_Ctrl[16].addr[3] = 112;
+ Tuner->CH_Ctrl[16].bit[3] = 3;
+ Tuner->CH_Ctrl[16].val[3] = 0;
+ Tuner->CH_Ctrl[16].addr[4] = 112;
+ Tuner->CH_Ctrl[16].bit[4] = 4;
+ Tuner->CH_Ctrl[16].val[4] = 1;
+
+ Tuner->CH_Ctrl[17].Ctrl_Num = CHCAL_EN_INT_RF ;
+ Tuner->CH_Ctrl[17].size = 1 ;
+ Tuner->CH_Ctrl[17].addr[0] = 14;
+ Tuner->CH_Ctrl[17].bit[0] = 7;
+ Tuner->CH_Ctrl[17].val[0] = 0;
+
+ Tuner->CH_Ctrl[18].Ctrl_Num = TG_LO_DIVVAL ;
+ Tuner->CH_Ctrl[18].size = 4 ;
+ Tuner->CH_Ctrl[18].addr[0] = 107;
+ Tuner->CH_Ctrl[18].bit[0] = 3;
+ Tuner->CH_Ctrl[18].val[0] = 0;
+ Tuner->CH_Ctrl[18].addr[1] = 107;
+ Tuner->CH_Ctrl[18].bit[1] = 4;
+ Tuner->CH_Ctrl[18].val[1] = 0;
+ Tuner->CH_Ctrl[18].addr[2] = 107;
+ Tuner->CH_Ctrl[18].bit[2] = 5;
+ Tuner->CH_Ctrl[18].val[2] = 0;
+ Tuner->CH_Ctrl[18].addr[3] = 107;
+ Tuner->CH_Ctrl[18].bit[3] = 6;
+ Tuner->CH_Ctrl[18].val[3] = 0;
+
+ Tuner->CH_Ctrl[19].Ctrl_Num = TG_LO_SELVAL ;
+ Tuner->CH_Ctrl[19].size = 3 ;
+ Tuner->CH_Ctrl[19].addr[0] = 107;
+ Tuner->CH_Ctrl[19].bit[0] = 7;
+ Tuner->CH_Ctrl[19].val[0] = 1;
+ Tuner->CH_Ctrl[19].addr[1] = 106;
+ Tuner->CH_Ctrl[19].bit[1] = 0;
+ Tuner->CH_Ctrl[19].val[1] = 1;
+ Tuner->CH_Ctrl[19].addr[2] = 106;
+ Tuner->CH_Ctrl[19].bit[2] = 1;
+ Tuner->CH_Ctrl[19].val[2] = 1;
+
+ Tuner->CH_Ctrl[20].Ctrl_Num = TG_DIV_VAL ;
+ Tuner->CH_Ctrl[20].size = 11 ;
+ Tuner->CH_Ctrl[20].addr[0] = 109;
+ Tuner->CH_Ctrl[20].bit[0] = 2;
+ Tuner->CH_Ctrl[20].val[0] = 0;
+ Tuner->CH_Ctrl[20].addr[1] = 109;
+ Tuner->CH_Ctrl[20].bit[1] = 3;
+ Tuner->CH_Ctrl[20].val[1] = 0;
+ Tuner->CH_Ctrl[20].addr[2] = 109;
+ Tuner->CH_Ctrl[20].bit[2] = 4;
+ Tuner->CH_Ctrl[20].val[2] = 0;
+ Tuner->CH_Ctrl[20].addr[3] = 109;
+ Tuner->CH_Ctrl[20].bit[3] = 5;
+ Tuner->CH_Ctrl[20].val[3] = 0;
+ Tuner->CH_Ctrl[20].addr[4] = 109;
+ Tuner->CH_Ctrl[20].bit[4] = 6;
+ Tuner->CH_Ctrl[20].val[4] = 0;
+ Tuner->CH_Ctrl[20].addr[5] = 109;
+ Tuner->CH_Ctrl[20].bit[5] = 7;
+ Tuner->CH_Ctrl[20].val[5] = 0;
+ Tuner->CH_Ctrl[20].addr[6] = 108;
+ Tuner->CH_Ctrl[20].bit[6] = 0;
+ Tuner->CH_Ctrl[20].val[6] = 0;
+ Tuner->CH_Ctrl[20].addr[7] = 108;
+ Tuner->CH_Ctrl[20].bit[7] = 1;
+ Tuner->CH_Ctrl[20].val[7] = 0;
+ Tuner->CH_Ctrl[20].addr[8] = 108;
+ Tuner->CH_Ctrl[20].bit[8] = 2;
+ Tuner->CH_Ctrl[20].val[8] = 1;
+ Tuner->CH_Ctrl[20].addr[9] = 108;
+ Tuner->CH_Ctrl[20].bit[9] = 3;
+ Tuner->CH_Ctrl[20].val[9] = 1;
+ Tuner->CH_Ctrl[20].addr[10] = 108;
+ Tuner->CH_Ctrl[20].bit[10] = 4;
+ Tuner->CH_Ctrl[20].val[10] = 1;
+
+ Tuner->CH_Ctrl[21].Ctrl_Num = TG_VCO_BIAS ;
+ Tuner->CH_Ctrl[21].size = 6 ;
+ Tuner->CH_Ctrl[21].addr[0] = 106;
+ Tuner->CH_Ctrl[21].bit[0] = 2;
+ Tuner->CH_Ctrl[21].val[0] = 0;
+ Tuner->CH_Ctrl[21].addr[1] = 106;
+ Tuner->CH_Ctrl[21].bit[1] = 3;
+ Tuner->CH_Ctrl[21].val[1] = 0;
+ Tuner->CH_Ctrl[21].addr[2] = 106;
+ Tuner->CH_Ctrl[21].bit[2] = 4;
+ Tuner->CH_Ctrl[21].val[2] = 0;
+ Tuner->CH_Ctrl[21].addr[3] = 106;
+ Tuner->CH_Ctrl[21].bit[3] = 5;
+ Tuner->CH_Ctrl[21].val[3] = 0;
+ Tuner->CH_Ctrl[21].addr[4] = 106;
+ Tuner->CH_Ctrl[21].bit[4] = 6;
+ Tuner->CH_Ctrl[21].val[4] = 0;
+ Tuner->CH_Ctrl[21].addr[5] = 106;
+ Tuner->CH_Ctrl[21].bit[5] = 7;
+ Tuner->CH_Ctrl[21].val[5] = 1;
+
+ Tuner->CH_Ctrl[22].Ctrl_Num = SEQ_EXTPOWERUP ;
+ Tuner->CH_Ctrl[22].size = 1 ;
+ Tuner->CH_Ctrl[22].addr[0] = 138;
+ Tuner->CH_Ctrl[22].bit[0] = 4;
+ Tuner->CH_Ctrl[22].val[0] = 1;
+
+ Tuner->CH_Ctrl[23].Ctrl_Num = OVERRIDE_2 ;
+ Tuner->CH_Ctrl[23].size = 1 ;
+ Tuner->CH_Ctrl[23].addr[0] = 17;
+ Tuner->CH_Ctrl[23].bit[0] = 5;
+ Tuner->CH_Ctrl[23].val[0] = 0;
+
+ Tuner->CH_Ctrl[24].Ctrl_Num = OVERRIDE_3 ;
+ Tuner->CH_Ctrl[24].size = 1 ;
+ Tuner->CH_Ctrl[24].addr[0] = 111;
+ Tuner->CH_Ctrl[24].bit[0] = 3;
+ Tuner->CH_Ctrl[24].val[0] = 0;
+
+ Tuner->CH_Ctrl[25].Ctrl_Num = OVERRIDE_4 ;
+ Tuner->CH_Ctrl[25].size = 1 ;
+ Tuner->CH_Ctrl[25].addr[0] = 112;
+ Tuner->CH_Ctrl[25].bit[0] = 7;
+ Tuner->CH_Ctrl[25].val[0] = 0;
+
+ Tuner->CH_Ctrl[26].Ctrl_Num = SEQ_FSM_PULSE ;
+ Tuner->CH_Ctrl[26].size = 1 ;
+ Tuner->CH_Ctrl[26].addr[0] = 136;
+ Tuner->CH_Ctrl[26].bit[0] = 7;
+ Tuner->CH_Ctrl[26].val[0] = 0;
+
+ Tuner->CH_Ctrl[27].Ctrl_Num = GPIO_4B ;
+ Tuner->CH_Ctrl[27].size = 1 ;
+ Tuner->CH_Ctrl[27].addr[0] = 149;
+ Tuner->CH_Ctrl[27].bit[0] = 7;
+ Tuner->CH_Ctrl[27].val[0] = 0;
+
+ Tuner->CH_Ctrl[28].Ctrl_Num = GPIO_3B ;
+ Tuner->CH_Ctrl[28].size = 1 ;
+ Tuner->CH_Ctrl[28].addr[0] = 149;
+ Tuner->CH_Ctrl[28].bit[0] = 6;
+ Tuner->CH_Ctrl[28].val[0] = 0;
+
+ Tuner->CH_Ctrl[29].Ctrl_Num = GPIO_4 ;
+ Tuner->CH_Ctrl[29].size = 1 ;
+ Tuner->CH_Ctrl[29].addr[0] = 149;
+ Tuner->CH_Ctrl[29].bit[0] = 5;
+ Tuner->CH_Ctrl[29].val[0] = 1;
+
+ Tuner->CH_Ctrl[30].Ctrl_Num = GPIO_3 ;
+ Tuner->CH_Ctrl[30].size = 1 ;
+ Tuner->CH_Ctrl[30].addr[0] = 149;
+ Tuner->CH_Ctrl[30].bit[0] = 4;
+ Tuner->CH_Ctrl[30].val[0] = 1;
+
+ Tuner->CH_Ctrl[31].Ctrl_Num = GPIO_1B ;
+ Tuner->CH_Ctrl[31].size = 1 ;
+ Tuner->CH_Ctrl[31].addr[0] = 149;
+ Tuner->CH_Ctrl[31].bit[0] = 3;
+ Tuner->CH_Ctrl[31].val[0] = 0;
+
+ Tuner->CH_Ctrl[32].Ctrl_Num = DAC_A_ENABLE ;
+ Tuner->CH_Ctrl[32].size = 1 ;
+ Tuner->CH_Ctrl[32].addr[0] = 93;
+ Tuner->CH_Ctrl[32].bit[0] = 1;
+ Tuner->CH_Ctrl[32].val[0] = 0;
+
+ Tuner->CH_Ctrl[33].Ctrl_Num = DAC_B_ENABLE ;
+ Tuner->CH_Ctrl[33].size = 1 ;
+ Tuner->CH_Ctrl[33].addr[0] = 93;
+ Tuner->CH_Ctrl[33].bit[0] = 0;
+ Tuner->CH_Ctrl[33].val[0] = 0;
+
+ Tuner->CH_Ctrl[34].Ctrl_Num = DAC_DIN_A ;
+ Tuner->CH_Ctrl[34].size = 6 ;
+ Tuner->CH_Ctrl[34].addr[0] = 92;
+ Tuner->CH_Ctrl[34].bit[0] = 2;
+ Tuner->CH_Ctrl[34].val[0] = 0;
+ Tuner->CH_Ctrl[34].addr[1] = 92;
+ Tuner->CH_Ctrl[34].bit[1] = 3;
+ Tuner->CH_Ctrl[34].val[1] = 0;
+ Tuner->CH_Ctrl[34].addr[2] = 92;
+ Tuner->CH_Ctrl[34].bit[2] = 4;
+ Tuner->CH_Ctrl[34].val[2] = 0;
+ Tuner->CH_Ctrl[34].addr[3] = 92;
+ Tuner->CH_Ctrl[34].bit[3] = 5;
+ Tuner->CH_Ctrl[34].val[3] = 0;
+ Tuner->CH_Ctrl[34].addr[4] = 92;
+ Tuner->CH_Ctrl[34].bit[4] = 6;
+ Tuner->CH_Ctrl[34].val[4] = 0;
+ Tuner->CH_Ctrl[34].addr[5] = 92;
+ Tuner->CH_Ctrl[34].bit[5] = 7;
+ Tuner->CH_Ctrl[34].val[5] = 0;
+
+ Tuner->CH_Ctrl[35].Ctrl_Num = DAC_DIN_B ;
+ Tuner->CH_Ctrl[35].size = 6 ;
+ Tuner->CH_Ctrl[35].addr[0] = 93;
+ Tuner->CH_Ctrl[35].bit[0] = 2;
+ Tuner->CH_Ctrl[35].val[0] = 0;
+ Tuner->CH_Ctrl[35].addr[1] = 93;
+ Tuner->CH_Ctrl[35].bit[1] = 3;
+ Tuner->CH_Ctrl[35].val[1] = 0;
+ Tuner->CH_Ctrl[35].addr[2] = 93;
+ Tuner->CH_Ctrl[35].bit[2] = 4;
+ Tuner->CH_Ctrl[35].val[2] = 0;
+ Tuner->CH_Ctrl[35].addr[3] = 93;
+ Tuner->CH_Ctrl[35].bit[3] = 5;
+ Tuner->CH_Ctrl[35].val[3] = 0;
+ Tuner->CH_Ctrl[35].addr[4] = 93;
+ Tuner->CH_Ctrl[35].bit[4] = 6;
+ Tuner->CH_Ctrl[35].val[4] = 0;
+ Tuner->CH_Ctrl[35].addr[5] = 93;
+ Tuner->CH_Ctrl[35].bit[5] = 7;
+ Tuner->CH_Ctrl[35].val[5] = 0;
+
+#ifdef _MXL_PRODUCTION
+ Tuner->CH_Ctrl[36].Ctrl_Num = RFSYN_EN_DIV ;
+ Tuner->CH_Ctrl[36].size = 1 ;
+ Tuner->CH_Ctrl[36].addr[0] = 109;
+ Tuner->CH_Ctrl[36].bit[0] = 1;
+ Tuner->CH_Ctrl[36].val[0] = 1;
+
+ Tuner->CH_Ctrl[37].Ctrl_Num = RFSYN_DIVM ;
+ Tuner->CH_Ctrl[37].size = 2 ;
+ Tuner->CH_Ctrl[37].addr[0] = 112;
+ Tuner->CH_Ctrl[37].bit[0] = 5;
+ Tuner->CH_Ctrl[37].val[0] = 0;
+ Tuner->CH_Ctrl[37].addr[1] = 112;
+ Tuner->CH_Ctrl[37].bit[1] = 6;
+ Tuner->CH_Ctrl[37].val[1] = 0;
+
+ Tuner->CH_Ctrl[38].Ctrl_Num = DN_BYPASS_AGC_I2C ;
+ Tuner->CH_Ctrl[38].size = 1 ;
+ Tuner->CH_Ctrl[38].addr[0] = 65;
+ Tuner->CH_Ctrl[38].bit[0] = 1;
+ Tuner->CH_Ctrl[38].val[0] = 0;
+#endif
+
+ return 0 ;
+}
diff --git a/api/Maxlinear_MXL5005.c b/api/Maxlinear_MXL5005.c
new file mode 100644
index 0000000..6ae5dc5
--- /dev/null
+++ b/api/Maxlinear_MXL5005.c
@@ -0,0 +1,325 @@
+/**
+ * @(#)Maxlinear_MXL5005.cpp
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2009.02.10
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2009.02.10 Yinding update tuner code
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "MXL5005.h"
+#include "Maxlinear_MXL5005_Script.h"
+
+
+Dword MXL_WriteI2C(
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte* pAddress,
+ IN Byte* pData,
+ IN Dword count
+) {
+ Dword error = Error_NO_ERROR; /* Status to be returned */
+ Byte buffer[25];
+ Byte numberOfRegisters = 9;
+ Byte i;
+
+#if (0) /** single write */
+ for (i = 0; i < count; i++) {
+ buffer[0] = *(pAddress + i);
+ buffer[1] = *(pData + i);
+ buffer[2] = 0xFE; /** Latch CMD request by MXL5005 Confidential Datasheet */
+ error = Standard_writeTunerRegisters (demodulator, chip, buffer[0], 2, &buffer[1]);
+ if (error) goto exit;
+ }
+#else /** burst write (Buf <= 19 byte) */
+ Byte j;
+ Byte blocks;
+ Byte remains;
+
+ blocks = (Byte)(count / numberOfRegisters);
+ remains = (Byte)(count % numberOfRegisters);
+
+ for (i = 0; i < blocks; i++) {
+ for (j = 0; j < numberOfRegisters * 2; j += 2) {
+ buffer[j] = pAddress[i * numberOfRegisters + j / 2];
+ buffer[j + 1] = pData[i * numberOfRegisters + j / 2];
+ }
+ if ((remains == 0) && (blocks == i + 1)) {
+ buffer[j]=0xFE; // Latch CMD
+ error = Standard_writeTunerRegisters (demodulator, chip, buffer[0], (numberOfRegisters * 2 ) + 1, &buffer[1]);
+ } else {
+ error = Standard_writeTunerRegisters (demodulator, chip, buffer[0], (numberOfRegisters * 2 ), &buffer[1]);
+ }
+ if (error) goto exit;
+ }
+
+ if (remains) {
+ for (j = 0; j< remains * 2; j += 2) {
+ buffer[j] = pAddress[i * numberOfRegisters + j / 2];
+ buffer[j + 1] = pData[i * numberOfRegisters + j / 2];
+ }
+ buffer[j] = 0xFE; /** Latch CMD */
+ error = Standard_writeTunerRegisters (demodulator, chip, buffer[0], (remains * 2) + 1, &buffer[1]);
+ if (error) goto exit;
+ }
+#endif
+exit:
+ return (error);
+}
+
+
+Dword MXL5005_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword MXL5005_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword MXL5005_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword status = 0;
+ Tuner_struct tuner;
+ Dword if_divval_temp;
+ Dword error = Error_NO_ERROR;
+
+ Byte AGC_MASTER_BYTE;
+ Byte address[104];
+ Byte data[104];
+ Byte temp[10];
+ int count;
+
+ AGC_Mode agc_mode;
+ Tuner_Mode mode;
+ Tuner_IF_Mode if_mode;
+ Dword bandwidthInHz;
+ Dword if_out;
+ Dword fxtal;
+ Word top;
+ Word if_out_load;
+ Tuner_Clock_Out clock_out;
+ Tuner_Div_Out div_out;
+ Tuner_Cap_Select capselect;
+ Tuner_RSSI en_rssi;
+ Byte mod_type;
+ Byte TF_Type;
+ Dword frequencyInHz;
+
+ mode = MXL_DIGITAL_MODE;
+ if_mode = MXL_ZERO_IF;
+ bandwidthInHz = bandwidth * 1000;
+ if_out = 4570000;
+ fxtal = 16000000;
+ agc_mode = MXL_SINGLE_AGC;
+ top = 252;
+ if_out_load = 200;
+ clock_out = MXL_CLOCK_OUT_DISABLE;
+ div_out = MXL_DIV_OUT_4;
+ capselect = MXL_CAP_SEL_ENABLE;
+ en_rssi = MXL_RSSI_ENABLE;
+ mod_type = MXL_DVBT;
+ TF_Type = MXL_TF_OFF;
+ frequencyInHz = frequency * 1000;
+
+ if (agc_mode == MXL_DUAL_AGC) /** DUAL AGC */
+ AGC_MASTER_BYTE = 0x04;
+ else
+ AGC_MASTER_BYTE = 0x00;
+
+ status += MXL_GetMasterControl(data, MC_SYNTH_RESET);
+ address[0] = MASTER_CONTROL_ADDR;
+ data[0] |= AGC_MASTER_BYTE;
+ data[1] = 0xFE; /** Latch CMD */
+
+ error = Standard_writeTunerRegisters (demodulator, chip, address[0], 2, &data[0]);
+ if (error) goto exit;
+
+ status += MXL5005_TunerConfig( &tuner, mode, if_mode, bandwidth, if_out, fxtal, agc_mode, top, if_out_load,
+ clock_out, div_out, capselect, en_rssi, mod_type, TF_Type);
+
+ /**
+ * retrieve the init registers to write to tuner
+ */
+ status += MXL_GetInitRegister(&tuner, address, data, &count);
+
+ /**
+ * End Init
+ * Write Init Registers to tuner
+ */
+ error = MXL_WriteI2C (demodulator, chip, address, data, count);
+
+ /**
+ * Determine if the tuner is in Zero-IF mode or Analog Low-IF mode
+ */
+ if (if_mode == MXL_ZERO_IF) /** Analog or Digital Zero IF mode */
+ {
+ /**
+ * Set MasterControl = Synth_Reset
+ */
+
+ status += MXL_GetMasterControl(data, MC_SYNTH_RESET);
+ address[0] = MASTER_CONTROL_ADDR;
+ data[0] |= AGC_MASTER_BYTE;
+ data[1] = 0xFE; /** Latch CMD */
+
+ error = Standard_writeTunerRegisters (demodulator, chip, address[0], 2, &data[0]);
+
+ /** RF Tune */
+ status += MXL_TuneRF(&tuner, frequencyInHz);
+
+ /**
+ * Store the calculated IF_DIVVAL value into IF_Divval
+ */
+ status += MXL_ControlRead(&tuner, IF_DIVVAL, &if_divval_temp);
+ status += MXL_ControlWrite(&tuner, SEQ_FSM_PULSE, 0);
+ status += MXL_ControlWrite(&tuner, SEQ_EXTPOWERUP, 1);
+ status += MXL_ControlWrite(&tuner, IF_DIVVAL, 8);
+ status += MXL_GetCHRegister(&tuner, address, data, &count);
+
+ /**
+ * Set MasterControl = Load_Start
+ */
+ status += MXL_GetMasterControl(temp, MC_LOAD_START);
+ address[count] = MASTER_CONTROL_ADDR;
+ temp[0] |= AGC_MASTER_BYTE;
+ data[count] = temp[0];
+ error = MXL_WriteI2C (demodulator, chip, address, data, count + 1);
+
+ /** Wait 30 ms for calibration to complete */
+ User_delay (demodulator, 30);
+
+ status += MXL_ControlWrite(&tuner, SEQ_FSM_PULSE, 1);
+ status += MXL_ControlWrite(&tuner, IF_DIVVAL, if_divval_temp);
+ status += MXL_GetCHRegister_ZeroIF(&tuner, address, data, &count);
+
+ /**
+ * Set MasterControl = Load_Start
+ */
+ status += MXL_GetMasterControl(temp, MC_LOAD_START);
+ address[count] = MASTER_CONTROL_ADDR;
+ data[count] = temp[0] | AGC_MASTER_BYTE;
+
+ /**
+ * Set MasterControl = Load_Start
+ * Write all the data into chip and Latch
+ */
+ error = MXL_WriteI2C (demodulator, chip, address, data, count + 1);
+
+ }
+ else /** Analog Low IF mode */
+ {
+ /** RF Tune; */
+ status += MXL_TuneRF(&tuner, frequencyInHz);
+
+ status += MXL_ControlWrite(&tuner, SEQ_EXTPOWERUP, 1);
+ status += MXL_ControlWrite(&tuner, SEQ_FSM_PULSE, 0);
+ status += MXL_GetCHRegister(&tuner, address, data, &count);
+
+ /** Write Chan Change Registers to tuner */
+ error = MXL_WriteI2C (demodulator, chip, address, data, count);
+ /**
+ * Set MasterControl = Load_Start
+ */
+ status += MXL_GetMasterControl(data, MC_LOAD_START);
+ address[0] = MASTER_CONTROL_ADDR;
+ data[0] |= AGC_MASTER_BYTE;
+ data[1] = 0xFE; /** Latch CMD */
+ error = Standard_writeTunerRegisters (demodulator, chip, address[0], 2, &data[0]);
+
+ User_delay (demodulator, 100);
+
+ /**
+ * Set MasterControl = Seq_Off
+ */
+ status += MXL_GetMasterControl(data, MC_SEQ_OFF);
+ address[0] = MASTER_CONTROL_ADDR;
+ data[0] |= AGC_MASTER_BYTE;
+ data[1] = 0xFE; /** Latch CMD */
+ error = Standard_writeTunerRegisters (demodulator, chip, address[0], 2, &data[0]);
+
+ status += MXL_ControlWrite(&tuner, SEQ_EXTPOWERUP, 0);
+ status += MXL_GetCHRegister_LowIF(&tuner, address, data, &count);
+
+ /** Write Chan Change Registers to tuner for Seq 3 */
+ /*status += Write_I2C(DeviceID, address, data, count);*/
+ error = MXL_WriteI2C (demodulator, chip, address, data, count);
+ }
+
+exit:
+ return(error);
+}
+
+
+Dword SwPowerCtrlMXL5005(
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control /** 0 for power down mode, 1 for normal operation mode */
+)
+{
+ Dword status = 0;
+ Dword error = Error_NO_ERROR;
+ Byte AGC_MASTER_BYTE = 0x00; /** For Single AGC =0 */
+ Byte address[104];
+ Byte data[104];
+
+ if (control) {
+ /** SetTuner will wake up tuner once it is called and so users don't have to call this function */
+ /** in order to wake-up MXL5005/5003S */
+ } else {
+ status += MXL_GetMasterControl(data, MC_POWER_DOWN);
+ address[0] = MASTER_CONTROL_ADDR;
+ data[0] |= AGC_MASTER_BYTE;
+ data[1] = 0xFE; /** Latch CMD */
+ error = Standard_writeTunerRegisters (demodulator, chip, address[0], 2, &data[0]);
+ if (error) goto exit;
+ }
+
+exit:
+ return (error);
+}
+
+
+TunerDescription tuner_MXL5005 = {
+ MXL5005_open,
+ MXL5005_close,
+ MXL5005_set,
+ MXL5005_scripts,
+ MXL5005_scriptSets,
+ MXL5005_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 4570000, /** tuner if */
+ True, /** spectrum inverse */
+ 0x0D, /** tuner id */
+};
diff --git a/api/Maxlinear_MXL5005.h b/api/Maxlinear_MXL5005.h
new file mode 100644
index 0000000..363fbbc
--- /dev/null
+++ b/api/Maxlinear_MXL5005.h
@@ -0,0 +1,64 @@
+/**
+ * @(#)Maxlinear_MXL5005.h
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2009.02.10
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2009.02.10 Yinding update tuner code
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Maxlinear_MXL5005_H__
+#define __Maxlinear_MXL5005_H__
+
+
+#define MXL5005_VER_MAJOR 2
+#define MXL5005_VER_MINOR 1
+
+extern TunerDescription tuner_MXL5005;
+
+
+ValueSet Maxlinear_MXL5005_EXT_script[];
+
+
+/**
+ *
+ */
+Dword MXL5005_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword MXL5005_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword MXL5005_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Maxlinear_MXL5005_Script.h b/api/Maxlinear_MXL5005_Script.h
new file mode 100644
index 0000000..8918418
--- /dev/null
+++ b/api/Maxlinear_MXL5005_Script.h
@@ -0,0 +1,88 @@
+/** script version */
+
+#define MXL5005_ADDRESS 0xC6
+#define MXL5005_SCRIPTSETLENGTH 0x00000001
+
+
+Word MXL5005_scriptSets[] = {
+ 0x4C
+};
+
+ValueSet MXL5005_scripts[] = {
+ {0xF600, 0x05},
+ {0xF601, 0x08},
+ {0xF602, 0x0B},
+ {0xF603, 0x0E},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x20},
+ {0xF80F, 0x40},
+ {0xF810, 0x54},
+ {0xF811, 0x5a},
+ {0x009f, 0xCF},
+ {0x009e, 0xE1},
+ {0x00a5, 0x01},
+ {0xFD8B, 0x00},
+ {0x00a2, 0x01},
+ {0x00a3, 0x32},
+ {0xF1E6, 0x01},
+ {0xF00A, 0x19},
+ {0xF00B, 0x1A},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF078, 0x01},
+ {0x006e, 0x01},
+ {0x006f, 0x01},
+ {0xF1E6, 0x01},
+ {0xF047, 0x00},
+ {0xF007, 0x00},
+ {0xF12F, 0x00},
+ {0xF077, 0x00},
+ {0x0079, 0x00},
+ {0xF00A, 0x19},
+ {0xF00B, 0x1A},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF01F, 0x80},
+ {0xF020, 0x00},
+ {0xF029, 0x80},
+ {0xF02A, 0x00},
+ {0xF010, 0x0F},
+ {0xF011, 0x02},
+ {0xF00E, 0x73},
+ {0xF00F, 0x01},
+ {0xF014, 0x00},
+ {0xF015, 0x00},
+ {0xF012, 0x00},
+ {0xF013, 0x00},
+ {0x004e, 0x23},
+ {0x004c, 0xfa},
+ {0x004d, 0x01},
+ {0xF01B, 0x70},
+ {0xF01C, 0x01},
+ {0xF01D, 0xff},
+ {0xF01E, 0x01},
+ {0xF025, 0x70},
+ {0xF026, 0x01},
+ {0xF027, 0xff},
+ {0xF028, 0x01},
+ {0xF02B, 0x00},
+ {0x0070, 0x01},
+ {0x009a, 0x78},
+ {0x009b, 0xA6},
+ {0x009c, 0x7F},
+ {0x009d, 0x7F},
+ {0xF02C, 0x01},
+ {0x006b, 0x0A},
+ {0x006c, 0x14},
+ {0x006d, 0x08},
+}; \ No newline at end of file
diff --git a/api/Microtune_MT2260B0.c b/api/Microtune_MT2260B0.c
new file mode 100644
index 0000000..0cf11e5
--- /dev/null
+++ b/api/Microtune_MT2260B0.c
@@ -0,0 +1,115 @@
+/**
+ * @(#)Microtune_MT2260B0.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "mt2260.h"
+#include "Microtune_MT2260B0_Script.h"
+
+
+#define Microtune_MT2260B0_EXT_ADDRESS 0xC0
+
+Handle_t Microtune_MT2260B0_tunerHandles[2];
+UserData Microtune_MT2260B0_userDatas[2];
+
+
+Dword MT2260B0_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+
+ Microtune_MT2260B0_userDatas[chip].chip = chip;
+ Microtune_MT2260B0_userDatas[chip].demodulator = demodulator;
+ status = MT2260_Open ((unsigned int)Microtune_MT2260B0_EXT_ADDRESS, &Microtune_MT2260B0_tunerHandles[chip], &Microtune_MT2260B0_userDatas[chip]);
+ if (MT_NO_ERROR (status))
+ status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_STEPSIZE, 62500);
+ if (MT_NO_ERROR (status))
+ status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_RF_EXT, 1);
+ if (MT_NO_ERROR (status))
+ status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_BB_EXT, 1);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ return (error);
+}
+
+
+Dword MT2260B0_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+
+ status |= MT2260_Close (Microtune_MT2260B0_tunerHandles[chip]);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ return (error);
+}
+
+
+Dword MT2260B0_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+ UData_t freq;
+ UData_t bw;
+
+ freq = frequency * 1000UL;
+ bw = (UData_t) bandwidth * 1000UL;
+
+ /** Change frequency */
+ status = MT2260_ChangeFreq (Microtune_MT2260B0_tunerHandles[chip], freq);
+ if (MT_NO_ERROR (status))
+ status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_OUTPUT_BW, bw);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ User_delay (demodulator, 100);
+
+ return (error);
+}
+
+
+TunerDescription tuner_MT2260B0 = {
+ MT2260B0_open,
+ MT2260B0_close,
+ MT2260B0_set,
+ MT2260B0_scripts,
+ MT2260B0_scriptSets,
+ MT2260B0_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ True, /** spectrum inverse */
+ 0x21, /** tuner id */
+};
diff --git a/api/Microtune_MT2260B0.h b/api/Microtune_MT2260B0.h
new file mode 100644
index 0000000..c2a8798
--- /dev/null
+++ b/api/Microtune_MT2260B0.h
@@ -0,0 +1,66 @@
+/**
+ * @(#)Microtune_MT2260B0.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Microtune_MT2260B0_H__
+#define __Microtune_MT2260B0_H__
+
+
+#define MT2260B0_VER_MAJOR 2
+#define MT2260B0_VER_MINOR 0
+
+extern TunerDescription tuner_MT2260B0;
+
+
+extern int RF_IF_MT2060_X100[];
+
+
+ValueSet Microtune_MT2260B0_EXT_script[];
+
+
+/**
+ *
+ */
+Dword MT2260B0_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword MT2260B0_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword MT2260B0_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Microtune_MT2260B0_Script.h b/api/Microtune_MT2260B0_Script.h
new file mode 100644
index 0000000..d96a731
--- /dev/null
+++ b/api/Microtune_MT2260B0_Script.h
@@ -0,0 +1,130 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Microtune_MT2260B0_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 1
+#define VERSION3 7
+#define VERSION4 0
+
+
+
+#define MT2260B0_ADDRESS 0xC0
+#define MT2260B0_SCRIPTSETLENGTH 0x00000001
+
+Word MT2260B0_scriptSets[] = {
+0x66
+};
+
+ValueSet MT2260B0_scripts[] = {
+ {0xF600, 0x05},
+ {0xF601, 0x08},
+ {0xF602, 0x0B},
+ {0xF603, 0x0E},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1F},
+ {0xF5F8, 0x01},
+ {0xF5DF, 0xFB},
+ {0xF5E0, 0x00},
+ {0xF5E3, 0x09},
+ {0xF5E4, 0x01},
+ {0xF5E5, 0x01},
+ {0xF5FD, 0x01},
+ {0x0081, 0x0A},
+ {0x00c4, 0x19},
+ {0x007e, 0x04},
+ {0x00c0, 0x05},
+ {0xF80F, 0x40},
+ {0xF810, 0x54},
+ {0xF811, 0x5a},
+ {0xF78B, 0x01},
+ {0xFB06, 0x3},
+ {0x00a0, 0xCF},
+ {0x009f, 0xE1},
+ {0x00a6, 0x01},
+ {0xFD8B, 0x00},
+ {0x00ad, 0x01},
+ {0x00a3, 0x01},
+ {0x00a4, 0x3C},
+ {0x00ab, 0x01},
+ {0x008e, 0x01},
+ {0x008a, 0x01},
+ {0x0099, 0x01},
+ {0x00a9, 0x00},
+ {0x00a5, 0x01},
+ {0x00aa, 0x01},
+ {0x0092, 0x06},
+ {0xF078, 0x00},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF02B, 0x00},
+ {0x0070, 0x0A},
+ {0xF1CB, 0xA0},
+ {0xF1CC, 0x01},
+ {0x0046, 0x21},
+ {0x00b3, 0x02},
+ {0xF047, 0x01},
+ {0xF007, 0x01},
+ {0xF1E6, 0x01},
+ {0x0074, 0x00},
+ {0xF077, 0x01},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1C},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1C},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0xF01F, 0xA0},
+ {0xF020, 0x00},
+ {0x0068, 0xA0},
+ {0xF029, 0x8C},
+ {0xF02A, 0x00},
+ {0xF010, 0x58},
+ {0xF011, 0x03},
+ {0xF00E, 0xFF},
+ {0xF00F, 0x01},
+ {0xF014, 0xf8},
+ {0xF015, 0x02},
+ {0xF012, 0xFF},
+ {0xF013, 0x01},
+ {0xF01B, 0xEF},
+ {0xF01C, 0x01},
+ {0xF01D, 0x68},
+ {0xF01E, 0x03},
+ {0xF025, 0xEF},
+ {0xF026, 0x01},
+ {0xF027, 0x68},
+ {0xF028, 0x03},
+ {0x006e, 0x52},
+ {0x006d, 0x01},
+ {0x0057, 0x00},
+ {0x0058, 0x00},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0093, 0x00},
+ {0x0096, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0079, 0x01},
+ {0x00c2, 0x00},
+ {0x00c1, 0x01},
+ {0xF02C, 0x01},
+ {0x00b0, 0x01},
+ {0xF000, 0xF},
+
+};
diff --git a/api/Microtune_MT2266.c b/api/Microtune_MT2266.c
new file mode 100644
index 0000000..e6dd38b
--- /dev/null
+++ b/api/Microtune_MT2266.c
@@ -0,0 +1,178 @@
+/**
+ * @(#)Microtune_MT2266.cpp
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2008.10.16 Tom Lin support TA4029CTC
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+//#include <stdio.h> // for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "mt2266.h"
+#include "Microtune_MT2266_Script.h"
+#include "Microtune_MT2266_TA4029CTC_Script.h"
+
+/** when mount TA4029CTC, set the value to be 1 */
+#define MT2266_TA4029CTC_SUPPORT 0
+
+
+Handle_t Microtune_MT2266_tunerHandles[2];
+UserData Microtune_MT2266_userDatas[2];
+
+
+Dword MT2266_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+
+ Microtune_MT2266_userDatas[chip].chip = chip;
+ Microtune_MT2266_userDatas[chip].demodulator = demodulator;
+ status = MT2266_Open ((unsigned int)MT2266_ADDRESS, &Microtune_MT2266_tunerHandles[chip], &Microtune_MT2266_userDatas[chip]);
+ if (MT_NO_ERROR (status))
+ status |= MT2266_SetParam (Microtune_MT2266_tunerHandles[chip], MT2266_STEPSIZE, 62500);
+ if (MT_NO_ERROR (status))
+ status |= MT2266_SetParam (Microtune_MT2266_tunerHandles[chip], MT2266_RF_EXT, 1);
+ if (MT_NO_ERROR (status))
+ status |= MT2266_SetParam (Microtune_MT2266_tunerHandles[chip], MT2266_BB_EXT, 1);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ return (error);
+}
+
+
+Dword MT2266_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+
+ status |= MT2266_Close (Microtune_MT2266_tunerHandles[chip]);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ return (error);
+}
+
+
+Dword MT2266_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+ UData_t freq;
+ UData_t bw;
+
+ freq = frequency * 1000UL;
+ bw = (UData_t) bandwidth * 1000UL;
+
+ /** Change frequency */
+ status = MT2266_ChangeFreq (Microtune_MT2266_tunerHandles[chip], freq);
+ if (MT_NO_ERROR (status))
+ status |= MT2266_SetParam (Microtune_MT2266_tunerHandles[chip], MT2266_OUTPUT_BW, bw);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ User_delay (demodulator, 100);
+
+ return (error);
+}
+
+
+Dword Microtune_MT2266_EXT_getparam (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN MT2266_Param param,
+ IN Dword* value
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+
+ status |= MT2266_GetParam (Microtune_MT2266_tunerHandles[chip], param, value);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ return (error);
+}
+
+
+Dword Microtune_MT2266_EXT_setparam (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN MT2266_Param param,
+ IN Dword value
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+
+ status |= MT2266_SetParam (Microtune_MT2266_tunerHandles[chip], param, value);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ return (error);
+}
+
+
+TunerDescription tuner_MT2266 = {
+ MT2266_open,
+ MT2266_close,
+ MT2266_set,
+#if MT2266_TA4029CTC_SUPPORT
+ MT2266_TA4029CTC_scripts,
+ MT2266_TA4029CTC_scriptSets,
+ MT2266_TA4029CTC_ADDRESS, /** tuner i2c address */
+#else
+ MT2266_scripts,
+ MT2266_scriptSets,
+ MT2266_ADDRESS, /** tuner i2c address */
+#endif
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ True, /** spectrum inverse */
+#if MT2266_TA4029CTC_SUPPORT
+ 0x2D, /** tuner id */
+#else
+ 0x23, /** tuner id */
+#endif
+};
+
+void MT2266_supportTA4029CTC (
+ IN Demodulator* demodulator,
+ IN INT support //for Linux
+ ) {
+ if (support) {
+ tuner_MT2266.tunerScript = MT2266_TA4029CTC_scripts;
+ tuner_MT2266.tunerScriptSets = MT2266_TA4029CTC_scriptSets;
+ tuner_MT2266.tunerAddress = MT2266_TA4029CTC_ADDRESS;
+ tuner_MT2266.tunerId = 0x2D;
+ } else {
+ tuner_MT2266.tunerScript = MT2266_scripts;
+ tuner_MT2266.tunerScriptSets = MT2266_scriptSets;
+ tuner_MT2266.tunerAddress = MT2266_ADDRESS;
+ tuner_MT2266.tunerId = 0x23;
+ }
+} \ No newline at end of file
diff --git a/api/Microtune_MT2266.h b/api/Microtune_MT2266.h
new file mode 100644
index 0000000..2c11479
--- /dev/null
+++ b/api/Microtune_MT2266.h
@@ -0,0 +1,71 @@
+/**
+ * @(#)Microtune_MT2266.h
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * 2008.10.16 Tom Lin support TA4029CTC
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Microtune_MT2266_H__
+#define __Microtune_MT2266_H__
+
+
+#define MT2266_VER_MAJOR 2
+#define MT2266_VER_MINOR 1
+
+extern TunerDescription tuner_MT2266;
+
+
+/**
+ *
+ */
+Dword MT2266_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword MT2266_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword MT2266_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+
+
+/**
+ *
+ */
+
+void MT2266_supportTA4029CTC (
+ IN Demodulator* demodulator,
+ IN INT support // for Linux
+);
+#endif \ No newline at end of file
diff --git a/api/Microtune_MT2266_Script.h b/api/Microtune_MT2266_Script.h
new file mode 100644
index 0000000..7d7f9d1
--- /dev/null
+++ b/api/Microtune_MT2266_Script.h
@@ -0,0 +1,89 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Microtune_MT2266B0_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define MT2266_ADDRESS 0xC0
+#define MT2266_SCRIPTSETLENGTH 0x00000001
+
+Word MT2266_scriptSets[] = {
+0x3D
+};
+
+ValueSet MT2266_scripts[] = {
+ {0x0046, 0x23},
+ {0x0057, 0x00},
+ {0x0058, 0x00},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x006a, 0xFF},
+ {0x006d, 0x01},
+ {0x006f, 0x07},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x00},
+ {0x0079, 0x01},
+ {0x007f, 0x00},
+ {0x0082, 0x60},
+ {0x0083, 0x53},
+ {0x0084, 0x5c},
+ {0x0085, 0x4d},
+ {0x0086, 0xb5},
+ {0x0087, 0x01},
+ {0x0088, 0xa7},
+ {0x0089, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x009b, 0x3C},
+ {0x009c, 0x28},
+ {0x00b3, 0x02},
+ {0x00b4, 0x01},
+ {0x00b6, 0x01},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0x00c7, 0x50},
+ {0xF007, 0x01},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1C},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1C},
+ {0xF00E, 0xb5},
+ {0xF00F, 0x01},
+ {0xF010, 0x24},
+ {0xF011, 0x03},
+ {0xF012, 0xFF},
+ {0xF013, 0x01},
+ {0xF014, 0x24},
+ {0xF015, 0x03},
+ {0xF01B, 0xa7},
+ {0xF01C, 0x01},
+ {0xF01D, 0x32},
+ {0xF01E, 0x03},
+ {0xF01F, 0xA0},
+ {0xF020, 0x00},
+ {0xF025, 0xa7},
+ {0xF026, 0x01},
+ {0xF027, 0x32},
+ {0xF028, 0x03},
+ {0xF029, 0x8C},
+ {0xF02A, 0x00},
+ {0xF047, 0x01},
+ {0xF077, 0x01},
+ {0xF1E6, 0x01},
+
+};
diff --git a/api/Microtune_MT2266_TA4029CTC_Script.h b/api/Microtune_MT2266_TA4029CTC_Script.h
new file mode 100644
index 0000000..a264780
--- /dev/null
+++ b/api/Microtune_MT2266_TA4029CTC_Script.h
@@ -0,0 +1,89 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Microtune_MT2266B0_TA4029CTC_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define MT2266_TA4029CTC_ADDRESS 0xC0
+#define MT2266_TA4029CTC_SCRIPTSETLENGTH 0x00000001
+
+Word MT2266_TA4029CTC_scriptSets[] = {
+0x3D
+};
+
+ValueSet MT2266_TA4029CTC_scripts[] = {
+ {0x0046, 0x23},
+ {0x0057, 0x00},
+ {0x0058, 0x00},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x006a, 0xFF},
+ {0x006d, 0x01},
+ {0x006f, 0x07},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x00},
+ {0x0079, 0x01},
+ {0x007f, 0x26},
+ {0x0082, 0x60},
+ {0x0083, 0x53},
+ {0x0084, 0x5c},
+ {0x0085, 0x4d},
+ {0x0086, 0xb5},
+ {0x0087, 0x01},
+ {0x0088, 0xa7},
+ {0x0089, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x009b, 0x3C},
+ {0x009c, 0x28},
+ {0x00b3, 0x02},
+ {0x00b4, 0x01},
+ {0x00b6, 0x01},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0x00c7, 0x50},
+ {0xF007, 0x01},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1C},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1C},
+ {0xF00E, 0xb5},
+ {0xF00F, 0x01},
+ {0xF010, 0x24},
+ {0xF011, 0x03},
+ {0xF012, 0xFF},
+ {0xF013, 0x01},
+ {0xF014, 0x24},
+ {0xF015, 0x03},
+ {0xF01B, 0xa7},
+ {0xF01C, 0x01},
+ {0xF01D, 0x32},
+ {0xF01E, 0x03},
+ {0xF01F, 0xA0},
+ {0xF020, 0x00},
+ {0xF025, 0xa7},
+ {0xF026, 0x01},
+ {0xF027, 0x32},
+ {0xF028, 0x03},
+ {0xF029, 0x8C},
+ {0xF02A, 0x00},
+ {0xF047, 0x01},
+ {0xF077, 0x01},
+ {0xF1E6, 0x01},
+
+};
diff --git a/api/Panasonic_ENV77H11D5.c b/api/Panasonic_ENV77H11D5.c
new file mode 100644
index 0000000..e76341c
--- /dev/null
+++ b/api/Panasonic_ENV77H11D5.c
@@ -0,0 +1,114 @@
+/**
+ * @(#)Panasonic_ENV77H11D5.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Panasonic_ENV77H11D5_Script.h"
+
+
+Dword ENV77H11D5_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword ENV77H11D5_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword ENV77H11D5_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Word N;
+ Byte N1;
+ Byte N2;
+ Byte ucC1 = 0x8E;
+ Byte ucC2;
+ Byte buffer[10];
+
+ /** Round ((wFreq * 1000 + 36125) * 6 / 1000) so that "500" exists */
+ N = (Word)(((frequency + 36167) * 6 + 500) / 1000);
+ N1 = (Byte)(N / 256);
+ N2 = (Byte)(N % 256);
+
+ if ((174000 <= frequency) && (frequency <= 230000)) ucC2 = 0x42;
+ else if ((470000 < frequency) && (frequency <= 486000)) ucC2 = 0x64;
+ else if ((486000 < frequency) && (frequency <= 526000)) ucC2 = 0x84;
+ else if ((526000 < frequency) && (frequency <= 678000)) ucC2 = 0xA4;
+ else if ((678000 < frequency) && (frequency <= 862000)) ucC2 = 0xC4;
+ else {
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ }
+
+ ucC1 = 0xC2;
+
+ buffer[0] = N1;
+ buffer[1] = N2;
+ buffer[2] = ucC1;
+ buffer[3] = ucC2;
+
+ /** Write freq parameters to tuner */
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0000, 4, buffer);
+ if (error) goto exit;
+
+ ucC1 = 0x86;
+
+ buffer[0] = N1;
+ buffer[1] = N2;
+ buffer[2] = ucC1;
+ buffer[3] = ucC2;
+
+ /** Write freq parameters to tuner */
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0000, 4, buffer);
+ if (error) goto exit;
+
+exit:
+ return(error);
+}
+
+
+TunerDescription tuner_ENV77H11D5 = {
+ ENV77H11D5_open,
+ ENV77H11D5_close,
+ ENV77H11D5_set,
+ ENV77H11D5_scripts,
+ ENV77H11D5_scriptSets,
+ ENV77H11D5_ADDRESS, /** tuner i2c address */
+ 0, /** length of tuner register address */
+ 36167000, /** tuner if */
+ True, /** spectrum inverse */
+ 0x01, /** tuner id */
+};
diff --git a/api/Panasonic_ENV77H11D5.h b/api/Panasonic_ENV77H11D5.h
new file mode 100644
index 0000000..a765fbf
--- /dev/null
+++ b/api/Panasonic_ENV77H11D5.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Panasonic_ENV77H11D5.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Panasonic_ENV77H11D5_H__
+#define __Panasonic_ENV77H11D5_H__
+
+
+#define ENV77H11D5_VER_MAJOR 2
+#define ENV77H11D5_VER_MINOR 0
+
+extern TunerDescription tuner_ENV77H11D5;
+
+
+/**
+ *
+ */
+Dword ENV77H11D5_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword ENV77H11D5_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword ENV77H11D5_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Panasonic_ENV77H11D5_Script.h b/api/Panasonic_ENV77H11D5_Script.h
new file mode 100644
index 0000000..110a8cc
--- /dev/null
+++ b/api/Panasonic_ENV77H11D5_Script.h
@@ -0,0 +1,128 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+ * * @(#)Panasonic_ENV77H11D5_EXT_EVB.cpp
+ * *
+ * * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+*/
+
+#define VERSION1 5
+#define VERSION2 1
+#define VERSION3 7
+#define VERSION4 0
+
+#define ENV77H11D5_ADDRESS 0xC0
+#define ENV77H11D5_SCRIPTSETLENGTH 0x00000001
+
+Word ENV77H11D5_scriptSets[] = {
+0x66
+};
+
+ValueSet ENV77H11D5_scripts[] = {
+ {0xF600, 0x05},
+ {0xF601, 0x08},
+ {0xF602, 0x0B},
+ {0xF603, 0x0E},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1F},
+ {0xF5F8, 0x01},
+ {0xF5DF, 0xFB},
+ {0xF5E0, 0x00},
+ {0xF5E3, 0x09},
+ {0xF5E4, 0x01},
+ {0xF5E5, 0x01},
+ {0xF5FD, 0x01},
+ {0x0081, 0x0A},
+ {0x00c4, 0x19},
+ {0x007e, 0x04},
+ {0x00c0, 0x05},
+ {0xF80F, 0x40},
+ {0xF810, 0x54},
+ {0xF811, 0x5a},
+ {0xF78B, 0x01},
+ {0xFB06, 0x3},
+ {0x00a0, 0xCF},
+ {0x009f, 0xE1},
+ {0x00a6, 0x01},
+ {0xFD8B, 0x00},
+ {0x00ad, 0x01},
+ {0x00a3, 0x01},
+ {0x00a4, 0x3C},
+ {0x00ab, 0x01},
+ {0x008e, 0x01},
+ {0x008a, 0x01},
+ {0x0099, 0x01},
+ {0x00a9, 0x00},
+ {0x00a5, 0x01},
+ {0x00aa, 0x01},
+ {0x0092, 0x06},
+ {0xF078, 0x00},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF02B, 0x00},
+ {0x0070, 0x0A},
+ {0xF1CB, 0xA0},
+ {0xF1CC, 0x01},
+ {0x0046, 0x01},
+ {0x00b3, 0x02},
+ {0xF047, 0x00},
+ {0xF007, 0x00},
+ {0xF1E6, 0x01},
+ {0x0074, 0x00},
+ {0xF077, 0x02},
+ {0xF00A, 0x1A},
+ {0xF00B, 0x1B},
+ {0xF00C, 0x1A},
+ {0xF00D, 0x1B},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0xF01F, 0x50},
+ {0xF020, 0x00},
+ {0x0068, 0x50},
+ {0xF029, 0x46},
+ {0xF02A, 0x00},
+ {0xF010, 0xDF},
+ {0xF011, 0x02},
+ {0xF00E, 0x44},
+ {0xF00F, 0x01},
+ {0xF014, 0xEB},
+ {0xF015, 0x02},
+ {0xF012, 0xF4},
+ {0xF013, 0x01},
+ {0xF01B, 0x26},
+ {0xF01C, 0x01},
+ {0xF01D, 0x12},
+ {0xF01E, 0x03},
+ {0xF025, 0xE8},
+ {0xF026, 0x00},
+ {0xF027, 0x5F},
+ {0xF028, 0x03},
+ {0x006e, 0x52},
+ {0x006d, 0x00},
+ {0x0057, 0x01},
+ {0x0058, 0x01},
+ {0x005f, 0x01},
+ {0x0060, 0x00},
+ {0x0093, 0x00},
+ {0x0096, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0079, 0x01},
+ {0x00c2, 0x00},
+ {0x00c1, 0x01},
+ {0xF02C, 0x01},
+ {0x00b0, 0x01},
+ {0xF000, 0xF},
+
+};
diff --git a/api/Peacock.c b/api/Peacock.c
new file mode 100644
index 0000000..139597f
--- /dev/null
+++ b/api/Peacock.c
@@ -0,0 +1,2 @@
+
+
diff --git a/api/Peacock.h b/api/Peacock.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/api/Peacock.h
diff --git a/api/Philips_FQD1218ME_MK5.c b/api/Philips_FQD1218ME_MK5.c
new file mode 100644
index 0000000..139bdc6
--- /dev/null
+++ b/api/Philips_FQD1218ME_MK5.c
@@ -0,0 +1,146 @@
+/*
+ * @(#)Philips_FQD1218ME_MK5.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Philips_FQD1218ME_MK5_Script.h"
+
+
+Dword FQD1218ME_MK5_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+ Byte buffer[11] = {0};
+
+ ganymede = (Ganymede*) demodulator;
+
+ buffer[4] = 0x67;
+ buffer[5] = 0x1F;
+ buffer[6] = 0x01;
+
+ ganymede->tunerDescription->tunerAddress = 0x86;
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0000, 11, buffer);
+ ganymede->tunerDescription->tunerAddress = FQD1218ME_MK5_ADDRESS;
+
+ return (error);
+}
+
+
+Dword FQD1218ME_MK5_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword FQD1218ME_MK5_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+ const typedef enum { CB2 = 0, AB} MK5_1;
+ const typedef enum { DB1 = 0, DB2, CB1, BB} MK5_2;
+ Byte buffer_1[2] = {0};
+ Byte buffer_2[4] = {0};
+ Dword LO = 0;
+ Word N = 0;
+
+ ganymede = (Ganymede*) demodulator;
+ LO = frequency + ganymede->tunerDescription->ifFrequency / 1000;
+ N = (Word)(LO * 6 / 1000);
+
+ buffer_1[AB] = 0x20;
+
+ buffer_2[DB1] = (Byte)(N >> 8);
+ buffer_2[DB2] = (Byte)N;
+
+ if (frequency >= 51000 && frequency <= 157000) {/** Low band*/
+ if (LO < 180000) {
+ buffer_1[CB2] = 0x9C;
+ buffer_2[CB1] = 0xBC;
+ buffer_2[BB] = 0x01;
+ } else {
+ buffer_1[CB2] = 0xDC;
+ buffer_2[CB1] = 0xF4;
+ buffer_2[BB] = 0x01;
+ }
+ } else if (frequency >= 164000 && frequency <= 442000) {/** Mid band*/
+ if (LO < 366000) {
+ buffer_1[CB2] = 0x9C;
+ buffer_2[CB1] = 0xBC;
+ buffer_2[BB] = 0x02;
+ }else {
+ buffer_1[CB2] = 0xDC;
+ buffer_2[CB1] = 0xF4;
+ buffer_2[BB] = 0x02;
+ }
+ } else if (frequency >= 450000 && frequency <= 866000) {/** High band*/
+ if (LO < 662000) {
+ buffer_1[CB2] = 0x9C;
+ buffer_2[CB1] = 0xBC;
+ buffer_2[BB] = 0x04;
+ } else if (LO > 840000) {
+ buffer_1[CB2] = 0xDC;
+ buffer_2[CB1] = 0xFC;
+ buffer_2[BB] = 0x04;
+ } else {
+ buffer_1[CB2] = 0xDC;
+ buffer_2[CB1] = 0xF4;
+ buffer_2[BB] = 0x04;
+ }
+ } else {
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ }
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0000, 2, buffer_1);
+ if (error) goto exit;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0000, 4, buffer_2);
+
+exit:
+ return (error);
+}
+
+
+TunerDescription tuner_FQD1218ME_MK5 = {
+ FQD1218ME_MK5_open,
+ FQD1218ME_MK5_close,
+ FQD1218ME_MK5_set,
+ FQD1218ME_MK5_scripts,
+ FQD1218ME_MK5_scriptSets,
+ FQD1218ME_MK5_ADDRESS, /** tuner i2c address */
+ 0, /** length of tuner register address */
+ 36130000, /** tuner if */
+ True, /** spectrum inverse */
+ 0x30, /** tuner id */
+};
diff --git a/api/Philips_FQD1218ME_MK5.h b/api/Philips_FQD1218ME_MK5.h
new file mode 100644
index 0000000..ec05f3b
--- /dev/null
+++ b/api/Philips_FQD1218ME_MK5.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Philips_FQD1218ME_MK5.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Philips_FQD1218ME_MK5_H__
+#define __Philips_FQD1218ME_MK5_H__
+
+
+#define FQD1218ME_MK5_VER_MAJOR 2
+#define FQD1218ME_MK5_VER_MINOR 0
+
+extern TunerDescription tuner_FQD1218ME_MK5;
+
+
+/**
+ *
+ */
+Dword FQD1218ME_MK5_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword FQD1218ME_MK5_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword FQD1218ME_MK5_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Philips_FQD1218ME_MK5_Script.h b/api/Philips_FQD1218ME_MK5_Script.h
new file mode 100644
index 0000000..353e41f
--- /dev/null
+++ b/api/Philips_FQD1218ME_MK5_Script.h
@@ -0,0 +1,92 @@
+/** script version */
+
+#define FQD1218ME_MK5_ADDRESS 0xC2
+#define FQD1218ME_MK5_SCRIPTSETLENGTH 0x00000001
+
+
+Word FQD1218ME_MK5_scriptSets[] = {
+0x4F
+};
+
+ValueSet FQD1218ME_MK5_scripts[] = {
+ {0xF600, 0x05},
+ {0xF601, 0x08},
+ {0xF602, 0x0B},
+ {0xF603, 0x0E},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1F},
+ {0xF5F8, 0x01},
+ {0xF5DF, 0xFB},
+ {0xF5E0, 0x00},
+ {0xF5E3, 0x09},
+ {0xF5E4, 0x01},
+ {0xF5E5, 0x01},
+ {0xF5FD, 0x01},
+ {0xF80F, 0x40},
+ {0xF810, 0x54},
+ {0xF811, 0x5a},
+ {0xF78B, 0x01},
+ {0xFB06, 0x3},
+ {0x00a0, 0xCF},
+ {0x009f, 0xE1},
+ {0x00a6, 0x01},
+ {0xFD8B, 0x00},
+ {0x00ad, 0x01},
+ {0x00a3, 0x01},
+ {0x00a4, 0x3C},
+ {0x00ab, 0x01},
+ {0x008e, 0x01},
+ {0x008a, 0x01},
+ {0x0099, 0x01},
+ {0x00a9, 0x00},
+ {0x00a5, 0x01},
+ {0x00aa, 0x01},
+ {0x0092, 0x06},
+ {0xF078, 0x00},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF02B, 0x00},
+ {0x0070, 0x0A},
+ {0xF1CB, 0xA0},
+ {0xF1CC, 0x01},
+ {0x0046, 0x30},
+ {0x00b3, 0x01},
+ {0xF007, 0x00},
+ {0xF1E6, 0x00},
+ {0x0074, 0x01},
+ {0xF077, 0x02},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0xF01F, 0x96},
+ {0xF020, 0x00},
+ {0x0068, 0x96},
+ {0xF029, 0x96},
+ {0xF02A, 0x00},
+ {0xF014, 0x78},
+ {0xF015, 0x02},
+ {0xF012, 0x6d},
+ {0xF013, 0x00},
+ {0x0057, 0x01},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0093, 0x00},
+ {0x0096, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0079, 0x01},
+ {0xF02C, 0x01},
+ {0x00b0, 0x01},
+ {0xF000, 0xF},
+
+}; \ No newline at end of file
diff --git a/api/Philips_TD1316AFIHP.c b/api/Philips_TD1316AFIHP.c
new file mode 100644
index 0000000..da8c7b6
--- /dev/null
+++ b/api/Philips_TD1316AFIHP.c
@@ -0,0 +1,136 @@
+/**
+ * @(#)Philips_TD1316AFIHP.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+//#include <stdio.h> for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "Philips_TD1316AFIHP_Script.h"
+
+
+Dword TD1316AFIHP_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword TD1316AFIHP_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword TD1316AFIHP_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Byte buffer[10];
+ Word N;
+ Byte N1;
+ Byte N2;
+ Byte R10;
+ Byte T210;
+ Byte SP3;
+ Byte SP210;
+ Byte CP;
+ Byte AGC;
+ Byte AL210;
+ Byte CB;
+ Byte SB;
+ Byte AB;
+
+ N = (Word)(((frequency + 36167) * 6) / 1000);
+ N1 = (Byte)(N >> 8) & 0x00FF;
+ N2 = (Byte)(N & 0x00FF);
+
+ if (bandwidth == 8000)
+ SP3 = 0x01;
+ else
+ SP3 = 0x00;
+
+ if(frequency > 790000) {CP = 0x01; T210 = 0x07;}
+ else if(frequency > 646000) {CP = 0x01; T210 = 0x06;}
+ else if(frequency > 484000) {CP = 0x00; T210 = 0x07;}
+ else if(frequency > 366000) {CP = 0x01; T210 = 0x06;}
+ else if(frequency > 197000) {CP = 0x00; T210 = 0x07;}
+ else if(frequency > 180000) {CP = 0x01; T210 = 0x06;}
+ else if(frequency > 84000) {CP = 0x00; T210 = 0x07;}
+ else
+ {
+ error = Error_FREQ_OUT_OF_RANGE;
+ goto exit;
+ }
+
+ if(frequency > 473900) {SP210 = 0x04;}
+ else if(frequency > 173900){SP210 = 0x02;}
+ else {SP210 = 0x01;}
+
+ R10 = 0x02;
+ AGC = 0x00; /** 0x01 */
+ AL210 = 0x03; /** 0x04 */
+
+
+ CB = 0x80 + (CP<<6) + (T210<<3) + (R10<<1);
+ SB = (SP3<<3) + SP210;
+ AB = (AGC<<7) + (AL210<<4);
+
+ buffer[0] = N1;
+ buffer[1] = N2;
+ buffer[2] = CB;
+ buffer[3] = SB;
+
+ T210 = 0x03;
+ CB = 0x80 + (CP<<6) + (T210<<3) + (R10<<1);
+
+ buffer[4] = CB;
+ buffer[5] = AB;
+
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0000, 6, buffer);
+ if (error) goto exit;
+
+ User_delay (demodulator, 60);
+
+exit :
+ return (error);
+}
+
+
+TunerDescription tuner_TD1316AFIHP = {
+ TD1316AFIHP_open,
+ TD1316AFIHP_close,
+ TD1316AFIHP_set,
+ TD1316AFIHP_scripts,
+ TD1316AFIHP_scriptSets,
+ TD1316AFIHP_ADDRESS, /** tuner i2c address */
+ 0, /** length of tuner register address */
+ 36167000, /** tuner if */
+ True, /** spectrum inverse */
+ 0x04, /** tuner id */
+};
diff --git a/api/Philips_TD1316AFIHP.h b/api/Philips_TD1316AFIHP.h
new file mode 100644
index 0000000..a2d8942
--- /dev/null
+++ b/api/Philips_TD1316AFIHP.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Philips_TD1316AFIHP.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Philips_TD1316AFIHP_H__
+#define __Philips_TD1316AFIHP_H__
+
+
+#define TD1316AFIHP_VER_MAJOR 2
+#define TD1316AFIHP_VER_MINOR 0
+
+extern TunerDescription tuner_TD1316AFIHP;
+
+
+/**
+ *
+ */
+Dword TD1316AFIHP_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TD1316AFIHP_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TD1316AFIHP_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Philips_TD1316AFIHP_Script.h b/api/Philips_TD1316AFIHP_Script.h
new file mode 100644
index 0000000..e4badf1
--- /dev/null
+++ b/api/Philips_TD1316AFIHP_Script.h
@@ -0,0 +1,78 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Philips_TD1316_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 61
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define TD1316AFIHP_ADDRESS 0xC0
+#define TD1316AFIHP_SCRIPTSETLENGTH 0x00000001
+
+Word TD1316AFIHP_scriptSets[] = {
+0x32
+};
+
+ValueSet TD1316AFIHP_scripts[] = {
+ {0x0046, 0x04},
+ {0x0057, 0x00},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x006e, 0x01},
+ {0x0071, 0x0A},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x009b, 0x3C},
+ {0x009c, 0x40},
+ {0x00b3, 0x01},
+ {0x00c3, 0x0},
+ {0x00c4, 0x0},
+ {0x00c8, 0x52},
+ {0xF007, 0x00},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1B},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1B},
+ {0xF00E, 0xFF},
+ {0xF00F, 0x01},
+ {0xF010, 0x00},
+ {0xF011, 0x02},
+ {0xF012, 0xFF},
+ {0xF013, 0x01},
+ {0xF014, 0x00},
+ {0xF015, 0x02},
+ {0xF01B, 0xEF},
+ {0xF01C, 0x01},
+ {0xF01D, 0x0f},
+ {0xF01E, 0x02},
+ {0xF01F, 0x5A},
+ {0xF020, 0x00},
+ {0xF025, 0xDE},
+ {0xF026, 0x00},
+ {0xF027, 0x0A},
+ {0xF028, 0x03},
+ {0xF029, 0x5A},
+ {0xF02A, 0x00},
+ {0xF047, 0x00},
+ {0xF054, 0x0},
+ {0xF055, 0x0},
+ {0xF077, 0x02},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Philips_TD1316_Script.h b/api/Philips_TD1316_Script.h
new file mode 100644
index 0000000..7d934c1
--- /dev/null
+++ b/api/Philips_TD1316_Script.h
@@ -0,0 +1,78 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Philips_TD1316_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define TD1316_ADDRESS 0xC0
+#define TD1316_SCRIPTSETLENGTH 0x00000001
+
+Word TD1316_scriptSets[] = {
+0x32
+};
+
+ValueSet TD1316_scripts[] = {
+ {0x0046, 0x04},
+ {0x0057, 0x00},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x006e, 0x01},
+ {0x0071, 0x0A},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x009b, 0x3C},
+ {0x009c, 0x40},
+ {0x00b3, 0x01},
+ {0x00c3, 0x0},
+ {0x00c4, 0x0},
+ {0x00c7, 0x52},
+ {0xF007, 0x00},
+ {0xF00A, 0x1B},
+ {0xF00B, 0x1B},
+ {0xF00C, 0x1B},
+ {0xF00D, 0x1B},
+ {0xF00E, 0xFF},
+ {0xF00F, 0x01},
+ {0xF010, 0x00},
+ {0xF011, 0x02},
+ {0xF012, 0xFF},
+ {0xF013, 0x01},
+ {0xF014, 0x00},
+ {0xF015, 0x02},
+ {0xF01B, 0xEF},
+ {0xF01C, 0x01},
+ {0xF01D, 0x0f},
+ {0xF01E, 0x02},
+ {0xF01F, 0x5A},
+ {0xF020, 0x00},
+ {0xF025, 0xDE},
+ {0xF026, 0x00},
+ {0xF027, 0x0A},
+ {0xF028, 0x03},
+ {0xF029, 0x5A},
+ {0xF02A, 0x00},
+ {0xF047, 0x00},
+ {0xF054, 0x0},
+ {0xF055, 0x0},
+ {0xF077, 0x02},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Philips_TDA18271.c b/api/Philips_TDA18271.c
new file mode 100644
index 0000000..d047f00
--- /dev/null
+++ b/api/Philips_TDA18271.c
@@ -0,0 +1,139 @@
+/**
+ * @(#)Philips_TDA18271.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "TDA18271Local.h"
+#include "TDA18271.h"
+#include "Philips_TDA18271_Script.h"
+
+
+extern tmTDA18271Object_t gTDA18271Instance[];
+
+Dword Standard_computeFcw (
+ IN Demodulator* demodulator,
+ IN Long adcFrequency, /** ADC frequency (Hz) */
+ IN Long ifFrequency, /** IF frequency (Hz) */
+ IN Bool inversion, /** RF spectrum inversion */
+ OUT Dword* fcw
+);
+
+
+Dword TDA18271_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword TDA18271_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword TDA18271_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+
+ Dword error = Error_NO_ERROR;
+ tmbslTuParam_t param;
+ Byte fc = 1;
+ Long IfFreq;
+ Dword fcw;
+ Byte buffer[3];
+ Ganymede* ganymede;
+ ganymede = (Ganymede*) demodulator;
+
+ gTDA18271Instance[0].AFAInfo.demodulator = demodulator;
+ gTDA18271Instance[0].AFAInfo.chip = chip;
+
+ param.systemFunc.SY_Read = SY_Read;
+ param.systemFunc.SY_Write = SY_Write;
+ param.uHwAddress = 0xC0ul;
+
+
+ switch(bandwidth)
+ {
+ case 6000:
+ IfFreq = 3300000;
+ fc = tmDigital_TV_ATSC_6MHz;
+ break;
+ case 7000:
+ IfFreq = 3800000;
+ fc = tmDigital_TV_DVBT_7MHz;
+ break;
+ case 8000:
+ IfFreq = 4300000;
+ fc = tmDigital_TV_DVBT_8MHz;
+ break;
+ default:
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+
+ error = Standard_computeFcw (demodulator, (Long) ganymede->adcFrequency, IfFreq, ganymede->tunerDescription->inversion, &fcw);
+ if (error) goto exit;
+ ganymede->fcw = fcw;
+
+ buffer[0] = (Byte) (fcw & 0x000000FF);
+ buffer[1] = (Byte) ((fcw & 0x0000FF00) >> 8);
+ buffer[2] = (Byte) ((fcw & 0x007F0000) >> 16);
+ error = Standard_writeRegisters (demodulator, chip, Processor_OFDM, bfs_fcw_7_0, bfs_fcw_22_16 - bfs_fcw_7_0 + 1, buffer);
+ if (error) goto exit;
+
+
+ error = tmbslTDA18271Init(0, param);
+ if (error) goto exit;
+
+ error = tmbslTDA18271SetConfig(0, STANDARDMODE, fc);
+ if (error) goto exit;
+
+ error = tmbslTDA18271SetRf(0, frequency * 1000);
+
+exit:
+ return (error);
+}
+
+
+TunerDescription tuner_TDA18271 = {
+ TDA18271_open,
+ TDA18271_close,
+ TDA18271_set,
+ TDA18271_scripts,
+ TDA18271_scriptSets,
+ TDA18271_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ (Bool)True, /** spectrum inverse */
+ 0x1B, /** tuner id */
+};
diff --git a/api/Philips_TDA18271.h b/api/Philips_TDA18271.h
new file mode 100644
index 0000000..67fad51
--- /dev/null
+++ b/api/Philips_TDA18271.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Philips_TDA18271.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Philips_TDA18271_H__
+#define __Philips_TDA18271_H__
+
+
+#define TDA18271_VER_MAJOR 2
+#define TDA18271_VER_MINOR 0
+
+extern TunerDescription tuner_TDA18271;
+
+
+/**
+ *
+ */
+Dword TDA18271_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TDA1821_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TDA1821_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Philips_TDA18271_C2.c b/api/Philips_TDA18271_C2.c
new file mode 100644
index 0000000..e751c46
--- /dev/null
+++ b/api/Philips_TDA18271_C2.c
@@ -0,0 +1,128 @@
+/**
+ * @(#)Philips_TDA18271_C2_INT.cpp
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ */
+
+
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+
+#include "TDA18271local_C2.h"
+#include "TDA18271_C2.h"
+#include "Philips_TDA18271_C2_Script.h"
+
+
+extern tmTDA18271Object_t_C2 gTDA18271Instance_C2[];
+
+Dword Standard_computeFcw (
+ IN Demodulator* demodulator,
+ IN Long adcFrequency, /** ADC frequency (Hz) */
+ IN Long ifFrequency, /** IF frequency (Hz) */
+ IN Bool inversion, /** RF spectrum inversion */
+ OUT Dword* fcw
+);
+
+Dword TDA18271_C2_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ tmbslTuParam_t_C2 param;
+
+ gTDA18271Instance_C2[0].AFAInfo_C2.demodulator = demodulator;
+ gTDA18271Instance_C2[0].AFAInfo_C2.chip = chip;
+
+ param.systemFunc.SY_Read_C2 = SY_Read_C2;
+ param.systemFunc.SY_Write_C2 = SY_Write_C2;
+ param.uHwAddress = 0xC0ul;
+
+ error = tmbslTDA18271Init_C2(0, param);
+ if (error) goto exit;
+
+ error = TDA18271Init_C2(0);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+Dword TDA18271_C2_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+Dword TDA18271_C2_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+
+ Dword error = Error_NO_ERROR;
+ Byte fc = 1;
+ Long IfFreq;
+ Dword fcw;
+ Byte buffer[3];
+ Ganymede* ganymede;
+ ganymede = (Ganymede*) demodulator;
+
+ switch(bandwidth)
+ {
+ case 6000:
+ IfFreq = 3300000;
+ fc = tmDigital_TV_ATSC_6MHz_C2;
+ break;
+ case 7000:
+ IfFreq = 3500000;
+ fc = tmDigital_TV_DVBT_7MHz_C2;
+ break;
+ case 8000:
+ IfFreq = 4000000;
+ fc = tmDigital_TV_DVBT_8MHz_C2;
+ break;
+ default:
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+
+ error = Standard_computeFcw (demodulator, (Long) ganymede->adcFrequency, IfFreq, ganymede->tunerDescription->inversion, &fcw);
+ if (error) goto exit;
+ ganymede->fcw = fcw;
+
+ buffer[0] = (Byte) (fcw & 0x000000FF);
+ buffer[1] = (Byte) ((fcw & 0x0000FF00) >> 8);
+ buffer[2] = (Byte) ((fcw & 0x007F0000) >> 16);
+ error = Standard_writeRegisters (demodulator, chip, Processor_OFDM, bfs_fcw_7_0, bfs_fcw_22_16 - bfs_fcw_7_0 + 1, buffer);
+ if (error) goto exit;
+
+ error = tmbslTDA18271SetConfig_C2(0, STANDARDMODE_C2, fc);
+ if (error) goto exit;
+
+ error = tmbslTDA18271SetRf_C2(0, frequency * 1000);
+
+exit:
+ return (error);
+}
+
+
+TunerDescription tuner_TDA18271_C2 = {
+ TDA18271_C2_open,
+ TDA18271_C2_close,
+ TDA18271_C2_set,
+ TDA18271_C2_scripts,
+ TDA18271_C2_scriptSets,
+ TDA18271_C2_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ (Bool)True, /** spectrum inverse */
+ 0x2B, /** tuner id */
+};
diff --git a/api/Philips_TDA18271_C2.h b/api/Philips_TDA18271_C2.h
new file mode 100644
index 0000000..051d641
--- /dev/null
+++ b/api/Philips_TDA18271_C2.h
@@ -0,0 +1,42 @@
+/**
+ * @(#)Philips_TDA18271_C2.h
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ */
+#ifndef __Philips_TDA18271_C2_H__
+#define __Philips_TDA18271_C2_H__
+
+#define TDA18271_C2_VER_MAJOR 1
+#define TDA18271_C2_VER_MINOR 0
+
+extern TunerDescription tuner_TDA18271_C2;
+
+
+/**
+ *
+ */
+Dword TDA18271_C2_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TDA18271_C2_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TDA18271_C2_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Philips_TDA18271_C2_Askey.c b/api/Philips_TDA18271_C2_Askey.c
new file mode 100644
index 0000000..cc8722e
--- /dev/null
+++ b/api/Philips_TDA18271_C2_Askey.c
@@ -0,0 +1,128 @@
+/**
+ * @(#)Philips_TDA18271_C2_Askey_INT.cpp
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ */
+
+
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+
+#include "TDA18271local_C2_Askey.h"
+#include "TDA18271_C2_Askey.h"
+#include "Philips_TDA18271_C2_Askey_Script.h"
+
+
+extern tmTDA18271Object_t_C2_Askey gTDA18271Instance_C2_Askey[];
+
+Dword Standard_computeFcw (
+ IN Demodulator* demodulator,
+ IN Long adcFrequency, /** ADC frequency (Hz) */
+ IN Long ifFrequency, /** IF frequency (Hz) */
+ IN Bool inversion, /** RF spectrum inversion */
+ OUT Dword* fcw
+);
+
+Dword TDA18271_C2_Askey_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ tmbslTuParam_t_C2_Askey param;
+
+ gTDA18271Instance_C2_Askey[0].AFAInfo_C2_Askey.demodulator = demodulator;
+ gTDA18271Instance_C2_Askey[0].AFAInfo_C2_Askey.chip = chip;
+
+ param.systemFunc.SY_Read_C2_Askey = SY_Read_C2_Askey;
+ param.systemFunc.SY_Write_C2_Askey = SY_Write_C2_Askey;
+ param.uHwAddress = 0xC0ul;
+
+ error = tmbslTDA18271Init_C2_Askey(0, param);
+ if (error) goto exit;
+
+ error = TDA18271Init_C2_Askey(0);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+Dword TDA18271_C2_Askey_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+Dword TDA18271_C2_Askey_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+
+ Dword error = Error_NO_ERROR;
+ Byte fc = 1;
+ Long IfFreq;
+ Dword fcw;
+ Byte buffer[3];
+ Ganymede* ganymede;
+ ganymede = (Ganymede*) demodulator;
+
+ switch(bandwidth)
+ {
+ case 6000:
+ IfFreq = 3300000;
+ fc = tmDigital_TV_ATSC_6MHz_C2_Askey;
+ break;
+ case 7000:
+ IfFreq = 3500000;
+ fc = tmDigital_TV_DVBT_7MHz_C2_Askey;
+ break;
+ case 8000:
+ IfFreq = 4000000;
+ fc = tmDigital_TV_DVBT_8MHz_C2_Askey;
+ break;
+ default:
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+
+ error = Standard_computeFcw (demodulator, (Long) ganymede->adcFrequency, IfFreq, ganymede->tunerDescription->inversion, &fcw);
+ if (error) goto exit;
+ ganymede->fcw = fcw;
+
+ buffer[0] = (Byte) (fcw & 0x000000FF);
+ buffer[1] = (Byte) ((fcw & 0x0000FF00) >> 8);
+ buffer[2] = (Byte) ((fcw & 0x007F0000) >> 16);
+ error = Standard_writeRegisters (demodulator, chip, Processor_OFDM, bfs_fcw_7_0, bfs_fcw_22_16 - bfs_fcw_7_0 + 1, buffer);
+ if (error) goto exit;
+
+ error = tmbslTDA18271SetConfig_C2_Askey(0, STANDARDMODE_C2_Askey, fc);
+ if (error) goto exit;
+
+ error = tmbslTDA18271SetRf_C2_Askey(0, frequency * 1000);
+
+exit:
+ return (error);
+}
+
+
+TunerDescription tuner_TDA18271_C2_Askey = {
+ TDA18271_C2_Askey_open,
+ TDA18271_C2_Askey_close,
+ TDA18271_C2_Askey_set,
+ TDA18271_C2_Askey_scripts,
+ TDA18271_C2_Askey_scriptSets,
+ TDA18271_C2_Askey_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ (Bool)True, /** spectrum inverse */
+ 0x2F, /** tuner id */
+};
diff --git a/api/Philips_TDA18271_C2_Askey.h b/api/Philips_TDA18271_C2_Askey.h
new file mode 100644
index 0000000..63e745a
--- /dev/null
+++ b/api/Philips_TDA18271_C2_Askey.h
@@ -0,0 +1,42 @@
+/**
+ * @(#)Philips_TDA18271_C2_Askey.h
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ */
+#ifndef __Philips_TDA18271_C2_Askey_H__
+#define __Philips_TDA18271_C2_Askey_H__
+
+#define TDA18271_C2_Askey_VER_MAJOR 2
+#define TDA18271_C2_Askey_VER_MINOR 0
+
+extern TunerDescription tuner_TDA18271_C2_Askey;
+
+
+/**
+ *
+ */
+Dword TDA18271_C2_Askey_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TDA18271_C2_Askey_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TDA18271_C2_Askey_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Philips_TDA18271_C2_Askey_Script.h b/api/Philips_TDA18271_C2_Askey_Script.h
new file mode 100644
index 0000000..8be9340
--- /dev/null
+++ b/api/Philips_TDA18271_C2_Askey_Script.h
@@ -0,0 +1,58 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Philips_TDA18271_C2_Askey_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 15
+#define VERSION3 9
+#define VERSION4 0
+
+
+
+#define TDA18271_C2_Askey_ADDRESS 0xC0
+#define TDA18271_C2_Askey_SCRIPTSETLENGTH 0x00000001
+
+Word TDA18271_C2_Askey_scriptSets[] = {
+0x1E
+};
+
+ValueSet TDA18271_C2_Askey_scripts[] = {
+ {0x0046, 0x1B},
+ {0x0057, 0x01},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0068, 0x96},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x00b3, 0x01},
+ {0x00c1, 0x01},
+ {0x00c2, 0x00},
+ {0xF007, 0x00},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF012, 0xda},
+ {0xF013, 0x00},
+ {0xF014, 0x00},
+ {0xF015, 0x02},
+ {0xF01F, 0x82},
+ {0xF020, 0x00},
+ {0xF029, 0x82},
+ {0xF02A, 0x00},
+ {0xF077, 0x02},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Philips_TDA18271_C2_Script.h b/api/Philips_TDA18271_C2_Script.h
new file mode 100644
index 0000000..12e86b1
--- /dev/null
+++ b/api/Philips_TDA18271_C2_Script.h
@@ -0,0 +1,58 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Philips_TDA18271_C2_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 15
+#define VERSION3 9
+#define VERSION4 0
+
+
+
+#define TDA18271_C2_ADDRESS 0xC0
+#define TDA18271_C2_SCRIPTSETLENGTH 0x00000001
+
+Word TDA18271_C2_scriptSets[] = {
+0x1E
+};
+
+ValueSet TDA18271_C2_scripts[] = {
+ {0x0046, 0x1B},
+ {0x0057, 0x01},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0068, 0x96},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x00b3, 0x01},
+ {0x00c1, 0x01},
+ {0x00c2, 0x00},
+ {0xF007, 0x00},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF012, 0xda},
+ {0xF013, 0x00},
+ {0xF014, 0x00},
+ {0xF015, 0x02},
+ {0xF01F, 0x82},
+ {0xF020, 0x00},
+ {0xF029, 0x82},
+ {0xF02A, 0x00},
+ {0xF077, 0x02},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Philips_TDA18271_Script.h b/api/Philips_TDA18271_Script.h
new file mode 100644
index 0000000..53cd755
--- /dev/null
+++ b/api/Philips_TDA18271_Script.h
@@ -0,0 +1,57 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Philips_TDA18271_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define TDA18271_ADDRESS 0xC0
+#define TDA18271_SCRIPTSETLENGTH 0x00000001
+
+Word TDA18271_scriptSets[] = {
+0x1D
+};
+
+ValueSet TDA18271_scripts[] = {
+ {0x0046, 0x1B},
+ {0x0057, 0x01},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x00b3, 0x01},
+ {0x00c3, 0x01},
+ {0x00c4, 0x00},
+ {0xF007, 0x00},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF012, 0xda},
+ {0xF013, 0x00},
+ {0xF014, 0x00},
+ {0xF015, 0x02},
+ {0xF01F, 0x82},
+ {0xF020, 0x00},
+ {0xF029, 0x82},
+ {0xF02A, 0x00},
+ {0xF077, 0x02},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Philips_TDA18291HN.c b/api/Philips_TDA18291HN.c
new file mode 100644
index 0000000..160349e
--- /dev/null
+++ b/api/Philips_TDA18291HN.c
@@ -0,0 +1,166 @@
+/**
+ * @(#)Philips_TDA18291HN.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ *
+ */
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "TDA18291local.h"
+#include "TDA18291.h"
+#include "Philips_TDA18291HN_Script.h"
+
+
+extern tm18291object_t g18291Instance[];
+
+
+Dword TDA18291HN_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ /** U/V band switch **/
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh2_o, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh2_on, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh2_en, 1);
+ if (error) goto exit;
+
+ /** Set registers for driving power **/
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_on, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_en, 1);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+Dword TDA18291HN_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ /** Set registers for driving power **/
+ /** set to GPI **/
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_on, 0);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh8_en, 0);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+Dword TDA18291HN_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ tmbslTuParam_t param;
+ Byte fc = 1;
+
+ if (bandwidth == 5000)
+ {
+ fc = CUTOFF_FREQ_FOR_5MHZ;
+ }
+ else if (bandwidth == 6000)
+ {
+ fc = CUTOFF_FREQ_FOR_6MHZ;
+ }
+ else if (bandwidth == 7000)
+ {
+ fc = CUTOFF_FREQ_FOR_7MHZ;
+ }
+ else if (bandwidth == 8000)
+ {
+ fc = CUTOFF_FREQ_FOR_8MHZ;
+ }
+ else
+ {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+
+ if (frequency > 300000)
+ {
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh2_o, 1);
+ if (error) goto exit;
+ }
+ else
+ {
+ error = Standard_writeRegister (demodulator, chip, Processor_LINK, p_reg_top_gpioh2_o, 0);
+ if (error) goto exit;
+ }
+
+ g18291Instance[0].AFAInfo.demodulator = demodulator;
+ g18291Instance[0].AFAInfo.chip = chip;
+
+ param.systemFunc.SY_Read = SY_Read2;
+ param.systemFunc.SY_Write = SY_Write2;
+ param.uHwAddress = 0xC0ul;
+
+ /** Init tuner */
+ error = tmbslTDA18291Init(0, param);
+ if (error) goto exit;
+
+ /** Select board */
+ error = tmbslTDA18291SetConfig(0, BOARD, OM5768_BOARD_DEF);
+ if (error) goto exit;
+
+ /** Set cut-off frequency */
+ error = tmbslTDA18291SetConfig(0, SET_CUTOFF_FREQ, fc);
+ if (error) goto exit;
+
+ /** Set frequency */
+ error = tmbslTDA18291SetRf(0, frequency * 1000);
+ if (error) goto exit;
+
+exit:
+ return (error);
+
+}
+
+
+TunerDescription tuner_TDA18291HN = {
+ TDA18291HN_open,
+ TDA18291HN_close,
+ TDA18291HN_set,
+ TDA18291HN_scripts,
+ TDA18291HN_scriptSets,
+ TDA18291HN_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ (Bool)True, /** spectrum inverse */
+ 0x22, /** tuner id */
+}; \ No newline at end of file
diff --git a/api/Philips_TDA18291HN.h b/api/Philips_TDA18291HN.h
new file mode 100644
index 0000000..82cec29
--- /dev/null
+++ b/api/Philips_TDA18291HN.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Philips_TDA18291HN.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2007 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __Philips_TDA18291HN_H__
+#define __Philips_TDA18291HN_H__
+
+
+#define TDA18291HN_VER_MAJOR 2
+#define TDA18291HN_VER_MINOR 0
+
+extern TunerDescription tuner_TDA18291HN;
+
+
+/**
+ *
+ */
+Dword TDA18291HN_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TDA18291HN_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword TDA18291HN_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Philips_TDA18291HN_Script.h b/api/Philips_TDA18291HN_Script.h
new file mode 100644
index 0000000..03222fe
--- /dev/null
+++ b/api/Philips_TDA18291HN_Script.h
@@ -0,0 +1,84 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Philips_TDA18291_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+#define TDA18291HN_ADDRESS 0xC0
+#define TDA18291HN_SCRIPTSETLENGTH 0x00000001
+
+Word TDA18291HN_scriptSets[] = {
+0x39
+};
+
+ValueSet TDA18291HN_scripts[] = {
+ {0x0046, 0x22},
+ {0x0057, 0x00},
+ {0x0058, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0068, 0x5b},
+ {0x006d, 0x00},
+ {0x006e, 0x01},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x00},
+ {0x0075, 0x3},
+ {0x0076, 0x02},
+ {0x0077, 0x01},
+ {0x0078, 0x00},
+ {0x0079, 0x00},
+ {0x007a, 0x7F},
+ {0x007b, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x01},
+ {0x0095, 0x02},
+ {0x0096, 0x01},
+ {0x0098, 0x0A},
+ {0x009b, 0x09},
+ {0x009c, 0x80},
+ {0x009d, 0x1A},
+ {0x00a4, 0x10},
+ {0x00ad, 0x33},
+ {0x00b3, 0x00},
+ {0x00b7, 0x5b},
+ {0x00b8, 0x73},
+ {0x00ba, 0x00},
+ {0x00c3, 0x01},
+ {0x00c4, 0x01},
+ {0x00c7, 0x5B},
+ {0xF007, 0x0},
+ {0xF00A, 0x19},
+ {0xF00B, 0x1A},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF00E, 0x00},
+ {0xF00F, 0x00},
+ {0xF010, 0x00},
+ {0xF011, 0x00},
+ {0xF012, 0x00},
+ {0xF013, 0x00},
+ {0xF014, 0x00},
+ {0xF015, 0x00},
+ {0xF01F, 0x83},
+ {0xF020, 0x00},
+ {0xF029, 0x83},
+ {0xF02A, 0x00},
+ {0xF047, 0x0},
+ {0xF054, 0x0},
+ {0xF055, 0x0},
+ {0xF077, 0x01},
+ {0xF1E6, 0x01},
+
+};
diff --git a/api/TDA18271.c b/api/TDA18271.c
new file mode 100644
index 0000000..d47f1f0
--- /dev/null
+++ b/api/TDA18271.c
@@ -0,0 +1,2933 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271.c
+//
+// DESCRIPTION: Function for the Hybrid silicon tuner TDA18271
+//
+// DOCUMENT REF:
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+//#include "tmbslTuner.h"
+#include "TDA18271Local.h"
+
+#include "standard.h"
+
+//-----------------------------------------------------------------------------
+// Types and defines:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Global data:
+//-----------------------------------------------------------------------------
+//
+//
+// default instance
+tmTDA18271Object_t gTDA18271Instance[] =
+{
+ {
+ {
+ NULL, /* Demodulator */
+ 0x01 /* chip */
+ },
+
+ False, // init (instance initialization default)
+
+ 0, // uHwAddress (HwId default value)
+
+ { // SystemFunc (system functions default addresses)
+ NULL,
+ NULL,
+ },
+ tmPowerSleepMode, // default power state
+ tmDigital_TV_ATSC_6MHz, // default standard mode
+ { // Config
+ CUSTOM_BOARD_DEF, // uBoard [default Configuration structure]
+ OM57XX_STANDARD_DEF, // uStandard
+ 545000000, // uRF
+ 3250000, // uIF
+ 6000000, // uBW
+ 0, // uTMMODE
+ 1, // uPLMODE
+ 0, // uMapName
+ 0, // uMAPCOLUMN
+ 0, // uMAPROW
+ 0x6F, // uPROTOCOLSTEP
+ 0x051E3C00, // uPROTOCOLWAIT
+ { // IR_MEAS_Map uRF_Max
+ {30000000},
+ {200000000},
+ {600000000},
+ {865000000},
+ },
+ { // IR_CAL_Map uRF, uIR_GStep
+ {72000000, 0x03},
+ {408000000, 0x03},
+ {808000000, 0x03},
+ },
+ { // BP_FILTER_Map uRF_Max, uBP_Filter
+ {62000000, 0x00},
+ {84000000, 0x01},
+ {100000000, 0x02},
+ {140000000, 0x03},
+ {170000000, 0x04},
+ {180000000, 0x05},
+ {865000000, 0x06},
+ },
+ { // RF_BAND_Map uRF_Max, uRF_Band
+ {47900000, 0x00},
+ {61100000, 0x01},
+ {152600000, 0x02},
+ {164700000, 0x03},
+ {203500000, 0x04},
+ {457800000, 0x05},
+ {865000000, 0x06},
+ },
+ { // GAIN_TAPER_Map uRF_Max, uGain_Taper
+ {45400000, 0x1F},
+ {45800000, 0x1E},
+ {46200000, 0x1D},
+ {46700000, 0x1C},
+ {47100000, 0x1B},
+ {47500000, 0x1A},
+ {47900000, 0x19},
+ {49600000, 0x17},
+ {51200000, 0x16},
+ {52900000, 0x15},
+ {54500000, 0x14},
+ {56200000, 0x13},
+ {57800000, 0x12},
+ {59500000, 0x11},
+ {61100000, 0x10},
+ {67600000, 0x0D},
+ {74200000, 0x0C},
+ {80700000, 0x0B},
+ {87200000, 0x0A},
+ {93800000, 0x09},
+ {100300000, 0x08},
+ {106900000, 0x07},
+ {113400000, 0x06},
+ {119900000, 0x05},
+ {126500000, 0x04},
+ {133000000, 0x03},
+ {139500000, 0x02},
+ {146100000, 0x01},
+ {152600000, 0x00},
+ {154300000, 0x1F},
+ {156100000, 0x1E},
+ {157800000, 0x1D},
+ {159500000, 0x1C},
+ {161200000, 0x1B},
+ {163000000, 0x1A},
+ {164700000, 0x19},
+ {170200000, 0x17},
+ {175800000, 0x16},
+ {181300000, 0x15},
+ {186900000, 0x14},
+ {192400000, 0x13},
+ {198000000, 0x12},
+ {203500000, 0x11},
+ {216200000, 0x14},
+ {228900000, 0x13},
+ {241600000, 0x12},
+ {254400000, 0x11},
+ {267100000, 0x10},
+ {279800000, 0x0F},
+ {292500000, 0x0E},
+ {305200000, 0x0D},
+ {317900000, 0x0C},
+ {330700000, 0x0B},
+ {343400000, 0x0A},
+ {356100000, 0x09},
+ {368800000, 0x08},
+ {381500000, 0x07},
+ {394200000, 0x06},
+ {406900000, 0x05},
+ {419700000, 0x04},
+ {432400000, 0x03},
+ {445100000, 0x02},
+ {457800000, 0x01},
+ {476300000, 0x19},
+ {494800000, 0x18},
+ {513300000, 0x17},
+ {531800000, 0x16},
+ {550300000, 0x15},
+ {568900000, 0x14},
+ {587400000, 0x13},
+ {605900000, 0x12},
+ {624400000, 0x11},
+ {642900000, 0x10},
+ {661400000, 0x0F},
+ {679900000, 0x0E},
+ {698400000, 0x0D},
+ {716900000, 0x0C},
+ {735400000, 0x0B},
+ {753900000, 0x0A},
+ {772500000, 0x09},
+ {791000000, 0x08},
+ {809500000, 0x07},
+ {828000000, 0x06},
+ {846500000, 0x05},
+ {865000000, 0x04},
+ },
+ { // RF_CAL_Map uRF_Max, uRFC_Cprog
+ {41000000, 0x1E},
+ {43000000, 0x30},
+ {45000000, 0x43},
+ {46000000, 0x4D},
+ {47000000, 0x54},
+ {47900000, 0x64},
+ {49100000, 0x20},
+ {50000000, 0x22},
+ {51000000, 0x2A},
+ {53000000, 0x32},
+ {55000000, 0x35},
+ {56000000, 0x3C},
+ {57000000, 0x3F},
+ {58000000, 0x48},
+ {59000000, 0x4D},
+ {60000000, 0x58},
+ {61100000, 0x5F},
+ },
+ { // RF_CAL_KMCO_Map uRF_Max uK, uM, UCOAmp
+ {61100000, 7, 1, 3},
+ {350000000, 4, 0, 3},
+ {720000000, 3, 0, 3},
+ {865000000, 4, 0, 3},
+ },
+ { // THERMOMETER_Map uTM_D, uTM_60_92, uTM_92_122
+ {0x00, 0x3C, 0x5C},
+ {0x01, 0x3E, 0x5E},
+ {0x02, 0x42, 0x62},
+ {0x03, 0x40, 0x60},
+ {0x04, 0x4A, 0x6A},
+ {0x05, 0x48, 0x68},
+ {0x06, 0x44, 0x64},
+ {0x07, 0x46, 0x66},
+ {0x08, 0x5A, 0x7A},
+ {0x09, 0x58, 0x78},
+ {0x0A, 0x54, 0x74},
+ {0x0B, 0x56, 0x76},
+ {0x0C, 0x4C, 0x6C},
+ {0x0D, 0x4E, 0x6E},
+ {0x0E, 0x52, 0x72},
+ {0x0F, 0x50, 0x70},
+ },
+ { // CAL_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33000000, 0xDD, 0xD0},
+ {36000000, 0xDC, 0xC0},
+ {40000000, 0xDB, 0xB0},
+ {44000000, 0xDA, 0xA0},
+ {49000000, 0xD9, 0x90},
+ {55000000, 0xD8, 0x80},
+ {63000000, 0xD3, 0x70},
+ {67000000, 0xCD, 0x68},
+ {73000000, 0xCC, 0x60},
+ {80000000, 0xCB, 0x58},
+ {88000000, 0xCA, 0x50},
+ {98000000, 0xC9, 0x48},
+ {110000000, 0xC8, 0x40},
+ {126000000, 0xC3, 0x38},
+ {135000000, 0xBD, 0x34},
+ {147000000, 0xBC, 0x30},
+ {160000000, 0xBB, 0x2C},
+ {176000000, 0xBA, 0x28},
+ {196000000, 0xB9, 0x24},
+ {220000000, 0xB8, 0x20},
+ {252000000, 0xB3, 0x1C},
+ {271000000, 0xAD, 0x1A},
+ {294000000, 0xAC, 0x18},
+ {321000000, 0xAB, 0x16},
+ {353000000, 0xAA, 0x14},
+ {392000000, 0xA9, 0x12},
+ {441000000, 0xA8, 0x10},
+ {505000000, 0xA3, 0x0E},
+ {543000000, 0x9D, 0x0D},
+ {589000000, 0x9C, 0x0C},
+ {642000000, 0x9B, 0x0B},
+ {707000000, 0x9A, 0x0A},
+ {785000000, 0x99, 0x09},
+ {883000000, 0x98, 0x08},
+ {1010000000,0x93, 0x07},
+ },
+ { // MAIN_PLL_Map uLO_Max, uPost_Div, uDiv
+ {32000000, 0x5F, 0xF0},
+ {35000000, 0x5E, 0xE0},
+ {37000000, 0x5D, 0xD0},
+ {41000000, 0x5C, 0xC0},
+ {44000000, 0x5B, 0xB0},
+ {49000000, 0x5A, 0xA0},
+ {54000000, 0x59, 0x90},
+ {61000000, 0x58, 0x80},
+ {65000000, 0x4F, 0x78},
+ {70000000, 0x4E, 0x70},
+ {75000000, 0x4D, 0x68},
+ {82000000, 0x4C, 0x60},
+ {89000000, 0x4B, 0x58},
+ {98000000, 0x4A, 0x50},
+ {109000000, 0x49, 0x48},
+ {123000000, 0x48, 0x40},
+ {131000000, 0x3F, 0x3C},
+ {141000000, 0x3E, 0x38},
+ {151000000, 0x3D, 0x34},
+ {164000000, 0x3C, 0x30},
+ {179000000, 0x3B, 0x2C},
+ {197000000, 0x3A, 0x28},
+ {219000000, 0x39, 0x24},
+ {246000000, 0x38, 0x20},
+ {263000000, 0x2F, 0x1E},
+ {282000000, 0x2E, 0x1C},
+ {303000000, 0x2D, 0x1A},
+ {329000000, 0x2C, 0x18},
+ {359000000, 0x2B, 0x16},
+ {395000000, 0x2A, 0x14},
+ {438000000, 0x29, 0x12},
+ {493000000, 0x28, 0x10},
+ {526000000, 0x1F, 0x0F},
+ {564000000, 0x1E, 0x0E},
+ {607000000, 0x1D, 0x0D},
+ {658000000, 0x1C, 0x0C},
+ {718000000, 0x1B, 0x0B},
+ {790000000, 0x1A, 0x0A},
+ {877000000, 0x19, 0x09},
+ {987000000, 0x18, 0x08},
+ },
+ },
+ 0, // I2CMap
+ 0, // I2CLog
+ 0, // uTickEnd [end tick value]
+ }, // end of 1st element
+ {
+ {
+ NULL, /* Demodulator */
+ 0x01 /* chip */
+ },
+
+ False, // init (instance initialization default)
+
+ 0, // uHwAddress (HwId default value)
+
+ { // SystemFunc (system functions default addresses)
+ NULL,
+ NULL,
+ },
+ tmPowerSleepMode, // default power state
+ tmDigital_TV_ATSC_6MHz, // default standard mode
+ { // Config
+ CUSTOM_BOARD_DEF, // uBoard [default Configuration structure]
+ OM57XX_STANDARD_DEF, // uStandard
+ 545000000, // uRF
+ 3250000, // uIF
+ 6000000, // uBW
+ 0, // uTMMODE
+ 1, // uPLMODE
+ 0, // uMapName
+ 0, // uMAPCOLUMN
+ 0, // uMAPROW
+ 0x6F, // uPROTOCOLSTEP
+ 0x051E3C00, // uPROTOCOLWAIT
+ { // IR_MEAS_Map uRF_Max
+ {30000000},
+ {200000000},
+ {600000000},
+ {865000000},
+ },
+ { // IR_CAL_Map uRF, uIR_GStep
+ {72000000, 0x03},
+ {408000000, 0x03},
+ {808000000, 0x03},
+ },
+ { // BP_FILTER_Map uRF_Max, uBP_Filter
+ {62000000, 0x00},
+ {84000000, 0x01},
+ {100000000, 0x02},
+ {140000000, 0x03},
+ {170000000, 0x04},
+ {180000000, 0x05},
+ {865000000, 0x06},
+ },
+ { // RF_BAND_Map uRF_Max, uRF_Band
+ {47900000, 0x00},
+ {61100000, 0x01},
+ {152600000, 0x02},
+ {164700000, 0x03},
+ {203500000, 0x04},
+ {457800000, 0x05},
+ {865000000, 0x06},
+ },
+ { // GAIN_TAPER_Map uRF_Max, uGain_Taper
+ {45400000, 0x1F},
+ {45800000, 0x1E},
+ {46200000, 0x1D},
+ {46700000, 0x1C},
+ {47100000, 0x1B},
+ {47500000, 0x1A},
+ {47900000, 0x19},
+ {49600000, 0x17},
+ {51200000, 0x16},
+ {52900000, 0x15},
+ {54500000, 0x14},
+ {56200000, 0x13},
+ {57800000, 0x12},
+ {59500000, 0x11},
+ {61100000, 0x10},
+ {67600000, 0x0D},
+ {74200000, 0x0C},
+ {80700000, 0x0B},
+ {87200000, 0x0A},
+ {93800000, 0x09},
+ {100300000, 0x08},
+ {106900000, 0x07},
+ {113400000, 0x06},
+ {119900000, 0x05},
+ {126500000, 0x04},
+ {133000000, 0x03},
+ {139500000, 0x02},
+ {146100000, 0x01},
+ {152600000, 0x00},
+ {154300000, 0x1F},
+ {156100000, 0x1E},
+ {157800000, 0x1D},
+ {159500000, 0x1C},
+ {161200000, 0x1B},
+ {163000000, 0x1A},
+ {164700000, 0x19},
+ {170200000, 0x17},
+ {175800000, 0x16},
+ {181300000, 0x15},
+ {186900000, 0x14},
+ {192400000, 0x13},
+ {198000000, 0x12},
+ {203500000, 0x11},
+ {216200000, 0x14},
+ {228900000, 0x13},
+ {241600000, 0x12},
+ {254400000, 0x11},
+ {267100000, 0x10},
+ {279800000, 0x0F},
+ {292500000, 0x0E},
+ {305200000, 0x0D},
+ {317900000, 0x0C},
+ {330700000, 0x0B},
+ {343400000, 0x0A},
+ {356100000, 0x09},
+ {368800000, 0x08},
+ {381500000, 0x07},
+ {394200000, 0x06},
+ {406900000, 0x05},
+ {419700000, 0x04},
+ {432400000, 0x03},
+ {445100000, 0x02},
+ {457800000, 0x01},
+ {476300000, 0x19},
+ {494800000, 0x18},
+ {513300000, 0x17},
+ {531800000, 0x16},
+ {550300000, 0x15},
+ {568900000, 0x14},
+ {587400000, 0x13},
+ {605900000, 0x12},
+ {624400000, 0x11},
+ {642900000, 0x10},
+ {661400000, 0x0F},
+ {679900000, 0x0E},
+ {698400000, 0x0D},
+ {716900000, 0x0C},
+ {735400000, 0x0B},
+ {753900000, 0x0A},
+ {772500000, 0x09},
+ {791000000, 0x08},
+ {809500000, 0x07},
+ {828000000, 0x06},
+ {846500000, 0x05},
+ {865000000, 0x04},
+ },
+ { // RF_CAL_Map uRF_Max, uRFC_Cprog
+ {41000000, 0x1E},
+ {43000000, 0x30},
+ {45000000, 0x43},
+ {46000000, 0x4D},
+ {47000000, 0x54},
+ {47900000, 0x64},
+ {49100000, 0x20},
+ {50000000, 0x22},
+ {51000000, 0x2A},
+ {53000000, 0x32},
+ {55000000, 0x35},
+ {56000000, 0x3C},
+ {57000000, 0x3F},
+ {58000000, 0x48},
+ {59000000, 0x4D},
+ {60000000, 0x58},
+ {61100000, 0x5F},
+ },
+ { // RF_CAL_KMCO_Map uRF_Max uK, uM, UCOAmp
+ {61100000, 7, 1, 3},
+ {350000000, 4, 0, 3},
+ {720000000, 3, 0, 3},
+ {865000000, 4, 0, 3},
+ },
+ { // THERMOMETER_Map uTM_D, uTM_60_92, uTM_92_122
+ {0x00, 0x3C, 0x5C},
+ {0x01, 0x3E, 0x5E},
+ {0x02, 0x42, 0x62},
+ {0x03, 0x40, 0x60},
+ {0x04, 0x4A, 0x6A},
+ {0x05, 0x48, 0x68},
+ {0x06, 0x44, 0x64},
+ {0x07, 0x46, 0x66},
+ {0x08, 0x5A, 0x7A},
+ {0x09, 0x58, 0x78},
+ {0x0A, 0x54, 0x74},
+ {0x0B, 0x56, 0x76},
+ {0x0C, 0x4C, 0x6C},
+ {0x0D, 0x4E, 0x6E},
+ {0x0E, 0x52, 0x72},
+ {0x0F, 0x50, 0x70},
+ },
+ { // CAL_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33000000, 0xDD, 0xD0},
+ {36000000, 0xDC, 0xC0},
+ {40000000, 0xDB, 0xB0},
+ {44000000, 0xDA, 0xA0},
+ {49000000, 0xD9, 0x90},
+ {55000000, 0xD8, 0x80},
+ {63000000, 0xD3, 0x70},
+ {67000000, 0xCD, 0x68},
+ {73000000, 0xCC, 0x60},
+ {80000000, 0xCB, 0x58},
+ {88000000, 0xCA, 0x50},
+ {98000000, 0xC9, 0x48},
+ {110000000, 0xC8, 0x40},
+ {126000000, 0xC3, 0x38},
+ {135000000, 0xBD, 0x34},
+ {147000000, 0xBC, 0x30},
+ {160000000, 0xBB, 0x2C},
+ {176000000, 0xBA, 0x28},
+ {196000000, 0xB9, 0x24},
+ {220000000, 0xB8, 0x20},
+ {252000000, 0xB3, 0x1C},
+ {271000000, 0xAD, 0x1A},
+ {294000000, 0xAC, 0x18},
+ {321000000, 0xAB, 0x16},
+ {353000000, 0xAA, 0x14},
+ {392000000, 0xA9, 0x12},
+ {441000000, 0xA8, 0x10},
+ {505000000, 0xA3, 0x0E},
+ {543000000, 0x9D, 0x0D},
+ {589000000, 0x9C, 0x0C},
+ {642000000, 0x9B, 0x0B},
+ {707000000, 0x9A, 0x0A},
+ {785000000, 0x99, 0x09},
+ {883000000, 0x98, 0x08},
+ {1010000000,0x93, 0x07},
+ },
+ { // MAIN_PLL_Map uLO_Max, uPost_Div, uDiv
+ {32000000, 0x5F, 0xF0},
+ {35000000, 0x5E, 0xE0},
+ {37000000, 0x5D, 0xD0},
+ {41000000, 0x5C, 0xC0},
+ {44000000, 0x5B, 0xB0},
+ {49000000, 0x5A, 0xA0},
+ {54000000, 0x59, 0x90},
+ {61000000, 0x58, 0x80},
+ {65000000, 0x4F, 0x78},
+ {70000000, 0x4E, 0x70},
+ {75000000, 0x4D, 0x68},
+ {82000000, 0x4C, 0x60},
+ {89000000, 0x4B, 0x58},
+ {98000000, 0x4A, 0x50},
+ {109000000, 0x49, 0x48},
+ {123000000, 0x48, 0x40},
+ {131000000, 0x3F, 0x3C},
+ {141000000, 0x3E, 0x38},
+ {151000000, 0x3D, 0x34},
+ {164000000, 0x3C, 0x30},
+ {179000000, 0x3B, 0x2C},
+ {197000000, 0x3A, 0x28},
+ {219000000, 0x39, 0x24},
+ {246000000, 0x38, 0x20},
+ {263000000, 0x2F, 0x1E},
+ {282000000, 0x2E, 0x1C},
+ {303000000, 0x2D, 0x1A},
+ {329000000, 0x2C, 0x18},
+ {359000000, 0x2B, 0x16},
+ {395000000, 0x2A, 0x14},
+ {438000000, 0x29, 0x12},
+ {493000000, 0x28, 0x10},
+ {526000000, 0x1F, 0x0F},
+ {564000000, 0x1E, 0x0E},
+ {607000000, 0x1D, 0x0D},
+ {658000000, 0x1C, 0x0C},
+ {718000000, 0x1B, 0x0B},
+ {790000000, 0x1A, 0x0A},
+ {877000000, 0x19, 0x09},
+ {987000000, 0x18, 0x08},
+ },
+ },
+ 0, // I2CMap
+ 0, // I2CLog
+ 0, // uTickEnd [end tick value]
+ }, // end of 2nd element
+};
+
+//-----------------------------------------------------------------------------
+// Internal Prototypes:
+//-----------------------------------------------------------------------------
+//
+Bool_
+TDA18271Init (
+ tmUnitSelect_t TunerUnit // I: Tuner Object
+ );
+Bool_
+TDA18271WaitTick(
+ ptmTDA18271Object_t pObj // I: Tuner unit number
+ );
+Bool_
+TDA18271Write(
+ ptmTDA18271Object_t pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ );
+Bool_
+TDA18271Read(
+ ptmTDA18271Object_t pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ );
+Bool_
+TDA18271Wait(
+ ptmTDA18271Object_t pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait for
+ );
+Bool_
+TDA18271ShiftLog(
+ ptmTDA18271Object_t pObj, // I: Tuner unit number
+ UInt8 uNbRows // I: nb of lines
+ );
+Bool_
+TDA18271CalcMAINPLL (
+ ptmTDA18271Object_t pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ );
+Bool_
+TDA18271CalcCALPLL (
+ ptmTDA18271Object_t pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ );
+Bool_
+TDA18271CalcRFFilter (
+ ptmTDA18271Object_t pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ );
+tmErrorCode_t
+tmbslTDA18271SetConfig(
+ tmUnitSelect_t TunerUnit, // I: TunerUnit number
+ UInt32 uItemId, // I: Identifier of the item to modify
+ UInt32 uValue // I: Value to set for the config item
+ );
+
+Bool_ SY_Write(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ uBuffer[i] = (UInt8)pDataBuff[i];
+ }
+
+ pObj = &gTDA18271Instance[0];
+
+ dwError = Standard_writeTunerRegisters (pObj->AFAInfo.demodulator, pObj->AFAInfo.chip,
+ (unsigned short)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0) RetStatus = True;
+
+ return (RetStatus);
+};
+
+Bool_ SY_Read(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ pObj = &gTDA18271Instance[0];
+
+ dwError = Standard_readTunerRegisters (pObj->AFAInfo.demodulator, pObj->AFAInfo.chip, (UInt16)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0)
+ {
+ RetStatus = True;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ pDataBuff[i] = (UInt32)uBuffer[i];
+ }
+ }
+
+ return (RetStatus);
+};
+
+
+//-----------------------------------------------------------------------------
+// Exported functions:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Init:
+//
+// DESCRIPTION: create an instance of a TDA18271 Tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Init(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmbslTuParam_t Param // I: setup parameters
+ )
+{
+ ptmTDA18271Object_t pObj;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ //----------------------
+ // initialize the Object
+ //----------------------
+ // return if already initialized
+ if(gTDA18271Instance[TunerUnit].init == True)
+ return TM_OK;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ //----------------
+ // init the Object
+ //----------------
+ // initialize the Object by default values
+ pObj->uHwAddress = Param.uHwAddress;
+ pObj->SystemFunc = Param.systemFunc;
+ pObj->init = True;
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271DeInit:
+//
+// DESCRIPTION: destroy an instance of a TDA18271 Tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271DeInit (
+ tmUnitSelect_t TunerUnit // I: Tuner unit number
+ )
+{
+ ptmTDA18271Object_t pObj;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the Object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ //-------------------------
+ // De-initialize the Object
+ //-------------------------
+ pObj->init = False;
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetSWVersion:
+//
+// DESCRIPTION: Return the version of this device
+//
+// RETURN: TM_OK
+//
+// NOTES: Values defined in the tmTDA18271Local.h file
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetSWVersion (
+ ptmSWVersion_t pSWVersion // I: Receives SW Version
+ )
+{
+ pSWVersion->compatibilityNr = TDA18271_BSL_COMP_NUM;
+ pSWVersion->majorVersionNr = TDA18271_BSL_MAJOR_VER;
+ pSWVersion->minorVersionNr = TDA18271_BSL_MINOR_VER;
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetPowerState:
+//
+// DESCRIPTION: Set the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetPowerState (
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271PowerState_t powerState // I: Power state of this device
+ )
+{
+ ptmTDA18271Object_t pObj;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ switch (powerState)
+ {
+ case tmPowerNormalMode:
+ // set SM bits
+ pObj->I2CMap.SM = 0x00;
+ pObj->I2CMap.SM_LT = 0x00;
+ pObj->I2CMap.SM_XT = 0x00;
+ break;
+
+ case tmPowerSleepMode:
+ // set SM bits
+ pObj->I2CMap.SM = 0x01;
+ pObj->I2CMap.SM_LT = 0x01;
+ pObj->I2CMap.SM_XT = 0x01;
+ break;
+
+ case tmPowerStandbyWith16MHz:
+ // set SM bits
+ pObj->I2CMap.SM = 0x01;
+ pObj->I2CMap.SM_LT = 0x01;
+ pObj->I2CMap.SM_XT = 0x00;
+ break;
+
+ case tmPowerStandbyWith16MHzAndLoopThrough:
+ // set SM bits
+ pObj->I2CMap.SM = 0x01;
+ pObj->I2CMap.SM_LT = 0x00;
+ pObj->I2CMap.SM_XT = 0x00;
+ break;
+
+ case tmPowerStandbyWithLoopThrough:
+ // set SM bits
+ pObj->I2CMap.SM = 0x01;
+ pObj->I2CMap.SM_LT = 0x00;
+ pObj->I2CMap.SM_XT = 0x01;
+ break;
+
+ default:
+ // power state not supported
+ return TM_ERR_NOT_SUPPORTED;
+ }
+
+ // store powerstate
+ pObj->curPowerState = powerState;
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetPowerState:
+//
+// DESCRIPTION: Get the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetPowerState (
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271PowerState_t *pPowerState // O: Power state of this device
+ )
+{
+ ptmTDA18271Object_t pObj;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ //----------------------
+ // get the value
+ //----------------------
+ if ((pObj->I2CMap.SM == 0x00) && (pObj->I2CMap.SM_LT == 0x00) && (pObj->I2CMap.SM_XT == 0x00))
+ *pPowerState = tmPowerNormalMode;
+ else if ((pObj->I2CMap.SM == 0x01) && (pObj->I2CMap.SM_LT == 0x01) && (pObj->I2CMap.SM_XT == 0x01))
+ *pPowerState = tmPowerSleepMode;
+ else if ((pObj->I2CMap.SM == 0x01) && (pObj->I2CMap.SM_LT == 0x01) && (pObj->I2CMap.SM_XT == 0x00))
+ *pPowerState = tmPowerStandbyWith16MHz;
+ else if ((pObj->I2CMap.SM == 0x01) && (pObj->I2CMap.SM_LT == 0x00) && (pObj->I2CMap.SM_XT == 0x00))
+ *pPowerState = tmPowerStandbyWith16MHzAndLoopThrough;
+ else if ((pObj->I2CMap.SM == 0x01) && (pObj->I2CMap.SM_LT == 0x00) && (pObj->I2CMap.SM_XT == 0x01))
+ *pPowerState = tmPowerStandbyWithLoopThrough;
+ else
+ *pPowerState = tmPowerNotSupported;
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetStandardMode:
+//
+// DESCRIPTION: Set the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetStandardMode (
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271StandardMode_t StandardMode // I: Standard mode of this device
+ )
+{
+ ptmTDA18271Object_t pObj;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ // set uIF & Std & FM_RFn
+ switch (StandardMode)
+ {
+ case tmDigital_TV_ATSC_6MHz:
+ // set IF frequency
+ pObj->Config.uIF = 3250000;
+ // set Bandwith value
+ pObj->Config.uBW = 6000000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x1C;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_DVBT_7MHz:
+ // set IF frequency
+ pObj->Config.uIF = 3800000;
+ // set Bandwith value
+ pObj->Config.uBW = 7000000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x1D;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_DVBT_8MHz:
+ // set IF frequency
+ pObj->Config.uIF = 4300000;
+ // set Bandwith value
+ pObj->Config.uBW = 8000000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x1E;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_MN:
+ // set IF frequency
+ pObj->Config.uIF = 5750000;
+ // set Bandwith value
+ pObj->Config.uBW = 6000000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x0D;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_B:
+ // set IF frequency
+ pObj->Config.uIF = 6750000;
+ // set Bandwith value
+ pObj->Config.uBW = 7000000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x0E;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_GH:
+ case tmAnalog_TV_I:
+ case tmAnalog_TV_DK:
+ case tmAnalog_TV_L:
+ // set IF frequency
+ pObj->Config.uIF = 7750000;
+ // set Bandwith value
+ pObj->Config.uBW = 8000000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x0F;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_LL:
+ // set IF frequency
+ pObj->Config.uIF = 1250000;
+ // set Bandwith value
+ pObj->Config.uBW = 1500000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x0F;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_FM_Radio:
+ // set IF frequency
+ pObj->Config.uIF = 1250000;
+ // set Bandwith value
+ pObj->Config.uBW = 250000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x18; /* FM radio in digital mode */
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x01;
+ break;
+
+ case tmDigital_TV_QAM_6MHz:
+ // set IF frequency
+ pObj->Config.uIF = 4000000;
+ // set Bandwith value
+ pObj->Config.uBW = 6000000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x1D;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_QAM_8MHz:
+ // set IF frequency
+ pObj->Config.uIF = 5000000;
+ // set Bandwith value
+ pObj->Config.uBW = 8000000;
+ // set Std bit
+ pObj->I2CMap.Std = 0x1F;
+ // set FM_RFn bit
+ pObj->I2CMap.FM_RFn = 0x00;
+ break;
+ }
+
+ // set IF_Level & IF_notch & RFAGC_Top & IFAGC_Top
+ switch (StandardMode)
+ {
+ case tmDigital_TV_ATSC_6MHz:
+ case tmDigital_TV_DVBT_7MHz:
+ case tmDigital_TV_DVBT_8MHz:
+ case tmDigital_TV_QAM_6MHz:
+ case tmDigital_TV_QAM_8MHz:
+ // set IF_Level
+ pObj->I2CMap.IF_Level = 0x01;
+ // set IF_notch
+ pObj->I2CMap.IF_notch = 0x01;
+ // set RFAGC_Top & IFAGC_Top
+ pObj->I2CMap.EXTENDED_BYTE_22 = 0x37;
+ break;
+
+ case tmAnalog_TV_MN:
+ case tmAnalog_TV_B:
+ case tmAnalog_TV_GH:
+ case tmAnalog_TV_I:
+ case tmAnalog_TV_DK:
+ case tmAnalog_TV_L:
+ case tmAnalog_TV_LL:
+ case tmAnalog_FM_Radio:
+ // set IF_Level
+ pObj->I2CMap.IF_Level = 0x00;
+ // set IF_notch
+ pObj->I2CMap.IF_notch = 0x00;
+ // set RFAGC_Top & IFAGC_Top
+ pObj->I2CMap.EXTENDED_BYTE_22 = 0x2C;
+ break;
+
+ default:
+ // standard mode not supported
+ return TM_ERR_NOT_SUPPORTED;
+ }
+
+ // store standard mode
+ pObj->StandardMode = StandardMode;
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetStandardMode:
+//
+// DESCRIPTION: Get the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetStandardMode (
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271StandardMode_t *pStandardMode // O: Standard mode of this device
+ )
+{
+ ptmTDA18271Object_t pObj;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ //----------------------
+ // get the value
+ //----------------------
+ *pStandardMode = pObj->StandardMode;
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Write:
+//
+// DESCRIPTION: Write in the Tuner.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES: uIndex: IN parameter containing the HW Sub Address as specified in
+// the datasheet (i.e. looks like 0xX0)
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Write (
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to write
+ UInt32 uNbBytes, // I: Number of bytes to write
+ UInt32* puBytes // I: Pointer on an array of bytes
+)
+{
+
+ UInt32 uCounter;
+ UInt8* pI2CMap;
+
+ ptmTDA18271Object_t pObj;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the Object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // test the parameters. uIndex is: 0x0X
+ if ((uIndex + uNbBytes) > TDA18271_NB_BYTES)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER;
+
+ // pObj & pI2CMap initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+ pI2CMap = &(pObj->I2CMap.ID_BYTE) + uIndex;
+
+ //--------------
+ // set the value
+ //--------------
+ // save the values written in the Tuner
+ for (uCounter = 0; uCounter < uNbBytes; uCounter++){
+ *pI2CMap = (UInt8)(puBytes[uCounter]);
+ pI2CMap ++;
+ }
+
+ // write in the Tuner
+ if (TDA18271Write(pObj,(UInt8)(uIndex),(UInt8)(uNbBytes)) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271WriteBit:
+//
+// DESCRIPTION: Write in the Tuner.
+//
+// RETURN: TM_ERR_NOT_SUPPORTED
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271WriteBit (
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to write
+ UInt32 uBitMask, // I: bit mask
+ UInt32 uBitValue // I: bit value
+)
+{
+ return TM_ERR_NOT_SUPPORTED;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Read:
+//
+// DESCRIPTION: Read in the Tuner.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Read (
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to read
+ UInt32 uNbBytes, // I: Number of bytes to read
+ UInt32* puBytes // I: Pointer on an array of bytes
+)
+{
+ UInt32 uCounter;
+ UInt8* pI2CMap;
+
+ ptmTDA18271Object_t pObj;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the Object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // test the Object
+ if (uNbBytes > TDA18271_NB_BYTES)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER;
+
+ // test uIndex
+ if (uIndex == -1)
+ uIndex = 0;
+
+ // pObj & pI2CMap initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+ pI2CMap = &(pObj->I2CMap.ID_BYTE) + uIndex;
+
+ //--------------
+ // get the value
+ //--------------
+ // read from the Tuner
+ if (TDA18271Read(pObj,(UInt8)(uIndex),(UInt8)(uNbBytes)) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // copy readen values to puBytes
+ for (uCounter = 0; uCounter < uNbBytes; uCounter++)
+ {
+ *puBytes = (UInt32)(*pI2CMap);
+ pI2CMap ++;
+ puBytes ++;
+ }
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetConfig:
+//
+// DESCRIPTION: Set the Config of the TDA18271
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_ERR_NOT_SUPPORTED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetConfig(
+ tmUnitSelect_t TunerUnit, // I: TunerUnit number
+ UInt32 uItemId, // I: Identifier of the item to modify
+ UInt32 uValue // I: Value to set for the Config item
+ )
+{
+ ptmTDA18271Object_t pObj;
+ UInt8* pI2CMap;
+ UInt32* pDataMap;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the Object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ //--------------
+ // set the value
+ //--------------
+ switch((tmTDA18271cfgIndex_t)uItemId)
+ {
+ case BOARD:
+ switch (uValue & 0xffff0000)
+ {
+ case OM5776_BOARD_DEF:
+ case OM5780_BOARD_DEF:
+ case OM5782_BOARD_DEF:
+ case OM5764_BOARD_DEF:
+ /*pObj->Config.uXTOUT = 1;
+ pObj->I2CMap.XTout_ON = 1;*/
+ break;
+ case OM5770C2_BOARD_DEF & 0xffff0000:
+ case OM5775_BOARD_DEF:
+ case OM5777_BOARD_DEF:
+ case CUSTOM_BOARD_DEF:
+ // do nothing more than setting the default values
+ break;
+ default:
+ // board not supported
+ return TM_ERR_NOT_SUPPORTED;
+ }
+ // store board
+ gTDA18271Instance[TunerUnit].Config.uBoard = uValue;
+ break;
+
+ case FEINIT:
+ TDA18271Init(TunerUnit);
+ break;
+
+ case RF:
+ // set RF frequency
+ pObj->Config.uRF = uValue;
+ break;
+
+ case IF:
+ // set IF frequency
+ pObj->Config.uIF = uValue;
+ break;
+
+ case TMMODE:
+ // set TMMODE
+ pObj->Config.uTMMODE = uValue;
+ // set TM_ON
+ pObj->I2CMap.TM_ON = (UInt8)uValue;
+ // write byte THERMO_BYTE
+ if (TDA18271Write(pObj,0x01,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+
+ case PLMODE:
+ // set uPLMODE
+ pObj->Config.uPLMODE = uValue;
+ // set Dis_Power_level
+ pObj->I2CMap.Dis_Power_level = (UInt8)uValue;
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+
+ case POWERSTATE:
+ // set POWERSTATE
+ tmbslTDA18271SetPowerState (TunerUnit, (tmTDA18271PowerState_t)uValue);
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.CAL_Mode = 0x00;
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ /*// wait 20 ms
+ if (TDA18271Wait(pObj,20) == False)
+ return TM_FALSE;*/
+ break;
+
+ case STANDARDMODE:
+ // set STANDARDMODE
+ tmbslTDA18271SetStandardMode (TunerUnit, (tmTDA18271StandardMode_t)uValue);
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.CAL_Mode = 0x00;
+ // write bytes EASY_PROG_BYTE_3 & EASY_PROG_BYTE_4
+ if (TDA18271Write(pObj,0x05,2) != True)
+ return TMBSL_ERR_IIC_ERR;
+ // write MAIN_POST_DIV_BYTE
+ if (TDA18271Write(pObj,0x0C,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ // write EXTENDED_BYTE_22
+ if (TDA18271Write(pObj,0x25,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+
+ case XTOUT:
+ // set XTout_ON
+ pObj->I2CMap.XTout_ON = (UInt8)(uValue) >> 1;
+ // set Xtout_400mV
+ pObj->I2CMap.Xtout_400mV = (UInt8)(uValue) & 0x01;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+
+ case IFLEVEL:
+ // set IF_Level
+ pObj->I2CMap.IF_Level = (UInt8)uValue;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+
+ case EXTENDEDREG:
+ // set Extended_Reg
+ pObj->I2CMap.Extended_Reg = (UInt8)uValue;
+ // write byte EASY_PROG_BYTE_5
+ if (TDA18271Write(pObj,0x07,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+
+ case MAPNAME:
+ // set map name
+ pObj->Config.uMapName = uValue;
+ break;
+
+ case MAPCOLUMN:
+ // set map x
+ pObj->Config.uMAPCOLUMN = uValue;
+ break;
+
+ case MAPROW:
+ // set map y
+ pObj->Config.uMAPROW = uValue;
+ break;
+
+ case MAPVALUE:
+ // set pointer on wanted cell
+ switch (pObj->Config.uMapName)
+ {
+ case tmTDA18271_IR_MEAS_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_MEAS_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_IR_MEAS_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.IR_MEAS_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_IR_CAL_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_CAL_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_IR_CAL_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.IR_CAL_Map[pObj->Config.uMAPROW].uRF);
+ break;
+
+ case tmTDA18271_BP_FILTER_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_BP_FILTER_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_BP_FILTER_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.BP_FILTER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_BAND_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_BAND_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_RF_BAND_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.RF_BAND_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_GAIN_TAPER_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_GAIN_TAPER_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_GAIN_TAPER_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.GAIN_TAPER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.RF_CAL_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_KMCO_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_KMCO_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_KMCO_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.RF_CAL_KMCO_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_THERMOMETER_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_THERMOMETER_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_THERMOMETER_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.THERMOMETER_Map[pObj->Config.uMAPROW].uTM_D);
+ break;
+
+ case tmTDA18271_CAL_PLL_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_CAL_PLL_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_CAL_PLL_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.CAL_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_MAIN_PLL_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_MAIN_PLL_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_MAIN_PLL_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.MAIN_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_I2C_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > 0) || (pObj->Config.uMAPROW > TDA18271_NB_BYTES - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pI2CMap initialisation
+ pI2CMap = &(pObj->I2CMap.ID_BYTE) + pObj->Config.uMAPROW;
+ break;
+ }
+
+ // set cell value
+ if (pObj->Config.uMapName == tmTDA18271_I2C_Map)
+ *(pI2CMap + (UInt8)pObj->Config.uMAPCOLUMN) = (UInt8)uValue;
+ else
+ *(pDataMap + pObj->Config.uMAPCOLUMN) = uValue;
+ break;
+
+ case PROTOCOLSTEP:
+ // set channel configuration protocol steps to execute
+ pObj->Config.uPROTOCOLSTEP = uValue;
+ break;
+
+ case PROTOCOLWAIT:
+ // set channel configuration protocol wait times
+ pObj->Config.uPROTOCOLWAIT = uValue;
+ break;
+
+ case READINIT:
+ // activate extended register access
+ // read bytes 0x00 to 0x26
+#if (0)
+ if (TDA18271Read (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR;
+#else
+ if (TDA18271Read (pObj,0x00,16) != True)
+ return TMBSL_ERR_IIC_ERR;
+#endif
+ break;
+
+ }
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetConfig:
+//
+// DESCRIPTION: Get the Config of the TDA18271
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetConfig(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uItemId, // I: Identifier of the item to get value
+ UInt32* puValue // I: Address of the variable to output the Config item value
+ )
+{
+ UInt32 uCounter = 0;
+
+ ptmTDA18271Object_t pObj;
+ UInt8* pI2CMap;
+ UInt32* pDataMap;
+ UInt32 uByte=0;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the Object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ //--------------
+ // get the value
+ //--------------
+ switch((tmTDA18271cfgIndex_t)uItemId)
+ {
+ case BOARD:
+ // get board
+ *puValue = pObj->Config.uBoard;
+ break;
+
+ case RF:
+ // get RF frequency
+ *puValue = pObj->Config.uRF;
+ break;
+
+ case IF:
+ // get IF frequency
+ *puValue = pObj->Config.uIF;
+ break;
+
+ case STATUSBYTE:
+ // read bytes 0x00 to 0x0F
+ if (TDA18271Read (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+
+ case GETNBOFUNIT:
+ *puValue = TDA18271_MAX_UNITS;
+ break;
+
+ case ID:
+ // get ID value
+ *puValue = pObj->I2CMap.ID;
+ break;
+
+ case POR:
+ // get POR value
+ *puValue = pObj->I2CMap.POR;
+ break;
+
+ case MAINLOCK:
+ // get MAINLOCK value
+ *puValue = pObj->I2CMap.MAIN_Lock;
+ break;
+
+ case TMMODE:
+ // get TMMODE value
+ *puValue = pObj->Config.uTMMODE;
+ break;
+
+ case TMVALUE:
+ // test IRCALOK value
+ if (pObj->I2CMap.IR_CAL_OK != 1)
+ return TMBSL_ERR_IIC_ERR;
+
+ // set CAL_Mode to thermo mode
+ pObj->I2CMap.CAL_Mode = 0x03;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // read byte THERMO_BYTE
+ if (TDA18271Read (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // set & write TM_Range
+ if (((pObj->I2CMap.TM_D == 0x00) && (pObj->I2CMap.TM_Range == 0x01)) || ((pObj->I2CMap.TM_D == 0x08) && (pObj->I2CMap.TM_Range == 0x00)))
+ {
+ pObj->I2CMap.TM_Range = !(pObj->I2CMap.TM_Range);
+ // write byte THERMO_BYTE
+ if (TDA18271Write(pObj,0x01,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ // wait 10ms
+ if (TDA18271Wait(pObj,10) == False)
+ return TM_FALSE;
+ // read byte THERMO_BYTE
+ if (TDA18271Read (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR;
+ }
+
+ // set & write CAL_Mode to normal mode
+ pObj->I2CMap.CAL_Mode = 0x00;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // search for TMVALUE corresponding to TM_D
+ uCounter = 0;
+ do uCounter ++;
+ while (pObj->I2CMap.TM_D > pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_D && uCounter < TDA18271_THERMOMETER_NB_ROWS);
+ // get TMVALUE value
+ if (pObj->I2CMap.TM_Range == 0x00)
+ *puValue = (UInt8)pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_60_92;
+ else
+ *puValue = (UInt8)pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_92_122;
+
+ break;
+
+ case PLMODE:
+ // get PLMODE value
+ *puValue = pObj->Config.uPLMODE;
+ break;
+
+ case PLAGC1:
+ // get PLAGC1 value
+ *puValue = 3 * (2 + ((pObj->I2CMap.Power_Level_7_to_0 & 0x7F) >> 5));
+ break;
+
+ case PLAGC2:
+ // get PLAGC2 value
+ *puValue = 3 * (2 + (3 - (pObj->I2CMap.Power_Level_8 << 1 | pObj->I2CMap.Power_Level_7_to_0 >> 7)));
+ break;
+
+ case PLRFAGC:
+ // get PLRFAGC value (PLRFAGC = PLRFAGC - 11)
+ if (((pObj->I2CMap.EXTENDED_BYTE_22 & 0x7F) >> 4) < 5)
+ *puValue = 11 + (92 + 2 * ((pObj->I2CMap.EXTENDED_BYTE_22 & 0x7F) >> 4)) - (103 - (pObj->I2CMap.Power_Level_7_to_0 & 0x1F));
+ else
+ *puValue = 11 + 102 - (103 - (pObj->I2CMap.Power_Level_7_to_0 & 0x1F));
+ // limit PLRFAGC value
+ if (*puValue > 33)
+ *puValue = 33;
+ else if (*puValue < 1)
+ *puValue = 1;
+ break;
+
+ case RFCALOK:
+ // get RFCALOK value
+ *puValue = pObj->I2CMap.RF_CAL_OK;
+ break;
+
+ case IRCALOK:
+ // get IRCALOK value
+ *puValue = pObj->I2CMap.IR_CAL_OK;
+ break;
+
+ case BPFILTER:
+ // get BPFILTER value
+ *puValue = pObj->I2CMap.BP_Filter;
+ break;
+
+ case RFBAND:
+ // get RFBAND value
+ *puValue = pObj->I2CMap.RF_Band;
+ break;
+
+ case GAINTAPER:
+ // get GAINTAPER value
+ *puValue = pObj->I2CMap.Gain_Taper;
+ break;
+
+ case POWERSTATE:
+ // get POWERSTATE
+ tmbslTDA18271GetPowerState(TunerUnit,(ptmTDA18271PowerState_t)puValue);
+ break;
+
+ case LPFC:
+ // get LPFC value
+ *puValue = pObj->I2CMap.Std & 0x03;
+ break;
+
+ case FMRFN:
+ // get FMRFN value
+ *puValue = pObj->I2CMap.FM_RFn;
+ break;
+
+ case STANDARDMODE:
+ // get STANDARDMODE
+ tmbslTDA18271GetStandardMode(TunerUnit,(ptmTDA18271StandardMode_t)puValue);
+ break;
+
+ case XTOUT:
+ // get XTout_ON & Xtout_400mV value
+ *puValue = (UInt32)(pObj->I2CMap.XTout_ON << 1 | pObj->I2CMap.Xtout_400mV);
+ break;
+
+ case IFLEVEL:
+ // get IFLEVEL value
+ *puValue = pObj->I2CMap.IF_Level;
+ break;
+
+ case EXTENDEDREG:
+ // get EXTENDEDREG value
+ *puValue = pObj->I2CMap.Extended_Reg;
+ break;
+
+ case CALPOSTDIV:
+ // get CALPOSTDIV value
+ *puValue = pObj->I2CMap.CAL_POST_DIV_BYTE & 0x7F;
+ break;
+
+ case CALDIV:
+ // get CALDIV value
+ *puValue = pObj->I2CMap.CAL_Div_22_to_16 << 16 | pObj->I2CMap.CAL_Div_15_to_8 << 8 | pObj->I2CMap.CAL_Div_7_to_0;
+ break;
+
+ case MAINPOSTDIV:
+ // get MAINPOSTDIV value
+ *puValue = pObj->I2CMap.MAIN_Post_Div;
+ break;
+
+ case MAINDIV:
+ // get MAINDIV value
+ *puValue = pObj->I2CMap.MAIN_Div_22_to_16 << 16 | pObj->I2CMap.MAIN_Div_15_to_8 << 8 | pObj->I2CMap.MAIN_Div_7_to_0;
+ break;
+
+ case MAPVALUE:
+ // set pointer on wanted cell
+ switch (pObj->Config.uMapName)
+ {
+ case tmTDA18271_IR_MEAS_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_MEAS_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_IR_MEAS_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.IR_MEAS_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_IR_CAL_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_CAL_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_IR_CAL_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.IR_CAL_Map[pObj->Config.uMAPROW].uRF);
+ break;
+
+ case tmTDA18271_BP_FILTER_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_BP_FILTER_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_BP_FILTER_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.BP_FILTER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_BAND_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_BAND_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_RF_BAND_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.RF_BAND_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_GAIN_TAPER_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_GAIN_TAPER_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_GAIN_TAPER_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.GAIN_TAPER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.RF_CAL_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_KMCO_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_KMCO_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_KMCO_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.RF_CAL_KMCO_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_THERMOMETER_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_THERMOMETER_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_THERMOMETER_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.THERMOMETER_Map[pObj->Config.uMAPROW].uTM_D);
+ break;
+
+ case tmTDA18271_CAL_PLL_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_CAL_PLL_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_CAL_PLL_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.CAL_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_MAIN_PLL_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_MAIN_PLL_NB_COLUMNS - 1) || (pObj->Config.uMAPROW > TDA18271_MAIN_PLL_NB_ROWS - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pDataMap initialisation
+ pDataMap = &(pObj->Config.MAIN_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_I2C_Map:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > 0) || (pObj->Config.uMAPROW > TDA18271_NB_BYTES - 1))
+ return TM_ERR_NOT_SUPPORTED;
+ // pI2CMap initialisation
+ pI2CMap = &(pObj->I2CMap.ID_BYTE) + pObj->Config.uMAPROW;
+ break;
+ }
+ // get cell value
+ if (pObj->Config.uMapName == tmTDA18271_I2C_Map)
+ *puValue = *(pI2CMap + pObj->Config.uMAPCOLUMN);
+ else
+ *puValue = *(pDataMap + pObj->Config.uMAPCOLUMN);
+ break;
+
+ // backdoor functions
+ case IDENTITY:
+ pObj->SystemFunc.SY_Read( pObj->uHwAddress, TDA18271_IDENTITY_IND, 1, &uByte);
+ /*if (uByte != 0x82)
+ *puValue = False;
+ else
+ *puValue = True;
+ */
+ switch (pObj->Config.uBoard & 0xffff0000)
+ {
+ case 0x57750000:
+ *puValue = True;
+ break;
+ default:
+ *puValue = False;
+ break;
+ }
+ break;
+
+ }
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetRf:
+//
+// DESCRIPTION: Calculate i2c I2CMap & write in TDA18271
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetRf(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uRF // I: RF frequency in hertz
+ )
+{
+ UInt16 uCounter = 0;
+ UInt8 uIRMeasCounter = 0;
+
+ ptmTDA18271Object_t pObj;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the Object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ // Config.uRF update
+ pObj->Config.uRF = uRF;
+
+ //----------------------
+ // read IR_CAL_OK bit value
+ //----------------------
+ if (((pObj->Config.uPROTOCOLSTEP & 0x40) >> 6) == 0x01)
+ {
+ // read bytes 0x00 to 0x0F
+ if (TDA18271Read (pObj,0x00,16) != True)
+ return TMBSL_ERR_IIC_ERR;
+ }
+
+ //----------------------
+ // power on reset initialisation
+ // test IR_CAL_OK bit value to determine if initialisation is needed
+ //----------------------
+ if ((pObj->I2CMap.IR_CAL_OK != 1 && ((pObj->Config.uPROTOCOLSTEP & 0x20) >> 5) == 0x01) || ((pObj->Config.uPROTOCOLSTEP & 0x10) >> 4) == 0x01)
+ {
+ //----------------------
+ // I2C map initialisation
+ //----------------------
+ // set & write all bytes
+ pObj->I2CMap.ID_BYTE = 0x83;
+ pObj->I2CMap.THERMO_BYTE = 0x08;
+ pObj->I2CMap.POWER_LEVEL_BYTE = 0x80;
+ pObj->I2CMap.EASY_PROG_BYTE_1 = 0xC6;
+ pObj->I2CMap.EASY_PROG_BYTE_2 = 0xDF;
+ pObj->I2CMap.EASY_PROG_BYTE_3 = 0x16; // SM = '0', AGC_Low_BW = 1;
+ pObj->I2CMap.EASY_PROG_BYTE_4 = 0x60;
+ pObj->I2CMap.EASY_PROG_BYTE_5 = 0x80; // Extended_Reg = '1'
+ pObj->I2CMap.CAL_POST_DIV_BYTE = 0x80; // Enable_Bus_Cal = '1', IR_GStep = '0'
+ pObj->I2CMap.CAL_DIV_BYTE_1 = 0x00;
+ pObj->I2CMap.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.CAL_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.MAIN_POST_DIV_BYTE = 0x00;
+ pObj->I2CMap.MAIN_DIV_BYTE_1 = 0x00;
+ pObj->I2CMap.MAIN_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.MAIN_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.EXTENDED_BYTE_1 = 0xFF;
+ pObj->I2CMap.EXTENDED_BYTE_2 = 0x01;
+ pObj->I2CMap.EXTENDED_BYTE_3 = 0x84;
+ pObj->I2CMap.EXTENDED_BYTE_4 = 0x41;
+ pObj->I2CMap.EXTENDED_BYTE_5 = 0x01; // HCvco[1] = '0'
+ pObj->I2CMap.EXTENDED_BYTE_6 = 0x84;
+ pObj->I2CMap.EXTENDED_BYTE_7 = 0x40; // Cal_Pulse_src = '125�s' // Decrease CAL pll locking time for IR calibration success
+ pObj->I2CMap.EXTENDED_BYTE_8 = 0x07; // IR_Loop = '8' & IR_Target = '62dB'
+ pObj->I2CMap.EXTENDED_BYTE_9 = 0x00;
+ pObj->I2CMap.EXTENDED_BYTE_10 = 0x00;
+ pObj->I2CMap.EXTENDED_BYTE_11 = 0x96; // CID_EN_Filt1M='1', HCvco[0]='1', CID_CkSpeed='250KHz/4�s', CID_CkDigSpeed='4MHz'
+ pObj->I2CMap.EXTENDED_BYTE_12 = 0x0F; // AGC12_Speed = '250 KHz'
+ pObj->I2CMap.EXTENDED_BYTE_13 = 0xC1; // RFC_Ckspeed = '62.5 KHz'
+ pObj->I2CMap.EXTENDED_BYTE_14 = 0x00;
+ pObj->I2CMap.EXTENDED_BYTE_15 = 0x8F;
+ pObj->I2CMap.EXTENDED_BYTE_16 = 0x00;
+ pObj->I2CMap.EXTENDED_BYTE_17 = 0x00;
+ pObj->I2CMap.EXTENDED_BYTE_18 = 0x00;
+ pObj->I2CMap.EXTENDED_BYTE_19 = 0x00;
+ pObj->I2CMap.EXTENDED_BYTE_20 = 0x20; // Force_Lock = '1'
+ pObj->I2CMap.EXTENDED_BYTE_21 = 0x33;
+ pObj->I2CMap.EXTENDED_BYTE_22 = 0x48;
+ pObj->I2CMap.EXTENDED_BYTE_23 = 0xB0;
+#if (0)
+ if (TDA18271Write(pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR;
+#else
+ if (TDA18271Write(pObj,0,16) != True)
+ return TMBSL_ERR_IIC_ERR;
+ if (TDA18271Write(pObj,16,16) != True)
+ return TMBSL_ERR_IIC_ERR;
+ if (TDA18271Write(pObj,32,7) != True)
+ return TMBSL_ERR_IIC_ERR;
+#endif
+
+ //----------------------
+ // AGC1 & AGC2 gains setup
+ //----------------------
+ // AGC1_Gain_do
+ // update & write EXTENDED_BYTE_17
+ pObj->I2CMap.EXTENDED_BYTE_17 = 0x00; // set gain_do address
+ if (TDA18271Write(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ pObj->I2CMap.EXTENDED_BYTE_17 = 0x03; // keep gain_do address, set gain_do
+ if (TDA18271Write(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // AGC1_Gain_up
+ // update & write EXTENDED_BYTE_17
+ pObj->I2CMap.EXTENDED_BYTE_17 = 0x43; // set gain_up address, keep gain_do
+ if (TDA18271Write(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ pObj->I2CMap.EXTENDED_BYTE_17 = 0x4C; // keep gain_up address, set gain_up
+ if (TDA18271Write(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // AGC2_Gain_do
+ // update & write EXTENDED_BYTE_20
+ pObj->I2CMap.EXTENDED_BYTE_20 = 0xA0; // set gain_do address
+ if (TDA18271Write(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ pObj->I2CMap.EXTENDED_BYTE_20 = 0xA7; // keep gain_do address, set gain_do
+ if (TDA18271Write(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // AGC2_Gain_up
+ // update & write EXTENDED_BYTE_20
+ pObj->I2CMap.EXTENDED_BYTE_20 = 0xE7; // set gain_up address, keep gain_do
+ if (TDA18271Write(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ pObj->I2CMap.EXTENDED_BYTE_20 = 0xEC; // keep gain_up address, set gain_up
+ if (TDA18271Write(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ //----------------------
+ // image rejection calibration
+ //----------------------
+ //
+ //------- low band calibration -------
+ //
+ // update & write bytes 0x05 to 0x0F
+ pObj->I2CMap.EASY_PROG_BYTE_3 = 0x1F;
+ pObj->I2CMap.EASY_PROG_BYTE_4 = 0x66;
+ pObj->I2CMap.EASY_PROG_BYTE_5 = 0x81;
+ pObj->I2CMap.CAL_POST_DIV_BYTE = 0xCC;
+ pObj->I2CMap.CAL_DIV_BYTE_1 = 0x6C;
+ pObj->I2CMap.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.CAL_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.MAIN_POST_DIV_BYTE = 0xCD;
+ pObj->I2CMap.MAIN_DIV_BYTE_1 = 0x77;
+ pObj->I2CMap.MAIN_DIV_BYTE_2 = 0x08;
+ pObj->I2CMap.MAIN_DIV_BYTE_3 = 0x00;
+ if (TDA18271Write(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait(pObj,5) == False)
+ return TM_FALSE;
+
+ // update & write byte EASY_PROG_BYTE_1
+ pObj->I2CMap.EASY_PROG_BYTE_1 = 0xC6;
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait x ms for wanted low measurement (default 5 ms)
+ if (TDA18271Wait(pObj,(UInt16)((pObj->Config.uPROTOCOLWAIT & 0xFF000000) >> 24)) == False)
+ return TM_FALSE;
+
+ // update & write bytes 0x05 to 0x0B
+ pObj->I2CMap.EASY_PROG_BYTE_3 = 0x1F;
+ pObj->I2CMap.EASY_PROG_BYTE_4 = 0x66;
+ pObj->I2CMap.EASY_PROG_BYTE_5 = 0x85;
+ pObj->I2CMap.CAL_POST_DIV_BYTE = 0xCB;
+ pObj->I2CMap.CAL_DIV_BYTE_1 = 0x66;
+ pObj->I2CMap.CAL_DIV_BYTE_2 = 0x70;
+ pObj->I2CMap.CAL_DIV_BYTE_3 = 0x00;
+ if (TDA18271Write(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait(pObj,5) == False)
+ return TM_FALSE;
+
+ // update & write byte EASY_PROG_BYTE_2
+ pObj->I2CMap.EASY_PROG_BYTE_2 = 0xDF;
+ if (TDA18271Write(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait x ms for image low optimization completion (default 30 ms)
+ if (TDA18271Wait(pObj,(UInt16)((pObj->Config.uPROTOCOLWAIT & 0xFF0000) >> 16)) == False)
+ return TM_FALSE;
+
+ //
+ //------- mid band calibration -------
+ //
+ // update & write bytes 0x05 to 0x0F
+ pObj->I2CMap.EASY_PROG_BYTE_3 = 0x1F;
+ pObj->I2CMap.EASY_PROG_BYTE_4 = 0x66;
+ pObj->I2CMap.EASY_PROG_BYTE_5 = 0x82;
+ pObj->I2CMap.CAL_POST_DIV_BYTE = 0xA8;
+ pObj->I2CMap.CAL_DIV_BYTE_1 = 0x66;
+ pObj->I2CMap.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.CAL_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.MAIN_POST_DIV_BYTE = 0xA9;
+ pObj->I2CMap.MAIN_DIV_BYTE_1 = 0x73;
+ pObj->I2CMap.MAIN_DIV_BYTE_2 = 0x1A;
+ pObj->I2CMap.MAIN_DIV_BYTE_3 = 0x00;
+ if (TDA18271Write(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait(pObj,5) == False)
+ return TM_FALSE;
+
+ // update & write byte EASY_PROG_BYTE_1
+ pObj->I2CMap.EASY_PROG_BYTE_1 = 0xC6;
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait x ms for wanted mid measurement (default 5 ms)
+ if (TDA18271Wait(pObj,(UInt16)((pObj->Config.uPROTOCOLWAIT & 0xFF000000) >> 24)) == False)
+ return TM_FALSE;
+
+ // update & write bytes 0x05 to 0x0B
+ pObj->I2CMap.EASY_PROG_BYTE_3 = 0x1F;
+ pObj->I2CMap.EASY_PROG_BYTE_4 = 0x66;
+ pObj->I2CMap.EASY_PROG_BYTE_5 = 0x86;
+ pObj->I2CMap.CAL_POST_DIV_BYTE = 0xA8;
+ pObj->I2CMap.CAL_DIV_BYTE_1 = 0x66;
+ pObj->I2CMap.CAL_DIV_BYTE_2 = 0xA0;
+ pObj->I2CMap.CAL_DIV_BYTE_3 = 0x00;
+ if (TDA18271Write(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait(pObj,5) == False)
+ return TM_FALSE;
+
+ // update & write byte EASY_PROG_BYTE_2
+ pObj->I2CMap.EASY_PROG_BYTE_2 = 0xDF;
+ if (TDA18271Write(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait x ms for image mid optimization completion (default 30 ms)
+ if (TDA18271Wait(pObj,(UInt16)((pObj->Config.uPROTOCOLWAIT & 0xFF0000) >> 16)) == False)
+ return TM_FALSE;
+
+ //
+ //------- high band calibration -------
+ //
+ // update & write bytes 0x05 to 0x0F
+ pObj->I2CMap.EASY_PROG_BYTE_3 = 0x1F;
+ pObj->I2CMap.EASY_PROG_BYTE_4 = 0x66;
+ pObj->I2CMap.EASY_PROG_BYTE_5 = 0x83;
+ pObj->I2CMap.CAL_POST_DIV_BYTE = 0x98;
+ pObj->I2CMap.CAL_DIV_BYTE_1 = 0x65;
+ pObj->I2CMap.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.CAL_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.MAIN_POST_DIV_BYTE = 0x99;
+ pObj->I2CMap.MAIN_DIV_BYTE_1 = 0x71;
+ pObj->I2CMap.MAIN_DIV_BYTE_2 = 0xCD;
+ pObj->I2CMap.MAIN_DIV_BYTE_3 = 0x00;
+ if (TDA18271Write(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait(pObj,5) == False)
+ return TM_FALSE;
+
+ // update & write byte EASY_PROG_BYTE_1
+ pObj->I2CMap.EASY_PROG_BYTE_1 = 0xC6;
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait x ms for wanted high measurement (default 5 ms)
+ if (TDA18271Wait(pObj,(UInt16)((pObj->Config.uPROTOCOLWAIT & 0xFF000000) >> 24)) == False)
+ return TM_FALSE;
+
+ // update & write bytes 0x05 to 0x0B
+ pObj->I2CMap.EASY_PROG_BYTE_3 = 0x1F;
+ pObj->I2CMap.EASY_PROG_BYTE_4 = 0x66;
+ pObj->I2CMap.EASY_PROG_BYTE_5 = 0x87;
+ pObj->I2CMap.CAL_POST_DIV_BYTE = 0x98;
+ pObj->I2CMap.CAL_DIV_BYTE_1 = 0x65;
+ pObj->I2CMap.CAL_DIV_BYTE_2 = 0x50;
+ pObj->I2CMap.CAL_DIV_BYTE_3 = 0x00;
+ if (TDA18271Write(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait(pObj,5) == False)
+ return TM_FALSE;
+
+ // update & write byte EASY_PROG_BYTE_2
+ pObj->I2CMap.EASY_PROG_BYTE_2 = 0xDF;
+ if (TDA18271Write(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait x ms for image high optimization completion (default 30 ms)
+ if (TDA18271Wait(pObj,(UInt16)((pObj->Config.uPROTOCOLWAIT & 0xFF0000) >> 16)) == False)
+ return TM_FALSE;
+
+ // update & write byte EASY_PROG_BYTE_4
+ pObj->I2CMap.EASY_PROG_BYTE_4 = 0x64;
+ if (TDA18271Write(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // update & write byte EASY_PROG_BYTE_1
+ pObj->I2CMap.EASY_PROG_BYTE_1 = 0xC6;
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ }
+
+ //----------------------
+ // RF tracking filter calibration
+ //----------------------
+ if (((pObj->Config.uPROTOCOLSTEP & 0x08) >> 3) == 0x01)
+ {
+ // search for BP_Filter corresponding to uRF
+ do uCounter ++;
+ while (pObj->Config.uRF > pObj->Config.BP_FILTER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_BP_FILTER_NB_ROWS);
+ pObj->I2CMap.BP_Filter = (UInt8)pObj->Config.BP_FILTER_Map[uCounter - 1].uBP_Filter;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // update & write byte EXTENDED_BYTE_4
+ pObj->I2CMap.EXTENDED_BYTE_4 = (pObj->I2CMap.EXTENDED_BYTE_4 & 0x07) | 0x60;
+ if (TDA18271Write(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // update & write byte EXTENDED_BYTE_7
+ pObj->I2CMap.EXTENDED_BYTE_7 = 0x60;
+ if (TDA18271Write(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // update & write byte EXTENDED_BYTE_14
+ pObj->I2CMap.EXTENDED_BYTE_14 = 0x00;
+ if (TDA18271Write(pObj,0x1D,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // update & write byte EXTENDED_BYTE_20
+ pObj->I2CMap.EXTENDED_BYTE_20 = 0xCC;
+ if (TDA18271Write(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // set CAL_Mode to RF tracking filter calibration
+ pObj->I2CMap.CAL_Mode = 0x03;
+
+ // calculate CAL PLL
+ // CAL LO Frequency = beginning of the channel in analog / channel center frequency + bandwith/2 in digital
+ if (TDA18271CalcCALPLL(pObj, (pObj->StandardMode > 2) && (pObj->StandardMode < 11) ?
+ pObj->Config.uRF - 1250000 : pObj->Config.uRF + (pObj->Config.uBW/2)) == False)
+ return TM_FALSE;
+
+ // calculate MAIN PLL
+ // MAIN LO Frequency = beginning of the channel + 1MHz in analog / channel center frequency + bandwith/2 + 1MHz in digital
+ if (TDA18271CalcMAINPLL(pObj,(pObj->StandardMode > 2) && (pObj->StandardMode < 11) ?
+ pObj->Config.uRF - 250000 : pObj->Config.uRF + (pObj->Config.uBW/2) + 1000000) == False)
+ return TM_FALSE;
+
+ // write bytes 0x05 to 0x0F
+ if (TDA18271Write(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 5 ms for RF tracking filter calibration initialisation
+ if (TDA18271Wait(pObj,5) == False)
+ return TM_FALSE;
+
+ // search for K,M,CO for RF Calibration, corresponding to uRF
+ uCounter=0;
+ do uCounter ++;
+ while (pObj->Config.uRF > pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_KMCO_NB_ROWS);
+
+ // update & write EXTENDED_BYTE_13
+ pObj->I2CMap.EXTENDED_BYTE_13 = (UInt8)((pObj->I2CMap.EXTENDED_BYTE_13 & 0x83) | pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uK << 4 | pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uM << 2 );
+ if (TDA18271Write(pObj,0x1C,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ /*// update & write EXTENDED_BYTE_23
+ pObj->I2CMap.EXTENDED_BYTE_23 = (UInt8)((pObj->I2CMap.EXTENDED_BYTE_23 & 0xCF) | pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uCOAmpl << 4);
+ if (TDA18271Write(pObj,0x26,1) != True)
+ return TMBSL_ERR_IIC_ERR;*/
+
+ // search for RF_BAND corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (pObj->Config.uRF > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS);
+ pObj->I2CMap.RF_Band = (UInt8)pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Band;
+
+ // search for Gain_Taper corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (pObj->Config.uRF > pObj->Config.GAIN_TAPER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_GAIN_TAPER_NB_ROWS);
+ pObj->I2CMap.Gain_Taper = (UInt8)pObj->Config.GAIN_TAPER_Map[uCounter - 1].uGain_Taper;
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // update & write byte EXTENDED_BYTE_4
+ pObj->I2CMap.EXTENDED_BYTE_4 = (pObj->I2CMap.EXTENDED_BYTE_4 & 0x07) | 0x40;
+ if (TDA18271Write(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // update & write byte EXTENDED_BYTE_7
+ pObj->I2CMap.EXTENDED_BYTE_7 = 0x40;
+ if (TDA18271Write(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 10 ms for pll locking
+ if (TDA18271Wait(pObj,10) == False)
+ return TM_FALSE;
+
+ // update & write byte EXTENDED_BYTE_20
+ pObj->I2CMap.EXTENDED_BYTE_20 = 0xEC;
+ if (TDA18271Write(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait x ms for for RF tracking filter calibration completion (default 60 ms)
+ if (TDA18271Wait(pObj,(UInt16)((pObj->Config.uPROTOCOLWAIT & 0xFF00) >> 8)) == False)
+ return TM_FALSE;
+
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.CAL_Mode = 0x00;
+
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ }
+
+ //----------------------
+ // RF tracking filter correction for VHF_Low band
+ //----------------------
+ if ((((pObj->Config.uPROTOCOLSTEP & 0x04) >> 2) == 0x01) && (uRF <= pObj->Config.RF_CAL_Map[TDA18271_RF_CAL_NB_ROWS - 1].uRF_Max))
+ {
+ // search for RFC_Cprog corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS);
+
+ // update & write EXTENDED_BYTE_14
+ pObj->I2CMap.EXTENDED_BYTE_14 = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+ if (TDA18271Write(pObj,0x1D,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ }
+
+ //----------------------
+ // channel configuration
+ //----------------------
+ if (((pObj->Config.uPROTOCOLSTEP & 0x01) >> 0) == 0x01)
+ {
+ if (((pObj->Config.uPROTOCOLSTEP & 0x02) >> 1) == 0x01)
+ {
+ // set standard mode to current standard
+ tmbslTDA18271SetStandardMode (TunerUnit,pObj->StandardMode);
+ }
+
+ // write EXTENDED_BYTE_22
+ if (TDA18271Write(pObj,0x25,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.CAL_Mode = 0x00;
+
+ // set power level indicator to off
+ pObj->Config.uPLMODE = 1;
+ pObj->I2CMap.Dis_Power_level = 1;
+
+ // set thermometer to off
+ pObj->Config.uTMMODE = 0;
+ pObj->I2CMap.TM_ON = 0;
+
+ // search for IR_Meas corresponding to wanted frequency
+ uIRMeasCounter = 0;
+ do uIRMeasCounter ++;
+ while (pObj->Config.uRF > pObj->Config.IR_MEAS_Map[uIRMeasCounter - 1].uRF_Max && uIRMeasCounter - 1 < TDA18271_IR_MEAS_NB_ROWS);
+ pObj->I2CMap.IR_Meas = uIRMeasCounter + 3;
+
+ // calculate MAIN PLL
+ if (TDA18271CalcMAINPLL(pObj, pObj->Config.uRF + pObj->Config.uIF) == False)
+ return TM_FALSE;
+
+ // write bytes 0x01 to 0x0F
+ if (TDA18271Write(pObj,0x01,15) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait(pObj,5) == False)
+ return TM_FALSE;
+
+ // read bytes 0x00 to 0x0F
+ if (TDA18271Read (pObj,0x00,16) != True)
+ return TMBSL_ERR_IIC_ERR;
+ }
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetRf:
+//
+// DESCRIPTION: Get the frequency programmed in the tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES: The value returned is the one stored in the Object
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetRf(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32* pRF // O: RF frequency in hertz
+ )
+{
+ ptmTDA18271Object_t pObj;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ // test the Object
+ if (gTDA18271Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ // pObj initialisation
+ pObj = &gTDA18271Instance[TunerUnit];
+
+ //----------------------
+ // get the value
+ //----------------------
+ // the read function can't be used
+ *pRF = pObj->Config.uRF;
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// Internal functions:
+//-----------------------------------------------------------------------------
+//
+//-----------------------------------------------------------------------------
+// FUNCTION: TDA18271Init:
+//
+// DESCRIPTION: Initialisation of the Tuner
+//
+// RETURN: always True
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+Bool_
+TDA18271Init (
+ tmUnitSelect_t TunerUnit // I: Tuner Object
+ )
+{
+ return True;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Write
+//
+// DESCRIPTION: This function writes I2C data in the Tuner
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Write(
+ ptmTDA18271Object_t pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ )
+{
+ Bool_ I2CCommResult;
+
+ UInt8 uCounter;
+ UInt8* pI2CMap;
+ UInt32 WriteBuffer[TDA18271_NB_BYTES] = {0};
+ UInt32* pWriteBuffer;
+
+ // pI2CMap & pWriteBuffer initialisation
+ pI2CMap = &(pObj->I2CMap.ID_BYTE);
+ pWriteBuffer = &(WriteBuffer[0]);
+
+ // copy I2CMap data in WriteBuffer
+ for (uCounter = 0; uCounter < TDA18271_NB_BYTES; uCounter++)
+ {
+ *pWriteBuffer = (UInt32)(*pI2CMap);
+ pWriteBuffer ++;
+ pI2CMap ++;
+ }
+
+ /*// activate extended register access if needed
+ if ( (uSubAddress + uNbData >= 0x11) && (uNbData > 1) )
+ {
+ // update & write byte EASY_PROG_BYTE_5
+ pObj->I2CMap.Extended_Reg = 0x01;
+ I2CCommResult = TDA18271Write(pObj,0x07,1);
+ }*/
+
+ // write data in the Tuner
+ I2CCommResult = pObj->SystemFunc.SY_Write( pObj->uHwAddress,
+ uSubAddress,
+ uNbData,
+ &(WriteBuffer[uSubAddress]) );
+
+ // shift I2CLog content
+ TDA18271ShiftLog (pObj,1);
+
+ // copy written data in I2CLog [0]
+ for (uCounter = uSubAddress; uCounter < uSubAddress + uNbData; uCounter++)
+ pObj->I2CLog [0][uCounter] = WriteBuffer [uCounter];
+
+ // set additional values
+ pObj->I2CLog [0][TDA18271_NB_BYTES] = pObj->uHwAddress;
+ pObj->I2CLog [0][TDA18271_NB_BYTES + 1] = I2CCommResult;
+
+ /*// deactivate extended register access if needed
+ if ( (uSubAddress + uNbData >= 0x11) && (uNbData > 1) )
+ {
+ // update & write byte EASY_PROG_BYTE_5
+ pObj->I2CMap.Extended_Reg = 0x00;
+ I2CCommResult = TDA18271Write(pObj,0x07,1);
+ }*/
+
+ // return value
+ return I2CCommResult;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Read
+//
+// DESCRIPTION: This function reads I2C data from the Tuner
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Read(
+ ptmTDA18271Object_t pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ )
+{
+ Bool_ I2CCommResult;
+
+ UInt8 uCounter;
+ UInt8* pI2CMap;
+ UInt32 ReadBuffer[TDA18271_NB_BYTES] = {0};
+ UInt32* pReadBuffer;
+
+ // pI2CMap & pReadBuffer initialisation
+ pI2CMap = &(pObj->I2CMap.ID_BYTE) + uSubAddress;
+ pReadBuffer = &(ReadBuffer[uSubAddress]);
+
+ // read data from the Tuner
+ I2CCommResult = pObj->SystemFunc.SY_Read( pObj->uHwAddress,
+ 0,
+ uSubAddress + uNbData,
+ &(ReadBuffer[0]));
+
+ // copy readen data in I2CMap
+ for (uCounter = 0; uCounter < uNbData; uCounter++)
+ {
+ *pI2CMap = (UInt8)(*pReadBuffer);
+ pI2CMap ++;
+ pReadBuffer ++;
+ }
+
+ // shift I2CLog content
+ TDA18271ShiftLog (pObj,1);
+
+ // copy readen data in I2CLog [0]
+ for (uCounter = uSubAddress; uCounter < uSubAddress + uNbData; uCounter++)
+ pObj->I2CLog [0][uCounter] = ReadBuffer [uCounter];
+
+ // set additional values
+ pObj->I2CLog [0][TDA18271_NB_BYTES] = pObj->uHwAddress + 1;
+ pObj->I2CLog [0][TDA18271_NB_BYTES + 1] = I2CCommResult;
+
+ // return value
+ return I2CCommResult;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Wait
+//
+// DESCRIPTION: This function waits for requested time
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Wait(
+ ptmTDA18271Object_t pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait for
+ )
+{
+ User_delay( pObj->AFAInfo.demodulator, wTime);
+
+ return True;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271ShiftLog
+//
+// DESCRIPTION: Shift I2CLog content of wanted lines
+//
+// RETURN: True
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271ShiftLog(
+ ptmTDA18271Object_t pObj, // I: Tuner unit number
+ UInt8 uNbRows // I: nb of lines
+ )
+{
+ UInt8 uRow;
+ UInt8 uColumn;
+ UInt8 uCounter;
+
+ // Shift I2CLog content of wanted lines
+ for (uCounter = 0; uCounter < uNbRows; uCounter++)
+ {
+ for (uRow = TDA18271_LOG_NB_ROWS - 1; uRow > 0; uRow--)
+ {
+ for (uColumn = 0; uColumn < TDA18271_NB_BYTES + 2; uColumn++)
+ pObj->I2CLog [uRow][uColumn] = pObj->I2CLog [uRow - 1][uColumn];
+ }
+
+ for (uColumn = 0; uColumn < TDA18271_NB_BYTES + 2; uColumn++)
+ pObj->I2CLog [0][uColumn] = 256;
+ }
+
+ // Return value
+ return True;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcMAINPLL:
+//
+// DESCRIPTION: Calculate the MAIN fractionnal PLL settings
+//
+// RETURN: True or False
+//
+// NOTES: This function doesn't write in the tuner
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271CalcMAINPLL (
+ ptmTDA18271Object_t pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ )
+{
+ UInt8 uCounter = 0;
+ UInt32 uDiv;
+
+ // search for MAIN_Post_Div corresponding to uLO
+ uCounter = 0;
+ do uCounter ++;
+ while (uLO > pObj->Config.MAIN_PLL_Map[uCounter - 1].uLO_Max && uCounter < TDA18271_MAIN_PLL_NB_ROWS);
+ // Decalage table : MAIN_Post_Div[4] = 0 in table or MAIN_Post_Div[4] = 1
+ pObj->I2CMap.MAIN_Post_Div = ((UInt8)pObj->Config.MAIN_PLL_Map[uCounter - 1].uPost_Div) & 0x7F;
+
+ // calculate MAIN_Div
+ uDiv = (((UInt32)(pObj->Config.MAIN_PLL_Map[uCounter - 1].uDiv) * (uLO / 1000)) << 7) / 125;
+ pObj->I2CMap.MAIN_Div_22_to_16 = (UInt8)(uDiv >> 16) & 0x7F;
+ pObj->I2CMap.MAIN_Div_15_to_8 = (UInt8)(uDiv >> 8);
+ pObj->I2CMap.MAIN_Div_7_to_0 = (UInt8)(uDiv);
+
+ return True;
+}
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcCALPLL:
+//
+// DESCRIPTION: Calculate the CAL fractionnal PLL settings
+//
+// RETURN: True or False
+//
+// NOTES: This function doesn't write in the tuner
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271CalcCALPLL (
+ ptmTDA18271Object_t pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ )
+{
+ UInt8 uCounter = 0;
+ UInt32 uDiv;
+
+ // search for CAL_Post_Div corresponding to uLO
+ do uCounter ++;
+ while (uLO > pObj->Config.CAL_PLL_Map[uCounter - 1].uLO_Max && uCounter < TDA18271_CAL_PLL_NB_ROWS);
+ //CAL_POST_DIV_BYTE[7] = 0 in table or CAL_POST_DIV_BYTE[7]=1 =>(| 0x80)
+ pObj->I2CMap.CAL_POST_DIV_BYTE = (UInt8)pObj->Config.CAL_PLL_Map[uCounter - 1].uPost_Div;
+
+ // calculate CAL_Div
+ uDiv = (((UInt32)(pObj->Config.CAL_PLL_Map[uCounter - 1].uDiv) * (uLO / 1000)) << 7) / 125;
+ pObj->I2CMap.CAL_Div_22_to_16 = (UInt8)(uDiv >> 16) & 0x7F;
+ pObj->I2CMap.CAL_Div_15_to_8 = (UInt8)(uDiv >> 8);
+ pObj->I2CMap.CAL_Div_7_to_0 = (UInt8)(uDiv);
+
+ return True;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcRFFilter:
+//
+// DESCRIPTION: Calculate the RF Filters
+//
+// RETURN: True or False
+//
+// NOTES: This function doesn't write in the tuner
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271CalcRFFilter (
+ ptmTDA18271Object_t pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ )
+{
+ UInt8 uCounter = 0;
+
+ // search for BP_Filter corresponding to uRF
+ do uCounter ++;
+ while (pObj->Config.uRF > pObj->Config.BP_FILTER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_BP_FILTER_NB_ROWS);
+ pObj->I2CMap.BP_Filter = (UInt8)pObj->Config.BP_FILTER_Map[uCounter - 1].uBP_Filter;
+
+ // search for RF_BAND corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (pObj->Config.uRF > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS);
+ pObj->I2CMap.RF_Band = (UInt8)pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Band;
+
+ // search for Gain_Taper corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (pObj->Config.uRF > pObj->Config.GAIN_TAPER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_GAIN_TAPER_NB_ROWS);
+ pObj->I2CMap.Gain_Taper = (UInt8)pObj->Config.GAIN_TAPER_Map[uCounter - 1].uGain_Taper;
+
+ return True;
+}
+
+//-------------------------------------------------------------------------------------
+// TUNER ERRORS TYPES
+//
+// RETURN: TM_OK
+// TM_FALSE
+// TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TMBSL_ERR_TUNER_NOT_SUPPORTED
+// TM_ERR_IIC_ERR
+//
+//-------------------------------------------------------------------------------------
+// \ No newline at end of file
diff --git a/api/TDA18271.h b/api/TDA18271.h
new file mode 100644
index 0000000..2c1e68e
--- /dev/null
+++ b/api/TDA18271.h
@@ -0,0 +1,67 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271Local.h
+//
+// DESCRIPTION: define the Object for the TDA18271
+//
+// DOCUMENT REF: DVP Software Coding Guidelines v1.14
+// DVP Board Support Library Architecture Specification v0.5
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+#ifndef _TMBSL_TDA18271_H //-----------------
+#define _TMBSL_TDA18271_H
+
+#include "TDA18271Local.h"
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+//#include "dvp.h"
+//#include "tmbslTuner.h"
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+Bool_ SY_Read(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff
+);
+
+Bool_ SY_Write(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff
+);
+
+tmErrorCode_t
+tmbslTDA18271Init(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmbslTuParam_t Param // I: setup parameters
+);
+
+tmErrorCode_t
+tmbslTDA18271SetConfig(
+ tmUnitSelect_t TunerUnit, // I: TunerUnit number
+ UInt32 uItemId, // I: Identifier of the item to modify
+ UInt32 uValue // I: Value to set for the Config item
+);
+
+tmErrorCode_t
+tmbslTDA18271SetRf(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uRF // I: RF frequency in hertz
+);
+
+#endif // _TMBSL_TDA18271LOCAL_H //--------------- \ No newline at end of file
diff --git a/api/TDA18271Local.h b/api/TDA18271Local.h
new file mode 100644
index 0000000..c17f053
--- /dev/null
+++ b/api/TDA18271Local.h
@@ -0,0 +1,650 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271Local.h
+//
+// DESCRIPTION: define the Object for the TDA18271
+//
+// DOCUMENT REF: DVP Software Coding Guidelines v1.14
+// DVP Board Support Library Architecture Specification v0.5
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+#ifndef _TMBSL_TDA18271LOCAL_H //-----------------
+#define _TMBSL_TDA18271LOCAL_H
+
+#include "type.h"
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+//#include "dvp.h"
+//#include "tmbslTuner.h"
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+//-----------------------------------------------------------------------------
+// Types and defines:
+//-----------------------------------------------------------------------------
+//
+#define TDA18271_BSL_COMP_NUM 1
+#define TDA18271_BSL_MAJOR_VER 8
+#define TDA18271_BSL_MINOR_VER 3
+//-------------
+// ERROR CODES
+//-------------
+#define TMBSL_ERR_TUNER_BASE 0x80000000U
+#define TM_ERR_BAD_UNIT_NUMBER 0x00000001U
+#define TM_ERR_NOT_INITIALIZED 0x00000002U
+#define TM_ERR_BAD_PARAMETER 0x00000003U
+#define TM_ERR_NOT_SUPPORTED 0x00000004U
+#define TM_ERR_IIC_ERR 0x00000005U
+
+// Invalid unit id
+#define TMBSL_ERR_TUNER_BAD_UNIT_NUMBER \
+(TMBSL_ERR_TUNER_BASE + TM_ERR_BAD_UNIT_NUMBER)
+
+// Component is not initialized
+#define TMBSL_ERR_TUNER_NOT_INITIALIZED \
+(TMBSL_ERR_TUNER_BASE+ TM_ERR_NOT_INITIALIZED)
+
+// Invalid input parameter
+#define TMBSL_ERR_TUNER_BAD_PARAMETER \
+(TMBSL_ERR_TUNER_BASE + TM_ERR_BAD_PARAMETER)
+
+// Function is not supported
+#define TMBSL_ERR_TUNER_NOT_SUPPORTED \
+(TMBSL_ERR_TUNER_BASE + TM_ERR_NOT_SUPPORTED)
+
+// Function is not supported
+#define TMBSL_ERR_IIC_ERR \
+(TMBSL_ERR_TUNER_BASE + TM_ERR_IIC_ERR)
+
+#define TDA18271_MAX_UNITS 10 //
+#define TDA18271_NB_BYTES 39 //
+#define TDA18271_LOG_NB_ROWS 50 //
+
+#define TDA18271_IR_MEAS_NB_COLUMNS 1 //
+#define TDA18271_IR_MEAS_NB_ROWS 4 //
+
+#define TDA18271_IR_CAL_NB_COLUMNS 2 //
+#define TDA18271_IR_CAL_NB_ROWS 3 //
+
+#define TDA18271_BP_FILTER_NB_COLUMNS 2 //
+#define TDA18271_BP_FILTER_NB_ROWS 7 //
+
+#define TDA18271_RF_BAND_NB_COLUMNS 2 //
+#define TDA18271_RF_BAND_NB_ROWS 7 //
+
+#define TDA18271_GAIN_TAPER_NB_COLUMNS 2 //
+#define TDA18271_GAIN_TAPER_NB_ROWS 85 //
+
+#define TDA18271_RF_CAL_NB_COLUMNS 2 //
+#define TDA18271_RF_CAL_NB_ROWS 17 //
+
+#define TDA18271_RF_CAL_KMCO_NB_COLUMNS 4 //
+#define TDA18271_RF_CAL_KMCO_NB_ROWS 4 //
+
+#define TDA18271_THERMOMETER_NB_COLUMNS 3 //
+#define TDA18271_THERMOMETER_NB_ROWS 16 //
+
+#define TDA18271_CAL_PLL_NB_COLUMNS 3 //
+#define TDA18271_CAL_PLL_NB_ROWS 35 //
+
+#define TDA18271_MAIN_PLL_NB_COLUMNS 3 //
+#define TDA18271_MAIN_PLL_NB_ROWS 40 //
+
+#define TDA18271_IDENTITY_IND 0 //
+
+#define OM5770C2_BOARD_DEF 0x57700002 // TDA8295C1 + TDA10046 + TDA18271
+#define OM5775_BOARD_DEF 0x57750000 // 2xTDA8290C1 + 2xTDA10048 + 2xTDA18271
+#define OM5776_BOARD_DEF 0x57760000 //
+#define OM5777_BOARD_DEF 0x57770000 //
+#define OM5780_BOARD_DEF 0x57800000 //
+#define OM5782_BOARD_DEF 0x57820000 //
+#define OM5764_BOARD_DEF 0x57640199 //
+#define CUSTOM_BOARD_DEF 0x00000000 // custom
+#define OM57XX_STANDARD_DEF 2
+
+
+// types
+typedef unsigned long UInt32; /* 32 bit unsigned integer */
+typedef unsigned short UInt16; /* 16 bit unsigned integer */
+typedef unsigned char UInt8; /* 8 bit unsigned integer */
+typedef UInt32 tmErrorCode_t;
+typedef unsigned int Bool_; /* Boolean (True/False) */
+typedef int tmUnitSelect_t, *ptmUnitSelect_t;
+#define NULL 0
+
+#define TM_OK 0U /* Global success return status */
+#define TM_FALSE 0
+#define TM_TRUE 1
+
+#define True TM_TRUE
+#define False TM_FALSE
+
+// added
+// system function
+Bool_ SY_Write(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Read(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Write_Slave(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Read_Slave(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+typedef struct _tmhalFEBslSystemFunc_t
+{
+ Bool_ (*SY_Write) (UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+ Bool_ (*SY_Read) (UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+} tmhalFEBslSystemFunc_t, *ptmhalFEBslSystemFunc_t;
+
+typedef struct _tmbslTuParam_t
+{
+ unsigned long uHwAddress;
+ tmhalFEBslSystemFunc_t systemFunc;
+} tmbslTuParam_t, *ptmbslTuParam_t;
+
+typedef struct tmSWVersion
+{
+ UInt32 compatibilityNr; /* Interface compatibility number */
+ UInt32 majorVersionNr; /* Interface major version number */
+ UInt32 minorVersionNr; /* Interface minor version number */
+
+} tmSWVersion_t, *ptmSWVersion_t;
+
+// added
+
+typedef enum _tmTDA18271cfgIndex_t {
+ BOARD = 0,
+ STANDARD = 1,
+ FEINIT = 100,
+ IDENTITY = 102,
+ GETNBOFUNIT = 200,
+ BANDWIDTH = 300,
+ RFBAND = 302,
+ RF,
+ ID,
+ POR,
+ MAINLOCK,
+ PLRFAGC = 310,
+ POWERSTATE = 312,
+ TMMODE = 350,
+ TMVALUE,
+ PLMODE,
+ PLAGC1,
+ PLAGC2,
+ RFCALOK,
+ IRCALOK,
+ BPFILTER,
+ GAINTAPER,
+ LPFC,
+ FMRFN,
+ XTOUT,
+ IFLEVEL,
+ EXTENDEDREG,
+ CALPOSTDIV,
+ CALDIV,
+ MAINPOSTDIV,
+ MAINDIV,
+ MAPNAME,
+ MAPCOLUMN,
+ MAPROW,
+ MAPVALUE,
+ READINIT,
+ STATUSBYTE = 380,
+ PROTOCOLSTEP,
+ PROTOCOLWAIT,
+ STANDARDMODE = 400,
+ IF = 517
+} tmTDA18271cfgIndex_t;
+
+typedef enum _tmTDA18271PowerState_t {
+ tmPowerNormalMode, // Device normal mode
+ tmPowerSleepMode, // Device sleep mode
+ tmPowerStandbyWith16MHz, // Device standby with 16Mhz
+ tmPowerStandbyWith16MHzAndLoopThrough, // Device standby with 16Mhz and loop through
+ tmPowerStandbyWithLoopThrough, // Device standby with loop through
+ tmPowerNotSupported, // Not supported power mode
+} tmTDA18271PowerState_t, *ptmTDA18271PowerState_t;
+
+typedef enum _tmTDA18271StandardMode_t {
+ tmDigital_TV_ATSC_6MHz, // Digital TV ATSC 6MHz
+ tmDigital_TV_DVBT_7MHz, // Digital TV DVB-T 7MHz
+ tmDigital_TV_DVBT_8MHz, // Digital TV DVB-T 8MHz
+ tmAnalog_TV_MN, // Analog TV M/N
+ tmAnalog_TV_B, // Analog TV B
+ tmAnalog_TV_GH, // Analog TV G/H
+ tmAnalog_TV_I, // Analog TV I
+ tmAnalog_TV_DK, // Analog TV D/K
+ tmAnalog_TV_L, // Analog TV L
+ tmAnalog_TV_LL, // Analog TV L'
+ tmAnalog_FM_Radio, // Analog FM Radio
+ tmDigital_TV_QAM_6MHz, // Digital TV QAM 6MHz
+ tmDigital_TV_QAM_8MHz, // Digital TV QAM 8MHz
+ tmStandardNotSupported, // Not supported standard
+} tmTDA18271StandardMode_t, *ptmTDA18271StandardMode_t;
+
+typedef enum _tmTDA18271ThermometerMode_t {
+ tmThermometerOff, // Thermometer off
+ tmThermometerOn, // Thermometer on
+} tmTDA18271ThermometerMode_t, *ptmTDA18271ThermometerMode_t;
+
+typedef enum _tmTDA18271MapName_t {
+ tmTDA18271_IR_MEAS_Map, // Image rejection measurement map
+ tmTDA18271_IR_CAL_Map, // Image rejection calibration map
+ tmTDA18271_BP_FILTER_Map, // Band pass filter map
+ tmTDA18271_RF_BAND_Map, // RF band map
+ tmTDA18271_GAIN_TAPER_Map, // Gain tapper map
+ tmTDA18271_RF_CAL_Map, // RF calibration map
+ tmTDA18271_RF_CAL_KMCO_Map, // RF calibration protocol map
+ tmTDA18271_THERMOMETER_Map, // Thermometer map
+ tmTDA18271_CAL_PLL_Map, // Calibration PLL map
+ tmTDA18271_MAIN_PLL_Map, // Main PLL map
+ tmTDA18271_I2C_Map, // I2C map
+} tmTDA18271MapName_t, *ptmTDA18271MapName_t;
+
+typedef struct _tmTDA18271_IR_MEAS_Map_t {
+ UInt32 uRF_Max;
+} tmTDA18271_IR_MEAS_Map_t, *ptmTDA18271_IR_MEAS_Map_t;
+
+typedef struct _tmTDA18271_IR_CAL_Map_t {
+ UInt32 uRF;
+ UInt32 uIR_GStep;
+} tmTDA18271_IR_CAL_Map_t, *ptmTDA18271_IR_CAL_Map_t;
+
+typedef struct _tmTDA18271_BP_FILTER_Map_t {
+ UInt32 uRF_Max;
+ UInt32 uBP_Filter;
+} tmTDA18271_BP_FILTER_Map_t, *ptmTDA18271_BP_FILTER_Map_t;
+
+typedef struct _tmTDA18271_RF_BAND_Map_t {
+ UInt32 uRF_Max;
+ UInt32 uRF_Band;
+} tmTDA18271_RF_BAND_Map_t, *ptmTDA18271_RF_BAND_Map_t;
+
+typedef struct _tmTDA18271_GAIN_TAPER_Map_t {
+ UInt32 uRF_Max;
+ UInt32 uGain_Taper;
+} tmTDA18271_GAIN_TAPER_Map_t, *ptmTDA18271_GAIN_TAPER_Map_t;
+
+typedef struct _tmTDA18271_RF_CAL_Map_t {
+ UInt32 uRF_Max;
+ UInt32 uRFC_Cprog;
+} tmTDA18271_RF_CAL_Map_t, *ptmTDA18271_RF_CAL_Map_t;
+
+typedef struct _tmTDA18271_RF_CAL_KMCO_Map_t {
+ UInt32 uRF_Max;
+ UInt32 uK;
+ UInt32 uM;
+ UInt32 uCOAmpl;
+} tmTDA18271_RF_CAL_KMCO_Map_t, *ptmTDA18271_RF_CAL_KMCO_Map_t;
+
+typedef struct _tmTDA18271_THERMOMETER_Map_t {
+ UInt32 uTM_D;
+ UInt32 uTM_60_92;
+ UInt32 uTM_92_122;
+} tmTDA18271_THERMOMETER_Map_t, *ptmTDA18271_THERMOMETER_Map_t;
+
+typedef struct _tmTDA18271_PLL_Map_t {
+ UInt32 uLO_Max;
+ UInt32 uPost_Div;
+ UInt32 uDiv;
+} tmTDA18271_PLL_Map_t, *ptmTDA18271_PLL_Map_t;
+
+typedef struct _tmTDA18271Config_t {
+ UInt32 uBoard;
+ UInt32 uStandard;
+ UInt32 uRF;
+ UInt32 uIF;
+ UInt32 uBW;
+ UInt32 uTMMODE;
+ UInt32 uPLMODE;
+ UInt32 uMapName;
+ UInt32 uMAPCOLUMN;
+ UInt32 uMAPROW;
+ UInt32 uPROTOCOLSTEP;
+ UInt32 uPROTOCOLWAIT;
+ tmTDA18271_IR_MEAS_Map_t IR_MEAS_Map[TDA18271_IR_MEAS_NB_ROWS];
+ tmTDA18271_IR_CAL_Map_t IR_CAL_Map[TDA18271_IR_CAL_NB_ROWS];
+ tmTDA18271_BP_FILTER_Map_t BP_FILTER_Map[TDA18271_BP_FILTER_NB_ROWS];
+ tmTDA18271_RF_BAND_Map_t RF_BAND_Map[TDA18271_RF_BAND_NB_ROWS];
+ tmTDA18271_GAIN_TAPER_Map_t GAIN_TAPER_Map[TDA18271_GAIN_TAPER_NB_ROWS];
+ tmTDA18271_RF_CAL_Map_t RF_CAL_Map[TDA18271_RF_CAL_NB_ROWS];
+ tmTDA18271_RF_CAL_KMCO_Map_t RF_CAL_KMCO_Map[TDA18271_RF_CAL_KMCO_NB_ROWS];
+ tmTDA18271_THERMOMETER_Map_t THERMOMETER_Map[TDA18271_THERMOMETER_NB_ROWS];
+ tmTDA18271_PLL_Map_t CAL_PLL_Map[TDA18271_CAL_PLL_NB_ROWS];
+ tmTDA18271_PLL_Map_t MAIN_PLL_Map[TDA18271_MAIN_PLL_NB_ROWS];
+} tmTDA18271Config_t, *ptmTDA18271Config_t;
+
+typedef struct _tmTDA18271I2CMap_t
+{
+ union
+ {
+ UInt8 ID_BYTE; // address 0x00
+ // Chip identification byte
+ struct
+ {
+ UInt8 ID :7; // Chip identification number
+ UInt8 UNUSED_0x00 :1; // Reserved, must be written as 1
+ };
+ };
+
+ union
+ {
+ UInt8 THERMO_BYTE; // address 0x01
+ // Thermometer byte
+ struct
+ {
+ UInt8 TM_D :4; // Data from die temperature measurement
+ UInt8 TM_ON :1; // Enable Die temperature measurement
+ UInt8 TM_Range :1; // Range selection bit for the internal die sensor
+ // 0: 60 to 92�C
+ // 1: 92 to 122�C
+ UInt8 MAIN_Lock :1; // Indicate that the MAIN synthesizer is locked to the programmed frequency
+ // 0: Not Locked
+ // 1: Locked
+ UInt8 POR :1; // Power on reset bit
+ // This bit is set to 1 each time the power supply falls below a certain level (around 1.4V) and is reset after a read operation ending with a stop condition
+ };
+ };
+
+ union
+ {
+ UInt8 POWER_LEVEL_BYTE; // address 0x02
+ // Power level byte
+ struct
+ {
+ UInt8 Power_Level_7_to_0:8;// Power level indicator value
+ };
+ };
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_1; // address 0x03
+ // Easy programming byte 1
+ struct
+ {
+ UInt8 BP_Filter :3; // RF band-pass filter selection (H3/H5)
+ UInt8 IR_CAL_OK :1; // Indicate that the 3 Image rejection calibration procedure (Flow, Fmid, Fhigh) have been successful
+ UInt8 RF_CAL_OK :1; // Indicate that the RF tracking filter calibration procedure has been successful
+ UInt8 UNUSED_0x03 :1; // Reserved, must be written as 0
+ UInt8 Dis_Power_level:1;// Disable power level measurement
+ // 0: Power measurement valid
+ // 1: Power measurement not guaranted
+ UInt8 Power_Level_8 :1; // Power level indicator value
+ };
+ };
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_2; // address 0x04
+ // Easy programming byte 2
+ struct
+ {
+ UInt8 Gain_Taper :5; // Gain taper value
+ // 0 : max atten. (end of Band)
+ // 31: min atten. (start of Band)
+ UInt8 RF_Band :3; // RF tracking filter band and sub-band selection
+ };
+ };
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_3; // address 0x05
+ // Easy programming byte 3
+ struct
+ {
+ UInt8 Std :5; // Standard selection
+ UInt8 SM_XT :1; // XTAL output sleep mode
+ UInt8 SM_LT :1; // Loop through sleep mode
+ UInt8 SM :1; // General sleep mode
+ };
+ };
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_4; // address 0x06
+ // Easy programming byte 4
+ struct
+ {
+ UInt8 CAL_Mode :2; // calibration mode selection
+ UInt8 IF_Level :3; // IF output level selection
+ UInt8 Xtout_400mV :1; // XTAL output level optional selection
+ UInt8 XTout_ON :1; // Enable 16MHz on XTAL output
+ UInt8 FM_RFn :1; // FM or RF input selection
+ };
+ };
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_5; // address 0x07
+ // Easy programming byte 5
+ struct
+ {
+ UInt8 IR_Meas :3; // Image rejection measurement mode
+ UInt8 UNUSED_0x07 :1; // Reserved, must be written as 0
+ UInt8 IR_Gstep :3; // Gain step for image rejection measurement. Depends on frequency
+ UInt8 Extended_Reg :1; // Enable the extended byte addressing
+ // 0: Limited byte (&h00:&h0F)
+ // 1: Extended byte (&h00:&h26)
+ };
+ };
+
+ union
+ {
+ UInt8 CAL_POST_DIV_BYTE; // address 0x08
+ // CAL post divider byte
+ };
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_1; // address 0x09
+ // CAL divider byte 1
+ struct
+ {
+ UInt8 CAL_Div_22_to_16:7;// CAL divider value 22 to 16
+ UInt8 UNUSED_0x09 :1; // Reserved, must be written as 0
+ };
+ };
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_2; // address 0x0A
+ // CAL divider byte 2
+ struct
+ {
+ UInt8 CAL_Div_15_to_8:8;// CAL divider value 15 to 8
+ };
+ };
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_3; // address 0x0B
+ // CAL divider byte 3
+ struct
+ {
+ UInt8 CAL_Div_7_to_0:8; // CAL divider value 7 to 0
+ };
+ };
+
+ union
+ {
+ UInt8 MAIN_POST_DIV_BYTE; // address 0x0C
+ // MAIN post divider byte
+ struct
+ {
+ UInt8 MAIN_Post_Div :7; // MAIN post divider value
+ UInt8 IF_notch :1; // Reserved, must be written as 0
+ };
+ };
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_1; // address 0x0D
+ // MAIN divider byte 1
+ struct
+ {
+ UInt8 MAIN_Div_22_to_16:7;// MAIN divider value 22 to 16
+ UInt8 UNUSED_0x0D :1; // Reserved, must be written as 0
+ };
+ };
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_2; // address 0x0E
+ // MAIN divider byte 2
+ struct
+ {
+ UInt8 MAIN_Div_15_to_8:8;// MAIN divider value 15 to 8
+ };
+ };
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_3; // address 0x0F
+ // MAIN divider byte 3
+ struct
+ {
+ UInt8 MAIN_Div_7_to_0:8;// MAIN divider value 7 to 0
+ };
+ };
+
+ UInt8 EXTENDED_BYTE_1; // address 0x10
+ // extended byte 1
+
+ UInt8 EXTENDED_BYTE_2; // address 0x11
+ // extended byte 2
+
+ UInt8 EXTENDED_BYTE_3; // address 0x12
+ // extended byte 3
+
+ UInt8 EXTENDED_BYTE_4; // address 0x13
+ // extended byte 4
+
+ UInt8 EXTENDED_BYTE_5; // address 0x14
+ // extended byte 5
+
+ UInt8 EXTENDED_BYTE_6; // address 0x15
+ // extended byte 6
+
+ UInt8 EXTENDED_BYTE_7; // address 0x16
+ // extended byte7
+
+ UInt8 EXTENDED_BYTE_8; // address 0x17
+ // extended byte 8
+
+ UInt8 EXTENDED_BYTE_9; // address 0x18
+ // extended byte 9
+
+ UInt8 EXTENDED_BYTE_10; // address 0x19
+ // extended byte 10
+
+ UInt8 EXTENDED_BYTE_11; // address 0x1A
+ // extended byte 11
+
+ UInt8 EXTENDED_BYTE_12; // address 0x1B
+ // extended byte 12
+
+ UInt8 EXTENDED_BYTE_13; // address 0x1C
+ // extended byte 13
+
+ UInt8 EXTENDED_BYTE_14; // address 0x1D
+ // extended byte 14
+
+ UInt8 EXTENDED_BYTE_15; // address 0x1E
+ // extended byte 15
+
+ UInt8 EXTENDED_BYTE_16; // address 0x1F
+ // extended byte 16
+
+ UInt8 EXTENDED_BYTE_17; // address 0x20
+ // extended byte 17
+
+ UInt8 EXTENDED_BYTE_18; // address 0x21
+ // extended byte 18
+
+ UInt8 EXTENDED_BYTE_19; // address 0x22
+ // extended byte 19
+
+ UInt8 EXTENDED_BYTE_20; // address 0x23
+ // extended byte 20
+
+ UInt8 EXTENDED_BYTE_21; // address 0x24
+ // extended byte 21
+
+ UInt8 EXTENDED_BYTE_22; // address 0x25
+ // extended byte 22
+
+ UInt8 EXTENDED_BYTE_23; // address 0x26
+ // extended byte 23
+
+} tmTDA18271I2CMap_t, *ptmTDA18271I2CMap_t;
+
+typedef struct _tmAFAInfo_t {
+ Demodulator* demodulator;
+ UInt8 chip;
+} tmAFAInfo_t, *ptmAFAInfo_t;
+
+typedef struct _tmTDA18271Object_t {
+ tmAFAInfo_t AFAInfo;
+ Bool_ init;
+ UInt32 uHwAddress;
+ tmhalFEBslSystemFunc_t SystemFunc;
+ tmTDA18271PowerState_t curPowerState;
+ tmTDA18271StandardMode_t StandardMode;
+ tmTDA18271Config_t Config;
+ tmTDA18271I2CMap_t I2CMap;
+ UInt32 I2CLog[TDA18271_LOG_NB_ROWS][TDA18271_NB_BYTES + 2];
+ UInt32 uTickEnd;
+} tmTDA18271Object_t, *ptmTDA18271Object_t;
+
+//-----------------------------------------------------------------------------
+// Function:
+//-----------------------------------------------------------------------------
+//
+
+tmErrorCode_t
+tmbslTDA18271Init(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmbslTuParam_t Param // I: setup parameters
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // _TMBSL_TDA18271LOCAL_H //--------------- \ No newline at end of file
diff --git a/api/TDA18271StaticInstance_C2.h b/api/TDA18271StaticInstance_C2.h
new file mode 100644
index 0000000..19d84f8
--- /dev/null
+++ b/api/TDA18271StaticInstance_C2.h
@@ -0,0 +1,1670 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: allocStaticInstance.h
+//
+// DESCRIPTION: define the static Objects
+//
+// DOCUMENT REF: DVP Software Coding Guidelines v1.14
+// DVP Board Support Library Architecture Specification v0.5
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+#ifndef _TMBSL_ALLOC_STATIC_INSTANCE_H //-----------------
+#define _TMBSL_ALLOC_STATIC_INSTANCE_H
+#define FALSE 0
+#define TRUE 1
+#define Null 0
+
+//-----------------------------------------------------------------------------
+// Global data:
+//-----------------------------------------------------------------------------
+//
+//
+// default instance
+tmTDA18271Object_t_C2 gTDA18271Instance_C2[] =
+{
+ {
+ {
+ NULL, /* Demodulator */
+ 0x01 /* chip */
+ },
+ 0x00, // TunerUnit
+ False, // init (instance initialization default)
+
+ 0x00, // uHwAddress (HwId default value)
+
+#ifdef NXPFE
+ nullptr, // SystemFuncd
+#else // NXPFE
+ { // SystemFunc (system functions default addresses)
+ Null,
+ Null,
+ Null,
+ Null,
+ },
+#endif // NXPFE
+ tmPowerSleepMode_C2, // default power state
+ tmDigital_TV_DVBT_8MHz_C2, // default standard mode
+ { // Config
+ CUSTOM_BOARD_DEF, // uBoard [default Configuration structure]
+ OM57XX_STANDARD_DEF, // uStandard
+ 500000000, // uRF
+ 6750000, // uIF
+ //6000000, // uBW
+ 0x00, // uTMVALUE_RFCAL
+ 0x01, // uPLMODE
+ 0x00, // uRFCAL_TCOMP
+ 0x00, // uMAPNAME
+ 0x00, // uMAPCOLUMN
+ 0x00, // uMAPROW
+ 0x00, // uPROTOCOLSTEP
+ { // IR_MEAS_Map uRF_Max, uIR_Meas
+ {200000000, 0x05},
+ {600000000, 0x06},
+ {865000000, 0x07},
+ },
+ { // IR_CAL_Map uRF, uIR_GStep
+ {72000000, 0x03},
+ {408000000, 0x03},
+ {808000000, 0x03},
+ },
+ { // BP_FILTER_Map uRF_Max, uBP_Filter
+ {62000000, 0x00},
+ {84000000, 0x01},
+ {100000000, 0x02},
+ {140000000, 0x03},
+ {170000000, 0x04},
+ {180000000, 0x05},
+ {865000000, 0x06},
+ },
+ { // RF_BAND_Map uRF_Max, uRF_Band, uRF1, uRF2, uRF3, uRF_A1, uRF_B1, uRF_A2, uRF_B2, uRF1_default, uRF2_default, uRF3_default
+ {47900000, 0x00, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 46000000, 0, 0 },
+ {61100000, 0x01, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 52200000, 0, 0 },
+ {152600000, 0x02, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 70100000, 136800000, 0 },
+ {164700000, 0x03, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 156700000, 0, 0 },
+ {203500000, 0x04, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 186250000, 0, 0 },
+ {457800000, 0x05, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 230000000, 345000000, 426000000 },
+ {865000000, 0x06, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 489500000, 697500000, 842000000 },
+ },
+ { // GAIN_TAPER_Map uRF_Max, uGain_Taper
+ {45400000, 0x1F},
+ {45800000, 0x1E},
+ {46200000, 0x1D},
+ {46700000, 0x1C},
+ {47100000, 0x1B},
+ {47500000, 0x1A},
+ {47900000, 0x19},
+ {49600000, 0x17},
+ {51200000, 0x16},
+ {52900000, 0x15},
+ {54500000, 0x14},
+ {56200000, 0x13},
+ {57800000, 0x12},
+ {59500000, 0x11},
+ {61100000, 0x10},
+ {67600000, 0x0D},
+ {74200000, 0x0C},
+ {80700000, 0x0B},
+ {87200000, 0x0A},
+ {93800000, 0x09},
+ {100300000, 0x08},
+ {106900000, 0x07},
+ {113400000, 0x06},
+ {119900000, 0x05},
+ {126500000, 0x04},
+ {133000000, 0x03},
+ {139500000, 0x02},
+ {146100000, 0x01},
+ {152600000, 0x00},
+ {154300000, 0x1F},
+ {156100000, 0x1E},
+ {157800000, 0x1D},
+ {159500000, 0x1C},
+ {161200000, 0x1B},
+ {163000000, 0x1A},
+ {164700000, 0x19},
+ {170200000, 0x17},
+ {175800000, 0x16},
+ {181300000, 0x15},
+ {186900000, 0x14},
+ {192400000, 0x13},
+ {198000000, 0x12},
+ {203500000, 0x11},
+ {216200000, 0x14},
+ {228900000, 0x13},
+ {241600000, 0x12},
+ {254400000, 0x11},
+ {267100000, 0x10},
+ {279800000, 0x0F},
+ {292500000, 0x0E},
+ {305200000, 0x0D},
+ {317900000, 0x0C},
+ {330700000, 0x0B},
+ {343400000, 0x0A},
+ {356100000, 0x09},
+ {368800000, 0x08},
+ {381500000, 0x07},
+ {394200000, 0x06},
+ {406900000, 0x05},
+ {419700000, 0x04},
+ {432400000, 0x03},
+ {445100000, 0x02},
+ {457800000, 0x01},
+ {476300000, 0x19},
+ {494800000, 0x18},
+ {513300000, 0x17},
+ {531800000, 0x16},
+ {550300000, 0x15},
+ {568900000, 0x14},
+ {587400000, 0x13},
+ {605900000, 0x12},
+ {624400000, 0x11},
+ {642900000, 0x10},
+ {661400000, 0x0F},
+ {679900000, 0x0E},
+ {698400000, 0x0D},
+ {716900000, 0x0C},
+ {735400000, 0x0B},
+ {753900000, 0x0A},
+ {772500000, 0x09},
+ {791000000, 0x08},
+ {809500000, 0x07},
+ {828000000, 0x06},
+ {846500000, 0x05},
+ {865000000, 0x04},
+ },
+ { // RF_CAL_Map uRF_Max, uRFC_Cprog
+ {41000000, 0x0F},
+ {43000000, 0x1C},
+ {45000000, 0x2F},
+ {46000000, 0x39},
+ {47000000, 0x40},
+ {47900000, 0x50},
+ {49100000, 0x16},
+ {50000000, 0x18},
+ {51000000, 0x20},
+ {53000000, 0x28},
+ {55000000, 0x2B},
+ {56000000, 0x32},
+ {57000000, 0x35},
+ {58000000, 0x3E},
+ {59000000, 0x43},
+ {60000000, 0x4E},
+ {61100000, 0x55},
+ {63000000, 0x0F},
+ {64000000, 0x11},
+ {65000000, 0x12},
+ {66000000, 0x15},
+ {67000000, 0x16},
+ {68000000, 0x17},
+ {70000000, 0x19},
+ {71000000, 0x1C},
+ {72000000, 0x1D},
+ {73000000, 0x1F},
+ {74000000, 0x20},
+ {75000000, 0x21},
+ {76000000, 0x24},
+ {77000000, 0x25},
+ {78000000, 0x27},
+ {80000000, 0x28},
+ {81000000, 0x29},
+ {82000000, 0x2D},
+ {83000000, 0x2E},
+ {84000000, 0x2F},
+ {85000000, 0x31},
+ {86000000, 0x33},
+ {87000000, 0x34},
+ {88000000, 0x35},
+ {89000000, 0x37},
+ {90000000, 0x38},
+ {91000000, 0x39},
+ {93000000, 0x3C},
+ {94000000, 0x3E},
+ {95000000, 0x3F},
+ {96000000, 0x40},
+ {97000000, 0x42},
+ {99000000, 0x45},
+ {100000000, 0x46},
+ {102000000, 0x48},
+ {103000000, 0x4A},
+ {105000000, 0x4D},
+ {106000000, 0x4E},
+ {107000000, 0x50},
+ {108000000, 0x51},
+ {110000000, 0x54},
+ {111000000, 0x56},
+ {112000000, 0x57},
+ {113000000, 0x58},
+ {114000000, 0x59},
+ {115000000, 0x5C},
+ {116000000, 0x5D},
+ {117000000, 0x5F},
+ {119000000, 0x60},
+ {120000000, 0x64},
+ {121000000, 0x65},
+ {122000000, 0x66},
+ {123000000, 0x68},
+ {124000000, 0x69},
+ {125000000, 0x6C},
+ {126000000, 0x6D},
+ {127000000, 0x6E},
+ {128000000, 0x70},
+ {129000000, 0x71},
+ {130000000, 0x75},
+ {131000000, 0x77},
+ {132000000, 0x78},
+ {133000000, 0x7B},
+ {134000000, 0x7E},
+ {135000000, 0x81},
+ {136000000, 0x82},
+ {137000000, 0x87},
+ {138000000, 0x88},
+ {139000000, 0x8D},
+ {140000000, 0x8E},
+ {141000000, 0x91},
+ {142000000, 0x95},
+ {143000000, 0x9A},
+ {144000000, 0x9D},
+ {145000000, 0xA1},
+ {146000000, 0xA2},
+ {147000000, 0xA4},
+ {148000000, 0xA9},
+ {149000000, 0xAE},
+ {150000000, 0xB0},
+ {151000000, 0xB1},
+ {152000000, 0xB7},
+ {152600000, 0xBD},
+ {154000000, 0x20},
+ {155000000, 0x22},
+ {156000000, 0x24},
+ {157000000, 0x25},
+ {158000000, 0x27},
+ {159000000, 0x29},
+ {160000000, 0x2C},
+ {161000000, 0x2D},
+ {163000000, 0x2E},
+ {164000000, 0x2F},
+ {164700000, 0x30},
+ {166000000, 0x11},
+ {167000000, 0x12},
+ {168000000, 0x13},
+ {169000000, 0x14},
+ {170000000, 0x15},
+ {172000000, 0x16},
+ {173000000, 0x17},
+ {174000000, 0x18},
+ {175000000, 0x1A},
+ {176000000, 0x1B},
+ {178000000, 0x1D},
+ {179000000, 0x1E},
+ {180000000, 0x1F},
+ {181000000, 0x20},
+ {182000000, 0x21},
+ {183000000, 0x22},
+ {184000000, 0x24},
+ {185000000, 0x25},
+ {186000000, 0x26},
+ {187000000, 0x27},
+ {188000000, 0x29},
+ {189000000, 0x2A},
+ {190000000, 0x2C},
+ {191000000, 0x2D},
+ {192000000, 0x2E},
+ {193000000, 0x2F},
+ {194000000, 0x30},
+ {195000000, 0x33},
+ {196000000, 0x35},
+ {198000000, 0x36},
+ {200000000, 0x38},
+ {201000000, 0x3C},
+ {202000000, 0x3D},
+ {203500000, 0x3E},
+ {206000000, 0x0E},
+ {208000000, 0x0F},
+ {212000000, 0x10},
+ {216000000, 0x11},
+ {217000000, 0x12},
+ {218000000, 0x13},
+ {220000000, 0x14},
+ {222000000, 0x15},
+ {225000000, 0x16},
+ {228000000, 0x17},
+ {231000000, 0x18},
+ {234000000, 0x19},
+ {235000000, 0x1A},
+ {236000000, 0x1B},
+ {237000000, 0x1C},
+ {240000000, 0x1D},
+ {242000000, 0x1E},
+ {244000000, 0x1F},
+ {247000000, 0x20},
+ {249000000, 0x21},
+ {252000000, 0x22},
+ {253000000, 0x23},
+ {254000000, 0x24},
+ {256000000, 0x25},
+ {259000000, 0x26},
+ {262000000, 0x27},
+ {264000000, 0x28},
+ {267000000, 0x29},
+ {269000000, 0x2A},
+ {271000000, 0x2B},
+ {273000000, 0x2C},
+ {275000000, 0x2D},
+ {277000000, 0x2E},
+ {279000000, 0x2F},
+ {282000000, 0x30},
+ {284000000, 0x31},
+ {286000000, 0x32},
+ {287000000, 0x33},
+ {290000000, 0x34},
+ {293000000, 0x35},
+ {295000000, 0x36},
+ {297000000, 0x37},
+ {300000000, 0x38},
+ {303000000, 0x39},
+ {305000000, 0x3A},
+ {306000000, 0x3B},
+ {307000000, 0x3C},
+ {310000000, 0x3D},
+ {312000000, 0x3E},
+ {315000000, 0x3F},
+ {318000000, 0x40},
+ {320000000, 0x41},
+ {323000000, 0x42},
+ {324000000, 0x43},
+ {325000000, 0x44},
+ {327000000, 0x45},
+ {331000000, 0x46},
+ {334000000, 0x47},
+ {337000000, 0x48},
+ {339000000, 0x49},
+ {340000000, 0x4A},
+ {341000000, 0x4B},
+ {343000000, 0x4C},
+ {345000000, 0x4D},
+ {349000000, 0x4E},
+ {352000000, 0x4F},
+ {353000000, 0x50},
+ {355000000, 0x51},
+ {357000000, 0x52},
+ {359000000, 0x53},
+ {361000000, 0x54},
+ {362000000, 0x55},
+ {364000000, 0x56},
+ {368000000, 0x57},
+ {370000000, 0x58},
+ {372000000, 0x59},
+ {375000000, 0x5A},
+ {376000000, 0x5B},
+ {377000000, 0x5C},
+ {379000000, 0x5D},
+ {382000000, 0x5E},
+ {384000000, 0x5F},
+ {385000000, 0x60},
+ {386000000, 0x61},
+ {388000000, 0x62},
+ {390000000, 0x63},
+ {393000000, 0x64},
+ {394000000, 0x65},
+ {396000000, 0x66},
+ {397000000, 0x67},
+ {398000000, 0x68},
+ {400000000, 0x69},
+ {402000000, 0x6A},
+ {403000000, 0x6B},
+ {407000000, 0x6C},
+ {408000000, 0x6D},
+ {409000000, 0x6E},
+ {410000000, 0x6F},
+ {411000000, 0x70},
+ {412000000, 0x71},
+ {413000000, 0x72},
+ {414000000, 0x73},
+ {417000000, 0x74},
+ {418000000, 0x75},
+ {420000000, 0x76},
+ {422000000, 0x77},
+ {423000000, 0x78},
+ {424000000, 0x79},
+ {427000000, 0x7A},
+ {428000000, 0x7B},
+ {429000000, 0x7D},
+ {432000000, 0x7F},
+ {434000000, 0x80},
+ {435000000, 0x81},
+ {436000000, 0x83},
+ {437000000, 0x84},
+ {438000000, 0x85},
+ {439000000, 0x86},
+ {440000000, 0x87},
+ {441000000, 0x88},
+ {442000000, 0x89},
+ {445000000, 0x8A},
+ {446000000, 0x8B},
+ {447000000, 0x8C},
+ {448000000, 0x8E},
+ {449000000, 0x8F},
+ {450000000, 0x90},
+ {452000000, 0x91},
+ {453000000, 0x93},
+ {454000000, 0x94},
+ {456000000, 0x96},
+ {457800000, 0x98},
+ {461000000, 0x11},
+ {468000000, 0x12},
+ {472000000, 0x13},
+ {473000000, 0x14},
+ {474000000, 0x15},
+ {481000000, 0x16},
+ {486000000, 0x17},
+ {491000000, 0x18},
+ {498000000, 0x19},
+ {499000000, 0x1A},
+ {501000000, 0x1B},
+ {506000000, 0x1C},
+ {511000000, 0x1D},
+ {516000000, 0x1E},
+ {520000000, 0x1F},
+ {521000000, 0x20},
+ {525000000, 0x21},
+ {529000000, 0x22},
+ {533000000, 0x23},
+ {539000000, 0x24},
+ {541000000, 0x25},
+ {547000000, 0x26},
+ {549000000, 0x27},
+ {551000000, 0x28},
+ {556000000, 0x29},
+ {561000000, 0x2A},
+ {563000000, 0x2B},
+ {565000000, 0x2C},
+ {569000000, 0x2D},
+ {571000000, 0x2E},
+ {577000000, 0x2F},
+ {580000000, 0x30},
+ {582000000, 0x31},
+ {584000000, 0x32},
+ {588000000, 0x33},
+ {591000000, 0x34},
+ {596000000, 0x35},
+ {598000000, 0x36},
+ {603000000, 0x37},
+ {604000000, 0x38},
+ {606000000, 0x39},
+ {612000000, 0x3A},
+ {615000000, 0x3B},
+ {617000000, 0x3C},
+ {621000000, 0x3D},
+ {622000000, 0x3E},
+ {625000000, 0x3F},
+ {632000000, 0x40},
+ {633000000, 0x41},
+ {634000000, 0x42},
+ {642000000, 0x43},
+ {643000000, 0x44},
+ {647000000, 0x45},
+ {650000000, 0x46},
+ {652000000, 0x47},
+ {657000000, 0x48},
+ {661000000, 0x49},
+ {662000000, 0x4A},
+ {665000000, 0x4B},
+ {667000000, 0x4C},
+ {670000000, 0x4D},
+ {673000000, 0x4E},
+ {676000000, 0x4F},
+ {677000000, 0x50},
+ {681000000, 0x51},
+ {683000000, 0x52},
+ {686000000, 0x53},
+ {688000000, 0x54},
+ {689000000, 0x55},
+ {691000000, 0x56},
+ {695000000, 0x57},
+ {698000000, 0x58},
+ {703000000, 0x59},
+ {704000000, 0x5A},
+ {705000000, 0x5B},
+ {707000000, 0x5C},
+ {710000000, 0x5D},
+ {712000000, 0x5E},
+ {717000000, 0x5F},
+ {718000000, 0x60},
+ {721000000, 0x61},
+ {722000000, 0x62},
+ {723000000, 0x63},
+ {725000000, 0x64},
+ {727000000, 0x65},
+ {730000000, 0x66},
+ {732000000, 0x67},
+ {735000000, 0x68},
+ {740000000, 0x69},
+ {741000000, 0x6A},
+ {742000000, 0x6B},
+ {743000000, 0x6C},
+ {745000000, 0x6D},
+ {747000000, 0x6E},
+ {748000000, 0x6F},
+ {750000000, 0x70},
+ {752000000, 0x71},
+ {754000000, 0x72},
+ {757000000, 0x73},
+ {758000000, 0x74},
+ {760000000, 0x75},
+ {763000000, 0x76},
+ {764000000, 0x77},
+ {766000000, 0x78},
+ {767000000, 0x79},
+ {768000000, 0x7A},
+ {773000000, 0x7B},
+ {774000000, 0x7C},
+ {776000000, 0x7D},
+ {777000000, 0x7E},
+ {778000000, 0x7F},
+ {779000000, 0x80},
+ {781000000, 0x81},
+ {783000000, 0x82},
+ {784000000, 0x83},
+ {785000000, 0x84},
+ {786000000, 0x85},
+ {793000000, 0x86},
+ {794000000, 0x87},
+ {795000000, 0x88},
+ {797000000, 0x89},
+ {799000000, 0x8A},
+ {801000000, 0x8B},
+ {802000000, 0x8C},
+ {803000000, 0x8D},
+ {804000000, 0x8E},
+ {810000000, 0x90},
+ {811000000, 0x91},
+ {812000000, 0x92},
+ {814000000, 0x93},
+ {816000000, 0x94},
+ {817000000, 0x96},
+ {818000000, 0x97},
+ {820000000, 0x98},
+ {821000000, 0x99},
+ {822000000, 0x9A},
+ {828000000, 0x9B},
+ {829000000, 0x9D},
+ {830000000, 0x9F},
+ {831000000, 0xA0},
+ {833000000, 0xA1},
+ {835000000, 0xA2},
+ {836000000, 0xA3},
+ {837000000, 0xA4},
+ {838000000, 0xA6},
+ {840000000, 0xA8},
+ {842000000, 0xA9},
+ {845000000, 0xAA},
+ {846000000, 0xAB},
+ {847000000, 0xAD},
+ {848000000, 0xAE},
+ {852000000, 0xAF},
+ {853000000, 0xB0},
+ {858000000, 0xB1},
+ {860000000, 0xB2},
+ {861000000, 0xB3},
+ {862000000, 0xB4},
+ {863000000, 0xB6},
+ {864000000, 0xB8},
+ {865000000, 0xB9},
+ },
+ { // RF_CAL_DC_OVER_DT_Map uRF_Max, udC_Over_dT
+ {47900000, 0x00},
+ {55000000, 0x00},
+ {61100000, 0x0A},
+ {64000000, 0x0A},
+ {82000000, 0x14},
+ {84000000, 0x19},
+ {119000000, 0x1C},
+ {124000000, 0x20},
+ {129000000, 0x2A},
+ {134000000, 0x32},
+ {139000000, 0x39},
+ {144000000, 0x3E},
+ {149000000, 0x3F},
+ {152600000, 0x40},
+ {154000000, 0x40},
+ {164700000, 0x41},
+ {203500000, 0x32},
+ {353000000, 0x19},
+ {356000000, 0x1A},
+ {359000000, 0x1B},
+ {363000000, 0x1C},
+ {366000000, 0x1D},
+ {369000000, 0x1E},
+ {373000000, 0x1F},
+ {376000000, 0x20},
+ {379000000, 0x21},
+ {383000000, 0x22},
+ {386000000, 0x23},
+ {389000000, 0x24},
+ {393000000, 0x25},
+ {396000000, 0x26},
+ {399000000, 0x27},
+ {402000000, 0x28},
+ {404000000, 0x29},
+ {407000000, 0x2A},
+ {409000000, 0x2B},
+ {412000000, 0x2C},
+ {414000000, 0x2D},
+ {417000000, 0x2E},
+ {419000000, 0x2F},
+ {422000000, 0x30},
+ {424000000, 0x31},
+ {427000000, 0x32},
+ {429000000, 0x33},
+ {432000000, 0x34},
+ {434000000, 0x35},
+ {437000000, 0x36},
+ {439000000, 0x37},
+ {442000000, 0x38},
+ {444000000, 0x39},
+ {447000000, 0x3A},
+ {449000000, 0x3B},
+ {457800000, 0x3C},
+ {465000000, 0x0F},
+ {477000000, 0x12},
+ {483000000, 0x14},
+ {502000000, 0x19},
+ {508000000, 0x1B},
+ {519000000, 0x1C},
+ {522000000, 0x1D},
+ {524000000, 0x1E},
+ {534000000, 0x1F},
+ {549000000, 0x20},
+ {554000000, 0x22},
+ {584000000, 0x24},
+ {589000000, 0x26},
+ {658000000, 0x27},
+ {664000000, 0x2C},
+ {669000000, 0x2D},
+ {699000000, 0x2E},
+ {704000000, 0x30},
+ {709000000, 0x31},
+ {714000000, 0x32},
+ {724000000, 0x33},
+ {729000000, 0x36},
+ {739000000, 0x38},
+ {744000000, 0x39},
+ {749000000, 0x3B},
+ {754000000, 0x3C},
+ {759000000, 0x3D},
+ {764000000, 0x3E},
+ {769000000, 0x3F},
+ {774000000, 0x40},
+ {779000000, 0x41},
+ {784000000, 0x43},
+ {789000000, 0x46},
+ {794000000, 0x48},
+ {799000000, 0x4B},
+ {804000000, 0x4F},
+ {809000000, 0x54},
+ {814000000, 0x59},
+ {819000000, 0x5D},
+ {824000000, 0x61},
+ {829000000, 0x68},
+ {834000000, 0x6E},
+ {839000000, 0x75},
+ {844000000, 0x7E},
+ {849000000, 0x82},
+ {854000000, 0x84},
+ {859000000, 0x8F},
+ {865000000, 0x9A},
+ },
+ { // RF_CAL_KMCO_Map uRF_Max, uK, uM, UCOAmp
+ {47900000, 0x03, 0x02, 0x03},
+ {61100000, 0x04, 0x01, 0x03},
+ {350000000, 0x03, 0x00, 0x03},
+ {720000000, 0x02, 0x01, 0x03},
+ {865000000, 0x03, 0x03, 0x03},
+ },
+ { // RF_CAL_CID_TARGET_Map uRF_Max, uCID_Target, uCount_Limit
+ {46000000, 0x04, 1800000},
+ {52200000, 0x0A, 1500000},
+ {70100000, 0x01, 4000000},
+ {136800000, 0x18, 4000000},
+ {156700000, 0x18, 4000000},
+#endif // TMBSL_TDA1827
+ {186250000, 0x0A, 4000000},
+ {230000000, 0x0A, 4000000},
+ {345000000, 0x18, 4000000},
+ {426000000, 0x0E, 4000000},
+ {489500000, 0x1E, 4000000},
+ {697500000, 0x32, 4000000},
+ {842000000, 0x3A, 4000000},
+ },
+ { // THERMOMETER_Map uTM_D, uTM_60_92, uTM_92_122
+ {0x00, 0x28, 0x5C},
+ {0x01, 0x3E, 0x5E},
+ {0x02, 0x42, 0x62},
+ {0x03, 0x40, 0x60},
+ {0x04, 0x4A, 0x6A},
+ {0x05, 0x48, 0x68},
+ {0x06, 0x44, 0x64},
+ {0x07, 0x46, 0x66},
+ {0x08, 0x5A, 0x7A},
+ {0x09, 0x58, 0x78},
+ {0x0A, 0x54, 0x74},
+ {0x0B, 0x56, 0x76},
+ {0x0C, 0x4C, 0x6C},
+ {0x0D, 0x4E, 0x6E},
+ {0x0E, 0x52, 0x72},
+ {0x0F, 0x50, 0x70},
+ },
+ { // CAL_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33812500, 0xDD, 0xD0},
+ {36625000, 0xDC, 0xC0},
+ {39937500, 0xDB, 0xB0},
+ {43937500, 0xDA, 0xA0},
+ {48812500, 0xD9, 0x90},
+ {54937500, 0xD8, 0x80},
+ {62812500, 0xD3, 0x70},
+ {67625000, 0xCD, 0x68},
+ {73250000, 0xCC, 0x60},
+ {79875000, 0xCB, 0x58},
+ {87875000, 0xCA, 0x50},
+ {97625000, 0xC9, 0x48},
+ {109875000, 0xC8, 0x40},
+ {125625000, 0xC3, 0x38},
+ {135250000, 0xBD, 0x34},
+ {146500000, 0xBC, 0x30},
+ {159750000, 0xBB, 0x2C},
+ {175750000, 0xBA, 0x28},
+ {195250000, 0xB9, 0x24},
+ {219750000, 0xB8, 0x20},
+ {251250000, 0xB3, 0x1C},
+ {270500000, 0xAD, 0x1A},
+ {293000000, 0xAC, 0x18},
+ {319500000, 0xAB, 0x16},
+ {351500000, 0xAA, 0x14},
+ {390500000, 0xA9, 0x12},
+ {439500000, 0xA8, 0x10},
+ {502500000, 0xA3, 0x0E},
+ {541000000, 0x9D, 0x0D},
+ {586000000, 0x9C, 0x0C},
+ {639000000, 0x9B, 0x0B},
+ {703000000, 0x9A, 0x0A},
+ {781000000, 0x99, 0x09},
+ {879000000, 0x98, 0x08},
+ {1005000000,0x93, 0x07},
+ },
+ { // MAIN_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33125000, 0x5F, 0xF0},
+ {35500000, 0x5E, 0xE0},
+ {38187500, 0x5D, 0xD0},
+ {41375000, 0x5C, 0xC0},
+ {45125000, 0x5B, 0xB0},
+ {49687500, 0x5A, 0xA0},
+ {55187500, 0x59, 0x90},
+ {62125000, 0x58, 0x80},
+ {66250000, 0x4F, 0x78},
+ {71000000, 0x4E, 0x70},
+ {76375000, 0x4D, 0x68},
+ {82750000, 0x4C, 0x60},
+ {90250000, 0x4B, 0x58},
+ {99375000, 0x4A, 0x50},
+ {110375000, 0x49, 0x48},
+ {124250000, 0x48, 0x40},
+ {132500000, 0x3F, 0x3C},
+ {142000000, 0x3E, 0x38},
+ {152750000, 0x3D, 0x34},
+ {165500000, 0x3C, 0x30},
+ {180500000, 0x3B, 0x2C},
+ {198750000, 0x3A, 0x28},
+ {220750000, 0x39, 0x24},
+ {248500000, 0x38, 0x20},
+ {265000000, 0x2F, 0x1E},
+ {284000000, 0x2E, 0x1C},
+ {305500000, 0x2D, 0x1A},
+ {331000000, 0x2C, 0x18},
+ {361000000, 0x2B, 0x16},
+ {397500000, 0x2A, 0x14},
+ {441500000, 0x29, 0x12},
+ {497000000, 0x28, 0x10},
+ {530000000, 0x1F, 0x0F},
+ {568000000, 0x1E, 0x0E},
+ {611000000, 0x1D, 0x0D},
+ {662000000, 0x1C, 0x0C},
+ {722000000, 0x1B, 0x0B},
+ {795000000, 0x1A, 0x0A},
+ {883000000, 0x19, 0x09},
+ {994000000, 0x18, 0x08},
+ },
+ },
+ 0x00, // I2CMap
+ 0x00, // I2CLog
+ 0x00, // uTickEnd [end tick value]
+ },
+ {
+ {
+ NULL, /* Demodulator */
+ 0x01 /* chip */
+ },
+ 0x01, // TunerUnit
+ False, // init (instance initialization default)
+
+ 0x00, // uHwAddress (HwId default value)
+
+#ifdef NXPFE
+ nullptr, // SystemFuncd
+#else // NXPFE
+ { // SystemFunc (system functions default addresses)
+ Null,
+ Null,
+ Null,
+ Null,
+ },
+#endif // NXPFE
+ tmPowerSleepMode_C2, // default power state
+ tmDigital_TV_DVBT_8MHz_C2, // default standard mode
+ { // Config
+ CUSTOM_BOARD_DEF, // uBoard [default Configuration structure]
+ OM57XX_STANDARD_DEF, // uStandard
+ 500000000, // uRF
+ 6750000, // uIF
+ //6000000, // uBW
+ 0x00, // uTMVALUE_RFCAL
+ 0x01, // uPLMODE
+ 0x00, // uRFCAL_TCOMP
+ 0x00, // uMAPNAME
+ 0x00, // uMAPCOLUMN
+ 0x00, // uMAPROW
+ 0x00, // uPROTOCOLSTEP
+ { // IR_MEAS_Map uRF_Max, uIR_Meas
+ {200000000, 0x05},
+ {600000000, 0x06},
+ {865000000, 0x07},
+ },
+ { // IR_CAL_Map uRF, uIR_GStep
+ {72000000, 0x03},
+ {408000000, 0x03},
+ {808000000, 0x03},
+ },
+ { // BP_FILTER_Map uRF_Max, uBP_Filter
+ {62000000, 0x00},
+ {84000000, 0x01},
+ {100000000, 0x02},
+ {140000000, 0x03},
+ {170000000, 0x04},
+ {180000000, 0x05},
+ {865000000, 0x06},
+ },
+ { // RF_BAND_Map uRF_Max, uRF_Band, uRF1, uRF2, uRF3, uRF_A1, uRF_B1, uRF_A2, uRF_B2, uRF1_default, uRF2_default, uRF3_default
+ {47900000, 0x00, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 46000000, 0, 0 },
+ {61100000, 0x01, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 52200000, 0, 0 },
+ {152600000, 0x02, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 70100000, 136800000, 0 },
+ {164700000, 0x03, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 156700000, 0, 0 },
+ {203500000, 0x04, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 186250000, 0, 0 },
+ {457800000, 0x05, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 230000000, 345000000, 426000000 },
+ {865000000, 0x06, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 489500000, 697500000, 842000000 },
+ },
+ { // GAIN_TAPER_Map uRF_Max, uGain_Taper
+ {45400000, 0x1F},
+ {45800000, 0x1E},
+ {46200000, 0x1D},
+ {46700000, 0x1C},
+ {47100000, 0x1B},
+ {47500000, 0x1A},
+ {47900000, 0x19},
+ {49600000, 0x17},
+ {51200000, 0x16},
+ {52900000, 0x15},
+ {54500000, 0x14},
+ {56200000, 0x13},
+ {57800000, 0x12},
+ {59500000, 0x11},
+ {61100000, 0x10},
+ {67600000, 0x0D},
+ {74200000, 0x0C},
+ {80700000, 0x0B},
+ {87200000, 0x0A},
+ {93800000, 0x09},
+ {100300000, 0x08},
+ {106900000, 0x07},
+ {113400000, 0x06},
+ {119900000, 0x05},
+ {126500000, 0x04},
+ {133000000, 0x03},
+ {139500000, 0x02},
+ {146100000, 0x01},
+ {152600000, 0x00},
+ {154300000, 0x1F},
+ {156100000, 0x1E},
+ {157800000, 0x1D},
+ {159500000, 0x1C},
+ {161200000, 0x1B},
+ {163000000, 0x1A},
+ {164700000, 0x19},
+ {170200000, 0x17},
+ {175800000, 0x16},
+ {181300000, 0x15},
+ {186900000, 0x14},
+ {192400000, 0x13},
+ {198000000, 0x12},
+ {203500000, 0x11},
+ {216200000, 0x14},
+ {228900000, 0x13},
+ {241600000, 0x12},
+ {254400000, 0x11},
+ {267100000, 0x10},
+ {279800000, 0x0F},
+ {292500000, 0x0E},
+ {305200000, 0x0D},
+ {317900000, 0x0C},
+ {330700000, 0x0B},
+ {343400000, 0x0A},
+ {356100000, 0x09},
+ {368800000, 0x08},
+ {381500000, 0x07},
+ {394200000, 0x06},
+ {406900000, 0x05},
+ {419700000, 0x04},
+ {432400000, 0x03},
+ {445100000, 0x02},
+ {457800000, 0x01},
+ {476300000, 0x19},
+ {494800000, 0x18},
+ {513300000, 0x17},
+ {531800000, 0x16},
+ {550300000, 0x15},
+ {568900000, 0x14},
+ {587400000, 0x13},
+ {605900000, 0x12},
+ {624400000, 0x11},
+ {642900000, 0x10},
+ {661400000, 0x0F},
+ {679900000, 0x0E},
+ {698400000, 0x0D},
+ {716900000, 0x0C},
+ {735400000, 0x0B},
+ {753900000, 0x0A},
+ {772500000, 0x09},
+ {791000000, 0x08},
+ {809500000, 0x07},
+ {828000000, 0x06},
+ {846500000, 0x05},
+ {865000000, 0x04},
+ },
+ { // RF_CAL_Map uRF_Max, uRFC_Cprog
+ {41000000, 0x0F},
+ {43000000, 0x1C},
+ {45000000, 0x2F},
+ {46000000, 0x39},
+ {47000000, 0x40},
+ {47900000, 0x50},
+ {49100000, 0x16},
+ {50000000, 0x18},
+ {51000000, 0x20},
+ {53000000, 0x28},
+ {55000000, 0x2B},
+ {56000000, 0x32},
+ {57000000, 0x35},
+ {58000000, 0x3E},
+ {59000000, 0x43},
+ {60000000, 0x4E},
+ {61100000, 0x55},
+ {63000000, 0x0F},
+ {64000000, 0x11},
+ {65000000, 0x12},
+ {66000000, 0x15},
+ {67000000, 0x16},
+ {68000000, 0x17},
+ {70000000, 0x19},
+ {71000000, 0x1C},
+ {72000000, 0x1D},
+ {73000000, 0x1F},
+ {74000000, 0x20},
+ {75000000, 0x21},
+ {76000000, 0x24},
+ {77000000, 0x25},
+ {78000000, 0x27},
+ {80000000, 0x28},
+ {81000000, 0x29},
+ {82000000, 0x2D},
+ {83000000, 0x2E},
+ {84000000, 0x2F},
+ {85000000, 0x31},
+ {86000000, 0x33},
+ {87000000, 0x34},
+ {88000000, 0x35},
+ {89000000, 0x37},
+ {90000000, 0x38},
+ {91000000, 0x39},
+ {93000000, 0x3C},
+ {94000000, 0x3E},
+ {95000000, 0x3F},
+ {96000000, 0x40},
+ {97000000, 0x42},
+ {99000000, 0x45},
+ {100000000, 0x46},
+ {102000000, 0x48},
+ {103000000, 0x4A},
+ {105000000, 0x4D},
+ {106000000, 0x4E},
+ {107000000, 0x50},
+ {108000000, 0x51},
+ {110000000, 0x54},
+ {111000000, 0x56},
+ {112000000, 0x57},
+ {113000000, 0x58},
+ {114000000, 0x59},
+ {115000000, 0x5C},
+ {116000000, 0x5D},
+ {117000000, 0x5F},
+ {119000000, 0x60},
+ {120000000, 0x64},
+ {121000000, 0x65},
+ {122000000, 0x66},
+ {123000000, 0x68},
+ {124000000, 0x69},
+ {125000000, 0x6C},
+ {126000000, 0x6D},
+ {127000000, 0x6E},
+ {128000000, 0x70},
+ {129000000, 0x71},
+ {130000000, 0x75},
+ {131000000, 0x77},
+ {132000000, 0x78},
+ {133000000, 0x7B},
+ {134000000, 0x7E},
+ {135000000, 0x81},
+ {136000000, 0x82},
+ {137000000, 0x87},
+ {138000000, 0x88},
+ {139000000, 0x8D},
+ {140000000, 0x8E},
+ {141000000, 0x91},
+ {142000000, 0x95},
+ {143000000, 0x9A},
+ {144000000, 0x9D},
+ {145000000, 0xA1},
+ {146000000, 0xA2},
+ {147000000, 0xA4},
+ {148000000, 0xA9},
+ {149000000, 0xAE},
+ {150000000, 0xB0},
+ {151000000, 0xB1},
+ {152000000, 0xB7},
+ {152600000, 0xBD},
+ {154000000, 0x20},
+ {155000000, 0x22},
+ {156000000, 0x24},
+ {157000000, 0x25},
+ {158000000, 0x27},
+ {159000000, 0x29},
+ {160000000, 0x2C},
+ {161000000, 0x2D},
+ {163000000, 0x2E},
+ {164000000, 0x2F},
+ {164700000, 0x30},
+ {166000000, 0x11},
+ {167000000, 0x12},
+ {168000000, 0x13},
+ {169000000, 0x14},
+ {170000000, 0x15},
+ {172000000, 0x16},
+ {173000000, 0x17},
+ {174000000, 0x18},
+ {175000000, 0x1A},
+ {176000000, 0x1B},
+ {178000000, 0x1D},
+ {179000000, 0x1E},
+ {180000000, 0x1F},
+ {181000000, 0x20},
+ {182000000, 0x21},
+ {183000000, 0x22},
+ {184000000, 0x24},
+ {185000000, 0x25},
+ {186000000, 0x26},
+ {187000000, 0x27},
+ {188000000, 0x29},
+ {189000000, 0x2A},
+ {190000000, 0x2C},
+ {191000000, 0x2D},
+ {192000000, 0x2E},
+ {193000000, 0x2F},
+ {194000000, 0x30},
+ {195000000, 0x33},
+ {196000000, 0x35},
+ {198000000, 0x36},
+ {200000000, 0x38},
+ {201000000, 0x3C},
+ {202000000, 0x3D},
+ {203500000, 0x3E},
+ {206000000, 0x0E},
+ {208000000, 0x0F},
+ {212000000, 0x10},
+ {216000000, 0x11},
+ {217000000, 0x12},
+ {218000000, 0x13},
+ {220000000, 0x14},
+ {222000000, 0x15},
+ {225000000, 0x16},
+ {228000000, 0x17},
+ {231000000, 0x18},
+ {234000000, 0x19},
+ {235000000, 0x1A},
+ {236000000, 0x1B},
+ {237000000, 0x1C},
+ {240000000, 0x1D},
+ {242000000, 0x1E},
+ {244000000, 0x1F},
+ {247000000, 0x20},
+ {249000000, 0x21},
+ {252000000, 0x22},
+ {253000000, 0x23},
+ {254000000, 0x24},
+ {256000000, 0x25},
+ {259000000, 0x26},
+ {262000000, 0x27},
+ {264000000, 0x28},
+ {267000000, 0x29},
+ {269000000, 0x2A},
+ {271000000, 0x2B},
+ {273000000, 0x2C},
+ {275000000, 0x2D},
+ {277000000, 0x2E},
+ {279000000, 0x2F},
+ {282000000, 0x30},
+ {284000000, 0x31},
+ {286000000, 0x32},
+ {287000000, 0x33},
+ {290000000, 0x34},
+ {293000000, 0x35},
+ {295000000, 0x36},
+ {297000000, 0x37},
+ {300000000, 0x38},
+ {303000000, 0x39},
+ {305000000, 0x3A},
+ {306000000, 0x3B},
+ {307000000, 0x3C},
+ {310000000, 0x3D},
+ {312000000, 0x3E},
+ {315000000, 0x3F},
+ {318000000, 0x40},
+ {320000000, 0x41},
+ {323000000, 0x42},
+ {324000000, 0x43},
+ {325000000, 0x44},
+ {327000000, 0x45},
+ {331000000, 0x46},
+ {334000000, 0x47},
+ {337000000, 0x48},
+ {339000000, 0x49},
+ {340000000, 0x4A},
+ {341000000, 0x4B},
+ {343000000, 0x4C},
+ {345000000, 0x4D},
+ {349000000, 0x4E},
+ {352000000, 0x4F},
+ {353000000, 0x50},
+ {355000000, 0x51},
+ {357000000, 0x52},
+ {359000000, 0x53},
+ {361000000, 0x54},
+ {362000000, 0x55},
+ {364000000, 0x56},
+ {368000000, 0x57},
+ {370000000, 0x58},
+ {372000000, 0x59},
+ {375000000, 0x5A},
+ {376000000, 0x5B},
+ {377000000, 0x5C},
+ {379000000, 0x5D},
+ {382000000, 0x5E},
+ {384000000, 0x5F},
+ {385000000, 0x60},
+ {386000000, 0x61},
+ {388000000, 0x62},
+ {390000000, 0x63},
+ {393000000, 0x64},
+ {394000000, 0x65},
+ {396000000, 0x66},
+ {397000000, 0x67},
+ {398000000, 0x68},
+ {400000000, 0x69},
+ {402000000, 0x6A},
+ {403000000, 0x6B},
+ {407000000, 0x6C},
+ {408000000, 0x6D},
+ {409000000, 0x6E},
+ {410000000, 0x6F},
+ {411000000, 0x70},
+ {412000000, 0x71},
+ {413000000, 0x72},
+ {414000000, 0x73},
+ {417000000, 0x74},
+ {418000000, 0x75},
+ {420000000, 0x76},
+ {422000000, 0x77},
+ {423000000, 0x78},
+ {424000000, 0x79},
+ {427000000, 0x7A},
+ {428000000, 0x7B},
+ {429000000, 0x7D},
+ {432000000, 0x7F},
+ {434000000, 0x80},
+ {435000000, 0x81},
+ {436000000, 0x83},
+ {437000000, 0x84},
+ {438000000, 0x85},
+ {439000000, 0x86},
+ {440000000, 0x87},
+ {441000000, 0x88},
+ {442000000, 0x89},
+ {445000000, 0x8A},
+ {446000000, 0x8B},
+ {447000000, 0x8C},
+ {448000000, 0x8E},
+ {449000000, 0x8F},
+ {450000000, 0x90},
+ {452000000, 0x91},
+ {453000000, 0x93},
+ {454000000, 0x94},
+ {456000000, 0x96},
+ {457800000, 0x98},
+ {461000000, 0x11},
+ {468000000, 0x12},
+ {472000000, 0x13},
+ {473000000, 0x14},
+ {474000000, 0x15},
+ {481000000, 0x16},
+ {486000000, 0x17},
+ {491000000, 0x18},
+ {498000000, 0x19},
+ {499000000, 0x1A},
+ {501000000, 0x1B},
+ {506000000, 0x1C},
+ {511000000, 0x1D},
+ {516000000, 0x1E},
+ {520000000, 0x1F},
+ {521000000, 0x20},
+ {525000000, 0x21},
+ {529000000, 0x22},
+ {533000000, 0x23},
+ {539000000, 0x24},
+ {541000000, 0x25},
+ {547000000, 0x26},
+ {549000000, 0x27},
+ {551000000, 0x28},
+ {556000000, 0x29},
+ {561000000, 0x2A},
+ {563000000, 0x2B},
+ {565000000, 0x2C},
+ {569000000, 0x2D},
+ {571000000, 0x2E},
+ {577000000, 0x2F},
+ {580000000, 0x30},
+ {582000000, 0x31},
+ {584000000, 0x32},
+ {588000000, 0x33},
+ {591000000, 0x34},
+ {596000000, 0x35},
+ {598000000, 0x36},
+ {603000000, 0x37},
+ {604000000, 0x38},
+ {606000000, 0x39},
+ {612000000, 0x3A},
+ {615000000, 0x3B},
+ {617000000, 0x3C},
+ {621000000, 0x3D},
+ {622000000, 0x3E},
+ {625000000, 0x3F},
+ {632000000, 0x40},
+ {633000000, 0x41},
+ {634000000, 0x42},
+ {642000000, 0x43},
+ {643000000, 0x44},
+ {647000000, 0x45},
+ {650000000, 0x46},
+ {652000000, 0x47},
+ {657000000, 0x48},
+ {661000000, 0x49},
+ {662000000, 0x4A},
+ {665000000, 0x4B},
+ {667000000, 0x4C},
+ {670000000, 0x4D},
+ {673000000, 0x4E},
+ {676000000, 0x4F},
+ {677000000, 0x50},
+ {681000000, 0x51},
+ {683000000, 0x52},
+ {686000000, 0x53},
+ {688000000, 0x54},
+ {689000000, 0x55},
+ {691000000, 0x56},
+ {695000000, 0x57},
+ {698000000, 0x58},
+ {703000000, 0x59},
+ {704000000, 0x5A},
+ {705000000, 0x5B},
+ {707000000, 0x5C},
+ {710000000, 0x5D},
+ {712000000, 0x5E},
+ {717000000, 0x5F},
+ {718000000, 0x60},
+ {721000000, 0x61},
+ {722000000, 0x62},
+ {723000000, 0x63},
+ {725000000, 0x64},
+ {727000000, 0x65},
+ {730000000, 0x66},
+ {732000000, 0x67},
+ {735000000, 0x68},
+ {740000000, 0x69},
+ {741000000, 0x6A},
+ {742000000, 0x6B},
+ {743000000, 0x6C},
+ {745000000, 0x6D},
+ {747000000, 0x6E},
+ {748000000, 0x6F},
+ {750000000, 0x70},
+ {752000000, 0x71},
+ {754000000, 0x72},
+ {757000000, 0x73},
+ {758000000, 0x74},
+ {760000000, 0x75},
+ {763000000, 0x76},
+ {764000000, 0x77},
+ {766000000, 0x78},
+ {767000000, 0x79},
+ {768000000, 0x7A},
+ {773000000, 0x7B},
+ {774000000, 0x7C},
+ {776000000, 0x7D},
+ {777000000, 0x7E},
+ {778000000, 0x7F},
+ {779000000, 0x80},
+ {781000000, 0x81},
+ {783000000, 0x82},
+ {784000000, 0x83},
+ {785000000, 0x84},
+ {786000000, 0x85},
+ {793000000, 0x86},
+ {794000000, 0x87},
+ {795000000, 0x88},
+ {797000000, 0x89},
+ {799000000, 0x8A},
+ {801000000, 0x8B},
+ {802000000, 0x8C},
+ {803000000, 0x8D},
+ {804000000, 0x8E},
+ {810000000, 0x90},
+ {811000000, 0x91},
+ {812000000, 0x92},
+ {814000000, 0x93},
+ {816000000, 0x94},
+ {817000000, 0x96},
+ {818000000, 0x97},
+ {820000000, 0x98},
+ {821000000, 0x99},
+ {822000000, 0x9A},
+ {828000000, 0x9B},
+ {829000000, 0x9D},
+ {830000000, 0x9F},
+ {831000000, 0xA0},
+ {833000000, 0xA1},
+ {835000000, 0xA2},
+ {836000000, 0xA3},
+ {837000000, 0xA4},
+ {838000000, 0xA6},
+ {840000000, 0xA8},
+ {842000000, 0xA9},
+ {845000000, 0xAA},
+ {846000000, 0xAB},
+ {847000000, 0xAD},
+ {848000000, 0xAE},
+ {852000000, 0xAF},
+ {853000000, 0xB0},
+ {858000000, 0xB1},
+ {860000000, 0xB2},
+ {861000000, 0xB3},
+ {862000000, 0xB4},
+ {863000000, 0xB6},
+ {864000000, 0xB8},
+ {865000000, 0xB9},
+ },
+ { // RF_CAL_DC_OVER_DT_Map uRF_Max, udC_Over_dT
+ {47900000, 0x00},
+ {55000000, 0x00},
+ {61100000, 0x0A},
+ {64000000, 0x0A},
+ {82000000, 0x14},
+ {84000000, 0x19},
+ {119000000, 0x1C},
+ {124000000, 0x20},
+ {129000000, 0x2A},
+ {134000000, 0x32},
+ {139000000, 0x39},
+ {144000000, 0x3E},
+ {149000000, 0x3F},
+ {152600000, 0x40},
+ {154000000, 0x40},
+ {164700000, 0x41},
+ {203500000, 0x32},
+ {353000000, 0x19},
+ {356000000, 0x1A},
+ {359000000, 0x1B},
+ {363000000, 0x1C},
+ {366000000, 0x1D},
+ {369000000, 0x1E},
+ {373000000, 0x1F},
+ {376000000, 0x20},
+ {379000000, 0x21},
+ {383000000, 0x22},
+ {386000000, 0x23},
+ {389000000, 0x24},
+ {393000000, 0x25},
+ {396000000, 0x26},
+ {399000000, 0x27},
+ {402000000, 0x28},
+ {404000000, 0x29},
+ {407000000, 0x2A},
+ {409000000, 0x2B},
+ {412000000, 0x2C},
+ {414000000, 0x2D},
+ {417000000, 0x2E},
+ {419000000, 0x2F},
+ {422000000, 0x30},
+ {424000000, 0x31},
+ {427000000, 0x32},
+ {429000000, 0x33},
+ {432000000, 0x34},
+ {434000000, 0x35},
+ {437000000, 0x36},
+ {439000000, 0x37},
+ {442000000, 0x38},
+ {444000000, 0x39},
+ {447000000, 0x3A},
+ {449000000, 0x3B},
+ {457800000, 0x3C},
+ {465000000, 0x0F},
+ {477000000, 0x12},
+ {483000000, 0x14},
+ {502000000, 0x19},
+ {508000000, 0x1B},
+ {519000000, 0x1C},
+ {522000000, 0x1D},
+ {524000000, 0x1E},
+ {534000000, 0x1F},
+ {549000000, 0x20},
+ {554000000, 0x22},
+ {584000000, 0x24},
+ {589000000, 0x26},
+ {658000000, 0x27},
+ {664000000, 0x2C},
+ {669000000, 0x2D},
+ {699000000, 0x2E},
+ {704000000, 0x30},
+ {709000000, 0x31},
+ {714000000, 0x32},
+ {724000000, 0x33},
+ {729000000, 0x36},
+ {739000000, 0x38},
+ {744000000, 0x39},
+ {749000000, 0x3B},
+ {754000000, 0x3C},
+ {759000000, 0x3D},
+ {764000000, 0x3E},
+ {769000000, 0x3F},
+ {774000000, 0x40},
+ {779000000, 0x41},
+ {784000000, 0x43},
+ {789000000, 0x46},
+ {794000000, 0x48},
+ {799000000, 0x4B},
+ {804000000, 0x4F},
+ {809000000, 0x54},
+ {814000000, 0x59},
+ {819000000, 0x5D},
+ {824000000, 0x61},
+ {829000000, 0x68},
+ {834000000, 0x6E},
+ {839000000, 0x75},
+ {844000000, 0x7E},
+ {849000000, 0x82},
+ {854000000, 0x84},
+ {859000000, 0x8F},
+ {865000000, 0x9A},
+ },
+ { // RF_CAL_KMCO_Map uRF_Max, uK, uM, UCOAmp
+ {47900000, 0x03, 0x02, 0x03},
+ {61100000, 0x04, 0x01, 0x03},
+ {350000000, 0x03, 0x00, 0x03},
+ {720000000, 0x02, 0x01, 0x03},
+ {865000000, 0x03, 0x03, 0x03},
+ },
+ { // RF_CAL_CID_TARGET_Map uRF_Max, uCID_Target, uCount_Limit
+ {46000000, 0x04, 1800000},
+ {52200000, 0x0A, 1500000},
+ {70100000, 0x01, 4000000},
+ {136800000, 0x18, 4000000},
+ {156700000, 0x18, 4000000},
+//#endif // TMBSL_TDA1827
+ {186250000, 0x0A, 4000000},
+ {230000000, 0x0A, 4000000},
+ {345000000, 0x18, 4000000},
+ {426000000, 0x0E, 4000000},
+ {489500000, 0x1E, 4000000},
+ {697500000, 0x32, 4000000},
+ {842000000, 0x3A, 4000000},
+ },
+ { // THERMOMETER_Map uTM_D, uTM_60_92, uTM_92_122
+ {0x00, 0x28, 0x5C},
+ {0x01, 0x3E, 0x5E},
+ {0x02, 0x42, 0x62},
+ {0x03, 0x40, 0x60},
+ {0x04, 0x4A, 0x6A},
+ {0x05, 0x48, 0x68},
+ {0x06, 0x44, 0x64},
+ {0x07, 0x46, 0x66},
+ {0x08, 0x5A, 0x7A},
+ {0x09, 0x58, 0x78},
+ {0x0A, 0x54, 0x74},
+ {0x0B, 0x56, 0x76},
+ {0x0C, 0x4C, 0x6C},
+ {0x0D, 0x4E, 0x6E},
+ {0x0E, 0x52, 0x72},
+ {0x0F, 0x50, 0x70},
+ },
+ { // CAL_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33812500, 0xDD, 0xD0},
+ {36625000, 0xDC, 0xC0},
+ {39937500, 0xDB, 0xB0},
+ {43937500, 0xDA, 0xA0},
+ {48812500, 0xD9, 0x90},
+ {54937500, 0xD8, 0x80},
+ {62812500, 0xD3, 0x70},
+ {67625000, 0xCD, 0x68},
+ {73250000, 0xCC, 0x60},
+ {79875000, 0xCB, 0x58},
+ {87875000, 0xCA, 0x50},
+ {97625000, 0xC9, 0x48},
+ {109875000, 0xC8, 0x40},
+ {125625000, 0xC3, 0x38},
+ {135250000, 0xBD, 0x34},
+ {146500000, 0xBC, 0x30},
+ {159750000, 0xBB, 0x2C},
+ {175750000, 0xBA, 0x28},
+ {195250000, 0xB9, 0x24},
+ {219750000, 0xB8, 0x20},
+ {251250000, 0xB3, 0x1C},
+ {270500000, 0xAD, 0x1A},
+ {293000000, 0xAC, 0x18},
+ {319500000, 0xAB, 0x16},
+ {351500000, 0xAA, 0x14},
+ {390500000, 0xA9, 0x12},
+ {439500000, 0xA8, 0x10},
+ {502500000, 0xA3, 0x0E},
+ {541000000, 0x9D, 0x0D},
+ {586000000, 0x9C, 0x0C},
+ {639000000, 0x9B, 0x0B},
+ {703000000, 0x9A, 0x0A},
+ {781000000, 0x99, 0x09},
+ {879000000, 0x98, 0x08},
+ {1005000000,0x93, 0x07},
+ },
+ { // MAIN_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33125000, 0x5F, 0xF0},
+ {35500000, 0x5E, 0xE0},
+ {38187500, 0x5D, 0xD0},
+ {41375000, 0x5C, 0xC0},
+ {45125000, 0x5B, 0xB0},
+ {49687500, 0x5A, 0xA0},
+ {55187500, 0x59, 0x90},
+ {62125000, 0x58, 0x80},
+ {66250000, 0x4F, 0x78},
+ {71000000, 0x4E, 0x70},
+ {76375000, 0x4D, 0x68},
+ {82750000, 0x4C, 0x60},
+ {90250000, 0x4B, 0x58},
+ {99375000, 0x4A, 0x50},
+ {110375000, 0x49, 0x48},
+ {124250000, 0x48, 0x40},
+ {132500000, 0x3F, 0x3C},
+ {142000000, 0x3E, 0x38},
+ {152750000, 0x3D, 0x34},
+ {165500000, 0x3C, 0x30},
+ {180500000, 0x3B, 0x2C},
+ {198750000, 0x3A, 0x28},
+ {220750000, 0x39, 0x24},
+ {248500000, 0x38, 0x20},
+ {265000000, 0x2F, 0x1E},
+ {284000000, 0x2E, 0x1C},
+ {305500000, 0x2D, 0x1A},
+ {331000000, 0x2C, 0x18},
+ {361000000, 0x2B, 0x16},
+ {397500000, 0x2A, 0x14},
+ {441500000, 0x29, 0x12},
+ {497000000, 0x28, 0x10},
+ {530000000, 0x1F, 0x0F},
+ {568000000, 0x1E, 0x0E},
+ {611000000, 0x1D, 0x0D},
+ {662000000, 0x1C, 0x0C},
+ {722000000, 0x1B, 0x0B},
+ {795000000, 0x1A, 0x0A},
+ {883000000, 0x19, 0x09},
+ {994000000, 0x18, 0x08},
+ },
+ },
+ 0x00, // I2CMap
+ 0x00, // I2CLog
+ 0x00, // uTickEnd [end tick value]
+ },
+};
+
+//#endif // _TMBSL_ALLOC_STATIC_INSTANCE_H //--------------- \ No newline at end of file
diff --git a/api/TDA18271StaticInstance_C2_Askey.h b/api/TDA18271StaticInstance_C2_Askey.h
new file mode 100644
index 0000000..a4c90d2
--- /dev/null
+++ b/api/TDA18271StaticInstance_C2_Askey.h
@@ -0,0 +1,1668 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: allocStaticInstance.h
+//
+// DESCRIPTION: define the static Objects
+//
+// DOCUMENT REF: DVP Software Coding Guidelines v1.14
+// DVP Board Support Library Architecture Specification v0.5
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+#ifndef _TMBSL_ALLOC_STATIC_INSTANCE_H //-----------------
+#define _TMBSL_ALLOC_STATIC_INSTANCE_H
+#define FALSE 0
+#define TRUE 1
+#define Null 0
+
+//-----------------------------------------------------------------------------
+// Global data:
+//-----------------------------------------------------------------------------
+//
+//
+// default instance
+tmTDA18271Object_t_C2_Askey gTDA18271Instance_C2_Askey[] =
+{
+ {
+ {
+ NULL, /* Demodulator */
+ 0x01 /* chip */
+ },
+ 0x00, // TunerUnit
+ False, // init (instance initialization default)
+
+ 0x00, // uHwAddress (HwId default value)
+
+#ifdef NXPFE
+ nullptr, // SystemFuncd
+#else // NXPFE
+ { // SystemFunc (system functions default addresses)
+ Null,
+ Null,
+ Null,
+ Null,
+ },
+#endif // NXPFE
+ tmPowerSleepMode_C2_Askey, // default power state
+ tmDigital_TV_DVBT_8MHz_C2_Askey, // default standard mode
+ { // Config
+ CUSTOM_BOARD_DEF, // uBoard [default Configuration structure]
+ OM57XX_STANDARD_DEF, // uStandard
+ 500000000, // uRF
+ 6750000, // uIF
+ //6000000, // uBW
+ 0x00, // uTMVALUE_RFCAL
+ 0x01, // uPLMODE
+ 0x00, // uRFCAL_TCOMP
+ 0x00, // uMAPNAME
+ 0x00, // uMAPCOLUMN
+ 0x00, // uMAPROW
+ 0x00, // uPROTOCOLSTEP
+ { // IR_MEAS_Map uRF_Max, uIR_Meas
+ {200000000, 0x05},
+ {600000000, 0x06},
+ {865000000, 0x07},
+ },
+ { // IR_CAL_Map uRF, uIR_GStep
+ {72000000, 0x03},
+ {408000000, 0x03},
+ {808000000, 0x03},
+ },
+ { // BP_FILTER_Map uRF_Max, uBP_Filter
+ {62000000, 0x00},
+ {84000000, 0x01},
+ {100000000, 0x02},
+ {140000000, 0x03},
+ {170000000, 0x04},
+ {180000000, 0x05},
+ {865000000, 0x06},
+ },
+ { // RF_BAND_Map uRF_Max, uRF_Band, uRF1, uRF2, uRF3, uRF_A1, uRF_B1, uRF_A2, uRF_B2, uRF1_default, uRF2_default, uRF3_default
+ {47900000, 0x00, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 46000000, 0, 0 },
+ {61100000, 0x01, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 52200000, 0, 0 },
+ {152600000, 0x02, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 70100000, 136800000, 0 },
+ {164700000, 0x03, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 156700000, 0, 0 },
+ {203500000, 0x04, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 186250000, 0, 0 },
+ {457800000, 0x05, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 230000000, 345000000, 426000000 },
+ {865000000, 0x06, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 489500000, 697500000, 842000000 },
+ },
+ { // GAIN_TAPER_Map uRF_Max, uGain_Taper
+ {45400000, 0x1F},
+ {45800000, 0x1E},
+ {46200000, 0x1D},
+ {46700000, 0x1C},
+ {47100000, 0x1B},
+ {47500000, 0x1A},
+ {47900000, 0x19},
+ {49600000, 0x17},
+ {51200000, 0x16},
+ {52900000, 0x15},
+ {54500000, 0x14},
+ {56200000, 0x13},
+ {57800000, 0x12},
+ {59500000, 0x11},
+ {61100000, 0x10},
+ {67600000, 0x0D},
+ {74200000, 0x0C},
+ {80700000, 0x0B},
+ {87200000, 0x0A},
+ {93800000, 0x09},
+ {100300000, 0x08},
+ {106900000, 0x07},
+ {113400000, 0x06},
+ {119900000, 0x05},
+ {126500000, 0x04},
+ {133000000, 0x03},
+ {139500000, 0x02},
+ {146100000, 0x01},
+ {152600000, 0x00},
+ {154300000, 0x1F},
+ {156100000, 0x1E},
+ {157800000, 0x1D},
+ {159500000, 0x1C},
+ {161200000, 0x1B},
+ {163000000, 0x1A},
+ {164700000, 0x19},
+ {170200000, 0x17},
+ {175800000, 0x16},
+ {181300000, 0x15},
+ {186900000, 0x14},
+ {192400000, 0x13},
+ {198000000, 0x12},
+ {203500000, 0x11},
+ {216200000, 0x14},
+ {228900000, 0x13},
+ {241600000, 0x12},
+ {254400000, 0x11},
+ {267100000, 0x10},
+ {279800000, 0x0F},
+ {292500000, 0x0E},
+ {305200000, 0x0D},
+ {317900000, 0x0C},
+ {330700000, 0x0B},
+ {343400000, 0x0A},
+ {356100000, 0x09},
+ {368800000, 0x08},
+ {381500000, 0x07},
+ {394200000, 0x06},
+ {406900000, 0x05},
+ {419700000, 0x04},
+ {432400000, 0x03},
+ {445100000, 0x02},
+ {457800000, 0x01},
+ {476300000, 0x19},
+ {494800000, 0x18},
+ {513300000, 0x17},
+ {531800000, 0x16},
+ {550300000, 0x15},
+ {568900000, 0x14},
+ {587400000, 0x13},
+ {605900000, 0x12},
+ {624400000, 0x11},
+ {642900000, 0x10},
+ {661400000, 0x0F},
+ {679900000, 0x0E},
+ {698400000, 0x0D},
+ {716900000, 0x0C},
+ {735400000, 0x0B},
+ {753900000, 0x0A},
+ {772500000, 0x09},
+ {791000000, 0x08},
+ {809500000, 0x07},
+ {828000000, 0x06},
+ {846500000, 0x05},
+ {865000000, 0x04},
+ },
+ { // RF_CAL_Map uRF_Max, uRFC_Cprog
+ {41000000, 0x0F},
+ {43000000, 0x1C},
+ {45000000, 0x2F},
+ {46000000, 0x39},
+ {47000000, 0x40},
+ {47900000, 0x50},
+ {49100000, 0x16},
+ {50000000, 0x18},
+ {51000000, 0x20},
+ {53000000, 0x28},
+ {55000000, 0x2B},
+ {56000000, 0x32},
+ {57000000, 0x35},
+ {58000000, 0x3E},
+ {59000000, 0x43},
+ {60000000, 0x4E},
+ {61100000, 0x55},
+ {63000000, 0x0F},
+ {64000000, 0x11},
+ {65000000, 0x12},
+ {66000000, 0x15},
+ {67000000, 0x16},
+ {68000000, 0x17},
+ {70000000, 0x19},
+ {71000000, 0x1C},
+ {72000000, 0x1D},
+ {73000000, 0x1F},
+ {74000000, 0x20},
+ {75000000, 0x21},
+ {76000000, 0x24},
+ {77000000, 0x25},
+ {78000000, 0x27},
+ {80000000, 0x28},
+ {81000000, 0x29},
+ {82000000, 0x2D},
+ {83000000, 0x2E},
+ {84000000, 0x2F},
+ {85000000, 0x31},
+ {86000000, 0x33},
+ {87000000, 0x34},
+ {88000000, 0x35},
+ {89000000, 0x37},
+ {90000000, 0x38},
+ {91000000, 0x39},
+ {93000000, 0x3C},
+ {94000000, 0x3E},
+ {95000000, 0x3F},
+ {96000000, 0x40},
+ {97000000, 0x42},
+ {99000000, 0x45},
+ {100000000, 0x46},
+ {102000000, 0x48},
+ {103000000, 0x4A},
+ {105000000, 0x4D},
+ {106000000, 0x4E},
+ {107000000, 0x50},
+ {108000000, 0x51},
+ {110000000, 0x54},
+ {111000000, 0x56},
+ {112000000, 0x57},
+ {113000000, 0x58},
+ {114000000, 0x59},
+ {115000000, 0x5C},
+ {116000000, 0x5D},
+ {117000000, 0x5F},
+ {119000000, 0x60},
+ {120000000, 0x64},
+ {121000000, 0x65},
+ {122000000, 0x66},
+ {123000000, 0x68},
+ {124000000, 0x69},
+ {125000000, 0x6C},
+ {126000000, 0x6D},
+ {127000000, 0x6E},
+ {128000000, 0x70},
+ {129000000, 0x71},
+ {130000000, 0x75},
+ {131000000, 0x77},
+ {132000000, 0x78},
+ {133000000, 0x7B},
+ {134000000, 0x7E},
+ {135000000, 0x81},
+ {136000000, 0x82},
+ {137000000, 0x87},
+ {138000000, 0x88},
+ {139000000, 0x8D},
+ {140000000, 0x8E},
+ {141000000, 0x91},
+ {142000000, 0x95},
+ {143000000, 0x9A},
+ {144000000, 0x9D},
+ {145000000, 0xA1},
+ {146000000, 0xA2},
+ {147000000, 0xA4},
+ {148000000, 0xA9},
+ {149000000, 0xAE},
+ {150000000, 0xB0},
+ {151000000, 0xB1},
+ {152000000, 0xB7},
+ {152600000, 0xBD},
+ {154000000, 0x20},
+ {155000000, 0x22},
+ {156000000, 0x24},
+ {157000000, 0x25},
+ {158000000, 0x27},
+ {159000000, 0x29},
+ {160000000, 0x2C},
+ {161000000, 0x2D},
+ {163000000, 0x2E},
+ {164000000, 0x2F},
+ {164700000, 0x30},
+ {166000000, 0x11},
+ {167000000, 0x12},
+ {168000000, 0x13},
+ {169000000, 0x14},
+ {170000000, 0x15},
+ {172000000, 0x16},
+ {173000000, 0x17},
+ {174000000, 0x18},
+ {175000000, 0x1A},
+ {176000000, 0x1B},
+ {178000000, 0x1D},
+ {179000000, 0x1E},
+ {180000000, 0x1F},
+ {181000000, 0x20},
+ {182000000, 0x21},
+ {183000000, 0x22},
+ {184000000, 0x24},
+ {185000000, 0x25},
+ {186000000, 0x26},
+ {187000000, 0x27},
+ {188000000, 0x29},
+ {189000000, 0x2A},
+ {190000000, 0x2C},
+ {191000000, 0x2D},
+ {192000000, 0x2E},
+ {193000000, 0x2F},
+ {194000000, 0x30},
+ {195000000, 0x33},
+ {196000000, 0x35},
+ {198000000, 0x36},
+ {200000000, 0x38},
+ {201000000, 0x3C},
+ {202000000, 0x3D},
+ {203500000, 0x3E},
+ {206000000, 0x0E},
+ {208000000, 0x0F},
+ {212000000, 0x10},
+ {216000000, 0x11},
+ {217000000, 0x12},
+ {218000000, 0x13},
+ {220000000, 0x14},
+ {222000000, 0x15},
+ {225000000, 0x16},
+ {228000000, 0x17},
+ {231000000, 0x18},
+ {234000000, 0x19},
+ {235000000, 0x1A},
+ {236000000, 0x1B},
+ {237000000, 0x1C},
+ {240000000, 0x1D},
+ {242000000, 0x1E},
+ {244000000, 0x1F},
+ {247000000, 0x20},
+ {249000000, 0x21},
+ {252000000, 0x22},
+ {253000000, 0x23},
+ {254000000, 0x24},
+ {256000000, 0x25},
+ {259000000, 0x26},
+ {262000000, 0x27},
+ {264000000, 0x28},
+ {267000000, 0x29},
+ {269000000, 0x2A},
+ {271000000, 0x2B},
+ {273000000, 0x2C},
+ {275000000, 0x2D},
+ {277000000, 0x2E},
+ {279000000, 0x2F},
+ {282000000, 0x30},
+ {284000000, 0x31},
+ {286000000, 0x32},
+ {287000000, 0x33},
+ {290000000, 0x34},
+ {293000000, 0x35},
+ {295000000, 0x36},
+ {297000000, 0x37},
+ {300000000, 0x38},
+ {303000000, 0x39},
+ {305000000, 0x3A},
+ {306000000, 0x3B},
+ {307000000, 0x3C},
+ {310000000, 0x3D},
+ {312000000, 0x3E},
+ {315000000, 0x3F},
+ {318000000, 0x40},
+ {320000000, 0x41},
+ {323000000, 0x42},
+ {324000000, 0x43},
+ {325000000, 0x44},
+ {327000000, 0x45},
+ {331000000, 0x46},
+ {334000000, 0x47},
+ {337000000, 0x48},
+ {339000000, 0x49},
+ {340000000, 0x4A},
+ {341000000, 0x4B},
+ {343000000, 0x4C},
+ {345000000, 0x4D},
+ {349000000, 0x4E},
+ {352000000, 0x4F},
+ {353000000, 0x50},
+ {355000000, 0x51},
+ {357000000, 0x52},
+ {359000000, 0x53},
+ {361000000, 0x54},
+ {362000000, 0x55},
+ {364000000, 0x56},
+ {368000000, 0x57},
+ {370000000, 0x58},
+ {372000000, 0x59},
+ {375000000, 0x5A},
+ {376000000, 0x5B},
+ {377000000, 0x5C},
+ {379000000, 0x5D},
+ {382000000, 0x5E},
+ {384000000, 0x5F},
+ {385000000, 0x60},
+ {386000000, 0x61},
+ {388000000, 0x62},
+ {390000000, 0x63},
+ {393000000, 0x64},
+ {394000000, 0x65},
+ {396000000, 0x66},
+ {397000000, 0x67},
+ {398000000, 0x68},
+ {400000000, 0x69},
+ {402000000, 0x6A},
+ {403000000, 0x6B},
+ {407000000, 0x6C},
+ {408000000, 0x6D},
+ {409000000, 0x6E},
+ {410000000, 0x6F},
+ {411000000, 0x70},
+ {412000000, 0x71},
+ {413000000, 0x72},
+ {414000000, 0x73},
+ {417000000, 0x74},
+ {418000000, 0x75},
+ {420000000, 0x76},
+ {422000000, 0x77},
+ {423000000, 0x78},
+ {424000000, 0x79},
+ {427000000, 0x7A},
+ {428000000, 0x7B},
+ {429000000, 0x7D},
+ {432000000, 0x7F},
+ {434000000, 0x80},
+ {435000000, 0x81},
+ {436000000, 0x83},
+ {437000000, 0x84},
+ {438000000, 0x85},
+ {439000000, 0x86},
+ {440000000, 0x87},
+ {441000000, 0x88},
+ {442000000, 0x89},
+ {445000000, 0x8A},
+ {446000000, 0x8B},
+ {447000000, 0x8C},
+ {448000000, 0x8E},
+ {449000000, 0x8F},
+ {450000000, 0x90},
+ {452000000, 0x91},
+ {453000000, 0x93},
+ {454000000, 0x94},
+ {456000000, 0x96},
+ {457800000, 0x98},
+ {461000000, 0x11},
+ {468000000, 0x12},
+ {472000000, 0x13},
+ {473000000, 0x14},
+ {474000000, 0x15},
+ {481000000, 0x16},
+ {486000000, 0x17},
+ {491000000, 0x18},
+ {498000000, 0x19},
+ {499000000, 0x1A},
+ {501000000, 0x1B},
+ {506000000, 0x1C},
+ {511000000, 0x1D},
+ {516000000, 0x1E},
+ {520000000, 0x1F},
+ {521000000, 0x20},
+ {525000000, 0x21},
+ {529000000, 0x22},
+ {533000000, 0x23},
+ {539000000, 0x24},
+ {541000000, 0x25},
+ {547000000, 0x26},
+ {549000000, 0x27},
+ {551000000, 0x28},
+ {556000000, 0x29},
+ {561000000, 0x2A},
+ {563000000, 0x2B},
+ {565000000, 0x2C},
+ {569000000, 0x2D},
+ {571000000, 0x2E},
+ {577000000, 0x2F},
+ {580000000, 0x30},
+ {582000000, 0x31},
+ {584000000, 0x32},
+ {588000000, 0x33},
+ {591000000, 0x34},
+ {596000000, 0x35},
+ {598000000, 0x36},
+ {603000000, 0x37},
+ {604000000, 0x38},
+ {606000000, 0x39},
+ {612000000, 0x3A},
+ {615000000, 0x3B},
+ {617000000, 0x3C},
+ {621000000, 0x3D},
+ {622000000, 0x3E},
+ {625000000, 0x3F},
+ {632000000, 0x40},
+ {633000000, 0x41},
+ {634000000, 0x42},
+ {642000000, 0x43},
+ {643000000, 0x44},
+ {647000000, 0x45},
+ {650000000, 0x46},
+ {652000000, 0x47},
+ {657000000, 0x48},
+ {661000000, 0x49},
+ {662000000, 0x4A},
+ {665000000, 0x4B},
+ {667000000, 0x4C},
+ {670000000, 0x4D},
+ {673000000, 0x4E},
+ {676000000, 0x4F},
+ {677000000, 0x50},
+ {681000000, 0x51},
+ {683000000, 0x52},
+ {686000000, 0x53},
+ {688000000, 0x54},
+ {689000000, 0x55},
+ {691000000, 0x56},
+ {695000000, 0x57},
+ {698000000, 0x58},
+ {703000000, 0x59},
+ {704000000, 0x5A},
+ {705000000, 0x5B},
+ {707000000, 0x5C},
+ {710000000, 0x5D},
+ {712000000, 0x5E},
+ {717000000, 0x5F},
+ {718000000, 0x60},
+ {721000000, 0x61},
+ {722000000, 0x62},
+ {723000000, 0x63},
+ {725000000, 0x64},
+ {727000000, 0x65},
+ {730000000, 0x66},
+ {732000000, 0x67},
+ {735000000, 0x68},
+ {740000000, 0x69},
+ {741000000, 0x6A},
+ {742000000, 0x6B},
+ {743000000, 0x6C},
+ {745000000, 0x6D},
+ {747000000, 0x6E},
+ {748000000, 0x6F},
+ {750000000, 0x70},
+ {752000000, 0x71},
+ {754000000, 0x72},
+ {757000000, 0x73},
+ {758000000, 0x74},
+ {760000000, 0x75},
+ {763000000, 0x76},
+ {764000000, 0x77},
+ {766000000, 0x78},
+ {767000000, 0x79},
+ {768000000, 0x7A},
+ {773000000, 0x7B},
+ {774000000, 0x7C},
+ {776000000, 0x7D},
+ {777000000, 0x7E},
+ {778000000, 0x7F},
+ {779000000, 0x80},
+ {781000000, 0x81},
+ {783000000, 0x82},
+ {784000000, 0x83},
+ {785000000, 0x84},
+ {786000000, 0x85},
+ {793000000, 0x86},
+ {794000000, 0x87},
+ {795000000, 0x88},
+ {797000000, 0x89},
+ {799000000, 0x8A},
+ {801000000, 0x8B},
+ {802000000, 0x8C},
+ {803000000, 0x8D},
+ {804000000, 0x8E},
+ {810000000, 0x90},
+ {811000000, 0x91},
+ {812000000, 0x92},
+ {814000000, 0x93},
+ {816000000, 0x94},
+ {817000000, 0x96},
+ {818000000, 0x97},
+ {820000000, 0x98},
+ {821000000, 0x99},
+ {822000000, 0x9A},
+ {828000000, 0x9B},
+ {829000000, 0x9D},
+ {830000000, 0x9F},
+ {831000000, 0xA0},
+ {833000000, 0xA1},
+ {835000000, 0xA2},
+ {836000000, 0xA3},
+ {837000000, 0xA4},
+ {838000000, 0xA6},
+ {840000000, 0xA8},
+ {842000000, 0xA9},
+ {845000000, 0xAA},
+ {846000000, 0xAB},
+ {847000000, 0xAD},
+ {848000000, 0xAE},
+ {852000000, 0xAF},
+ {853000000, 0xB0},
+ {858000000, 0xB1},
+ {860000000, 0xB2},
+ {861000000, 0xB3},
+ {862000000, 0xB4},
+ {863000000, 0xB6},
+ {864000000, 0xB8},
+ {865000000, 0xB9},
+ },
+ { // RF_CAL_DC_OVER_DT_Map uRF_Max, udC_Over_dT
+ {47900000, 0x00},
+ {55000000, 0x00},
+ {61100000, 0x0A},
+ {64000000, 0x0A},
+ {82000000, 0x14},
+ {84000000, 0x19},
+ {119000000, 0x1C},
+ {124000000, 0x20},
+ {129000000, 0x2A},
+ {134000000, 0x32},
+ {139000000, 0x39},
+ {144000000, 0x3E},
+ {149000000, 0x3F},
+ {152600000, 0x40},
+ {154000000, 0x40},
+ {164700000, 0x41},
+ {203500000, 0x32},
+ {353000000, 0x19},
+ {356000000, 0x1A},
+ {359000000, 0x1B},
+ {363000000, 0x1C},
+ {366000000, 0x1D},
+ {369000000, 0x1E},
+ {373000000, 0x1F},
+ {376000000, 0x20},
+ {379000000, 0x21},
+ {383000000, 0x22},
+ {386000000, 0x23},
+ {389000000, 0x24},
+ {393000000, 0x25},
+ {396000000, 0x26},
+ {399000000, 0x27},
+ {402000000, 0x28},
+ {404000000, 0x29},
+ {407000000, 0x2A},
+ {409000000, 0x2B},
+ {412000000, 0x2C},
+ {414000000, 0x2D},
+ {417000000, 0x2E},
+ {419000000, 0x2F},
+ {422000000, 0x30},
+ {424000000, 0x31},
+ {427000000, 0x32},
+ {429000000, 0x33},
+ {432000000, 0x34},
+ {434000000, 0x35},
+ {437000000, 0x36},
+ {439000000, 0x37},
+ {442000000, 0x38},
+ {444000000, 0x39},
+ {447000000, 0x3A},
+ {449000000, 0x3B},
+ {457800000, 0x3C},
+ {465000000, 0x0F},
+ {477000000, 0x12},
+ {483000000, 0x14},
+ {502000000, 0x19},
+ {508000000, 0x1B},
+ {519000000, 0x1C},
+ {522000000, 0x1D},
+ {524000000, 0x1E},
+ {534000000, 0x1F},
+ {549000000, 0x20},
+ {554000000, 0x22},
+ {584000000, 0x24},
+ {589000000, 0x26},
+ {658000000, 0x27},
+ {664000000, 0x2C},
+ {669000000, 0x2D},
+ {699000000, 0x2E},
+ {704000000, 0x30},
+ {709000000, 0x31},
+ {714000000, 0x32},
+ {724000000, 0x33},
+ {729000000, 0x36},
+ {739000000, 0x38},
+ {744000000, 0x39},
+ {749000000, 0x3B},
+ {754000000, 0x3C},
+ {759000000, 0x3D},
+ {764000000, 0x3E},
+ {769000000, 0x3F},
+ {774000000, 0x40},
+ {779000000, 0x41},
+ {784000000, 0x43},
+ {789000000, 0x46},
+ {794000000, 0x48},
+ {799000000, 0x4B},
+ {804000000, 0x4F},
+ {809000000, 0x54},
+ {814000000, 0x59},
+ {819000000, 0x5D},
+ {824000000, 0x61},
+ {829000000, 0x68},
+ {834000000, 0x6E},
+ {839000000, 0x75},
+ {844000000, 0x7E},
+ {849000000, 0x82},
+ {854000000, 0x84},
+ {859000000, 0x8F},
+ {865000000, 0x9A},
+ },
+ { // RF_CAL_KMCO_Map uRF_Max, uK, uM, UCOAmp
+ {47900000, 0x03, 0x02, 0x03},
+ {61100000, 0x04, 0x01, 0x03},
+ {350000000, 0x03, 0x00, 0x03},
+ {720000000, 0x02, 0x01, 0x03},
+ {865000000, 0x03, 0x03, 0x03},
+ },
+ { // RF_CAL_CID_TARGET_Map uRF_Max, uCID_Target, uCount_Limit
+ {46000000, 0x04, 1800000},
+ {52200000, 0x0A, 1500000},
+ {70100000, 0x01, 4000000},
+ {136800000, 0x18, 4000000},
+ {156700000, 0x18, 4000000},
+ {186250000, 0x0A, 4000000},
+ {230000000, 0x0A, 4000000},
+ {345000000, 0x18, 4000000},
+ {426000000, 0x0E, 4000000},
+ {489500000, 0x1E, 4000000},
+ {697500000, 0x32, 4000000},
+ {842000000, 0x3A, 4000000},
+ },
+ { // THERMOMETER_Map uTM_D, uTM_60_92, uTM_92_122
+ {0x00, 0x28, 0x5C},
+ {0x01, 0x3E, 0x5E},
+ {0x02, 0x42, 0x62},
+ {0x03, 0x40, 0x60},
+ {0x04, 0x4A, 0x6A},
+ {0x05, 0x48, 0x68},
+ {0x06, 0x44, 0x64},
+ {0x07, 0x46, 0x66},
+ {0x08, 0x5A, 0x7A},
+ {0x09, 0x58, 0x78},
+ {0x0A, 0x54, 0x74},
+ {0x0B, 0x56, 0x76},
+ {0x0C, 0x4C, 0x6C},
+ {0x0D, 0x4E, 0x6E},
+ {0x0E, 0x52, 0x72},
+ {0x0F, 0x50, 0x70},
+ },
+ { // CAL_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33812500, 0xDD, 0xD0},
+ {36625000, 0xDC, 0xC0},
+ {39937500, 0xDB, 0xB0},
+ {43937500, 0xDA, 0xA0},
+ {48812500, 0xD9, 0x90},
+ {54937500, 0xD8, 0x80},
+ {62812500, 0xD3, 0x70},
+ {67625000, 0xCD, 0x68},
+ {73250000, 0xCC, 0x60},
+ {79875000, 0xCB, 0x58},
+ {87875000, 0xCA, 0x50},
+ {97625000, 0xC9, 0x48},
+ {109875000, 0xC8, 0x40},
+ {125625000, 0xC3, 0x38},
+ {135250000, 0xBD, 0x34},
+ {146500000, 0xBC, 0x30},
+ {159750000, 0xBB, 0x2C},
+ {175750000, 0xBA, 0x28},
+ {195250000, 0xB9, 0x24},
+ {219750000, 0xB8, 0x20},
+ {251250000, 0xB3, 0x1C},
+ {270500000, 0xAD, 0x1A},
+ {293000000, 0xAC, 0x18},
+ {319500000, 0xAB, 0x16},
+ {351500000, 0xAA, 0x14},
+ {390500000, 0xA9, 0x12},
+ {439500000, 0xA8, 0x10},
+ {502500000, 0xA3, 0x0E},
+ {541000000, 0x9D, 0x0D},
+ {586000000, 0x9C, 0x0C},
+ {639000000, 0x9B, 0x0B},
+ {703000000, 0x9A, 0x0A},
+ {781000000, 0x99, 0x09},
+ {879000000, 0x98, 0x08},
+ {1005000000,0x93, 0x07},
+ },
+ { // MAIN_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33125000, 0x5F, 0xF0},
+ {35500000, 0x5E, 0xE0},
+ {38187500, 0x5D, 0xD0},
+ {41375000, 0x5C, 0xC0},
+ {45125000, 0x5B, 0xB0},
+ {49687500, 0x5A, 0xA0},
+ {55187500, 0x59, 0x90},
+ {62125000, 0x58, 0x80},
+ {66250000, 0x4F, 0x78},
+ {71000000, 0x4E, 0x70},
+ {76375000, 0x4D, 0x68},
+ {82750000, 0x4C, 0x60},
+ {90250000, 0x4B, 0x58},
+ {99375000, 0x4A, 0x50},
+ {110375000, 0x49, 0x48},
+ {124250000, 0x48, 0x40},
+ {132500000, 0x3F, 0x3C},
+ {142000000, 0x3E, 0x38},
+ {152750000, 0x3D, 0x34},
+ {165500000, 0x3C, 0x30},
+ {180500000, 0x3B, 0x2C},
+ {198750000, 0x3A, 0x28},
+ {220750000, 0x39, 0x24},
+ {248500000, 0x38, 0x20},
+ {265000000, 0x2F, 0x1E},
+ {284000000, 0x2E, 0x1C},
+ {305500000, 0x2D, 0x1A},
+ {331000000, 0x2C, 0x18},
+ {361000000, 0x2B, 0x16},
+ {397500000, 0x2A, 0x14},
+ {441500000, 0x29, 0x12},
+ {497000000, 0x28, 0x10},
+ {530000000, 0x1F, 0x0F},
+ {568000000, 0x1E, 0x0E},
+ {611000000, 0x1D, 0x0D},
+ {662000000, 0x1C, 0x0C},
+ {722000000, 0x1B, 0x0B},
+ {795000000, 0x1A, 0x0A},
+ {883000000, 0x19, 0x09},
+ {994000000, 0x18, 0x08},
+ },
+ },
+ 0x00, // I2CMap
+ 0x00, // I2CLog
+ 0x00, // uTickEnd [end tick value]
+ },
+ {
+ {
+ NULL, /* Demodulator */
+ 0x01 /* chip */
+ },
+ 0x01, // TunerUnit
+ False, // init (instance initialization default)
+
+ 0x00, // uHwAddress (HwId default value)
+
+#ifdef NXPFE
+ nullptr, // SystemFuncd
+#else // NXPFE
+ { // SystemFunc (system functions default addresses)
+ Null,
+ Null,
+ Null,
+ Null,
+ },
+#endif // NXPFE
+ tmPowerSleepMode_C2_Askey, // default power state
+ tmDigital_TV_DVBT_8MHz_C2_Askey, // default standard mode
+ { // Config
+ CUSTOM_BOARD_DEF, // uBoard [default Configuration structure]
+ OM57XX_STANDARD_DEF, // uStandard
+ 500000000, // uRF
+ 6750000, // uIF
+ //6000000, // uBW
+ 0x00, // uTMVALUE_RFCAL
+ 0x01, // uPLMODE
+ 0x00, // uRFCAL_TCOMP
+ 0x00, // uMAPNAME
+ 0x00, // uMAPCOLUMN
+ 0x00, // uMAPROW
+ 0x00, // uPROTOCOLSTEP
+ { // IR_MEAS_Map uRF_Max, uIR_Meas
+ {200000000, 0x05},
+ {600000000, 0x06},
+ {865000000, 0x07},
+ },
+ { // IR_CAL_Map uRF, uIR_GStep
+ {72000000, 0x03},
+ {408000000, 0x03},
+ {808000000, 0x03},
+ },
+ { // BP_FILTER_Map uRF_Max, uBP_Filter
+ {62000000, 0x00},
+ {84000000, 0x01},
+ {100000000, 0x02},
+ {140000000, 0x03},
+ {170000000, 0x04},
+ {180000000, 0x05},
+ {865000000, 0x06},
+ },
+ { // RF_BAND_Map uRF_Max, uRF_Band, uRF1, uRF2, uRF3, uRF_A1, uRF_B1, uRF_A2, uRF_B2, uRF1_default, uRF2_default, uRF3_default
+ {47900000, 0x00, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 46000000, 0, 0 },
+ {61100000, 0x01, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 52200000, 0, 0 },
+ {152600000, 0x02, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 70100000, 136800000, 0 },
+ {164700000, 0x03, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 156700000, 0, 0 },
+ {203500000, 0x04, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 186250000, 0, 0 },
+ {457800000, 0x05, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 230000000, 345000000, 426000000 },
+ {865000000, 0x06, 0, 0, 0, 0x00, 0x00, 0x00, 0x00, 489500000, 697500000, 842000000 },
+ },
+ { // GAIN_TAPER_Map uRF_Max, uGain_Taper
+ {45400000, 0x1F},
+ {45800000, 0x1E},
+ {46200000, 0x1D},
+ {46700000, 0x1C},
+ {47100000, 0x1B},
+ {47500000, 0x1A},
+ {47900000, 0x19},
+ {49600000, 0x17},
+ {51200000, 0x16},
+ {52900000, 0x15},
+ {54500000, 0x14},
+ {56200000, 0x13},
+ {57800000, 0x12},
+ {59500000, 0x11},
+ {61100000, 0x10},
+ {67600000, 0x0D},
+ {74200000, 0x0C},
+ {80700000, 0x0B},
+ {87200000, 0x0A},
+ {93800000, 0x09},
+ {100300000, 0x08},
+ {106900000, 0x07},
+ {113400000, 0x06},
+ {119900000, 0x05},
+ {126500000, 0x04},
+ {133000000, 0x03},
+ {139500000, 0x02},
+ {146100000, 0x01},
+ {152600000, 0x00},
+ {154300000, 0x1F},
+ {156100000, 0x1E},
+ {157800000, 0x1D},
+ {159500000, 0x1C},
+ {161200000, 0x1B},
+ {163000000, 0x1A},
+ {164700000, 0x19},
+ {170200000, 0x17},
+ {175800000, 0x16},
+ {181300000, 0x15},
+ {186900000, 0x14},
+ {192400000, 0x13},
+ {198000000, 0x12},
+ {203500000, 0x11},
+ {216200000, 0x14},
+ {228900000, 0x13},
+ {241600000, 0x12},
+ {254400000, 0x11},
+ {267100000, 0x10},
+ {279800000, 0x0F},
+ {292500000, 0x0E},
+ {305200000, 0x0D},
+ {317900000, 0x0C},
+ {330700000, 0x0B},
+ {343400000, 0x0A},
+ {356100000, 0x09},
+ {368800000, 0x08},
+ {381500000, 0x07},
+ {394200000, 0x06},
+ {406900000, 0x05},
+ {419700000, 0x04},
+ {432400000, 0x03},
+ {445100000, 0x02},
+ {457800000, 0x01},
+ {476300000, 0x19},
+ {494800000, 0x18},
+ {513300000, 0x17},
+ {531800000, 0x16},
+ {550300000, 0x15},
+ {568900000, 0x14},
+ {587400000, 0x13},
+ {605900000, 0x12},
+ {624400000, 0x11},
+ {642900000, 0x10},
+ {661400000, 0x0F},
+ {679900000, 0x0E},
+ {698400000, 0x0D},
+ {716900000, 0x0C},
+ {735400000, 0x0B},
+ {753900000, 0x0A},
+ {772500000, 0x09},
+ {791000000, 0x08},
+ {809500000, 0x07},
+ {828000000, 0x06},
+ {846500000, 0x05},
+ {865000000, 0x04},
+ },
+ { // RF_CAL_Map uRF_Max, uRFC_Cprog
+ {41000000, 0x0F},
+ {43000000, 0x1C},
+ {45000000, 0x2F},
+ {46000000, 0x39},
+ {47000000, 0x40},
+ {47900000, 0x50},
+ {49100000, 0x16},
+ {50000000, 0x18},
+ {51000000, 0x20},
+ {53000000, 0x28},
+ {55000000, 0x2B},
+ {56000000, 0x32},
+ {57000000, 0x35},
+ {58000000, 0x3E},
+ {59000000, 0x43},
+ {60000000, 0x4E},
+ {61100000, 0x55},
+ {63000000, 0x0F},
+ {64000000, 0x11},
+ {65000000, 0x12},
+ {66000000, 0x15},
+ {67000000, 0x16},
+ {68000000, 0x17},
+ {70000000, 0x19},
+ {71000000, 0x1C},
+ {72000000, 0x1D},
+ {73000000, 0x1F},
+ {74000000, 0x20},
+ {75000000, 0x21},
+ {76000000, 0x24},
+ {77000000, 0x25},
+ {78000000, 0x27},
+ {80000000, 0x28},
+ {81000000, 0x29},
+ {82000000, 0x2D},
+ {83000000, 0x2E},
+ {84000000, 0x2F},
+ {85000000, 0x31},
+ {86000000, 0x33},
+ {87000000, 0x34},
+ {88000000, 0x35},
+ {89000000, 0x37},
+ {90000000, 0x38},
+ {91000000, 0x39},
+ {93000000, 0x3C},
+ {94000000, 0x3E},
+ {95000000, 0x3F},
+ {96000000, 0x40},
+ {97000000, 0x42},
+ {99000000, 0x45},
+ {100000000, 0x46},
+ {102000000, 0x48},
+ {103000000, 0x4A},
+ {105000000, 0x4D},
+ {106000000, 0x4E},
+ {107000000, 0x50},
+ {108000000, 0x51},
+ {110000000, 0x54},
+ {111000000, 0x56},
+ {112000000, 0x57},
+ {113000000, 0x58},
+ {114000000, 0x59},
+ {115000000, 0x5C},
+ {116000000, 0x5D},
+ {117000000, 0x5F},
+ {119000000, 0x60},
+ {120000000, 0x64},
+ {121000000, 0x65},
+ {122000000, 0x66},
+ {123000000, 0x68},
+ {124000000, 0x69},
+ {125000000, 0x6C},
+ {126000000, 0x6D},
+ {127000000, 0x6E},
+ {128000000, 0x70},
+ {129000000, 0x71},
+ {130000000, 0x75},
+ {131000000, 0x77},
+ {132000000, 0x78},
+ {133000000, 0x7B},
+ {134000000, 0x7E},
+ {135000000, 0x81},
+ {136000000, 0x82},
+ {137000000, 0x87},
+ {138000000, 0x88},
+ {139000000, 0x8D},
+ {140000000, 0x8E},
+ {141000000, 0x91},
+ {142000000, 0x95},
+ {143000000, 0x9A},
+ {144000000, 0x9D},
+ {145000000, 0xA1},
+ {146000000, 0xA2},
+ {147000000, 0xA4},
+ {148000000, 0xA9},
+ {149000000, 0xAE},
+ {150000000, 0xB0},
+ {151000000, 0xB1},
+ {152000000, 0xB7},
+ {152600000, 0xBD},
+ {154000000, 0x20},
+ {155000000, 0x22},
+ {156000000, 0x24},
+ {157000000, 0x25},
+ {158000000, 0x27},
+ {159000000, 0x29},
+ {160000000, 0x2C},
+ {161000000, 0x2D},
+ {163000000, 0x2E},
+ {164000000, 0x2F},
+ {164700000, 0x30},
+ {166000000, 0x11},
+ {167000000, 0x12},
+ {168000000, 0x13},
+ {169000000, 0x14},
+ {170000000, 0x15},
+ {172000000, 0x16},
+ {173000000, 0x17},
+ {174000000, 0x18},
+ {175000000, 0x1A},
+ {176000000, 0x1B},
+ {178000000, 0x1D},
+ {179000000, 0x1E},
+ {180000000, 0x1F},
+ {181000000, 0x20},
+ {182000000, 0x21},
+ {183000000, 0x22},
+ {184000000, 0x24},
+ {185000000, 0x25},
+ {186000000, 0x26},
+ {187000000, 0x27},
+ {188000000, 0x29},
+ {189000000, 0x2A},
+ {190000000, 0x2C},
+ {191000000, 0x2D},
+ {192000000, 0x2E},
+ {193000000, 0x2F},
+ {194000000, 0x30},
+ {195000000, 0x33},
+ {196000000, 0x35},
+ {198000000, 0x36},
+ {200000000, 0x38},
+ {201000000, 0x3C},
+ {202000000, 0x3D},
+ {203500000, 0x3E},
+ {206000000, 0x0E},
+ {208000000, 0x0F},
+ {212000000, 0x10},
+ {216000000, 0x11},
+ {217000000, 0x12},
+ {218000000, 0x13},
+ {220000000, 0x14},
+ {222000000, 0x15},
+ {225000000, 0x16},
+ {228000000, 0x17},
+ {231000000, 0x18},
+ {234000000, 0x19},
+ {235000000, 0x1A},
+ {236000000, 0x1B},
+ {237000000, 0x1C},
+ {240000000, 0x1D},
+ {242000000, 0x1E},
+ {244000000, 0x1F},
+ {247000000, 0x20},
+ {249000000, 0x21},
+ {252000000, 0x22},
+ {253000000, 0x23},
+ {254000000, 0x24},
+ {256000000, 0x25},
+ {259000000, 0x26},
+ {262000000, 0x27},
+ {264000000, 0x28},
+ {267000000, 0x29},
+ {269000000, 0x2A},
+ {271000000, 0x2B},
+ {273000000, 0x2C},
+ {275000000, 0x2D},
+ {277000000, 0x2E},
+ {279000000, 0x2F},
+ {282000000, 0x30},
+ {284000000, 0x31},
+ {286000000, 0x32},
+ {287000000, 0x33},
+ {290000000, 0x34},
+ {293000000, 0x35},
+ {295000000, 0x36},
+ {297000000, 0x37},
+ {300000000, 0x38},
+ {303000000, 0x39},
+ {305000000, 0x3A},
+ {306000000, 0x3B},
+ {307000000, 0x3C},
+ {310000000, 0x3D},
+ {312000000, 0x3E},
+ {315000000, 0x3F},
+ {318000000, 0x40},
+ {320000000, 0x41},
+ {323000000, 0x42},
+ {324000000, 0x43},
+ {325000000, 0x44},
+ {327000000, 0x45},
+ {331000000, 0x46},
+ {334000000, 0x47},
+ {337000000, 0x48},
+ {339000000, 0x49},
+ {340000000, 0x4A},
+ {341000000, 0x4B},
+ {343000000, 0x4C},
+ {345000000, 0x4D},
+ {349000000, 0x4E},
+ {352000000, 0x4F},
+ {353000000, 0x50},
+ {355000000, 0x51},
+ {357000000, 0x52},
+ {359000000, 0x53},
+ {361000000, 0x54},
+ {362000000, 0x55},
+ {364000000, 0x56},
+ {368000000, 0x57},
+ {370000000, 0x58},
+ {372000000, 0x59},
+ {375000000, 0x5A},
+ {376000000, 0x5B},
+ {377000000, 0x5C},
+ {379000000, 0x5D},
+ {382000000, 0x5E},
+ {384000000, 0x5F},
+ {385000000, 0x60},
+ {386000000, 0x61},
+ {388000000, 0x62},
+ {390000000, 0x63},
+ {393000000, 0x64},
+ {394000000, 0x65},
+ {396000000, 0x66},
+ {397000000, 0x67},
+ {398000000, 0x68},
+ {400000000, 0x69},
+ {402000000, 0x6A},
+ {403000000, 0x6B},
+ {407000000, 0x6C},
+ {408000000, 0x6D},
+ {409000000, 0x6E},
+ {410000000, 0x6F},
+ {411000000, 0x70},
+ {412000000, 0x71},
+ {413000000, 0x72},
+ {414000000, 0x73},
+ {417000000, 0x74},
+ {418000000, 0x75},
+ {420000000, 0x76},
+ {422000000, 0x77},
+ {423000000, 0x78},
+ {424000000, 0x79},
+ {427000000, 0x7A},
+ {428000000, 0x7B},
+ {429000000, 0x7D},
+ {432000000, 0x7F},
+ {434000000, 0x80},
+ {435000000, 0x81},
+ {436000000, 0x83},
+ {437000000, 0x84},
+ {438000000, 0x85},
+ {439000000, 0x86},
+ {440000000, 0x87},
+ {441000000, 0x88},
+ {442000000, 0x89},
+ {445000000, 0x8A},
+ {446000000, 0x8B},
+ {447000000, 0x8C},
+ {448000000, 0x8E},
+ {449000000, 0x8F},
+ {450000000, 0x90},
+ {452000000, 0x91},
+ {453000000, 0x93},
+ {454000000, 0x94},
+ {456000000, 0x96},
+ {457800000, 0x98},
+ {461000000, 0x11},
+ {468000000, 0x12},
+ {472000000, 0x13},
+ {473000000, 0x14},
+ {474000000, 0x15},
+ {481000000, 0x16},
+ {486000000, 0x17},
+ {491000000, 0x18},
+ {498000000, 0x19},
+ {499000000, 0x1A},
+ {501000000, 0x1B},
+ {506000000, 0x1C},
+ {511000000, 0x1D},
+ {516000000, 0x1E},
+ {520000000, 0x1F},
+ {521000000, 0x20},
+ {525000000, 0x21},
+ {529000000, 0x22},
+ {533000000, 0x23},
+ {539000000, 0x24},
+ {541000000, 0x25},
+ {547000000, 0x26},
+ {549000000, 0x27},
+ {551000000, 0x28},
+ {556000000, 0x29},
+ {561000000, 0x2A},
+ {563000000, 0x2B},
+ {565000000, 0x2C},
+ {569000000, 0x2D},
+ {571000000, 0x2E},
+ {577000000, 0x2F},
+ {580000000, 0x30},
+ {582000000, 0x31},
+ {584000000, 0x32},
+ {588000000, 0x33},
+ {591000000, 0x34},
+ {596000000, 0x35},
+ {598000000, 0x36},
+ {603000000, 0x37},
+ {604000000, 0x38},
+ {606000000, 0x39},
+ {612000000, 0x3A},
+ {615000000, 0x3B},
+ {617000000, 0x3C},
+ {621000000, 0x3D},
+ {622000000, 0x3E},
+ {625000000, 0x3F},
+ {632000000, 0x40},
+ {633000000, 0x41},
+ {634000000, 0x42},
+ {642000000, 0x43},
+ {643000000, 0x44},
+ {647000000, 0x45},
+ {650000000, 0x46},
+ {652000000, 0x47},
+ {657000000, 0x48},
+ {661000000, 0x49},
+ {662000000, 0x4A},
+ {665000000, 0x4B},
+ {667000000, 0x4C},
+ {670000000, 0x4D},
+ {673000000, 0x4E},
+ {676000000, 0x4F},
+ {677000000, 0x50},
+ {681000000, 0x51},
+ {683000000, 0x52},
+ {686000000, 0x53},
+ {688000000, 0x54},
+ {689000000, 0x55},
+ {691000000, 0x56},
+ {695000000, 0x57},
+ {698000000, 0x58},
+ {703000000, 0x59},
+ {704000000, 0x5A},
+ {705000000, 0x5B},
+ {707000000, 0x5C},
+ {710000000, 0x5D},
+ {712000000, 0x5E},
+ {717000000, 0x5F},
+ {718000000, 0x60},
+ {721000000, 0x61},
+ {722000000, 0x62},
+ {723000000, 0x63},
+ {725000000, 0x64},
+ {727000000, 0x65},
+ {730000000, 0x66},
+ {732000000, 0x67},
+ {735000000, 0x68},
+ {740000000, 0x69},
+ {741000000, 0x6A},
+ {742000000, 0x6B},
+ {743000000, 0x6C},
+ {745000000, 0x6D},
+ {747000000, 0x6E},
+ {748000000, 0x6F},
+ {750000000, 0x70},
+ {752000000, 0x71},
+ {754000000, 0x72},
+ {757000000, 0x73},
+ {758000000, 0x74},
+ {760000000, 0x75},
+ {763000000, 0x76},
+ {764000000, 0x77},
+ {766000000, 0x78},
+ {767000000, 0x79},
+ {768000000, 0x7A},
+ {773000000, 0x7B},
+ {774000000, 0x7C},
+ {776000000, 0x7D},
+ {777000000, 0x7E},
+ {778000000, 0x7F},
+ {779000000, 0x80},
+ {781000000, 0x81},
+ {783000000, 0x82},
+ {784000000, 0x83},
+ {785000000, 0x84},
+ {786000000, 0x85},
+ {793000000, 0x86},
+ {794000000, 0x87},
+ {795000000, 0x88},
+ {797000000, 0x89},
+ {799000000, 0x8A},
+ {801000000, 0x8B},
+ {802000000, 0x8C},
+ {803000000, 0x8D},
+ {804000000, 0x8E},
+ {810000000, 0x90},
+ {811000000, 0x91},
+ {812000000, 0x92},
+ {814000000, 0x93},
+ {816000000, 0x94},
+ {817000000, 0x96},
+ {818000000, 0x97},
+ {820000000, 0x98},
+ {821000000, 0x99},
+ {822000000, 0x9A},
+ {828000000, 0x9B},
+ {829000000, 0x9D},
+ {830000000, 0x9F},
+ {831000000, 0xA0},
+ {833000000, 0xA1},
+ {835000000, 0xA2},
+ {836000000, 0xA3},
+ {837000000, 0xA4},
+ {838000000, 0xA6},
+ {840000000, 0xA8},
+ {842000000, 0xA9},
+ {845000000, 0xAA},
+ {846000000, 0xAB},
+ {847000000, 0xAD},
+ {848000000, 0xAE},
+ {852000000, 0xAF},
+ {853000000, 0xB0},
+ {858000000, 0xB1},
+ {860000000, 0xB2},
+ {861000000, 0xB3},
+ {862000000, 0xB4},
+ {863000000, 0xB6},
+ {864000000, 0xB8},
+ {865000000, 0xB9},
+ },
+ { // RF_CAL_DC_OVER_DT_Map uRF_Max, udC_Over_dT
+ {47900000, 0x00},
+ {55000000, 0x00},
+ {61100000, 0x0A},
+ {64000000, 0x0A},
+ {82000000, 0x14},
+ {84000000, 0x19},
+ {119000000, 0x1C},
+ {124000000, 0x20},
+ {129000000, 0x2A},
+ {134000000, 0x32},
+ {139000000, 0x39},
+ {144000000, 0x3E},
+ {149000000, 0x3F},
+ {152600000, 0x40},
+ {154000000, 0x40},
+ {164700000, 0x41},
+ {203500000, 0x32},
+ {353000000, 0x19},
+ {356000000, 0x1A},
+ {359000000, 0x1B},
+ {363000000, 0x1C},
+ {366000000, 0x1D},
+ {369000000, 0x1E},
+ {373000000, 0x1F},
+ {376000000, 0x20},
+ {379000000, 0x21},
+ {383000000, 0x22},
+ {386000000, 0x23},
+ {389000000, 0x24},
+ {393000000, 0x25},
+ {396000000, 0x26},
+ {399000000, 0x27},
+ {402000000, 0x28},
+ {404000000, 0x29},
+ {407000000, 0x2A},
+ {409000000, 0x2B},
+ {412000000, 0x2C},
+ {414000000, 0x2D},
+ {417000000, 0x2E},
+ {419000000, 0x2F},
+ {422000000, 0x30},
+ {424000000, 0x31},
+ {427000000, 0x32},
+ {429000000, 0x33},
+ {432000000, 0x34},
+ {434000000, 0x35},
+ {437000000, 0x36},
+ {439000000, 0x37},
+ {442000000, 0x38},
+ {444000000, 0x39},
+ {447000000, 0x3A},
+ {449000000, 0x3B},
+ {457800000, 0x3C},
+ {465000000, 0x0F},
+ {477000000, 0x12},
+ {483000000, 0x14},
+ {502000000, 0x19},
+ {508000000, 0x1B},
+ {519000000, 0x1C},
+ {522000000, 0x1D},
+ {524000000, 0x1E},
+ {534000000, 0x1F},
+ {549000000, 0x20},
+ {554000000, 0x22},
+ {584000000, 0x24},
+ {589000000, 0x26},
+ {658000000, 0x27},
+ {664000000, 0x2C},
+ {669000000, 0x2D},
+ {699000000, 0x2E},
+ {704000000, 0x30},
+ {709000000, 0x31},
+ {714000000, 0x32},
+ {724000000, 0x33},
+ {729000000, 0x36},
+ {739000000, 0x38},
+ {744000000, 0x39},
+ {749000000, 0x3B},
+ {754000000, 0x3C},
+ {759000000, 0x3D},
+ {764000000, 0x3E},
+ {769000000, 0x3F},
+ {774000000, 0x40},
+ {779000000, 0x41},
+ {784000000, 0x43},
+ {789000000, 0x46},
+ {794000000, 0x48},
+ {799000000, 0x4B},
+ {804000000, 0x4F},
+ {809000000, 0x54},
+ {814000000, 0x59},
+ {819000000, 0x5D},
+ {824000000, 0x61},
+ {829000000, 0x68},
+ {834000000, 0x6E},
+ {839000000, 0x75},
+ {844000000, 0x7E},
+ {849000000, 0x82},
+ {854000000, 0x84},
+ {859000000, 0x8F},
+ {865000000, 0x9A},
+ },
+ { // RF_CAL_KMCO_Map uRF_Max, uK, uM, UCOAmp
+ {47900000, 0x03, 0x02, 0x03},
+ {61100000, 0x04, 0x01, 0x03},
+ {350000000, 0x03, 0x00, 0x03},
+ {720000000, 0x02, 0x01, 0x03},
+ {865000000, 0x03, 0x03, 0x03},
+ },
+ { // RF_CAL_CID_TARGET_Map uRF_Max, uCID_Target, uCount_Limit
+ {46000000, 0x04, 1800000},
+ {52200000, 0x0A, 1500000},
+ {70100000, 0x01, 4000000},
+ {136800000, 0x18, 4000000},
+ {156700000, 0x18, 4000000},
+ {186250000, 0x0A, 4000000},
+ {230000000, 0x0A, 4000000},
+ {345000000, 0x18, 4000000},
+ {426000000, 0x0E, 4000000},
+ {489500000, 0x1E, 4000000},
+ {697500000, 0x32, 4000000},
+ {842000000, 0x3A, 4000000},
+ },
+ { // THERMOMETER_Map uTM_D, uTM_60_92, uTM_92_122
+ {0x00, 0x28, 0x5C},
+ {0x01, 0x3E, 0x5E},
+ {0x02, 0x42, 0x62},
+ {0x03, 0x40, 0x60},
+ {0x04, 0x4A, 0x6A},
+ {0x05, 0x48, 0x68},
+ {0x06, 0x44, 0x64},
+ {0x07, 0x46, 0x66},
+ {0x08, 0x5A, 0x7A},
+ {0x09, 0x58, 0x78},
+ {0x0A, 0x54, 0x74},
+ {0x0B, 0x56, 0x76},
+ {0x0C, 0x4C, 0x6C},
+ {0x0D, 0x4E, 0x6E},
+ {0x0E, 0x52, 0x72},
+ {0x0F, 0x50, 0x70},
+ },
+ { // CAL_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33812500, 0xDD, 0xD0},
+ {36625000, 0xDC, 0xC0},
+ {39937500, 0xDB, 0xB0},
+ {43937500, 0xDA, 0xA0},
+ {48812500, 0xD9, 0x90},
+ {54937500, 0xD8, 0x80},
+ {62812500, 0xD3, 0x70},
+ {67625000, 0xCD, 0x68},
+ {73250000, 0xCC, 0x60},
+ {79875000, 0xCB, 0x58},
+ {87875000, 0xCA, 0x50},
+ {97625000, 0xC9, 0x48},
+ {109875000, 0xC8, 0x40},
+ {125625000, 0xC3, 0x38},
+ {135250000, 0xBD, 0x34},
+ {146500000, 0xBC, 0x30},
+ {159750000, 0xBB, 0x2C},
+ {175750000, 0xBA, 0x28},
+ {195250000, 0xB9, 0x24},
+ {219750000, 0xB8, 0x20},
+ {251250000, 0xB3, 0x1C},
+ {270500000, 0xAD, 0x1A},
+ {293000000, 0xAC, 0x18},
+ {319500000, 0xAB, 0x16},
+ {351500000, 0xAA, 0x14},
+ {390500000, 0xA9, 0x12},
+ {439500000, 0xA8, 0x10},
+ {502500000, 0xA3, 0x0E},
+ {541000000, 0x9D, 0x0D},
+ {586000000, 0x9C, 0x0C},
+ {639000000, 0x9B, 0x0B},
+ {703000000, 0x9A, 0x0A},
+ {781000000, 0x99, 0x09},
+ {879000000, 0x98, 0x08},
+ {1005000000,0x93, 0x07},
+ },
+ { // MAIN_PLL_Map uLO_Max, uPost_Div, uDiv
+ {33125000, 0x5F, 0xF0},
+ {35500000, 0x5E, 0xE0},
+ {38187500, 0x5D, 0xD0},
+ {41375000, 0x5C, 0xC0},
+ {45125000, 0x5B, 0xB0},
+ {49687500, 0x5A, 0xA0},
+ {55187500, 0x59, 0x90},
+ {62125000, 0x58, 0x80},
+ {66250000, 0x4F, 0x78},
+ {71000000, 0x4E, 0x70},
+ {76375000, 0x4D, 0x68},
+ {82750000, 0x4C, 0x60},
+ {90250000, 0x4B, 0x58},
+ {99375000, 0x4A, 0x50},
+ {110375000, 0x49, 0x48},
+ {124250000, 0x48, 0x40},
+ {132500000, 0x3F, 0x3C},
+ {142000000, 0x3E, 0x38},
+ {152750000, 0x3D, 0x34},
+ {165500000, 0x3C, 0x30},
+ {180500000, 0x3B, 0x2C},
+ {198750000, 0x3A, 0x28},
+ {220750000, 0x39, 0x24},
+ {248500000, 0x38, 0x20},
+ {265000000, 0x2F, 0x1E},
+ {284000000, 0x2E, 0x1C},
+ {305500000, 0x2D, 0x1A},
+ {331000000, 0x2C, 0x18},
+ {361000000, 0x2B, 0x16},
+ {397500000, 0x2A, 0x14},
+ {441500000, 0x29, 0x12},
+ {497000000, 0x28, 0x10},
+ {530000000, 0x1F, 0x0F},
+ {568000000, 0x1E, 0x0E},
+ {611000000, 0x1D, 0x0D},
+ {662000000, 0x1C, 0x0C},
+ {722000000, 0x1B, 0x0B},
+ {795000000, 0x1A, 0x0A},
+ {883000000, 0x19, 0x09},
+ {994000000, 0x18, 0x08},
+ },
+ },
+ 0x00, // I2CMap
+ 0x00, // I2CLog
+ 0x00, // uTickEnd [end tick value]
+ },
+};
+
+#endif // _TMBSL_ALLOC_STATIC_INSTANCE_H //--------------- \ No newline at end of file
diff --git a/api/TDA18271_C2.c b/api/TDA18271_C2.c
new file mode 100644
index 0000000..d493ff8
--- /dev/null
+++ b/api/TDA18271_C2.c
@@ -0,0 +1,3599 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271_C2.c
+//
+// DESCRIPTION: Function for the Hybrid silicon tuner TDA18271
+//
+// DOCUMENT REF:
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+#include "TDA18271local_C2.h"
+#include "TDA18271_C2.h"
+#include "TDA18271StaticInstance_C2.h"
+#include "standard.h"
+
+//-----------------------------------------------------------------------------
+// Types and defines:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Global data:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Internal Prototypes:
+//-----------------------------------------------------------------------------
+//
+Bool_ SY_Write_C2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t_C2 pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ uBuffer[i] = (UInt8)pDataBuff[i];
+ }
+
+ pObj = &gTDA18271Instance_C2[0];
+
+ dwError = Standard_writeTunerRegisters (pObj->AFAInfo_C2.demodulator, pObj->AFAInfo_C2.chip,
+ (unsigned short)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0) RetStatus = True;
+
+ return (RetStatus);
+};
+
+Bool_ SY_Read_C2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t_C2 pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ pObj = &gTDA18271Instance_C2[0];
+
+ dwError = Standard_readTunerRegisters (pObj->AFAInfo_C2.demodulator, pObj->AFAInfo_C2.chip, (UInt16)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0)
+ {
+ RetStatus = True;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ pDataBuff[i] = (UInt32)uBuffer[i];
+ }
+ }
+
+ return (RetStatus);
+};
+
+
+Bool_ SY_Write_Slave_C2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t_C2 pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ uBuffer[i] = (UInt8)pDataBuff[i];
+ }
+
+ pObj = &gTDA18271Instance_C2[1];
+
+ dwError = Standard_writeTunerRegisters (pObj->AFAInfo_C2.demodulator, pObj->AFAInfo_C2.chip,
+ (unsigned short)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0) RetStatus = True;
+
+ return (RetStatus);
+};
+
+Bool_ SY_Read_Slave_C2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t_C2 pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ pObj = &gTDA18271Instance_C2[1];
+
+ dwError = Standard_readTunerRegisters (pObj->AFAInfo_C2.demodulator, pObj->AFAInfo_C2.chip, (UInt16)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0)
+ {
+ RetStatus = True;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ pDataBuff[i] = (UInt32)uBuffer[i];
+ }
+ }
+
+ return (RetStatus);
+};
+//-----------------------------------------------------------------------------
+// Exported functions:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Init:
+//
+// DESCRIPTION: create an instance of a TDA18271_C2 Tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Init_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmbslTuParam_t_C2 Param // I: setup parameters
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ //----------------------
+ // initialize the Object
+ //----------------------
+ // pObj initialization
+ getInstance_C2(TunerUnit, &pObj);
+
+ // return if already initialized
+ if (pObj != Null && pObj->init == True)
+ return TM_OK;
+
+ //----------------
+ // init the Object
+ //----------------
+ // initialize the Object
+// if (pObj == Null)
+// {
+ ret = allocInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK || pObj == Null)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // initialize the Object by default values
+ pObj->SystemFunc = Param.systemFunc;
+ pObj->uHwAddress = Param.uHwAddress;
+ pObj->init = True;
+// }
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271DeInit:
+//
+// DESCRIPTION: destroy an instance of a TDA18271 Tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271DeInit_C2
+(
+ tmUnitSelect_t TunerUnit // I: Tuner unit number
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ //----------------------
+ // De-initialize the Object
+ //----------------------
+ // pObj initialization
+ getInstance_C2(TunerUnit, &pObj);
+
+ // return if already initialized
+ if (pObj == Null || pObj->init == False)
+ return TM_OK;
+
+ //----------------
+ // Deinit the Object
+ //----------------
+ // initialize the Object
+ if (pObj != Null)
+ {
+ pObj->init = False;
+ ret = deAllocInstance_C2(TunerUnit);
+ }
+
+ return ret;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetSWVersion:
+//
+// DESCRIPTION: Return the version of this device
+//
+// RETURN: TM_OK
+//
+// NOTES: Values defined in the tmTDA18271Local.h file
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetSWVersion_C2
+(
+ ptmSWVersion_t_C2 pSWVersion // I: Receives SW Version
+ )
+{
+ pSWVersion->compatibilityNr = TDA18271_BSL_COMP_NUM_C2;
+ pSWVersion->majorVersionNr = TDA18271_BSL_MAJOR_VER_C2;
+ pSWVersion->minorVersionNr = TDA18271_BSL_MINOR_VER_C2;
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetPowerState_C2:
+//
+// DESCRIPTION: Set the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetPowerState_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271PowerState_t_C2 powerState_C2 // I: Power state of this device
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // set power state
+ return TDA18271SetPowerState_C2(pObj, powerState_C2);
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271SetPowerState_C2:
+//
+// DESCRIPTION: Set the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271SetPowerState_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ tmTDA18271PowerState_t_C2 powerState // I: Power state of this device
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ switch (powerState)
+ {
+ case tmPowerNormalMode_C2:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ break;
+
+ case tmPowerSleepMode_C2:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x01;
+ break;
+
+ case tmPowerStandbyWith16MHz_C2:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ break;
+
+ case tmPowerStandbyWith16MHzAndLoopThrough_C2:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ break;
+
+ case tmPowerStandbyWithLoopThrough_C2:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x01;
+ break;
+
+ default:
+ // power state not supported
+ return TM_ERR_NOT_SUPPORTED_C2;
+ }
+
+ // store powerstate
+ pObj->curPowerState = powerState;
+
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetPowerState_C2:
+//
+// DESCRIPTION: Get the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetPowerState_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271PowerState_t_C2 *pPowerState_C2 // O: Power state of this device
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // get power state
+ return TDA18271GetPowerState_C2(pObj, pPowerState_C2);
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271GetPowerState_C2:
+//
+// DESCRIPTION: Get the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271GetPowerState_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ tmTDA18271PowerState_t_C2 *pPowerState// I: Power state of this device
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ //----------------------
+ // get the value
+ //----------------------
+ if ((pObj->I2CMap.uBx05.bF.SM == 0x00) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x00) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x00))
+ *pPowerState = tmPowerNormalMode_C2;
+ else if ((pObj->I2CMap.uBx05.bF.SM == 0x01) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x01) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x01))
+ *pPowerState = tmPowerSleepMode_C2;
+ else if ((pObj->I2CMap.uBx05.bF.SM == 0x01) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x01) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x00))
+ *pPowerState = tmPowerStandbyWith16MHz_C2;
+ else if ((pObj->I2CMap.uBx05.bF.SM == 0x01) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x00) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x00))
+ *pPowerState = tmPowerStandbyWith16MHzAndLoopThrough_C2;
+ else if ((pObj->I2CMap.uBx05.bF.SM == 0x01) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x00) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x01))
+ *pPowerState = tmPowerStandbyWithLoopThrough_C2;
+ else
+ *pPowerState = tmPowerNotSupported_C2;
+
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetStandardMode_C2:
+//
+// DESCRIPTION: Set the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetStandardMode_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271StandardMode_t_C2 StandardMode // I: Standard mode of this device
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // set standard mode
+ return TDA18271SetStandardMode_C2(pObj, StandardMode);
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271SetStandardMode_C2:
+//
+// DESCRIPTION: Set the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271SetStandardMode_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ tmTDA18271StandardMode_t_C2 StandardMode// I: Standard mode of this device
+ )
+{
+ Bool_ customIF = FALSE;
+ Bool_ customLPFc = FALSE;
+ UInt8 stdValue = 0;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // set custom IF flag
+ if (((pObj->Config.uPROTOCOLSTEP & 0x02) >> 1) == 0x01)
+ customIF = TRUE;
+
+ // set custom LPFc flag
+ if (((pObj->Config.uPROTOCOLSTEP & 0x01) >> 0) == 0x01)
+ customLPFc = TRUE;
+
+ // set uIF & Std
+ switch (StandardMode)
+ {
+ case tmDigital_TV_ATSC_6MHz_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 3250000;
+ // set Std bit
+ stdValue = 0x1C;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_DVBT_7MHz_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 3500000;
+ // set Std bit
+ stdValue = 0x1C;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_DVBT_8MHz_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 4000000;
+ // set Std bit
+ stdValue = 0x1D;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_MN_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 5400000;
+ // set Std bit
+ stdValue = 0x0C;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_B_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 6000000;
+ // set Std bit
+ stdValue = 0x0D;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_GH_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 7100000;
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_I_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 7250000;
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_DK_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 6900000;
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_L_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 6900000;
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_LL_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 1250000;
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_FM_Radio_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 1250000;
+ // set Std bit
+ stdValue = 0x18;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x01;
+ break;
+
+ case tmDigital_CAL_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 1250000;
+ // set Std bit
+ stdValue = 0x18;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x01;
+ break;
+
+ case tmDigital_TV_QAM_6MHz_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 4000000;
+ // set Std bit
+ stdValue = 0x1D;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_QAM_8MHz_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 5000000;
+ // set Std bit
+ stdValue = 0x1F;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_ISDBT_6MHz_C2:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 4063000;
+ // set Std bit
+ stdValue = 0x1D;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+ }
+
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+
+ // set IF_Level & IF_notch & RFAGC_Top & IFAGC_Top
+ switch (StandardMode)
+ {
+ case tmDigital_TV_ATSC_6MHz_C2:
+ case tmDigital_TV_DVBT_7MHz_C2:
+ case tmDigital_TV_DVBT_8MHz_C2:
+ case tmDigital_TV_QAM_6MHz_C2:
+ case tmDigital_TV_QAM_8MHz_C2:
+ case tmDigital_TV_ISDBT_6MHz_C2:
+ // set IF_Level
+ pObj->I2CMap.uBx06.bF.IF_Level = 0x01;
+ // set IF_notch
+ pObj->I2CMap.uBx0C.bF.IF_notch = 0x01;
+ // set RFAGC_Top & IFAGC_Top
+ pObj->I2CMap.uBx25.EXTENDED_BYTE_22 = 0x37;
+ break;
+
+ case tmAnalog_TV_MN_C2:
+ case tmAnalog_TV_B_C2:
+ case tmAnalog_TV_GH_C2:
+ case tmAnalog_TV_I_C2:
+ case tmAnalog_TV_DK_C2:
+ case tmAnalog_TV_L_C2:
+ case tmAnalog_TV_LL_C2:
+ case tmAnalog_FM_Radio_C2:
+ case tmDigital_CAL_C2:
+ // set IF_Level
+ pObj->I2CMap.uBx06.bF.IF_Level = 0x00;
+ // set IF_notch
+ pObj->I2CMap.uBx0C.bF.IF_notch = 0x00;
+ // set RFAGC_Top & IFAGC_Top
+ pObj->I2CMap.uBx25.EXTENDED_BYTE_22 = 0x2C;
+ break;
+
+ default:
+ // standard mode not supported
+ return TM_ERR_NOT_SUPPORTED_C2;
+ }
+
+ // store standard mode
+ pObj->StandardMode = StandardMode;
+
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetStandardMode_C2:
+//
+// DESCRIPTION: Get the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetStandardMode_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271StandardMode_t_C2 *pStandardMode // O: Standard mode of this device
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // get standard mode
+ return TDA18271GetStandardMode_C2(pObj, pStandardMode);
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetStandardMode_C2:
+//
+// DESCRIPTION: Get the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271GetStandardMode_C2
+(
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ tmTDA18271StandardMode_t_C2 *pStandardMode // O: Standard mode of this device
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER_C2;
+
+ //----------------------
+ // get the value
+ //----------------------
+ *pStandardMode = pObj->StandardMode;
+
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Write_C2:
+//
+// DESCRIPTION: Write in the Tuner.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES: uIndex: IN parameter containing the HW Sub Address as specified in
+// the datasheet (i.e. looks like 0xX0)
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Write_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to write
+ UInt32 uNbBytes, // I: Number of bytes to write
+ UInt32* puBytes // I: Pointer on an array of bytes
+ )
+{
+
+ UInt32 uCounter;
+ UInt8* pI2CMap;
+
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // test the parameters. uIndex is: 0x0X
+ if ((uIndex + uNbBytes) > TDA18271_NB_BYTES_C2)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER_C2;
+
+ // pI2CMap initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + uIndex;
+
+ //--------------
+ // set the value
+ //--------------
+ // save the values written in the Tuner
+ for (uCounter = 0; uCounter < uNbBytes; uCounter++)
+ {
+ *pI2CMap = (UInt8)(puBytes[uCounter]);
+ pI2CMap ++;
+ }
+
+ // write in the Tuner
+ if (TDA18271Write_C2(pObj,(UInt8)(uIndex),(UInt8)(uNbBytes)) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271WriteBit_C2:
+//
+// DESCRIPTION: Write in the Tuner.
+//
+// RETURN: TM_ERR_NOT_SUPPORTED
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271WriteBit_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to write
+ UInt32 uBitMask, // I: bit mask
+ UInt32 uBitValue // I: bit value
+ )
+{
+ return TM_ERR_NOT_SUPPORTED_C2;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Read_C2:
+//
+// DESCRIPTION: Read in the Tuner.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Read_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to read
+ UInt32 uNbBytes, // I: Number of bytes to read
+ UInt32* puBytes // I: Pointer on an array of bytes
+ )
+{
+ UInt32 uCounter;
+ UInt8* pI2CMap;
+
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // test the parameters
+ if (uNbBytes > TDA18271_NB_BYTES_C2)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER_C2;
+
+ // test uIndex
+ if (uIndex == -1)
+ uIndex = 0;
+
+ // pI2CMap initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + uIndex;
+
+ //--------------
+ // get the value
+ //--------------
+ // read from the Tuner
+ if (TDA18271Read_C2(pObj,(UInt8)(uIndex),(UInt8)(uNbBytes)) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // copy readen values to puBytes
+ for (uCounter = 0; uCounter < uNbBytes; uCounter++)
+ {
+ *puBytes = (UInt32)(*pI2CMap);
+ pI2CMap ++;
+ puBytes ++;
+ }
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetConfig_C2:
+//
+// DESCRIPTION: Set the Config of the TDA18271_C2
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_ERR_NOT_SUPPORTED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetConfig_C2
+(
+ tmUnitSelect_t TunerUnit, // I: TunerUnit number
+ UInt32 uItemId, // I: Identifier of the item to modify
+ UInt32 uValue // I: Value to set for the Config item
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ UInt8* pI2CMap;
+ UInt32* pDataMap;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ //--------------
+ // set the value
+ //--------------
+ switch((tmTDA18271cfgIndex_t_C2)uItemId)
+ {
+ case BOARD_C2:
+ switch (uValue & 0xffff0000)
+ {
+ case OM5776_BOARD_DEF:
+ case OM5780_BOARD_DEF:
+ case OM5782_BOARD_DEF:
+ case OM5764_BOARD_DEF:
+ /*pObj->Config.uXTOUT = 1;
+ pObj->I2CMap.XTout_ON = 1;*/
+ break;
+ case OM5770C2_BOARD_DEF & 0xffff0000:
+ case OM5775_BOARD_DEF:
+ case OM5777_BOARD_DEF:
+ case CUSTOM_BOARD_DEF:
+ // do nothing more than setting the default values
+ break;
+ default:
+ // board not supported
+ return TM_ERR_NOT_SUPPORTED_C2;
+ }
+ // store board
+ gTDA18271Instance_C2[TunerUnit].Config.uBoard = uValue;
+ break;
+
+ case FEINIT_C2:
+ if(TDA18271Init_C2(TunerUnit) == TMBSL_ERR_IIC_ERR_C2)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case RF_C2:
+ // set RF_C2 frequency
+ pObj->Config.uRF = uValue;
+ break;
+
+ case IF_C2:
+ // set IF_C2 frequency
+ pObj->Config.uIF = uValue;
+ break;
+
+ case PLMODE_C2:
+ // set uPLMODE_C2
+ pObj->Config.uPLMODE = uValue;
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case PLRUN_C2:
+ // switch AGC2_C2 power detector on
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x00;
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // switch power level indicator on
+ pObj->Config.uPLMODE = 0x00;
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 20 ms for charge pump source
+ if (TDA18271Wait_C2(pObj,20) == False)
+ return TM_FALSE;
+
+ // read bytes 0x00 to 0x0F
+ if (TDA18271Read_C2 (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // switch power level indicator off
+ pObj->Config.uPLMODE = 0x01;
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // switch AGC2 power detector off
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x01;
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ break;
+
+ case POWERSTATE_C2:
+ // set POWERSTATE
+ TDA18271SetPowerState_C2 (pObj, (tmTDA18271PowerState_t_C2)uValue);
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case STANDARDMODE_C2:
+ // set STANDARDMODE_C2
+ TDA18271SetStandardMode_C2 (pObj, (tmTDA18271StandardMode_t_C2)uValue);
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+ // write bytes EASY_PROG_BYTE_3 & EASY_PROG_BYTE_4
+ if (TDA18271Write_C2(pObj,0x05,2) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ // write MAIN_POST_DIV_BYTE
+ if (TDA18271Write_C2(pObj,0x0C,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ // write byte EXTENDED_BYTE_22
+ if (TDA18271Write_C2(pObj,0x25,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case LPFC_C2:
+ // set LP_Fc_C2
+ pObj->I2CMap.uBx05.bF.Std = (pObj->I2CMap.uBx05.bF.Std & 0xFC) | ((UInt8)uValue & 0x03);
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case XTOUT_C2:
+ // set XTout_ON_C2
+ pObj->I2CMap.uBx06.bF.XTout_ON = (UInt8)(uValue) >> 1;
+ // set Xtout_400mV
+ pObj->I2CMap.uBx06.bF.Xtout_400mV = (UInt8)(uValue) & 0x01;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write_C2(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case IFLEVEL_C2:
+ // set IF_Level_C2
+ pObj->I2CMap.uBx06.bF.IF_Level = (UInt8)uValue;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write_C2(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case EXTENDEDREG_C2:
+ // set Extended_Reg_C2
+ pObj->I2CMap.uBx07.bF.Extended_Reg = (UInt8)uValue;
+ // write byte EASY_PROG_BYTE_5
+ if (TDA18271Write_C2(pObj,0x07,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case MAPNAME_C2:
+ // set map name
+ pObj->Config.uMAPNAME = uValue;
+ break;
+
+ case MAPCOLUMN_C2:
+ // set map x
+ pObj->Config.uMAPCOLUMN = uValue;
+ break;
+
+ case MAPROW_C2:
+ // set map y
+ pObj->Config.uMAPROW = uValue;
+ break;
+
+ case MAPVALUE_C2:
+ // set pointer on wanted cell
+ switch (pObj->Config.uMAPNAME)
+ {
+ case tmTDA18271_IR_MEAS_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_MEAS_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_IR_MEAS_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.IR_MEAS_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_IR_CAL_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_CAL_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_IR_CAL_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.IR_CAL_Map[pObj->Config.uMAPROW].uRF);
+ break;
+
+ case tmTDA18271_BP_FILTER_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_BP_FILTER_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_BP_FILTER_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.BP_FILTER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_BAND_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_BAND_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_BAND_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_BAND_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_GAIN_TAPER_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_GAIN_TAPER_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_GAIN_TAPER_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.GAIN_TAPER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_DC_OVER_DT_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_DC_OVER_DT_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_DC_OVER_DT_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_KMCO_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_KMCO_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_KMCO_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_KMCO_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_CID_TARGET_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_CID_TARGET_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_CID_TARGET_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_THERMOMETER_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_THERMOMETER_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_THERMOMETER_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.THERMOMETER_Map[pObj->Config.uMAPROW].uTM_D);
+ break;
+
+ case tmTDA18271_CAL_PLL_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_CAL_PLL_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_CAL_PLL_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.CAL_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_MAIN_PLL_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_MAIN_PLL_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_MAIN_PLL_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.MAIN_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_I2C_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > 0) || (pObj->Config.uMAPROW > TDA18271_NB_BYTES_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pI2CMap initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + pObj->Config.uMAPROW;
+ break;
+ }
+
+ // set cell value
+ if (pObj->Config.uMAPNAME == tmTDA18271_I2C_Map_C2)
+ *(pI2CMap + (UInt8)pObj->Config.uMAPCOLUMN) = (UInt8)uValue;
+ else
+ *(pDataMap + pObj->Config.uMAPCOLUMN) = uValue;
+ break;
+
+ case PROTOCOLSTEP_C2:
+ // set channel configuration protocol steps to execute
+ pObj->Config.uPROTOCOLSTEP = uValue;
+ break;
+
+ case READINIT_C2:
+ // read bytes 0x00 to 0x26
+ if (TDA18271Read_C2 (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ if (uValue == 1)
+ {
+ // initialize device
+ if(TDA18271Init_C2(TunerUnit) == TMBSL_ERR_IIC_ERR_C2)
+ return TMBSL_ERR_IIC_ERR_C2;
+ }
+ break;
+ }
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetConfig_C2:
+//
+// DESCRIPTION: Get the Config of the TDA18271_C2
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetConfig_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uItemId, // I: Identifier of the item to get value
+ UInt32* puValue // I: Address of the variable to output the Config item value
+ )
+{
+ UInt32 uCounter = 0;
+
+ ptmTDA18271Object_t_C2 pObj = Null;
+ UInt8* pI2CMap;
+ UInt32* pDataMap;
+ UInt32 uByte=0;
+ tmErrorCode_t ret = TM_OK;
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ //--------------
+ // get the value
+ //--------------
+ switch((tmTDA18271cfgIndex_t_C2)uItemId)
+ {
+ case BOARD_C2:
+ // get board
+ *puValue = pObj->Config.uBoard;
+ break;
+
+ case RF_C2:
+ // get RF_C2 frequency
+ *puValue = pObj->Config.uRF;
+ break;
+
+ case IF_C2:
+ // get IF frequency
+ *puValue = pObj->Config.uIF;
+ break;
+
+ case STATUSBYTE_C2:
+ // read bytes 0x00 to 0x26
+ if (TDA18271Read_C2 (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case GETNBOFUNIT_C2:
+ *puValue = TDA18271_MAX_UNITS_C2;
+ break;
+
+ case ID_C2:
+ // get ID_C2 value
+ *puValue = pObj->I2CMap.uBx00.bF.ID;
+ break;
+
+ case POR_C2:
+ // get POR_C2 value
+ *puValue = pObj->I2CMap.uBx01.bF.POR;
+ break;
+
+ case MAINLOCK_C2:
+ // get MAINLOCK value
+ *puValue = TunerUnit == 0 ? pObj->I2CMap.uBx01.bF.MAIN_Lock : pObj->I2CMap.uBx16.bF.CAL_Lock;
+ break;
+
+ case TMVALUE_C2:
+ // read byte THERMO_BYTE
+ if (TDA18271ThermometerRead_C2(pObj, puValue) != TM_OK || pObj->I2CMap.uBx05.bF.SM == 1)
+ return TMBSL_ERR_IIC_ERR_C2;
+ break;
+
+ case PLMODE_C2:
+ // get PLMODE value
+ *puValue = pObj->Config.uPLMODE;
+ break;
+
+ case PLAGC1_C2:
+ // get PLAGC1 value
+ *puValue = 3 * (2 + ((pObj->I2CMap.uBx02.bF.Power_Level_7_to_0 & 0x7F) >> 5));
+ break;
+
+ case PLAGC2_C2:
+ // get PLAGC2 value
+ *puValue = 3 * (2 + (3 - (pObj->I2CMap.uBx03.bF.Power_Level_8 << 1 | pObj->I2CMap.uBx02.bF.Power_Level_7_to_0 >> 7)));
+ break;
+
+ case PLRFAGC_C2:
+ // get PLRFAGC value (PLRFAGC = PLRFAGC - 11)
+ if (((pObj->I2CMap.uBx25.EXTENDED_BYTE_22 & 0x7F) >> 4) < 5)
+ *puValue = 11 + (92 + 2 * ((pObj->I2CMap.uBx25.EXTENDED_BYTE_22 & 0x7F) >> 4)) - (103 - (pObj->I2CMap.uBx02.bF.Power_Level_7_to_0 & 0x1F));
+ else
+ *puValue = 11 + 102 - (103 - (pObj->I2CMap.uBx02.bF.Power_Level_7_to_0 & 0x1F));
+ // limit PLRFAGC value
+ if (*puValue > 33)
+ *puValue = 33;
+ else if (*puValue < 1)
+ *puValue = 1;
+ break;
+
+ case RFCALOK_C2:
+ // get RFCALOK value
+ *puValue = pObj->I2CMap.uBx03.bF.RF_CAL_OK;
+ break;
+
+ case RFCAL_TCOMP_C2:
+ // get RFCAL_TCOMP value
+ *puValue = pObj->Config.uRFCAL_TCOMP;
+ break;
+
+ case IRCALOK_C2:
+ // get IRCALOK value
+ *puValue = pObj->I2CMap.uBx03.bF.IR_CAL_OK;
+ break;
+
+ case BPFILTER_C2:
+ // get BPFILTER value
+ *puValue = pObj->I2CMap.uBx03.bF.BP_Filter;
+ break;
+
+ case RFBAND_C2:
+ // get RFBAND_C2 value
+ *puValue = pObj->I2CMap.uBx04.bF.RF_Band;
+ break;
+
+ case GAINTAPER_C2:
+ // get GAINTAPER_C2 value
+ *puValue = pObj->I2CMap.uBx04.bF.Gain_Taper;
+ break;
+
+ case POWERSTATE_C2:
+ // get POWERSTATE_C2
+ TDA18271GetPowerState_C2(pObj,(ptmTDA18271PowerState_t_C2)puValue);
+ break;
+
+ case LPFC_C2:
+ // get LPFC_C2 value
+ *puValue = pObj->I2CMap.uBx05.bF.Std & 0x03;
+ break;
+
+ case FMRFN_C2:
+ // get FMRFN_C2 value
+ *puValue = pObj->I2CMap.uBx06.bF.FM_RFn;
+ break;
+
+ case STANDARDMODE_C2:
+ // get STANDARDMODE_C2
+ TDA18271GetStandardMode_C2(pObj, (ptmTDA18271StandardMode_t_C2)puValue);
+ break;
+
+ case XTOUT_C2:
+ // get XTout_ON & Xtout_400mV value
+ *puValue = (UInt32)(pObj->I2CMap.uBx06.bF.XTout_ON << 1 | pObj->I2CMap.uBx06.bF.Xtout_400mV);
+ break;
+
+ case IFLEVEL_C2:
+ // get IFLEVEL_C2 value
+ *puValue = pObj->I2CMap.uBx06.bF.IF_Level;
+ break;
+
+ case EXTENDEDREG_C2:
+ // get EXTENDEDREG_C2 value
+ *puValue = pObj->I2CMap.uBx07.bF.Extended_Reg;
+ break;
+
+ case CALPOSTDIV_C2:
+ // get CALPOSTDIV_C2 value
+ *puValue = pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE & 0x7F;
+ break;
+
+ case CALDIV_C2:
+ // get CALDIV_C2 value
+ *puValue = pObj->I2CMap.uBx09.bF.CAL_Div_22_to_16 << 16 | pObj->I2CMap.uBx0A.bF.CAL_Div_15_to_8 << 8 | pObj->I2CMap.uBx0B.bF.CAL_Div_7_to_0;
+ break;
+
+ case MAINPOSTDIV_C2:
+ // get MAINPOSTDIV_C2 value
+ *puValue = pObj->I2CMap.uBx0C.bF.MAIN_Post_Div;
+ break;
+
+ case MAINDIV_C2:
+ // get MAINDIV_C2 value
+ *puValue = pObj->I2CMap.uBx0D.bF.MAIN_Div_22_to_16 << 16 | pObj->I2CMap.uBx0E.bF.MAIN_Div_15_to_8 << 8 | pObj->I2CMap.uBx0F.bF.MAIN_Div_7_to_0;
+ break;
+
+ case MAPVALUE_C2:
+ // set pointer on wanted cell
+ switch (pObj->Config.uMAPNAME)
+ {
+ case tmTDA18271_IR_MEAS_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_MEAS_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_IR_MEAS_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.IR_MEAS_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_IR_CAL_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_CAL_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_IR_CAL_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.IR_CAL_Map[pObj->Config.uMAPROW].uRF);
+ break;
+
+ case tmTDA18271_BP_FILTER_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_BP_FILTER_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_BP_FILTER_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.BP_FILTER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_BAND_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_BAND_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_BAND_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_BAND_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_GAIN_TAPER_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_GAIN_TAPER_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_GAIN_TAPER_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.GAIN_TAPER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_DC_OVER_DT_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_DC_OVER_DT_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_DC_OVER_DT_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_KMCO_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_KMCO_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_KMCO_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_KMCO_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_CID_TARGET_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_CID_TARGET_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_CID_TARGET_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_THERMOMETER_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_THERMOMETER_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_THERMOMETER_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.THERMOMETER_Map[pObj->Config.uMAPROW].uTM_D);
+ break;
+
+ case tmTDA18271_CAL_PLL_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_CAL_PLL_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_CAL_PLL_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.CAL_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_MAIN_PLL_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_MAIN_PLL_NB_COLUMNS_C2 - 1) || (pObj->Config.uMAPROW > TDA18271_MAIN_PLL_NB_ROWS_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.MAIN_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_I2C_Map_C2:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > 0) || (pObj->Config.uMAPROW > TDA18271_NB_BYTES_C2 - 1))
+ return TM_ERR_NOT_SUPPORTED_C2;
+ // pI2CMap initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + pObj->Config.uMAPROW;
+ break;
+ }
+ // get cell value
+ if (pObj->Config.uMAPNAME == tmTDA18271_I2C_Map_C2)
+ *puValue = *(pI2CMap + pObj->Config.uMAPCOLUMN);
+ else
+ *puValue = *(pDataMap + pObj->Config.uMAPCOLUMN);
+ break;
+
+ case PROTOCOLSTEP_C2:
+ // get channel configuration protocol steps
+ *puValue = pObj->Config.uPROTOCOLSTEP;
+ break;
+
+ // backdoor functions
+ case IDENTITY_C2:
+ _SYSTEMFUNC.SY_Read_C2( pObj->uHwAddress, TDA18271_IDENTITY_IND_C2, 1, &uByte);
+ /*if (uByte != 0x82)
+ *puValue = False;
+ else
+ *puValue = True;
+ */
+ switch (pObj->Config.uBoard & 0xffff0000)
+ {
+ case 0x57750000:
+ *puValue = True;
+ break;
+ default:
+ *puValue = False;
+ break;
+ }
+ break;
+
+ }
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetRf_C2:
+//
+// DESCRIPTION: Calculate i2c I2CMap & write in TDA18271_C2
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetRf_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uRF // I: RF frequency in hertz
+ )
+{
+ ptmTDA18271Object_t_C2 pObj;
+ tmErrorCode_t ret = TM_OK;
+
+ UInt32 uCounter = 0;
+ UInt32 uTMVALUE_CURRENT = 0;
+ UInt8 utmpStd = 0;
+
+ UInt8 uCprog_table = 0;
+ Int32 uCapprox = 0;
+ Int32 uCprog_signed = 0;
+
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // Config.uRF update
+ pObj->Config.uRF = uRF;
+
+ //----------------------
+ // configuration reset
+ //----------------------
+ // set power level indicator to off
+ pObj->Config.uPLMODE = 1;
+
+ //----------------------
+ // normal mode restore
+ //----------------------
+ // power up in calibration standard
+ pObj->I2CMap.uBx05.bF.SM = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x5,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //----------------------
+ // RF tracking filter correction
+ //----------------------
+ // sense temperature
+ ret = TDA18271ThermometerRead_C2(pObj, &uTMVALUE_CURRENT);
+ if (ret != TM_OK)
+ return ret;
+
+ //----------------------
+ // frequency dependent parameters update
+ //----------------------
+ // search for uCprog_table corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2);
+ uCprog_table = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ // search for sub-band corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS_C2);
+
+ // calculate Capprox
+ if (pObj->Config.RF_BAND_Map[uCounter - 1].uRF1 == 0)
+ {
+ // Capprox = uCprog_table
+ uCapprox = (Int32)uCprog_table;
+ }
+ else if ((pObj->Config.RF_BAND_Map[uCounter - 1].uRF3 != 0) && (uRF >= pObj->Config.RF_BAND_Map[uCounter - 1].uRF2))
+ {
+ // Capprox = A2 * (uRF - uRF2) + B2 + uCprog_table
+ uCapprox = (Int32)(((pObj->Config.RF_BAND_Map[uCounter - 1].uRF_A2 * ((Int32)(uRF - pObj->Config.RF_BAND_Map[uCounter - 1].uRF2) / 1000000)) / 1000000)
+ + pObj->Config.RF_BAND_Map[uCounter - 1].uRF_B2 + uCprog_table);
+ }
+ else
+ {
+ // Capprox = A1 * (uRF - uRF1) + B1 + uCprog_table
+ uCapprox = (Int32)(((pObj->Config.RF_BAND_Map[uCounter - 1].uRF_A1 * ((Int32)(uRF - pObj->Config.RF_BAND_Map[uCounter - 1].uRF1) / 1000000)) / 1000000)
+ + pObj->Config.RF_BAND_Map[uCounter - 1].uRF_B1 + uCprog_table);
+ }
+
+ // search for udC_Over_dT corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_CAL_DC_OVER_DT_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2);
+
+ // calculate CTcomp
+ pObj->Config.uRFCAL_TCOMP = (Int32)(pObj->Config.RF_CAL_DC_OVER_DT_Map[uCounter - 1].udC_Over_dT * (uTMVALUE_CURRENT - pObj->Config.uTMVALUE_RFCAL)) / 1000;
+
+ // calculate Cprog
+ uCprog_signed = uCapprox + pObj->Config.uRFCAL_TCOMP;
+ if (uCprog_signed < 0) uCprog_signed = 0;
+ if (uCprog_signed > 255) uCprog_signed = 255;
+ pObj->I2CMap.uBx1D.RFC_Cprog = (UInt8)uCprog_signed;
+
+ // write byte RFC_Cprog
+ if (TDA18271Write_C2(pObj,0x1D,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //----------------------
+ // standard mode update
+ //----------------------
+ // update TV broadcast parameters
+ ret = TDA18271SetStandardMode_C2(pObj, pObj->StandardMode);
+ if (ret != TM_OK)
+ return ret;
+
+ // switch RFAGC to high speed mode (store current value)
+ utmpStd = pObj->I2CMap.uBx05.bF.Std;
+ pObj->I2CMap.uBx05.bF.Std &= 0x1B;
+
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x5,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+#ifdef TMBSL_TDA18271_FREEZE_AGC_C2
+ /////////////////////////////////////////////
+ //----------------------
+ // unfreeze AGC 1&2 detectors for secam L only
+ //----------------------
+ switch (StandardMode)
+ {
+ case tmAnalog_TV_L:
+ case tmAnalog_TV_LL:
+ // switch to digital mode
+ pObj->I2CMap.uBx05.bF.Std |= 0x10;
+
+ // start AGC1
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x00;
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x00;
+
+ // start AGC2
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x00;
+ pObj->I2CMap.uBx24.bF.AGC2_loop_off = 0x00;
+
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+
+ default:
+ // start AGC1
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x00;
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x00;
+
+ // freeze AGC2 (set AGC2Gain = -6dB)
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x01;
+ pObj->I2CMap.uBx24.bF.AGC2_loop_off = 0x01;
+ pObj->I2CMap.uBx24.bF.AGC2_Gain = 0x03;
+ break;
+ }
+
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+#endif // TMBSL_TDA18271_FREEZE_AGC_C2
+
+ // write bytes EXTENDED_BYTE_21 to EXTENDED_BYTE_23
+ if (TDA18271Write_C2(pObj,0x24,3) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+#ifdef TMBSL_TDA18271_FREEZE_AGC_C2
+ switch (StandardMode)
+ {
+ case tmAnalog_TV_L:
+ case tmAnalog_TV_LL:
+ // wait 1 s for AGC 1&2 startup
+ Wait(1000);
+ break;
+ }
+ /////////////////////////////////////////////
+#endif // TMBSL_TDA18271_FREEZE_AGC_C2
+
+ //----------------------
+ // update frequency dependent parameters
+ //----------------------
+ // search for IR_Meas corresponding to wanted frequency
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.IR_MEAS_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_IR_MEAS_NB_ROWS_C2);
+ pObj->I2CMap.uBx07.bF.IR_Meas = (UInt8)pObj->Config.IR_MEAS_Map[uCounter - 1].uIR_Meas;
+
+ // search for BP_Filter corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.BP_FILTER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_BP_FILTER_NB_ROWS_C2);
+ pObj->I2CMap.uBx03.bF.BP_Filter = (UInt8)pObj->Config.BP_FILTER_Map[uCounter - 1].uBP_Filter;
+
+ // search for RF_BAND corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS_C2);
+ pObj->I2CMap.uBx04.bF.RF_Band = (UInt8)pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Band;
+
+ // search for Gain_Taper corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.GAIN_TAPER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_GAIN_TAPER_NB_ROWS_C2);
+ pObj->I2CMap.uBx04.bF.Gain_Taper = (UInt8)pObj->Config.GAIN_TAPER_Map[uCounter - 1].uGain_Taper;
+
+ //---------------------
+ // dual tuner and AGC1 extra configuration management
+ //---------------------
+ // use MAIN VCO when master, CAL VCO when slave
+ pObj->I2CMap.uBx10.bF.CALVCO_forLOn = (TunerUnit == 0) ? 1 : 0;
+
+ // AGC1 & AGC2 management
+ pObj->I2CMap.uBx10.bF.AGC1_always_mastern = 0x00;
+ pObj->I2CMap.uBx10.bF.AGC1_firstn = 0x00;
+
+ // write byte EXTENDED_BYTE_1
+ if (TDA18271Write_C2(pObj,0x10,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //---------------------
+ // tune to wanted channel frequency
+ //---------------------
+ // use MAIN VCO when master, CAL VCO when slave
+ if (TunerUnit == 0) // master
+ {
+ // calculate MAIN PLL
+ if (TDA18271CalcMAINPLL_C2(pObj, uRF + pObj->Config.uIF) == False)
+ return TM_FALSE;
+
+ // write bytes 0x01 to 0x0F
+ if (TDA18271Write_C2(pObj,0x01,15) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // MAIN pll charge pump source
+ pObj->I2CMap.uBx13.bF.LO_ForceSrce = 0x01;
+ // write byte EXTENDED_BYTE_4
+ if (TDA18271Write_C2(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 1 ms for charge pump source
+ if (TDA18271Wait_C2(pObj,1) == False)
+ return TM_FALSE;
+
+ // MAIN pll normal operation
+ pObj->I2CMap.uBx13.bF.LO_ForceSrce = 0x00;
+ // write byte EXTENDED_BYTE_4
+ if (TDA18271Write_C2(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ }
+ else // slave
+ {
+ // calculate CAL PLL
+ if (TDA18271CalcCALPLL_C2(pObj, uRF + pObj->Config.uIF) == False)
+ return TM_FALSE;
+
+ // copy CAL PLL PostDiv to MAIN PLL Post Div
+ pObj->I2CMap.uBx0C.bF.MAIN_Post_Div = pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE & 0x77;
+
+ // write bytes 0x01 to 0x0F
+ if (TDA18271Write_C2(pObj,0x01,15) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // CAL pll charge pump source
+ pObj->I2CMap.uBx16.bF.CAL_ForceSrce = 0x01;
+ // write byte EXTENDED_BYTE_7
+ if (TDA18271Write_C2(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 1 ms for charge pump source
+ if (TDA18271Wait_C2(pObj,1) == False)
+ return TM_FALSE;
+
+ // CAL pll normal operation
+ pObj->I2CMap.uBx16.bF.CAL_ForceSrce = 0x00;
+ // write byte EXTENDED_BYTE_7
+ if (TDA18271Write_C2(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ }
+
+ // wait 20 ms for pll locking
+ if (TDA18271Wait_C2(pObj,20) == False)
+ return TM_FALSE;
+
+ // switch RFAGC to normal mode (restore previous value)
+ pObj->I2CMap.uBx05.bF.Std = utmpStd;
+
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x5,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+#ifdef TMBSL_TDA18271_FREEZE_AGC_C2
+ /////////////////////////////////////////////
+ //----------------------
+ // freeze AGC 1&2 detectors for secam L only
+ //----------------------
+ switch (StandardMode)
+ {
+ case tmAnalog_TV_L:
+ case tmAnalog_TV_LL:
+ // switch back to analog mode
+ pObj->I2CMap.uBx05.bF.Std &= 0xEF;
+
+ // freeze AGC1
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x01;
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x01;
+
+ // freeze AGC2
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x01;
+ pObj->I2CMap.uBx24.bF.AGC2_loop_off = 0x01;
+ break;
+
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+
+ // write bytes EXTENDED_BYTE_21
+ if (TDA18271Write_C2(pObj,0x24,1) != True)
+ return TMBSL_ERR_IIC_ERR;
+ break;
+ }
+ /////////////////////////////////////////////
+#endif // TMBSL_TDA18271_FREEZE_AGC_C2
+
+ // read bytes 0x00 to 0x26
+ if (TDA18271Read_C2 (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetRf_C2:
+//
+// DESCRIPTION: Get the frequency programmed in the tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES: The value returned is the one stored in the Object
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetRf_C2
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32* pRF // O: RF frequency in hertz
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ //----------------------
+ // get the value
+ //----------------------
+ // the read function can't be used
+ *pRF = pObj->Config.uRF;
+
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// Internal functions:
+//-----------------------------------------------------------------------------
+//
+#ifndef NXPFE
+//-----------------------------------------------------------------------------
+// FUNCTION: allocInstance:
+//
+// DESCRIPTION: allocate new instance
+//
+// RETURN:
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+allocInstance_C2 (
+ UInt32 DeviceUnit, // I: Device unit number
+ pptmTDA18271Object_t_C2 ppDrvObject // I: Device Object
+ )
+{
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (DeviceUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // return value
+ return getInstance_C2(DeviceUnit, ppDrvObject);
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: deAllocInstance:
+//
+// DESCRIPTION: deallocate instance
+//
+// RETURN: always TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+deAllocInstance_C2 (
+ UInt32 DeviceUnit // I: Device unit number
+ )
+{
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (DeviceUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // return value
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: getInstance:
+//
+// DESCRIPTION: get the instance
+//
+// RETURN: always True
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+getInstance_C2 (
+ tmUnitSelect_t DeviceUnit, // I: Device unit number
+ pptmTDA18271Object_t_C2 ppDrvObject // I: Device Object
+ )
+{
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (DeviceUnit > TDA18271_MAX_UNITS_C2)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2;
+
+ // get instance
+ *ppDrvObject = &gTDA18271Instance_C2[DeviceUnit];
+
+ // return value
+ return TM_OK;
+}
+#endif // NXPFE
+
+//-----------------------------------------------------------------------------
+// FUNCTION: TDA18271Init_C2:
+//
+// DESCRIPTION: initialization of the Tuner
+//
+// RETURN: always True
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271Init_C2 (
+ tmUnitSelect_t TunerUnit // I: Tuner Object
+ )
+{
+ ptmTDA18271Object_t_C2 pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // pObj initialization
+ ret = getInstance_C2(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ //----------------------
+ // configuration reset
+ //----------------------
+ // set power level indicator to off
+ pObj->Config.uPLMODE = 1;
+
+ //----------------------
+ // I2C map initialization
+ //----------------------
+ // set & write all bytes
+ pObj->I2CMap.uBx01.THERMO_BYTE = 0x08;
+ pObj->I2CMap.uBx02.POWER_LEVEL_BYTE = 0x80;
+ pObj->I2CMap.uBx03.EASY_PROG_BYTE_1 = 0xC6;
+ pObj->I2CMap.uBx04.EASY_PROG_BYTE_2 = 0xDF;
+ pObj->I2CMap.uBx05.EASY_PROG_BYTE_3 = 0x16;
+ pObj->I2CMap.uBx06.EASY_PROG_BYTE_4 = 0x60;
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x80;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0x80;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x00;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0B.CAL_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.uBx0C.MAIN_POST_DIV_BYTE = 0x00;
+ pObj->I2CMap.uBx0D.MAIN_DIV_BYTE_1 = 0x00;
+ pObj->I2CMap.uBx0E.MAIN_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0F.MAIN_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.uBx10.EXTENDED_BYTE_1 = 0xFC;
+ pObj->I2CMap.uBx11.EXTENDED_BYTE_2 = 0x01;
+ pObj->I2CMap.uBx12.EXTENDED_BYTE_3 = 0x84;
+ pObj->I2CMap.uBx13.EXTENDED_BYTE_4 = 0x41;
+ pObj->I2CMap.uBx14.EXTENDED_BYTE_5 = 0x01;
+ pObj->I2CMap.uBx15.EXTENDED_BYTE_6 = 0x84;
+ pObj->I2CMap.uBx16.EXTENDED_BYTE_7 = 0x40;
+ pObj->I2CMap.uBx17.EXTENDED_BYTE_8 = 0x07;
+ pObj->I2CMap.uBx18.EXTENDED_BYTE_9 = 0x00;
+ pObj->I2CMap.uBx19.EXTENDED_BYTE_10 = 0x00;
+ pObj->I2CMap.uBx1A.EXTENDED_BYTE_11 = 0x96;
+ pObj->I2CMap.uBx1B.EXTENDED_BYTE_12 = 0x3F;
+ pObj->I2CMap.uBx1C.EXTENDED_BYTE_13 = 0xC1;
+ pObj->I2CMap.uBx1D.EXTENDED_BYTE_14 = 0x00;
+ pObj->I2CMap.uBx1E.EXTENDED_BYTE_15 = 0x8F;
+ pObj->I2CMap.uBx1F.EXTENDED_BYTE_16 = 0x00;
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x00;
+ pObj->I2CMap.uBx21.EXTENDED_BYTE_18 = 0x8C;
+ pObj->I2CMap.uBx22.EXTENDED_BYTE_19 = 0x00;
+ pObj->I2CMap.uBx23.EXTENDED_BYTE_20 = 0x20;
+ pObj->I2CMap.uBx24.EXTENDED_BYTE_21 = 0xB3;
+ pObj->I2CMap.uBx25.EXTENDED_BYTE_22 = 0x48;
+ pObj->I2CMap.uBx26.EXTENDED_BYTE_23 = 0xB0;
+ if (TDA18271Write_C2(pObj,0x01,38) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //----------------------
+ // AGC1 gain setup
+ //----------------------
+ // AGC1_Gain_do
+ // update & write EXTENDED_BYTE_17
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x00; // set gain_do address
+ if (TDA18271Write_C2(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x03; // keep gain_do address, set gain_do
+ if (TDA18271Write_C2(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // AGC1_Gain_up
+ // update & write EXTENDED_BYTE_17
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x43; // set gain_up address, keep gain_do
+ if (TDA18271Write_C2(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x4C; // keep gain_up address, set gain_up
+ if (TDA18271Write_C2(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //----------------------
+ // image rejection calibration - low band
+ //----------------------
+ // initialisation
+ pObj->I2CMap.uBx05.EASY_PROG_BYTE_3 = 0x1F;
+ pObj->I2CMap.uBx06.EASY_PROG_BYTE_4 = 0x66;
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x81;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0xCC;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x6C;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0B.CAL_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.uBx0C.MAIN_POST_DIV_BYTE = 0xC5;
+ pObj->I2CMap.uBx0D.MAIN_DIV_BYTE_1 = 0x77;
+ pObj->I2CMap.uBx0E.MAIN_DIV_BYTE_2 = 0x08;
+ pObj->I2CMap.uBx0F.MAIN_DIV_BYTE_3 = 0x00;
+ // write bytes EASY_PROG_BYTE_2 to MAIN_DIV_BYTE_3
+ if (TDA18271Write_C2(pObj,0x04,12) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch detector
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for wanted measurement
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // CAL pll update
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x85;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0xCB;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x66;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x70;
+
+ // write bytes EASY_PROG_BYTE_3 to CAL_DIV_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch optimisation algorithm
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 30 ms for image optimization completion
+ if (TDA18271Wait_C2(pObj,30) == False)
+ return TM_FALSE;
+
+ //----------------------
+ // image rejection calibration - mid band
+ //----------------------
+ // initialisation
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x82;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0xA8;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0C.MAIN_POST_DIV_BYTE = 0xA1;
+ pObj->I2CMap.uBx0D.MAIN_DIV_BYTE_1 = 0x73;
+ pObj->I2CMap.uBx0E.MAIN_DIV_BYTE_2 = 0x1A;
+ // write bytes EASY_PROG_BYTE_3 to MAIN_DIV_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch detector
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for wanted measurement
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // CAL pll update
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x86;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0xA8;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x66;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0xA0;
+
+ // write bytes EASY_PROG_BYTE_3 to CAL_DIV_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch optimisation algorithm
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 30 ms for image optimization completion
+ if (TDA18271Wait_C2(pObj,30) == False)
+ return TM_FALSE;
+
+ //----------------------
+ // image rejection calibration - high band
+ //----------------------
+ // initialisation
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x83;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0x98;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x65;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0C.MAIN_POST_DIV_BYTE = 0x91;
+ pObj->I2CMap.uBx0D.MAIN_DIV_BYTE_1 = 0x71;
+ pObj->I2CMap.uBx0E.MAIN_DIV_BYTE_2 = 0xCD;
+ // write bytes EASY_PROG_BYTE_3 to CAL_DIV_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch detector
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for wanted measurement
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // CAL pll update
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x87;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x65;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x50;
+
+ // write bytes EASY_PROG_BYTE_3 to CAL_DIV_BYTE_3
+ if (TDA18271Write_C2(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch optimisation algorithm
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 30 ms for image optimization completion
+ if (TDA18271Wait_C2(pObj,30) == False)
+ return TM_FALSE;
+
+ //----------------------
+ // back to normal mode
+ //----------------------
+ // update & write byte EASY_PROG_BYTE_4
+ pObj->I2CMap.uBx06.EASY_PROG_BYTE_4 = 0x64;
+ if (TDA18271Write_C2(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // synchronization
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //----------------------
+ // RF tracking filters calibration
+ //----------------------
+ ret = TDA18271CalcRFFilterCurve_C2(pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ //----------------------
+ // back to POR mode
+ //----------------------
+ // power up detector 1
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x00;
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // turn AGC1 loop on
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x00;
+ // set AGC1Gain = 6dB
+ pObj->I2CMap.uBx21.bF.AGC1_Gain = 0x00;
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // set AGC2Gain = -6dB
+ pObj->I2CMap.uBx24.bF.AGC2_Gain = 0x03;
+
+ // swicth to POR mode
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x5,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // disable 1.5MHz low pass filter
+ pObj->I2CMap.uBx26.bF.ForceLP_Fc2_En = 0x00;
+ pObj->I2CMap.uBx26.bF.LP_Fc = 0x00;
+
+ // write bytes EXTENDED_BYTE_21 to EXTENDED_BYTE_23
+ if (TDA18271Write_C2(pObj,0x24,3) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: TDA18271InitTick_C2
+//
+// DESCRIPTION: this function will delay for the number of millisecond
+//
+// RETURN: nothing
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+Bool_
+TDA18271InitTick_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait for
+ )
+{
+ UInt32 uCurrentTick;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // get current tick
+ uCurrentTick = _SYSTEMFUNC.SY_GetTickTime();
+
+ // Calculate end tick
+ pObj->uTickEnd = (UInt32)wTime;
+ pObj->uTickEnd += _SYSTEMFUNC.SY_GetTickPeriod()/2;
+ pObj->uTickEnd /= _SYSTEMFUNC.SY_GetTickPeriod();
+ pObj->uTickEnd += uCurrentTick;
+
+ // always add 1 because of rounding issue
+ if (wTime)
+ pObj->uTickEnd++;
+
+ // test overflow
+ if (pObj->uTickEnd < uCurrentTick)
+ return False;
+ else
+ return True;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: TDA18271WaitTick_C2
+//
+// DESCRIPTION: this function will block for the number of millisecond
+//
+// RETURN: True if time has elapsed else False
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+Bool_
+TDA18271WaitTick_C2(
+ ptmTDA18271Object_t_C2 pObj // I: Tuner unit number
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // test if time has elapsed
+ if (_SYSTEMFUNC.SY_GetTickTime() >= pObj->uTickEnd)
+ return True;
+ else
+ return False;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Write_C2
+//
+// DESCRIPTION: This function writes I2C data in the Tuner
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Write_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ )
+{
+ Bool_ I2CCommResult = TM_FALSE;
+
+ UInt8 uCounter;
+ UInt8* pI2CMap;
+ UInt32 WriteBuffer[TDA18271_NB_BYTES_C2] = {0};
+ UInt32* pWriteBuffer;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // force I2CMap
+ pObj->I2CMap.uBx03.bF.Dis_Power_level = (UInt8)pObj->Config.uPLMODE;
+
+ // pI2CMap & pWriteBuffer initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE);
+ pWriteBuffer = &(WriteBuffer[0]);
+
+ // copy I2CMap data in WriteBuffer
+ for (uCounter = 0; uCounter < TDA18271_NB_BYTES_C2; uCounter++)
+ {
+ *pWriteBuffer = (UInt32)(*pI2CMap);
+ pWriteBuffer ++;
+ pI2CMap ++;
+ }
+
+ // write data in the Tuner
+ I2CCommResult = _SYSTEMFUNC.SY_Write_C2( pObj->uHwAddress,
+ uSubAddress,
+ uNbData,
+ &(WriteBuffer[uSubAddress]) );
+
+ // shift I2CLog content
+ TDA18271ShiftLog_C2 (pObj,1);
+
+ // copy written data in I2CLog [0]
+ for (uCounter = uSubAddress; uCounter < uSubAddress + uNbData; uCounter++)
+ pObj->I2CLog [0][uCounter] = WriteBuffer [uCounter];
+
+ // set additional values
+ pObj->I2CLog [0][TDA18271_NB_BYTES_C2] = pObj->uHwAddress;
+ pObj->I2CLog [0][TDA18271_NB_BYTES_C2 + 1] = I2CCommResult;
+
+ // return value
+ return I2CCommResult;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Read_C2
+//
+// DESCRIPTION: This function reads I2C data from the Tuner
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Read_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ )
+{
+ Bool_ I2CCommResult = TM_FALSE;
+
+ UInt8 uCounter;
+ UInt8* pI2CMap;
+ UInt32 ReadBuffer[TDA18271_NB_BYTES_C2] = {0};
+ UInt32* pReadBuffer;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // pI2CMap & pReadBuffer initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + uSubAddress;
+ pReadBuffer = &(ReadBuffer[uSubAddress]);
+
+ // read data from the Tuner
+ I2CCommResult = _SYSTEMFUNC.SY_Read_C2( pObj->uHwAddress,
+ 0,
+ uSubAddress + uNbData,
+ &(ReadBuffer[0]));
+
+ // copy readen data in I2CMap
+ for (uCounter = 0; uCounter < uNbData; uCounter++)
+ {
+ *pI2CMap = (UInt8)(*pReadBuffer);
+ pI2CMap ++;
+ pReadBuffer ++;
+ }
+
+ // shift I2CLog content
+ TDA18271ShiftLog_C2 (pObj,1);
+
+ // copy readen data in I2CLog [0]
+ for (uCounter = uSubAddress; uCounter < uSubAddress + uNbData; uCounter++)
+ pObj->I2CLog [0][uCounter] = ReadBuffer [uCounter];
+
+ // set additional values
+ pObj->I2CLog [0][TDA18271_NB_BYTES_C2] = pObj->uHwAddress + 1;
+ pObj->I2CLog [0][TDA18271_NB_BYTES_C2 + 1] = I2CCommResult;
+
+ // return value
+ return I2CCommResult;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Wait_C2
+//
+// DESCRIPTION: This function waits for requested time
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Wait_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait for
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ User_delay( pObj->AFAInfo_C2.demodulator, wTime);
+ // Return value
+ return True;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271ShiftLog_C2
+//
+// DESCRIPTION: Shift I2CLog content of wanted lines
+//
+// RETURN: True
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271ShiftLog_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt32 uNbRows // I: nb of lines
+ )
+{
+ UInt32 uRow;
+ UInt8 uColumn;
+ UInt32 uCounter;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // Shift I2CLog content of wanted lines
+ for (uCounter = 0; uCounter < uNbRows; uCounter++)
+ {
+ for (uRow = TDA18271_LOG_NB_ROWS_C2 - 1; uRow > 0; uRow--)
+ {
+ for (uColumn = 0; uColumn < TDA18271_NB_BYTES_C2 + 2; uColumn++)
+ pObj->I2CLog [uRow][uColumn] = pObj->I2CLog [uRow - 1][uColumn];
+ }
+
+ for (uColumn = 0; uColumn < TDA18271_NB_BYTES_C2 + 2; uColumn++)
+ pObj->I2CLog [0][uColumn] = TDA18271_LOG_BLANK_DATA_C2;
+ }
+
+ // Return value
+ return True;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcMAINPLL_C2:
+//
+// DESCRIPTION: Calculate the MAIN fractionnal PLL settings
+//
+// RETURN: True or False
+//
+// NOTES: This function doesn't write in the tuner
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271CalcMAINPLL_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ )
+{
+ UInt8 uCounter = 0;
+ UInt32 uDiv;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // search for MAIN_Post_Div corresponding to uLO
+ do uCounter ++;
+ while (uLO > pObj->Config.MAIN_PLL_Map[uCounter - 1].uLO_Max && uCounter < TDA18271_MAIN_PLL_NB_ROWS_C2);
+ pObj->I2CMap.uBx0C.bF.MAIN_Post_Div = ((UInt8)pObj->Config.MAIN_PLL_Map[uCounter - 1].uPost_Div) & 0x77;
+
+ // calculate MAIN_Div
+ uDiv = (((UInt32)(pObj->Config.MAIN_PLL_Map[uCounter - 1].uDiv) * (uLO / 1000)) << 7) / 125;
+ pObj->I2CMap.uBx0D.bF.MAIN_Div_22_to_16 = (UInt8)(uDiv >> 16) & 0x7F;
+ pObj->I2CMap.uBx0E.bF.MAIN_Div_15_to_8 = (UInt8)(uDiv >> 8);
+ pObj->I2CMap.uBx0F.bF.MAIN_Div_7_to_0 = (UInt8)(uDiv);
+
+ return True;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcCALPLL_C2:
+//
+// DESCRIPTION: Calculate the CAL fractionnal PLL settings
+//
+// RETURN: True or False
+//
+// NOTES: This function doesn't write in the tuner
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271CalcCALPLL_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ )
+{
+ UInt8 uCounter = 0;
+ UInt32 uDiv;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // search for CAL_Post_Div corresponding to uLO
+ do uCounter ++;
+ while (uLO > pObj->Config.CAL_PLL_Map[uCounter - 1].uLO_Max && uCounter < TDA18271_CAL_PLL_NB_ROWS_C2);
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = (UInt8)pObj->Config.CAL_PLL_Map[uCounter - 1].uPost_Div;
+
+ // calculate CAL_Div
+ uDiv = (((UInt32)(pObj->Config.CAL_PLL_Map[uCounter - 1].uDiv) * (uLO / 1000)) << 7) / 125;
+ pObj->I2CMap.uBx09.bF.CAL_Div_22_to_16 = (UInt8)(uDiv >> 16) & 0x7F;
+ pObj->I2CMap.uBx0A.bF.CAL_Div_15_to_8 = (UInt8)(uDiv >> 8);
+ pObj->I2CMap.uBx0B.bF.CAL_Div_7_to_0 = (UInt8)(uDiv);
+
+ return True;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalibrateRF_C2:
+//
+// DESCRIPTION: RF tracking filter calibration
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271CalibrateRF_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ UInt32 uRF, // I: RF frequency in hertz
+ UInt8* puCprog // I: Address of the variable to output the Cprog value
+ )
+{
+ UInt32 uCounter = 0;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ //------------------------------
+ // initialization
+ //------------------------------
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write_C2(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // set AGC1Gain = 15dB
+ pObj->I2CMap.uBx21.bF.AGC1_Gain = 0x03;
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // switch off AGC1
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x01;
+
+ //------------------------------
+ // frequency dependent parameters update
+ //------------------------------
+ // search for BP_Filter corresponding to uRF
+ uCounter=0;
+ do uCounter ++;
+ while (uRF > pObj->Config.BP_FILTER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_BP_FILTER_NB_ROWS_C2);
+ pObj->I2CMap.uBx03.bF.BP_Filter = (UInt8)pObj->Config.BP_FILTER_Map[uCounter - 1].uBP_Filter;
+
+ // search for Gain_Taper corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.GAIN_TAPER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_GAIN_TAPER_NB_ROWS_C2);
+ pObj->I2CMap.uBx04.bF.Gain_Taper = (UInt8)pObj->Config.GAIN_TAPER_Map[uCounter - 1].uGain_Taper;
+
+ // search for RF_BAND corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS_C2);
+ pObj->I2CMap.uBx04.bF.RF_Band = (UInt8)pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Band;
+
+ // search for K,M corresponding to uRF
+ uCounter=0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_KMCO_NB_ROWS_C2);
+ pObj->I2CMap.uBx1C.bF.RFC_K = (UInt8)pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uK;
+ pObj->I2CMap.uBx1C.bF.RFC_M = (UInt8)pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uM;
+
+ // write bytes EASY_PROG_BYTE_1 to EASY_PROG_BYTE_3
+ if (TDA18271Write_C2(pObj,0x03,3) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write byte EXTENDED_BYTE_13
+ if (TDA18271Write_C2(pObj,0x1C,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // MAIN pll charge pump source
+ pObj->I2CMap.uBx13.bF.LO_ForceSrce = 0x01;
+ // write byte EXTENDED_BYTE_4
+ if (TDA18271Write_C2(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // CAL pll charge pump source
+ pObj->I2CMap.uBx16.bF.CAL_ForceSrce = 0x01;
+ // write byte EXTENDED_BYTE_7
+ if (TDA18271Write_C2(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // force DCDC converter to 0V
+ pObj->I2CMap.uBx1D.RFC_Cprog = 0x00;
+ // write byte EXTENDED_BYTE_14
+ if (TDA18271Write_C2(pObj,0x1D,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // disable plls lock
+ pObj->I2CMap.uBx23.bF.Force_Lock = 0x00;
+ // write byte EXTENDED_BYTE_20
+ if (TDA18271Write_C2(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // RF tracking filters calibration mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x03;
+
+ // write bytes EASY_PROG_BYTE_4 & EASY_PROG_BYTE_5
+ if (TDA18271Write_C2(pObj,0x06,2) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //------------------------------
+ // set internal calibration signals
+ //------------------------------
+ // calculate CAL PLL
+ // CAL LO Frequency = channel center frequency
+ if (TDA18271CalcCALPLL_C2(pObj, uRF) == False)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // calculate MAIN PLL
+ // MAIN LO Frequency = channel center frequency + 1MHz
+ if (TDA18271CalcMAINPLL_C2(pObj, uRF + RF_CAL_IF_FREQ_C2) == False)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write bytes 0x05 to 0x0F
+ if (TDA18271Write_C2(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for RF tracking filter calibration initialization
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //------------------------------
+ // internal synchronization
+ //------------------------------
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //------------------------------
+ // RF calibration launch
+ //------------------------------
+ // MAIN pll charge pump source
+ pObj->I2CMap.uBx13.bF.LO_ForceSrce = 0x00;
+ // write byte EXTENDED_BYTE_4
+ if (TDA18271Write_C2(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // CAL pll charge pump source
+ pObj->I2CMap.uBx16.bF.CAL_ForceSrce = 0x00;
+ // write byte EXTENDED_BYTE_7
+ if (TDA18271Write_C2(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 10 ms for pll locking
+ if (TDA18271Wait_C2(pObj,10) == False)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // launch the RF tracking filters calibartion
+ pObj->I2CMap.uBx23.bF.Force_Lock = 0x01;
+ // write byte EXTENDED_BYTE_20
+ if (TDA18271Write_C2(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 60 ms for calibration
+ if (TDA18271Wait_C2(pObj,60) == False)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+
+ // set AGC1Gain = 6dB
+ pObj->I2CMap.uBx21.bF.AGC1_Gain = 0x00;
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // switch on AGC1
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+
+ // write bytes EASY_PROG_BYTE_3 & EASY_PROG_BYTE_4
+ if (TDA18271Write_C2(pObj,0x05,2) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // read bytes 0x00 to 0x26
+ if (TDA18271Read_C2 (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // update puCprog
+ *puCprog = pObj->I2CMap.uBx1D.RFC_Cprog;
+
+ // return value
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271PowerScanInit_C2:
+//
+// DESCRIPTION: Initializes power scan
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271PowerScanInit_C2 (
+ ptmTDA18271Object_t_C2 pObj // I: Tuner unit number
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // set standard mode to DVBT 1.5 MHz
+ pObj->I2CMap.uBx05.bF.Std = 0x12;
+ pObj->I2CMap.uBx06.bF.IF_Level = 0x00;
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+ // write bytes EASY_PROG_BYTE_3 & EASY_PROG_BYTE_4
+ if (TDA18271Write_C2(pObj,0x05,2) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // set AGC1Gain = 6dB
+ pObj->I2CMap.uBx21.bF.AGC1_Gain = 0x00;
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // set AGC2Gain = -15dB
+ pObj->I2CMap.uBx24.bF.AGC2_Gain = 0x00;
+ // set low pass filter to 1.5MHz
+ pObj->I2CMap.uBx26.bF.ForceLP_Fc2_En = 0x01;
+ pObj->I2CMap.uBx26.bF.LP_Fc = 0x01;
+ // write byte EXTENDED_BYTE_21 to EXTENDED_BYTE_23
+ if (TDA18271Write_C2(pObj,0x24,3) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // return value
+ return TM_OK;
+}
+
+#define POWER_SCAN_FREQ_STEP 200000
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271PowerScan_C2:
+//
+// DESCRIPTION: Scan power and adjust RF Frequency
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271PowerScan_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt32* puRF, // I/O: RF frequency in hertz
+ Bool_* pCal // O: Calibration allowed if pCal = True
+ )
+{
+ UInt32 uCounter = 0;
+ UInt32 count_limit = 0;
+ UInt32 freq_input = 0;
+ UInt32 freq_MAINPLL = 0;
+ UInt32 step = 0;
+
+ UInt8 CID_Gain = 0;
+ UInt8 CID_Target = 0;
+
+ Int8 sgn = 0;
+
+ Bool_ wait = False;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // set freq_input
+ freq_input = *puRF;
+
+ // search for count_limit corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.RF_CAL_CID_TARGET_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2);
+ count_limit = pObj->Config.RF_CAL_CID_TARGET_Map[uCounter - 1].uCount_Limit;
+
+ // check if powerscan is requested
+ if (count_limit == 0)
+ {
+ // enable calibration and exit
+ *pCal = True;
+ return TM_OK;
+ }
+
+ // search for CID_Target corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.RF_CAL_CID_TARGET_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2);
+ CID_Target = (UInt8)pObj->Config.RF_CAL_CID_TARGET_Map[uCounter - 1].uCID_Target;
+
+ // search for sub-band corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS_C2);
+ pObj->I2CMap.uBx04.bF.RF_Band = (UInt8)pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Band;
+
+ // search for Cprog corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2);
+ pObj->I2CMap.uBx1D.RFC_Cprog = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ // search for Gain_Taper corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.GAIN_TAPER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_GAIN_TAPER_NB_ROWS_C2);
+ pObj->I2CMap.uBx04.bF.Gain_Taper = (UInt8)pObj->Config.GAIN_TAPER_Map[uCounter - 1].uGain_Taper;
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write byte EXTENDED_BYTE_14
+ if (TDA18271Write_C2(pObj,0x1D,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // set freq_MAINPLL
+ freq_MAINPLL = freq_input + RF_CAL_IF_FREQ_C2;
+
+ // calculate MAIN PLL
+ if (TDA18271CalcMAINPLL_C2(pObj, freq_MAINPLL) == False)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write bytes 0x0C to 0x0F
+ if (TDA18271Write_C2(pObj,0x0C,4) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch power detection measurement
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x01;
+
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write_C2(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // read power detector informations
+ if (TDA18271Read_C2 (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ //update CID_Gain
+ CID_Gain = pObj->I2CMap.uBx19.bF.CID_Gain;
+
+ //----------------------
+ // power scan algorithm
+ //----------------------
+ // initialization
+ uCounter = 0;
+ sgn = 1;
+ *puRF = freq_input;
+ *pCal = False;
+ step = POWER_SCAN_FREQ_STEP;
+ wait = False;
+
+ // main loop
+ while (CID_Gain < CID_Target)
+ {
+ // update freq_MAINPLL
+ freq_MAINPLL = freq_input + sgn * uCounter + RF_CAL_IF_FREQ_C2;
+
+ // calculate MAIN PLL
+ if (TDA18271CalcMAINPLL_C2(pObj, freq_MAINPLL) == False)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // write bytes 0x0C to 0x0F
+ if (TDA18271Write_C2(pObj,0x0C,4) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ if (wait)
+ {
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2(pObj,5) == False)
+ return TM_FALSE;
+
+ // reset wait flag
+ wait = False;
+ }
+ else
+ {
+ // wait 100 �s for pll locking
+ }
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // read power detector informations
+ if (TDA18271Read_C2 (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // update CID_Gain
+ CID_Gain = pObj->I2CMap.uBx19.bF.CID_Gain;
+
+ // increase count
+ uCounter += step;
+
+ // check uCounter
+ if (uCounter >= count_limit)
+ {
+ if (sgn > 0)
+ {
+ // update sgn
+ sgn = -sgn;
+
+ // update uCounter
+ uCounter = step;
+
+ // update wait flag
+ wait = True;
+ }
+ else
+ {
+ // exit loop
+ break;
+ }
+ }
+ }
+
+ // return results
+ if (CID_Gain >= CID_Target)
+ {
+ *pCal = True;
+ *puRF = freq_MAINPLL - RF_CAL_IF_FREQ_C2;
+ }
+ else
+ {
+ *pCal = False;
+ *puRF = freq_input;
+ }
+
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcRFFilterCurve_C2:
+//
+// DESCRIPTION: Calculate RF Filter curve coefficients
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271CalcRFFilterCurve_C2 (
+ ptmTDA18271Object_t_C2 pObj // I: tuner Object
+ )
+{
+ tmErrorCode_t ret = TM_OK;
+ UInt32 uCounter = 0;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // wait 200 ms for die temperature stabilization
+ if (TDA18271Wait_C2(pObj,200) == False)
+ return TM_FALSE;
+
+ // power scan initialization
+ TDA18271PowerScanInit_C2(pObj);
+
+ // calculate RF filter curve
+ for (uCounter = 0; uCounter < TDA18271_RF_BAND_NB_ROWS_C2; uCounter++)
+ {
+ if (pObj->Config.RF_BAND_Map[uCounter].uRF1_default != 0)
+ {
+ ret = TDA18271RFTrackingFiltersInit_C2(pObj, &(pObj->Config.RF_BAND_Map[uCounter]));
+ if (ret != TM_OK)
+ return ret;
+ }
+ }
+
+ // sense temperature
+ ret = TDA18271ThermometerRead_C2(pObj, &(pObj->Config.uTMVALUE_RFCAL));
+ if (ret != TM_OK)
+ return ret;
+
+ // return value
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271RFTrackingFiltersInit_C2:
+//
+// DESCRIPTION: Initialize RF Filter calibration
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271RFTrackingFiltersInit_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ ptmTDA18271_RF_BAND_Map_t_C2 pRF_BAND_Map // I: address of RF band map
+ )
+{
+ tmErrorCode_t ret = TM_OK;
+
+ UInt32 uCounter = 0;
+
+ UInt8 uCprog_cal_1 = 0;
+ UInt8 uCprog_table_1 = 0;
+ UInt8 uCprog_cal_2 = 0;
+ UInt8 uCprog_table_2 = 0;
+ UInt8 uCprog_cal_3 = 0;
+ UInt8 uCprog_table_3 = 0;
+
+ Bool_ bCal = False;
+
+ tmTDA18271StandardMode_t_C2 StandardMode = pObj->StandardMode;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ //----------------------
+ // RF tracking filter calibration at RF1 frequency
+ //----------------------
+ // test uRF1_default value
+ if (pRF_BAND_Map->uRF1_default == 0)
+ return ret;
+
+ // look for optimized calibration frequency
+ pRF_BAND_Map->uRF1 = pRF_BAND_Map->uRF1_default;
+ ret = TDA18271PowerScan_C2(pObj, &pRF_BAND_Map->uRF1, &bCal);
+ if (ret != TM_OK)
+ return ret;
+
+ // search for uCprog_table_1 corresponding to RF1
+ uCounter = 0;
+ do uCounter ++;
+ while (pRF_BAND_Map->uRF1 > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2);
+ uCprog_table_1 = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ if(bCal)
+ {
+ // launch tracking filter calibration
+ ret = TDA18271CalibrateRF_C2(pObj, pRF_BAND_Map->uRF1, &uCprog_cal_1);
+ if (ret != TM_OK)
+ return ret;
+ }
+ else
+ {
+ // use tracking filter table value
+ uCprog_cal_1 = uCprog_table_1;
+ }
+
+ // set A1 coefficient
+ pRF_BAND_Map->uRF_A1 = 0;
+
+ // calculate B1 coefficient
+ pRF_BAND_Map->uRF_B1 = uCprog_cal_1 - uCprog_table_1;
+
+ //----------------------
+ // RF tracking filter calibration at RF2 frequency
+ //----------------------
+ // test RF2 value
+ if (pRF_BAND_Map->uRF2_default == 0)
+ return ret;
+
+ // look for optimized calibration frequency
+ pRF_BAND_Map->uRF2 = pRF_BAND_Map->uRF2_default;
+ ret = TDA18271PowerScan_C2(pObj, &pRF_BAND_Map->uRF2, &bCal);
+ if (ret != TM_OK)
+ return ret;
+
+ // search for uCprog_table_2 corresponding to RF2
+ uCounter = 0;
+ do uCounter ++;
+ while (pRF_BAND_Map->uRF2 > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2);
+ uCprog_table_2 = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ if(bCal)
+ {
+ // launch tracking filter calibration
+ ret = TDA18271CalibrateRF_C2(pObj, pRF_BAND_Map->uRF2, &uCprog_cal_2);
+ if (ret != TM_OK)
+ return ret;
+ }
+ else
+ {
+ // use tracking filter table value
+ uCprog_cal_2 = uCprog_table_2;
+ }
+
+ // calculate A1 coefficient
+ pRF_BAND_Map->uRF_A1 = ((uCprog_cal_2 - uCprog_table_2 - (uCprog_cal_1 - uCprog_table_1)) * 1000000)
+ / (Int32)((pRF_BAND_Map->uRF2 - pRF_BAND_Map->uRF1) / 1000000);
+
+ //----------------------
+ // RF tracking filter calibration at RF3 frequency
+ //----------------------
+ // test RF3 value
+ if (pRF_BAND_Map->uRF3_default == 0)
+ return ret;
+
+ // look for optimized calibration frequency
+ pRF_BAND_Map->uRF3 = pRF_BAND_Map->uRF3_default;
+ ret = TDA18271PowerScan_C2(pObj, &pRF_BAND_Map->uRF3, &bCal);
+ if (ret != TM_OK)
+ return ret;
+
+ // search for uCprog_table_3 corresponding to RF3
+ uCounter = 0;
+ do uCounter ++;
+ while (pRF_BAND_Map->uRF3 > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2);
+ uCprog_table_3 = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ if(bCal)
+ {
+ // launch tracking filter calibration
+ ret = TDA18271CalibrateRF_C2(pObj, pRF_BAND_Map->uRF3, &uCprog_cal_3);
+ if (ret != TM_OK)
+ return ret;
+ }
+ else
+ {
+ // use tracking filter table value
+ uCprog_cal_3 = uCprog_table_3;
+ }
+
+ // calculate A2 coefficient
+ pRF_BAND_Map->uRF_A2 = ((uCprog_cal_3 - uCprog_table_3 - (uCprog_cal_2 - uCprog_table_2)) * 1000000)
+ / (Int32)((pRF_BAND_Map->uRF3 - pRF_BAND_Map->uRF2) / 1000000);
+
+ // calculate B2 coefficient
+ pRF_BAND_Map->uRF_B2 = uCprog_cal_2 - uCprog_table_2;
+
+ // return value
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271ThermometerRead_C2:
+//
+// DESCRIPTION: Read die temperature
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271ThermometerRead_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt32* puValue // O: Read thermometer value
+ )
+{
+ tmErrorCode_t ret = TMBSL_ERR_IIC_ERR_C2;
+
+ UInt32 uCounter = 0;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2;
+
+ // switch thermometer on
+ pObj->I2CMap.uBx01.bF.TM_ON = 0x01;
+
+ // write byte THERMO_BYTE
+ if (TDA18271Write_C2(pObj,0x01,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // read byte THERMO_BYTE
+ if (TDA18271Read_C2 (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // set & write TM_Range
+ if (((pObj->I2CMap.uBx01.bF.TM_D == 0x00) && (pObj->I2CMap.uBx01.bF.TM_Range == 0x01)) || ((pObj->I2CMap.uBx01.bF.TM_D == 0x08) && (pObj->I2CMap.uBx01.bF.TM_Range == 0x00)))
+ {
+ pObj->I2CMap.uBx01.bF.TM_Range = !(pObj->I2CMap.uBx01.bF.TM_Range);
+
+ // write byte THERMO_BYTE
+ if (TDA18271Write_C2(pObj,0x01,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ // wait 10ms
+ if (TDA18271Wait_C2(pObj,10) == False)
+ return TM_FALSE;
+
+ // read byte THERMO_BYTE
+ if (TDA18271Read_C2 (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+ }
+
+ // search for TMVALUE corresponding to TM_D
+ uCounter = 0;
+ do uCounter ++;
+ while (pObj->I2CMap.uBx01.bF.TM_D > pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_D && uCounter < TDA18271_THERMOMETER_NB_ROWS_C2);
+
+ // get TMVALUE value
+ if (pObj->I2CMap.uBx01.bF.TM_Range == 0x00)
+ *puValue = (UInt8)pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_60_92;
+ else
+ *puValue = (UInt8)pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_92_122;
+
+ // switch thermometer off
+ pObj->I2CMap.uBx01.bF.TM_ON = 0x00;
+
+ // write byte THERMO_BYTE
+ if (TDA18271Write_C2(pObj,0x01,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2;
+
+ return TM_OK;
+} \ No newline at end of file
diff --git a/api/TDA18271_C2.h b/api/TDA18271_C2.h
new file mode 100644
index 0000000..1a532ab
--- /dev/null
+++ b/api/TDA18271_C2.h
@@ -0,0 +1,177 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271_C2.h
+//
+// DESCRIPTION: define the object for the TDA18271_C2
+//
+// DOCUMENT REF: DVP Software Coding Guidelines v1.14
+// DVP Board Support Library Architecture Specification v0.5
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+#ifndef _TMBSL_TDA18271_C2_H //-----------------
+#define _TMBSL_TDA18271_C2_H
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+//#ifndef NXPFE
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+//#endif // NXPFE
+
+//-----------------------------------------------------------------------------
+// Types and defines:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271Init_C2 (
+ tmUnitSelect_t TunerUnit // I: Tuner Object
+ );
+Bool_
+TDA18271InitTick_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait forTDA18271Init
+ );
+Bool_
+TDA18271WaitTick_C2(
+ ptmTDA18271Object_t_C2 pObj // I: Tuner unit number
+ );
+Bool_
+TDA18271Write_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ );
+Bool_
+TDA18271Read_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ );
+Bool_
+TDA18271Wait_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait for
+ );
+Bool_
+TDA18271ShiftLog_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt32 uNbRows // I: nb of lines
+ );
+tmErrorCode_t
+TDA18271SetStandardMode_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ tmTDA18271StandardMode_t_C2 StandardMode// I: Standard mode of this device
+ );
+tmErrorCode_t
+TDA18271GetStandardMode_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ tmTDA18271StandardMode_t_C2 *pStandardMode // I: Standard mode of this device
+ );
+tmErrorCode_t
+TDA18271SetPowerState_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ tmTDA18271PowerState_t_C2 powerState // I: Power state of this device
+ );
+tmErrorCode_t
+TDA18271GetPowerState_C2(
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ tmTDA18271PowerState_t_C2 *pPowerState// I: Power state of this device
+ );
+Bool_
+TDA18271CalcMAINPLL_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ );
+Bool_
+TDA18271CalcCALPLL_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ );
+tmErrorCode_t
+TDA18271CalcRFFilterCurve_C2 (
+ ptmTDA18271Object_t_C2 pObj // I: tuner Object
+ );
+tmErrorCode_t
+TDA18271RFTrackingFiltersInit_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ ptmTDA18271_RF_BAND_Map_t_C2 pRF_BAND_Map // I: address of RF band map
+ );
+tmErrorCode_t
+TDA18271CalibrateRF_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: tuner Object
+ UInt32 uRF, // I: RF frequency in hertz
+ UInt8* puCprog // I: Address of the variable to output the Cprog value
+ );
+tmErrorCode_t
+TDA18271PowerScan_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt32* puRF, // I/O: RF frequency in hertz
+ Bool_* pCal // O: Calibration allowed if pCal = True
+ );
+tmErrorCode_t
+TDA18271PowerScanInit_C2 (
+ ptmTDA18271Object_t_C2 pObj // I: Tuner unit number
+ );
+tmErrorCode_t
+TDA18271ThermometerRead_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt32* puValue // O: Read thermometer value
+ );
+tmErrorCode_t
+allocInstance_C2 (
+ UInt32 DeviceUnit, // I: Tuner unit number
+ pptmTDA18271Object_t_C2 ppDrvObject // I: Tuner Object
+ );
+tmErrorCode_t
+deAllocInstance_C2 (
+ UInt32 DeviceUnit // I: Tuner unit number
+ );
+tmErrorCode_t
+getInstance_C2 (
+ tmUnitSelect_t DeviceUnit, // I: Tuner unit number
+ pptmTDA18271Object_t_C2 ppDrvObject // I: Tuner Object
+ );
+tmErrorCode_t
+ tmbslTDA18271Init_C2(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmbslTuParam_t_C2 Param // I: setup parameters
+ );
+tmErrorCode_t
+ tmbslTDA18271SetConfig_C2(
+ tmUnitSelect_t TunerUnit, // I: TunerUnit number
+ UInt32 uItemId, // I: Identifier of the item to modify
+ UInt32 uValue // I: Value to set for the config item
+ );
+tmErrorCode_t
+ tmbslTDA18271SetRf_C2(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uRF // I: RF frequency in hertz
+ );
+
+//#ifndef NXPFE
+#ifdef __cplusplus
+}
+#endif
+//#endif // NXPFE
+
+#endif // TM<MODULE>_H //---------------
diff --git a/api/TDA18271_C2_Askey.c b/api/TDA18271_C2_Askey.c
new file mode 100644
index 0000000..e299158
--- /dev/null
+++ b/api/TDA18271_C2_Askey.c
@@ -0,0 +1,3637 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271_C2_Askey.c
+//
+// DESCRIPTION: Function for the Hybrid silicon tuner TDA18271
+//
+// DOCUMENT REF:
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+#include "TDA18271local_C2_Askey.h"
+#include "TDA18271_C2_Askey.h"
+#include "TDA18271StaticInstance_C2_Askey.h"
+#include "standard.h"
+
+//-----------------------------------------------------------------------------
+// Types and defines:
+//-----------------------------------------------------------------------------
+//
+#define FEQ_OFFSET 0
+
+//-----------------------------------------------------------------------------
+// Global data:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Internal Prototypes:
+//-----------------------------------------------------------------------------
+//
+Bool_ SY_Write_C2_Askey(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t_C2_Askey pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ uBuffer[i] = (UInt8)pDataBuff[i];
+ }
+
+ pObj = &gTDA18271Instance_C2_Askey[0];
+
+ dwError = Standard_writeTunerRegisters (pObj->AFAInfo_C2_Askey.demodulator, pObj->AFAInfo_C2_Askey.chip,
+ (unsigned short)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0) RetStatus = True;
+
+ return (RetStatus);
+};
+
+Bool_ SY_Read_C2_Askey(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t_C2_Askey pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ pObj = &gTDA18271Instance_C2_Askey[0];
+
+ dwError = Standard_readTunerRegisters (pObj->AFAInfo_C2_Askey.demodulator, pObj->AFAInfo_C2_Askey.chip, (UInt16)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0)
+ {
+ RetStatus = True;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ pDataBuff[i] = (UInt32)uBuffer[i];
+ }
+ }
+
+ return (RetStatus);
+};
+
+
+Bool_ SY_Write_Slave_C2_Askey(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t_C2_Askey pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ uBuffer[i] = (UInt8)pDataBuff[i];
+ }
+
+ pObj = &gTDA18271Instance_C2_Askey[1];
+
+ dwError = Standard_writeTunerRegisters (pObj->AFAInfo_C2_Askey.demodulator, pObj->AFAInfo_C2_Askey.chip,
+ (unsigned short)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0) RetStatus = True;
+
+ return (RetStatus);
+};
+
+Bool_ SY_Read_Slave_C2_Askey(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptmTDA18271Object_t_C2_Askey pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ pObj = &gTDA18271Instance_C2_Askey[1];
+
+ dwError = Standard_readTunerRegisters (pObj->AFAInfo_C2_Askey.demodulator, pObj->AFAInfo_C2_Askey.chip, (UInt16)uSubAddress, (UInt8)uNbData, uBuffer);
+
+ if (dwError == 0)
+ {
+ RetStatus = True;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ pDataBuff[i] = (UInt32)uBuffer[i];
+ }
+ }
+
+ return (RetStatus);
+};
+//-----------------------------------------------------------------------------
+// Exported functions:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Init:
+//
+// DESCRIPTION: create an instance of a TDA18271_C2_Askey Tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Init_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmbslTuParam_t_C2_Askey Param // I: setup parameters
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ //----------------------
+ // initialize the Object
+ //----------------------
+ // pObj initialization
+ getInstance_C2_Askey(TunerUnit, &pObj);
+
+ // return if already initialized
+ if (pObj != Null && pObj->init == True)
+ return TM_OK;
+
+ //----------------
+ // init the Object
+ //----------------
+ // initialize the Object
+// if (pObj == Null)
+// {
+ ret = allocInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK || pObj == Null)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // initialize the Object by default values
+ pObj->SystemFunc = Param.systemFunc;
+ pObj->uHwAddress = Param.uHwAddress;
+ pObj->init = True;
+// }
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271DeInit:
+//
+// DESCRIPTION: destroy an instance of a TDA18271 Tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271DeInit_C2_Askey
+(
+ tmUnitSelect_t TunerUnit // I: Tuner unit number
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ //----------------------
+ // De-initialize the Object
+ //----------------------
+ // pObj initialization
+ getInstance_C2_Askey(TunerUnit, &pObj);
+
+ // return if already initialized
+ if (pObj == Null || pObj->init == False)
+ return TM_OK;
+
+ //----------------
+ // Deinit the Object
+ //----------------
+ // initialize the Object
+ if (pObj != Null)
+ {
+ pObj->init = False;
+ ret = deAllocInstance_C2_Askey(TunerUnit);
+ }
+
+ return ret;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetSWVersion:
+//
+// DESCRIPTION: Return the version of this device
+//
+// RETURN: TM_OK
+//
+// NOTES: Values defined in the tmTDA18271Local.h file
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetSWVersion_C2_Askey
+(
+ ptmSWVersion_t_C2_Askey pSWVersion // I: Receives SW Version
+ )
+{
+ pSWVersion->compatibilityNr = TDA18271_BSL_COMP_NUM_C2_Askey;
+ pSWVersion->majorVersionNr = TDA18271_BSL_MAJOR_VER_C2_Askey;
+ pSWVersion->minorVersionNr = TDA18271_BSL_MINOR_VER_C2_Askey;
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetPowerState_C2_Askey:
+//
+// DESCRIPTION: Set the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetPowerState_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271PowerState_t_C2_Askey powerState_C2_Askey // I: Power state of this device
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // set power state
+ return TDA18271SetPowerState_C2_Askey(pObj, powerState_C2_Askey);
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271SetPowerState_C2_Askey:
+//
+// DESCRIPTION: Set the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271SetPowerState_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ tmTDA18271PowerState_t_C2_Askey powerState // I: Power state of this device
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ switch (powerState)
+ {
+ case tmPowerNormalMode_C2_Askey:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ break;
+
+ case tmPowerSleepMode_C2_Askey:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x01;
+ break;
+
+ case tmPowerStandbyWith16MHz_C2_Askey:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ break;
+
+ case tmPowerStandbyWith16MHzAndLoopThrough_C2_Askey:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ break;
+
+ case tmPowerStandbyWithLoopThrough_C2_Askey:
+ // set SM bits
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x01;
+ break;
+
+ default:
+ // power state not supported
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ }
+
+ // store powerstate
+ pObj->curPowerState = powerState;
+
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetPowerState_C2_Askey:
+//
+// DESCRIPTION: Get the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetPowerState_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271PowerState_t_C2_Askey *pPowerState_C2_Askey // O: Power state of this device
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // get power state
+ return TDA18271GetPowerState_C2_Askey(pObj, pPowerState_C2_Askey);
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271GetPowerState_C2_Askey:
+//
+// DESCRIPTION: Get the power state of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271GetPowerState_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ tmTDA18271PowerState_t_C2_Askey *pPowerState// I: Power state of this device
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ //----------------------
+ // get the value
+ //----------------------
+ if ((pObj->I2CMap.uBx05.bF.SM == 0x00) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x00) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x00))
+ *pPowerState = tmPowerNormalMode_C2_Askey;
+ else if ((pObj->I2CMap.uBx05.bF.SM == 0x01) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x01) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x01))
+ *pPowerState = tmPowerSleepMode_C2_Askey;
+ else if ((pObj->I2CMap.uBx05.bF.SM == 0x01) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x01) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x00))
+ *pPowerState = tmPowerStandbyWith16MHz_C2_Askey;
+ else if ((pObj->I2CMap.uBx05.bF.SM == 0x01) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x00) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x00))
+ *pPowerState = tmPowerStandbyWith16MHzAndLoopThrough_C2_Askey;
+ else if ((pObj->I2CMap.uBx05.bF.SM == 0x01) && (pObj->I2CMap.uBx05.bF.SM_LT == 0x00) && (pObj->I2CMap.uBx05.bF.SM_XT == 0x01))
+ *pPowerState = tmPowerStandbyWithLoopThrough_C2_Askey;
+ else
+ *pPowerState = tmPowerNotSupported_C2_Askey;
+
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetStandardMode_C2_Askey:
+//
+// DESCRIPTION: Set the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetStandardMode_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271StandardMode_t_C2_Askey StandardMode // I: Standard mode of this device
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // set standard mode
+ return TDA18271SetStandardMode_C2_Askey(pObj, StandardMode);
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271SetStandardMode_C2_Askey:
+//
+// DESCRIPTION: Set the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271SetStandardMode_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ tmTDA18271StandardMode_t_C2_Askey StandardMode// I: Standard mode of this device
+ )
+{
+ Bool_ customIF = FALSE;
+ Bool_ customLPFc = FALSE;
+ UInt8 stdValue = 0;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // set custom IF flag
+ if (((pObj->Config.uPROTOCOLSTEP & 0x02) >> 1) == 0x01)
+ customIF = TRUE;
+
+ // set custom LPFc flag
+ if (((pObj->Config.uPROTOCOLSTEP & 0x01) >> 0) == 0x01)
+ customLPFc = TRUE;
+
+ // set uIF & Std
+ switch (StandardMode)
+ {
+ case tmDigital_TV_ATSC_6MHz_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 3250000;
+ // set Std bit
+ stdValue = 0x1C;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_DVBT_7MHz_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 3500000;
+ // set Std bit
+ stdValue = 0x1C;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_DVBT_8MHz_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 4000000;
+ // set Std bit
+ stdValue = 0x1D;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_MN_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+#if FEQ_OFFSET
+ pObj->Config.uIF = 5400000;
+#else
+ pObj->Config.uIF = 5750000;
+#endif
+ // set Std bit
+ stdValue = 0x0C;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_B_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+#if FEQ_OFFSET
+ pObj->Config.uIF = 6400000;
+#else
+ pObj->Config.uIF = 6750000;
+#endif
+ // set Std bit
+ stdValue = 0x0D;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_GH_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+#if FEQ_OFFSET
+ pObj->Config.uIF = 6750000;
+#else
+ pObj->Config.uIF = 7750000;
+#endif
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_I_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+#if FEQ_OFFSET
+ pObj->Config.uIF = 7250000;
+#else
+ pObj->Config.uIF = 7750000;
+#endif
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_DK_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+#if FEQ_OFFSET
+ pObj->Config.uIF = 6850000;
+#else
+ pObj->Config.uIF = 7750000;
+#endif
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_L_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+#if FEQ_OFFSET
+ pObj->Config.uIF = 6750000;
+#else
+ pObj->Config.uIF = 7750000;
+#endif
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_TV_LL_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 1250000;
+ // set Std bit
+ stdValue = 0x0E;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmAnalog_FM_Radio_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 1250000;
+ // set Std bit
+ stdValue = 0x18;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x01;
+ break;
+
+ case tmDigital_CAL_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 1250000;
+ // set Std bit
+ stdValue = 0x18;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x01;
+ break;
+
+ case tmDigital_TV_QAM_6MHz_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 4000000;
+ // set Std bit
+ stdValue = 0x1D;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_QAM_8MHz_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 5000000;
+ // set Std bit
+ stdValue = 0x1F;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+
+ case tmDigital_TV_ISDBT_6MHz_C2_Askey:
+ // set IF frequency
+ if (!customIF)
+ pObj->Config.uIF = 4063000;
+ // set Std bit
+ stdValue = 0x1D;
+ pObj->I2CMap.uBx05.bF.Std = (!customLPFc) ? stdValue : (pObj->I2CMap.uBx05.bF.Std & 0xE3) | (stdValue & 0x1C);
+ // set FM_RFn bit
+ pObj->I2CMap.uBx06.bF.FM_RFn = 0x00;
+ break;
+ }
+
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+
+ // set IF_Level & IF_notch & RFAGC_Top & IFAGC_Top
+ switch (StandardMode)
+ {
+ case tmDigital_TV_ATSC_6MHz_C2_Askey:
+ case tmDigital_TV_DVBT_7MHz_C2_Askey:
+ case tmDigital_TV_DVBT_8MHz_C2_Askey:
+ case tmDigital_TV_QAM_6MHz_C2_Askey:
+ case tmDigital_TV_QAM_8MHz_C2_Askey:
+ case tmDigital_TV_ISDBT_6MHz_C2_Askey:
+ // set IF_Level
+ pObj->I2CMap.uBx06.bF.IF_Level = 0x01;
+ // set IF_notch
+ pObj->I2CMap.uBx0C.bF.IF_notch = 0x01;
+ // set RFAGC_Top & IFAGC_Top
+ pObj->I2CMap.uBx25.EXTENDED_BYTE_22 = 0x37;
+ break;
+
+ case tmAnalog_TV_MN_C2_Askey:
+ case tmAnalog_TV_B_C2_Askey:
+ case tmAnalog_TV_GH_C2_Askey:
+ case tmAnalog_TV_I_C2_Askey:
+ case tmAnalog_TV_DK_C2_Askey:
+ case tmAnalog_TV_L_C2_Askey:
+ case tmAnalog_TV_LL_C2_Askey:
+ case tmAnalog_FM_Radio_C2_Askey:
+ case tmDigital_CAL_C2_Askey:
+ // set IF_Level
+ pObj->I2CMap.uBx06.bF.IF_Level = 0x00;
+ // set IF_notch
+ pObj->I2CMap.uBx0C.bF.IF_notch = 0x00;
+ // set RFAGC_Top & IFAGC_Top
+ pObj->I2CMap.uBx25.EXTENDED_BYTE_22 = 0x2C;
+ break;
+
+ default:
+ // standard mode not supported
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ }
+
+ // store standard mode
+ pObj->StandardMode = StandardMode;
+
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetStandardMode_C2_Askey:
+//
+// DESCRIPTION: Get the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetStandardMode_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmTDA18271StandardMode_t_C2_Askey *pStandardMode // O: Standard mode of this device
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // get standard mode
+ return TDA18271GetStandardMode_C2_Askey(pObj, pStandardMode);
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetStandardMode_C2_Askey:
+//
+// DESCRIPTION: Get the standard mode of this device.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271GetStandardMode_C2_Askey
+(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ tmTDA18271StandardMode_t_C2_Askey *pStandardMode // O: Standard mode of this device
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER_C2_Askey;
+
+ //----------------------
+ // get the value
+ //----------------------
+ *pStandardMode = pObj->StandardMode;
+
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Write_C2_Askey:
+//
+// DESCRIPTION: Write in the Tuner.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES: uIndex: IN parameter containing the HW Sub Address as specified in
+// the datasheet (i.e. looks like 0xX0)
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Write_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to write
+ UInt32 uNbBytes, // I: Number of bytes to write
+ UInt32* puBytes // I: Pointer on an array of bytes
+ )
+{
+
+ UInt32 uCounter;
+ UInt8* pI2CMap;
+
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // test the parameters. uIndex is: 0x0X
+ if ((uIndex + uNbBytes) > TDA18271_NB_BYTES_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER_C2_Askey;
+
+ // pI2CMap initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + uIndex;
+
+ //--------------
+ // set the value
+ //--------------
+ // save the values written in the Tuner
+ for (uCounter = 0; uCounter < uNbBytes; uCounter++)
+ {
+ *pI2CMap = (UInt8)(puBytes[uCounter]);
+ pI2CMap ++;
+ }
+
+ // write in the Tuner
+ if (TDA18271Write_C2_Askey(pObj,(UInt8)(uIndex),(UInt8)(uNbBytes)) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271WriteBit_C2_Askey:
+//
+// DESCRIPTION: Write in the Tuner.
+//
+// RETURN: TM_ERR_NOT_SUPPORTED
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271WriteBit_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to write
+ UInt32 uBitMask, // I: bit mask
+ UInt32 uBitValue // I: bit value
+ )
+{
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271Read_C2_Askey:
+//
+// DESCRIPTION: Read in the Tuner.
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271Read_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uIndex, // I: Start index to read
+ UInt32 uNbBytes, // I: Number of bytes to read
+ UInt32* puBytes // I: Pointer on an array of bytes
+ )
+{
+ UInt32 uCounter;
+ UInt8* pI2CMap;
+
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // test the parameters
+ if (uNbBytes > TDA18271_NB_BYTES_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER_C2_Askey;
+
+ // test uIndex
+ if (uIndex == -1)
+ uIndex = 0;
+
+ // pI2CMap initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + uIndex;
+
+ //--------------
+ // get the value
+ //--------------
+ // read from the Tuner
+ if (TDA18271Read_C2_Askey(pObj,(UInt8)(uIndex),(UInt8)(uNbBytes)) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // copy readen values to puBytes
+ for (uCounter = 0; uCounter < uNbBytes; uCounter++)
+ {
+ *puBytes = (UInt32)(*pI2CMap);
+ pI2CMap ++;
+ puBytes ++;
+ }
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetConfig_C2_Askey:
+//
+// DESCRIPTION: Set the Config of the TDA18271_C2_Askey
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_ERR_NOT_SUPPORTED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetConfig_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: TunerUnit number
+ UInt32 uItemId, // I: Identifier of the item to modify
+ UInt32 uValue // I: Value to set for the Config item
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ UInt8* pI2CMap;
+ UInt32* pDataMap;
+ tmErrorCode_t ret = TM_OK;
+
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the instance number
+ if (TunerUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ //--------------
+ // set the value
+ //--------------
+ switch((tmTDA18271cfgIndex_t_C2_Askey)uItemId)
+ {
+ case BOARD_C2_Askey:
+ switch (uValue & 0xffff0000)
+ {
+ case OM5776_BOARD_DEF:
+ case OM5780_BOARD_DEF:
+ case OM5782_BOARD_DEF:
+ case OM5764_BOARD_DEF:
+ /*pObj->Config.uXTOUT = 1;
+ pObj->I2CMap.XTout_ON = 1;*/
+ break;
+ case OM5770C2_BOARD_DEF & 0xffff0000:
+ case OM5775_BOARD_DEF:
+ case OM5777_BOARD_DEF:
+ case CUSTOM_BOARD_DEF:
+ // do nothing more than setting the default values
+ break;
+ default:
+ // board not supported
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ }
+ // store board
+ gTDA18271Instance_C2_Askey[TunerUnit].Config.uBoard = uValue;
+ break;
+
+ case FEINIT_C2_Askey:
+ if(TDA18271Init_C2_Askey(TunerUnit) == TMBSL_ERR_IIC_ERR_C2_Askey)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case RF_C2_Askey:
+ // set RF_C2_Askey frequency
+ pObj->Config.uRF = uValue;
+ break;
+
+ case IF_C2_Askey:
+ // set IF_C2_Askey frequency
+ pObj->Config.uIF = uValue;
+ break;
+
+ case PLMODE_C2_Askey:
+ // set uPLMODE_C2_Askey
+ pObj->Config.uPLMODE = uValue;
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case PLRUN_C2_Askey:
+ // switch AGC2_C2_Askey power detector on
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x00;
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2_Askey(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // switch power level indicator on
+ pObj->Config.uPLMODE = 0x00;
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 20 ms for charge pump source
+ if (TDA18271Wait_C2_Askey(pObj,20) == False)
+ return TM_FALSE;
+
+ // read bytes 0x00 to 0x0F
+ if (TDA18271Read_C2_Askey (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // switch power level indicator off
+ pObj->Config.uPLMODE = 0x01;
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // switch AGC2 power detector off
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x01;
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2_Askey(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ break;
+
+ case POWERSTATE_C2_Askey:
+ // set POWERSTATE
+ TDA18271SetPowerState_C2_Askey (pObj, (tmTDA18271PowerState_t_C2_Askey)uValue);
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case STANDARDMODE_C2_Askey:
+ // set STANDARDMODE_C2_Askey
+ TDA18271SetStandardMode_C2_Askey (pObj, (tmTDA18271StandardMode_t_C2_Askey)uValue);
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+ // write bytes EASY_PROG_BYTE_3 & EASY_PROG_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x05,2) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ // write MAIN_POST_DIV_BYTE
+ if (TDA18271Write_C2_Askey(pObj,0x0C,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ // write byte EXTENDED_BYTE_22
+ if (TDA18271Write_C2_Askey(pObj,0x25,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case LPFC_C2_Askey:
+ // set LP_Fc_C2_Askey
+ pObj->I2CMap.uBx05.bF.Std = (pObj->I2CMap.uBx05.bF.Std & 0xFC) | ((UInt8)uValue & 0x03);
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case XTOUT_C2_Askey:
+ // set XTout_ON_C2_Askey
+ pObj->I2CMap.uBx06.bF.XTout_ON = (UInt8)(uValue) >> 1;
+ // set Xtout_400mV
+ pObj->I2CMap.uBx06.bF.Xtout_400mV = (UInt8)(uValue) & 0x01;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case IFLEVEL_C2_Askey:
+ // set IF_Level_C2_Askey
+ pObj->I2CMap.uBx06.bF.IF_Level = (UInt8)uValue;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case EXTENDEDREG_C2_Askey:
+ // set Extended_Reg_C2_Askey
+ pObj->I2CMap.uBx07.bF.Extended_Reg = (UInt8)uValue;
+ // write byte EASY_PROG_BYTE_5
+ if (TDA18271Write_C2_Askey(pObj,0x07,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case MAPNAME_C2_Askey:
+ // set map name
+ pObj->Config.uMAPNAME = uValue;
+ break;
+
+ case MAPCOLUMN_C2_Askey:
+ // set map x
+ pObj->Config.uMAPCOLUMN = uValue;
+ break;
+
+ case MAPROW_C2_Askey:
+ // set map y
+ pObj->Config.uMAPROW = uValue;
+ break;
+
+ case MAPVALUE_C2_Askey:
+ // set pointer on wanted cell
+ switch (pObj->Config.uMAPNAME)
+ {
+ case tmTDA18271_IR_MEAS_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_MEAS_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_IR_MEAS_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.IR_MEAS_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_IR_CAL_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_CAL_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_IR_CAL_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.IR_CAL_Map[pObj->Config.uMAPROW].uRF);
+ break;
+
+ case tmTDA18271_BP_FILTER_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_BP_FILTER_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_BP_FILTER_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.BP_FILTER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_BAND_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_BAND_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_BAND_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_BAND_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_GAIN_TAPER_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_GAIN_TAPER_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_GAIN_TAPER_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.GAIN_TAPER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_DC_OVER_DT_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_DC_OVER_DT_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_DC_OVER_DT_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_KMCO_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_KMCO_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_KMCO_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_KMCO_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_CID_TARGET_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_CID_TARGET_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_CID_TARGET_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_THERMOMETER_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_THERMOMETER_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_THERMOMETER_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.THERMOMETER_Map[pObj->Config.uMAPROW].uTM_D);
+ break;
+
+ case tmTDA18271_CAL_PLL_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_CAL_PLL_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_CAL_PLL_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.CAL_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_MAIN_PLL_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_MAIN_PLL_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_MAIN_PLL_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.MAIN_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_I2C_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > 0) || (pObj->Config.uMAPROW > TDA18271_NB_BYTES_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pI2CMap initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + pObj->Config.uMAPROW;
+ break;
+ }
+
+ // set cell value
+ if (pObj->Config.uMAPNAME == tmTDA18271_I2C_Map_C2_Askey)
+ *(pI2CMap + (UInt8)pObj->Config.uMAPCOLUMN) = (UInt8)uValue;
+ else
+ *(pDataMap + pObj->Config.uMAPCOLUMN) = uValue;
+ break;
+
+ case PROTOCOLSTEP_C2_Askey:
+ // set channel configuration protocol steps to execute
+ pObj->Config.uPROTOCOLSTEP = uValue;
+ break;
+
+ case READINIT_C2_Askey:
+ // read bytes 0x00 to 0x26
+ if (TDA18271Read_C2_Askey (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ if (uValue == 1)
+ {
+ // initialize device
+ if(TDA18271Init_C2_Askey(TunerUnit) == TMBSL_ERR_IIC_ERR_C2_Askey)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ }
+ break;
+ }
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetConfig_C2_Askey:
+//
+// DESCRIPTION: Get the Config of the TDA18271_C2_Askey
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetConfig_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uItemId, // I: Identifier of the item to get value
+ UInt32* puValue // I: Address of the variable to output the Config item value
+ )
+{
+ UInt32 uCounter = 0;
+
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ UInt8* pI2CMap;
+ UInt32* pDataMap;
+ UInt32 uByte=0;
+ tmErrorCode_t ret = TM_OK;
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ //--------------
+ // get the value
+ //--------------
+ switch((tmTDA18271cfgIndex_t_C2_Askey)uItemId)
+ {
+ case BOARD_C2_Askey:
+ // get board
+ *puValue = pObj->Config.uBoard;
+ break;
+
+ case RF_C2_Askey:
+ // get RF_C2_Askey frequency
+ *puValue = pObj->Config.uRF;
+ break;
+
+ case IF_C2_Askey:
+ // get IF frequency
+ *puValue = pObj->Config.uIF;
+ break;
+
+ case STATUSBYTE_C2_Askey:
+ // read bytes 0x00 to 0x26
+ if (TDA18271Read_C2_Askey (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case GETNBOFUNIT_C2_Askey:
+ *puValue = TDA18271_MAX_UNITS_C2_Askey;
+ break;
+
+ case ID_C2_Askey:
+ // get ID_C2_Askey value
+ *puValue = pObj->I2CMap.uBx00.bF.ID;
+ break;
+
+ case POR_C2_Askey:
+ // get POR_C2_Askey value
+ *puValue = pObj->I2CMap.uBx01.bF.POR;
+ break;
+
+ case MAINLOCK_C2_Askey:
+ // get MAINLOCK value
+ *puValue = TunerUnit == 0 ? pObj->I2CMap.uBx01.bF.MAIN_Lock : pObj->I2CMap.uBx16.bF.CAL_Lock;
+ break;
+
+ case TMVALUE_C2_Askey:
+ // read byte THERMO_BYTE
+ if (TDA18271ThermometerRead_C2_Askey(pObj, puValue) != TM_OK || pObj->I2CMap.uBx05.bF.SM == 1)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ case PLMODE_C2_Askey:
+ // get PLMODE value
+ *puValue = pObj->Config.uPLMODE;
+ break;
+
+ case PLAGC1_C2_Askey:
+ // get PLAGC1 value
+ *puValue = 3 * (2 + ((pObj->I2CMap.uBx02.bF.Power_Level_7_to_0 & 0x7F) >> 5));
+ break;
+
+ case PLAGC2_C2_Askey:
+ // get PLAGC2 value
+ *puValue = 3 * (2 + (3 - (pObj->I2CMap.uBx03.bF.Power_Level_8 << 1 | pObj->I2CMap.uBx02.bF.Power_Level_7_to_0 >> 7)));
+ break;
+
+ case PLRFAGC_C2_Askey:
+ // get PLRFAGC value (PLRFAGC = PLRFAGC - 11)
+ if (((pObj->I2CMap.uBx25.EXTENDED_BYTE_22 & 0x7F) >> 4) < 5)
+ *puValue = 11 + (92 + 2 * ((pObj->I2CMap.uBx25.EXTENDED_BYTE_22 & 0x7F) >> 4)) - (103 - (pObj->I2CMap.uBx02.bF.Power_Level_7_to_0 & 0x1F));
+ else
+ *puValue = 11 + 102 - (103 - (pObj->I2CMap.uBx02.bF.Power_Level_7_to_0 & 0x1F));
+ // limit PLRFAGC value
+ if (*puValue > 33)
+ *puValue = 33;
+ else if (*puValue < 1)
+ *puValue = 1;
+ break;
+
+ case RFCALOK_C2_Askey:
+ // get RFCALOK value
+ *puValue = pObj->I2CMap.uBx03.bF.RF_CAL_OK;
+ break;
+
+ case RFCAL_TCOMP_C2_Askey:
+ // get RFCAL_TCOMP value
+ *puValue = pObj->Config.uRFCAL_TCOMP;
+ break;
+
+ case IRCALOK_C2_Askey:
+ // get IRCALOK value
+ *puValue = pObj->I2CMap.uBx03.bF.IR_CAL_OK;
+ break;
+
+ case BPFILTER_C2_Askey:
+ // get BPFILTER value
+ *puValue = pObj->I2CMap.uBx03.bF.BP_Filter;
+ break;
+
+ case RFBAND_C2_Askey:
+ // get RFBAND_C2_Askey value
+ *puValue = pObj->I2CMap.uBx04.bF.RF_Band;
+ break;
+
+ case GAINTAPER_C2_Askey:
+ // get GAINTAPER_C2_Askey value
+ *puValue = pObj->I2CMap.uBx04.bF.Gain_Taper;
+ break;
+
+ case POWERSTATE_C2_Askey:
+ // get POWERSTATE_C2_Askey
+ TDA18271GetPowerState_C2_Askey(pObj,(ptmTDA18271PowerState_t_C2_Askey)puValue);
+ break;
+
+ case LPFC_C2_Askey:
+ // get LPFC_C2_Askey value
+ *puValue = pObj->I2CMap.uBx05.bF.Std & 0x03;
+ break;
+
+ case FMRFN_C2_Askey:
+ // get FMRFN_C2_Askey value
+ *puValue = pObj->I2CMap.uBx06.bF.FM_RFn;
+ break;
+
+ case STANDARDMODE_C2_Askey:
+ // get STANDARDMODE_C2_Askey
+ TDA18271GetStandardMode_C2_Askey(pObj, (ptmTDA18271StandardMode_t_C2_Askey)puValue);
+ break;
+
+ case XTOUT_C2_Askey:
+ // get XTout_ON & Xtout_400mV value
+ *puValue = (UInt32)(pObj->I2CMap.uBx06.bF.XTout_ON << 1 | pObj->I2CMap.uBx06.bF.Xtout_400mV);
+ break;
+
+ case IFLEVEL_C2_Askey:
+ // get IFLEVEL_C2_Askey value
+ *puValue = pObj->I2CMap.uBx06.bF.IF_Level;
+ break;
+
+ case EXTENDEDREG_C2_Askey:
+ // get EXTENDEDREG_C2_Askey value
+ *puValue = pObj->I2CMap.uBx07.bF.Extended_Reg;
+ break;
+
+ case CALPOSTDIV_C2_Askey:
+ // get CALPOSTDIV_C2_Askey value
+ *puValue = pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE & 0x7F;
+ break;
+
+ case CALDIV_C2_Askey:
+ // get CALDIV_C2_Askey value
+ *puValue = pObj->I2CMap.uBx09.bF.CAL_Div_22_to_16 << 16 | pObj->I2CMap.uBx0A.bF.CAL_Div_15_to_8 << 8 | pObj->I2CMap.uBx0B.bF.CAL_Div_7_to_0;
+ break;
+
+ case MAINPOSTDIV_C2_Askey:
+ // get MAINPOSTDIV_C2_Askey value
+ *puValue = pObj->I2CMap.uBx0C.bF.MAIN_Post_Div;
+ break;
+
+ case MAINDIV_C2_Askey:
+ // get MAINDIV_C2_Askey value
+ *puValue = pObj->I2CMap.uBx0D.bF.MAIN_Div_22_to_16 << 16 | pObj->I2CMap.uBx0E.bF.MAIN_Div_15_to_8 << 8 | pObj->I2CMap.uBx0F.bF.MAIN_Div_7_to_0;
+ break;
+
+ case MAPVALUE_C2_Askey:
+ // set pointer on wanted cell
+ switch (pObj->Config.uMAPNAME)
+ {
+ case tmTDA18271_IR_MEAS_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_MEAS_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_IR_MEAS_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.IR_MEAS_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_IR_CAL_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_IR_CAL_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_IR_CAL_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.IR_CAL_Map[pObj->Config.uMAPROW].uRF);
+ break;
+
+ case tmTDA18271_BP_FILTER_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_BP_FILTER_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_BP_FILTER_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.BP_FILTER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_BAND_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_BAND_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_BAND_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_BAND_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_GAIN_TAPER_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_GAIN_TAPER_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_GAIN_TAPER_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.GAIN_TAPER_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_DC_OVER_DT_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_DC_OVER_DT_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_DC_OVER_DT_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_KMCO_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_KMCO_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_KMCO_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_KMCO_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_RF_CAL_CID_TARGET_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_RF_CAL_CID_TARGET_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.RF_CAL_CID_TARGET_Map[pObj->Config.uMAPROW].uRF_Max);
+ break;
+
+ case tmTDA18271_THERMOMETER_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_THERMOMETER_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_THERMOMETER_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.THERMOMETER_Map[pObj->Config.uMAPROW].uTM_D);
+ break;
+
+ case tmTDA18271_CAL_PLL_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_CAL_PLL_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_CAL_PLL_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.CAL_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_MAIN_PLL_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > TDA18271_MAIN_PLL_NB_COLUMNS_C2_Askey - 1) || (pObj->Config.uMAPROW > TDA18271_MAIN_PLL_NB_ROWS_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pDataMap initialization
+ pDataMap = &(pObj->Config.MAIN_PLL_Map[pObj->Config.uMAPROW].uLO_Max);
+ break;
+
+ case tmTDA18271_I2C_Map_C2_Askey:
+ // test map column & row
+ if ((pObj->Config.uMAPCOLUMN > 0) || (pObj->Config.uMAPROW > TDA18271_NB_BYTES_C2_Askey - 1))
+ return TM_ERR_NOT_SUPPORTED_C2_Askey;
+ // pI2CMap initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + pObj->Config.uMAPROW;
+ break;
+ }
+ // get cell value
+ if (pObj->Config.uMAPNAME == tmTDA18271_I2C_Map_C2_Askey)
+ *puValue = *(pI2CMap + pObj->Config.uMAPCOLUMN);
+ else
+ *puValue = *(pDataMap + pObj->Config.uMAPCOLUMN);
+ break;
+
+ case PROTOCOLSTEP_C2_Askey:
+ // get channel configuration protocol steps
+ *puValue = pObj->Config.uPROTOCOLSTEP;
+ break;
+
+ // backdoor functions
+ case IDENTITY_C2_Askey:
+ _SYSTEMFUNC.SY_Read_C2_Askey( pObj->uHwAddress, TDA18271_IDENTITY_IND_C2_Askey, 1, &uByte);
+ /*if (uByte != 0x82)
+ *puValue = False;
+ else
+ *puValue = True;
+ */
+ switch (pObj->Config.uBoard & 0xffff0000)
+ {
+ case 0x57750000:
+ *puValue = True;
+ break;
+ default:
+ *puValue = False;
+ break;
+ }
+ break;
+
+ }
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271SetRf_C2_Askey:
+//
+// DESCRIPTION: Calculate i2c I2CMap & write in TDA18271_C2_Askey
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TMBSL_ERR_TUNER_BAD_PARAMETER
+// TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271SetRf_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uRF // I: RF frequency in hertz
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj;
+ tmErrorCode_t ret = TM_OK;
+
+ UInt32 uCounter = 0;
+ UInt32 uTMVALUE_CURRENT = 0;
+ UInt8 utmpStd = 0;
+
+ UInt8 uCprog_table = 0;
+ Int32 uCapprox = 0;
+ Int32 uCprog_signed = 0;
+
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // Config.uRF update
+ pObj->Config.uRF = uRF;
+
+ //----------------------
+ // configuration reset
+ //----------------------
+ // set power level indicator to off
+ pObj->Config.uPLMODE = 1;
+
+ //----------------------
+ // normal mode restore
+ //----------------------
+ // power up in calibration standard
+ pObj->I2CMap.uBx05.bF.SM = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x5,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //----------------------
+ // RF tracking filter correction
+ //----------------------
+ // sense temperature
+ ret = TDA18271ThermometerRead_C2_Askey(pObj, &uTMVALUE_CURRENT);
+ if (ret != TM_OK)
+ return ret;
+
+ //----------------------
+ // frequency dependent parameters update
+ //----------------------
+ // search for uCprog_table corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2_Askey);
+ uCprog_table = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ // search for sub-band corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS_C2_Askey);
+
+ // calculate Capprox
+ if (pObj->Config.RF_BAND_Map[uCounter - 1].uRF1 == 0)
+ {
+ // Capprox = uCprog_table
+ uCapprox = (Int32)uCprog_table;
+ }
+ else if ((pObj->Config.RF_BAND_Map[uCounter - 1].uRF3 != 0) && (uRF >= pObj->Config.RF_BAND_Map[uCounter - 1].uRF2))
+ {
+ // Capprox = A2 * (uRF - uRF2) + B2 + uCprog_table
+ uCapprox = (Int32)(((pObj->Config.RF_BAND_Map[uCounter - 1].uRF_A2 * ((Int32)(uRF - pObj->Config.RF_BAND_Map[uCounter - 1].uRF2) / 1000000)) / 1000000)
+ + pObj->Config.RF_BAND_Map[uCounter - 1].uRF_B2 + uCprog_table);
+ }
+ else
+ {
+ // Capprox = A1 * (uRF - uRF1) + B1 + uCprog_table
+ uCapprox = (Int32)(((pObj->Config.RF_BAND_Map[uCounter - 1].uRF_A1 * ((Int32)(uRF - pObj->Config.RF_BAND_Map[uCounter - 1].uRF1) / 1000000)) / 1000000)
+ + pObj->Config.RF_BAND_Map[uCounter - 1].uRF_B1 + uCprog_table);
+ }
+
+ // search for udC_Over_dT corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_CAL_DC_OVER_DT_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2_Askey);
+
+ // calculate CTcomp
+ pObj->Config.uRFCAL_TCOMP = (Int32)(pObj->Config.RF_CAL_DC_OVER_DT_Map[uCounter - 1].udC_Over_dT * (uTMVALUE_CURRENT - pObj->Config.uTMVALUE_RFCAL)) / 1000;
+
+ // calculate Cprog
+ uCprog_signed = uCapprox + pObj->Config.uRFCAL_TCOMP;
+ if (uCprog_signed < 0) uCprog_signed = 0;
+ if (uCprog_signed > 255) uCprog_signed = 255;
+ pObj->I2CMap.uBx1D.RFC_Cprog = (UInt8)uCprog_signed;
+
+ // write byte RFC_Cprog
+ if (TDA18271Write_C2_Askey(pObj,0x1D,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //----------------------
+ // standard mode update
+ //----------------------
+ // update TV broadcast parameters
+ ret = TDA18271SetStandardMode_C2_Askey(pObj, pObj->StandardMode);
+ if (ret != TM_OK)
+ return ret;
+
+ // switch RFAGC to high speed mode (store current value)
+ utmpStd = pObj->I2CMap.uBx05.bF.Std;
+ pObj->I2CMap.uBx05.bF.Std &= 0x1B;
+
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x5,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+#ifdef TMBSL_TDA18271_FREEZE_AGC_C2_Askey
+ /////////////////////////////////////////////
+ //----------------------
+ // unfreeze AGC 1&2 detectors for secam L only
+ //----------------------
+ switch (pObj->StandardMode)
+ {
+ case tmAnalog_TV_L_C2_Askey:
+ case tmAnalog_TV_LL_C2_Askey:
+ // switch to digital mode
+ pObj->I2CMap.uBx05.bF.Std |= 0x10;
+
+ // start AGC1
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x00;
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x00;
+
+ // start AGC2
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x00;
+ pObj->I2CMap.uBx24.bF.AGC2_loop_off = 0x00;
+
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ default:
+ // start AGC1
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x00;
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x00;
+
+ // freeze AGC2 (set AGC2Gain = -6dB)
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x01;
+ pObj->I2CMap.uBx24.bF.AGC2_loop_off = 0x01;
+ pObj->I2CMap.uBx24.bF.AGC2_Gain = 0x03;
+ break;
+ }
+
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2_Askey(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2_Askey(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+#endif // TMBSL_TDA18271_FREEZE_AGC_C2_Askey
+
+ // write bytes EXTENDED_BYTE_21 to EXTENDED_BYTE_23
+ if (TDA18271Write_C2_Askey(pObj,0x24,3) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+#ifdef TMBSL_TDA18271_FREEZE_AGC_C2_Askey
+ switch (pObj->StandardMode)
+ {
+ case tmAnalog_TV_L_C2_Askey:
+ case tmAnalog_TV_LL_C2_Askey:
+ // wait 1 s for AGC 1&2 startup
+ TDA18271Wait_C2_Askey(pObj,1000);
+ break;
+ }
+ /////////////////////////////////////////////
+#endif // TMBSL_TDA18271_FREEZE_AGC_C2_Askey
+
+ //----------------------
+ // update frequency dependent parameters
+ //----------------------
+ // search for IR_Meas corresponding to wanted frequency
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.IR_MEAS_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_IR_MEAS_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx07.bF.IR_Meas = (UInt8)pObj->Config.IR_MEAS_Map[uCounter - 1].uIR_Meas;
+
+ // search for BP_Filter corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.BP_FILTER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_BP_FILTER_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx03.bF.BP_Filter = (UInt8)pObj->Config.BP_FILTER_Map[uCounter - 1].uBP_Filter;
+
+ // search for RF_BAND corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx04.bF.RF_Band = (UInt8)pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Band;
+
+ // search for Gain_Taper corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.GAIN_TAPER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_GAIN_TAPER_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx04.bF.Gain_Taper = (UInt8)pObj->Config.GAIN_TAPER_Map[uCounter - 1].uGain_Taper;
+
+ //---------------------
+ // dual tuner and AGC1 extra configuration management
+ //---------------------
+ // use MAIN VCO when master, CAL VCO when slave
+ pObj->I2CMap.uBx10.bF.CALVCO_forLOn = (TunerUnit == 0) ? 1 : 0;
+
+ // AGC1 & AGC2 management
+ pObj->I2CMap.uBx10.bF.AGC1_always_mastern = 0x00;
+ pObj->I2CMap.uBx10.bF.AGC1_firstn = 0x00;
+
+ // write byte EXTENDED_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x10,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //---------------------
+ // tune to wanted channel frequency
+ //---------------------
+ // use MAIN VCO when master, CAL VCO when slave
+ if (TunerUnit == 0) // master
+ {
+ // calculate MAIN PLL
+ if (TDA18271CalcMAINPLL_C2_Askey(pObj, uRF + pObj->Config.uIF) == False)
+ return TM_FALSE;
+
+ // write bytes 0x01 to 0x0F
+ if (TDA18271Write_C2_Askey(pObj,0x01,15) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // MAIN pll charge pump source
+ pObj->I2CMap.uBx13.bF.LO_ForceSrce = 0x01;
+ // write byte EXTENDED_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 1 ms for charge pump source
+ if (TDA18271Wait_C2_Askey(pObj,1) == False)
+ return TM_FALSE;
+
+ // MAIN pll normal operation
+ pObj->I2CMap.uBx13.bF.LO_ForceSrce = 0x00;
+ // write byte EXTENDED_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ }
+ else // slave
+ {
+ // calculate CAL PLL
+ if (TDA18271CalcCALPLL_C2_Askey(pObj, uRF + pObj->Config.uIF) == False)
+ return TM_FALSE;
+
+ // copy CAL PLL PostDiv to MAIN PLL Post Div
+ pObj->I2CMap.uBx0C.bF.MAIN_Post_Div = pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE & 0x77;
+
+ // write bytes 0x01 to 0x0F
+ if (TDA18271Write_C2_Askey(pObj,0x01,15) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // CAL pll charge pump source
+ pObj->I2CMap.uBx16.bF.CAL_ForceSrce = 0x01;
+ // write byte EXTENDED_BYTE_7
+ if (TDA18271Write_C2_Askey(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 1 ms for charge pump source
+ if (TDA18271Wait_C2_Askey(pObj,1) == False)
+ return TM_FALSE;
+
+ // CAL pll normal operation
+ pObj->I2CMap.uBx16.bF.CAL_ForceSrce = 0x00;
+ // write byte EXTENDED_BYTE_7
+ if (TDA18271Write_C2_Askey(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ }
+
+ // wait 20 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,20) == False)
+ return TM_FALSE;
+
+ // switch RFAGC to normal mode (restore previous value)
+ pObj->I2CMap.uBx05.bF.Std = utmpStd;
+
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x5,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+#ifdef TMBSL_TDA18271_FREEZE_AGC_C2_Askey
+ /////////////////////////////////////////////
+ //----------------------
+ // freeze AGC 1&2 detectors for secam L only
+ //----------------------
+ switch (pObj->StandardMode)
+ {
+ case tmAnalog_TV_L_C2_Askey:
+ case tmAnalog_TV_LL_C2_Askey:
+ // switch back to analog mode
+ pObj->I2CMap.uBx05.bF.Std &= 0xEF;
+
+ // freeze AGC1
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x01;
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x01;
+
+ // freeze AGC2
+ pObj->I2CMap.uBx1B.bF.PD_AGC2_Det = 0x01;
+ pObj->I2CMap.uBx24.bF.AGC2_loop_off = 0x01;
+// break;
+
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2_Askey(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2_Askey(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write bytes EXTENDED_BYTE_21
+ if (TDA18271Write_C2_Askey(pObj,0x24,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+
+ default:
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x01;
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x01;
+
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2_Askey(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2_Askey(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ break;
+ }
+ /////////////////////////////////////////////
+#endif // TMBSL_TDA18271_FREEZE_AGC_C2_Askey
+
+ // read bytes 0x00 to 0x26
+ if (TDA18271Read_C2_Askey (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: tmbslTDA18271GetRf_C2_Askey:
+//
+// DESCRIPTION: Get the frequency programmed in the tuner
+//
+// RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+// TMBSL_ERR_TUNER_NOT_INITIALIZED
+// TM_OK
+//
+// NOTES: The value returned is the one stored in the Object
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+tmbslTDA18271GetRf_C2_Askey
+(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32* pRF // O: RF frequency in hertz
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ //----------------------
+ // get the value
+ //----------------------
+ // the read function can't be used
+ *pRF = pObj->Config.uRF;
+
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// Internal functions:
+//-----------------------------------------------------------------------------
+//
+#ifndef NXPFE
+//-----------------------------------------------------------------------------
+// FUNCTION: allocInstance:
+//
+// DESCRIPTION: allocate new instance
+//
+// RETURN:
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+allocInstance_C2_Askey (
+ UInt32 DeviceUnit, // I: Device unit number
+ pptmTDA18271Object_t_C2_Askey ppDrvObject // I: Device Object
+ )
+{
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (DeviceUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // return value
+ return getInstance_C2_Askey(DeviceUnit, ppDrvObject);
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: deAllocInstance:
+//
+// DESCRIPTION: deallocate instance
+//
+// RETURN: always TM_OK
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+deAllocInstance_C2_Askey (
+ UInt32 DeviceUnit // I: Device unit number
+ )
+{
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (DeviceUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // return value
+ return TM_OK;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: getInstance:
+//
+// DESCRIPTION: get the instance
+//
+// RETURN: always True
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+getInstance_C2_Askey (
+ tmUnitSelect_t DeviceUnit, // I: Device unit number
+ pptmTDA18271Object_t_C2_Askey ppDrvObject // I: Device Object
+ )
+{
+ //----------------------
+ // test input parameters
+ //----------------------
+ // test the max number
+ if (DeviceUnit > TDA18271_MAX_UNITS_C2_Askey)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey;
+
+ // get instance
+ *ppDrvObject = &gTDA18271Instance_C2_Askey[DeviceUnit];
+
+ // return value
+ return TM_OK;
+}
+#endif // NXPFE
+
+//-----------------------------------------------------------------------------
+// FUNCTION: TDA18271Init_C2_Askey:
+//
+// DESCRIPTION: initialization of the Tuner
+//
+// RETURN: always True
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271Init_C2_Askey (
+ tmUnitSelect_t TunerUnit // I: Tuner Object
+ )
+{
+ ptmTDA18271Object_t_C2_Askey pObj = Null;
+ tmErrorCode_t ret = TM_OK;
+
+ //------------------------------
+ // test input parameters
+ //------------------------------
+ // pObj initialization
+ ret = getInstance_C2_Askey(TunerUnit, &pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ //----------------------
+ // configuration reset
+ //----------------------
+ // set power level indicator to off
+ pObj->Config.uPLMODE = 1;
+
+ //----------------------
+ // I2C map initialization
+ //----------------------
+ // set & write all bytes
+ pObj->I2CMap.uBx01.THERMO_BYTE = 0x08;
+ pObj->I2CMap.uBx02.POWER_LEVEL_BYTE = 0x80;
+ pObj->I2CMap.uBx03.EASY_PROG_BYTE_1 = 0xC6;
+ pObj->I2CMap.uBx04.EASY_PROG_BYTE_2 = 0xDF;
+ pObj->I2CMap.uBx05.EASY_PROG_BYTE_3 = 0x16;
+ pObj->I2CMap.uBx06.EASY_PROG_BYTE_4 = 0x60;
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x80;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0x80;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x00;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0B.CAL_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.uBx0C.MAIN_POST_DIV_BYTE = 0x00;
+ pObj->I2CMap.uBx0D.MAIN_DIV_BYTE_1 = 0x00;
+ pObj->I2CMap.uBx0E.MAIN_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0F.MAIN_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.uBx10.EXTENDED_BYTE_1 = 0xFC;
+ pObj->I2CMap.uBx11.EXTENDED_BYTE_2 = 0x01;
+ pObj->I2CMap.uBx12.EXTENDED_BYTE_3 = 0x84;
+ pObj->I2CMap.uBx13.EXTENDED_BYTE_4 = 0x41;
+ pObj->I2CMap.uBx14.EXTENDED_BYTE_5 = 0x01;
+ pObj->I2CMap.uBx15.EXTENDED_BYTE_6 = 0x84;
+ pObj->I2CMap.uBx16.EXTENDED_BYTE_7 = 0x40;
+ pObj->I2CMap.uBx17.EXTENDED_BYTE_8 = 0x07;
+ pObj->I2CMap.uBx18.EXTENDED_BYTE_9 = 0x00;
+ pObj->I2CMap.uBx19.EXTENDED_BYTE_10 = 0x00;
+ pObj->I2CMap.uBx1A.EXTENDED_BYTE_11 = 0x96;
+ pObj->I2CMap.uBx1B.EXTENDED_BYTE_12 = 0x3F;
+ pObj->I2CMap.uBx1C.EXTENDED_BYTE_13 = 0xC1;
+ pObj->I2CMap.uBx1D.EXTENDED_BYTE_14 = 0x00;
+ pObj->I2CMap.uBx1E.EXTENDED_BYTE_15 = 0x8F;
+ pObj->I2CMap.uBx1F.EXTENDED_BYTE_16 = 0x00;
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x00;
+ pObj->I2CMap.uBx21.EXTENDED_BYTE_18 = 0x8C;
+ pObj->I2CMap.uBx22.EXTENDED_BYTE_19 = 0x00;
+ pObj->I2CMap.uBx23.EXTENDED_BYTE_20 = 0x20;
+ pObj->I2CMap.uBx24.EXTENDED_BYTE_21 = 0xB3;
+ pObj->I2CMap.uBx25.EXTENDED_BYTE_22 = 0x48;
+ pObj->I2CMap.uBx26.EXTENDED_BYTE_23 = 0xB0;
+ if (TDA18271Write_C2_Askey(pObj,0x01,38) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //----------------------
+ // AGC1 gain setup
+ //----------------------
+ // AGC1_Gain_do
+ // update & write EXTENDED_BYTE_17
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x00; // set gain_do address
+ if (TDA18271Write_C2_Askey(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x03; // keep gain_do address, set gain_do
+ if (TDA18271Write_C2_Askey(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // AGC1_Gain_up
+ // update & write EXTENDED_BYTE_17
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x43; // set gain_up address, keep gain_do
+ if (TDA18271Write_C2_Askey(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ pObj->I2CMap.uBx20.EXTENDED_BYTE_17 = 0x4C; // keep gain_up address, set gain_up
+ if (TDA18271Write_C2_Askey(pObj,0x20,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //----------------------
+ // image rejection calibration - low band
+ //----------------------
+ // initialisation
+ pObj->I2CMap.uBx05.EASY_PROG_BYTE_3 = 0x1F;
+ pObj->I2CMap.uBx06.EASY_PROG_BYTE_4 = 0x66;
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x81;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0xCC;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x6C;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0B.CAL_DIV_BYTE_3 = 0x00;
+ pObj->I2CMap.uBx0C.MAIN_POST_DIV_BYTE = 0xC5;
+ pObj->I2CMap.uBx0D.MAIN_DIV_BYTE_1 = 0x77;
+ pObj->I2CMap.uBx0E.MAIN_DIV_BYTE_2 = 0x08;
+ pObj->I2CMap.uBx0F.MAIN_DIV_BYTE_3 = 0x00;
+ // write bytes EASY_PROG_BYTE_2 to MAIN_DIV_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x04,12) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch detector
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for wanted measurement
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // CAL pll update
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x85;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0xCB;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x66;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x70;
+
+ // write bytes EASY_PROG_BYTE_3 to CAL_DIV_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch optimisation algorithm
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2_Askey(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 30 ms for image optimization completion
+ if (TDA18271Wait_C2_Askey(pObj,30) == False)
+ return TM_FALSE;
+
+ //----------------------
+ // image rejection calibration - mid band
+ //----------------------
+ // initialisation
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x82;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0xA8;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0C.MAIN_POST_DIV_BYTE = 0xA1;
+ pObj->I2CMap.uBx0D.MAIN_DIV_BYTE_1 = 0x73;
+ pObj->I2CMap.uBx0E.MAIN_DIV_BYTE_2 = 0x1A;
+ // write bytes EASY_PROG_BYTE_3 to MAIN_DIV_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch detector
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for wanted measurement
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // CAL pll update
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x86;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0xA8;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x66;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0xA0;
+
+ // write bytes EASY_PROG_BYTE_3 to CAL_DIV_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch optimisation algorithm
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2_Askey(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 30 ms for image optimization completion
+ if (TDA18271Wait_C2_Askey(pObj,30) == False)
+ return TM_FALSE;
+
+ //----------------------
+ // image rejection calibration - high band
+ //----------------------
+ // initialisation
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x83;
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = 0x98;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x65;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x00;
+ pObj->I2CMap.uBx0C.MAIN_POST_DIV_BYTE = 0x91;
+ pObj->I2CMap.uBx0D.MAIN_DIV_BYTE_1 = 0x71;
+ pObj->I2CMap.uBx0E.MAIN_DIV_BYTE_2 = 0xCD;
+ // write bytes EASY_PROG_BYTE_3 to CAL_DIV_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch detector
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for wanted measurement
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // CAL pll update
+ pObj->I2CMap.uBx07.EASY_PROG_BYTE_5 = 0x87;
+ pObj->I2CMap.uBx09.CAL_DIV_BYTE_1 = 0x65;
+ pObj->I2CMap.uBx0A.CAL_DIV_BYTE_2 = 0x50;
+
+ // write bytes EASY_PROG_BYTE_3 to CAL_DIV_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x05,7) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch optimisation algorithm
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2_Askey(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 30 ms for image optimization completion
+ if (TDA18271Wait_C2_Askey(pObj,30) == False)
+ return TM_FALSE;
+
+ //----------------------
+ // back to normal mode
+ //----------------------
+ // update & write byte EASY_PROG_BYTE_4
+ pObj->I2CMap.uBx06.EASY_PROG_BYTE_4 = 0x64;
+ if (TDA18271Write_C2_Askey(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // synchronization
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //----------------------
+ // RF tracking filters calibration
+ //----------------------
+ ret = TDA18271CalcRFFilterCurve_C2_Askey(pObj);
+ if (ret != TM_OK)
+ return ret;
+
+ //----------------------
+ // back to POR mode
+ //----------------------
+ // power up detector 1
+ pObj->I2CMap.uBx1B.bF.PD_AGC1_Det = 0x00;
+ // write byte EXTENDED_BYTE_12
+ if (TDA18271Write_C2_Askey(pObj,0x1B,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // turn AGC1 loop on
+ pObj->I2CMap.uBx21.bF.AGC1_loop_off = 0x00;
+ // set AGC1Gain = 6dB
+ pObj->I2CMap.uBx21.bF.AGC1_Gain = 0x00;
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2_Askey(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // set AGC2Gain = -6dB
+ pObj->I2CMap.uBx24.bF.AGC2_Gain = 0x03;
+
+ // swicth to POR mode
+ pObj->I2CMap.uBx05.bF.SM = 0x01;
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+ pObj->I2CMap.uBx05.bF.SM_XT = 0x00;
+ // write byte EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x5,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // disable 1.5MHz low pass filter
+ pObj->I2CMap.uBx26.bF.ForceLP_Fc2_En = 0x00;
+ pObj->I2CMap.uBx26.bF.LP_Fc = 0x00;
+
+ // write bytes EXTENDED_BYTE_21 to EXTENDED_BYTE_23
+ if (TDA18271Write_C2_Askey(pObj,0x24,3) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ return TM_OK;
+}
+
+
+//-----------------------------------------------------------------------------
+// FUNCTION: TDA18271InitTick_C2_Askey
+//
+// DESCRIPTION: this function will delay for the number of millisecond
+//
+// RETURN: nothing
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+Bool_
+TDA18271InitTick_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait for
+ )
+{
+ UInt32 uCurrentTick;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // get current tick
+ uCurrentTick = _SYSTEMFUNC.SY_GetTickTime();
+
+ // Calculate end tick
+ pObj->uTickEnd = (UInt32)wTime;
+ pObj->uTickEnd += _SYSTEMFUNC.SY_GetTickPeriod()/2;
+ pObj->uTickEnd /= _SYSTEMFUNC.SY_GetTickPeriod();
+ pObj->uTickEnd += uCurrentTick;
+
+ // always add 1 because of rounding issue
+ if (wTime)
+ pObj->uTickEnd++;
+
+ // test overflow
+ if (pObj->uTickEnd < uCurrentTick)
+ return False;
+ else
+ return True;
+}
+
+//-----------------------------------------------------------------------------
+// FUNCTION: TDA18271WaitTick_C2_Askey
+//
+// DESCRIPTION: this function will block for the number of millisecond
+//
+// RETURN: True if time has elapsed else False
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+Bool_
+TDA18271WaitTick_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj // I: Tuner unit number
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // test if time has elapsed
+ if (_SYSTEMFUNC.SY_GetTickTime() >= pObj->uTickEnd)
+ return True;
+ else
+ return False;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Write_C2_Askey
+//
+// DESCRIPTION: This function writes I2C data in the Tuner
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Write_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ )
+{
+ Bool_ I2CCommResult = TM_FALSE;
+
+ UInt8 uCounter;
+ UInt8* pI2CMap;
+ UInt32 WriteBuffer[TDA18271_NB_BYTES_C2_Askey] = {0};
+ UInt32* pWriteBuffer;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // force I2CMap
+ pObj->I2CMap.uBx03.bF.Dis_Power_level = (UInt8)pObj->Config.uPLMODE;
+
+ // pI2CMap & pWriteBuffer initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE);
+ pWriteBuffer = &(WriteBuffer[0]);
+
+ // copy I2CMap data in WriteBuffer
+ for (uCounter = 0; uCounter < TDA18271_NB_BYTES_C2_Askey; uCounter++)
+ {
+ *pWriteBuffer = (UInt32)(*pI2CMap);
+ pWriteBuffer ++;
+ pI2CMap ++;
+ }
+
+ // write data in the Tuner
+ I2CCommResult = _SYSTEMFUNC.SY_Write_C2_Askey( pObj->uHwAddress,
+ uSubAddress,
+ uNbData,
+ &(WriteBuffer[uSubAddress]) );
+
+ // shift I2CLog content
+ TDA18271ShiftLog_C2_Askey (pObj,1);
+
+ // copy written data in I2CLog [0]
+ for (uCounter = uSubAddress; uCounter < uSubAddress + uNbData; uCounter++)
+ pObj->I2CLog [0][uCounter] = WriteBuffer [uCounter];
+
+ // set additional values
+ pObj->I2CLog [0][TDA18271_NB_BYTES_C2_Askey] = pObj->uHwAddress;
+ pObj->I2CLog [0][TDA18271_NB_BYTES_C2_Askey + 1] = I2CCommResult;
+
+ // return value
+ return I2CCommResult;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Read_C2_Askey
+//
+// DESCRIPTION: This function reads I2C data from the Tuner
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Read_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ )
+{
+ Bool_ I2CCommResult = TM_FALSE;
+
+ UInt8 uCounter;
+ UInt8* pI2CMap;
+ UInt32 ReadBuffer[TDA18271_NB_BYTES_C2_Askey] = {0};
+ UInt32* pReadBuffer;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // pI2CMap & pReadBuffer initialization
+ pI2CMap = &(pObj->I2CMap.uBx00.ID_BYTE) + uSubAddress;
+ pReadBuffer = &(ReadBuffer[uSubAddress]);
+
+ // read data from the Tuner
+ I2CCommResult = _SYSTEMFUNC.SY_Read_C2_Askey( pObj->uHwAddress,
+ 0,
+ uSubAddress + uNbData,
+ &(ReadBuffer[0]));
+
+ // copy readen data in I2CMap
+ for (uCounter = 0; uCounter < uNbData; uCounter++)
+ {
+ *pI2CMap = (UInt8)(*pReadBuffer);
+ pI2CMap ++;
+ pReadBuffer ++;
+ }
+
+ // shift I2CLog content
+ TDA18271ShiftLog_C2_Askey (pObj,1);
+
+ // copy readen data in I2CLog [0]
+ for (uCounter = uSubAddress; uCounter < uSubAddress + uNbData; uCounter++)
+ pObj->I2CLog [0][uCounter] = ReadBuffer [uCounter];
+
+ // set additional values
+ pObj->I2CLog [0][TDA18271_NB_BYTES_C2_Askey] = pObj->uHwAddress + 1;
+ pObj->I2CLog [0][TDA18271_NB_BYTES_C2_Askey + 1] = I2CCommResult;
+
+ // return value
+ return I2CCommResult;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271Wait_C2_Askey
+//
+// DESCRIPTION: This function waits for requested time
+//
+// RETURN: True or False
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271Wait_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait for
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ User_delay( pObj->AFAInfo_C2_Askey.demodulator, wTime);
+ // Return value
+ return True;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271ShiftLog_C2_Askey
+//
+// DESCRIPTION: Shift I2CLog content of wanted lines
+//
+// RETURN: True
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271ShiftLog_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt32 uNbRows // I: nb of lines
+ )
+{
+ UInt32 uRow;
+ UInt8 uColumn;
+ UInt32 uCounter;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // Shift I2CLog content of wanted lines
+ for (uCounter = 0; uCounter < uNbRows; uCounter++)
+ {
+ for (uRow = TDA18271_LOG_NB_ROWS_C2_Askey - 1; uRow > 0; uRow--)
+ {
+ for (uColumn = 0; uColumn < TDA18271_NB_BYTES_C2_Askey + 2; uColumn++)
+ pObj->I2CLog [uRow][uColumn] = pObj->I2CLog [uRow - 1][uColumn];
+ }
+
+ for (uColumn = 0; uColumn < TDA18271_NB_BYTES_C2_Askey + 2; uColumn++)
+ pObj->I2CLog [0][uColumn] = TDA18271_LOG_BLANK_DATA_C2_Askey;
+ }
+
+ // Return value
+ return True;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcMAINPLL_C2_Askey:
+//
+// DESCRIPTION: Calculate the MAIN fractionnal PLL settings
+//
+// RETURN: True or False
+//
+// NOTES: This function doesn't write in the tuner
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271CalcMAINPLL_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ )
+{
+ UInt8 uCounter = 0;
+ UInt32 uDiv;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // search for MAIN_Post_Div corresponding to uLO
+ do uCounter ++;
+ while (uLO > pObj->Config.MAIN_PLL_Map[uCounter - 1].uLO_Max && uCounter < TDA18271_MAIN_PLL_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx0C.bF.MAIN_Post_Div = ((UInt8)pObj->Config.MAIN_PLL_Map[uCounter - 1].uPost_Div) & 0x77;
+
+ // calculate MAIN_Div
+ uDiv = (((UInt32)(pObj->Config.MAIN_PLL_Map[uCounter - 1].uDiv) * (uLO / 1000)) << 7) / 125;
+ pObj->I2CMap.uBx0D.bF.MAIN_Div_22_to_16 = (UInt8)(uDiv >> 16) & 0x7F;
+ pObj->I2CMap.uBx0E.bF.MAIN_Div_15_to_8 = (UInt8)(uDiv >> 8);
+ pObj->I2CMap.uBx0F.bF.MAIN_Div_7_to_0 = (UInt8)(uDiv);
+
+ return True;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcCALPLL_C2_Askey:
+//
+// DESCRIPTION: Calculate the CAL fractionnal PLL settings
+//
+// RETURN: True or False
+//
+// NOTES: This function doesn't write in the tuner
+//-------------------------------------------------------------------------------------
+//
+Bool_
+TDA18271CalcCALPLL_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ )
+{
+ UInt8 uCounter = 0;
+ UInt32 uDiv;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return False;
+
+ // search for CAL_Post_Div corresponding to uLO
+ do uCounter ++;
+ while (uLO > pObj->Config.CAL_PLL_Map[uCounter - 1].uLO_Max && uCounter < TDA18271_CAL_PLL_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx08.CAL_POST_DIV_BYTE = (UInt8)pObj->Config.CAL_PLL_Map[uCounter - 1].uPost_Div;
+
+ // calculate CAL_Div
+ uDiv = (((UInt32)(pObj->Config.CAL_PLL_Map[uCounter - 1].uDiv) * (uLO / 1000)) << 7) / 125;
+ pObj->I2CMap.uBx09.bF.CAL_Div_22_to_16 = (UInt8)(uDiv >> 16) & 0x7F;
+ pObj->I2CMap.uBx0A.bF.CAL_Div_15_to_8 = (UInt8)(uDiv >> 8);
+ pObj->I2CMap.uBx0B.bF.CAL_Div_7_to_0 = (UInt8)(uDiv);
+
+ return True;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalibrateRF_C2_Askey:
+//
+// DESCRIPTION: RF tracking filter calibration
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271CalibrateRF_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ UInt32 uRF, // I: RF frequency in hertz
+ UInt8* puCprog // I: Address of the variable to output the Cprog value
+ )
+{
+ UInt32 uCounter = 0;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ //------------------------------
+ // initialization
+ //------------------------------
+ // set CAL_Mode to normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // set AGC1Gain = 15dB
+ pObj->I2CMap.uBx21.bF.AGC1_Gain = 0x03;
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2_Askey(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // switch off AGC1
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x01;
+
+ //------------------------------
+ // frequency dependent parameters update
+ //------------------------------
+ // search for BP_Filter corresponding to uRF
+ uCounter=0;
+ do uCounter ++;
+ while (uRF > pObj->Config.BP_FILTER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_BP_FILTER_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx03.bF.BP_Filter = (UInt8)pObj->Config.BP_FILTER_Map[uCounter - 1].uBP_Filter;
+
+ // search for Gain_Taper corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.GAIN_TAPER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_GAIN_TAPER_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx04.bF.Gain_Taper = (UInt8)pObj->Config.GAIN_TAPER_Map[uCounter - 1].uGain_Taper;
+
+ // search for RF_BAND corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx04.bF.RF_Band = (UInt8)pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Band;
+
+ // search for K,M corresponding to uRF
+ uCounter=0;
+ do uCounter ++;
+ while (uRF > pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_KMCO_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx1C.bF.RFC_K = (UInt8)pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uK;
+ pObj->I2CMap.uBx1C.bF.RFC_M = (UInt8)pObj->Config.RF_CAL_KMCO_Map[uCounter - 1].uM;
+
+ // write bytes EASY_PROG_BYTE_1 to EASY_PROG_BYTE_3
+ if (TDA18271Write_C2_Askey(pObj,0x03,3) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EXTENDED_BYTE_13
+ if (TDA18271Write_C2_Askey(pObj,0x1C,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // MAIN pll charge pump source
+ pObj->I2CMap.uBx13.bF.LO_ForceSrce = 0x01;
+ // write byte EXTENDED_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // CAL pll charge pump source
+ pObj->I2CMap.uBx16.bF.CAL_ForceSrce = 0x01;
+ // write byte EXTENDED_BYTE_7
+ if (TDA18271Write_C2_Askey(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // force DCDC converter to 0V
+ pObj->I2CMap.uBx1D.RFC_Cprog = 0x00;
+ // write byte EXTENDED_BYTE_14
+ if (TDA18271Write_C2_Askey(pObj,0x1D,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // disable plls lock
+ pObj->I2CMap.uBx23.bF.Force_Lock = 0x00;
+ // write byte EXTENDED_BYTE_20
+ if (TDA18271Write_C2_Askey(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // RF tracking filters calibration mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x03;
+
+ // write bytes EASY_PROG_BYTE_4 & EASY_PROG_BYTE_5
+ if (TDA18271Write_C2_Askey(pObj,0x06,2) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //------------------------------
+ // set internal calibration signals
+ //------------------------------
+ // calculate CAL PLL
+ // CAL LO Frequency = channel center frequency
+ if (TDA18271CalcCALPLL_C2_Askey(pObj, uRF) == False)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // calculate MAIN PLL
+ // MAIN LO Frequency = channel center frequency + 1MHz
+ if (TDA18271CalcMAINPLL_C2_Askey(pObj, uRF + RF_CAL_IF_FREQ_C2_Askey) == False)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write bytes 0x05 to 0x0F
+ if (TDA18271Write_C2_Askey(pObj,0x05,11) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for RF tracking filter calibration initialization
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //------------------------------
+ // internal synchronization
+ //------------------------------
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2_Askey(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2_Askey(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //------------------------------
+ // RF calibration launch
+ //------------------------------
+ // MAIN pll charge pump source
+ pObj->I2CMap.uBx13.bF.LO_ForceSrce = 0x00;
+ // write byte EXTENDED_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x13,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // CAL pll charge pump source
+ pObj->I2CMap.uBx16.bF.CAL_ForceSrce = 0x00;
+ // write byte EXTENDED_BYTE_7
+ if (TDA18271Write_C2_Askey(pObj,0x16,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 10 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,10) == False)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // launch the RF tracking filters calibartion
+ pObj->I2CMap.uBx23.bF.Force_Lock = 0x01;
+ // write byte EXTENDED_BYTE_20
+ if (TDA18271Write_C2_Askey(pObj,0x23,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 60 ms for calibration
+ if (TDA18271Wait_C2_Askey(pObj,60) == False)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // normal mode
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+
+ // set AGC1Gain = 6dB
+ pObj->I2CMap.uBx21.bF.AGC1_Gain = 0x00;
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2_Askey(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // switch on AGC1
+ pObj->I2CMap.uBx05.bF.SM_LT = 0x00;
+
+ // write bytes EASY_PROG_BYTE_3 & EASY_PROG_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x05,2) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EASY_PROG_BYTE_1
+ if (TDA18271Write_C2_Askey(pObj,0x03,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // read bytes 0x00 to 0x26
+ if (TDA18271Read_C2_Askey (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // update puCprog
+ *puCprog = pObj->I2CMap.uBx1D.RFC_Cprog;
+
+ // return value
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271PowerScanInit_C2_Askey:
+//
+// DESCRIPTION: Initializes power scan
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271PowerScanInit_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj // I: Tuner unit number
+ )
+{
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // set standard mode to DVBT 1.5 MHz
+ pObj->I2CMap.uBx05.bF.Std = 0x12;
+ pObj->I2CMap.uBx06.bF.IF_Level = 0x00;
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x00;
+ // write bytes EASY_PROG_BYTE_3 & EASY_PROG_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x05,2) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // set AGC1Gain = 6dB
+ pObj->I2CMap.uBx21.bF.AGC1_Gain = 0x00;
+ // write byte EXTENDED_BYTE_18
+ if (TDA18271Write_C2_Askey(pObj,0x21,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // set AGC2Gain = -15dB
+ pObj->I2CMap.uBx24.bF.AGC2_Gain = 0x00;
+ // set low pass filter to 1.5MHz
+ pObj->I2CMap.uBx26.bF.ForceLP_Fc2_En = 0x01;
+ pObj->I2CMap.uBx26.bF.LP_Fc = 0x01;
+ // write byte EXTENDED_BYTE_21 to EXTENDED_BYTE_23
+ if (TDA18271Write_C2_Askey(pObj,0x24,3) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // return value
+ return TM_OK;
+}
+
+#define POWER_SCAN_FREQ_STEP 200000
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271PowerScan_C2_Askey:
+//
+// DESCRIPTION: Scan power and adjust RF Frequency
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271PowerScan_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt32* puRF, // I/O: RF frequency in hertz
+ Bool_* pCal // O: Calibration allowed if pCal = True
+ )
+{
+ UInt32 uCounter = 0;
+ UInt32 count_limit = 0;
+ UInt32 freq_input = 0;
+ UInt32 freq_MAINPLL = 0;
+ UInt32 step = 0;
+
+ UInt8 CID_Gain = 0;
+ UInt8 CID_Target = 0;
+
+ Int8 sgn = 0;
+
+ Bool_ wait = False;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // set freq_input
+ freq_input = *puRF;
+
+ // search for count_limit corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.RF_CAL_CID_TARGET_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2_Askey);
+ count_limit = pObj->Config.RF_CAL_CID_TARGET_Map[uCounter - 1].uCount_Limit;
+
+ // check if powerscan is requested
+ if (count_limit == 0)
+ {
+ // enable calibration and exit
+ *pCal = True;
+ return TM_OK;
+ }
+
+ // search for CID_Target corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.RF_CAL_CID_TARGET_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2_Askey);
+ CID_Target = (UInt8)pObj->Config.RF_CAL_CID_TARGET_Map[uCounter - 1].uCID_Target;
+
+ // search for sub-band corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_BAND_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx04.bF.RF_Band = (UInt8)pObj->Config.RF_BAND_Map[uCounter - 1].uRF_Band;
+
+ // search for Cprog corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx1D.RFC_Cprog = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ // search for Gain_Taper corresponding to uRF
+ uCounter = 0;
+ do uCounter ++;
+ while (freq_input > pObj->Config.GAIN_TAPER_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_GAIN_TAPER_NB_ROWS_C2_Askey);
+ pObj->I2CMap.uBx04.bF.Gain_Taper = (UInt8)pObj->Config.GAIN_TAPER_Map[uCounter - 1].uGain_Taper;
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2_Askey(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EXTENDED_BYTE_14
+ if (TDA18271Write_C2_Askey(pObj,0x1D,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // set freq_MAINPLL
+ freq_MAINPLL = freq_input + RF_CAL_IF_FREQ_C2_Askey;
+
+ // calculate MAIN PLL
+ if (TDA18271CalcMAINPLL_C2_Askey(pObj, freq_MAINPLL) == False)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write bytes 0x0C to 0x0F
+ if (TDA18271Write_C2_Askey(pObj,0x0C,4) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // launch power detection measurement
+ pObj->I2CMap.uBx06.bF.CAL_Mode = 0x01;
+
+ // write byte EASY_PROG_BYTE_4
+ if (TDA18271Write_C2_Askey(pObj,0x06,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2_Askey(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // read power detector informations
+ if (TDA18271Read_C2_Askey (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ //update CID_Gain
+ CID_Gain = pObj->I2CMap.uBx19.bF.CID_Gain;
+
+ //----------------------
+ // power scan algorithm
+ //----------------------
+ // initialization
+ uCounter = 0;
+ sgn = 1;
+ *puRF = freq_input;
+ *pCal = False;
+ step = POWER_SCAN_FREQ_STEP;
+ wait = False;
+
+ // main loop
+ while (CID_Gain < CID_Target)
+ {
+ // update freq_MAINPLL
+ freq_MAINPLL = freq_input + sgn * uCounter + RF_CAL_IF_FREQ_C2_Askey;
+
+ // calculate MAIN PLL
+ if (TDA18271CalcMAINPLL_C2_Askey(pObj, freq_MAINPLL) == False)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // write bytes 0x0C to 0x0F
+ if (TDA18271Write_C2_Askey(pObj,0x0C,4) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ if (wait)
+ {
+ // wait 5 ms for pll locking
+ if (TDA18271Wait_C2_Askey(pObj,5) == False)
+ return TM_FALSE;
+
+ // reset wait flag
+ wait = False;
+ }
+ else
+ {
+ // wait 100 s for pll locking
+ }
+
+ // write byte EASY_PROG_BYTE_2
+ if (TDA18271Write_C2_Askey(pObj,0x04,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // read power detector informations
+ if (TDA18271Read_C2_Askey (pObj,0x00,39) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // update CID_Gain
+ CID_Gain = pObj->I2CMap.uBx19.bF.CID_Gain;
+
+ // increase count
+ uCounter += step;
+
+ // check uCounter
+ if (uCounter >= count_limit)
+ {
+ if (sgn > 0)
+ {
+ // update sgn
+ sgn = -sgn;
+
+ // update uCounter
+ uCounter = step;
+
+ // update wait flag
+ wait = True;
+ }
+ else
+ {
+ // exit loop
+ break;
+ }
+ }
+ }
+
+ // return results
+ if (CID_Gain >= CID_Target)
+ {
+ *pCal = True;
+ *puRF = freq_MAINPLL - RF_CAL_IF_FREQ_C2_Askey;
+ }
+ else
+ {
+ *pCal = False;
+ *puRF = freq_input;
+ }
+
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271CalcRFFilterCurve_C2_Askey:
+//
+// DESCRIPTION: Calculate RF Filter curve coefficients
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271CalcRFFilterCurve_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj // I: tuner Object
+ )
+{
+ tmErrorCode_t ret = TM_OK;
+ UInt32 uCounter = 0;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // wait 200 ms for die temperature stabilization
+ if (TDA18271Wait_C2_Askey(pObj,200) == False)
+ return TM_FALSE;
+
+ // power scan initialization
+ TDA18271PowerScanInit_C2_Askey(pObj);
+
+ // calculate RF filter curve
+ for (uCounter = 0; uCounter < TDA18271_RF_BAND_NB_ROWS_C2_Askey; uCounter++)
+ {
+ if (pObj->Config.RF_BAND_Map[uCounter].uRF1_default != 0)
+ {
+ ret = TDA18271RFTrackingFiltersInit_C2_Askey(pObj, &(pObj->Config.RF_BAND_Map[uCounter]));
+ if (ret != TM_OK)
+ return ret;
+ }
+ }
+
+ // sense temperature
+ ret = TDA18271ThermometerRead_C2_Askey(pObj, &(pObj->Config.uTMVALUE_RFCAL));
+ if (ret != TM_OK)
+ return ret;
+
+ // return value
+ return TM_OK;
+}
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271RFTrackingFiltersInit_C2_Askey:
+//
+// DESCRIPTION: Initialize RF Filter calibration
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271RFTrackingFiltersInit_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ ptmTDA18271_RF_BAND_Map_t_C2_Askey pRF_BAND_Map // I: address of RF band map
+ )
+{
+ tmErrorCode_t ret = TM_OK;
+
+ UInt32 uCounter = 0;
+
+ UInt8 uCprog_cal_1 = 0;
+ UInt8 uCprog_table_1 = 0;
+ UInt8 uCprog_cal_2 = 0;
+ UInt8 uCprog_table_2 = 0;
+ UInt8 uCprog_cal_3 = 0;
+ UInt8 uCprog_table_3 = 0;
+
+ Bool_ bCal = False;
+
+ tmTDA18271StandardMode_t_C2_Askey StandardMode = pObj->StandardMode;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ //----------------------
+ // RF tracking filter calibration at RF1 frequency
+ //----------------------
+ // test uRF1_default value
+ if (pRF_BAND_Map->uRF1_default == 0)
+ return ret;
+
+ // look for optimized calibration frequency
+ pRF_BAND_Map->uRF1 = pRF_BAND_Map->uRF1_default;
+ ret = TDA18271PowerScan_C2_Askey(pObj, &pRF_BAND_Map->uRF1, &bCal);
+ if (ret != TM_OK)
+ return ret;
+
+ // search for uCprog_table_1 corresponding to RF1
+ uCounter = 0;
+ do uCounter ++;
+ while (pRF_BAND_Map->uRF1 > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2_Askey);
+ uCprog_table_1 = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ if(bCal)
+ {
+ // launch tracking filter calibration
+ ret = TDA18271CalibrateRF_C2_Askey(pObj, pRF_BAND_Map->uRF1, &uCprog_cal_1);
+ if (ret != TM_OK)
+ return ret;
+ }
+ else
+ {
+ // use tracking filter table value
+ uCprog_cal_1 = uCprog_table_1;
+ }
+
+ // set A1 coefficient
+ pRF_BAND_Map->uRF_A1 = 0;
+
+ // calculate B1 coefficient
+ pRF_BAND_Map->uRF_B1 = uCprog_cal_1 - uCprog_table_1;
+
+ //----------------------
+ // RF tracking filter calibration at RF2 frequency
+ //----------------------
+ // test RF2 value
+ if (pRF_BAND_Map->uRF2_default == 0)
+ return ret;
+
+ // look for optimized calibration frequency
+ pRF_BAND_Map->uRF2 = pRF_BAND_Map->uRF2_default;
+ ret = TDA18271PowerScan_C2_Askey(pObj, &pRF_BAND_Map->uRF2, &bCal);
+ if (ret != TM_OK)
+ return ret;
+
+ // search for uCprog_table_2 corresponding to RF2
+ uCounter = 0;
+ do uCounter ++;
+ while (pRF_BAND_Map->uRF2 > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2_Askey);
+ uCprog_table_2 = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ if(bCal)
+ {
+ // launch tracking filter calibration
+ ret = TDA18271CalibrateRF_C2_Askey(pObj, pRF_BAND_Map->uRF2, &uCprog_cal_2);
+ if (ret != TM_OK)
+ return ret;
+ }
+ else
+ {
+ // use tracking filter table value
+ uCprog_cal_2 = uCprog_table_2;
+ }
+
+ // calculate A1 coefficient
+ pRF_BAND_Map->uRF_A1 = ((uCprog_cal_2 - uCprog_table_2 - (uCprog_cal_1 - uCprog_table_1)) * 1000000)
+ / (Int32)((pRF_BAND_Map->uRF2 - pRF_BAND_Map->uRF1) / 1000000);
+
+ //----------------------
+ // RF tracking filter calibration at RF3 frequency
+ //----------------------
+ // test RF3 value
+ if (pRF_BAND_Map->uRF3_default == 0)
+ return ret;
+
+ // look for optimized calibration frequency
+ pRF_BAND_Map->uRF3 = pRF_BAND_Map->uRF3_default;
+ ret = TDA18271PowerScan_C2_Askey(pObj, &pRF_BAND_Map->uRF3, &bCal);
+ if (ret != TM_OK)
+ return ret;
+
+ // search for uCprog_table_3 corresponding to RF3
+ uCounter = 0;
+ do uCounter ++;
+ while (pRF_BAND_Map->uRF3 > pObj->Config.RF_CAL_Map[uCounter - 1].uRF_Max && uCounter < TDA18271_RF_CAL_NB_ROWS_C2_Askey);
+ uCprog_table_3 = (UInt8)pObj->Config.RF_CAL_Map[uCounter - 1].uRFC_Cprog;
+
+ if(bCal)
+ {
+ // launch tracking filter calibration
+ ret = TDA18271CalibrateRF_C2_Askey(pObj, pRF_BAND_Map->uRF3, &uCprog_cal_3);
+ if (ret != TM_OK)
+ return ret;
+ }
+ else
+ {
+ // use tracking filter table value
+ uCprog_cal_3 = uCprog_table_3;
+ }
+
+ // calculate A2 coefficient
+ pRF_BAND_Map->uRF_A2 = ((uCprog_cal_3 - uCprog_table_3 - (uCprog_cal_2 - uCprog_table_2)) * 1000000)
+ / (Int32)((pRF_BAND_Map->uRF3 - pRF_BAND_Map->uRF2) / 1000000);
+
+ // calculate B2 coefficient
+ pRF_BAND_Map->uRF_B2 = uCprog_cal_2 - uCprog_table_2;
+
+ // return value
+ return TM_OK;
+}
+
+
+//-------------------------------------------------------------------------------------
+// FUNCTION: TDA18271ThermometerRead_C2_Askey:
+//
+// DESCRIPTION: Read die temperature
+//
+// RETURN: TMBSL_ERR_IIC_ERR
+// TM_OK
+//
+// NOTES:
+//-------------------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271ThermometerRead_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt32* puValue // O: Read thermometer value
+ )
+{
+ tmErrorCode_t ret = TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ UInt32 uCounter = 0;
+
+ // test the Object
+ if (pObj == Null || pObj->init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey;
+
+ // switch thermometer on
+ pObj->I2CMap.uBx01.bF.TM_ON = 0x01;
+
+ // write byte THERMO_BYTE
+ if (TDA18271Write_C2_Askey(pObj,0x01,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // read byte THERMO_BYTE
+ if (TDA18271Read_C2_Askey (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // set & write TM_Range
+ if (((pObj->I2CMap.uBx01.bF.TM_D == 0x00) && (pObj->I2CMap.uBx01.bF.TM_Range == 0x01)) || ((pObj->I2CMap.uBx01.bF.TM_D == 0x08) && (pObj->I2CMap.uBx01.bF.TM_Range == 0x00)))
+ {
+ pObj->I2CMap.uBx01.bF.TM_Range = !(pObj->I2CMap.uBx01.bF.TM_Range);
+
+ // write byte THERMO_BYTE
+ if (TDA18271Write_C2_Askey(pObj,0x01,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ // wait 10ms
+ if (TDA18271Wait_C2_Askey(pObj,10) == False)
+ return TM_FALSE;
+
+ // read byte THERMO_BYTE
+ if (TDA18271Read_C2_Askey (pObj, 0x00, 16) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+ }
+
+ // search for TMVALUE corresponding to TM_D
+ uCounter = 0;
+ do uCounter ++;
+ while (pObj->I2CMap.uBx01.bF.TM_D > pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_D && uCounter < TDA18271_THERMOMETER_NB_ROWS_C2_Askey);
+
+ // get TMVALUE value
+ if (pObj->I2CMap.uBx01.bF.TM_Range == 0x00)
+ *puValue = (UInt8)pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_60_92;
+ else
+ *puValue = (UInt8)pObj->Config.THERMOMETER_Map[uCounter - 1].uTM_92_122;
+
+ // switch thermometer off
+ pObj->I2CMap.uBx01.bF.TM_ON = 0x00;
+
+ // write byte THERMO_BYTE
+ if (TDA18271Write_C2_Askey(pObj,0x01,1) != True)
+ return TMBSL_ERR_IIC_ERR_C2_Askey;
+
+ return TM_OK;
+} \ No newline at end of file
diff --git a/api/TDA18271_C2_Askey.h b/api/TDA18271_C2_Askey.h
new file mode 100644
index 0000000..cc1fcd9
--- /dev/null
+++ b/api/TDA18271_C2_Askey.h
@@ -0,0 +1,177 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271_C2_Askey.h
+//
+// DESCRIPTION: define the object for the TDA18271_C2_Askey
+//
+// DOCUMENT REF: DVP Software Coding Guidelines v1.14
+// DVP Board Support Library Architecture Specification v0.5
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+#ifndef _TMBSL_TDA18271_C2_Askey_H //-----------------
+#define _TMBSL_TDA18271_C2_Askey_H
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+//
+
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+//#ifndef NXPFE
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+//#endif // NXPFE
+
+//-----------------------------------------------------------------------------
+// Types and defines:
+//-----------------------------------------------------------------------------
+//
+tmErrorCode_t
+TDA18271Init_C2_Askey (
+ tmUnitSelect_t TunerUnit // I: Tuner Object
+ );
+Bool_
+TDA18271InitTick_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait forTDA18271Init
+ );
+Bool_
+TDA18271WaitTick_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj // I: Tuner unit number
+ );
+Bool_
+TDA18271Write_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ );
+Bool_
+TDA18271Read_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt8 uSubAddress,// I: sub address
+ UInt8 uNbData // I: nb of data
+ );
+Bool_
+TDA18271Wait_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt16 wTime // I: time to wait for
+ );
+Bool_
+TDA18271ShiftLog_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt32 uNbRows // I: nb of lines
+ );
+tmErrorCode_t
+TDA18271SetStandardMode_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ tmTDA18271StandardMode_t_C2_Askey StandardMode// I: Standard mode of this device
+ );
+tmErrorCode_t
+TDA18271GetStandardMode_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ tmTDA18271StandardMode_t_C2_Askey *pStandardMode // I: Standard mode of this device
+ );
+tmErrorCode_t
+TDA18271SetPowerState_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ tmTDA18271PowerState_t_C2_Askey powerState // I: Power state of this device
+ );
+tmErrorCode_t
+TDA18271GetPowerState_C2_Askey(
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ tmTDA18271PowerState_t_C2_Askey *pPowerState// I: Power state of this device
+ );
+Bool_
+TDA18271CalcMAINPLL_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ );
+Bool_
+TDA18271CalcCALPLL_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ UInt32 uLO // I: local oscillator frequency in hertz
+ );
+tmErrorCode_t
+TDA18271CalcRFFilterCurve_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj // I: tuner Object
+ );
+tmErrorCode_t
+TDA18271RFTrackingFiltersInit_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ ptmTDA18271_RF_BAND_Map_t_C2_Askey pRF_BAND_Map // I: address of RF band map
+ );
+tmErrorCode_t
+TDA18271CalibrateRF_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: tuner Object
+ UInt32 uRF, // I: RF frequency in hertz
+ UInt8* puCprog // I: Address of the variable to output the Cprog value
+ );
+tmErrorCode_t
+TDA18271PowerScan_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt32* puRF, // I/O: RF frequency in hertz
+ Bool_* pCal // O: Calibration allowed if pCal = True
+ );
+tmErrorCode_t
+TDA18271PowerScanInit_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj // I: Tuner unit number
+ );
+tmErrorCode_t
+TDA18271ThermometerRead_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt32* puValue // O: Read thermometer value
+ );
+tmErrorCode_t
+allocInstance_C2_Askey (
+ UInt32 DeviceUnit, // I: Tuner unit number
+ pptmTDA18271Object_t_C2_Askey ppDrvObject // I: Tuner Object
+ );
+tmErrorCode_t
+deAllocInstance_C2_Askey (
+ UInt32 DeviceUnit // I: Tuner unit number
+ );
+tmErrorCode_t
+getInstance_C2_Askey (
+ tmUnitSelect_t DeviceUnit, // I: Tuner unit number
+ pptmTDA18271Object_t_C2_Askey ppDrvObject // I: Tuner Object
+ );
+tmErrorCode_t
+ tmbslTDA18271Init_C2_Askey(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ tmbslTuParam_t_C2_Askey Param // I: setup parameters
+ );
+tmErrorCode_t
+ tmbslTDA18271SetConfig_C2_Askey(
+ tmUnitSelect_t TunerUnit, // I: TunerUnit number
+ UInt32 uItemId, // I: Identifier of the item to modify
+ UInt32 uValue // I: Value to set for the config item
+ );
+tmErrorCode_t
+ tmbslTDA18271SetRf_C2_Askey(
+ tmUnitSelect_t TunerUnit, // I: Tuner unit number
+ UInt32 uRF // I: RF frequency in hertz
+ );
+
+//#ifndef NXPFE
+#ifdef __cplusplus
+}
+#endif
+//#endif // NXPFE
+
+#endif // TM<MODULE>_H //---------------
diff --git a/api/TDA18271local_C2.h b/api/TDA18271local_C2.h
new file mode 100644
index 0000000..195843f
--- /dev/null
+++ b/api/TDA18271local_C2.h
@@ -0,0 +1,891 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271local_C2.h
+//
+// DESCRIPTION: define the Object for the TDA18271_C2
+//
+// DOCUMENT REF: DVP Software Coding Guidelines v1.14
+// DVP Board Support Library Architecture Specification v0.5
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+#ifndef _TMBSL_TDA18271LOCAL_C2_H //-----------------
+#define _TMBSL_TDA18271LOCAL_C2_H
+
+#include "type.h"
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+//#ifndef NXPFE
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+//#endif // NXPFE
+
+//-----------------------------------------------------------------------------
+// Types and defines:
+//-----------------------------------------------------------------------------
+//
+#define TMBSL_TDA18271_COMPONENT_NAME_C2 TDA18271_C2
+#define TMBSL_TDA18271_COMPONENT_NAME_STR_C2 "TDA18271_C2"
+
+#define _SYSTEMFUNC (pObj->SystemFunc)
+
+#define TDA18271_BSL_COMP_NUM_C2 3 // Major protocol change - Specification change required
+#define TDA18271_BSL_MAJOR_VER_C2 4 // Minor protocol change - Specification change required
+#define TDA18271_BSL_MINOR_VER_C2 3 // Software update - No protocol change - No specification change required
+
+
+//-------------
+// ERROR CODES
+//-------------
+#define TMBSL_ERR_TUNER_BASE_C2 0x80000000U
+#define TM_ERR_BAD_UNIT_NUMBER_C2 0x00000001U
+#define TM_ERR_NOT_INITIALIZED_C2 0x00000002U
+#define TM_ERR_BAD_PARAMETER_C2 0x00000003U
+#define TM_ERR_NOT_SUPPORTED_C2 0x00000004U
+#define TM_ERR_IIC_ERR_C2 0x00000005U
+// Invalid unit id
+#define TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2 \
+ (TMBSL_ERR_TUNER_BASE_C2 + TM_ERR_BAD_UNIT_NUMBER_C2)
+
+// Component is not initialized
+#define TMBSL_ERR_TUNER_NOT_INITIALIZED_C2 \
+ (TMBSL_ERR_TUNER_BASE_C2+ TM_ERR_NOT_INITIALIZED_C2)
+
+// Invalid input parameter
+#define TMBSL_ERR_TUNER_BAD_PARAMETER_C2 \
+ (TMBSL_ERR_TUNER_BASE_C2 + TM_ERR_BAD_PARAMETER_C2)
+
+// Function is not supported
+#define TMBSL_ERR_TUNER_NOT_SUPPORTED_C2 \
+ (TMBSL_ERR_TUNER_BASE_C2 + TM_ERR_NOT_SUPPORTED_C2)
+
+// Function is not supported
+#define TMBSL_ERR_IIC_ERR_C2 \
+ (TMBSL_ERR_TUNER_BASE_C2 + TM_ERR_IIC_ERR_C2)
+
+#define TDA18271_MAX_UNITS_C2 10 //
+#define TDA18271_NB_BYTES_C2 39 //
+#define TDA18271_LOG_NB_ROWS_C2 300 //
+#define TDA18271_LOG_BLANK_DATA_C2 256 //
+
+#define TDA18271_IR_MEAS_NB_COLUMNS_C2 2 //
+#define TDA18271_IR_CAL_NB_COLUMNS_C2 2 //
+#define TDA18271_BP_FILTER_NB_COLUMNS_C2 2 //
+#define TDA18271_RF_BAND_NB_COLUMNS_C2 12 //
+#define TDA18271_GAIN_TAPER_NB_COLUMNS_C2 2 //
+#define TDA18271_RF_CAL_NB_COLUMNS_C2 2 //
+#define TDA18271_RF_CAL_DC_OVER_DT_NB_COLUMNS_C2 2 //
+#define TDA18271_RF_CAL_KMCO_NB_COLUMNS_C2 4 //
+#define TDA18271_RF_CAL_CID_TARGET_NB_COLUMNS_C2 3 //
+#define TDA18271_CAL_PLL_NB_COLUMNS_C2 3 //
+#define TDA18271_MAIN_PLL_NB_COLUMNS_C2 3 //
+
+
+#define TDA18271_IR_MEAS_NB_ROWS_C2 3 //
+#define TDA18271_IR_CAL_NB_ROWS_C2 3 //
+#define TDA18271_BP_FILTER_NB_ROWS_C2 7 //
+#define TDA18271_RF_BAND_NB_ROWS_C2 7 //
+#define TDA18271_GAIN_TAPER_NB_ROWS_C2 85 //
+#define TDA18271_RF_CAL_NB_ROWS_C2 437 //
+#define TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2 101 //
+#define TDA18271_RF_CAL_KMCO_NB_ROWS_C2 5 //
+#define TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2 12 //
+#define TDA18271_CAL_PLL_NB_ROWS_C2 35 //
+#define TDA18271_MAIN_PLL_NB_ROWS_C2 40 //
+
+
+
+#define TDA18271_THERMOMETER_NB_COLUMNS_C2 3 //
+#define TDA18271_THERMOMETER_NB_ROWS_C2 16 //
+
+#define TDA18271_IDENTITY_IND_C2 0 //
+
+#define OM5770C2_BOARD_DEF_C2 0x57700002 // TDA8295C1 + TDA10046 + TDA18271
+#define OM5775_BOARD_DEF_C2 0x57750000 // 2xTDA8290C1 + 2xTDA10048 + 2xTDA18271
+
+#define OM5776_BOARD_DEF_C2 0x57760000 //
+#define OM5777_BOARD_DEF_C2 0x57770000 //
+#define OM5780_BOARD_DEF_C2 0x57800000 //
+#define OM5782_BOARD_DEF_C2 0x57820000 //
+#define OM5764_BOARD_DEF_C2 0x57640199 //
+#define CUSTOM_BOARD_DEF_C2 0x00000000 // custom
+#define OM57XX_STANDARD_DEF_C2 2
+
+#define RF_CAL_IF_FREQ_C2 1000000
+
+// types
+typedef char Int8; /* 8 bit unsigned integer */
+typedef long Int32; /* 32 bit integer */
+typedef unsigned long UInt32; /* 32 bit unsigned integer */
+typedef unsigned short UInt16; /* 16 bit unsigned integer */
+typedef unsigned char UInt8; /* 8 bit unsigned integer */
+typedef UInt32 tmErrorCode_t;
+typedef unsigned int Bool_; /* Boolean (True/False) */
+typedef int tmUnitSelect_t, *ptmUnitSelect_t;
+#define NULL 0
+
+#define TM_OK 0U /* Global success return status */
+#define TM_FALSE 0
+#define TM_TRUE 1
+
+#define True TM_TRUE
+#define False TM_FALSE
+#define OM5770C2_BOARD_DEF 0x57700002 //
+#define OM5775_BOARD_DEF 0x57750000 //
+#define OM5776_BOARD_DEF 0x57760000 //
+#define OM5777_BOARD_DEF 0x57770000 //
+#define OM5780_BOARD_DEF 0x57800000 //
+#define OM5782_BOARD_DEF 0x57820000 //
+#define OM5764_BOARD_DEF 0x57640199 //
+#define CUSTOM_BOARD_DEF 0x00000000 // custom
+#define OM57XX_STANDARD_DEF 2
+
+
+ typedef enum _tmTDA18271cfgIndex_t_C2 {
+ BOARD_C2 = 0,
+ STANDARD_C2 = 1,
+ FEINIT_C2 = 100,
+ IDENTITY_C2 = 102,
+ GETNBOFUNIT_C2 = 200,
+ BANDWIDTH_C2 = 300,
+ RFBAND_C2 = 302,
+ RF_C2,
+ ID_C2,
+ POR_C2,
+ MAINLOCK_C2,
+ PLRFAGC_C2 = 310,
+ POWERSTATE_C2 = 312,
+ PLRUN_C2 = 350,
+ TMVALUE_C2,
+ PLMODE_C2,
+ PLAGC1_C2,
+ PLAGC2_C2,
+ RFCALOK_C2,
+ IRCALOK_C2,
+ BPFILTER_C2,
+ GAINTAPER_C2,
+ LPFC_C2,
+ FMRFN_C2,
+ XTOUT_C2,
+ IFLEVEL_C2,
+ EXTENDEDREG_C2,
+ CALPOSTDIV_C2,
+ CALDIV_C2,
+ MAINPOSTDIV_C2,
+ MAINDIV_C2,
+ MAPNAME_C2,
+ MAPCOLUMN_C2,
+ MAPROW_C2,
+ MAPVALUE_C2,
+ READINIT_C2,
+ RFCAL_TCOMP_C2,
+ STATUSBYTE_C2 = 380,
+ PROTOCOLWAIT_C2 = 382,
+ STANDARDMODE_C2 = 400,
+ IF_C2 = 517,
+ PROTOCOLSTEP_C2,
+ } tmTDA18271cfgIndex_t_C2;
+
+ typedef enum _tmTDA18271PowerState_t_C2 {
+ tmPowerNormalMode_C2, // Device normal mode
+ tmPowerSleepMode_C2, // Device sleep mode
+ tmPowerStandbyWith16MHz_C2, // Device standby with 16Mhz
+ tmPowerStandbyWith16MHzAndLoopThrough_C2, // Device standby with 16Mhz and loop through
+ tmPowerStandbyWithLoopThrough_C2, // Device standby with loop through
+ tmPowerNotSupported_C2, // Not supported power mode
+ } tmTDA18271PowerState_t_C2, *ptmTDA18271PowerState_t_C2;
+
+ typedef enum _tmTDA18271StandardMode_t_C2 {
+ tmDigital_TV_ATSC_6MHz_C2, // Digital TV ATSC 6MHz
+ tmDigital_TV_DVBT_7MHz_C2, // Digital TV DVB-T 7MHz
+ tmDigital_TV_DVBT_8MHz_C2, // Digital TV DVB-T 8MHz
+ tmAnalog_TV_MN_C2, // Analog TV M/N
+ tmAnalog_TV_B_C2, // Analog TV B
+ tmAnalog_TV_GH_C2, // Analog TV G/H
+ tmAnalog_TV_I_C2, // Analog TV I
+ tmAnalog_TV_DK_C2, // Analog TV D/K
+ tmAnalog_TV_L_C2, // Analog TV L
+ tmAnalog_TV_LL_C2, // Analog TV L'
+ tmAnalog_FM_Radio_C2, // Analog FM Radio
+ tmDigital_CAL_C2, // Digital CAL mode
+ tmDigital_TV_QAM_6MHz_C2, // Digital TV QAM 6MHz
+ tmDigital_TV_QAM_8MHz_C2, // Digital TV QAM 8MHz
+ tmDigital_TV_ISDBT_6MHz_C2, // Digital TV ISDBT 6MHz
+ tmStandardNotSupported_C2, // Not supported standard
+ }tmTDA18271StandardMode_t_C2, *ptmTDA18271StandardMode_t_C2;
+// added
+// system function
+Bool_ SY_Write_C2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Read_C2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Write_Slave_C2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Read_Slave_C2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+typedef struct _tmhalFEBslSystemFunc_t_C2
+{
+ Bool_ (*SY_Write_C2) (UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+ Bool_ (*SY_Read_C2) (UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+ UInt32 (*SY_GetTickPeriod) (void);
+ UInt32 (*SY_GetTickTime) (void);
+
+} tmhalFEBslSystemFunc_t_C2, *ptmhalFEBslSystemFunc_t_C2;
+
+typedef struct _tmbslTuParam_t_C2
+{
+ unsigned long uHwAddress;
+ tmhalFEBslSystemFunc_t_C2 systemFunc;
+} tmbslTuParam_t_C2, *ptmbslTuParam_t_C2;
+
+typedef struct tmSWVersion_C2
+{
+ UInt32 compatibilityNr; /* Interface compatibility number */
+ UInt32 majorVersionNr; /* Interface major version number */
+ UInt32 minorVersionNr; /* Interface minor version number */
+
+} tmSWVersion_t_C2, *ptmSWVersion_t_C2;
+
+// added
+
+ typedef enum _tmTDA18271MapName_t_C2 {
+ tmTDA18271_IR_MEAS_Map_C2, // Image rejection measurement map
+ tmTDA18271_IR_CAL_Map_C2, // Image rejection calibration map
+ tmTDA18271_BP_FILTER_Map_C2, // Band pass filter map
+ tmTDA18271_RF_BAND_Map_C2, // RF band map
+ tmTDA18271_GAIN_TAPER_Map_C2, // Gain tapper map
+ tmTDA18271_RF_CAL_Map_C2, // RF calibration map
+ tmTDA18271_RF_CAL_DC_OVER_DT_Map_C2, // RF calibration temperature adjustment map
+ tmTDA18271_RF_CAL_KMCO_Map_C2, // RF calibration K,M,COAmpl map
+ tmTDA18271_RF_CAL_CID_TARGET_Map_C2, // RF calibration CID target map
+ tmTDA18271_THERMOMETER_Map_C2, // Thermometer map
+ tmTDA18271_CAL_PLL_Map_C2, // Calibration PLL map
+ tmTDA18271_MAIN_PLL_Map_C2, // Main PLL map
+ tmTDA18271_I2C_Map_C2, // I2C map
+ } tmTDA18271MapName_t_C2, *ptmTDA18271MapName_t_C2;
+
+ typedef struct _tmTDA18271_IR_MEAS_Map_t_C2 {
+ UInt32 uRF_Max;
+ UInt32 uIR_Meas;
+ } tmTDA18271_IR_MEAS_Map_t_C2, *ptmTDA18271_IR_MEAS_Map_t_C2;
+
+ typedef struct _tmTDA18271_IR_CAL_Map_t_C2 {
+ UInt32 uRF;
+ UInt32 uIR_GStep;
+ } tmTDA18271_IR_CAL_Map_t_C2, *ptmTDA18271_IR_CAL_Map_t_C2;
+
+ typedef struct _tmTDA18271_BP_FILTER_Map_t_C2 {
+ UInt32 uRF_Max;
+ UInt32 uBP_Filter;
+ } tmTDA18271_BP_FILTER_Map_t_C2, *ptmTDA18271_BP_FILTER_Map_t_C2;
+
+ typedef struct _tmTDA18271_RF_BAND_Map_t_C2 {
+ UInt32 uRF_Max;
+ UInt32 uRF_Band;
+ UInt32 uRF1;
+ UInt32 uRF2;
+ UInt32 uRF3;
+ Int32 uRF_A1;
+ Int32 uRF_B1;
+ Int32 uRF_A2;
+ Int32 uRF_B2;
+ UInt32 uRF1_default;
+ UInt32 uRF2_default;
+ UInt32 uRF3_default;
+ } tmTDA18271_RF_BAND_Map_t_C2, *ptmTDA18271_RF_BAND_Map_t_C2;
+
+ typedef struct _tmTDA18271_GAIN_TAPER_Map_t_C2 {
+ UInt32 uRF_Max;
+ UInt32 uGain_Taper;
+ } tmTDA18271_GAIN_TAPER_Map_t_C2, *ptmTDA18271_GAIN_TAPER_Map_t_C2;
+
+ typedef struct _tmTDA18271_RF_CAL_Map_t_C2 {
+ UInt32 uRF_Max;
+ UInt32 uRFC_Cprog;
+ } tmTDA18271_RF_CAL_Map_t_C2, *ptmTDA18271_RF_CAL_Map_t_C2;
+
+ typedef struct _tmTDA18271_RF_CAL_DC_OVER_DT_Map_t_C2 {
+ UInt32 uRF_Max;
+ UInt32 udC_Over_dT;
+ } tmTDA18271_RF_CAL_DC_OVER_DT_Map_t_C2, *ptmTDA18271_RF_CAL_DC_OVER_DT_Map_t_C2;
+
+ typedef struct _tmTDA18271_RF_CAL_KMCO_Map_t_C2 {
+ UInt32 uRF_Max;
+ UInt32 uK;
+ UInt32 uM;
+ UInt32 uCOAmpl;
+ } tmTDA18271_RF_CAL_KMCO_Map_t_C2, *ptmTDA18271_RF_CAL_KMCO_Map_t_C2;
+
+ typedef struct _tmTDA18271_RF_CAL_CID_TARGET_Map_t_C2 {
+ UInt32 uRF_Max;
+ UInt32 uCID_Target;
+ UInt32 uCount_Limit;
+ } tmTDA18271_RF_CAL_CID_TARGET_Map_t_C2, *ptmTDA18271_RF_CAL_CID_TARGET_Map_t_C2;
+
+ typedef struct _tmTDA18271_THERMOMETER_Map_t_C2 {
+ UInt32 uTM_D;
+ UInt32 uTM_60_92;
+ UInt32 uTM_92_122;
+ } tmTDA18271_THERMOMETER_Map_t_C2, *ptmTDA18271_THERMOMETER_Map_t_C2;
+
+ typedef struct _tmTDA18271_PLL_Map_t_C2 {
+ UInt32 uLO_Max;
+ UInt32 uPost_Div;
+ UInt32 uDiv;
+ } tmTDA18271_PLL_Map_t_C2, *ptmTDA18271_PLL_Map_t_C2;
+
+ typedef struct _tmTDA18271Config_t_C2 {
+ UInt32 uBoard;
+ UInt32 uStandard;
+ UInt32 uRF;
+ UInt32 uIF;
+ //UInt32 uBW;
+ UInt32 uTMVALUE_RFCAL;
+ UInt32 uPLMODE;
+ Int32 uRFCAL_TCOMP;
+ UInt32 uMAPNAME;
+ UInt32 uMAPCOLUMN;
+ UInt32 uMAPROW;
+ UInt32 uPROTOCOLSTEP;
+ tmTDA18271_IR_MEAS_Map_t_C2 IR_MEAS_Map[TDA18271_IR_MEAS_NB_ROWS_C2];
+ tmTDA18271_IR_CAL_Map_t_C2 IR_CAL_Map[TDA18271_IR_CAL_NB_ROWS_C2];
+ tmTDA18271_BP_FILTER_Map_t_C2 BP_FILTER_Map[TDA18271_BP_FILTER_NB_ROWS_C2];
+ tmTDA18271_RF_BAND_Map_t_C2 RF_BAND_Map[TDA18271_RF_BAND_NB_ROWS_C2];
+ tmTDA18271_GAIN_TAPER_Map_t_C2 GAIN_TAPER_Map[TDA18271_GAIN_TAPER_NB_ROWS_C2];
+ tmTDA18271_RF_CAL_Map_t_C2 RF_CAL_Map[TDA18271_RF_CAL_NB_ROWS_C2];
+ tmTDA18271_RF_CAL_DC_OVER_DT_Map_t_C2 RF_CAL_DC_OVER_DT_Map[TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2];
+ tmTDA18271_RF_CAL_KMCO_Map_t_C2 RF_CAL_KMCO_Map[TDA18271_RF_CAL_KMCO_NB_ROWS_C2];
+ tmTDA18271_RF_CAL_CID_TARGET_Map_t_C2 RF_CAL_CID_TARGET_Map[TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2];
+ tmTDA18271_THERMOMETER_Map_t_C2 THERMOMETER_Map[TDA18271_THERMOMETER_NB_ROWS_C2];
+ tmTDA18271_PLL_Map_t_C2 CAL_PLL_Map[TDA18271_CAL_PLL_NB_ROWS_C2];
+ tmTDA18271_PLL_Map_t_C2 MAIN_PLL_Map[TDA18271_MAIN_PLL_NB_ROWS_C2];
+ } tmTDA18271Config_t_C2, *ptmTDA18271Config_t_C2;
+
+ typedef struct _tmTDA18271I2CMap_t_C2
+ {
+ union
+ {
+ UInt8 ID_BYTE; // address 0x00
+ // Chip identification byte
+ struct
+ {
+ UInt8 ID :7; // Chip identification number
+ UInt8 UNUSED :1; // Reserved, must be written as 1
+ }bF;
+ }uBx00;
+
+ union
+ {
+ UInt8 THERMO_BYTE; // address 0x01
+ // Thermometer byte
+ struct
+ {
+ UInt8 TM_D :4; // Data from die temperature measurement
+ UInt8 TM_ON :1; // Enable Die temperature measurement
+ UInt8 TM_Range :1; // Range selection bit for the internal die sensor
+ // 0: 60 to 92°C
+ // 1: 92 to 122°C
+ UInt8 MAIN_Lock :1; // Indicate that the MAIN synthesizer is locked to the programmed frequency
+ // 0: Not Locked
+ // 1: Locked
+ UInt8 POR :1; // Power on reset bit
+ // This bit is set to 1 each time the power supply falls below a certain level (around 1.4V) and is reset after a read operation ending with a stop condition
+ }bF;
+ }uBx01;
+
+ union
+ {
+ UInt8 POWER_LEVEL_BYTE; // address 0x02
+ // Power level byte
+ struct
+ {
+ UInt8 Power_Level_7_to_0:8;// Power level indicator value
+ }bF;
+ }uBx02;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_1; // address 0x03
+ // Easy programming byte 1
+ struct
+ {
+ UInt8 BP_Filter :3; // RF band-pass filter selection (H3/H5)
+ UInt8 IR_CAL_OK :1; // Indicate that the 3 Image rejection calibration procedure (Flow, Fmid, Fhigh) have been successful
+ UInt8 RF_CAL_OK :1; // Indicate that the RF tracking filter calibration procedure has been successful
+ UInt8 UNUSED :1; // Reserved
+ UInt8 Dis_Power_level:1;// Disable power level measurement
+ // 0: Power measurement valid
+ // 1: Power measurement not guaranted
+ UInt8 Power_Level_8 :1; // Power level indicator value
+ }bF;
+ }uBx03;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_2; // address 0x04
+ // Easy programming byte 2
+ struct
+ {
+ UInt8 Gain_Taper :5; // Gain taper value
+ // 0 : max atten. (end of Band)
+ // 31: min atten. (start of Band)
+ UInt8 RF_Band :3; // RF tracking filter band and sub-band selection
+ }bF;
+ }uBx04;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_3; // address 0x05
+ // Easy programming byte 3
+ struct
+ {
+ UInt8 Std :5; // Standard selection
+ UInt8 SM_XT :1; // XTAL output sleep mode
+ UInt8 SM_LT :1; // Loop through sleep mode
+ UInt8 SM :1; // General sleep mode
+ }bF;
+ }uBx05;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_4; // address 0x06
+ // Easy programming byte 4
+ struct
+ {
+ UInt8 CAL_Mode :2; // calibration mode selection
+ UInt8 IF_Level :3; // IF output level selection
+ UInt8 Xtout_400mV :1; // XTAL output level optional selection
+ UInt8 XTout_ON :1; // Enable 16MHz on XTAL output
+ UInt8 FM_RFn :1; // FM or RF input selection
+ }bF;
+ }uBx06;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_5; // address 0x07
+ // Easy programming byte 5
+ struct
+ {
+ UInt8 IR_Meas :3; // Image rejection measurement mode
+ UInt8 I2C_Xtout_Asym:1; // Reserved
+ UInt8 IR_Gstep :3; // Gain step for image rejection measurement. Depends on frequency
+ UInt8 Extended_Reg :1; // Enable the extended byte addressing
+ // 0: Limited byte (&h00:&h0F)
+ // 1: Extended byte (&h00:&h26)
+ }bF;
+ }uBx07;
+
+ union
+ {
+ UInt8 CAL_POST_DIV_BYTE; // address 0x08
+ // CAL post divider byte
+ struct
+ {
+ UInt8 CALPostDiv :7; // CAL post divider
+ UInt8 RUF_0 :1; // Reserved
+ }bF;
+ }uBx08;
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_1; // address 0x09
+ // CAL divider byte 1
+ struct
+ {
+ UInt8 CAL_Div_22_to_16:7;// CAL divider value 22 to 16
+ UInt8 RUF_1 :1; // Reserved
+ }bF;
+ }uBx09;
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_2; // address 0x0A
+ // CAL divider byte 2
+ struct
+ {
+ UInt8 CAL_Div_15_to_8:8;// CAL divider value 15 to 8
+ }bF;
+ }uBx0A;
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_3; // address 0x0B
+ // CAL divider byte 3
+ struct
+ {
+ UInt8 CAL_Div_7_to_0:8; // CAL divider value 7 to 0
+ }bF;
+ }uBx0B;
+
+ union
+ {
+ UInt8 MAIN_POST_DIV_BYTE; // address 0x0C
+ // MAIN post divider byte
+ struct
+ {
+ UInt8 MAIN_Post_Div :7; // MAIN post divider value
+ UInt8 IF_notch :1; // Reserved
+ }bF;
+ }uBx0C;
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_1; // address 0x0D
+ // MAIN divider byte 1
+ struct
+ {
+ UInt8 MAIN_Div_22_to_16:7;// MAIN divider value 22 to 16
+ UInt8 RUF_2 :1; // Reserved
+ }bF;
+ }uBx0D;
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_2; // address 0x0E
+ // MAIN divider byte 2
+ struct
+ {
+ UInt8 MAIN_Div_15_to_8:8;// MAIN divider value 15 to 8
+ }bF;
+ }uBx0E;
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_3; // address 0x0F
+ // MAIN divider byte 3
+ struct
+ {
+ UInt8 MAIN_Div_7_to_0:8;// MAIN divider value 7 to 0
+ }bF;
+ }uBx0F;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_1; // address 0x10
+ // extended byte 1
+ struct
+ {
+ UInt8 AGC1_firstn :1; //
+ UInt8 AGC1_always_mastern:1;//
+ UInt8 CALVCO_forLOn :1; //
+ UInt8 UNUSED :1; // Reserved
+ }bF;
+ }uBx10;
+
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_2; // address 0x11
+ }uBx11; // extended byte 2
+
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_3; // address 0x12
+ }uBx12; // extended byte 3
+
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_4; // address 0x13
+ // extended byte 4
+ struct
+ {
+ UInt8 UNUSED_1 :5; // Reserved
+ UInt8 LO_ForceSrce :1; //
+ UInt8 UNUSED_2 :2; // Reserved
+ }bF;
+ }uBx13;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_5; // address 0x14
+ }uBx14; // extended byte 5
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_6; // address 0x15
+ }uBx15; // extended byte 6
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_7; // address 0x16
+ // extended byte 7
+ struct
+ {
+ UInt8 CAL_Lock :1;
+ UInt8 UNUSED_1 :4; // Reserved
+ UInt8 CAL_ForceSrce :1; //
+ UInt8 UNUSED_2 :2; // Reserved
+ }bF;
+ }uBx16;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_8; // address 0x17
+ // extended byte 8
+ struct
+ {
+ UInt8 UNUSED :7; // Reserved
+ UInt8 CID_Alarm :1; //
+ }bF;
+ }uBx17;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_9; // address 0x18
+ }uBx18; // extended byte 9
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_10; // address 0x19
+ // extended byte 10
+ struct
+ {
+ UInt8 CID_Gain :6; //
+ UInt8 UNUSED :2; // Reserved
+ }bF;
+ }uBx19;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_11; // address 0x1A
+ }uBx1A; // extended byte 11
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_12; // address 0x1B
+ // extended byte 12
+ struct
+ {
+ UInt8 UNUSED_1 :4; // Reserved
+ UInt8 PD_AGC2_Det :1; //
+ UInt8 PD_AGC1_Det :1; //
+ UInt8 UNUSED_2 :2; // Reserved
+ }bF;
+ }uBx1B;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_13; // address 0x1C
+ // extended byte 13
+ struct
+ {
+ UInt8 UNUSED_1 :2; // Reserved
+ UInt8 RFC_M :2; //
+ UInt8 RFC_K :3; //
+ UInt8 UNUSED_2 :1; // Reserved
+ }bF;
+ }uBx1C;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_14; // address 0x1D
+ // extended byte 14
+ UInt8 RFC_Cprog;
+ }uBx1D;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_15; // address 0x1E
+ }uBx1E; // extended byte 15
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_16; // address 0x1F
+ }uBx1F; // extended byte 16
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_17; // address 0x20
+ }uBx20; // extended byte 17
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_18; // address 0x21
+ // extended byte 18
+ struct
+ {
+ UInt8 AGC1_Gain :2; //
+ UInt8 UNUSED :5; // Reserved
+ UInt8 AGC1_loop_off :1; //
+ }bF;
+ }uBx21;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_19; // address 0x22
+ }uBx22; // extended byte 19
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_20; // address 0x23
+ // extended byte 20
+ struct
+ {
+ UInt8 UNUSED_1 :5; // Reserved
+ UInt8 Force_Lock :1; //
+ UInt8 UNUSED_2 :2; // Reserved
+ }bF;
+ }uBx23;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_21; // address 0x24
+ // extended byte 21
+ struct
+ {
+ UInt8 AGC2_Gain :2; //
+ UInt8 UNUSED :5; // Reserved
+ UInt8 AGC2_loop_off :1; //
+ }bF;
+ }uBx24;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_22; // address 0x25
+ }uBx25; // extended byte 22
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_23; // address 0x26
+ // extended byte 23
+ struct
+ {
+ UInt8 UNUSED_1 :1; // Reserved
+ UInt8 LP_Fc :1; //
+ UInt8 ForceLP_Fc2_En:1; //
+ UInt8 UNUSED_2 :3; // Reserved
+ UInt8 FM_LNAGain :2; //
+ }bF;
+ }uBx26;
+
+ } tmTDA18271I2CMap_t_C2, *ptmTDA18271I2CMap_t_C2;
+
+typedef struct _tmAFAInfo_t_C2 {
+ Demodulator* demodulator;
+ UInt8 chip;
+} tmAFAInfo_t_C2, *ptmAFAInfo_t_C2;
+
+typedef struct _tmTDA18271Object_t_C2 {
+ tmAFAInfo_t_C2 AFAInfo_C2;
+ tmUnitSelect_t TunerUnit;
+ Bool_ init;
+ UInt32 uHwAddress;
+/*#ifdef NXPFE
+ tmdlDefaultGCRoot<tmdlDefaultDeviceDriver::tmhalFEBslSystemFunc_c^> SystemFunc;
+#else*/
+ tmhalFEBslSystemFunc_t_C2 SystemFunc;
+//#endif
+ tmTDA18271PowerState_t_C2 curPowerState;
+ tmTDA18271StandardMode_t_C2 StandardMode;
+ tmTDA18271Config_t_C2 Config;
+ tmTDA18271I2CMap_t_C2 I2CMap;
+ UInt32 I2CLog[TDA18271_LOG_NB_ROWS_C2][TDA18271_NB_BYTES_C2 + 2];
+ UInt32 uTickEnd;
+} tmTDA18271Object_t_C2, *ptmTDA18271Object_t_C2, **pptmTDA18271Object_t_C2;
+
+ typedef struct _tmTDA18271VbI2CData_t_C2 {
+ UInt32 h00;
+ UInt32 h01;
+ UInt32 h02;
+ UInt32 h03;
+ UInt32 h04;
+ UInt32 h05;
+ UInt32 h06;
+ UInt32 h07;
+ UInt32 h08;
+ UInt32 h09;
+ UInt32 h0A;
+ UInt32 h0B;
+ UInt32 h0C;
+ UInt32 h0D;
+ UInt32 h0E;
+ UInt32 h0F;
+ UInt32 h10;
+ UInt32 h11;
+ UInt32 h12;
+ UInt32 h13;
+ UInt32 h14;
+ UInt32 h15;
+ UInt32 h16;
+ UInt32 h17;
+ UInt32 h18;
+ UInt32 h19;
+ UInt32 h1A;
+ UInt32 h1B;
+ UInt32 h1C;
+ UInt32 h1D;
+ UInt32 h1E;
+ UInt32 h1F;
+ UInt32 h20;
+ UInt32 h21;
+ UInt32 h22;
+ UInt32 h23;
+ UInt32 h24;
+ UInt32 h25;
+ UInt32 h26;
+ UInt32 I2CAddress;
+ UInt32 I2CCommResult;
+ } tmTDA18271VbI2CData_t_C2, *ptmTDA18271VbI2CData_t_C2;
+
+//-----------------------------------------------------------------------------
+// Function:
+//-----------------------------------------------------------------------------
+//
+ Bool_
+ TDA18271Wrapper_C2 (
+ ptmTDA18271Object_t_C2 pObj, // I: Tuner unit number
+ UInt32 uHwAddress, // I: Tuner unit I2C address
+ UInt32 uLptPort, // I: I2C interface LPT port
+ UInt32 uI2cSpeed, // I: I2C interface speed
+ char* uParamTunerNumber // I: Tuner unit number
+ );
+
+ Bool_
+ TDA18271WrapperClose_C2();
+
+//#ifndef NXPFE
+#ifdef __cplusplus
+}
+#endif
+//#endif //NXPFE
+
+#endif // _TMBSL_TDA18271LOCAL_H_C2 //---------------
diff --git a/api/TDA18271local_C2_Askey.h b/api/TDA18271local_C2_Askey.h
new file mode 100644
index 0000000..8560675
--- /dev/null
+++ b/api/TDA18271local_C2_Askey.h
@@ -0,0 +1,891 @@
+//-----------------------------------------------------------------------------
+// $Header:
+// (C) Copyright 2001 NXP Semiconductors, All rights reserved
+//
+// This source code and any compilation or derivative thereof is the sole
+// property of NXP Corporation and is provided pursuant to a Software
+// License Agreement. This code is the proprietary information of NXP
+// Corporation and is confidential in nature. Its use and dissemination by
+// any party other than NXP Corporation is strictly limited by the
+// confidential information provisions of the Agreement referenced above.
+//-----------------------------------------------------------------------------
+// FILE NAME: tmbslTDA18271local_C2_Askey.h
+//
+// DESCRIPTION: define the Object for the TDA18271_C2_Askey
+//
+// DOCUMENT REF: DVP Software Coding Guidelines v1.14
+// DVP Board Support Library Architecture Specification v0.5
+//
+// NOTES:
+//-----------------------------------------------------------------------------
+//
+#ifndef _TMBSL_TDA18271LOCAL_C2_Askey_H //-----------------
+#define _TMBSL_TDA18271LOCAL_C2_Askey_H
+
+#include "type.h"
+
+//-----------------------------------------------------------------------------
+// Standard include files:
+//-----------------------------------------------------------------------------
+
+//-----------------------------------------------------------------------------
+// Project include files:
+//-----------------------------------------------------------------------------
+//
+//#ifndef NXPFE
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+//#endif // NXPFE
+
+//-----------------------------------------------------------------------------
+// Types and defines:
+//-----------------------------------------------------------------------------
+//
+#define TMBSL_TDA18271_COMPONENT_NAME_C2_Askey TDA18271_C2_Askey
+#define TMBSL_TDA18271_COMPONENT_NAME_STR_C2_Askey "TDA18271_C2_Askey"
+
+#define _SYSTEMFUNC (pObj->SystemFunc)
+
+#define TDA18271_BSL_COMP_NUM_C2_Askey 3 // Major protocol change - Specification change required
+#define TDA18271_BSL_MAJOR_VER_C2_Askey 4 // Minor protocol change - Specification change required
+#define TDA18271_BSL_MINOR_VER_C2_Askey 3 // Software update - No protocol change - No specification change required
+#define TDA18271_BSL_SUB_VER_C2_Askey 0 // Askey for through TTL3200 AV-In model authentication
+
+//-------------
+// ERROR CODES
+//-------------
+#define TMBSL_ERR_TUNER_BASE_C2_Askey 0x80000000U
+#define TM_ERR_BAD_UNIT_NUMBER_C2_Askey 0x00000001U
+#define TM_ERR_NOT_INITIALIZED_C2_Askey 0x00000002U
+#define TM_ERR_BAD_PARAMETER_C2_Askey 0x00000003U
+#define TM_ERR_NOT_SUPPORTED_C2_Askey 0x00000004U
+#define TM_ERR_IIC_ERR_C2_Askey 0x00000005U
+// Invalid unit id
+#define TMBSL_ERR_TUNER_BAD_UNIT_NUMBER_C2_Askey \
+ (TMBSL_ERR_TUNER_BASE_C2_Askey + TM_ERR_BAD_UNIT_NUMBER_C2_Askey)
+
+// Component is not initialized
+#define TMBSL_ERR_TUNER_NOT_INITIALIZED_C2_Askey \
+ (TMBSL_ERR_TUNER_BASE_C2_Askey+ TM_ERR_NOT_INITIALIZED_C2_Askey)
+
+// Invalid input parameter
+#define TMBSL_ERR_TUNER_BAD_PARAMETER_C2_Askey \
+ (TMBSL_ERR_TUNER_BASE_C2_Askey + TM_ERR_BAD_PARAMETER_C2_Askey)
+
+// Function is not supported
+#define TMBSL_ERR_TUNER_NOT_SUPPORTED_C2_Askey \
+ (TMBSL_ERR_TUNER_BASE_C2_Askey + TM_ERR_NOT_SUPPORTED_C2_Askey)
+
+// Function is not supported
+#define TMBSL_ERR_IIC_ERR_C2_Askey \
+ (TMBSL_ERR_TUNER_BASE_C2_Askey + TM_ERR_IIC_ERR_C2_Askey)
+
+#define TDA18271_MAX_UNITS_C2_Askey 10 //
+#define TDA18271_NB_BYTES_C2_Askey 39 //
+#define TDA18271_LOG_NB_ROWS_C2_Askey 300 //
+#define TDA18271_LOG_BLANK_DATA_C2_Askey 256 //
+
+#define TDA18271_IR_MEAS_NB_COLUMNS_C2_Askey 2 //
+#define TDA18271_IR_CAL_NB_COLUMNS_C2_Askey 2 //
+#define TDA18271_BP_FILTER_NB_COLUMNS_C2_Askey 2 //
+#define TDA18271_RF_BAND_NB_COLUMNS_C2_Askey 12 //
+#define TDA18271_GAIN_TAPER_NB_COLUMNS_C2_Askey 2 //
+#define TDA18271_RF_CAL_NB_COLUMNS_C2_Askey 2 //
+#define TDA18271_RF_CAL_DC_OVER_DT_NB_COLUMNS_C2_Askey 2 //
+#define TDA18271_RF_CAL_KMCO_NB_COLUMNS_C2_Askey 4 //
+#define TDA18271_RF_CAL_CID_TARGET_NB_COLUMNS_C2_Askey 3 //
+#define TDA18271_CAL_PLL_NB_COLUMNS_C2_Askey 3 //
+#define TDA18271_MAIN_PLL_NB_COLUMNS_C2_Askey 3 //
+
+
+#define TDA18271_IR_MEAS_NB_ROWS_C2_Askey 3 //
+#define TDA18271_IR_CAL_NB_ROWS_C2_Askey 3 //
+#define TDA18271_BP_FILTER_NB_ROWS_C2_Askey 7 //
+#define TDA18271_RF_BAND_NB_ROWS_C2_Askey 7 //
+#define TDA18271_GAIN_TAPER_NB_ROWS_C2_Askey 85 //
+#define TDA18271_RF_CAL_NB_ROWS_C2_Askey 437 //
+#define TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2_Askey 101 //
+#define TDA18271_RF_CAL_KMCO_NB_ROWS_C2_Askey 5 //
+#define TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2_Askey 12 //
+#define TDA18271_CAL_PLL_NB_ROWS_C2_Askey 35 //
+#define TDA18271_MAIN_PLL_NB_ROWS_C2_Askey 40 //
+
+
+
+#define TDA18271_THERMOMETER_NB_COLUMNS_C2_Askey 3 //
+#define TDA18271_THERMOMETER_NB_ROWS_C2_Askey 16 //
+
+#define TDA18271_IDENTITY_IND_C2_Askey 0 //
+
+#define OM5770C2_BOARD_DEF_C2_Askey 0x57700002 // TDA8295C1 + TDA10046 + TDA18271
+#define OM5775_BOARD_DEF_C2_Askey 0x57750000 // 2xTDA8290C1 + 2xTDA10048 + 2xTDA18271
+
+#define OM5776_BOARD_DEF_C2_Askey 0x57760000 //
+#define OM5777_BOARD_DEF_C2_Askey 0x57770000 //
+#define OM5780_BOARD_DEF_C2_Askey 0x57800000 //
+#define OM5782_BOARD_DEF_C2_Askey 0x57820000 //
+#define OM5764_BOARD_DEF_C2_Askey 0x57640199 //
+#define CUSTOM_BOARD_DEF_C2_Askey 0x00000000 // custom
+#define OM57XX_STANDARD_DEF_C2_Askey 2
+
+#define RF_CAL_IF_FREQ_C2_Askey 1000000
+
+// types
+typedef char Int8; /* 8 bit unsigned integer */
+typedef long Int32; /* 32 bit integer */
+typedef unsigned long UInt32; /* 32 bit unsigned integer */
+typedef unsigned short UInt16; /* 16 bit unsigned integer */
+typedef unsigned char UInt8; /* 8 bit unsigned integer */
+typedef UInt32 tmErrorCode_t;
+typedef unsigned int Bool_; /* Boolean (True/False) */
+typedef int tmUnitSelect_t, *ptmUnitSelect_t;
+#define NULL 0
+
+#define TM_OK 0U /* Global success return status */
+#define TM_FALSE 0
+#define TM_TRUE 1
+
+#define True TM_TRUE
+#define False TM_FALSE
+#define OM5770C2_BOARD_DEF 0x57700002 //
+#define OM5775_BOARD_DEF 0x57750000 //
+#define OM5776_BOARD_DEF 0x57760000 //
+#define OM5777_BOARD_DEF 0x57770000 //
+#define OM5780_BOARD_DEF 0x57800000 //
+#define OM5782_BOARD_DEF 0x57820000 //
+#define OM5764_BOARD_DEF 0x57640199 //
+#define CUSTOM_BOARD_DEF 0x00000000 // custom
+#define OM57XX_STANDARD_DEF 2
+
+
+ typedef enum _tmTDA18271cfgIndex_t_C2_Askey {
+ BOARD_C2_Askey = 0,
+ STANDARD_C2_Askey = 1,
+ FEINIT_C2_Askey = 100,
+ IDENTITY_C2_Askey = 102,
+ GETNBOFUNIT_C2_Askey = 200,
+ BANDWIDTH_C2_Askey = 300,
+ RFBAND_C2_Askey = 302,
+ RF_C2_Askey,
+ ID_C2_Askey,
+ POR_C2_Askey,
+ MAINLOCK_C2_Askey,
+ PLRFAGC_C2_Askey = 310,
+ POWERSTATE_C2_Askey = 312,
+ PLRUN_C2_Askey = 350,
+ TMVALUE_C2_Askey,
+ PLMODE_C2_Askey,
+ PLAGC1_C2_Askey,
+ PLAGC2_C2_Askey,
+ RFCALOK_C2_Askey,
+ IRCALOK_C2_Askey,
+ BPFILTER_C2_Askey,
+ GAINTAPER_C2_Askey,
+ LPFC_C2_Askey,
+ FMRFN_C2_Askey,
+ XTOUT_C2_Askey,
+ IFLEVEL_C2_Askey,
+ EXTENDEDREG_C2_Askey,
+ CALPOSTDIV_C2_Askey,
+ CALDIV_C2_Askey,
+ MAINPOSTDIV_C2_Askey,
+ MAINDIV_C2_Askey,
+ MAPNAME_C2_Askey,
+ MAPCOLUMN_C2_Askey,
+ MAPROW_C2_Askey,
+ MAPVALUE_C2_Askey,
+ READINIT_C2_Askey,
+ RFCAL_TCOMP_C2_Askey,
+ STATUSBYTE_C2_Askey = 380,
+ PROTOCOLWAIT_C2_Askey = 382,
+ STANDARDMODE_C2_Askey = 400,
+ IF_C2_Askey = 517,
+ PROTOCOLSTEP_C2_Askey,
+ } tmTDA18271cfgIndex_t_C2_Askey;
+
+ typedef enum _tmTDA18271PowerState_t_C2_Askey {
+ tmPowerNormalMode_C2_Askey, // Device normal mode
+ tmPowerSleepMode_C2_Askey, // Device sleep mode
+ tmPowerStandbyWith16MHz_C2_Askey, // Device standby with 16Mhz
+ tmPowerStandbyWith16MHzAndLoopThrough_C2_Askey, // Device standby with 16Mhz and loop through
+ tmPowerStandbyWithLoopThrough_C2_Askey, // Device standby with loop through
+ tmPowerNotSupported_C2_Askey, // Not supported power mode
+ } tmTDA18271PowerState_t_C2_Askey, *ptmTDA18271PowerState_t_C2_Askey;
+
+ typedef enum _tmTDA18271StandardMode_t_C2_Askey {
+ tmDigital_TV_ATSC_6MHz_C2_Askey, // Digital TV ATSC 6MHz
+ tmDigital_TV_DVBT_7MHz_C2_Askey, // Digital TV DVB-T 7MHz
+ tmDigital_TV_DVBT_8MHz_C2_Askey, // Digital TV DVB-T 8MHz
+ tmAnalog_TV_MN_C2_Askey, // Analog TV M/N
+ tmAnalog_TV_B_C2_Askey, // Analog TV B
+ tmAnalog_TV_GH_C2_Askey, // Analog TV G/H
+ tmAnalog_TV_I_C2_Askey, // Analog TV I
+ tmAnalog_TV_DK_C2_Askey, // Analog TV D/K
+ tmAnalog_TV_L_C2_Askey, // Analog TV L
+ tmAnalog_TV_LL_C2_Askey, // Analog TV L'
+ tmAnalog_FM_Radio_C2_Askey, // Analog FM Radio
+ tmDigital_CAL_C2_Askey, // Digital CAL mode
+ tmDigital_TV_QAM_6MHz_C2_Askey, // Digital TV QAM 6MHz
+ tmDigital_TV_QAM_8MHz_C2_Askey, // Digital TV QAM 8MHz
+ tmDigital_TV_ISDBT_6MHz_C2_Askey, // Digital TV ISDBT 6MHz
+ tmStandardNotSupported_C2_Askey, // Not supported standard
+ }tmTDA18271StandardMode_t_C2_Askey, *ptmTDA18271StandardMode_t_C2_Askey;
+// added
+// system function
+Bool_ SY_Write_C2_Askey(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Read_C2_Askey(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Write_Slave_C2_Askey(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+Bool_ SY_Read_Slave_C2_Askey(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+
+typedef struct _tmhalFEBslSystemFunc_t_C2_Askey
+{
+ Bool_ (*SY_Write_C2_Askey) (UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+ Bool_ (*SY_Read_C2_Askey) (UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+ UInt32 (*SY_GetTickPeriod) (void);
+ UInt32 (*SY_GetTickTime) (void);
+
+} tmhalFEBslSystemFunc_t_C2_Askey, *ptmhalFEBslSystemFunc_t_C2_Askey;
+
+typedef struct _tmbslTuParam_t_C2_Askey
+{
+ unsigned long uHwAddress;
+ tmhalFEBslSystemFunc_t_C2_Askey systemFunc;
+} tmbslTuParam_t_C2_Askey, *ptmbslTuParam_t_C2_Askey;
+
+typedef struct tmSWVersion_C2_Askey
+{
+ UInt32 compatibilityNr; /* Interface compatibility number */
+ UInt32 majorVersionNr; /* Interface major version number */
+ UInt32 minorVersionNr; /* Interface minor version number */
+
+} tmSWVersion_t_C2_Askey, *ptmSWVersion_t_C2_Askey;
+
+// added
+
+ typedef enum _tmTDA18271MapName_t_C2_Askey {
+ tmTDA18271_IR_MEAS_Map_C2_Askey, // Image rejection measurement map
+ tmTDA18271_IR_CAL_Map_C2_Askey, // Image rejection calibration map
+ tmTDA18271_BP_FILTER_Map_C2_Askey, // Band pass filter map
+ tmTDA18271_RF_BAND_Map_C2_Askey, // RF band map
+ tmTDA18271_GAIN_TAPER_Map_C2_Askey, // Gain tapper map
+ tmTDA18271_RF_CAL_Map_C2_Askey, // RF calibration map
+ tmTDA18271_RF_CAL_DC_OVER_DT_Map_C2_Askey, // RF calibration temperature adjustment map
+ tmTDA18271_RF_CAL_KMCO_Map_C2_Askey, // RF calibration K,M,COAmpl map
+ tmTDA18271_RF_CAL_CID_TARGET_Map_C2_Askey, // RF calibration CID target map
+ tmTDA18271_THERMOMETER_Map_C2_Askey, // Thermometer map
+ tmTDA18271_CAL_PLL_Map_C2_Askey, // Calibration PLL map
+ tmTDA18271_MAIN_PLL_Map_C2_Askey, // Main PLL map
+ tmTDA18271_I2C_Map_C2_Askey, // I2C map
+ } tmTDA18271MapName_t_C2_Askey, *ptmTDA18271MapName_t_C2_Askey;
+
+ typedef struct _tmTDA18271_IR_MEAS_Map_t_C2_Askey {
+ UInt32 uRF_Max;
+ UInt32 uIR_Meas;
+ } tmTDA18271_IR_MEAS_Map_t_C2_Askey, *ptmTDA18271_IR_MEAS_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_IR_CAL_Map_t_C2_Askey {
+ UInt32 uRF;
+ UInt32 uIR_GStep;
+ } tmTDA18271_IR_CAL_Map_t_C2_Askey, *ptmTDA18271_IR_CAL_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_BP_FILTER_Map_t_C2_Askey {
+ UInt32 uRF_Max;
+ UInt32 uBP_Filter;
+ } tmTDA18271_BP_FILTER_Map_t_C2_Askey, *ptmTDA18271_BP_FILTER_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_RF_BAND_Map_t_C2_Askey {
+ UInt32 uRF_Max;
+ UInt32 uRF_Band;
+ UInt32 uRF1;
+ UInt32 uRF2;
+ UInt32 uRF3;
+ Int32 uRF_A1;
+ Int32 uRF_B1;
+ Int32 uRF_A2;
+ Int32 uRF_B2;
+ UInt32 uRF1_default;
+ UInt32 uRF2_default;
+ UInt32 uRF3_default;
+ } tmTDA18271_RF_BAND_Map_t_C2_Askey, *ptmTDA18271_RF_BAND_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_GAIN_TAPER_Map_t_C2_Askey {
+ UInt32 uRF_Max;
+ UInt32 uGain_Taper;
+ } tmTDA18271_GAIN_TAPER_Map_t_C2_Askey, *ptmTDA18271_GAIN_TAPER_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_RF_CAL_Map_t_C2_Askey {
+ UInt32 uRF_Max;
+ UInt32 uRFC_Cprog;
+ } tmTDA18271_RF_CAL_Map_t_C2_Askey, *ptmTDA18271_RF_CAL_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_RF_CAL_DC_OVER_DT_Map_t_C2_Askey {
+ UInt32 uRF_Max;
+ UInt32 udC_Over_dT;
+ } tmTDA18271_RF_CAL_DC_OVER_DT_Map_t_C2_Askey, *ptmTDA18271_RF_CAL_DC_OVER_DT_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_RF_CAL_KMCO_Map_t_C2_Askey {
+ UInt32 uRF_Max;
+ UInt32 uK;
+ UInt32 uM;
+ UInt32 uCOAmpl;
+ } tmTDA18271_RF_CAL_KMCO_Map_t_C2_Askey, *ptmTDA18271_RF_CAL_KMCO_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_RF_CAL_CID_TARGET_Map_t_C2_Askey {
+ UInt32 uRF_Max;
+ UInt32 uCID_Target;
+ UInt32 uCount_Limit;
+ } tmTDA18271_RF_CAL_CID_TARGET_Map_t_C2_Askey, *ptmTDA18271_RF_CAL_CID_TARGET_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_THERMOMETER_Map_t_C2_Askey {
+ UInt32 uTM_D;
+ UInt32 uTM_60_92;
+ UInt32 uTM_92_122;
+ } tmTDA18271_THERMOMETER_Map_t_C2_Askey, *ptmTDA18271_THERMOMETER_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271_PLL_Map_t_C2_Askey {
+ UInt32 uLO_Max;
+ UInt32 uPost_Div;
+ UInt32 uDiv;
+ } tmTDA18271_PLL_Map_t_C2_Askey, *ptmTDA18271_PLL_Map_t_C2_Askey;
+
+ typedef struct _tmTDA18271Config_t_C2_Askey {
+ UInt32 uBoard;
+ UInt32 uStandard;
+ UInt32 uRF;
+ UInt32 uIF;
+ //UInt32 uBW;
+ UInt32 uTMVALUE_RFCAL;
+ UInt32 uPLMODE;
+ Int32 uRFCAL_TCOMP;
+ UInt32 uMAPNAME;
+ UInt32 uMAPCOLUMN;
+ UInt32 uMAPROW;
+ UInt32 uPROTOCOLSTEP;
+ tmTDA18271_IR_MEAS_Map_t_C2_Askey IR_MEAS_Map[TDA18271_IR_MEAS_NB_ROWS_C2_Askey];
+ tmTDA18271_IR_CAL_Map_t_C2_Askey IR_CAL_Map[TDA18271_IR_CAL_NB_ROWS_C2_Askey];
+ tmTDA18271_BP_FILTER_Map_t_C2_Askey BP_FILTER_Map[TDA18271_BP_FILTER_NB_ROWS_C2_Askey];
+ tmTDA18271_RF_BAND_Map_t_C2_Askey RF_BAND_Map[TDA18271_RF_BAND_NB_ROWS_C2_Askey];
+ tmTDA18271_GAIN_TAPER_Map_t_C2_Askey GAIN_TAPER_Map[TDA18271_GAIN_TAPER_NB_ROWS_C2_Askey];
+ tmTDA18271_RF_CAL_Map_t_C2_Askey RF_CAL_Map[TDA18271_RF_CAL_NB_ROWS_C2_Askey];
+ tmTDA18271_RF_CAL_DC_OVER_DT_Map_t_C2_Askey RF_CAL_DC_OVER_DT_Map[TDA18271_RF_CAL_DC_OVER_DT_NB_ROWS_C2_Askey];
+ tmTDA18271_RF_CAL_KMCO_Map_t_C2_Askey RF_CAL_KMCO_Map[TDA18271_RF_CAL_KMCO_NB_ROWS_C2_Askey];
+ tmTDA18271_RF_CAL_CID_TARGET_Map_t_C2_Askey RF_CAL_CID_TARGET_Map[TDA18271_RF_CAL_CID_TARGET_NB_ROWS_C2_Askey];
+ tmTDA18271_THERMOMETER_Map_t_C2_Askey THERMOMETER_Map[TDA18271_THERMOMETER_NB_ROWS_C2_Askey];
+ tmTDA18271_PLL_Map_t_C2_Askey CAL_PLL_Map[TDA18271_CAL_PLL_NB_ROWS_C2_Askey];
+ tmTDA18271_PLL_Map_t_C2_Askey MAIN_PLL_Map[TDA18271_MAIN_PLL_NB_ROWS_C2_Askey];
+ } tmTDA18271Config_t_C2_Askey, *ptmTDA18271Config_t_C2_Askey;
+
+ typedef struct _tmTDA18271I2CMap_t_C2_Askey
+ {
+ union
+ {
+ UInt8 ID_BYTE; // address 0x00
+ // Chip identification byte
+ struct
+ {
+ UInt8 ID :7; // Chip identification number
+ UInt8 UNUSED :1; // Reserved, must be written as 1
+ }bF;
+ }uBx00;
+
+ union
+ {
+ UInt8 THERMO_BYTE; // address 0x01
+ // Thermometer byte
+ struct
+ {
+ UInt8 TM_D :4; // Data from die temperature measurement
+ UInt8 TM_ON :1; // Enable Die temperature measurement
+ UInt8 TM_Range :1; // Range selection bit for the internal die sensor
+ // 0: 60 to 92°C
+ // 1: 92 to 122°C
+ UInt8 MAIN_Lock :1; // Indicate that the MAIN synthesizer is locked to the programmed frequency
+ // 0: Not Locked
+ // 1: Locked
+ UInt8 POR :1; // Power on reset bit
+ // This bit is set to 1 each time the power supply falls below a certain level (around 1.4V) and is reset after a read operation ending with a stop condition
+ }bF;
+ }uBx01;
+
+ union
+ {
+ UInt8 POWER_LEVEL_BYTE; // address 0x02
+ // Power level byte
+ struct
+ {
+ UInt8 Power_Level_7_to_0:8;// Power level indicator value
+ }bF;
+ }uBx02;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_1; // address 0x03
+ // Easy programming byte 1
+ struct
+ {
+ UInt8 BP_Filter :3; // RF band-pass filter selection (H3/H5)
+ UInt8 IR_CAL_OK :1; // Indicate that the 3 Image rejection calibration procedure (Flow, Fmid, Fhigh) have been successful
+ UInt8 RF_CAL_OK :1; // Indicate that the RF tracking filter calibration procedure has been successful
+ UInt8 UNUSED :1; // Reserved
+ UInt8 Dis_Power_level:1;// Disable power level measurement
+ // 0: Power measurement valid
+ // 1: Power measurement not guaranted
+ UInt8 Power_Level_8 :1; // Power level indicator value
+ }bF;
+ }uBx03;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_2; // address 0x04
+ // Easy programming byte 2
+ struct
+ {
+ UInt8 Gain_Taper :5; // Gain taper value
+ // 0 : max atten. (end of Band)
+ // 31: min atten. (start of Band)
+ UInt8 RF_Band :3; // RF tracking filter band and sub-band selection
+ }bF;
+ }uBx04;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_3; // address 0x05
+ // Easy programming byte 3
+ struct
+ {
+ UInt8 Std :5; // Standard selection
+ UInt8 SM_XT :1; // XTAL output sleep mode
+ UInt8 SM_LT :1; // Loop through sleep mode
+ UInt8 SM :1; // General sleep mode
+ }bF;
+ }uBx05;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_4; // address 0x06
+ // Easy programming byte 4
+ struct
+ {
+ UInt8 CAL_Mode :2; // calibration mode selection
+ UInt8 IF_Level :3; // IF output level selection
+ UInt8 Xtout_400mV :1; // XTAL output level optional selection
+ UInt8 XTout_ON :1; // Enable 16MHz on XTAL output
+ UInt8 FM_RFn :1; // FM or RF input selection
+ }bF;
+ }uBx06;
+
+ union
+ {
+ UInt8 EASY_PROG_BYTE_5; // address 0x07
+ // Easy programming byte 5
+ struct
+ {
+ UInt8 IR_Meas :3; // Image rejection measurement mode
+ UInt8 I2C_Xtout_Asym:1; // Reserved
+ UInt8 IR_Gstep :3; // Gain step for image rejection measurement. Depends on frequency
+ UInt8 Extended_Reg :1; // Enable the extended byte addressing
+ // 0: Limited byte (&h00:&h0F)
+ // 1: Extended byte (&h00:&h26)
+ }bF;
+ }uBx07;
+
+ union
+ {
+ UInt8 CAL_POST_DIV_BYTE; // address 0x08
+ // CAL post divider byte
+ struct
+ {
+ UInt8 CALPostDiv :7; // CAL post divider
+ UInt8 RUF_0 :1; // Reserved
+ }bF;
+ }uBx08;
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_1; // address 0x09
+ // CAL divider byte 1
+ struct
+ {
+ UInt8 CAL_Div_22_to_16:7;// CAL divider value 22 to 16
+ UInt8 RUF_1 :1; // Reserved
+ }bF;
+ }uBx09;
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_2; // address 0x0A
+ // CAL divider byte 2
+ struct
+ {
+ UInt8 CAL_Div_15_to_8:8;// CAL divider value 15 to 8
+ }bF;
+ }uBx0A;
+
+ union
+ {
+ UInt8 CAL_DIV_BYTE_3; // address 0x0B
+ // CAL divider byte 3
+ struct
+ {
+ UInt8 CAL_Div_7_to_0:8; // CAL divider value 7 to 0
+ }bF;
+ }uBx0B;
+
+ union
+ {
+ UInt8 MAIN_POST_DIV_BYTE; // address 0x0C
+ // MAIN post divider byte
+ struct
+ {
+ UInt8 MAIN_Post_Div :7; // MAIN post divider value
+ UInt8 IF_notch :1; // Reserved
+ }bF;
+ }uBx0C;
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_1; // address 0x0D
+ // MAIN divider byte 1
+ struct
+ {
+ UInt8 MAIN_Div_22_to_16:7;// MAIN divider value 22 to 16
+ UInt8 RUF_2 :1; // Reserved
+ }bF;
+ }uBx0D;
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_2; // address 0x0E
+ // MAIN divider byte 2
+ struct
+ {
+ UInt8 MAIN_Div_15_to_8:8;// MAIN divider value 15 to 8
+ }bF;
+ }uBx0E;
+
+ union
+ {
+ UInt8 MAIN_DIV_BYTE_3; // address 0x0F
+ // MAIN divider byte 3
+ struct
+ {
+ UInt8 MAIN_Div_7_to_0:8;// MAIN divider value 7 to 0
+ }bF;
+ }uBx0F;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_1; // address 0x10
+ // extended byte 1
+ struct
+ {
+ UInt8 AGC1_firstn :1; //
+ UInt8 AGC1_always_mastern:1;//
+ UInt8 CALVCO_forLOn :1; //
+ UInt8 UNUSED :1; // Reserved
+ }bF;
+ }uBx10;
+
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_2; // address 0x11
+ }uBx11; // extended byte 2
+
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_3; // address 0x12
+ }uBx12; // extended byte 3
+
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_4; // address 0x13
+ // extended byte 4
+ struct
+ {
+ UInt8 UNUSED_1 :5; // Reserved
+ UInt8 LO_ForceSrce :1; //
+ UInt8 UNUSED_2 :2; // Reserved
+ }bF;
+ }uBx13;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_5; // address 0x14
+ }uBx14; // extended byte 5
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_6; // address 0x15
+ }uBx15; // extended byte 6
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_7; // address 0x16
+ // extended byte 7
+ struct
+ {
+ UInt8 CAL_Lock :1;
+ UInt8 UNUSED_1 :4; // Reserved
+ UInt8 CAL_ForceSrce :1; //
+ UInt8 UNUSED_2 :2; // Reserved
+ }bF;
+ }uBx16;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_8; // address 0x17
+ // extended byte 8
+ struct
+ {
+ UInt8 UNUSED :7; // Reserved
+ UInt8 CID_Alarm :1; //
+ }bF;
+ }uBx17;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_9; // address 0x18
+ }uBx18; // extended byte 9
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_10; // address 0x19
+ // extended byte 10
+ struct
+ {
+ UInt8 CID_Gain :6; //
+ UInt8 UNUSED :2; // Reserved
+ }bF;
+ }uBx19;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_11; // address 0x1A
+ }uBx1A; // extended byte 11
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_12; // address 0x1B
+ // extended byte 12
+ struct
+ {
+ UInt8 UNUSED_1 :4; // Reserved
+ UInt8 PD_AGC2_Det :1; //
+ UInt8 PD_AGC1_Det :1; //
+ UInt8 UNUSED_2 :2; // Reserved
+ }bF;
+ }uBx1B;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_13; // address 0x1C
+ // extended byte 13
+ struct
+ {
+ UInt8 UNUSED_1 :2; // Reserved
+ UInt8 RFC_M :2; //
+ UInt8 RFC_K :3; //
+ UInt8 UNUSED_2 :1; // Reserved
+ }bF;
+ }uBx1C;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_14; // address 0x1D
+ // extended byte 14
+ UInt8 RFC_Cprog;
+ }uBx1D;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_15; // address 0x1E
+ }uBx1E; // extended byte 15
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_16; // address 0x1F
+ }uBx1F; // extended byte 16
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_17; // address 0x20
+ }uBx20; // extended byte 17
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_18; // address 0x21
+ // extended byte 18
+ struct
+ {
+ UInt8 AGC1_Gain :2; //
+ UInt8 UNUSED :5; // Reserved
+ UInt8 AGC1_loop_off :1; //
+ }bF;
+ }uBx21;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_19; // address 0x22
+ }uBx22; // extended byte 19
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_20; // address 0x23
+ // extended byte 20
+ struct
+ {
+ UInt8 UNUSED_1 :5; // Reserved
+ UInt8 Force_Lock :1; //
+ UInt8 UNUSED_2 :2; // Reserved
+ }bF;
+ }uBx23;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_21; // address 0x24
+ // extended byte 21
+ struct
+ {
+ UInt8 AGC2_Gain :2; //
+ UInt8 UNUSED :5; // Reserved
+ UInt8 AGC2_loop_off :1; //
+ }bF;
+ }uBx24;
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_22; // address 0x25
+ }uBx25; // extended byte 22
+
+ union
+ {
+ UInt8 EXTENDED_BYTE_23; // address 0x26
+ // extended byte 23
+ struct
+ {
+ UInt8 UNUSED_1 :1; // Reserved
+ UInt8 LP_Fc :1; //
+ UInt8 ForceLP_Fc2_En:1; //
+ UInt8 UNUSED_2 :3; // Reserved
+ UInt8 FM_LNAGain :2; //
+ }bF;
+ }uBx26;
+
+ } tmTDA18271I2CMap_t_C2_Askey, *ptmTDA18271I2CMap_t_C2_Askey;
+
+typedef struct _tmAFAInfo_t_C2_Askey {
+ Demodulator* demodulator;
+ UInt8 chip;
+} tmAFAInfo_t_C2_Askey, *ptmAFAInfo_t_C2_Askey;
+
+typedef struct _tmTDA18271Object_t_C2_Askey {
+ tmAFAInfo_t_C2_Askey AFAInfo_C2_Askey;
+ tmUnitSelect_t TunerUnit;
+ Bool_ init;
+ UInt32 uHwAddress;
+/*#ifdef NXPFE
+ tmdlDefaultGCRoot<tmdlDefaultDeviceDriver::tmhalFEBslSystemFunc_c^> SystemFunc;
+#else*/
+ tmhalFEBslSystemFunc_t_C2_Askey SystemFunc;
+//#endif
+ tmTDA18271PowerState_t_C2_Askey curPowerState;
+ tmTDA18271StandardMode_t_C2_Askey StandardMode;
+ tmTDA18271Config_t_C2_Askey Config;
+ tmTDA18271I2CMap_t_C2_Askey I2CMap;
+ UInt32 I2CLog[TDA18271_LOG_NB_ROWS_C2_Askey][TDA18271_NB_BYTES_C2_Askey + 2];
+ UInt32 uTickEnd;
+} tmTDA18271Object_t_C2_Askey, *ptmTDA18271Object_t_C2_Askey, **pptmTDA18271Object_t_C2_Askey;
+
+ typedef struct _tmTDA18271VbI2CData_t_C2_Askey {
+ UInt32 h00;
+ UInt32 h01;
+ UInt32 h02;
+ UInt32 h03;
+ UInt32 h04;
+ UInt32 h05;
+ UInt32 h06;
+ UInt32 h07;
+ UInt32 h08;
+ UInt32 h09;
+ UInt32 h0A;
+ UInt32 h0B;
+ UInt32 h0C;
+ UInt32 h0D;
+ UInt32 h0E;
+ UInt32 h0F;
+ UInt32 h10;
+ UInt32 h11;
+ UInt32 h12;
+ UInt32 h13;
+ UInt32 h14;
+ UInt32 h15;
+ UInt32 h16;
+ UInt32 h17;
+ UInt32 h18;
+ UInt32 h19;
+ UInt32 h1A;
+ UInt32 h1B;
+ UInt32 h1C;
+ UInt32 h1D;
+ UInt32 h1E;
+ UInt32 h1F;
+ UInt32 h20;
+ UInt32 h21;
+ UInt32 h22;
+ UInt32 h23;
+ UInt32 h24;
+ UInt32 h25;
+ UInt32 h26;
+ UInt32 I2CAddress;
+ UInt32 I2CCommResult;
+ } tmTDA18271VbI2CData_t_C2_Askey, *ptmTDA18271VbI2CData_t_C2_Askey;
+
+//-----------------------------------------------------------------------------
+// Function:
+//-----------------------------------------------------------------------------
+//
+ Bool_
+ TDA18271Wrapper_C2_Askey (
+ ptmTDA18271Object_t_C2_Askey pObj, // I: Tuner unit number
+ UInt32 uHwAddress, // I: Tuner unit I2C address
+ UInt32 uLptPort, // I: I2C interface LPT port
+ UInt32 uI2cSpeed, // I: I2C interface speed
+ char* uParamTunerNumber // I: Tuner unit number
+ );
+
+ Bool_
+ TDA18271WrapperClose_C2_Askey();
+
+//#ifndef NXPFE
+#ifdef __cplusplus
+}
+#endif
+//#endif //NXPFE
+
+#endif // _TMBSL_TDA18271LOCAL_H_C2_Askey //---------------
diff --git a/api/TDA18291.c b/api/TDA18291.c
new file mode 100644
index 0000000..4736b49
--- /dev/null
+++ b/api/TDA18291.c
@@ -0,0 +1,1315 @@
+/**
+ * $Header:
+ * (C) Copyright 2001 Philips Semiconductors, All rights reserved
+ *
+ * This source code and any compilation or derivative thereof is the sole
+ * property of Philips Corporation and is provided pursuant to a Software
+ * License Agreement. This code is the proprietary information of Philips
+ * Corporation and is confidential in nature. Its use and dissemination by
+ * any party other than Philips Corporation is strictly limited by the
+ * confidential information provisions of the Agreement referenced above.
+ *-----------------------------------------------------------------------------
+ * FILE NAME: tmbslTDA18291.c
+ *
+ * DESCRIPTION: Function for the digimob tuner TDATDA18291
+ *
+ * DOCUMENT REF: DigiMob - ObjectiveSpecification_V4.2.doc - 21 April 2005
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+
+/*-----------------------------------------------------------------------------
+ * Standard include files:
+ *-----------------------------------------------------------------------------
+ */
+
+/*-----------------------------------------------------------------------------
+ * Project include files:
+ *-----------------------------------------------------------------------------
+ */
+#include "TDA18291local.h"
+#include "standard.h"
+
+/*-----------------------------------------------------------------------------
+ * Types and defines:
+ *-----------------------------------------------------------------------------
+ */
+
+/*-----------------------------------------------------------------------------
+ * Global data:
+ *-----------------------------------------------------------------------------
+ */
+
+
+/* default instance */
+tm18291object_t g18291Instance[] =
+{
+ {
+ {
+ Null, /* Demodulator */
+ 0x01 /* chip */
+ },
+
+ False, /* init [False : instance is not initialized] */
+ 0, /* uHwAddress [HwId not set] */
+ { Null, Null/*, Null,*/ /* systemFunc [system function not initialized] */
+ /*Null, Null, Null*/
+ },
+ tmPowerOff, /* default power state */
+ {
+ CUSTOM_BOARD_DEF, /* uBoard [default configuration structure] */
+ TDA18291_NB_AGC_RANGES, /* Nb [number of lines] */
+ 0, /* Index [start index] */
+ {
+ {0,0},
+ {5,1},
+ {10,2},
+ {15,3},
+ {20,4},
+ {25,5},
+ {30,6},
+ {35,7},
+ {40,8},
+ {45,9},
+ {50,10},
+ {55,11},
+ {60,12},
+ {65,13},
+ {70,14},
+ {75,15},
+ {80,64},
+ {85,65},
+ {90,66},
+ {95,67},
+ {100,68},
+ {105,69},
+ {110,70},
+ {115,71},
+ {120,72},
+ {125,73},
+ {130,74},
+ {135,75},
+ {140,76},
+ {145,77},
+ {150,78},
+ {155,79},
+ {160,192},
+ {165,193},
+ {170,194},
+ {175,195},
+ {180,196},
+ {185,197},
+ {190,198},
+ {195,199},
+ {200,200},
+ {205,201},
+ {210,202},
+ {215,203},
+ {220,204},
+ {225,205},
+ {230,206},
+ {235,207},
+ {240,320},
+ {245,321},
+ {250,322},
+ {255,323},
+ {260,324},
+ {265,325},
+ {270,326},
+ {275,327},
+ {280,328},
+ {285,329},
+ {290,330},
+ {295,331},
+ {300,332},
+ {305,333},
+ {310,334},
+ {315,335},
+ {320,448},
+ {325,449},
+ {330,450},
+ {335,451},
+ {340,452},
+ {345,453},
+ {350,454},
+ {355,455},
+ {360,456},
+ {365,457},
+ {370,458},
+ {375,459},
+ {380,460},
+ {385,461},
+ {390,462},
+ {395,463},
+ {400,464},
+ {405,465},
+ {410,466},
+ {415,467},
+ {420,468},
+ {425,469},
+ {430,470},
+ {435,471},
+ {440,472},
+ {445,473},
+ {450,474},
+ {455,475},
+ {460,476},
+ {465,477},
+ {470,478},
+ {475,479},
+ {480,480},
+ {485,481},
+ {490,482},
+ {495,483},
+ {500,484},
+ {505,485},
+ {510,486},
+ {515,487},
+ {520,488},
+ {525,489},
+ {530,490},
+ {535,491},
+ {540,492},
+ {545,493},
+ {550,494},
+ {555,495},
+ {560,496},
+ {565,497},
+ {570,498},
+ {575,499},
+ {580,500},
+ {585,501},
+ {590,502},
+ {595,503},
+ {600,504},
+ {605,505},
+ {610,506},
+ {615,507},
+ {620,508},
+ {625,509},
+ {630,510},
+ {635,511},
+ },
+ },
+ {
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* pTunerReg[register default values]; */
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00
+ },
+ 0, /* LO_FreqProg [RF programmed] */
+ 0, /* uTickEnd [end tick value] */
+ {
+ 1,1,0,0,1,365,3, /* UserData [tm18291UserData_t] */
+ 0,0,0,0,0,0,0,0,
+ 0x01,0x0C,0x00,0x02,0x01,0x00,0x80,0x00,0x90,0x86,
+ 0,0,0,0,0,26000,
+ 0,0,0,0,0,0,0,
+ 2,1,0
+ }
+ }
+};
+
+/*-----------------------------------------------------------------------------
+ * Internal Prototypes:
+ *-----------------------------------------------------------------------------
+ */
+Bool_
+TDA18291Init (
+ tmUnitSelect_t TunerUnit /* I: Tuner unit number */
+ );
+
+Bool_
+TDA18291CalcPLL (
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32 LO_Freq /* I: Frequency in hertz */
+ );
+
+Bool_
+TDA18291GetGainIndex(
+ ptm18291object_t pObject, /* I: Tuner object */
+ UInt32 *uIndex /* O: Gain */
+ );
+
+Bool_
+TDA18291WaitTick(
+ ptm18291object_t pObj /* I: Tuner unit number */
+ );
+
+Bool_
+TDA18291InitTick(
+ ptm18291object_t pObj, /* I: Tuner unit number */
+ UInt16 wTime /* I: time to wait for */
+ );
+
+/*-----------------------------------------------------------------------------
+ * Exported functions:
+ *-----------------------------------------------------------------------------
+ */
+Bool_ SY_Write2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptm18291object_t pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ uBuffer[i] = (UInt8)pDataBuff[i];
+ }
+
+ pObj = &g18291Instance[0];
+ dwError = Standard_writeTunerRegisters (pObj->AFAInfo.demodulator, pObj->AFAInfo.chip,
+ (unsigned short)uSubAddress, (UInt8)uNbData, uBuffer);
+ if (dwError == 0) RetStatus = True;
+
+ return (RetStatus);
+};
+
+Bool_ SY_Read2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff)
+{
+ Bool_ RetStatus = False;
+ ptm18291object_t pObj;
+ UInt32 dwError = 0;
+ UInt8 uBuffer[39];
+ UInt32 i;
+
+ pObj = &g18291Instance[0];
+ dwError = Standard_readTunerRegisters (pObj->AFAInfo.demodulator, pObj->AFAInfo.chip, (UInt16)uSubAddress, (UInt8)uNbData, uBuffer);
+ if (dwError == 0)
+ {
+ RetStatus = True;
+
+ for (i = 0; i < uNbData; i++)
+ {
+ pDataBuff[i] = (UInt32)uBuffer[i];
+ }
+ }
+
+ return (RetStatus);
+};
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291Init:
+ *
+ * DESCRIPTION: create an instance of a TDA18291 tuner
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TM_OK
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291Init(
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ tmbslTuParam_t Param /* I: setup parameters */
+ )
+{
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the max number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /*----------------------
+ * initialize the object
+ *----------------------
+ * return if already initialized
+ */
+ if(g18291Instance[TunerUnit].init == True)
+ return TM_OK;
+
+ /*----------------
+ * init the object
+ *----------------
+ * initialize the object by default values
+ */
+ g18291Instance[TunerUnit].uHwAddress = Param.uHwAddress;
+ g18291Instance[TunerUnit].systemFunc = Param.systemFunc;
+ g18291Instance[TunerUnit].init = True;
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291DeInit:
+ *
+ * DESCRIPTION: destroy an instance of a TDA18291 tuner
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TM_OK
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291DeInit (
+ tmUnitSelect_t TunerUnit /* I: Tuner unit number */
+ )
+{
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object */
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ /*-------------------------
+ * De-initialize the object
+ *-------------------------
+ */
+ g18291Instance[TunerUnit].init = False;
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291GetSWVersion:
+ *
+ * DESCRIPTION: Return the version of this device
+ *
+ * RETURN: TM_OK
+ *
+ * NOTES: Values defined in the tmTDA18291local.h file
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291GetSWVersion (
+ ptmSWVersion_t pSWVersion /* I: Receives SW Version */
+ )
+{
+ pSWVersion->compatibilityNr = TDA18291_BSL_COMP_NUM;
+ pSWVersion->majorVersionNr = TDA18291_BSL_MAJOR_VER;
+ pSWVersion->minorVersionNr = TDA18291_BSL_MINOR_VER;
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291SetPowerState:
+ *
+ * DESCRIPTION: Set the power state of this device.
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TM_OK
+ *
+ * NOTES: NOT implemented - inputs from stephane needed
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291SetPowerState (
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ tmPowerState_t powerState /* I: Power state of this device */
+)
+{
+ ptm18291UserData_t pUserData;
+ ptm18291object_t pObj;
+
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object */
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+
+ /* pObj & pUserData initialisation */
+ pObj = &g18291Instance[TunerUnit];
+ pUserData = &(pObj->UserData);
+
+ /*--------------------------------------------------------------------------
+ * set the value
+ * 4 possble values: tmPowerOn tmPowerOff tmPowerStandy tmPowerSuspend
+ *--------------------------------------------------------------------------
+ */
+
+ switch (powerState)
+ {
+ case tmPowerOn:
+ pUserData->PDIC = 0; /* IC is active */
+ pUserData->PDIF = 0; /* IF output is active */
+ pUserData->h03b5 = 1; /* default value */
+ pUserData->PDRF = 0; /* RF is active */
+ pUserData->PDRefBuff = 0; /* REFBUFF is active */
+ pUserData->PDSYNTH = 0; /* SYNTH is active */
+ pUserData->PDVCO = 0; /* VCO is active */
+ pUserData->PD_Xtout = 0; /* default value */
+ break;
+
+ case tmPowerOff:
+ pUserData->PDIC = 1; /* IC is off */
+ pUserData->PDIF = 1; /* IF output is off */
+ pUserData->h03b5 = 1; /* default value */
+ pUserData->PDRF = 1; /* RF is off */
+ pUserData->PDRefBuff = 1; /* REFBUFF is off */
+ pUserData->PDSYNTH = 1; /* SYNTH is off */
+ pUserData->PDVCO = 1; /* VCO is off */
+ pUserData->PD_Xtout = 0; /* default value */
+ break;
+ case tmPowerStandby:
+ case tmPowerSuspend:
+ break;
+ }
+ pObj->curPowerState = powerState;
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291GetPowerState:
+ *
+ * DESCRIPTION: Get the power state of this device.
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TM_OK
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291GetPowerState (
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ tmPowerState_t *pPowerState /* O: Power state of this device */
+)
+{
+ /*----------------------
+ * test input parameters
+ *----/------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object */
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ /*--------------
+ * get the value
+ *--------------
+ */
+ *pPowerState = g18291Instance[TunerUnit].curPowerState;
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291Write:
+ *
+ * DESCRIPTION: Write in the tuner.
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TMBSL_ERR_IIC_ERR
+ * TM_OK
+ *
+ * NOTES: uIndex: IN parameter containing the HW Sub Address as specified in
+ * the datasheet (i.e. looks like 0xX0)
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291Write (
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32 uIndex, /* I: Start index to write */
+ UInt32 uNbBytes, /* I: Number of bytes to write */
+ UInt32* puBytes /* I: Pointer on an array of bytes */
+)
+{
+
+ UInt32 uCounter;
+
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object */
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ /* test the parameters. uIndex is: 0x0X */
+ if ((uIndex + uNbBytes) > TDA18291_NB_REGISTERS)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER;
+
+ /*--------------
+ * set the value
+ *--------------
+ * save the values written in the tuner
+ */
+ for (uCounter = 0; uCounter < uNbBytes; uCounter++)
+ g18291Instance[TunerUnit].pTunerReg[uCounter+uIndex] = puBytes[uCounter];
+
+ /* write in the tuner */
+ if (g18291Instance[TunerUnit].systemFunc.SY_Write(
+ g18291Instance[TunerUnit].uHwAddress,
+ uIndex, uNbBytes, &(g18291Instance[TunerUnit].pTunerReg[uIndex])) != 1)
+ return TMBSL_ERR_IIC_ERR;
+
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291WriteBit:
+ *
+ * DESCRIPTION: Write in the tuner.
+ *
+ * RETURN: TM_ERR_NOT_SUPPORTED
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291WriteBit (
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32 uIndex, /* I: Start index to write */
+ UInt32 uBitMask, /* I: bit mask */
+ UInt32 uBitValue /* I: bit value */
+)
+{
+ return TM_ERR_NOT_SUPPORTED;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291Read:
+ *
+ * DESCRIPTION: Read in the tuner.
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TMBSL_ERR_TUNER_BAD_PARAMETER
+ * TMBSL_ERR_IIC_ERR
+ * TM_OK
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291Read (
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32 uIndex, /* I: Start index to read */
+ UInt32 uNbBytes, /* I: Number of bytes to read */
+ UInt32* puBytes /* I: Pointer on an array of bytes */
+)
+{
+
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object */
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ /* test the object */
+ if (uNbBytes > TDA18291_NB_REGISTERS)
+ return TMBSL_ERR_TUNER_BAD_PARAMETER;
+
+ /*--------------
+ * get the value
+ *--------------
+ */
+ if (uIndex == -1)
+ {
+
+ /* read the status byte if index is -1 */
+ /* Return the complete register. Mask is applied in higher layer */
+ if (g18291Instance[TunerUnit].systemFunc.SY_Read(
+ g18291Instance[TunerUnit].uHwAddress,
+ 0, uNbBytes, puBytes) != 1) return TMBSL_ERR_IIC_ERR;
+ }
+ else
+ {
+ UInt32 uCounter;
+
+ /* return value previously written */
+ for (uCounter = uIndex; (uCounter < uIndex + uNbBytes) && (uCounter < TDA18291_NB_REGISTERS); uCounter++)
+ puBytes[uCounter-uIndex] = g18291Instance[TunerUnit].pTunerReg[uCounter];
+
+ }
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291SetRf:
+ *
+ * DESCRIPTION: Calculate i2c register & write in TDA18291
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TMBSL_ERR_TUNER_BAD_PARAMETER
+ * TMBSL_ERR_IIC_ERR
+ * TM_OK
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291SetRf(
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32 LO_Freq /* I: Frequency in hertz */
+)
+{
+ UInt8 uCounter = 0;
+
+ ptm18291object_t pObj;
+ ptm18291UserData_t pUserData;
+
+ /* pObj & pUserData initialisation */
+ pObj = &g18291Instance[TunerUnit];
+ pUserData = &(pObj->UserData);
+
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object */
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ /*--------------
+ * set the value
+ *--------------
+ * Bytes h05 h06 h07 h08 h09
+ * initialised in TDA18291CalcPLL
+ * calculate the tuner reg h5X h6X h7X h8X h9X
+ */
+ pUserData->Flo_max08 = 987000;
+ pUserData->Flo_max09 = 877000;
+ pUserData->Flo_max10 = 790000;
+ pUserData->Flo_max11 = 718000;
+ pUserData->Flo_max12 = 658000;
+ pUserData->Flo_max13 = 607000;
+ pUserData->Flo_max14 = 564000;
+ pUserData->Flo_max15 = 526000;
+ TDA18291CalcPLL(TunerUnit, LO_Freq);
+
+ /* Byte h03 */
+ pUserData->PDIC = 0; /* IC is active */
+ pUserData->PDIF = 0; /* IF output is active */
+ pUserData->h03b5 = 1; /* default value */
+ pUserData->PDRF = 0; /* RF is active */
+ pUserData->PDRefBuff = 0; /* REFBUFF is active */
+ pUserData->PDSYNTH = 0; /* SYNTH is active */
+ pUserData->PDVCO = 0; /* VCO is active */
+ pUserData->PD_Xtout = 0; /* Xtout is active */
+ pObj->pTunerReg[TDA18291_REG_H03] = pUserData->PDIC << 7 | pUserData->PDIF << 6 | pUserData->h03b5 << 5 | pUserData->PDRF << 4 | pUserData->PDRefBuff << 3 | pUserData->PDSYNTH << 2 | pUserData->PDVCO << 1 | pUserData->PD_Xtout << 0;
+
+ /* Byte h04 */
+ pUserData->h04b3tob0 = 0x0C; /* enable xtal out (bit3)*/
+ pObj->pTunerReg[TDA18291_REG_H04] = pUserData->Ref_Freq << 6 | pUserData->AGCBusEn << 5 | pUserData->AGCext << 4 | pUserData->h04b3tob0 << 0;
+
+ /* Bytes h05 h06 h07 h08 h09 */
+ /* calculated in TDA18291CalcPLL function */
+ pUserData->h09b7tob6 = 0; /* default value */
+ pObj->pTunerReg[TDA18291_REG_H09] = pUserData->h09b7tob6 << 6 | pObj->pTunerReg[TDA18291_REG_H09] << 0;
+
+ /* Bytes h0A h0B */
+ /* Search for the agc range corresponding to wanted gain */
+ while (pUserData->AGCGain > pObj->config.Map[uCounter].uGain)
+ uCounter++;
+ pUserData->AGCBB = pObj->config.Map[uCounter].uAGC_BB;
+ pUserData->h0Ab7 = pUserData->Enable_LNA; /* enable or disable the LNA */
+ pUserData->h0Ab1tob0 = 0x02; /* default value */
+ pUserData->h0Bb7tob6 = 0; /* default value */
+ pObj->pTunerReg[TDA18291_REG_H0A] = pUserData->h0Ab7 << 7 | (UInt8)(pUserData->AGCBB >> 6) << 4 | pUserData->FC << 2 | pUserData->h0Ab1tob0 << 0 ;
+ pObj->pTunerReg[TDA18291_REG_H0B] = pUserData->h0Bb7tob6 << 6 | (UInt8)(pUserData->AGCBB << 2) >> 2;
+
+ /* Byte h0C */
+ pUserData->h0C = 0x80; /* default value */
+ pObj->pTunerReg[TDA18291_REG_H0C] = pUserData->h0C << 0;
+
+ /* Byte h0D */
+ pUserData->h0D = 0x00; /* default value */
+ pObj->pTunerReg[TDA18291_REG_H0D] = pUserData->h0D << 0;
+
+ /* Byte h0E */
+ pUserData->h0E = 0x90; /* default value */
+ pObj->pTunerReg[TDA18291_REG_H0E] = pUserData->h0E << 0;
+
+ /* Byte h0F */
+ pUserData->h0F = 0x86; /* default value */
+ pObj->pTunerReg[TDA18291_REG_H0F] = pUserData->h0F << 0;
+
+
+ if (pUserData->FlagI2CWrite){
+ /* Write h03 to h0F */
+ if (pObj->systemFunc.SY_Write(
+ pObj->uHwAddress,
+ 3, 0x0d, &(pObj->pTunerReg[TDA18291_REG_H03])) != 1)
+
+ return TMBSL_ERR_IIC_ERR;
+ }
+
+
+ /* return value */
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291GetRf:
+ *
+ * DESCRIPTION: Get the frequency programmed in the tuner
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TM_OK
+ *
+ * NOTES: The value returned is the one stored in the object
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291GetRf(
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32* pLO_Freq /* O: Frequency in hertz */
+ )
+{
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object */
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ /*--------------
+ * get the value
+ *--------------
+ * the read function can't be used
+ */
+ *pLO_Freq = g18291Instance[TunerUnit].LO_FreqProg*1000;
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291SetConfig:
+ *
+ * DESCRIPTION: Set the config of the TDA18291
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TM_ERR_NOT_SUPPORTED
+ * TMBSL_ERR_TUNER_BAD_PARAMETER
+ * TM_OK
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291SetConfig(
+ tmUnitSelect_t TunerUnit, /* I: TunerUnit number */
+ UInt32 uItemId, /* I: Identifier of the item to modify */
+ UInt32 uValue /* I: Value to set for the config item */
+ )
+{
+
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object*/
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ /*--------------
+ * set the value
+ *--------------
+ */
+ switch((tm18291cfgIndex_t)uItemId)
+ {
+ case BOARD:
+ switch (uValue & 0xffff0000)
+ {
+ case OM5768_BOARD_DEF:
+ /* Default Xtal Freq is 26 MHz */
+ g18291Instance[TunerUnit].UserData.Ref_Freq = 2;
+ g18291Instance[TunerUnit].UserData.LO_XTALFreq = gTableXtalFreq[2];
+ /* Default Xtal Out Mode is OFF */
+ /*g18291Instance[TunerUnit].UserData.h04b3tob0 = 4; */
+ g18291Instance[TunerUnit].UserData.PDRefBuff = 0;
+ g18291Instance[TunerUnit].UserData.PD_Xtout = 0;
+ /* Default AGC control is from external pin */
+ g18291Instance[TunerUnit].UserData.AGCBusEn = 0;
+ g18291Instance[TunerUnit].UserData.AGCext = 1;
+
+ break;
+ case CUSTOM_BOARD_DEF:
+ /* do nothing more than setting the default values */
+ break;
+ default:
+ /* board not supported */
+ return TM_ERR_NOT_SUPPORTED;
+ }
+ /* store board */
+ g18291Instance[TunerUnit].config.uBoard = uValue;
+ break;
+
+ case SET_CUTOFF_FREQ:
+ /* Cut-off Frequency, added by max */
+ g18291Instance[TunerUnit].UserData.FC = (UInt8)uValue;
+ break;
+
+ /* backdoor functions */
+ case FEINIT:
+ TDA18291Init( TunerUnit );
+ break;
+
+ case AGC_BUS_ENABLE:
+ g18291Instance[TunerUnit].UserData.AGCBusEn = (UInt8)uValue;
+ break;
+
+ case AGC_EXT:
+ g18291Instance[TunerUnit].UserData.AGCext = (UInt8)uValue;
+ break;
+
+ case AGC_GAIN_VALUE:
+ g18291Instance[TunerUnit].UserData.AGCGain = (UInt32)uValue;
+ break;
+
+ case LO_XTAL_FREQ_INDEX:
+ if ((UInt8)uValue==3)
+ {
+ uValue=1;
+ }
+ g18291Instance[TunerUnit].UserData.Ref_Freq = (UInt8)uValue;
+ g18291Instance[TunerUnit].UserData.LO_XTALFreq = gTableXtalFreq[uValue];
+ break;
+
+ case XTAL_MODE:
+ if (uValue)
+ {
+ /* Activate XTout */
+ g18291Instance[TunerUnit].UserData.PDRefBuff = 0;
+ g18291Instance[TunerUnit].UserData.PD_Xtout = 0;
+ }
+ else
+ {
+ /* Disable XTout */
+ g18291Instance[TunerUnit].UserData.PDRefBuff = 1;
+ g18291Instance[TunerUnit].UserData.PD_Xtout = 1;
+ }
+ break;
+ case CUT_OFF_IND:
+ g18291Instance[TunerUnit].UserData.CutOffIndex = (UInt8)uValue;
+ g18291Instance[TunerUnit].UserData.FC = gTableCutOffVal[uValue];
+ break;
+
+ case ENABLE_LNA:
+ g18291Instance[TunerUnit].UserData.Enable_LNA = (UInt8)uValue;
+ break;
+ }
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: tmbslTDA18291GetConfig:
+ *
+ * DESCRIPTION: Get the config of the TDA18291
+ *
+ * RETURN: TMBSL_ERR_TUNER_BAD_UNIT_NUMBER
+ * TMBSL_ERR_TUNER_NOT_INITIALIZED
+ * TM_OK
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+tmErrorCode_t
+tmbslTDA18291GetConfig(
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32 uItemId, /* I: Identifier of the item to modify */
+ UInt32* puValue /* I: Value to set for the config item */
+ )
+{
+ UInt32 uCounter = 0;
+
+ /*----------------------
+ * test input parameters
+ *----------------------
+ * test the instance number
+ */
+ if (TunerUnit > TDA18291_MAX_UNITS)
+ return TMBSL_ERR_TUNER_BAD_UNIT_NUMBER;
+
+ /* test the object */
+ if (g18291Instance[TunerUnit].init == False)
+ return TMBSL_ERR_TUNER_NOT_INITIALIZED;
+
+ /*--------------
+ * set the value
+ *--------------
+ */
+ switch((tm18291cfgIndex_t)uItemId)
+ {
+ case BOARD:
+ *puValue = g18291Instance[TunerUnit].config.uBoard;
+ break;
+
+ case AGC_BUS_ENABLE:
+ *puValue = g18291Instance[TunerUnit].UserData.AGCBusEn;
+ break;
+
+ case AGC_EXT:
+ *puValue = g18291Instance[TunerUnit].UserData.AGCext;
+ break;
+
+ case AGC_GAIN_INDEX:
+ if ( g18291Instance[TunerUnit].UserData.AGCBusEn )
+ {
+ /* Return the index of the field of type tm18291agcMap_t */
+ /* that corresponds to the current setting of gain */
+ uCounter = 0;
+ while ( g18291Instance[TunerUnit].config.Map[uCounter].uGain < g18291Instance[TunerUnit].UserData.AGCGain)
+ uCounter ++;
+
+ *puValue = uCounter;
+ }
+ else
+ /* Return the index of the field of type tm18291agcMap_t */
+ /* that corresponds to the gain read in the tuner */
+ TDA18291GetGainIndex(&g18291Instance[TunerUnit], puValue);
+ break;
+
+ case AGC_GAIN_VALUE:
+ if ( g18291Instance[TunerUnit].UserData.AGCBusEn )
+ *puValue = g18291Instance[TunerUnit].UserData.AGCGain;
+ else
+ {
+
+ TDA18291GetGainIndex(&g18291Instance[TunerUnit], &uCounter);
+ *puValue = g18291Instance[TunerUnit].config.Map[uCounter].uGain;/*g18291Instance[TunerUnit].config.Map[uCounter].uGain; */
+
+ }
+ break;
+
+ case LO_XTAL_FREQ_INDEX:
+
+ *puValue = g18291Instance[TunerUnit].UserData.Ref_Freq;
+ break;
+
+ case LO_XTAL_FREQ_VALUE:
+ *puValue = g18291Instance[TunerUnit].UserData.LO_XTALFreq;
+ break;
+
+ case XTAL_MODE:
+ *puValue = g18291Instance[TunerUnit].UserData.PD_Xtout;
+ break;
+
+ case ENABLE_LNA:
+ *puValue = g18291Instance[TunerUnit].UserData.Enable_LNA;
+ break;
+ }
+
+ return TM_OK;
+}
+
+
+/*-----------------------------------------------------------------------------
+ * Internal functions:
+ *-----------------------------------------------------------------------------
+ */
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: TDA18291Init:
+ *
+ * DESCRIPTION: Initialisation of the tuner
+ * The protocol used to initialise the tuner is the same as for the
+ * programming of the tuner to a new RF
+ *
+ * RETURN: always True
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+Bool_
+TDA18291Init (
+ tmUnitSelect_t TunerUnit /* I: tuner object */
+ )
+{
+ UInt32 uDefaultFreq = 600000000; /* Default LO frequency; */
+
+ tmbslTDA18291SetRf( TunerUnit ,uDefaultFreq);
+
+ return TM_TRUE;
+}
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: TDA18291CalcPLL:
+ *
+ * DESCRIPTION: Calculate the LO fractionnal PLL settings
+ *
+ * RETURN: Always True
+ *
+ * NOTES: This function doesn't write in the tuner
+ *-----------------------------------------------------------------------------
+ */
+Bool_
+TDA18291CalcPLL (
+ tmUnitSelect_t TunerUnit, /* Tuner unit number */
+ UInt32 LO_Freq /* Local oscillator frequency in hertz */
+ )
+{
+ UInt8 LO_PostdivTmp;
+ UInt32 LO_IntTmp;
+ UInt32 LO_FracTmp;
+ UInt32 LO_FreqTmp;
+
+ ptm18291object_t pObj;
+ ptm18291UserData_t pUserData;
+
+ /* pObj & pUserData initialisation */
+ pObj = &g18291Instance[TunerUnit];
+ pUserData = &(pObj->UserData);
+
+ /* LO Postdiv calculation */
+ if (LO_Freq > 493500000)
+ pUserData->LO_Postdiv = 1;
+ else if (LO_Freq > 246750000)
+ pUserData->LO_Postdiv = 2;
+ else if (LO_Freq > 123374000)
+ pUserData->LO_Postdiv = 4;
+ else if (LO_Freq > 61687000)
+ pUserData->LO_Postdiv = 8;
+ else
+ pUserData->LO_Postdiv = 16;
+
+ /* LO Prescaler calculation */
+ LO_FreqTmp = (LO_Freq / 1000) * pUserData->LO_Postdiv;
+ if (pUserData->LO_Postdiv >= 1)
+ {
+ if (LO_FreqTmp > pUserData->Flo_max09)
+ pUserData->LO_Presc = 8;
+ else if (LO_FreqTmp > pUserData->Flo_max10)
+ pUserData->LO_Presc = 9;
+ else if (LO_FreqTmp > pUserData->Flo_max11)
+ pUserData->LO_Presc = 10;
+ else if (LO_FreqTmp > pUserData->Flo_max12)
+ pUserData->LO_Presc = 11;
+ else if (LO_FreqTmp > pUserData->Flo_max13)
+ pUserData->LO_Presc = 12;
+ else if (LO_FreqTmp > pUserData->Flo_max14)
+ pUserData->LO_Presc = 13;
+ else if (LO_FreqTmp >= pUserData->Flo_max15)
+ pUserData->LO_Presc = 14;
+ else if (LO_FreqTmp < pUserData->Flo_max15)
+ pUserData->LO_Presc = 15;
+ }
+ else
+ {
+ pUserData->LO_Postdiv = 1;
+ pUserData->LO_Presc = 8;
+ }
+
+ /* VCO Frequency calculation */
+ pUserData->LO_VCOFreq = (LO_FreqTmp * pUserData->LO_Presc);
+
+ /* LO_IntTmp calculation */
+ LO_IntTmp = pUserData->LO_VCOFreq / (4 * pUserData->LO_XTALFreq);
+
+ /* LO_FracTmp calculation */
+ LO_FracTmp = (pUserData->LO_VCOFreq * 100) / 4;
+ LO_FracTmp -= (LO_IntTmp * pUserData->LO_XTALFreq * 100);
+ LO_FracTmp /= (pUserData->LO_XTALFreq / 100);
+
+ /* LO_Int & LO_Frac correction */
+ if (LO_FracTmp > 7500) {
+ pUserData->LO_Int = 2 * (LO_IntTmp) + 1 - 128;
+ pUserData->LO_Frac = ((LO_FracTmp - 5000) * 83886) / 100;
+ }
+ else if (LO_FracTmp >= 2500){
+ pUserData->LO_Int = 2 * (LO_IntTmp) - 128;
+ pUserData->LO_Frac = (LO_FracTmp * 83886) / 100;
+ }
+ else if (LO_FracTmp < 2500){
+ pUserData->LO_Int = 2 * (LO_IntTmp - 1 ) + 1 - 128;
+ pUserData->LO_Frac = ((LO_FracTmp + 5000) * 83886) / 100;
+ }
+
+ /* LO_Postdiv bits inversion correction */
+ switch (pUserData->LO_Postdiv){
+ case 1:
+ LO_PostdivTmp = 1;
+ break;
+ case 2: LO_PostdivTmp = 2;
+ break;
+ case 4: LO_PostdivTmp = 3;
+ break;
+ case 8: LO_PostdivTmp = 4;
+ break;
+ case 16:LO_PostdivTmp = 5;
+ break;
+ default:LO_PostdivTmp = 0;
+ break;
+ }
+
+ /* Bytes h5X h6X h7X h8X h9X */
+ pObj->pTunerReg[TDA18291_REG_H05] = (UInt8)(pUserData->LO_Int >> 1);
+ pObj->pTunerReg[TDA18291_REG_H06] = (UInt8)(pUserData->LO_Int << 7) | (UInt8)(pUserData->LO_Frac >> 16);
+ pObj->pTunerReg[TDA18291_REG_H07] = (UInt8)(pUserData->LO_Frac >> 8);
+ pObj->pTunerReg[TDA18291_REG_H08] = (UInt8)(pUserData->LO_Frac);
+ pObj->pTunerReg[TDA18291_REG_H09] = (UInt8)(pUserData->LO_Presc << 5) >> 2 | LO_PostdivTmp;
+
+ /* return value */
+ return True;
+}
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: TDA18291GetGainIndex
+ *
+ * DESCRIPTION: this function will read the gain AGCBB of the TDA18291
+ * ( i.e. combination of AGC1 and AGC2)
+ * and will determine the associated element of the Map table
+ * of the object config and return its index
+ *
+ * RETURN: nothing
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+Bool_
+TDA18291GetGainIndex(
+ ptm18291object_t pObject, /* I: Tuner object */
+ UInt32 *uIndex /* O: Gain */
+ )
+{
+ UInt32 puBytes[16];
+ UInt8 uGainReg[2];
+ UInt8 uGainMsb;
+ UInt32 uCounter, uGainTemp;
+
+ if (pObject->systemFunc.SY_Read(
+ pObject->uHwAddress,
+ 0, 16, puBytes) != 1) return False;
+
+ uGainReg[0] = (UInt8) (puBytes[1] & 0x1F);
+ uGainReg[1] = (UInt8) (puBytes[2] >> 4);
+
+ /* Get bit AGC1[2] */
+ uGainMsb = (uGainReg[0] & 0x10) >> 4;
+ /* keep bits AGC1[1], AGC1[0] and AGC2[5] AGC1[4] */
+ uGainReg[0] = (uGainReg[0] & 0x0F);
+
+ uGainTemp = (uGainMsb << 8) | (uGainReg[0] << 4) | uGainReg[1];
+
+ uCounter = 0;
+ while ( pObject->config.Map[uCounter].uAGC_BB < uGainTemp)
+ uCounter ++;
+
+ *uIndex = uCounter;
+
+ return True;
+}
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: TDA18291InitTick
+ *
+ * DESCRIPTION: this function will delay for the number of millisecond
+ *
+ * RETURN: nothing
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+#if 0
+Bool_
+TDA18291InitTick(
+ ptm18291object_t pObj, /* I: Tuner unit number */
+ UInt16 wTime /* I: time to wait for */
+)
+{
+ /* get current tick */
+ UInt32 uCurrentTick = pObj->systemFunc.SY_GetTickTime();
+
+ /* calculate end tick */
+ pObj->uTickEnd = (UInt32)wTime;
+ pObj->uTickEnd += pObj->systemFunc.SY_GetTickPeriod()/2;
+ pObj->uTickEnd /= pObj->systemFunc.SY_GetTickPeriod();
+ pObj->uTickEnd += uCurrentTick;
+
+ /* always add 1 because of rounding issue */
+ if (wTime)
+ pObj->uTickEnd++;
+
+ /* test overflow */
+ if (pObj->uTickEnd < uCurrentTick)
+ return False;
+ else
+ return True;
+}
+
+/*-----------------------------------------------------------------------------
+ * FUNCTION: TDA18291WaitTick
+ *
+ * DESCRIPTION: this function will block for the number of millisecond
+ *
+ * RETURN: True if time has elapsed else False
+ *
+ * NOTES:
+ *-----------------------------------------------------------------------------
+ */
+
+Bool_
+TDA18291WaitTick(
+ ptm18291object_t pObj /* I: Tuner unit number */
+)
+{
+ /* test if time has elapsed */
+ if (pObj->systemFunc.SY_GetTickTime() >= pObj->uTickEnd)
+ return True;
+ else
+ return False;
+}
+#endif
diff --git a/api/TDA18291.h b/api/TDA18291.h
new file mode 100644
index 0000000..10c9a7e
--- /dev/null
+++ b/api/TDA18291.h
@@ -0,0 +1,74 @@
+/**
+ * $Header:
+ * (C) Copyright 2001 Philips Semiconductors, All rights reserved
+ *
+ * This source code and any compilation or derivative thereof is the sole
+ * property of Philips Corporation and is provided pursuant to a Software
+ * License Agreement. This code is the proprietary information of Philips
+ * Corporation and is confidential in nature. Its use and dissemination by
+ * any party other than Philips Corporation is strictly limited by the
+ * confidential information provisions of the Agreement referenced above.
+ *
+ * FILE NAME: tmbslTDA18291.h
+ *
+ * DESCRIPTION: define the object for the 18281HNC1
+ *
+ * DOCUMENT REF: DVP Software Coding Guidelines v1.14
+ * DVP Board Support Library Architecture Specification v0.5
+ *
+ * NOTES:
+ */
+
+#ifndef _TMBSL_18281HNC1_H
+#define _TMBSL_18281HNC1_H
+
+/**
+ * Standard include files:
+ */
+
+
+/**
+ * Project include files:
+ */
+
+
+/**
+ * Types and defines:
+ */
+
+tmErrorCode_t
+tmbslTDA18291Init(
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ tmbslTuParam_t sParam /* I: setup parameters */
+);
+tmErrorCode_t
+tmbslTDA18291DeInit (
+ tmUnitSelect_t TunerUnit /* I: Tuner unit number */
+);
+tmErrorCode_t
+tmbslTDA18291GetSWVersion (
+ ptmSWVersion_t pSWVersion /* I: Receives SW Version */
+);
+tmErrorCode_t
+tmbslTDA18291SetConfig(
+ tmUnitSelect_t TunerUnit, /* I: TunerUnit number */
+ UInt32 uItemId, /* I: Identifier of the item to modify */
+ UInt32 uValue /* I: Value to set for the config item */
+);
+tmErrorCode_t
+tmbslTDA18291GetConfig(
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32 uItemId, /* I: Identifier of the item to modify */
+ UInt32* puValue /* I: Value to set for the config item */
+);
+tmErrorCode_t
+tmbslTDA18291SetRf(
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32 LO_Freq /* I: Frequency in hertz */
+);
+tmErrorCode_t
+tmbslTDA18291GetRf(
+ tmUnitSelect_t TunerUnit, /* I: Tuner unit number */
+ UInt32* pLO_Freq /* O: Frequency in hertz */
+);
+#endif
diff --git a/api/TDA18291local.h b/api/TDA18291local.h
new file mode 100644
index 0000000..3c4f69d
--- /dev/null
+++ b/api/TDA18291local.h
@@ -0,0 +1,347 @@
+/**
+ * $Header:
+ * (C) Copyright 2001 Philips Semiconductors, All rights reserved
+ *
+ * This source code and any compilation or derivative thereof is the sole
+ * property of Philips Corporation and is provided pursuant to a Software
+ * License Agreement. This code is the proprietary information of Philips
+ * Corporation and is confidential in nature. Its use and dissemination by
+ * any party other than Philips Corporation is strictly limited by the
+ * confidential information provisions of the Agreement referenced above.
+ *
+ * FILE NAME: tmbsl18291local.h
+ *
+ * DESCRIPTION: define the object for the TDA18291
+ *
+ * DOCUMENT REF: DVP Software Coding Guidelines v1.14
+ * DVP Board Support Library Architecture Specification v0.5
+ *
+ * NOTES:
+ */
+
+#ifndef _TMBSL_TDA18291LOCAL_H
+#define _TMBSL_TDA18291LOCAL_H
+
+#include "type.h"
+
+
+/**
+ * Standard include files:
+ */
+/* #include "hpi_basictypes.h"
+ #include "tmdlFe.h"
+ #include "tmhalFEtypes.h"
+ #include "dvp.h"
+ #include "tmbslTuner.h" */
+
+/**
+ * Project include files:
+ */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/**
+ * Types and defines:
+ */
+
+#define TDA18291_BSL_COMP_NUM 1
+#define TDA18291_BSL_MAJOR_VER 1
+#define TDA18291_BSL_MINOR_VER 0
+
+/* #define AF901X_CAN_TUNER 0x1
+ #define AF901X_SILICON_TUNER 0x2 */
+
+
+/**
+ * ERROR CODES
+ *
+ * ++from Max
+ */
+#define TMBSL_ERR_TUNER_BASE 0x80000000U
+#define TM_ERR_BAD_UNIT_NUMBER 0x00000001U
+#define TM_ERR_NOT_INITIALIZED 0x00000002U
+#define TM_ERR_BAD_PARAMETER 0x00000003U
+#define TM_ERR_NOT_SUPPORTED 0x00000004U
+#define TM_ERR_IIC_ERR 0x00000005U
+
+typedef enum _tmPowerState_t
+{
+ tmPowerOn = 1,
+ tmPowerStandby,
+ tmPowerSuspend,
+ tmPowerOff
+} tmPowerState_t;
+
+
+
+
+/* Invalid unit id */
+#define TMBSL_ERR_TUNER_BAD_UNIT_NUMBER \
+(TMBSL_ERR_TUNER_BASE + TM_ERR_BAD_UNIT_NUMBER)
+
+/* Component is not initialized */
+#define TMBSL_ERR_TUNER_NOT_INITIALIZED \
+(TMBSL_ERR_TUNER_BASE+ TM_ERR_NOT_INITIALIZED)
+
+/* Invalid input parameter */
+#define TMBSL_ERR_TUNER_BAD_PARAMETER \
+(TMBSL_ERR_TUNER_BASE + TM_ERR_BAD_PARAMETER)
+
+/* Function is not supported */
+#define TMBSL_ERR_TUNER_NOT_SUPPORTED \
+(TMBSL_ERR_TUNER_BASE + TM_ERR_NOT_SUPPORTED)
+
+/* Function is not supported */
+#define TMBSL_ERR_IIC_ERR \
+(TMBSL_ERR_TUNER_BASE + TM_ERR_IIC_ERR)
+
+#define TDA18291_MAX_UNITS 2
+#define TDA18291_NB_REGISTERS 16
+#define TDA18291_NB_AGC_RANGES 128
+
+/* Indexes of TDA18291 registers */
+#define TDA18291_REG_H00 0x00
+#define TDA18291_REG_H01 0x01
+#define TDA18291_REG_H02 0x02
+#define TDA18291_REG_H03 0x03
+#define TDA18291_REG_H04 0x04
+#define TDA18291_REG_H05 0x05
+#define TDA18291_REG_H06 0x06
+#define TDA18291_REG_H07 0x07
+#define TDA18291_REG_H08 0x08
+#define TDA18291_REG_H09 0x09
+#define TDA18291_REG_H0A 0x0A
+#define TDA18291_REG_H0B 0x0B
+#define TDA18291_REG_H0C 0x0C
+#define TDA18291_REG_H0D 0x0D
+#define TDA18291_REG_H0E 0x0E
+#define TDA18291_REG_H0F 0x0F
+
+#define OM5768_BOARD_DEF 0x57680000 /* 10047 + TDA18281 */
+#define CUSTOM_BOARD_DEF 0x00000000 /* custom */
+
+#define CUTOFF_FREQ_FOR_5MHZ 0
+#define CUTOFF_FREQ_FOR_6MHZ 1
+#define CUTOFF_FREQ_FOR_7MHZ 2
+#define CUTOFF_FREQ_FOR_8MHZ 3
+
+typedef float Float;
+
+typedef unsigned long UInt32; /* 32 bit unsigned integer */
+typedef unsigned short UInt16; /* 16 bit unsigned integer */
+typedef unsigned char UInt8; /* 8 bit unsigned integer */
+typedef UInt32 tmErrorCode_t;
+typedef unsigned int Bool_; /* Boolean (True/False) */
+typedef int tmUnitSelect_t, *ptmUnitSelect_t;
+#define Null 0
+
+#define TM_OK 0U /* Global success return status */
+#define TM_FALSE 0
+#define TM_TRUE 1
+
+#define True TM_TRUE
+#define False TM_FALSE
+
+/* +++ from Max */
+Bool_ SY_Read2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff
+);
+
+Bool_ SY_Write2(UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff
+);
+
+
+typedef struct _tmhalFEBslSystemFunc_t
+{
+ Bool_ (*SY_Write) (UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+ Bool_ (*SY_Read) (UInt32 uAddress,
+ UInt32 uSubAddress,
+ UInt32 uNbData,
+ UInt32* pDataBuff);
+} tmhalFEBslSystemFunc_t, *ptmhalFEBslSystemFunc_t;
+
+typedef struct _tmbslTuParam_t
+{
+ unsigned long uHwAddress;
+ tmhalFEBslSystemFunc_t systemFunc;
+} tmbslTuParam_t, *ptmbslTuParam_t;
+
+typedef struct tmSWVersion
+{
+ UInt32 compatibilityNr; /* Interface compatibility number */
+ UInt32 majorVersionNr; /* Interface major version number */
+ UInt32 minorVersionNr; /* Interface minor version number */
+
+} tmSWVersion_t, *ptmSWVersion_t;
+
+
+#if 0
+
+typedef enum _tmTDA18281StandardMode_t {
+ tmDigital_TV_ATSC_6MHz, /* Digital TV ATSC 6MHz */
+ tmDigital_TV_DVBT_7MHz, /* Digital TV DVB-T 7MHz */
+ tmDigital_TV_DVBT_8MHz, /* Digital TV DVB-T 8MHz */
+ tmAnalog_TV_MN, /* Analog TV M/N */
+ tmAnalog_TV_B, /* Analog TV B */
+ tmAnalog_TV_GH, /* Analog TV G/H */
+ tmAnalog_TV_I, /* Analog TV I */
+ tmAnalog_TV_DK, /* Analog TV D/K */
+ tmAnalog_TV_L, /* Analog TV L */
+ tmAnalog_TV_LL, /* Analog TV L' */
+ tmAnalog_FM_Radio, /* Analog FM Radio */
+ tmDigital_TV_QAM_6MHz, /* Digital TV QAM 6MHz */
+ tmDigital_TV_QAM_8MHz, /* Digital TV QAM 8MHz */
+ tmStandardNotSupported, /* Not supported standard */
+} tmTDA18281StandardMode_t, *ptmTDA18281StandardMode_t;
+
+#endif
+
+typedef enum _tm18291cfgIndex_t {
+ BOARD = 0,
+ FEINIT = 100,
+ GETNBOFUNIT = 200,
+ AGC_BUS_ENABLE = 208,
+ AGC_EXT,
+ AGC_GAIN_INDEX,
+ AGC_GAIN_VALUE,
+ LO_XTAL_FREQ_INDEX,
+ LO_XTAL_FREQ_VALUE,
+ XTAL_MODE,
+ ENABLE_LNA,
+ CUT_OFF_IND,
+ BANDWIDTH = 300,
+ GETLEVEL = 301,
+ SET_CUTOFF_FREQ = 302
+} tm18291cfgIndex_t;
+
+
+typedef struct _tm18291agcMap_t {
+ UInt32 uGain; /* Actual value of Gain (equals (AGC1 + AGC2 + 6.5) * 10 ) */
+ UInt32 uAGC_BB; /* Digit of 9 bits to write in reg and */
+ /* corresponding to AGC1[2] to AGC1[0] AGC2[5] to AGC2[0] */
+} tm18291agcMap_t, *ptm18291agcMap_t;
+
+typedef struct _tm18291config_t {
+ UInt32 uBoard;
+ UInt32 Nb;
+ UInt32 Index;
+ tm18291agcMap_t Map[TDA18291_NB_AGC_RANGES];
+} tm18291config_t, *ptm18291config_t;
+
+typedef struct _tm18291I2CData_t {
+ UInt32 h00;
+ UInt32 h01;
+ UInt32 h02;
+ UInt32 h03;
+ UInt32 h04;
+ UInt32 h05;
+ UInt32 h06;
+ UInt32 h07;
+ UInt32 h08;
+ UInt32 h09;
+ UInt32 h0A;
+ UInt32 h0B;
+ UInt32 h0C;
+ UInt32 h0D;
+ UInt32 h0E;
+ UInt32 h0F;
+} tm18291I2CData_t, *ptm18291I2CData_t;
+
+typedef struct _tm18291UserData_t {
+ UInt8 FlagI2CWrite; /* FlagI2CWrite = 1; */
+ UInt8 FlagPLLCalculateNandK; /* FlagPLLCalculateNandK = 1; */
+ UInt32 AGCBB;
+ UInt8 AGCBusEn; /* AGCBusEn [*] AGC control via I2C bus */
+ UInt8 AGCext; /* AGCext [*] AGC control via dedicated pin */
+ UInt32 AGCGain; /* AGCGain [*] AGC gain [AGCGain = (AGCgain + 6.5) * 10] */
+ UInt8 FC; /* FC [*] Cutt off frequency */
+ UInt32 Flo_max08;
+ UInt32 Flo_max09;
+ UInt32 Flo_max10;
+ UInt32 Flo_max11;
+ UInt32 Flo_max12;
+ UInt32 Flo_max13;
+ UInt32 Flo_max14;
+ UInt32 Flo_max15;
+ UInt8 h03b5;
+ UInt8 h04b3tob0;
+ UInt8 h09b7tob6;
+ UInt8 h0Ab1tob0;
+ UInt8 h0Ab7;
+ UInt8 h0Bb7tob6;
+ UInt8 h0C;
+ UInt8 h0D;
+ UInt8 h0E;
+ UInt8 h0F;
+ UInt32 LO_Frac;
+ UInt32 LO_Int;
+ UInt8 LO_Postdiv;
+ UInt8 LO_Presc;
+ UInt32 LO_VCOFreq;
+ UInt32 LO_XTALFreq; /* 52MHz or 26 MHz or other values. See gTableXtalFreq */
+ UInt8 PDIC;
+ UInt8 PDIF;
+ UInt8 PDRefBuff;
+ UInt8 PDRF;
+ UInt8 PDSYNTH;
+ UInt8 PDVCO;
+ UInt8 PD_Xtout;
+ UInt8 Ref_Freq;
+ UInt8 Enable_LNA;
+ UInt8 CutOffIndex;
+} tm18291UserData_t, *ptm18291UserData_t;
+
+
+typedef struct _tmAFAInfo_t {
+ Demodulator* demodulator;
+ UInt8 chip;
+} tmAFAInfo_t, *ptmAFAInfo_t;
+
+typedef struct _tm18291object_t {
+ tmAFAInfo_t AFAInfo;
+ Bool_ init;
+ UInt32 uHwAddress;
+ tmhalFEBslSystemFunc_t systemFunc;
+ tmPowerState_t curPowerState;
+ tm18291config_t config;
+ UInt32 pTunerReg[TDA18291_NB_REGISTERS];
+ UInt32 LO_FreqProg;
+ UInt32 uTickEnd;
+ tm18291UserData_t UserData;
+} tm18291object_t, *ptm18291object_t;
+
+/**
+ * Global data:
+ */
+
+static UInt32 gTableXtalFreq[] =
+{
+ 52000,
+ 19200,
+ 26000,
+ 38400
+};
+static UInt8 gTableCutOffVal[] =
+{
+ 3,
+ 2,
+ 1
+
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/api/Xceive_XC3028L.c b/api/Xceive_XC3028L.c
new file mode 100644
index 0000000..aed688f
--- /dev/null
+++ b/api/Xceive_XC3028L.c
@@ -0,0 +1,180 @@
+/*
+ * @(#)Xceive_XC3028L.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2006 Afatech, Inc. All rights reserved.
+ *
+ */
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "xc3028_control.h"
+#include "Xceive_XC3028L_Script.h"
+
+
+static Demodulator* XC3028LHandle = NULL;
+static Byte XC3028LChip = 0;
+
+
+extern XC3028_TV_MODE XC3028_tv_mode_dtv6_afatech_qam_4_56mhz;
+extern XC3028_TV_MODE XC3028_tv_mode_dtv7_afatech_4_56mhz;
+extern XC3028_TV_MODE XC3028_tv_mode_dtv8_afatech_4_56mhz;
+extern XC3028_CHANNEL_MAP XC3028_channel_map_digital_air;
+
+
+int xc3028_send_i2c_data (
+ unsigned char *bytes_to_send,
+ int nb_bytes_to_send
+) {
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_writeTunerRegisters (XC3028LHandle, XC3028LChip, 0x0000, nb_bytes_to_send, bytes_to_send);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+int xc3028_read_i2c_data (
+ unsigned char *bytes_received,
+ int nb_bytes_to_receive
+) {
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_readTunerRegisters (XC3028LHandle, XC3028LChip, 0x0000, nb_bytes_to_receive, bytes_received);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+int xc3028_reset (
+) {
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_writeRegisterBits (XC3028LHandle, XC3028LChip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 0);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (XC3028LHandle, XC3028LChip, Processor_LINK, p_reg_top_gpiot2_en, reg_top_gpiot2_en_pos, reg_top_gpiot2_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (XC3028LHandle, XC3028LChip, Processor_LINK, p_reg_top_gpiot2_on, reg_top_gpiot2_on_pos, reg_top_gpiot2_on_len, 1);
+ if (error) goto exit;
+
+ User_delay (XC3028LHandle, 250);
+
+ error = Standard_writeRegisterBits (XC3028LHandle, XC3028LChip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+int xc3028_wait (
+ int wait_ms
+) {
+ User_delay (XC3028LHandle, (Dword)wait_ms);
+ return (Error_NO_ERROR);
+}
+
+
+Dword XC3028L_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword XC3028L_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+
+ XC3028LHandle = demodulator;
+ XC3028LChip = chip;
+
+ /** Set I2C master clock speed. */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_one_cycle_counter_tuner, 85);
+ if (error) goto exit;
+
+ if (bandwidth == 6000)
+ {
+ frequency -= 1750;
+ error = xc3028_initialize (&XC3028_tv_mode_dtv6_afatech_qam_4_56mhz,
+ (XC3028_CHANNEL_MAP*) &XC3028_channel_map_digital_air);
+ if (error) goto exit;
+ }
+
+ if (bandwidth == 7000)
+ {
+ frequency -= 2250;
+ error = xc3028_initialize (&XC3028_tv_mode_dtv7_afatech_4_56mhz,
+ (XC3028_CHANNEL_MAP*) &XC3028_channel_map_digital_air);
+ if (error) goto exit;
+ }
+
+ if (bandwidth == 8000)
+ {
+ frequency -= 2750;
+ error = xc3028_initialize (&XC3028_tv_mode_dtv8_afatech_4_56mhz,
+ (XC3028_CHANNEL_MAP*) &XC3028_channel_map_digital_air);
+ if (error) goto exit;
+ }
+
+ frequency *= 1000;
+ error = xc3028_set_frequency (frequency);
+ if (error) goto exit;
+
+ /** Set I2C master clock speed. */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_one_cycle_counter_tuner, User_I2C_SPEED);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+Dword XC3028L_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+TunerDescription tuner_XC3028L = {
+ XC3028L_open,
+ XC3028L_close,
+ XC3028L_set,
+ XC3028L_scripts,
+ XC3028L_scriptSets,
+ XC3028L_ADDRESS, /** tuner i2c address */
+ 0, /** length of tuner register address */
+ 4560000, /** tuner if */
+ True, /** spectrum inverse */
+ 0x26, /** tuner id */
+};
diff --git a/api/Xceive_XC3028L.h b/api/Xceive_XC3028L.h
new file mode 100644
index 0000000..aacba59
--- /dev/null
+++ b/api/Xceive_XC3028L.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Xceive_XC3028L.h
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2006 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __XCEIVE_XC3028L_H__
+#define __XCEIVE_XC3028L_H__
+
+
+#define XC3028L_VER_MAJOR 2
+#define XC3028L_VER_MINOR 0
+
+extern TunerDescription tuner_XC3028L;
+
+
+/**
+ *
+ */
+Dword XC3028L_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword XC3028L_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword XC3028L_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Xceive_XC3028L_Script.h b/api/Xceive_XC3028L_Script.h
new file mode 100644
index 0000000..f50ca4f
--- /dev/null
+++ b/api/Xceive_XC3028L_Script.h
@@ -0,0 +1,58 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Xceive_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define XC3028L_ADDRESS 0xC2
+#define XC3028L_SCRIPTSETLENGTH 0x00000001
+
+Word XC3028L_scriptSets[] = {
+0x1E
+};
+
+ValueSet XC3028L_scripts[] = {
+ {0x0046, 0x26},
+ {0x0057, 0x01},
+ {0x0058, 0x01},
+ {0x0059, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x00b3, 0x01},
+ {0x00c3, 0x00},
+ {0x00c4, 0x00},
+ {0xF007, 0x00},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF012, 0x6d},
+ {0xF013, 0x00},
+ {0xF014, 0x78},
+ {0xF015, 0x02},
+ {0xF01F, 0x96},
+ {0xF020, 0x00},
+ {0xF029, 0x96},
+ {0xF02A, 0x00},
+ {0xF077, 0x02},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/Xceive_XC4000.c b/api/Xceive_XC4000.c
new file mode 100644
index 0000000..db77f25
--- /dev/null
+++ b/api/Xceive_XC4000.c
@@ -0,0 +1,213 @@
+/*
+ * @(#)Xceive_XC4000.cpp
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2009.01.20
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin created
+ * 2008.09.18 Tom Lin improve performance
+ * 2009.01.20 Tom Lin fix clock stretch issue
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "xc4000_control.h"
+#include "i2c_driver.h"
+#include "xc4000_firmwares.h"
+#include "xc4000_channelmaps.h"
+#include "xc4000_standards.h"
+#include "xc4000_scodes.h"
+#include "Xceive_XC4000_Script.h"
+
+
+extern Demodulator* XC4000Handle;
+extern Byte XC4000Chip;
+
+
+Dword XC4000_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+ XC4000Handle = demodulator;
+ XC4000Chip = chip;
+
+ /** Enable I2C clock dynamic speed */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83ED, 1);
+ if (error) goto exit;
+
+ /** xc4000 links TV standard to its configuration file */
+ XC4000_Loading_TVStandards ();
+
+ /** xc4000 hardware resets */
+ error = xc_reset();
+ if (error) goto exit;
+
+ User_delay (demodulator, 100);
+
+ /** xc4000 downloads firmware */
+ error = xc_load_i2c_sequence (XC4000_firmware_SEQUENCE);
+ if (error) goto exit;
+
+ /** xc4000 initiates */
+ error = xc_load_i2c_sequence (XC4000_INIT_SEQUENCE);
+ if (error) goto exit;
+
+ /** Disable I2C clock dynamic speed */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83ED, 0);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+
+Dword XC4000_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Byte amplitude[4];
+
+ amplitude[0] = 0, amplitude[1] = 0x10, amplitude[2] = 0, amplitude[3] = 0x87;
+
+ XC4000Handle = demodulator;
+ XC4000Chip = chip;
+
+ /** Enable I2C clock dynamic speed */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83ED, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83E6, 0x28);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83E7, 0x07);
+ if (error) goto exit;
+
+ if (bandwidth == 6000)
+ {
+ /** Tell f/w the stretched packet */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83E3, 23);
+ if (error) goto exit;
+
+ /** xc4000 sets TV standard to DVBT-6 */
+ error = xc_load_i2c_sequence (XC4000_Standard[23].ConfFile);
+ if (error) goto exit;
+ }
+ else if (bandwidth == 7000)
+ {
+ /** Tell f/w the stretched packet */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83E3, 22);
+ if (error) goto exit;
+
+ /** xc4000 sets TV standard to DVBT-7 */
+ error = xc_load_i2c_sequence(XC4000_Standard[26].ConfFile);
+ if (error) goto exit;
+ }
+ else if (bandwidth == 8000)
+ {
+ /** Tell f/w the stretched packet */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83E3, 22);
+ if (error) goto exit;
+
+ /** xc4000 sets TV standard to DVBT-8 */
+ error = xc_load_i2c_sequence(XC4000_Standard[24].ConfFile);
+ if (error) goto exit;
+ }
+ else
+ {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+
+ /** xc4000 enters direct-setting-mode */
+ error = xc_enter_directsitting_mode ();
+ if (error) goto exit;
+
+ /** xc4000 downloads scode */
+ error = xc_send_i2c_data (&XC4000_scode_table_4560000[0][0], 13);
+ if (error) goto exit;
+
+ /** xc4000 exits direct-setting-mode */
+ error = xc_exit_directsitting_mode ();
+ if (error) goto exit;
+
+ /** xc4000 sets RF mode to Air(0) */
+ error = xc_rf_mode(0);
+ if (error) goto exit;
+
+ /** xc4000 sets dcode */
+ error = xc_set_dcode (0);
+ if (error) goto exit;
+
+ /** xc4000 sets RF frequency of Hz */
+ if (bandwidth == 6000)
+ frequency -= 1750;
+ else if (bandwidth == 7000)
+ frequency -= 2250;
+ else if (bandwidth == 8000)
+ frequency -= 2750;
+ else
+ {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+
+ error = xc_set_RF_frequency (frequency * 1000);
+ if (error) goto exit;
+
+ /** Tell f/w the stretched packet 0x83E3, 0x83E6, 0x83E7 */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83E3, 1);
+ if (error) goto exit;
+
+ /** Improve Performance by set reg 0x0010 to the value of 0x0087 */
+ error = Standard_writeTunerRegisters (demodulator, chip, 0x0000, 4, amplitude);
+ if (error) goto exit;
+
+exit:
+ /** Disable I2C clock dynamic speed */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x83ED, 0);
+
+ return (error);
+}
+
+
+Dword XC4000_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Error_NO_ERROR);
+}
+
+
+TunerDescription tuner_XC4000 = {
+ XC4000_open,
+ XC4000_close,
+ XC4000_set,
+ XC4000_scripts,
+ XC4000_scriptSets,
+ XC4000_ADDRESS, /** tuner i2c address */
+ 0, /** length of tuner register address */
+ 4560000, /** tuner if */
+ True, /** spectrum inverse */
+ 0x2A, /** tuner id */
+};
diff --git a/api/Xceive_XC4000.h b/api/Xceive_XC4000.h
new file mode 100644
index 0000000..7783f88
--- /dev/null
+++ b/api/Xceive_XC4000.h
@@ -0,0 +1,60 @@
+/**
+ * @(#)Xceive_XC4000.h
+ *
+ * ==========================================================
+ * Version: 2.1
+ * Date: 2009.01.20
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin created
+ * ==========================================================
+ *
+ * Copyright 2008 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+#ifndef __XCEIVE_XC4000_H__
+#define __XCEIVE_XC4000_H__
+
+
+#define XC4000_VER_MAJOR 2
+#define XC4000_VER_MINOR 1
+
+extern TunerDescription tuner_XC4000;
+
+
+/**
+ *
+ */
+Dword XC4000_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword XC4000_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword XC4000_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+#endif \ No newline at end of file
diff --git a/api/Xceive_XC4000_Script.h b/api/Xceive_XC4000_Script.h
new file mode 100644
index 0000000..3428a99
--- /dev/null
+++ b/api/Xceive_XC4000_Script.h
@@ -0,0 +1,58 @@
+//
+// This file is automatically generated. Do NOT edit.
+//
+
+/*
+*@(#)Xceive_EXT_EVB.cpp
+*
+* Copyright 2005 Afatech, Inc. All rights reserved.
+*/
+
+
+#define VERSION1 5
+#define VERSION2 66
+#define VERSION3 12
+#define VERSION4 0
+
+
+
+#define XC4000_ADDRESS 0xC2
+#define XC4000_SCRIPTSETLENGTH 0x00000001
+
+Word XC4000_scriptSets[] = {
+0x1E
+};
+
+ValueSet XC4000_scripts[] = {
+ {0x0046, 0x2A},
+ {0x0057, 0x01},
+ {0x0058, 0x01},
+ {0x0059, 0x01},
+ {0x005f, 0x00},
+ {0x0060, 0x00},
+ {0x0071, 0x05},
+ {0x0072, 0x02},
+ {0x0074, 0x01},
+ {0x0079, 0x01},
+ {0x0093, 0x00},
+ {0x0094, 0x00},
+ {0x0095, 0x00},
+ {0x0096, 0x00},
+ {0x00b3, 0x01},
+ {0x00c3, 0x00},
+ {0x00c4, 0x00},
+ {0xF007, 0x00},
+ {0xF00C, 0x19},
+ {0xF00D, 0x1A},
+ {0xF012, 0xD7},
+ {0xF013, 0x03},
+ {0xF014, 0x78},
+ {0xF015, 0x02},
+ {0xF01F, 0x96},
+ {0xF020, 0x00},
+ {0xF029, 0x96},
+ {0xF02A, 0x00},
+ {0xF077, 0x02},
+ {0xF1E6, 0x00},
+
+};
diff --git a/api/cmd.c b/api/cmd.c
new file mode 100644
index 0000000..a1eb3e0
--- /dev/null
+++ b/api/cmd.c
@@ -0,0 +1,990 @@
+#include "cmd.h"
+
+
+Byte Cmd_sequence = 0;
+
+
+Dword Cmd_addChecksum (
+ IN Demodulator* demodulator,
+ OUT Dword* bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+ Dword loop = (*bufferLength - 1) / 2;
+ Dword remain = (*bufferLength - 1) % 2;
+ Dword i;
+ Word checksum = 0;
+
+ for (i = 0; i < loop; i++)
+ checksum += (Word) (buffer[2 * i + 1] << 8) + (Word) (buffer[2 * i + 2]);
+ if (remain)
+ checksum += (Word) (buffer[*bufferLength - 1] << 8);
+
+ checksum = ~checksum;
+ buffer[*bufferLength] = (Byte) ((checksum & 0xFF00) >> 8);
+ buffer[*bufferLength + 1] = (Byte) (checksum & 0x00FF);
+ buffer[0] = (Byte) (*bufferLength + 1);
+ *bufferLength += 2;
+
+ return (error);
+}
+
+
+Dword Cmd_removeChecksum (
+ IN Demodulator* demodulator,
+ OUT Dword* bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+ Dword loop = (*bufferLength - 3) / 2;
+ Dword remain = (*bufferLength - 3) % 2;
+ Dword i;
+ Word checksum = 0;
+
+ for (i = 0; i < loop; i++)
+ checksum += (Word) (buffer[2 * i + 1] << 8) + (Word) (buffer[2 * i + 2]);
+ if (remain)
+ checksum += (Word) (buffer[*bufferLength - 3] << 8);
+
+ checksum = ~checksum;
+ if (((Word)(buffer[*bufferLength - 2] << 8) + (Word)(buffer[*bufferLength - 1])) != checksum) {
+ error = Error_WRONG_CHECKSUM;
+ goto exit;
+ }
+ if (buffer[2])
+ error = Error_FIRMWARE_STATUS | buffer[2];
+
+ buffer[0] = (Byte) (*bufferLength - 3);
+ *bufferLength -= 2;
+
+exit :
+ return (error);
+}
+
+
+Dword Cmd_busTx (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ for (i = 0; i < User_RETRY_MAX_LIMIT; i++) {
+ error = ganymede->cmdDescription->busDescription->busTx (demodulator, bufferLength, buffer);
+ if (error == 0) goto exit;
+
+ User_delay (demodulator, 1);
+ }
+
+exit:
+ return (error);
+}
+
+
+Dword Cmd_busRx (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ for (i = 0; i < User_RETRY_MAX_LIMIT; i++) {
+ error = ganymede->cmdDescription->busDescription->busRx (demodulator, bufferLength, buffer);
+ if (error == 0) goto exit;
+
+ User_delay (demodulator, 1);
+ }
+
+exit:
+ return (error);
+}
+
+
+Dword Cmd_busRxData (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ for (i = 0; i < User_RETRY_MAX_LIMIT; i++) {
+ error = ganymede->cmdDescription->busDescription->busRxData (demodulator, bufferLength, buffer);
+ if (error == 0) goto exit;
+
+ User_delay (demodulator, 1);
+ }
+
+exit:
+ return (error);
+}
+
+
+Dword Cmd_writeRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte registerAddressLength,
+ IN Dword writeBufferLength,
+ IN Byte* writeBuffer
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Byte buffer[255];
+ Dword bufferLength;
+ Dword remainLength;
+ Dword sendLength;
+ Dword i;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ if (writeBufferLength == 0) goto exit;
+ if (registerAddressLength > 4) {
+ error = Error_PROTOCOL_FORMAT_INVALID;
+ goto exit;
+ }
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ if ((writeBufferLength + 12) > maxFrameSize) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+
+ /** short command */
+ if (User_USE_SHORT_CMD && ganymede->booted) {
+ for (i = 0; i < writeBufferLength; i++) {
+ command = Command_SHORT_REG_DEMOD_WRITE + (Byte) (chip << 4) + (Byte) (processor << 4);
+ buffer[0] = (Byte) 4;
+ buffer[1] = (Byte) command;
+ buffer[2] = (Byte) ((registerAddress + i) >> 8);
+ buffer[3] = (Byte) (registerAddress + i);
+ buffer[4] = writeBuffer[i];
+
+ bufferLength = 5;
+ error = Cmd_busTx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+ }
+ goto exit;
+ }
+
+ /** add frame header */
+ command = Cmd_buildCommand (Command_REG_DEMOD_WRITE, processor, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ buffer[4] = (Byte) writeBufferLength;
+ buffer[5] = (Byte) registerAddressLength;
+ buffer[6] = (Byte) ((registerAddress) >> 24); /** Get first byte of reg. address */
+ buffer[7] = (Byte) ((registerAddress) >> 16); /** Get second byte of reg. address */
+ buffer[8] = (Byte) ((registerAddress) >> 8); /** Get third byte of reg. address */
+ buffer[9] = (Byte) (registerAddress ); /** Get fourth byte of reg. address */
+
+ /** add frame data */
+ for (i = 0; i < writeBufferLength; i++) {
+ buffer[10 + i] = writeBuffer[i];
+ }
+
+ /** add frame check-sum */
+ bufferLength = 10 + writeBufferLength;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ /** send frame */
+ i = 0;
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0) {
+ i = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, i, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += i;
+ remainLength -= i;
+ }
+
+ /** get reply frame */
+ bufferLength = 5;
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ /** remove check-sum from reply frame */
+ error = Cmd_removeChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_writeTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte tunerAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte writeBufferLength,
+ IN Byte* writeBuffer
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Byte buffer[255];
+ Dword bufferLength;
+ Dword remainLength;
+ Dword sendLength;
+ Dword i;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ if (writeBufferLength == 0) goto exit;
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ if ((Dword)(writeBufferLength + 11) > maxFrameSize) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ /** short command */
+ if (User_USE_SHORT_CMD && ganymede->booted) {
+ for (i = 0; i < writeBufferLength; i++) {
+ command = Command_SHORT_REG_TUNER_WRITE + (Byte) (chip << 4) + (Byte) (Processor_LINK << 4);
+ buffer[0] = (Byte) 5;
+ buffer[1] = (Byte) command;
+ buffer[2] = (Byte) tunerAddress;
+ buffer[3] = (Byte) registerAddressLength;
+ buffer[4] = (Byte) ((registerAddress + i) >> 8);
+ buffer[5] = (Byte) (registerAddress + i);
+ buffer[6] = writeBuffer[i];
+
+ bufferLength = 7;
+ error = Cmd_busTx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+ }
+ goto exit;
+ }
+
+ /** add frame header */
+ command = Cmd_buildCommand (Command_REG_TUNER_WRITE, Processor_LINK, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ buffer[4] = (Byte) writeBufferLength;
+ buffer[5] = (Byte) tunerAddress;
+ buffer[6] = (Byte) registerAddressLength;
+ buffer[7] = (Byte) (registerAddress >> 8); /** Get high byte of reg. address */
+ buffer[8] = (Byte) (registerAddress); /** Get low byte of reg. address */
+
+ /** add frame data */
+ for (i = 0; i < writeBufferLength; i++) {
+ buffer[9 + i] = writeBuffer[i];
+ }
+
+ /** add frame check-sum */
+ bufferLength = 9 + writeBufferLength;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ /** send frame */
+ i = 0;
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0) {
+ i = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, i , &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += i;
+ remainLength -= i;
+ }
+
+ /** get reply frame */
+ bufferLength = 5;
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ /** remove check-sum from reply frame */
+ error = Cmd_removeChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_writeEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte eepromAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte writeBufferLength,
+ IN Byte* writeBuffer
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Byte buffer[255];
+ Dword bufferLength;
+ Dword remainLength;
+ Dword sendLength;
+ Dword i;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ if (writeBufferLength == 0) goto exit;
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ if ((Dword)(writeBufferLength + 11) > maxFrameSize) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ /** add frame header */
+ command = Cmd_buildCommand (Command_REG_EEPROM_WRITE, Processor_LINK, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ buffer[4] = (Byte) writeBufferLength;
+ buffer[5] = (Byte) eepromAddress;
+ buffer[6] = (Byte) registerAddressLength;
+ buffer[7] = (Byte) (registerAddress >> 8); /** Get high byte of reg. address */
+ buffer[8] = (Byte) registerAddress; /** Get low byte of reg. address */
+
+ /** add frame data */
+ for (i = 0; i < writeBufferLength; i++) {
+ buffer[9 + i] = writeBuffer[i];
+ }
+
+ /** add frame check-sum */
+ bufferLength = 9 + writeBufferLength;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ /** send frame */
+ i = 0;
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0) {
+ i = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, i, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += i;
+ remainLength -= i;
+ }
+
+ /** get reply frame */
+ bufferLength = 5;
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ /** remove check-sum from reply frame */
+ error = Cmd_removeChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_readRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte registerAddressLength,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Byte buffer[255];
+ Dword bufferLength;
+ Dword sendLength;
+ Dword remainLength;
+ Dword i, k;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ if (readBufferLength == 0) goto exit;
+ if (registerAddressLength > 4) {
+ error = Error_PROTOCOL_FORMAT_INVALID;
+ goto exit;
+ }
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ if ((readBufferLength + 5) > User_MAX_PKT_SIZE) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ if ((readBufferLength + 5) > maxFrameSize) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+
+ /** short command */
+ if (User_USE_SHORT_CMD && ganymede->booted) {
+ for (i = 0; i < readBufferLength; i++) {
+ command = Command_SHORT_REG_DEMOD_READ + (Byte) (chip << 4) + (Byte) (processor << 4);
+ buffer[0] = (Byte) 3;
+ buffer[1] = (Byte) command;
+ buffer[2] = (Byte) ((registerAddress + i) >> 8);
+ buffer[3] = (Byte) (registerAddress + i);
+
+ bufferLength = 4;
+ error = Cmd_busTx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ bufferLength = 2;
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ readBuffer[i] = buffer[1];
+ }
+ goto exit;
+ }
+
+ /** add frame header */
+ command = Cmd_buildCommand (Command_REG_DEMOD_READ, processor, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ buffer[4] = (Byte) readBufferLength;
+ buffer[5] = (Byte) registerAddressLength;
+ buffer[6] = (Byte) (registerAddress >> 24); /** Get first byte of reg. address */
+ buffer[7] = (Byte) (registerAddress >> 16); /** Get second byte of reg. address */
+ buffer[8] = (Byte) (registerAddress >> 8); /** Get third byte of reg. address */
+ buffer[9] = (Byte) (registerAddress); /** Get fourth byte of reg. address */
+
+ /** add frame check-sum */
+ bufferLength = 10;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+
+ /** send frame */
+ i = 0;
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0) {
+ i = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, i, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += i;
+ remainLength -= i;
+ }
+
+ /** get reply frame */
+ bufferLength = 5 + readBufferLength;
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ /** remove check-sum from reply frame */
+ error = Cmd_removeChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ for (k = 0; k < readBufferLength; k++) {
+ readBuffer[k] = buffer[k + 3];
+ }
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_readTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte tunerAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte readBufferLength,
+ IN Byte* readBuffer
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Byte buffer[255];
+ Dword bufferLength;
+ Dword remainLength;
+ Dword sendLength;
+ Dword i, k;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ if (readBufferLength == 0) goto exit;
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ if ((Dword)(readBufferLength + 5) > User_MAX_PKT_SIZE) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ if ((Dword)(readBufferLength + 5) > maxFrameSize) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ /** short command */
+ if (User_USE_SHORT_CMD && ganymede->booted) {
+ for (i = 0; i < readBufferLength; i++) {
+ command = Command_SHORT_REG_TUNER_READ + (Byte) (chip << 4) + (Byte) (Processor_LINK << 4);
+ buffer[0] = (Byte) 5;
+ buffer[1] = (Byte) command;
+ buffer[2] = (Byte) tunerAddress;
+ buffer[3] = (Byte) registerAddressLength;
+ buffer[4] = (Byte) ((registerAddress + i) >> 8);
+ buffer[5] = (Byte) (registerAddress + i);
+
+ bufferLength = 6;
+ error = Cmd_busTx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ bufferLength = 2;
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ readBuffer[i] = buffer[1];
+ }
+ goto exit;
+ }
+
+ /** add command header */
+ command = Cmd_buildCommand (Command_REG_TUNER_READ, Processor_LINK, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ buffer[4] = (Byte) readBufferLength;
+ buffer[5] = (Byte) tunerAddress;
+ buffer[6] = (Byte) registerAddressLength;
+ buffer[7] = (Byte) (registerAddress >> 8); /** Get high byte of reg. address */
+ buffer[8] = (Byte) (registerAddress); /** Get low byte of reg. address */
+
+ /** add frame check-sum */
+ bufferLength = 9;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ /** send frame */
+ i = 0;
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0) {
+ i = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, i, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += i;
+ remainLength -= i;
+ }
+
+ /** get reply frame */
+ bufferLength = 5 + readBufferLength;
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ /** remove frame check-sum */
+ error = Cmd_removeChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ for (k = 0; k < readBufferLength; k++) {
+ readBuffer[k] = buffer[k + 3];
+ }
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_readEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte eepromAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte readBufferLength,
+ OUT Byte* readBuffer
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Byte buffer[255];
+ Dword bufferLength;
+ Dword remainLength;
+ Dword sendLength;
+ Dword i, k;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ if (readBufferLength == 0) goto exit;
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ if ((Dword)(readBufferLength + 5) > User_MAX_PKT_SIZE) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ if ((Dword)(readBufferLength + 5) > maxFrameSize) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ /** add command header */
+ command = Cmd_buildCommand (Command_REG_EEPROM_READ, Processor_LINK, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ buffer[4] = (Byte) readBufferLength;
+ buffer[5] = (Byte) eepromAddress;
+ buffer[6] = (Byte) registerAddressLength;
+ buffer[7] = (Byte) (registerAddress >> 8); /** Get high byte of reg. address */
+ buffer[8] = (Byte) registerAddress; /** Get low byte of reg. address */
+
+ /** add frame check-sum */
+ bufferLength = 9;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ /** send frame */
+ i = 0;
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0) {
+ i = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, i, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += i;
+ remainLength -= i;
+ }
+
+ /** get reply frame */
+ bufferLength = 5 + readBufferLength;
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ /** remove frame check-sum */
+ error = Cmd_removeChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ for (k = 0; k < readBufferLength; k++) {
+ readBuffer[k] = buffer[k + 3];
+ }
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_loadFirmware (
+ IN Demodulator* demodulator,
+ IN Dword length,
+ IN Byte* firmware
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Dword loop;
+ Dword remain;
+ Dword i, j, k;
+ Byte buffer[255];
+ Dword payloadLength;
+ Dword bufferLength;
+ Dword remainLength;
+ Dword sendLength;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ payloadLength = (maxFrameSize - 6);
+ loop = length / payloadLength;
+ remain = length % payloadLength;
+
+ k = 0;
+ command = Cmd_buildCommand (Command_FW_DOWNLOAD, Processor_LINK, 0);
+ for (i = 0; i < loop; i++) {
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+
+ for (j = 0; j < payloadLength; j++)
+ buffer[4 + j] = firmware[j + i*payloadLength];
+
+ bufferLength = 4 + payloadLength;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ sendLength = 0;
+ remainLength = maxFrameSize;
+ while (remainLength > 0) {
+ k = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, k, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += k;
+ remainLength -= k;
+ }
+ }
+
+ if (remain) {
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+
+ for (j = 0; j < remain; j++)
+ buffer[4 + j] = firmware[j + i*payloadLength];
+
+ bufferLength = 4 + remain;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0)
+ {
+ k = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, k, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += k;
+ remainLength -= k;
+ }
+ }
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_reboot (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Byte buffer[255];
+ Dword bufferLength;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ command = Cmd_buildCommand (Command_REBOOT, Processor_LINK, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ bufferLength = 4;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ error = Cmd_busTx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_sendCommand (
+ IN Demodulator* demodulator,
+ IN Word command,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword writeBufferLength,
+ IN Byte* writeBuffer,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+) {
+ Dword error = Error_NO_ERROR;
+ Byte buffer[255];
+ Dword bufferLength;
+ Dword remainLength;
+ Dword sendLength;
+ Dword i, k;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ User_enterCriticalSection (demodulator);
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ if ((writeBufferLength + 6) > maxFrameSize) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ if ((readBufferLength + 5) > User_MAX_PKT_SIZE) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+ if ((readBufferLength + 5) > maxFrameSize) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+
+ if (writeBufferLength == 0) {
+ command = Cmd_buildCommand (command, processor, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ bufferLength = 4;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ // send command packet
+ i = 0;
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0) {
+ i = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, i, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += i;
+ remainLength -= i;
+ }
+ } else {
+ command = Cmd_buildCommand (command, processor, chip);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ for (k = 0; k < writeBufferLength; k++)
+ buffer[k + 4] = writeBuffer[k];
+
+
+ bufferLength = 4 + writeBufferLength;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+
+ /** send command */
+ i = 0;
+ sendLength = 0;
+ remainLength = bufferLength;
+ while (remainLength > 0) {
+ i = (remainLength > User_MAX_PKT_SIZE) ? (User_MAX_PKT_SIZE) : (remainLength);
+ error = Cmd_busTx (demodulator, i, &buffer[sendLength]);
+ if (error) goto exit;
+
+ sendLength += i;
+ remainLength -= i;
+ }
+ }
+
+ bufferLength = 5 + readBufferLength;
+
+ error = Cmd_busRx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ error = Cmd_removeChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ if (readBufferLength) {
+ for (k = 0; k < readBufferLength; k++) {
+ readBuffer[k] = buffer[k + 3];
+ }
+ }
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
+
+
+Dword Cmd_receiveData (
+ IN Demodulator* demodulator,
+ IN Dword registerAddress,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+) {
+ Dword error = Error_NO_ERROR;
+ Word command;
+ Byte buffer[255];
+ Dword bufferLength;
+ Ganymede* ganymede;
+ Dword maxFrameSize;
+
+ if (readBufferLength == 0) goto exit;
+
+ ganymede = (Ganymede*) demodulator;
+ maxFrameSize = ganymede->cmdDescription->mailBoxSize; /** releaseExternalRemove */
+
+ User_enterCriticalSection (demodulator);
+
+ command = Cmd_buildCommand (Command_DATA_READ, Processor_LINK, 0);
+ buffer[1] = (Byte) (command >> 8);
+ buffer[2] = (Byte) command;
+ buffer[3] = (Byte) Cmd_sequence++;
+ buffer[4] = (Byte) ((readBufferLength >> 16) & 0xFF);
+ buffer[5] = (Byte) ((readBufferLength >> 8) & 0xFF);
+ buffer[6] = (Byte) (readBufferLength & 0xFF);
+ buffer[7] = (Byte) ((registerAddress >> 16) & 0xFF);
+ buffer[8] = (Byte) ((registerAddress >> 8) & 0xFF);
+ buffer[9] = (Byte) (registerAddress & 0xFF);
+
+ bufferLength = 10;
+ error = Cmd_addChecksum (demodulator, &bufferLength, buffer);
+ if (error) goto exit;
+
+ error = Cmd_busTx (demodulator, bufferLength, buffer);
+ if (error) goto exit;
+
+ error = Cmd_busRxData (demodulator, readBufferLength, readBuffer);
+
+exit :
+ User_leaveCriticalSection (demodulator);
+ return (error);
+}
diff --git a/api/cmd.h b/api/cmd.h
new file mode 100644
index 0000000..4fb6bc7
--- /dev/null
+++ b/api/cmd.h
@@ -0,0 +1,209 @@
+#ifndef __CMD_H__
+#define __CMD_H__
+
+
+#include "type.h"
+#include "user.h"
+#include "error.h"
+
+/**
+ * Bus types
+ */
+#define Bus_I2C 1
+#define Bus_USB 2
+#define Bus_SPI 3
+#define Bus_SDIO 4
+#define Bus_USB11 5
+#define Bus_I2M 6 /** I2C bus for Mercury */
+#define Bus_I2U 7 /** I2C bus for Mercury USB */
+#define Bus_I2U2 8 /** I2C bus for Mercury USB (new, buffer size is 55) */
+#define Bus_9035U2I 9 /** I2C bus for Ganymede USB */
+
+
+/**
+ * Define commands
+ */
+#define Command_REG_DEMOD_READ 0x0000
+#define Command_REG_DEMOD_WRITE 0x0001
+#define Command_REG_TUNER_READ 0x0002
+#define Command_REG_TUNER_WRITE 0x0003
+#define Command_REG_EEPROM_READ 0x0004
+#define Command_REG_EEPROM_WRITE 0x0005
+#define Command_VAR_READ 0x0008
+#define Command_VAR_WRITE 0x0009
+
+#define Command_DATA_READ 0x0006
+
+#define Command_PLATFORM_GET 0x000A
+#define Command_PLATFORM_SET 0x000B
+#define Command_IP_CACHE 0x000D
+#define Command_IP_ADD 0x000E
+#define Command_IP_REMOVE 0x000F
+#define Command_PID_ADD 0x0010
+#define Command_PID_REMOVE 0x0011
+#define Command_SIPSI_GET 0x0012 /** Get SI/PSI table for specific PID "once". */
+#define Command_SIPSI_MPE_RESET 0x0013
+#define Command_H_PID_ADD 0x0015
+#define Command_H_PID_REMOVE 0x0016
+#define Command_ABORT 0x0017
+#define Command_IR_GET 0x0018
+#define Command_IR_SET 0x0019
+#define Command_FW_DOWNLOAD_BEGIN 0x0024
+#define Command_FW_DOWNLOAD 0x0021
+#define Command_FW_DOWNLOAD_END 0x0025
+#define Command_QUERYINFO 0x0022
+#define Command_BOOT 0x0023
+#define Command_REBOOT 0x0023
+#define Command_RUN_CODE 0x0026
+#define Command_SCATTER_READ 0x0028
+#define Command_SCATTER_WRITE 0x0029
+#define Command_GENERIC_READ 0x002A
+#define Command_GENERIC_WRITE 0x002B
+#define Command_SHORT_REG_DEMOD_READ 0x02
+#define Command_SHORT_REG_DEMOD_WRITE 0X03
+#define Command_SHORT_REG_TUNER_READ 0x04
+#define Command_SHORT_REG_TUNER_WRITE 0X05
+
+#define Command_SERVICES_GET 0x0083
+#define Command_COMPONENT_ADD 0x0086
+#define Command_COMPONENT_REMOVE 0x0087
+#define Command_FIG_ADD 0x0088
+#define Command_FIG_REMOVE 0x0089
+
+
+#define Bus_MAX_WRITE_SIZE 254
+#define Bus_MAX_READ_SIZE 254
+
+
+#define Cmd_buildCommand(command, processor, chip) (command + (Word) (processor << 12) + (Word) (chip << 12))
+
+
+/**
+ *
+ */
+Dword Cmd_writeRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte registerAddressLength,
+ IN Dword writeBufferLength,
+ IN Byte* writeBuffer
+);
+
+
+/**
+ *
+ */
+Dword Cmd_writeTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte tunerAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte writeBufferLength,
+ IN Byte* writeBuffer
+);
+
+
+/**
+ *
+ */
+Dword Cmd_writeEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte eepromAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte writeBufferLength,
+ IN Byte* writeBuffer
+);
+
+
+/**
+ *
+ */
+Dword Cmd_readRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte registerAddressLength,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+/**
+ *
+ */
+Dword Cmd_readTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte tunerAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte readBufferLength,
+ IN Byte* readBuffer
+);
+
+
+/**
+ *
+ */
+Dword Cmd_readEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte eepromAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+/**
+ *
+ */
+Dword Cmd_loadFirmware (
+ IN Demodulator* demodulator,
+ IN Dword length,
+ IN Byte* firmware
+);
+
+
+/**
+ *
+ */
+Dword Cmd_reboot (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ *
+ */
+Dword Cmd_sendCommand (
+ IN Demodulator* demodulator,
+ IN Word command,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword writeBufferLength,
+ IN Byte* writeBuffer,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+Dword Cmd_receiveData (
+ IN Demodulator* demodulator,
+ IN Dword registerAddress,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+);
+
+extern CmdDescription Cmd_busDescription;
+
+
+#endif \ No newline at end of file
diff --git a/api/demodulator.c b/api/demodulator.c
new file mode 100644
index 0000000..49c28f7
--- /dev/null
+++ b/api/demodulator.c
@@ -0,0 +1,462 @@
+#include "demodulator.h"
+
+
+Dword Demodulator_writeRegister (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte value
+) {
+ return (Standard_writeRegister (demodulator, chip, processor, registerAddress, value));
+}
+
+
+Dword Demodulator_writeRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ return (Standard_writeRegisters (demodulator, chip, processor, registerAddress, bufferLength, buffer));
+}
+
+
+Dword Demodulator_writeTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ return (Standard_writeTunerRegisters (demodulator, chip, registerAddress, bufferLength, buffer));
+}
+
+
+Dword Demodulator_writeGenericRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte interfaceIndex,
+ IN Byte slaveAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ return (Standard_writeGenericRegisters (demodulator, chip, interfaceIndex, slaveAddress, bufferLength, buffer));
+}
+
+
+Dword Demodulator_writeEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ return (Standard_writeEepromValues (demodulator, chip, registerAddress, bufferLength, buffer));
+}
+
+
+Dword Demodulator_writeRegisterBits (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte position,
+ IN Byte length,
+ IN Byte value
+)
+{
+ return (Standard_writeRegisterBits (demodulator, chip, processor, registerAddress, position, length, value));
+}
+
+
+Dword Demodulator_readRegister (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ OUT Byte* value
+) {
+ return (Standard_readRegister (demodulator, chip, processor, registerAddress, value));
+}
+
+
+Dword Demodulator_readRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte bufferLength,
+ OUT Byte* buffer
+) {
+ return (Standard_readRegisters (demodulator, chip, processor, registerAddress, bufferLength, buffer));
+}
+
+
+Dword Demodulator_readTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ return (Standard_readTunerRegisters (demodulator, chip, registerAddress, bufferLength, buffer));
+}
+
+
+Dword Demodulator_readGenericRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte interfaceIndex,
+ IN Byte slaveAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ return (Standard_readGenericRegisters (demodulator, chip, interfaceIndex, slaveAddress, bufferLength, buffer));
+}
+
+
+Dword Demodulator_readEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ OUT Byte* buffer
+) {
+ return (Standard_readEepromValues (demodulator, chip, registerAddress, bufferLength, buffer));
+}
+
+
+Dword Demodulator_readRegisterBits (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte position,
+ IN Byte length,
+ OUT Byte* value
+) {
+ return (Standard_readRegisterBits (demodulator, chip, processor, registerAddress, position, length, value));
+}
+
+
+Dword Demodulator_getHardwareVersion (
+ IN Demodulator* demodulator,
+ OUT Dword* version
+) {
+ return (Standard_getHardwareVersion (demodulator, version));
+}
+
+
+Dword Demodulator_getFirmwareVersion (
+ IN Demodulator* demodulator,
+ IN Processor processor,
+ OUT Dword* version
+) {
+ return (Standard_getFirmwareVersion (demodulator, processor, version));
+}
+
+
+Dword Demodulator_getPostVitBer (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Dword* postErrorCount, /** 24 bits */
+ OUT Dword* postBitCount, /** 16 bits */
+ OUT Word* abortCount
+){
+ return (Standard_getPostVitBer(demodulator, chip, postErrorCount, postBitCount, abortCount));
+}
+
+
+Dword Demodulator_getRfAgcGain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* rfAgc
+) {
+ return (Standard_getRfAgcGain (demodulator, chip, rfAgc));
+}
+
+
+Dword Demodulator_getIfAgcGain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* ifAgc
+) {
+ return (Standard_getIfAgcGain (demodulator, chip, ifAgc));
+}
+
+
+Dword Demodulator_getSignalQuality (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* quality
+) {
+ return (Standard_getSignalQuality (demodulator, chip, quality));
+}
+
+
+Dword Demodulator_getSignalStrength (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* strength
+) {
+ return (Standard_getSignalStrength (demodulator, chip, strength));
+}
+
+
+Dword Demodulator_getSignalStrengthDbm (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Long rfpullUpVolt_X10, /** RF pull up voltage multiplied by 10 */
+ IN Long ifpullUpVolt_X10, /** IF pull up voltage multiplied by 10 */
+ OUT Long* strengthDbm /** DBm */
+) {
+ return (Standard_getSignalStrengthDbm (demodulator, chip, rfpullUpVolt_X10, ifpullUpVolt_X10, strengthDbm));
+}
+
+
+
+Dword Demodulator_loadIrTable (
+ IN Demodulator* demodulator,
+ IN Word tableLength,
+ IN Byte* table
+) {
+ return (Standard_loadIrTable (demodulator, tableLength, table));
+}
+
+
+Dword Demodulator_initialize (
+ IN Demodulator* demodulator,
+ IN Byte chipNumber,
+ IN Word sawBandwidth,
+ IN StreamType streamType,
+ IN Architecture architecture
+) {
+ return (Standard_initialize (demodulator, chipNumber, sawBandwidth, streamType, architecture));
+}
+
+
+Dword Demodulator_finalize (
+ IN Demodulator* demodulator
+) {
+ return (Standard_finalize (demodulator));
+}
+
+
+Dword Demodulator_isTpsLocked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+) {
+ return (Standard_isTpsLocked (demodulator, chip, locked));
+}
+
+
+Dword Demodulator_isMpeg2Locked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+) {
+ return (Standard_isMpeg2Locked (demodulator, chip, locked));
+}
+
+
+Dword Demodulator_isLocked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+)
+{
+ return (Standard_isLocked (demodulator, chip, locked));
+}
+
+
+Dword Demodulator_reset (
+ IN Demodulator* demodulator
+) {
+ return (Standard_reset (demodulator));
+}
+
+
+Dword Demodulator_getChannelModulation (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT ChannelModulation* channelModulation
+) {
+ return (Standard_getChannelModulation (demodulator, chip, channelModulation));
+}
+
+
+Dword Demodulator_acquireChannel (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ return (Standard_acquireChannel (demodulator, chip, bandwidth, frequency));
+}
+
+
+Dword Demodulator_setStreamType (
+ IN Demodulator* demodulator,
+ IN StreamType streamType
+) {
+ return (Standard_setStreamType (demodulator, streamType));
+}
+
+
+Dword Demodulator_setArchitecture (
+ IN Demodulator* demodulator,
+ IN Architecture architecture
+) {
+ return (Standard_setArchitecture (demodulator, architecture));
+}
+
+
+Dword Demodulator_setViterbiRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte superFrameCount,
+ IN Word packetUnit
+) {
+ return (Standard_setViterbiRange (demodulator, chip, superFrameCount, packetUnit));
+}
+
+
+Dword Demodulator_getViterbiRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte* superFrameCount,
+ IN Word* packetUnit
+) {
+ return (Standard_getViterbiRange (demodulator, chip, superFrameCount, packetUnit));
+}
+
+
+Dword Demodulator_getStatistic (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Statistic* statistic
+) {
+ return (Standard_getStatistic (demodulator, chip, statistic));
+}
+
+
+Dword Demodulator_getInterrupts (
+ IN Demodulator* demodulator,
+ OUT Interrupts* interrupts
+) {
+ return (Standard_getInterrupts (demodulator, interrupts));
+}
+
+
+Dword Demodulator_clearInterrupt (
+ IN Demodulator* demodulator,
+ IN Interrupt interrupt
+) {
+ return (Standard_clearInterrupt (demodulator, interrupt));
+}
+
+
+Dword Demodulator_getDataLength (
+ IN Demodulator* demodulator,
+ OUT Dword* dataLength,
+ OUT Bool* valid
+) {
+ return (Standard_getDataLength (demodulator, dataLength, valid));
+}
+
+
+Dword Demodulator_getData (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ return (Standard_getData (demodulator, bufferLength, buffer));
+}
+
+
+Dword Demodulator_getDatagram (
+ IN Demodulator* demodulator,
+ OUT Dword* bufferLength,
+ OUT Byte* buffer
+) {
+ return (Standard_getDatagram (demodulator, bufferLength, buffer));
+}
+
+
+Dword Demodulator_getIrCode (
+ IN Demodulator* demodulator,
+ OUT Dword* code
+) {
+ return (Standard_getIrCode (demodulator, code));
+}
+
+
+Dword Demodulator_reboot (
+ IN Demodulator* demodulator
+) {
+ return (Standard_reboot (demodulator));
+}
+
+
+Dword Demodulator_controlPowerSaving (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control
+) {
+ return (Standard_controlPowerSaving (demodulator, chip, control));
+}
+
+
+Dword Demodulator_controlTunerPowerSaving (
+ IN Demodulator* demodulator,
+ IN Byte control
+) {
+ return (Standard_controlTunerPowerSaving (demodulator, control));
+}
+
+
+Dword Demodulator_controlPidFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control
+) {
+ return (Standard_controlPidFilter (demodulator, chip, control));
+}
+
+
+Dword Demodulator_resetPidFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ return (Standard_resetPidFilter (demodulator, chip));
+}
+
+
+Dword Demodulator_addPidToFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte index,
+ IN Pid pid
+) {
+ return (Standard_addPidToFilter (demodulator, chip, index, pid));
+}
+
+
+Dword Demodulator_setBurstSize (
+ IN Demodulator* demodulator,
+ IN BurstSize burstSize
+) {
+ return (Standard_setBurstSize (demodulator, burstSize));
+}
+
+
+Dword Demodulator_getBurstSize (
+ IN Demodulator* demodulator,
+ IN BurstSize* burstSize
+) {
+ return (Standard_getBurstSize (demodulator, burstSize));
+}
diff --git a/api/demodulator.h b/api/demodulator.h
new file mode 100644
index 0000000..bfd6830
--- /dev/null
+++ b/api/demodulator.h
@@ -0,0 +1,1305 @@
+#ifndef __GANYMEDE_H__
+#define __GANYMEDE_H__
+
+
+#include "type.h"
+#include "user.h"
+#include "error.h"
+#include "register.h"
+#include "variable.h"
+#include "cmd.h"
+#include "standard.h"
+#include "demodulatorextend.h" /** releaseExternalRemove */
+#include "version.h"
+
+/**
+ * Write one byte (8 bits) to a specific register in demodulator.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be written.
+ * @param value the value to be written.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Set the value of register 0xA000 in demodulator to 0.
+ * error = Demodulator_writeRegister ((Demodulator*) &ganymede, 0, Processor_LINK, 0xA000, 0);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_writeRegister (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte value
+);
+
+
+/**
+ * Write a sequence of bytes to the contiguous registers in demodulator.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 5.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the start address of the registers to be written.
+ * @param bufferLength the number of registers to be written.
+ * @param buffer a byte array which is used to store values to be written.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte buffer[3] = { 0x00, 0x01, 0x02 };
+ * Ganymede ganymede;
+ *
+ * // Set the value of register 0xA000 in demodulator to 0.
+ * // Set the value of register 0xA001 in demodulator to 1.
+ * // Set the value of register 0xA002 in demodulator to 2.
+ * error = Demodulator_writeRegisters ((Demodulator*) &ganymede, 0, Processor_LINK, 0xA000, 3, buffer);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_writeRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Write a sequence of bytes to the contiguous registers in slave device.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 6 (one more byte to specify tuner address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param registerAddress the start address of the registers to be read.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte buffer[3] = { 0x00, 0x01, 0x02 };
+ * Ganymede ganymede;
+ *
+ * // Set the value of register 0x0000 in tuner to 0.
+ * // Set the value of register 0x0001 in tuner to 1.
+ * // Set the value of register 0x0002 in tuner to 2.
+ * error = Demodulator_writeTunerRegistersWithAddress ((Demodulator*) &ganymede, 0, 0x38, 0x00, 1, 3, buffer);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_writeTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Write a sequence of bytes to the contiguous registers in slave device
+ * through specified interface (1, 2, 3).
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 6 (one more byte to specify tuner address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param interfaceIndex the index of interface. The possible values are
+ * 1~3.
+ * @param slaveAddress the I2c address of slave device.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_writeGenericRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte interfaceIndex,
+ IN Byte slaveAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Write a sequence of bytes to the contiguous cells in the EEPROM.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 5 (firmware will detect EEPROM address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param registerAddress the start address of the cells to be written.
+ * @param registerAddressLength the valid bytes of registerAddress.
+ * @param bufferLength the number of cells to be written.
+ * @param buffer a byte array which is used to store values to be written.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte buffer[3] = { 0x00, 0x01, 0x02 };
+ * Ganymede ganymede;
+ *
+ * // Set the value of cell 0x0000 in EEPROM to 0.
+ * // Set the value of cell 0x0001 in EEPROM to 1.
+ * // Set the value of cell 0x0002 in EEPROM to 2.
+ * error = Demodulator_writeEepromValues ((Demodulator*) &ganymede, 0, 0x0000, 3, buffer);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_writeEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Modify bits in the specific register.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be written.
+ * @param position the start position of bits to be modified (0 means the
+ * LSB of the specifyed register).
+ * @param length the length of bits.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Modify the LSB of register 0xA000 in demodulator to 0.
+ * error = Demodulator_writeRegisterBits ((Demodulator*) &ganymede, 0, Processor_LINK, 0xA000, 0, 1, 0);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_writeRegisterBits (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte position,
+ IN Byte length,
+ IN Byte value
+);
+
+
+/**
+ * Read one byte (8 bits) from a specific register in demodulator.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be read.
+ * @param value the pointer used to store the value read from demodulator
+ * register.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte value;
+ * Ganymede ganymede;
+ *
+ * // Get the value of register 0xA000 in demodulator.
+ * error = Demodulator_readRegister ((Demodulator*) &ganymede, 0, Processor_LINK, 0xA000, &value);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * printf ("The value of 0xA000 is %2x", value);
+ * </pre>
+ */
+Dword Demodulator_readRegister (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ OUT Byte* value
+);
+
+
+/**
+ * Read a sequence of bytes from the contiguous registers in demodulator.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 5.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be read.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte buffer[3];
+ * Ganymede ganymede;
+ *
+ * // Get the value of register 0xA000, 0xA001, 0xA002 in demodulator.
+ * error = Demodulator_readRegisters ((Demodulator*) &ganymede, 0, Processor_LINK, 0xA000, 3, buffer);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * printf ("The value of 0xA000 is %2x", buffer[0]);
+ * printf ("The value of 0xA001 is %2x", buffer[1]);
+ * printf ("The value of 0xA002 is %2x", buffer[2]);
+ * </pre>
+ */
+Dword Demodulator_readRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ * Read a sequence of bytes from the contiguous registers in tuner.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 6 (one more byte to specify tuner address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param registerAddress the start address of the registers to be read.
+ * @param registerAddressLength the valid bytes of registerAddress.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte buffer[3];
+ * Ganymede ganymede;
+ *
+ * // Get the value of register 0x0000, 0x0001, 0x0002 in tuner.
+ * error = Demodulator_readTunerRegisters ((Demodulator*) &ganymede, 0, 0x0000, 3, buffer);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * printf ("The value of 0x0000 is %2x", buffer[0]);
+ * printf ("The value of 0x0001 is %2x", buffer[1]);
+ * printf ("The value of 0x0002 is %2x", buffer[2]);
+ * </pre>
+ */
+Dword Demodulator_readTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Read a sequence of bytes from the contiguous registers in slave device
+ * through specified interface (1, 2, 3).
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 6 (one more byte to specify tuner address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param interfaceIndex the index of interface. The possible values are
+ * 1~3.
+ * @param slaveAddress the I2c address of slave device.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_readGenericRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte interfaceIndex,
+ IN Byte slaveAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Read a sequence of bytes from the contiguous cells in the EEPROM.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 5 (firmware will detect EEPROM address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param registerAddress the start address of the cells to be read.
+ * @param registerAddressLength the valid bytes of registerAddress.
+ * @param bufferLength the number of cells to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte buffer[3];
+ * Ganymede ganymede;
+ *
+ * // Get the value of cell 0x0000, 0x0001, 0x0002 in EEPROM.
+ * error = Demodulator_readEepromValues ((Demodulator*) &ganymede, 0, 0x0000, 3, buffer);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * printf ("The value of 0x0000 is %2x", buffer[0]);
+ * printf ("The value of 0x0001 is %2x", buffer[1]);
+ * printf ("The value of 0x0002 is %2x", buffer[2]);
+ * </pre>
+ */
+Dword Demodulator_readEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ * Read bits of the specified register.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be read.
+ * @param position the start position of bits to be read (0 means the
+ * LSB of the specifyed register).
+ * @param length the length of bits.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte value;
+ * Ganymede ganymede;
+ *
+ * // Read the LSB of register 0xA000 in demodulator.
+ * error = Demodulator_readRegisterBits ((Demodulator*) &ganymede, 0, Processor_LINK, 0xA000, 0, 1, &value);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * printf ("The value of LSB of 0xA000 is %2x", value);
+ * </pre>
+ */
+Dword Demodulator_readRegisterBits (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte position,
+ IN Byte length,
+ OUT Byte* value
+);
+
+
+/**
+ * Get the version of hardware.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param version the version of hardware.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Dword version;
+ * Ganymede ganymede;
+ *
+ * // Add PID to PID filter.
+ * error = Demodulator_getHardwareVersion ((Demodulator*) &ganymede, &version);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("The version of hardware is : %X", version);
+ * </pre>
+ */
+Dword Demodulator_getHardwareVersion (
+ IN Demodulator* demodulator,
+ OUT Dword* version
+);
+
+
+/**
+ * Get the version of firmware.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param version the version of firmware.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Dword version;
+ * Ganymede ganymede;
+ *
+ * // Get the version of Link layer firmware.
+ * error = Demodulator_getFirmwareVersion ((Demodulator*) &ganymede, Processor_LINK, &version);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("The version of firmware is : %X", version);
+ * </pre>
+ */
+Dword Demodulator_getFirmwareVersion (
+ IN Demodulator* demodulator,
+ IN Processor processor,
+ OUT Dword* version
+);
+
+
+/**
+ * Get post VitBer
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param postErrorCount error count after viterbi
+ * @param postBitCount total count after viterbi
+ * @param abortCount error count after reed-soloman
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getPostVitBer (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Dword* postErrorCount, /** 24 bits */
+ OUT Dword* postBitCount, /** 16 bits */
+ OUT Word* abortCount
+);
+
+
+/**
+ * Get RF AGC gain.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param rfAgc the value of RF AGC.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte rfAgc;
+ * Ganymede ganymede;
+ *
+ * // Set I2C as the control bus.
+ * error = Demodulator_getRfAgcGain ((Demodulator*) &ganymede, 0, rfAgc);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_getRfAgcGain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* rfAgc
+);
+
+
+/**
+ * Get IF AGC.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param ifAgc the value of IF AGC.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte ifAgc;
+ * Ganymede ganymede;
+ *
+ * // Set I2C as the control bus.
+ * error = Demodulator_getIfAgcGain ((Demodulator*) &ganymede, 0, ifAgc);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_getIfAgcGain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* ifAgc
+);
+
+
+/**
+ * Get siganl quality.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param quality The value of signal quality.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getSignalQuality (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* quality
+);
+
+
+/**
+ * Get signal strength
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param strength The value of signal strength.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getSignalStrength (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* strength
+);
+
+
+/**
+ * Get signal strength in dbm
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param rfpullUpVolt_X10 the pullup voltag of RF multiply 10.
+ * @param ifpullUpVolt_X10 the pullup voltag of IF multiply 10.
+ * @param strengthDbm The value of signal strength in DBm.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getSignalStrengthDbm (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Long rfpullUpVolt_X10, /** RF pull up voltage multiplied by 10 */
+ IN Long ifpullUpVolt_X10, /** IF pull up voltage multiplied by 10 */
+ OUT Long* strengthDbm /** DBm */
+);
+
+
+/**
+ * Load the IR table for USB device.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param tableLength The length of IR table.
+ * @param table The content of IR table.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_loadIrTable (
+ IN Demodulator* demodulator,
+ IN Word tableLength,
+ IN Byte* table
+);
+
+
+
+/**
+ * First, download firmware from host to demodulator. Actually, firmware is
+ * put in firmware.h as a part of source code. Therefore, in order to
+ * update firmware the host have to re-compile the source code.
+ * Second, setting all parameters which will be need at the beginning.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chipNumber The total number of demodulators.
+ * @param sawBandwidth SAW filter bandwidth in KHz. The possible values
+ * are 6000, 7000, and 8000 (KHz).
+ * @param streamType The format of output stream.
+ * @param architecture the architecture of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Initialize demodulators.
+ * // SAW Filter : 8MHz
+ * // Stream Type : IP Datagram.
+ * error = Demodulator_initialize ((Demodulator*) &ganymede, 1, 8, StreamType_IP_DATAGRAM, Architecture_DCA);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_initialize (
+ IN Demodulator* demodulator,
+ IN Byte chipNumber,
+ IN Word sawBandwidth,
+ IN StreamType streamType,
+ IN Architecture architecture
+);
+
+
+/**
+ * Power off the demodulators.
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Finalize demodulators.
+ * error = Demodulator_finalize ((Demodulator*) &ganymede);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_finalize (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_isTpsLocked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_isMpeg2Locked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param locked the result of frequency tuning. True if there is
+ * demodulator can lock signal, False otherwise.
+ * @see Demodulator_acquireChannel
+ */
+Dword Demodulator_isLocked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+);
+
+
+/**
+ * Reset demodulator.
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Reset demodulator.
+ * error = Demodulator_reset ((Demodulator*) &ganymede);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_reset (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ * Get channel modulation related information.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param channelModulation The modulation of channel.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getChannelModulation (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT ChannelModulation* channelModulation
+);
+
+
+/**
+ * Specify the bandwidth of channel and tune the channel to the specific
+ * frequency. Afterwards, host could use output parameter dvbH to determine
+ * if there is a DVB-H signal.
+ * In DVB-T mode, after calling this function the output parameter dvbH
+ * should return False and host could use output parameter "locked" to check
+ * if the channel has correct TS output.
+ * In DVB-H mode, after calling this function the output parameter dvbH should
+ * return True and host could start get platform thereafter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param bandwidth The channel bandwidth.
+ * DVB-T: 5000, 6000, 7000, and 8000 (KHz).
+ * DVB-H: 5000, 6000, 7000, and 8000 (KHz).
+ * T-DMB: 5000, 6000, 7000, and 8000 (KHz).
+ * FM: 100, and 200 (KHz).
+ * @param frequency the channel frequency in KHz.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Bool locked;
+ * Ganymede ganymede;
+ *
+ * error = Demodulator_acquireChannel ((Demodulator*) &ganymede, 0, 8000, 666000);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ *
+ * error = Demodulator_isLocked ((Demodulator*) &ganymede, 0, &locked);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ *
+ * if (locked == True) {
+ * // In DVB-T mode.
+ * // Start to process TS
+ * // Because DVB-T could be multiplex with DVB-H
+ * }
+ * </pre>
+ */
+Dword Demodulator_acquireChannel (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+
+
+
+/**
+ * Set the output stream type of chip. Because the device could output in
+ * many stream type, therefore host have to choose one type before receive
+ * data.
+ *
+ * Note: After host know all the available channels, and want to change to
+ * specific channel, host have to choose output mode before receive
+ * data. Please refer the example of Demodulator_setStreamType.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param streamType the possible values are
+ * DVB-H: StreamType_DVBH_DATAGRAM
+ * StreamType_DVBH_DATABURST
+ * DVB-T: StreamType_DVBT_DATAGRAM
+ * StreamType_DVBT_PARALLEL
+ * StreamType_DVBT_SERIAL
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * error = Demodulator_setStreamType ((Demodulator*) &ganymede, StreamType_DVBT_PARALLEL)
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_setStreamType (
+ IN Demodulator* demodulator,
+ IN StreamType streamType
+);
+
+
+/**
+ * Set the architecture of chip. When two of our device are using, they could
+ * be operated in Diversity Combine Architecture (DCA) or (PIP). Therefore,
+ * host could decide which mode to be operated.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param architecture the possible values are
+ * Architecture_DCA
+ * Architecture_PIP
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Set architecture.
+ * error = Demodulator_setArchitecture ((Demodulator*) &ganymede, Architecture_DCA)
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_setArchitecture (
+ IN Demodulator* demodulator,
+ IN Architecture architecture
+);
+
+
+/**
+ * Set the counting range for Pre-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param frameCount the number of super frame for Pre-Viterbi.
+ * @param packetUnit the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Set Viterbi range.
+ * error = Demodulator_setViterbiRange ((Demodulator*) &ganymede, 0, 1, 10000);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_setViterbiRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte superFrameCount,
+ IN Word packetUnit
+);
+
+
+/**
+ * Get the counting range for Pre-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param frameCount the number of super frame for Pre-Viterbi.
+ * @param packetUnit the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte superFrameCount;
+ * Word packetUnit;
+ * Ganymede ganymede;
+ *
+ * // Set Viterbi range.
+ * error = Demodulator_getViterbiRange ((Demodulator*) &ganymede, 0, &superFrameCount, &packetUnit);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_getViterbiRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte* superFrameCount,
+ IN Word* packetUnit
+);
+
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param statistic the structure that store all statistic values.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Statistic statistic;
+ * double preBer;
+ * double postBer;
+ * Ganymede ganymede;
+ *
+ * // Set statistic range.
+ * error = Demodulator_getStatistic ((Demodulator*) &ganymede, 0, &statistic);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * preBer = (double) statistic.preVitErrorCount / (double) statistic.preVitBitCount;
+ * printf ("Pre-Viterbi BER = %f\n", preBer);
+ * postBer = (double) statistic.postVitErrorCount / (double) statistic.postVitBitCount;
+ * printf ("Post-Viterbi BER = %f\n", postBer);
+ * printf ("Abort Count = %d\n", statistic.abortCount);
+ * if (statistic.signalPresented == True)
+ * printf ("Signal Presented = True\n");
+ * else
+ * printf ("Signal Presented = False\n");
+ * if (statistic.signalLocked == True)
+ * printf ("Signal Locked = True\n");
+ * else
+ * printf ("Signal Locked = False\n");
+ * printf ("Signal Quality = %d\n", statistic.signalQuality);
+ * printf ("Signal Strength = %d\n", statistic.signalStrength);
+ * </pre>
+ */
+Dword Demodulator_getStatistic (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Statistic* statistic
+);
+
+
+/**
+ * Get the type of interrupts.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param interrupts the type of interrupts.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Interrupt interrupts;
+ * Ganymede ganymede;
+ *
+ * // Get the type of interrupts.
+ * error = Demodulator_getInterrupts ((Demodulator*) &ganymede, &interrupts);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * if (interrupts & Interrupt_VERSION) {
+ * // Get IP version
+ * }
+ * if (interrupts & Interrupt_DVBH) {
+ * // Get DVB-H Data
+ * }
+ * if (interrupts & Interrupt_DVBT) {
+ * // Get DVB-T Data
+ * }
+ * if (interrupts & Interrupt_SIPSI) {
+ * // Get SI/PSI
+ * }
+ * </pre>
+ */
+Dword Demodulator_getInterrupts (
+ IN Demodulator* demodulator,
+ OUT Interrupts* interrupts
+);
+
+
+/**
+ * Clear interrupts flag.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param interrupts interrupts flag.
+ * @param packetUnit the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Set statistic range.
+ * error = Demodulator_clearInterrupt ((Demodulator*) &ganymede, Interrupt_SIPSI);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_clearInterrupt (
+ IN Demodulator* demodulator,
+ IN Interrupt interrupt
+);
+
+
+/**
+ * Get the length of Data
+ * In DVB-T mode, data length should always equals 2K,
+ * In DVB-H mode, data length would be the length of IP datagram.
+ * NOTE: data can't be transfer via I2C bus, in order to transfer data
+ * host must provide SPI bus.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param dataLength the length of data.
+ * @param valid True if the data length is valid.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @see Demodulator_addIp
+ */
+Dword Demodulator_getDataLength (
+ IN Demodulator* demodulator,
+ OUT Dword* dataLength,
+ OUT Bool* valid
+);
+
+
+/**
+ * Get the IP datagram of Data.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param bufferLength the length of buffer.
+ * @param buffer buffer used to get Data.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @see Demodulator_addIp
+ */
+Dword Demodulator_getData (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ * Get datagram from device.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @return Error_BUFFER_INSUFFICIENT: if buffer is too small.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Word bufferLength;
+ * Byte buffer[4096];
+ * Ganymede ganymede;
+ *
+ * bufferLength = 4096;
+ * error = Demodulator_getDatagram ((Demodulator*) &ganymede, &bufferLength, buffer);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_getDatagram (
+ IN Demodulator* demodulator,
+ OUT Dword* bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param code the value of IR raw code, the size should be 4 or 6,
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getIrCode (
+ IN Demodulator* demodulator,
+ OUT Dword* code
+);
+
+
+/**
+ * Return to boot code
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_reboot (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param contorl 1: Power up, 0: Power down;
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_controlPowerSaving (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control
+);
+
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param contorl 1: Power up, 0: Power down;
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_controlTunerPowerSaving (
+ IN Demodulator* demodulator,
+ IN Byte control
+);
+
+
+/**
+ * Control PID fileter
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param contorl 0: Disable, 1: Enable.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_controlPidFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control
+);
+
+
+/**
+ * Reset PID filter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * error = Demodulator_resetPidFilter ((Demodulator*) &ganymede, 0);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_resetPidFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ * Add PID to PID filter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param index the index of PID filter.
+ * @param pid the PID that will be add to PID filter.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Pid pid;
+ * Ganymede ganymede;
+ *
+ * pid.value = 0x0000;
+ *
+ * // Add PID to PID filter.
+ * error = Demodulator_addPidToFilter ((Demodulator*) &ganymede, 0, 1, pid);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_addPidToFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte index,
+ IN Pid pid
+);
+
+
+/**
+ * Set datagram burst size.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param burstSize the burst size.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @return Error_NOT_SUPPORT: if the burst size is not support.
+ */
+Dword Demodulator_setBurstSize (
+ IN Demodulator* demodulator,
+ IN BurstSize burstSize
+);
+
+
+/**
+ * Get datagram burst size.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param burstSize the burst size.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @return Error_NOT_SUPPORT: if the burst size is not support.
+ */
+Dword Demodulator_getBurstSize (
+ IN Demodulator* demodulator,
+ IN BurstSize* burstSize
+);
+#endif \ No newline at end of file
diff --git a/api/demodulatorextend.c b/api/demodulatorextend.c
new file mode 100644
index 0000000..980949f
--- /dev/null
+++ b/api/demodulatorextend.c
@@ -0,0 +1,750 @@
+#include "demodulatorextend.h"
+//#include "i2cimpl.h" //for Linux
+#include "usb2impl.h"
+//#include "spiimpl.h"
+//#include "sdioimpl.h"
+//#include "i2uimpl.h"
+#include "cmd.h"
+//#include "i2u.h"
+//#include "af9035u2iimpl.h"
+
+#include "Afa_AF9007.h"
+#include "Afa_PEACOCK.h"
+#include "Freescale_MC44CD02.h"
+#include "Integrant_ITD3020.h"
+#include "Maxlinear_MXL5005.h"
+#include "Microtune_MT2260B0.h"
+#include "Microtune_MT2266.h"
+#include "Panasonic_ENV77H11D5.h"
+#include "Philips_TD1316AFIHP.h"
+#include "Philips_TDA18291HN.h"
+#include "Xceive_XC3028L.h"
+#include "Infineon_TUA9001.h"
+#include "Fitipower_FC0011.h"
+#include "Infineon_TUA6039.h"
+#include "Philips_TDA18271.h"
+#include "Philips_FQD1218ME_MK5.h"
+#include "Xceive_XC4000.h"
+#include "Philips_TDA18271_C2.h"
+#include "Infineon_TUA8010.h"
+#include "FCI_FC2580.h"
+#include "Fitipower_FC0012.h"
+#include "Philips_TDA18271_C2_Askey.h"
+#include "Elonics_E4000.h"
+
+static PidInfo pidInfo;
+BusDescription busDesc[] =
+{
+ /** 0: NULL bus */
+ {
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ },
+ /** 1: I2C bus */
+ {
+/* I2c_getDriver,
+ I2c_writeControlBus,
+ I2c_readControlBus,
+ NULL,
+*/ },
+ /** 2: USB bus */
+ {
+ Usb2_getDriver,
+ Usb2_writeControlBus,
+ Usb2_readControlBus,
+ Usb2_readDataBus,
+ },
+ /** 3: SPI bus */
+ {
+/* Spi_getDriver,
+ Spi_writeControlBus,
+ Spi_readControlBus,
+ Spi_readDataBus,
+*/ },
+ /** 4: SDIO bus */
+ {
+/* Sdio_getDriver,
+ Sdio_writeControlBus,
+ Sdio_readControlBus,
+ Sdio_readDataBus,
+*/ },
+ /** 5: USB11 bus */
+ {
+ Usb2_getDriver,
+ Usb2_writeControlBus,
+ Usb2_readControlBus,
+ Usb2_readDataBus,
+ },
+ /** 6: I2M bus - I2C for old mail box */
+ {
+/* I2u_getDriver,
+ I2u_writeControlBus,
+ I2u_readControlBus,
+ NULL,
+*/ },
+ /** 7: I2U bus - 9015 USB for old mail box */
+ {
+/* I2u_getDriver,
+ I2u_writeControlBus,
+ I2u_readControlBus,
+ NULL,
+*/ },
+ /** 8: I2U2 bus - 9015 USB for new mail box */
+ {
+/* I2u_getDriver,
+ I2u_writeControlBus,
+ I2u_readControlBus,
+ NULL,
+*/ },
+ /** 9: 9035U2I bus - 9035 USB to I2C */
+ {
+/* Af9035u2i_getDriver,
+ Af9035u2i_writeControlBus,
+ Af9035u2i_readControlBus,
+ NULL,
+*/ },
+};
+
+CmdDescription cmdDesc[] =
+{
+ /** NULL Bus */
+ {
+ 0,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+ },
+ /** 1:I2C Bus */
+ {
+ 255,
+ &busDesc[1],
+ Cmd_writeRegisters,
+ Cmd_writeTunerRegisters,
+ Cmd_writeEepromValues,
+ Cmd_readRegisters,
+ Cmd_readTunerRegisters,
+ Cmd_readEepromValues,
+ NULL,
+ Cmd_loadFirmware,
+ Cmd_reboot,
+ Cmd_sendCommand,
+ Cmd_receiveData
+ },
+ /** 2:USB Bus */
+ {
+ 63,
+ &busDesc[2],
+ Cmd_writeRegisters,
+ Cmd_writeTunerRegisters,
+ Cmd_writeEepromValues,
+ Cmd_readRegisters,
+ Cmd_readTunerRegisters,
+ Cmd_readEepromValues,
+ NULL,
+ Cmd_loadFirmware,
+ Cmd_reboot,
+ Cmd_sendCommand,
+ Cmd_receiveData
+ },
+ /** 3:SPI Bus */
+ {
+ 255,
+ &busDesc[3],
+ Cmd_writeRegisters,
+ Cmd_writeTunerRegisters,
+ Cmd_writeEepromValues,
+ Cmd_readRegisters,
+ Cmd_readTunerRegisters,
+ Cmd_readEepromValues,
+ NULL,
+ Cmd_loadFirmware,
+ Cmd_reboot,
+ Cmd_sendCommand,
+ Cmd_receiveData
+ },
+ /** 4:SDIO Bus */
+ {
+ 255,
+ &busDesc[4],
+ Cmd_writeRegisters,
+ Cmd_writeTunerRegisters,
+ Cmd_writeEepromValues,
+ Cmd_readRegisters,
+ Cmd_readTunerRegisters,
+ Cmd_readEepromValues,
+ NULL,
+ Cmd_loadFirmware,
+ Cmd_reboot,
+ Cmd_sendCommand,
+ Cmd_receiveData
+ },
+ /** 5:USB11 Bus */
+ {
+ 63,
+ &busDesc[5],
+ Cmd_writeRegisters,
+ Cmd_writeTunerRegisters,
+ Cmd_writeEepromValues,
+ Cmd_readRegisters,
+ Cmd_readTunerRegisters,
+ Cmd_readEepromValues,
+ NULL,
+ Cmd_loadFirmware,
+ Cmd_reboot,
+ Cmd_sendCommand,
+ Cmd_receiveData
+ },
+ /** 6:I2C for old mailbox */
+ {
+/* 16,
+ &busDesc[6],
+ I2u_writeRegisters,
+ I2u_writeTunerRegisters,
+ NULL,
+ I2u_readRegisters,
+ I2u_readTunerRegisters,
+ NULL,
+ I2u_modifyRegister,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+*/ },
+ /** 7:USB for old mailbox */
+ {
+/* 16,
+ &busDesc[7],
+ I2u_writeRegisters,
+ I2u_writeTunerRegisters,
+ NULL,
+ I2u_readRegisters,
+ I2u_readTunerRegisters,
+ NULL,
+ I2u_modifyRegister,
+ NULL,
+ NULL,
+ NULL,
+ NULL
+*/ },
+ /** 8:USB for new mailbox */
+ {
+/* 55,
+ &busDesc[8],
+ Cmd_writeRegisters,
+ Cmd_writeTunerRegisters,
+ Cmd_writeEepromValues,
+ Cmd_readRegisters,
+ Cmd_readTunerRegisters,
+ Cmd_readEepromValues,
+ NULL,
+ Cmd_loadFirmware,
+ Cmd_reboot,
+ Cmd_sendCommand,
+ Cmd_receiveData
+*/ },
+ /** 9:9035 USB to I2C Bus */
+ {
+/* 54,
+ &busDesc[9],
+ Cmd_writeRegisters,
+ Cmd_writeTunerRegisters,
+ Cmd_writeEepromValues,
+ Cmd_readRegisters,
+ Cmd_readTunerRegisters,
+ Cmd_readEepromValues,
+ NULL,
+ Cmd_loadFirmware,
+ Cmd_reboot,
+ Cmd_sendCommand,
+ Cmd_receiveData
+*/ },
+};
+
+Dword Demodulator_setBusTuner (
+ IN Demodulator* demodulator,
+ IN Word busId,
+ IN Word tunerId
+) {
+ Dword error = Error_NO_ERROR;
+
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ ganymede->cmdDescription = &cmdDesc[busId];
+ ganymede->busId = busId;
+
+/* if (busId == Bus_I2U2) {
+ I2u_setChipAddress (demodulator, 0x38);
+ }
+*/
+ switch (tunerId)
+ {
+ case Tuner_Afatech_AF9007:
+ ganymede->tunerDescription = &tuner_AF9007;
+ break;
+ case Tuner_Panasonic_ENV77H11D5:
+ ganymede->tunerDescription = &tuner_ENV77H11D5;
+ break;
+ case Tuner_Philip_TD1316AFIHP:
+ ganymede->tunerDescription = &tuner_TD1316AFIHP;
+ break;
+ case Tuner_Maxlinear_MXL5005:
+ ganymede->tunerDescription = &tuner_MXL5005;
+ break;
+ case Tuner_Freescale_MC44CD02:
+ ganymede->tunerDescription = &tuner_MC44CD02;
+ break;
+ case Tuner_Microtune_MT2260B0:
+ ganymede->tunerDescription = &tuner_MT2260B0;
+ break;
+ case Tuner_Philips_TDA18291HN:
+ ganymede->tunerDescription = &tuner_TDA18291HN;
+ break;
+ case Tuner_Microtune_MT2266:
+ ganymede->tunerDescription = &tuner_MT2266;
+ MT2266_supportTA4029CTC ((Demodulator*) &ganymede, 0);
+ break;
+ case Tuner_Integrant_ITD3020:
+ ganymede->tunerDescription = &tuner_ITD3020;
+ break;
+ case Tuner_Afatech_PEACOCK:
+ ganymede->tunerDescription = &tuner_PEACOCK;
+ break;
+ case Tuner_Xceive_XC3028L:
+ ganymede->tunerDescription = &tuner_XC3028L;
+ break;
+ case Tuner_Infineon_TUA9001:
+ ganymede->tunerDescription = &tuner_TUA9001;
+ break;
+ case Tuner_Fitipower_FC0011:
+ ganymede->tunerDescription = &tuner_FC0011;
+ break;
+ case Tuner_Infineon_TUA6039:
+ ganymede->tunerDescription = &tuner_TUA6039;
+ break;
+ case Tuner_Philips_TDA18271:
+ ganymede->tunerDescription = &tuner_TDA18271;
+ break;
+ case Tuner_Philips_FQD1218ME_MK5:
+ ganymede->tunerDescription = &tuner_FQD1218ME_MK5;
+ break;
+ case Tuner_Xceive_XC4000:
+ ganymede->tunerDescription = &tuner_XC4000;
+ break;
+ case Tuner_Philips_TDA18271_C2:
+ ganymede->tunerDescription = &tuner_TDA18271_C2;
+ break;
+ case Tuner_Infineon_TUA8010:
+ ganymede->tunerDescription = &tuner_TUA8010;
+ break;
+ case Tuner_FCI_FC2580:
+ ganymede->tunerDescription = &tuner_FC2580;
+ break;
+ case Tuner_Microtune_MT2266_TA4029CTC:
+ ganymede->tunerDescription = &tuner_MT2266;
+ MT2266_supportTA4029CTC ((Demodulator*) &ganymede, 1);
+ break;
+ case Tuner_Fitipower_FC0012:
+ ganymede->tunerDescription = &tuner_FC0012;
+ break;
+ case Tuner_Philips_TDA18271_C2_Askey:
+ ganymede->tunerDescription = &tuner_TDA18271_C2_Askey;
+ break;
+ case Tuner_Elonics_E4000:
+ ganymede->tunerDescription = &tuner_E4000;
+ break;
+ default:
+ error = Error_INVALID_TUNER_TYPE;
+ goto exit;
+ break;
+ }
+
+ if (ganymede->tunerDescription->tunerScript == NULL) {
+ ganymede->tunerDescription->tunerScript = NULL;
+ ganymede->tunerDescription->tunerScriptSets = NULL;
+ }
+
+
+exit:
+ return(error);
+}
+Dword Demodulator_getChannelStatistic (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT ChannelStatistic* channelStatistic
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ GetChannelStatisticRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.channelStatistic = channelStatistic;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_GETCHANNELSTATISTIC,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Dword postErrCnt;
+ Dword postBitCnt;
+ Word rsdAbortCnt;
+ Ganymede* ganymede;
+
+
+ ganymede = (Ganymede*) demodulator;
+
+
+ /** Get BER if couter is ready, error = Error_RSD_COUNTER_NOT_READY if counter is not ready */
+ if (ganymede->architecture == Architecture_PIP) {
+ error = Standard_getPostVitBer (demodulator, chip, &postErrCnt, &postBitCnt, &rsdAbortCnt);
+ if (error == Error_NO_ERROR) {
+ ganymede->channelStatistic[chip].postVitErrorCount = postErrCnt;
+ ganymede->channelStatistic[chip].postVitBitCount = postBitCnt;
+ ganymede->channelStatistic[chip].abortCount = rsdAbortCnt;
+ }
+ } else {
+ error = Standard_getPostVitBer (demodulator, 0, &postErrCnt, &postBitCnt, &rsdAbortCnt);
+ if (error == Error_NO_ERROR) {
+ ganymede->channelStatistic[chip].postVitErrorCount = postErrCnt;
+ ganymede->channelStatistic[chip].postVitBitCount = postBitCnt;
+ ganymede->channelStatistic[chip].abortCount = rsdAbortCnt;
+ }
+ }
+
+ *channelStatistic = ganymede->channelStatistic[chip];
+
+#endif
+
+ return (error);
+}
+Dword Demodulator_addPid (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Pid pid
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ AddPidRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.pid = pid;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_ADDPID,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte writeBuffer[2];
+ Byte i, j;
+ Bool found;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (pidInfo.pidinit == False) {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ for (j = 0; j < 32; j++) {
+ pidInfo.pidtable[i].pid[j] = 0xFFFF;
+ }
+ }
+ pidInfo.pidinit = True;
+ }
+
+ /** Enable pid filter */
+ if (pidInfo.pidcount == 0) {
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_en, mp2if_pid_en_pos, mp2if_pid_en_len, 1);
+ if (error) goto exit;
+ } else {
+ found = False;
+ for (i = 0; i < 32; i++) {
+ if (pidInfo.pidtable[chip].pid[i] == pid.value) {
+ found = True;
+ break;
+ }
+ }
+ if (found == True)
+ goto exit;
+ }
+
+ for (i = 0; i < 32; i++) {
+ if (pidInfo.pidtable[chip].pid[i] == 0xFFFF)
+ break;
+ }
+ if (i == 32) {
+ error = Error_PID_FILTER_FULL;
+ goto exit;
+ }
+
+ writeBuffer[0] = (Byte) pid.value;
+ writeBuffer[1] = (Byte) (pid.value >> 8);
+
+ error = Standard_writeRegisters (demodulator, chip, Processor_OFDM, p_mp2if_pid_dat_l, 2, writeBuffer);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_index_en, mp2if_pid_index_en_pos, mp2if_pid_index_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, p_mp2if_pid_index, i);
+ if (error) goto exit;
+
+ pidInfo.pidtable[chip].pid[i] = pid.value;
+ pidInfo.pidcount++;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Demodulator_addPidAt (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte index,
+ IN Pid pid
+) {
+ return (Demodulator_addPidToFilter (demodulator, chip, index, pid));
+}
+
+
+Dword Demodulator_removePid (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Pid pid
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ RemovePidRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.pid = pid;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_REMOVEPID,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte i;
+ Bool found;
+ Interrupts interrupts;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ found = False;
+ for (i = 0; i < 32; i++) {
+ if (pidInfo.pidtable[chip].pid[i] == pid.value) {
+ found = True;
+ break;
+ }
+ }
+ if (found == False)
+ goto exit;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_index_en, mp2if_pid_index_en_pos, mp2if_pid_index_en_len, 0);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, p_mp2if_pid_index, i);
+ if (error) goto exit;
+
+ pidInfo.pidtable[chip].pid[i] = 0xFFFF;
+
+ /** Disable pid filter */
+ if (pidInfo.pidcount == 1) {
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_en, mp2if_pid_en_pos, mp2if_pid_en_len, 0);
+
+ error = Standard_getInterrupts (demodulator, &interrupts);
+ if (error) goto exit;
+ if (interrupts & Interrupt_DVBT) {
+ error = Standard_clearInterrupt (demodulator, Interrupt_DVBT);
+ if (error) goto exit;
+ }
+ }
+
+ pidInfo.pidcount--;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Demodulator_removePidAt (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte index,
+ IN Pid pid
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ RemovePidAtRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.index = index;
+ request.pid = pid;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_REMOVEPIDAT,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_index_en, mp2if_pid_index_en_pos, mp2if_pid_index_en_len, 0);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, p_mp2if_pid_index, index);
+ if (error) goto exit;
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Demodulator_resetPid (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ for (i = 0; i < 32; i++) {
+ pidInfo.pidtable[chip].pid[i] = 0xFFFF;
+ }
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_rst, mp2if_pid_rst_pos, mp2if_pid_rst_len, 1);
+ if (error) goto exit;
+
+ pidInfo.pidcount = 0;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+#if UNDER_CE
+#else
+extern long ActiveSync;
+#endif
+
+Dword Demodulator_controlActiveSync (
+ IN Demodulator* demodulator,
+ IN Byte control
+) {
+#if UNDER_CE
+//#else //for Linux
+ if (control == 0)
+ ActiveSync = 0;
+ else
+ ActiveSync = 1;
+#endif
+
+ return (Error_NO_ERROR);
+}
+
+
+Dword Demodulator_setStatisticRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte superFrameCount,
+ IN Word packetUnit
+) {
+ return (Demodulator_setViterbiRange (demodulator, chip, superFrameCount, packetUnit));
+}
+
+
+Dword Demodulator_getStatisticRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte* superFrameCount,
+ IN Word* packetUnit
+) {
+ return (Demodulator_getViterbiRange (demodulator, chip, superFrameCount, packetUnit));
+}
diff --git a/api/demodulatorextend.h b/api/demodulatorextend.h
new file mode 100644
index 0000000..411cf4c
--- /dev/null
+++ b/api/demodulatorextend.h
@@ -0,0 +1,1406 @@
+#ifndef __DEMODULATOREXTEND_H__
+#define __DEMODULATOREXTEND_H__
+
+
+//#include <stdio.h> // for Linux
+//#include <math.h>
+#include "type.h"
+#include "user.h"
+#include "register.h"
+#include "error.h"
+#include "cmd.h"
+//#include "i2cimpl.h"
+//#include "sdioimpl.h"
+//#include "spiimpl.h"
+#include "usb2impl.h"
+#include "demodulator.h"
+
+
+#define Tuner_Panasonic_ENV77H11D5 0x01
+#define Tuner_Microtune_MT2060 0x02
+#define Tuner_Maxlinear_MXL5003 0x03
+#define Tuner_Philip_TD1316AFIHP 0x04
+#define Tuner_Freescale_FS803A 0x05
+#define Tuner_Quantek_QT1010 0x06
+#define Tuner_Panasonic_ENV75H10D8 0x07
+#define Tuner_Lg_TDTMG252D 0x08
+#define Tuner_Himax_HTXR03A 0x09
+#define Tuner_Alps_TDQ44M 0x0A
+#define Tuner_Infineon_TUA6045 0x0B
+#define Tuner_Infineon_TUA6034 0x0C
+#define Tuner_Maxlinear_MXL5005 0x0D
+#define Tuner_Thomson_664X 0x0E
+#define Tuner_Thomson_6630 0x0F
+#define Tuner_Samsung_DTOS403 0x10
+#define Tuner_Samsung_DTOS446 0x11
+#define Tuner_Freescale_FS803A_DLNA 0x12
+#define Tuner_Microtune_MT2060_7SAW 0x13
+#define Tuner_Alps_TDQ03 0x14
+#define Tuner_Thomson_759X 0x15
+#define Tuner_Empire_DTN317 0x16
+#define Tuner_Partsnic_PDHTF05D 0x17
+#define Tuner_Panasonic_ENG37A30GF 0x18
+#define Tuner_Philips_FQD1216ME_MK5 0x19
+#define Tuner_Infineon_TUA6041 0x1A
+#define Tuner_Philips_TDA18271 0x1B
+#define Tuner_Alps_TDQD1X001A 0x1C
+#define Tuner_Maxlinear_MXL5005_RSSI 0x1D
+#define Tuner_Thomson_75101 0x1E
+#define Tuner_Sharp_5056 0x1F
+#define Tuner_Freescale_MC44CD02 0x20
+#define Tuner_Microtune_MT2260B0 0x21
+#define Tuner_Philips_TDA18291HN 0x22
+#define Tuner_Microtune_MT2266 0x23
+#define Tuner_Integrant_ITD3020 0x24
+#define Tuner_Afatech_PEACOCK 0x25
+#define Tuner_Xceive_XC3028L 0x26
+#define Tuner_Infineon_TUA9001 0x27
+#define Tuner_Fitipower_FC0011 0x28
+#define Tuner_Infineon_TUA6039 0x29
+#define Tuner_Xceive_XC4000 0x2A
+#define Tuner_Philips_TDA18271_C2 0x2B
+#define Tuner_Infineon_TUA8010 0x2C
+#define Tuner_Microtune_MT2266_TA4029CTC 0x2D
+#define Tuner_Fitipower_FC0012 0x2E
+#define Tuner_Philips_TDA18271_C2_Askey 0x2F
+#define Tuner_Philips_FQD1218ME_MK5 0x30
+#define Tuner_ADI_ADMTV102 0x31
+#define Tuner_FCI_FC2580 0x32
+#define Tuner_Maxim_MAX2169 0x33
+#define Tuner_Philips_TDA18292 0x34
+#define Tuner_Afatech_PICTOR 0x35
+#define Tuner_Elonics_E4000 0x36
+#define Tuner_Afatech_AF9007 0xFF
+
+
+/**
+ * Define commands for AGC general set function
+ */
+#define APO_AGC_SET_RF_ACQUIRE 1
+#define APO_AGC_SET_RF_TRACK 2
+#define APO_AGC_SET_IF_ACQUIRE 3
+#define APO_AGC_SET_IF_TRACK 4
+#define APO_AGC_SET_ADC_OUT_DESIRED_S 5
+#define APO_AGC_SET_RF_TOP_S 6
+#define APO_AGC_SET_IF_TOP_S 7
+#define APO_AGC_SET_RF_LOCK_TH_ACQUIRE 8
+#define APO_AGC_SET_RF_LOCK_TH_TRACK 9
+#define APO_AGC_SET_IF_LOCK_TH_ACQUIRE 10
+#define APO_AGC_SET_IF_LOCK_TH_TRACK 11
+#define APO_AGC_SET_ADC_OUT_DESIRED_M 12
+#define APO_AGC_SET_RF_TOP_M 13
+#define APO_AGC_SET_IF_TOP_M 14
+#define APO_AGC_SET_RF_TOP 15
+#define APO_AGC_SET_IF_TOP 16
+
+
+/**
+ * Define commands for AGC general set function
+ */
+#define APO_AGC_GET_RF_ACQUIRE 1
+#define APO_AGC_GET_RF_TRACK 2
+#define APO_AGC_GET_IF_ACQUIRE 3
+#define APO_AGC_GET_IF_TRACK 4
+#define APO_AGC_GET_RF_LOCK_TH_ACQUIRE 5
+#define APO_AGC_GET_RF_LOCK_TH_TRACK 6
+#define APO_AGC_GET_IF_LOCK_TH_ACQUIRE 7
+#define APO_AGC_GET_IF_LOCK_TH_TRACK 8
+#define APO_AGC_GET_RF_MAX 9
+#define APO_AGC_GET_RF_MIN 10
+#define APO_AGC_GET_RF_TOP_S 11
+#define APO_AGC_GET_RF_TOP_M 17
+#define APO_AGC_GET_IF_MAX 12
+#define APO_AGC_GET_IF_MIN 13
+#define APO_AGC_GET_IF_TOP_S 14
+#define APO_AGC_GET_IF_TOP_M 18
+#define APO_AGC_GET_RF_TOP 19
+#define APO_AGC_GET_IF_TOP 20
+#define APO_AGC_GET_ADC_OUT_DESIRED_S 15
+#define APO_AGC_GET_ADC_OUT_DESIRED_M 16
+
+
+/**
+ * Define Options
+ */
+#define APO_OPTION_FREQSHIFT 0x00000001
+#define APO_OPTION_DYNATOP 0x00000002
+#define APO_OPTION_RET_NOW 0x00000004
+#define APO_OPTION_REPEAT_RETRAIN 0x00000008
+
+
+/**
+ * Define Demodulator_getDouble index
+ */
+#define APO_GET_FREQ_SHIFT 1
+#define APO_GET_ORIG_RF_TOP 2
+#define APO_GET_ORIG_IF_TOP 3
+#define APO_GET_FINAL_RF_TOP 4
+#define APO_GET_FINAL_IF_TOP 5
+#define APO_GET_BEST_RF_TOP 6
+#define APO_GET_BEST_IF_TOP 7
+
+
+/**
+ * Define commands for general CE information function
+ */
+#define APO_AGC_CLEAR_REGS 1
+#define APO_AGC_STALL_OFSM_ACCESS 2
+#define APO_AGC_RESTORE_OFSM_ACCESS 3
+
+
+#define APO_DCA_EN_UPPER 0x01
+#define APO_DCA_EN_LOWER 0x02
+#define APO_DCA_BOTH 0x00
+
+
+/** keep for internal api release */
+/**
+ * The type defination of PidTable.
+ */
+typedef struct {
+ Word pid[32];
+} PidTable;
+
+typedef struct {
+ PidTable pidtable[2];
+ Byte pidcount;
+ Bool pidinit;
+} PidInfo;
+/** end keep for internal api release */
+
+
+extern Word DemodulatorExtend_diversityMode;
+extern double DemodulatorExtend_crystalFrequency;
+extern Word Tdmb_bitRateTable[64];
+
+
+/**
+ * Set control bus and tuner.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param busId The ID of bus.
+ * @param tunerId The ID of tuner.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Set I2C as the control bus.
+ * error = Demodulator_setBusTuner ((Demodulator*) &ganymede, Bus_I2C, Tuner_MICROTUNE_MT2060);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_setBusTuner (
+ IN Demodulator* demodulator,
+ IN Word busId,
+ IN Word tunerId
+);
+
+
+/**
+ * Set firmware and script.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param crystalFrequency The value of crystal frequency on board (KHz).
+ * @param adcFrequency The value of desire internal ADC frequency (Hz).
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Ganymede ganymede;
+ *
+ * // Set frequencies.
+ * error = Demodulator_setCrystalAdcFrequency ((Demodulator*) &ganymede, 30000, 20156250);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_setCrystalAdcFrequency (
+ IN Demodulator* demodulator,
+ IN Dword crystalFrequency,
+ IN Dword adcFrequency
+);
+
+
+/**
+ * Set firmware and script.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param firmwareCodes The byte array of firmware code.
+ * @param firmwareSegments The segments of firmwares.
+ * @param firmwarePartitions The partitions of firmwares.
+ * @param scriptSets The sets of script.
+ * @param scripts The byte array of script.
+ * @param tunerScriptSets The sets of tunerScript.
+ * @param tunerScripts The byte array of tunerScript.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * Byte firmware[65535];
+ * ValueSet script[256];
+ * ValueSet tunerScript[256];
+ * Ganymede ganymede;
+ *
+ * // Set I2C as the control bus.
+ * error = Demodulator_setFirmwareScript ((Demodulator*) &ganymede, firmware, 65535, script, 256, tunerScript, 256);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * </pre>
+ */
+Dword Demodulator_setFirmwareScript (
+ IN Demodulator* demodulator,
+ IN Byte* firmwareCodes,
+ IN Segment* firmwareSegments,
+ IN Byte* firmwarePartitions,
+ IN Word* scriptSets,
+ IN ValueSet* scripts,
+ IN Word* tunerScriptSets,
+ IN ValueSet* tunerScripts
+);
+
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param statistic the structure that store all statistic values.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * Dword error = Error_NO_ERROR;
+ * ChannelStatistic channelStatistic;
+ * double preBer;
+ * double postBer;
+ * Ganymede ganymede;
+ *
+ * // Set statistic range.
+ * error = Demodulator_getChannelStatistic ((Demodulator*) &ganymede, 0, &channelStatistic);
+ * if (error)
+ * printf ("Error Code = %X", error);
+ * else
+ * printf ("Success");
+ * preBer = (double) channelStatistic.preVitErrorCount / (double) channelStatistic.preVitBitCount;
+ * printf ("Pre-Viterbi BER = %f\n", preBer);
+ * postBer = (double) channelStatistic.postVitErrorCount / (double) channelStatistic.postVitBitCount;
+ * printf ("Post-Viterbi BER = %f\n", postBer);
+ * printf ("Abort Count = %d\n", channelStatistic.abortCount);
+ * </pre>
+ */
+Dword Demodulator_getChannelStatistic (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT ChannelStatistic* channelStatistic
+);
+
+
+/**
+ * Set the counting range for Pre-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param preErrorCount the number of super frame for Pre-Viterbi.
+ * @param preBitCount the number of packet unit for Post-Viterbi.
+ * @param snr the signal to noise ratio.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_getPreVitBer (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Dword* preErrorCount,
+ OUT Dword* preBitCount,
+ OUT double* snr
+);
+
+
+/**
+ * Set the counting range for Pre-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param preErrorCount the number of super frame for Pre-Viterbi.
+ * @param preBitCount the number of packet unit for Post-Viterbi.
+ * @param snr the signal to noise ratio.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_getSoftBer (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Dword* preErrorCount,
+ OUT Dword* preBitCount,
+ OUT double* snr
+);
+
+
+/**
+ * This function is used to get signal quality indicator.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param sqi signal quality indicator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * Byte sqi;
+ *
+ * Demodulator_getSqi (0x38, 0, &sqi);
+ * </pre>
+ */
+Dword Demodulator_getSqi (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* sqi
+);
+
+
+/**
+ * Get IF agc voltage.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param doPullUpVolt The pull up voltage of tunre.
+ * @param dopVolt IF AGC voltage to be returned.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getIfAgcVoltage (
+ IN Demodulator* demodulator,
+ IN double doPullUpVolt,
+ OUT double* dopVolt
+);
+
+
+/**
+ * Set maximum RF agc.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param doMaxRfAgc The maximum value of RF AGC.
+ * @param doVolt RF AGC voltage to be set.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setMaxRfAgc (
+ IN Demodulator* demodulator,
+ IN double doMaxRfAgc,
+ IN double doVolt
+);
+
+
+/**
+ * Set minimum rf agc.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param doMinRfAgc The minimum value of RF AGC.
+ * @param doVolt RF AGC voltage to be set.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setMinRfAgc (
+ IN Demodulator* demodulator,
+ IN double doMinRfAgc,
+ IN double doVolt
+);
+
+
+/**
+ * Set max if agc.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param doMaxIfAgc The maximum value of IF AGC.
+ * @param doVolt IF AGC voltage to be set.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setMaxIfAgc (
+ IN Demodulator* demodulator,
+ IN double doMaxIfAgc,
+ IN double doVolt
+);
+
+
+/**
+ * Set min if agc.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param doMinIfAgc The minimum value of IF AGC.
+ * @param doVolt IF AGC voltage to be set.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setMinIfAgc (
+ IN Demodulator* demodulator,
+ IN double doMinIfAgc,
+ IN double doVolt
+);
+
+
+/**
+ * General agc set function.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ucCmd .
+ * @param vpParams .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setAgc (
+ IN Demodulator* demodulator,
+ IN Byte ucCmd,
+ IN Word* vpParams
+);
+
+
+/**
+ * General agc get function.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ucCmd .
+ * @param vpParams .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getAgc (
+ IN Demodulator* demodulator,
+ IN Byte ucCmd,
+ IN void* vpParams
+);
+
+
+/**
+ * Check if INR detected.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param count INR count.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getInrCount (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Word* count
+);
+
+
+/**
+ * Check if CCI happens.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param cci0 1: CCI happen, 0: CCI doesn't happen.
+ * @param cci1 1: CCI happen, 0: CCI doesn't happen.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_isCci (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* cci0,
+ OUT Bool* cci1
+);
+
+
+/**
+ * Check if ACI happens
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param aci0 1: ACI happen, 0: ACI doesn't happen.
+ * @param aci1 1: ACI happen, 0: ACI doesn't happen.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_isAci (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* aci0,
+ OUT Bool* aci1
+);
+
+
+/**
+ * Get frequency offset.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param doTs Sampling period.
+ * @param lpNormOffset Normalized frequency offset (carrier spacing).
+ * @param lpOffset Frequency offset (22 bits) (Hz).
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getFrequencyOffset (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN double elementaryPeriod,
+ OUT Long* normalizedOffset,
+ OUT Long* offset
+);
+
+
+/**
+ * Get sampling clock offset in second
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param adcFrequency ADC frequency.
+ * @param elementaryPeriod Sampling period.
+ * @param offset ADC sampling clock offset in sec.
+ * @param offsetPpm ADC sampling clock offset in PPM.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getTimeOffset (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN double adcFrequency,
+ IN double elementaryPeriod,
+ OUT double* offset,
+ OUT double* offsetPpm
+);
+
+
+/**
+ * Set IF1 frequency of MT2060.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param dwIf1 The IF1 frequency (KHz).
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setMT2060If1 (
+ IN Demodulator* demodulator,
+ IN Dword dwIf1
+);
+
+
+/**
+ * Clear FFT window position valid bit.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_resetFftWinPos (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ * Clear FFT window position valid bit.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param delta Delta value for FFT window position.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getFftWinPos (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Long* delta
+);
+
+
+/**
+ * Get crystal frequency (KHz).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param fpFreq Crystal frequency.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getXtalFreq (
+ IN Demodulator* demodulator,
+ IN float* fpFreq
+);
+
+
+/**
+ * Test register.
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_testRegister (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ * Dump register.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param cpFileName The name of file to be write.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_dumpRegister (
+ IN Demodulator* demodulator,
+ IN char* cpFileName
+);
+
+
+/**
+ * Get frequency response from hardware.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param tone Sub-Carrier Index ( Real Index = 200*wIndex).
+ * @param realPart Real part of Constellation value.
+ * @param imaginaryPart Imaginary part of Constellation value.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getFrequencyResponse (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Word* tone,
+ OUT Long* realPart,
+ OUT Long* imaginaryPart
+);
+
+
+/**
+ * Get constellation value.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param tone Sub-Carrier Index ( Real Index = 200*wIndex).
+ * @param realPart Real part of Constellation value.
+ * @param imaginaryPart Imaginary part of Constellation value.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getConstellation (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word tone,
+ OUT float* realPart,
+ OUT float* imaginaryPart
+);
+
+
+/**
+ * Capture constellation value (2).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param wIndex Sub-Carrier Index ( Real Index = 200*wIndex).
+ * @param wpReal real part of constellation value.
+ * @param wpImag imaginary part of constellation value.
+ * @param wpH2 H2 value.
+ * @param wpRealH real part of H.
+ * @param wpImagH imaginary part of H.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_capConstellation2 (
+ IN Demodulator* demodulator,
+ IN Word wIndex,
+ OUT Byte* ucpSymCnt,
+ OUT Byte* ucpReal,
+ OUT Byte* ucpImag,
+ OUT Word* wpRealH,
+ OUT Word* wpImagH
+);
+
+
+/**
+ * Get status.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param dwpStatus Pointer to system information.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getStatus (
+ IN Demodulator* demodulator,
+ OUT Dword* dwpStatus
+);
+
+
+/**
+ * Get frequency shift.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param index .
+ * @param dopShift .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getDouble (
+ IN Demodulator* demodulator,
+ IN Byte index,
+ IN double* dopValue
+);
+
+
+/**
+ * Get IR byte.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ucpIRByte IR packet buffer.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getIr (
+ IN Demodulator* demodulator,
+ OUT Byte* ucpIRByte
+);
+
+
+/**
+ * Dump EEPROM.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param dwDelay .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_dumpEeprom (
+ IN Demodulator* demodulator,
+ IN Dword dwDelay
+);
+
+
+/**
+ * Load file to EEPROM.
+ *
+ * @param fileName File name to load to EEPROM.
+ * @param dwDelay .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_loadEeprom (
+ IN Demodulator* demodulator,
+ IN char* fileName,
+ IN Dword dwDelay
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_isFecMonEnabled (
+ IN Demodulator* demodulator,
+ OUT Bool* enabled
+);
+
+
+/**
+ * Generate ce information.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param command .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_genCeInfoFunc (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte command
+);
+
+
+/**
+ * Get ce information.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param spCentroid .
+ * @param spBias .
+ * @param dwpRh0 .
+ * @param wpM2 .
+ * @param dwpEh2 .
+ * @param ucpM2q .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getCeInfo (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Short* spCentroid,
+ OUT Short* spBias,
+ OUT Dword* dwpRh0,
+ OUT Word* wpM2,
+ OUT Dword* dwpEh2,
+ OUT Byte* ucpM2q
+);
+
+
+/**
+ * Enable/disable retrain.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param enable .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setRetrain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte enable
+);
+
+
+/**
+ * Enable/disable CCIR.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ucEnable .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setCcir (
+ IN Demodulator* demodulator,
+ IN Byte ucEnable
+);
+
+
+/**
+ * Handle CCIF
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ccifId .
+ * @param ctrl .
+ * @param ucBw .
+ * @param wFreq .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_handleCcif (
+ IN Demodulator* demodulator,
+ IN Byte ccifId,
+ IN Byte ctrl,
+ IN Byte ucBw,
+ IN Word wFreq
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param level .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getAdcDesiredLevel (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Word* level
+);
+
+
+/**
+ * Set tuner type
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ucTuner .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setTunerType (
+ IN Demodulator* demodulator,
+ IN Byte ucTuner
+);
+
+
+/**
+ * Set board id
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ucBoard .
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setBoardId (
+ IN Demodulator* demodulator,
+ IN Byte ucBoard
+);
+
+
+/**
+ * Get signal strength in Dbm
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ucTunerType tuner type.
+ * @param ucBoardId Board ids.
+ * @param dopStrength signal strength.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getSignalStrengthDBm (
+ IN Demodulator* demodulator,
+ IN Byte ucTunerType,
+ IN Byte ucBoardId,
+ OUT double* dopStrength
+);
+
+
+/**
+ * Program CFOE 2.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ucBw Current channel bandwidth in MHz.
+ * @param dFs ADC sampling frequency.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_programCFOE2 (
+ IN Demodulator* demodulator,
+ IN Byte ucBw,
+ IN double dFs
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setCalibratAgc (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setCrystalFrequency (
+ IN Demodulator* demodulator,
+ IN double crystalFrequency
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_writeMt2060If1 (
+ IN Demodulator* demodulator,
+ IN Dword dwIF1
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getSnr (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT double* snr
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param speed the I2C speed in KHz.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setI2cSpeed (
+ IN Demodulator* demodulator,
+ IN Dword speed
+);
+
+
+/**
+ * Ask fw to go back to boot code
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_backToBootCode (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ * Control gpio3 (AF9015 use this pin to turn on/off tuner)
+ * ucOn = 1 => turn on tuner
+ * ucOn = 0 => turn off tuner
+ *
+ * @param demodulator the handle of demodulator.
+ * @param contorl True: Enable, False: Disable;
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_controlTunerPower (
+ IN Demodulator* demodulator,
+ IN Byte control
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param multiplier ADC frequency multiplier;
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setMultiplier (
+ IN Demodulator* demodulator,
+ IN Multiplier multiplier
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param multiplier ADC frequency multiplier;
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getMultiplier (
+ IN Demodulator* demodulator,
+ IN Multiplier* multiplier
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param ifFrequency the IF frequency of tuner;
+ * @param inversion True if tuner's pectrum is inversed;
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_modifyTunerDescription (
+ IN Demodulator* demodulator,
+ IN Byte tunerAddress,
+ IN Byte registerAddressLength,
+ IN Dword ifFrequency,
+ IN Bool inversion
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_writeRawData (
+ IN Demodulator* demodulator,
+ IN Byte writeBufferLength,
+ IN Byte* writeBuffer
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_readRawData (
+ IN Demodulator* demodulator,
+ IN Byte readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+/**
+ * Open tuner.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ */
+Dword Demodulator_openTuner (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+/**
+ * Set tuner.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param bandwidth The desired bandwidth.
+ * @param frequency The desired frequency.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ */
+Dword Demodulator_setTuner (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param block How many block (logical frame) to be check.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setPostVitAllZeroBlock (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word block
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param code the address of function pointer in firmware.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_runCode (
+ IN Demodulator* demodulator,
+ IN Word code
+);
+
+
+/**
+ * Add PID to PID filter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param pid the PID that will be add to PID filter.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_addPid (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Pid pid
+);
+
+
+/**
+ * Add PID to PID filter by index.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param index the index of PID filter.
+ * @param pid the PID that will be add to PID filter.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_addPidAt (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte index,
+ IN Pid pid
+);
+
+
+/**
+ * Remove PID from PID filter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param pid the PID that will be remove from PID filter.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_removePid (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Pid pid
+);
+
+/**
+ * Remove PID from PID filter by index.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param index the index of PID filter.
+ * @param pid the PID that will be remove from PID filter.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_removePidAt (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte index,
+ IN Pid pid
+);
+
+
+/**
+ * Reset PID filter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Demodulator_resetPid (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ * Control Active Sync.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param contorl 0: Disable(BDA Extend), 1: Enable (Active Sync)
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_controlActiveSync (
+ IN Demodulator* demodulator,
+ IN Byte control
+);
+
+/**
+ * Set the counting range for Pre-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param frameCount the number of super frame for Pre-Viterbi.
+ * @param packetUnit the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_setStatisticRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte superFrameCount,
+ IN Word packetUnit
+);
+
+
+/**
+ * Get the counting range for Pre-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param frameCount the number of super frame for Pre-Viterbi.
+ * @param packetUnit the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getStatisticRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte* superFrameCount,
+ IN Word* packetUnit
+);
+
+
+/**
+ * Get the using tuner code version.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param majorVersion the number of tuner major version.
+ * @param minorVersion the number of tuner minor version.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Demodulator_getTunerVersion (
+ IN Demodulator* demodulator,
+ OUT Byte* majorVersion,
+ OUT Byte* minorVersion
+);
+
+
+#endif \ No newline at end of file
diff --git a/api/driver_tua8010.c b/api/driver_tua8010.c
new file mode 100644
index 0000000..7c9b0ec
--- /dev/null
+++ b/api/driver_tua8010.c
@@ -0,0 +1,366 @@
+/* ============================================================================
+** Copyright (C) 1997-2008 Infineon AP All rights reserved.
+** ============================================================================
+**
+** ============================================================================
+** Revision Information :
+** File name: driver_tua8010.c
+** Version: V0.1
+** Date: 2008.08.17
+**
+** ============================================================================
+** History:
+**
+** Date Author Comment
+** ----------------------------------------------------------------------------
+**
+** 2007.11.06 Walter Pichler created.
+** 2008.08.15 Xie Yonggang adaption to TUA8010
+** ============================================================================
+*/
+
+/*============================================================================
+Includes
+============================================================================*/
+
+#include "driver_tua8010.h"
+#include "driver_tua8010_NeededFunctions.h" /* Note: This function have to be provided by the user */
+
+/*============================================================================
+Local compiler keeys ( usage depends on the application )
+============================================================================*/
+
+#define CRYSTAL_26_MHZ
+//#define CRYSTAL_19.2_MHZ
+//#define CRYSTAL_20.48_MHZ
+
+//#define AGC_BY_IIC
+//#define AGC_BY_AGC_BUS
+//#define AGC_BY_EXT_PIN
+
+
+/*============================================================================
+Named Constants Definitions ( usage depends on the application )
+============================================================================*/
+
+#define TUNERs_TUA8010_DEVADDR 0xC2
+
+/* Note: The correct device address depends hardware settings. See Datasheet
+ and User Manual for details. */
+
+/*============================================================================
+Local Named Constants Definitions
+============================================================================*/
+#define OPERATIONAL_MODE 0x03
+#define CHANNEL_BANDWITH 0x04
+#define SW_CONTR_TIME_SLICING 0x05
+#define BASEBAND_GAIN_CONTROL 0x06
+#define MANUAL_BASEBAND_GAIN 0x0b
+#define REFERENCE_FREQUENCY 0x1d
+#define CHANNEL_WORD 0x1f
+#define CHANNEL_OFFSET 0x20
+#define CHANNEL_FILTER_TRIMMING 0x2f
+#define OUTPUT_BUFFER 0x32
+#define RF_AGC_CONFIG_A 0x36
+#define RF_AGC_CONFIG_B 0x37
+#define UHF_LNA_SELECT 0x39
+#define LEVEL_DETECTOR 0x3a
+#define MIXER_CURRENT 0x3b
+#define PORT_CONTROL 0x3e
+#define CRYSTAL_TRIMMING 0x41
+#define CHANNEL_FILTER_STATUS 0x60
+#define SIG_STRENGHT_INDICATION 0x62
+#define PLL_LOCK 0x69
+#define RECEIVER_STATE 0x70
+#define RF_INPUT 0x71
+#define BASEBAND_GAIN 0x72
+#define CHIP_IDENT_CODE 0x7e
+#define CHIP_REVISION 0x7f
+
+#define TUNERs_TUA8010_BW_8 0xcf
+#define TUNERs_TUA8010_BW_7 0x10
+#define TUNERs_TUA8010_BW_6 0x20
+#define TUNERs_TUA8010_BW_5 0x30
+
+
+
+
+/*============================================================================
+ Types definition
+============================================================================*/
+
+
+
+
+/*============================================================================
+ Public Functions
+============================================================================*/
+
+
+/**
+ * tuner initialisation
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int initializeTUA8010(void)
+{
+ unsigned int counter;
+ char i2cseq[2];
+ tunerReceiverState_t tunerState;
+
+ setRXEN8010 (L_LEVEL); /* de-asserting RXEN */
+
+ setRESETN8010 (L_LEVEL); /* de-asserting RESET */
+
+ /* Note: CEN may also be hard wired in the application*/
+ setCEN8010 (L_LEVEL); /* de-asserting Chip enable */
+
+ /* Note: 20µs assumes that all external power supplies are settled. If not, add more time here */
+ waitloop8010 (20); /* wait for 20 uS */
+
+ /* Note: CEN may also be hard wired in the application*/
+ setCEN8010 (H_LEVEL); /* asserting Chip enable */
+
+ /* Note: 20µs assumes that all external power supplies are settled. If not, add more time here */
+ waitloop8010 (20); /* wait for 20 uS */
+
+ setRESETN8010 (H_LEVEL); /* asserting RESET */
+
+ counter = 7;
+ do
+ {
+ counter --;
+ waitloop8010 (1000); /* wait for 1 mS */
+
+ }while ((counter));
+
+ /* PGF */
+ i2cseq[0] = 0x00;
+ i2cseq[1] = 0x00;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x0D, i2cseq, 2);
+
+ /* Xtal */
+ i2cseq[0] = 0x00;
+ i2cseq[1] = 0x30;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x1D, i2cseq, 2);
+
+ /* VCO */
+ i2cseq[0] = 0x88;
+ i2cseq[1] = 0x7A;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x25, i2cseq, 2);
+
+ /* LNA */
+ i2cseq[0] = 0x1c;
+ i2cseq[1] = 0x00;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x2C, i2cseq, 2);
+
+ /* Channel Filter */
+ i2cseq[0] = 0x00;
+ i2cseq[1] = 0x70;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x32, i2cseq, 2);
+
+ /* Channel Filter */
+ i2cseq[0] = 0x02;
+ i2cseq[1] = 0x40;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x34, i2cseq, 2);
+
+ /* Low Pwr LNA*/
+ i2cseq[0] = 0xC0;
+ i2cseq[1] = 0x13;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x36, i2cseq, 2);
+
+ /* RF AGC Release */
+ i2cseq[0] = 0x0F;
+ i2cseq[1] = 0x98;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x37, i2cseq, 2);
+
+ setRXEN8010 (H_LEVEL); /* RXEN to low >> IDLE STATE */
+
+
+ return TUNER_OK;
+}
+
+
+
+/**
+ * tuner tune
+ * @param IN i_freq tuning frequency
+ * @param IN i_bandwidth channel bandwidth
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int tuneTUA8010(long i_freq, tunerDriverBW_t i_bandwidth)
+{
+ char i2cseq[2];
+ unsigned int divider_factor;
+ unsigned int ch_offset;
+ unsigned int counter;
+ unsigned int lo_path_settings;
+ tunerReceiverState_t tunerState;
+
+
+ /* de-assert RXEN >> IDLE STATE */
+ setRXEN8010 (L_LEVEL);
+
+
+ /* calculate divider factor */
+ if (i_freq < 1000000) /* divider factor and channel offset for UHF/VHF III */
+ {
+ ch_offset = 0x1C20; /* channel offset 150 MHz */
+ divider_factor = (unsigned int) (((i_freq - 150000) * 48) / 1000);
+ lo_path_settings = 0xb6de;
+ }
+
+ else /* calculate divider factor for L-Band Frequencies */
+ {
+ ch_offset = 0x5460; /* channel offset 450 MHz */
+ divider_factor = (unsigned int) (((i_freq - 450000) * 48) / 1000);
+ lo_path_settings = 0xbede;
+ }
+
+
+ // Set for GPIO_0 control
+ if (i_freq >= 170000 && i_freq <= 250000)
+ {
+ i2cseq[0] = 0x51;
+ i2cseq[1] = 0x42;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x3E, i2cseq, 2);
+ }
+ else if (i_freq >= 470000 && i_freq <= 860000)
+ {
+ i2cseq[0] = 0x5D;
+ i2cseq[1] = 0x72;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x3E, i2cseq, 2);
+ }
+
+ // Set LO Path
+ i2cseq[0] = lo_path_settings >> 8;
+ i2cseq[1] = lo_path_settings & 0xff;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x2b, i2cseq, 2);
+
+ // Set channel offset
+ i2cseq [0] = ch_offset >> 8;
+ i2cseq [1] = ch_offset & 0xff;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x20, i2cseq, 2);
+
+ // Set Frequency
+ i2cseq [0] = divider_factor >> 8;
+ i2cseq [1] = divider_factor & 0xff;
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x1f, i2cseq, 2);
+
+ // Set bandwidth
+ i2cBusRead8010 (TUNERs_TUA8010_DEVADDR, 0x04, i2cseq, 2); /* get current register value */
+ i2cseq [0] &= TUNERs_TUA8010_BW_8;
+
+ switch (i_bandwidth)
+ {
+ case TUNER_BANDWIDTH_7MHZ: i2cseq [0] |= TUNERs_TUA8010_BW_7;
+ break;
+ case TUNER_BANDWIDTH_6MHZ: i2cseq [0] |= TUNERs_TUA8010_BW_6;
+ break;
+ case TUNER_BANDWIDTH_5MHZ: i2cseq [0] |= TUNERs_TUA8010_BW_5;
+ break;
+ }
+
+ i2cBusWrite8010 (TUNERs_TUA8010_DEVADDR, 0x04, i2cseq, 2);
+
+ /* assert RXEN >> RX STATE */
+ setRXEN8010 (H_LEVEL);
+
+ counter = 5;
+ do
+ {
+ counter --;
+ waitloop8010 (1000); /* wait for 1 mS */
+ }while ((counter));
+
+ return TUNER_OK;
+}
+
+
+/**
+ * Get pll locked state
+ * @param OUT o_pll pll locked state
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int getPllLockedStateTUA8010(tunerPllLocked_t *o_pll)
+{
+ char i2cseq[2];
+
+ i2cBusRead8010 (TUNERs_TUA8010_DEVADDR, 0x69, i2cseq, 2); /* get current register value */
+
+ o_pll[0] = (i2cseq[1] & 0x08) ? PLL_LOCKED : PLL_NOT_LOCKED;
+
+ return TUNER_OK;
+}
+
+
+/**
+ * Get tuner state
+ * @param OUT o_tunerState tuner state
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int getReceiverStateTUA8010(tunerReceiverState_t *o_tunerState)
+{
+ char i2cseq[2];
+
+ i2cBusRead8010 (TUNERs_TUA8010_DEVADDR, 0x70, i2cseq, 2); /* get current register value */
+
+ switch (i2cseq[1] & ~0x1f)
+ {
+ case 0x80: o_tunerState [0] = IDLE; break;
+ case 0x40: o_tunerState [0] = RX; break;
+ case 0x20: o_tunerState [0] = STANDBY;
+ }
+
+ return TUNER_OK;
+}
+
+
+/**
+ * Get active input
+ * @param OUT o_activeInput active input info
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int getActiveInputTUA8010(tunerActiveInput_t *o_activeInput)
+{
+ char i2cseq[2];
+
+ i2cBusRead8010 (TUNERs_TUA8010_DEVADDR, 0x71, i2cseq, 2); /* get current register value */
+
+ switch (i2cseq[1] & ~0x0f)
+ {
+ case 0x80: o_activeInput [0] = Internal_UHF_LNA; break;
+ case 0x40: o_activeInput [0] = External_UHF_LNA; break;
+ case 0x20: o_activeInput [0] = Internal_VHF_LNA; break;
+ case 0x10: o_activeInput [0] = External_VHF_LNA;
+ }
+
+ return TUNER_OK;
+}
+
+
+/**
+ * Get baseband gain value
+ * @param OUT o_basebandGain baseband gain value
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int getBasebandGainTUA8010(char *o_basebandGain)
+{
+ char i2cseq[2];
+
+ i2cBusRead8010 (TUNERs_TUA8010_DEVADDR, 0x72, i2cseq, 2); /* get current register value */
+ o_basebandGain [0] = i2cseq [1];
+
+ return TUNER_OK;
+}
diff --git a/api/driver_tua8010.h b/api/driver_tua8010.h
new file mode 100644
index 0000000..175fe14
--- /dev/null
+++ b/api/driver_tua8010.h
@@ -0,0 +1,114 @@
+/* ============================================================================
+** Copyright (C) 1997-2008 Infineon AP All rights reserved.
+** ============================================================================
+**
+** ============================================================================
+** Revision Information :
+** File name: driver_tua8010.h
+** Version: 2008.08.17
+** Date: V0.1
+**
+** ============================================================================
+** History:
+**
+** Date Author Comment
+** ----------------------------------------------------------------------------
+**
+** 2007.11.06 Walter Pichler created.
+** 2008.08.15 Xie Yonggang adaption to TUA8010
+** ============================================================================
+*/
+
+
+/*============================================================================
+ Named Constants Definitions
+============================================================================*/
+
+#define TUNER_OK 0
+#define TUNER_ERR 0xff
+
+#define H_LEVEL 1
+#define L_LEVEL 0
+
+
+/*============================================================================
+ Types definition
+============================================================================*/
+
+
+typedef enum {
+ TUNER_BANDWIDTH_8MHZ,
+ TUNER_BANDWIDTH_7MHZ,
+ TUNER_BANDWIDTH_6MHZ,
+ TUNER_BANDWIDTH_5MHZ,
+ } tunerDriverBW_t;
+
+
+typedef enum {
+ PLL_LOCKED,
+ PLL_NOT_LOCKED
+ }tunerPllLocked_t;
+
+
+typedef enum {
+ STANDBY,
+ IDLE,
+ RX
+ } tunerReceiverState_t;
+
+
+typedef enum {
+ Internal_UHF_LNA,
+ External_UHF_LNA,
+ Internal_VHF_LNA,
+ External_VHF_LNA
+ } tunerActiveInput_t;
+
+
+
+/*============================================================================
+ Public functions
+============================================================================*/
+
+/**
+ * tuner initialisation
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+extern int initializeTUA8010(void);
+
+
+/**
+ * tuner tune
+ * @param IN i_freq tuning frequency
+ * @param IN i_bandwidth channel bandwidth
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+extern int tuneTUA8010(long i_freq, tunerDriverBW_t i_bandwidth);
+
+
+/**
+ * Get tuner state
+ * @param OUT o_tunerState tuner state
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+extern int getReceiverStateTUA8010(tunerReceiverState_t *o_tunerState);
+
+/**
+ * Get active input
+ * @param OUT o_activeInput active input info
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+extern int getActiveInputTUA8010(tunerActiveInput_t *o_activeInput);
+
+
+/**
+ * Get baseband gain value
+ * @param OUT o_basebandGain baseband gain value
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+extern int getBasebandGainTUA8010(char *o_basebandGain);
diff --git a/api/driver_tua8010_NeededFunctions.h b/api/driver_tua8010_NeededFunctions.h
new file mode 100644
index 0000000..5b13df0
--- /dev/null
+++ b/api/driver_tua8010_NeededFunctions.h
@@ -0,0 +1,98 @@
+/* ============================================================================
+** Copyright (C) 1997-2008 Infineon AP All rights reserved.
+** ============================================================================
+**
+** ============================================================================
+** Revision Information :
+** File name: driver_tua8010_NeededFunctions.h
+** Version: v0.1
+** Date: 2008.08.17
+**
+** ============================================================================
+** History:
+**
+** Date Author Comment
+** ----------------------------------------------------------------------------
+** 2007.11.06 Walter Pichler created.
+** 2008.08.15 Xie Yonggang adaption to TUA8010
+**
+** ============================================================================
+*/
+
+/*========================================================================================================================
+ additional needed external funtions ( have to be provided by the user! )
+========================================================================================================================*/
+
+/**
+ * set / reset tuner reset input
+ * @param IN i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int setRESETN8010 (unsigned int i_state);
+
+
+
+/**
+ * set / reset tuner receive enable input
+ * @param IN i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int setRXEN8010 (unsigned int i_state);
+
+
+/**
+ * set / reset tuner chiop enable input
+ * @param IN i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int setCEN8010 (unsigned int i_state);
+
+
+
+/**
+ * waitloop
+ * @param IN i_looptime * 1uS
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+int waitloop8010 (unsigned int i_looptime);
+
+
+
+/**
+ * i2cBusWrite
+ * @param IN deviceAdress chip address
+ * @param IN registerAdress register address
+ * @param IN *data pointer to data source
+ * @param IN length number of bytes to transmit
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+ int i2cBusWrite8010 (unsigned char deviceAddress, unsigned char registerAddress, char *data, unsigned int length);
+
+
+
+/**
+ * i2cBusRead
+ * @param IN deviceAdress chip address
+ * @param IN registerAdress register address
+ * @param OUT *data pointer to data destination
+ * @param IN length number of bytes to read
+ * @retval TUNER_OK No error
+ * @retval TUNER_ERROR Error
+*/
+
+ int i2cBusRead8010 (unsigned char deviceAddress, unsigned char registerAddress, char *data, unsigned int length);
+
+
+/*========================================================================================================================
+ end of additional needed external funtions
+========================================================================================================================*/
diff --git a/api/driver_tua9001.c b/api/driver_tua9001.c
new file mode 100644
index 0000000..cf61fe9
--- /dev/null
+++ b/api/driver_tua9001.c
@@ -0,0 +1,409 @@
+/* ============================================================================
+** Copyright (C) 1997-2007 Infineon AG All rights reserved.
+** ============================================================================
+**
+** ============================================================================
+** Revision Information :
+** File name: driver_tua9001.c
+** Version: V 1.01
+** Date:
+**
+** ============================================================================
+** History:
+**
+** Date Author Comment
+** ----------------------------------------------------------------------------
+**
+** 2007.11.06 Walter Pichler created.
+** 2008.04.08 Walter Pichler adaption to TUA 9001E
+**
+** ============================================================================
+*/
+
+/*============================================================================
+Includes
+============================================================================*/
+
+#include "driver_tua9001.h"
+#include "driver_tua9001_NeededFunctions.h" /* Note: This function have to be provided by the user */
+
+/*============================================================================
+Local compiler keeys ( usage depends on the application )
+============================================================================*/
+
+#define CRYSTAL_26_MHZ
+//#define CRYSTAL_19.2_MHZ
+//#define CRYSTAL_20.48_MHZ
+
+//#define AGC_BY_IIC
+#define AGC_BY_AGC_BUS
+//#define AGC_BY_EXT_PIN
+
+
+/*============================================================================
+Named Constants Definitions ( usage depends on the application )
+============================================================================*/
+
+#define TUNERs_TUA9001_DEVADDR 0xC0
+
+/* Note: The correct device address depends hardware settings. See Datasheet
+ and User Manual for details. */
+
+/*============================================================================
+Local Named Constants Definitions
+============================================================================*/
+#define OPERATIONAL_MODE 0x03
+#define CHANNEL_BANDWITH 0x04
+#define SW_CONTR_TIME_SLICING 0x05
+#define BASEBAND_GAIN_CONTROL 0x06
+#define MANUAL_BASEBAND_GAIN 0x0b
+#define REFERENCE_FREQUENCY 0x1d
+#define CHANNEL_WORD 0x1f
+#define CHANNEL_OFFSET 0x20
+#define CHANNEL_FILTER_TRIMMING 0x2f
+#define OUTPUT_BUFFER 0x32
+#define RF_AGC_CONFIG_A 0x36
+#define RF_AGC_CONFIG_B 0x37
+#define UHF_LNA_SELECT 0x39
+#define LEVEL_DETECTOR 0x3a
+#define MIXER_CURRENT 0x3b
+#define PORT_CONTROL 0x3e
+#define CRYSTAL_TRIMMING 0x41
+#define CHANNEL_FILTER_STATUS 0x60
+#define SIG_STRENGHT_INDICATION 0x62
+#define PLL_LOCK 0x69
+#define RECEIVER_STATE 0x70
+#define RF_INPUT 0x71
+#define BASEBAND_GAIN 0x72
+#define CHIP_IDENT_CODE 0x7e
+#define CHIP_REVISION 0x7f
+
+#define TUNERs_TUA9001_BW_8 0xcf
+#define TUNERs_TUA9001_BW_7 0x10
+#define TUNERs_TUA9001_BW_6 0x20
+#define TUNERs_TUA9001_BW_5 0x30
+
+
+
+
+/*============================================================================
+ Types definition
+============================================================================*/
+
+
+
+
+/*============================================================================
+ Public Functions
+============================================================================*/
+
+
+/**
+ * tuner initialisation
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int initializeTua9001 (void)
+{
+ unsigned int counter;
+ char i2cseq[2];
+ tunerReceiverState_t tunerState;
+
+ /* Note: CEN may also be hard wired in the application*/
+ setCEN (H_LEVEL); /* asserting Chip enable */
+
+ setRESETN (L_LEVEL); /* asserting RESET */
+
+ setRXEN (L_LEVEL); /* RXEN to low >> IDLE STATE */
+
+ /* Note: 20µs assumes that all external power supplies are settled. If not, add more time here */
+ waitloop (20); /* wait for 20 uS */
+
+ setRESETN (H_LEVEL); /* de-asserting RESET */
+
+ /* This is to wait for the Crystal Oscillator to settle .. wait until IDLE mode is reached */
+ counter = 7;
+ do
+ {
+ counter --;
+ waitloop (1000); /* wait for 1 mS */
+
+ }while ((counter));
+
+
+ /**** Overwrite default register value ****/
+ i2cseq[0] = 0x65; /* Waiting time before PLL cal. start */
+ i2cseq[1] = 0x12;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x1e, i2cseq, 2);
+
+ i2cseq[0] = 0xB8; /* VCO Varactor bias fine tuning */
+ i2cseq[1] = 0x88;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x25, i2cseq, 2);
+
+ i2cseq[0] = 0x54; /* LNA switching Threshold for UHF1/2 */
+ i2cseq[1] = 0x60;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x39, i2cseq, 2);
+
+ i2cseq[0] = 0x00;
+ i2cseq[1] = 0xC0;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x3b, i2cseq, 2);
+
+ i2cseq[0] = 0xF0; /* LO- Path Set LDO output voltage */
+ i2cseq[1] = 0x00;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x3a, i2cseq, 2);
+
+ i2cseq[0] = 0x00; /* Set EXTAGC interval */
+ i2cseq[1] = 0x00;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x08, i2cseq, 2);
+
+ i2cseq[0] = 0x00; /* Set max. capacitive load */
+ i2cseq[1] = 0x30;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x32, i2cseq, 2);
+
+
+ /**** Set Crystal Reference Frequency an Trim value ****/
+#if defined(CRYSTAL_26_MHZ) /* Frequency 26 MHz */
+ i2cseq[0] = 0x01;
+ i2cseq[1] = 0xB0;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x1d, i2cseq, 2);
+
+ i2cseq[0] = 0x70; /* NDK 3225 series 26 MHz XTAL */
+ i2cseq[1] = 0x3a;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x41, i2cseq, 2);
+ i2cseq[0] = 0x1C;
+ i2cseq[1] = 0x78;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x40, i2cseq, 2);
+
+#elif defined(CRYSTAL_19.2_MHZ) /* Frequency 19.2 MHz */
+ i2cseq[0] = 0x01;
+ i2cseq[1] = 0xA0;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x1d, i2cseq, 2);
+ /* Note: Insert optimised register values for 0x40 / 0x41 for used crystal */
+ /* contact application support for further information */
+#elif defined(CRYSTAL_20.48_MHZ) /* Frequency 20,48 MHz */
+ i2cseq[0] = 0x01;
+ i2cseq[1] = 0xA8;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x1d, i2cseq, 2);
+ /* Note: Insert optimised register values for 0x40 / 0x41 for used crystal */
+ /* contact application support for further information */
+#endif
+
+
+
+ /**** Set desired Analog Baseband AGC mode ****/
+#if defined (AGC_BY_IIC)
+ i2cseq[0] = 0x00; /* Bypass AGC controller >> IIC based AGC */
+ i2cseq[1] = 0x40;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x06, i2cseq, 2);
+#elif defined(AGC_BY_AGC_BUS)
+ i2cseq[0] = 0x00; /* Digital AGC bus */
+ i2cseq[1] = 0x00; /* 0,5 dB steps */
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x06, i2cseq, 2);
+#elif defined(AGC_BY_EXT_PIN)
+ i2cseq[0] = 0x40; /* Ext. AGC pin */
+ i2cseq[1] = 0x00;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x06, i2cseq, 2);
+#endif
+
+
+ /**** set desired RF AGC parameter *****/
+ i2cseq[0] = 0x1c; /* Set Wideband Detector Current (100 uA) */
+ i2cseq[1] = 0x00;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x2c, i2cseq, 2);
+
+ i2cseq[0] = 0xC0; /* Set RF AGC Threshold (-32.5dBm) */
+ i2cseq[1] = 0x13;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x36, i2cseq, 2);
+
+ i2cseq[0] = 0x6f; /* RF AGC Parameter */
+ i2cseq[1] = 0x18;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x37, i2cseq, 2);
+
+ i2cseq[0] = 0x00; /* aditional VCO settings */
+ i2cseq[1] = 0x08;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x27, i2cseq, 2);
+
+ i2cseq[0] = 0x00; /* aditional PLL settings */
+ i2cseq[1] = 0x01;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x2a, i2cseq, 2);
+
+ i2cseq[0] = 0x0a; /* VCM correction */
+ i2cseq[1] = 0x40;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x34, i2cseq, 2);
+
+ return TUNER_OK;
+}
+
+
+
+/**
+ * tuner tune
+ * @param i_freq tuning frequency
+ * @param i_bandwidth channel bandwidth
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int tuneTua9001 (long i_freq, tunerDriverBW_t i_bandwidth)
+{
+ char i2cseq[2];
+ unsigned int divider_factor;
+ unsigned int ch_offset;
+ unsigned int counter;
+ unsigned int lo_path_settings;
+ tunerReceiverState_t tunerState;
+
+
+
+ /* de-assert RXEN >> IDLE STATE */
+ setRXEN (L_LEVEL);
+
+
+ /* calculate divider factor */
+ if (i_freq < 1000000) /* divider factor and channel offset for UHF/VHF III */
+ {
+ ch_offset = 0x1C20; /* channel offset 150 MHz */
+ divider_factor = (unsigned int) (((i_freq - 150000) * 48) / 1000);
+ lo_path_settings = 0xb6de;
+ }
+
+ else /* calculate divider factor for L-Band Frequencies */
+ {
+ ch_offset = 0x5460; /* channel offset 450 MHz */
+ divider_factor = (unsigned int) (((i_freq - 450000) * 48) / 1000);
+ lo_path_settings = 0xbede;
+ }
+
+
+ // Set LO Path
+ i2cseq[0] = lo_path_settings >> 8;
+ i2cseq[1] = lo_path_settings & 0xff;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x2b, i2cseq, 2);
+
+ // Set channel offset
+ i2cseq [0] = ch_offset >> 8;
+ i2cseq [1] = ch_offset & 0xff;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x20, i2cseq, 2);
+
+ // Set Frequency
+ i2cseq [0] = divider_factor >> 8;
+ i2cseq [1] = divider_factor & 0xff;
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x1f, i2cseq, 2);
+
+ // Set bandwidth
+
+ i2cseq [0] = 0;
+ switch (i_bandwidth)
+ {
+ case TUNER_BANDWIDTH_8MHZ: i2cseq [0] |= TUNERs_TUA9001_BW_8;
+ break;
+ case TUNER_BANDWIDTH_7MHZ: i2cseq [0] |= TUNERs_TUA9001_BW_7;
+ break;
+ case TUNER_BANDWIDTH_6MHZ: i2cseq [0] |= TUNERs_TUA9001_BW_6;
+ break;
+ case TUNER_BANDWIDTH_5MHZ: i2cseq [0] |= TUNERs_TUA9001_BW_5;
+ break;
+ }
+
+ i2cBusWrite (TUNERs_TUA9001_DEVADDR, 0x04, i2cseq, 2);
+
+ /* assert RXEN >> RX STATE */
+ setRXEN (H_LEVEL);
+
+ /* This is to wait for the RX state to settle .. wait until RX mode is reached */
+ counter = 5;
+ do
+ {
+ counter --;
+ waitloop (1000); /* wait for 1 mS */
+ }while ((counter));
+
+
+ return TUNER_OK;
+}
+
+
+/**
+ * Get pll locked state
+ * @param o_pll pll locked state
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int getPllLockedStateTua9001 (tunerPllLocked_t *o_pll)
+{
+ char i2cseq[2];
+
+ i2cBusRead (TUNERs_TUA9001_DEVADDR, 0x69, i2cseq, 2); /* get current register value */
+
+ o_pll[0] = (i2cseq[1] & 0x08) ? PLL_LOCKED : PLL_NOT_LOCKED;
+
+ return TUNER_OK;
+}
+
+
+/**
+ * Get tuner state
+ * @param o_tunerState tuner state
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int getReceiverStateTua9001 (tunerReceiverState_t *o_tunerState)
+{
+ char i2cseq[2];
+
+ i2cBusRead (TUNERs_TUA9001_DEVADDR, 0x70, i2cseq, 2); /* get current register value */
+
+ switch (i2cseq[1] & ~0x1f)
+ {
+ case 0x80: o_tunerState [0] = IDLE; break;
+ case 0x40: o_tunerState [0] = RX; break;
+ case 0x20: o_tunerState [0] = STANDBY;
+ }
+
+ return TUNER_OK;
+}
+
+
+/**
+ * Get active input
+ * @param o_activeInput active input info
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int getActiveInputTua9001 (tunerActiveInput_t *o_activeInput)
+{
+ char i2cseq[2];
+
+ i2cBusRead (TUNERs_TUA9001_DEVADDR, 0x71, i2cseq, 2); /* get current register value */
+
+ switch (i2cseq[1] & ~0x0f)
+ {
+ case 0x80: o_activeInput [0] = L_INPUT_ACTIVE; break;
+ case 0x20: o_activeInput [0] = UHF_INPUT_ACTIVE; break;
+ case 0x10: o_activeInput [0] = VHF_INPUT_ACTIVE;
+ }
+
+ return TUNER_OK;
+}
+
+
+/**
+ * Get baseband gain value
+ * @param o_basebandGain baseband gain value
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int getBasebandGainTua9001 (char *o_basebandGain)
+{
+ char i2cseq[2];
+
+ i2cBusRead (TUNERs_TUA9001_DEVADDR, 0x72, i2cseq, 2); /* get current register value */
+ o_basebandGain [0] = i2cseq [1];
+
+ return TUNER_OK;
+}
diff --git a/api/driver_tua9001.h b/api/driver_tua9001.h
new file mode 100644
index 0000000..75e8c8a
--- /dev/null
+++ b/api/driver_tua9001.h
@@ -0,0 +1,112 @@
+/* ============================================================================
+** Copyright (C) 1997-2007 Infineon AG All rights reserved.
+** ============================================================================
+**
+** ============================================================================
+** Revision Information :
+** File name: driver_tua9001.h
+** Version:
+** Date:
+**
+** ============================================================================
+** History:
+**
+** Date Author Comment
+** ----------------------------------------------------------------------------
+**
+** 2007.11.06 Walter Pichler created.
+** ============================================================================
+*/
+
+
+/*============================================================================
+ Named Constants Definitions
+============================================================================*/
+
+#define TUNER_OK 0
+#define TUNER_ERR 0xff
+
+#define H_LEVEL 1
+#define L_LEVEL 0
+
+
+/*============================================================================
+ Types definition
+============================================================================*/
+
+
+typedef enum {
+ TUNER_BANDWIDTH_8MHZ,
+ TUNER_BANDWIDTH_7MHZ,
+ TUNER_BANDWIDTH_6MHZ,
+ TUNER_BANDWIDTH_5MHZ,
+ } tunerDriverBW_t;
+
+
+typedef enum {
+ PLL_LOCKED,
+ PLL_NOT_LOCKED
+ }tunerPllLocked_t;
+
+
+typedef enum {
+ STANDBY,
+ IDLE,
+ RX
+ } tunerReceiverState_t;
+
+
+typedef enum {
+ L_INPUT_ACTIVE,
+ UHF_INPUT_ACTIVE,
+ VHF_INPUT_ACTIVE
+ } tunerActiveInput_t;
+
+
+
+/*============================================================================
+ Public functions
+============================================================================*/
+
+/**
+ * tuner initialisation
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+extern int initializeTua9001 (void);
+
+
+/**
+ * tuner tune
+ * @param i_freq tuning frequency
+ * @param i_bandwidth channel bandwidth
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+extern int tuneTua9001 (long i_freq, tunerDriverBW_t i_bandwidth);
+
+
+/**
+ * Get tuner state
+ * @param o_tunerState tuner state
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+extern int getReceiverStateTua9001 (tunerReceiverState_t *o_tunerState);
+
+/**
+ * Get active input
+ * @param o_activeInput active input info
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+extern int getActiveInputTua9001 (tunerActiveInput_t *o_activeInput);
+
+
+/**
+ * Get baseband gain value
+ * @param o_basebandGain baseband gain value
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+extern int getBasebandGainTua9001 (char *o_basebandGain);
diff --git a/api/driver_tua9001_NeededFunctions.h b/api/driver_tua9001_NeededFunctions.h
new file mode 100644
index 0000000..ad9e555
--- /dev/null
+++ b/api/driver_tua9001_NeededFunctions.h
@@ -0,0 +1,77 @@
+/*========================================================================================================================
+ additional needed external funtions ( have to be provided by the user! )
+========================================================================================================================*/
+
+/**
+ * set / reset tuner reset input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setRESETN (unsigned int i_state);
+
+
+
+/**
+ * set / reset tuner receive enable input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setRXEN (unsigned int i_state);
+
+
+
+/**
+ * set / reset tuner chiop enable input
+ * @param i_state level
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int setCEN (unsigned int i_state);
+
+
+
+/**
+ * waitloop
+ * @param i_looptime * 1uS
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int waitloop (unsigned int i_looptime);
+
+
+/**
+ * i2cBusWrite
+ * @param deviceAdress chip address
+ * @param registerAdress register address
+ * @param *date pointer to data source
+ * @param length number of bytes to transmit
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int i2cBusWrite (unsigned char deviceAddress, unsigned char registerAddress, char *date, unsigned int length);
+
+
+
+/**
+ * i2cBusRead
+ * @param deviceAdress chip address
+ * @param registerAdress register address
+ * @param *date pointer to data destination
+ * @param length number of bytes to read
+ * @retval TUNER_OK No error
+ * @retval TUNER__ERROR Error
+*/
+
+int i2cBusRead (unsigned char deviceAddress, unsigned char registerAddress, char *date, unsigned int length);
+
+
+/*========================================================================================================================
+ end of additional needed external funtions
+========================================================================================================================*/
diff --git a/api/e4000.c b/api/e4000.c
new file mode 100644
index 0000000..0b41e43
--- /dev/null
+++ b/api/e4000.c
@@ -0,0 +1,859 @@
+/**
+ * @(#)Afa_E4000.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "standard.h"
+
+
+extern Demodulator* E4000_demodulator;
+extern Byte E4000_chip;
+extern Dword Ref_clk;
+extern Dword E4000_frequency;
+extern Word E4000_bandwidth;
+
+/****************************************************************************\
+* Function: tunerreset
+*
+* Detailed Description:
+* The function resets the E4000 tuner. (Register 0x00).
+*
+\****************************************************************************/
+
+Dword E4000_tunerreset (
+
+ )
+{
+ Dword error = 0;
+ Byte buffer[1];
+ buffer[0] = 0x01;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x00, 1, buffer);
+ return (Error_NO_ERROR);
+}
+
+/****************************************************************************\
+* Function: Tunerclock
+*
+* Detailed Description:
+* The function configures the E4000 clock. (Register 0x06, 0x7a).
+* Function enablesa CMOS clock - values can be modified to disable if required.
+\****************************************************************************/
+
+Dword E4000_Tunerclock()
+{
+ Dword error = 0;
+ Byte buffer[1];
+ buffer[0] = 0x06;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x06, 1, buffer);
+ //buffer[0] = 0x96;
+ // error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x7a, 1, buffer);
+ //**Modify commands above with value required if output clock is not required,
+ return (Error_NO_ERROR);
+}
+
+/****************************************************************************\
+* Function: filtercal
+*
+* Detailed Description:
+* Instructs RC filter calibration. (Register 0x7b).
+*
+\****************************************************************************/
+
+//Dword filtercal()
+//{
+// Dword error = 0;
+// Byte buffer[1];
+// buffer[0] = 0x01;
+// error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x7b, 1, buffer);
+// return (Error_NO_ERROR);
+//}
+/****************************************************************************\
+* Function: Qpeak()
+*
+* Detailed Description:
+* The function configures the E4000 gains.
+* Also sigma delta controller. (Register 0x82).
+*
+\****************************************************************************/
+Dword E4000_Qpeak()
+{
+ Dword error = 0;
+ Byte buffer[2];
+ buffer[0] = 0x01;
+ buffer[1]=0xfe;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x7e, 2, buffer);
+ buffer[0] = 0x00;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x82, 1, buffer);
+ buffer[0] = 0x05;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x24, 1, buffer);
+ buffer[0] = 0x20;
+ buffer[1]=0x01;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x87, 2, buffer);
+ buffer[0] = 0x7f;
+ buffer[1]=0x07;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x9f, 2, buffer);
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: PLL
+*
+* Detailed Description:
+* Configures E4000 PLL divider & sigma delta. 0x0d,0x09, 0x0a, 0x0b).
+*
+\****************************************************************************/
+
+Dword E4000_PLL()
+{
+ //printf("freq=%d", E4000_frequency);
+ //printf("ref clock=%d", Ref_clk);
+ Dword VCO_freq;
+ Dword error = 0;
+ Byte buffer[5];
+ if (E4000_frequency<=72400)
+ {
+ buffer[4] = 15;
+ VCO_freq=E4000_frequency*48;
+ }
+ else if (E4000_frequency<=81200)
+ {
+ buffer[4] = 14;
+ VCO_freq=E4000_frequency*40;
+ }
+ else if (E4000_frequency<=108300)
+ {
+ buffer[4]=13;
+ VCO_freq=E4000_frequency*32;
+ }
+ else if (E4000_frequency<=162500)
+ {
+ buffer[4]=12;
+ VCO_freq=E4000_frequency*24;
+ }
+ else if (E4000_frequency<=216600)
+ {
+ buffer[4]=11;
+ VCO_freq=E4000_frequency*16;
+ }
+ else if (E4000_frequency<=325000)
+ {
+ buffer[4]=10;
+ VCO_freq=E4000_frequency*12;
+ }
+ else if (E4000_frequency<=350000)
+ {
+ buffer[4]=9;
+ VCO_freq=E4000_frequency*8;
+ }
+ else if (E4000_frequency<=432000)
+ {
+ buffer[4]=3;
+ VCO_freq=E4000_frequency*8;
+ }
+ else if (E4000_frequency<=700000)
+ {
+ buffer[4]=2;
+ VCO_freq=E4000_frequency*6;
+ }
+ else if (E4000_frequency<=1200000)
+ {
+ buffer[4]=1;
+ VCO_freq=E4000_frequency*4;
+ }
+ else
+ {
+ buffer[4]=0;
+ VCO_freq=E4000_frequency*2;
+ }
+
+ Dword divider;
+ Dword intVCOfreq;
+ Dword SigDel;
+ Dword SigDel2;
+ Dword SigDel3;
+ divider = VCO_freq / Ref_clk;
+
+ buffer[0]= divider;
+ intVCOfreq = divider * Ref_clk;
+
+ SigDel=65536 * (VCO_freq - intVCOfreq) / Ref_clk;
+
+if (SigDel<=512)
+{
+ SigDel = 512;
+}
+else if (SigDel>=65024)
+{
+ SigDel=65024;
+}
+SigDel2 = SigDel / 256;
+
+buffer[2] = SigDel2;
+SigDel3 = SigDel - (256 * SigDel2);
+
+buffer[1]= SigDel3;
+buffer[3]=0;
+error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x09, 5, buffer);
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: LNAfilter
+*
+* Detailed Description:
+* The function configures the E4000 LNA filter. (Register 0x10).
+*
+\****************************************************************************/
+
+Dword E4000_LNAfilter()
+{
+ Dword error = 0;
+ Byte buffer[1];
+ if(E4000_frequency<=370000)
+ {
+ buffer[0]=0;
+ }
+else if(E4000_frequency<=392500)
+ {
+ buffer[0]=1;
+ }
+ else if(E4000_frequency<=415000)
+ {
+ buffer[0] =2;
+ }
+ else if(E4000_frequency<=437500)
+ {
+ buffer[0]=3;
+ }
+ else if(E4000_frequency<=462500)
+ {
+ buffer[0]=4;
+ }
+ else if(E4000_frequency<=490000)
+ {
+ buffer[0]=5;
+ }
+ else if(E4000_frequency<=522500)
+ {
+ buffer[0]=6;
+ }
+ else if(E4000_frequency<=557500)
+ {
+ buffer[0]=7;
+ }
+ else if(E4000_frequency<=595000)
+ {
+ buffer[0]=8;
+ }
+ else if(E4000_frequency<=642500)
+ {
+ buffer[0]=9;
+ }
+else if(E4000_frequency<=695000)
+ {
+ buffer[0]=10;
+ }
+else if(E4000_frequency<=740000)
+ {
+ buffer[0]=11;
+ }
+else if(E4000_frequency<=800000)
+ {
+ buffer[0]=12;
+ }
+else if(E4000_frequency<=865000)
+ {
+ buffer[0] =13;
+ }
+else if(E4000_frequency<=930000)
+ {
+ buffer[0]=14;
+ }
+else if(E4000_frequency<=1000000)
+ {
+ buffer[0]=15;
+ }
+else if(E4000_frequency<=1310000)
+ {
+ buffer[0]=0;
+ }
+else if(E4000_frequency<=1340000)
+ {
+ buffer[0]=1;
+ }
+else if(E4000_frequency<=1385000)
+ {
+ buffer[0]=2;
+ }
+else if(E4000_frequency<=1427500)
+ {
+ buffer[0]=3;
+ }
+else if(E4000_frequency<=1452500)
+ {
+ buffer[0]=4;
+ }
+else if(E4000_frequency<=1475000)
+ {
+ buffer[0]=5;
+ }
+else if(E4000_frequency<=1510000)
+ {
+ buffer[0]=6;
+ }
+else if(E4000_frequency<=1545000)
+ {
+ buffer[0]=7;
+ }
+else if(E4000_frequency<=1575000)
+ {
+ buffer[0] =8;
+ }
+else if(E4000_frequency<=1615000)
+ {
+ buffer[0]=9;
+ }
+else if(E4000_frequency<=1650000)
+ {
+ buffer[0] =10;
+ }
+else if(E4000_frequency<=1670000)
+ {
+ buffer[0]=11;
+ }
+else if(E4000_frequency<=1690000)
+ {
+ buffer[0]=12;
+ }
+else if(E4000_frequency<=1710000)
+ {
+ buffer[0]=13;
+ }
+else if(E4000_frequency<=1735000)
+ {
+ buffer[0]=14;
+ }
+else
+ {
+ buffer[0]=15;
+ }
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x10, 1, buffer);
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: IFfilter
+*
+* Detailed Description:
+* The function configures the E4000 IF filter. (Register 0x11,0x12).
+*
+\****************************************************************************/
+Dword E4000_IFfilter()
+{
+ Dword error = 0;
+ Byte buffer[2];
+ Word IF_BW;
+ IF_BW = E4000_bandwidth / 2;
+ if(IF_BW<=2150)
+ {
+ buffer[0]=0xfd;
+ buffer[1]=0x1f;
+ }
+ else if(IF_BW<=2200)
+ {
+ buffer[0]=0xfd;
+ buffer[1]=0x1e;
+ }
+ else if(IF_BW<=2240)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x1d;
+ }
+ else if(IF_BW<=2280)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x1c;
+ }
+ else if(IF_BW<=2300)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x1b;
+ }
+ else if(IF_BW<=2400)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x1a;
+ }
+ else if(IF_BW<=2450)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x19;
+ }
+ else if(IF_BW<=2500)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x18;
+ }
+ else if(IF_BW<=2550)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x17;
+ }
+ else if(IF_BW<=2600)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x16;
+ }
+ else if(IF_BW<=2700)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x15;
+ }
+ else if(IF_BW<=2750)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x14;
+ }
+ else if(IF_BW<=2800)
+ {
+ buffer[0]=0xfc;
+ buffer[1]=0x13;
+ }
+ else if(IF_BW<=2900)
+ {
+ buffer[0]==0xfb;
+ buffer[1]=0x12;
+ }
+ else if(IF_BW<=2950)
+ {
+ buffer[0]=0xfb;
+ buffer[1]=0x11;
+ }
+ else if(IF_BW<=3000)
+ {
+ buffer[0]=0xfb;
+ buffer[1]=0x10;
+ }
+ else if(IF_BW<=3100)
+ {
+ buffer[0]=0xfb;
+ buffer[1]=0x0f;
+ }
+ else if(IF_BW<=3200)
+ {
+ buffer[0]=0xfa;
+ buffer[1]=0x0e;
+ }
+ else if(IF_BW<=3300)
+ {
+ buffer[0]=0xfa;
+ buffer[1]=0x0d;
+ }
+ else if(IF_BW<=3400)
+ {
+ buffer[0]=0xf9;
+ buffer[1]=0x0c;
+ }
+ else if(IF_BW<=3600)
+ {
+ buffer[0]=0xf9;
+ buffer[1]=0x0b;
+ }
+ else if(IF_BW<=3700)
+ {
+ buffer[0]=0xf9;
+ buffer[1]=0x0a;
+ }
+ else if(IF_BW<=3800)
+ {
+ buffer[0]=0xf8;
+ buffer[1]=0x09;
+ }
+ else if(IF_BW<=3900)
+ {
+ buffer[0]=0xf8;
+ buffer[1]=0x08;
+ }
+ else if(IF_BW<=4100)
+ {
+ buffer[0]=0xf8;
+ buffer[1]=0x07;
+ }
+ else if(IF_BW<=4300)
+ {
+ buffer[0]=0xf7;
+ buffer[1]=0x06;
+ }
+ else if(IF_BW<=4400)
+ {
+ buffer[0]=0xf7;
+ buffer[1]=0x05;
+ }
+ else if(IF_BW<=4600)
+ {
+ buffer[0]=0xf7;
+ buffer[1]=0x04;
+ }
+ else if(IF_BW<=4800)
+ {
+ buffer[0]=0xf6;
+ buffer[1]=0x03;
+ }
+ else if(IF_BW<=5000)
+ {
+ buffer[0]=0xf6;
+ buffer[1]=0x02;
+ }
+ else if(IF_BW<=5300)
+ {
+ buffer[0]=0xf5;
+ buffer[1]=0x01;
+ }
+ else if(IF_BW<=5500)
+ {
+ buffer[0]=0xf5;
+ buffer[1]=0x00;
+ }
+ else
+ {
+ buffer[0]=0x00;
+ buffer[1]=0x20;
+ }
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x11, 2, buffer);
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: freqband
+*
+* Detailed Description:
+* Configures the E4000 frequency band. (Registers 0x07, 0x78).
+*
+\****************************************************************************/
+Dword E4000_freqband()
+{
+ Dword error = 0;
+ Byte buffer[1];
+ if (E4000_frequency<=140000)
+ {
+ buffer[0] = 1;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x07, 1, buffer);
+ buffer[0] = 3;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x78, 1, buffer);
+ }
+ else if (E4000_frequency<=350000)
+ {
+ buffer[0] = 3;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x07, 1, buffer);
+ buffer[0] = 3;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x78, 1, buffer);
+ }
+ else if (E4000_frequency<=1000000)
+ {
+ buffer[0] = 5;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x07, 1, buffer);
+ buffer[0] = 3;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x78, 1, buffer);
+ }
+ else
+ {
+ buffer[0] = 7;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x07, 1, buffer);
+ buffer[0] = 0;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x78, 1, buffer);
+ }
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: DCoffLUT
+*
+* Detailed Description:
+* Populates DC offset LUT. (Registers 0x50 - 0x53, 0x60 - 0x63).
+*
+\****************************************************************************/
+Dword E4000_DCoffLUT()
+{
+ Word IOFF;
+ Word QOFF;
+ Word RANGE1;
+ Word RANGE2;
+ Word QRANGE;
+ Word IRANGE;
+ Dword error = 0;
+ Byte buffer[3];
+ buffer[0] = 0x00;
+ buffer[1] = 0x7e;
+ buffer[2] = 0x24;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x15, 3, buffer);
+ // Sets mixer & IF stage 1 gain = 00 and IF stg 2+ to max gain.
+ buffer[0] = 0x01;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x29, 1, buffer);
+ // Instructs a DC offset calibration.
+ error = Standard_readTunerRegisters (E4000_demodulator, 0, 0x2a, 3, buffer);
+ //printf("\n2a=%d",buffer[0]);
+ //printf("\n2b=%d",buffer[1]);
+ //printf("\n2c=%d",buffer[2]);
+ IOFF=buffer[0];
+ QOFF=buffer[1];
+ RANGE1=buffer[2];
+ //reads DC offset values back
+ if(RANGE1>=32)
+ {
+ RANGE1 = RANGE1 -32;
+ }
+ if(RANGE1>=16)
+ {
+ RANGE1 = RANGE1 - 16;
+ }
+ IRANGE=RANGE1;
+ QRANGE = (buffer[2] - RANGE1) / 16;
+ buffer[0] = (IRANGE * 64) + IOFF;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x60, 1, buffer);
+ buffer[0] = (QRANGE * 64) + QOFF;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x50, 1, buffer);
+ // Populate DC offset LUT
+ buffer[0] = 0;
+ buffer[1] = 127;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x15, 2, buffer);
+ // Sets mixer & IF stage 1 gain = 01 leaving IF stg 2+ at max gain.
+ buffer[0]= 1;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x29, 1, buffer);
+ // Instructs a DC offset calibration.
+ error = Standard_readTunerRegisters (E4000_demodulator, 0, 0x2a, 3, buffer);
+ //printf("\n2a=%d",buffer[0]);
+ //printf("\n2b=%d",buffer[1]);
+ //printf("\n2c=%d",buffer[2]);
+ IOFF=buffer[0];
+ QOFF=buffer[1];
+ RANGE1=buffer[2];
+ // Read DC offset values
+ if(RANGE1>=32)
+ {
+ RANGE1 = RANGE1 -32;
+ }
+ if(RANGE1>=16)
+ {
+ RANGE1 = RANGE1 - 16;
+ }
+ IRANGE = RANGE1;
+ QRANGE = (buffer[2] - RANGE1) / 16;
+ buffer[0] = (IRANGE * 64) + IOFF;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x61, 1, buffer);
+ buffer[0] = (QRANGE * 64) + QOFF;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x51, 1, buffer);
+ // Populate DC offset LUT
+ buffer[0] = 0x01;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x15, 1, buffer);
+ // Sets mixer & IF stage 1 gain = 11 leaving IF stg 2+ at max gain.
+ buffer[0] = 1;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x29, 1, buffer);
+ // Instructs a DC offset calibration.
+ error = Standard_readTunerRegisters (E4000_demodulator, 0, 0x2a, 3, buffer);
+ //printf("\n2a=%d",buffer[0]);
+ //printf("\n2b=%d",buffer[1]);
+ //printf("\n2c=%d",buffer[2]);
+ IOFF=buffer[0];
+ QOFF=buffer[1];
+ RANGE1 = buffer[2];
+ // Read DC offset values
+ if(RANGE1>=32)
+ {
+ RANGE1 = RANGE1 -32;
+ }
+ if(RANGE1>=16)
+ {
+ RANGE1 = RANGE1 - 16;
+ }
+ IRANGE = RANGE1;
+ QRANGE = (buffer[2] - RANGE1) / 16;
+ buffer[0] = (IRANGE * 64) + IOFF;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x63, 1, buffer);
+ buffer[0] = (QRANGE * 64) + QOFF;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x53, 1, buffer);
+ // Populate DC offset LUT
+ buffer[0] = 0x7e;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x16, 1, buffer);
+ // Sets mixer & IF stage 1 gain = 11 leaving IF stg 2+ at max gain.
+ buffer[0] = 0x01;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x29, 1, buffer);
+ // Instructs a DC offset calibration.
+ error = Standard_readTunerRegisters (E4000_demodulator, E4000_chip, 0x2a, 3, buffer);
+ //printf("\n2a=%d",buffer[0]);
+ //printf("\n2b=%d",buffer[1]);
+ //printf("\n2c=%d",buffer[2]);
+ IOFF=buffer[0];
+ QOFF=buffer[1];
+ RANGE1=buffer[2];
+ // Read DC offset values
+ if(RANGE1>=32)
+ {
+ RANGE1 = RANGE1 -32;
+ }
+ if(RANGE1>=16)
+ {
+ RANGE1 = RANGE1 - 16;
+ }
+ IRANGE = RANGE1;
+ QRANGE = (buffer[2] - RANGE1) / 16;
+ buffer[0]=(IRANGE * 64) + IOFF;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x62, 1, buffer);
+ buffer[0] = (QRANGE * 64) + QOFF;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x52, 1, buffer);
+ // Populate DC offset LUT
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: DCoffloop
+*
+* Detailed Description:
+* Populates DC offset LUT. (Registers 0x2d, 0x70, 0x71).
+* Turns on DC offset LUT and time varying DC offset.
+\****************************************************************************/
+Dword E4000_DCoffloop()
+{
+ Dword error = 0;
+ Byte buffer[2];
+ buffer[0] = 0x1f;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x2d, 1, buffer);
+ buffer[0] = 0x01;
+ buffer[1] = 0x01;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x70, 2, buffer);
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: commonmode
+*
+* Detailed Description:
+* Configures common mode voltage. (Registers 0x2f).
+*
+\****************************************************************************/
+//Dword E4000_commonmode()
+//{
+// //Dword error = 0;
+// //Byte buffer[1];
+// //buffer[0] = 0;
+// //error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x2f, 1, buffer);
+// // Sets 550mV. Modify if alternative is desired.
+// return (Error_NO_ERROR);
+//}
+/****************************************************************************\
+* Function: GainControlinit
+*
+* Detailed Description:
+* Configures gain control mode. (Registers 0x1d, 0x1e, 0x1f, 0x20, 0x21,
+* 0x1a, 0x74h, 0x75h).
+* User may wish to modify values depending on usage scenario.
+* Routine configures LNA: autonomous gain control
+* IF PWM gain control.
+* PWM thresholds = default
+* Mixer: switches when LNA gain =7.5dB
+* Sensitivity / Linearity mode: manual switch
+*
+\****************************************************************************/
+Dword E4000_GainControlinit()
+{
+ Dword sum=255;
+ Dword error = 0;
+ Byte buffer[5];
+ buffer[0] = 0x17;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1a, 1, buffer);
+ buffer[0] = 0x24;
+ buffer[1] = 0x06;
+ buffer[2] = 0x1a;
+ buffer[3] = 0x0f;
+ buffer[4] = 0x00;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1d, 5, buffer);
+ error = Standard_readTunerRegisters (E4000_demodulator, 0, 0x1b, 1, buffer);
+ if (buffer[0]<=sum)
+ {
+ sum=buffer[0];
+ }
+ //printf("sum1=%d",sum);
+ buffer[0]=0x1a;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1f, 1, buffer);
+ error = Standard_readTunerRegisters (E4000_demodulator, 0, 0x1b, 1, buffer);
+ if (buffer[0]<=sum)
+ {
+ sum=buffer[0];
+ }
+ // printf("sum2=%d",sum);
+ buffer[0]=0x1a;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1f, 1, buffer);
+ error = Standard_readTunerRegisters (E4000_demodulator, 0, 0x1b, 1, buffer);
+ if (buffer[0]<=sum)
+ {
+ sum=buffer[0];
+ }
+ // printf("sum3=%d",sum);
+ buffer[0]=0x1a;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1f, 1, buffer);
+ error = Standard_readTunerRegisters (E4000_demodulator, 0, 0x1b, 1, buffer);
+ if (buffer[0]<=sum)
+ {
+ sum=buffer[0];
+ }
+ //printf("sum4=%d",sum);
+ buffer[0]=0x1a;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1f, 1, buffer);
+ error = Standard_readTunerRegisters (E4000_demodulator, 0, 0x1b, 1, buffer);
+ if (buffer[0]<=sum)
+ {
+ sum=buffer[0];
+ }
+ //printf("sum5=%d",sum);
+ buffer[0]=sum;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1b, 1, buffer);
+ //buffer[0] = 0x03;
+ //buffer[1] = 0xfc;
+ //buffer[2] = 0x03;
+ //buffer[3] = 0xfc;
+ //error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x74, 4, buffer);
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: E4000_Gainmanual
+*
+* Detailed Description:
+* Sets gain to manualcontrol. (Register 0x1a).
+*
+\****************************************************************************/
+Dword E4000_Gainmanual()
+{
+ Dword error = 0;
+ Byte buffer[1];
+ buffer[0] = 0x00;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1a, 1, buffer);
+ return (Error_NO_ERROR);
+}
+/****************************************************************************\
+* Function: E4000_Gainauto
+*
+* Detailed Description:
+* Sets gain to manualcontrol. (Register 0x1a).
+*
+\****************************************************************************/
+Dword E4000_Gainauto()
+{
+ Dword error = 0;
+ Byte buffer[1];
+ buffer[0] = 0x17;
+ error = Standard_writeTunerRegisters (E4000_demodulator, E4000_chip, 0x1a, 1, buffer);
+ return (Error_NO_ERROR);
+}
diff --git a/api/e4000.h b/api/e4000.h
new file mode 100644
index 0000000..8da7579
--- /dev/null
+++ b/api/e4000.h
@@ -0,0 +1,15 @@
+Dword E4000_tunerreset ();
+Dword E4000_Tunerclock();
+//Dword E4000_filtercal();
+Dword E4000_Qpeak();
+Dword E4000_PLL();
+Dword E4000_LNAfilter();
+Dword E4000_IFfilter();
+Dword E4000_freqband();
+Dword E4000_DCoffLUT();
+Dword E4000_DCoffloop();
+//Dword E4000_commonmode();
+Dword E4000_GainControlinit();
+Dword E4000_Gainmanual();
+Dword E4000_Gainauto();
+
diff --git a/api/error.h b/api/error.h
new file mode 100644
index 0000000..c3343ca
--- /dev/null
+++ b/api/error.h
@@ -0,0 +1,147 @@
+#ifndef __ERROR_H__
+#define __ERROR_H__
+
+#define Error_NO_ERROR 0x00000000ul
+#define Error_RESET_TIMEOUT 0x00000001ul
+#define Error_WRITE_REG_TIMEOUT 0x00000002ul
+#define Error_WRITE_TUNER_TIMEOUT 0x00000003ul
+#define Error_WRITE_TUNER_FAIL 0x00000004ul
+#define Error_RSD_COUNTER_NOT_READY 0x00000005ul
+#define Error_VTB_COUNTER_NOT_READY 0x00000006ul
+#define Error_FEC_MON_NOT_ENABLED 0x00000007ul
+#define Error_INVALID_DEV_TYPE 0x00000008ul
+#define Error_INVALID_TUNER_TYPE 0x00000009ul
+#define Error_OPEN_FILE_FAIL 0x0000000Aul
+#define Error_WRITEFILE_FAIL 0x0000000Bul
+#define Error_READFILE_FAIL 0x0000000Cul
+#define Error_CREATEFILE_FAIL 0x0000000Dul
+#define Error_MALLOC_FAIL 0x0000000Eul
+#define Error_INVALID_FILE_SIZE 0x0000000Ful
+#define Error_INVALID_READ_SIZE 0x00000010ul
+#define Error_LOAD_FW_DONE_BUT_FAIL 0x00000011ul
+#define Error_NOT_IMPLEMENTED 0x00000012ul
+#define Error_NOT_SUPPORT 0x00000013ul
+#define Error_WRITE_MBX_TUNER_TIMEOUT 0x00000014ul
+#define Error_DIV_MORE_THAN_8_CHIPS 0x00000015ul
+#define Error_DIV_NO_CHIPS 0x00000016ul
+#define Error_SUPER_FRAME_CNT_0 0x00000017ul
+#define Error_INVALID_FFT_MODE 0x00000018ul
+#define Error_INVALID_CONSTELLATION_MODE 0x00000019ul
+#define Error_RSD_PKT_CNT_0 0x0000001Aul
+#define Error_FFT_SHIFT_TIMEOUT 0x0000001Bul
+#define Error_WAIT_TPS_TIMEOUT 0x0000001Cul
+#define Error_INVALID_BW 0x0000001Dul
+#define Error_INVALID_BUF_LEN 0x0000001Eul
+#define Error_NULL_PTR 0x0000001Ful
+#define Error_INVALID_AGC_VOLT 0x00000020ul
+#define Error_MT_OPEN_FAIL 0x00000021ul
+#define Error_MT_TUNE_FAIL 0x00000022ul
+#define Error_CMD_NOT_SUPPORTED 0x00000023ul
+#define Error_CE_NOT_READY 0x00000024ul
+#define Error_EMBX_INT_NOT_CLEARED 0x00000025ul
+#define Error_INV_PULLUP_VOLT 0x00000026ul
+#define Error_FREQ_OUT_OF_RANGE 0x00000027ul
+#define Error_INDEX_OUT_OF_RANGE 0x00000028ul
+#define Error_NULL_SETTUNER_PTR 0x00000029ul
+#define Error_NULL_INITSCRIPT_PTR 0x0000002Aul
+#define Error_INVALID_INITSCRIPT_LEN 0x0000002Bul
+#define Error_INVALID_POS 0x0000002Cul
+#define Error_BACK_TO_BOOTCODE_FAIL 0x0000002Dul
+#define Error_GET_BUFFER_VALUE_FAIL 0x0000002Eul
+#define Error_INVALID_REG_VALUE 0x0000002Ful
+#define Error_INVALID_INDEX 0x00000030ul
+#define Error_READ_TUNER_TIMEOUT 0x00000031ul
+#define Error_READ_TUNER_FAIL 0x00000032ul
+#define Error_UNDEFINED_SAW_BW 0x00000033ul
+#define Error_MT_NOT_AVAILABLE 0x00000034ul
+#define Error_NO_SUCH_TABLE 0x00000035ul
+#define Error_WRONG_CHECKSUM 0x00000036ul
+#define Error_INVALID_XTAL_FREQ 0x00000037ul
+#define Error_COUNTER_NOT_AVAILABLE 0x00000038ul
+#define Error_INVALID_DATA_LENGTH 0x00000039ul
+#define Error_BOOT_FAIL 0x0000003Aul
+#define Error_BUFFER_INSUFFICIENT 0x0000003Bul
+#define Error_NOT_READY 0x0000003Cul
+#define Error_DRIVER_INVALID 0x0000003Dul
+#define Error_INTERFACE_FAIL 0x0000003Eul
+#define Error_PID_FILTER_FULL 0x0000003Ful
+#define Error_OPERATION_TIMEOUT 0x00000040ul
+#define Error_LOADFIRMWARE_SKIPPED 0x00000041ul
+#define Error_REBOOT_FAIL 0x00000042ul
+#define Error_PROTOCOL_FORMAT_INVALID 0x00000043ul
+#define Error_ACTIVESYNC_ERROR 0x00000044ul
+#define Error_CE_READWRITEBUS_ERROR 0x00000045ul
+#define Error_CE_NODATA_ERROR 0x00000046ul
+#define Error_NULL_FW_SCRIPT 0x00000047ul
+#define Error_NULL_TUNER_SCRIPT 0x00000048ul
+
+/** Error Code of Gemini System */
+#define Error_INVALID_INDICATOR_TYPE 0x00000101ul
+#define Error_INVALID_SC_NUMBER 0x00000102ul
+#define Error_INVALID_SC_INFO 0x00000103ul
+#define Error_FIGBYPASS_FAIL 0x00000104ul
+
+/** Error Code of Firmware */
+#define Error_FIRMWARE_STATUS 0x01000000ul
+
+/** Error Code of I2C Module */
+#define Error_I2C_DATA_HIGH_FAIL 0x02001000ul
+#define Error_I2C_CLK_HIGH_FAIL 0x02002000ul
+#define Error_I2C_WRITE_NO_ACK 0x02003000ul
+#define Error_I2C_DATA_LOW_FAIL 0x02004000ul
+
+/** Error Code of USB Module */
+#define Error_USB_NULL_HANDLE 0x03010001ul
+#define Error_USB_WRITEFILE_FAIL 0x03000002ul
+#define Error_USB_READFILE_FAIL 0x03000003ul
+#define Error_USB_INVALID_READ_SIZE 0x03000004ul
+#define Error_USB_INVALID_STATUS 0x03000005ul
+#define Error_USB_INVALID_SN 0x03000006ul
+#define Error_USB_INVALID_PKT_SIZE 0x03000007ul
+#define Error_USB_INVALID_HEADER 0x03000008ul
+#define Error_USB_NO_IR_PKT 0x03000009ul
+#define Error_USB_INVALID_IR_PKT 0x0300000Aul
+#define Error_USB_INVALID_DATA_LEN 0x0300000Bul
+#define Error_USB_EP4_READFILE_FAIL 0x0300000Cul
+#define Error_USB_EP$_INVALID_READ_SIZE 0x0300000Dul
+#define Error_USB_BOOT_INVALID_PKT_TYPE 0x0300000Eul
+#define Error_USB_BOOT_BAD_CONFIG_HEADER 0x0300000Ful
+#define Error_USB_BOOT_BAD_CONFIG_SIZE 0x03000010ul
+#define Error_USB_BOOT_BAD_CONFIG_SN 0x03000011ul
+#define Error_USB_BOOT_BAD_CONFIG_SUBTYPE 0x03000012ul
+#define Error_USB_BOOT_BAD_CONFIG_VALUE 0x03000013ul
+#define Error_USB_BOOT_BAD_CONFIG_CHKSUM 0x03000014ul
+#define Error_USB_BOOT_BAD_CONFIRM_HEADER 0x03000015ul
+#define Error_USB_BOOT_BAD_CONFIRM_SIZE 0x03000016ul
+#define Error_USB_BOOT_BAD_CONFIRM_SN 0x03000017ul
+#define Error_USB_BOOT_BAD_CONFIRM_SUBTYPE 0x03000018ul
+#define Error_USB_BOOT_BAD_CONFIRM_VALUE 0x03000019ul
+#define Error_USB_BOOT_BAD_CONFIRM_CHKSUM 0x03000020ul
+#define Error_USB_BOOT_BAD_BOOT_HEADER 0x03000021ul
+#define Error_USB_BOOT_BAD_BOOT_SIZE 0x03000022ul
+#define Error_USB_BOOT_BAD_BOOT_SN 0x03000023ul
+#define Error_USB_BOOT_BAD_BOOT_PATTERN_01 0x03000024ul
+#define Error_USB_BOOT_BAD_BOOT_PATTERN_10 0x03000025ul
+#define Error_USB_BOOT_BAD_BOOT_CHKSUM 0x03000026ul
+#define Error_USB_INVALID_BOOT_PKT_TYPE 0x03000027ul
+#define Error_USB_BOOT_BAD_CONFIG_VAlUE 0x03000028ul
+#define Error_USB_COINITIALIZEEX_FAIL 0x03000029ul
+#define Error_USB_COCREATEINSTANCE_FAIL 0x0300003Aul
+#define Error_USB_COCREATCLSEENUMERATOR_FAIL 0x0300002Bul
+#define Error_USB_QUERY_INTERFACE_FAIL 0x0300002Cul
+#define Error_USB_PKSCTRL_NULL 0x0300002Dul
+#define Error_USB_INVALID_REGMODE 0x0300002Eul
+#define Error_USB_INVALID_REG_COUNT 0x0300002Ful
+#define Error_USB_INVALID_HANDLE 0x03000100ul
+#define Error_USB_WRITE_FAIL 0x03000200ul
+#define Error_USB_UNEXPECTED_WRITE_LEN 0x03000300ul
+#define Error_USB_READ_FAIL 0x03000400ul
+
+/** Error code of 9035U2I bridge*/
+#define Error_AF9035U2I 0x04000000ul
+
+/** Error code of Castor*/
+#define Error_CASTOR 0x70000000ul
+#define Error_CASTOR_BUS_NO_SUPPORT 0x00001000ul
+
+#endif \ No newline at end of file
diff --git a/api/fc2580.c b/api/fc2580.c
new file mode 100644
index 0000000..414ba27
--- /dev/null
+++ b/api/fc2580.c
@@ -0,0 +1,451 @@
+#include "fc2580.h"
+
+/*==============================================================================
+ FILE NAME : FC2580_driver_v1400.c
+
+ VERSION : 1.400
+
+ UPDATE : September 22. 2008
+
+==============================================================================*/
+
+/*==============================================================================
+ milisecond delay function EXTERNAL FUNCTION
+
+ This function is a generic function which write a byte into fc2580's
+ specific address.
+
+ <input parameter>
+
+ a
+ length of wanted delay in milisecond unit
+
+==============================================================================*/
+void wait_msec (unsigned long msec)
+{
+ User_delay (FCI_FC2580_demodulator, msec);
+}
+
+static fc2580_band_type curr_band = NO_BAND;
+static unsigned char data_0x02 = (USE_EXT_CLK<<5)|0x0E;
+
+/*==============================================================================
+
+ fc2580 i2c write
+
+ This function is a generic function which write a byte into fc2580's
+ specific address.
+
+ <input parameter>
+
+ addr
+ fc2580's memory address
+ type : byte
+
+ data
+ target data
+ type : byte
+
+==============================================================================*/
+void fc2580_i2c_write( unsigned char addr, unsigned char data )
+{
+ Standard_writeTunerRegisters (FCI_FC2580_demodulator, FCI_FC2580_chip, addr, 1, &data);
+}
+
+/*==============================================================================
+
+ fc2580 i2c read
+
+ This function is a generic function which gets called to read data from
+ fc2580's target memory address.
+
+ <input parameter>
+
+ addr
+ fc2580's memory address
+ type : byte
+
+
+ <return value>
+ data
+ a byte of data read out of target address 'addr'
+ type : byte
+
+==============================================================================*/
+unsigned char fc2580_i2c_read( unsigned char addr )
+{
+ Byte value;
+
+ Standard_readTunerRegisters (FCI_FC2580_demodulator, FCI_FC2580_chip, addr, 1, &value);
+ return (value);
+}
+
+/*==============================================================================
+ fc2580 I2C Test
+
+ This function is a generic function which tests I2C interface's availability
+
+ by reading out it's I2C id data from reg. address '0x01'.
+
+ <input parameter>
+
+ None
+
+ <return value>
+ int
+ 1 : success - communication is avilable
+ 0 : fail - communication is unavailable
+
+
+==============================================================================*/
+int fc2580_i2c_test( void )
+{
+ return ( fc2580_i2c_read( 0x01 ) == 0x56 )? 0x01 : 0x00;
+}
+
+
+/*==============================================================================
+ fc2580 initial setting
+
+ This function is a generic function which gets called to initialize
+
+ fc2580 in DVB-H mode or L-Band TDMB mode
+
+ <input parameter>
+
+ ifagc_mode
+ type : integer
+ 1 : Internal AGC
+ 2 : Voltage Control Mode
+
+==============================================================================*/
+void fc2580_set_init( int ifagc_mode )
+{
+ fc2580_i2c_write(0x00, 0x00); /*** Confidential ***/
+ fc2580_i2c_write(0x12, 0x86);
+ fc2580_i2c_write(0x14, 0x5C);
+ fc2580_i2c_write(0x16, 0x3C);
+ fc2580_i2c_write(0x1F, 0xD2);
+ fc2580_i2c_write(0x09, 0xD7);
+ fc2580_i2c_write(0x0B, 0xD5);
+ fc2580_i2c_write(0x0C, 0x32);
+ fc2580_i2c_write(0x0E, 0x43);
+ fc2580_i2c_write(0x21, 0x0A);
+ fc2580_i2c_write(0x22, 0x82);
+ if( ifagc_mode == 1 )
+ {
+ fc2580_i2c_write(0x45, 0x10); /** internal AGC */
+ fc2580_i2c_write(0x4C, 0x00); /** HOLD_AGC polarity */
+ }
+ else if( ifagc_mode == 2 )
+ {
+ fc2580_i2c_write(0x45, 0x20); /** Voltage Control Mode */
+ fc2580_i2c_write(0x4C, 0x02); /** HOLD_AGC polarity */
+ }
+ else if( ifagc_mode == 3 )
+ {
+ fc2580_i2c_write(0x45, 0x30); //Up/Down Control ( Digital AGC )
+ fc2580_i2c_write(0x4C, 0x02); //HOLD_AGC polarity
+ }
+ fc2580_i2c_write(0x3F, 0x88);
+ fc2580_i2c_write(0x02, 0x0E);
+ fc2580_i2c_write(0x58, 0x14);
+ fc2580_set_filter(8); /** BW = 7.8MHz */
+
+}
+
+/*==============================================================================
+ fc2580 frequency setting
+
+ This function is a generic function which gets called to change LO Frequency
+
+ of fc2580 in DVB-H mode or L-Band TDMB mode
+
+ <input parameter>
+
+ f_lo
+ Value of target LO Frequency in 'kHz' unit
+ ex) 2.6GHz = 2600000
+
+==============================================================================*/
+void fc2580_set_freq( unsigned int f_lo )
+{
+ unsigned int f_diff, f_diff_shifted, n_val, k_val;
+ unsigned int f_vco, r_val, f_comp;
+ unsigned char pre_shift_bits = 4; /** number of preshift to prevent overflow in shifting f_diff to f_diff_shifted */
+ unsigned char data_0x18;
+
+ fc2580_band_type band = ( f_lo > 1000000 )? L_BAND : ( f_lo > 400000 )? UHF_BAND : VHF_BAND;
+
+ f_vco = ( band == UHF_BAND )? f_lo * 4 : (( band == L_BAND )? f_lo * 2 : f_lo * 12);
+ r_val = ( f_vco >= 2*76*FREQ_XTAL )? 1 : ( f_vco >= 76*FREQ_XTAL )? 2 : 4;
+ f_comp = FREQ_XTAL/r_val;
+ n_val = ( f_vco / 2 ) / f_comp;
+
+ f_diff = f_vco - 2* f_comp * n_val;
+ f_diff_shifted = f_diff << ( 20 - pre_shift_bits );
+ k_val = f_diff_shifted / ( ( 2* f_comp ) >> pre_shift_bits );
+
+ if( f_diff_shifted - k_val * ( ( 2* f_comp ) >> pre_shift_bits ) >= ( f_comp >> pre_shift_bits ) )
+ k_val = k_val + 1;
+
+ if( f_vco >= BORDER_FREQ ) /** Select VCO Band */
+ data_0x02 = data_0x02 | 0x08; /** 0x02[3] = 1; */
+ else
+ data_0x02 = data_0x02 & 0xF7; /** 0x02[3] = 0; */
+
+ //if( band != curr_band ) {
+ switch(band)
+ {
+ case UHF_BAND:
+ data_0x02 = (data_0x02 & 0x3F);
+
+ fc2580_i2c_write(0x25, 0xF0);
+ fc2580_i2c_write(0x27, 0x77);
+ fc2580_i2c_write(0x28, 0x53);
+ fc2580_i2c_write(0x29, 0x60);
+ fc2580_i2c_write(0x30, 0x09);
+ fc2580_i2c_write(0x50, 0x8C);
+ fc2580_i2c_write(0x53, 0x50);
+
+ if( f_lo < 538000 )
+ fc2580_i2c_write(0x5F, 0x13);
+ else
+ fc2580_i2c_write(0x5F, 0x15);
+
+ if( f_lo < 538000 )
+ {
+ fc2580_i2c_write(0x61, 0x07);
+ fc2580_i2c_write(0x62, 0x06);
+ fc2580_i2c_write(0x67, 0x06);
+ fc2580_i2c_write(0x68, 0x08);
+ fc2580_i2c_write(0x69, 0x10);
+ fc2580_i2c_write(0x6A, 0x12);
+ }
+ else if( f_lo < 794000 )
+ {
+ fc2580_i2c_write(0x61, 0x03);
+ fc2580_i2c_write(0x62, 0x03);
+ fc2580_i2c_write(0x67, 0x07);
+ fc2580_i2c_write(0x68, 0x08);
+ fc2580_i2c_write(0x69, 0x0C);
+ fc2580_i2c_write(0x6A, 0x0E);
+ }
+ else
+ {
+ fc2580_i2c_write(0x61, 0x07);
+ fc2580_i2c_write(0x62, 0x06);
+ fc2580_i2c_write(0x67, 0x07);
+ fc2580_i2c_write(0x68, 0x09);
+ fc2580_i2c_write(0x69, 0x10);
+ fc2580_i2c_write(0x6A, 0x12);
+ }
+
+ fc2580_i2c_write(0x63, 0x15);
+
+ fc2580_i2c_write(0x6B, 0x0F);
+ fc2580_i2c_write(0x6C, 0x11);
+ fc2580_i2c_write(0x6D, 0x78);
+ fc2580_i2c_write(0x6E, 0x32);
+ fc2580_i2c_write(0x6F, 0x14);
+ /*fc2580_set_filter(8);*/ /** BW = 7.8MHz */
+ break;
+ case VHF_BAND:
+ data_0x02 = (data_0x02 & 0x3F) | 0x80;
+ fc2580_i2c_write(0x27, 0x77);
+ fc2580_i2c_write(0x28, 0x33);
+ fc2580_i2c_write(0x29, 0x40);
+ fc2580_i2c_write(0x50, 0x40);
+ fc2580_i2c_write(0x53, 0x18);
+ fc2580_i2c_write(0x5F, 0x0F);
+ fc2580_i2c_write(0x61, 0x07);
+ fc2580_i2c_write(0x62, 0x00);
+ fc2580_i2c_write(0x63, 0x15);
+ fc2580_i2c_write(0x67, 0x03);
+ fc2580_i2c_write(0x68, 0x05);
+ fc2580_i2c_write(0x69, 0x10);
+ fc2580_i2c_write(0x6A, 0x12);
+ fc2580_i2c_write(0x6B, 0x0F);
+ fc2580_i2c_write(0x6C, 0x11);
+ fc2580_i2c_write(0x6D, 0x78);
+ fc2580_i2c_write(0x6E, 0x32);
+ fc2580_i2c_write(0x6F, 0x54);
+ /*fc2580_set_filter(7);*/ /** BW = 6.8MHz */
+ break;
+ case L_BAND:
+ data_0x02 = (data_0x02 & 0x3F) | 0x40;
+ fc2580_i2c_write(0x2B, 0x70);
+ fc2580_i2c_write(0x2C, 0x37);
+ fc2580_i2c_write(0x2D, 0xE7);
+ fc2580_i2c_write(0x44, 0x20);
+ fc2580_i2c_write(0x50, 0x40);
+ fc2580_i2c_write(0x53, 0x18);
+ fc2580_i2c_write(0x5F, 0x0F);
+ fc2580_i2c_write(0x61, 0x0F);
+ fc2580_i2c_write(0x62, 0x00);
+ fc2580_i2c_write(0x63, 0x13);
+ fc2580_i2c_write(0x67, 0x00);
+ fc2580_i2c_write(0x68, 0x02);
+ fc2580_i2c_write(0x69, 0x0F);
+ fc2580_i2c_write(0x6A, 0x11);
+ fc2580_i2c_write(0x6B, 0x0F);
+ fc2580_i2c_write(0x6C, 0x11);
+ fc2580_i2c_write(0x6D, 0xA0);
+ fc2580_i2c_write(0x6E, 0x50);
+ fc2580_i2c_write(0x6F, 0x14);
+ /*fc2580_set_filter(1);*/ /** BW = 1.53MHz */
+ break;
+ default:
+ break;
+ }
+ curr_band = band;
+ //}
+
+ /** A command about AGC clock's pre-divide ratio */
+ if( FREQ_XTAL >= 28000 )
+ fc2580_i2c_write( 0x4B, 0x22 );
+
+ /** Commands about VCO Band and PLL setting. */
+ fc2580_i2c_write(0x02, data_0x02);
+ data_0x18 = ( ( r_val == 1 )? 0x00 : ( ( r_val == 2 )? 0x10 : 0x20 ) ) + (unsigned char)(k_val >> 16);
+ fc2580_i2c_write(0x18, data_0x18); /** Load 'R' value and high part of 'K' values */
+ fc2580_i2c_write(0x1A, (unsigned char)( k_val >> 8 ) ); /** Load middle part of 'K' value */
+ fc2580_i2c_write(0x1B, (unsigned char)( k_val ) ); /** Load lower part of 'K' value */
+ fc2580_i2c_write(0x1C, (unsigned char)( n_val ) ); /** Load 'N' value */
+
+ /** A command about UHF LNA Load Cap */
+ if( band == UHF_BAND )
+ fc2580_i2c_write(0x2D, ( f_lo <= (unsigned int)794000 )? 0x9F : 0x8F ); /** LNA_OUT_CAP */
+
+
+}
+
+
+/*==============================================================================
+ fc2580 filter BW setting
+
+ This function is a generic function which gets called to change Bandwidth
+
+ frequency of fc2580's channel selection filter
+
+ <input parameter>
+
+ filter_bw
+ 1 : 1.53MHz(TDMB)
+ 5 : 5MHz
+ 6 : 6MHz
+ 7 : 6.8MHz
+ 8 : 7.8MHz
+ 9 : 8.0MHz
+
+==============================================================================*/
+void fc2580_set_filter(unsigned char filter_bw)
+{
+ unsigned char cal_mon, i;
+
+ if(filter_bw == 1)
+ {
+ fc2580_i2c_write(0x36, 0x1C);
+ fc2580_i2c_write(0x37, (unsigned char) (((unsigned long) (4151 * FREQ_XTAL)) / 1000000));
+ fc2580_i2c_write(0x39, 0x00);
+ fc2580_i2c_write(0x2E, 0x09);
+ }
+ if(filter_bw == 5)
+ {
+ fc2580_i2c_write(0x36, 0x18);
+ fc2580_i2c_write(0x37, (unsigned char) (((unsigned long) (5320 * FREQ_XTAL)) / 1000000));
+ fc2580_i2c_write(0x39, 0x00);
+ fc2580_i2c_write(0x2E, 0x09);
+ }
+ else if(filter_bw == 6)
+ {
+ fc2580_i2c_write(0x36, 0x18);
+ fc2580_i2c_write(0x37, (unsigned char) (((unsigned long) (4400 * FREQ_XTAL)) / 1000000));
+ fc2580_i2c_write(0x39, 0x00);
+ fc2580_i2c_write(0x2E, 0x09);
+ }
+ else if(filter_bw == 7)
+ {
+ fc2580_i2c_write(0x36, 0x18);
+ fc2580_i2c_write(0x37, (unsigned char) (((unsigned long) (3910 * FREQ_XTAL)) / 1000000));
+ fc2580_i2c_write(0x39, 0x80);
+ fc2580_i2c_write(0x2E, 0x09);
+ }
+ else if(filter_bw == 8)
+ {
+ fc2580_i2c_write(0x36, 0x18);
+ fc2580_i2c_write(0x37, (unsigned char) (((unsigned long) (3300 * FREQ_XTAL)) / 1000000));
+ fc2580_i2c_write(0x39, 0x80);
+ fc2580_i2c_write(0x2E, 0x09);
+ }
+ else if(filter_bw == 9)
+ {
+ fc2580_i2c_write(0x36, 0x18);
+ fc2580_i2c_write(0x37, (unsigned char) (((unsigned long) (2450 * FREQ_XTAL)) / 1000000));
+ fc2580_i2c_write(0x39, 0x80);
+ fc2580_i2c_write(0x2E, 0x09);
+ }
+
+ for(i=0; i<5; i++)
+ {
+ wait_msec(5); /** wait 5ms */
+ cal_mon = fc2580_i2c_read(0x2F);
+ if( (cal_mon & 0xC0) != 0xC0)
+ {
+ fc2580_i2c_write(0x2E, 0x01);
+ fc2580_i2c_write(0x2E, 0x09);
+ }
+ else
+ break;
+ }
+
+ fc2580_i2c_write(0x2E, 0x01);
+}
+
+/*==============================================================================
+ fc2580 RSSI function
+
+ This function is a generic function which returns fc2580's
+
+ current RSSI value.
+
+ <input parameter>
+ none
+
+ <return value>
+ int
+ rssi : estimated input power.
+
+==============================================================================*/
+int fc2580_get_rssi(void) {
+
+ int s_lna = fc2580_i2c_read( 0x71 );
+ int s_rfvga = fc2580_i2c_read( 0x72 );
+ int s_cfs = fc2580_i2c_read( 0x73 );
+ int s_ifvga = fc2580_i2c_read( 0x74 );
+ int ofs_lna, ofs_rfvga, ofs_csf, ofs_ifvga, rssi;
+
+ ofs_lna =
+ (curr_band==UHF_BAND)?
+ (s_lna==0)? 0 :
+ (s_lna==1)? -6 :
+ (s_lna==2)? -17 :
+ (s_lna==3)? -22 : -30 :
+ (curr_band==VHF_BAND)?
+ (s_lna==0)? 0 :
+ (s_lna==1)? -6 :
+ (s_lna==2)? -19 :
+ (s_lna==3)? -24 : -32 :
+ (curr_band==L_BAND)?
+ (s_lna==0)? 0 :
+ (s_lna==1)? -6 :
+ (s_lna==2)? -11 :
+ (s_lna==3)? -16 : -34 :
+ 0; /** NO_BAND */
+ ofs_rfvga = -s_rfvga+((s_rfvga>=11)? 1 : 0) + ((s_rfvga>=18)? 1 : 0);
+ ofs_csf = -6*s_cfs;
+ ofs_ifvga = s_ifvga/4;
+
+ return rssi = ofs_lna+ofs_rfvga+ofs_csf+ofs_ifvga+OFS_RSSI;
+
+} \ No newline at end of file
diff --git a/api/fc2580.h b/api/fc2580.h
new file mode 100644
index 0000000..fc3d687
--- /dev/null
+++ b/api/fc2580.h
@@ -0,0 +1,191 @@
+#include "standard.h"
+
+#define FREQ_XTAL 16384 //16.384MHz
+#define BORDER_FREQ 2600000 //2.6GHz : The border frequency which determines whether Low VCO or High VCO is used
+#define USE_EXT_CLK 0 //0 : Use internal XTAL Oscillator / 1 : Use External Clock input
+#define OFS_RSSI 57
+
+extern Demodulator* FCI_FC2580_demodulator;
+extern Byte FCI_FC2580_chip;
+
+typedef enum {
+ UHF_BAND,
+ L_BAND,
+ VHF_BAND,
+ NO_BAND
+} fc2580_band_type;
+
+/*==============================================================================
+ i2c command write EXTERNAL FUNCTION
+
+ This function is a generic function which write a byte into fc2580's
+ specific address.
+
+ <input parameter>
+
+ slave_id
+ i2c id of slave chip
+ type : byte
+
+ addr
+ memory address of slave chip
+ type : byte
+
+ data
+ target data
+ type : byte
+
+==============================================================================*/
+extern void i2c_write( unsigned char slave_id, unsigned char addr, unsigned char data );
+
+/*==============================================================================
+ i2c command write EXTERNAL FUNCTION
+
+ This function is a generic function which gets called to read data from
+ slave chip's target memory address.
+
+ <input parameter>
+
+ slave_id
+ i2c id of slave chip
+ type : byte
+
+ addr
+ memory address of slave chip
+ type : byte
+
+ <return value>
+ data
+ a byte of data read out of target address 'addr' of slave chip
+ type : byte
+
+==============================================================================*/
+extern unsigned char i2c_read( unsigned char slave_id, unsigned char addr );
+
+/*==============================================================================
+ milisecond delay function EXTERNAL FUNCTION
+
+ This function is a generic function which write a byte into fc2580's
+ specific address.
+
+ <input parameter>
+
+ a
+ length of wanted delay in milisecond unit
+
+==============================================================================*/
+extern void wait_msec (unsigned long msec);
+
+
+
+/*==============================================================================
+ fc2580 i2c command write
+
+ This function is a generic function which write a byte into fc2580's
+ specific address.
+
+ <input parameter>
+
+ addr
+ fc2580's memory address
+ type : byte
+
+ data
+ target data
+ type : byte
+
+==============================================================================*/
+void fc2580_i2c_write( unsigned char addr, unsigned char data );
+
+/*==============================================================================
+ fc2580 i2c data read
+
+ This function is a generic function which gets called to read data from
+ fc2580's target memory address.
+
+ <input parameter>
+
+ addr
+ fc2580's memory address
+ type : byte
+
+
+ <return value>
+ data
+ a byte of data read out of target address 'addr'
+ type : byte
+
+==============================================================================*/
+unsigned char fc2580_i2c_read( unsigned char addr );
+
+/*==============================================================================
+ fc2580 initial setting
+
+ This function is a generic function which gets called to initialize
+
+ fc2580 in DVB-H mode or L-Band TDMB mode
+
+ <input parameter>
+
+ ifagc_mode
+ type : integer
+ 1 : Internal AGC
+ 2 : Voltage Control Mode
+
+==============================================================================*/
+void fc2580_set_init( int ifagc_mode );
+
+/*==============================================================================
+ fc2580 frequency setting
+
+ This function is a generic function which gets called to change LO Frequency
+
+ of fc2580 in DVB-H mode or L-Band TDMB mode
+
+ <input parameter>
+
+ f_lo
+ Value of target LO Frequency in 'kHz' unit
+ ex) 2.6GHz = 2600000
+
+==============================================================================*/
+void fc2580_set_freq( unsigned int f_lo );
+
+
+/*==============================================================================
+ fc2580 filter BW setting
+
+ This function is a generic function which gets called to change Bandwidth
+
+ frequency of fc2580's channel selection filter
+
+ <input parameter>
+
+ filter_bw
+ 1 : 1.53MHz(TDMB)
+ 5 : 5MHz
+ 6 : 6MHz
+ 7 : 7MHz
+ 8 : 7.8MHz
+ 9 : 8MHz
+
+==============================================================================*/
+void fc2580_set_filter(unsigned char filter_bw);
+
+/*==============================================================================
+ fc2580 RSSI function
+
+ This function is a generic function which returns fc2580's
+
+ current RSSI value.
+
+ <input parameter>
+ none
+
+ <return value>
+ int
+ rssi : estimated input power.
+
+==============================================================================*/
+int fc2580_get_rssi(void);
+
diff --git a/api/firmware.h b/api/firmware.h
new file mode 100644
index 0000000..a4201d3
--- /dev/null
+++ b/api/firmware.h
@@ -0,0 +1,10713 @@
+// This file is automatically generated. Do not edit.
+#ifndef __FIRMWARE_H__
+#define __FIRMWARE_H__
+
+#define FW_RELEASE_VERSION "v8_8_63_0"
+
+#define DVB_LL_VERSION1 11
+#define DVB_LL_VERSION2 22
+#define DVB_LL_VERSION3 12
+#define DVB_LL_VERSION4 0
+
+#define DVB_OFDM_VERSION1 5
+#define DVB_OFDM_VERSION2 66
+#define DVB_OFDM_VERSION3 12
+#define DVB_OFDM_VERSION4 0
+
+#include "type.h"
+
+#define Firmware_FORMAT_VER1 2
+#define Firmware_FORMAT_VER2 0
+
+
+#define Firmware_CODELENGTH 0x000148D1
+#define Firmware_SEGMENTLENGTH 0x0000000C
+#define Firmware_PARTITIONLENGTH 0x00000002
+
+
+static Byte Firmware_codes[] = {
+ 0x01,0x41,0x00,0x00,0x03,0xFB,0xBE,0x02,
+ 0x48,0x00,
+
+ 0x01,0x48,0x00,0x3B,0x1D,0xE1,0x7C,0x75,
+ 0x81,0x16,0x02,0x48,0x41,0x02,0x59,0x93,
+ 0xE4,0x93,0xA3,0xF8,0xE4,0x93,0xA3,0x40,
+ 0x03,0xF6,0x80,0x01,0xF2,0x08,0xDF,0xF4,
+ 0x80,0x29,0xE4,0x93,0xA3,0xF8,0x54,0x07,
+ 0x24,0x0C,0xC8,0xC3,0x33,0xC4,0x54,0x0F,
+ 0x44,0x20,0xC8,0x83,0x40,0x04,0xF4,0x56,
+ 0x80,0x01,0x46,0xF6,0xDF,0xE4,0x80,0x0B,
+ 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
+ 0x90,0x79,0xF2,0xE4,0x7E,0x01,0x93,0x60,
+ 0xBC,0xA3,0xFF,0x54,0x3F,0x30,0xE5,0x09,
+ 0x54,0x1F,0xFE,0xE4,0x93,0xA3,0x60,0x01,
+ 0x0E,0xCF,0x54,0xC0,0x25,0xE0,0x60,0xA8,
+ 0x40,0xB8,0xE4,0x93,0xA3,0xFA,0xE4,0x93,
+ 0xA3,0xF8,0xE4,0x93,0xA3,0xC8,0xC5,0x82,
+ 0xC8,0xCA,0xC5,0x83,0xCA,0xF0,0xA3,0xC8,
+ 0xC5,0x82,0xC8,0xCA,0xC5,0x83,0xCA,0xDF,
+ 0xE9,0xDE,0xE7,0x80,0xBE,0xAA,0x86,0x53,
+ 0x86,0xFE,0x8E,0x85,0x8F,0x84,0x8C,0x83,
+ 0x8D,0x82,0x0B,0x80,0x0A,0xE0,0xA3,0x63,
+ 0x86,0x01,0xF0,0xA3,0x63,0x86,0x01,0xDB,
+ 0xF4,0x8A,0x86,0x22,0xC2,0xAF,0x90,0x41,
+ 0x03,0x74,0x02,0xF0,0xA3,0x74,0x49,0xF0,
+ 0xA3,0x74,0x61,0xF0,0x90,0x41,0x0B,0x74,
+ 0x02,0xF0,0xA3,0x74,0x49,0xF0,0xA3,0x74,
+ 0x69,0xF0,0x90,0x41,0x13,0x74,0x02,0xF0,
+ 0xA3,0x74,0x49,0xF0,0xA3,0x74,0x71,0xF0,
+ 0x90,0x41,0x1B,0x74,0x02,0xF0,0xA3,0x74,
+ 0x49,0xF0,0xA3,0x74,0x79,0xF0,0x90,0x41,
+ 0x23,0x74,0x02,0xF0,0xA3,0x74,0x49,0xF0,
+ 0xA3,0x74,0x81,0xF0,0x90,0x41,0x2B,0x74,
+ 0x02,0xF0,0xA3,0x74,0x49,0xF0,0xA3,0x74,
+ 0x89,0xF0,0x90,0x41,0x33,0x74,0x02,0xF0,
+ 0xA3,0x74,0x49,0xF0,0xA3,0x74,0x91,0xF0,
+ 0x90,0x41,0x3B,0x74,0x02,0xF0,0xA3,0x74,
+ 0x49,0xF0,0xA3,0x74,0x99,0xF0,0x90,0x41,
+ 0x43,0x74,0x02,0xF0,0xA3,0x74,0x49,0xF0,
+ 0xA3,0x74,0xA1,0xF0,0x90,0x41,0x4B,0x74,
+ 0x02,0xF0,0xA3,0x74,0x49,0xF0,0xA3,0x74,
+ 0xA9,0xF0,0x90,0x41,0x53,0x74,0x02,0xF0,
+ 0xA3,0x74,0x49,0xF0,0xA3,0x74,0xB1,0xF0,
+ 0x90,0x41,0x5B,0x74,0x02,0xF0,0xA3,0x74,
+ 0x49,0xF0,0xA3,0x74,0xB9,0xF0,0x90,0x41,
+ 0x63,0x74,0x02,0xF0,0xA3,0x74,0x49,0xF0,
+ 0xA3,0x74,0xC1,0xF0,0xD2,0xAF,0x22,0x22,
+ 0xC0,0xE0,0x75,0xE0,0x00,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x02,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x04,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x06,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x08,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x0A,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x0C,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x0E,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x10,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x12,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x14,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x16,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x18,0x02,0x49,0xC9,
+ 0xC0,0xD0,0x75,0xD0,0x00,0xC0,0x86,0x75,
+ 0x86,0x00,0xC0,0x83,0xC0,0x82,0xC0,0x85,
+ 0xC0,0x84,0xC0,0xF0,0xC0,0x00,0xC0,0x01,
+ 0xC0,0x02,0xC0,0x03,0xC0,0x04,0xC0,0x05,
+ 0xC0,0x06,0xC0,0x07,0x90,0x81,0xBF,0xF9,
+ 0x93,0xFA,0xE9,0x04,0x93,0xF9,0x12,0x80,
+ 0xD7,0xD0,0x07,0xD0,0x06,0xD0,0x05,0xD0,
+ 0x04,0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,
+ 0x00,0xD0,0xF0,0xD0,0x84,0xD0,0x85,0xD0,
+ 0x82,0xD0,0x83,0xD0,0x86,0xD0,0xD0,0xD0,
+ 0xE0,0x32,0xC0,0x07,0x85,0x06,0x07,0x12,
+ 0x4A,0x37,0xD0,0xE0,0xC0,0xE0,0xC4,0x54,
+ 0x0F,0xFF,0x12,0x4A,0x57,0xD0,0xE0,0x54,
+ 0x0F,0xFF,0x12,0x4A,0x68,0x22,0xEF,0x70,
+ 0x02,0x80,0x0B,0x80,0x00,0xC0,0x07,0x12,
+ 0x4A,0x48,0xD0,0x07,0xDF,0xF7,0x22,0x7F,
+ 0x0C,0x12,0x4A,0x57,0x7F,0x04,0x90,0x4A,
+ 0x48,0xE0,0xDF,0xFD,0xE0,0x22,0xEF,0x70,
+ 0x02,0x80,0x0B,0x80,0x00,0x90,0x4A,0x5E,
+ 0xE0,0xE0,0xE0,0x04,0xDF,0xF7,0x22,0x90,
+ 0x4A,0x70,0xEF,0xF4,0x54,0x0F,0x73,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x22,0x43,
+ 0x8E,0x08,0x53,0x89,0xF0,0x43,0x89,0x01,
+ 0x22,0xAD,0x07,0xAC,0x06,0xC2,0x8C,0xC2,
+ 0x8D,0xEC,0xF4,0xF5,0x8C,0xED,0xF4,0xF5,
+ 0x8A,0xD2,0x8C,0x22,0x90,0x41,0x82,0x74,
+ 0xAF,0xF0,0xA3,0xEF,0xF0,0xA3,0x74,0x22,
+ 0xF0,0x7A,0x41,0x79,0x82,0x12,0x80,0xD7,
+ 0x22,0x90,0x41,0x82,0x74,0x8F,0xF0,0xA3,
+ 0xEF,0xF0,0xA3,0x74,0x22,0xF0,0xAF,0x05,
+ 0x7C,0x41,0x7D,0x82,0x90,0x41,0x82,0x12,
+ 0x80,0xDB,0x22,0x8F,0x82,0x8E,0x83,0xE4,
+ 0xFF,0xFE,0xED,0x4C,0x60,0x0F,0xED,0x60,
+ 0x01,0x0C,0xE0,0xA3,0x2F,0xFF,0xE4,0x3E,
+ 0xFE,0xDD,0xF7,0xDC,0xF5,0x22,0xE4,0x90,
+ 0x42,0x9A,0xF0,0x12,0x64,0x94,0x90,0x42,
+ 0xEB,0xEF,0xF0,0x60,0x25,0xE0,0xB4,0x05,
+ 0x03,0x7F,0x05,0x22,0x12,0x66,0x07,0x90,
+ 0x42,0xEB,0xEF,0xF0,0x60,0x14,0xE0,0xB4,
+ 0x05,0x03,0x7F,0x05,0x22,0x12,0x67,0x65,
+ 0x90,0x42,0xEB,0xEF,0xF0,0x60,0x03,0xE0,
+ 0xFF,0x22,0x7F,0x00,0x22,0x90,0x41,0x8C,
+ 0xE0,0xD3,0x94,0x00,0x40,0x06,0x90,0x42,
+ 0x99,0xEF,0xF0,0x22,0x90,0x41,0x8B,0xE0,
+ 0xFE,0xEF,0xC3,0x9E,0x50,0x06,0x90,0x42,
+ 0x99,0xEF,0xF0,0x22,0x90,0x42,0x99,0xEE,
+ 0xF0,0x22,0x90,0x42,0xEC,0xEB,0xF0,0xA3,
+ 0xEA,0xF0,0xA3,0xE9,0xF0,0xE4,0xFF,0x90,
+ 0x42,0x99,0xE0,0xD3,0x94,0x00,0x40,0x04,
+ 0x7E,0x01,0x80,0x02,0x7E,0x00,0xEF,0xC3,
+ 0x94,0x40,0x50,0x04,0x7D,0x01,0x80,0x02,
+ 0x7D,0x00,0xED,0x5E,0x60,0x33,0x90,0x42,
+ 0xEC,0xE0,0xFB,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xF9,0x90,0x42,0x9A,0xE0,0xF5,0x82,0x75,
+ 0x83,0x00,0x12,0x80,0x30,0xFE,0x74,0x00,
+ 0x2F,0xF5,0x82,0xE4,0x34,0xDE,0xF5,0x83,
+ 0xEE,0xF0,0x0F,0x90,0x42,0x99,0xE0,0x14,
+ 0xF0,0x90,0x42,0x9A,0xE0,0x04,0xF0,0x80,
+ 0xAE,0x90,0xDD,0x85,0xEF,0xF0,0x22,0x90,
+ 0xDD,0x13,0xE0,0x44,0x01,0xF0,0x90,0xDD,
+ 0x1B,0x74,0x04,0xF0,0xE4,0xFF,0x74,0x00,
+ 0x2F,0xF5,0x82,0xE4,0x34,0xDF,0xF5,0x83,
+ 0xE0,0xFE,0x74,0x85,0x2F,0xF5,0x82,0xE4,
+ 0x34,0x41,0xF5,0x83,0xEE,0xF0,0x0F,0xEF,
+ 0xB4,0x08,0xE3,0x90,0xDD,0x1B,0xE0,0x20,
+ 0xE2,0xD4,0x22,0x90,0xDD,0x13,0x74,0x7B,
+ 0xF0,0x90,0xDD,0x80,0x74,0xC0,0xF0,0xA3,
+ 0x74,0x00,0xF0,0xA3,0x74,0x40,0xF0,0xA3,
+ 0x74,0x80,0xF0,0x12,0x6A,0x2D,0xE4,0x90,
+ 0x41,0x93,0xF0,0x90,0x41,0x94,0xF0,0x90,
+ 0xDD,0x14,0x74,0x0B,0xF0,0x90,0xDD,0x17,
+ 0x74,0x06,0xF0,0x90,0x43,0x28,0xE0,0xB4,
+ 0x01,0x07,0x90,0xDD,0x17,0xE0,0x44,0x01,
+ 0xF0,0x90,0xDD,0x15,0x74,0x0B,0xF0,0x90,
+ 0xDD,0x0C,0x74,0x80,0xF0,0x90,0xDD,0x8E,
+ 0xE4,0xF0,0xA3,0x74,0x03,0xF0,0x90,0xDD,
+ 0x0E,0xE4,0xF0,0xA3,0x04,0xF0,0x90,0xDD,
+ 0x13,0xE0,0x54,0x7F,0xF0,0x90,0xDD,0x20,
+ 0xE0,0x54,0xFC,0x44,0x03,0xF0,0x90,0xDD,
+ 0x11,0x74,0x8F,0xF0,0x90,0x43,0x0D,0xE0,
+ 0x64,0x01,0x70,0x27,0xC3,0x74,0x34,0x94,
+ 0xBA,0x90,0x41,0xB3,0xF0,0x90,0x42,0x9D,
+ 0xF0,0x90,0x41,0xB5,0x74,0x02,0xF0,0x90,
+ 0x42,0x9F,0xF0,0x90,0xDD,0x15,0xE0,0x44,
+ 0x10,0xF0,0x90,0xDD,0x11,0xE0,0x44,0x10,
+ 0xF0,0x80,0x17,0xC3,0x74,0x1B,0x94,0xBA,
+ 0x90,0x41,0xB3,0xF0,0x90,0x42,0x9D,0xF0,
+ 0x90,0x41,0xB5,0x74,0x01,0xF0,0x90,0x42,
+ 0x9F,0xF0,0x90,0x45,0x61,0xE0,0x60,0x03,
+ 0x12,0x50,0xE8,0x90,0xDD,0x0C,0x74,0x80,
+ 0xF0,0x90,0xDD,0x89,0x74,0x03,0xF0,0x90,
+ 0xDD,0x88,0x74,0xDB,0xF0,0x90,0xDD,0x13,
+ 0xE0,0x54,0xDF,0xF0,0x90,0xF4,0x1A,0xE0,
+ 0x54,0xFE,0x44,0x01,0xF0,0x22,0x90,0x42,
+ 0x11,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0x0A,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0x03,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xFC,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xE5,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xDE,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xD7,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xD0,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,0x90,
+ 0x42,0x18,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,
+ 0xE4,0x90,0x42,0xF2,0xF0,0x90,0x42,0xE9,
+ 0xE0,0x60,0x0D,0x90,0xDD,0xA8,0xE0,0x30,
+ 0xE0,0x06,0x12,0x4F,0xEB,0x02,0x4F,0x38,
+ 0x90,0xDF,0x82,0xE0,0x20,0xE1,0x06,0x12,
+ 0x4F,0x45,0x02,0x4F,0x38,0x90,0x42,0xE9,
+ 0xE0,0x70,0x09,0x90,0x42,0xF3,0xE0,0x04,
+ 0xF0,0x02,0x4F,0x38,0x90,0xDD,0xA8,0xE0,
+ 0x30,0xE0,0x06,0x12,0x4F,0xEB,0x02,0x4F,
+ 0x38,0x90,0xDD,0x1B,0xE0,0x30,0xE1,0x12,
+ 0x90,0xDD,0x1D,0x74,0xFF,0xF0,0x90,0xDD,
+ 0x1B,0x74,0x02,0xF0,0x12,0x4F,0x94,0x02,
+ 0x4F,0x38,0x90,0x43,0x28,0xE0,0x64,0x01,
+ 0x70,0x29,0x90,0xDD,0x1B,0xE0,0x30,0xE0,
+ 0x22,0x74,0x01,0xF0,0xE4,0x90,0x42,0xF1,
+ 0xF0,0x90,0xDD,0x1B,0xE0,0x30,0xE0,0x0D,
+ 0x74,0x01,0xF0,0x90,0x42,0xF1,0xE0,0x04,
+ 0xF0,0xE0,0xB4,0x02,0xEC,0x12,0x4F,0xB3,
+ 0x02,0x4F,0x38,0x90,0xDD,0x1B,0xE0,0x30,
+ 0xE2,0x28,0x90,0xDD,0x14,0xE0,0x44,0x01,
+ 0xF0,0x12,0x4B,0xA8,0x12,0x56,0x20,0x90,
+ 0x42,0xF0,0xEF,0xF0,0x70,0x03,0x02,0x4F,
+ 0x38,0x90,0xDD,0x14,0xE0,0x54,0xFE,0xF0,
+ 0x90,0xDD,0x12,0xE0,0x44,0x01,0xF0,0x02,
+ 0x4F,0x38,0x90,0xDD,0x19,0xE0,0x30,0xE0,
+ 0x42,0x90,0xDD,0x14,0xE0,0x44,0x01,0xF0,
+ 0x90,0xDD,0x19,0x74,0x01,0xF0,0x90,0xDD,
+ 0x13,0xE0,0x44,0x01,0xF0,0x90,0x42,0xE7,
+ 0xE0,0x64,0x01,0x60,0x03,0x02,0x4F,0x38,
+ 0x90,0xDD,0x00,0xC0,0x83,0xC0,0x82,0xE0,
+ 0xFF,0x90,0x41,0x8A,0xE0,0xFE,0x33,0x33,
+ 0x33,0x54,0xF8,0xFE,0xEF,0x4E,0xD0,0x82,
+ 0xD0,0x83,0xF0,0xE4,0x90,0x42,0xE7,0xF0,
+ 0x02,0x4F,0x38,0x90,0xDD,0x18,0xE0,0x30,
+ 0xE0,0x31,0x90,0xDD,0x14,0xE0,0x30,0xE0,
+ 0x2A,0x90,0xDD,0x14,0xE0,0x54,0xFE,0xF0,
+ 0x12,0x56,0x3B,0x90,0x42,0xF0,0xEF,0xF0,
+ 0x60,0x09,0x90,0xDD,0x12,0xE0,0x44,0x01,
+ 0xF0,0x80,0x07,0x90,0xDD,0x13,0xE0,0x54,
+ 0xFE,0xF0,0x90,0xDD,0x18,0x74,0x01,0xF0,
+ 0x02,0x4F,0x38,0x90,0xDD,0x19,0xE0,0x30,
+ 0xE1,0x10,0x90,0xDD,0x19,0x74,0x02,0xF0,
+ 0x90,0xDD,0x13,0xE0,0x44,0x02,0xF0,0x02,
+ 0x4F,0x38,0x90,0xDD,0x18,0xE0,0x30,0xE1,
+ 0x16,0x90,0xDD,0x84,0x74,0x40,0xF0,0x90,
+ 0xDD,0x13,0xE0,0x54,0xFD,0xF0,0x90,0xDD,
+ 0x18,0x74,0x02,0xF0,0x02,0x4F,0x38,0x90,
+ 0xDD,0x19,0xE0,0x30,0xE4,0x6A,0x90,0xDD,
+ 0x19,0x74,0x10,0xF0,0x90,0x45,0xA6,0xE0,
+ 0x64,0x01,0x60,0x03,0x02,0x4F,0x38,0x90,
+ 0x45,0xB9,0xE0,0xFF,0xB4,0x01,0x31,0xE4,
+ 0x90,0x42,0xF1,0xF0,0x90,0x42,0xF1,0xE0,
+ 0xFE,0xC3,0x94,0x08,0x50,0x14,0x74,0x80,
+ 0x2E,0xF5,0x82,0xE4,0x34,0xDE,0xF5,0x83,
+ 0xE4,0xF0,0x90,0x42,0xF1,0xE0,0x04,0xF0,
+ 0x80,0xE2,0x90,0xDD,0x87,0x74,0x08,0xF0,
+ 0x90,0x45,0xB9,0x74,0x02,0xF0,0x80,0x6F,
+ 0xEF,0x64,0x02,0x70,0x6A,0x90,0x45,0xB9,
+ 0xF0,0x90,0xDD,0x13,0xE0,0x44,0x10,0xF0,
+ 0x90,0x41,0x81,0xE0,0xFF,0x64,0x01,0x60,
+ 0x56,0x90,0x45,0xA6,0xEF,0xF0,0x80,0x4F,
+ 0x90,0xDD,0x19,0xE0,0x30,0xE3,0x18,0x90,
+ 0xDD,0x13,0xE0,0x44,0x08,0xF0,0x90,0xDD,
+ 0x19,0x74,0x08,0xF0,0x12,0x74,0xD3,0x90,
+ 0x42,0xE8,0x74,0x01,0xF0,0x80,0x30,0x90,
+ 0xDD,0x14,0xE0,0x54,0x08,0xFF,0x13,0x13,
+ 0x13,0x54,0x1F,0x60,0x1C,0x90,0xDD,0x18,
+ 0xE0,0x30,0xE3,0x15,0x90,0xDD,0x84,0x74,
+ 0x40,0xF0,0x90,0xDD,0x13,0xE0,0x54,0xF7,
+ 0xF0,0x90,0xDD,0x18,0x74,0x08,0xF0,0x80,
+ 0x06,0x90,0x42,0xF4,0xE0,0x04,0xF0,0xC2,
+ 0xDC,0x22,0x12,0x4D,0x09,0x22,0xC2,0xDB,
+ 0x12,0x4D,0x09,0x22,0x90,0x43,0x0D,0xE0,
+ 0x64,0x01,0x60,0x05,0xE0,0x64,0x05,0x70,
+ 0x41,0x90,0x43,0x29,0xE0,0x70,0x05,0x12,
+ 0x6E,0x5D,0x80,0x1B,0x90,0x43,0x29,0xE0,
+ 0xB4,0x01,0x05,0x12,0x6F,0xFC,0x80,0x0F,
+ 0x90,0x43,0x29,0xE0,0x64,0x02,0x60,0x04,
+ 0xE0,0xB4,0xFF,0x03,0x12,0x6B,0x19,0x90,
+ 0x45,0xA6,0xE0,0xB4,0x01,0x14,0x90,0x45,
+ 0xB9,0xE0,0xB4,0x01,0x0D,0x90,0xDD,0x13,
+ 0xE0,0x54,0xEF,0xF0,0x90,0xDD,0x87,0x74,
+ 0x08,0xF0,0x22,0x12,0x4B,0xDC,0x90,0xDD,
+ 0x01,0xE0,0x54,0x04,0x90,0x42,0xEF,0xF0,
+ 0x90,0x45,0x61,0xE0,0x60,0x03,0x12,0x50,
+ 0xE8,0x12,0x50,0xE7,0xE4,0x90,0x45,0xB9,
+ 0xF0,0x22,0x90,0xD8,0x06,0xE0,0x54,0xFE,
+ 0x44,0x01,0xF0,0x22,0x12,0x4B,0xDC,0x90,
+ 0x43,0x06,0xE0,0x30,0xE6,0x09,0x90,0xDD,
+ 0xA7,0xE0,0x44,0x01,0xF0,0x80,0x07,0x90,
+ 0xDD,0x00,0xE0,0x44,0x80,0xF0,0xD2,0xAF,
+ 0xD2,0xDD,0x22,0x90,0x43,0x07,0xE0,0x30,
+ 0xE0,0x07,0x90,0xDD,0xA8,0xE0,0x30,0xE2,
+ 0xF9,0x22,0x90,0xDD,0xA7,0xE0,0x30,0xE1,
+ 0x06,0xE0,0x54,0xFD,0xF0,0x80,0x07,0x90,
+ 0xDD,0xA7,0xE0,0x44,0x02,0xF0,0x90,0xDD,
+ 0xA8,0xE0,0x30,0xE1,0x08,0x90,0xDD,0x00,
+ 0xE0,0x44,0x80,0xF0,0x22,0x90,0xDD,0x00,
+ 0xE0,0x54,0x7F,0xF0,0x22,0xAE,0x07,0x90,
+ 0x42,0xEA,0xE0,0xFD,0xB4,0x01,0x03,0x7F,
+ 0x03,0x22,0xAF,0x06,0xE4,0x90,0x45,0x66,
+ 0xF0,0x7A,0x42,0x7B,0xF5,0xA3,0x74,0x42,
+ 0xF0,0xA3,0x74,0xF5,0xF0,0xA3,0x74,0x01,
+ 0xF0,0xA3,0xE4,0xF0,0x7B,0x01,0x12,0x54,
+ 0x23,0xEF,0x60,0x03,0x7F,0x04,0x22,0x7E,
+ 0x42,0x7F,0xF7,0x90,0x42,0xF7,0xE0,0xFD,
+ 0x7C,0x00,0x12,0x4A,0xCC,0x90,0x42,0xF5,
+ 0xE0,0x6E,0x70,0x03,0xA3,0xE0,0x6F,0x60,
+ 0x03,0x7F,0x05,0x22,0x7F,0x00,0x22,0x90,
+ 0x42,0xFD,0xE0,0xFF,0xA3,0xE0,0x90,0x41,
+ 0x9D,0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0xFF,0xE0,0xFF,0xA3,0xE0,0x90,0x41,0x9F,
+ 0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x43,0x01,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x41,0xA1,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x43,0x03,0xE0,
+ 0x90,0x41,0xA3,0xF0,0x90,0x43,0x04,0xE0,
+ 0x90,0x41,0xA4,0xF0,0x90,0x43,0x05,0xE0,
+ 0x90,0x41,0xA5,0xF0,0x90,0x43,0x0A,0xE0,
+ 0x90,0x42,0x33,0xF0,0x90,0x43,0x08,0xE0,
+ 0x90,0x41,0xB9,0xF0,0x90,0x43,0x06,0xE0,
+ 0xFF,0x90,0x42,0xA2,0xF0,0x90,0x41,0xB8,
+ 0xF0,0x90,0x43,0x09,0xE0,0x90,0x42,0xA3,
+ 0xF0,0x90,0x43,0x0B,0xE0,0x90,0xF1,0x03,
+ 0xF0,0x90,0x43,0x4B,0xE0,0xF4,0x60,0x05,
+ 0xE0,0x90,0xDD,0x93,0xF0,0x22,0x22,0x90,
+ 0x42,0xF9,0xE0,0x70,0x03,0x02,0x53,0x64,
+ 0x90,0x42,0xF9,0xE0,0x75,0xF0,0x08,0xA4,
+ 0x90,0x45,0x5A,0xF0,0xE0,0x24,0xF6,0xF5,
+ 0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,0x90,
+ 0x45,0x5D,0xF0,0x90,0x45,0x5D,0xE0,0x70,
+ 0x03,0x02,0x53,0x64,0x90,0x45,0x5A,0xE0,
+ 0xFE,0x24,0x02,0xA3,0xF0,0x74,0xF5,0x2E,
+ 0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,
+ 0x90,0x45,0x5C,0xF0,0xE0,0x54,0xC0,0xFF,
+ 0x70,0x06,0x90,0x42,0xEF,0xE0,0x70,0x16,
+ 0xBF,0x40,0x06,0x90,0x42,0xEF,0xE0,0x60,
+ 0x0D,0x90,0x45,0x5C,0xE0,0x54,0xC0,0x64,
+ 0xC0,0x60,0x03,0x02,0x52,0xEC,0x90,0x45,
+ 0x5C,0xE0,0x54,0x03,0x14,0x60,0x54,0x14,
+ 0x70,0x03,0x02,0x52,0x01,0x14,0x70,0x03,
+ 0x02,0x52,0x7F,0x24,0x03,0x60,0x03,0x02,
+ 0x52,0xE9,0xE4,0x90,0x45,0x5E,0xF0,0x90,
+ 0x45,0x5D,0xE0,0xFF,0xA3,0xE0,0xC3,0x9F,
+ 0x40,0x03,0x02,0x52,0xEC,0x90,0x45,0x5B,
+ 0xE0,0xFE,0x24,0xF5,0xF5,0x82,0xE4,0x34,
+ 0x42,0xF5,0x83,0xE0,0xFF,0x74,0xF6,0x2E,
+ 0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,
+ 0xFD,0x12,0x4A,0xB2,0x90,0x45,0x5B,0xE0,
+ 0x24,0x02,0xF0,0x90,0x45,0x5E,0xE0,0x04,
+ 0xF0,0x80,0xC4,0xE4,0x90,0x45,0x5E,0xF0,
+ 0x90,0x45,0x5D,0xE0,0xFF,0xA3,0xE0,0xC3,
+ 0x9F,0x40,0x03,0x02,0x52,0xEC,0x90,0x45,
+ 0x5B,0xE0,0xFF,0x24,0xF7,0xF5,0x82,0xE4,
+ 0x34,0x42,0xF5,0x83,0xE0,0xFD,0x74,0xF5,
+ 0x2F,0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,
+ 0xE0,0xFE,0x90,0x45,0x5B,0xE0,0x24,0xF6,
+ 0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,
+ 0xFB,0xEE,0xEB,0xF5,0x82,0x8E,0x83,0xED,
+ 0xF0,0x90,0x45,0x5B,0xE0,0x24,0x03,0xF0,
+ 0x90,0x45,0x5E,0xE0,0x04,0xF0,0x80,0xB0,
+ 0x90,0x45,0x5B,0xE0,0xFD,0x24,0xF5,0xF5,
+ 0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,0xFE,
+ 0x74,0xF6,0x2D,0xF5,0x82,0xE4,0x34,0x42,
+ 0xF5,0x83,0xE0,0xFD,0xEE,0xED,0xFF,0x90,
+ 0x45,0x5F,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,
+ 0x45,0x5B,0xE0,0x24,0x02,0xF0,0xE4,0x90,
+ 0x45,0x5E,0xF0,0x90,0x45,0x5D,0xE0,0xFF,
+ 0xA3,0xE0,0xC3,0x9F,0x40,0x03,0x02,0x52,
+ 0xEC,0x90,0x45,0x5B,0xE0,0xFF,0x24,0xF6,
+ 0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,
+ 0xFE,0x74,0xF5,0x2F,0xF5,0x82,0xE4,0x34,
+ 0x42,0xF5,0x83,0xE0,0xFD,0x90,0x45,0x60,
+ 0xE0,0x2D,0xFD,0x90,0x45,0x5F,0xE0,0x34,
+ 0x00,0x8D,0x82,0xF5,0x83,0xEE,0xF0,0x90,
+ 0x45,0x5B,0xE0,0x24,0x02,0xF0,0x90,0x45,
+ 0x5E,0xE0,0x04,0xF0,0x80,0xB5,0x90,0x45,
+ 0x5B,0xE0,0xFD,0x24,0xF5,0xF5,0x82,0xE4,
+ 0x34,0x42,0xF5,0x83,0xE0,0xFE,0x74,0xF6,
+ 0x2D,0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,
+ 0xE0,0xFD,0xEE,0xED,0xFF,0x90,0x45,0x5F,
+ 0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x45,0x5B,
+ 0xE0,0x24,0x02,0xF0,0xE4,0x90,0x45,0x5E,
+ 0xF0,0x90,0x45,0x5D,0xE0,0xFF,0xA3,0xE0,
+ 0xC3,0x9F,0x50,0x2F,0x90,0x45,0x5B,0xE0,
+ 0xFF,0x04,0xF0,0x74,0xF5,0x2F,0xF5,0x82,
+ 0xE4,0x34,0x42,0xF5,0x83,0xE0,0xFF,0x90,
+ 0x45,0x5F,0xE4,0x75,0xF0,0x01,0x12,0x80,
+ 0x85,0x85,0xF0,0x82,0xF5,0x83,0xEF,0xF0,
+ 0x90,0x45,0x5E,0xE0,0x04,0xF0,0x80,0xC9,
+ 0x12,0x7B,0x63,0x90,0x45,0x5A,0xE0,0x24,
+ 0x02,0xF0,0x90,0x45,0x5C,0xE0,0x54,0x03,
+ 0x14,0x60,0x19,0x14,0x60,0x27,0x14,0x60,
+ 0x38,0x24,0x03,0x70,0x46,0x90,0x45,0x5D,
+ 0xE0,0x25,0xE0,0xFF,0x90,0x45,0x5A,0xE0,
+ 0x2F,0xF0,0x80,0x3A,0x90,0x45,0x5D,0xE0,
+ 0x75,0xF0,0x03,0xA4,0xFF,0x90,0x45,0x5A,
+ 0xE0,0x2F,0xF0,0x80,0x29,0x90,0x45,0x5A,
+ 0xE0,0x24,0x02,0xFF,0x90,0x45,0x5D,0xE0,
+ 0x25,0xE0,0x2F,0x90,0x45,0x5A,0xF0,0x80,
+ 0x15,0x90,0x45,0x5A,0xE0,0x24,0x02,0xFF,
+ 0x90,0x45,0x5D,0xE0,0x2F,0x90,0x45,0x5A,
+ 0xF0,0x80,0x03,0x12,0x7B,0x63,0x90,0x45,
+ 0x5A,0xE0,0x24,0xF6,0xF5,0x82,0xE4,0x34,
+ 0x42,0xF5,0x83,0xE0,0x90,0x45,0x5D,0xF0,
+ 0x02,0x51,0x0C,0x22,0x90,0x42,0xE9,0xE0,
+ 0x60,0x08,0x90,0x45,0x62,0x74,0x01,0xF0,
+ 0x80,0x06,0x90,0x45,0x62,0x74,0x03,0xF0,
+ 0x12,0x4A,0x80,0x12,0x54,0x18,0x90,0xF1,
+ 0x03,0xE0,0x90,0x45,0x88,0xF0,0x90,0xF6,
+ 0xB5,0xE0,0x54,0xF7,0x44,0x08,0xF0,0xE0,
+ 0x54,0xF7,0xF0,0x90,0x45,0x88,0xE0,0x90,
+ 0xF1,0x03,0xF0,0x90,0x45,0x62,0xE0,0xFF,
+ 0x12,0x80,0x23,0x90,0x42,0xEA,0xEF,0xF0,
+ 0x90,0x42,0xE9,0xE0,0x60,0x03,0x12,0x6A,
+ 0x3A,0x90,0x45,0x62,0xE0,0xFF,0x12,0x50,
+ 0x16,0xEF,0x70,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0x45,0x61,0xEF,0xF0,0x60,
+ 0x1C,0x90,0x43,0x4C,0xE0,0x60,0x16,0xE0,
+ 0x90,0xF6,0x32,0xF0,0x90,0x43,0x4C,0xE0,
+ 0x90,0xF6,0x33,0xF0,0x90,0xF6,0x31,0xE0,
+ 0x54,0xFE,0x44,0x01,0xF0,0x90,0x45,0x61,
+ 0xE0,0x60,0x07,0x12,0x50,0x68,0x12,0x50,
+ 0xE8,0x22,0x90,0x42,0xE9,0xE0,0x60,0x1E,
+ 0xE4,0x90,0x43,0x26,0xF0,0x90,0x43,0x28,
+ 0xF0,0x90,0x43,0x07,0xF0,0x90,0x43,0x0D,
+ 0x74,0x05,0xF0,0xE4,0x90,0x43,0x29,0xF0,
+ 0x90,0x43,0x06,0x74,0x80,0xF0,0x22,0x80,
+ 0x02,0x80,0xFE,0x90,0xF1,0x03,0x74,0x25,
+ 0xF0,0x22,0x90,0x45,0x63,0xEF,0xF0,0xA3,
+ 0xED,0xF0,0xA3,0xEB,0xF0,0xA3,0xE0,0xFE,
+ 0xFD,0x7C,0x00,0x90,0x45,0x69,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0x2D,0xFD,0xEC,0x3A,0xFC,
+ 0xD3,0xED,0x94,0x00,0xEC,0x94,0x01,0x40,
+ 0x03,0x7F,0x01,0x22,0xE4,0xB5,0x03,0x08,
+ 0xEA,0xB4,0x01,0x04,0x7F,0x08,0x80,0x0B,
+ 0xEE,0x54,0x07,0xFF,0xC3,0x74,0x08,0x9F,
+ 0x54,0x07,0xFF,0x90,0x45,0x6B,0xEF,0xF0,
+ 0xC3,0xEB,0x9F,0xEA,0x94,0x00,0x50,0x06,
+ 0x90,0x45,0x6A,0xE0,0xA3,0xF0,0x90,0x45,
+ 0x6A,0xE0,0xFF,0xA3,0xE0,0xFE,0xC3,0xEF,
+ 0x9E,0x54,0x07,0xFE,0x90,0x45,0x6D,0xF0,
+ 0x90,0x45,0x6B,0xE0,0xFD,0xC3,0xEF,0x9D,
+ 0xC3,0x9E,0xA3,0xF0,0x90,0x45,0x6B,0xE0,
+ 0x90,0x45,0x6E,0xF0,0xA3,0x74,0x08,0xF0,
+ 0x90,0x45,0x6D,0xE0,0x90,0x45,0x70,0xF0,
+ 0xE4,0xA3,0xF0,0x90,0x45,0x71,0xE0,0xFB,
+ 0x24,0x6B,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xE0,0x70,0x03,0x02,0x55,0xC9,0x90,
+ 0x45,0x66,0xE0,0x90,0xF0,0x01,0xF0,0x90,
+ 0x45,0x65,0xE0,0x70,0x4E,0x7E,0xF0,0x7F,
+ 0x02,0x90,0x45,0x67,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0x74,0x6E,0x2B,0xF5,0x82,0xE4,0x34,
+ 0x45,0xF5,0x83,0xE0,0xFB,0x12,0x48,0x86,
+ 0x90,0x45,0x63,0xE0,0xFF,0xA3,0xE0,0xFD,
+ 0x90,0x45,0x71,0xE0,0x24,0x6E,0xF5,0x82,
+ 0xE4,0x34,0x45,0xF5,0x83,0xE0,0x04,0xFB,
+ 0x90,0x46,0x04,0x74,0x01,0xF0,0x12,0x7E,
+ 0xD9,0xEF,0x60,0x03,0x7F,0x02,0x22,0x7F,
+ 0x35,0x7E,0x82,0x12,0x4A,0x8A,0x20,0x8D,
+ 0x60,0x80,0xFB,0x90,0x45,0x63,0xE0,0xFF,
+ 0xA3,0xE0,0xFD,0x90,0x46,0x04,0x74,0x01,
+ 0xF0,0xFB,0x12,0x7E,0xD9,0xEF,0x60,0x03,
+ 0x7F,0x02,0x22,0x90,0x45,0x63,0xE0,0xFF,
+ 0xA3,0xE0,0x44,0x01,0xFD,0x90,0x45,0x71,
+ 0xE0,0x24,0x6E,0xF5,0x82,0xE4,0x34,0x45,
+ 0xF5,0x83,0xE0,0xFB,0x90,0x46,0x04,0x74,
+ 0x01,0xF0,0x12,0x7E,0xD9,0xEF,0x60,0x03,
+ 0x7F,0x02,0x22,0x90,0x45,0x67,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x7C,0xF0,0x7D,0x00,0x90,
+ 0x45,0x71,0xE0,0x24,0x6E,0xF5,0x82,0xE4,
+ 0x34,0x45,0xF5,0x83,0xE0,0xFB,0x12,0x48,
+ 0x86,0x90,0x45,0x71,0xE0,0xFF,0x24,0x6E,
+ 0xF5,0x82,0xE4,0x34,0x45,0xF5,0x83,0xE0,
+ 0xFE,0x90,0x45,0x66,0xE0,0x2E,0xF0,0xEE,
+ 0xFD,0x90,0x45,0x68,0xE0,0x2D,0xF0,0x90,
+ 0x45,0x67,0xE0,0x34,0x00,0xF0,0x74,0x6B,
+ 0x2F,0xF5,0x82,0xE4,0x34,0x45,0xF5,0x83,
+ 0xC0,0x83,0xC0,0x82,0xE0,0xFF,0x90,0x45,
+ 0x71,0xE0,0x24,0x6E,0xF5,0x82,0xE4,0x34,
+ 0x45,0xF5,0x83,0xE0,0xFE,0xC3,0xEF,0x9E,
+ 0xD0,0x82,0xD0,0x83,0xF0,0x02,0x54,0xAC,
+ 0x90,0x45,0x71,0xE0,0x04,0xF0,0xE0,0xC3,
+ 0x94,0x03,0x50,0x03,0x02,0x54,0xAC,0x7F,
+ 0x00,0x22,0x90,0x45,0x72,0xEF,0xF0,0xE4,
+ 0x90,0x45,0x73,0xF0,0x90,0x45,0x73,0xE0,
+ 0xFE,0xC3,0x94,0x10,0x50,0x1F,0x90,0x45,
+ 0x72,0xE0,0xFF,0xEE,0x44,0xA0,0xFD,0x90,
+ 0x46,0x04,0x74,0x01,0xF0,0xFB,0x12,0x7E,
+ 0xD9,0xEF,0x60,0x09,0x90,0x45,0x73,0xE0,
+ 0x24,0x02,0xF0,0x80,0xD7,0x90,0x45,0x73,
+ 0xE0,0xFF,0xC3,0x94,0x10,0x50,0x05,0xEF,
+ 0x44,0xA0,0xFF,0x22,0x7F,0x01,0x22,0x12,
+ 0x68,0x70,0x90,0x42,0x98,0xEF,0xF0,0x90,
+ 0x42,0x98,0xE0,0x70,0x03,0x7F,0x06,0x22,
+ 0x12,0x4A,0xE7,0xEF,0x60,0x01,0x22,0x7F,
+ 0x00,0x22,0x12,0x67,0xB7,0xEF,0x60,0x01,
+ 0x22,0x7F,0x00,0x22,0x90,0x45,0x74,0xEF,
+ 0xF0,0xA3,0xED,0xF0,0xEB,0x70,0x61,0x90,
+ 0x45,0x77,0xE0,0xFF,0xB4,0x01,0x0A,0x90,
+ 0x45,0x79,0xE0,0x90,0xF0,0x01,0xF0,0x80,
+ 0x14,0xEF,0xB4,0x02,0x10,0x90,0x45,0x78,
+ 0xE0,0x90,0xF0,0x01,0xF0,0x90,0x45,0x79,
+ 0xE0,0x90,0xF0,0x02,0xF0,0x90,0x45,0x77,
+ 0xE0,0x24,0x01,0xF5,0x82,0xE4,0x34,0xF0,
+ 0xAF,0x82,0xFE,0x90,0x45,0x7A,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0x90,0x45,0x7D,0xE0,0xFB,
+ 0x12,0x48,0x86,0x90,0x45,0x74,0xE0,0xFF,
+ 0xA3,0xE0,0xFD,0x90,0x45,0x7D,0xE0,0xFE,
+ 0x90,0x45,0x77,0xE0,0x2E,0xFB,0x90,0x46,
+ 0x04,0x74,0x01,0xF0,0x12,0x7E,0xD9,0x22,
+ 0x90,0x45,0x77,0xE0,0x70,0x22,0x90,0x45,
+ 0x74,0xE0,0xFF,0xA3,0xE0,0x44,0x01,0xFD,
+ 0x90,0x45,0x7D,0xE0,0xFB,0x90,0x46,0x04,
+ 0x74,0x01,0xF0,0x12,0x7E,0xD9,0x90,0x45,
+ 0x7E,0xEF,0xF0,0x60,0x5F,0xE0,0xFF,0x22,
+ 0x7E,0xF0,0x7F,0x01,0x90,0x45,0x77,0xE0,
+ 0xFD,0xC3,0x74,0x7A,0x9D,0xF9,0x74,0x45,
+ 0x94,0x00,0xFC,0xAD,0x01,0xE0,0xFB,0x12,
+ 0x48,0x86,0x90,0x45,0x74,0xE0,0xFF,0xA3,
+ 0xE0,0xFD,0x90,0x45,0x77,0xE0,0xFB,0x90,
+ 0x46,0x04,0x74,0x01,0xF0,0x12,0x7E,0xD9,
+ 0x90,0x45,0x7E,0xEF,0xF0,0x60,0x03,0xE0,
+ 0xFF,0x22,0x90,0x45,0x74,0xE0,0xFF,0xA3,
+ 0xE0,0x44,0x01,0xFD,0x90,0x45,0x7D,0xE0,
+ 0xFB,0x90,0x46,0x04,0x74,0x01,0xF0,0x12,
+ 0x7E,0xD9,0x90,0x45,0x7E,0xEF,0xF0,0x60,
+ 0x03,0xE0,0xFF,0x22,0x90,0x45,0x7A,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x7C,0xF0,0x7D,0x00,
+ 0x90,0x45,0x7D,0xE0,0xFB,0x12,0x48,0x86,
+ 0x7F,0x00,0x22,0x90,0x45,0x7F,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0xA3,0xEC,0xF0,0xA3,0xED,
+ 0xF0,0x90,0x45,0x77,0x74,0x01,0xF0,0x90,
+ 0x45,0x7F,0xE0,0xFF,0xA3,0xE0,0x90,0x45,
+ 0x78,0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x45,
+ 0x81,0xE0,0xFF,0xA3,0xE0,0x90,0x45,0x7A,
+ 0xCF,0xF0,0xA3,0xEF,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x04,0xF0,0x7D,0xC0,0x7F,0x02,0x12,
+ 0x56,0x45,0x22,0x90,0x45,0x83,0xEF,0xF0,
+ 0xA3,0xED,0xF0,0xA3,0xEB,0xF0,0x90,0x45,
+ 0x89,0x74,0x9C,0xF0,0xA3,0x74,0x40,0xF0,
+ 0xE5,0x16,0x60,0x03,0xE4,0xF5,0x16,0xE5,
+ 0x16,0x60,0x67,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x85,
+ 0x16,0x16,0x05,0x16,0x85,0x16,0x16,0x05,
+ 0x16,0x85,0x16,0x16,0x05,0x16,0x85,0x16,
+ 0x16,0x05,0x16,0x85,0x16,0x16,0x05,0x16,
+ 0x85,0x16,0x16,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x85,
+ 0x16,0x16,0x05,0x16,0x85,0x16,0x16,0x05,
+ 0x16,0x85,0x16,0x16,0x05,0x16,0x85,0x16,
+ 0x16,0x05,0x16,0x85,0x16,0x16,0x05,0x16,
+ 0x85,0x16,0x16,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x85,
+ 0x16,0x16,0x05,0x16,0x85,0x16,0x16,0x85,
+ 0x16,0x16,0x90,0x45,0x84,0xE0,0x90,0xF0,
+ 0x00,0xF0,0x90,0x83,0xED,0xE0,0xB4,0x01,
+ 0x27,0x90,0x83,0xF3,0xE0,0xFF,0x90,0x83,
+ 0xF2,0xE0,0x2F,0xFF,0xE4,0x33,0xFE,0xC3,
+ 0xEF,0x94,0x05,0xEE,0x64,0x80,0x94,0x80,
+ 0x50,0x05,0x12,0x7D,0xA1,0x80,0x09,0x90,
+ 0x45,0x87,0x74,0x05,0xF0,0x02,0x59,0x64,
+ 0x05,0x16,0x05,0x16,0x05,0x16,0x05,0x16,
+ 0x90,0xF1,0x03,0xE0,0x90,0x45,0x88,0xF0,
+ 0x90,0xF6,0xB5,0xE0,0x54,0xF7,0x44,0x08,
+ 0xF0,0xE0,0x54,0xF7,0xF0,0x90,0x45,0x83,
+ 0xE0,0xFF,0xB4,0x01,0x09,0x90,0xF1,0x04,
+ 0xE0,0x54,0xF3,0xF0,0x80,0x18,0xEF,0xB4,
+ 0x02,0x0B,0x90,0xF1,0x04,0xE0,0x54,0xF3,
+ 0x44,0x08,0xF0,0x80,0x09,0x90,0xF1,0x04,
+ 0xE0,0x54,0xF3,0x44,0x04,0xF0,0x90,0x45,
+ 0x84,0xE0,0x54,0x01,0xFF,0x90,0xF1,0x00,
+ 0xE0,0x54,0xFE,0x4F,0xF0,0x90,0x45,0x85,
+ 0xE0,0x90,0xF1,0x01,0xF0,0x12,0x7E,0x84,
+ 0x90,0x45,0x86,0xE0,0x64,0x01,0x60,0x03,
+ 0x02,0x59,0x42,0x90,0xF1,0x02,0xE0,0x20,
+ 0xE2,0x16,0xE0,0x20,0xE1,0x12,0xE0,0x20,
+ 0xE3,0x0E,0x90,0x45,0x89,0x74,0xFF,0xF5,
+ 0xF0,0x12,0x80,0x6F,0x45,0xF0,0x70,0xE3,
+ 0x90,0x45,0x89,0xE0,0x70,0x02,0xA3,0xE0,
+ 0x70,0x25,0x05,0x16,0x85,0x16,0x16,0x05,
+ 0x16,0x85,0x16,0x16,0x85,0x16,0x16,0x85,
+ 0x16,0x16,0x90,0xF6,0xB5,0xE0,0x54,0xF7,
+ 0x44,0x08,0xF0,0xE0,0x54,0xF7,0xF0,0x90,
+ 0x45,0x87,0x74,0x04,0xF0,0x80,0x49,0x90,
+ 0xF1,0x02,0xE0,0x30,0xE2,0x08,0x90,0x45,
+ 0x87,0x74,0x02,0xF0,0x80,0x3A,0x90,0x45,
+ 0x84,0xE0,0x30,0xE0,0x16,0x90,0xF1,0x02,
+ 0xE0,0x30,0xE1,0x08,0x90,0x45,0x87,0x74,
+ 0x01,0xF0,0x80,0x24,0xE4,0x90,0x45,0x87,
+ 0xF0,0x80,0x1D,0x90,0xF1,0x02,0xE0,0x30,
+ 0xE3,0x08,0x90,0x45,0x87,0x74,0x01,0xF0,
+ 0x80,0x0E,0xE4,0x90,0x45,0x87,0xF0,0x80,
+ 0x07,0xE4,0x90,0x45,0x87,0xF0,0x80,0x1B,
+ 0x90,0x45,0x84,0xE0,0x30,0xE0,0x0B,0x90,
+ 0xF1,0x02,0xE0,0x54,0xF7,0x44,0x08,0xF0,
+ 0x80,0x09,0x90,0xF1,0x02,0xE0,0x54,0xFD,
+ 0x44,0x02,0xF0,0x90,0x45,0x88,0xE0,0x90,
+ 0xF1,0x03,0xF0,0x90,0x45,0x87,0xE0,0xFF,
+ 0x22,0x90,0xF6,0x13,0xE0,0x30,0xE0,0x03,
+ 0x7F,0x03,0x22,0x90,0xF6,0xB4,0xE0,0x30,
+ 0xE0,0x03,0x7F,0x00,0x22,0x90,0xF6,0x6F,
+ 0xE0,0x30,0xE0,0x03,0x7F,0x02,0x22,0x7F,
+ 0x01,0x22,0x90,0x41,0x7F,0xE0,0x90,0x45,
+ 0x8B,0xF0,0xE0,0x54,0xF9,0xFF,0xBF,0x38,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0xEF,
+ 0x54,0x01,0xFF,0x90,0xD8,0x1A,0xE0,0x54,
+ 0xFE,0x4F,0xF0,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x85,
+ 0x16,0x16,0x05,0x16,0x85,0x16,0x16,0x05,
+ 0x16,0x85,0x16,0x16,0x90,0xD8,0x30,0xE0,
+ 0x54,0xFE,0x44,0x01,0xF0,0xA3,0xE0,0x54,
+ 0xFE,0xF0,0xA3,0xE0,0x54,0xFE,0xF0,0x90,
+ 0xD8,0x29,0xE0,0x54,0xFE,0xF0,0x90,0xF6,
+ 0xB3,0xE0,0x54,0xFE,0x44,0x01,0xF0,0x90,
+ 0xF6,0x32,0x74,0xFF,0xF0,0xA3,0xF0,0x90,
+ 0xF6,0x31,0xE0,0x54,0xFE,0x44,0x01,0xF0,
+ 0x90,0xF6,0x13,0xE0,0x54,0x01,0x90,0x42,
+ 0xE9,0xF0,0x12,0x7E,0x06,0x12,0x59,0x72,
+ 0x90,0x45,0x8D,0xEF,0xF0,0x90,0xF6,0xA0,
+ 0x74,0x04,0xF0,0x90,0x45,0x8D,0xE0,0x90,
+ 0xF6,0xA1,0xF0,0x90,0xF6,0xDE,0xE0,0x54,
+ 0xFE,0x44,0x01,0xF0,0x90,0xF6,0xDE,0xE0,
+ 0x20,0xE0,0xF9,0x90,0xDF,0x82,0xE0,0x44,
+ 0x20,0xF0,0x90,0xDD,0x17,0xE0,0x54,0xFE,
+ 0xF0,0xC2,0xDC,0xD2,0xBC,0x12,0x48,0xA5,
+ 0xD2,0xE9,0x12,0x53,0x65,0x12,0x6A,0x52,
+ 0x90,0xF4,0x18,0xE4,0xF0,0xA3,0xE0,0x54,
+ 0xF0,0x44,0x08,0xF0,0x90,0xF4,0x1E,0xE0,
+ 0x54,0xEF,0x44,0x10,0xF0,0xD2,0xB8,0xC2,
+ 0xBA,0xD2,0xAF,0xD2,0xA8,0xD2,0xAA,0x90,
+ 0xDF,0x82,0xE0,0x30,0xE0,0x1A,0xA2,0xDD,
+ 0xE4,0x33,0x90,0x43,0xF5,0xF0,0xC2,0xDD,
+ 0x90,0xDF,0x82,0x74,0x20,0xF0,0xE4,0xF0,
+ 0x90,0x43,0xF5,0xE0,0x24,0xFF,0x92,0xDD,
+ 0x90,0x41,0x81,0xE0,0xFF,0x90,0x45,0xA6,
+ 0xE0,0x6F,0x60,0x1C,0xA2,0xDD,0xE4,0x33,
+ 0x90,0x43,0xF5,0xF0,0xC2,0xDD,0xE4,0x90,
+ 0x45,0xB9,0xF0,0x90,0x45,0xA6,0xEF,0xF0,
+ 0x90,0x43,0xF5,0xE0,0x24,0xFF,0x92,0xDD,
+ 0x12,0x79,0xFA,0x90,0x45,0x8C,0xE0,0xB4,
+ 0x07,0x05,0x12,0x7A,0x92,0x80,0xA8,0x12,
+ 0x7A,0x92,0x80,0xA3,0x22,0x22,0x22,0x90,
+ 0x45,0x8E,0xEE,0xF0,0xA3,0xEF,0xF0,0xE4,
+ 0xA3,0xF0,0xA3,0xF0,0xFC,0xEC,0xC3,0x9D,
+ 0x50,0x43,0xEC,0x30,0xE0,0x1F,0x90,0x45,
+ 0x8E,0xE0,0xFE,0xA3,0xE0,0x2C,0xF5,0x82,
+ 0xE4,0x3E,0xF5,0x83,0xE0,0xFF,0x90,0x45,
+ 0x91,0xE0,0x2F,0xF0,0x90,0x45,0x90,0xE0,
+ 0x34,0x00,0xF0,0x80,0x1D,0x90,0x45,0x8E,
+ 0xE0,0xFE,0xA3,0xE0,0x2C,0xF5,0x82,0xE4,
+ 0x3E,0xF5,0x83,0xE0,0xFE,0x90,0x45,0x91,
+ 0xE0,0x24,0x00,0xF0,0x90,0x45,0x90,0xE0,
+ 0x3E,0xF0,0x0C,0x80,0xB8,0x90,0x45,0x90,
+ 0xE0,0xFE,0xA3,0xE0,0xF4,0xFF,0xEE,0xF4,
+ 0xFE,0x22,0x90,0xF7,0x00,0xE0,0x24,0xFE,
+ 0xFD,0x7F,0x01,0x7E,0xF7,0x12,0x5A,0xD0,
+ 0x90,0xF7,0x00,0xE0,0x24,0xFF,0xF5,0x82,
+ 0xE4,0x34,0xF6,0xF5,0x83,0xEE,0xF0,0xA3,
+ 0xEF,0xF0,0x22,0x8F,0x0A,0xE5,0x0A,0x24,
+ 0x04,0x90,0xF7,0x00,0xF0,0x90,0xF7,0x03,
+ 0xE0,0x90,0xF7,0x01,0xF0,0xA3,0xE4,0xF0,
+ 0xE5,0x0A,0x24,0x05,0x90,0xF4,0x12,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,0xF0,
+ 0x75,0x08,0xF7,0x75,0x09,0x03,0xE5,0x0A,
+ 0x60,0x3C,0xB4,0x01,0x0E,0x8D,0x82,0x8C,
+ 0x83,0xE0,0x85,0x09,0x82,0x85,0x08,0x83,
+ 0xF0,0x80,0x2B,0x8D,0x82,0x8C,0x83,0xE0,
+ 0xFF,0xA3,0xE0,0x85,0x09,0x82,0x85,0x08,
+ 0x83,0xCF,0xF0,0xA3,0xEF,0xF0,0x74,0x02,
+ 0x2D,0xFD,0xE4,0x3C,0xFC,0x74,0x02,0x25,
+ 0x09,0xF5,0x09,0xE4,0x35,0x08,0xF5,0x08,
+ 0x15,0x0A,0x15,0x0A,0x80,0xC0,0x12,0x5B,
+ 0x33,0x22,0x90,0x45,0x92,0x74,0xFE,0xF0,
+ 0x90,0xF4,0x05,0xE0,0x20,0xE5,0x03,0x02,
+ 0x64,0x8E,0xE4,0xF5,0x0C,0x90,0xF6,0xB4,
+ 0xE0,0x30,0xE0,0x1D,0x90,0xF4,0x09,0xE0,
+ 0xF4,0x60,0x16,0x90,0xF7,0x00,0xE0,0x04,
+ 0xFF,0x90,0xF4,0x09,0xE0,0xC3,0x9F,0x50,
+ 0x08,0x90,0xF4,0x05,0xE0,0x44,0x20,0xF0,
+ 0x22,0x90,0xF6,0xB4,0xE0,0x30,0xE0,0x05,
+ 0x90,0xF4,0x09,0xE4,0xF0,0x90,0xF6,0xB4,
+ 0xE0,0x20,0xE0,0x44,0x90,0xF6,0x6F,0xE0,
+ 0x20,0xE0,0x3D,0x90,0xF6,0x04,0xE0,0x54,
+ 0xF0,0x60,0x35,0x90,0xF6,0x03,0xE0,0x04,
+ 0xF0,0x90,0xF4,0x05,0x74,0x20,0xF0,0x90,
+ 0x45,0xA5,0xE0,0x04,0xF0,0x70,0x06,0x90,
+ 0x45,0xA4,0xE0,0x04,0xF0,0x90,0xF6,0x04,
+ 0xE0,0x30,0xE1,0xF9,0x90,0xF6,0x04,0xE4,
+ 0xF0,0xE0,0x44,0x01,0xF0,0xE0,0x54,0xFE,
+ 0xF0,0x90,0xF6,0x03,0xE0,0x14,0xF0,0x22,
+ 0x90,0xF7,0x01,0xE0,0x54,0x70,0x60,0x04,
+ 0x12,0x7B,0x67,0x22,0x90,0xF7,0x03,0xE0,
+ 0x90,0x45,0x97,0xF0,0x90,0xF7,0x00,0xE0,
+ 0x64,0x03,0x70,0x2C,0xA3,0xE0,0x64,0x02,
+ 0x70,0x26,0x90,0xF7,0x00,0x04,0xF0,0x90,
+ 0xF7,0x02,0xE0,0xFE,0xA3,0xE0,0xF5,0x82,
+ 0x8E,0x83,0xE0,0x90,0xF7,0x01,0xF0,0x90,
+ 0xF4,0x12,0x74,0x02,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0xE0,0x54,0xFC,0xF0,0x02,0x63,0xEF,
+ 0x90,0xF7,0x00,0xE0,0xB4,0x04,0x1E,0xA3,
+ 0xE0,0xB4,0x03,0x19,0x90,0xF7,0x04,0xE0,
+ 0xFF,0x90,0xF7,0x02,0xE0,0xFC,0xA3,0xE0,
+ 0xF5,0x82,0x8C,0x83,0xEF,0xF0,0x90,0xF4,
+ 0x05,0x74,0x20,0xF0,0x22,0x90,0xF7,0x00,
+ 0xE0,0xB4,0x04,0x0D,0xA3,0xE0,0xB4,0x04,
+ 0x08,0x90,0x45,0x93,0x74,0x01,0xF0,0x80,
+ 0x12,0x90,0xF7,0x00,0xE0,0x64,0x05,0x70,
+ 0x75,0xA3,0xE0,0x64,0x05,0x70,0x6F,0x90,
+ 0x45,0x93,0xF0,0x90,0xF7,0x02,0xE0,0xFD,
+ 0x90,0x45,0x93,0xE0,0xFB,0x90,0xF7,0x03,
+ 0xE0,0x90,0x45,0x77,0xF0,0x90,0xF7,0x04,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x45,0x78,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0xEB,0x60,0x06,0x7E,
+ 0xF7,0x7F,0x01,0x80,0x04,0x7E,0xF7,0x7F,
+ 0x06,0x90,0x45,0x7A,0xEE,0xF0,0xA3,0xEF,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x04,0xF0,0x7F,
+ 0x02,0x12,0x56,0x45,0x90,0x45,0x95,0xEF,
+ 0xF0,0x90,0x45,0x93,0xE0,0x70,0x07,0x90,
+ 0xF4,0x05,0x74,0x20,0xF0,0x22,0x90,0xF7,
+ 0x00,0x74,0x01,0xF0,0x90,0x45,0x95,0xE0,
+ 0x70,0x03,0x02,0x5C,0x88,0x90,0xF7,0x01,
+ 0x74,0xFF,0xF0,0x02,0x5C,0x88,0x90,0x45,
+ 0x92,0x74,0xFF,0xF0,0x85,0x16,0x16,0x85,
+ 0x16,0x16,0x90,0xF7,0x00,0xE0,0xF5,0x0B,
+ 0x24,0xFE,0xFD,0x7F,0x01,0x7E,0xF7,0x12,
+ 0x5A,0xD0,0x74,0xFF,0x25,0x0B,0xF5,0x82,
+ 0xE4,0x34,0xF6,0xF5,0x83,0xE0,0xFC,0xA3,
+ 0xE0,0x6F,0x70,0x02,0xEC,0x6E,0x60,0x03,
+ 0x02,0x63,0xEC,0x90,0x45,0x9D,0x74,0x01,
+ 0xF0,0x90,0xF7,0x01,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xEE,0x60,0x03,0x02,0x63,0xE6,0xEF,
+ 0x12,0x80,0xB1,0x60,0x4F,0x00,0x5D,0xD0,
+ 0x01,0x5E,0xF5,0x02,0x5E,0xEE,0x03,0x5F,
+ 0xA8,0x04,0x5F,0xA1,0x05,0x60,0x67,0x06,
+ 0x5E,0x77,0x18,0x5E,0x30,0x22,0x61,0xE5,
+ 0x23,0x63,0xDB,0x25,0x62,0xA5,0x29,0x62,
+ 0x1A,0x2A,0x62,0x31,0x2B,0x60,0x67,0x30,
+ 0x60,0xEA,0x32,0x00,0x00,0x63,0xE6,0x90,
+ 0xF6,0xB4,0xE0,0x54,0x08,0xF5,0x0C,0x60,
+ 0x04,0xE0,0x54,0xF7,0xF0,0x90,0xF7,0x04,
+ 0xE0,0xF5,0x0B,0x90,0xF7,0x08,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x80,0x00,0x12,0x7B,0x64,
+ 0xEF,0x70,0x2B,0xE5,0x0B,0x60,0x27,0x15,
+ 0x0B,0x74,0x0A,0x25,0x0B,0xF5,0x82,0xE4,
+ 0x34,0xF7,0xF5,0x83,0xE0,0xFF,0xE5,0x0B,
+ 0xFD,0x7C,0x00,0x90,0xF7,0x08,0xE0,0xFA,
+ 0xA3,0xE0,0x2D,0xFD,0xEC,0x3A,0x8D,0x82,
+ 0xF5,0x83,0xEF,0xF0,0x80,0xD5,0xE5,0x0C,
+ 0x60,0x07,0x90,0xF6,0xB4,0xE0,0x44,0x08,
+ 0xF0,0xE4,0xF5,0x0C,0x02,0x63,0xEF,0x90,
+ 0xF4,0x12,0x74,0x09,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0xE0,0x54,0xFC,0xF0,0x90,0xF7,0x00,
+ 0x74,0x08,0xF0,0x90,0xF7,0x03,0xE0,0x90,
+ 0xF7,0x01,0xF0,0xA3,0xE4,0xF0,0x90,0x83,
+ 0xE9,0xE0,0x90,0xF7,0x03,0xF0,0x90,0x83,
+ 0xEA,0xE0,0x90,0xF7,0x04,0xF0,0x90,0x83,
+ 0xEB,0xE0,0x90,0xF7,0x05,0xF0,0x90,0x83,
+ 0xEC,0xE0,0x90,0xF7,0x06,0xF0,0xE4,0x90,
+ 0x45,0x92,0xF0,0x02,0x63,0xEF,0x90,0xF7,
+ 0x00,0x74,0x08,0xF0,0x90,0xF7,0x03,0xE0,
+ 0x90,0xF7,0x01,0xF0,0x90,0x45,0xB9,0xE0,
+ 0x60,0x40,0xE4,0x90,0x45,0xB9,0xF0,0x90,
+ 0xF7,0x02,0xF0,0x90,0x45,0xB8,0x04,0xF0,
+ 0x90,0x45,0xBA,0xE0,0xFF,0x90,0x45,0x9F,
+ 0xF0,0x90,0xDE,0x80,0xE0,0x90,0xF7,0x03,
+ 0xF0,0x90,0xDE,0x81,0xE0,0x90,0xF7,0x04,
+ 0xF0,0x90,0xDE,0x82,0xE0,0x90,0xF7,0x05,
+ 0xF0,0x90,0xDE,0x83,0xE0,0x90,0xF7,0x06,
+ 0xF0,0x90,0x45,0x9F,0xE0,0xB5,0x07,0xC2,
+ 0x80,0x06,0x90,0xF7,0x02,0x74,0x01,0xF0,
+ 0x90,0xF7,0x00,0xE0,0x04,0x90,0xF4,0x12,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,
+ 0xF0,0xE4,0x90,0x45,0xB8,0xF0,0x90,0x45,
+ 0x92,0xF0,0x02,0x63,0xEF,0xE4,0x90,0x45,
+ 0x93,0xF0,0x80,0x06,0x90,0x45,0x93,0x74,
+ 0x01,0xF0,0x90,0x45,0x94,0x74,0x02,0xF0,
+ 0x90,0x45,0x93,0xE0,0x60,0x07,0x90,0xF7,
+ 0x04,0xE0,0xFF,0x80,0x02,0x7F,0x00,0xEF,
+ 0x24,0x04,0x90,0x45,0x96,0xF0,0x90,0xF7,
+ 0x05,0xE0,0xB4,0x01,0x08,0x90,0x42,0xEA,
+ 0xE0,0xFF,0xFD,0x80,0x06,0x90,0xF7,0x05,
+ 0xE0,0xFF,0xFD,0x90,0x45,0x93,0xE0,0xFB,
+ 0x90,0xF7,0x06,0xE0,0x90,0x45,0x77,0xF0,
+ 0x90,0xF7,0x07,0xE0,0xFF,0xA3,0xE0,0x90,
+ 0x45,0x78,0xCF,0xF0,0xA3,0xEF,0xF0,0xEB,
+ 0x60,0x06,0x7E,0xF7,0x7F,0x03,0x80,0x04,
+ 0x7E,0xF7,0x7F,0x09,0x90,0x45,0x7A,0xEE,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0xF7,0x04,0xE0,
+ 0xFF,0x90,0x45,0x7C,0xE4,0xF0,0xA3,0xEF,
+ 0xF0,0x7F,0x02,0x12,0x56,0x45,0x90,0x45,
+ 0x95,0xEF,0xF0,0xA3,0xE0,0xFF,0x90,0xF7,
+ 0x00,0xF0,0x90,0x45,0x97,0xE0,0x90,0xF7,
+ 0x01,0xF0,0x90,0x45,0x95,0xE0,0x90,0xF7,
+ 0x02,0xF0,0xEF,0x04,0x90,0xF4,0x12,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,0xF0,
+ 0xE4,0x90,0x45,0x92,0xF0,0x02,0x63,0xEF,
+ 0xE4,0x90,0x45,0x93,0xF0,0x80,0x06,0x90,
+ 0x45,0x93,0x74,0x01,0xF0,0x90,0x42,0xE9,
+ 0xE0,0x60,0x04,0x7F,0x01,0x80,0x02,0x7F,
+ 0x03,0x90,0x45,0x94,0xEF,0xF0,0x90,0x45,
+ 0x93,0xE0,0xFB,0x60,0x07,0x90,0xF7,0x04,
+ 0xE0,0xFF,0x80,0x02,0x7F,0x00,0xEF,0x24,
+ 0x04,0x90,0x45,0x96,0xF0,0x90,0xF7,0x05,
+ 0xE0,0xB4,0x01,0x08,0x90,0x42,0xEA,0xE0,
+ 0xFF,0xFD,0x80,0x06,0x90,0xF7,0x05,0xE0,
+ 0xFF,0xFD,0x90,0xF7,0x08,0xE0,0x90,0x45,
+ 0x66,0xF0,0xEB,0x60,0x06,0x7E,0xF7,0x7F,
+ 0x03,0x80,0x04,0x7E,0xF7,0x7F,0x09,0x90,
+ 0x45,0x67,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,
+ 0xF7,0x04,0xE0,0xFF,0x90,0x45,0x69,0xE4,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x45,0x94,0xE0,
+ 0xFF,0x12,0x54,0x23,0x90,0x45,0x95,0xEF,
+ 0xF0,0xA3,0xE0,0xFF,0x90,0xF7,0x00,0xF0,
+ 0x90,0x45,0x97,0xE0,0x90,0xF7,0x01,0xF0,
+ 0x90,0x45,0x95,0xE0,0x90,0xF7,0x02,0xF0,
+ 0xEF,0x04,0x90,0xF4,0x12,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xE0,0x54,0xFC,0xF0,0xE4,0x90,
+ 0x45,0x92,0xF0,0x02,0x63,0xEF,0x90,0xF7,
+ 0x04,0xE0,0xFF,0x90,0xF7,0x08,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0x12,0x5B,0x54,0xE4,0x90,
+ 0x45,0x92,0xF0,0x02,0x63,0xEF,0xC2,0x8C,
+ 0xC2,0x8D,0xE4,0xF5,0x8A,0xF5,0x8C,0xE5,
+ 0x89,0x54,0xF0,0x44,0x01,0xF5,0x89,0xD2,
+ 0x8C,0xE4,0x90,0x45,0xA0,0xF0,0x90,0xF4,
+ 0x04,0xE0,0x54,0x04,0xFF,0x13,0x13,0x54,
+ 0x3F,0x60,0x1F,0xE0,0x54,0xFB,0x44,0x04,
+ 0xF0,0xA3,0x74,0x20,0xF0,0x90,0xF4,0x14,
+ 0xE0,0x54,0x7F,0xF0,0x90,0xF4,0x11,0xE0,
+ 0x54,0xFC,0x44,0x02,0xF0,0xC2,0x8C,0xC2,
+ 0x8D,0x22,0x30,0x8D,0xD1,0xC2,0x8C,0xC2,
+ 0x8D,0x90,0x45,0xA0,0xE0,0x04,0xF0,0xE0,
+ 0xD3,0x94,0x01,0x40,0x28,0x90,0xF4,0x14,
+ 0xE0,0x54,0x7F,0x44,0x80,0xF0,0xE0,0x54,
+ 0xFC,0xF0,0x90,0xF4,0x13,0x74,0x08,0xF0,
+ 0x90,0xF4,0x12,0xE4,0xF0,0x90,0xF4,0x05,
+ 0x74,0x20,0xF0,0x90,0xF4,0x11,0xE0,0x54,
+ 0xFC,0x44,0x01,0xF0,0x22,0xD2,0x8C,0x80,
+ 0x95,0x90,0xF7,0x0A,0xE0,0xFF,0x90,0x45,
+ 0x9D,0xF0,0x90,0x45,0xA1,0xF0,0x90,0xF4,
+ 0x14,0xE0,0x30,0xE7,0x1F,0x90,0xF7,0x04,
+ 0xE0,0x54,0x03,0xFF,0x90,0xF4,0x14,0xE0,
+ 0x54,0xFC,0x4F,0xF0,0x90,0xF7,0x05,0xE0,
+ 0x90,0xF4,0x13,0xF0,0x90,0xF7,0x06,0xE0,
+ 0x90,0xF4,0x12,0xF0,0x90,0xF4,0x05,0x74,
+ 0x20,0xF0,0x90,0xF4,0x11,0xE0,0x54,0x03,
+ 0x60,0x08,0x90,0x45,0xA2,0xE0,0x64,0x01,
+ 0x60,0x1B,0x90,0xF7,0x07,0xE0,0xB4,0xF0,
+ 0x0B,0x90,0xF4,0x11,0xE0,0x54,0xFC,0x44,
+ 0x02,0xF0,0x80,0x09,0x90,0xF4,0x11,0xE0,
+ 0x54,0xFC,0x44,0x01,0xF0,0xE4,0x90,0x45,
+ 0xA2,0xF0,0x90,0x45,0xA1,0xE0,0xB4,0x01,
+ 0x0A,0x90,0xF4,0x04,0xE0,0x54,0xFB,0x44,
+ 0x04,0xF0,0x22,0x90,0xF4,0x05,0xE0,0x20,
+ 0xE5,0x09,0x90,0xF4,0x15,0xE0,0xC3,0x94,
+ 0x05,0x40,0xF0,0x90,0xF4,0x04,0xE0,0x54,
+ 0xFB,0x44,0x04,0xF0,0xA3,0xE0,0x30,0xE5,
+ 0x07,0x90,0x45,0xA2,0x74,0x01,0xF0,0x22,
+ 0x90,0x45,0x9D,0xE0,0x14,0xF0,0x70,0x03,
+ 0x02,0x64,0x8E,0x90,0xF4,0x15,0xE0,0x70,
+ 0xFA,0xA3,0xE0,0x70,0xF6,0xA3,0xE0,0x54,
+ 0x03,0x70,0xF0,0x90,0xF4,0x04,0xE0,0x54,
+ 0x04,0xFF,0x13,0x13,0x54,0x3F,0x60,0x0C,
+ 0x90,0x45,0xA3,0xE0,0xC3,0x94,0xFF,0x50,
+ 0x03,0xE0,0x04,0xF0,0x90,0xF4,0x05,0xE0,
+ 0x20,0xE5,0x0D,0x90,0xF4,0x04,0xE0,0x54,
+ 0x04,0xFF,0x13,0x13,0x54,0x3F,0x60,0xEC,
+ 0x90,0xF4,0x05,0xE0,0x20,0xE5,0x03,0x02,
+ 0x61,0x23,0x90,0xF4,0x04,0xE0,0x54,0xFB,
+ 0x44,0x04,0xF0,0x22,0xD2,0x89,0x90,0xF6,
+ 0xB3,0xE0,0x54,0xFE,0xF0,0x90,0xF6,0xDE,
+ 0xE0,0x54,0xFE,0x44,0x01,0xF0,0x90,0xF6,
+ 0xDE,0xE0,0x20,0xE0,0xF9,0x90,0x42,0xE9,
+ 0xE0,0x60,0x07,0x90,0xDD,0x00,0xE0,0x54,
+ 0x7F,0xF0,0x90,0xF4,0x05,0x74,0x20,0xF0,
+ 0x90,0xF6,0x2F,0xE0,0x54,0xFE,0x44,0x01,
+ 0xF0,0x90,0x45,0x93,0x74,0x01,0xF0,0x90,
+ 0xF7,0x06,0xE0,0x44,0x01,0xF0,0x90,0xF7,
+ 0x03,0xE0,0x90,0xF7,0x01,0xF0,0x80,0x1D,
+ 0xE4,0x90,0x45,0x93,0xF0,0x90,0xF7,0x03,
+ 0xE0,0x90,0xF7,0x01,0xF0,0x7E,0xF0,0x7F,
+ 0x01,0x90,0xF7,0x04,0xE0,0xFB,0x7D,0x07,
+ 0x7C,0xF7,0x12,0x48,0x86,0x90,0xF7,0x04,
+ 0xE0,0xF5,0x0B,0xA3,0xE0,0xFF,0xA3,0xE0,
+ 0xFD,0x90,0x46,0x04,0x74,0x01,0xF0,0xAB,
+ 0x0B,0x12,0x7E,0xD9,0x8F,0x0C,0x90,0xF7,
+ 0x02,0xEF,0xF0,0x90,0x45,0x93,0xE0,0x64,
+ 0x01,0x60,0x03,0x02,0x63,0xEF,0x7C,0xF0,
+ 0x7D,0x00,0x90,0xF7,0x04,0xE0,0xFB,0x7F,
+ 0x03,0x7E,0xF7,0x12,0x48,0x86,0xE4,0x90,
+ 0x45,0x92,0xF0,0xE5,0x0B,0x24,0x04,0x90,
+ 0xF7,0x00,0xF0,0xE0,0x04,0x90,0xF4,0x12,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,
+ 0xF0,0x02,0x63,0xEF,0x90,0x45,0x9B,0x74,
+ 0xF7,0xF0,0xA3,0x74,0x08,0xF0,0x90,0xF7,
+ 0x04,0xE0,0x24,0xFE,0x60,0x10,0x14,0x60,
+ 0x7F,0x24,0x02,0x60,0x03,0x02,0x63,0xCD,
+ 0x75,0x0C,0x01,0x02,0x63,0xD0,0x90,0xF7,
+ 0x07,0xE0,0x75,0xF0,0x02,0xA4,0x24,0x08,
+ 0xFE,0xE5,0xF0,0x34,0xF7,0x90,0x45,0x99,
+ 0xF0,0xA3,0xCE,0xF0,0xE4,0x90,0x45,0x98,
+ 0xF0,0x90,0xF7,0x07,0xE0,0xFF,0x90,0x45,
+ 0x98,0xE0,0xC3,0x9F,0x50,0x44,0xA3,0xE0,
+ 0xFE,0xA3,0xE0,0xF5,0x82,0x8E,0x83,0xE0,
+ 0xFF,0x90,0x45,0x9B,0xE0,0xFC,0xA3,0xE0,
+ 0xF5,0x82,0x8C,0x83,0xE0,0xFC,0xA3,0xE0,
+ 0xF5,0x82,0x8C,0x83,0xEF,0xF0,0x90,0x45,
+ 0x98,0xE0,0x04,0xF0,0x90,0x45,0x9A,0xE0,
+ 0x04,0xF0,0x70,0x06,0x90,0x45,0x99,0xE0,
+ 0x04,0xF0,0x90,0x45,0x9C,0xE0,0x24,0x02,
+ 0xF0,0x90,0x45,0x9B,0xE0,0x34,0x00,0xF0,
+ 0x80,0xAF,0xE4,0xF5,0x0C,0x02,0x63,0xD0,
+ 0x90,0xF7,0x07,0xE0,0x75,0xF0,0x03,0xA4,
+ 0x24,0x08,0xFE,0xE5,0xF0,0x34,0xF7,0x90,
+ 0x45,0x99,0xF0,0xA3,0xCE,0xF0,0x90,0xF7,
+ 0x07,0xE0,0x75,0xF0,0x03,0xA4,0x24,0x08,
+ 0x90,0xF6,0x20,0xF0,0xE4,0x90,0x45,0x98,
+ 0xF0,0x90,0xF7,0x07,0xE0,0xFF,0x90,0x45,
+ 0x98,0xE0,0xC3,0x9F,0x50,0x59,0x90,0x45,
+ 0x9B,0xE0,0xFE,0xA3,0xE0,0xFF,0x24,0x02,
+ 0xFD,0xE4,0x3E,0x8D,0x82,0xF5,0x83,0xE0,
+ 0xFD,0x90,0x45,0x9E,0xF0,0xFB,0x8F,0x82,
+ 0x8E,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,
+ 0x45,0x99,0xE0,0xFC,0xA3,0xE0,0xFD,0x12,
+ 0x48,0x86,0x90,0x45,0x9E,0xE0,0xFF,0x90,
+ 0x45,0x9A,0xE0,0x2F,0xF0,0x90,0x45,0x99,
+ 0xE0,0x34,0x00,0xF0,0x90,0x45,0x98,0xE0,
+ 0x04,0xF0,0x90,0x45,0x9B,0xE0,0xFE,0xA3,
+ 0xE0,0x24,0x03,0xFF,0xE4,0x3E,0x90,0x45,
+ 0x9B,0xF0,0xA3,0xEF,0xF0,0x80,0x9A,0xE4,
+ 0xF5,0x0C,0x80,0x03,0x12,0x7B,0x63,0x90,
+ 0x45,0x92,0x74,0xFF,0xF0,0xE4,0xF5,0x0C,
+ 0x80,0x14,0x90,0x45,0x92,0x74,0xFF,0xF0,
+ 0x75,0x0C,0xFA,0x80,0x09,0x12,0x7B,0x64,
+ 0xEF,0x70,0x03,0x75,0x0C,0x02,0x90,0x45,
+ 0x92,0xE0,0xFF,0xF4,0x60,0x3F,0xEF,0x64,
+ 0xFE,0x60,0x3A,0x12,0x5B,0x33,0x90,0xF4,
+ 0x05,0x74,0x20,0xF0,0x90,0x42,0xE9,0xE0,
+ 0x60,0x1B,0x7E,0xDE,0x7F,0x40,0x90,0xF7,
+ 0x00,0xE0,0x04,0xFB,0x7D,0x00,0x7C,0xF7,
+ 0x12,0x48,0x86,0x90,0xF7,0x00,0xE0,0x04,
+ 0x90,0xDD,0x86,0xF0,0x22,0x90,0x45,0x92,
+ 0xE0,0x54,0x03,0xFF,0x90,0xF4,0x11,0xE0,
+ 0x54,0xFC,0x4F,0xF0,0x22,0x90,0x45,0x92,
+ 0xE0,0xF4,0x70,0x23,0x90,0xF4,0x12,0x74,
+ 0x05,0xF0,0xA3,0xE4,0xF0,0xA3,0xE0,0x54,
+ 0xFC,0xF0,0x90,0xF7,0x00,0x74,0x04,0xF0,
+ 0x90,0xF7,0x03,0xE0,0x90,0xF7,0x01,0xF0,
+ 0xA3,0xE5,0x0C,0xF0,0x12,0x5B,0x33,0x90,
+ 0xF4,0x05,0x74,0x20,0xF0,0x90,0x42,0xE9,
+ 0xE0,0x60,0x1B,0x7E,0xDE,0x7F,0x40,0x90,
+ 0xF7,0x00,0xE0,0x04,0xFB,0x7D,0x00,0x7C,
+ 0xF7,0x12,0x48,0x86,0x90,0xF7,0x00,0xE0,
+ 0x04,0x90,0xDD,0x86,0xF0,0x22,0x90,0xF4,
+ 0x11,0xE0,0x54,0xFC,0xF0,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x90,0x42,0x98,0xE0,0x24,
+ 0xA0,0x60,0x2D,0x14,0x60,0x35,0x14,0x70,
+ 0x03,0x02,0x65,0x2F,0x24,0xFD,0x70,0x03,
+ 0x02,0x65,0x8F,0x14,0x70,0x03,0x02,0x65,
+ 0x99,0x24,0x16,0x60,0x03,0x02,0x65,0xFB,
+ 0x90,0x41,0x87,0xE0,0x90,0xDD,0x10,0xF0,
+ 0xE4,0x90,0x42,0x99,0xF0,0x02,0x66,0x04,
+ 0x90,0x41,0x95,0xE0,0xFF,0x12,0x4B,0x1E,
+ 0x02,0x66,0x04,0x90,0x42,0xEF,0xE0,0x60,
+ 0x29,0x78,0xBA,0x7C,0x41,0x7D,0x01,0x7B,
+ 0x01,0x7A,0x41,0x79,0xB1,0x7E,0x00,0x7F,
+ 0x09,0x12,0x81,0x99,0x90,0x41,0xBB,0x74,
+ 0x02,0xF0,0x7F,0x00,0x7E,0x40,0x12,0x4C,
+ 0xBF,0x7F,0x02,0x7E,0x00,0x12,0x4D,0x00,
+ 0x80,0x21,0x78,0xBA,0x7C,0x41,0x7D,0x01,
+ 0x7B,0x01,0x7A,0x42,0x79,0x9B,0x7E,0x00,
+ 0x7F,0x09,0x12,0x81,0x99,0x7F,0x02,0x7E,
+ 0x00,0x12,0x4C,0xBF,0x7F,0x14,0x7E,0x00,
+ 0x12,0x4D,0x00,0x90,0x41,0xBC,0xE0,0xFF,
+ 0x12,0x4B,0x1E,0x02,0x66,0x04,0xE4,0xFF,
+ 0x90,0x41,0x87,0xE0,0xFE,0xEF,0xC3,0x9E,
+ 0x50,0x2C,0x90,0x42,0x9A,0xE0,0xFE,0x90,
+ 0x42,0xF8,0xE0,0x75,0xF0,0x08,0xA4,0x2E,
+ 0xF5,0x82,0xE4,0x35,0xF0,0xF5,0x83,0xE5,
+ 0x82,0x24,0xF5,0xF5,0x82,0xE5,0x83,0x34,
+ 0x42,0xF5,0x83,0xE0,0xFE,0x90,0x42,0x9A,
+ 0xE0,0x2E,0xF0,0x0F,0x80,0xCA,0x90,0x42,
+ 0x9A,0xE0,0xFF,0x90,0x42,0xF8,0xE0,0x75,
+ 0xF0,0x08,0xA4,0x2F,0xF5,0x82,0xE4,0x35,
+ 0xF0,0xF5,0x83,0xE5,0x82,0x24,0xF5,0xF5,
+ 0x82,0xE5,0x83,0x34,0x42,0xF5,0x83,0xE0,
+ 0xFF,0x12,0x4B,0x1E,0x80,0x75,0x90,0x41,
+ 0xA7,0xE0,0xFF,0x12,0x4B,0x1E,0x80,0x6B,
+ 0x90,0x42,0xEF,0xE0,0x60,0x31,0x78,0xBA,
+ 0x7C,0x41,0x7D,0x01,0x7B,0x01,0x7A,0x42,
+ 0x79,0x9B,0x7E,0x00,0x7F,0x09,0x12,0x81,
+ 0x99,0x90,0x41,0xBB,0x74,0x07,0xF0,0x7F,
+ 0x02,0x7E,0x00,0x12,0x4C,0xBF,0x7F,0x14,
+ 0x7E,0x00,0x12,0x4D,0x00,0x90,0x41,0xBC,
+ 0xE0,0xFF,0x12,0x4B,0x1E,0x80,0x34,0x78,
+ 0xBA,0x7C,0x41,0x7D,0x01,0x7B,0x01,0x7A,
+ 0x41,0x79,0xB1,0x7E,0x00,0x7F,0x09,0x12,
+ 0x81,0x99,0x90,0x41,0xBC,0xE0,0xFF,0x12,
+ 0x4B,0x1E,0x7F,0x00,0x7E,0x40,0x12,0x4C,
+ 0xBF,0x7F,0x02,0x7E,0x00,0x12,0x4D,0x00,
+ 0x80,0x09,0x12,0x7B,0x64,0xEF,0x70,0x03,
+ 0x7F,0x07,0x22,0x7F,0x00,0x22,0x90,0x42,
+ 0x98,0xE0,0xFF,0x14,0x24,0xFD,0x50,0x3A,
+ 0x24,0xF4,0x70,0x03,0x02,0x66,0xA5,0x24,
+ 0xFD,0x70,0x03,0x02,0x66,0xAD,0x24,0xE2,
+ 0x70,0x03,0x02,0x66,0xDF,0x14,0x70,0x03,
+ 0x02,0x66,0xC5,0x24,0xB2,0x70,0x03,0x02,
+ 0x67,0x15,0x24,0xF0,0x70,0x03,0x02,0x67,
+ 0x25,0x24,0xF0,0x70,0x03,0x02,0x67,0x37,
+ 0x24,0xF0,0x70,0x03,0x02,0x67,0x47,0x02,
+ 0x67,0x59,0xEF,0xB4,0x01,0x26,0x90,0x42,
+ 0xEF,0xE0,0x60,0x10,0x90,0x41,0xB8,0xE0,
+ 0xFF,0xC4,0x13,0x13,0x54,0x01,0x90,0xDE,
+ 0x00,0xF0,0x80,0x32,0x90,0x42,0xA2,0xE0,
+ 0xFF,0xC4,0x13,0x13,0x54,0x01,0x90,0xDE,
+ 0x00,0xF0,0x80,0x22,0x90,0x42,0x98,0xE0,
+ 0xB4,0x02,0x07,0xE4,0x90,0xDE,0x00,0xF0,
+ 0x80,0x14,0x90,0x41,0x89,0xE0,0x54,0x0F,
+ 0x24,0x8D,0xF5,0x82,0xE4,0x34,0x41,0xF5,
+ 0x83,0xE0,0x90,0xDE,0x00,0xF0,0xE4,0x90,
+ 0xDE,0x01,0xF0,0x90,0x42,0x99,0x74,0x02,
+ 0xF0,0x02,0x67,0x62,0xE4,0x90,0x42,0x99,
+ 0xF0,0x02,0x67,0x62,0x90,0x41,0x89,0xE0,
+ 0x54,0x0F,0x24,0x8D,0xF5,0x82,0xE4,0x34,
+ 0x41,0xF5,0x83,0xE4,0xF0,0x90,0x42,0x99,
+ 0xF0,0x02,0x67,0x62,0x90,0x41,0x89,0xE0,
+ 0x54,0x0F,0x24,0x8D,0xF5,0x82,0xE4,0x34,
+ 0x41,0xF5,0x83,0x74,0x01,0xF0,0xE4,0x90,
+ 0x42,0x99,0xF0,0x02,0x67,0x62,0x90,0x42,
+ 0xEF,0xE0,0x60,0x08,0xE4,0x90,0x42,0xE7,
+ 0xF0,0x7F,0x07,0x22,0x90,0x41,0x8A,0xE0,
+ 0x14,0x24,0xFC,0x50,0x02,0x80,0x08,0x90,
+ 0x42,0xE7,0x74,0x01,0xF0,0x80,0x0E,0x12,
+ 0x7B,0x64,0xEF,0x70,0x08,0xE4,0x90,0x42,
+ 0xE7,0xF0,0x7F,0x07,0x22,0xE4,0x90,0x42,
+ 0x99,0xF0,0x80,0x4D,0x90,0x41,0x93,0xE0,
+ 0x90,0xDE,0x00,0xF0,0x90,0x42,0x99,0x74,
+ 0x01,0xF0,0x80,0x3D,0x12,0x6A,0x2D,0x90,
+ 0x41,0x87,0xE0,0x90,0x41,0x93,0xF0,0xE4,
+ 0x90,0x42,0x99,0xF0,0x80,0x2B,0x90,0x41,
+ 0x94,0xE0,0x90,0xDE,0x00,0xF0,0x90,0x42,
+ 0x99,0x74,0x01,0xF0,0x80,0x1B,0x12,0x6A,
+ 0x2D,0x90,0x41,0x87,0xE0,0x90,0x41,0x94,
+ 0xF0,0xE4,0x90,0x42,0x99,0xF0,0x80,0x09,
+ 0x12,0x7B,0x64,0xEF,0x70,0x03,0x7F,0x07,
+ 0x22,0x7F,0x00,0x22,0x90,0x42,0x98,0xE0,
+ 0x24,0xDE,0x60,0x1F,0x24,0xF7,0x60,0x2B,
+ 0x24,0xBF,0x60,0x0D,0x04,0x70,0x33,0x90,
+ 0x42,0x24,0xE0,0xFF,0x12,0x4B,0x1E,0x80,
+ 0x32,0x90,0x42,0x2B,0xE0,0xFF,0x12,0x4B,
+ 0x1E,0x80,0x28,0x90,0x42,0xE5,0xE0,0x90,
+ 0xDE,0x00,0xF0,0x90,0x42,0x99,0x74,0x01,
+ 0xF0,0x80,0x18,0x90,0x41,0x88,0xE0,0x90,
+ 0x42,0xE5,0xF0,0xE4,0x90,0x42,0x99,0xF0,
+ 0x80,0x09,0x12,0x7B,0x64,0xEF,0x70,0x03,
+ 0x7F,0x07,0x22,0x7F,0x00,0x22,0x90,0x42,
+ 0x98,0xE0,0x12,0x80,0xB1,0x68,0x01,0x01,
+ 0x68,0x01,0x02,0x68,0x01,0x03,0x68,0x01,
+ 0x10,0x68,0x01,0x13,0x68,0x01,0x22,0x68,
+ 0x01,0x2B,0x68,0x01,0x31,0x68,0x01,0x32,
+ 0x68,0x01,0x50,0x68,0x0B,0x60,0x68,0x21,
+ 0x61,0x68,0x37,0x62,0x68,0x16,0x65,0x68,
+ 0x2C,0x66,0x68,0x4E,0x6B,0x68,0x59,0x6C,
+ 0x68,0x01,0x80,0x68,0x01,0x90,0x68,0x01,
+ 0xA0,0x68,0x01,0xB0,0x00,0x00,0x68,0x64,
+ 0x90,0x42,0x99,0xE0,0x90,0xDD,0x85,0xF0,
+ 0x80,0x62,0x7A,0x41,0x79,0x95,0x7B,0x01,
+ 0x12,0x4B,0x43,0x80,0x57,0x7A,0x41,0x79,
+ 0xA7,0x7B,0x01,0x12,0x4B,0x43,0x80,0x4C,
+ 0x7A,0x41,0x79,0xBA,0x7B,0x01,0x12,0x4B,
+ 0x43,0x80,0x41,0x7A,0x41,0x79,0xBA,0x7B,
+ 0x01,0x12,0x4B,0x43,0x80,0x36,0x90,0x42,
+ 0xF8,0xE0,0x75,0xF0,0x08,0xA4,0x24,0xF5,
+ 0xF9,0x74,0x42,0x35,0xF0,0xFA,0x7B,0x01,
+ 0x12,0x4B,0x43,0x80,0x1F,0x7A,0x42,0x79,
+ 0x24,0x7B,0x01,0x12,0x4B,0x43,0x80,0x14,
+ 0x7B,0x01,0x7A,0x42,0x79,0xA4,0x12,0x4B,
+ 0x43,0x80,0x09,0x12,0x7B,0x64,0xEF,0x70,
+ 0x03,0x7F,0x03,0x22,0x7F,0x00,0x22,0x90,
+ 0x41,0x85,0xE0,0xFF,0x20,0xE7,0x03,0x02,
+ 0x69,0x5D,0xB4,0xA1,0x1C,0xA3,0xE0,0x24,
+ 0xFE,0x60,0x0A,0x14,0x60,0x0A,0x24,0x02,
+ 0x70,0x09,0x7F,0x21,0x22,0x7F,0x22,0x22,
+ 0x7F,0x23,0x22,0x12,0x7B,0x63,0x02,0x6A,
+ 0x2A,0x90,0x41,0x85,0xE0,0xFF,0x54,0x60,
+ 0x60,0x03,0x02,0x6A,0x2A,0x90,0x41,0x86,
+ 0xE0,0x24,0xFA,0x60,0x30,0x24,0xFE,0x70,
+ 0x03,0x02,0x69,0x51,0x24,0xFE,0x70,0x03,
+ 0x02,0x69,0x54,0x24,0x0A,0x60,0x03,0x02,
+ 0x69,0x57,0xEF,0x24,0x7F,0x60,0x0A,0x14,
+ 0x60,0x0A,0x24,0x02,0x70,0x09,0x7F,0x01,
+ 0x22,0x7F,0x02,0x22,0x7F,0x03,0x22,0x12,
+ 0x7B,0x63,0x02,0x6A,0x2A,0x90,0x41,0x85,
+ 0xE0,0xB4,0x81,0x1E,0x90,0x41,0x88,0xE0,
+ 0x24,0xDE,0x60,0x0A,0x14,0x60,0x0A,0x24,
+ 0x02,0x70,0x09,0x7F,0x6B,0x22,0x7F,0x6C,
+ 0x22,0x7F,0x6D,0x22,0x12,0x7B,0x63,0x02,
+ 0x6A,0x2A,0x90,0x41,0x88,0xE0,0x14,0xB4,
+ 0x08,0x00,0x50,0x3E,0x90,0x69,0x1B,0x75,
+ 0xF0,0x03,0xA4,0xC5,0x83,0x25,0xF0,0xC5,
+ 0x83,0x73,0x02,0x69,0x33,0x02,0x69,0x36,
+ 0x02,0x69,0x39,0x02,0x69,0x3C,0x02,0x69,
+ 0x3F,0x02,0x69,0x42,0x02,0x69,0x45,0x02,
+ 0x69,0x48,0x7F,0x60,0x22,0x7F,0x61,0x22,
+ 0x7F,0x62,0x22,0x7F,0x63,0x22,0x7F,0x64,
+ 0x22,0x7F,0x65,0x22,0x7F,0x66,0x22,0x7F,
+ 0x67,0x22,0x12,0x7B,0x63,0x02,0x6A,0x2A,
+ 0x7F,0x80,0x22,0x7F,0xA0,0x22,0x12,0x7B,
+ 0x63,0x02,0x6A,0x2A,0x90,0x41,0x85,0xE0,
+ 0xB4,0x21,0x1C,0xA3,0xE0,0x24,0xF6,0x60,
+ 0x0A,0x14,0x60,0x0A,0x24,0x02,0x70,0x09,
+ 0x7F,0x29,0x22,0x7F,0x2B,0x22,0x7F,0x2B,
+ 0x22,0x12,0x7B,0x63,0x02,0x6A,0x2A,0x90,
+ 0x41,0x85,0xE0,0xFF,0x54,0x60,0x60,0x03,
+ 0x02,0x6A,0x2A,0x90,0x41,0x86,0xE0,0x24,
+ 0xFD,0x60,0x41,0x24,0xFE,0x60,0x70,0x24,
+ 0xFE,0x60,0x78,0x24,0xFE,0x70,0x03,0x02,
+ 0x6A,0x21,0x24,0xFE,0x60,0x7D,0x24,0x0A,
+ 0x70,0x7C,0xEF,0x24,0xFE,0x60,0x17,0x24,
+ 0x02,0x70,0x1C,0x90,0x41,0x87,0xE0,0xFE,
+ 0xB4,0x01,0x03,0x7F,0x10,0x22,0xEE,0x64,
+ 0x02,0x70,0x66,0x7F,0x12,0x22,0x90,0x41,
+ 0x87,0xE0,0x70,0x5D,0x7F,0x13,0x22,0x12,
+ 0x7B,0x63,0x80,0x55,0x90,0x41,0x85,0xE0,
+ 0x24,0xFE,0x60,0x1D,0x24,0x02,0x70,0x22,
+ 0x90,0x41,0x87,0xE0,0xFE,0xB4,0x01,0x03,
+ 0x7F,0x30,0x22,0xEE,0x64,0x02,0x70,0x39,
+ 0x90,0x41,0x89,0xE0,0x70,0x33,0x7F,0x31,
+ 0x22,0x90,0x41,0x87,0xE0,0x70,0x2A,0x7F,
+ 0x32,0x22,0x12,0x7B,0x63,0x80,0x22,0x90,
+ 0x41,0x87,0xE0,0xC3,0x94,0x80,0x50,0x19,
+ 0x7F,0x50,0x22,0x90,0x41,0x85,0xE0,0xB4,
+ 0x01,0x03,0x7F,0x71,0x22,0x7F,0x70,0x22,
+ 0x7F,0x90,0x22,0x7F,0xB0,0x22,0x12,0x7B,
+ 0x63,0x7F,0x00,0x22,0xE4,0xFF,0x7F,0x06,
+ 0x90,0x41,0x8D,0xE4,0xF0,0xA3,0xDF,0xFC,
+ 0x22,0xE4,0x90,0x42,0xE6,0xF0,0x90,0x42,
+ 0xE7,0xF0,0x90,0x42,0xE8,0xF0,0x90,0x42,
+ 0xEF,0xF0,0x12,0x54,0x18,0x12,0x6A,0x9D,
+ 0x22,0x90,0x43,0x0D,0xE0,0x60,0x38,0x74,
+ 0x43,0x90,0x41,0x7F,0xF0,0x74,0xF6,0xA3,
+ 0xF0,0x90,0x43,0x29,0xE0,0x70,0x05,0x12,
+ 0x6D,0x91,0x80,0x1B,0x90,0x43,0x29,0xE0,
+ 0xB4,0x01,0x05,0x12,0x6D,0x9B,0x80,0x0F,
+ 0x90,0x43,0x29,0xE0,0x64,0x02,0x60,0x04,
+ 0xE0,0xB4,0xFF,0x03,0x12,0x6A,0xD7,0x90,
+ 0x42,0xE9,0xE0,0x70,0x02,0xD2,0xDD,0x90,
+ 0x42,0xE9,0xE0,0x60,0x06,0x12,0x4F,0xDC,
+ 0x12,0x4F,0xBD,0x22,0x78,0x95,0x7C,0x41,
+ 0x7D,0x01,0x7B,0xFF,0x7A,0x81,0x79,0xD9,
+ 0x7E,0x01,0x7F,0x03,0x12,0x81,0x99,0x78,
+ 0x9B,0x7C,0x42,0x7D,0x01,0x7B,0x01,0x7A,
+ 0x41,0x79,0xBA,0x7E,0x00,0x7F,0x09,0x12,
+ 0x81,0x99,0x78,0xA4,0x7C,0x42,0x7D,0x01,
+ 0x7B,0xFF,0x7A,0x82,0x79,0xDC,0x7E,0x00,
+ 0x7F,0x41,0x12,0x81,0x99,0x22,0xE4,0x90,
+ 0x45,0xAB,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,
+ 0xF0,0xA3,0xF0,0x90,0xDF,0x84,0x74,0x64,
+ 0xF0,0xE4,0x90,0xDF,0x85,0xF0,0x90,0xDF,
+ 0x86,0x74,0x2C,0xF0,0x90,0xDF,0x87,0x74,
+ 0x01,0xF0,0xE4,0x90,0xDF,0x88,0xF0,0x90,
+ 0xDF,0x89,0x74,0x02,0xF0,0x12,0x6D,0x2C,
+ 0x90,0xDF,0x82,0xE0,0x20,0xE1,0x08,0x90,
+ 0x45,0xAA,0xE5,0xE4,0xF0,0x80,0xF1,0x22,
+ 0x90,0xDF,0x82,0xE0,0x30,0xE0,0x0E,0x74,
+ 0x20,0xF0,0xE0,0x90,0x45,0xA7,0xF0,0xE4,
+ 0x90,0xDF,0x82,0xF0,0x22,0x90,0xDF,0x82,
+ 0xE0,0x30,0xE1,0x03,0x02,0x6D,0x2B,0x90,
+ 0x45,0xA7,0xE5,0xE4,0xF0,0xE0,0x54,0x0F,
+ 0xA3,0xF0,0x90,0x45,0xA7,0xE0,0xFF,0xC4,
+ 0x54,0x0F,0x90,0x45,0xA9,0xF0,0x90,0x45,
+ 0xBB,0xE0,0x14,0x70,0x03,0x02,0x6C,0x08,
+ 0x04,0x60,0x03,0x02,0x6C,0x7D,0x90,0x45,
+ 0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,0xAB,
+ 0xE0,0x33,0xF0,0xA3,0xE0,0x44,0x01,0xF0,
+ 0xA3,0xE0,0x04,0xF0,0x90,0x45,0xA7,0xE0,
+ 0x24,0xEF,0x70,0x03,0x02,0x6C,0x80,0x24,
+ 0xEF,0x60,0x20,0x24,0x10,0x70,0x37,0x90,
+ 0x45,0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,
+ 0xAB,0xE0,0x33,0xF0,0x90,0x45,0xAD,0xE0,
+ 0x04,0xF0,0x90,0x45,0xBB,0x74,0x01,0xF0,
+ 0x02,0x6C,0x80,0x90,0x45,0xAC,0xE0,0x25,
+ 0xE0,0xF0,0x90,0x45,0xAB,0xE0,0x33,0xF0,
+ 0x90,0x45,0xAD,0xE0,0x04,0xF0,0xE4,0x90,
+ 0x45,0xBB,0xF0,0x02,0x6C,0x80,0x12,0x7B,
+ 0x64,0xEF,0x60,0x03,0x02,0x6C,0x80,0x90,
+ 0x45,0xA8,0xE0,0xB4,0x02,0x13,0x90,0x45,
+ 0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,0xAB,
+ 0xE0,0x33,0xF0,0x90,0x45,0xAD,0xE0,0x04,
+ 0xF0,0x90,0x45,0xA9,0xE0,0xD3,0x94,0x02,
+ 0x40,0x15,0x90,0x45,0xA8,0xE0,0x64,0x01,
+ 0x60,0x04,0xE0,0xB4,0x02,0x09,0x90,0x45,
+ 0xA9,0x74,0xFF,0xF0,0x02,0x6C,0x80,0x90,
+ 0x45,0xA9,0x74,0xFE,0xF0,0x80,0x78,0x90,
+ 0x45,0xA7,0xE0,0x24,0xDF,0x60,0x1F,0x24,
+ 0x10,0x70,0x35,0x90,0x45,0xAC,0xE0,0x25,
+ 0xE0,0xF0,0x90,0x45,0xAB,0xE0,0x33,0xF0,
+ 0x90,0x45,0xAD,0xE0,0x04,0xF0,0x90,0x45,
+ 0xBB,0x74,0x01,0xF0,0x80,0x51,0x90,0x45,
+ 0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,0xAB,
+ 0xE0,0x33,0xF0,0x90,0x45,0xAD,0xE0,0x04,
+ 0xF0,0xE4,0x90,0x45,0xBB,0xF0,0x80,0x37,
+ 0x12,0x7B,0x64,0xEF,0x70,0x31,0x90,0x45,
+ 0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,0xAB,
+ 0xE0,0x33,0xF0,0x90,0x45,0xAD,0xE0,0x04,
+ 0xF0,0x90,0x45,0xA8,0xE0,0xB4,0x01,0x0C,
+ 0xA3,0xE0,0xD3,0x94,0x02,0x40,0x05,0x74,
+ 0xFF,0xF0,0x80,0x0B,0x90,0x45,0xA9,0x74,
+ 0xFE,0xF0,0x80,0x03,0x12,0x7B,0x63,0x90,
+ 0x45,0xA9,0xE0,0xD3,0x94,0x0F,0x50,0x03,
+ 0x02,0x6B,0x2E,0x90,0x45,0xAD,0xE0,0xFF,
+ 0xD3,0x94,0x10,0x50,0x7E,0xEF,0x94,0x0A,
+ 0x40,0x79,0x90,0x45,0xA9,0xE0,0xF4,0x70,
+ 0x72,0xFF,0x7F,0x08,0x90,0x45,0xBE,0xE4,
+ 0xF0,0xA3,0xDF,0xFC,0x7F,0x08,0x90,0x43,
+ 0x29,0xE0,0xB4,0xFF,0x1A,0x90,0x45,0xAB,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x45,0xAE,
+ 0xE0,0x6E,0x70,0x03,0xA3,0xE0,0x6F,0x60,
+ 0x06,0x90,0x45,0xBE,0x74,0x01,0xF0,0x90,
+ 0x45,0xAB,0xE0,0xFF,0xA3,0xE0,0x90,0x45,
+ 0xAE,0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x45,
+ 0xAB,0xE0,0x54,0xF7,0xF0,0x90,0x43,0x29,
+ 0xE0,0xB4,0xFF,0x12,0x90,0x45,0xAE,0xE0,
+ 0x90,0x45,0xC0,0xF0,0x90,0x45,0xAF,0xE0,
+ 0x90,0x45,0xC1,0xF0,0x80,0x10,0x90,0x45,
+ 0xAB,0xE0,0x90,0x45,0xC0,0xF0,0x90,0x45,
+ 0xAC,0xE0,0x90,0x45,0xC1,0xF0,0x12,0x72,
+ 0xA1,0x80,0x07,0xE4,0x90,0x45,0xAE,0xF0,
+ 0xA3,0xF0,0xE4,0x90,0x45,0xAB,0xF0,0xA3,
+ 0xF0,0xA3,0xF0,0x90,0x45,0xBB,0xF0,0x02,
+ 0x6B,0x2E,0x22,0x90,0xDF,0x82,0xE0,0x54,
+ 0xDF,0xF0,0xE4,0x90,0x45,0xB9,0xF0,0x90,
+ 0x45,0xB8,0xF0,0x90,0x45,0xA6,0x04,0xF0,
+ 0x90,0x41,0x81,0xF0,0x90,0x45,0x56,0x74,
+ 0x32,0xF0,0x90,0x45,0x58,0x74,0x14,0xF0,
+ 0x90,0x45,0x57,0x74,0x3E,0xF0,0xE4,0x90,
+ 0x45,0xBB,0xF0,0x90,0x45,0xC6,0xF0,0x90,
+ 0x45,0xCA,0xF0,0x90,0x45,0xCC,0xF0,0xA3,
+ 0xF0,0x90,0x45,0xBC,0xF0,0xA3,0xF0,0x90,
+ 0x45,0xC7,0xF0,0xA3,0xF0,0x90,0x45,0xD2,
+ 0xF0,0x90,0xDF,0x80,0x74,0x28,0xF0,0xA3,
+ 0x74,0x04,0xF0,0x75,0xCA,0x01,0xE4,0xF5,
+ 0xCB,0xF5,0xC8,0xD2,0xAD,0xD2,0xCA,0x22,
+ 0x90,0xDF,0x92,0x74,0x50,0xF0,0x12,0x6D,
+ 0x2C,0x22,0x90,0x45,0x54,0x74,0x7F,0xF0,
+ 0xA3,0x74,0xFF,0xF0,0x90,0xDF,0x90,0x74,
+ 0x50,0xF0,0xE4,0xA3,0xF0,0xA3,0x74,0x96,
+ 0xF0,0xE4,0xA3,0xF0,0xA3,0x74,0x2C,0xF0,
+ 0xA3,0x74,0x01,0xF0,0xA3,0x74,0x90,0xF0,
+ 0xA3,0x74,0x01,0xF0,0xA3,0x74,0xC2,0xF0,
+ 0xA3,0x74,0x01,0xF0,0xA3,0x74,0x26,0xF0,
+ 0xA3,0x74,0x02,0xF0,0xE4,0xA3,0xF0,0xA3,
+ 0x74,0x10,0xF0,0xE4,0xA3,0xF0,0xA3,0x74,
+ 0x20,0xF0,0xE4,0xA3,0xF0,0xA3,0x74,0x40,
+ 0xF0,0x12,0x6D,0x2C,0x22,0xC2,0xCF,0x90,
+ 0x45,0xBC,0xE0,0x60,0x1A,0xA3,0xE0,0x04,
+ 0xF0,0x90,0x45,0x58,0xE0,0xFF,0x90,0x45,
+ 0xBD,0xE0,0xD3,0x9F,0x40,0x10,0xE4,0x90,
+ 0x45,0xBC,0xF0,0xA3,0xF0,0x80,0x07,0xE4,
+ 0x90,0x45,0xBC,0xF0,0xA3,0xF0,0x90,0x45,
+ 0xCC,0xE0,0x60,0x18,0xA3,0xE0,0x04,0xF0,
+ 0x90,0x45,0x57,0xE0,0xFF,0x90,0x45,0xCD,
+ 0xE0,0xD3,0x9F,0x40,0x10,0xE4,0xF0,0x90,
+ 0x45,0xCC,0xF0,0x22,0xE4,0x90,0x45,0xCD,
+ 0xF0,0x90,0x45,0xCC,0xF0,0x22,0x90,0xDF,
+ 0x82,0xE0,0x30,0xE0,0x14,0x74,0x20,0xF0,
+ 0xE0,0x90,0x45,0xB0,0xF0,0xE4,0x90,0xDF,
+ 0x82,0xF0,0x90,0x45,0xBB,0xF0,0x7F,0x01,
+ 0x22,0x7F,0x00,0x22,0x12,0x6E,0x3F,0xEF,
+ 0x60,0x03,0x02,0x6F,0xFB,0x90,0xDF,0x82,
+ 0xE0,0x30,0xE1,0x03,0x02,0x6F,0xFB,0x90,
+ 0x45,0xB2,0xE5,0xE4,0xF0,0x90,0x45,0xBB,
+ 0xE0,0x14,0x60,0x68,0x14,0x70,0x03,0x02,
+ 0x6F,0x70,0x24,0x02,0x60,0x03,0x02,0x6F,
+ 0xEE,0x90,0x45,0xB2,0xE0,0x64,0xBC,0x70,
+ 0x3B,0x90,0x45,0xC6,0xF0,0x90,0x45,0xC8,
+ 0xF0,0x90,0x45,0xC7,0xF0,0x90,0x45,0xCA,
+ 0xF0,0x90,0x45,0xB1,0xF0,0x90,0x45,0xB1,
+ 0xE0,0xFF,0xC3,0x94,0x08,0x50,0x14,0x74,
+ 0xBE,0x2F,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xE4,0xF0,0x90,0x45,0xB1,0xE0,0x04,
+ 0xF0,0x80,0xE2,0x90,0x45,0xBB,0x74,0x01,
+ 0xF0,0x02,0x6F,0xF1,0x90,0x45,0xB2,0xE0,
+ 0xB4,0xAC,0x09,0x90,0x45,0xBB,0x74,0x02,
+ 0xF0,0x02,0x6F,0xF1,0xE4,0x90,0x45,0xBB,
+ 0xF0,0x02,0x6F,0xF1,0x90,0x45,0xB2,0xE0,
+ 0xC3,0x94,0xE8,0x40,0x17,0x12,0x72,0xA1,
+ 0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,0xC8,
+ 0xF0,0x90,0x45,0xC7,0xF0,0x90,0x45,0xC6,
+ 0xF0,0x02,0x6F,0xF1,0x90,0x45,0xB2,0xE0,
+ 0xB4,0x98,0x1F,0x90,0x45,0xC7,0xE0,0xFF,
+ 0x74,0x01,0xA8,0x07,0x08,0x80,0x02,0xC3,
+ 0x33,0xD8,0xFC,0xFF,0x90,0x45,0xC8,0xE0,
+ 0x2F,0xF0,0x90,0x45,0xC7,0xE0,0x04,0xF0,
+ 0x80,0x1A,0x90,0x45,0xB2,0xE0,0xB4,0x88,
+ 0x08,0x90,0x45,0xC7,0xE0,0x04,0xF0,0x80,
+ 0x0B,0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,
+ 0xC7,0xE0,0x04,0xF0,0x90,0x45,0xC7,0xE0,
+ 0x64,0x08,0x60,0x03,0x02,0x6F,0xF1,0xA3,
+ 0xE0,0xFF,0x90,0x45,0xC6,0xE0,0xFE,0x04,
+ 0xF0,0x74,0xBE,0x2E,0xF5,0x82,0xE4,0x34,
+ 0x45,0xF5,0x83,0xEF,0xF0,0xE4,0x90,0x45,
+ 0xC7,0xF0,0xA3,0xF0,0x02,0x6F,0xF1,0x90,
+ 0x45,0xB2,0xE0,0xC3,0x94,0xF8,0x40,0x78,
+ 0x90,0x45,0xCA,0xE0,0x04,0xF0,0x90,0x45,
+ 0xB9,0xE0,0x70,0x4C,0x90,0x45,0x58,0xE0,
+ 0x75,0xF0,0x05,0x84,0xFF,0x90,0x45,0xCA,
+ 0xE0,0x6F,0x70,0x3C,0x90,0x45,0xB1,0xF0,
+ 0x90,0x45,0xB1,0xE0,0xFF,0x24,0xBE,0xF5,
+ 0x82,0xE4,0x34,0x45,0xF5,0x83,0xE0,0xFE,
+ 0x74,0x80,0x2F,0xF5,0x82,0xE4,0x34,0xDE,
+ 0xF5,0x83,0xEE,0xF0,0x90,0x45,0xB1,0xE0,
+ 0x04,0xF0,0xE0,0xB4,0x08,0xDA,0x90,0x45,
+ 0xCC,0xE0,0x60,0x06,0x74,0x01,0xF0,0xE4,
+ 0xA3,0xF0,0x90,0x45,0xB9,0x74,0x01,0xF0,
+ 0x90,0x45,0x58,0xE0,0x75,0xF0,0x05,0x84,
+ 0xFF,0x90,0x45,0xCA,0xE0,0xB5,0x07,0x02,
+ 0xE4,0xF0,0xE4,0x90,0x45,0xBB,0xF0,0x90,
+ 0x45,0xC6,0xF0,0x80,0x03,0x12,0x7B,0x63,
+ 0x90,0xDF,0x82,0xE0,0x20,0xE1,0x03,0x02,
+ 0x6E,0x70,0x22,0x12,0x6E,0x3F,0xEF,0x60,
+ 0x03,0x02,0x72,0xA0,0x90,0xDF,0x82,0xE0,
+ 0x30,0xE1,0x03,0x02,0x72,0xA0,0x90,0x45,
+ 0xB3,0xE5,0xE4,0xF0,0x90,0x45,0xBB,0xE0,
+ 0x14,0x60,0x3F,0x14,0x70,0x03,0x02,0x71,
+ 0x68,0x24,0x02,0x60,0x03,0x02,0x72,0x93,
+ 0x90,0x45,0xB3,0xE0,0xB4,0x8C,0x23,0xE4,
+ 0x90,0x45,0xC6,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xFF,0x7F,0x03,0x90,0x45,0xCE,0xE4,0xF0,
+ 0xA3,0xDF,0xFC,0x7F,0x03,0x90,0x45,0xBB,
+ 0x74,0x01,0xF0,0x90,0x45,0xD3,0xF0,0x02,
+ 0x72,0x96,0xE4,0x90,0x45,0xBB,0xF0,0x02,
+ 0x72,0x96,0x90,0x45,0xB3,0xE0,0x54,0x0F,
+ 0xA3,0xF0,0x90,0x45,0xB3,0xE0,0xFF,0xC4,
+ 0x54,0x0F,0x90,0x45,0xB5,0xF0,0x90,0x45,
+ 0xD3,0xE0,0x24,0xFE,0x60,0x34,0x14,0x60,
+ 0x52,0x14,0x60,0x70,0x14,0x70,0x03,0x02,
+ 0x71,0x0E,0x24,0x04,0x60,0x03,0x02,0x71,
+ 0x62,0x90,0x45,0xB4,0xE0,0xB4,0x07,0x0E,
+ 0xA3,0xE0,0xB4,0x07,0x09,0x90,0x45,0xD3,
+ 0x74,0x02,0xF0,0x02,0x72,0x96,0xE4,0x90,
+ 0x45,0xBB,0xF0,0x90,0x45,0xD3,0xF0,0x02,
+ 0x72,0x96,0x90,0x45,0xB4,0xE0,0xB4,0x07,
+ 0x0E,0xA3,0xE0,0xB4,0x07,0x09,0x90,0x45,
+ 0xD3,0x74,0x03,0xF0,0x02,0x72,0x96,0xE4,
+ 0x90,0x45,0xBB,0xF0,0x90,0x45,0xD3,0xF0,
+ 0x02,0x72,0x96,0x90,0x45,0xB4,0xE0,0xB4,
+ 0x07,0x0E,0xA3,0xE0,0xB4,0x08,0x09,0x90,
+ 0x45,0xD3,0x74,0x04,0xF0,0x02,0x72,0x96,
+ 0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,0xD3,
+ 0xF0,0x02,0x72,0x96,0x90,0x45,0xB4,0xE0,
+ 0xB4,0x07,0x0E,0xA3,0xE0,0xB4,0x08,0x09,
+ 0x90,0x45,0xD3,0x74,0x05,0xF0,0x02,0x72,
+ 0x96,0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,
+ 0xD3,0xF0,0x02,0x72,0x96,0x90,0x45,0xB4,
+ 0xE0,0x64,0x09,0x70,0x40,0x90,0x45,0xCE,
+ 0x74,0x08,0xF0,0x90,0x45,0xB5,0xE0,0xB4,
+ 0x08,0x0F,0x90,0x45,0xCF,0x74,0x88,0xF0,
+ 0xA3,0xF0,0xE4,0xA3,0xF0,0xA3,0x74,0x03,
+ 0xF0,0x90,0x45,0xB5,0xE0,0xB4,0x07,0x0F,
+ 0x90,0x45,0xCF,0x74,0x88,0xF0,0xE4,0xA3,
+ 0xF0,0xA3,0xF0,0xA3,0x74,0x02,0xF0,0x90,
+ 0x45,0xBB,0x74,0x02,0xF0,0xE4,0x90,0x45,
+ 0xD3,0xF0,0x02,0x72,0x96,0xE4,0x90,0x45,
+ 0xBB,0xF0,0x90,0x45,0xD3,0xF0,0x02,0x72,
+ 0x96,0x12,0x7B,0x63,0x02,0x72,0x96,0x90,
+ 0x45,0xB3,0xE0,0x54,0x0F,0xA3,0xF0,0x90,
+ 0x45,0xB3,0xE0,0xFF,0xC4,0x54,0x0F,0x90,
+ 0x45,0xB5,0xF0,0x90,0x45,0xB4,0xE0,0xB4,
+ 0x07,0x21,0x90,0x45,0xD2,0xE0,0xFF,0x04,
+ 0xF0,0x74,0xCE,0x2F,0xF5,0x82,0xE4,0x34,
+ 0x45,0xF5,0x83,0x74,0x08,0xF0,0x90,0x45,
+ 0xD2,0xE0,0x64,0x04,0x70,0x50,0x12,0x72,
+ 0xE4,0x80,0x4B,0x90,0x45,0xB4,0xE0,0x64,
+ 0x08,0x70,0x3E,0x90,0x45,0xD2,0xE0,0xFF,
+ 0x04,0xF0,0x74,0xCE,0x2F,0xF5,0x82,0xE4,
+ 0x34,0x45,0xF5,0x83,0x74,0x08,0xF0,0x90,
+ 0x45,0xD2,0xE0,0xB4,0x04,0x03,0x12,0x72,
+ 0xE4,0x90,0x45,0xD2,0xE0,0xFF,0x04,0xF0,
+ 0x74,0xCE,0x2F,0xF5,0x82,0xE4,0x34,0x45,
+ 0xF5,0x83,0x74,0x08,0xF0,0x90,0x45,0xD2,
+ 0xE0,0xB4,0x04,0x0A,0x12,0x72,0xE4,0x80,
+ 0x05,0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,
+ 0xB5,0xE0,0xC3,0x94,0x0C,0x40,0x26,0x90,
+ 0x45,0xD2,0xE0,0x94,0x04,0x50,0x14,0xE0,
+ 0xFF,0x04,0xF0,0x74,0xCE,0x2F,0xF5,0x82,
+ 0xE4,0x34,0x45,0xF5,0x83,0x74,0x88,0xF0,
+ 0x12,0x72,0xE4,0x12,0x72,0xA1,0xE4,0x90,
+ 0x45,0xBB,0xF0,0x80,0x78,0x90,0x45,0xB5,
+ 0xE0,0xB4,0x07,0x21,0x90,0x45,0xD2,0xE0,
+ 0xFF,0x04,0xF0,0x74,0xCE,0x2F,0xF5,0x82,
+ 0xE4,0x34,0x45,0xF5,0x83,0x74,0x88,0xF0,
+ 0x90,0x45,0xD2,0xE0,0x64,0x04,0x70,0x55,
+ 0x12,0x72,0xE4,0x80,0x50,0x90,0x45,0xB5,
+ 0xE0,0x64,0x08,0x70,0x3E,0x90,0x45,0xD2,
+ 0xE0,0xFF,0x04,0xF0,0x74,0xCE,0x2F,0xF5,
+ 0x82,0xE4,0x34,0x45,0xF5,0x83,0x74,0x88,
+ 0xF0,0x90,0x45,0xD2,0xE0,0xB4,0x04,0x03,
+ 0x12,0x72,0xE4,0x90,0x45,0xD2,0xE0,0xFF,
+ 0x04,0xF0,0x74,0xCE,0x2F,0xF5,0x82,0xE4,
+ 0x34,0x45,0xF5,0x83,0x74,0x88,0xF0,0x90,
+ 0x45,0xD2,0xE0,0xB4,0x04,0x0F,0x12,0x72,
+ 0xE4,0x80,0x0A,0xE4,0x90,0x45,0xBB,0xF0,
+ 0x80,0x03,0x12,0x7B,0x63,0x90,0xDF,0x82,
+ 0xE0,0x20,0xE1,0x03,0x02,0x70,0x0F,0x22,
+ 0x90,0x43,0x0D,0xE0,0xB4,0x01,0x0D,0x90,
+ 0x45,0xA6,0xE0,0xB4,0x01,0x06,0x12,0x73,
+ 0x9E,0xEF,0x60,0x2E,0x90,0x45,0xBC,0xE0,
+ 0x70,0x28,0x7E,0xDE,0x7F,0x80,0x7C,0x45,
+ 0x7D,0xBE,0x7B,0x08,0x12,0x48,0x86,0x90,
+ 0x45,0xBC,0x74,0x01,0xF0,0xE4,0xA3,0xF0,
+ 0x90,0x45,0xB8,0xE0,0x60,0x06,0x90,0x45,
+ 0xBA,0xE0,0x04,0xF0,0x90,0x45,0xB9,0x74,
+ 0x01,0xF0,0x22,0xE4,0xFF,0xEF,0xC3,0x94,
+ 0x04,0x50,0x65,0x74,0xCE,0x2F,0xF5,0x82,
+ 0xE4,0x34,0x45,0xF5,0x83,0xE0,0xFE,0xB4,
+ 0x08,0x32,0x74,0xCF,0x2F,0xF5,0x82,0xE4,
+ 0x34,0x45,0xF5,0x83,0xE0,0xB4,0x88,0x24,
+ 0x90,0x45,0xC7,0xE0,0xFD,0xC3,0x74,0x07,
+ 0x9D,0xFD,0x74,0x01,0xA8,0x05,0x08,0x80,
+ 0x02,0xC3,0x33,0xD8,0xFC,0xFD,0x90,0x45,
+ 0xC8,0xE0,0x2D,0xF0,0x90,0x45,0xC7,0xE0,
+ 0x04,0xF0,0x80,0x20,0xEE,0xB4,0x88,0x16,
+ 0x74,0xCF,0x2F,0xF5,0x82,0xE4,0x34,0x45,
+ 0xF5,0x83,0xE0,0xB4,0x08,0x08,0x90,0x45,
+ 0xC7,0xE0,0x04,0xF0,0x80,0x06,0x90,0x45,
+ 0xC7,0xE0,0x04,0xF0,0x0F,0x0F,0x80,0x95,
+ 0xE4,0x90,0x45,0xD2,0xF0,0x90,0x45,0xC7,
+ 0xE0,0x64,0x08,0x70,0x3F,0xA3,0xE0,0xFF,
+ 0x90,0x45,0xC6,0xE0,0xFE,0x04,0xF0,0x74,
+ 0xBE,0x2E,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xEF,0xF0,0xE4,0x90,0x45,0xC7,0xF0,
+ 0xA3,0xF0,0x90,0x45,0xC6,0xE0,0xB4,0x04,
+ 0x1B,0x90,0x45,0x54,0xE0,0xFF,0x90,0x45,
+ 0xC0,0xE0,0x5F,0xF0,0x90,0x45,0x55,0xE0,
+ 0xFF,0x90,0x45,0xC1,0xE0,0x5F,0xF0,0xE4,
+ 0x90,0x45,0xC6,0xF0,0x22,0xE4,0x90,0x45,
+ 0xB6,0xF0,0xA3,0xF0,0x90,0x45,0x56,0xE0,
+ 0x75,0xF0,0x07,0xA4,0xFF,0x90,0x45,0xB6,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,0x9F,0xEC,
+ 0x95,0xF0,0x40,0x03,0x02,0x74,0x9B,0x74,
+ 0xF6,0x2D,0xF5,0x82,0x74,0x43,0x3C,0xF5,
+ 0x83,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x45,0xBE,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xC3,0x12,0x80,0x9B,0x60,0x03,
+ 0x02,0x74,0x8A,0x90,0x45,0xB6,0xE0,0xFE,
+ 0xA3,0xE0,0x24,0xFC,0xF5,0x82,0x74,0x43,
+ 0x3E,0xF5,0x83,0xE0,0xFE,0x30,0xE7,0x0B,
+ 0x90,0x45,0xCC,0x74,0x01,0xF0,0xE4,0xA3,
+ 0xF0,0xFF,0x22,0x90,0x45,0xCC,0xE0,0x60,
+ 0x1A,0xE4,0xA3,0xF0,0x90,0x45,0xCC,0x04,
+ 0xF0,0xEE,0xB4,0x40,0x0E,0x90,0x45,0xB7,
+ 0xE0,0x24,0x07,0xF0,0x90,0x45,0xB6,0xE0,
+ 0x34,0x00,0xF0,0xE4,0x90,0x45,0xBE,0xF0,
+ 0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0x90,0x45,
+ 0xB6,0xE0,0xFE,0xA3,0xE0,0xFF,0x24,0xFA,
+ 0xF5,0x82,0x74,0x43,0x3E,0xF5,0x83,0xE0,
+ 0xFD,0x90,0x45,0xC0,0xF0,0x74,0xFB,0x2F,
+ 0xF5,0x82,0x74,0x43,0x3E,0xF5,0x83,0xE0,
+ 0xFF,0x60,0x06,0x90,0x45,0xBE,0xF0,0x80,
+ 0x1D,0x90,0x45,0xB6,0xE0,0xFE,0xA3,0xE0,
+ 0x24,0xFC,0xF5,0x82,0x74,0x43,0x3E,0xF5,
+ 0x83,0xE0,0x30,0xE0,0x09,0x90,0x45,0xC0,
+ 0x74,0x9A,0xF0,0xA3,0xED,0xF0,0x7F,0x01,
+ 0x22,0x90,0x45,0xB7,0xE0,0x24,0x07,0xF0,
+ 0x90,0x45,0xB6,0xE0,0x34,0x00,0xF0,0x02,
+ 0x73,0xA5,0x7F,0x00,0x22,0x90,0x45,0xD4,
+ 0xEC,0xF0,0xA3,0xED,0xF0,0x90,0x45,0x77,
+ 0x74,0x01,0xF0,0x7E,0x00,0xA3,0x14,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x45,0xD4,0xE0,0xFF,
+ 0xA3,0xE0,0x90,0x45,0x7A,0xCF,0xF0,0xA3,
+ 0xEF,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0xE4,0xFB,0x7D,0xAC,0x7F,0x02,0x12,0x56,
+ 0x45,0x22,0x90,0xDE,0xC3,0xE0,0x90,0xDE,
+ 0x41,0xF0,0xE4,0xA3,0xF0,0x7C,0xDE,0x7D,
+ 0xC0,0x90,0xDE,0xC0,0xE0,0x04,0xFB,0x7F,
+ 0x00,0x7E,0xF7,0x12,0x48,0x86,0x90,0xF4,
+ 0x10,0xE0,0x54,0xFE,0x44,0x01,0xF0,0x22,
+ 0x90,0xF6,0xA8,0xE0,0x12,0x80,0xB1,0x75,
+ 0x46,0x00,0x75,0x63,0x04,0x75,0x86,0x05,
+ 0x75,0xF5,0x0D,0x76,0x4E,0x10,0x75,0xBF,
+ 0x11,0x79,0x5B,0x18,0x79,0x89,0x19,0x78,
+ 0xAD,0x1A,0x78,0xBE,0x1B,0x75,0xF5,0x20,
+ 0x79,0x20,0x25,0x77,0x73,0x80,0x77,0x73,
+ 0x81,0x76,0xC1,0x82,0x76,0xC1,0x83,0x77,
+ 0x56,0x84,0x77,0x56,0x85,0x78,0xDD,0x86,
+ 0x77,0xFB,0x87,0x77,0xFB,0x88,0x79,0xB6,
+ 0x89,0x00,0x00,0x79,0xE4,0x7E,0xDE,0x7F,
+ 0x40,0x90,0xF7,0x00,0xE0,0x04,0xFB,0x7D,
+ 0x00,0x7C,0xF7,0x12,0x48,0x86,0x90,0xF7,
+ 0x00,0xE0,0x04,0x90,0xDD,0x86,0xF0,0x02,
+ 0x79,0xE7,0x90,0xF6,0xA9,0xE0,0x90,0x45,
+ 0xEE,0xF0,0x90,0xF6,0xAA,0xE0,0x90,0x45,
+ 0xEF,0xF0,0x90,0xF6,0xAB,0xE0,0x90,0x45,
+ 0xF0,0xF0,0x90,0xF6,0xAC,0xE0,0x90,0x45,
+ 0xF1,0xF0,0x02,0x79,0xE7,0x90,0x45,0x8C,
+ 0x74,0x05,0xF0,0x90,0xF6,0xA9,0xE0,0x90,
+ 0x45,0xF2,0xF0,0x90,0xF6,0xAB,0xE0,0x90,
+ 0x45,0xF3,0xF0,0x90,0xF6,0xAC,0xE0,0x90,
+ 0x45,0xF4,0xF0,0x90,0xF6,0xAD,0xE0,0x90,
+ 0x45,0xF5,0xF0,0x90,0xF6,0xAE,0xE0,0x90,
+ 0x45,0xF6,0xF0,0x90,0xF6,0xAA,0xE0,0x90,
+ 0x45,0xF7,0xF0,0x02,0x79,0xE7,0x7C,0x45,
+ 0x7D,0xDA,0x7B,0x01,0x7F,0x1C,0x7E,0x00,
+ 0x12,0x57,0x4C,0x90,0x45,0xDA,0xE0,0x54,
+ 0xF7,0xF0,0xE0,0xFF,0x90,0xF6,0xA9,0xE0,
+ 0xFE,0x33,0x33,0x33,0x54,0xF8,0xFE,0xEF,
+ 0x4E,0x90,0x45,0xDA,0xF0,0x7C,0x45,0x7D,
+ 0xDA,0xE4,0xFB,0x7F,0x1C,0xFE,0x12,0x57,
+ 0x4C,0x02,0x79,0xE7,0x90,0x42,0xE9,0xE0,
+ 0x60,0x08,0x90,0x45,0xD8,0x74,0x01,0xF0,
+ 0x80,0x06,0x90,0x45,0xD8,0x74,0x03,0xF0,
+ 0x90,0xF0,0x01,0x74,0x08,0xF0,0xA3,0x74,
+ 0x80,0xF0,0x90,0xF6,0xA8,0xE0,0x90,0xF0,
+ 0x03,0xF0,0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,
+ 0xF0,0xA3,0xF0,0xA3,0x74,0x7F,0xF0,0x90,
+ 0xF6,0xA8,0xE0,0xF4,0x90,0xF0,0x09,0xF0,
+ 0x90,0x45,0xD8,0xE0,0xFF,0x90,0x45,0x8B,
+ 0xE0,0xFD,0x90,0x46,0x04,0x74,0x01,0xF0,
+ 0x7B,0x09,0x12,0x7E,0xD9,0x90,0x45,0xD7,
+ 0xEF,0xF0,0x02,0x79,0xE7,0x90,0x45,0x77,
+ 0x74,0x01,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0x07,0xF0,0xA3,0x74,0x45,0xF0,0xA3,0x74,
+ 0xD6,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0xFB,0x7D,0xC0,0x7F,0x02,0x12,0x56,0x45,
+ 0x90,0xF6,0xA9,0xE0,0x90,0x45,0xE2,0xF0,
+ 0x90,0x45,0xD6,0xE0,0x54,0xC3,0xF0,0xE0,
+ 0xFF,0x90,0x45,0xE2,0xE0,0xFE,0x25,0xE0,
+ 0x25,0xE0,0xFE,0xEF,0x4E,0x90,0x45,0xD6,
+ 0xF0,0x90,0x45,0x77,0x74,0x01,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x74,0x07,0xF0,0xA3,0x74,
+ 0x45,0xF0,0xA3,0x74,0xD6,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0x04,0xF0,0xE4,0xFB,0x7D,0xC0,
+ 0x7F,0x02,0x12,0x56,0x45,0x90,0x45,0xE2,
+ 0xE0,0x90,0xF6,0xA1,0xF0,0x02,0x79,0xE7,
+ 0x90,0xF0,0x02,0x74,0x52,0xF0,0x90,0x45,
+ 0x77,0x74,0x01,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0x05,0xF0,0xA3,0x74,0x45,0xF0,0xA3,
+ 0x74,0xD6,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,
+ 0xF0,0xFB,0x7D,0xC0,0x7F,0x02,0x12,0x56,
+ 0x45,0x90,0xF6,0xA8,0xE0,0xB4,0x82,0x0C,
+ 0x90,0x45,0xD9,0x74,0x01,0xF0,0x90,0x45,
+ 0xE3,0xF0,0x80,0x12,0x90,0xF6,0xA8,0xE0,
+ 0xB4,0x83,0x0B,0x90,0x45,0xD9,0x74,0x02,
+ 0xF0,0xE4,0x90,0x45,0xE3,0xF0,0x90,0x45,
+ 0xD6,0xE0,0x54,0xCF,0xF0,0xE0,0xFF,0x90,
+ 0x45,0xD9,0xE0,0xFE,0xC4,0x54,0xF0,0xFE,
+ 0xEF,0x4E,0x90,0x45,0xD6,0xF0,0x90,0x45,
+ 0x77,0x74,0x01,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0x05,0xF0,0xA3,0x74,0x45,0xF0,0xA3,
+ 0x74,0xD6,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,
+ 0xF0,0xE4,0xFB,0x7D,0xC0,0x7F,0x02,0x12,
+ 0x56,0x45,0x90,0x45,0xD9,0xE0,0x90,0xF6,
+ 0xA1,0xF0,0x02,0x79,0xE7,0x90,0xF6,0xA8,
+ 0xE0,0xB4,0x84,0x0C,0x90,0xD8,0xCF,0xE0,
+ 0x54,0xFE,0x44,0x01,0xF0,0x02,0x79,0xE7,
+ 0x90,0xD8,0xCF,0xE0,0x54,0xFE,0xF0,0x02,
+ 0x79,0xE7,0x90,0x45,0x77,0x74,0x01,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x20,0xF0,0xA3,
+ 0x74,0x45,0xF0,0xA3,0x74,0xD6,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x04,0xF0,0xFB,0x7D,0xC0,
+ 0x7F,0x02,0x12,0x56,0x45,0x90,0xF6,0xA8,
+ 0xE0,0xB4,0x80,0x07,0xE4,0x90,0x45,0xE4,
+ 0xF0,0x80,0x0D,0x90,0xF6,0xA8,0xE0,0xB4,
+ 0x81,0x06,0x90,0x45,0xE4,0x74,0x01,0xF0,
+ 0x90,0x45,0xD6,0xE0,0x54,0x7F,0xF0,0xE0,
+ 0xFF,0x90,0x45,0xE4,0xE0,0xFE,0xC4,0x33,
+ 0x33,0x33,0x54,0x80,0xFE,0xEF,0x4E,0x90,
+ 0x45,0xD6,0xF0,0x90,0x45,0x77,0x74,0x01,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x20,0xF0,
+ 0xA3,0x74,0x45,0xF0,0xA3,0x74,0xD6,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x04,0xF0,0xE4,0xFB,
+ 0x7D,0xC0,0x7F,0x02,0x12,0x56,0x45,0x90,
+ 0x45,0xE4,0xE0,0x90,0xF6,0xA1,0xF0,0x02,
+ 0x79,0xE7,0x90,0xF6,0x41,0xE0,0x24,0xCE,
+ 0x60,0x03,0x02,0x79,0xE7,0x90,0xF6,0xA8,
+ 0xE0,0x64,0x87,0x70,0x3D,0x90,0x45,0xD6,
+ 0xF0,0x7C,0x45,0x7D,0xD6,0x7F,0x44,0x12,
+ 0x74,0x9E,0x90,0x45,0xD6,0x74,0x28,0xF0,
+ 0x7C,0x45,0x7D,0xD6,0x7F,0x37,0x12,0x74,
+ 0x9E,0x90,0x45,0xD6,0x74,0x09,0xF0,0x7C,
+ 0x45,0x7D,0xD6,0x7F,0x2E,0x12,0x74,0x9E,
+ 0x90,0x45,0xD6,0x74,0x01,0xF0,0x7C,0x45,
+ 0x7D,0xD6,0x7F,0x2E,0x12,0x74,0x9E,0x02,
+ 0x79,0xE7,0x90,0xF6,0xA8,0xE0,0x64,0x88,
+ 0x60,0x03,0x02,0x79,0xE7,0x90,0x45,0xD6,
+ 0x74,0x02,0xF0,0x7C,0x45,0x7D,0xD6,0x7F,
+ 0x44,0x12,0x74,0x9E,0x90,0x45,0xD6,0x74,
+ 0x01,0xF0,0x7C,0x45,0x7D,0xD6,0x7F,0x47,
+ 0x12,0x74,0x9E,0x7C,0x45,0x7D,0xD6,0x7F,
+ 0x48,0x12,0x74,0x9E,0x90,0x45,0xD6,0x74,
+ 0x34,0xF0,0x7C,0x45,0x7D,0xD6,0x7F,0x37,
+ 0x12,0x74,0x9E,0x90,0x45,0xD6,0x74,0x09,
+ 0xF0,0x7C,0x45,0x7D,0xD6,0x7F,0x2E,0x12,
+ 0x74,0x9E,0x90,0x45,0xD6,0x74,0x01,0xF0,
+ 0x7C,0x45,0x7D,0xD6,0x7F,0x2E,0x12,0x74,
+ 0x9E,0x02,0x79,0xE7,0x90,0x45,0xFA,0x74,
+ 0x01,0xF0,0x12,0x7B,0x67,0xE4,0x90,0x45,
+ 0xFA,0xF0,0x02,0x79,0xE7,0x90,0x83,0xD0,
+ 0xE0,0xD3,0x94,0x01,0x40,0x04,0x7F,0x01,
+ 0x80,0x02,0x7F,0x00,0x90,0xF6,0xA1,0xEF,
+ 0xF0,0x90,0x45,0x8B,0xE0,0x90,0xF6,0xA2,
+ 0xF0,0x02,0x79,0xE7,0x90,0xF6,0xA9,0xE0,
+ 0xFF,0x90,0x45,0xDB,0x74,0x55,0xF0,0xEF,
+ 0xB4,0x01,0x06,0xA3,0x74,0x32,0xF0,0x80,
+ 0x06,0x90,0x45,0xDC,0x74,0xD2,0xF0,0x90,
+ 0x45,0x77,0x74,0x01,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x74,0x3E,0xF0,0xA3,0x74,0x45,0xF0,
+ 0xA3,0x74,0xDB,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0x02,0xF0,0xE4,0xFB,0x7D,0xC0,0x7F,
+ 0x02,0x12,0x56,0x45,0x02,0x79,0xE7,0x90,
+ 0x83,0xE8,0x74,0x01,0xF0,0x90,0x45,0x77,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x62,0xF0,
+ 0xA3,0x74,0x45,0xF0,0xA3,0x74,0xDD,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x02,0xF0,0x7B,
+ 0x01,0x7D,0xC0,0xFF,0x12,0x56,0x45,0x90,
+ 0x45,0xDD,0xE0,0x90,0xF6,0xA1,0xF0,0x90,
+ 0x45,0xDE,0xE0,0x90,0xF6,0xA2,0xF0,0x02,
+ 0x79,0xE7,0x90,0xF6,0xA9,0xE0,0x90,0x45,
+ 0xDF,0xF0,0x90,0x45,0x77,0x74,0x01,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x13,0xF0,0xA3,
+ 0x74,0x45,0xF0,0xA3,0x74,0xDF,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x04,0xF0,0xE4,0xFB,0x7D,
+ 0xC0,0x7F,0x02,0x12,0x56,0x45,0x80,0x5E,
+ 0x90,0x45,0x77,0x74,0x01,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0x74,0x13,0xF0,0xA3,0x74,0x45,
+ 0xF0,0xA3,0x74,0xE0,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x04,0xF0,0xFB,0x7D,0xC0,0x7F,0x02,
+ 0x12,0x56,0x45,0x90,0x45,0xE0,0xE0,0x90,
+ 0xF6,0xA1,0xF0,0x80,0x31,0x90,0xF6,0xA9,
+ 0xE0,0x90,0x45,0xE1,0xF0,0x90,0x45,0x77,
+ 0x74,0x01,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0x13,0xF0,0xA3,0x74,0x45,0xF0,0xA3,0x74,
+ 0xE1,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0xE4,0xFB,0x7D,0xC0,0x7F,0x02,0x12,0x56,
+ 0x45,0x80,0x03,0x12,0x7B,0x63,0x53,0x91,
+ 0xDF,0x90,0xF6,0xDF,0xE0,0x54,0xFE,0xF0,
+ 0x22,0x44,0x45,0xE5,0x9E,0xBE,0xDE,0xFE,
+ 0x00,0xC2,0xE9,0x90,0x45,0xEE,0xE0,0xFF,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0xFD,0xA3,0xE0,
+ 0xFC,0xD2,0xE9,0x60,0x06,0xED,0xD3,0x94,
+ 0x02,0x40,0x06,0x90,0xF6,0xA5,0xE4,0xF0,
+ 0x22,0xED,0xD3,0x94,0x00,0x40,0x16,0xED,
+ 0xC4,0x54,0xF0,0xFC,0x74,0x37,0x9C,0xFC,
+ 0xEE,0xC4,0x54,0x0F,0xFB,0xC3,0xEC,0x9B,
+ 0x90,0xF6,0xA5,0xF0,0x22,0xEE,0xD3,0x94,
+ 0x0C,0x40,0x10,0xEE,0x13,0x13,0x13,0x54,
+ 0x1F,0xFC,0xC3,0x74,0x49,0x9C,0x90,0xF6,
+ 0xA5,0xF0,0x22,0xEE,0xD3,0x94,0x02,0x40,
+ 0x19,0xEE,0x25,0xE0,0xFC,0xC3,0x74,0x5F,
+ 0x9C,0xFC,0xEF,0xC4,0x13,0x13,0x13,0x54,
+ 0x01,0xFB,0xC3,0xEC,0x9B,0x90,0xF6,0xA5,
+ 0xF0,0x22,0xED,0xD3,0x94,0x10,0x40,0x1A,
+ 0xEE,0x25,0xE0,0x25,0xE0,0xFE,0xC3,0x74,
+ 0x64,0x9E,0xFE,0xEF,0xC4,0x13,0x13,0x54,
+ 0x03,0xFF,0xC3,0xEE,0x9F,0x90,0xF6,0xA5,
+ 0xF0,0x22,0x90,0xF6,0xA5,0x74,0x64,0xF0,
+ 0x22,0xC2,0xE9,0x90,0x45,0xF2,0xE0,0xFF,
+ 0x90,0x45,0xE9,0xF0,0x90,0x45,0xF3,0xE0,
+ 0x90,0x45,0xEA,0xF0,0x90,0x45,0xF4,0xE0,
+ 0xF9,0xA3,0xE0,0x90,0x45,0xEB,0xF0,0x90,
+ 0x45,0xF6,0xE0,0x90,0x45,0xEC,0xF0,0x90,
+ 0x45,0xF7,0xE0,0x90,0x45,0xED,0xF0,0xD2,
+ 0xE9,0xEF,0xD3,0x94,0x64,0x50,0x03,0x02,
+ 0x7B,0x4B,0x90,0x45,0xEB,0xE0,0xFF,0xE9,
+ 0x9F,0x50,0x1C,0xE9,0xFD,0xC3,0xEF,0x9D,
+ 0xFF,0xE4,0x94,0x00,0xFE,0xA3,0xE0,0xFD,
+ 0x7C,0x00,0x12,0x80,0x5D,0xC3,0xE4,0x9F,
+ 0xFB,0x74,0x1E,0x9E,0xFA,0x80,0x1C,0x90,
+ 0x45,0xEB,0xE0,0xFF,0xE9,0xC3,0x9F,0xFF,
+ 0xE4,0x94,0x00,0xFE,0xA3,0xE0,0xFD,0x7C,
+ 0x00,0x12,0x80,0x5D,0xE4,0x2F,0xFB,0xEE,
+ 0x34,0x1E,0xFA,0x90,0xF6,0x41,0xE0,0x64,
+ 0x23,0x70,0x31,0x90,0x45,0xE3,0xE0,0xB4,
+ 0x01,0x1C,0xAF,0x01,0x90,0x45,0xEA,0xE0,
+ 0x29,0xFF,0xE4,0x33,0xCF,0x24,0x71,0xCF,
+ 0x34,0xFF,0xFE,0x7C,0x00,0x7D,0x28,0x12,
+ 0x80,0x5D,0xAA,0x06,0xAB,0x07,0xEA,0xFF,
+ 0x90,0x45,0xE2,0xE0,0x2F,0x24,0x05,0x90,
+ 0xF6,0xA6,0xF0,0x22,0xEA,0x90,0xF6,0xA6,
+ 0xF0,0x22,0x90,0x45,0xE9,0xE0,0xFF,0xC3,
+ 0x74,0x64,0x9F,0x75,0xF0,0x06,0x84,0xFF,
+ 0x90,0x45,0xED,0xE0,0x2F,0x90,0xF6,0xA6,
+ 0xF0,0x22,0x22,0x7F,0x00,0x22,0x90,0xF1,
+ 0x03,0xE0,0x90,0x45,0x88,0xF0,0x90,0xF6,
+ 0xB5,0xE0,0x54,0xF7,0x44,0x08,0xF0,0xE0,
+ 0x54,0xF7,0xF0,0x90,0x45,0x88,0xE0,0x90,
+ 0xF1,0x03,0xF0,0x90,0xF7,0x00,0xE0,0x04,
+ 0xF5,0x0D,0xA3,0xE0,0x54,0x70,0xFF,0x74,
+ 0xFE,0x25,0x0D,0xF5,0x82,0xE4,0x34,0xF6,
+ 0xF5,0x83,0xE0,0x2F,0xF0,0x90,0xF7,0x01,
+ 0xE0,0x54,0x8F,0xF0,0x7E,0xF0,0x7F,0x01,
+ 0xAB,0x0D,0x7D,0x00,0x7C,0xF7,0x12,0x48,
+ 0x86,0x90,0x42,0xE9,0xE0,0x60,0x04,0x7F,
+ 0x01,0x80,0x02,0x7F,0x03,0x90,0x45,0xF8,
+ 0xEF,0xF0,0x90,0x45,0x8B,0xE0,0xFD,0x90,
+ 0x46,0x04,0x74,0x01,0xF0,0xAB,0x0D,0x12,
+ 0x7E,0xD9,0xEF,0x70,0x76,0x90,0xF7,0x00,
+ 0xE0,0xB4,0x03,0x0A,0xA3,0xE0,0xB4,0x02,
+ 0x05,0x75,0x0D,0x02,0x80,0x6C,0x90,0xF7,
+ 0x00,0xE0,0xB4,0x04,0x06,0xA3,0xE0,0x64,
+ 0x03,0x60,0x58,0x90,0xF7,0x00,0xE0,0xB4,
+ 0x04,0x0A,0xA3,0xE0,0xB4,0x04,0x05,0x75,
+ 0x0D,0x02,0x80,0x4E,0x90,0xF7,0x00,0xE0,
+ 0xB4,0x05,0x06,0xA3,0xE0,0x64,0x05,0x60,
+ 0x3A,0x90,0xF7,0x02,0xE0,0x60,0x1F,0x24,
+ 0xFE,0x60,0x1B,0x14,0x60,0x13,0x24,0xE1,
+ 0x60,0x1E,0x24,0xFD,0x60,0x0B,0x24,0xFB,
+ 0x60,0x0C,0x14,0x60,0x04,0x24,0x2A,0x70,
+ 0x14,0x75,0x0D,0x05,0x80,0x1C,0x90,0xF7,
+ 0x04,0xE0,0x24,0x05,0xF5,0x0D,0x80,0x12,
+ 0x75,0x0D,0x09,0x80,0x0D,0x12,0x7B,0x64,
+ 0xEF,0x70,0x07,0x90,0xF4,0x05,0x74,0x20,
+ 0xF0,0x22,0x90,0xF4,0x12,0xE5,0x0D,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,0xF0,
+ 0xE4,0xF5,0x0E,0xF5,0x0F,0x90,0x45,0xF8,
+ 0xE0,0xFF,0x90,0x45,0x8B,0xE0,0x44,0x01,
+ 0xFD,0x90,0x46,0x04,0x74,0x01,0xF0,0xAB,
+ 0x0D,0x12,0x7E,0xD9,0x90,0x45,0xF9,0xEF,
+ 0xF0,0x60,0x14,0xE5,0x0F,0xF4,0x70,0x03,
+ 0xE5,0x0E,0xF4,0x60,0xBE,0x05,0x0F,0xE5,
+ 0x0F,0x70,0x02,0x05,0x0E,0x80,0xCE,0x7C,
+ 0xF0,0x7D,0x00,0xAB,0x0D,0x7F,0x00,0x7E,
+ 0xF7,0x12,0x48,0x86,0x90,0xF4,0x05,0x74,
+ 0x20,0xF0,0x90,0x45,0xFA,0xE0,0x70,0x28,
+ 0x90,0x42,0xE9,0xE0,0x60,0x1B,0x7E,0xDE,
+ 0x7F,0x40,0x90,0xF7,0x00,0xE0,0x04,0xFB,
+ 0x7D,0x00,0x7C,0xF7,0x12,0x48,0x86,0x90,
+ 0xF7,0x00,0xE0,0x04,0x90,0xDD,0x86,0xF0,
+ 0x22,0x90,0xF4,0x11,0xE0,0x54,0xFC,0xF0,
+ 0x22,0x05,0x16,0x85,0x16,0x16,0x05,0x16,
+ 0x85,0x16,0x16,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x05,
+ 0x16,0x90,0x83,0xF1,0xE0,0x90,0xF1,0x03,
+ 0xF0,0x12,0x4A,0x80,0x90,0x83,0xEE,0xE0,
+ 0xFF,0x90,0xF1,0x01,0xE0,0x8F,0xF0,0xA4,
+ 0xFF,0xAE,0xF0,0x90,0x83,0xEF,0xE0,0x7C,
+ 0x00,0x2F,0xF5,0x13,0xEC,0x3E,0xF5,0x12,
+ 0xE4,0xF5,0x14,0xF5,0x10,0xF5,0x11,0xC3,
+ 0xE5,0x11,0x95,0x13,0xE5,0x10,0x95,0x12,
+ 0x50,0x74,0xE5,0x11,0x45,0x10,0x70,0x20,
+ 0x90,0xF1,0x02,0xE0,0x54,0xFE,0x44,0x01,
+ 0xF0,0x90,0x83,0xFE,0xE0,0x54,0xFE,0x44,
+ 0x01,0xF0,0xE0,0x54,0xFE,0xF0,0xE0,0x54,
+ 0xFE,0x44,0x01,0xF0,0xE0,0x54,0xFE,0xF0,
+ 0xE5,0x14,0x25,0xE0,0x24,0xF4,0xF5,0x82,
+ 0xE4,0x34,0x83,0xF5,0x83,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x12,0x4A,0x1B,0x7E,0x00,0xE5,
+ 0x11,0x54,0x01,0x24,0xF0,0xF5,0x82,0xEE,
+ 0x34,0x83,0xF5,0x83,0xE0,0x90,0xF1,0x03,
+ 0xF0,0x90,0x83,0xFE,0xE0,0x54,0xFE,0x44,
+ 0x01,0xF0,0xE0,0x54,0xFE,0xF0,0x05,0x11,
+ 0xE5,0x11,0x70,0x02,0x05,0x10,0x74,0xFB,
+ 0x25,0x14,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xE0,0xF5,0x14,0x80,0x81,0xE4,0x22,
+ 0xE4,0xFF,0x90,0x83,0xF3,0xE0,0xFE,0x90,
+ 0x83,0xF2,0xE0,0xFD,0x2E,0x14,0xFE,0xEF,
+ 0xC3,0x9E,0x50,0x12,0xEF,0x04,0xFE,0x74,
+ 0xFB,0x2F,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xEE,0xF0,0x0F,0x80,0xDC,0x74,0xFB,
+ 0x2F,0xF5,0x82,0xE4,0x34,0x45,0xF5,0x83,
+ 0xED,0xF0,0x22,0xE4,0x90,0x83,0xED,0xF0,
+ 0xA3,0x74,0x02,0xF0,0xA3,0x14,0xF0,0xA3,
+ 0x74,0xFF,0xF0,0xA3,0x74,0x07,0xF0,0xA3,
+ 0x74,0x01,0xF0,0xA3,0x04,0xF0,0xA3,0x14,
+ 0xF0,0xA3,0x74,0x63,0xF0,0xA3,0x74,0x03,
+ 0xF0,0xA3,0x74,0x40,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x74,0x24,0xF0,0x22,0x12,0x7D,0xD4,
+ 0xE4,0x90,0x83,0xE8,0xF0,0x90,0x46,0x07,
+ 0x74,0xAE,0xF0,0x12,0x7F,0xD8,0xD2,0x88,
+ 0xE4,0x90,0x45,0xFA,0xF0,0x12,0x7F,0xF3,
+ 0x22,0x90,0xF1,0x01,0xE0,0x04,0xFF,0xF0,
+ 0x24,0x00,0xF5,0x82,0xE4,0x34,0xF0,0xF5,
+ 0x83,0x74,0xFF,0xF0,0x90,0xF1,0x03,0x74,
+ 0x1A,0xF0,0x90,0x83,0xFE,0x74,0x01,0xF0,
+ 0xE4,0xF0,0x90,0xF1,0x02,0xE0,0x54,0xFE,
+ 0x44,0x01,0xF0,0x90,0x46,0x05,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x12,0x4A,0x1B,0x90,0xF6,
+ 0xB5,0xE0,0x54,0xF7,0x44,0x08,0xF0,0xE0,
+ 0x54,0xF7,0xF0,0x90,0x45,0x89,0xE4,0xF0,
+ 0xA3,0x04,0xF0,0x22,0x7E,0x00,0x7C,0x03,
+ 0x7D,0xA8,0x12,0x80,0x5D,0xE4,0x2F,0xFF,
+ 0xEE,0x34,0x04,0x90,0x46,0x05,0xF0,0xA3,
+ 0xEF,0xF0,0x22,0x90,0x83,0xE8,0xE0,0x60,
+ 0x06,0x14,0xF0,0x12,0x7E,0x22,0x22,0x90,
+ 0x83,0xE3,0xE0,0xB4,0x01,0x04,0x12,0x7F,
+ 0x43,0x22,0x90,0x83,0xED,0xE0,0x70,0x34,
+ 0x90,0xF1,0x04,0xE0,0x54,0x0C,0xFF,0xBF,
+ 0x08,0x18,0x90,0xF6,0xA7,0xE0,0x70,0x08,
+ 0x90,0xF1,0x03,0x74,0x1A,0xF0,0x80,0x12,
+ 0x90,0xF6,0xA7,0xE0,0x90,0xF1,0x03,0xF0,
+ 0x80,0x08,0x90,0x45,0x88,0xE0,0x90,0xF1,
+ 0x03,0xF0,0x90,0xF1,0x02,0xE0,0x54,0xFE,
+ 0x44,0x01,0xF0,0x22,0x12,0x7C,0xDA,0x22,
+ 0x90,0x46,0x01,0xEF,0xF0,0xAA,0x05,0xE4,
+ 0xF5,0x15,0x90,0x83,0xE8,0xE0,0x60,0x0E,
+ 0x75,0x15,0x01,0xAF,0x03,0x12,0x7E,0x6D,
+ 0xC2,0xAF,0xC2,0xDD,0x80,0x13,0x90,0x83,
+ 0xED,0xE0,0x64,0x01,0x60,0x07,0x90,0x83,
+ 0xE3,0xE0,0xB4,0x01,0x04,0xC2,0xAF,0xC2,
+ 0xDD,0x90,0x46,0x01,0xE0,0xFF,0xAE,0x02,
+ 0xAD,0x06,0x90,0x46,0x04,0xE0,0x90,0x45,
+ 0x86,0xF0,0x12,0x57,0x8C,0xD2,0xDD,0xD2,
+ 0xAF,0xE5,0x15,0x70,0x07,0x90,0x83,0xE3,
+ 0xE0,0xB4,0x01,0x02,0xE4,0xFF,0x90,0x83,
+ 0xE3,0xE0,0x60,0x0D,0x90,0x46,0x01,0xE0,
+ 0xB4,0x02,0x06,0x90,0x83,0xE3,0xE0,0x14,
+ 0xF0,0x22,0x90,0xF6,0xFF,0xE0,0x54,0xEF,
+ 0xF0,0xE0,0x54,0xFB,0xF0,0x90,0xF1,0x03,
+ 0x74,0x07,0xF0,0x90,0xF1,0x02,0xE0,0x54,
+ 0xFE,0x44,0x01,0xF0,0x90,0x83,0xE4,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x12,0x4A,0x1B,0x90,
+ 0x83,0xFE,0xE0,0x54,0xFE,0x44,0x01,0xF0,
+ 0xE0,0x54,0xFE,0xF0,0x90,0xF6,0xB5,0xE0,
+ 0x54,0xF7,0x44,0x08,0xF0,0xE0,0x54,0xF7,
+ 0xF0,0x90,0xF6,0xFF,0xE0,0x54,0xFD,0x44,
+ 0x02,0xF0,0x90,0x83,0xE6,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x12,0x4A,0x1B,0x90,0xF6,0xFF,
+ 0xE0,0x54,0xFB,0x44,0x04,0xF0,0x7F,0x01,
+ 0x7E,0x00,0x12,0x4A,0x1B,0x90,0xF6,0xFF,
+ 0xE0,0x54,0xFB,0xF0,0xE0,0x54,0xF7,0x44,
+ 0x08,0xF0,0x7F,0x01,0x7E,0x00,0x12,0x4A,
+ 0x1B,0x90,0xF6,0xFF,0xE0,0x54,0xFD,0xF0,
+ 0x7F,0x01,0x7E,0x00,0x12,0x4A,0x1B,0x90,
+ 0xF6,0xFF,0xE0,0x54,0xF7,0xF0,0x90,0x45,
+ 0x89,0xE4,0xF0,0xA3,0x04,0xF0,0x22,0xE4,
+ 0x90,0x83,0xE3,0xF0,0xA3,0x74,0x08,0xF0,
+ 0xA3,0x74,0x60,0xF0,0xA3,0x74,0x28,0xF0,
+ 0xA3,0x74,0x07,0xF0,0x22,0xC2,0xAF,0xC2,
+ 0xDD,0x22,0x90,0x12,0x22,0xE0,0x90,0x83,
+ 0xD0,0xF0,0xC3,0x94,0x7F,0x40,0x22,0x90,
+ 0x38,0x4F,0xE0,0xB4,0xFF,0x07,0x90,0x83,
+ 0xD0,0x74,0x02,0xF0,0x22,0x90,0x83,0xD1,
+ 0xE0,0xB4,0xC3,0x07,0x90,0x83,0xD0,0x74,
+ 0x11,0xF0,0x22,0x90,0x83,0xD0,0x74,0x01,
+ 0xF0,0x22,0x90,0x42,0xE9,0xE0,0x60,0x04,
+ 0x12,0x55,0xDB,0x22,0x7F,0x01,0x22,0xBB,
+ 0x01,0x0C,0xE5,0x82,0x29,0xF5,0x82,0xE5,
+ 0x83,0x3A,0xF5,0x83,0xE0,0x22,0x50,0x06,
+ 0xE9,0x25,0x82,0xF8,0xE6,0x22,0xBB,0xFE,
+ 0x06,0xE9,0x25,0x82,0xF8,0xE2,0x22,0xE5,
+ 0x82,0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,
+ 0x83,0xE4,0x93,0x22,0xEF,0x8D,0xF0,0xA4,
+ 0xA8,0xF0,0xCF,0x8C,0xF0,0xA4,0x28,0xCE,
+ 0x8D,0xF0,0xA4,0x2E,0xFE,0x22,0xC5,0xF0,
+ 0xF8,0xA3,0xE0,0x28,0xF0,0xC5,0xF0,0xF8,
+ 0xE5,0x82,0x15,0x82,0x70,0x02,0x15,0x83,
+ 0xE0,0x38,0xF0,0x22,0xA3,0xF8,0xE0,0xC5,
+ 0xF0,0x25,0xF0,0xF0,0xE5,0x82,0x15,0x82,
+ 0x70,0x02,0x15,0x83,0xE0,0xC8,0x38,0xF0,
+ 0xE8,0x22,0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,
+ 0x42,0xF0,0xE9,0x9D,0x42,0xF0,0xEC,0x64,
+ 0x80,0xC8,0x64,0x80,0x98,0x45,0xF0,0x22,
+ 0xD0,0x83,0xD0,0x82,0xF8,0xE4,0x93,0x70,
+ 0x12,0x74,0x01,0x93,0x70,0x0D,0xA3,0xA3,
+ 0x93,0xF8,0x74,0x01,0x93,0xF5,0x82,0x88,
+ 0x83,0xE4,0x73,0x74,0x02,0x93,0x68,0x60,
+ 0xEF,0xA3,0xA3,0xA3,0x80,0xDF,0x8A,0x83,
+ 0x89,0x82,0xE4,0x73,0xE7,0x09,0xF6,0x08,
+ 0xDF,0xFA,0x80,0x46,0xE7,0x09,0xF2,0x08,
+ 0xDF,0xFA,0x80,0x3E,0x88,0x82,0x8C,0x83,
+ 0xE7,0x09,0xF0,0xA3,0xDF,0xFA,0x80,0x32,
+ 0xE3,0x09,0xF6,0x08,0xDF,0xFA,0x80,0x6E,
+ 0xE3,0x09,0xF2,0x08,0xDF,0xFA,0x80,0x66,
+ 0x88,0x82,0x8C,0x83,0xE3,0x09,0xF0,0xA3,
+ 0xDF,0xFA,0x80,0x5A,0x89,0x82,0x8A,0x83,
+ 0xE0,0xA3,0xF6,0x08,0xDF,0xFA,0x80,0x4E,
+ 0x89,0x82,0x8A,0x83,0xE0,0xA3,0xF2,0x08,
+ 0xDF,0xFA,0x80,0x42,0x80,0xD2,0x80,0xFA,
+ 0x80,0xC6,0x80,0xD4,0x80,0x55,0x80,0xF2,
+ 0x80,0x29,0x80,0x10,0x80,0xA6,0x80,0xEA,
+ 0x80,0x9A,0x80,0xA8,0x80,0xDA,0x80,0xE2,
+ 0x80,0xCA,0x80,0x29,0x88,0x84,0x8C,0x85,
+ 0x89,0x82,0x8A,0x83,0xE4,0x93,0xA3,0x05,
+ 0x86,0xF0,0xA3,0x05,0x86,0xDF,0xF5,0xDE,
+ 0xF3,0x80,0x0B,0x89,0x82,0x8A,0x83,0xE4,
+ 0x93,0xA3,0xF6,0x08,0xDF,0xF9,0xEC,0xFA,
+ 0xA9,0xF0,0xED,0xFB,0x22,0x88,0x84,0x8C,
+ 0x85,0x89,0x82,0x8A,0x83,0xE0,0xA3,0x05,
+ 0x86,0xF0,0xA3,0x05,0x86,0xDF,0xF6,0xDE,
+ 0xF4,0x80,0xE3,0x89,0x82,0x8A,0x83,0xE4,
+ 0x93,0xA3,0xF2,0x08,0xDF,0xF9,0x80,0xD6,
+ 0x88,0xF0,0xEF,0x60,0x01,0x0E,0x4E,0x60,
+ 0xCD,0x88,0xF0,0xED,0x24,0x02,0xB4,0x04,
+ 0x00,0x50,0xC3,0xF5,0x82,0xEB,0x24,0x02,
+ 0xB4,0x04,0x00,0x50,0xB9,0x23,0x23,0x45,
+ 0x82,0x23,0x90,0x81,0x2D,0x73,0x7F,0xEE,
+ 0x5A,0xCF,0x5B,0xC3,0x64,0x8F,0x49,0x60,
+ 0x6D,0xEE,0x4F,0x3B,0x64,0x90,0x64,0x91,
+ 0x74,0xF9,0x64,0x92,0x64,0x93,0x4F,0x3F,
+ 0x12,0x01,0x00,0x02,0x00,0x00,0x00,0x40,
+ 0xA4,0x15,0x35,0x90,0x00,0x02,0x00,0x00,
+ 0x00,0x01,0x0A,0x06,0x00,0x02,0x00,0x00,
+ 0x00,0x40,0x01,0x00,0x09,0x07,0x35,0x00,
+ 0x01,0x01,0x00,0x80,0xFA,0x09,0x02,0x35,
+ 0x00,0x01,0x01,0x00,0x80,0xFA,0x09,0x04,
+ 0x00,0x00,0x05,0xFF,0x00,0x00,0x00,0x07,
+ 0x05,0x81,0x02,0x40,0x00,0x00,0x07,0x05,
+ 0x02,0x02,0x40,0x00,0x00,0x07,0x05,0x84,
+ 0x02,0x40,0x00,0x00,0x07,0x05,0x85,0x02,
+ 0x40,0x00,0x00,0x07,0x05,0x86,0x01,0x00,
+ 0x00,0x01,0x09,0x04,0x00,0x01,0x05,0xFF,
+ 0x00,0x00,0x00,0x07,0x05,0x81,0x02,0x40,
+ 0x00,0x00,0x07,0x05,0x02,0x02,0x40,0x00,
+ 0x00,0x07,0x05,0x84,0x02,0x40,0x00,0x00,
+ 0x07,0x05,0x85,0x02,0x40,0x00,0x00,0x07,
+ 0x05,0x86,0x01,0x00,0x14,0x01,0x09,0x04,
+ 0x01,0x00,0x01,0x03,0x00,0x01,0x00,0x09,
+ 0x21,0x01,0x01,0x00,0x01,0x22,0x41,0x00,
+ 0x07,0x05,0x83,0x03,0x40,0x00,0x10,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x05,0x01,0x09,0x06,0xA1,
+ 0x01,0x05,0x07,0x19,0xE0,0x29,0xE7,0x15,
+ 0x00,0x25,0x01,0x95,0x08,0x75,0x01,0x81,
+ 0x02,0x95,0x08,0x75,0x01,0x81,0x01,0x05,
+ 0x08,0x19,0x01,0x29,0x03,0x95,0x03,0x75,
+ 0x01,0x91,0x02,0x95,0x01,0x75,0x05,0x91,
+ 0x01,0x05,0x07,0x19,0x00,0x2A,0xFF,0x00,
+ 0x15,0x00,0x26,0xFF,0x00,0x95,0x06,0x75,
+ 0x08,0x81,0x00,0xC0,
+
+ 0x01,0x83,0xE9,0x00,0x04,0x11,0x7C,0x0B,
+ 0x16,0x0C,0x00,
+
+ 0x02,0x41,0x00,0x00,0x03,0xFA,0xBE,0x02,
+ 0x46,0x0C,
+
+ 0x02,0x45,0x50,0x63,0xC7,0xE6,0x57,0x44,
+ 0x41,0x91,0x05,0x42,0x0C,0x00,0x4E,0x42,
+ 0xB8,0x99,0x46,0x01,0xE9,0x50,0x06,0xC6,
+ 0xB3,0xB0,0xB0,0xAE,0xA8,0x9E,0x74,0x4E,
+ 0x42,0xC6,0x02,0x02,0x02,0x01,0x01,0x01,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x4E,0x42,0xD4,0x00,0x00,0x00,0x03,0x05,
+ 0x08,0x0C,0x0F,0x10,0x10,0x10,0x0D,0x0B,
+ 0x05,0x5C,0x42,0xE2,0x00,0x00,0x00,0x99,
+ 0x00,0x00,0x00,0xE8,0x00,0x4B,0x00,0xFC,
+ 0x00,0xAE,0x00,0x8B,0x00,0x79,0x00,0x70,
+ 0x00,0x6C,0x00,0x6B,0x00,0x6B,0x00,0x14,
+ 0x5C,0x42,0xFE,0x00,0x03,0x00,0x02,0x00,
+ 0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5C,
+ 0x43,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x03,
+ 0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x05,
+ 0x00,0x06,0x00,0x06,0x00,0x03,0x48,0x44,
+ 0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x50,0x44,0x7F,0x02,0x39,0x04,0xEE,
+ 0x08,0xFB,0x0E,0xAA,0x10,0xD5,0x13,0x0D,
+ 0x14,0xC9,0x18,0xFE,0x43,0x44,0xAB,0x40,
+ 0x5B,0x00,0x00,0x78,0x7F,0xE4,0xF6,0xD8,
+ 0xFD,0x75,0x81,0x32,0x02,0x46,0x53,0x02,
+ 0x6F,0x69,0xE4,0x93,0xA3,0xF8,0xE4,0x93,
+ 0xA3,0x40,0x03,0xF6,0x80,0x01,0xF2,0x08,
+ 0xDF,0xF4,0x80,0x29,0xE4,0x93,0xA3,0xF8,
+ 0x54,0x07,0x24,0x0C,0xC8,0xC3,0x33,0xC4,
+ 0x54,0x0F,0x44,0x20,0xC8,0x83,0x40,0x04,
+ 0xF4,0x56,0x80,0x01,0x46,0xF6,0xDF,0xE4,
+ 0x80,0x0B,0x01,0x02,0x04,0x08,0x10,0x20,
+ 0x40,0x80,0x90,0x45,0x50,0xE4,0x7E,0x01,
+ 0x93,0x60,0xBC,0xA3,0xFF,0x54,0x3F,0x30,
+ 0xE5,0x09,0x54,0x1F,0xFE,0xE4,0x93,0xA3,
+ 0x60,0x01,0x0E,0xCF,0x54,0xC0,0x25,0xE0,
+ 0x60,0xA8,0x40,0xB8,0xE4,0x93,0xA3,0xFA,
+ 0xE4,0x93,0xA3,0xF8,0xE4,0x93,0xA3,0xC8,
+ 0xC5,0x82,0xC8,0xCA,0xC5,0x83,0xCA,0xF0,
+ 0xA3,0xC8,0xC5,0x82,0xC8,0xCA,0xC5,0x83,
+ 0xCA,0xDF,0xE9,0xDE,0xE7,0x80,0xBE,0xC0,
+ 0xE0,0x75,0xE0,0x00,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x02,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x04,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x06,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x08,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x0A,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x0C,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x0E,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x10,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x12,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x14,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x16,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x18,0x02,0x47,0x00,0xC0,
+ 0xD0,0x75,0xD0,0x00,0xC0,0x86,0x75,0x86,
+ 0x00,0xC0,0x83,0xC0,0x82,0xC0,0x85,0xC0,
+ 0x84,0xC0,0xF0,0xC0,0x00,0xC0,0x01,0xC0,
+ 0x02,0xC0,0x03,0xC0,0x04,0xC0,0x05,0xC0,
+ 0x06,0xC0,0x07,0x90,0xAD,0x41,0xF9,0x93,
+ 0xFA,0xE9,0x04,0x93,0xF9,0x12,0xAA,0xCC,
+ 0xD0,0x07,0xD0,0x06,0xD0,0x05,0xD0,0x04,
+ 0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,0x00,
+ 0xD0,0xF0,0xD0,0x84,0xD0,0x85,0xD0,0x82,
+ 0xD0,0x83,0xD0,0x86,0xD0,0xD0,0xD0,0xE0,
+ 0x32,0xC2,0x8C,0xC2,0x8D,0xEF,0x42,0x89,
+ 0xEA,0xF4,0xF5,0x8C,0xEB,0xF4,0xF5,0x8A,
+ 0x53,0x8E,0xF7,0xAF,0x05,0xEF,0x33,0x33,
+ 0x33,0x54,0xF8,0x42,0x8E,0xD2,0x8C,0x30,
+ 0x8D,0xFD,0xC2,0x8D,0x22,0xAB,0x07,0xAA,
+ 0x06,0xE4,0xFD,0x7F,0x01,0x12,0x47,0x52,
+ 0x22,0xC2,0xCA,0x43,0x8E,0x08,0xE4,0x90,
+ 0x42,0x5E,0xF0,0xA3,0xF0,0x90,0x42,0x60,
+ 0xF0,0xA3,0xF0,0xD2,0xAD,0xF5,0xC9,0xC2,
+ 0xC9,0xC2,0xCD,0xC2,0xCC,0xC2,0xC8,0xC2,
+ 0xCE,0xC2,0xCB,0x75,0xCA,0xAA,0x75,0xCB,
+ 0xF2,0xD2,0xCA,0x22,0xAB,0x07,0x90,0xF1,
+ 0x1D,0x74,0x01,0xF0,0xE4,0xF0,0xED,0x90,
+ 0xF1,0x18,0xF0,0xEC,0xA3,0xF0,0x90,0xF1,
+ 0x1B,0xEB,0xF0,0x90,0xF1,0x1A,0x74,0x01,
+ 0xF0,0x22,0x22,0xC2,0xAF,0x90,0x41,0x03,
+ 0x74,0x02,0xF0,0xA3,0x74,0x46,0xF0,0xA3,
+ 0x74,0x98,0xF0,0x90,0x41,0x0B,0x74,0x02,
+ 0xF0,0xA3,0x74,0x46,0xF0,0xA3,0x74,0xA0,
+ 0xF0,0x90,0x41,0x13,0x74,0x02,0xF0,0xA3,
+ 0x74,0x46,0xF0,0xA3,0x74,0xA8,0xF0,0x90,
+ 0x41,0x1B,0x74,0x02,0xF0,0xA3,0x74,0x46,
+ 0xF0,0xA3,0x74,0xB0,0xF0,0x90,0x41,0x23,
+ 0x74,0x02,0xF0,0xA3,0x74,0x46,0xF0,0xA3,
+ 0x74,0xB8,0xF0,0x90,0x41,0x2B,0x74,0x02,
+ 0xF0,0xA3,0x74,0x46,0xF0,0xA3,0x74,0xC0,
+ 0xF0,0x90,0x41,0x33,0x74,0x02,0xF0,0xA3,
+ 0x74,0x46,0xF0,0xA3,0x74,0xC8,0xF0,0x90,
+ 0x41,0x3B,0x74,0x02,0xF0,0xA3,0x74,0x46,
+ 0xF0,0xA3,0x74,0xD0,0xF0,0x90,0x41,0x43,
+ 0x74,0x02,0xF0,0xA3,0x74,0x46,0xF0,0xA3,
+ 0x74,0xD8,0xF0,0x90,0x41,0x4B,0x74,0x02,
+ 0xF0,0xA3,0x74,0x46,0xF0,0xA3,0x74,0xE0,
+ 0xF0,0x90,0x41,0x53,0x74,0x02,0xF0,0xA3,
+ 0x74,0x46,0xF0,0xA3,0x74,0xE8,0xF0,0x90,
+ 0x41,0x5B,0x74,0x02,0xF0,0xA3,0x74,0x46,
+ 0xF0,0xA3,0x74,0xF0,0xF0,0x90,0x41,0x63,
+ 0x74,0x02,0xF0,0xA3,0x74,0x46,0xF0,0xA3,
+ 0x74,0xF8,0xF0,0x90,0x47,0xCB,0x74,0x32,
+ 0xF0,0xD2,0xAF,0x22,0xE4,0x90,0x42,0x46,
+ 0xF0,0x12,0x6E,0x75,0x90,0xF7,0x3C,0xE0,
+ 0x70,0x03,0x12,0x9C,0x73,0xE4,0x90,0x41,
+ 0xD2,0xF0,0x90,0x41,0xD1,0xF0,0x04,0x12,
+ 0x72,0x28,0x22,0xC2,0xAF,0x90,0xF7,0x3D,
+ 0xE4,0xF0,0xFF,0x7E,0x28,0x12,0x47,0x76,
+ 0xD2,0xAF,0x22,0xE4,0x90,0x42,0x47,0xF0,
+ 0x90,0x42,0x46,0xF0,0x90,0x44,0x97,0xF0,
+ 0x22,0x05,0x2C,0x12,0x48,0xBC,0x12,0x48,
+ 0x8D,0x90,0x41,0xEB,0xE0,0x90,0xF0,0x76,
+ 0xF0,0x90,0x43,0x38,0x74,0x01,0xF0,0x90,
+ 0x43,0x3D,0xF0,0x90,0x43,0x39,0xF0,0xE4,
+ 0x90,0x43,0x3C,0xF0,0x90,0x41,0xE1,0xE0,
+ 0xB4,0x01,0x14,0x90,0x43,0x50,0x74,0x01,
+ 0xF0,0x12,0x68,0xE0,0x12,0x67,0x79,0x90,
+ 0xFB,0xA8,0x74,0x01,0xF0,0x80,0x16,0x90,
+ 0xFB,0xA8,0xE4,0xF0,0x12,0x67,0x6B,0xE4,
+ 0x90,0x43,0x50,0xF0,0x90,0x42,0x4B,0xE0,
+ 0x60,0x03,0x12,0x88,0x8B,0xE4,0x90,0x41,
+ 0xE1,0xF0,0x12,0xA8,0x8B,0x22,0xEF,0x24,
+ 0x04,0x90,0xFE,0x00,0xF0,0x90,0xFE,0x03,
+ 0xE0,0x90,0xFE,0x01,0xF0,0xA3,0xED,0xF0,
+ 0xEF,0x24,0x05,0x90,0xFB,0x90,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0xF0,0x22,0xAD,0x07,0x75,
+ 0x0A,0x01,0x75,0x0B,0xFE,0x75,0x0C,0x01,
+ 0xE4,0xF5,0x08,0xF5,0x09,0xED,0x60,0x3B,
+ 0xB4,0x01,0x16,0xAB,0x0A,0xAA,0x0B,0xA9,
+ 0x0C,0x12,0xA9,0x1B,0xFE,0xE4,0x25,0x09,
+ 0xF5,0x09,0xEE,0x35,0x08,0xF5,0x08,0x80,
+ 0x22,0x85,0x0C,0x82,0x85,0x0B,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0x25,0x09,0xF5,0x09,0xEE,
+ 0x35,0x08,0xF5,0x08,0x74,0x02,0x25,0x0C,
+ 0xF5,0x0C,0xE4,0x35,0x0B,0xF5,0x0B,0x1D,
+ 0x1D,0x80,0xC2,0xAE,0x08,0xAF,0x09,0x22,
+ 0x90,0x42,0x63,0xEE,0xF0,0xA3,0xEF,0xF0,
+ 0x75,0x0D,0xFE,0x75,0x0E,0x03,0xED,0x60,
+ 0x2C,0x90,0x42,0x63,0xE0,0xFE,0xA3,0xE0,
+ 0xF5,0x82,0x8E,0x83,0xE0,0x85,0x0E,0x82,
+ 0x85,0x0D,0x83,0xF0,0x90,0x42,0x64,0xE0,
+ 0x04,0xF0,0x70,0x06,0x90,0x42,0x63,0xE0,
+ 0x04,0xF0,0x05,0x0E,0xE5,0x0E,0x70,0x02,
+ 0x05,0x0D,0x1D,0x80,0xD1,0x22,0xE4,0x90,
+ 0x42,0x6C,0xF0,0x90,0xFE,0x01,0xE0,0x54,
+ 0x7F,0x90,0x44,0x96,0xF0,0x90,0xFE,0x08,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x42,0x69,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x12,0x88,0x8B,0x90,
+ 0x44,0x96,0xE0,0xFB,0x60,0x0F,0x90,0xFE,
+ 0x02,0xE0,0xFD,0xA3,0xE0,0x90,0x42,0x69,
+ 0xCD,0xF0,0xA3,0xED,0xF0,0x90,0x42,0x69,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,0xEC,0x94,
+ 0x40,0x50,0x12,0x90,0x41,0x8C,0xE0,0x2D,
+ 0xFE,0x90,0x41,0x8B,0xE0,0x3C,0x90,0x42,
+ 0x69,0xF0,0xA3,0xCE,0xF0,0x90,0xFE,0x00,
+ 0xE0,0x64,0x03,0x70,0x29,0xEB,0x64,0x02,
+ 0x70,0x24,0x04,0xF0,0x90,0x42,0x69,0xE0,
+ 0xFE,0xA3,0xE0,0xF5,0x82,0x8E,0x83,0xE0,
+ 0x90,0xFE,0x01,0xF0,0x90,0xFB,0x90,0x74,
+ 0x02,0xF0,0xA3,0xE4,0xF0,0xA3,0xF0,0x90,
+ 0x42,0x6C,0xF0,0x02,0x4C,0x28,0x90,0xFE,
+ 0x00,0xE0,0x64,0x04,0x70,0x43,0x90,0x44,
+ 0x96,0xE0,0x64,0x03,0x70,0x3B,0x90,0x41,
+ 0x8B,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x42,
+ 0x69,0xE0,0xB5,0x06,0x11,0xA3,0xE0,0xB5,
+ 0x07,0x0C,0x12,0x48,0xCA,0x90,0x42,0x6C,
+ 0x74,0x03,0xF0,0x02,0x4C,0x28,0x90,0xFE,
+ 0x04,0xE0,0xFF,0x90,0x42,0x69,0xE0,0xFC,
+ 0xA3,0xE0,0xF5,0x82,0x8C,0x83,0xEF,0xF0,
+ 0x90,0x42,0x6C,0x74,0x02,0xF0,0x02,0x4C,
+ 0x28,0x90,0x42,0x67,0x74,0xFE,0xF0,0xA3,
+ 0x74,0x0A,0xF0,0x90,0xFE,0x00,0xE0,0xFF,
+ 0x24,0xFF,0xF5,0x82,0xE4,0x34,0xFD,0xF5,
+ 0x83,0xE0,0xFC,0xA3,0xE0,0xF4,0xFD,0xEC,
+ 0xF4,0x90,0x42,0x65,0xF0,0xA3,0xED,0xF0,
+ 0xEF,0x24,0xFE,0xFF,0x12,0x49,0x46,0x90,
+ 0x42,0x65,0xE0,0x6E,0x70,0x03,0xA3,0xE0,
+ 0x6F,0x60,0x09,0x90,0x42,0x6C,0x74,0x02,
+ 0xF0,0x02,0x4C,0x28,0x90,0x41,0x8B,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x42,0x69,0xE0,
+ 0xB5,0x06,0x27,0xA3,0xE0,0xB5,0x07,0x22,
+ 0x12,0x48,0xCA,0x90,0x42,0x6C,0x74,0x01,
+ 0xF0,0xE4,0xFD,0xFF,0x12,0x49,0x27,0x90,
+ 0xFE,0x01,0xE0,0xFE,0xA3,0xE0,0xF4,0xFF,
+ 0xEE,0xF4,0xA3,0xF0,0xA3,0xEF,0xF0,0x02,
+ 0x4C,0x28,0x90,0xFE,0x04,0xE0,0xFF,0x90,
+ 0x42,0x6B,0xF0,0x90,0xFE,0x01,0xE0,0x54,
+ 0x3F,0xFC,0xA3,0xE0,0xFD,0xEC,0x60,0x03,
+ 0x02,0x4C,0x80,0xED,0x60,0x59,0x24,0xF8,
+ 0x60,0x55,0x14,0x60,0x15,0x24,0xFC,0x70,
+ 0x03,0x02,0x4C,0x1F,0x24,0xEB,0x70,0x03,
+ 0x02,0x4B,0xD4,0x24,0x21,0x60,0x03,0x02,
+ 0x4C,0x80,0xEF,0x60,0x23,0x1F,0x90,0x42,
+ 0x67,0xE0,0xFC,0xA3,0xE0,0x2F,0xF5,0x82,
+ 0xE4,0x3C,0xF5,0x83,0xE0,0xFE,0x90,0x42,
+ 0x69,0xE0,0xFC,0xA3,0xE0,0x2F,0xF5,0x82,
+ 0xE4,0x3C,0xF5,0x83,0xEE,0xF0,0x80,0xDA,
+ 0x85,0x2C,0x2C,0x05,0x2C,0x05,0x2C,0x12,
+ 0xA7,0x48,0x05,0x2C,0x85,0x2C,0x2C,0x05,
+ 0x2C,0x85,0x2C,0x2C,0x02,0x4C,0x28,0x90,
+ 0x42,0x6B,0xE0,0xFF,0xE4,0xFD,0x12,0x49,
+ 0x27,0x90,0x42,0x69,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xA3,0xE0,0xFD,0x12,0x49,0x99,0x90,
+ 0xFE,0x00,0xE0,0x24,0xFE,0xFF,0x12,0x49,
+ 0x46,0xEF,0xF4,0xFF,0xEE,0xF4,0xFE,0x90,
+ 0xFE,0x00,0xE0,0x24,0xFF,0xF5,0x82,0xE4,
+ 0x34,0xFD,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,
+ 0xF0,0x80,0x54,0xE4,0xFD,0x7F,0x04,0x12,
+ 0x49,0x27,0x90,0x41,0x91,0xE0,0x90,0xFE,
+ 0x03,0xF0,0x90,0x41,0x92,0xE0,0x90,0xFE,
+ 0x04,0xF0,0x90,0x41,0x93,0xE0,0x90,0xFE,
+ 0x05,0xF0,0x90,0x41,0x94,0xE0,0x90,0xFE,
+ 0x06,0xF0,0x90,0xFE,0x00,0xE0,0x24,0xFE,
+ 0xFF,0x12,0x49,0x46,0xEF,0xF4,0xFF,0xEE,
+ 0xF4,0xFE,0x90,0xFE,0x00,0xE0,0x24,0xFF,
+ 0xF5,0x82,0xE4,0x34,0xFD,0xF5,0x83,0xEE,
+ 0xF0,0xA3,0xEF,0xF0,0x80,0x09,0x90,0xFB,
+ 0x86,0x74,0x01,0xF0,0x12,0x8A,0x16,0x90,
+ 0xFB,0x86,0x74,0x01,0xF0,0x90,0x42,0x6C,
+ 0xE0,0xFF,0x64,0x02,0x60,0x24,0xEF,0x64,
+ 0x03,0x60,0x1F,0x90,0xF9,0x9F,0xE0,0x60,
+ 0x14,0x90,0xFB,0x88,0xE0,0x64,0x01,0x60,
+ 0xF8,0x90,0xFB,0x96,0xE4,0xF0,0x90,0xFB,
+ 0x88,0x04,0xF0,0x80,0x05,0x90,0xFB,0x93,
+ 0xE4,0xF0,0x90,0x42,0x6C,0xE0,0xFF,0x64,
+ 0x01,0x60,0x04,0xEF,0xB4,0x03,0x18,0x85,
+ 0x2C,0x2C,0x85,0x2C,0x2C,0x12,0x68,0xE0,
+ 0xE4,0xF5,0x0F,0x7B,0x01,0x7A,0x43,0x79,
+ 0x49,0x7D,0x01,0xFC,0x12,0xAD,0x13,0x22,
+ 0x90,0xFB,0x86,0xE0,0x60,0x32,0x90,0x43,
+ 0x51,0xE0,0x70,0x24,0x90,0xFE,0x00,0xE0,
+ 0x24,0x01,0xFF,0xE4,0x33,0xFE,0x90,0xFB,
+ 0x82,0xE0,0xC3,0x9F,0xEE,0x64,0x80,0xF8,
+ 0x74,0x80,0x98,0x50,0x0B,0xE0,0xF4,0x60,
+ 0x07,0x90,0xFB,0x86,0x74,0x01,0xF0,0x22,
+ 0x90,0xFB,0x82,0xE4,0xF0,0x12,0x49,0xD7,
+ 0x22,0xC2,0x8C,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0xD2,0xAF,0x90,0x42,0x6D,0xE0,
+ 0x04,0xF0,0x12,0x63,0xAC,0x90,0xF5,0xBE,
+ 0x74,0x01,0xF0,0x12,0x62,0x71,0x90,0x44,
+ 0x98,0x74,0x01,0xF0,0x90,0x42,0x6D,0xE0,
+ 0x64,0xAF,0x70,0x31,0x90,0xF5,0xC1,0xE0,
+ 0x70,0x04,0x90,0x42,0x96,0xF0,0x90,0xF5,
+ 0xBA,0xE0,0x70,0x04,0x90,0x42,0x97,0xF0,
+ 0x90,0x42,0x97,0xE0,0x70,0x17,0x90,0x42,
+ 0x96,0xE0,0x70,0x11,0x90,0xF5,0xB9,0x04,
+ 0xF0,0x90,0xF5,0xC0,0xF0,0xD2,0xE9,0x90,
+ 0x44,0x98,0xF0,0xD2,0xEA,0x12,0x88,0x8B,
+ 0x53,0x91,0xDF,0xD2,0xAF,0x22,0x90,0xF7,
+ 0x79,0x74,0x01,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xA3,0xF0,0x90,0xF7,0x6A,0xF0,0x90,0xF7,
+ 0x74,0xF0,0x90,0xF0,0x09,0xF0,0x90,0xF7,
+ 0x7D,0xF0,0x90,0xF5,0xB9,0xF0,0x90,0xF5,
+ 0xBE,0xF0,0x90,0xF5,0xC0,0xF0,0x22,0xD2,
+ 0xAF,0x90,0xF7,0x7D,0xE0,0x64,0x01,0x70,
+ 0x57,0x90,0xF7,0x32,0xE0,0x60,0x03,0x12,
+ 0x9B,0x0B,0x90,0xF7,0x3C,0xE0,0x60,0x03,
+ 0x02,0x4E,0x18,0x90,0xF5,0xA9,0xE0,0x60,
+ 0x03,0x02,0x4E,0x18,0x90,0xF7,0x32,0xE0,
+ 0xB4,0x01,0x10,0x90,0xF7,0x7B,0xE0,0xB4,
+ 0x01,0x09,0x90,0x43,0x3C,0x74,0x02,0xF0,
+ 0x12,0x9C,0x7C,0x90,0xF7,0x31,0xE0,0x64,
+ 0x01,0x60,0x03,0x02,0x4E,0x18,0x90,0xF7,
+ 0x7C,0xE0,0x64,0x01,0x60,0x03,0x02,0x4E,
+ 0x18,0x90,0x44,0x97,0x04,0xF0,0x90,0xF7,
+ 0x49,0xE0,0x90,0x44,0x99,0xF0,0x80,0x6F,
+ 0x90,0x44,0x98,0xE0,0x64,0x01,0x70,0x67,
+ 0x90,0xF5,0xB9,0xE0,0x64,0x01,0x70,0x29,
+ 0x90,0xF5,0xB3,0x04,0xF0,0x90,0xF4,0x60,
+ 0xE0,0x70,0x05,0x12,0x67,0x0D,0x80,0x0F,
+ 0x90,0xF4,0x60,0xE0,0xB4,0x01,0x05,0x12,
+ 0x67,0x1D,0x80,0x03,0x12,0x67,0x2D,0x90,
+ 0xF5,0xB3,0xE4,0xF0,0x90,0x42,0x97,0x04,
+ 0xF0,0x90,0xF5,0xC0,0xE0,0x64,0x01,0x70,
+ 0x29,0x90,0xF5,0xBD,0x04,0xF0,0x90,0xF4,
+ 0x60,0xE0,0x70,0x05,0x12,0x67,0x3D,0x80,
+ 0x0F,0x90,0xF4,0x60,0xE0,0xB4,0x01,0x05,
+ 0x12,0x67,0x4B,0x80,0x03,0x12,0x67,0x5C,
+ 0x90,0xF5,0xBD,0xE4,0xF0,0x90,0x42,0x96,
+ 0x04,0xF0,0xE4,0x90,0x42,0x6D,0xF0,0x12,
+ 0x4D,0x1F,0x53,0x91,0xBF,0xE4,0x90,0x44,
+ 0x98,0xF0,0xD2,0xEA,0xD2,0xE9,0xD2,0xAF,
+ 0x22,0x90,0xF5,0x52,0x74,0x3F,0xF0,0x90,
+ 0xF5,0x54,0x74,0x01,0xF0,0x90,0xF7,0x0E,
+ 0xF0,0x22,0x90,0x43,0xC3,0x74,0x01,0xF0,
+ 0x90,0x44,0xBC,0x74,0x05,0xF0,0x90,0x43,
+ 0x42,0x74,0x01,0xF0,0x12,0xA9,0x0F,0x12,
+ 0xA8,0xA6,0x53,0x91,0x7F,0x12,0xA7,0x32,
+ 0x22,0x90,0xF7,0x11,0xE4,0xF0,0x7F,0xFF,
+ 0x7E,0x66,0x12,0x47,0x76,0x90,0x44,0x98,
+ 0x74,0x01,0xF0,0xD2,0xEA,0x90,0xF7,0x11,
+ 0xF0,0x22,0xC2,0xAF,0xC2,0xDB,0x90,0xFB,
+ 0x7F,0xE0,0x70,0x09,0x90,0xFB,0x87,0xF0,
+ 0x90,0xFB,0xAF,0x04,0xF0,0xD2,0xAF,0x22,
+ 0xC2,0xE9,0xC2,0xEA,0xD2,0xA8,0xD2,0xAF,
+ 0x90,0x43,0x3A,0xE0,0x60,0x12,0x90,0xF9,
+ 0x57,0xE0,0x54,0xFD,0x44,0x02,0xF0,0xE0,
+ 0x54,0xFD,0xF0,0xE4,0x90,0x43,0x3A,0xF0,
+ 0x90,0xF5,0xA9,0x74,0x01,0xF0,0x90,0xF0,
+ 0x71,0xE4,0xF0,0x90,0xF1,0xE9,0xF0,0x90,
+ 0xF0,0xD5,0xF0,0x90,0xF0,0xE3,0xF0,0x90,
+ 0xF0,0xE2,0xF0,0x90,0xF1,0xEA,0xF0,0x90,
+ 0xF1,0xEF,0xF0,0x90,0xF1,0xF2,0xF0,0x90,
+ 0xF1,0xF7,0xF0,0x90,0xF1,0xFB,0xF0,0x90,
+ 0xF5,0xAF,0xF0,0xA3,0xF0,0xA3,0xF0,0x90,
+ 0xF5,0xBB,0xF0,0x90,0xF5,0xA8,0xF0,0x90,
+ 0xF5,0xAC,0xF0,0x90,0xF5,0xC8,0xF0,0x90,
+ 0xF4,0x71,0xF0,0x90,0xF9,0x0B,0xF0,0x90,
+ 0xF5,0xE7,0xF0,0x90,0xF5,0xE1,0xF0,0x90,
+ 0xF4,0x71,0xF0,0x90,0xF5,0xD7,0xF0,0x90,
+ 0xF6,0x25,0xF0,0x90,0xFD,0xA2,0xF0,0x90,
+ 0xF1,0xE8,0x04,0xF0,0x90,0xF0,0x6C,0xF0,
+ 0x90,0xF1,0x75,0xF0,0x90,0xF1,0x31,0xF0,
+ 0xE4,0x90,0x43,0x80,0xF0,0x90,0xF1,0xF6,
+ 0x04,0xF0,0x90,0xF1,0xFA,0xF0,0x90,0xF1,
+ 0xF3,0xF0,0x90,0xF1,0xF0,0xF0,0x90,0xF0,
+ 0x7D,0xF0,0x90,0xF1,0xEB,0xF0,0x90,0xF5,
+ 0xC2,0xF0,0x90,0xF5,0xB3,0xF0,0x90,0xF5,
+ 0xBD,0xF0,0x90,0xF1,0xE8,0xF0,0xE4,0xF0,
+ 0x90,0xF0,0x6C,0xF0,0x90,0xF1,0x75,0xF0,
+ 0x90,0xF1,0x31,0xF0,0x90,0xF1,0xFA,0xF0,
+ 0x90,0x41,0xBE,0xE0,0x90,0xF1,0xA3,0xF0,
+ 0x90,0x41,0xBF,0xE0,0x90,0xF1,0xA4,0xF0,
+ 0x90,0x41,0xC0,0xE0,0x90,0xF1,0xA5,0xF0,
+ 0x90,0xF6,0x21,0x74,0x02,0xF0,0x90,0xF6,
+ 0x23,0xF0,0x90,0xF5,0xC6,0xE4,0xF0,0xA3,
+ 0xF0,0x90,0xF5,0xC3,0xF0,0xA3,0xF0,0x90,
+ 0x41,0xB6,0xE0,0x90,0xF1,0x54,0xF0,0x90,
+ 0x41,0xB7,0xE0,0x90,0xF1,0x55,0xF0,0x90,
+ 0x41,0xB8,0xE0,0x90,0xF1,0x52,0xF0,0x90,
+ 0x41,0xB9,0xE0,0x90,0xF1,0x53,0xF0,0x90,
+ 0xF1,0x93,0xE4,0xF0,0x90,0xF1,0x69,0x74,
+ 0x08,0xF0,0x90,0xF1,0x5F,0x74,0x02,0xF0,
+ 0x90,0xF1,0x4E,0x74,0x40,0xF0,0x74,0xFF,
+ 0xF0,0x90,0xF1,0x85,0xE4,0xF0,0x90,0xF1,
+ 0x2F,0x04,0xF0,0x90,0xFD,0x02,0xF0,0x90,
+ 0xFD,0x0F,0x74,0x07,0xF0,0x90,0xF7,0x0F,
+ 0xE4,0xF0,0x90,0xF7,0x8A,0x74,0x0F,0xF0,
+ 0x90,0xF7,0x98,0x74,0x0D,0xF0,0x90,0xF7,
+ 0x8B,0x74,0x01,0xF0,0x90,0xFD,0x29,0xE4,
+ 0xF0,0x90,0xFD,0xA5,0xF0,0x90,0xF5,0x52,
+ 0x74,0x3F,0xF0,0xA3,0x74,0x05,0xF0,0x90,
+ 0x44,0x9A,0x74,0x0A,0xF0,0x90,0xF0,0x71,
+ 0x74,0x01,0xF0,0x90,0xF7,0x15,0xF0,0x90,
+ 0xF9,0x0E,0xF0,0x90,0xF5,0x06,0x74,0x04,
+ 0xF0,0x90,0xF7,0x3C,0xE0,0x70,0x04,0x90,
+ 0xF7,0x2F,0xF0,0x12,0x9C,0x73,0x90,0xF7,
+ 0x34,0xE4,0xF0,0x90,0xF7,0x33,0xF0,0x90,
+ 0xF7,0x35,0x74,0x05,0xF0,0xA3,0xF0,0x90,
+ 0xF7,0x39,0x74,0xFF,0xF0,0xA3,0x74,0x9C,
+ 0xF0,0x90,0xF7,0x7E,0x74,0x01,0xF0,0x90,
+ 0xFD,0x00,0xF0,0x90,0xFD,0x90,0x74,0x03,
+ 0xF0,0x90,0xF2,0x17,0x74,0xFE,0xF0,0x90,
+ 0xF0,0x42,0x04,0xF0,0xA3,0xF0,0xA3,0x74,
+ 0x07,0xF0,0xA3,0xF0,0x90,0xF7,0x74,0x74,
+ 0x01,0xF0,0x90,0xF7,0x6A,0xF0,0x12,0x4D,
+ 0x1F,0x90,0xF7,0x3E,0x74,0x01,0xF0,0x90,
+ 0xF7,0x3C,0xE0,0x70,0x0B,0x90,0x44,0x98,
+ 0xF0,0xD2,0xEA,0x90,0xF7,0x76,0x04,0xF0,
+ 0x90,0xF7,0x37,0x74,0xDC,0xF0,0xA3,0x74,
+ 0x05,0xF0,0x90,0xFD,0xA2,0xE4,0xF0,0xA3,
+ 0xF0,0xA3,0x74,0x05,0xF0,0x90,0xF5,0x4D,
+ 0x74,0x01,0xF0,0x90,0xF5,0x41,0xE4,0xF0,
+ 0xA3,0x74,0x02,0xF0,0x90,0xF6,0x5C,0xE4,
+ 0xF0,0xA3,0xF0,0x90,0xF0,0x5F,0x04,0xF0,
+ 0x90,0x42,0x0E,0xE0,0x90,0xF0,0x06,0xF0,
+ 0x90,0xF0,0x58,0xE4,0xF0,0xF0,0x90,0x42,
+ 0x2F,0xF0,0x90,0x42,0x3C,0x74,0xFF,0xF0,
+ 0x90,0x44,0x47,0xF0,0x90,0x44,0x40,0xF0,
+ 0x90,0xFD,0x29,0xE4,0xF0,0x90,0xF9,0xE5,
+ 0x74,0x1E,0xF0,0xA3,0x74,0x05,0xF0,0xA3,
+ 0xE4,0xF0,0x90,0x42,0x41,0x74,0xFF,0xF0,
+ 0x22,0x90,0xFD,0x15,0x74,0x08,0xF0,0xA3,
+ 0x74,0x10,0xF0,0xA3,0xE4,0xF0,0x90,0xFD,
+ 0x05,0x04,0xF0,0x90,0xFD,0x2B,0xF0,0x90,
+ 0xFD,0x2A,0xF0,0x90,0x42,0x6E,0xEF,0xF0,
+ 0xE4,0x90,0x42,0x3D,0xF0,0x90,0xFD,0x29,
+ 0xF0,0x90,0xFD,0x2C,0x04,0xF0,0xFF,0x12,
+ 0x6D,0xE8,0x90,0xFD,0x2C,0xE4,0xF0,0x22,
+ 0x90,0xF4,0xC1,0xE0,0x14,0x60,0x46,0x14,
+ 0x60,0x7C,0x24,0x02,0x60,0x03,0x02,0x51,
+ 0xED,0x90,0xFD,0x19,0x74,0xCA,0xF0,0xA3,
+ 0x74,0x08,0xF0,0xA3,0x74,0x4A,0xF0,0xA3,
+ 0x74,0x0A,0xF0,0xA3,0x74,0xCA,0xF0,0xA3,
+ 0x74,0x0C,0xF0,0xA3,0x74,0x4A,0xF0,0xA3,
+ 0x74,0x10,0xF0,0xA3,0x74,0xCA,0xF0,0xA3,
+ 0x74,0x14,0xF0,0xA3,0x74,0x4A,0xF0,0xA3,
+ 0x74,0x1A,0xF0,0xA3,0x74,0xCA,0xF0,0xA3,
+ 0x74,0x20,0xF0,0x80,0x6F,0x90,0xFD,0x19,
+ 0x74,0x80,0xF0,0xA3,0xE4,0xF0,0xA3,0xF0,
+ 0xA3,0x74,0x02,0xF0,0xA3,0x74,0x20,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0xE8,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0xB0,0xF0,
+ 0xA3,0x74,0x04,0xF0,0xA3,0x74,0xDC,0xF0,
+ 0xA3,0x74,0x05,0xF0,0xA3,0x74,0x34,0xF0,
+ 0xA3,0x74,0x08,0xF0,0x80,0x36,0x90,0xFD,
+ 0x19,0x74,0x7D,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0xB4,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0xC8,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0xFA,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x2C,0xF0,
+ 0xA3,0x74,0x01,0xF0,0xA3,0x74,0x52,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0x34,0xF0,
+ 0xA3,0x74,0x08,0xF0,0xE4,0xFD,0xED,0x75,
+ 0xF0,0x02,0xA4,0x24,0x19,0xFF,0xE5,0xF0,
+ 0x34,0xFD,0xFE,0x8F,0x82,0xF5,0x83,0xE0,
+ 0xF9,0xA3,0xE0,0xFC,0x90,0xF9,0x00,0xE0,
+ 0x70,0x18,0xEC,0x54,0x0F,0xFB,0xC4,0x54,
+ 0xF0,0xFB,0xE9,0xC4,0x54,0x0F,0x4B,0x8F,
+ 0x82,0x8E,0x83,0xF0,0xEC,0xC4,0x54,0x0F,
+ 0xA3,0xF0,0x90,0xF9,0x00,0xE0,0x64,0x02,
+ 0x70,0x1D,0xEC,0x54,0x0F,0xFB,0x25,0xE0,
+ 0x25,0xE0,0xFB,0xAA,0x01,0xEA,0x13,0x13,
+ 0x54,0x3F,0x4B,0x8F,0x82,0x8E,0x83,0xF0,
+ 0xEC,0x13,0x13,0x54,0x3F,0xA3,0xF0,0x0D,
+ 0xED,0xB4,0x07,0xA2,0x22,0x90,0xF5,0xC8,
+ 0xE4,0xF0,0x90,0xF5,0x75,0xF0,0x90,0xF5,
+ 0x74,0xF0,0x90,0xF1,0xD0,0xF0,0xA3,0xF0,
+ 0xA3,0xF0,0x90,0xF5,0x6E,0x74,0x0A,0xF0,
+ 0x90,0xF5,0x71,0x74,0x02,0xF0,0xA3,0x74,
+ 0x27,0xF0,0xA3,0xE4,0xF0,0x90,0x42,0x43,
+ 0xE0,0x64,0x01,0x60,0x03,0x02,0x53,0x06,
+ 0x90,0xF5,0xF7,0xE0,0xFE,0x90,0xF5,0xF6,
+ 0xE0,0x7C,0x00,0x24,0x00,0xFF,0xEC,0x3E,
+ 0xFE,0xEF,0x78,0x06,0xCE,0xC3,0x13,0xCE,
+ 0x13,0xD8,0xF9,0x90,0x42,0x6F,0xF0,0x90,
+ 0xF9,0x00,0xE0,0xB4,0x01,0x0C,0x90,0x42,
+ 0x6F,0xE0,0xFF,0x13,0x13,0x54,0x3F,0xF0,
+ 0x80,0x0F,0x90,0xF9,0x00,0xE0,0xB4,0x02,
+ 0x08,0x90,0x42,0x6F,0xE0,0xFF,0xC3,0x13,
+ 0xF0,0x90,0x42,0x6F,0xE0,0xFF,0xC3,0x94,
+ 0x04,0x40,0x05,0x74,0x03,0xF0,0x80,0x21,
+ 0xEF,0xC3,0x94,0x02,0x40,0x08,0x90,0x42,
+ 0x6F,0x74,0x02,0xF0,0x80,0x13,0xEF,0xC3,
+ 0x94,0x01,0x40,0x08,0x90,0x42,0x6F,0x74,
+ 0x01,0xF0,0x80,0x05,0xE4,0x90,0x42,0x6F,
+ 0xF0,0x90,0x42,0x6F,0xE0,0xFF,0x90,0xF9,
+ 0x01,0xE0,0xC3,0x9F,0x50,0x0F,0xE0,0x90,
+ 0x42,0x6F,0xF0,0x80,0x08,0x90,0xF9,0x01,
+ 0xE0,0x90,0x42,0x6F,0xF0,0x90,0x42,0x6F,
+ 0xE0,0x14,0x60,0x0F,0x14,0x60,0x11,0x14,
+ 0x60,0x13,0x24,0x03,0x70,0x12,0x12,0x53,
+ 0x52,0x80,0x0D,0x12,0x54,0x6F,0x80,0x08,
+ 0x12,0x55,0x88,0x80,0x03,0x12,0x56,0xAC,
+ 0x90,0xF9,0x01,0xE0,0x14,0x60,0x0E,0x14,
+ 0x60,0x0F,0x14,0x60,0x10,0x24,0x03,0x70,
+ 0x0F,0x12,0x54,0x07,0x22,0x12,0x55,0x20,
+ 0x22,0x12,0x56,0x48,0x22,0x12,0x57,0x5E,
+ 0x22,0x90,0xF5,0x76,0x74,0x20,0xF0,0xA3,
+ 0x74,0x01,0xF0,0xA3,0x74,0x22,0xF0,0xA3,
+ 0x74,0x02,0xF0,0xA3,0x74,0xFF,0xF0,0xA3,
+ 0x74,0x01,0xF0,0xA3,0x74,0x7E,0xF0,0xA3,
+ 0x74,0x02,0xF0,0xA3,0x74,0xA0,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x74,0x51,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0xA3,0x74,0x03,0xF0,0xA3,
+ 0x74,0x40,0xF0,0xA3,0x74,0x01,0xF0,0xA3,
+ 0x74,0xED,0xF0,0xA3,0x74,0x02,0xF0,0xA3,
+ 0x74,0xA1,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0xDF,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,
+ 0xC1,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,
+ 0x68,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x9F,
+ 0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,0x3E,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0xE8,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0xFF,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0x0A,0xF0,
+ 0xA3,0xE4,0xF0,0x90,0xF9,0x00,0xE0,0x70,
+ 0x0A,0x90,0xF5,0x9E,0x74,0x3F,0xF0,0xA3,
+ 0xE4,0xF0,0x22,0x90,0xF9,0x00,0xE0,0xB4,
+ 0x01,0x0A,0x90,0xF5,0x9E,0x74,0xFB,0xF0,
+ 0xA3,0xE4,0xF0,0x22,0x90,0xF5,0x9E,0x74,
+ 0x7D,0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,
+ 0x6C,0x74,0x40,0xF0,0xA3,0x74,0x07,0xF0,
+ 0x90,0xF9,0x00,0xE0,0x70,0x16,0x90,0xF5,
+ 0x6A,0xF0,0xA3,0x74,0x05,0xF0,0x90,0xF5,
+ 0x70,0x74,0x03,0xF0,0x90,0xF5,0x6F,0x74,
+ 0x01,0xF0,0x80,0x32,0x90,0xF9,0x00,0xE0,
+ 0xB4,0x01,0x16,0x90,0xF5,0x6A,0xE4,0xF0,
+ 0xA3,0x74,0x04,0xF0,0x90,0xF5,0x70,0x04,
+ 0xF0,0x90,0xF5,0x6F,0x74,0x03,0xF0,0x80,
+ 0x15,0x90,0xF5,0x6A,0xE4,0xF0,0xA3,0x74,
+ 0x0A,0xF0,0x90,0xF5,0x70,0x74,0x04,0xF0,
+ 0x90,0xF5,0x6F,0x74,0x02,0xF0,0x90,0xFD,
+ 0x27,0x74,0x03,0xF0,0x90,0xFD,0x31,0x74,
+ 0x40,0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,
+ 0x76,0x74,0x72,0xF0,0xA3,0x74,0x01,0xF0,
+ 0xA3,0xF0,0xA3,0x04,0xF0,0xA3,0x74,0x5C,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0xF0,0xA3,0x74,0xCD,0xF0,0xA3,0x74,
+ 0x02,0xF0,0xA3,0x74,0x8E,0xF0,0xA3,0x74,
+ 0x01,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xF0,0xA3,0x74,0xC3,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x16,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0x89,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,
+ 0x74,0xA9,0xF0,0xA3,0x74,0x03,0xF0,0xA3,
+ 0x74,0x5D,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0xD0,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0xA3,0x74,0x15,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x74,0xEF,0xF0,0xA3,0x74,
+ 0x03,0xF0,0x90,0xF5,0x6C,0x74,0x80,0xF0,
+ 0xA3,0x74,0x06,0xF0,0x90,0xF9,0x00,0xE0,
+ 0x70,0x0A,0x90,0xF5,0x9E,0x74,0x3F,0xF0,
+ 0xA3,0xE4,0xF0,0x22,0x90,0xF9,0x00,0xE0,
+ 0xB4,0x01,0x0A,0x90,0xF5,0x9E,0x74,0xFB,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,0x9E,
+ 0x74,0x7D,0xF0,0xA3,0xE4,0xF0,0x22,0x90,
+ 0xF5,0x6C,0x74,0x80,0xF0,0xA3,0x74,0x06,
+ 0xF0,0x90,0xF9,0x00,0xE0,0x70,0x16,0x90,
+ 0xF5,0x6A,0xF0,0xA3,0x74,0x0A,0xF0,0x90,
+ 0xF5,0x70,0x74,0x04,0xF0,0x90,0xF5,0x6F,
+ 0x74,0x02,0xF0,0x80,0x32,0x90,0xF9,0x00,
+ 0xE0,0xB4,0x01,0x17,0x90,0xF5,0x6A,0xE4,
+ 0xF0,0xA3,0x74,0x08,0xF0,0x90,0xF5,0x70,
+ 0x74,0x06,0xF0,0x90,0xF5,0x6F,0x74,0x04,
+ 0xF0,0x80,0x14,0x90,0xF5,0x6A,0xE4,0xF0,
+ 0xA3,0x74,0x04,0xF0,0x90,0xF5,0x70,0x04,
+ 0xF0,0x90,0xF5,0x6F,0x74,0x03,0xF0,0x90,
+ 0xFD,0x27,0x74,0x04,0xF0,0x90,0xFD,0x31,
+ 0x74,0x80,0xF0,0xA3,0xE4,0xF0,0x22,0x90,
+ 0xF5,0x76,0x74,0xFF,0xF0,0xA3,0x74,0x01,
+ 0xF0,0xA3,0x74,0x9E,0xF0,0xA3,0x74,0x03,
+ 0xF0,0xA3,0x74,0x31,0xF0,0xA3,0x74,0x02,
+ 0xF0,0xA3,0x74,0xB0,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x74,0x7B,0xF0,0xA3,0x74,0x01,0xF0,
+ 0xA3,0x74,0x25,0xF0,0xA3,0x74,0x03,0xF0,
+ 0xA3,0x74,0xEC,0xF0,0xA3,0x74,0x02,0xF0,
+ 0xA3,0x74,0xE1,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0xB0,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0x3A,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,
+ 0xA2,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,
+ 0x97,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x26,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x9C,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0xF9,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0x37,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0xFC,0xF0,0xA3,
+ 0x74,0x03,0xF0,0xA3,0x74,0xE8,0xF0,0xA3,
+ 0x74,0x03,0xF0,0x90,0xF5,0x6C,0xE4,0xF0,
+ 0xA3,0x74,0x05,0xF0,0x90,0xF9,0x00,0xE0,
+ 0x70,0x0A,0x90,0xF5,0x9E,0x74,0x19,0xF0,
+ 0xA3,0xE4,0xF0,0x22,0x90,0xF9,0x00,0xE0,
+ 0xB4,0x01,0x0A,0x90,0xF5,0x9E,0x74,0x65,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,0x9E,
+ 0x74,0x65,0xF0,0xA3,0xE4,0xF0,0x22,0x90,
+ 0xF5,0x6C,0xE4,0xF0,0xA3,0x74,0x05,0xF0,
+ 0x90,0xF9,0x00,0xE0,0x70,0x15,0x90,0xF5,
+ 0x6A,0xF0,0xA3,0x74,0x04,0xF0,0x90,0xF5,
+ 0x70,0x04,0xF0,0x90,0xF5,0x6F,0x74,0x03,
+ 0xF0,0x80,0x31,0x90,0xF9,0x00,0xE0,0xB4,
+ 0x01,0x15,0x90,0xF5,0x6A,0xE4,0xF0,0xA3,
+ 0xF0,0x90,0xF5,0x70,0x74,0x07,0xF0,0x90,
+ 0xF5,0x6F,0x74,0x05,0xF0,0x80,0x15,0x90,
+ 0xF5,0x6A,0xE4,0xF0,0xA3,0x74,0x08,0xF0,
+ 0x90,0xF5,0x70,0x74,0x06,0xF0,0x90,0xF5,
+ 0x6F,0x74,0x04,0xF0,0x90,0xFD,0x27,0x74,
+ 0x07,0xF0,0x90,0xFD,0x31,0xE4,0xF0,0xA3,
+ 0x04,0xF0,0x22,0x90,0xF5,0x76,0x74,0x06,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0xC1,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0xFF,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0xB8,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0x0C,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0x36,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x79,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xA3,0x74,0xE7,0xF0,0xA3,0x74,0x02,0xF0,
+ 0xA3,0x74,0x18,0xF0,0xA3,0x74,0x03,0xF0,
+ 0xA3,0x74,0x74,0xF0,0xA3,0x74,0x03,0xF0,
+ 0xA3,0x74,0xD6,0xF0,0xA3,0x74,0x03,0xF0,
+ 0xA3,0x74,0x1E,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0x41,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0x43,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x30,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x18,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x07,0xF0,0xA3,
+ 0xE4,0xF0,0x90,0xF9,0x00,0xE0,0x70,0x0A,
+ 0x90,0xF5,0x9E,0x74,0x19,0xF0,0xA3,0xE4,
+ 0xF0,0x22,0x90,0xF9,0x00,0xE0,0xB4,0x01,
+ 0x0A,0x90,0xF5,0x9E,0x74,0x65,0xF0,0xA3,
+ 0xE4,0xF0,0x22,0x90,0xF5,0x9E,0x74,0x32,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,0x6C,
+ 0xE4,0xF0,0xA3,0x74,0x02,0xF0,0x90,0xF9,
+ 0x00,0xE0,0x70,0x16,0x90,0xF5,0x6A,0xF0,
+ 0xA3,0x74,0x08,0xF0,0x90,0xF5,0x70,0x74,
+ 0x04,0xF0,0x90,0xF5,0x6F,0x74,0x02,0xF0,
+ 0x80,0x2F,0x90,0xF9,0x00,0xE0,0xB4,0x01,
+ 0x15,0x90,0xF5,0x6A,0xE4,0xF0,0xA3,0xF0,
+ 0x90,0xF5,0x70,0x74,0x06,0xF0,0x90,0xF5,
+ 0x6F,0x74,0x04,0xF0,0x80,0x13,0x90,0xF5,
+ 0x6A,0xE4,0xF0,0xA3,0xF0,0x90,0xF5,0x70,
+ 0x74,0x05,0xF0,0x90,0xF5,0x6F,0x74,0x03,
+ 0xF0,0x90,0xFD,0x27,0x74,0x07,0xF0,0x90,
+ 0xFD,0x31,0xE4,0xF0,0xA3,0x74,0x02,0xF0,
+ 0x22,0xE4,0x90,0x42,0x77,0xF0,0xA3,0xF0,
+ 0x90,0x42,0x7B,0xF0,0xA3,0x04,0xF0,0xE4,
+ 0x90,0x42,0x8D,0xF0,0x90,0xF5,0xAD,0xF0,
+ 0x90,0x42,0x75,0xF0,0xA3,0xF0,0x90,0x42,
+ 0x75,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x94,
+ 0x03,0xEE,0x94,0x00,0x40,0x03,0x02,0x59,
+ 0x62,0xEF,0x4E,0x70,0x22,0x90,0xF4,0x61,
+ 0xF0,0x90,0xF4,0x60,0xF0,0x90,0xF4,0x64,
+ 0x74,0x02,0xF0,0x90,0xF4,0x63,0x74,0x06,
+ 0xF0,0x90,0x43,0x80,0xE0,0x60,0x5A,0x90,
+ 0xF4,0x63,0x74,0x07,0xF0,0x80,0x52,0x90,
+ 0x42,0x75,0xE0,0x70,0x04,0xA3,0xE0,0x64,
+ 0x01,0x70,0x22,0x90,0xF4,0x61,0x74,0x02,
+ 0xF0,0x90,0xF4,0x60,0xF0,0x90,0xF4,0x6C,
+ 0xF0,0x90,0xF4,0x6B,0x74,0x04,0xF0,0x90,
+ 0x43,0x80,0xE0,0x60,0x2C,0x90,0xF4,0x6B,
+ 0x74,0x07,0xF0,0x80,0x24,0x90,0xF4,0x61,
+ 0x74,0x01,0xF0,0x90,0xF4,0x60,0x74,0x04,
+ 0xF0,0x90,0xF4,0x68,0x74,0x02,0xF0,0x90,
+ 0xF4,0x65,0x74,0x05,0xF0,0x90,0x43,0x80,
+ 0xE0,0x60,0x06,0x90,0xF4,0x65,0x74,0x07,
+ 0xF0,0x90,0xF5,0xAC,0x74,0x01,0xF0,0x90,
+ 0xF5,0xAE,0xE0,0xB4,0x01,0xF9,0x90,0xF5,
+ 0xAE,0x74,0x01,0xF0,0x90,0xF4,0x6F,0xE0,
+ 0xFE,0x90,0xF4,0x6E,0xE0,0xFD,0xEE,0xED,
+ 0xFF,0x90,0x42,0x79,0xEE,0xF0,0xA3,0xEF,
+ 0xF0,0x90,0xF4,0x73,0xE0,0xFE,0x90,0xF4,
+ 0x72,0xE0,0xFD,0xEE,0xED,0xFF,0x90,0x42,
+ 0x7D,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0x7B,0xE0,0xFE,0xA3,0xE0,0xFF,0xFB,0xAA,
+ 0x06,0xE4,0xF9,0xF8,0x90,0x42,0x79,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0xE4,0xFC,0xFD,0x12,
+ 0xA9,0xD1,0xC0,0x04,0xC0,0x05,0xC0,0x06,
+ 0xC0,0x07,0x90,0x42,0x7D,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0xFB,0xAA,0x06,0xE4,0xF9,0xF8,
+ 0x90,0x42,0x77,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0xE4,0xFC,0xFD,0x12,0xA9,0xD1,0xA8,0x04,
+ 0xA9,0x05,0xAA,0x06,0xAB,0x07,0xD0,0x07,
+ 0xD0,0x06,0xD0,0x05,0xD0,0x04,0xC3,0x12,
+ 0xAA,0x44,0x50,0x4F,0x90,0x42,0x79,0xE0,
+ 0xFF,0xA3,0xE0,0x90,0x42,0x77,0xCF,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x42,0x7D,0xE0,0xFF,
+ 0xA3,0xE0,0x90,0x42,0x7B,0xCF,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0xF4,0x74,0xE0,0x90,0x42,
+ 0x71,0xF0,0x90,0xF4,0x75,0xE0,0x90,0x42,
+ 0x72,0xF0,0x90,0xF4,0x76,0xE0,0x90,0x42,
+ 0x73,0xF0,0x90,0xF4,0x77,0xE0,0x90,0x42,
+ 0x74,0xF0,0x90,0x42,0x76,0xE0,0x25,0xE0,
+ 0xFF,0x90,0x42,0x75,0xE0,0x33,0x90,0x42,
+ 0x8D,0xEF,0xF0,0x90,0xF5,0xAC,0xE4,0xF0,
+ 0x90,0x42,0x76,0xE0,0x04,0xF0,0x70,0x06,
+ 0x90,0x42,0x75,0xE0,0x04,0xF0,0x02,0x57,
+ 0xDF,0x90,0x42,0x74,0xE0,0xFF,0x90,0x42,
+ 0x73,0xE0,0xC3,0x9F,0x50,0x0D,0x90,0x42,
+ 0x70,0x74,0x03,0xF0,0x90,0x42,0x73,0xEF,
+ 0xF0,0x80,0x06,0x90,0x42,0x70,0x74,0x02,
+ 0xF0,0x90,0x42,0x72,0xE0,0xFF,0x90,0x42,
+ 0x71,0xE0,0xC3,0x9F,0x50,0x0D,0x90,0x42,
+ 0x8E,0x74,0x01,0xF0,0x90,0x42,0x71,0xEF,
+ 0xF0,0x80,0x05,0xE4,0x90,0x42,0x8E,0xF0,
+ 0x90,0x42,0x73,0xE0,0xFF,0x90,0x42,0x71,
+ 0xE0,0xC3,0x9F,0x50,0x08,0x90,0x42,0x70,
+ 0xE0,0x90,0x42,0x8E,0xF0,0x90,0x44,0x97,
+ 0xE0,0xB4,0x01,0x1F,0x90,0x44,0x99,0xE0,
+ 0xFF,0x70,0x06,0x90,0x42,0x8D,0xF0,0x80,
+ 0x12,0xEF,0xB4,0x01,0x08,0x90,0x42,0x8D,
+ 0x74,0x02,0xF0,0x80,0x06,0x90,0x42,0x8D,
+ 0x74,0x04,0xF0,0x90,0x42,0x8E,0xE0,0x90,
+ 0xF9,0x01,0xF0,0x90,0x42,0x8D,0xE0,0xFF,
+ 0x70,0x06,0x90,0xF9,0x00,0xF0,0x80,0x21,
+ 0xEF,0xC3,0x94,0x04,0x40,0x0E,0x90,0xF9,
+ 0x00,0x74,0x02,0xF0,0x90,0x42,0x8E,0xE0,
+ 0x04,0xF0,0x80,0x0D,0x90,0xF9,0x00,0x74,
+ 0x01,0xF0,0x90,0x42,0x8E,0xE0,0x24,0x02,
+ 0xF0,0x90,0x42,0x8E,0xE0,0xFD,0x12,0x5C,
+ 0x4D,0x90,0x42,0x8E,0xE0,0x24,0x06,0xFF,
+ 0x74,0x01,0x7E,0x00,0xA8,0x07,0x08,0x80,
+ 0x05,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,
+ 0x24,0xF6,0xFF,0xEE,0x34,0xFF,0x90,0x42,
+ 0x75,0xF0,0xA3,0xEF,0xF0,0xE0,0x90,0xF4,
+ 0x69,0xF0,0x90,0x42,0x75,0xE0,0x90,0xF4,
+ 0x6A,0xF0,0x90,0xF4,0x6D,0x74,0x14,0xF0,
+ 0x90,0xF5,0xAC,0xE4,0xF0,0x22,0x90,0x41,
+ 0xD5,0xE0,0x60,0x6E,0x90,0xF9,0x00,0xE0,
+ 0x90,0x42,0x8D,0xF0,0x90,0xF9,0x01,0xE0,
+ 0x90,0x42,0x8E,0xF0,0x90,0x42,0x8D,0xE0,
+ 0x70,0x0A,0xA3,0xE0,0xFD,0xE4,0xFF,0x12,
+ 0x5C,0x4D,0x80,0x22,0x90,0x42,0x8D,0xE0,
+ 0xB4,0x02,0x0D,0xA3,0xE0,0x04,0xF0,0xE0,
+ 0xFD,0x7F,0x04,0x12,0x5C,0x4D,0x80,0x0E,
+ 0x90,0x42,0x8E,0xE0,0x24,0x02,0xF0,0xE0,
+ 0xFD,0x7F,0x02,0x12,0x5C,0x4D,0x90,0x42,
+ 0x8E,0xE0,0x24,0x06,0xFF,0x74,0x01,0x7E,
+ 0x00,0xA8,0x07,0x08,0x80,0x05,0xC3,0x33,
+ 0xCE,0x33,0xCE,0xD8,0xF9,0x24,0xF6,0xFF,
+ 0xEE,0x34,0xFF,0xFE,0xEF,0x90,0xF4,0x69,
+ 0xF0,0xEE,0xA3,0xF0,0x90,0xF4,0x6D,0x74,
+ 0x14,0xF0,0x90,0xF4,0x63,0x74,0x05,0xF0,
+ 0x90,0x43,0x80,0xE0,0x60,0x06,0x90,0xF4,
+ 0x63,0x74,0x07,0xF0,0x90,0xF5,0xAD,0x74,
+ 0x01,0xF0,0x90,0xF5,0xAC,0xE4,0xF0,0x04,
+ 0xF0,0x90,0xF5,0xAE,0xE0,0xB4,0x01,0xF9,
+ 0x90,0xF5,0xAE,0x74,0x01,0xF0,0x90,0xF4,
+ 0x83,0xE0,0x90,0x42,0x7F,0xF0,0x90,0xF4,
+ 0x82,0xE0,0x90,0x42,0x80,0xF0,0x90,0xF4,
+ 0x81,0xE0,0x90,0x42,0x81,0xF0,0x90,0xF4,
+ 0x80,0xE0,0x90,0x42,0x82,0xF0,0x90,0xF4,
+ 0x86,0xE0,0x30,0xE2,0x04,0x7F,0xFF,0x80,
+ 0x02,0x7F,0x00,0x90,0x42,0x83,0xEF,0xF0,
+ 0xE0,0xB4,0xFF,0x09,0x90,0xF4,0x86,0xE0,
+ 0x44,0xF8,0xFF,0x80,0x07,0x90,0xF4,0x86,
+ 0xE0,0x54,0x07,0xFF,0x90,0x42,0x84,0xEF,
+ 0xF0,0x90,0xF4,0x85,0xE0,0x90,0x42,0x85,
+ 0xF0,0x90,0xF4,0x84,0xE0,0x90,0x42,0x86,
+ 0xF0,0x90,0x42,0x8E,0xE0,0x24,0x05,0xFF,
+ 0x74,0x01,0x7E,0x00,0xA8,0x07,0x08,0x80,
+ 0x05,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,
+ 0x90,0x42,0x8C,0xF0,0xEE,0x90,0x42,0x8B,
+ 0xF0,0x90,0x42,0x83,0xE0,0xF8,0xA3,0xE0,
+ 0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0x90,
+ 0x42,0x7F,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x12,0xAC,0x9E,
+ 0xA8,0x04,0xA9,0x05,0xAA,0x06,0xAB,0x07,
+ 0x90,0x42,0x8B,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0xE4,0xFC,0xFD,0xEB,0x2F,0xFF,0xEA,0x3E,
+ 0xFE,0xED,0x39,0xFD,0xEC,0x38,0xFC,0x90,
+ 0x42,0x87,0x12,0xAA,0x8F,0x90,0x42,0x8C,
+ 0xE0,0x90,0xF5,0x3C,0xF0,0x90,0x42,0x8B,
+ 0xE0,0x90,0xF5,0x3D,0xF0,0xE4,0x7F,0xFF,
+ 0x7E,0x07,0xFD,0xFC,0x90,0x42,0x87,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xD3,0x12,0xAA,0x2E,0x40,0x0C,
+ 0x90,0x42,0x87,0x12,0xAA,0x9B,0x00,0x00,
+ 0x07,0xFF,0x80,0x26,0x7F,0x00,0x7E,0xF8,
+ 0x7D,0xFF,0x7C,0xFF,0x90,0x42,0x87,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xC3,0x12,0xAA,0x2E,0x50,0x0A,
+ 0x90,0x42,0x87,0x12,0xAA,0x9B,0xFF,0xFF,
+ 0xF8,0x00,0x90,0x42,0x8A,0xE0,0x90,0xF4,
+ 0x66,0xF0,0x90,0x42,0x89,0xE0,0x90,0xF4,
+ 0x67,0xF0,0x90,0xF4,0x67,0xE0,0x70,0xFA,
+ 0x90,0xF4,0x66,0xE0,0x70,0xF4,0x22,0x90,
+ 0xF4,0x71,0xE4,0xF0,0x04,0xF0,0x90,0xF5,
+ 0xAC,0xE4,0xF0,0xEF,0x70,0x05,0x12,0xAE,
+ 0xE1,0x80,0x03,0x12,0x5A,0x57,0x90,0xF4,
+ 0x71,0xE4,0xF0,0x22,0x90,0xF4,0x60,0xEF,
+ 0xF0,0xA3,0xED,0xF0,0x22,0x90,0x42,0x8F,
+ 0xEE,0xF0,0xA3,0xEF,0xF0,0xA3,0xED,0xF0,
+ 0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0x90,
+ 0xF4,0x1D,0xE0,0x90,0x42,0x95,0xF0,0x90,
+ 0x42,0xA3,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x42,0x92,
+ 0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0xC3,0x12,0xAA,0x2E,0x40,
+ 0x48,0x90,0x42,0x92,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,
+ 0x42,0xA3,0x12,0xAA,0x8F,0x90,0x42,0x8F,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x42,0xAB,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x42,0x91,0xE0,
+ 0x70,0x10,0x90,0x42,0xA5,0xE0,0xFF,0xA3,
+ 0xE0,0x90,0x42,0xA7,0xCF,0xF0,0xA3,0xEF,
+ 0xF0,0x22,0x90,0x42,0xA5,0xE0,0xFF,0xA3,
+ 0xE0,0x90,0x42,0xA9,0xCF,0xF0,0xA3,0xEF,
+ 0xF0,0x22,0xE4,0x90,0x42,0xA7,0xF0,0xA3,
+ 0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,
+ 0xF0,0x90,0xF5,0xB3,0x04,0xF0,0x90,0xF5,
+ 0xB1,0xE4,0xF0,0x90,0xF5,0xB0,0xF0,0x90,
+ 0xF5,0xC2,0x04,0xF0,0x90,0xF5,0xB0,0xF0,
+ 0x90,0xF5,0xC2,0xE4,0xF0,0x90,0x42,0xB3,
+ 0xF0,0x90,0x42,0x9E,0xE0,0x70,0x05,0x90,
+ 0x42,0xB3,0x04,0xF0,0x90,0x42,0xA3,0x12,
+ 0xAA,0x9B,0x00,0x00,0x00,0x00,0xE4,0x90,
+ 0x42,0xB7,0xF0,0x90,0x42,0xB3,0xE0,0xFF,
+ 0x90,0x42,0xB7,0xE0,0xFE,0xD3,0x9F,0x40,
+ 0x03,0x02,0x5D,0xD8,0x90,0xF5,0xB8,0xEE,
+ 0xF0,0x90,0x42,0xB1,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0x90,
+ 0x42,0xB4,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0xB1,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x42,
+ 0xB4,0xE0,0xFC,0xA3,0xE0,0xFD,0xD3,0x9F,
+ 0xEE,0x64,0x80,0xF8,0xEC,0x64,0x80,0x98,
+ 0x50,0x64,0xE0,0x90,0xF4,0x11,0xF0,0xEC,
+ 0xFF,0x33,0x95,0xE0,0xA3,0xEF,0xF0,0x90,
+ 0xF5,0xB5,0x74,0x01,0xF0,0x90,0x41,0xD6,
+ 0xE0,0xB4,0x01,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0xF5,0xB5,0xE0,0x64,0x01,
+ 0x60,0x04,0x7E,0x01,0x80,0x02,0x7E,0x00,
+ 0xEE,0x5F,0x70,0xE1,0x90,0xF5,0xB5,0xE0,
+ 0xB4,0x01,0x04,0x7F,0x01,0x80,0x02,0x7F,
+ 0x00,0x90,0x42,0xB6,0xEF,0xF0,0x90,0x42,
+ 0xB4,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x42,
+ 0xB7,0xE0,0xFD,0x12,0x5C,0x56,0x90,0x42,
+ 0xB5,0xE0,0x04,0xF0,0x70,0x06,0x90,0x42,
+ 0xB4,0xE0,0x04,0xF0,0x80,0x80,0x90,0x42,
+ 0xB7,0xE0,0x04,0xF0,0x02,0x5D,0x24,0x90,
+ 0x42,0xA7,0xE0,0xFE,0xA3,0xE0,0xFF,0xD3,
+ 0x90,0x42,0xAA,0xE0,0x9F,0x90,0x42,0xA9,
+ 0xE0,0x9E,0x50,0x03,0x02,0x5E,0xD3,0x90,
+ 0x41,0xEB,0xE0,0x64,0x01,0xF0,0x90,0xF0,
+ 0x76,0xF0,0xE4,0x90,0x42,0xAD,0xF0,0x90,
+ 0xF1,0xB5,0xE0,0x90,0x42,0xAE,0xF0,0x90,
+ 0xF1,0xB4,0xE0,0x90,0x42,0xAF,0xF0,0x90,
+ 0xF1,0xB3,0xE0,0x90,0x42,0xB0,0xF0,0xE4,
+ 0xFF,0xFE,0x7D,0x40,0xFC,0x90,0x42,0xAD,
+ 0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0x12,0xAA,0x2E,0x40,0x23,
+ 0x90,0x42,0xAD,0xE0,0xF8,0xA3,0xE0,0xF9,
+ 0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0xE4,0x9B,
+ 0xFF,0xE4,0x9A,0xFE,0x74,0x80,0x99,0xFD,
+ 0xE4,0x98,0xFC,0x90,0x42,0xAD,0x12,0xAA,
+ 0x8F,0x80,0x17,0x90,0x42,0xAD,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0x12,0xAA,0x20,0x90,0x42,0xAD,0x12,
+ 0xAA,0x8F,0x90,0x42,0x9F,0xE0,0xF8,0xA3,
+ 0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,
+ 0xC3,0xE4,0x9B,0xFF,0xE4,0x9A,0xFE,0x74,
+ 0x80,0x99,0xFD,0xE4,0x98,0xFC,0x90,0x42,
+ 0x9F,0x12,0xAA,0x8F,0x90,0xF1,0xEB,0x74,
+ 0x01,0xF0,0xE4,0xF0,0x90,0x42,0xAE,0xE0,
+ 0x90,0xF1,0xA5,0xF0,0x90,0x42,0xAF,0xE0,
+ 0x90,0xF1,0xA4,0xF0,0x90,0x42,0xB0,0xE0,
+ 0x90,0xF1,0xA3,0xF0,0x90,0xF1,0x14,0xE0,
+ 0x70,0x06,0x90,0xF1,0x10,0xE0,0x60,0x1A,
+ 0x90,0xF1,0x0E,0xE0,0xF4,0xF0,0xA3,0xE0,
+ 0xF4,0xF0,0x90,0xF1,0x12,0xE0,0xF4,0xF0,
+ 0xA3,0xE0,0xF4,0xF0,0x90,0xF1,0x0A,0x74,
+ 0x01,0xF0,0x90,0x42,0xAB,0xE0,0xFF,0x33,
+ 0x95,0xE0,0x90,0xF4,0x0D,0xEF,0xF0,0x90,
+ 0x42,0xAC,0xE0,0x90,0xF4,0x0C,0xF0,0x90,
+ 0xF5,0xB6,0x74,0x01,0xF0,0x90,0x41,0xD6,
+ 0xE0,0xB4,0x01,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0xF5,0xB7,0xE0,0x64,0x01,
+ 0x60,0x04,0x7E,0x01,0x80,0x02,0x7E,0x00,
+ 0xEE,0x5F,0x70,0xE1,0x90,0xF5,0xB7,0xE0,
+ 0xB4,0x01,0x04,0x7F,0x01,0x80,0x02,0x7F,
+ 0x00,0x90,0x42,0xB6,0xEF,0xF0,0x90,0x42,
+ 0xB6,0xE0,0x60,0xFA,0x90,0xF5,0xB6,0xE4,
+ 0xF0,0x90,0xF5,0xC2,0x04,0xF0,0x90,0xF5,
+ 0xB0,0xE4,0xF0,0x90,0xF5,0xC2,0xF0,0x22,
+ 0x90,0xF9,0x00,0xE0,0x70,0x0A,0x90,0x42,
+ 0xB1,0xF0,0xA3,0x74,0x32,0xF0,0x80,0x1B,
+ 0x90,0xF9,0x00,0xE0,0xB4,0x01,0x0B,0x90,
+ 0x42,0xB1,0xE4,0xF0,0xA3,0x74,0xC8,0xF0,
+ 0x80,0x09,0x90,0x42,0xB1,0xE4,0xF0,0xA3,
+ 0x74,0x64,0xF0,0x12,0x5C,0xDB,0x7F,0x01,
+ 0x12,0x6D,0xE8,0x90,0x42,0xB1,0xE4,0xF0,
+ 0xA3,0x74,0x1E,0xF0,0x12,0x5C,0xDB,0x90,
+ 0xF4,0x0C,0xE0,0x60,0x4E,0x90,0xF1,0xEB,
+ 0x74,0x01,0xF0,0xE4,0xF0,0x90,0xF9,0x00,
+ 0xE0,0x70,0x0A,0x90,0x42,0xB1,0xF0,0xA3,
+ 0x74,0x96,0xF0,0x80,0x1D,0x90,0xF9,0x00,
+ 0xE0,0xB4,0x01,0x0C,0x90,0x42,0xB1,0x74,
+ 0x02,0xF0,0xA3,0x74,0x58,0xF0,0x80,0x0A,
+ 0x90,0x42,0xB1,0x74,0x01,0xF0,0xA3,0x74,
+ 0x2C,0xF0,0x7F,0x01,0x12,0x6D,0xE8,0x12,
+ 0x5C,0xDB,0x90,0x42,0xB1,0xE4,0xF0,0xA3,
+ 0x74,0x1E,0xF0,0x7F,0x01,0x12,0x6D,0xE8,
+ 0x12,0x5C,0xDB,0x90,0xF4,0x0C,0xE0,0x60,
+ 0x10,0x90,0x41,0xDC,0x74,0x02,0xF0,0x90,
+ 0xF2,0x1C,0xF0,0xE4,0x90,0x43,0x3D,0xF0,
+ 0x22,0x90,0x41,0xDC,0x74,0x01,0xF0,0x90,
+ 0xF2,0x1C,0xF0,0x90,0x43,0x3D,0xF0,0xE4,
+ 0x90,0x42,0xAD,0xF0,0x90,0xF1,0xB5,0xE0,
+ 0x90,0x42,0xAE,0xF0,0x90,0xF1,0xB4,0xE0,
+ 0x90,0x42,0xAF,0xF0,0x90,0xF1,0xB3,0xE0,
+ 0x90,0x42,0xB0,0xF0,0x90,0x42,0xAD,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x90,0x42,0x9F,0xE0,0xF8,0xA3,
+ 0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,
+ 0xC3,0xEF,0x9B,0xFF,0xEE,0x9A,0xFE,0xED,
+ 0x99,0xFD,0xEC,0x98,0xFC,0x90,0x42,0xAD,
+ 0x12,0xAA,0x8F,0x7F,0xFF,0x7E,0xFF,0x7D,
+ 0x3F,0x7C,0x00,0x90,0x42,0xAD,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xD3,0x12,0xAA,0x2E,0x40,0x21,0x90,
+ 0x42,0xAD,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0x24,0x00,0xFF,0xE4,
+ 0x3E,0xFE,0xED,0x34,0x80,0xFD,0xEC,0x34,
+ 0xFF,0xFC,0x90,0x42,0xAD,0x12,0xAA,0x8F,
+ 0x90,0x42,0xAD,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,0x78,0x09,
+ 0x12,0xAA,0x68,0x90,0x42,0xAD,0x12,0xAA,
+ 0x8F,0x90,0x43,0x82,0xE0,0x60,0x04,0x7F,
+ 0x01,0x80,0x02,0x7F,0x00,0x90,0x42,0x23,
+ 0xE0,0x5F,0x70,0x0F,0x90,0xF1,0x33,0xE0,
+ 0x70,0x09,0x90,0xF1,0x35,0xE0,0x70,0x03,
+ 0x02,0x62,0x53,0xE4,0x90,0x42,0x9F,0xF0,
+ 0xA3,0xF0,0x90,0xF1,0x0F,0xE0,0x90,0x42,
+ 0xA1,0xF0,0x90,0xF1,0x0E,0xE0,0x90,0x42,
+ 0xA2,0xF0,0x90,0x42,0x9F,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x42,0xAD,0xE0,0xF8,0xA3,0xE0,0xF9,
+ 0xA3,0xE0,0xFA,0xA3,0xE0,0x2F,0xFF,0xEA,
+ 0x3E,0xFE,0xE9,0x3D,0xFD,0xE8,0x3C,0xFC,
+ 0x90,0x42,0x9F,0x12,0xAA,0x8F,0xE4,0xFF,
+ 0x7E,0x40,0xFD,0xFC,0x90,0x42,0x9F,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xC3,0x12,0xAA,0x2E,0x40,0x24,
+ 0x90,0x42,0x9F,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0x24,0x00,0xFF,
+ 0xEE,0x34,0xC0,0xFE,0xED,0x34,0xFF,0xFD,
+ 0xEC,0x34,0xFF,0xFC,0x90,0x42,0x9F,0x12,
+ 0xAA,0x8F,0x80,0x39,0xE4,0xFF,0xFE,0xFD,
+ 0xFC,0x90,0x42,0x9F,0xE0,0xF8,0xA3,0xE0,
+ 0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,
+ 0x12,0xAA,0x2E,0x50,0x20,0x90,0x42,0x9F,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,
+ 0xA3,0xE0,0x24,0x00,0xFF,0xEE,0x34,0x40,
+ 0xFE,0xE4,0x3D,0xFD,0xE4,0x3C,0xFC,0x90,
+ 0x42,0x9F,0x12,0xAA,0x8F,0x90,0x42,0xA2,
+ 0xE0,0x90,0xF1,0x0E,0xF0,0x90,0x42,0xA1,
+ 0xE0,0x90,0xF1,0x0F,0xF0,0xE4,0x90,0x42,
+ 0x9F,0xF0,0xA3,0xF0,0x90,0xF1,0x13,0xE0,
+ 0x90,0x42,0xA1,0xF0,0x90,0xF1,0x12,0xE0,
+ 0x90,0x42,0xA2,0xF0,0x90,0x42,0x9F,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x90,0x42,0xAD,0xE0,0xF8,0xA3,
+ 0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0x2F,
+ 0xFF,0xEA,0x3E,0xFE,0xE9,0x3D,0xFD,0xE8,
+ 0x3C,0xFC,0x90,0x42,0x9F,0x12,0xAA,0x8F,
+ 0xE4,0xFF,0x7E,0x40,0xFD,0xFC,0x90,0x42,
+ 0x9F,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xC3,0x12,0xAA,0x2E,
+ 0x40,0x24,0x90,0x42,0x9F,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0x24,
+ 0x00,0xFF,0xEE,0x34,0xC0,0xFE,0xED,0x34,
+ 0xFF,0xFD,0xEC,0x34,0xFF,0xFC,0x90,0x42,
+ 0x9F,0x12,0xAA,0x8F,0x80,0x39,0xE4,0xFF,
+ 0xFE,0xFD,0xFC,0x90,0x42,0x9F,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xC3,0x12,0xAA,0x2E,0x50,0x20,0x90,
+ 0x42,0x9F,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0x24,0x00,0xFF,0xEE,
+ 0x34,0x40,0xFE,0xE4,0x3D,0xFD,0xE4,0x3C,
+ 0xFC,0x90,0x42,0x9F,0x12,0xAA,0x8F,0x90,
+ 0x42,0xA2,0xE0,0x90,0xF1,0x12,0xF0,0x90,
+ 0x42,0xA1,0xE0,0x90,0xF1,0x13,0xF0,0x90,
+ 0x43,0x80,0xE0,0x70,0x05,0x90,0xF1,0x0A,
+ 0x04,0xF0,0xE4,0x90,0x42,0x9F,0xF0,0x90,
+ 0xF1,0xB5,0xE0,0x90,0x42,0xA0,0xF0,0x90,
+ 0xF1,0xB4,0xE0,0x90,0x42,0xA1,0xF0,0x90,
+ 0xF1,0xB3,0xE0,0x90,0x42,0xA2,0xF0,0x22,
+ 0x90,0x42,0x98,0xE0,0x70,0x1A,0xA3,0xE0,
+ 0x64,0x0C,0x60,0x05,0xE0,0x64,0x0D,0x70,
+ 0x22,0x90,0xF4,0x1B,0xE0,0xB4,0x0A,0x1B,
+ 0x90,0x42,0x98,0x74,0x01,0xF0,0x80,0x13,
+ 0x90,0x42,0x99,0xE0,0xB4,0x0C,0x0C,0x90,
+ 0xF4,0x1C,0xE0,0xB4,0x0A,0x05,0xE4,0x90,
+ 0x42,0x98,0xF0,0x90,0x42,0x98,0xE0,0xB4,
+ 0x01,0x19,0xA3,0xE0,0xB4,0x0C,0x14,0x90,
+ 0xF5,0xBA,0xE0,0xB4,0x01,0x0D,0x90,0x42,
+ 0x99,0x74,0x03,0xF0,0x90,0xF4,0x19,0xF0,
+ 0x02,0x63,0x75,0x90,0x42,0x98,0xE0,0xB4,
+ 0x01,0x0F,0xA3,0xE0,0xB4,0x0D,0x0A,0x74,
+ 0x03,0xF0,0x90,0xF4,0x19,0xF0,0x02,0x63,
+ 0x75,0x90,0x42,0x98,0xE0,0x70,0x15,0xA3,
+ 0xE0,0xB4,0x0C,0x10,0x90,0xF5,0xBA,0xE0,
+ 0xB4,0x01,0x09,0x90,0xF4,0x19,0x74,0x0C,
+ 0xF0,0x02,0x63,0x75,0x90,0x42,0x98,0xE0,
+ 0x70,0x16,0xA3,0xE0,0xB4,0x0C,0x11,0x90,
+ 0xF4,0x1C,0xE0,0xC3,0x94,0x0A,0x50,0x08,
+ 0x90,0xF4,0x19,0x74,0x0C,0xF0,0x80,0x64,
+ 0x90,0x42,0x98,0xE0,0x64,0x01,0x70,0x1C,
+ 0xA3,0xE0,0xB4,0x0C,0x17,0x90,0xF5,0xBA,
+ 0xE0,0x70,0x11,0x90,0xF4,0x1B,0xE0,0xC3,
+ 0x94,0x0A,0x50,0x08,0x90,0xF4,0x19,0x74,
+ 0x0C,0xF0,0x80,0x40,0x90,0x42,0x98,0xE0,
+ 0x64,0x01,0x70,0x1E,0xA3,0xE0,0xB4,0x0C,
+ 0x19,0x90,0xF5,0xBA,0xE0,0x70,0x13,0x90,
+ 0xF4,0x1B,0xE0,0xB4,0x0A,0x0C,0x90,0x42,
+ 0x99,0x74,0x03,0xF0,0x90,0xF4,0x19,0xF0,
+ 0x80,0x1A,0x90,0x42,0x99,0xE0,0xB4,0x0D,
+ 0x08,0x90,0xF4,0x19,0x74,0x0D,0xF0,0x80,
+ 0x0B,0x90,0x42,0x99,0xE0,0x04,0xF0,0xE0,
+ 0x90,0xF4,0x19,0xF0,0x90,0x42,0x99,0xE0,
+ 0x24,0xB8,0xF5,0x82,0xE4,0x34,0x42,0xF5,
+ 0x83,0xE0,0x90,0xF4,0x08,0xF0,0x90,0x42,
+ 0x99,0xE0,0x24,0xC6,0xF5,0x82,0xE4,0x34,
+ 0x42,0xF5,0x83,0xE0,0x90,0xF4,0x09,0xF0,
+ 0x90,0x42,0x99,0xE0,0x24,0xD4,0xF5,0x82,
+ 0xE4,0x34,0x42,0xF5,0x83,0xE0,0x90,0xF4,
+ 0x0A,0xF0,0x22,0x90,0x42,0x9B,0xE0,0x70,
+ 0x1A,0xA3,0xE0,0x64,0x0C,0x60,0x05,0xE0,
+ 0x64,0x0D,0x70,0x22,0x90,0xF5,0x68,0xE0,
+ 0xB4,0x0A,0x1B,0x90,0x42,0x9B,0x74,0x01,
+ 0xF0,0x80,0x13,0x90,0x42,0x9C,0xE0,0xB4,
+ 0x0C,0x0C,0x90,0xF5,0x69,0xE0,0xB4,0x05,
+ 0x05,0xE4,0x90,0x42,0x9B,0xF0,0x90,0x42,
+ 0x9B,0xE0,0xB4,0x01,0x19,0xA3,0xE0,0xB4,
+ 0x0C,0x14,0x90,0xF5,0xC1,0xE0,0xB4,0x01,
+ 0x0D,0x90,0x42,0x9C,0x74,0x03,0xF0,0x90,
+ 0xF5,0x66,0xF0,0x02,0x64,0xB0,0x90,0x42,
+ 0x9B,0xE0,0xB4,0x01,0x0F,0xA3,0xE0,0xB4,
+ 0x0D,0x0A,0x74,0x03,0xF0,0x90,0xF5,0x66,
+ 0xF0,0x02,0x64,0xB0,0x90,0x42,0x9B,0xE0,
+ 0x70,0x15,0xA3,0xE0,0xB4,0x0C,0x10,0x90,
+ 0xF5,0xC1,0xE0,0xB4,0x01,0x09,0x90,0xF5,
+ 0x66,0x74,0x0C,0xF0,0x02,0x64,0xB0,0x90,
+ 0x42,0x9B,0xE0,0x70,0x16,0xA3,0xE0,0xB4,
+ 0x0C,0x11,0x90,0xF5,0x69,0xE0,0xC3,0x94,
+ 0x05,0x50,0x08,0x90,0xF5,0x66,0x74,0x0C,
+ 0xF0,0x80,0x64,0x90,0x42,0x9B,0xE0,0x64,
+ 0x01,0x70,0x1C,0xA3,0xE0,0xB4,0x0C,0x17,
+ 0x90,0xF5,0xC1,0xE0,0x70,0x11,0x90,0xF5,
+ 0x68,0xE0,0xC3,0x94,0x0A,0x50,0x08,0x90,
+ 0xF5,0x66,0x74,0x0C,0xF0,0x80,0x40,0x90,
+ 0x42,0x9B,0xE0,0x64,0x01,0x70,0x1E,0xA3,
+ 0xE0,0xB4,0x0C,0x19,0x90,0xF5,0xC1,0xE0,
+ 0x70,0x13,0x90,0xF5,0x68,0xE0,0xB4,0x0A,
+ 0x0C,0x90,0x42,0x9C,0x74,0x03,0xF0,0x90,
+ 0xF5,0x66,0xF0,0x80,0x1A,0x90,0x42,0x9C,
+ 0xE0,0xB4,0x0D,0x08,0x90,0xF5,0x66,0x74,
+ 0x0D,0xF0,0x80,0x0B,0x90,0x42,0x9C,0xE0,
+ 0x04,0xF0,0xE0,0x90,0xF5,0x66,0xF0,0x90,
+ 0x42,0x9C,0xE0,0x25,0xE0,0x24,0xE2,0xF5,
+ 0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,0xA3,
+ 0xE0,0x90,0xF5,0x5B,0xF0,0x90,0x42,0x9C,
+ 0xE0,0x25,0xE0,0x24,0xFE,0xF5,0x82,0xE4,
+ 0x34,0x42,0xF5,0x83,0xE0,0xA3,0xE0,0x90,
+ 0xF5,0x5C,0xF0,0x90,0x42,0x9C,0xE0,0x25,
+ 0xE0,0x24,0x1A,0xF5,0x82,0xE4,0x34,0x43,
+ 0xF5,0x83,0xE0,0xA3,0xE0,0x90,0xF5,0x5D,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF4,0x60,
+ 0xE0,0x60,0x03,0x02,0x65,0x8F,0x90,0x41,
+ 0x96,0xE0,0x90,0xF4,0x03,0xF0,0x90,0x41,
+ 0x97,0xE0,0x90,0xF4,0x02,0xF0,0x90,0x41,
+ 0x98,0xE0,0x90,0xF4,0x01,0xF0,0x90,0x41,
+ 0x99,0xE0,0x90,0xF4,0x00,0xF0,0x90,0x41,
+ 0x9A,0xE0,0x90,0xF4,0x07,0xF0,0x90,0x41,
+ 0x9B,0xE0,0x90,0xF4,0x06,0xF0,0x90,0x41,
+ 0x9C,0xE0,0x90,0xF4,0x05,0xF0,0x90,0x41,
+ 0x9D,0xE0,0x90,0xF4,0x04,0xF0,0x12,0x67,
+ 0x0D,0x90,0xF9,0x01,0xE0,0x14,0x60,0x16,
+ 0x14,0x60,0x1F,0x14,0x60,0x28,0x24,0x03,
+ 0x70,0x2E,0x90,0xF5,0x59,0x74,0xFA,0xF0,
+ 0xA3,0x74,0x54,0xF0,0x80,0x22,0x90,0xF5,
+ 0x59,0x74,0x7A,0xF0,0xA3,0x74,0x52,0xF0,
+ 0x80,0x16,0x90,0xF5,0x59,0x74,0xE5,0xF0,
+ 0xA3,0x74,0x4D,0xF0,0x80,0x0A,0x90,0xF5,
+ 0x59,0x74,0x1B,0xF0,0xA3,0x74,0x46,0xF0,
+ 0x12,0x67,0x3D,0x90,0xF7,0x37,0x74,0xDC,
+ 0xF0,0xA3,0x74,0x05,0xF0,0x22,0x90,0xF4,
+ 0x60,0xE0,0x64,0x04,0x60,0x03,0x02,0x66,
+ 0x2A,0x90,0x41,0xAE,0xE0,0x90,0xF4,0x03,
+ 0xF0,0x90,0x41,0xAF,0xE0,0x90,0xF4,0x02,
+ 0xF0,0x90,0x41,0xB0,0xE0,0x90,0xF4,0x01,
+ 0xF0,0x90,0x41,0xB1,0xE0,0x90,0xF4,0x00,
+ 0xF0,0x90,0x41,0xB2,0xE0,0x90,0xF4,0x07,
+ 0xF0,0x90,0x41,0xB3,0xE0,0x90,0xF4,0x06,
+ 0xF0,0x90,0x41,0xB4,0xE0,0x90,0xF4,0x05,
+ 0xF0,0x90,0x41,0xB5,0xE0,0x90,0xF4,0x04,
+ 0xF0,0x12,0x67,0x2D,0x90,0xF9,0x01,0xE0,
+ 0x14,0x60,0x16,0x14,0x60,0x1F,0x14,0x60,
+ 0x28,0x24,0x03,0x70,0x2E,0x90,0xF5,0x59,
+ 0x74,0xA4,0xF0,0xA3,0x74,0x28,0xF0,0x80,
+ 0x22,0x90,0xF5,0x59,0x74,0x72,0xF0,0xA3,
+ 0x74,0x27,0xF0,0x80,0x16,0x90,0xF5,0x59,
+ 0x74,0x41,0xF0,0xA3,0x74,0x25,0xF0,0x80,
+ 0x0A,0x90,0xF5,0x59,0x74,0x87,0xF0,0xA3,
+ 0x74,0x21,0xF0,0x12,0x67,0x5C,0x90,0xF7,
+ 0x37,0x74,0xB8,0xF0,0xA3,0x74,0x0B,0xF0,
+ 0x22,0x90,0xF4,0x60,0xE0,0x24,0xFE,0x60,
+ 0x29,0x14,0x60,0x48,0x24,0x02,0x70,0x64,
+ 0x90,0x41,0x9E,0xE0,0x90,0xF4,0x03,0xF0,
+ 0x90,0x41,0x9F,0xE0,0x90,0xF4,0x02,0xF0,
+ 0x90,0x41,0xA0,0xE0,0x90,0xF4,0x01,0xF0,
+ 0x90,0x41,0xA1,0xE0,0x90,0xF4,0x00,0xF0,
+ 0x80,0x42,0x90,0x41,0xA2,0xE0,0x90,0xF4,
+ 0x03,0xF0,0x90,0x41,0xA3,0xE0,0x90,0xF4,
+ 0x02,0xF0,0x90,0x41,0xA4,0xE0,0x90,0xF4,
+ 0x01,0xF0,0x90,0x41,0xA5,0xE0,0x90,0xF4,
+ 0x00,0xF0,0x80,0x20,0x90,0x41,0xA6,0xE0,
+ 0x90,0xF4,0x03,0xF0,0x90,0x41,0xA7,0xE0,
+ 0x90,0xF4,0x02,0xF0,0x90,0x41,0xA8,0xE0,
+ 0x90,0xF4,0x01,0xF0,0x90,0x41,0xA9,0xE0,
+ 0x90,0xF4,0x00,0xF0,0x90,0x41,0xAA,0xE0,
+ 0x90,0xF4,0x07,0xF0,0x90,0x41,0xAB,0xE0,
+ 0x90,0xF4,0x06,0xF0,0x90,0x41,0xAC,0xE0,
+ 0x90,0xF4,0x05,0xF0,0x90,0x41,0xAD,0xE0,
+ 0x90,0xF4,0x04,0xF0,0x12,0x67,0x1D,0x90,
+ 0xF9,0x01,0xE0,0x14,0x60,0x16,0x14,0x60,
+ 0x1F,0x14,0x60,0x28,0x24,0x03,0x70,0x2E,
+ 0x90,0xF5,0x59,0x74,0x52,0xF0,0xA3,0x74,
+ 0x14,0xF0,0x80,0x22,0x90,0xF5,0x59,0x74,
+ 0xB9,0xF0,0xA3,0x74,0x13,0xF0,0x80,0x16,
+ 0x90,0xF5,0x59,0x74,0xA1,0xF0,0xA3,0x74,
+ 0x12,0xF0,0x80,0x0A,0x90,0xF5,0x59,0x74,
+ 0xC4,0xF0,0xA3,0x74,0x10,0xF0,0x12,0x67,
+ 0x4B,0x90,0xF7,0x37,0x74,0xB8,0xF0,0xA3,
+ 0x74,0x0B,0xF0,0x22,0x90,0xF4,0x08,0x74,
+ 0x99,0xF0,0xA3,0x74,0x02,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0x22,0x90,0xF4,0x08,0x74,
+ 0x99,0xF0,0xA3,0x74,0x02,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0x22,0x90,0xF4,0x08,0x74,
+ 0x99,0xF0,0xA3,0x74,0x02,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0x22,0x90,0xF5,0x5B,0x74,
+ 0x60,0xF0,0xA3,0xE4,0xF0,0xA3,0xF0,0xA3,
+ 0xF0,0x22,0x90,0xF5,0x5B,0x74,0xFC,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x02,0xF0,0xA3,
+ 0xE4,0xF0,0x22,0x90,0xF5,0x5B,0xE4,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0xF0,0x22,0x90,0xFB,0x24,0xE4,0xF0,0x90,
+ 0x43,0x41,0xE0,0x90,0xFB,0x28,0xF0,0x22,
+ 0x90,0xFB,0x24,0x74,0x08,0xF0,0x90,0xFB,
+ 0x28,0x74,0x74,0xF0,0x22,0x90,0xFB,0x27,
+ 0xE0,0x54,0x1F,0xFF,0xC3,0x13,0xFF,0x90,
+ 0x41,0xDA,0x74,0x01,0xF0,0x90,0x43,0x41,
+ 0x74,0x82,0xF0,0x12,0x67,0x6B,0x90,0xFB,
+ 0x25,0x74,0x1F,0xF0,0xA3,0x74,0x22,0xF0,
+ 0x90,0xFB,0x29,0x74,0x42,0xF0,0x12,0x8E,
+ 0xE9,0x22,0x7E,0x41,0x7F,0x95,0xD3,0xEF,
+ 0x94,0x5D,0xEE,0x94,0x42,0x50,0x0D,0x8F,
+ 0x82,0x8E,0x83,0xE4,0xF0,0x0F,0xBF,0x00,
+ 0x01,0x0E,0x80,0xEA,0x12,0x67,0x86,0x12,
+ 0x47,0x82,0x90,0x41,0x8B,0x74,0x41,0xF0,
+ 0xA3,0x74,0x95,0xF0,0xE4,0x90,0x43,0x40,
+ 0xF0,0xD2,0xAF,0xD2,0xA8,0xC2,0xDB,0xD2,
+ 0xEC,0xF5,0x0F,0xF5,0x10,0x90,0x43,0x43,
+ 0xF0,0xA3,0xF0,0x90,0x43,0x3A,0xF0,0x90,
+ 0x41,0xD6,0x04,0xF0,0x90,0x41,0xE4,0x74,
+ 0x03,0xF0,0xE4,0x90,0x41,0xE5,0xF0,0xF5,
+ 0xF8,0x75,0xB8,0x12,0xD2,0x88,0xD2,0xEB,
+ 0x90,0x43,0x38,0xF0,0x90,0x41,0xD5,0xF0,
+ 0x90,0x43,0x3F,0x04,0xF0,0xE4,0x90,0x41,
+ 0xEB,0xF0,0x90,0x41,0xEA,0x04,0xF0,0x90,
+ 0x41,0xEF,0xF0,0x90,0x41,0xF0,0x04,0xF0,
+ 0xE4,0x90,0x41,0xF1,0xF0,0x90,0x41,0xF2,
+ 0xF0,0x90,0x42,0x12,0x04,0xF0,0x90,0x41,
+ 0xCF,0x74,0x10,0xF0,0x90,0x41,0xD0,0x74,
+ 0x27,0xF0,0x90,0x41,0xFA,0x74,0x50,0xF0,
+ 0x90,0x41,0xCE,0x74,0x01,0xF0,0x90,0x42,
+ 0x24,0x74,0x20,0xF0,0x90,0x42,0x25,0x74,
+ 0x2C,0xF0,0x90,0x42,0x26,0x74,0x01,0xF0,
+ 0x90,0x42,0x20,0x74,0x07,0xF0,0x90,0x42,
+ 0x21,0xF0,0x90,0x42,0x22,0x14,0xF0,0xE4,
+ 0x90,0x43,0x82,0xF0,0x90,0xF6,0x2E,0x74,
+ 0x64,0xF0,0xE4,0x90,0x43,0xBB,0xF0,0x90,
+ 0x41,0xE0,0x04,0xF0,0x90,0x43,0xF4,0x12,
+ 0xAA,0x9B,0x00,0x00,0x00,0x00,0xE4,0x90,
+ 0x41,0xF7,0xF0,0x90,0x41,0xF8,0xF0,0x90,
+ 0x41,0xF9,0xF0,0x90,0x41,0xC4,0x04,0xF0,
+ 0x90,0x41,0xCC,0x74,0x10,0xF0,0x90,0x41,
+ 0xCD,0x74,0x27,0xF0,0x7F,0x1B,0x12,0x89,
+ 0x23,0x90,0xFB,0x9F,0xE0,0x90,0x42,0x4E,
+ 0xF0,0x90,0xFB,0xA0,0xE0,0x90,0x44,0xBD,
+ 0xF0,0x12,0xA7,0x2B,0x22,0x90,0x43,0x38,
+ 0xE0,0x70,0x05,0x90,0x43,0x3D,0xF0,0x22,
+ 0x90,0x43,0x3D,0x74,0x01,0xF0,0x22,0x90,
+ 0x41,0xDA,0xE0,0xB4,0x01,0x0B,0x90,0xF0,
+ 0x7F,0x74,0x01,0xF0,0xA3,0xE4,0xF0,0x80,
+ 0x08,0x90,0xF0,0x7F,0xE4,0xF0,0xA3,0x04,
+ 0xF0,0x90,0x43,0xC3,0x74,0x01,0xF0,0xE4,
+ 0x90,0x41,0xD5,0xF0,0x90,0xF7,0x3C,0xE0,
+ 0x60,0x09,0xE4,0x90,0x41,0xD2,0xF0,0x90,
+ 0x41,0xD1,0xF0,0xE4,0x90,0x43,0xBF,0xF0,
+ 0xA3,0xF0,0x90,0x43,0xC1,0xF0,0xA3,0xF0,
+ 0x90,0x43,0xF8,0x04,0xF0,0x12,0x4E,0x89,
+ 0x12,0x88,0x8B,0x90,0x41,0xEA,0xE0,0x70,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,
+ 0x42,0x9E,0xEF,0xF0,0x12,0x72,0x21,0x90,
+ 0x43,0x42,0x74,0x01,0xF0,0xE4,0x90,0x43,
+ 0x40,0xF0,0x90,0xF7,0x31,0xE0,0xB4,0x01,
+ 0x03,0x12,0x9C,0xC3,0xE4,0x90,0x43,0x3E,
+ 0xF0,0x12,0xA8,0x22,0x90,0x43,0x3D,0x74,
+ 0x01,0xF0,0x22,0x90,0xF1,0xEA,0xE4,0xF0,
+ 0x90,0xF1,0xEF,0xF0,0x90,0xF1,0xF2,0xF0,
+ 0x90,0xF0,0x7C,0xF0,0x90,0xF1,0xFB,0xF0,
+ 0x90,0xF1,0xF7,0xF0,0x90,0xF1,0xE8,0x04,
+ 0xF0,0x90,0xF1,0xEB,0xF0,0x90,0xF1,0xF0,
+ 0xF0,0x90,0xF1,0xF3,0xF0,0x90,0xF0,0x7D,
+ 0xF0,0x90,0xF1,0xFA,0xF0,0x90,0xF1,0xF6,
+ 0xF0,0x90,0xF1,0xF8,0xE4,0xF0,0x90,0xF1,
+ 0xFC,0x74,0x03,0xF0,0x90,0xF1,0xE8,0xE4,
+ 0xF0,0x90,0xF1,0xEB,0xF0,0x90,0xF1,0xF0,
+ 0xF0,0x90,0xF1,0xF3,0xF0,0x90,0xF0,0x7D,
+ 0xF0,0x90,0xF1,0xFA,0xF0,0x90,0xF1,0xF6,
+ 0xF0,0x90,0xF1,0xEA,0x04,0xF0,0x90,0xF1,
+ 0xEF,0xF0,0x90,0xF1,0xF2,0xF0,0x90,0xF0,
+ 0x7C,0xF0,0x90,0xF1,0xF7,0xF0,0x90,0xF1,
+ 0xFB,0xF0,0x90,0xF5,0xC2,0xF0,0xE4,0xF0,
+ 0x22,0x12,0x69,0x64,0x90,0xF1,0x4E,0x74,
+ 0x3F,0xF0,0x90,0xF1,0x85,0xE4,0xF0,0x90,
+ 0xF1,0x47,0xF0,0xA3,0xF0,0x90,0x42,0x11,
+ 0xE0,0x64,0x01,0x60,0x08,0xE4,0x90,0x43,
+ 0x81,0xF0,0x12,0x72,0x42,0x90,0x43,0x81,
+ 0x74,0x01,0xF0,0x90,0x43,0x3D,0xF0,0x22,
+ 0x7F,0xD4,0x7E,0x27,0x12,0x47,0x76,0x90,
+ 0xF1,0x48,0x74,0x01,0xF0,0x90,0xF0,0x92,
+ 0xE4,0xF0,0x90,0xF0,0x91,0x04,0xF0,0x90,
+ 0xF0,0x94,0xF0,0x90,0xF0,0x81,0xF0,0x90,
+ 0xF0,0x91,0xE4,0xF0,0xA3,0x04,0xF0,0x90,
+ 0xF0,0x94,0xE0,0xB4,0x01,0xF9,0x90,0xF1,
+ 0xFB,0xE4,0xF0,0x90,0xF1,0xFA,0x04,0xF0,
+ 0x90,0xF1,0xFD,0xF0,0x90,0xF1,0xFC,0xF0,
+ 0x90,0xF1,0xFA,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0x90,0xF1,0xFD,0xE0,0xB4,0x01,0xF9,0x90,
+ 0xF1,0xF7,0xE4,0xF0,0x90,0xF1,0xF6,0x04,
+ 0xF0,0x90,0xF1,0xF9,0xF0,0x90,0xF1,0xF8,
+ 0x04,0xF0,0x90,0xF2,0x14,0x14,0xF0,0x90,
+ 0xF1,0xF6,0xE4,0xF0,0xA3,0x04,0xF0,0x90,
+ 0xF1,0xF9,0xE0,0xB4,0x01,0xF9,0x90,0x43,
+ 0x3D,0x74,0x01,0xF0,0x22,0x90,0x41,0xD5,
+ 0xE0,0x70,0x04,0xFF,0x12,0x5C,0x30,0x12,
+ 0x64,0xF6,0x7F,0x01,0x12,0x5C,0x30,0x90,
+ 0xF6,0x24,0xE0,0xD3,0x94,0x04,0x40,0x0F,
+ 0xE4,0x90,0x41,0xDC,0xF0,0x90,0xF2,0x1C,
+ 0xF0,0x90,0x43,0x3D,0x04,0xF0,0x22,0x90,
+ 0x43,0x3D,0x74,0x01,0xF0,0x22,0x90,0xF1,
+ 0x48,0xE4,0xF0,0x90,0xF0,0x81,0x74,0x03,
+ 0xF0,0x90,0xF1,0xFC,0xF0,0x90,0xF5,0xAF,
+ 0xE4,0xF0,0x04,0xF0,0x90,0xF5,0xB4,0xE0,
+ 0xB4,0x01,0xF9,0x90,0xF5,0xAF,0xE4,0xF0,
+ 0x90,0x43,0x3D,0x04,0xF0,0x22,0x90,0xF4,
+ 0x13,0xE4,0xF0,0x12,0x5F,0x39,0x22,0x90,
+ 0xF4,0x1A,0x74,0x0D,0xF0,0x90,0xF4,0x10,
+ 0x74,0x08,0xF0,0x90,0xF4,0x18,0xF0,0x90,
+ 0xF5,0x61,0x74,0x06,0xF0,0xE4,0x90,0x42,
+ 0x6D,0xF0,0x90,0x42,0x98,0xF0,0x90,0x42,
+ 0x9A,0xF0,0x90,0x42,0x9B,0xF0,0x90,0x42,
+ 0x9D,0xF0,0x90,0x42,0x99,0xF0,0x90,0x42,
+ 0x9C,0xF0,0x90,0x42,0x96,0x04,0xF0,0x90,
+ 0xF5,0xBD,0xF0,0x90,0xF5,0xBB,0xF0,0x90,
+ 0xF5,0xBD,0xE4,0xF0,0x90,0xF5,0xBF,0x04,
+ 0xF0,0x90,0x42,0x97,0xF0,0x90,0xF5,0xB3,
+ 0xF0,0x90,0xF5,0xB1,0xF0,0x90,0xF5,0xB3,
+ 0xE4,0xF0,0x90,0xF5,0xB2,0x04,0xF0,0xD2,
+ 0xE9,0x22,0x90,0xF5,0xA8,0xE4,0xF0,0x04,
+ 0xF0,0x75,0xF0,0x02,0xE5,0x0F,0xA4,0x24,
+ 0x79,0xF5,0x82,0xE5,0xF0,0x34,0xAD,0xF5,
+ 0x83,0xE4,0x93,0xFC,0x74,0x01,0x93,0xFD,
+ 0xE4,0xFF,0x12,0x47,0xAD,0x90,0xF5,0xA9,
+ 0xE0,0x64,0x01,0x60,0x04,0x7F,0x01,0x80,
+ 0x02,0x7F,0x00,0x90,0xF1,0x1A,0xE0,0x5F,
+ 0x70,0xEB,0x90,0xF5,0xA9,0xE0,0xB4,0x01,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,
+ 0x43,0x3D,0xEF,0xF0,0xE0,0x64,0x01,0x70,
+ 0x40,0x90,0xF4,0xCC,0xE0,0xFF,0x90,0xF9,
+ 0x08,0xF0,0x90,0xF4,0xC1,0xE0,0xFF,0x90,
+ 0xF9,0x03,0xF0,0x90,0xF4,0xC4,0xE0,0xFF,
+ 0x90,0xF9,0x06,0xF0,0x90,0xF4,0xC5,0xE0,
+ 0xFF,0x90,0xF9,0x07,0xF0,0x90,0xF4,0xC6,
+ 0xE0,0x54,0x03,0xFF,0x90,0xF9,0x02,0xF0,
+ 0x70,0x05,0x90,0xF9,0x05,0x04,0xF0,0x90,
+ 0x41,0xD5,0x74,0x01,0xF0,0x90,0xF7,0x2F,
+ 0xF0,0x12,0x6E,0x8F,0x22,0x12,0x9A,0x04,
+ 0xE4,0x90,0x44,0x46,0xF0,0x90,0x44,0x42,
+ 0xF0,0xA3,0xF0,0x12,0x95,0xF5,0x90,0x44,
+ 0x41,0x74,0x01,0xF0,0x90,0x43,0x80,0xE0,
+ 0x60,0x0A,0x90,0xF1,0x2F,0x74,0x01,0xF0,
+ 0x90,0xF1,0x0A,0xF0,0x90,0x44,0x48,0x74,
+ 0x01,0xF0,0x12,0x97,0x17,0x12,0x70,0x6A,
+ 0x12,0x52,0x4E,0x12,0x51,0x31,0xE4,0xFF,
+ 0x12,0x50,0xFA,0x90,0xFD,0x32,0xE0,0x90,
+ 0xFD,0x92,0xF0,0x90,0xFD,0x31,0xE0,0x90,
+ 0xFD,0x91,0xF0,0x90,0xF2,0x1B,0x74,0x09,
+ 0xF0,0xE4,0xFF,0x12,0x83,0xDD,0x90,0xF2,
+ 0x1B,0x74,0x0A,0xF0,0x85,0x2C,0x2C,0x90,
+ 0xFD,0xA1,0xE0,0x60,0x03,0x12,0xA8,0x99,
+ 0x7F,0x04,0x12,0x6D,0xE8,0x90,0xF5,0x3B,
+ 0x74,0x01,0xF0,0xE4,0xFF,0x12,0x50,0xFA,
+ 0x12,0x72,0x21,0x90,0x43,0x3F,0xE0,0x60,
+ 0x21,0x90,0xF7,0x3C,0xE0,0x70,0x16,0x90,
+ 0xF7,0x40,0xF0,0x90,0xF5,0x54,0x04,0xF0,
+ 0xE4,0x90,0x44,0x9B,0xF0,0x90,0x44,0x9A,
+ 0xE0,0x90,0xF5,0x52,0xF0,0xE4,0x90,0x43,
+ 0x3B,0xF0,0x90,0x41,0xD1,0x74,0x01,0xF0,
+ 0x90,0x42,0x46,0xF0,0x12,0x93,0x38,0x7F,
+ 0x0A,0x12,0x6D,0xE8,0x90,0xF7,0x8E,0x74,
+ 0x01,0xF0,0x90,0x43,0xF8,0xF0,0x85,0x2C,
+ 0x2C,0x12,0xA8,0xF1,0xE5,0x2D,0x70,0x7B,
+ 0x90,0x42,0x45,0xE0,0x60,0x75,0x90,0x43,
+ 0x42,0xE0,0x60,0x6F,0x90,0xF0,0x2B,0xE0,
+ 0x60,0x69,0x90,0xF6,0x08,0xE0,0x70,0x63,
+ 0xC2,0xEB,0x90,0xF7,0x8B,0x74,0x02,0xF0,
+ 0x7F,0x01,0x12,0x86,0xB2,0x90,0x42,0x37,
+ 0xE0,0x90,0x43,0x36,0xF0,0x90,0xFD,0xA5,
+ 0x74,0x01,0xF0,0x90,0x43,0x3E,0xF0,0x90,
+ 0xFD,0x29,0xF0,0x7F,0x08,0x12,0x6D,0xE8,
+ 0x7F,0x01,0x12,0x86,0xB2,0x90,0x42,0x37,
+ 0xE0,0xFF,0x90,0x43,0x36,0xE0,0xC3,0x9F,
+ 0x40,0x0F,0x90,0xFD,0xA5,0xE4,0xF0,0x90,
+ 0xFD,0x29,0xF0,0x90,0x43,0x3E,0xF0,0x80,
+ 0x0E,0x90,0xFD,0xA5,0x74,0x01,0xF0,0x90,
+ 0xFD,0x29,0xF0,0x90,0x43,0x3E,0xF0,0xE4,
+ 0x90,0x43,0x42,0xF0,0x90,0xF7,0x8B,0x04,
+ 0xF0,0xD2,0xEB,0x12,0x6E,0x75,0x90,0xF7,
+ 0x3C,0xE0,0x70,0x03,0x12,0xAE,0xCF,0x90,
+ 0xF7,0x31,0xE0,0x60,0x05,0x7F,0x01,0x12,
+ 0x9C,0x29,0x12,0x91,0x6A,0x90,0xF2,0x1B,
+ 0x74,0x0B,0xF0,0x22,0x90,0x43,0x3D,0x74,
+ 0x01,0xF0,0xF5,0x0F,0x22,0x90,0x41,0xD6,
+ 0xE0,0x70,0x1D,0x90,0xF9,0x57,0xE0,0x54,
+ 0xFD,0x44,0x02,0xF0,0x90,0x41,0xD6,0x74,
+ 0x01,0xF0,0xE4,0x90,0x43,0x3A,0xF0,0x90,
+ 0x43,0x38,0xF0,0xA3,0xF0,0xF5,0x0F,0x22,
+ 0x90,0x43,0x39,0xE0,0x60,0x68,0x90,0x43,
+ 0x3D,0xE0,0xB4,0x01,0x0C,0xE5,0x0F,0x90,
+ 0xAD,0x5B,0x93,0xF5,0x0F,0xE4,0xF5,0x10,
+ 0x22,0xE5,0x0F,0x70,0x05,0xF5,0x0F,0xF5,
+ 0x10,0x22,0xE5,0x0F,0x90,0xAD,0x8D,0x93,
+ 0xB5,0x10,0x1C,0x90,0x43,0x43,0xE0,0xB5,
+ 0x0F,0x05,0x75,0x0F,0x01,0x80,0x0C,0x90,
+ 0x43,0x43,0xE5,0x0F,0xF0,0x90,0xAD,0x6F,
+ 0x93,0xF5,0x0F,0xE4,0xF5,0x10,0x22,0xE5,
+ 0x0F,0x90,0xAD,0x65,0x93,0xFF,0xB5,0x0F,
+ 0x03,0x05,0x10,0x22,0x90,0x43,0x44,0xE0,
+ 0xB5,0x0F,0x08,0x90,0xAD,0x6F,0x93,0xF5,
+ 0x0F,0x80,0x08,0x90,0x43,0x44,0xE5,0x0F,
+ 0xF0,0x8F,0x0F,0xE4,0xF5,0x10,0x22,0x90,
+ 0xF5,0x38,0xE0,0xFD,0xEF,0x60,0x0D,0x90,
+ 0xF5,0x38,0xE0,0xFE,0x6D,0x60,0xF5,0xAD,
+ 0x06,0x1F,0x80,0xF0,0x22,0xA2,0xAF,0xE4,
+ 0x33,0x90,0x43,0x37,0xF0,0x90,0xF7,0x14,
+ 0xE0,0x60,0x31,0x90,0xF7,0x32,0xE0,0x70,
+ 0x06,0x90,0xF7,0x3C,0xE0,0x60,0x25,0xC2,
+ 0xAF,0x90,0xF7,0x14,0xE4,0xF0,0x7F,0xD4,
+ 0x7E,0x27,0x12,0x47,0x76,0x90,0xF9,0x9D,
+ 0x74,0x01,0xF0,0x90,0xF7,0x16,0xF0,0x90,
+ 0xF7,0x11,0xE4,0xF0,0x90,0x43,0x37,0xE0,
+ 0x24,0xFF,0x92,0xAF,0x22,0xA2,0xAF,0xE4,
+ 0x33,0xFF,0xC2,0xAF,0x90,0xF7,0x14,0xE0,
+ 0x70,0x24,0x90,0xF7,0x32,0xE0,0x70,0x06,
+ 0x90,0xF7,0x3C,0xE0,0x60,0x18,0x90,0xF9,
+ 0x9D,0xE4,0xF0,0x90,0xF7,0x14,0x04,0xF0,
+ 0x90,0xF7,0x0D,0xF0,0x90,0xF7,0x86,0xF0,
+ 0xA3,0xF0,0x90,0xF7,0x11,0xF0,0xEF,0x24,
+ 0xFF,0x92,0xAF,0x22,0x90,0x42,0x46,0xE0,
+ 0x70,0x0C,0x90,0x42,0x47,0xE0,0x60,0x0A,
+ 0x90,0x44,0x97,0xE0,0x60,0x04,0x12,0x6E,
+ 0x3E,0x22,0x12,0x6D,0xFE,0x22,0x90,0xF1,
+ 0x0F,0xE0,0xFE,0x90,0xF1,0x0E,0xE0,0x7C,
+ 0x00,0x24,0x00,0xFF,0xEC,0x3E,0x90,0x43,
+ 0x45,0xF0,0xA3,0xEF,0xF0,0x90,0xF1,0x13,
+ 0xE0,0xFE,0x90,0xF1,0x12,0xE0,0x24,0x00,
+ 0xFF,0xEC,0x3E,0x90,0x43,0x47,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0xF1,0x10,0xE0,0x64,0x01,
+ 0x60,0x03,0x02,0x6F,0x5C,0x90,0xF1,0x14,
+ 0xE0,0x64,0x01,0x60,0x03,0x02,0x6F,0x5C,
+ 0xD3,0x90,0x43,0x46,0xE0,0x94,0x10,0x90,
+ 0x43,0x45,0xE0,0x94,0x35,0x40,0x0C,0xA3,
+ 0xE0,0x94,0x30,0x90,0x43,0x45,0xE0,0x94,
+ 0x38,0x40,0x1B,0xD3,0x90,0x43,0x48,0xE0,
+ 0x94,0x10,0x90,0x43,0x47,0xE0,0x94,0x35,
+ 0x40,0x61,0xA3,0xE0,0x94,0x30,0x90,0x43,
+ 0x47,0xE0,0x94,0x38,0x50,0x55,0x90,0xF4,
+ 0xC1,0xE0,0x64,0x01,0x70,0x25,0x90,0xF9,
+ 0x00,0xE0,0x70,0x0C,0x90,0xF5,0x4B,0x74,
+ 0x05,0xF0,0x90,0xF6,0x55,0x74,0x20,0xF0,
+ 0x90,0xF9,0x00,0xE0,0xB4,0x01,0x0C,0x90,
+ 0xF5,0x4B,0x74,0x04,0xF0,0x90,0xF6,0x55,
+ 0x74,0x10,0xF0,0x90,0xF4,0xC1,0xE0,0x64,
+ 0x02,0x70,0x2C,0x90,0xF9,0x00,0xE0,0x70,
+ 0x06,0x90,0xF5,0x4B,0x74,0x09,0xF0,0x90,
+ 0xF9,0x00,0xE0,0xB4,0x01,0x06,0x90,0xF5,
+ 0x4B,0x74,0x08,0xF0,0x90,0xF6,0x55,0x74,
+ 0x20,0xF0,0x22,0x90,0xF5,0x4B,0x74,0x14,
+ 0xF0,0x90,0xF6,0x55,0x74,0x20,0xF0,0x22,
+ 0x12,0x70,0x49,0x12,0x47,0xCC,0x12,0x67,
+ 0xB3,0x90,0x43,0x50,0x74,0x01,0xF0,0xFB,
+ 0x7A,0x43,0x79,0x49,0x12,0xAC,0xE2,0xEF,
+ 0x4E,0x60,0x10,0x7A,0x47,0x79,0xCB,0x12,
+ 0xAA,0xCC,0x7A,0x47,0x79,0xCB,0x12,0xAA,
+ 0xCC,0xD2,0xAF,0x90,0xF2,0x1B,0xE4,0xF0,
+ 0x90,0x43,0x50,0xE0,0x70,0xFA,0x12,0x6E,
+ 0x75,0x90,0x43,0x50,0xE0,0x70,0xFA,0xE5,
+ 0x0F,0xB4,0x0A,0x00,0x40,0x03,0x02,0x70,
+ 0x39,0x90,0x6F,0xB9,0xF8,0x28,0x28,0x73,
+ 0x02,0x6F,0xD7,0x02,0x6F,0xDC,0x02,0x6F,
+ 0xE1,0x02,0x6F,0xE6,0x02,0x6F,0xEB,0x02,
+ 0x6F,0xF0,0x02,0x6F,0xF5,0x02,0x6F,0xFA,
+ 0x02,0x70,0x1A,0x02,0x70,0x34,0x12,0x68,
+ 0xCE,0x80,0x60,0x12,0x68,0xE0,0x80,0x5B,
+ 0x12,0x8F,0x6A,0x80,0x56,0x12,0x69,0xE2,
+ 0x80,0x51,0x12,0x6A,0x11,0x80,0x4C,0x12,
+ 0x6A,0x8E,0x80,0x47,0x12,0x6A,0xBF,0x80,
+ 0x42,0x90,0xF5,0x05,0x74,0x01,0xF0,0x90,
+ 0x44,0xA1,0xF0,0x12,0x6A,0xE7,0x90,0x43,
+ 0x3D,0xE0,0xB4,0x01,0x05,0x7F,0x01,0x12,
+ 0x5C,0x30,0x7F,0x01,0x12,0x6D,0xE8,0x80,
+ 0x22,0x12,0xA8,0xE6,0x85,0x2C,0x2C,0x90,
+ 0xF5,0x05,0xE4,0xF0,0x90,0x43,0x3D,0xE0,
+ 0xB4,0x01,0x10,0x12,0xAE,0x19,0x12,0x6B,
+ 0xE6,0x80,0x08,0x12,0x93,0x7B,0x80,0x03,
+ 0x12,0x6D,0x4D,0x12,0x9B,0xC3,0x12,0x6D,
+ 0x56,0x12,0x6E,0x75,0x02,0x6F,0xA2,0x22,
+ 0x90,0xFB,0x87,0xE0,0x60,0xFA,0x90,0xFB,
+ 0x9E,0xE0,0xB4,0x04,0x05,0xA3,0xE0,0xFF,
+ 0x80,0x02,0x7F,0x00,0x90,0x43,0x51,0xEF,
+ 0xF0,0x90,0xFB,0x87,0xE4,0xF0,0xC2,0xDB,
+ 0x22,0x90,0xF9,0x05,0xE0,0x60,0x0A,0x90,
+ 0xF4,0xC4,0xE0,0x90,0x43,0x53,0xF0,0x80,
+ 0x08,0x90,0xF4,0xC5,0xE0,0x90,0x43,0x53,
+ 0xF0,0x90,0x43,0x53,0xE0,0x14,0x60,0x20,
+ 0x14,0x60,0x2F,0x14,0x60,0x3D,0x14,0x60,
+ 0x4B,0x24,0x04,0x70,0x57,0x90,0xF7,0x7F,
+ 0x74,0xE0,0xF0,0xA3,0x74,0x01,0xF0,0xA3,
+ 0x74,0xBB,0xF0,0xA3,0x74,0x01,0xF0,0x22,
+ 0x90,0xF7,0x7F,0x74,0x40,0xF0,0xA3,0x74,
+ 0x01,0xF0,0xA3,0x74,0x55,0xF0,0xA3,0xE4,
+ 0xF0,0x22,0x90,0xF7,0x7F,0x74,0xFA,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x30,0xF0,0xA3,
+ 0xE4,0xF0,0x22,0x90,0xF7,0x7F,0x74,0xF5,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x15,0xF0,
+ 0xA3,0xE4,0xF0,0x22,0x90,0xF7,0x7F,0x74,
+ 0xA0,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x15,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0x44,0xBE,
+ 0xE0,0x70,0x03,0x02,0x72,0x20,0x90,0xF0,
+ 0x2B,0xE0,0x70,0x16,0x90,0xF5,0x3E,0xE0,
+ 0xD3,0x94,0x20,0x40,0x0D,0x90,0xF2,0x17,
+ 0x74,0xFE,0xF0,0x90,0xF7,0x87,0x74,0x01,
+ 0xF0,0x22,0x90,0xF7,0x32,0xE0,0x64,0x01,
+ 0x70,0x2D,0x90,0x42,0x37,0xE0,0xFE,0x90,
+ 0x44,0x9C,0xE0,0xFD,0xD3,0x9E,0x40,0x05,
+ 0xED,0x9E,0xFF,0x80,0x0C,0x90,0x44,0x9C,
+ 0xE0,0xFE,0x90,0x42,0x37,0xE0,0xC3,0x9E,
+ 0xFF,0xEF,0xC3,0x94,0x0A,0x50,0x08,0x90,
+ 0x44,0x9C,0xE0,0x90,0x42,0x37,0xF0,0x90,
+ 0x42,0x37,0xE0,0xFE,0xC3,0x94,0x23,0x50,
+ 0x07,0x90,0xF2,0x17,0x74,0xFE,0xF0,0x22,
+ 0xEE,0xC3,0x94,0x28,0x50,0x13,0x90,0xF2,
+ 0x17,0xE0,0xB4,0xFE,0x05,0xE0,0x64,0xA6,
+ 0x60,0x07,0x90,0xF2,0x17,0x74,0xFE,0xF0,
+ 0x22,0x90,0x42,0x37,0xE0,0xC3,0x94,0x2D,
+ 0x50,0x13,0x90,0xF2,0x17,0xE0,0xB4,0xFE,
+ 0x05,0xE0,0x64,0xA6,0x60,0x07,0x90,0xF2,
+ 0x17,0x74,0xA6,0xF0,0x22,0x90,0x42,0x37,
+ 0xE0,0xFE,0xC3,0x94,0x37,0x50,0x07,0x90,
+ 0xF2,0x17,0x74,0xA6,0xF0,0x22,0xEE,0xC3,
+ 0x94,0x3C,0x50,0x13,0x90,0xF2,0x17,0xE0,
+ 0xB4,0xA6,0x05,0xE0,0x64,0x26,0x60,0x07,
+ 0x90,0xF2,0x17,0x74,0xA6,0xF0,0x22,0x90,
+ 0x42,0x37,0xE0,0xC3,0x94,0x41,0x50,0x13,
+ 0x90,0xF2,0x17,0xE0,0xB4,0xA6,0x05,0xE0,
+ 0x64,0x26,0x60,0x07,0x90,0xF2,0x17,0x74,
+ 0x26,0xF0,0x22,0x90,0x42,0x37,0xE0,0xFE,
+ 0xC3,0x94,0x4B,0x50,0x07,0x90,0xF2,0x17,
+ 0x74,0x26,0xF0,0x22,0xEE,0xC3,0x94,0x50,
+ 0x50,0x13,0x90,0xF2,0x17,0xE0,0xB4,0x26,
+ 0x05,0xE0,0x64,0x25,0x60,0x07,0x90,0xF2,
+ 0x17,0x74,0x26,0xF0,0x22,0x90,0x42,0x37,
+ 0xE0,0xC3,0x94,0x55,0x50,0x13,0x90,0xF2,
+ 0x17,0xE0,0xB4,0x26,0x05,0xE0,0x64,0x25,
+ 0x60,0x07,0x90,0xF2,0x17,0x74,0x25,0xF0,
+ 0x22,0x90,0xF2,0x17,0x74,0x25,0xF0,0x22,
+ 0x90,0xF2,0x17,0x74,0xFE,0xF0,0x22,0xE4,
+ 0x90,0x42,0x2F,0xF0,0x90,0xF7,0x83,0x74,
+ 0xAA,0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF1,
+ 0x75,0x74,0x01,0xF0,0x90,0xF1,0x0A,0xF0,
+ 0x22,0x90,0x43,0x5D,0x74,0x01,0xF0,0xA3,
+ 0x04,0xF0,0xA3,0xF0,0x90,0x44,0x97,0xE0,
+ 0x60,0x04,0x7F,0x00,0x80,0x05,0x90,0x42,
+ 0x23,0xE0,0xFF,0x90,0x43,0x60,0xEF,0xF0,
+ 0x85,0x2C,0x2C,0x85,0x2C,0x2C,0x90,0x43,
+ 0x81,0xE0,0x14,0x70,0x03,0x02,0x72,0xFE,
+ 0x04,0x60,0x03,0x02,0x73,0x30,0x90,0x43,
+ 0x60,0xE0,0x60,0x09,0xE4,0xFD,0x7F,0x02,
+ 0x12,0x5C,0x4D,0x80,0x35,0x90,0x41,0xD5,
+ 0xE0,0xB4,0x01,0x23,0x90,0xF9,0x01,0xE0,
+ 0x90,0x43,0x5F,0xF0,0x90,0xF9,0x00,0xE0,
+ 0xFF,0x90,0x43,0x5D,0xF0,0x60,0x0B,0xA3,
+ 0x74,0x02,0xF0,0xA3,0xE0,0x24,0x02,0xF0,
+ 0x80,0x05,0xE4,0x90,0x43,0x5E,0xF0,0x90,
+ 0x43,0x5E,0xE0,0xFF,0xA3,0xE0,0xFD,0x12,
+ 0x5C,0x4D,0x90,0xF4,0x63,0xE4,0xF0,0x90,
+ 0xF4,0x69,0x74,0xFB,0xF0,0xA3,0xE4,0xF0,
+ 0x90,0xF4,0x6D,0x74,0x05,0xF0,0x7F,0x01,
+ 0x12,0x5C,0x30,0x12,0x6A,0x11,0x90,0x43,
+ 0x60,0xE0,0xFF,0x60,0x06,0x90,0xF9,0x00,
+ 0x74,0x01,0xF0,0x90,0xF5,0xC2,0x74,0x01,
+ 0xF0,0xE4,0xF0,0xEF,0x60,0x0F,0xE4,0x90,
+ 0x42,0x40,0xF0,0x04,0x12,0x77,0x03,0x90,
+ 0x42,0x40,0xE0,0x60,0x32,0x90,0xF1,0x57,
+ 0xE0,0x60,0x08,0x90,0xF1,0x49,0x74,0x01,
+ 0xF0,0xE4,0xF0,0x7D,0xFF,0x7C,0x7F,0xE4,
+ 0xFF,0x12,0x47,0xAD,0x90,0xF1,0x82,0xE0,
+ 0x70,0x15,0x90,0xF1,0x57,0xE0,0x60,0x0F,
+ 0x90,0x42,0x62,0xE0,0xB4,0x01,0x08,0x90,
+ 0xF1,0x7C,0xE0,0x60,0xE7,0x80,0xE5,0xE4,
+ 0x90,0x42,0x9F,0xF0,0x90,0xF1,0xB5,0xE0,
+ 0x90,0x42,0xA0,0xF0,0x90,0xF1,0xB4,0xE0,
+ 0x90,0x42,0xA1,0xF0,0x90,0xF1,0xB3,0xE0,
+ 0x90,0x42,0xA2,0xF0,0x22,0x90,0x43,0x6B,
+ 0x12,0xAA,0x9B,0x00,0x00,0x00,0x00,0x90,
+ 0x43,0x6F,0x12,0xAA,0x9B,0x00,0x00,0x00,
+ 0x00,0xE4,0x90,0x43,0x92,0xF0,0xA3,0xF0,
+ 0x90,0x43,0x94,0xF0,0xA3,0xF0,0x90,0x43,
+ 0x83,0xE0,0xFF,0xA3,0xE0,0x90,0x43,0x61,
+ 0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x43,0x85,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0xD3,0x90,0x43,
+ 0x62,0xE0,0x9F,0x90,0x43,0x61,0xE0,0x9E,
+ 0x40,0x03,0x02,0x74,0xD6,0xA3,0xE0,0x90,
+ 0xF6,0x67,0xF0,0x90,0x43,0x61,0xE0,0x90,
+ 0xF6,0x68,0xF0,0x90,0xF6,0x66,0x74,0x01,
+ 0xF0,0x90,0xF6,0x66,0xE0,0xB4,0x01,0xF9,
+ 0x90,0xF6,0x30,0xE0,0x54,0x0F,0xFB,0xA3,
+ 0xE0,0x75,0xF0,0x10,0xA4,0xFF,0x90,0xF6,
+ 0x30,0xE0,0xFD,0xC4,0x54,0x0F,0x7C,0x00,
+ 0x2F,0xFF,0xEC,0x35,0xF0,0xFE,0xE4,0xFD,
+ 0x90,0x43,0x63,0x12,0xAA,0x8F,0xEB,0xB4,
+ 0x0F,0x16,0x90,0x43,0x63,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x43,0x67,0x12,0xAA,0x8F,0x80,0x25,
+ 0x90,0x43,0x63,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0x24,0x00,0xFF,
+ 0xEE,0x34,0x10,0xFE,0xE4,0x3D,0xFD,0xE4,
+ 0x3C,0xFC,0xA8,0x03,0x12,0xAA,0x7C,0x90,
+ 0x43,0x67,0x12,0xAA,0x8F,0x90,0x43,0x6B,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0x67,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xD3,0x12,0xAA,0x44,0x40,0x48,0x90,
+ 0x43,0x6B,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x43,0x6F,
+ 0x12,0xAA,0x8F,0x90,0x43,0x92,0xE0,0xFF,
+ 0xA3,0xE0,0x90,0x43,0x94,0xCF,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0x43,0x67,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x43,0x6B,0x12,0xAA,0x8F,0x90,0x43,
+ 0x61,0xE0,0xFF,0xA3,0xE0,0x90,0x43,0x92,
+ 0xCF,0xF0,0xA3,0xEF,0xF0,0x80,0x45,0x90,
+ 0x43,0x6F,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x43,0x67,
+ 0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0xD3,0x12,0xAA,0x44,0x40,
+ 0x23,0x90,0x43,0x67,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,
+ 0x43,0x6F,0x12,0xAA,0x8F,0x90,0x43,0x61,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x43,0x94,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x43,0x62,0xE0,
+ 0x04,0xF0,0x70,0x06,0x90,0x43,0x61,0xE0,
+ 0x04,0xF0,0x02,0x73,0x7E,0x22,0x90,0x41,
+ 0xB9,0xE0,0xFE,0x90,0x41,0xB8,0xE0,0x7C,
+ 0x00,0x24,0x00,0xFF,0xEC,0x3E,0x90,0x43,
+ 0x73,0xF0,0xA3,0xEF,0xF0,0xE4,0x7F,0x50,
+ 0x7E,0x0D,0xFD,0x90,0x43,0x8B,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xC3,0x12,0xAA,0x44,0x40,0x24,0x90,
+ 0x43,0x8B,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0x24,0xB0,0xFF,0xEE,
+ 0x34,0xF2,0xFE,0xED,0x34,0xFF,0xFD,0xEC,
+ 0x34,0xFF,0xFC,0x90,0x43,0x87,0x12,0xAA,
+ 0x8F,0x80,0x23,0x90,0x43,0x8B,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xC3,0x74,0x50,0x9B,0xFF,0x74,0x0D,
+ 0x9A,0xFE,0xE4,0x99,0xFD,0xE4,0x98,0xFC,
+ 0x90,0x43,0x87,0x12,0xAA,0x8F,0x90,0x43,
+ 0x73,0xE0,0xFE,0xA3,0xE0,0xFF,0xE4,0xFC,
+ 0xFD,0x90,0x43,0x87,0xE0,0xF8,0xA3,0xE0,
+ 0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0x12,
+ 0xA9,0xD1,0x78,0x09,0x12,0xAA,0x55,0x90,
+ 0x43,0x87,0x12,0xAA,0x8F,0xE4,0x7F,0x50,
+ 0x7E,0x0D,0xFD,0xFC,0x90,0x43,0x8B,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xC3,0x12,0xAA,0x44,0x50,0x22,
+ 0x90,0x43,0x87,0xE0,0xF8,0xA3,0xE0,0xF9,
+ 0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,0xE4,
+ 0x9B,0xFF,0x74,0x40,0x9A,0xFE,0xE4,0x99,
+ 0xFD,0xE4,0x98,0xFC,0x90,0x43,0x87,0x12,
+ 0xAA,0x8F,0x22,0x90,0x41,0xB7,0xE0,0xFE,
+ 0x90,0x41,0xB6,0xE0,0x7C,0x00,0x24,0x00,
+ 0xFF,0xEC,0x3E,0xFE,0xE4,0xFD,0x90,0x43,
+ 0x87,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0x12,0xA9,0xD1,0x78,
+ 0x09,0x12,0xAA,0x55,0x90,0x43,0x8B,0x12,
+ 0xAA,0x8F,0x22,0x74,0xFF,0x90,0x43,0x77,
+ 0xF0,0xA3,0xF0,0x90,0x43,0x83,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0xC3,0x90,0x43,0x86,0xE0,
+ 0x9F,0xFF,0x90,0x43,0x85,0xE0,0x9E,0xFE,
+ 0x90,0x42,0x21,0xE0,0xFD,0x7C,0x00,0x12,
+ 0xA9,0x34,0x90,0x42,0x20,0xE0,0xFD,0xEF,
+ 0xA8,0x05,0x08,0x80,0x05,0xCE,0xC3,0x13,
+ 0xCE,0x13,0xD8,0xF9,0xFF,0x90,0x42,0x22,
+ 0xE0,0x2F,0x90,0x43,0x75,0xF0,0x90,0x43,
+ 0x82,0xE0,0x70,0x16,0x12,0x73,0x4E,0x90,
+ 0x43,0x92,0xE0,0xFE,0xA3,0xE0,0xFF,0xE4,
+ 0xFC,0xFD,0x90,0x43,0x8B,0x12,0xAA,0x8F,
+ 0x80,0x3F,0x90,0x43,0x82,0xE0,0xB4,0x01,
+ 0x16,0x12,0x73,0x4E,0x90,0x43,0x92,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0xE4,0xFC,0xFD,0x90,
+ 0x43,0x8B,0x12,0xAA,0x8F,0x80,0x22,0x90,
+ 0x43,0x85,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,
+ 0x43,0x84,0xE0,0x2F,0xFF,0x90,0x43,0x83,
+ 0xE0,0x3E,0xC3,0x13,0xFE,0xEF,0x13,0xFF,
+ 0xE4,0xFC,0xFD,0x90,0x43,0x8B,0x12,0xAA,
+ 0x8F,0x12,0x74,0xD7,0x90,0x43,0x84,0xE0,
+ 0x24,0xB0,0xF0,0x90,0x43,0x83,0xE0,0x34,
+ 0x02,0xF0,0x90,0x43,0x86,0xE0,0x24,0xB0,
+ 0xF0,0x90,0x43,0x85,0xE0,0x34,0x02,0xF0,
+ 0x90,0x43,0x82,0xE0,0xFF,0x70,0x20,0x90,
+ 0x43,0x75,0xE0,0xA3,0xF0,0x90,0xF1,0x09,
+ 0xF0,0x90,0x43,0x8A,0xE0,0x90,0xF1,0x0E,
+ 0xF0,0x90,0x43,0x89,0xE0,0x90,0xF1,0x0F,
+ 0xF0,0xA3,0x74,0x01,0xF0,0x80,0x34,0xEF,
+ 0x64,0x01,0x70,0x2F,0x90,0x43,0x8F,0xE0,
+ 0x70,0x0A,0x90,0x43,0x75,0xE0,0x90,0xF1,
+ 0x0B,0xF0,0x80,0x0B,0x90,0x43,0x76,0xE0,
+ 0xFF,0xC3,0x13,0x90,0xF1,0x0B,0xF0,0x90,
+ 0x43,0x8A,0xE0,0x90,0xF1,0x12,0xF0,0x90,
+ 0x43,0x89,0xE0,0x90,0xF1,0x13,0xF0,0xA3,
+ 0x74,0x01,0xF0,0x90,0x43,0x82,0xE0,0x04,
+ 0xF0,0x22,0xE4,0x90,0x43,0x8F,0xF0,0x90,
+ 0x43,0x82,0xF0,0x90,0x42,0x25,0xE0,0x90,
+ 0x43,0x7A,0xF0,0x90,0x42,0x26,0xE0,0x90,
+ 0x43,0x79,0xF0,0x90,0xF6,0x25,0xE4,0xF0,
+ 0x90,0x42,0x24,0xE0,0x90,0xF6,0x26,0xF0,
+ 0x90,0xF6,0x2B,0x74,0x02,0xF0,0xA3,0xF0,
+ 0xA3,0xE4,0xF0,0x90,0xF6,0x25,0x04,0xF0,
+ 0x90,0xF6,0x2F,0xF0,0x90,0xF6,0x2F,0xE0,
+ 0xB4,0x01,0xF9,0x90,0xF6,0x32,0xE0,0x90,
+ 0x43,0x91,0xF0,0x90,0xF6,0x33,0xE0,0x90,
+ 0x43,0x90,0xF0,0x90,0x43,0x79,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0xC3,0x90,0x43,0x91,0xE0,
+ 0x9F,0x90,0x43,0x90,0xE0,0x9E,0x40,0x03,
+ 0x02,0x7A,0x09,0x90,0x43,0x79,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0xC3,0x90,0x43,0x91,0xE0,
+ 0x9F,0x90,0x43,0x90,0xE0,0x9E,0x50,0x3A,
+ 0x90,0xF6,0x2C,0xE0,0xB4,0x02,0x05,0x74,
+ 0x01,0xF0,0x80,0x0A,0x90,0xF6,0x2B,0xE0,
+ 0x04,0xF0,0xA3,0x74,0x02,0xF0,0x90,0xF6,
+ 0x2F,0x74,0x01,0xF0,0x90,0xF6,0x2F,0xE0,
+ 0xB4,0x01,0xF9,0x90,0xF6,0x32,0xE0,0x90,
+ 0x43,0x91,0xF0,0x90,0xF6,0x33,0xE0,0x90,
+ 0x43,0x90,0xF0,0x90,0xF6,0x2B,0xE0,0xB4,
+ 0x0F,0xB1,0x90,0x42,0x27,0xE0,0xFF,0x90,
+ 0xF6,0x2B,0xE0,0xC3,0x9F,0x40,0x04,0x7F,
+ 0x01,0x80,0x02,0x7F,0x00,0x90,0x43,0x80,
+ 0xEF,0xF0,0x60,0x5C,0x90,0xF1,0x2F,0xE4,
+ 0xF0,0x90,0xF1,0x34,0x04,0xF0,0x90,0xF1,
+ 0x37,0x74,0x10,0xF0,0xA3,0x74,0x06,0xF0,
+ 0x90,0xF1,0x3B,0x74,0x60,0xF0,0xA3,0x74,
+ 0x1A,0xF0,0x90,0xF1,0x3F,0x74,0xC0,0xF0,
+ 0xA3,0x74,0x2D,0xF0,0x90,0xF1,0x33,0x74,
+ 0x01,0xF0,0x90,0xF1,0x36,0x74,0x0D,0xF0,
+ 0x90,0xF1,0x39,0x74,0x10,0xF0,0xA3,0x74,
+ 0x18,0xF0,0x90,0xF1,0x3D,0x74,0x60,0xF0,
+ 0xA3,0x74,0x1B,0xF0,0x90,0xF1,0x41,0x74,
+ 0x40,0xF0,0xA3,0x74,0x3A,0xF0,0x90,0xF1,
+ 0x35,0x74,0x01,0xF0,0x90,0xF1,0x11,0xF0,
+ 0x90,0xF6,0x2B,0xE0,0x14,0xF0,0xC2,0xAF,
+ 0x90,0xF6,0x2D,0x74,0x01,0xF0,0x04,0x12,
+ 0xAF,0x2B,0x90,0x42,0x40,0xE0,0x60,0x03,
+ 0x02,0x7A,0x26,0x90,0xF6,0x4C,0xE0,0x90,
+ 0x43,0x7C,0xF0,0x90,0xF6,0x4D,0xE0,0x90,
+ 0x43,0x7D,0xF0,0x90,0xF6,0x4E,0xE0,0x90,
+ 0x43,0x7E,0xF0,0x90,0xF6,0x4F,0xE0,0x90,
+ 0x43,0x7F,0xF0,0x90,0x43,0x7D,0xE0,0xFF,
+ 0x90,0x43,0x7C,0xE0,0xFE,0x6F,0x60,0x20,
+ 0x90,0x43,0x7E,0xE0,0xFD,0xEE,0x6D,0x60,
+ 0x17,0xA3,0xE0,0xFC,0xEE,0x6C,0x60,0x10,
+ 0xEF,0x6D,0x60,0x0C,0x90,0x43,0x7D,0xE0,
+ 0x6C,0x60,0x05,0xA3,0xE0,0xB5,0x04,0x06,
+ 0x90,0x43,0x8F,0x74,0x01,0xF0,0x90,0x43,
+ 0x7B,0x74,0x04,0xF0,0x90,0x43,0x7B,0xE0,
+ 0xFF,0xC3,0x94,0x06,0x40,0x03,0x02,0x7A,
+ 0x09,0x90,0xF6,0x4C,0xE0,0x6F,0x70,0x4B,
+ 0x90,0x43,0x8F,0xE0,0xB4,0x01,0x21,0x90,
+ 0x43,0x7B,0xE0,0xB4,0x05,0x1A,0x90,0x43,
+ 0x84,0x74,0xA0,0xF0,0x90,0x43,0x83,0x74,
+ 0x0F,0xF0,0x90,0x43,0x86,0x74,0x9F,0xF0,
+ 0x90,0x43,0x85,0x74,0x1A,0xF0,0x80,0x20,
+ 0x90,0xF6,0x34,0xE0,0x90,0x43,0x84,0xF0,
+ 0x90,0xF6,0x35,0xE0,0x90,0x43,0x83,0xF0,
+ 0x90,0xF6,0x36,0xE0,0x90,0x43,0x86,0xF0,
+ 0x90,0xF6,0x37,0xE0,0x90,0x43,0x85,0xF0,
+ 0x12,0x75,0xE4,0x90,0x43,0x7B,0xE0,0xFF,
+ 0x90,0xF6,0x4D,0xE0,0x6F,0x70,0x48,0x90,
+ 0x43,0x8F,0xE0,0xB4,0x01,0x1E,0xEF,0xB4,
+ 0x05,0x1A,0x90,0x43,0x84,0x74,0xA0,0xF0,
+ 0x90,0x43,0x83,0x74,0x0F,0xF0,0x90,0x43,
+ 0x86,0x74,0x9F,0xF0,0x90,0x43,0x85,0x74,
+ 0x1A,0xF0,0x80,0x20,0x90,0xF6,0x3A,0xE0,
+ 0x90,0x43,0x84,0xF0,0x90,0xF6,0x3B,0xE0,
+ 0x90,0x43,0x83,0xF0,0x90,0xF6,0x3C,0xE0,
+ 0x90,0x43,0x86,0xF0,0x90,0xF6,0x3D,0xE0,
+ 0x90,0x43,0x85,0xF0,0x12,0x75,0xE4,0x90,
+ 0x43,0x7B,0xE0,0xFF,0x90,0xF6,0x4E,0xE0,
+ 0x6F,0x70,0x48,0x90,0x43,0x8F,0xE0,0xB4,
+ 0x01,0x1E,0xEF,0xB4,0x05,0x1A,0x90,0x43,
+ 0x84,0x74,0xA0,0xF0,0x90,0x43,0x83,0x74,
+ 0x0F,0xF0,0x90,0x43,0x86,0x74,0x9F,0xF0,
+ 0x90,0x43,0x85,0x74,0x1A,0xF0,0x80,0x20,
+ 0x90,0xF6,0x40,0xE0,0x90,0x43,0x84,0xF0,
+ 0x90,0xF6,0x41,0xE0,0x90,0x43,0x83,0xF0,
+ 0x90,0xF6,0x42,0xE0,0x90,0x43,0x86,0xF0,
+ 0x90,0xF6,0x43,0xE0,0x90,0x43,0x85,0xF0,
+ 0x12,0x75,0xE4,0x90,0x43,0x7B,0xE0,0xFF,
+ 0x90,0xF6,0x4F,0xE0,0x6F,0x70,0x48,0x90,
+ 0x43,0x8F,0xE0,0xB4,0x01,0x1E,0xEF,0xB4,
+ 0x05,0x1A,0x90,0x43,0x84,0x74,0xA0,0xF0,
+ 0x90,0x43,0x83,0x74,0x0F,0xF0,0x90,0x43,
+ 0x86,0x74,0x9F,0xF0,0x90,0x43,0x85,0x74,
+ 0x1A,0xF0,0x80,0x20,0x90,0xF6,0x46,0xE0,
+ 0x90,0x43,0x84,0xF0,0x90,0xF6,0x47,0xE0,
+ 0x90,0x43,0x83,0xF0,0x90,0xF6,0x48,0xE0,
+ 0x90,0x43,0x86,0xF0,0x90,0xF6,0x49,0xE0,
+ 0x90,0x43,0x85,0xF0,0x12,0x75,0xE4,0x90,
+ 0x43,0x7B,0xE0,0x04,0xF0,0x02,0x78,0xA5,
+ 0x90,0xF6,0x25,0xE4,0xF0,0x90,0x43,0x80,
+ 0xE0,0x70,0x0D,0x90,0x43,0x82,0xE0,0xB4,
+ 0x01,0x06,0x90,0xF1,0x0A,0x74,0x01,0xF0,
+ 0x7F,0x01,0x12,0x6D,0xE8,0x22,0xE4,0xFD,
+ 0x90,0xF5,0xF7,0xE0,0xFE,0x90,0xF5,0xF6,
+ 0xE0,0x7A,0x00,0x24,0x00,0xFF,0xEA,0x3E,
+ 0x90,0x43,0xDE,0xF0,0xA3,0xEF,0xF0,0x90,
+ 0x43,0xDE,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,
+ 0x94,0x40,0xEE,0x94,0x08,0x40,0x0A,0xD3,
+ 0xEF,0x94,0x60,0xEE,0x94,0x08,0x50,0x01,
+ 0x0D,0x90,0x41,0xF3,0xE0,0x64,0x02,0x70,
+ 0x45,0xED,0x64,0x01,0x70,0x40,0x90,0xF9,
+ 0x04,0xE0,0x64,0x01,0x70,0x38,0x90,0xF9,
+ 0x01,0xE0,0x64,0x03,0x70,0x30,0x90,0xF9,
+ 0x00,0xE0,0x64,0x01,0x70,0x28,0x90,0xF9,
+ 0x03,0xE0,0x64,0x02,0x70,0x20,0x90,0x43,
+ 0xE4,0xE0,0xFF,0x70,0x0B,0x90,0xF5,0x6C,
+ 0x74,0xE5,0xF0,0xA3,0x74,0x01,0xF0,0x22,
+ 0xEF,0xB4,0x01,0x0A,0x90,0xF5,0x6C,0x74,
+ 0x1B,0xF0,0xA3,0x74,0x02,0xF0,0x22,0x90,
+ 0x43,0xE2,0x74,0x01,0xF0,0x90,0x41,0xF3,
+ 0xE0,0xFF,0xD3,0x94,0x01,0x40,0x05,0xEF,
+ 0x14,0xFF,0x80,0x02,0x7F,0x01,0x90,0x43,
+ 0xE3,0xEF,0xF0,0x90,0xF6,0x6D,0x74,0x01,
+ 0xF0,0x90,0x41,0xF3,0xE0,0x90,0xF6,0x6C,
+ 0xF0,0x90,0xF6,0x69,0x74,0x01,0xF0,0xE4,
+ 0xF9,0x90,0x41,0xF3,0xE0,0xFE,0xE9,0xC3,
+ 0x9E,0x50,0x47,0xE9,0x25,0xE0,0x24,0xC5,
+ 0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,0xE0,
+ 0x90,0xF6,0x6B,0xF0,0xE9,0x25,0xE0,0x24,
+ 0xC6,0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,
+ 0xE0,0x90,0xF6,0x6A,0xF0,0xE9,0x25,0xE0,
+ 0x24,0xCD,0xF5,0x82,0xE4,0x34,0x43,0xF5,
+ 0x83,0xE0,0x90,0xF6,0x6B,0xF0,0xE9,0x25,
+ 0xE0,0x24,0xCE,0xF5,0x82,0xE4,0x34,0x43,
+ 0xF5,0x83,0xE0,0x90,0xF6,0x6A,0xF0,0x09,
+ 0x80,0xAF,0x90,0x42,0x12,0xE0,0xB4,0x01,
+ 0x46,0x90,0x43,0xBF,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0xC3,0x90,0x43,0xEA,0xE0,0x9D,0x90,
+ 0x43,0xE9,0xE0,0x9C,0x50,0x0E,0x90,0x43,
+ 0xBF,0xE0,0xA3,0xE0,0x90,0x43,0xE9,0xEC,
+ 0xF0,0xA3,0xED,0xF0,0x90,0x43,0xC1,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0xC3,0x90,0x43,0xEC,
+ 0xE0,0x9D,0x90,0x43,0xEB,0xE0,0x9C,0x50,
+ 0x0E,0x90,0x43,0xC1,0xE0,0xA3,0xE0,0x90,
+ 0x43,0xEB,0xEC,0xF0,0xA3,0xED,0xF0,0x79,
+ 0x01,0x90,0x41,0xF3,0xE0,0xFE,0xE9,0xC3,
+ 0x9E,0x50,0x79,0xE9,0x25,0xE0,0x24,0xCD,
+ 0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0x90,0x43,0xCD,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xC3,0xED,0x9B,0xFD,
+ 0xEC,0x9A,0xFC,0xD3,0x90,0x43,0xEA,0xE0,
+ 0x9D,0x90,0x43,0xE9,0xE0,0x9C,0x40,0x06,
+ 0xE9,0x04,0x90,0x43,0xE2,0xF0,0x90,0x43,
+ 0xE0,0xE0,0xFC,0xA3,0xE0,0xFD,0x90,0x43,
+ 0xCE,0xE0,0x2D,0xFD,0x90,0x43,0xCD,0xE0,
+ 0x3C,0xFC,0xC3,0xEE,0x99,0xFF,0x25,0xE0,
+ 0x24,0xCD,0xF5,0x82,0xE4,0x34,0x43,0xF5,
+ 0x83,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,0xED,
+ 0x9B,0xFD,0xEC,0x9A,0xFC,0xD3,0x90,0x43,
+ 0xEC,0xE0,0x9D,0x90,0x43,0xEB,0xE0,0x9C,
+ 0x40,0x06,0xEF,0x14,0x90,0x43,0xE3,0xF0,
+ 0x09,0x02,0x7B,0x7A,0x90,0x43,0xE3,0xE0,
+ 0xFF,0x90,0x43,0xE2,0xE0,0xFE,0xD3,0x9F,
+ 0x40,0x0F,0xEF,0x24,0x01,0xFD,0xE4,0x33,
+ 0xFC,0xEE,0xB5,0x05,0xE7,0xE4,0xB5,0x04,
+ 0xE3,0x90,0x41,0xF3,0xE0,0xFF,0xB4,0x01,
+ 0x0C,0xE4,0x90,0x43,0xE4,0xF0,0x90,0x43,
+ 0xDD,0x74,0x0C,0xF0,0x22,0x90,0x43,0xE3,
+ 0xE0,0xF9,0x24,0x01,0xFD,0xE4,0x33,0xFC,
+ 0x90,0x43,0xE2,0xE0,0xFE,0xB5,0x05,0x1E,
+ 0xE4,0xB5,0x04,0x1A,0xEE,0xB5,0x07,0x07,
+ 0xE4,0x90,0x43,0xE4,0xF0,0x80,0x08,0x90,
+ 0x43,0xE2,0xE0,0x90,0x43,0xE4,0xF0,0x90,
+ 0x43,0xDD,0x74,0x0C,0xF0,0x22,0xE9,0xFF,
+ 0x90,0x43,0xE2,0xE0,0x2F,0xFF,0xE4,0x33,
+ 0xA2,0xE7,0x13,0xEF,0x13,0x90,0x43,0xE5,
+ 0xF0,0x90,0x43,0xDD,0x74,0x06,0xF0,0x22,
+ 0x90,0x43,0xE5,0xE0,0xFE,0x90,0x43,0x9F,
+ 0xF0,0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xA3,0xF0,0xA3,0xF0,0xA3,0xCE,0xF0,0xE4,
+ 0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0x90,0x43,0x9F,0xE0,0x04,0xFF,0x90,0x41,
+ 0xF3,0xE0,0xFE,0x2F,0x8E,0xF0,0x84,0xAF,
+ 0xF0,0x90,0x43,0x9F,0xEF,0xF0,0xA3,0xE0,
+ 0xFD,0xA3,0xE0,0xA3,0xCD,0xF0,0xA3,0xED,
+ 0xF0,0xEF,0x25,0xE0,0x24,0xCD,0xF5,0x82,
+ 0xE4,0x34,0x43,0xF5,0x83,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x90,0x43,0xE0,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xEF,0x2D,0xFF,0xEE,0x3C,0xFE,
+ 0x90,0x43,0xE5,0xE0,0x25,0xE0,0x24,0xCD,
+ 0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xC3,0xEF,0x9B,0xFF,
+ 0xEE,0x9A,0xFE,0xED,0x24,0x01,0xFD,0xE4,
+ 0x3C,0xFC,0x12,0xA9,0x9B,0x90,0x43,0xA0,
+ 0xEC,0xF0,0xA3,0xED,0xF0,0xD3,0x90,0x43,
+ 0xDC,0xE0,0x9D,0xEC,0x64,0x80,0xF8,0x90,
+ 0x43,0xDB,0xE0,0x64,0x80,0x98,0x50,0x80,
+ 0x90,0x41,0xF3,0xE0,0xFD,0x7C,0x00,0x90,
+ 0x43,0xA5,0xE0,0x2D,0xFF,0x90,0x43,0xA4,
+ 0xE0,0x3C,0xCF,0x24,0xFF,0xCF,0x34,0xFF,
+ 0xFE,0x12,0xA9,0x9B,0xEC,0xF0,0xA3,0xED,
+ 0xF0,0xA3,0xE0,0xFF,0xA3,0xE0,0xA3,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x43,0xA5,0xE0,
+ 0x25,0xE0,0xFF,0x90,0x43,0xA4,0xE0,0x33,
+ 0xFE,0x74,0xCD,0x2F,0xF5,0x82,0x74,0x43,
+ 0x3E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x43,0xE5,0xE0,0x25,0xE0,0x24,0xCD,
+ 0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0x90,0x43,0xE0,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xED,0x2B,0xFD,0xEC,
+ 0x3A,0xCD,0xC3,0x9F,0xFF,0xED,0x9E,0xFE,
+ 0xEB,0x24,0x01,0xFD,0xE4,0x3A,0xFC,0x12,
+ 0xA9,0x9B,0x90,0x43,0xA6,0xEC,0xF0,0xA3,
+ 0xED,0xF0,0xD3,0x90,0x43,0xDC,0xE0,0x9D,
+ 0xEC,0x64,0x80,0xF8,0x90,0x43,0xDB,0xE0,
+ 0x64,0x80,0x98,0x40,0x03,0x02,0x7D,0x19,
+ 0x90,0x43,0xA2,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x43,0xA8,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0x9F,0xEE,0x64,0x80,0xF8,0xEC,0x64,0x80,
+ 0x98,0x40,0x08,0xA3,0xEC,0xF0,0xA3,0xED,
+ 0xF0,0x80,0x08,0x90,0x43,0xAA,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x43,0xA0,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0xA6,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xC3,0x9F,0xEE,0x64,0x80,
+ 0xF8,0xEC,0x64,0x80,0x98,0x50,0x2B,0x90,
+ 0x43,0xAC,0xEC,0xF0,0xA3,0xED,0xF0,0x90,
+ 0x41,0xF3,0xE0,0xFD,0x7C,0x00,0x90,0x43,
+ 0xA5,0xE0,0x2D,0xFF,0x90,0x43,0xA4,0xE0,
+ 0x3C,0xCF,0x24,0xFF,0xCF,0x34,0xFF,0xFE,
+ 0x12,0xA9,0x9B,0xEC,0xF0,0xA3,0xED,0xF0,
+ 0x80,0x24,0x90,0x43,0xA0,0xE0,0xFF,0xA3,
+ 0xE0,0x90,0x43,0xAC,0xCF,0xF0,0xA3,0xEF,
+ 0xF0,0x90,0x43,0x9F,0xE0,0x04,0xFF,0x90,
+ 0x41,0xF3,0xE0,0xFE,0x2F,0x8E,0xF0,0x84,
+ 0x90,0x43,0x9F,0xE5,0xF0,0xF0,0x90,0x43,
+ 0xAA,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x90,
+ 0x43,0xAD,0xE0,0x9F,0xFF,0x90,0x43,0xAC,
+ 0xE0,0x9E,0x90,0x43,0xAE,0xF0,0xA3,0xEF,
+ 0xF0,0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0x90,0x43,0x9E,0xF0,0x90,0x43,0xE8,0xE0,
+ 0x75,0xF0,0x04,0xA4,0xFF,0xC3,0x90,0x43,
+ 0xAF,0xE0,0x9F,0xE5,0xF0,0x64,0x80,0xF8,
+ 0x90,0x43,0xAE,0xE0,0x64,0x80,0x98,0x40,
+ 0x03,0x02,0x80,0x4A,0x90,0x43,0xB0,0xE0,
+ 0x60,0x03,0x02,0x80,0x4A,0x90,0x43,0x9E,
+ 0xE0,0x94,0x14,0x40,0x17,0x90,0xF5,0xE7,
+ 0xE4,0xF0,0x90,0xF5,0xE1,0xF0,0xF5,0x0F,
+ 0x7B,0x01,0x7A,0x43,0x79,0x49,0x7D,0x01,
+ 0xFC,0x12,0xAD,0x13,0x90,0x43,0x9E,0xE0,
+ 0x04,0xF0,0x90,0x43,0xAC,0xE0,0xFF,0xA3,
+ 0xE0,0x90,0x43,0xAA,0xCF,0xF0,0xA3,0xEF,
+ 0xF0,0x90,0x43,0x9F,0xE0,0x25,0xE0,0x24,
+ 0xCD,0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x43,0xE0,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xEF,0x2D,0xFF,
+ 0xEE,0x3C,0xFE,0x90,0x43,0xE5,0xE0,0x25,
+ 0xE0,0x24,0xCD,0xF5,0x82,0xE4,0x34,0x43,
+ 0xF5,0x83,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,
+ 0xEF,0x9B,0xFF,0xEE,0x9A,0xFE,0xED,0x24,
+ 0x01,0xFD,0xE4,0x3C,0xFC,0x12,0xA9,0x9B,
+ 0x90,0x43,0xA0,0xEC,0xF0,0xA3,0xED,0xF0,
+ 0x90,0x43,0xA5,0xE0,0x25,0xE0,0xFF,0x90,
+ 0x43,0xA4,0xE0,0x33,0xFE,0x74,0xCD,0x2F,
+ 0xF5,0x82,0x74,0x43,0x3E,0xF5,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x43,0xE5,0xE0,
+ 0x25,0xE0,0x24,0xCD,0xF5,0x82,0xE4,0x34,
+ 0x43,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0x90,0x43,0xE0,0xE0,0xFA,0xA3,0xE0,0xFB,
+ 0xED,0x2B,0xFD,0xEC,0x3A,0xCD,0xC3,0x9F,
+ 0xFF,0xED,0x9E,0xFE,0xEB,0x24,0x01,0xFD,
+ 0xE4,0x3A,0xFC,0x12,0xA9,0x9B,0x90,0x43,
+ 0xA6,0xEC,0xF0,0xA3,0xED,0xF0,0x90,0x43,
+ 0xA0,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x9D,
+ 0xEC,0x64,0x80,0xF8,0xEE,0x64,0x80,0x98,
+ 0x50,0x3F,0x90,0x43,0xAC,0xEE,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0x43,0xB2,0xE0,0x60,0x03,
+ 0x02,0x80,0x17,0x90,0x43,0xE5,0xE0,0xFF,
+ 0x90,0x43,0x9F,0xE0,0xFE,0xB5,0x07,0x04,
+ 0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,0x43,
+ 0xB2,0xEF,0xF0,0x70,0x69,0xEE,0x04,0xFF,
+ 0x90,0x41,0xF3,0xE0,0xFE,0x2F,0x8E,0xF0,
+ 0x84,0x90,0x43,0x9F,0xE5,0xF0,0xF0,0x80,
+ 0x55,0x90,0x43,0xA6,0xE0,0xFF,0xA3,0xE0,
+ 0x90,0x43,0xAC,0xCF,0xF0,0xA3,0xEF,0xF0,
+ 0x90,0x43,0xB1,0xE0,0x70,0x40,0x90,0x43,
+ 0xE5,0xE0,0xFF,0x7E,0x00,0x90,0x43,0xA4,
+ 0xE0,0xFA,0xA3,0xE0,0xFB,0xB5,0x07,0x08,
+ 0xEE,0xB5,0x02,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0x43,0xB1,0xEF,0xF0,0x70,
+ 0x1D,0x90,0x41,0xF3,0xE0,0xFD,0x7C,0x00,
+ 0x2B,0xFF,0xEC,0x3A,0xCF,0x24,0xFF,0xCF,
+ 0x34,0xFF,0xFE,0x12,0xA9,0x9B,0x90,0x43,
+ 0xA4,0xEC,0xF0,0xA3,0xED,0xF0,0x12,0xAF,
+ 0x9F,0x05,0x2C,0x85,0x2C,0x2C,0x05,0x2C,
+ 0x85,0x2C,0x2C,0x05,0x2C,0x85,0x2C,0x2C,
+ 0x05,0x2C,0x85,0x2C,0x2C,0x05,0x2C,0x85,
+ 0x2C,0x2C,0x05,0x2C,0x85,0x2C,0x2C,0x05,
+ 0x2C,0x85,0x2C,0x2C,0x05,0x2C,0x85,0x2C,
+ 0x2C,0x05,0x2C,0x85,0x2C,0x2C,0x02,0x7E,
+ 0x6D,0x90,0x43,0xB0,0xE0,0x60,0x0F,0x90,
+ 0x43,0xDD,0x74,0x07,0xF0,0x90,0x43,0xED,
+ 0x74,0x01,0xF0,0x02,0x81,0x04,0x90,0x43,
+ 0xE8,0xE0,0xF9,0x25,0xE0,0xFF,0xE4,0x33,
+ 0xFE,0x90,0x43,0xDB,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0x90,0x43,0xAC,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xC3,0x9D,0xFD,0xEA,0x9C,0xFC,0xC3,
+ 0xED,0x9F,0xEE,0x64,0x80,0xF8,0xEC,0x64,
+ 0x80,0x98,0x50,0x22,0xE9,0x75,0xF0,0x02,
+ 0xA4,0xFF,0x90,0x43,0xDC,0xE0,0x2F,0xFF,
+ 0x90,0x43,0xDB,0xE0,0x35,0xF0,0xFE,0xC3,
+ 0xEB,0x9F,0xFF,0xEA,0x9E,0x90,0x43,0xE6,
+ 0xF0,0xA3,0xEF,0xF0,0x80,0x55,0xE9,0x25,
+ 0xE0,0xFF,0xE4,0x33,0xFE,0x90,0x43,0xAA,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0x90,0x43,0xDB,
+ 0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,0x9D,0xFD,
+ 0xEA,0x9C,0xFC,0xC3,0xED,0x9F,0xEE,0x64,
+ 0x80,0xF8,0xEC,0x64,0x80,0x98,0x50,0x24,
+ 0xE9,0x25,0xE0,0xFF,0xE4,0x33,0xFE,0xEB,
+ 0x2F,0xFF,0xEA,0x3E,0xFE,0x90,0x43,0xAA,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,0xEF,0x9D,
+ 0xFF,0xEE,0x9C,0x90,0x43,0xE6,0xF0,0xA3,
+ 0xEF,0xF0,0x80,0x07,0xE4,0x90,0x43,0xE6,
+ 0xF0,0xA3,0xF0,0x90,0x43,0xED,0x74,0x03,
+ 0xF0,0x90,0xF5,0xE6,0xF0,0x90,0x43,0xE6,
+ 0xE0,0xA2,0xE7,0x13,0xF0,0xA3,0xE0,0x13,
+ 0xF0,0x90,0x43,0xDD,0x74,0x07,0xF0,0x22,
+ 0xAD,0x07,0x90,0x43,0xEF,0xE0,0x90,0xF5,
+ 0xDB,0xF0,0x90,0x43,0xEE,0xE0,0xFF,0x33,
+ 0x95,0xE0,0x90,0xF5,0xDC,0xEF,0xF0,0x90,
+ 0x43,0xE4,0xE0,0x90,0xF5,0xFA,0xF0,0x90,
+ 0xF5,0xE8,0xE4,0xF0,0x90,0x43,0xDD,0xE0,
+ 0x90,0xF5,0xE1,0xF0,0x90,0xF5,0xE8,0xE0,
+ 0xB4,0x01,0xF9,0x90,0xF5,0xE8,0xE4,0xF0,
+ 0x90,0xF5,0xE1,0x74,0x0D,0xF0,0x90,0xF5,
+ 0xE8,0xE0,0xB4,0x01,0xF9,0x90,0x43,0xDD,
+ 0x74,0x0E,0xF0,0x90,0xF5,0xDD,0xE0,0x90,
+ 0x43,0xB4,0xF0,0x90,0xF5,0xDE,0xE0,0x90,
+ 0x43,0xB3,0xF0,0xE0,0xC3,0x94,0x20,0x40,
+ 0x04,0xE0,0x24,0xC0,0xF0,0xED,0xB4,0x01,
+ 0x1C,0x90,0x43,0xF0,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0x90,0x43,0xB4,0xE0,0x2F,0xFF,0x90,
+ 0x43,0xB3,0xE0,0x3E,0x90,0x43,0xF2,0xF0,
+ 0xA3,0xEF,0xF0,0x80,0x1F,0x90,0x43,0xB3,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x43,0xF2,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0xF5,0xFB,0xE0,
+ 0x90,0x43,0xF1,0xF0,0x90,0xF5,0xFC,0xE0,
+ 0x90,0x43,0xF0,0xF0,0x90,0x43,0xF3,0xE0,
+ 0x90,0xF4,0x66,0xF0,0x90,0x43,0xF2,0xE0,
+ 0x90,0xF4,0x67,0xF0,0x90,0xF6,0x08,0xE0,
+ 0x90,0xFD,0x0F,0xF0,0x90,0xF6,0x08,0xE0,
+ 0xFF,0x13,0x13,0x13,0x54,0x1F,0x90,0xFD,
+ 0xA1,0xF0,0x90,0xF5,0xFC,0xE0,0xFE,0x90,
+ 0xF5,0xFB,0xE0,0x7C,0x00,0x24,0x00,0xFF,
+ 0xEC,0x3E,0xAD,0x07,0xFC,0x90,0xF5,0x3D,
+ 0xE0,0xFE,0x90,0xF5,0x3C,0xE0,0x7A,0x00,
+ 0x24,0x00,0xFF,0xEA,0x3E,0xFE,0xEF,0x2D,
+ 0xFD,0xEE,0x3C,0xFF,0x33,0x95,0xE0,0xA3,
+ 0xEF,0xF0,0xAF,0x05,0xEF,0x90,0xF5,0x3C,
+ 0xF0,0x22,0x90,0x43,0xED,0xE0,0xF9,0xB4,
+ 0x01,0x37,0x90,0x43,0xE5,0xE0,0x25,0xE0,
+ 0x24,0xCD,0xF5,0x82,0xE4,0x34,0x43,0xF5,
+ 0x83,0xE0,0xFC,0xA3,0xE0,0xFD,0x90,0x43,
+ 0xEE,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,0xED,
+ 0x9B,0xFD,0xEC,0x9A,0xFC,0x90,0x43,0xE7,
+ 0xE0,0x2D,0xFE,0x90,0x43,0xE6,0xE0,0x3C,
+ 0x90,0x43,0xB5,0xF0,0xA3,0xCE,0xF0,0x80,
+ 0x72,0xE9,0xB4,0x02,0x32,0x90,0x43,0xDB,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x43,0xE1,
+ 0xE0,0x2F,0xFF,0x90,0x43,0xE0,0xE0,0x3E,
+ 0xFE,0x90,0x43,0xE6,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0xC3,0xEF,0x9D,0xFF,0xEE,0x9C,0xFE,
+ 0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0x90,0x43,
+ 0xB5,0xF0,0xA3,0xEF,0xF0,0x80,0x3C,0x90,
+ 0x43,0xED,0xE0,0xB4,0x03,0x35,0x90,0x43,
+ 0xE5,0xE0,0x25,0xE0,0x24,0xCD,0xF5,0x82,
+ 0xE4,0x34,0x43,0xF5,0x83,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x90,0x43,0xEE,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xC3,0xEF,0x9D,0xFF,0xEE,0x9C,
+ 0xFE,0x90,0x43,0xE7,0xE0,0x2F,0xFF,0x90,
+ 0x43,0xE6,0xE0,0x3E,0x90,0x43,0xB5,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x43,0xB5,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0xEF,0xE0,0x2F,
+ 0xF0,0x90,0x43,0xEE,0xE0,0x3E,0xF0,0x90,
+ 0x43,0xB6,0xE0,0x90,0xF4,0x66,0xF0,0x90,
+ 0x43,0xB5,0xE0,0x90,0xF4,0x67,0xF0,0x90,
+ 0x43,0xE7,0xE0,0x90,0xF5,0xF4,0xF0,0x90,
+ 0x43,0xE6,0xE0,0x90,0xF5,0xF5,0xF0,0x90,
+ 0x43,0xDD,0x74,0x08,0xF0,0x22,0x90,0xF5,
+ 0xEB,0xE0,0x90,0x43,0xB8,0xF0,0x90,0xF5,
+ 0xEC,0xE0,0x90,0x43,0xB7,0xF0,0x90,0xF5,
+ 0xED,0xE0,0x90,0x43,0xBA,0xF0,0x90,0xF5,
+ 0xEE,0xE0,0x90,0x43,0xB9,0xF0,0x90,0x43,
+ 0xED,0xE0,0xFF,0xB4,0x01,0x0A,0x74,0x02,
+ 0xF0,0x90,0x43,0xDD,0x74,0x07,0xF0,0x22,
+ 0xEF,0x64,0x02,0x60,0x08,0xEF,0x64,0x03,
+ 0x60,0x03,0x02,0x83,0xDC,0x90,0x43,0xE3,
+ 0xE0,0xFF,0x90,0x43,0xE2,0xE0,0xFE,0x6F,
+ 0x70,0x2C,0x90,0xF5,0xE9,0xE0,0x70,0x07,
+ 0x90,0x43,0xE4,0xEE,0xF0,0x80,0x18,0x90,
+ 0x41,0xF3,0xE0,0x14,0xB5,0x06,0x07,0xE4,
+ 0x90,0x43,0xE4,0xF0,0x80,0x09,0x90,0x43,
+ 0xE2,0xE0,0x04,0x90,0x43,0xE4,0xF0,0x90,
+ 0x43,0xDD,0x74,0x0C,0xF0,0x22,0x90,0xF5,
+ 0xE9,0xE0,0x70,0x18,0x90,0x43,0xE2,0xE0,
+ 0xFF,0x90,0x43,0xE5,0xE0,0xB5,0x07,0x0C,
+ 0x90,0x43,0xE4,0xEF,0xF0,0x90,0x43,0xDD,
+ 0x74,0x0C,0xF0,0x22,0x90,0xF5,0xE9,0xE0,
+ 0x70,0x0B,0x90,0x43,0xE5,0xE0,0x14,0x90,
+ 0x43,0xE3,0xF0,0x80,0x09,0x90,0x43,0xE5,
+ 0xE0,0x04,0x90,0x43,0xE2,0xF0,0x90,0x43,
+ 0xE3,0xE0,0xFF,0x90,0x43,0xE2,0xE0,0x2F,
+ 0xFF,0xC3,0x13,0x90,0x43,0xE5,0xF0,0x90,
+ 0x43,0xED,0x74,0x03,0xF0,0x90,0x43,0xDD,
+ 0x74,0x06,0xF0,0x22,0x90,0x43,0xBC,0xEF,
+ 0xF0,0xC2,0xEB,0xE4,0x90,0x43,0xE9,0xF0,
+ 0xA3,0xF0,0x90,0xF9,0x01,0xE0,0xD3,0x94,
+ 0x01,0x50,0x0A,0x90,0x43,0xE9,0x74,0x05,
+ 0xF0,0xA3,0x74,0x55,0xF0,0x90,0xF9,0x01,
+ 0xE0,0x24,0x06,0xFF,0x74,0x01,0x7E,0x00,
+ 0xA8,0x07,0x08,0x80,0x05,0xC3,0x33,0xCE,
+ 0x33,0xCE,0xD8,0xF9,0x90,0x43,0xDC,0xF0,
+ 0xEE,0x90,0x43,0xDB,0xF0,0x90,0xF9,0x00,
+ 0xE0,0x70,0x34,0x90,0x43,0xE0,0x74,0x02,
+ 0xF0,0xA3,0x74,0xAB,0xF0,0x90,0x43,0xE8,
+ 0x74,0x28,0xF0,0x90,0x43,0xBE,0x74,0x05,
+ 0xF0,0x90,0xF5,0xEF,0x74,0x28,0xF0,0x90,
+ 0x43,0xE9,0xE0,0xFE,0xA3,0xE0,0x78,0x02,
+ 0xCE,0xC3,0x13,0xCE,0x13,0xD8,0xF9,0xF0,
+ 0xEE,0x90,0x43,0xE9,0xF0,0x80,0x6F,0x90,
+ 0xF9,0x00,0xE0,0xB4,0x01,0x34,0x90,0x43,
+ 0xE0,0x74,0x0A,0xF0,0xA3,0x74,0xAB,0xF0,
+ 0x90,0x43,0xE8,0x74,0x50,0xF0,0x90,0x43,
+ 0xBE,0x74,0x12,0xF0,0x90,0xF5,0xEF,0x74,
+ 0x50,0xF0,0x90,0x43,0xDB,0xE0,0xFE,0xA3,
+ 0xE0,0x78,0x02,0xC3,0x33,0xCE,0x33,0xCE,
+ 0xD8,0xF9,0xF0,0xEE,0x90,0x43,0xDB,0xF0,
+ 0x80,0x34,0x90,0x43,0xE0,0x74,0x05,0xF0,
+ 0xA3,0x74,0x55,0xF0,0x90,0x43,0xE8,0x74,
+ 0x3C,0xF0,0x90,0x43,0xBE,0x74,0x09,0xF0,
+ 0x90,0xF5,0xEF,0x74,0x3C,0xF0,0x90,0x43,
+ 0xDC,0xE0,0x25,0xE0,0xF0,0x90,0x43,0xDB,
+ 0xE0,0x33,0xF0,0x90,0x43,0xE9,0xE0,0xC3,
+ 0x13,0xF0,0xA3,0xE0,0x13,0xF0,0x90,0x43,
+ 0xE9,0xE0,0xFF,0xA3,0xE0,0xA3,0xCF,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x43,0xE8,0xE0,0x90,
+ 0xF5,0xE2,0xF0,0x90,0x43,0xDB,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0xE1,0xE0,0x2F,
+ 0xFF,0x90,0x43,0xE0,0xE0,0x3E,0xA2,0xE7,
+ 0x13,0xFE,0xEF,0x13,0xFF,0x90,0xF5,0xFE,
+ 0xF0,0xEE,0xA3,0xF0,0xE4,0x90,0x43,0xEE,
+ 0xF0,0xA3,0xF0,0x90,0xF5,0x3B,0xF0,0x90,
+ 0xF5,0xBB,0xF0,0x90,0xF5,0xB1,0xF0,0x90,
+ 0xF5,0xC8,0xF0,0x90,0xF5,0xF8,0x04,0xF0,
+ 0x90,0xF5,0xDF,0x74,0xFB,0xF0,0xA3,0xE4,
+ 0xF0,0x90,0xF5,0xE3,0x74,0x09,0xF0,0xA3,
+ 0x74,0x01,0xF0,0xA3,0xF0,0x90,0xF5,0xFD,
+ 0xF0,0x90,0xF6,0x6D,0xE4,0xF0,0x90,0xF5,
+ 0xF9,0x74,0x04,0xF0,0x90,0x42,0x12,0xE0,
+ 0xB4,0x01,0x1B,0x90,0x43,0xBC,0xE0,0xB4,
+ 0x01,0x14,0x90,0xF5,0xE3,0x74,0x01,0xF0,
+ 0x90,0xF5,0xF9,0xF0,0x90,0xF5,0xFE,0x74,
+ 0xFF,0xF0,0xA3,0x74,0x0F,0xF0,0xE4,0x90,
+ 0x43,0xBD,0xF0,0x90,0x43,0xC3,0xE0,0x64,
+ 0x01,0x70,0x3E,0x90,0x41,0xF3,0xF0,0x90,
+ 0x43,0xDA,0xF0,0x90,0x43,0xC4,0xF0,0x90,
+ 0x43,0xD8,0xF0,0x90,0x43,0xD6,0xF0,0x90,
+ 0xF0,0x2B,0xE0,0x60,0x12,0x90,0x42,0x5B,
+ 0xE0,0x90,0x43,0xD9,0xF0,0x90,0x42,0x57,
+ 0xE0,0x90,0x43,0xD7,0xF0,0x80,0x1E,0x90,
+ 0x42,0x16,0xE0,0x90,0x43,0xD9,0xF0,0x90,
+ 0x42,0x13,0xE0,0x90,0x43,0xD7,0xF0,0x80,
+ 0x0C,0x90,0x43,0xD7,0xE0,0x14,0xA3,0xF0,
+ 0xE4,0x90,0x43,0x42,0xF0,0x90,0x43,0xD7,
+ 0xE0,0xFF,0xA3,0xE0,0xC3,0x9F,0x50,0x5C,
+ 0x90,0xF5,0xE7,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0x90,0xF5,0xE1,0xE4,0xF0,0x90,0xF5,0xE7,
+ 0x04,0xF0,0x90,0xF5,0xE8,0xE0,0xB4,0x01,
+ 0xF9,0x90,0xF5,0xE1,0xE0,0x90,0x43,0xDD,
+ 0xF0,0xE0,0x64,0x05,0x70,0x2E,0x74,0x06,
+ 0xF0,0x90,0xF5,0xEA,0xE0,0x90,0x43,0xD5,
+ 0xF0,0x12,0xAD,0x97,0x85,0x2C,0x2C,0x85,
+ 0x2C,0x2C,0x05,0x2C,0x85,0x2C,0x2C,0x90,
+ 0x43,0xDD,0xE0,0x90,0xF5,0xE1,0xF0,0x90,
+ 0x43,0xBC,0xE0,0xFF,0x90,0x43,0xBE,0xE0,
+ 0xFD,0x12,0x8B,0x5F,0x90,0x43,0xD8,0xE0,
+ 0x04,0xF0,0x80,0x99,0x12,0x7A,0xA8,0xE4,
+ 0x90,0x43,0xC3,0xF0,0x90,0x43,0xDD,0xE0,
+ 0xFF,0x64,0x0E,0x60,0x47,0xEF,0xB4,0x06,
+ 0x05,0x12,0x7C,0x79,0x80,0xEE,0x90,0x43,
+ 0xDD,0xE0,0x64,0x07,0x70,0x22,0x12,0x82,
+ 0x23,0x90,0xF5,0xE8,0x74,0x01,0xF0,0x90,
+ 0x43,0xDD,0xE0,0x90,0xF5,0xE1,0xF0,0x90,
+ 0xF5,0xE8,0xE0,0xB4,0x01,0xF9,0x90,0xF5,
+ 0xE6,0xE4,0xF0,0x12,0x83,0x0F,0x80,0xC4,
+ 0x90,0x43,0xDD,0xE0,0xB4,0x0C,0xBD,0x90,
+ 0x43,0xBC,0xE0,0xFF,0x12,0x81,0x21,0x12,
+ 0x7A,0x27,0x80,0xB0,0x90,0xF5,0xE7,0xE4,
+ 0xF0,0x90,0xF5,0xE1,0xF0,0xD2,0xEB,0x22,
+ 0x90,0x43,0xFF,0xE0,0xFE,0xA3,0xE0,0xA8,
+ 0x07,0x08,0x80,0x05,0xCE,0xC3,0x13,0xCE,
+ 0x13,0xD8,0xF9,0xF0,0xEE,0x90,0x43,0xFF,
+ 0xF0,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x41,
+ 0xC4,0xE0,0xFD,0x7C,0x00,0x12,0xA9,0x46,
+ 0x90,0x43,0xFF,0xEE,0xF0,0xA3,0xEF,0xF0,
+ 0x22,0xAA,0x07,0xEA,0x70,0x10,0x90,0xF7,
+ 0x86,0x04,0xF0,0xA3,0xF0,0xE4,0x90,0x43,
+ 0xFE,0xF0,0x90,0x43,0xFC,0xF0,0xEA,0xB4,
+ 0x01,0x13,0x90,0x43,0xFC,0x74,0x01,0xF0,
+ 0x90,0xF7,0x87,0xF0,0x90,0xF7,0x87,0xE0,
+ 0x60,0xFA,0xE4,0xF5,0x2E,0xEA,0x64,0x01,
+ 0x60,0x24,0x90,0xF7,0x86,0xE0,0x70,0x09,
+ 0x90,0xF7,0x31,0xE0,0x70,0x03,0x02,0x87,
+ 0xAC,0x90,0x43,0xF8,0xE0,0xC3,0x94,0x01,
+ 0x50,0x03,0x02,0x87,0xAC,0x90,0xF7,0x87,
+ 0xE0,0x70,0x03,0x02,0x87,0xAC,0x05,0x2E,
+ 0x05,0x2C,0x05,0x2C,0x90,0xF9,0x00,0xE0,
+ 0x70,0x04,0x7B,0x04,0x80,0x0D,0x90,0xF9,
+ 0x00,0xE0,0xB4,0x01,0x04,0x7B,0x06,0x80,
+ 0x02,0x7B,0x05,0x90,0xF9,0x03,0xE0,0xFF,
+ 0xC3,0xEB,0x9F,0xFB,0x90,0xF7,0x92,0xE0,
+ 0x90,0x41,0xC1,0xF0,0x90,0xF7,0x93,0xE0,
+ 0x90,0x41,0xC2,0xF0,0x90,0xF7,0x94,0xE0,
+ 0x90,0x41,0xC3,0xF0,0x90,0xF7,0x8B,0xE0,
+ 0x90,0x41,0xC4,0xF0,0x90,0xF7,0x97,0xE0,
+ 0x90,0x43,0xF9,0xF0,0x90,0xF7,0x96,0xE0,
+ 0x90,0x43,0xFA,0xF0,0x90,0xF7,0x95,0xE0,
+ 0x90,0x43,0xFB,0xF0,0x90,0x43,0xF9,0xE0,
+ 0x90,0x43,0xFF,0xF0,0x90,0x43,0xFA,0xE0,
+ 0x90,0x44,0x00,0xF0,0xAF,0x03,0x12,0x86,
+ 0x81,0x90,0x44,0x00,0xE0,0x90,0x42,0x37,
+ 0xF0,0x90,0x41,0xC3,0xE0,0x90,0x43,0xFF,
+ 0xF0,0x90,0x41,0xC2,0xE0,0x90,0x44,0x00,
+ 0xF0,0xAF,0x03,0x12,0x86,0x81,0x90,0x44,
+ 0x00,0xE0,0x90,0x42,0x36,0xF0,0x90,0xF7,
+ 0x86,0x74,0x01,0xF0,0xA3,0xF0,0xE4,0x90,
+ 0x43,0xFE,0xF0,0xEA,0xB4,0x01,0x05,0xE4,
+ 0x90,0x43,0xFC,0xF0,0x22,0x90,0xF9,0x03,
+ 0xE0,0x90,0x41,0xC5,0xF0,0x90,0xF9,0x00,
+ 0xE0,0x90,0x41,0xC6,0xF0,0x90,0x43,0xFE,
+ 0xE0,0x04,0xF0,0xE0,0xC3,0x94,0x32,0x40,
+ 0x05,0xE4,0xFF,0x12,0x86,0xB2,0x90,0x43,
+ 0xFC,0xE0,0x70,0x05,0x7F,0x02,0x12,0x86,
+ 0xB2,0x90,0x43,0xFD,0xE0,0x04,0xF0,0xE0,
+ 0xC3,0x94,0x32,0x40,0x0B,0x90,0xF7,0x0D,
+ 0x74,0x01,0xF0,0xE4,0x90,0x43,0xFD,0xF0,
+ 0x90,0xF7,0x0D,0xE0,0x60,0x5A,0x90,0xF7,
+ 0x05,0xE0,0x90,0x41,0xC7,0xF0,0x90,0xF7,
+ 0x06,0xE0,0x90,0x41,0xC8,0xF0,0x90,0xF7,
+ 0x02,0xE0,0x90,0x41,0xC9,0xF0,0x90,0xF7,
+ 0x03,0xE0,0x90,0x41,0xCA,0xF0,0x90,0xF7,
+ 0x04,0xE0,0x90,0x41,0xCB,0xF0,0x90,0xF7,
+ 0x00,0xE0,0x90,0x41,0xCC,0xF0,0x90,0xF7,
+ 0x01,0xE0,0x90,0x41,0xCD,0xF0,0x90,0xF7,
+ 0x0D,0x74,0x01,0xF0,0xE4,0x90,0x43,0xFD,
+ 0xF0,0x90,0x41,0xD3,0xE0,0x04,0xF0,0xE0,
+ 0xFF,0x90,0x41,0xFA,0xE0,0xFE,0xEF,0x8E,
+ 0xF0,0x84,0x90,0x41,0xD3,0xE5,0xF0,0xF0,
+ 0x90,0xF7,0x00,0xE0,0xFF,0x90,0x41,0xCF,
+ 0xE0,0xFE,0xB5,0x07,0x0C,0x90,0xF7,0x01,
+ 0xE0,0xFF,0x90,0x41,0xD0,0xE0,0x6F,0x60,
+ 0x18,0x90,0xF7,0x00,0xEE,0xF0,0x90,0x41,
+ 0xD0,0xE0,0x90,0xF7,0x01,0xF0,0x90,0xF7,
+ 0x0C,0x74,0x01,0xF0,0xE4,0xF0,0xA3,0x04,
+ 0xF0,0x22,0x22,0x7F,0x00,0x22,0x90,0x42,
+ 0x5F,0xE0,0x04,0xF0,0x70,0x06,0x90,0x42,
+ 0x5E,0xE0,0x04,0xF0,0x90,0x42,0x48,0xE0,
+ 0x70,0x0B,0x90,0x42,0x5D,0xE0,0x70,0x05,
+ 0x12,0x9F,0x23,0x80,0x09,0x90,0xF0,0x01,
+ 0xE0,0x60,0x03,0x12,0xA4,0x86,0x90,0x42,
+ 0x5E,0xE0,0xFE,0xA3,0xE0,0xFF,0x7C,0x00,
+ 0x7D,0x0A,0x12,0xA9,0x46,0xED,0x4C,0x70,
+ 0x13,0x90,0x43,0x40,0xE0,0x60,0x0D,0x90,
+ 0x41,0xDB,0xE0,0xB4,0x23,0x03,0x12,0x88,
+ 0x8B,0x12,0xA6,0x11,0x90,0xF9,0x99,0xE0,
+ 0x90,0x41,0xD2,0xF0,0x90,0x42,0x46,0xE0,
+ 0x70,0x06,0x90,0x42,0x47,0xE0,0x60,0x04,
+ 0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,0x41,
+ 0xD1,0xEF,0xF0,0x90,0x42,0x5E,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x7C,0x00,0x7D,0x32,0x12,
+ 0xA9,0x46,0xED,0x4C,0x70,0x0E,0x12,0x87,
+ 0xB6,0x12,0x8A,0x51,0x90,0x44,0xA0,0xE0,
+ 0x60,0x02,0x14,0xF0,0x12,0x88,0x8B,0xC2,
+ 0xCF,0x22,0xC2,0xAF,0x90,0xFB,0x88,0xE0,
+ 0x64,0x01,0x60,0xF8,0x90,0xFB,0x96,0xEF,
+ 0xF0,0x12,0x9D,0x24,0x90,0xFB,0x88,0xE0,
+ 0x70,0xFA,0xD2,0xAF,0x04,0x7F,0x01,0x22,
+ 0x90,0x43,0x3F,0xE0,0x70,0x03,0x02,0x8A,
+ 0x07,0xC2,0xE9,0xE4,0x90,0x44,0x98,0xF0,
+ 0x90,0xF7,0x3C,0xE0,0xB4,0x01,0x04,0xC2,
+ 0xEA,0x80,0x02,0xD2,0xEA,0x90,0xF7,0x0E,
+ 0xE0,0xB4,0x01,0x20,0x90,0x43,0x3B,0xE0,
+ 0xC3,0x94,0x02,0x50,0x11,0xE5,0x0F,0xB4,
+ 0x09,0x0C,0x12,0x4E,0x5A,0x90,0x43,0x3B,
+ 0xE0,0x04,0xF0,0x02,0x8A,0x07,0x12,0x8A,
+ 0x16,0x02,0x8A,0x07,0x90,0xF5,0x54,0xE0,
+ 0x64,0x01,0x70,0x7A,0x90,0xF0,0x2B,0xE0,
+ 0x70,0x12,0x90,0x42,0x38,0xE0,0xB4,0x01,
+ 0x0B,0x90,0xF2,0x17,0x74,0xFE,0xF0,0xE4,
+ 0x90,0x42,0x37,0xF0,0x90,0x44,0x9B,0xE0,
+ 0xC3,0x94,0x02,0x50,0x18,0xE5,0x0F,0xB4,
+ 0x09,0x13,0x12,0x4E,0x5A,0x90,0x44,0x9A,
+ 0xE0,0x90,0xF5,0x52,0xF0,0x90,0x44,0x9B,
+ 0xE0,0x04,0xF0,0x80,0x41,0x90,0x43,0x3C,
+ 0x74,0x02,0xF0,0x90,0xF7,0x0E,0xE0,0x64,
+ 0x01,0x60,0x07,0x90,0xF7,0x40,0xE0,0xB4,
+ 0x01,0x05,0x12,0x8A,0x16,0x80,0x27,0x90,
+ 0xF7,0x31,0xE0,0x60,0x0A,0xE4,0xFF,0x12,
+ 0x9C,0x29,0x12,0x48,0x8D,0x80,0x0C,0x90,
+ 0xF7,0x3C,0xE0,0x70,0x03,0x12,0x48,0x8D,
+ 0x12,0x72,0x28,0x05,0x2C,0xE4,0xF5,0x2D,
+ 0x12,0x4E,0x2A,0x12,0x4E,0x3B,0x12,0x4E,
+ 0x2A,0x90,0x44,0x9A,0xE0,0x90,0xF5,0x52,
+ 0xF0,0x53,0x91,0x7F,0x22,0x90,0xF7,0x32,
+ 0xE0,0x60,0x19,0x90,0xFB,0x88,0xE0,0x70,
+ 0xFA,0x90,0xFB,0x96,0x74,0x0D,0xF0,0x90,
+ 0xFB,0x88,0x74,0x01,0xF0,0xE4,0x90,0x44,
+ 0x97,0xF0,0x05,0x2C,0xE4,0x90,0x42,0x47,
+ 0xF0,0x90,0x42,0x46,0xF0,0x12,0x6E,0x75,
+ 0x12,0x48,0xAC,0x12,0x4E,0x2A,0x90,0x43,
+ 0x3C,0x74,0x01,0xF0,0x12,0x4E,0x3B,0x22,
+ 0x90,0x44,0x02,0xE0,0x54,0x01,0xF0,0xA2,
+ 0xAF,0xE4,0x33,0x90,0x44,0x01,0xF0,0xC2,
+ 0xAF,0x90,0x44,0x02,0xE0,0x70,0x27,0x90,
+ 0xF7,0x02,0xE0,0x90,0xFB,0x97,0xF0,0x90,
+ 0xF7,0x03,0xE0,0x90,0xFB,0x98,0xF0,0x90,
+ 0xF7,0x04,0xE0,0x90,0xFB,0x99,0xF0,0x90,
+ 0xF9,0x99,0xE0,0x90,0xFB,0x9A,0xF0,0x7F,
+ 0x04,0x12,0x89,0x23,0x80,0x41,0x90,0x44,
+ 0x02,0xE0,0x64,0x01,0x70,0x39,0x90,0xFB,
+ 0x97,0xE5,0x12,0xF0,0x90,0x42,0x5C,0xE0,
+ 0x90,0xFB,0x98,0xF0,0x90,0x42,0x30,0xE0,
+ 0x90,0xFB,0x9B,0xF0,0x90,0x42,0x31,0xE0,
+ 0x90,0xFB,0x9C,0xF0,0x90,0x42,0x48,0xE0,
+ 0x70,0x05,0x12,0x8B,0x2D,0x80,0x0B,0x90,
+ 0xF0,0x60,0xE0,0x90,0xFB,0x99,0xF0,0x12,
+ 0x8B,0x2D,0x7F,0x05,0x12,0x89,0x23,0x90,
+ 0x44,0x01,0xE0,0x24,0xFF,0x92,0xAF,0x90,
+ 0x44,0x02,0xE0,0x04,0xF0,0x90,0xFB,0xA3,
+ 0xE0,0x90,0x41,0xDE,0xF0,0x85,0x2C,0x2C,
+ 0x85,0x2C,0x2C,0x90,0xFB,0xA4,0xE0,0x90,
+ 0x41,0xDF,0xF0,0xE0,0xFF,0xD3,0x94,0x4E,
+ 0x40,0x06,0xE4,0x90,0x41,0xDD,0xF0,0x22,
+ 0xEF,0xC3,0x94,0x32,0x50,0x07,0x90,0x41,
+ 0xDD,0x74,0x64,0xF0,0x22,0xEF,0x24,0xCE,
+ 0xFF,0xE4,0x34,0xFF,0xFE,0x7C,0x00,0x7D,
+ 0x07,0x12,0xA9,0x34,0xEE,0xA2,0xE7,0x13,
+ 0xEF,0x13,0xFF,0xC3,0x74,0x64,0x9F,0x90,
+ 0x41,0xDD,0xF0,0x22,0xE4,0xFF,0x90,0x41,
+ 0xE7,0xE0,0x60,0x0B,0x90,0x42,0x59,0xE0,
+ 0x60,0x05,0x90,0x42,0x32,0xE0,0xFF,0x90,
+ 0xF0,0x61,0xE0,0xFE,0x90,0x42,0x48,0xE0,
+ 0x70,0x05,0x90,0x42,0x08,0xE0,0xFE,0xC3,
+ 0xEE,0x9F,0x90,0xFB,0x9A,0xF0,0xEE,0xC3,
+ 0x9F,0x50,0x02,0xE4,0xF0,0x22,0x90,0x44,
+ 0x03,0xEF,0xF0,0xA9,0x05,0xE4,0x90,0x44,
+ 0x09,0xF0,0xFB,0x90,0x43,0xD5,0xE0,0xFD,
+ 0xEB,0xC3,0x9D,0x50,0x5B,0x90,0xF5,0xF1,
+ 0xE0,0xFF,0x75,0xF0,0x02,0xEB,0xA4,0x24,
+ 0xC5,0xF5,0x82,0xE5,0xF0,0x34,0x43,0xF5,
+ 0x83,0xEF,0xF0,0x90,0xF5,0xF0,0xE0,0xFF,
+ 0x75,0xF0,0x02,0xEB,0xA4,0x24,0xC6,0xF5,
+ 0x82,0xE5,0xF0,0x34,0x43,0xF5,0x83,0xEF,
+ 0xF0,0x90,0xF5,0xF1,0xE0,0xFF,0x75,0xF0,
+ 0x02,0xEB,0xA4,0x24,0xCD,0xF5,0x82,0xE5,
+ 0xF0,0x34,0x43,0xF5,0x83,0xEF,0xF0,0x90,
+ 0xF5,0xF0,0xE0,0xFF,0x75,0xF0,0x02,0xEB,
+ 0xA4,0x24,0xCE,0xF5,0x82,0xE5,0xF0,0x34,
+ 0x43,0xF5,0x83,0xEF,0xF0,0x0B,0x80,0x9B,
+ 0x90,0x41,0xF3,0xED,0xF0,0x90,0x43,0xC5,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0xEE,0xC3,0x13,
+ 0xFE,0xEF,0x13,0xFF,0x90,0x44,0x04,0xEE,
+ 0xF0,0xA3,0xEF,0xF0,0x7A,0x01,0x90,0x41,
+ 0xF3,0xE0,0xFF,0xEA,0xC3,0x9F,0x50,0x54,
+ 0x75,0xF0,0x02,0xEA,0xA4,0x24,0xC5,0xF5,
+ 0x82,0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xC3,0x13,
+ 0xCE,0x13,0xD8,0xF9,0xFD,0xAC,0x06,0x75,
+ 0xF0,0x02,0xEA,0xA4,0x24,0xC5,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0xEE,0xC3,0x13,0xFE,0xEF,
+ 0x13,0x2D,0xFF,0xEE,0x3C,0xFE,0x90,0x44,
+ 0x04,0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xEC,
+ 0x9E,0x50,0x06,0x90,0x43,0xC4,0x74,0x01,
+ 0xF0,0x0A,0x80,0xA2,0x90,0x43,0xD6,0xE0,
+ 0xFE,0x70,0x14,0x90,0x41,0xF3,0xE0,0x64,
+ 0x01,0x70,0x31,0x90,0x43,0xD6,0x04,0xF0,
+ 0x90,0xF5,0xE2,0xE9,0xF0,0x80,0x25,0xEE,
+ 0xB4,0x01,0x17,0x90,0x41,0xF3,0xE0,0xB4,
+ 0x01,0x08,0x90,0x43,0xD6,0x74,0x03,0xF0,
+ 0x80,0x12,0x90,0x43,0xD6,0x74,0x02,0xF0,
+ 0x80,0x0A,0x90,0x43,0xD6,0xE0,0xB4,0x02,
+ 0x03,0x74,0x03,0xF0,0x90,0x43,0xD6,0xE0,
+ 0xB4,0x03,0x0F,0x90,0x43,0xD7,0xE0,0x14,
+ 0x90,0x43,0xD8,0xF0,0x90,0x41,0xF3,0x74,
+ 0x01,0xF0,0x90,0x44,0x03,0xE0,0x60,0x03,
+ 0x02,0x8E,0xE8,0x7A,0x01,0x90,0x43,0xD5,
+ 0xE0,0xFF,0xEA,0xC3,0x9F,0x50,0x37,0x75,
+ 0xF0,0x02,0xEA,0xA4,0x24,0xCD,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0xCD,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xC3,0xEF,0x9D,0xFF,0xEE,
+ 0x9C,0xFE,0xEA,0x25,0xE0,0x24,0x08,0xF5,
+ 0x82,0xE4,0x34,0x44,0xF5,0x83,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x0A,0x80,0xBF,0x90,0x43,
+ 0xDA,0xE0,0xFC,0x70,0x39,0xFA,0x90,0x43,
+ 0xD5,0xE0,0xFF,0xEA,0xC3,0x9F,0x50,0x25,
+ 0xEA,0x25,0xE0,0x24,0x0A,0xF5,0x82,0xE4,
+ 0x34,0x44,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xEA,0x25,0xE0,0x24,0x12,0xF5,0x82,
+ 0xE4,0x34,0x44,0xF5,0x83,0xEE,0xF0,0xA3,
+ 0xEF,0xF0,0x0A,0x80,0xD1,0x90,0x41,0xF3,
+ 0xE0,0x90,0x43,0xDA,0xF0,0x22,0xEC,0x64,
+ 0x01,0x70,0x03,0x02,0x8E,0x9E,0x90,0x44,
+ 0x08,0x74,0x01,0xF0,0x90,0x44,0x07,0xF0,
+ 0xE4,0xFA,0xF9,0xE9,0x25,0xE0,0x24,0x12,
+ 0xF5,0x82,0xE4,0x34,0x44,0xF5,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0xEA,0x25,0xE0,0x24,
+ 0x0A,0xF5,0x82,0xE4,0x34,0x44,0xF5,0x83,
+ 0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xFF,0xEC,
+ 0x9E,0xFE,0xC3,0x64,0x80,0x94,0x80,0x50,
+ 0x24,0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0xFE,
+ 0x90,0x43,0xD5,0xE0,0x24,0xFE,0xFD,0xEA,
+ 0xC3,0x9D,0x50,0x03,0x0A,0x80,0x06,0x90,
+ 0x44,0x09,0x74,0x01,0xF0,0x90,0x44,0x06,
+ 0x74,0x01,0xF0,0x80,0x1A,0xE4,0x90,0x44,
+ 0x06,0xF0,0x90,0x43,0xDA,0xE0,0x24,0xFE,
+ 0xFD,0xE9,0xC3,0x9D,0x50,0x03,0x09,0x80,
+ 0x06,0x90,0x44,0x09,0x74,0x01,0xF0,0x90,
+ 0x43,0xD9,0xE0,0xFD,0xC3,0xEF,0x9D,0x74,
+ 0x80,0xF8,0x6E,0x98,0x40,0x2D,0x90,0x43,
+ 0xC5,0xE0,0xFE,0xA3,0xE0,0xFF,0xEE,0x13,
+ 0xFE,0xEF,0x13,0xFF,0x90,0x44,0x08,0xE0,
+ 0x75,0xF0,0x02,0xA4,0x24,0xC5,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,0xFC,
+ 0xA3,0xE0,0xD3,0x9F,0xEC,0x9E,0x50,0x03,
+ 0x02,0x8E,0x7D,0x90,0x44,0x08,0xE0,0xFC,
+ 0x75,0xF0,0x02,0xA4,0x24,0xCD,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x44,0x07,0xE0,0xFD,
+ 0x75,0xF0,0x02,0xA4,0x24,0xCD,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x75,0xF0,0x02,0xEC,0xA4,
+ 0x24,0xC5,0xF5,0x82,0xE5,0xF0,0x34,0x43,
+ 0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0x75,
+ 0xF0,0x02,0xED,0xA4,0x24,0xC5,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x44,0x07,0xE0,0x04,
+ 0xF0,0x90,0x44,0x06,0xE0,0xB4,0x01,0x17,
+ 0x90,0x43,0xDA,0xE0,0x24,0xFE,0xFF,0xE9,
+ 0xC3,0x9F,0x50,0x03,0x09,0x80,0x1D,0x90,
+ 0x44,0x09,0x74,0x01,0xF0,0x80,0x15,0x90,
+ 0x43,0xD5,0xE0,0x24,0xFE,0xFF,0xEA,0xC3,
+ 0x9F,0x50,0x03,0x0A,0x80,0x06,0x90,0x44,
+ 0x09,0x74,0x01,0xF0,0x90,0x44,0x07,0xE0,
+ 0x90,0x41,0xF3,0xF0,0xEA,0x04,0x90,0x44,
+ 0x08,0xF0,0xA3,0xE0,0x64,0x01,0x60,0x03,
+ 0x02,0x8D,0x44,0x90,0x41,0xF3,0xE0,0x90,
+ 0x43,0xDA,0xF0,0x80,0x06,0x90,0x41,0xF3,
+ 0x74,0x01,0xF0,0x7B,0x01,0x90,0x43,0xDA,
+ 0xE0,0x14,0xFF,0xEB,0xC3,0x9F,0x50,0x37,
+ 0x75,0xF0,0x02,0xEB,0xA4,0x24,0xCD,0xF5,
+ 0x82,0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x43,0xCD,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0xC3,0xEF,0x9D,0xFF,
+ 0xEE,0x9C,0xFE,0xEB,0x25,0xE0,0x24,0x10,
+ 0xF5,0x82,0xE4,0x34,0x44,0xF5,0x83,0xEE,
+ 0xF0,0xA3,0xEF,0xF0,0x0B,0x80,0xBE,0x22,
+ 0xEF,0x64,0x02,0x60,0x04,0xEF,0xB4,0x01,
+ 0x1B,0x90,0x44,0x36,0x74,0x0B,0xF0,0xA3,
+ 0x74,0xB3,0xF0,0xA3,0x74,0x0A,0xF0,0xA3,
+ 0x74,0x73,0xF0,0xA3,0x74,0x33,0xF0,0xA3,
+ 0x74,0xE5,0xF0,0x22,0xEF,0xB4,0x04,0x1B,
+ 0x90,0x44,0x36,0x74,0x0B,0xF0,0xA3,0x74,
+ 0xE3,0xF0,0xA3,0x74,0x0A,0xF0,0xA3,0x74,
+ 0x9D,0xF0,0xA3,0x74,0x33,0xF0,0xA3,0x74,
+ 0xB3,0xF0,0x22,0xEF,0xB4,0x05,0x1B,0x90,
+ 0x44,0x36,0x74,0x0B,0xF0,0xA3,0x74,0xA3,
+ 0xF0,0xA3,0x74,0x0A,0xF0,0xA3,0x74,0x65,
+ 0xF0,0xA3,0x74,0x33,0xF0,0xA3,0x74,0xF4,
+ 0xF0,0x22,0xEF,0xB4,0x0B,0x1A,0x90,0x44,
+ 0x36,0x74,0x0B,0xF0,0xA3,0x74,0xD5,0xF0,
+ 0xA3,0x74,0x0A,0xF0,0xA3,0x74,0x91,0xF0,
+ 0xA3,0x74,0x33,0xF0,0xA3,0x74,0xC1,0xF0,
+ 0x22,0x90,0xF0,0x2B,0xE4,0xF0,0x90,0x43,
+ 0x41,0x74,0x82,0xF0,0x90,0xFB,0x28,0xF0,
+ 0x90,0x42,0x09,0xE0,0x90,0xF0,0x41,0xF0,
+ 0x90,0x42,0x48,0xE0,0x14,0x60,0x21,0x14,
+ 0x60,0x39,0x24,0x02,0x60,0x03,0x02,0x90,
+ 0x1B,0x90,0xF1,0xE5,0x74,0x01,0xF0,0x12,
+ 0xA0,0x2F,0x12,0x9E,0x2B,0x12,0x9E,0xC1,
+ 0x90,0x43,0x3D,0x74,0x01,0xF0,0x80,0x72,
+ 0x12,0x9E,0x2B,0x90,0xF0,0x2C,0x74,0x01,
+ 0xF0,0x90,0xF1,0xE5,0xF0,0x90,0x43,0x3D,
+ 0xE0,0x64,0x01,0x70,0x5D,0x04,0x12,0xA8,
+ 0x12,0x80,0x57,0x90,0xF0,0x2C,0x74,0x01,
+ 0xF0,0x90,0xF1,0xE5,0xF0,0x12,0x88,0x8B,
+ 0x75,0xF0,0x02,0xE5,0x0F,0xA4,0x24,0x79,
+ 0xF5,0x82,0xE5,0xF0,0x34,0xAD,0xF5,0x83,
+ 0xE4,0x93,0xFC,0x74,0x01,0x93,0xFD,0xE4,
+ 0xFF,0x12,0x47,0xAD,0x90,0xF1,0xE7,0xE0,
+ 0x64,0x01,0x60,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0xF1,0x1A,0xE0,0x5F,0x70,
+ 0xEB,0x90,0xF1,0xE7,0xE0,0xB4,0x01,0x04,
+ 0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,0x43,
+ 0x3D,0xEF,0xF0,0xE0,0xB4,0x01,0x03,0x12,
+ 0xA8,0x12,0x90,0xF1,0x75,0x74,0x01,0xF0,
+ 0x90,0x42,0x5A,0xE0,0xF5,0x14,0x12,0xA5,
+ 0x62,0x90,0xF0,0xD5,0x74,0x01,0xF0,0x90,
+ 0xF0,0xE3,0xF0,0x90,0xF0,0xE2,0xF0,0x90,
+ 0x43,0x40,0xF0,0x22,0x90,0xF7,0x3C,0xE0,
+ 0x70,0x0B,0x90,0xF7,0x31,0xE0,0x60,0x05,
+ 0xE4,0xFF,0x12,0x9C,0x29,0x12,0x48,0x8D,
+ 0xE4,0xF5,0x0F,0x22,0x90,0x44,0x1B,0xEF,
+ 0xF0,0xA3,0xED,0xF0,0xE4,0x90,0x44,0x23,
+ 0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xAF,
+ 0x03,0x90,0x44,0x21,0xEA,0xF0,0xA3,0xEF,
+ 0xF0,0x90,0x44,0x1F,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xA3,0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,
+ 0x9F,0xEC,0x9E,0x40,0x03,0x02,0x91,0x1E,
+ 0x90,0xF9,0x00,0xE0,0xB4,0x02,0x0F,0x90,
+ 0x44,0x22,0xE0,0x25,0xE0,0xFD,0x90,0x44,
+ 0x21,0xE0,0x33,0xFC,0x80,0x1A,0x90,0xF9,
+ 0x00,0xE0,0xB4,0x01,0x13,0x90,0x44,0x21,
+ 0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xC3,0x33,
+ 0xCE,0x33,0xCE,0xD8,0xF9,0xFD,0xAC,0x06,
+ 0xED,0x90,0xF5,0x50,0xF0,0xEC,0xA3,0xF0,
+ 0x90,0xF6,0x5B,0x74,0x01,0xF0,0x7F,0x55,
+ 0x7E,0x0D,0x12,0x47,0x76,0x90,0xF6,0x5F,
+ 0xE0,0xFF,0x13,0x13,0x54,0x3F,0xFF,0x90,
+ 0x44,0x24,0xE0,0x2F,0xF0,0x90,0x44,0x23,
+ 0xE0,0x34,0x00,0xF0,0x90,0xF6,0x5F,0xE0,
+ 0xFF,0x90,0x44,0x26,0xE0,0xC3,0x9F,0x50,
+ 0x08,0x90,0xF6,0x5F,0xE0,0x90,0x44,0x26,
+ 0xF0,0x90,0x44,0x1C,0xE0,0xFF,0x90,0xF6,
+ 0x5F,0xE0,0xD3,0x9F,0x40,0x06,0x90,0x44,
+ 0x25,0xE0,0x04,0xF0,0x90,0x44,0x22,0xE0,
+ 0x04,0xF0,0x70,0x06,0x90,0x44,0x21,0xE0,
+ 0x04,0xF0,0x02,0x90,0x72,0x90,0x44,0x23,
+ 0xE0,0xFE,0xA3,0xE0,0x78,0x07,0xCE,0xC3,
+ 0x13,0xCE,0x13,0xD8,0xF9,0xFF,0x90,0x44,
+ 0x26,0xE0,0xFE,0x13,0x13,0x54,0x3F,0xFD,
+ 0xEF,0xD3,0x9D,0x40,0x13,0xEF,0x94,0x80,
+ 0x40,0x05,0x74,0xFF,0xF0,0x80,0x10,0xEF,
+ 0x25,0xE0,0x90,0x44,0x26,0xF0,0x80,0x07,
+ 0xEE,0xC3,0x13,0x90,0x44,0x26,0xF0,0x90,
+ 0x44,0x1B,0xE0,0x70,0x06,0x90,0x44,0x26,
+ 0xE0,0xFF,0x22,0x90,0x44,0x25,0xE0,0xFF,
+ 0x22,0xE4,0x90,0x44,0x2F,0xF0,0xA3,0xF0,
+ 0x90,0x44,0x3C,0x04,0xF0,0x22,0x90,0x44,
+ 0x3C,0xE0,0x60,0x08,0x12,0x72,0x37,0xE4,
+ 0x90,0x44,0x3C,0xF0,0x22,0x90,0xF6,0x08,
+ 0xE0,0x90,0x44,0x29,0xF0,0x90,0xFD,0x29,
+ 0xE0,0x90,0x44,0x2A,0xF0,0xE4,0xA3,0xF0,
+ 0x90,0x41,0xD9,0xE0,0x70,0x05,0x90,0x44,
+ 0x2F,0xF0,0x22,0x12,0x91,0x77,0x90,0xF5,
+ 0x4C,0xE0,0xFF,0x90,0xF5,0x41,0xE0,0x4F,
+ 0x70,0x03,0x02,0x92,0xB1,0x90,0x44,0x1F,
+ 0x74,0x02,0xF0,0xA3,0x74,0x39,0xF0,0xE4,
+ 0xFB,0xFA,0xFD,0xFF,0x12,0x90,0x55,0x90,
+ 0x44,0x28,0xEF,0xF0,0xD3,0x94,0x32,0x40,
+ 0x04,0xE0,0xFF,0x80,0x02,0x7F,0xFF,0x90,
+ 0x44,0x28,0xEF,0xF0,0xFD,0x90,0x44,0x1F,
+ 0xE4,0xF0,0xA3,0x74,0x32,0xF0,0xE4,0xFB,
+ 0xFA,0x7F,0x01,0x12,0x90,0x55,0x90,0x44,
+ 0x27,0xEF,0xF0,0xD3,0x94,0x0A,0x40,0x58,
+ 0x90,0xF1,0x14,0xE0,0x70,0x1E,0x04,0xF0,
+ 0x90,0x44,0x3B,0xE0,0x90,0xF1,0x12,0xF0,
+ 0x90,0x44,0x3A,0xE0,0x90,0xF1,0x13,0xF0,
+ 0x90,0xF1,0x0B,0xE4,0xF0,0x90,0xF1,0x0A,
+ 0x04,0xF0,0x80,0x34,0x90,0xF1,0x10,0xE0,
+ 0x70,0x2E,0x90,0x44,0x3B,0xE0,0xFF,0x90,
+ 0xF1,0x12,0xE0,0x6F,0x60,0x22,0x90,0x44,
+ 0x3A,0xE0,0xFE,0x90,0xF1,0x13,0xE0,0x6E,
+ 0x60,0x16,0x90,0xF1,0x10,0x74,0x01,0xF0,
+ 0x90,0xF1,0x0E,0xEF,0xF0,0xA3,0xEE,0xF0,
+ 0x90,0xF1,0x09,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0x90,0x44,0x28,0xE0,0xFD,0x90,0x44,0x1F,
+ 0x74,0x02,0xF0,0xA3,0x74,0x39,0xF0,0x7B,
+ 0xF4,0x7A,0x01,0x7F,0x01,0x12,0x90,0x55,
+ 0x90,0x44,0x27,0xEF,0xF0,0xD3,0x94,0x19,
+ 0x40,0x3E,0x90,0xF1,0x14,0xE0,0x70,0x38,
+ 0x04,0xF0,0x90,0x44,0x39,0xE0,0x90,0xF1,
+ 0x12,0xF0,0x90,0x44,0x38,0xE0,0x90,0xF1,
+ 0x13,0xF0,0x90,0xF1,0x0B,0x74,0x15,0xF0,
+ 0x90,0xF1,0x10,0x74,0x01,0xF0,0x90,0x44,
+ 0x37,0xE0,0x90,0xF1,0x0E,0xF0,0x90,0x44,
+ 0x36,0xE0,0x90,0xF1,0x0F,0xF0,0x90,0xF1,
+ 0x09,0x74,0x10,0xF0,0xA3,0x74,0x01,0xF0,
+ 0x22,0x90,0xF1,0x14,0xE0,0xFF,0x90,0x44,
+ 0x2E,0xE0,0x6F,0x60,0x04,0x7F,0x01,0x80,
+ 0x02,0x7F,0x00,0x90,0xF1,0x10,0xE0,0xFE,
+ 0x90,0x44,0x2D,0xE0,0x6E,0x60,0x04,0x7E,
+ 0x01,0x80,0x02,0x7E,0x00,0xEE,0x4F,0xFF,
+ 0x90,0x42,0x2E,0xE0,0x64,0x01,0x70,0x39,
+ 0x90,0xF5,0x41,0xE0,0x60,0x03,0xEF,0x60,
+ 0x3D,0x12,0xAF,0x84,0x04,0x90,0xF5,0x4C,
+ 0xE0,0xB4,0x01,0xF9,0x90,0xF6,0x5D,0x74,
+ 0x01,0xF0,0x90,0xF1,0x10,0xE0,0x70,0x06,
+ 0x90,0xF1,0x14,0xE0,0x60,0x20,0x90,0xF4,
+ 0xC1,0xE0,0x70,0x1A,0x90,0xF4,0xC4,0xE0,
+ 0x70,0x14,0x90,0xF6,0x5C,0x04,0xF0,0x80,
+ 0x0D,0x90,0xF5,0x41,0xE4,0xF0,0x90,0xF6,
+ 0x5D,0xF0,0x90,0xF6,0x5C,0xF0,0x90,0xF1,
+ 0x10,0xE0,0x90,0x44,0x2D,0xF0,0x90,0xF1,
+ 0x14,0xE0,0x90,0x44,0x2E,0xF0,0x22,0xE4,
+ 0x90,0x44,0x3D,0xF0,0x90,0xF9,0x00,0xE0,
+ 0x70,0x09,0x90,0x42,0x2A,0xE0,0x90,0x44,
+ 0x3D,0xF0,0x22,0x90,0xF9,0x00,0xE0,0xB4,
+ 0x01,0x1F,0x90,0x41,0xE9,0xE0,0xB4,0x01,
+ 0x09,0x90,0x42,0x28,0xE0,0x90,0x44,0x3D,
+ 0xF0,0x22,0x90,0xF0,0x2B,0xE0,0x70,0x11,
+ 0x90,0x42,0x2B,0xE0,0x90,0x44,0x3D,0xF0,
+ 0x22,0x90,0x42,0x29,0xE0,0x90,0x44,0x3D,
+ 0xF0,0x22,0x12,0xA0,0x7B,0x12,0x92,0xB2,
+ 0x12,0x95,0x1B,0x12,0x91,0x86,0x90,0xF7,
+ 0x8E,0x74,0x01,0xF0,0x90,0xF7,0x91,0xF0,
+ 0x90,0xF7,0x31,0xE0,0x60,0x05,0x7F,0x01,
+ 0x12,0x9C,0x29,0x12,0x4D,0x1F,0xE4,0x90,
+ 0x44,0x2C,0xF0,0x7D,0x00,0x7C,0x07,0xE4,
+ 0xFF,0x12,0x47,0xAD,0x12,0x9F,0x31,0x12,
+ 0x6E,0x8F,0x12,0x97,0x25,0x04,0x12,0x70,
+ 0xEE,0x90,0x42,0x1F,0xE0,0x60,0x34,0x90,
+ 0xF1,0x33,0xE0,0x70,0x2E,0x90,0xF1,0x35,
+ 0xE0,0x70,0x28,0x90,0xF4,0xC1,0xE0,0x64,
+ 0x02,0x70,0x20,0x90,0xF9,0x00,0xE0,0x60,
+ 0x1A,0x90,0xF0,0x2B,0xE0,0x70,0x14,0x90,
+ 0x44,0x48,0xE0,0x70,0x0E,0x90,0x43,0xC4,
+ 0xE0,0x60,0x08,0x90,0xFD,0xA2,0x74,0x01,
+ 0xF0,0x80,0x05,0x90,0xFD,0xA2,0xE4,0xF0,
+ 0x90,0xF9,0x99,0xE0,0x60,0x0E,0x90,0xF2,
+ 0x1B,0x74,0x0C,0xF0,0x90,0x42,0x9E,0x74,
+ 0x01,0xF0,0x80,0x06,0x90,0xF2,0x1B,0x74,
+ 0x0D,0xF0,0x90,0xFD,0x33,0xE4,0xF0,0x04,
+ 0xF0,0x90,0xFD,0x36,0xE0,0xB4,0x01,0xF9,
+ 0x12,0x9B,0x78,0x12,0x93,0x38,0x90,0x43,
+ 0x3E,0xE0,0xB4,0x01,0x0C,0x90,0xFD,0x0F,
+ 0xE4,0xF0,0x90,0xFD,0x29,0x04,0xF0,0x80,
+ 0x2E,0x90,0x44,0x3D,0xE0,0xFF,0x90,0xFD,
+ 0x54,0xE0,0xC3,0x9F,0x50,0x11,0x90,0xFD,
+ 0x0F,0xEF,0xF0,0x90,0xFD,0x29,0x74,0x01,
+ 0xF0,0x90,0x42,0x6E,0xF0,0x80,0x10,0x90,
+ 0x42,0x6E,0xE0,0xB4,0x01,0x09,0x90,0xFD,
+ 0x29,0xE4,0xF0,0x90,0x42,0x6E,0xF0,0x12,
+ 0x98,0xDA,0x90,0x44,0x2C,0xE0,0x75,0xF0,
+ 0x50,0x84,0xE5,0xF0,0x70,0x03,0x12,0x91,
+ 0x86,0x12,0x92,0xB2,0x12,0xAE,0x61,0x12,
+ 0x9A,0xE4,0x12,0x70,0xEE,0x05,0x2C,0x90,
+ 0xF1,0x1A,0xE0,0x70,0xFA,0x90,0xF5,0x4E,
+ 0xE0,0x60,0x3C,0xA3,0xE0,0x60,0x38,0x90,
+ 0xF9,0x03,0xE0,0xFF,0x90,0xF4,0xC1,0xE0,
+ 0x6F,0x70,0x23,0x90,0xF9,0x05,0xE0,0xB4,
+ 0x01,0x0A,0xA3,0xE0,0xFF,0x90,0xF4,0xC4,
+ 0xE0,0xB5,0x07,0x12,0x90,0xF9,0x05,0xE0,
+ 0x70,0x15,0x90,0xF9,0x07,0xE0,0xFF,0x90,
+ 0xF4,0xC5,0xE0,0x6F,0x60,0x09,0x12,0xA7,
+ 0x40,0x90,0x44,0x2C,0x74,0xFE,0xF0,0x90,
+ 0x44,0x30,0xE0,0xB4,0x01,0x17,0x90,0xF5,
+ 0x4E,0xE0,0x64,0x01,0x60,0x0F,0xA3,0xE0,
+ 0x64,0x01,0x60,0x09,0x12,0xA7,0x40,0x90,
+ 0x44,0x2C,0x74,0xFE,0xF0,0x90,0x44,0x2C,
+ 0xE0,0x04,0xF0,0xE0,0xC3,0x94,0xFA,0x50,
+ 0x03,0x02,0x93,0xA4,0x90,0x44,0x30,0x74,
+ 0x01,0xF0,0x90,0x42,0x11,0xE0,0x64,0x01,
+ 0x60,0x09,0x90,0x44,0xA0,0xE0,0x70,0x03,
+ 0x12,0x72,0x42,0x90,0x43,0x3D,0x74,0x01,
+ 0xF0,0x22,0xE4,0xFF,0x90,0x44,0x32,0xF0,
+ 0xA3,0xF0,0xA3,0xF0,0x90,0xF9,0x00,0xE0,
+ 0x70,0x08,0x90,0x44,0x35,0x74,0x2D,0xF0,
+ 0x80,0x15,0x90,0xF9,0x00,0xE0,0xB4,0x02,
+ 0x08,0x90,0x44,0x35,0x74,0x59,0xF0,0x80,
+ 0x06,0x90,0x44,0x35,0x74,0xB1,0xF0,0x90,
+ 0xF5,0x56,0xE4,0xF0,0xFF,0x90,0x44,0x35,
+ 0xE0,0xFE,0xEF,0xC3,0x9E,0x40,0x03,0x02,
+ 0x95,0xEE,0x90,0xF6,0x56,0xEF,0xF0,0x90,
+ 0xF6,0x5A,0x74,0x01,0xF0,0x90,0xF6,0x5A,
+ 0xE0,0x70,0xFA,0x90,0xF6,0x5E,0xE0,0x90,
+ 0x44,0x31,0xF0,0x90,0x44,0x2F,0xE0,0xC3,
+ 0x94,0xC8,0x50,0x25,0x90,0x41,0xD9,0xE0,
+ 0xB4,0x01,0x1E,0xEF,0xC3,0x94,0x0E,0x40,
+ 0x0C,0x90,0x44,0x35,0xE0,0x24,0xF2,0xFE,
+ 0xEF,0xD3,0x9E,0x40,0x06,0x90,0x44,0x31,
+ 0x74,0x01,0xF0,0x90,0x44,0x2F,0xE0,0x04,
+ 0xF0,0x90,0x44,0x31,0xE0,0x60,0x17,0x90,
+ 0x44,0x33,0xE0,0xFE,0x74,0x01,0xA8,0x06,
+ 0x08,0x80,0x02,0xC3,0x33,0xD8,0xFC,0xFE,
+ 0x90,0x44,0x32,0xE0,0x2E,0xF0,0x90,0x44,
+ 0x33,0xE0,0x04,0xF0,0xE0,0x64,0x08,0x60,
+ 0x05,0xA3,0xE0,0xB4,0x16,0x1B,0x90,0x44,
+ 0x34,0xE0,0x90,0xF5,0x57,0xF0,0x90,0x44,
+ 0x32,0xE0,0x90,0xF5,0x55,0xF0,0xE4,0x90,
+ 0x44,0x32,0xF0,0xA3,0xF0,0xA3,0xE0,0x04,
+ 0xF0,0x0F,0x02,0x95,0x4E,0x90,0xF5,0x56,
+ 0x74,0x01,0xF0,0x22,0x90,0xF9,0x00,0xE0,
+ 0xB4,0x01,0x10,0x90,0x44,0x6B,0x74,0x0C,
+ 0xF0,0xA3,0x74,0x1A,0xF0,0xA3,0x74,0xA1,
+ 0xF0,0x80,0x24,0x90,0xF9,0x00,0xE0,0x70,
+ 0x10,0x90,0x44,0x6B,0x74,0x0A,0xF0,0xA3,
+ 0x74,0x06,0xF0,0xA3,0x74,0xA9,0xF0,0x80,
+ 0x0E,0x90,0x44,0x6B,0x74,0x0B,0xF0,0xA3,
+ 0x74,0x0D,0xF0,0xA3,0x74,0x51,0xF0,0xE4,
+ 0xFF,0x7F,0x08,0x90,0x44,0x71,0xE4,0xF0,
+ 0xA3,0xDF,0xFC,0x7F,0x08,0x90,0xF4,0xC1,
+ 0xE0,0x14,0x60,0x12,0x14,0x60,0x41,0x24,
+ 0x02,0x70,0x6E,0x90,0x44,0x69,0x74,0xB5,
+ 0xF0,0xA3,0x74,0x08,0xF0,0x22,0x90,0xF4,
+ 0xC6,0xE0,0x14,0x60,0x0A,0x14,0x60,0x12,
+ 0x14,0x60,0x1A,0x24,0x03,0x70,0x52,0x90,
+ 0x44,0x69,0x74,0xA2,0xF0,0xA3,0x74,0x09,
+ 0xF0,0x22,0x90,0x44,0x69,0x74,0xE5,0xF0,
+ 0xA3,0x74,0x0A,0xF0,0x22,0x90,0x44,0x69,
+ 0x74,0x8E,0xF0,0xA3,0x74,0x0A,0xF0,0x22,
+ 0x90,0xF4,0xC6,0xE0,0x14,0x60,0x0A,0x14,
+ 0x60,0x12,0x14,0x60,0x1A,0x24,0x03,0x70,
+ 0x20,0x90,0x44,0x69,0x74,0x9E,0xF0,0xA3,
+ 0x74,0x0A,0xF0,0x22,0x90,0x44,0x69,0x74,
+ 0x84,0xF0,0xA3,0x74,0x0A,0xF0,0x22,0x90,
+ 0x44,0x69,0x74,0xC5,0xF0,0xA3,0x74,0x0B,
+ 0xF0,0x22,0x90,0xFD,0x47,0xE0,0x90,0x44,
+ 0x55,0xF0,0x90,0xFD,0x46,0xE0,0x90,0x44,
+ 0x56,0xF0,0x90,0xFD,0x45,0xE0,0x90,0x44,
+ 0x57,0xF0,0x90,0xFD,0x44,0xE0,0x90,0x44,
+ 0x58,0xF0,0x90,0x44,0x55,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x44,0x6B,0xE0,0xF9,0xF8,0x12,0xAA,
+ 0x55,0x90,0x44,0x55,0x12,0xAA,0x8F,0x22,
+ 0xE4,0x90,0x44,0x51,0xF0,0x90,0xF5,0xD6,
+ 0xE0,0x90,0x44,0x52,0xF0,0x90,0xF5,0xD5,
+ 0xE0,0x90,0x44,0x53,0xF0,0x90,0xF5,0xD4,
+ 0xE0,0x90,0x44,0x54,0xF0,0x22,0xE4,0x90,
+ 0x44,0x7D,0xF0,0x90,0x44,0x7C,0xF0,0x90,
+ 0x44,0x7B,0xF0,0x22,0x90,0x44,0x7D,0xE0,
+ 0xB4,0x64,0x22,0x90,0x44,0x7C,0xE0,0xD3,
+ 0x94,0x05,0x40,0x11,0x90,0x44,0x7B,0xE0,
+ 0xD3,0x94,0x05,0x40,0x08,0x90,0x44,0x48,
+ 0x74,0x01,0xF0,0x80,0x05,0xE4,0x90,0x44,
+ 0x48,0xF0,0x12,0x97,0x17,0x90,0x44,0x7D,
+ 0xE0,0x04,0xF0,0x12,0x97,0x58,0x22,0x90,
+ 0xF5,0xCC,0xE4,0xF0,0xA3,0x74,0x02,0xF0,
+ 0x90,0xF5,0xD4,0xE0,0x90,0x44,0x54,0xF0,
+ 0x90,0xF5,0xCB,0xE0,0xB4,0x01,0xF9,0x12,
+ 0x96,0xF9,0x90,0xFD,0x33,0xE4,0xF0,0x04,
+ 0xF0,0x90,0xFD,0x36,0xE0,0xB4,0x01,0xF9,
+ 0x12,0x96,0xBB,0x90,0x44,0x51,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0x90,0x44,0x55,0xE0,0xF8,0xA3,0xE0,
+ 0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,
+ 0x12,0xAA,0x44,0x50,0x06,0x90,0x44,0x7C,
+ 0xE0,0x04,0xF0,0x90,0x44,0x51,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0x78,0x02,0x12,0xAA,0x68,0x90,0x44,
+ 0x51,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0x2F,0xFF,0xEA,0x3E,0xFE,
+ 0xE9,0x3D,0xFD,0xE8,0x3C,0xFC,0x90,0x44,
+ 0x55,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xD3,0x12,0xAA,0x44,
+ 0x40,0x06,0x90,0x44,0x7B,0xE0,0x04,0xF0,
+ 0x22,0x90,0xF5,0xCB,0xE0,0xB4,0x01,0xF9,
+ 0x90,0xF5,0xD0,0xE0,0x90,0x44,0x4A,0xF0,
+ 0x90,0xF5,0xCF,0xE0,0x90,0x44,0x4B,0xF0,
+ 0x90,0xF5,0xCE,0xE0,0x90,0x44,0x4C,0xF0,
+ 0x90,0x44,0x49,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,0x78,0x0A,
+ 0x12,0xAA,0x7C,0x78,0x0A,0x12,0xAA,0x68,
+ 0x90,0x44,0x49,0x12,0xAA,0x8F,0x90,0x44,
+ 0x69,0xE0,0xFF,0xE4,0xFC,0xFD,0xFE,0x90,
+ 0x44,0x49,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,
+ 0xE0,0xFA,0xA3,0xE0,0xFB,0x12,0xA9,0xD1,
+ 0x90,0x44,0x6A,0xE0,0xF9,0xF8,0x12,0xAA,
+ 0x68,0x90,0x44,0x49,0x12,0xAA,0x8F,0x90,
+ 0xF5,0xD3,0xE0,0x90,0x44,0x4E,0xF0,0x90,
+ 0xF5,0xD2,0xE0,0x90,0x44,0x4F,0xF0,0x90,
+ 0xF5,0xD1,0xE0,0x90,0x44,0x50,0xF0,0x90,
+ 0x44,0x4D,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x78,0x0A,0x12,
+ 0xAA,0x7C,0x78,0x0A,0x12,0xAA,0x68,0x90,
+ 0x44,0x4D,0x12,0xAA,0x8F,0x90,0x44,0x69,
+ 0xE0,0xFF,0xE4,0xFC,0xFD,0xFE,0x90,0x44,
+ 0x4D,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0x12,0xA9,0xD1,0x90,
+ 0x44,0x6A,0xE0,0xF9,0xF8,0x12,0xAA,0x68,
+ 0x90,0x44,0x4D,0x12,0xAA,0x8F,0x22,0x90,
+ 0x44,0x45,0xE0,0x90,0xF5,0xCC,0xF0,0x90,
+ 0x44,0x44,0xE0,0x54,0x1F,0x90,0xF5,0xCD,
+ 0xF0,0x90,0xF5,0xD4,0xE0,0x90,0x44,0x54,
+ 0xF0,0x90,0xF5,0xCB,0xE0,0xB4,0x01,0xF9,
+ 0x22,0x90,0x42,0x3B,0xE0,0x70,0x03,0x02,
+ 0x99,0xC6,0x90,0x44,0xBA,0x74,0x08,0xF0,
+ 0xE4,0x90,0x44,0x3E,0xF0,0x90,0x44,0xBA,
+ 0xE0,0xFF,0x90,0x44,0x3E,0xE0,0xFE,0xC3,
+ 0x9F,0x50,0x6C,0xEE,0xFF,0x7E,0x00,0x7C,
+ 0x02,0x7D,0x58,0x12,0xA9,0x34,0xEF,0x24,
+ 0x64,0xFF,0xE4,0x3E,0x90,0x44,0x44,0xF0,
+ 0xA3,0xEF,0xF0,0x12,0xA7,0x71,0x90,0x44,
+ 0xBB,0xE0,0x70,0x43,0x05,0x2C,0x12,0x96,
+ 0xF9,0x90,0x44,0x3E,0xE0,0x70,0x03,0x12,
+ 0xA8,0x00,0x90,0x44,0x55,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x78,0x04,0x12,0xAA,0x55,0x90,0x44,0x51,
+ 0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0xC3,0x12,0xAA,0x44,0x50,
+ 0x0E,0x90,0x44,0x43,0xE0,0x04,0xF0,0x70,
+ 0x06,0x90,0x44,0x42,0xE0,0x04,0xF0,0x90,
+ 0x44,0x3E,0xE0,0x04,0xF0,0x80,0x86,0x90,
+ 0x44,0x46,0xE0,0x04,0xF0,0xE0,0x64,0x64,
+ 0x70,0x53,0x90,0xF9,0x00,0xE0,0x60,0x08,
+ 0x90,0x44,0x7E,0x74,0x28,0xF0,0x80,0x06,
+ 0x90,0x44,0x7E,0x74,0x3E,0xF0,0x90,0x42,
+ 0x2F,0x74,0x01,0xF0,0x90,0x44,0x7E,0xE0,
+ 0xFF,0xD3,0x90,0x44,0x43,0xE0,0x9F,0x90,
+ 0x44,0x42,0xE0,0x94,0x00,0x40,0x0B,0xE4,
+ 0x90,0x41,0xE8,0xF0,0x90,0x41,0xE9,0xF0,
+ 0x80,0x0A,0x90,0x41,0xE8,0x74,0x01,0xF0,
+ 0x90,0x41,0xE9,0xF0,0x90,0x44,0x47,0xE0,
+ 0x04,0xF0,0xE4,0x90,0x44,0x42,0xF0,0xA3,
+ 0xF0,0x90,0x44,0x46,0xF0,0x12,0x99,0xCA,
+ 0x22,0x90,0x42,0x2F,0xE0,0x60,0x33,0x90,
+ 0xF0,0x2B,0xE0,0x70,0x21,0x90,0x43,0xC4,
+ 0xE0,0x70,0x0C,0x90,0x41,0xE0,0xE0,0x60,
+ 0x06,0x90,0xF9,0x00,0xE0,0x70,0x0F,0x90,
+ 0x41,0xE8,0xE0,0x70,0x09,0x90,0xF7,0x84,
+ 0xF0,0x90,0xF7,0x83,0xF0,0x22,0x90,0xF7,
+ 0x84,0x74,0x01,0xF0,0x90,0xF7,0x83,0x74,
+ 0xFF,0xF0,0x22,0xE4,0x90,0x44,0x70,0xF0,
+ 0x90,0x44,0x6E,0xF0,0xA3,0xF0,0x12,0x95,
+ 0xF5,0x22,0x90,0xF9,0x00,0xE0,0x70,0x19,
+ 0x90,0x44,0x44,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x7C,0x06,0x7D,0xA8,0x12,0xA9,0x46,0x90,
+ 0x44,0x44,0xEC,0xF0,0xA3,0xED,0xF0,0x80,
+ 0x1E,0x90,0xF9,0x00,0xE0,0xB4,0x02,0x17,
+ 0x90,0x44,0x44,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x7C,0x0D,0x7D,0x50,0x12,0xA9,0x46,0x90,
+ 0x44,0x44,0xEC,0xF0,0xA3,0xED,0xF0,0x12,
+ 0x98,0xB8,0x22,0x22,0xE4,0xFB,0xEB,0x25,
+ 0xE0,0x24,0x7F,0xF5,0x82,0xE4,0x34,0x44,
+ 0xF5,0x83,0xE0,0xFF,0xA3,0xE0,0x90,0x44,
+ 0x44,0xCF,0xF0,0xA3,0xEF,0xF0,0x12,0x9A,
+ 0x13,0x90,0xF5,0xD0,0xE0,0xFF,0xC4,0x13,
+ 0x54,0x07,0xFF,0x90,0xF5,0xD3,0xE0,0xFE,
+ 0xC4,0x13,0x54,0x07,0x6F,0x60,0x0D,0x74,
+ 0x71,0x2B,0xF5,0x82,0xE4,0x34,0x44,0xF5,
+ 0x83,0xE0,0x04,0xF0,0x0B,0xEB,0xB4,0x08,
+ 0xBD,0x90,0x44,0x6F,0xE0,0x04,0xF0,0xE0,
+ 0xC3,0x94,0x13,0x40,0x3D,0xE4,0xFF,0xFB,
+ 0x74,0x71,0x2B,0xF5,0x82,0xE4,0x34,0x44,
+ 0xF5,0x83,0xE0,0xFE,0xD3,0x94,0x0E,0x50,
+ 0x06,0xEE,0xC3,0x94,0x05,0x50,0x01,0x0F,
+ 0x74,0x71,0x2B,0xF5,0x82,0xE4,0x34,0x44,
+ 0xF5,0x83,0xE4,0xF0,0x0B,0xEB,0xB4,0x08,
+ 0xD7,0xEF,0xD3,0x94,0x06,0x40,0x06,0x90,
+ 0x42,0x3C,0x74,0x01,0xF0,0xE4,0x90,0x44,
+ 0x6F,0xF0,0x22,0x90,0x42,0x3A,0xE0,0xB4,
+ 0x01,0x1F,0x90,0xF0,0x2B,0xE0,0x70,0x19,
+ 0x12,0x9A,0x55,0x90,0x42,0x3C,0xE0,0xB4,
+ 0x01,0x0F,0x12,0x9A,0x04,0x90,0xFD,0x0F,
+ 0x74,0x07,0xF0,0x90,0xFD,0x29,0x74,0x01,
+ 0xF0,0x22,0x90,0xF7,0x66,0xE0,0x90,0x44,
+ 0x3F,0xF0,0xE0,0xFF,0x90,0x42,0x47,0xF0,
+ 0x90,0xF7,0x68,0xE0,0x90,0x44,0x9D,0xF0,
+ 0xEF,0x70,0x04,0x90,0x44,0x97,0xF0,0x90,
+ 0xF7,0x65,0xE0,0x90,0x44,0x9C,0xF0,0x90,
+ 0xF5,0xA9,0xE0,0x70,0x22,0x90,0xF7,0x63,
+ 0xE0,0x90,0x42,0x2F,0xF0,0x90,0xF7,0x64,
+ 0xE0,0x90,0x41,0xE8,0xF0,0x12,0x70,0x6A,
+ 0x90,0x44,0x3F,0xE0,0x90,0x41,0xD1,0xF0,
+ 0xE4,0x90,0x42,0x46,0xF0,0x80,0x0A,0x90,
+ 0x41,0xD1,0x74,0x01,0xF0,0x90,0x42,0x46,
+ 0xF0,0x12,0x99,0xCA,0x04,0x12,0x6E,0x75,
+ 0x90,0xF7,0x69,0xE0,0x70,0xFA,0x90,0xF7,
+ 0x6B,0x74,0x01,0xF0,0xE4,0xF0,0x22,0x90,
+ 0x42,0x3F,0xE0,0x64,0x01,0x70,0x42,0x90,
+ 0xFD,0x9D,0xE0,0xFE,0x90,0xFD,0x9C,0xE0,
+ 0x7C,0x00,0x24,0x00,0xFF,0xEC,0x3E,0xFE,
+ 0xC3,0xEF,0x94,0x46,0xEE,0x94,0x00,0x50,
+ 0x28,0x90,0xFD,0x37,0xE0,0x64,0x07,0x70,
+ 0x20,0x90,0xFD,0x29,0xF0,0x90,0x42,0x3D,
+ 0xF0,0x90,0xFD,0x2B,0xF0,0x7D,0xFF,0x7C,
+ 0x7F,0xFF,0x12,0x47,0xAD,0x90,0xF1,0x1A,
+ 0xE0,0x70,0xFA,0x90,0xFD,0x2B,0x74,0x01,
+ 0xF0,0x22,0xE5,0x0F,0x14,0xB4,0x08,0x00,
+ 0x50,0x5D,0x90,0x9B,0xD9,0x75,0xF0,0x03,
+ 0xA4,0xC5,0x83,0x25,0xF0,0xC5,0x83,0x73,
+ 0x02,0x9B,0xF1,0x02,0x9B,0xF8,0x02,0x9B,
+ 0xFF,0x02,0x9C,0x06,0x02,0x9C,0x0D,0x02,
+ 0x9C,0x14,0x02,0x9C,0x1B,0x02,0x9C,0x22,
+ 0x90,0xF2,0x1B,0x74,0x01,0xF0,0x22,0x90,
+ 0xF2,0x1B,0x74,0x02,0xF0,0x22,0x90,0xF2,
+ 0x1B,0x74,0x03,0xF0,0x22,0x90,0xF2,0x1B,
+ 0x74,0x04,0xF0,0x22,0x90,0xF2,0x1B,0x74,
+ 0x05,0xF0,0x22,0x90,0xF2,0x1B,0x74,0x06,
+ 0xF0,0x22,0x90,0xF2,0x1B,0x74,0x07,0xF0,
+ 0x22,0x90,0xF2,0x1B,0x74,0x08,0xF0,0x22,
+ 0xC2,0xAF,0x90,0x42,0x2F,0xE0,0x90,0xF7,
+ 0x5A,0xF0,0x90,0x41,0xE9,0xE0,0x90,0xF7,
+ 0x5B,0xF0,0x90,0x42,0x37,0xE0,0x90,0xF7,
+ 0x5C,0xF0,0xA3,0xEF,0xF0,0x90,0xF9,0x00,
+ 0xE0,0x90,0xF7,0x5E,0xF0,0x90,0x41,0xDF,
+ 0xE0,0x90,0xF7,0x5F,0xF0,0x90,0xF7,0x61,
+ 0x74,0x01,0xF0,0x90,0xF7,0x60,0xF0,0x7F,
+ 0x00,0x7E,0x28,0x12,0x47,0x76,0x90,0xF7,
+ 0x61,0xE4,0xF0,0x90,0xF7,0x60,0xF0,0xD2,
+ 0xAF,0x22,0x90,0xF5,0xA8,0xE4,0xF0,0x12,
+ 0x48,0xAC,0x22,0x12,0x9C,0xE6,0x90,0xF7,
+ 0x42,0xE0,0x90,0x44,0x99,0xF0,0xE0,0x90,
+ 0xF9,0x00,0xF0,0x90,0xF7,0x44,0xE0,0xFF,
+ 0x90,0xF9,0x08,0xF0,0x90,0xF7,0x43,0xE0,
+ 0xFF,0x90,0xF9,0x03,0xF0,0x90,0xF7,0x46,
+ 0xE0,0xFF,0x90,0xF9,0x06,0xF0,0x90,0xF7,
+ 0x47,0xE0,0xFF,0x90,0xF9,0x07,0xF0,0x90,
+ 0xF7,0x45,0xE0,0x54,0x03,0xFF,0x90,0xF9,
+ 0x02,0xF0,0x70,0x05,0x90,0xF9,0x05,0x04,
+ 0xF0,0x22,0xE4,0xFF,0xFE,0xC3,0xEF,0x94,
+ 0xFF,0xEE,0x64,0x80,0x94,0x7F,0x50,0x14,
+ 0xEF,0x24,0x58,0xFD,0xEE,0x34,0xF7,0x8D,
+ 0x82,0xF5,0x83,0xE4,0xF0,0x0F,0xBF,0x00,
+ 0x01,0x0E,0x80,0xE1,0x22,0x90,0xF5,0xB0,
+ 0xE0,0x60,0x0C,0x90,0xF9,0x00,0xE0,0xFF,
+ 0x90,0xF7,0x42,0xE0,0xB5,0x07,0x0D,0xE5,
+ 0x0F,0xB4,0x03,0x20,0x90,0xF7,0x42,0xE0,
+ 0x64,0x01,0x60,0x18,0x12,0x68,0xE0,0x75,
+ 0x0F,0x01,0x12,0x4D,0x1F,0x53,0x91,0xBF,
+ 0xE4,0x90,0x44,0x98,0xF0,0xD2,0xEA,0xD2,
+ 0xE9,0x12,0xA7,0x32,0x90,0x44,0x97,0x74,
+ 0x01,0xF0,0x22,0x90,0xFB,0x96,0xE0,0x30,
+ 0xE7,0x16,0xE4,0x90,0x42,0x37,0xF0,0x12,
+ 0x70,0xEE,0xE4,0x90,0x44,0xBE,0xF0,0xF5,
+ 0x2E,0x7F,0x80,0x7E,0x13,0x12,0x47,0x76,
+ 0x90,0xFB,0x88,0x74,0x01,0xF0,0x22,0x90,
+ 0x42,0x0A,0xE0,0xFF,0x90,0xF0,0x58,0xF0,
+ 0xEF,0xF0,0x90,0x41,0xDB,0xE0,0xB4,0x22,
+ 0x0B,0x90,0x42,0x0B,0xE0,0xFF,0x90,0xF0,
+ 0x58,0xF0,0xEF,0xF0,0x90,0x42,0x0D,0xE0,
+ 0x90,0xF0,0x58,0xF0,0x90,0x42,0x10,0xE0,
+ 0x90,0x42,0x08,0xF0,0xE4,0x90,0x41,0xD9,
+ 0xF0,0x22,0x90,0xF5,0xA9,0xE0,0x60,0x14,
+ 0x90,0x42,0x4E,0xE0,0x60,0x0E,0x90,0xF0,
+ 0x68,0xE0,0x20,0xE0,0xF9,0x90,0xF0,0x68,
+ 0xE0,0x30,0xE0,0xF9,0x22,0x12,0x9D,0x7B,
+ 0x90,0x42,0x0B,0xE0,0xFF,0x90,0xF0,0x58,
+ 0xF0,0xEF,0xF0,0x90,0x42,0x0D,0xE0,0xFF,
+ 0x90,0xF0,0x58,0xF0,0xEF,0xF0,0x22,0x12,
+ 0x9D,0x7B,0x90,0x42,0x0C,0xE0,0xFF,0x90,
+ 0xF0,0x58,0xF0,0xEF,0xF0,0x90,0x42,0x0D,
+ 0xE0,0xFF,0x90,0xF0,0x58,0xF0,0xEF,0xF0,
+ 0x22,0x90,0x42,0x0F,0xE0,0xFF,0x90,0x42,
+ 0x08,0xE0,0xC3,0x9F,0x50,0x06,0xE0,0x04,
+ 0xF0,0x12,0x9D,0x96,0x22,0x90,0x42,0x08,
+ 0xE0,0x60,0x05,0x14,0xF0,0x12,0x9D,0xB0,
+ 0x22,0x90,0x42,0x59,0xE0,0x60,0x1B,0x90,
+ 0x41,0xE7,0x74,0x01,0xF0,0x7F,0x84,0x12,
+ 0x89,0x23,0x90,0x41,0xD8,0x74,0x01,0xF0,
+ 0x90,0x43,0x41,0x74,0x86,0xF0,0x90,0xFB,
+ 0x28,0xF0,0x22,0x90,0x42,0x59,0xE0,0x60,
+ 0x18,0x7F,0x85,0x12,0x89,0x23,0xE4,0x90,
+ 0x41,0xE7,0xF0,0x90,0x41,0xD8,0xF0,0x90,
+ 0x43,0x41,0x74,0x82,0xF0,0x90,0xFB,0x28,
+ 0xF0,0x22,0x90,0x41,0xDB,0xE0,0xB4,0x2E,
+ 0x03,0x12,0xA2,0xD0,0x90,0x41,0xEC,0xE0,
+ 0x70,0x48,0x90,0x42,0x59,0xE0,0x60,0x42,
+ 0x90,0x41,0xE0,0xE0,0x70,0x12,0x90,0x42,
+ 0x03,0xE0,0x60,0x0C,0x90,0x44,0xAA,0xE0,
+ 0x75,0xF0,0x03,0x84,0xE5,0xF0,0x60,0x1B,
+ 0x90,0x41,0xDB,0xE0,0xB4,0x28,0x19,0x90,
+ 0x44,0xAA,0xE0,0x75,0xF0,0x03,0x84,0xE5,
+ 0xF0,0x64,0x02,0x60,0x0B,0x90,0xF0,0x2B,
+ 0xE0,0x70,0x05,0x12,0x9D,0xEA,0x80,0x03,
+ 0x12,0x9E,0x0C,0x74,0xFF,0xFF,0xFE,0x12,
+ 0x47,0x76,0x22,0xE5,0x13,0x60,0x30,0x30,
+ 0xE7,0x07,0x12,0x9D,0xDE,0x05,0x13,0x80,
+ 0xF2,0x12,0x9D,0xCA,0x15,0x13,0x90,0x41,
+ 0xDB,0xE0,0xB4,0x22,0xE6,0xE5,0x13,0x70,
+ 0xE2,0x90,0x42,0x08,0xE0,0xFF,0x54,0x0F,
+ 0xFE,0xBE,0x0F,0xD7,0xEF,0xC3,0x94,0x40,
+ 0x50,0xD1,0x12,0x9D,0xCA,0x80,0xCC,0x90,
+ 0x42,0x08,0xE0,0x90,0x42,0x41,0xF0,0x22,
+ 0xC2,0xAD,0x12,0x9D,0x48,0x90,0x42,0x59,
+ 0xE0,0x60,0x05,0xE4,0x90,0x44,0xA0,0xF0,
+ 0x90,0xF0,0x01,0x74,0x01,0xF0,0xE4,0x90,
+ 0x44,0x90,0xF0,0x90,0xF0,0x01,0xE0,0xB4,
+ 0x01,0xF9,0x12,0xA4,0x86,0xE5,0x13,0x60,
+ 0x1E,0x12,0x9E,0x84,0x7D,0x33,0x7C,0x01,
+ 0xE4,0xFF,0x12,0x47,0xAD,0x90,0xF1,0x1A,
+ 0xE0,0x70,0xFA,0x90,0x44,0x90,0xE0,0x04,
+ 0xF0,0xE0,0xC3,0x94,0x30,0x40,0xD4,0xD2,
+ 0xAD,0x90,0x42,0x59,0xE0,0x60,0x12,0x90,
+ 0x42,0x08,0xE0,0x70,0x0C,0x90,0x42,0x44,
+ 0xE0,0xD3,0x94,0xD0,0x40,0x03,0x12,0x9D,
+ 0xEA,0x22,0x90,0xF0,0x01,0xE0,0xB4,0x01,
+ 0x06,0x12,0xA4,0x86,0x12,0x9E,0x84,0x22,
+ 0xE4,0xFF,0xFE,0x90,0x44,0x91,0xF0,0x90,
+ 0x42,0x59,0xE0,0x70,0x03,0x02,0xA0,0x2E,
+ 0x90,0x42,0x08,0xE0,0xFD,0xFC,0x90,0x42,
+ 0x48,0xE0,0xFB,0xB4,0x01,0x05,0x90,0xF0,
+ 0x61,0xE0,0xFC,0x90,0x42,0x39,0xE0,0xFA,
+ 0xEC,0xC3,0x9A,0x50,0x02,0x7F,0x01,0xEB,
+ 0x70,0x13,0x90,0x42,0x42,0xE0,0xFC,0xED,
+ 0xC3,0x9C,0x50,0x09,0xC3,0xE5,0x1F,0x94,
+ 0x20,0x50,0x02,0x7E,0x01,0x90,0x42,0x48,
+ 0xE0,0xB4,0x01,0x0F,0x90,0x42,0x42,0xE0,
+ 0xFD,0x90,0xF0,0x61,0xE0,0xC3,0x9D,0x50,
+ 0x02,0x7E,0x01,0x90,0x44,0xA1,0xE0,0x64,
+ 0x03,0x60,0x08,0x90,0x42,0x58,0xE0,0x64,
+ 0x01,0x60,0xF0,0x90,0x41,0xEC,0xE0,0x60,
+ 0x03,0x02,0xA0,0x2E,0x90,0x41,0xE7,0xE0,
+ 0x70,0x1F,0xEF,0x70,0x09,0x90,0x41,0xD9,
+ 0xE0,0x60,0x7A,0xEE,0x60,0x77,0x12,0x9D,
+ 0xEA,0x90,0x44,0xA0,0x74,0x32,0xF0,0x90,
+ 0x41,0xD9,0xE0,0x60,0x68,0x12,0x72,0x37,
+ 0x22,0x90,0x42,0x4D,0xE0,0xFF,0x90,0x41,
+ 0xE0,0xE0,0xB4,0x01,0x05,0x90,0x42,0x4C,
+ 0xE0,0xFF,0x90,0x42,0x48,0xE0,0xFE,0x70,
+ 0x1E,0x90,0x42,0x08,0xE0,0xFD,0xD3,0x9F,
+ 0x50,0x0F,0x90,0x41,0xFD,0xE0,0xFC,0xED,
+ 0x9C,0x40,0x0C,0x90,0x41,0xD9,0xE0,0x70,
+ 0x06,0x90,0x44,0x91,0x74,0x01,0xF0,0xEE,
+ 0x64,0x01,0x70,0x20,0x90,0xF0,0x61,0xE0,
+ 0xD3,0x9F,0x50,0x12,0x90,0x41,0xFD,0xE0,
+ 0xFF,0x90,0xF0,0x61,0xE0,0x9F,0x40,0x0C,
+ 0x90,0x41,0xD9,0xE0,0x70,0x06,0x90,0x44,
+ 0x91,0x74,0x01,0xF0,0x90,0x44,0x91,0xE0,
+ 0x60,0x03,0x12,0x9E,0x0C,0x22,0x90,0x41,
+ 0xDB,0xE0,0x64,0x27,0x70,0x35,0x90,0x41,
+ 0xE0,0xE0,0x64,0x01,0x60,0x18,0x90,0x42,
+ 0x08,0xE0,0xC3,0x94,0x64,0x40,0x08,0x90,
+ 0x41,0xD8,0x74,0x01,0xF0,0x80,0x0C,0xE4,
+ 0x90,0x41,0xD8,0xF0,0x80,0x05,0xE4,0x90,
+ 0x41,0xD8,0xF0,0x12,0xA0,0x6D,0x90,0x41,
+ 0xD8,0xE0,0x90,0x44,0xB0,0xF0,0xE4,0x90,
+ 0x44,0xB3,0xF0,0x22,0x90,0x41,0xD8,0xE0,
+ 0x90,0xFB,0x97,0xF0,0x7F,0x86,0x12,0x89,
+ 0x23,0x22,0x90,0x41,0xDB,0xE0,0x64,0x27,
+ 0x60,0x03,0x02,0xA2,0x64,0x7F,0x25,0x12,
+ 0x89,0x23,0x90,0xFB,0x9F,0xE0,0x90,0x44,
+ 0xB1,0xF0,0x90,0xFB,0xA0,0xE0,0x90,0x44,
+ 0xB2,0xF0,0x90,0x44,0xB1,0xE0,0xFE,0xA3,
+ 0xE0,0x7C,0x00,0x24,0x00,0xFF,0xEC,0x3E,
+ 0x90,0x44,0xAE,0xF0,0xA3,0xEF,0xF0,0x90,
+ 0x41,0xE0,0xE0,0x64,0x01,0x60,0x60,0x90,
+ 0x44,0xAE,0xE0,0x70,0x02,0xA3,0xE0,0x70,
+ 0x20,0x90,0x42,0x08,0xE0,0xC3,0x94,0x69,
+ 0x40,0x17,0x90,0x41,0xD9,0xE0,0x70,0x11,
+ 0x90,0x44,0xB0,0xE0,0xB4,0x01,0x0A,0xE4,
+ 0xF0,0x90,0x41,0xD8,0xF0,0x12,0xA0,0x6D,
+ 0x22,0xD3,0x90,0x44,0xAF,0xE0,0x94,0xD2,
+ 0x90,0x44,0xAE,0xE0,0x94,0x00,0x40,0x09,
+ 0x90,0x42,0x08,0xE0,0xD3,0x94,0x5A,0x40,
+ 0x0B,0x90,0x41,0xD9,0xE0,0x64,0x01,0x60,
+ 0x03,0x02,0xA2,0x64,0x90,0x44,0xB0,0xE0,
+ 0x60,0x03,0x02,0xA2,0x64,0x04,0xF0,0x90,
+ 0x41,0xD8,0xF0,0x12,0xA0,0x6D,0x22,0x90,
+ 0x44,0xAE,0xE0,0x70,0x02,0xA3,0xE0,0x60,
+ 0x03,0x02,0xA1,0xB6,0x90,0x42,0x08,0xE0,
+ 0xFF,0xC3,0x94,0x69,0x40,0x06,0x90,0xF0,
+ 0x2B,0xE0,0x60,0x0E,0xEF,0xC3,0x94,0x5A,
+ 0x40,0x7B,0x90,0xF0,0x2B,0xE0,0x64,0x01,
+ 0x70,0x73,0x90,0x44,0xB0,0xE0,0xB4,0x01,
+ 0x10,0xE4,0xF0,0x90,0x41,0xD8,0xF0,0x12,
+ 0xA0,0x6D,0x90,0x44,0xB3,0xE0,0x04,0xF0,
+ 0x22,0x90,0x44,0xB0,0xE0,0xB4,0x02,0x22,
+ 0x90,0x41,0xD9,0xE0,0x60,0x08,0x90,0x44,
+ 0xB0,0x74,0x03,0xF0,0x80,0x05,0xE4,0x90,
+ 0x44,0xB0,0xF0,0xE4,0x90,0x41,0xD8,0xF0,
+ 0x12,0xA0,0x6D,0x90,0x44,0xB3,0xE0,0x04,
+ 0xF0,0x22,0x90,0x44,0xB0,0xE0,0xFF,0xB4,
+ 0x04,0x0F,0x90,0x41,0xD9,0xE0,0x60,0x03,
+ 0x02,0xA2,0x64,0x90,0x44,0xB0,0x04,0xF0,
+ 0x22,0xEF,0x64,0x05,0x60,0x03,0x02,0xA2,
+ 0x64,0x90,0x44,0xB0,0x74,0x06,0xF0,0xE4,
+ 0x90,0x41,0xD8,0xF0,0x12,0xA0,0x6D,0xE4,
+ 0x90,0x44,0xB3,0xF0,0x22,0xD3,0x90,0x44,
+ 0xAF,0xE0,0x94,0x2C,0x90,0x44,0xAE,0xE0,
+ 0x94,0x01,0x40,0x08,0x90,0x42,0x08,0xE0,
+ 0x94,0x64,0x50,0x33,0x90,0x44,0xAE,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0xD3,0x94,0xE6,0xEE,
+ 0x94,0x00,0x40,0x09,0x90,0x42,0x08,0xE0,
+ 0xD3,0x94,0x64,0x40,0x1A,0xD3,0xEF,0x94,
+ 0x2C,0xEE,0x94,0x01,0x40,0x62,0x90,0x42,
+ 0x08,0xE0,0xD3,0x94,0x2D,0x50,0x59,0x90,
+ 0xF0,0x2B,0xE0,0x64,0x01,0x70,0x51,0x90,
+ 0x44,0xB0,0xE0,0x70,0x32,0x90,0x41,0xD8,
+ 0x04,0xF0,0x12,0xA0,0x6D,0x90,0x41,0xD9,
+ 0xE0,0x60,0x08,0x90,0x44,0xB0,0x74,0x02,
+ 0xF0,0x80,0x15,0x90,0x44,0xB3,0xE0,0xB4,
+ 0x02,0x08,0x90,0x44,0xB0,0x74,0x05,0xF0,
+ 0x80,0x06,0x90,0x44,0xB0,0x74,0x01,0xF0,
+ 0x90,0x44,0xB3,0xE0,0x04,0xF0,0x22,0x90,
+ 0x44,0xB0,0xE0,0xB4,0x03,0x25,0x74,0x04,
+ 0xF0,0x90,0x41,0xD8,0x74,0x01,0xF0,0x12,
+ 0xA0,0x6D,0xE4,0x90,0x44,0xB3,0xF0,0x22,
+ 0x90,0x44,0xAE,0xE0,0x70,0x02,0xA3,0xE0,
+ 0x70,0x09,0x90,0x44,0xB0,0xE0,0xB4,0x06,
+ 0x02,0xE4,0xF0,0x22,0xC2,0xAF,0x90,0x41,
+ 0xDB,0xE0,0x64,0x32,0x70,0x5E,0x90,0xF9,
+ 0x04,0xE0,0x64,0x02,0x70,0x56,0x90,0x41,
+ 0xED,0xE0,0x70,0x50,0x90,0x41,0xD9,0xE0,
+ 0x70,0x11,0xD3,0xE5,0x20,0x94,0x50,0xE5,
+ 0x1F,0x94,0x06,0x40,0x13,0x90,0x44,0xA9,
+ 0xE0,0x70,0x0D,0x7F,0x88,0x12,0x89,0x23,
+ 0x90,0x44,0xA9,0x74,0x01,0xF0,0x80,0x2C,
+ 0xC3,0xE5,0x20,0x94,0x50,0xE5,0x1F,0x94,
+ 0x04,0x50,0x08,0x90,0x44,0xA9,0xE0,0x64,
+ 0x01,0x60,0x0F,0x90,0xF9,0x99,0xE0,0x20,
+ 0xE0,0x12,0x90,0xF7,0x31,0xE0,0x64,0x01,
+ 0x60,0x0A,0x7F,0x87,0x12,0x89,0x23,0xE4,
+ 0x90,0x44,0xA9,0xF0,0xD2,0xAF,0x22,0x90,
+ 0xFB,0x2A,0x74,0x71,0xF0,0x74,0xFF,0xFF,
+ 0xFE,0x12,0x47,0x76,0x74,0xFF,0xFF,0xFE,
+ 0x12,0x47,0x76,0x90,0xFB,0x97,0xE4,0xF0,
+ 0x7F,0x18,0x12,0x89,0x23,0x90,0xFB,0x08,
+ 0xE0,0xFE,0x90,0xFB,0x07,0xE0,0x7C,0x00,
+ 0x24,0x00,0xFF,0xEC,0x3E,0x90,0x44,0xB5,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0xFB,0x97,0x74,
+ 0x08,0xF0,0x7F,0x18,0x12,0x89,0x23,0x90,
+ 0xFB,0x2A,0x74,0x75,0xF0,0x22,0x90,0xFB,
+ 0x08,0xE0,0xFE,0x90,0xFB,0x07,0xE0,0x7C,
+ 0x00,0x24,0x00,0xFF,0xEC,0x3E,0xFE,0x90,
+ 0x44,0xB5,0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,
+ 0xEF,0x9D,0xFF,0xEE,0x9C,0x90,0x44,0x92,
+ 0xF0,0xA3,0xEF,0xF0,0x7F,0x19,0x12,0x89,
+ 0x23,0x90,0xFB,0x9F,0xE0,0x90,0x44,0xB4,
+ 0xF0,0xE0,0xFF,0x54,0x07,0xFD,0x44,0x08,
+ 0xFD,0xEF,0xD3,0x94,0x0F,0x40,0x08,0x90,
+ 0x44,0x94,0x74,0x02,0xF0,0x80,0x1C,0x90,
+ 0x44,0xB4,0xE0,0xFF,0xC3,0x94,0x10,0x50,
+ 0x0D,0xEF,0x94,0x07,0x40,0x08,0x90,0x44,
+ 0x94,0x74,0x01,0xF0,0x80,0x05,0xE4,0x90,
+ 0x44,0x94,0xF0,0x7C,0x02,0x90,0x41,0xD9,
+ 0xE0,0x64,0x01,0x70,0x35,0x90,0x44,0x92,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x94,0x40,
+ 0xEE,0x64,0x80,0x94,0x81,0x50,0x0D,0x90,
+ 0x44,0xB4,0xE0,0x64,0x10,0x60,0x4E,0x1D,
+ 0xE4,0xFC,0x80,0x49,0xD3,0xEF,0x94,0x50,
+ 0xEE,0x64,0x80,0x94,0x81,0x40,0x3E,0x90,
+ 0x44,0x94,0xE0,0x60,0x38,0x0D,0x7C,0x01,
+ 0x80,0x33,0x90,0x44,0x92,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0xC3,0x94,0x49,0xEE,0x64,0x80,
+ 0x94,0x81,0x50,0x0D,0x90,0x44,0xB4,0xE0,
+ 0x64,0x10,0x60,0x19,0x1D,0xE4,0xFC,0x80,
+ 0x14,0xD3,0xEF,0x94,0x92,0xEE,0x64,0x80,
+ 0x94,0x81,0x40,0x09,0x90,0x44,0x94,0xE0,
+ 0x60,0x03,0x0D,0x7C,0x01,0xEC,0x64,0x01,
+ 0x70,0x36,0xED,0xD3,0x94,0x0F,0x40,0x0C,
+ 0x90,0x44,0x94,0xE0,0xB4,0x01,0x05,0xE4,
+ 0xA3,0xF0,0x80,0x6E,0xED,0xD3,0x94,0x0F,
+ 0x40,0x0D,0x90,0x44,0x94,0xE0,0xB4,0x02,
+ 0x06,0xA3,0x74,0x08,0xF0,0x80,0x5B,0x90,
+ 0x44,0x94,0xE0,0xFF,0x33,0x33,0x33,0x54,
+ 0xF8,0x2D,0x24,0xF8,0xA3,0xF0,0x80,0x4A,
+ 0xEC,0x70,0x38,0xED,0xC3,0x94,0x08,0x50,
+ 0x0D,0x90,0x44,0x94,0xE0,0x70,0x07,0xED,
+ 0x24,0x08,0xA3,0xF0,0x80,0x34,0xED,0xC3,
+ 0x94,0x08,0x50,0x0E,0x90,0x44,0x94,0xE0,
+ 0xB4,0x01,0x07,0xED,0x24,0x10,0xA3,0xF0,
+ 0x80,0x20,0x90,0x44,0x94,0xE0,0xFF,0x33,
+ 0x33,0x33,0x54,0xF8,0x2D,0x24,0xF8,0xA3,
+ 0xF0,0x80,0x0F,0x90,0x44,0x94,0xE0,0xFF,
+ 0x33,0x33,0x33,0x54,0xF8,0x2D,0x24,0xF8,
+ 0xA3,0xF0,0xEC,0x64,0x02,0x60,0x0D,0x90,
+ 0x44,0x95,0xE0,0x90,0xFB,0x97,0xF0,0x7F,
+ 0x89,0x12,0x89,0x23,0x22,0x90,0xF0,0x02,
+ 0xE0,0xF5,0x12,0xA3,0xE0,0xF5,0x11,0xE0,
+ 0x60,0x04,0x7F,0xFF,0x80,0x05,0x90,0xF0,
+ 0x02,0xE0,0xFF,0x90,0x42,0x44,0xEF,0xF0,
+ 0x90,0xF0,0x63,0xE0,0x90,0x44,0x9E,0xF0,
+ 0x90,0xF0,0x62,0xE0,0x90,0x44,0x9F,0xF0,
+ 0x90,0x44,0xA3,0xE0,0xFB,0x7A,0x00,0x90,
+ 0x44,0x9F,0xE0,0x2B,0xFE,0x90,0x44,0x9E,
+ 0xE0,0x3A,0x90,0x44,0xA5,0xF0,0xA3,0xCE,
+ 0xF0,0xC3,0x90,0x44,0x9F,0xE0,0x9B,0xFE,
+ 0x90,0x44,0x9E,0xE0,0x9A,0x90,0x44,0xA7,
+ 0xF0,0xA3,0xCE,0xF0,0x90,0x44,0xA6,0xE0,
+ 0x25,0xE0,0xFF,0x90,0x44,0xA5,0xE0,0x33,
+ 0xFE,0xD3,0xE5,0x12,0x9F,0xE5,0x11,0x9E,
+ 0x40,0x05,0x75,0x13,0xFC,0x80,0x44,0xC3,
+ 0x90,0x44,0xA6,0xE0,0x95,0x12,0x90,0x44,
+ 0xA5,0xE0,0x95,0x11,0x50,0x05,0x75,0x13,
+ 0xFF,0x80,0x30,0x90,0x44,0xA7,0xE0,0xC3,
+ 0x13,0xFE,0xA3,0xE0,0x13,0xFF,0xC3,0xE5,
+ 0x12,0x9F,0xE5,0x11,0x9E,0x50,0x05,0x75,
+ 0x13,0x04,0x80,0x17,0xD3,0x90,0x44,0xA8,
+ 0xE0,0x95,0x12,0x90,0x44,0xA7,0xE0,0x95,
+ 0x11,0x40,0x05,0x75,0x13,0x01,0x80,0x03,
+ 0xE4,0xF5,0x13,0x90,0xF0,0x01,0x74,0x01,
+ 0xF0,0x22,0x90,0xF0,0x2B,0xE0,0x70,0x0E,
+ 0x90,0x43,0x3E,0xF0,0x90,0xFD,0x74,0xF0,
+ 0x90,0xF1,0xE9,0x04,0xF0,0x22,0x90,0xF1,
+ 0xE9,0xE4,0xF0,0x90,0xFD,0x74,0x04,0xF0,
+ 0x22,0xE5,0x0F,0xB4,0x02,0x05,0xE4,0x90,
+ 0x44,0xA1,0xF0,0x90,0x41,0xF5,0xE0,0x70,
+ 0x0A,0xF5,0x21,0xF5,0x22,0xF5,0x24,0xF5,
+ 0x25,0xF5,0x23,0x90,0x42,0x58,0xE0,0x60,
+ 0x05,0xE4,0xF5,0x2A,0xF5,0x2B,0x22,0xE5,
+ 0x22,0xD3,0x94,0x00,0x40,0x23,0x90,0x42,
+ 0x44,0xE0,0xFE,0xE5,0x23,0xD3,0x9E,0x40,
+ 0x06,0xE5,0x23,0x9E,0xFF,0x80,0x08,0x90,
+ 0x42,0x44,0xE0,0xC3,0x95,0x23,0xFF,0xEF,
+ 0x25,0x25,0xF5,0x25,0xE4,0x35,0x24,0xF5,
+ 0x24,0x90,0x42,0x44,0xE0,0xF5,0x23,0x22,
+ 0x90,0x42,0x05,0xE0,0xFD,0x90,0x42,0x06,
+ 0xE0,0x8D,0xF0,0xA4,0xFF,0xD3,0xE5,0x25,
+ 0x9F,0xE5,0x24,0x95,0xF0,0x40,0x08,0x90,
+ 0xF0,0x2B,0x74,0x01,0xF0,0x80,0x17,0x90,
+ 0x42,0x07,0xE0,0x8D,0xF0,0xA4,0xFF,0xC3,
+ 0xE5,0x25,0x9F,0xE5,0x24,0x95,0xF0,0x50,
+ 0x05,0x90,0xF0,0x2B,0xE4,0xF0,0x90,0xF0,
+ 0x2B,0xE0,0x60,0x0D,0x90,0x44,0xA3,0x74,
+ 0x15,0xF0,0x90,0xF7,0x0B,0x74,0x0B,0xF0,
+ 0x22,0x90,0x42,0x2D,0xE0,0x90,0x44,0xA3,
+ 0xF0,0x90,0xF7,0x0B,0x74,0x2B,0xF0,0x22,
+ 0xE5,0x0F,0xD3,0x94,0x02,0x40,0x37,0xE5,
+ 0x21,0xB4,0x01,0x03,0x12,0xA5,0x62,0xE5,
+ 0x21,0x70,0x21,0x90,0x42,0x05,0xE0,0xFF,
+ 0xE5,0x22,0xC3,0x9F,0x50,0x0A,0x12,0xA5,
+ 0x88,0x12,0xA6,0x50,0x05,0x22,0x80,0x0C,
+ 0x75,0x21,0x01,0x12,0xA6,0xB6,0x12,0xA5,
+ 0xB9,0x12,0xA5,0x43,0x90,0x41,0xDB,0xE0,
+ 0xB4,0x2E,0x03,0x12,0xA3,0x17,0x22,0x90,
+ 0xF1,0x61,0xE0,0xFE,0x90,0xF1,0x60,0xE0,
+ 0x7C,0x00,0x24,0x00,0xFF,0xEC,0x3E,0x90,
+ 0x44,0xB8,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0x58,0xE0,0x60,0x48,0xE4,0xF5,0x26,0xF5,
+ 0x27,0x90,0xF2,0x10,0xE0,0xF5,0x28,0x90,
+ 0xF2,0x0F,0xE0,0xF5,0x29,0x90,0x42,0x44,
+ 0xE0,0xFF,0xE4,0xFC,0xFD,0xFE,0xAB,0x29,
+ 0xAA,0x28,0xA9,0x27,0xA8,0x26,0x12,0xA9,
+ 0xD1,0x8F,0x29,0x8E,0x28,0x8D,0x27,0x8C,
+ 0x26,0xAF,0x29,0xAE,0x28,0xAD,0x27,0xAC,
+ 0x26,0x90,0xF2,0x11,0xE0,0xF9,0xF8,0x12,
+ 0xAA,0x55,0xEF,0x25,0x2B,0xF5,0x2B,0xEE,
+ 0x35,0x2A,0xF5,0x2A,0x22,0x90,0x42,0x58,
+ 0xE0,0x60,0x6E,0x90,0x44,0xA1,0xE0,0xFF,
+ 0xD3,0x94,0x01,0x50,0x07,0xEF,0x60,0x61,
+ 0x74,0x02,0xF0,0x22,0x85,0x2A,0x1F,0x85,
+ 0x2B,0x20,0xD3,0xE5,0x2B,0x94,0x50,0xE5,
+ 0x2A,0x94,0x07,0x40,0x08,0x90,0x41,0xD9,
+ 0x74,0x01,0xF0,0x80,0x3E,0xC3,0xE5,0x2B,
+ 0x94,0x50,0xE5,0x2A,0x94,0x05,0x50,0x33,
+ 0x90,0x41,0xDB,0xE0,0xB4,0x27,0x27,0xD3,
+ 0x90,0x44,0xAF,0xE0,0x94,0x1E,0x90,0x44,
+ 0xAE,0xE0,0x94,0x00,0x40,0x18,0x90,0x42,
+ 0x08,0xE0,0x94,0x7D,0x40,0x10,0x90,0x41,
+ 0xE0,0xE0,0x64,0x01,0x60,0x08,0x90,0x41,
+ 0xD9,0x74,0x01,0xF0,0x80,0x05,0xE4,0x90,
+ 0x41,0xD9,0xF0,0x90,0x44,0xA1,0x74,0x03,
+ 0xF0,0x22,0x90,0x41,0xE2,0x74,0x01,0xF0,
+ 0x22,0x7B,0x01,0x7A,0x43,0x79,0x49,0x7D,
+ 0x01,0x7C,0x00,0x12,0xAD,0x13,0x22,0xC2,
+ 0xAF,0x12,0x90,0x3D,0xD2,0xAF,0x22,0x90,
+ 0x41,0xE3,0xE0,0x60,0x0C,0x90,0x44,0xBD,
+ 0xE0,0x60,0x06,0x7F,0x1A,0x12,0x89,0x23,
+ 0x22,0xE4,0xFD,0xFF,0x12,0x49,0x27,0x90,
+ 0xFE,0x01,0xE0,0xFE,0xA3,0xE0,0xF4,0xFF,
+ 0xEE,0xF4,0xA3,0xF0,0xA3,0xEF,0xF0,0x22,
+ 0x90,0x44,0x46,0xE0,0x75,0xF0,0x05,0xA4,
+ 0xFF,0xAE,0xF0,0x90,0x44,0x45,0xE0,0x2F,
+ 0xF0,0x90,0x44,0x44,0xE0,0x3E,0xF0,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x44,0x6C,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0x12,0xA9,0x46,0x90,
+ 0x44,0x44,0xEC,0xF0,0xA3,0xED,0xF0,0x90,
+ 0x44,0x44,0xE0,0xFE,0xA3,0xE0,0x78,0x05,
+ 0xCE,0xC3,0x13,0xCE,0x13,0xD8,0xF9,0xFF,
+ 0x90,0xF9,0x00,0xE0,0x70,0x08,0xEF,0x25,
+ 0xE0,0x25,0xE0,0xFF,0x80,0x0B,0x90,0xF9,
+ 0x00,0xE0,0xB4,0x02,0x04,0xEF,0x25,0xE0,
+ 0xFF,0x90,0x41,0xD9,0xE0,0x60,0x27,0xEF,
+ 0xC3,0x94,0x16,0x40,0x16,0xEF,0xD3,0x94,
+ 0x57,0x40,0x05,0xEF,0x94,0x6D,0x40,0x0B,
+ 0xEF,0xD3,0x94,0x7D,0x40,0x10,0xEF,0x94,
+ 0x8F,0x50,0x0B,0x90,0x44,0xBA,0xE0,0x04,
+ 0xF0,0xA3,0x74,0x01,0xF0,0x22,0xE4,0x90,
+ 0x44,0xBB,0xF0,0x12,0x98,0xB8,0x22,0x90,
+ 0xFD,0x33,0xE4,0xF0,0x04,0xF0,0x90,0xFD,
+ 0x36,0xE0,0xB4,0x01,0xF9,0x12,0x96,0xBB,
+ 0x22,0x7D,0xFE,0x7C,0x27,0xE4,0xFF,0x12,
+ 0x47,0xAD,0x90,0xF1,0x1A,0xE0,0x70,0xFA,
+ 0x22,0x90,0x44,0x97,0xE0,0x70,0x17,0x90,
+ 0xF9,0x99,0xE0,0x70,0x11,0x90,0xF9,0x00,
+ 0xE0,0x70,0x04,0x7F,0x01,0x80,0x02,0x7F,
+ 0x00,0x90,0xF9,0x00,0xEF,0xF0,0x90,0x44,
+ 0xAA,0xE0,0x04,0xF0,0xE4,0xF5,0x2D,0x90,
+ 0x43,0xFC,0xF0,0xF5,0x2E,0x90,0x42,0x37,
+ 0xF0,0x90,0xF7,0x0B,0x74,0x2F,0xF0,0x90,
+ 0x44,0xBF,0x74,0x01,0xF0,0xE4,0xA3,0xF0,
+ 0x90,0x42,0x38,0xE0,0x90,0x44,0xBE,0xF0,
+ 0xE4,0x90,0x41,0xD9,0xF0,0x90,0x41,0xDB,
+ 0xE0,0xB4,0x32,0x0C,0x90,0x44,0xA9,0xE0,
+ 0xB4,0x01,0x05,0x7F,0x87,0x12,0x89,0x23,
+ 0xE4,0x90,0x44,0xA9,0xF0,0x90,0x44,0xC1,
+ 0xF0,0x22,0xE4,0x90,0x44,0xAA,0xF0,0x90,
+ 0x41,0xDC,0xF0,0x90,0x44,0x9C,0xF0,0x22,
+ 0x90,0xF7,0x81,0x74,0x40,0xF0,0x90,0xFD,
+ 0xA4,0x74,0x0A,0xF0,0x22,0x90,0xF5,0xB0,
+ 0xE4,0xF0,0xE5,0x0F,0xB4,0x09,0x02,0x05,
+ 0x2D,0x90,0x41,0xE6,0xE0,0xFF,0xE5,0x2D,
+ 0x8F,0xF0,0x84,0x85,0xF0,0x2D,0x75,0x0F,
+ 0x08,0xE5,0x2D,0x60,0x0A,0x90,0xF5,0x4E,
+ 0xE0,0x60,0x04,0xA3,0xE0,0x70,0x06,0x75,
+ 0x0F,0x01,0x12,0x68,0xE0,0x90,0xF2,0x17,
+ 0x74,0xFE,0xF0,0x90,0x44,0xBF,0x74,0x01,
+ 0xF0,0xE4,0xA3,0xF0,0x22,0xE5,0x2D,0x70,
+ 0x06,0x12,0x6A,0xF0,0x12,0x6B,0x53,0x22,
+ 0x90,0x43,0x42,0x74,0x01,0xF0,0x22,0x90,
+ 0xF9,0x0B,0xE4,0xF0,0x90,0xF5,0xD7,0x04,
+ 0xF0,0x90,0xF5,0xD7,0xE0,0x70,0xFA,0x22,
+ 0x12,0x86,0x81,0x05,0x2E,0x22,0xE4,0xF5,
+ 0x2E,0x90,0x44,0x9C,0xF0,0x22,
+
+ 0x02,0xA9,0x1B,0x06,0xDE,0x04,0x50,0xBB,
+ 0x01,0x06,0x89,0x82,0x8A,0x83,0xE0,0x22,
+ 0x50,0x02,0xE7,0x22,0xBB,0xFE,0x02,0xE3,
+ 0x22,0x89,0x82,0x8A,0x83,0xE4,0x93,0x22,
+ 0xEF,0x8D,0xF0,0xA4,0xA8,0xF0,0xCF,0x8C,
+ 0xF0,0xA4,0x28,0xCE,0x8D,0xF0,0xA4,0x2E,
+ 0xFE,0x22,0xBC,0x00,0x0B,0xBE,0x00,0x29,
+ 0xEF,0x8D,0xF0,0x84,0xFF,0xAD,0xF0,0x22,
+ 0xE4,0xCC,0xF8,0x75,0xF0,0x08,0xEF,0x2F,
+ 0xFF,0xEE,0x33,0xFE,0xEC,0x33,0xFC,0xEE,
+ 0x9D,0xEC,0x98,0x40,0x05,0xFC,0xEE,0x9D,
+ 0xFE,0x0F,0xD5,0xF0,0xE9,0xE4,0xCE,0xFD,
+ 0x22,0xED,0xF8,0xF5,0xF0,0xEE,0x84,0x20,
+ 0xD2,0x1C,0xFE,0xAD,0xF0,0x75,0xF0,0x08,
+ 0xEF,0x2F,0xFF,0xED,0x33,0xFD,0x40,0x07,
+ 0x98,0x50,0x06,0xD5,0xF0,0xF2,0x22,0xC3,
+ 0x98,0xFD,0x0F,0xD5,0xF0,0xEA,0x22,0xC2,
+ 0xD5,0xEC,0x30,0xE7,0x09,0xB2,0xD5,0xE4,
+ 0xC3,0x9D,0xFD,0xE4,0x9C,0xFC,0xEE,0x30,
+ 0xE7,0x15,0xB2,0xD5,0xE4,0xC3,0x9F,0xFF,
+ 0xE4,0x9E,0xFE,0x12,0xA9,0x46,0xC3,0xE4,
+ 0x9D,0xFD,0xE4,0x9C,0xFC,0x80,0x03,0x12,
+ 0xA9,0x46,0x30,0xD5,0x07,0xC3,0xE4,0x9F,
+ 0xFF,0xE4,0x9E,0xFE,0x22,0xE8,0x8F,0xF0,
+ 0xA4,0xCC,0x8B,0xF0,0xA4,0x2C,0xFC,0xE9,
+ 0x8E,0xF0,0xA4,0x2C,0xFC,0x8A,0xF0,0xED,
+ 0xA4,0x2C,0xFC,0xEA,0x8E,0xF0,0xA4,0xCD,
+ 0xA8,0xF0,0x8B,0xF0,0xA4,0x2D,0xCC,0x38,
+ 0x25,0xF0,0xFD,0xE9,0x8F,0xF0,0xA4,0x2C,
+ 0xCD,0x35,0xF0,0xFC,0xEB,0x8E,0xF0,0xA4,
+ 0xFE,0xA9,0xF0,0xEB,0x8F,0xF0,0xA4,0xCF,
+ 0xC5,0xF0,0x2E,0xCD,0x39,0xFE,0xE4,0x3C,
+ 0xFC,0xEA,0xA4,0x2D,0xCE,0x35,0xF0,0xFD,
+ 0xE4,0x3C,0xFC,0x22,0xC3,0xE4,0x9F,0xFF,
+ 0xE4,0x9E,0xFE,0xE4,0x9D,0xFD,0xE4,0x9C,
+ 0xFC,0x22,0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,
+ 0x42,0xF0,0xE9,0x9D,0x42,0xF0,0xEC,0x64,
+ 0x80,0xC8,0x64,0x80,0x98,0x45,0xF0,0x22,
+ 0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,0x42,0xF0,
+ 0xE9,0x9D,0x42,0xF0,0xE8,0x9C,0x45,0xF0,
+ 0x22,0xE8,0x60,0x0F,0xEC,0xC3,0x13,0xFC,
+ 0xED,0x13,0xFD,0xEE,0x13,0xFE,0xEF,0x13,
+ 0xFF,0xD8,0xF1,0x22,0xE8,0x60,0x10,0xEC,
+ 0xA2,0xE7,0x13,0xFC,0xED,0x13,0xFD,0xEE,
+ 0x13,0xFE,0xEF,0x13,0xFF,0xD8,0xF0,0x22,
+ 0xE8,0x60,0x0F,0xEF,0xC3,0x33,0xFF,0xEE,
+ 0x33,0xFE,0xED,0x33,0xFD,0xEC,0x33,0xFC,
+ 0xD8,0xF1,0x22,0xEC,0xF0,0xA3,0xED,0xF0,
+ 0xA3,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,0xA8,
+ 0x82,0x85,0x83,0xF0,0xD0,0x83,0xD0,0x82,
+ 0x12,0xAA,0xB2,0x12,0xAA,0xB2,0x12,0xAA,
+ 0xB2,0x12,0xAA,0xB2,0xE4,0x73,0xE4,0x93,
+ 0xA3,0xC5,0x83,0xC5,0xF0,0xC5,0x83,0xC8,
+ 0xC5,0x82,0xC8,0xF0,0xA3,0xC5,0x83,0xC5,
+ 0xF0,0xC5,0x83,0xC8,0xC5,0x82,0xC8,0x22,
+ 0x8A,0x83,0x89,0x82,0xE4,0x73,0xBB,0x01,
+ 0x0C,0xE5,0x82,0x29,0xF5,0x82,0xE5,0x83,
+ 0x3A,0xF5,0x83,0xE0,0x22,0x50,0x06,0xE9,
+ 0x25,0x82,0xF8,0xE6,0x22,0xBB,0xFE,0x06,
+ 0xE9,0x25,0x82,0xF8,0xE2,0x22,0xE5,0x82,
+ 0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,0x83,
+ 0xE4,0x93,0x22,0xF8,0xBB,0x01,0x0D,0xE5,
+ 0x82,0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,
+ 0x83,0xE8,0xF0,0x22,0x50,0x06,0xE9,0x25,
+ 0x82,0xC8,0xF6,0x22,0xBB,0xFE,0x05,0xE9,
+ 0x25,0x82,0xC8,0xF2,0x22,0xBB,0x01,0x0A,
+ 0x89,0x82,0x8A,0x83,0xE0,0xF5,0xF0,0xA3,
+ 0xE0,0x22,0x50,0x06,0x87,0xF0,0x09,0xE7,
+ 0x19,0x22,0xBB,0xFE,0x07,0xE3,0xF5,0xF0,
+ 0x09,0xE3,0x19,0x22,0x89,0x82,0x8A,0x83,
+ 0xE4,0x93,0xF5,0xF0,0x74,0x01,0x93,0x22,
+ 0xBB,0x01,0x10,0xE5,0x82,0x29,0xF5,0x82,
+ 0xE5,0x83,0x3A,0xF5,0x83,0xE0,0xF5,0xF0,
+ 0xA3,0xE0,0x22,0x50,0x09,0xE9,0x25,0x82,
+ 0xF8,0x86,0xF0,0x08,0xE6,0x22,0xBB,0xFE,
+ 0x0A,0xE9,0x25,0x82,0xF8,0xE2,0xF5,0xF0,
+ 0x08,0xE2,0x22,0xE5,0x83,0x2A,0xF5,0x83,
+ 0xE9,0x93,0xF5,0xF0,0xA3,0xE9,0x93,0x22,
+ 0xBB,0x01,0x0A,0x89,0x82,0x8A,0x83,0xF0,
+ 0xE5,0xF0,0xA3,0xF0,0x22,0x50,0x06,0xF7,
+ 0x09,0xA7,0xF0,0x19,0x22,0xBB,0xFE,0x06,
+ 0xF3,0xE5,0xF0,0x09,0xF3,0x19,0x22,0xF8,
+ 0xBB,0x01,0x11,0xE5,0x82,0x29,0xF5,0x82,
+ 0xE5,0x83,0x3A,0xF5,0x83,0xE8,0xF0,0xE5,
+ 0xF0,0xA3,0xF0,0x22,0x50,0x09,0xE9,0x25,
+ 0x82,0xC8,0xF6,0x08,0xA6,0xF0,0x22,0xBB,
+ 0xFE,0x09,0xE9,0x25,0x82,0xC8,0xF2,0xE5,
+ 0xF0,0x08,0xF2,0x22,0x75,0xF0,0x08,0x75,
+ 0x82,0x00,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,
+ 0xCD,0x33,0xCD,0xCC,0x33,0xCC,0xC5,0x82,
+ 0x33,0xC5,0x82,0x9B,0xED,0x9A,0xEC,0x99,
+ 0xE5,0x82,0x98,0x40,0x0C,0xF5,0x82,0xEE,
+ 0x9B,0xFE,0xED,0x9A,0xFD,0xEC,0x99,0xFC,
+ 0x0F,0xD5,0xF0,0xD6,0xE4,0xCE,0xFB,0xE4,
+ 0xCD,0xFA,0xE4,0xCC,0xF9,0xA8,0x82,0x22,
+ 0xB8,0x00,0xC1,0xB9,0x00,0x59,0xBA,0x00,
+ 0x2D,0xEC,0x8B,0xF0,0x84,0xCF,0xCE,0xCD,
+ 0xFC,0xE5,0xF0,0xCB,0xF9,0x78,0x18,0xEF,
+ 0x2F,0xFF,0xEE,0x33,0xFE,0xED,0x33,0xFD,
+ 0xEC,0x33,0xFC,0xEB,0x33,0xFB,0x10,0xD7,
+ 0x03,0x99,0x40,0x04,0xEB,0x99,0xFB,0x0F,
+ 0xD8,0xE5,0xE4,0xF9,0xFA,0x22,0x78,0x18,
+ 0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xED,0x33,
+ 0xFD,0xEC,0x33,0xFC,0xC9,0x33,0xC9,0x10,
+ 0xD7,0x05,0x9B,0xE9,0x9A,0x40,0x07,0xEC,
+ 0x9B,0xFC,0xE9,0x9A,0xF9,0x0F,0xD8,0xE0,
+ 0xE4,0xC9,0xFA,0xE4,0xCC,0xFB,0x22,0x75,
+ 0xF0,0x10,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,
+ 0xED,0x33,0xFD,0xCC,0x33,0xCC,0xC8,0x33,
+ 0xC8,0x10,0xD7,0x07,0x9B,0xEC,0x9A,0xE8,
+ 0x99,0x40,0x0A,0xED,0x9B,0xFD,0xEC,0x9A,
+ 0xFC,0xE8,0x99,0xF8,0x0F,0xD5,0xF0,0xDA,
+ 0xE4,0xCD,0xFB,0xE4,0xCC,0xFA,0xE4,0xC8,
+ 0xF9,0x22,0xC2,0xD5,0xE8,0x30,0xE7,0x0F,
+ 0xB2,0xD5,0xE4,0xC3,0x9B,0xFB,0xE4,0x9A,
+ 0xFA,0xE4,0x99,0xF9,0xE4,0x98,0xF8,0xEC,
+ 0x30,0xE7,0x17,0xB2,0xD5,0x12,0xAC,0xD4,
+ 0x12,0xAC,0x0C,0xE4,0xC3,0x9B,0xFB,0xE4,
+ 0x9A,0xFA,0xE4,0x99,0xF9,0xE4,0x98,0xF8,
+ 0x80,0x03,0x12,0xAC,0x0C,0x30,0xD5,0x0D,
+ 0xE4,0xC3,0x9F,0xFF,0xE4,0x9E,0xFE,0xE4,
+ 0x9D,0xFD,0xE4,0x9C,0xFC,0x22,0xD0,0xE0,
+ 0xF5,0xF0,0xFC,0xD0,0xE0,0xFD,0x12,0xAB,
+ 0x84,0x85,0x2F,0xF0,0xE5,0x81,0x90,0x00,
+ 0x02,0x12,0xAB,0xA3,0x85,0x32,0xF0,0xE5,
+ 0x31,0x90,0x00,0x04,0x12,0xAB,0xA3,0xE5,
+ 0x30,0x90,0x00,0x06,0x12,0xAA,0xFF,0x8D,
+ 0x82,0x8C,0x83,0xE4,0xFE,0xFF,0x73,0xED,
+ 0xFF,0xEC,0xFE,0x12,0xAB,0x21,0xFC,0xAD,
+ 0xF0,0x90,0x00,0x02,0x12,0xAB,0x4C,0x85,
+ 0xF0,0x81,0xF5,0x2F,0x90,0x00,0x04,0x12,
+ 0xAB,0x4C,0xF5,0x32,0x85,0xF0,0x31,0x90,
+ 0x00,0x06,0x12,0xAA,0xD2,0xF5,0x30,0x8D,
+ 0x82,0x8C,0x83,0xE4,0x73,0x4C,0x81,0x4C,
+ 0xBA,0x4C,0xBD,0x4C,0xBE,0x4C,0xBF,0x88,
+ 0x8F,0x4C,0xC0,0x4C,0xC1,0x4C,0xC2,0x4C,
+ 0xC3,0x4D,0x48,0x89,0x41,0x4E,0x73,0x01,
+ 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
+ 0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x05,
+ 0x03,0x08,0x01,0x00,0x01,0x01,0x02,0x03,
+ 0x03,0x01,0x01,0x01,0x01,0x3E,0x80,0x06,
+ 0x40,0x7D,0x00,0x12,0xC0,0x12,0xC0,0xFA,
+ 0x00,0x12,0xC0,0xBB,0x80,0x9C,0x40,0x00,
+ 0xA0,0x00,0x00,0x01,0x02,0x02,0x02,0x02,
+ 0x02,0x01,0x01,0x90,0x43,0xD5,0xE0,0xB4,
+ 0x01,0x0A,0x90,0x43,0xD8,0xE0,0x70,0x04,
+ 0x90,0x43,0x42,0xF0,0x90,0x44,0xC0,0xE0,
+ 0xFF,0x60,0x0F,0x90,0x41,0xF3,0xE0,0xFE,
+ 0xEF,0x6E,0x60,0x06,0x90,0x44,0xBF,0xE0,
+ 0xE4,0xF0,0x90,0x43,0xDA,0xE0,0x90,0x44,
+ 0xC0,0xF0,0x22,0x90,0x41,0xBD,0xE0,0x90,
+ 0xF1,0xE0,0xF0,0x90,0x41,0xBC,0xE0,0x90,
+ 0xF1,0xDF,0xF0,0x90,0x41,0xBB,0xE0,0x90,
+ 0xF1,0xDE,0xF0,0x90,0x41,0xBA,0xE0,0x90,
+ 0xF1,0xDD,0xF0,0x90,0xF1,0xDB,0x74,0x01,
+ 0xF0,0x90,0xF1,0xDC,0xE0,0x60,0xFA,0x90,
+ 0xF1,0xE4,0xE0,0x90,0xF9,0x13,0xF0,0x90,
+ 0xF1,0xE3,0xE0,0x90,0xF9,0x12,0xF0,0x90,
+ 0xF1,0xE2,0xE0,0x90,0xF9,0x11,0xF0,0x90,
+ 0xF1,0xE1,0xE0,0x90,0xF9,0x10,0xF0,0x90,
+ 0xF1,0xDB,0xE4,0xF0,0x22,0x90,0xF5,0xBB,
+ 0xE4,0xF0,0x90,0xF5,0xB1,0xF0,0x90,0xF5,
+ 0xC8,0xF0,0xE5,0x2D,0x60,0x36,0x12,0xAD,
+ 0xC7,0x90,0xF9,0x0B,0x74,0x01,0xF0,0x90,
+ 0xF5,0xBB,0xE4,0xF0,0x90,0xF5,0xB1,0xF0,
+ 0x90,0xF5,0xC8,0xF0,0x90,0xF5,0x1D,0xE0,
+ 0x60,0xFA,0x7F,0x01,0x12,0x5C,0x30,0x90,
+ 0xF5,0xC2,0x74,0x01,0xF0,0xE4,0xF0,0x7F,
+ 0x02,0x12,0x6D,0xE8,0x12,0xA8,0xF8,0x7F,
+ 0x02,0x12,0x6D,0xE8,0x22,0x12,0x95,0x1B,
+ 0x90,0xF5,0x4E,0xE0,0x70,0x04,0xA3,0xE0,
+ 0x60,0x0F,0x90,0xF5,0xBB,0xE0,0x70,0x09,
+ 0x12,0x6A,0xF0,0x90,0xF5,0xC8,0x74,0x01,
+ 0xF0,0xE5,0x2E,0xD3,0x94,0x01,0x40,0x13,
+ 0x90,0xF7,0x31,0xE0,0x60,0x05,0x7F,0x01,
+ 0x12,0x9C,0x29,0x90,0x42,0x38,0xE0,0x90,
+ 0x44,0xBE,0xF0,0x75,0x2E,0x01,0x90,0xF7,
+ 0x31,0xE0,0x60,0x28,0x90,0xF7,0x3B,0xE0,
+ 0x64,0x02,0x60,0x20,0xE0,0x64,0x03,0x60,
+ 0x1B,0xE0,0x64,0x04,0x60,0x16,0xC2,0xAF,
+ 0x90,0xF7,0x34,0x74,0x01,0xF0,0x7F,0x00,
+ 0x7E,0x28,0x12,0x47,0x76,0x90,0xF7,0x34,
+ 0xE4,0xF0,0xD2,0xAF,0x12,0xA0,0x7B,0x12,
+ 0xA2,0x65,0x22,0xC2,0xAF,0x90,0xF7,0x3D,
+ 0x74,0x01,0xF0,0x7F,0x00,0x7E,0x28,0x12,
+ 0x47,0x76,0xD2,0xAF,0x22,0x90,0x41,0xDA,
+ 0xE0,0xB4,0x01,0x1E,0x90,0xFB,0x28,0x74,
+ 0x42,0xF0,0x90,0xF0,0x80,0x74,0x01,0xF0,
+ 0x90,0x41,0xC0,0xE0,0xFF,0x25,0xE0,0x90,
+ 0xF1,0xA5,0xF0,0x90,0xF1,0xEA,0xE4,0xF0,
+ 0x04,0xF0,0x12,0x57,0xC2,0x90,0x41,0xDA,
+ 0xE0,0xB4,0x01,0x1A,0x90,0x41,0xC0,0xE0,
+ 0x90,0xF1,0xA5,0xF0,0x90,0xF1,0xEA,0xE4,
+ 0xF0,0x04,0xF0,0x90,0xFB,0x28,0x74,0x82,
+ 0xF0,0x90,0xF0,0x80,0xE4,0xF0,0x22,0x90,
+ 0xF6,0x2F,0x74,0x01,0xF0,0x75,0xF0,0x02,
+ 0xE5,0x0F,0xA4,0x24,0x79,0xF5,0x82,0xE5,
+ 0xF0,0x34,0xAD,0xF5,0x83,0xE4,0x93,0xFC,
+ 0x74,0x01,0x93,0xFD,0xE4,0xFF,0x12,0x47,
+ 0xAD,0x90,0xF6,0x2F,0xE0,0x64,0x01,0x60,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,
+ 0xF1,0x1A,0xE0,0x5F,0x70,0xEB,0x90,0xF6,
+ 0x2F,0xE0,0xB4,0x01,0x04,0x7F,0x01,0x80,
+ 0x02,0x7F,0x00,0x90,0x43,0x3D,0xEF,0xF0,
+ 0xE0,0x70,0x0A,0x90,0x42,0x40,0x04,0xF0,
+ 0x90,0xF6,0x25,0xE4,0xF0,0xD2,0xAF,0x22,
+ 0x90,0xF5,0x41,0xE4,0xF0,0x90,0xF6,0x5D,
+ 0xF0,0x90,0xF6,0x5C,0xF0,0x7F,0x55,0x7E,
+ 0x0D,0x12,0x47,0x76,0x90,0xF5,0x41,0x74,
+ 0x01,0xF0,0x22,0x90,0x43,0xAE,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x44,0xC2,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x43,0xAA,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xC3,0x9D,0xFD,0xEA,0x9C,0xA3,0xF0,0xA3,
+ 0xED,0xF0,0x90,0x43,0xAE,0xE0,0xFC,0xA3,
+ 0xE0,0xB5,0x07,0x0A,0xEC,0xB5,0x06,0x06,
+ 0x90,0x44,0xC1,0xE0,0x04,0xF0,0x90,0x43,
+ 0xB1,0xE0,0x60,0x04,0xA3,0xE0,0x70,0x09,
+ 0x90,0x44,0xC1,0xE0,0xC3,0x94,0x02,0x40,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,
+ 0x43,0xB0,0xEF,0xF0,0x22,
+
+ 0x01,0x41,0x00,0x00,0x03,0xFB,0xBE,0x02,
+ 0x48,0x00,
+
+ 0x01,0x48,0x00,0x3B,0x1D,0xE1,0x7C,0x75,
+ 0x81,0x16,0x02,0x48,0x41,0x02,0x59,0x93,
+ 0xE4,0x93,0xA3,0xF8,0xE4,0x93,0xA3,0x40,
+ 0x03,0xF6,0x80,0x01,0xF2,0x08,0xDF,0xF4,
+ 0x80,0x29,0xE4,0x93,0xA3,0xF8,0x54,0x07,
+ 0x24,0x0C,0xC8,0xC3,0x33,0xC4,0x54,0x0F,
+ 0x44,0x20,0xC8,0x83,0x40,0x04,0xF4,0x56,
+ 0x80,0x01,0x46,0xF6,0xDF,0xE4,0x80,0x0B,
+ 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
+ 0x90,0x79,0xF2,0xE4,0x7E,0x01,0x93,0x60,
+ 0xBC,0xA3,0xFF,0x54,0x3F,0x30,0xE5,0x09,
+ 0x54,0x1F,0xFE,0xE4,0x93,0xA3,0x60,0x01,
+ 0x0E,0xCF,0x54,0xC0,0x25,0xE0,0x60,0xA8,
+ 0x40,0xB8,0xE4,0x93,0xA3,0xFA,0xE4,0x93,
+ 0xA3,0xF8,0xE4,0x93,0xA3,0xC8,0xC5,0x82,
+ 0xC8,0xCA,0xC5,0x83,0xCA,0xF0,0xA3,0xC8,
+ 0xC5,0x82,0xC8,0xCA,0xC5,0x83,0xCA,0xDF,
+ 0xE9,0xDE,0xE7,0x80,0xBE,0xAA,0x86,0x53,
+ 0x86,0xFE,0x8E,0x85,0x8F,0x84,0x8C,0x83,
+ 0x8D,0x82,0x0B,0x80,0x0A,0xE0,0xA3,0x63,
+ 0x86,0x01,0xF0,0xA3,0x63,0x86,0x01,0xDB,
+ 0xF4,0x8A,0x86,0x22,0xC2,0xAF,0x90,0x41,
+ 0x03,0x74,0x02,0xF0,0xA3,0x74,0x49,0xF0,
+ 0xA3,0x74,0x61,0xF0,0x90,0x41,0x0B,0x74,
+ 0x02,0xF0,0xA3,0x74,0x49,0xF0,0xA3,0x74,
+ 0x69,0xF0,0x90,0x41,0x13,0x74,0x02,0xF0,
+ 0xA3,0x74,0x49,0xF0,0xA3,0x74,0x71,0xF0,
+ 0x90,0x41,0x1B,0x74,0x02,0xF0,0xA3,0x74,
+ 0x49,0xF0,0xA3,0x74,0x79,0xF0,0x90,0x41,
+ 0x23,0x74,0x02,0xF0,0xA3,0x74,0x49,0xF0,
+ 0xA3,0x74,0x81,0xF0,0x90,0x41,0x2B,0x74,
+ 0x02,0xF0,0xA3,0x74,0x49,0xF0,0xA3,0x74,
+ 0x89,0xF0,0x90,0x41,0x33,0x74,0x02,0xF0,
+ 0xA3,0x74,0x49,0xF0,0xA3,0x74,0x91,0xF0,
+ 0x90,0x41,0x3B,0x74,0x02,0xF0,0xA3,0x74,
+ 0x49,0xF0,0xA3,0x74,0x99,0xF0,0x90,0x41,
+ 0x43,0x74,0x02,0xF0,0xA3,0x74,0x49,0xF0,
+ 0xA3,0x74,0xA1,0xF0,0x90,0x41,0x4B,0x74,
+ 0x02,0xF0,0xA3,0x74,0x49,0xF0,0xA3,0x74,
+ 0xA9,0xF0,0x90,0x41,0x53,0x74,0x02,0xF0,
+ 0xA3,0x74,0x49,0xF0,0xA3,0x74,0xB1,0xF0,
+ 0x90,0x41,0x5B,0x74,0x02,0xF0,0xA3,0x74,
+ 0x49,0xF0,0xA3,0x74,0xB9,0xF0,0x90,0x41,
+ 0x63,0x74,0x02,0xF0,0xA3,0x74,0x49,0xF0,
+ 0xA3,0x74,0xC1,0xF0,0xD2,0xAF,0x22,0x22,
+ 0xC0,0xE0,0x75,0xE0,0x00,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x02,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x04,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x06,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x08,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x0A,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x0C,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x0E,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x10,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x12,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x14,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x16,0x02,0x49,0xC9,
+ 0xC0,0xE0,0x75,0xE0,0x18,0x02,0x49,0xC9,
+ 0xC0,0xD0,0x75,0xD0,0x00,0xC0,0x86,0x75,
+ 0x86,0x00,0xC0,0x83,0xC0,0x82,0xC0,0x85,
+ 0xC0,0x84,0xC0,0xF0,0xC0,0x00,0xC0,0x01,
+ 0xC0,0x02,0xC0,0x03,0xC0,0x04,0xC0,0x05,
+ 0xC0,0x06,0xC0,0x07,0x90,0x81,0xBF,0xF9,
+ 0x93,0xFA,0xE9,0x04,0x93,0xF9,0x12,0x80,
+ 0xD7,0xD0,0x07,0xD0,0x06,0xD0,0x05,0xD0,
+ 0x04,0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,
+ 0x00,0xD0,0xF0,0xD0,0x84,0xD0,0x85,0xD0,
+ 0x82,0xD0,0x83,0xD0,0x86,0xD0,0xD0,0xD0,
+ 0xE0,0x32,0xC0,0x07,0x85,0x06,0x07,0x12,
+ 0x4A,0x37,0xD0,0xE0,0xC0,0xE0,0xC4,0x54,
+ 0x0F,0xFF,0x12,0x4A,0x57,0xD0,0xE0,0x54,
+ 0x0F,0xFF,0x12,0x4A,0x68,0x22,0xEF,0x70,
+ 0x02,0x80,0x0B,0x80,0x00,0xC0,0x07,0x12,
+ 0x4A,0x48,0xD0,0x07,0xDF,0xF7,0x22,0x7F,
+ 0x0C,0x12,0x4A,0x57,0x7F,0x04,0x90,0x4A,
+ 0x48,0xE0,0xDF,0xFD,0xE0,0x22,0xEF,0x70,
+ 0x02,0x80,0x0B,0x80,0x00,0x90,0x4A,0x5E,
+ 0xE0,0xE0,0xE0,0x04,0xDF,0xF7,0x22,0x90,
+ 0x4A,0x70,0xEF,0xF4,0x54,0x0F,0x73,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x22,0x43,
+ 0x8E,0x08,0x53,0x89,0xF0,0x43,0x89,0x01,
+ 0x22,0xAD,0x07,0xAC,0x06,0xC2,0x8C,0xC2,
+ 0x8D,0xEC,0xF4,0xF5,0x8C,0xED,0xF4,0xF5,
+ 0x8A,0xD2,0x8C,0x22,0x90,0x41,0x82,0x74,
+ 0xAF,0xF0,0xA3,0xEF,0xF0,0xA3,0x74,0x22,
+ 0xF0,0x7A,0x41,0x79,0x82,0x12,0x80,0xD7,
+ 0x22,0x90,0x41,0x82,0x74,0x8F,0xF0,0xA3,
+ 0xEF,0xF0,0xA3,0x74,0x22,0xF0,0xAF,0x05,
+ 0x7C,0x41,0x7D,0x82,0x90,0x41,0x82,0x12,
+ 0x80,0xDB,0x22,0x8F,0x82,0x8E,0x83,0xE4,
+ 0xFF,0xFE,0xED,0x4C,0x60,0x0F,0xED,0x60,
+ 0x01,0x0C,0xE0,0xA3,0x2F,0xFF,0xE4,0x3E,
+ 0xFE,0xDD,0xF7,0xDC,0xF5,0x22,0xE4,0x90,
+ 0x42,0x9A,0xF0,0x12,0x64,0x94,0x90,0x42,
+ 0xEB,0xEF,0xF0,0x60,0x25,0xE0,0xB4,0x05,
+ 0x03,0x7F,0x05,0x22,0x12,0x66,0x07,0x90,
+ 0x42,0xEB,0xEF,0xF0,0x60,0x14,0xE0,0xB4,
+ 0x05,0x03,0x7F,0x05,0x22,0x12,0x67,0x65,
+ 0x90,0x42,0xEB,0xEF,0xF0,0x60,0x03,0xE0,
+ 0xFF,0x22,0x7F,0x00,0x22,0x90,0x41,0x8C,
+ 0xE0,0xD3,0x94,0x00,0x40,0x06,0x90,0x42,
+ 0x99,0xEF,0xF0,0x22,0x90,0x41,0x8B,0xE0,
+ 0xFE,0xEF,0xC3,0x9E,0x50,0x06,0x90,0x42,
+ 0x99,0xEF,0xF0,0x22,0x90,0x42,0x99,0xEE,
+ 0xF0,0x22,0x90,0x42,0xEC,0xEB,0xF0,0xA3,
+ 0xEA,0xF0,0xA3,0xE9,0xF0,0xE4,0xFF,0x90,
+ 0x42,0x99,0xE0,0xD3,0x94,0x00,0x40,0x04,
+ 0x7E,0x01,0x80,0x02,0x7E,0x00,0xEF,0xC3,
+ 0x94,0x40,0x50,0x04,0x7D,0x01,0x80,0x02,
+ 0x7D,0x00,0xED,0x5E,0x60,0x33,0x90,0x42,
+ 0xEC,0xE0,0xFB,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xF9,0x90,0x42,0x9A,0xE0,0xF5,0x82,0x75,
+ 0x83,0x00,0x12,0x80,0x30,0xFE,0x74,0x00,
+ 0x2F,0xF5,0x82,0xE4,0x34,0xDE,0xF5,0x83,
+ 0xEE,0xF0,0x0F,0x90,0x42,0x99,0xE0,0x14,
+ 0xF0,0x90,0x42,0x9A,0xE0,0x04,0xF0,0x80,
+ 0xAE,0x90,0xDD,0x85,0xEF,0xF0,0x22,0x90,
+ 0xDD,0x13,0xE0,0x44,0x01,0xF0,0x90,0xDD,
+ 0x1B,0x74,0x04,0xF0,0xE4,0xFF,0x74,0x00,
+ 0x2F,0xF5,0x82,0xE4,0x34,0xDF,0xF5,0x83,
+ 0xE0,0xFE,0x74,0x85,0x2F,0xF5,0x82,0xE4,
+ 0x34,0x41,0xF5,0x83,0xEE,0xF0,0x0F,0xEF,
+ 0xB4,0x08,0xE3,0x90,0xDD,0x1B,0xE0,0x20,
+ 0xE2,0xD4,0x22,0x90,0xDD,0x13,0x74,0x7B,
+ 0xF0,0x90,0xDD,0x80,0x74,0xC0,0xF0,0xA3,
+ 0x74,0x00,0xF0,0xA3,0x74,0x40,0xF0,0xA3,
+ 0x74,0x80,0xF0,0x12,0x6A,0x2D,0xE4,0x90,
+ 0x41,0x93,0xF0,0x90,0x41,0x94,0xF0,0x90,
+ 0xDD,0x14,0x74,0x0B,0xF0,0x90,0xDD,0x17,
+ 0x74,0x06,0xF0,0x90,0x43,0x28,0xE0,0xB4,
+ 0x01,0x07,0x90,0xDD,0x17,0xE0,0x44,0x01,
+ 0xF0,0x90,0xDD,0x15,0x74,0x0B,0xF0,0x90,
+ 0xDD,0x0C,0x74,0x80,0xF0,0x90,0xDD,0x8E,
+ 0xE4,0xF0,0xA3,0x74,0x03,0xF0,0x90,0xDD,
+ 0x0E,0xE4,0xF0,0xA3,0x04,0xF0,0x90,0xDD,
+ 0x13,0xE0,0x54,0x7F,0xF0,0x90,0xDD,0x20,
+ 0xE0,0x54,0xFC,0x44,0x03,0xF0,0x90,0xDD,
+ 0x11,0x74,0x8F,0xF0,0x90,0x43,0x0D,0xE0,
+ 0x64,0x01,0x70,0x27,0xC3,0x74,0x34,0x94,
+ 0xBA,0x90,0x41,0xB3,0xF0,0x90,0x42,0x9D,
+ 0xF0,0x90,0x41,0xB5,0x74,0x02,0xF0,0x90,
+ 0x42,0x9F,0xF0,0x90,0xDD,0x15,0xE0,0x44,
+ 0x10,0xF0,0x90,0xDD,0x11,0xE0,0x44,0x10,
+ 0xF0,0x80,0x17,0xC3,0x74,0x1B,0x94,0xBA,
+ 0x90,0x41,0xB3,0xF0,0x90,0x42,0x9D,0xF0,
+ 0x90,0x41,0xB5,0x74,0x01,0xF0,0x90,0x42,
+ 0x9F,0xF0,0x90,0x45,0x61,0xE0,0x60,0x03,
+ 0x12,0x50,0xE8,0x90,0xDD,0x0C,0x74,0x80,
+ 0xF0,0x90,0xDD,0x89,0x74,0x03,0xF0,0x90,
+ 0xDD,0x88,0x74,0xDB,0xF0,0x90,0xDD,0x13,
+ 0xE0,0x54,0xDF,0xF0,0x90,0xF4,0x1A,0xE0,
+ 0x54,0xFE,0x44,0x01,0xF0,0x22,0x90,0x42,
+ 0x11,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0x0A,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0x03,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xFC,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xE5,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xDE,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xD7,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x41,
+ 0xD0,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,0x90,
+ 0x42,0x18,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,
+ 0xE4,0x90,0x42,0xF2,0xF0,0x90,0x42,0xE9,
+ 0xE0,0x60,0x0D,0x90,0xDD,0xA8,0xE0,0x30,
+ 0xE0,0x06,0x12,0x4F,0xEB,0x02,0x4F,0x38,
+ 0x90,0xDF,0x82,0xE0,0x20,0xE1,0x06,0x12,
+ 0x4F,0x45,0x02,0x4F,0x38,0x90,0x42,0xE9,
+ 0xE0,0x70,0x09,0x90,0x42,0xF3,0xE0,0x04,
+ 0xF0,0x02,0x4F,0x38,0x90,0xDD,0xA8,0xE0,
+ 0x30,0xE0,0x06,0x12,0x4F,0xEB,0x02,0x4F,
+ 0x38,0x90,0xDD,0x1B,0xE0,0x30,0xE1,0x12,
+ 0x90,0xDD,0x1D,0x74,0xFF,0xF0,0x90,0xDD,
+ 0x1B,0x74,0x02,0xF0,0x12,0x4F,0x94,0x02,
+ 0x4F,0x38,0x90,0x43,0x28,0xE0,0x64,0x01,
+ 0x70,0x29,0x90,0xDD,0x1B,0xE0,0x30,0xE0,
+ 0x22,0x74,0x01,0xF0,0xE4,0x90,0x42,0xF1,
+ 0xF0,0x90,0xDD,0x1B,0xE0,0x30,0xE0,0x0D,
+ 0x74,0x01,0xF0,0x90,0x42,0xF1,0xE0,0x04,
+ 0xF0,0xE0,0xB4,0x02,0xEC,0x12,0x4F,0xB3,
+ 0x02,0x4F,0x38,0x90,0xDD,0x1B,0xE0,0x30,
+ 0xE2,0x28,0x90,0xDD,0x14,0xE0,0x44,0x01,
+ 0xF0,0x12,0x4B,0xA8,0x12,0x56,0x20,0x90,
+ 0x42,0xF0,0xEF,0xF0,0x70,0x03,0x02,0x4F,
+ 0x38,0x90,0xDD,0x14,0xE0,0x54,0xFE,0xF0,
+ 0x90,0xDD,0x12,0xE0,0x44,0x01,0xF0,0x02,
+ 0x4F,0x38,0x90,0xDD,0x19,0xE0,0x30,0xE0,
+ 0x42,0x90,0xDD,0x14,0xE0,0x44,0x01,0xF0,
+ 0x90,0xDD,0x19,0x74,0x01,0xF0,0x90,0xDD,
+ 0x13,0xE0,0x44,0x01,0xF0,0x90,0x42,0xE7,
+ 0xE0,0x64,0x01,0x60,0x03,0x02,0x4F,0x38,
+ 0x90,0xDD,0x00,0xC0,0x83,0xC0,0x82,0xE0,
+ 0xFF,0x90,0x41,0x8A,0xE0,0xFE,0x33,0x33,
+ 0x33,0x54,0xF8,0xFE,0xEF,0x4E,0xD0,0x82,
+ 0xD0,0x83,0xF0,0xE4,0x90,0x42,0xE7,0xF0,
+ 0x02,0x4F,0x38,0x90,0xDD,0x18,0xE0,0x30,
+ 0xE0,0x31,0x90,0xDD,0x14,0xE0,0x30,0xE0,
+ 0x2A,0x90,0xDD,0x14,0xE0,0x54,0xFE,0xF0,
+ 0x12,0x56,0x3B,0x90,0x42,0xF0,0xEF,0xF0,
+ 0x60,0x09,0x90,0xDD,0x12,0xE0,0x44,0x01,
+ 0xF0,0x80,0x07,0x90,0xDD,0x13,0xE0,0x54,
+ 0xFE,0xF0,0x90,0xDD,0x18,0x74,0x01,0xF0,
+ 0x02,0x4F,0x38,0x90,0xDD,0x19,0xE0,0x30,
+ 0xE1,0x10,0x90,0xDD,0x19,0x74,0x02,0xF0,
+ 0x90,0xDD,0x13,0xE0,0x44,0x02,0xF0,0x02,
+ 0x4F,0x38,0x90,0xDD,0x18,0xE0,0x30,0xE1,
+ 0x16,0x90,0xDD,0x84,0x74,0x40,0xF0,0x90,
+ 0xDD,0x13,0xE0,0x54,0xFD,0xF0,0x90,0xDD,
+ 0x18,0x74,0x02,0xF0,0x02,0x4F,0x38,0x90,
+ 0xDD,0x19,0xE0,0x30,0xE4,0x6A,0x90,0xDD,
+ 0x19,0x74,0x10,0xF0,0x90,0x45,0xA6,0xE0,
+ 0x64,0x01,0x60,0x03,0x02,0x4F,0x38,0x90,
+ 0x45,0xB9,0xE0,0xFF,0xB4,0x01,0x31,0xE4,
+ 0x90,0x42,0xF1,0xF0,0x90,0x42,0xF1,0xE0,
+ 0xFE,0xC3,0x94,0x08,0x50,0x14,0x74,0x80,
+ 0x2E,0xF5,0x82,0xE4,0x34,0xDE,0xF5,0x83,
+ 0xE4,0xF0,0x90,0x42,0xF1,0xE0,0x04,0xF0,
+ 0x80,0xE2,0x90,0xDD,0x87,0x74,0x08,0xF0,
+ 0x90,0x45,0xB9,0x74,0x02,0xF0,0x80,0x6F,
+ 0xEF,0x64,0x02,0x70,0x6A,0x90,0x45,0xB9,
+ 0xF0,0x90,0xDD,0x13,0xE0,0x44,0x10,0xF0,
+ 0x90,0x41,0x81,0xE0,0xFF,0x64,0x01,0x60,
+ 0x56,0x90,0x45,0xA6,0xEF,0xF0,0x80,0x4F,
+ 0x90,0xDD,0x19,0xE0,0x30,0xE3,0x18,0x90,
+ 0xDD,0x13,0xE0,0x44,0x08,0xF0,0x90,0xDD,
+ 0x19,0x74,0x08,0xF0,0x12,0x74,0xD3,0x90,
+ 0x42,0xE8,0x74,0x01,0xF0,0x80,0x30,0x90,
+ 0xDD,0x14,0xE0,0x54,0x08,0xFF,0x13,0x13,
+ 0x13,0x54,0x1F,0x60,0x1C,0x90,0xDD,0x18,
+ 0xE0,0x30,0xE3,0x15,0x90,0xDD,0x84,0x74,
+ 0x40,0xF0,0x90,0xDD,0x13,0xE0,0x54,0xF7,
+ 0xF0,0x90,0xDD,0x18,0x74,0x08,0xF0,0x80,
+ 0x06,0x90,0x42,0xF4,0xE0,0x04,0xF0,0xC2,
+ 0xDC,0x22,0x12,0x4D,0x09,0x22,0xC2,0xDB,
+ 0x12,0x4D,0x09,0x22,0x90,0x43,0x0D,0xE0,
+ 0x64,0x01,0x60,0x05,0xE0,0x64,0x05,0x70,
+ 0x41,0x90,0x43,0x29,0xE0,0x70,0x05,0x12,
+ 0x6E,0x5D,0x80,0x1B,0x90,0x43,0x29,0xE0,
+ 0xB4,0x01,0x05,0x12,0x6F,0xFC,0x80,0x0F,
+ 0x90,0x43,0x29,0xE0,0x64,0x02,0x60,0x04,
+ 0xE0,0xB4,0xFF,0x03,0x12,0x6B,0x19,0x90,
+ 0x45,0xA6,0xE0,0xB4,0x01,0x14,0x90,0x45,
+ 0xB9,0xE0,0xB4,0x01,0x0D,0x90,0xDD,0x13,
+ 0xE0,0x54,0xEF,0xF0,0x90,0xDD,0x87,0x74,
+ 0x08,0xF0,0x22,0x12,0x4B,0xDC,0x90,0xDD,
+ 0x01,0xE0,0x54,0x04,0x90,0x42,0xEF,0xF0,
+ 0x90,0x45,0x61,0xE0,0x60,0x03,0x12,0x50,
+ 0xE8,0x12,0x50,0xE7,0xE4,0x90,0x45,0xB9,
+ 0xF0,0x22,0x90,0xD8,0x06,0xE0,0x54,0xFE,
+ 0x44,0x01,0xF0,0x22,0x12,0x4B,0xDC,0x90,
+ 0x43,0x06,0xE0,0x30,0xE6,0x09,0x90,0xDD,
+ 0xA7,0xE0,0x44,0x01,0xF0,0x80,0x07,0x90,
+ 0xDD,0x00,0xE0,0x44,0x80,0xF0,0xD2,0xAF,
+ 0xD2,0xDD,0x22,0x90,0x43,0x07,0xE0,0x30,
+ 0xE0,0x07,0x90,0xDD,0xA8,0xE0,0x30,0xE2,
+ 0xF9,0x22,0x90,0xDD,0xA7,0xE0,0x30,0xE1,
+ 0x06,0xE0,0x54,0xFD,0xF0,0x80,0x07,0x90,
+ 0xDD,0xA7,0xE0,0x44,0x02,0xF0,0x90,0xDD,
+ 0xA8,0xE0,0x30,0xE1,0x08,0x90,0xDD,0x00,
+ 0xE0,0x44,0x80,0xF0,0x22,0x90,0xDD,0x00,
+ 0xE0,0x54,0x7F,0xF0,0x22,0xAE,0x07,0x90,
+ 0x42,0xEA,0xE0,0xFD,0xB4,0x01,0x03,0x7F,
+ 0x03,0x22,0xAF,0x06,0xE4,0x90,0x45,0x66,
+ 0xF0,0x7A,0x42,0x7B,0xF5,0xA3,0x74,0x42,
+ 0xF0,0xA3,0x74,0xF5,0xF0,0xA3,0x74,0x01,
+ 0xF0,0xA3,0xE4,0xF0,0x7B,0x01,0x12,0x54,
+ 0x23,0xEF,0x60,0x03,0x7F,0x04,0x22,0x7E,
+ 0x42,0x7F,0xF7,0x90,0x42,0xF7,0xE0,0xFD,
+ 0x7C,0x00,0x12,0x4A,0xCC,0x90,0x42,0xF5,
+ 0xE0,0x6E,0x70,0x03,0xA3,0xE0,0x6F,0x60,
+ 0x03,0x7F,0x05,0x22,0x7F,0x00,0x22,0x90,
+ 0x42,0xFD,0xE0,0xFF,0xA3,0xE0,0x90,0x41,
+ 0x9D,0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0xFF,0xE0,0xFF,0xA3,0xE0,0x90,0x41,0x9F,
+ 0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x43,0x01,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x41,0xA1,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x43,0x03,0xE0,
+ 0x90,0x41,0xA3,0xF0,0x90,0x43,0x04,0xE0,
+ 0x90,0x41,0xA4,0xF0,0x90,0x43,0x05,0xE0,
+ 0x90,0x41,0xA5,0xF0,0x90,0x43,0x0A,0xE0,
+ 0x90,0x42,0x33,0xF0,0x90,0x43,0x08,0xE0,
+ 0x90,0x41,0xB9,0xF0,0x90,0x43,0x06,0xE0,
+ 0xFF,0x90,0x42,0xA2,0xF0,0x90,0x41,0xB8,
+ 0xF0,0x90,0x43,0x09,0xE0,0x90,0x42,0xA3,
+ 0xF0,0x90,0x43,0x0B,0xE0,0x90,0xF1,0x03,
+ 0xF0,0x90,0x43,0x4B,0xE0,0xF4,0x60,0x05,
+ 0xE0,0x90,0xDD,0x93,0xF0,0x22,0x22,0x90,
+ 0x42,0xF9,0xE0,0x70,0x03,0x02,0x53,0x64,
+ 0x90,0x42,0xF9,0xE0,0x75,0xF0,0x08,0xA4,
+ 0x90,0x45,0x5A,0xF0,0xE0,0x24,0xF6,0xF5,
+ 0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,0x90,
+ 0x45,0x5D,0xF0,0x90,0x45,0x5D,0xE0,0x70,
+ 0x03,0x02,0x53,0x64,0x90,0x45,0x5A,0xE0,
+ 0xFE,0x24,0x02,0xA3,0xF0,0x74,0xF5,0x2E,
+ 0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,
+ 0x90,0x45,0x5C,0xF0,0xE0,0x54,0xC0,0xFF,
+ 0x70,0x06,0x90,0x42,0xEF,0xE0,0x70,0x16,
+ 0xBF,0x40,0x06,0x90,0x42,0xEF,0xE0,0x60,
+ 0x0D,0x90,0x45,0x5C,0xE0,0x54,0xC0,0x64,
+ 0xC0,0x60,0x03,0x02,0x52,0xEC,0x90,0x45,
+ 0x5C,0xE0,0x54,0x03,0x14,0x60,0x54,0x14,
+ 0x70,0x03,0x02,0x52,0x01,0x14,0x70,0x03,
+ 0x02,0x52,0x7F,0x24,0x03,0x60,0x03,0x02,
+ 0x52,0xE9,0xE4,0x90,0x45,0x5E,0xF0,0x90,
+ 0x45,0x5D,0xE0,0xFF,0xA3,0xE0,0xC3,0x9F,
+ 0x40,0x03,0x02,0x52,0xEC,0x90,0x45,0x5B,
+ 0xE0,0xFE,0x24,0xF5,0xF5,0x82,0xE4,0x34,
+ 0x42,0xF5,0x83,0xE0,0xFF,0x74,0xF6,0x2E,
+ 0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,
+ 0xFD,0x12,0x4A,0xB2,0x90,0x45,0x5B,0xE0,
+ 0x24,0x02,0xF0,0x90,0x45,0x5E,0xE0,0x04,
+ 0xF0,0x80,0xC4,0xE4,0x90,0x45,0x5E,0xF0,
+ 0x90,0x45,0x5D,0xE0,0xFF,0xA3,0xE0,0xC3,
+ 0x9F,0x40,0x03,0x02,0x52,0xEC,0x90,0x45,
+ 0x5B,0xE0,0xFF,0x24,0xF7,0xF5,0x82,0xE4,
+ 0x34,0x42,0xF5,0x83,0xE0,0xFD,0x74,0xF5,
+ 0x2F,0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,
+ 0xE0,0xFE,0x90,0x45,0x5B,0xE0,0x24,0xF6,
+ 0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,
+ 0xFB,0xEE,0xEB,0xF5,0x82,0x8E,0x83,0xED,
+ 0xF0,0x90,0x45,0x5B,0xE0,0x24,0x03,0xF0,
+ 0x90,0x45,0x5E,0xE0,0x04,0xF0,0x80,0xB0,
+ 0x90,0x45,0x5B,0xE0,0xFD,0x24,0xF5,0xF5,
+ 0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,0xFE,
+ 0x74,0xF6,0x2D,0xF5,0x82,0xE4,0x34,0x42,
+ 0xF5,0x83,0xE0,0xFD,0xEE,0xED,0xFF,0x90,
+ 0x45,0x5F,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,
+ 0x45,0x5B,0xE0,0x24,0x02,0xF0,0xE4,0x90,
+ 0x45,0x5E,0xF0,0x90,0x45,0x5D,0xE0,0xFF,
+ 0xA3,0xE0,0xC3,0x9F,0x40,0x03,0x02,0x52,
+ 0xEC,0x90,0x45,0x5B,0xE0,0xFF,0x24,0xF6,
+ 0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,
+ 0xFE,0x74,0xF5,0x2F,0xF5,0x82,0xE4,0x34,
+ 0x42,0xF5,0x83,0xE0,0xFD,0x90,0x45,0x60,
+ 0xE0,0x2D,0xFD,0x90,0x45,0x5F,0xE0,0x34,
+ 0x00,0x8D,0x82,0xF5,0x83,0xEE,0xF0,0x90,
+ 0x45,0x5B,0xE0,0x24,0x02,0xF0,0x90,0x45,
+ 0x5E,0xE0,0x04,0xF0,0x80,0xB5,0x90,0x45,
+ 0x5B,0xE0,0xFD,0x24,0xF5,0xF5,0x82,0xE4,
+ 0x34,0x42,0xF5,0x83,0xE0,0xFE,0x74,0xF6,
+ 0x2D,0xF5,0x82,0xE4,0x34,0x42,0xF5,0x83,
+ 0xE0,0xFD,0xEE,0xED,0xFF,0x90,0x45,0x5F,
+ 0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x45,0x5B,
+ 0xE0,0x24,0x02,0xF0,0xE4,0x90,0x45,0x5E,
+ 0xF0,0x90,0x45,0x5D,0xE0,0xFF,0xA3,0xE0,
+ 0xC3,0x9F,0x50,0x2F,0x90,0x45,0x5B,0xE0,
+ 0xFF,0x04,0xF0,0x74,0xF5,0x2F,0xF5,0x82,
+ 0xE4,0x34,0x42,0xF5,0x83,0xE0,0xFF,0x90,
+ 0x45,0x5F,0xE4,0x75,0xF0,0x01,0x12,0x80,
+ 0x85,0x85,0xF0,0x82,0xF5,0x83,0xEF,0xF0,
+ 0x90,0x45,0x5E,0xE0,0x04,0xF0,0x80,0xC9,
+ 0x12,0x7B,0x63,0x90,0x45,0x5A,0xE0,0x24,
+ 0x02,0xF0,0x90,0x45,0x5C,0xE0,0x54,0x03,
+ 0x14,0x60,0x19,0x14,0x60,0x27,0x14,0x60,
+ 0x38,0x24,0x03,0x70,0x46,0x90,0x45,0x5D,
+ 0xE0,0x25,0xE0,0xFF,0x90,0x45,0x5A,0xE0,
+ 0x2F,0xF0,0x80,0x3A,0x90,0x45,0x5D,0xE0,
+ 0x75,0xF0,0x03,0xA4,0xFF,0x90,0x45,0x5A,
+ 0xE0,0x2F,0xF0,0x80,0x29,0x90,0x45,0x5A,
+ 0xE0,0x24,0x02,0xFF,0x90,0x45,0x5D,0xE0,
+ 0x25,0xE0,0x2F,0x90,0x45,0x5A,0xF0,0x80,
+ 0x15,0x90,0x45,0x5A,0xE0,0x24,0x02,0xFF,
+ 0x90,0x45,0x5D,0xE0,0x2F,0x90,0x45,0x5A,
+ 0xF0,0x80,0x03,0x12,0x7B,0x63,0x90,0x45,
+ 0x5A,0xE0,0x24,0xF6,0xF5,0x82,0xE4,0x34,
+ 0x42,0xF5,0x83,0xE0,0x90,0x45,0x5D,0xF0,
+ 0x02,0x51,0x0C,0x22,0x90,0x42,0xE9,0xE0,
+ 0x60,0x08,0x90,0x45,0x62,0x74,0x01,0xF0,
+ 0x80,0x06,0x90,0x45,0x62,0x74,0x03,0xF0,
+ 0x12,0x4A,0x80,0x12,0x54,0x18,0x90,0xF1,
+ 0x03,0xE0,0x90,0x45,0x88,0xF0,0x90,0xF6,
+ 0xB5,0xE0,0x54,0xF7,0x44,0x08,0xF0,0xE0,
+ 0x54,0xF7,0xF0,0x90,0x45,0x88,0xE0,0x90,
+ 0xF1,0x03,0xF0,0x90,0x45,0x62,0xE0,0xFF,
+ 0x12,0x80,0x23,0x90,0x42,0xEA,0xEF,0xF0,
+ 0x90,0x42,0xE9,0xE0,0x60,0x03,0x12,0x6A,
+ 0x3A,0x90,0x45,0x62,0xE0,0xFF,0x12,0x50,
+ 0x16,0xEF,0x70,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0x45,0x61,0xEF,0xF0,0x60,
+ 0x1C,0x90,0x43,0x4C,0xE0,0x60,0x16,0xE0,
+ 0x90,0xF6,0x32,0xF0,0x90,0x43,0x4C,0xE0,
+ 0x90,0xF6,0x33,0xF0,0x90,0xF6,0x31,0xE0,
+ 0x54,0xFE,0x44,0x01,0xF0,0x90,0x45,0x61,
+ 0xE0,0x60,0x07,0x12,0x50,0x68,0x12,0x50,
+ 0xE8,0x22,0x90,0x42,0xE9,0xE0,0x60,0x1E,
+ 0xE4,0x90,0x43,0x26,0xF0,0x90,0x43,0x28,
+ 0xF0,0x90,0x43,0x07,0xF0,0x90,0x43,0x0D,
+ 0x74,0x05,0xF0,0xE4,0x90,0x43,0x29,0xF0,
+ 0x90,0x43,0x06,0x74,0x80,0xF0,0x22,0x80,
+ 0x02,0x80,0xFE,0x90,0xF1,0x03,0x74,0x25,
+ 0xF0,0x22,0x90,0x45,0x63,0xEF,0xF0,0xA3,
+ 0xED,0xF0,0xA3,0xEB,0xF0,0xA3,0xE0,0xFE,
+ 0xFD,0x7C,0x00,0x90,0x45,0x69,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0x2D,0xFD,0xEC,0x3A,0xFC,
+ 0xD3,0xED,0x94,0x00,0xEC,0x94,0x01,0x40,
+ 0x03,0x7F,0x01,0x22,0xE4,0xB5,0x03,0x08,
+ 0xEA,0xB4,0x01,0x04,0x7F,0x08,0x80,0x0B,
+ 0xEE,0x54,0x07,0xFF,0xC3,0x74,0x08,0x9F,
+ 0x54,0x07,0xFF,0x90,0x45,0x6B,0xEF,0xF0,
+ 0xC3,0xEB,0x9F,0xEA,0x94,0x00,0x50,0x06,
+ 0x90,0x45,0x6A,0xE0,0xA3,0xF0,0x90,0x45,
+ 0x6A,0xE0,0xFF,0xA3,0xE0,0xFE,0xC3,0xEF,
+ 0x9E,0x54,0x07,0xFE,0x90,0x45,0x6D,0xF0,
+ 0x90,0x45,0x6B,0xE0,0xFD,0xC3,0xEF,0x9D,
+ 0xC3,0x9E,0xA3,0xF0,0x90,0x45,0x6B,0xE0,
+ 0x90,0x45,0x6E,0xF0,0xA3,0x74,0x08,0xF0,
+ 0x90,0x45,0x6D,0xE0,0x90,0x45,0x70,0xF0,
+ 0xE4,0xA3,0xF0,0x90,0x45,0x71,0xE0,0xFB,
+ 0x24,0x6B,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xE0,0x70,0x03,0x02,0x55,0xC9,0x90,
+ 0x45,0x66,0xE0,0x90,0xF0,0x01,0xF0,0x90,
+ 0x45,0x65,0xE0,0x70,0x4E,0x7E,0xF0,0x7F,
+ 0x02,0x90,0x45,0x67,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0x74,0x6E,0x2B,0xF5,0x82,0xE4,0x34,
+ 0x45,0xF5,0x83,0xE0,0xFB,0x12,0x48,0x86,
+ 0x90,0x45,0x63,0xE0,0xFF,0xA3,0xE0,0xFD,
+ 0x90,0x45,0x71,0xE0,0x24,0x6E,0xF5,0x82,
+ 0xE4,0x34,0x45,0xF5,0x83,0xE0,0x04,0xFB,
+ 0x90,0x46,0x04,0x74,0x01,0xF0,0x12,0x7E,
+ 0xD9,0xEF,0x60,0x03,0x7F,0x02,0x22,0x7F,
+ 0x35,0x7E,0x82,0x12,0x4A,0x8A,0x20,0x8D,
+ 0x60,0x80,0xFB,0x90,0x45,0x63,0xE0,0xFF,
+ 0xA3,0xE0,0xFD,0x90,0x46,0x04,0x74,0x01,
+ 0xF0,0xFB,0x12,0x7E,0xD9,0xEF,0x60,0x03,
+ 0x7F,0x02,0x22,0x90,0x45,0x63,0xE0,0xFF,
+ 0xA3,0xE0,0x44,0x01,0xFD,0x90,0x45,0x71,
+ 0xE0,0x24,0x6E,0xF5,0x82,0xE4,0x34,0x45,
+ 0xF5,0x83,0xE0,0xFB,0x90,0x46,0x04,0x74,
+ 0x01,0xF0,0x12,0x7E,0xD9,0xEF,0x60,0x03,
+ 0x7F,0x02,0x22,0x90,0x45,0x67,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x7C,0xF0,0x7D,0x00,0x90,
+ 0x45,0x71,0xE0,0x24,0x6E,0xF5,0x82,0xE4,
+ 0x34,0x45,0xF5,0x83,0xE0,0xFB,0x12,0x48,
+ 0x86,0x90,0x45,0x71,0xE0,0xFF,0x24,0x6E,
+ 0xF5,0x82,0xE4,0x34,0x45,0xF5,0x83,0xE0,
+ 0xFE,0x90,0x45,0x66,0xE0,0x2E,0xF0,0xEE,
+ 0xFD,0x90,0x45,0x68,0xE0,0x2D,0xF0,0x90,
+ 0x45,0x67,0xE0,0x34,0x00,0xF0,0x74,0x6B,
+ 0x2F,0xF5,0x82,0xE4,0x34,0x45,0xF5,0x83,
+ 0xC0,0x83,0xC0,0x82,0xE0,0xFF,0x90,0x45,
+ 0x71,0xE0,0x24,0x6E,0xF5,0x82,0xE4,0x34,
+ 0x45,0xF5,0x83,0xE0,0xFE,0xC3,0xEF,0x9E,
+ 0xD0,0x82,0xD0,0x83,0xF0,0x02,0x54,0xAC,
+ 0x90,0x45,0x71,0xE0,0x04,0xF0,0xE0,0xC3,
+ 0x94,0x03,0x50,0x03,0x02,0x54,0xAC,0x7F,
+ 0x00,0x22,0x90,0x45,0x72,0xEF,0xF0,0xE4,
+ 0x90,0x45,0x73,0xF0,0x90,0x45,0x73,0xE0,
+ 0xFE,0xC3,0x94,0x10,0x50,0x1F,0x90,0x45,
+ 0x72,0xE0,0xFF,0xEE,0x44,0xA0,0xFD,0x90,
+ 0x46,0x04,0x74,0x01,0xF0,0xFB,0x12,0x7E,
+ 0xD9,0xEF,0x60,0x09,0x90,0x45,0x73,0xE0,
+ 0x24,0x02,0xF0,0x80,0xD7,0x90,0x45,0x73,
+ 0xE0,0xFF,0xC3,0x94,0x10,0x50,0x05,0xEF,
+ 0x44,0xA0,0xFF,0x22,0x7F,0x01,0x22,0x12,
+ 0x68,0x70,0x90,0x42,0x98,0xEF,0xF0,0x90,
+ 0x42,0x98,0xE0,0x70,0x03,0x7F,0x06,0x22,
+ 0x12,0x4A,0xE7,0xEF,0x60,0x01,0x22,0x7F,
+ 0x00,0x22,0x12,0x67,0xB7,0xEF,0x60,0x01,
+ 0x22,0x7F,0x00,0x22,0x90,0x45,0x74,0xEF,
+ 0xF0,0xA3,0xED,0xF0,0xEB,0x70,0x61,0x90,
+ 0x45,0x77,0xE0,0xFF,0xB4,0x01,0x0A,0x90,
+ 0x45,0x79,0xE0,0x90,0xF0,0x01,0xF0,0x80,
+ 0x14,0xEF,0xB4,0x02,0x10,0x90,0x45,0x78,
+ 0xE0,0x90,0xF0,0x01,0xF0,0x90,0x45,0x79,
+ 0xE0,0x90,0xF0,0x02,0xF0,0x90,0x45,0x77,
+ 0xE0,0x24,0x01,0xF5,0x82,0xE4,0x34,0xF0,
+ 0xAF,0x82,0xFE,0x90,0x45,0x7A,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0x90,0x45,0x7D,0xE0,0xFB,
+ 0x12,0x48,0x86,0x90,0x45,0x74,0xE0,0xFF,
+ 0xA3,0xE0,0xFD,0x90,0x45,0x7D,0xE0,0xFE,
+ 0x90,0x45,0x77,0xE0,0x2E,0xFB,0x90,0x46,
+ 0x04,0x74,0x01,0xF0,0x12,0x7E,0xD9,0x22,
+ 0x90,0x45,0x77,0xE0,0x70,0x22,0x90,0x45,
+ 0x74,0xE0,0xFF,0xA3,0xE0,0x44,0x01,0xFD,
+ 0x90,0x45,0x7D,0xE0,0xFB,0x90,0x46,0x04,
+ 0x74,0x01,0xF0,0x12,0x7E,0xD9,0x90,0x45,
+ 0x7E,0xEF,0xF0,0x60,0x5F,0xE0,0xFF,0x22,
+ 0x7E,0xF0,0x7F,0x01,0x90,0x45,0x77,0xE0,
+ 0xFD,0xC3,0x74,0x7A,0x9D,0xF9,0x74,0x45,
+ 0x94,0x00,0xFC,0xAD,0x01,0xE0,0xFB,0x12,
+ 0x48,0x86,0x90,0x45,0x74,0xE0,0xFF,0xA3,
+ 0xE0,0xFD,0x90,0x45,0x77,0xE0,0xFB,0x90,
+ 0x46,0x04,0x74,0x01,0xF0,0x12,0x7E,0xD9,
+ 0x90,0x45,0x7E,0xEF,0xF0,0x60,0x03,0xE0,
+ 0xFF,0x22,0x90,0x45,0x74,0xE0,0xFF,0xA3,
+ 0xE0,0x44,0x01,0xFD,0x90,0x45,0x7D,0xE0,
+ 0xFB,0x90,0x46,0x04,0x74,0x01,0xF0,0x12,
+ 0x7E,0xD9,0x90,0x45,0x7E,0xEF,0xF0,0x60,
+ 0x03,0xE0,0xFF,0x22,0x90,0x45,0x7A,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x7C,0xF0,0x7D,0x00,
+ 0x90,0x45,0x7D,0xE0,0xFB,0x12,0x48,0x86,
+ 0x7F,0x00,0x22,0x90,0x45,0x7F,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0xA3,0xEC,0xF0,0xA3,0xED,
+ 0xF0,0x90,0x45,0x77,0x74,0x01,0xF0,0x90,
+ 0x45,0x7F,0xE0,0xFF,0xA3,0xE0,0x90,0x45,
+ 0x78,0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x45,
+ 0x81,0xE0,0xFF,0xA3,0xE0,0x90,0x45,0x7A,
+ 0xCF,0xF0,0xA3,0xEF,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x04,0xF0,0x7D,0xC0,0x7F,0x02,0x12,
+ 0x56,0x45,0x22,0x90,0x45,0x83,0xEF,0xF0,
+ 0xA3,0xED,0xF0,0xA3,0xEB,0xF0,0x90,0x45,
+ 0x89,0x74,0x9C,0xF0,0xA3,0x74,0x40,0xF0,
+ 0xE5,0x16,0x60,0x03,0xE4,0xF5,0x16,0xE5,
+ 0x16,0x60,0x67,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x85,
+ 0x16,0x16,0x05,0x16,0x85,0x16,0x16,0x05,
+ 0x16,0x85,0x16,0x16,0x05,0x16,0x85,0x16,
+ 0x16,0x05,0x16,0x85,0x16,0x16,0x05,0x16,
+ 0x85,0x16,0x16,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x85,
+ 0x16,0x16,0x05,0x16,0x85,0x16,0x16,0x05,
+ 0x16,0x85,0x16,0x16,0x05,0x16,0x85,0x16,
+ 0x16,0x05,0x16,0x85,0x16,0x16,0x05,0x16,
+ 0x85,0x16,0x16,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x85,
+ 0x16,0x16,0x05,0x16,0x85,0x16,0x16,0x85,
+ 0x16,0x16,0x90,0x45,0x84,0xE0,0x90,0xF0,
+ 0x00,0xF0,0x90,0x83,0xED,0xE0,0xB4,0x01,
+ 0x27,0x90,0x83,0xF3,0xE0,0xFF,0x90,0x83,
+ 0xF2,0xE0,0x2F,0xFF,0xE4,0x33,0xFE,0xC3,
+ 0xEF,0x94,0x05,0xEE,0x64,0x80,0x94,0x80,
+ 0x50,0x05,0x12,0x7D,0xA1,0x80,0x09,0x90,
+ 0x45,0x87,0x74,0x05,0xF0,0x02,0x59,0x64,
+ 0x05,0x16,0x05,0x16,0x05,0x16,0x05,0x16,
+ 0x90,0xF1,0x03,0xE0,0x90,0x45,0x88,0xF0,
+ 0x90,0xF6,0xB5,0xE0,0x54,0xF7,0x44,0x08,
+ 0xF0,0xE0,0x54,0xF7,0xF0,0x90,0x45,0x83,
+ 0xE0,0xFF,0xB4,0x01,0x09,0x90,0xF1,0x04,
+ 0xE0,0x54,0xF3,0xF0,0x80,0x18,0xEF,0xB4,
+ 0x02,0x0B,0x90,0xF1,0x04,0xE0,0x54,0xF3,
+ 0x44,0x08,0xF0,0x80,0x09,0x90,0xF1,0x04,
+ 0xE0,0x54,0xF3,0x44,0x04,0xF0,0x90,0x45,
+ 0x84,0xE0,0x54,0x01,0xFF,0x90,0xF1,0x00,
+ 0xE0,0x54,0xFE,0x4F,0xF0,0x90,0x45,0x85,
+ 0xE0,0x90,0xF1,0x01,0xF0,0x12,0x7E,0x84,
+ 0x90,0x45,0x86,0xE0,0x64,0x01,0x60,0x03,
+ 0x02,0x59,0x42,0x90,0xF1,0x02,0xE0,0x20,
+ 0xE2,0x16,0xE0,0x20,0xE1,0x12,0xE0,0x20,
+ 0xE3,0x0E,0x90,0x45,0x89,0x74,0xFF,0xF5,
+ 0xF0,0x12,0x80,0x6F,0x45,0xF0,0x70,0xE3,
+ 0x90,0x45,0x89,0xE0,0x70,0x02,0xA3,0xE0,
+ 0x70,0x25,0x05,0x16,0x85,0x16,0x16,0x05,
+ 0x16,0x85,0x16,0x16,0x85,0x16,0x16,0x85,
+ 0x16,0x16,0x90,0xF6,0xB5,0xE0,0x54,0xF7,
+ 0x44,0x08,0xF0,0xE0,0x54,0xF7,0xF0,0x90,
+ 0x45,0x87,0x74,0x04,0xF0,0x80,0x49,0x90,
+ 0xF1,0x02,0xE0,0x30,0xE2,0x08,0x90,0x45,
+ 0x87,0x74,0x02,0xF0,0x80,0x3A,0x90,0x45,
+ 0x84,0xE0,0x30,0xE0,0x16,0x90,0xF1,0x02,
+ 0xE0,0x30,0xE1,0x08,0x90,0x45,0x87,0x74,
+ 0x01,0xF0,0x80,0x24,0xE4,0x90,0x45,0x87,
+ 0xF0,0x80,0x1D,0x90,0xF1,0x02,0xE0,0x30,
+ 0xE3,0x08,0x90,0x45,0x87,0x74,0x01,0xF0,
+ 0x80,0x0E,0xE4,0x90,0x45,0x87,0xF0,0x80,
+ 0x07,0xE4,0x90,0x45,0x87,0xF0,0x80,0x1B,
+ 0x90,0x45,0x84,0xE0,0x30,0xE0,0x0B,0x90,
+ 0xF1,0x02,0xE0,0x54,0xF7,0x44,0x08,0xF0,
+ 0x80,0x09,0x90,0xF1,0x02,0xE0,0x54,0xFD,
+ 0x44,0x02,0xF0,0x90,0x45,0x88,0xE0,0x90,
+ 0xF1,0x03,0xF0,0x90,0x45,0x87,0xE0,0xFF,
+ 0x22,0x90,0xF6,0x13,0xE0,0x30,0xE0,0x03,
+ 0x7F,0x03,0x22,0x90,0xF6,0xB4,0xE0,0x30,
+ 0xE0,0x03,0x7F,0x00,0x22,0x90,0xF6,0x6F,
+ 0xE0,0x30,0xE0,0x03,0x7F,0x02,0x22,0x7F,
+ 0x01,0x22,0x90,0x41,0x7F,0xE0,0x90,0x45,
+ 0x8B,0xF0,0xE0,0x54,0xF9,0xFF,0xBF,0x38,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0xEF,
+ 0x54,0x01,0xFF,0x90,0xD8,0x1A,0xE0,0x54,
+ 0xFE,0x4F,0xF0,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x85,
+ 0x16,0x16,0x05,0x16,0x85,0x16,0x16,0x05,
+ 0x16,0x85,0x16,0x16,0x90,0xD8,0x30,0xE0,
+ 0x54,0xFE,0x44,0x01,0xF0,0xA3,0xE0,0x54,
+ 0xFE,0xF0,0xA3,0xE0,0x54,0xFE,0xF0,0x90,
+ 0xD8,0x29,0xE0,0x54,0xFE,0xF0,0x90,0xF6,
+ 0xB3,0xE0,0x54,0xFE,0x44,0x01,0xF0,0x90,
+ 0xF6,0x32,0x74,0xFF,0xF0,0xA3,0xF0,0x90,
+ 0xF6,0x31,0xE0,0x54,0xFE,0x44,0x01,0xF0,
+ 0x90,0xF6,0x13,0xE0,0x54,0x01,0x90,0x42,
+ 0xE9,0xF0,0x12,0x7E,0x06,0x12,0x59,0x72,
+ 0x90,0x45,0x8D,0xEF,0xF0,0x90,0xF6,0xA0,
+ 0x74,0x04,0xF0,0x90,0x45,0x8D,0xE0,0x90,
+ 0xF6,0xA1,0xF0,0x90,0xF6,0xDE,0xE0,0x54,
+ 0xFE,0x44,0x01,0xF0,0x90,0xF6,0xDE,0xE0,
+ 0x20,0xE0,0xF9,0x90,0xDF,0x82,0xE0,0x44,
+ 0x20,0xF0,0x90,0xDD,0x17,0xE0,0x54,0xFE,
+ 0xF0,0xC2,0xDC,0xD2,0xBC,0x12,0x48,0xA5,
+ 0xD2,0xE9,0x12,0x53,0x65,0x12,0x6A,0x52,
+ 0x90,0xF4,0x18,0xE4,0xF0,0xA3,0xE0,0x54,
+ 0xF0,0x44,0x08,0xF0,0x90,0xF4,0x1E,0xE0,
+ 0x54,0xEF,0x44,0x10,0xF0,0xD2,0xB8,0xC2,
+ 0xBA,0xD2,0xAF,0xD2,0xA8,0xD2,0xAA,0x90,
+ 0xDF,0x82,0xE0,0x30,0xE0,0x1A,0xA2,0xDD,
+ 0xE4,0x33,0x90,0x43,0xF5,0xF0,0xC2,0xDD,
+ 0x90,0xDF,0x82,0x74,0x20,0xF0,0xE4,0xF0,
+ 0x90,0x43,0xF5,0xE0,0x24,0xFF,0x92,0xDD,
+ 0x90,0x41,0x81,0xE0,0xFF,0x90,0x45,0xA6,
+ 0xE0,0x6F,0x60,0x1C,0xA2,0xDD,0xE4,0x33,
+ 0x90,0x43,0xF5,0xF0,0xC2,0xDD,0xE4,0x90,
+ 0x45,0xB9,0xF0,0x90,0x45,0xA6,0xEF,0xF0,
+ 0x90,0x43,0xF5,0xE0,0x24,0xFF,0x92,0xDD,
+ 0x12,0x79,0xFA,0x90,0x45,0x8C,0xE0,0xB4,
+ 0x07,0x05,0x12,0x7A,0x92,0x80,0xA8,0x12,
+ 0x7A,0x92,0x80,0xA3,0x22,0x22,0x22,0x90,
+ 0x45,0x8E,0xEE,0xF0,0xA3,0xEF,0xF0,0xE4,
+ 0xA3,0xF0,0xA3,0xF0,0xFC,0xEC,0xC3,0x9D,
+ 0x50,0x43,0xEC,0x30,0xE0,0x1F,0x90,0x45,
+ 0x8E,0xE0,0xFE,0xA3,0xE0,0x2C,0xF5,0x82,
+ 0xE4,0x3E,0xF5,0x83,0xE0,0xFF,0x90,0x45,
+ 0x91,0xE0,0x2F,0xF0,0x90,0x45,0x90,0xE0,
+ 0x34,0x00,0xF0,0x80,0x1D,0x90,0x45,0x8E,
+ 0xE0,0xFE,0xA3,0xE0,0x2C,0xF5,0x82,0xE4,
+ 0x3E,0xF5,0x83,0xE0,0xFE,0x90,0x45,0x91,
+ 0xE0,0x24,0x00,0xF0,0x90,0x45,0x90,0xE0,
+ 0x3E,0xF0,0x0C,0x80,0xB8,0x90,0x45,0x90,
+ 0xE0,0xFE,0xA3,0xE0,0xF4,0xFF,0xEE,0xF4,
+ 0xFE,0x22,0x90,0xF7,0x00,0xE0,0x24,0xFE,
+ 0xFD,0x7F,0x01,0x7E,0xF7,0x12,0x5A,0xD0,
+ 0x90,0xF7,0x00,0xE0,0x24,0xFF,0xF5,0x82,
+ 0xE4,0x34,0xF6,0xF5,0x83,0xEE,0xF0,0xA3,
+ 0xEF,0xF0,0x22,0x8F,0x0A,0xE5,0x0A,0x24,
+ 0x04,0x90,0xF7,0x00,0xF0,0x90,0xF7,0x03,
+ 0xE0,0x90,0xF7,0x01,0xF0,0xA3,0xE4,0xF0,
+ 0xE5,0x0A,0x24,0x05,0x90,0xF4,0x12,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,0xF0,
+ 0x75,0x08,0xF7,0x75,0x09,0x03,0xE5,0x0A,
+ 0x60,0x3C,0xB4,0x01,0x0E,0x8D,0x82,0x8C,
+ 0x83,0xE0,0x85,0x09,0x82,0x85,0x08,0x83,
+ 0xF0,0x80,0x2B,0x8D,0x82,0x8C,0x83,0xE0,
+ 0xFF,0xA3,0xE0,0x85,0x09,0x82,0x85,0x08,
+ 0x83,0xCF,0xF0,0xA3,0xEF,0xF0,0x74,0x02,
+ 0x2D,0xFD,0xE4,0x3C,0xFC,0x74,0x02,0x25,
+ 0x09,0xF5,0x09,0xE4,0x35,0x08,0xF5,0x08,
+ 0x15,0x0A,0x15,0x0A,0x80,0xC0,0x12,0x5B,
+ 0x33,0x22,0x90,0x45,0x92,0x74,0xFE,0xF0,
+ 0x90,0xF4,0x05,0xE0,0x20,0xE5,0x03,0x02,
+ 0x64,0x8E,0xE4,0xF5,0x0C,0x90,0xF6,0xB4,
+ 0xE0,0x30,0xE0,0x1D,0x90,0xF4,0x09,0xE0,
+ 0xF4,0x60,0x16,0x90,0xF7,0x00,0xE0,0x04,
+ 0xFF,0x90,0xF4,0x09,0xE0,0xC3,0x9F,0x50,
+ 0x08,0x90,0xF4,0x05,0xE0,0x44,0x20,0xF0,
+ 0x22,0x90,0xF6,0xB4,0xE0,0x30,0xE0,0x05,
+ 0x90,0xF4,0x09,0xE4,0xF0,0x90,0xF6,0xB4,
+ 0xE0,0x20,0xE0,0x44,0x90,0xF6,0x6F,0xE0,
+ 0x20,0xE0,0x3D,0x90,0xF6,0x04,0xE0,0x54,
+ 0xF0,0x60,0x35,0x90,0xF6,0x03,0xE0,0x04,
+ 0xF0,0x90,0xF4,0x05,0x74,0x20,0xF0,0x90,
+ 0x45,0xA5,0xE0,0x04,0xF0,0x70,0x06,0x90,
+ 0x45,0xA4,0xE0,0x04,0xF0,0x90,0xF6,0x04,
+ 0xE0,0x30,0xE1,0xF9,0x90,0xF6,0x04,0xE4,
+ 0xF0,0xE0,0x44,0x01,0xF0,0xE0,0x54,0xFE,
+ 0xF0,0x90,0xF6,0x03,0xE0,0x14,0xF0,0x22,
+ 0x90,0xF7,0x01,0xE0,0x54,0x70,0x60,0x04,
+ 0x12,0x7B,0x67,0x22,0x90,0xF7,0x03,0xE0,
+ 0x90,0x45,0x97,0xF0,0x90,0xF7,0x00,0xE0,
+ 0x64,0x03,0x70,0x2C,0xA3,0xE0,0x64,0x02,
+ 0x70,0x26,0x90,0xF7,0x00,0x04,0xF0,0x90,
+ 0xF7,0x02,0xE0,0xFE,0xA3,0xE0,0xF5,0x82,
+ 0x8E,0x83,0xE0,0x90,0xF7,0x01,0xF0,0x90,
+ 0xF4,0x12,0x74,0x02,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0xE0,0x54,0xFC,0xF0,0x02,0x63,0xEF,
+ 0x90,0xF7,0x00,0xE0,0xB4,0x04,0x1E,0xA3,
+ 0xE0,0xB4,0x03,0x19,0x90,0xF7,0x04,0xE0,
+ 0xFF,0x90,0xF7,0x02,0xE0,0xFC,0xA3,0xE0,
+ 0xF5,0x82,0x8C,0x83,0xEF,0xF0,0x90,0xF4,
+ 0x05,0x74,0x20,0xF0,0x22,0x90,0xF7,0x00,
+ 0xE0,0xB4,0x04,0x0D,0xA3,0xE0,0xB4,0x04,
+ 0x08,0x90,0x45,0x93,0x74,0x01,0xF0,0x80,
+ 0x12,0x90,0xF7,0x00,0xE0,0x64,0x05,0x70,
+ 0x75,0xA3,0xE0,0x64,0x05,0x70,0x6F,0x90,
+ 0x45,0x93,0xF0,0x90,0xF7,0x02,0xE0,0xFD,
+ 0x90,0x45,0x93,0xE0,0xFB,0x90,0xF7,0x03,
+ 0xE0,0x90,0x45,0x77,0xF0,0x90,0xF7,0x04,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x45,0x78,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0xEB,0x60,0x06,0x7E,
+ 0xF7,0x7F,0x01,0x80,0x04,0x7E,0xF7,0x7F,
+ 0x06,0x90,0x45,0x7A,0xEE,0xF0,0xA3,0xEF,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x04,0xF0,0x7F,
+ 0x02,0x12,0x56,0x45,0x90,0x45,0x95,0xEF,
+ 0xF0,0x90,0x45,0x93,0xE0,0x70,0x07,0x90,
+ 0xF4,0x05,0x74,0x20,0xF0,0x22,0x90,0xF7,
+ 0x00,0x74,0x01,0xF0,0x90,0x45,0x95,0xE0,
+ 0x70,0x03,0x02,0x5C,0x88,0x90,0xF7,0x01,
+ 0x74,0xFF,0xF0,0x02,0x5C,0x88,0x90,0x45,
+ 0x92,0x74,0xFF,0xF0,0x85,0x16,0x16,0x85,
+ 0x16,0x16,0x90,0xF7,0x00,0xE0,0xF5,0x0B,
+ 0x24,0xFE,0xFD,0x7F,0x01,0x7E,0xF7,0x12,
+ 0x5A,0xD0,0x74,0xFF,0x25,0x0B,0xF5,0x82,
+ 0xE4,0x34,0xF6,0xF5,0x83,0xE0,0xFC,0xA3,
+ 0xE0,0x6F,0x70,0x02,0xEC,0x6E,0x60,0x03,
+ 0x02,0x63,0xEC,0x90,0x45,0x9D,0x74,0x01,
+ 0xF0,0x90,0xF7,0x01,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xEE,0x60,0x03,0x02,0x63,0xE6,0xEF,
+ 0x12,0x80,0xB1,0x60,0x4F,0x00,0x5D,0xD0,
+ 0x01,0x5E,0xF5,0x02,0x5E,0xEE,0x03,0x5F,
+ 0xA8,0x04,0x5F,0xA1,0x05,0x60,0x67,0x06,
+ 0x5E,0x77,0x18,0x5E,0x30,0x22,0x61,0xE5,
+ 0x23,0x63,0xDB,0x25,0x62,0xA5,0x29,0x62,
+ 0x1A,0x2A,0x62,0x31,0x2B,0x60,0x67,0x30,
+ 0x60,0xEA,0x32,0x00,0x00,0x63,0xE6,0x90,
+ 0xF6,0xB4,0xE0,0x54,0x08,0xF5,0x0C,0x60,
+ 0x04,0xE0,0x54,0xF7,0xF0,0x90,0xF7,0x04,
+ 0xE0,0xF5,0x0B,0x90,0xF7,0x08,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x80,0x00,0x12,0x7B,0x64,
+ 0xEF,0x70,0x2B,0xE5,0x0B,0x60,0x27,0x15,
+ 0x0B,0x74,0x0A,0x25,0x0B,0xF5,0x82,0xE4,
+ 0x34,0xF7,0xF5,0x83,0xE0,0xFF,0xE5,0x0B,
+ 0xFD,0x7C,0x00,0x90,0xF7,0x08,0xE0,0xFA,
+ 0xA3,0xE0,0x2D,0xFD,0xEC,0x3A,0x8D,0x82,
+ 0xF5,0x83,0xEF,0xF0,0x80,0xD5,0xE5,0x0C,
+ 0x60,0x07,0x90,0xF6,0xB4,0xE0,0x44,0x08,
+ 0xF0,0xE4,0xF5,0x0C,0x02,0x63,0xEF,0x90,
+ 0xF4,0x12,0x74,0x09,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0xE0,0x54,0xFC,0xF0,0x90,0xF7,0x00,
+ 0x74,0x08,0xF0,0x90,0xF7,0x03,0xE0,0x90,
+ 0xF7,0x01,0xF0,0xA3,0xE4,0xF0,0x90,0x83,
+ 0xE9,0xE0,0x90,0xF7,0x03,0xF0,0x90,0x83,
+ 0xEA,0xE0,0x90,0xF7,0x04,0xF0,0x90,0x83,
+ 0xEB,0xE0,0x90,0xF7,0x05,0xF0,0x90,0x83,
+ 0xEC,0xE0,0x90,0xF7,0x06,0xF0,0xE4,0x90,
+ 0x45,0x92,0xF0,0x02,0x63,0xEF,0x90,0xF7,
+ 0x00,0x74,0x08,0xF0,0x90,0xF7,0x03,0xE0,
+ 0x90,0xF7,0x01,0xF0,0x90,0x45,0xB9,0xE0,
+ 0x60,0x40,0xE4,0x90,0x45,0xB9,0xF0,0x90,
+ 0xF7,0x02,0xF0,0x90,0x45,0xB8,0x04,0xF0,
+ 0x90,0x45,0xBA,0xE0,0xFF,0x90,0x45,0x9F,
+ 0xF0,0x90,0xDE,0x80,0xE0,0x90,0xF7,0x03,
+ 0xF0,0x90,0xDE,0x81,0xE0,0x90,0xF7,0x04,
+ 0xF0,0x90,0xDE,0x82,0xE0,0x90,0xF7,0x05,
+ 0xF0,0x90,0xDE,0x83,0xE0,0x90,0xF7,0x06,
+ 0xF0,0x90,0x45,0x9F,0xE0,0xB5,0x07,0xC2,
+ 0x80,0x06,0x90,0xF7,0x02,0x74,0x01,0xF0,
+ 0x90,0xF7,0x00,0xE0,0x04,0x90,0xF4,0x12,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,
+ 0xF0,0xE4,0x90,0x45,0xB8,0xF0,0x90,0x45,
+ 0x92,0xF0,0x02,0x63,0xEF,0xE4,0x90,0x45,
+ 0x93,0xF0,0x80,0x06,0x90,0x45,0x93,0x74,
+ 0x01,0xF0,0x90,0x45,0x94,0x74,0x02,0xF0,
+ 0x90,0x45,0x93,0xE0,0x60,0x07,0x90,0xF7,
+ 0x04,0xE0,0xFF,0x80,0x02,0x7F,0x00,0xEF,
+ 0x24,0x04,0x90,0x45,0x96,0xF0,0x90,0xF7,
+ 0x05,0xE0,0xB4,0x01,0x08,0x90,0x42,0xEA,
+ 0xE0,0xFF,0xFD,0x80,0x06,0x90,0xF7,0x05,
+ 0xE0,0xFF,0xFD,0x90,0x45,0x93,0xE0,0xFB,
+ 0x90,0xF7,0x06,0xE0,0x90,0x45,0x77,0xF0,
+ 0x90,0xF7,0x07,0xE0,0xFF,0xA3,0xE0,0x90,
+ 0x45,0x78,0xCF,0xF0,0xA3,0xEF,0xF0,0xEB,
+ 0x60,0x06,0x7E,0xF7,0x7F,0x03,0x80,0x04,
+ 0x7E,0xF7,0x7F,0x09,0x90,0x45,0x7A,0xEE,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0xF7,0x04,0xE0,
+ 0xFF,0x90,0x45,0x7C,0xE4,0xF0,0xA3,0xEF,
+ 0xF0,0x7F,0x02,0x12,0x56,0x45,0x90,0x45,
+ 0x95,0xEF,0xF0,0xA3,0xE0,0xFF,0x90,0xF7,
+ 0x00,0xF0,0x90,0x45,0x97,0xE0,0x90,0xF7,
+ 0x01,0xF0,0x90,0x45,0x95,0xE0,0x90,0xF7,
+ 0x02,0xF0,0xEF,0x04,0x90,0xF4,0x12,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,0xF0,
+ 0xE4,0x90,0x45,0x92,0xF0,0x02,0x63,0xEF,
+ 0xE4,0x90,0x45,0x93,0xF0,0x80,0x06,0x90,
+ 0x45,0x93,0x74,0x01,0xF0,0x90,0x42,0xE9,
+ 0xE0,0x60,0x04,0x7F,0x01,0x80,0x02,0x7F,
+ 0x03,0x90,0x45,0x94,0xEF,0xF0,0x90,0x45,
+ 0x93,0xE0,0xFB,0x60,0x07,0x90,0xF7,0x04,
+ 0xE0,0xFF,0x80,0x02,0x7F,0x00,0xEF,0x24,
+ 0x04,0x90,0x45,0x96,0xF0,0x90,0xF7,0x05,
+ 0xE0,0xB4,0x01,0x08,0x90,0x42,0xEA,0xE0,
+ 0xFF,0xFD,0x80,0x06,0x90,0xF7,0x05,0xE0,
+ 0xFF,0xFD,0x90,0xF7,0x08,0xE0,0x90,0x45,
+ 0x66,0xF0,0xEB,0x60,0x06,0x7E,0xF7,0x7F,
+ 0x03,0x80,0x04,0x7E,0xF7,0x7F,0x09,0x90,
+ 0x45,0x67,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,
+ 0xF7,0x04,0xE0,0xFF,0x90,0x45,0x69,0xE4,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x45,0x94,0xE0,
+ 0xFF,0x12,0x54,0x23,0x90,0x45,0x95,0xEF,
+ 0xF0,0xA3,0xE0,0xFF,0x90,0xF7,0x00,0xF0,
+ 0x90,0x45,0x97,0xE0,0x90,0xF7,0x01,0xF0,
+ 0x90,0x45,0x95,0xE0,0x90,0xF7,0x02,0xF0,
+ 0xEF,0x04,0x90,0xF4,0x12,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xE0,0x54,0xFC,0xF0,0xE4,0x90,
+ 0x45,0x92,0xF0,0x02,0x63,0xEF,0x90,0xF7,
+ 0x04,0xE0,0xFF,0x90,0xF7,0x08,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0x12,0x5B,0x54,0xE4,0x90,
+ 0x45,0x92,0xF0,0x02,0x63,0xEF,0xC2,0x8C,
+ 0xC2,0x8D,0xE4,0xF5,0x8A,0xF5,0x8C,0xE5,
+ 0x89,0x54,0xF0,0x44,0x01,0xF5,0x89,0xD2,
+ 0x8C,0xE4,0x90,0x45,0xA0,0xF0,0x90,0xF4,
+ 0x04,0xE0,0x54,0x04,0xFF,0x13,0x13,0x54,
+ 0x3F,0x60,0x1F,0xE0,0x54,0xFB,0x44,0x04,
+ 0xF0,0xA3,0x74,0x20,0xF0,0x90,0xF4,0x14,
+ 0xE0,0x54,0x7F,0xF0,0x90,0xF4,0x11,0xE0,
+ 0x54,0xFC,0x44,0x02,0xF0,0xC2,0x8C,0xC2,
+ 0x8D,0x22,0x30,0x8D,0xD1,0xC2,0x8C,0xC2,
+ 0x8D,0x90,0x45,0xA0,0xE0,0x04,0xF0,0xE0,
+ 0xD3,0x94,0x01,0x40,0x28,0x90,0xF4,0x14,
+ 0xE0,0x54,0x7F,0x44,0x80,0xF0,0xE0,0x54,
+ 0xFC,0xF0,0x90,0xF4,0x13,0x74,0x08,0xF0,
+ 0x90,0xF4,0x12,0xE4,0xF0,0x90,0xF4,0x05,
+ 0x74,0x20,0xF0,0x90,0xF4,0x11,0xE0,0x54,
+ 0xFC,0x44,0x01,0xF0,0x22,0xD2,0x8C,0x80,
+ 0x95,0x90,0xF7,0x0A,0xE0,0xFF,0x90,0x45,
+ 0x9D,0xF0,0x90,0x45,0xA1,0xF0,0x90,0xF4,
+ 0x14,0xE0,0x30,0xE7,0x1F,0x90,0xF7,0x04,
+ 0xE0,0x54,0x03,0xFF,0x90,0xF4,0x14,0xE0,
+ 0x54,0xFC,0x4F,0xF0,0x90,0xF7,0x05,0xE0,
+ 0x90,0xF4,0x13,0xF0,0x90,0xF7,0x06,0xE0,
+ 0x90,0xF4,0x12,0xF0,0x90,0xF4,0x05,0x74,
+ 0x20,0xF0,0x90,0xF4,0x11,0xE0,0x54,0x03,
+ 0x60,0x08,0x90,0x45,0xA2,0xE0,0x64,0x01,
+ 0x60,0x1B,0x90,0xF7,0x07,0xE0,0xB4,0xF0,
+ 0x0B,0x90,0xF4,0x11,0xE0,0x54,0xFC,0x44,
+ 0x02,0xF0,0x80,0x09,0x90,0xF4,0x11,0xE0,
+ 0x54,0xFC,0x44,0x01,0xF0,0xE4,0x90,0x45,
+ 0xA2,0xF0,0x90,0x45,0xA1,0xE0,0xB4,0x01,
+ 0x0A,0x90,0xF4,0x04,0xE0,0x54,0xFB,0x44,
+ 0x04,0xF0,0x22,0x90,0xF4,0x05,0xE0,0x20,
+ 0xE5,0x09,0x90,0xF4,0x15,0xE0,0xC3,0x94,
+ 0x05,0x40,0xF0,0x90,0xF4,0x04,0xE0,0x54,
+ 0xFB,0x44,0x04,0xF0,0xA3,0xE0,0x30,0xE5,
+ 0x07,0x90,0x45,0xA2,0x74,0x01,0xF0,0x22,
+ 0x90,0x45,0x9D,0xE0,0x14,0xF0,0x70,0x03,
+ 0x02,0x64,0x8E,0x90,0xF4,0x15,0xE0,0x70,
+ 0xFA,0xA3,0xE0,0x70,0xF6,0xA3,0xE0,0x54,
+ 0x03,0x70,0xF0,0x90,0xF4,0x04,0xE0,0x54,
+ 0x04,0xFF,0x13,0x13,0x54,0x3F,0x60,0x0C,
+ 0x90,0x45,0xA3,0xE0,0xC3,0x94,0xFF,0x50,
+ 0x03,0xE0,0x04,0xF0,0x90,0xF4,0x05,0xE0,
+ 0x20,0xE5,0x0D,0x90,0xF4,0x04,0xE0,0x54,
+ 0x04,0xFF,0x13,0x13,0x54,0x3F,0x60,0xEC,
+ 0x90,0xF4,0x05,0xE0,0x20,0xE5,0x03,0x02,
+ 0x61,0x23,0x90,0xF4,0x04,0xE0,0x54,0xFB,
+ 0x44,0x04,0xF0,0x22,0xD2,0x89,0x90,0xF6,
+ 0xB3,0xE0,0x54,0xFE,0xF0,0x90,0xF6,0xDE,
+ 0xE0,0x54,0xFE,0x44,0x01,0xF0,0x90,0xF6,
+ 0xDE,0xE0,0x20,0xE0,0xF9,0x90,0x42,0xE9,
+ 0xE0,0x60,0x07,0x90,0xDD,0x00,0xE0,0x54,
+ 0x7F,0xF0,0x90,0xF4,0x05,0x74,0x20,0xF0,
+ 0x90,0xF6,0x2F,0xE0,0x54,0xFE,0x44,0x01,
+ 0xF0,0x90,0x45,0x93,0x74,0x01,0xF0,0x90,
+ 0xF7,0x06,0xE0,0x44,0x01,0xF0,0x90,0xF7,
+ 0x03,0xE0,0x90,0xF7,0x01,0xF0,0x80,0x1D,
+ 0xE4,0x90,0x45,0x93,0xF0,0x90,0xF7,0x03,
+ 0xE0,0x90,0xF7,0x01,0xF0,0x7E,0xF0,0x7F,
+ 0x01,0x90,0xF7,0x04,0xE0,0xFB,0x7D,0x07,
+ 0x7C,0xF7,0x12,0x48,0x86,0x90,0xF7,0x04,
+ 0xE0,0xF5,0x0B,0xA3,0xE0,0xFF,0xA3,0xE0,
+ 0xFD,0x90,0x46,0x04,0x74,0x01,0xF0,0xAB,
+ 0x0B,0x12,0x7E,0xD9,0x8F,0x0C,0x90,0xF7,
+ 0x02,0xEF,0xF0,0x90,0x45,0x93,0xE0,0x64,
+ 0x01,0x60,0x03,0x02,0x63,0xEF,0x7C,0xF0,
+ 0x7D,0x00,0x90,0xF7,0x04,0xE0,0xFB,0x7F,
+ 0x03,0x7E,0xF7,0x12,0x48,0x86,0xE4,0x90,
+ 0x45,0x92,0xF0,0xE5,0x0B,0x24,0x04,0x90,
+ 0xF7,0x00,0xF0,0xE0,0x04,0x90,0xF4,0x12,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,
+ 0xF0,0x02,0x63,0xEF,0x90,0x45,0x9B,0x74,
+ 0xF7,0xF0,0xA3,0x74,0x08,0xF0,0x90,0xF7,
+ 0x04,0xE0,0x24,0xFE,0x60,0x10,0x14,0x60,
+ 0x7F,0x24,0x02,0x60,0x03,0x02,0x63,0xCD,
+ 0x75,0x0C,0x01,0x02,0x63,0xD0,0x90,0xF7,
+ 0x07,0xE0,0x75,0xF0,0x02,0xA4,0x24,0x08,
+ 0xFE,0xE5,0xF0,0x34,0xF7,0x90,0x45,0x99,
+ 0xF0,0xA3,0xCE,0xF0,0xE4,0x90,0x45,0x98,
+ 0xF0,0x90,0xF7,0x07,0xE0,0xFF,0x90,0x45,
+ 0x98,0xE0,0xC3,0x9F,0x50,0x44,0xA3,0xE0,
+ 0xFE,0xA3,0xE0,0xF5,0x82,0x8E,0x83,0xE0,
+ 0xFF,0x90,0x45,0x9B,0xE0,0xFC,0xA3,0xE0,
+ 0xF5,0x82,0x8C,0x83,0xE0,0xFC,0xA3,0xE0,
+ 0xF5,0x82,0x8C,0x83,0xEF,0xF0,0x90,0x45,
+ 0x98,0xE0,0x04,0xF0,0x90,0x45,0x9A,0xE0,
+ 0x04,0xF0,0x70,0x06,0x90,0x45,0x99,0xE0,
+ 0x04,0xF0,0x90,0x45,0x9C,0xE0,0x24,0x02,
+ 0xF0,0x90,0x45,0x9B,0xE0,0x34,0x00,0xF0,
+ 0x80,0xAF,0xE4,0xF5,0x0C,0x02,0x63,0xD0,
+ 0x90,0xF7,0x07,0xE0,0x75,0xF0,0x03,0xA4,
+ 0x24,0x08,0xFE,0xE5,0xF0,0x34,0xF7,0x90,
+ 0x45,0x99,0xF0,0xA3,0xCE,0xF0,0x90,0xF7,
+ 0x07,0xE0,0x75,0xF0,0x03,0xA4,0x24,0x08,
+ 0x90,0xF6,0x20,0xF0,0xE4,0x90,0x45,0x98,
+ 0xF0,0x90,0xF7,0x07,0xE0,0xFF,0x90,0x45,
+ 0x98,0xE0,0xC3,0x9F,0x50,0x59,0x90,0x45,
+ 0x9B,0xE0,0xFE,0xA3,0xE0,0xFF,0x24,0x02,
+ 0xFD,0xE4,0x3E,0x8D,0x82,0xF5,0x83,0xE0,
+ 0xFD,0x90,0x45,0x9E,0xF0,0xFB,0x8F,0x82,
+ 0x8E,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,
+ 0x45,0x99,0xE0,0xFC,0xA3,0xE0,0xFD,0x12,
+ 0x48,0x86,0x90,0x45,0x9E,0xE0,0xFF,0x90,
+ 0x45,0x9A,0xE0,0x2F,0xF0,0x90,0x45,0x99,
+ 0xE0,0x34,0x00,0xF0,0x90,0x45,0x98,0xE0,
+ 0x04,0xF0,0x90,0x45,0x9B,0xE0,0xFE,0xA3,
+ 0xE0,0x24,0x03,0xFF,0xE4,0x3E,0x90,0x45,
+ 0x9B,0xF0,0xA3,0xEF,0xF0,0x80,0x9A,0xE4,
+ 0xF5,0x0C,0x80,0x03,0x12,0x7B,0x63,0x90,
+ 0x45,0x92,0x74,0xFF,0xF0,0xE4,0xF5,0x0C,
+ 0x80,0x14,0x90,0x45,0x92,0x74,0xFF,0xF0,
+ 0x75,0x0C,0xFA,0x80,0x09,0x12,0x7B,0x64,
+ 0xEF,0x70,0x03,0x75,0x0C,0x02,0x90,0x45,
+ 0x92,0xE0,0xFF,0xF4,0x60,0x3F,0xEF,0x64,
+ 0xFE,0x60,0x3A,0x12,0x5B,0x33,0x90,0xF4,
+ 0x05,0x74,0x20,0xF0,0x90,0x42,0xE9,0xE0,
+ 0x60,0x1B,0x7E,0xDE,0x7F,0x40,0x90,0xF7,
+ 0x00,0xE0,0x04,0xFB,0x7D,0x00,0x7C,0xF7,
+ 0x12,0x48,0x86,0x90,0xF7,0x00,0xE0,0x04,
+ 0x90,0xDD,0x86,0xF0,0x22,0x90,0x45,0x92,
+ 0xE0,0x54,0x03,0xFF,0x90,0xF4,0x11,0xE0,
+ 0x54,0xFC,0x4F,0xF0,0x22,0x90,0x45,0x92,
+ 0xE0,0xF4,0x70,0x23,0x90,0xF4,0x12,0x74,
+ 0x05,0xF0,0xA3,0xE4,0xF0,0xA3,0xE0,0x54,
+ 0xFC,0xF0,0x90,0xF7,0x00,0x74,0x04,0xF0,
+ 0x90,0xF7,0x03,0xE0,0x90,0xF7,0x01,0xF0,
+ 0xA3,0xE5,0x0C,0xF0,0x12,0x5B,0x33,0x90,
+ 0xF4,0x05,0x74,0x20,0xF0,0x90,0x42,0xE9,
+ 0xE0,0x60,0x1B,0x7E,0xDE,0x7F,0x40,0x90,
+ 0xF7,0x00,0xE0,0x04,0xFB,0x7D,0x00,0x7C,
+ 0xF7,0x12,0x48,0x86,0x90,0xF7,0x00,0xE0,
+ 0x04,0x90,0xDD,0x86,0xF0,0x22,0x90,0xF4,
+ 0x11,0xE0,0x54,0xFC,0xF0,0x22,0x22,0x22,
+ 0x22,0x22,0x22,0x90,0x42,0x98,0xE0,0x24,
+ 0xA0,0x60,0x2D,0x14,0x60,0x35,0x14,0x70,
+ 0x03,0x02,0x65,0x2F,0x24,0xFD,0x70,0x03,
+ 0x02,0x65,0x8F,0x14,0x70,0x03,0x02,0x65,
+ 0x99,0x24,0x16,0x60,0x03,0x02,0x65,0xFB,
+ 0x90,0x41,0x87,0xE0,0x90,0xDD,0x10,0xF0,
+ 0xE4,0x90,0x42,0x99,0xF0,0x02,0x66,0x04,
+ 0x90,0x41,0x95,0xE0,0xFF,0x12,0x4B,0x1E,
+ 0x02,0x66,0x04,0x90,0x42,0xEF,0xE0,0x60,
+ 0x29,0x78,0xBA,0x7C,0x41,0x7D,0x01,0x7B,
+ 0x01,0x7A,0x41,0x79,0xB1,0x7E,0x00,0x7F,
+ 0x09,0x12,0x81,0x99,0x90,0x41,0xBB,0x74,
+ 0x02,0xF0,0x7F,0x00,0x7E,0x40,0x12,0x4C,
+ 0xBF,0x7F,0x02,0x7E,0x00,0x12,0x4D,0x00,
+ 0x80,0x21,0x78,0xBA,0x7C,0x41,0x7D,0x01,
+ 0x7B,0x01,0x7A,0x42,0x79,0x9B,0x7E,0x00,
+ 0x7F,0x09,0x12,0x81,0x99,0x7F,0x02,0x7E,
+ 0x00,0x12,0x4C,0xBF,0x7F,0x14,0x7E,0x00,
+ 0x12,0x4D,0x00,0x90,0x41,0xBC,0xE0,0xFF,
+ 0x12,0x4B,0x1E,0x02,0x66,0x04,0xE4,0xFF,
+ 0x90,0x41,0x87,0xE0,0xFE,0xEF,0xC3,0x9E,
+ 0x50,0x2C,0x90,0x42,0x9A,0xE0,0xFE,0x90,
+ 0x42,0xF8,0xE0,0x75,0xF0,0x08,0xA4,0x2E,
+ 0xF5,0x82,0xE4,0x35,0xF0,0xF5,0x83,0xE5,
+ 0x82,0x24,0xF5,0xF5,0x82,0xE5,0x83,0x34,
+ 0x42,0xF5,0x83,0xE0,0xFE,0x90,0x42,0x9A,
+ 0xE0,0x2E,0xF0,0x0F,0x80,0xCA,0x90,0x42,
+ 0x9A,0xE0,0xFF,0x90,0x42,0xF8,0xE0,0x75,
+ 0xF0,0x08,0xA4,0x2F,0xF5,0x82,0xE4,0x35,
+ 0xF0,0xF5,0x83,0xE5,0x82,0x24,0xF5,0xF5,
+ 0x82,0xE5,0x83,0x34,0x42,0xF5,0x83,0xE0,
+ 0xFF,0x12,0x4B,0x1E,0x80,0x75,0x90,0x41,
+ 0xA7,0xE0,0xFF,0x12,0x4B,0x1E,0x80,0x6B,
+ 0x90,0x42,0xEF,0xE0,0x60,0x31,0x78,0xBA,
+ 0x7C,0x41,0x7D,0x01,0x7B,0x01,0x7A,0x42,
+ 0x79,0x9B,0x7E,0x00,0x7F,0x09,0x12,0x81,
+ 0x99,0x90,0x41,0xBB,0x74,0x07,0xF0,0x7F,
+ 0x02,0x7E,0x00,0x12,0x4C,0xBF,0x7F,0x14,
+ 0x7E,0x00,0x12,0x4D,0x00,0x90,0x41,0xBC,
+ 0xE0,0xFF,0x12,0x4B,0x1E,0x80,0x34,0x78,
+ 0xBA,0x7C,0x41,0x7D,0x01,0x7B,0x01,0x7A,
+ 0x41,0x79,0xB1,0x7E,0x00,0x7F,0x09,0x12,
+ 0x81,0x99,0x90,0x41,0xBC,0xE0,0xFF,0x12,
+ 0x4B,0x1E,0x7F,0x00,0x7E,0x40,0x12,0x4C,
+ 0xBF,0x7F,0x02,0x7E,0x00,0x12,0x4D,0x00,
+ 0x80,0x09,0x12,0x7B,0x64,0xEF,0x70,0x03,
+ 0x7F,0x07,0x22,0x7F,0x00,0x22,0x90,0x42,
+ 0x98,0xE0,0xFF,0x14,0x24,0xFD,0x50,0x3A,
+ 0x24,0xF4,0x70,0x03,0x02,0x66,0xA5,0x24,
+ 0xFD,0x70,0x03,0x02,0x66,0xAD,0x24,0xE2,
+ 0x70,0x03,0x02,0x66,0xDF,0x14,0x70,0x03,
+ 0x02,0x66,0xC5,0x24,0xB2,0x70,0x03,0x02,
+ 0x67,0x15,0x24,0xF0,0x70,0x03,0x02,0x67,
+ 0x25,0x24,0xF0,0x70,0x03,0x02,0x67,0x37,
+ 0x24,0xF0,0x70,0x03,0x02,0x67,0x47,0x02,
+ 0x67,0x59,0xEF,0xB4,0x01,0x26,0x90,0x42,
+ 0xEF,0xE0,0x60,0x10,0x90,0x41,0xB8,0xE0,
+ 0xFF,0xC4,0x13,0x13,0x54,0x01,0x90,0xDE,
+ 0x00,0xF0,0x80,0x32,0x90,0x42,0xA2,0xE0,
+ 0xFF,0xC4,0x13,0x13,0x54,0x01,0x90,0xDE,
+ 0x00,0xF0,0x80,0x22,0x90,0x42,0x98,0xE0,
+ 0xB4,0x02,0x07,0xE4,0x90,0xDE,0x00,0xF0,
+ 0x80,0x14,0x90,0x41,0x89,0xE0,0x54,0x0F,
+ 0x24,0x8D,0xF5,0x82,0xE4,0x34,0x41,0xF5,
+ 0x83,0xE0,0x90,0xDE,0x00,0xF0,0xE4,0x90,
+ 0xDE,0x01,0xF0,0x90,0x42,0x99,0x74,0x02,
+ 0xF0,0x02,0x67,0x62,0xE4,0x90,0x42,0x99,
+ 0xF0,0x02,0x67,0x62,0x90,0x41,0x89,0xE0,
+ 0x54,0x0F,0x24,0x8D,0xF5,0x82,0xE4,0x34,
+ 0x41,0xF5,0x83,0xE4,0xF0,0x90,0x42,0x99,
+ 0xF0,0x02,0x67,0x62,0x90,0x41,0x89,0xE0,
+ 0x54,0x0F,0x24,0x8D,0xF5,0x82,0xE4,0x34,
+ 0x41,0xF5,0x83,0x74,0x01,0xF0,0xE4,0x90,
+ 0x42,0x99,0xF0,0x02,0x67,0x62,0x90,0x42,
+ 0xEF,0xE0,0x60,0x08,0xE4,0x90,0x42,0xE7,
+ 0xF0,0x7F,0x07,0x22,0x90,0x41,0x8A,0xE0,
+ 0x14,0x24,0xFC,0x50,0x02,0x80,0x08,0x90,
+ 0x42,0xE7,0x74,0x01,0xF0,0x80,0x0E,0x12,
+ 0x7B,0x64,0xEF,0x70,0x08,0xE4,0x90,0x42,
+ 0xE7,0xF0,0x7F,0x07,0x22,0xE4,0x90,0x42,
+ 0x99,0xF0,0x80,0x4D,0x90,0x41,0x93,0xE0,
+ 0x90,0xDE,0x00,0xF0,0x90,0x42,0x99,0x74,
+ 0x01,0xF0,0x80,0x3D,0x12,0x6A,0x2D,0x90,
+ 0x41,0x87,0xE0,0x90,0x41,0x93,0xF0,0xE4,
+ 0x90,0x42,0x99,0xF0,0x80,0x2B,0x90,0x41,
+ 0x94,0xE0,0x90,0xDE,0x00,0xF0,0x90,0x42,
+ 0x99,0x74,0x01,0xF0,0x80,0x1B,0x12,0x6A,
+ 0x2D,0x90,0x41,0x87,0xE0,0x90,0x41,0x94,
+ 0xF0,0xE4,0x90,0x42,0x99,0xF0,0x80,0x09,
+ 0x12,0x7B,0x64,0xEF,0x70,0x03,0x7F,0x07,
+ 0x22,0x7F,0x00,0x22,0x90,0x42,0x98,0xE0,
+ 0x24,0xDE,0x60,0x1F,0x24,0xF7,0x60,0x2B,
+ 0x24,0xBF,0x60,0x0D,0x04,0x70,0x33,0x90,
+ 0x42,0x24,0xE0,0xFF,0x12,0x4B,0x1E,0x80,
+ 0x32,0x90,0x42,0x2B,0xE0,0xFF,0x12,0x4B,
+ 0x1E,0x80,0x28,0x90,0x42,0xE5,0xE0,0x90,
+ 0xDE,0x00,0xF0,0x90,0x42,0x99,0x74,0x01,
+ 0xF0,0x80,0x18,0x90,0x41,0x88,0xE0,0x90,
+ 0x42,0xE5,0xF0,0xE4,0x90,0x42,0x99,0xF0,
+ 0x80,0x09,0x12,0x7B,0x64,0xEF,0x70,0x03,
+ 0x7F,0x07,0x22,0x7F,0x00,0x22,0x90,0x42,
+ 0x98,0xE0,0x12,0x80,0xB1,0x68,0x01,0x01,
+ 0x68,0x01,0x02,0x68,0x01,0x03,0x68,0x01,
+ 0x10,0x68,0x01,0x13,0x68,0x01,0x22,0x68,
+ 0x01,0x2B,0x68,0x01,0x31,0x68,0x01,0x32,
+ 0x68,0x01,0x50,0x68,0x0B,0x60,0x68,0x21,
+ 0x61,0x68,0x37,0x62,0x68,0x16,0x65,0x68,
+ 0x2C,0x66,0x68,0x4E,0x6B,0x68,0x59,0x6C,
+ 0x68,0x01,0x80,0x68,0x01,0x90,0x68,0x01,
+ 0xA0,0x68,0x01,0xB0,0x00,0x00,0x68,0x64,
+ 0x90,0x42,0x99,0xE0,0x90,0xDD,0x85,0xF0,
+ 0x80,0x62,0x7A,0x41,0x79,0x95,0x7B,0x01,
+ 0x12,0x4B,0x43,0x80,0x57,0x7A,0x41,0x79,
+ 0xA7,0x7B,0x01,0x12,0x4B,0x43,0x80,0x4C,
+ 0x7A,0x41,0x79,0xBA,0x7B,0x01,0x12,0x4B,
+ 0x43,0x80,0x41,0x7A,0x41,0x79,0xBA,0x7B,
+ 0x01,0x12,0x4B,0x43,0x80,0x36,0x90,0x42,
+ 0xF8,0xE0,0x75,0xF0,0x08,0xA4,0x24,0xF5,
+ 0xF9,0x74,0x42,0x35,0xF0,0xFA,0x7B,0x01,
+ 0x12,0x4B,0x43,0x80,0x1F,0x7A,0x42,0x79,
+ 0x24,0x7B,0x01,0x12,0x4B,0x43,0x80,0x14,
+ 0x7B,0x01,0x7A,0x42,0x79,0xA4,0x12,0x4B,
+ 0x43,0x80,0x09,0x12,0x7B,0x64,0xEF,0x70,
+ 0x03,0x7F,0x03,0x22,0x7F,0x00,0x22,0x90,
+ 0x41,0x85,0xE0,0xFF,0x20,0xE7,0x03,0x02,
+ 0x69,0x5D,0xB4,0xA1,0x1C,0xA3,0xE0,0x24,
+ 0xFE,0x60,0x0A,0x14,0x60,0x0A,0x24,0x02,
+ 0x70,0x09,0x7F,0x21,0x22,0x7F,0x22,0x22,
+ 0x7F,0x23,0x22,0x12,0x7B,0x63,0x02,0x6A,
+ 0x2A,0x90,0x41,0x85,0xE0,0xFF,0x54,0x60,
+ 0x60,0x03,0x02,0x6A,0x2A,0x90,0x41,0x86,
+ 0xE0,0x24,0xFA,0x60,0x30,0x24,0xFE,0x70,
+ 0x03,0x02,0x69,0x51,0x24,0xFE,0x70,0x03,
+ 0x02,0x69,0x54,0x24,0x0A,0x60,0x03,0x02,
+ 0x69,0x57,0xEF,0x24,0x7F,0x60,0x0A,0x14,
+ 0x60,0x0A,0x24,0x02,0x70,0x09,0x7F,0x01,
+ 0x22,0x7F,0x02,0x22,0x7F,0x03,0x22,0x12,
+ 0x7B,0x63,0x02,0x6A,0x2A,0x90,0x41,0x85,
+ 0xE0,0xB4,0x81,0x1E,0x90,0x41,0x88,0xE0,
+ 0x24,0xDE,0x60,0x0A,0x14,0x60,0x0A,0x24,
+ 0x02,0x70,0x09,0x7F,0x6B,0x22,0x7F,0x6C,
+ 0x22,0x7F,0x6D,0x22,0x12,0x7B,0x63,0x02,
+ 0x6A,0x2A,0x90,0x41,0x88,0xE0,0x14,0xB4,
+ 0x08,0x00,0x50,0x3E,0x90,0x69,0x1B,0x75,
+ 0xF0,0x03,0xA4,0xC5,0x83,0x25,0xF0,0xC5,
+ 0x83,0x73,0x02,0x69,0x33,0x02,0x69,0x36,
+ 0x02,0x69,0x39,0x02,0x69,0x3C,0x02,0x69,
+ 0x3F,0x02,0x69,0x42,0x02,0x69,0x45,0x02,
+ 0x69,0x48,0x7F,0x60,0x22,0x7F,0x61,0x22,
+ 0x7F,0x62,0x22,0x7F,0x63,0x22,0x7F,0x64,
+ 0x22,0x7F,0x65,0x22,0x7F,0x66,0x22,0x7F,
+ 0x67,0x22,0x12,0x7B,0x63,0x02,0x6A,0x2A,
+ 0x7F,0x80,0x22,0x7F,0xA0,0x22,0x12,0x7B,
+ 0x63,0x02,0x6A,0x2A,0x90,0x41,0x85,0xE0,
+ 0xB4,0x21,0x1C,0xA3,0xE0,0x24,0xF6,0x60,
+ 0x0A,0x14,0x60,0x0A,0x24,0x02,0x70,0x09,
+ 0x7F,0x29,0x22,0x7F,0x2B,0x22,0x7F,0x2B,
+ 0x22,0x12,0x7B,0x63,0x02,0x6A,0x2A,0x90,
+ 0x41,0x85,0xE0,0xFF,0x54,0x60,0x60,0x03,
+ 0x02,0x6A,0x2A,0x90,0x41,0x86,0xE0,0x24,
+ 0xFD,0x60,0x41,0x24,0xFE,0x60,0x70,0x24,
+ 0xFE,0x60,0x78,0x24,0xFE,0x70,0x03,0x02,
+ 0x6A,0x21,0x24,0xFE,0x60,0x7D,0x24,0x0A,
+ 0x70,0x7C,0xEF,0x24,0xFE,0x60,0x17,0x24,
+ 0x02,0x70,0x1C,0x90,0x41,0x87,0xE0,0xFE,
+ 0xB4,0x01,0x03,0x7F,0x10,0x22,0xEE,0x64,
+ 0x02,0x70,0x66,0x7F,0x12,0x22,0x90,0x41,
+ 0x87,0xE0,0x70,0x5D,0x7F,0x13,0x22,0x12,
+ 0x7B,0x63,0x80,0x55,0x90,0x41,0x85,0xE0,
+ 0x24,0xFE,0x60,0x1D,0x24,0x02,0x70,0x22,
+ 0x90,0x41,0x87,0xE0,0xFE,0xB4,0x01,0x03,
+ 0x7F,0x30,0x22,0xEE,0x64,0x02,0x70,0x39,
+ 0x90,0x41,0x89,0xE0,0x70,0x33,0x7F,0x31,
+ 0x22,0x90,0x41,0x87,0xE0,0x70,0x2A,0x7F,
+ 0x32,0x22,0x12,0x7B,0x63,0x80,0x22,0x90,
+ 0x41,0x87,0xE0,0xC3,0x94,0x80,0x50,0x19,
+ 0x7F,0x50,0x22,0x90,0x41,0x85,0xE0,0xB4,
+ 0x01,0x03,0x7F,0x71,0x22,0x7F,0x70,0x22,
+ 0x7F,0x90,0x22,0x7F,0xB0,0x22,0x12,0x7B,
+ 0x63,0x7F,0x00,0x22,0xE4,0xFF,0x7F,0x06,
+ 0x90,0x41,0x8D,0xE4,0xF0,0xA3,0xDF,0xFC,
+ 0x22,0xE4,0x90,0x42,0xE6,0xF0,0x90,0x42,
+ 0xE7,0xF0,0x90,0x42,0xE8,0xF0,0x90,0x42,
+ 0xEF,0xF0,0x12,0x54,0x18,0x12,0x6A,0x9D,
+ 0x22,0x90,0x43,0x0D,0xE0,0x60,0x38,0x74,
+ 0x43,0x90,0x41,0x7F,0xF0,0x74,0xF6,0xA3,
+ 0xF0,0x90,0x43,0x29,0xE0,0x70,0x05,0x12,
+ 0x6D,0x91,0x80,0x1B,0x90,0x43,0x29,0xE0,
+ 0xB4,0x01,0x05,0x12,0x6D,0x9B,0x80,0x0F,
+ 0x90,0x43,0x29,0xE0,0x64,0x02,0x60,0x04,
+ 0xE0,0xB4,0xFF,0x03,0x12,0x6A,0xD7,0x90,
+ 0x42,0xE9,0xE0,0x70,0x02,0xD2,0xDD,0x90,
+ 0x42,0xE9,0xE0,0x60,0x06,0x12,0x4F,0xDC,
+ 0x12,0x4F,0xBD,0x22,0x78,0x95,0x7C,0x41,
+ 0x7D,0x01,0x7B,0xFF,0x7A,0x81,0x79,0xD9,
+ 0x7E,0x01,0x7F,0x03,0x12,0x81,0x99,0x78,
+ 0x9B,0x7C,0x42,0x7D,0x01,0x7B,0x01,0x7A,
+ 0x41,0x79,0xBA,0x7E,0x00,0x7F,0x09,0x12,
+ 0x81,0x99,0x78,0xA4,0x7C,0x42,0x7D,0x01,
+ 0x7B,0xFF,0x7A,0x82,0x79,0xDC,0x7E,0x00,
+ 0x7F,0x41,0x12,0x81,0x99,0x22,0xE4,0x90,
+ 0x45,0xAB,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,
+ 0xF0,0xA3,0xF0,0x90,0xDF,0x84,0x74,0x64,
+ 0xF0,0xE4,0x90,0xDF,0x85,0xF0,0x90,0xDF,
+ 0x86,0x74,0x2C,0xF0,0x90,0xDF,0x87,0x74,
+ 0x01,0xF0,0xE4,0x90,0xDF,0x88,0xF0,0x90,
+ 0xDF,0x89,0x74,0x02,0xF0,0x12,0x6D,0x2C,
+ 0x90,0xDF,0x82,0xE0,0x20,0xE1,0x08,0x90,
+ 0x45,0xAA,0xE5,0xE4,0xF0,0x80,0xF1,0x22,
+ 0x90,0xDF,0x82,0xE0,0x30,0xE0,0x0E,0x74,
+ 0x20,0xF0,0xE0,0x90,0x45,0xA7,0xF0,0xE4,
+ 0x90,0xDF,0x82,0xF0,0x22,0x90,0xDF,0x82,
+ 0xE0,0x30,0xE1,0x03,0x02,0x6D,0x2B,0x90,
+ 0x45,0xA7,0xE5,0xE4,0xF0,0xE0,0x54,0x0F,
+ 0xA3,0xF0,0x90,0x45,0xA7,0xE0,0xFF,0xC4,
+ 0x54,0x0F,0x90,0x45,0xA9,0xF0,0x90,0x45,
+ 0xBB,0xE0,0x14,0x70,0x03,0x02,0x6C,0x08,
+ 0x04,0x60,0x03,0x02,0x6C,0x7D,0x90,0x45,
+ 0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,0xAB,
+ 0xE0,0x33,0xF0,0xA3,0xE0,0x44,0x01,0xF0,
+ 0xA3,0xE0,0x04,0xF0,0x90,0x45,0xA7,0xE0,
+ 0x24,0xEF,0x70,0x03,0x02,0x6C,0x80,0x24,
+ 0xEF,0x60,0x20,0x24,0x10,0x70,0x37,0x90,
+ 0x45,0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,
+ 0xAB,0xE0,0x33,0xF0,0x90,0x45,0xAD,0xE0,
+ 0x04,0xF0,0x90,0x45,0xBB,0x74,0x01,0xF0,
+ 0x02,0x6C,0x80,0x90,0x45,0xAC,0xE0,0x25,
+ 0xE0,0xF0,0x90,0x45,0xAB,0xE0,0x33,0xF0,
+ 0x90,0x45,0xAD,0xE0,0x04,0xF0,0xE4,0x90,
+ 0x45,0xBB,0xF0,0x02,0x6C,0x80,0x12,0x7B,
+ 0x64,0xEF,0x60,0x03,0x02,0x6C,0x80,0x90,
+ 0x45,0xA8,0xE0,0xB4,0x02,0x13,0x90,0x45,
+ 0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,0xAB,
+ 0xE0,0x33,0xF0,0x90,0x45,0xAD,0xE0,0x04,
+ 0xF0,0x90,0x45,0xA9,0xE0,0xD3,0x94,0x02,
+ 0x40,0x15,0x90,0x45,0xA8,0xE0,0x64,0x01,
+ 0x60,0x04,0xE0,0xB4,0x02,0x09,0x90,0x45,
+ 0xA9,0x74,0xFF,0xF0,0x02,0x6C,0x80,0x90,
+ 0x45,0xA9,0x74,0xFE,0xF0,0x80,0x78,0x90,
+ 0x45,0xA7,0xE0,0x24,0xDF,0x60,0x1F,0x24,
+ 0x10,0x70,0x35,0x90,0x45,0xAC,0xE0,0x25,
+ 0xE0,0xF0,0x90,0x45,0xAB,0xE0,0x33,0xF0,
+ 0x90,0x45,0xAD,0xE0,0x04,0xF0,0x90,0x45,
+ 0xBB,0x74,0x01,0xF0,0x80,0x51,0x90,0x45,
+ 0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,0xAB,
+ 0xE0,0x33,0xF0,0x90,0x45,0xAD,0xE0,0x04,
+ 0xF0,0xE4,0x90,0x45,0xBB,0xF0,0x80,0x37,
+ 0x12,0x7B,0x64,0xEF,0x70,0x31,0x90,0x45,
+ 0xAC,0xE0,0x25,0xE0,0xF0,0x90,0x45,0xAB,
+ 0xE0,0x33,0xF0,0x90,0x45,0xAD,0xE0,0x04,
+ 0xF0,0x90,0x45,0xA8,0xE0,0xB4,0x01,0x0C,
+ 0xA3,0xE0,0xD3,0x94,0x02,0x40,0x05,0x74,
+ 0xFF,0xF0,0x80,0x0B,0x90,0x45,0xA9,0x74,
+ 0xFE,0xF0,0x80,0x03,0x12,0x7B,0x63,0x90,
+ 0x45,0xA9,0xE0,0xD3,0x94,0x0F,0x50,0x03,
+ 0x02,0x6B,0x2E,0x90,0x45,0xAD,0xE0,0xFF,
+ 0xD3,0x94,0x10,0x50,0x7E,0xEF,0x94,0x0A,
+ 0x40,0x79,0x90,0x45,0xA9,0xE0,0xF4,0x70,
+ 0x72,0xFF,0x7F,0x08,0x90,0x45,0xBE,0xE4,
+ 0xF0,0xA3,0xDF,0xFC,0x7F,0x08,0x90,0x43,
+ 0x29,0xE0,0xB4,0xFF,0x1A,0x90,0x45,0xAB,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x45,0xAE,
+ 0xE0,0x6E,0x70,0x03,0xA3,0xE0,0x6F,0x60,
+ 0x06,0x90,0x45,0xBE,0x74,0x01,0xF0,0x90,
+ 0x45,0xAB,0xE0,0xFF,0xA3,0xE0,0x90,0x45,
+ 0xAE,0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x45,
+ 0xAB,0xE0,0x54,0xF7,0xF0,0x90,0x43,0x29,
+ 0xE0,0xB4,0xFF,0x12,0x90,0x45,0xAE,0xE0,
+ 0x90,0x45,0xC0,0xF0,0x90,0x45,0xAF,0xE0,
+ 0x90,0x45,0xC1,0xF0,0x80,0x10,0x90,0x45,
+ 0xAB,0xE0,0x90,0x45,0xC0,0xF0,0x90,0x45,
+ 0xAC,0xE0,0x90,0x45,0xC1,0xF0,0x12,0x72,
+ 0xA1,0x80,0x07,0xE4,0x90,0x45,0xAE,0xF0,
+ 0xA3,0xF0,0xE4,0x90,0x45,0xAB,0xF0,0xA3,
+ 0xF0,0xA3,0xF0,0x90,0x45,0xBB,0xF0,0x02,
+ 0x6B,0x2E,0x22,0x90,0xDF,0x82,0xE0,0x54,
+ 0xDF,0xF0,0xE4,0x90,0x45,0xB9,0xF0,0x90,
+ 0x45,0xB8,0xF0,0x90,0x45,0xA6,0x04,0xF0,
+ 0x90,0x41,0x81,0xF0,0x90,0x45,0x56,0x74,
+ 0x32,0xF0,0x90,0x45,0x58,0x74,0x14,0xF0,
+ 0x90,0x45,0x57,0x74,0x3E,0xF0,0xE4,0x90,
+ 0x45,0xBB,0xF0,0x90,0x45,0xC6,0xF0,0x90,
+ 0x45,0xCA,0xF0,0x90,0x45,0xCC,0xF0,0xA3,
+ 0xF0,0x90,0x45,0xBC,0xF0,0xA3,0xF0,0x90,
+ 0x45,0xC7,0xF0,0xA3,0xF0,0x90,0x45,0xD2,
+ 0xF0,0x90,0xDF,0x80,0x74,0x28,0xF0,0xA3,
+ 0x74,0x04,0xF0,0x75,0xCA,0x01,0xE4,0xF5,
+ 0xCB,0xF5,0xC8,0xD2,0xAD,0xD2,0xCA,0x22,
+ 0x90,0xDF,0x92,0x74,0x50,0xF0,0x12,0x6D,
+ 0x2C,0x22,0x90,0x45,0x54,0x74,0x7F,0xF0,
+ 0xA3,0x74,0xFF,0xF0,0x90,0xDF,0x90,0x74,
+ 0x50,0xF0,0xE4,0xA3,0xF0,0xA3,0x74,0x96,
+ 0xF0,0xE4,0xA3,0xF0,0xA3,0x74,0x2C,0xF0,
+ 0xA3,0x74,0x01,0xF0,0xA3,0x74,0x90,0xF0,
+ 0xA3,0x74,0x01,0xF0,0xA3,0x74,0xC2,0xF0,
+ 0xA3,0x74,0x01,0xF0,0xA3,0x74,0x26,0xF0,
+ 0xA3,0x74,0x02,0xF0,0xE4,0xA3,0xF0,0xA3,
+ 0x74,0x10,0xF0,0xE4,0xA3,0xF0,0xA3,0x74,
+ 0x20,0xF0,0xE4,0xA3,0xF0,0xA3,0x74,0x40,
+ 0xF0,0x12,0x6D,0x2C,0x22,0xC2,0xCF,0x90,
+ 0x45,0xBC,0xE0,0x60,0x1A,0xA3,0xE0,0x04,
+ 0xF0,0x90,0x45,0x58,0xE0,0xFF,0x90,0x45,
+ 0xBD,0xE0,0xD3,0x9F,0x40,0x10,0xE4,0x90,
+ 0x45,0xBC,0xF0,0xA3,0xF0,0x80,0x07,0xE4,
+ 0x90,0x45,0xBC,0xF0,0xA3,0xF0,0x90,0x45,
+ 0xCC,0xE0,0x60,0x18,0xA3,0xE0,0x04,0xF0,
+ 0x90,0x45,0x57,0xE0,0xFF,0x90,0x45,0xCD,
+ 0xE0,0xD3,0x9F,0x40,0x10,0xE4,0xF0,0x90,
+ 0x45,0xCC,0xF0,0x22,0xE4,0x90,0x45,0xCD,
+ 0xF0,0x90,0x45,0xCC,0xF0,0x22,0x90,0xDF,
+ 0x82,0xE0,0x30,0xE0,0x14,0x74,0x20,0xF0,
+ 0xE0,0x90,0x45,0xB0,0xF0,0xE4,0x90,0xDF,
+ 0x82,0xF0,0x90,0x45,0xBB,0xF0,0x7F,0x01,
+ 0x22,0x7F,0x00,0x22,0x12,0x6E,0x3F,0xEF,
+ 0x60,0x03,0x02,0x6F,0xFB,0x90,0xDF,0x82,
+ 0xE0,0x30,0xE1,0x03,0x02,0x6F,0xFB,0x90,
+ 0x45,0xB2,0xE5,0xE4,0xF0,0x90,0x45,0xBB,
+ 0xE0,0x14,0x60,0x68,0x14,0x70,0x03,0x02,
+ 0x6F,0x70,0x24,0x02,0x60,0x03,0x02,0x6F,
+ 0xEE,0x90,0x45,0xB2,0xE0,0x64,0xBC,0x70,
+ 0x3B,0x90,0x45,0xC6,0xF0,0x90,0x45,0xC8,
+ 0xF0,0x90,0x45,0xC7,0xF0,0x90,0x45,0xCA,
+ 0xF0,0x90,0x45,0xB1,0xF0,0x90,0x45,0xB1,
+ 0xE0,0xFF,0xC3,0x94,0x08,0x50,0x14,0x74,
+ 0xBE,0x2F,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xE4,0xF0,0x90,0x45,0xB1,0xE0,0x04,
+ 0xF0,0x80,0xE2,0x90,0x45,0xBB,0x74,0x01,
+ 0xF0,0x02,0x6F,0xF1,0x90,0x45,0xB2,0xE0,
+ 0xB4,0xAC,0x09,0x90,0x45,0xBB,0x74,0x02,
+ 0xF0,0x02,0x6F,0xF1,0xE4,0x90,0x45,0xBB,
+ 0xF0,0x02,0x6F,0xF1,0x90,0x45,0xB2,0xE0,
+ 0xC3,0x94,0xE8,0x40,0x17,0x12,0x72,0xA1,
+ 0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,0xC8,
+ 0xF0,0x90,0x45,0xC7,0xF0,0x90,0x45,0xC6,
+ 0xF0,0x02,0x6F,0xF1,0x90,0x45,0xB2,0xE0,
+ 0xB4,0x98,0x1F,0x90,0x45,0xC7,0xE0,0xFF,
+ 0x74,0x01,0xA8,0x07,0x08,0x80,0x02,0xC3,
+ 0x33,0xD8,0xFC,0xFF,0x90,0x45,0xC8,0xE0,
+ 0x2F,0xF0,0x90,0x45,0xC7,0xE0,0x04,0xF0,
+ 0x80,0x1A,0x90,0x45,0xB2,0xE0,0xB4,0x88,
+ 0x08,0x90,0x45,0xC7,0xE0,0x04,0xF0,0x80,
+ 0x0B,0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,
+ 0xC7,0xE0,0x04,0xF0,0x90,0x45,0xC7,0xE0,
+ 0x64,0x08,0x60,0x03,0x02,0x6F,0xF1,0xA3,
+ 0xE0,0xFF,0x90,0x45,0xC6,0xE0,0xFE,0x04,
+ 0xF0,0x74,0xBE,0x2E,0xF5,0x82,0xE4,0x34,
+ 0x45,0xF5,0x83,0xEF,0xF0,0xE4,0x90,0x45,
+ 0xC7,0xF0,0xA3,0xF0,0x02,0x6F,0xF1,0x90,
+ 0x45,0xB2,0xE0,0xC3,0x94,0xF8,0x40,0x78,
+ 0x90,0x45,0xCA,0xE0,0x04,0xF0,0x90,0x45,
+ 0xB9,0xE0,0x70,0x4C,0x90,0x45,0x58,0xE0,
+ 0x75,0xF0,0x05,0x84,0xFF,0x90,0x45,0xCA,
+ 0xE0,0x6F,0x70,0x3C,0x90,0x45,0xB1,0xF0,
+ 0x90,0x45,0xB1,0xE0,0xFF,0x24,0xBE,0xF5,
+ 0x82,0xE4,0x34,0x45,0xF5,0x83,0xE0,0xFE,
+ 0x74,0x80,0x2F,0xF5,0x82,0xE4,0x34,0xDE,
+ 0xF5,0x83,0xEE,0xF0,0x90,0x45,0xB1,0xE0,
+ 0x04,0xF0,0xE0,0xB4,0x08,0xDA,0x90,0x45,
+ 0xCC,0xE0,0x60,0x06,0x74,0x01,0xF0,0xE4,
+ 0xA3,0xF0,0x90,0x45,0xB9,0x74,0x01,0xF0,
+ 0x90,0x45,0x58,0xE0,0x75,0xF0,0x05,0x84,
+ 0xFF,0x90,0x45,0xCA,0xE0,0xB5,0x07,0x02,
+ 0xE4,0xF0,0xE4,0x90,0x45,0xBB,0xF0,0x90,
+ 0x45,0xC6,0xF0,0x80,0x03,0x12,0x7B,0x63,
+ 0x90,0xDF,0x82,0xE0,0x20,0xE1,0x03,0x02,
+ 0x6E,0x70,0x22,0x12,0x6E,0x3F,0xEF,0x60,
+ 0x03,0x02,0x72,0xA0,0x90,0xDF,0x82,0xE0,
+ 0x30,0xE1,0x03,0x02,0x72,0xA0,0x90,0x45,
+ 0xB3,0xE5,0xE4,0xF0,0x90,0x45,0xBB,0xE0,
+ 0x14,0x60,0x3F,0x14,0x70,0x03,0x02,0x71,
+ 0x68,0x24,0x02,0x60,0x03,0x02,0x72,0x93,
+ 0x90,0x45,0xB3,0xE0,0xB4,0x8C,0x23,0xE4,
+ 0x90,0x45,0xC6,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xFF,0x7F,0x03,0x90,0x45,0xCE,0xE4,0xF0,
+ 0xA3,0xDF,0xFC,0x7F,0x03,0x90,0x45,0xBB,
+ 0x74,0x01,0xF0,0x90,0x45,0xD3,0xF0,0x02,
+ 0x72,0x96,0xE4,0x90,0x45,0xBB,0xF0,0x02,
+ 0x72,0x96,0x90,0x45,0xB3,0xE0,0x54,0x0F,
+ 0xA3,0xF0,0x90,0x45,0xB3,0xE0,0xFF,0xC4,
+ 0x54,0x0F,0x90,0x45,0xB5,0xF0,0x90,0x45,
+ 0xD3,0xE0,0x24,0xFE,0x60,0x34,0x14,0x60,
+ 0x52,0x14,0x60,0x70,0x14,0x70,0x03,0x02,
+ 0x71,0x0E,0x24,0x04,0x60,0x03,0x02,0x71,
+ 0x62,0x90,0x45,0xB4,0xE0,0xB4,0x07,0x0E,
+ 0xA3,0xE0,0xB4,0x07,0x09,0x90,0x45,0xD3,
+ 0x74,0x02,0xF0,0x02,0x72,0x96,0xE4,0x90,
+ 0x45,0xBB,0xF0,0x90,0x45,0xD3,0xF0,0x02,
+ 0x72,0x96,0x90,0x45,0xB4,0xE0,0xB4,0x07,
+ 0x0E,0xA3,0xE0,0xB4,0x07,0x09,0x90,0x45,
+ 0xD3,0x74,0x03,0xF0,0x02,0x72,0x96,0xE4,
+ 0x90,0x45,0xBB,0xF0,0x90,0x45,0xD3,0xF0,
+ 0x02,0x72,0x96,0x90,0x45,0xB4,0xE0,0xB4,
+ 0x07,0x0E,0xA3,0xE0,0xB4,0x08,0x09,0x90,
+ 0x45,0xD3,0x74,0x04,0xF0,0x02,0x72,0x96,
+ 0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,0xD3,
+ 0xF0,0x02,0x72,0x96,0x90,0x45,0xB4,0xE0,
+ 0xB4,0x07,0x0E,0xA3,0xE0,0xB4,0x08,0x09,
+ 0x90,0x45,0xD3,0x74,0x05,0xF0,0x02,0x72,
+ 0x96,0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,
+ 0xD3,0xF0,0x02,0x72,0x96,0x90,0x45,0xB4,
+ 0xE0,0x64,0x09,0x70,0x40,0x90,0x45,0xCE,
+ 0x74,0x08,0xF0,0x90,0x45,0xB5,0xE0,0xB4,
+ 0x08,0x0F,0x90,0x45,0xCF,0x74,0x88,0xF0,
+ 0xA3,0xF0,0xE4,0xA3,0xF0,0xA3,0x74,0x03,
+ 0xF0,0x90,0x45,0xB5,0xE0,0xB4,0x07,0x0F,
+ 0x90,0x45,0xCF,0x74,0x88,0xF0,0xE4,0xA3,
+ 0xF0,0xA3,0xF0,0xA3,0x74,0x02,0xF0,0x90,
+ 0x45,0xBB,0x74,0x02,0xF0,0xE4,0x90,0x45,
+ 0xD3,0xF0,0x02,0x72,0x96,0xE4,0x90,0x45,
+ 0xBB,0xF0,0x90,0x45,0xD3,0xF0,0x02,0x72,
+ 0x96,0x12,0x7B,0x63,0x02,0x72,0x96,0x90,
+ 0x45,0xB3,0xE0,0x54,0x0F,0xA3,0xF0,0x90,
+ 0x45,0xB3,0xE0,0xFF,0xC4,0x54,0x0F,0x90,
+ 0x45,0xB5,0xF0,0x90,0x45,0xB4,0xE0,0xB4,
+ 0x07,0x21,0x90,0x45,0xD2,0xE0,0xFF,0x04,
+ 0xF0,0x74,0xCE,0x2F,0xF5,0x82,0xE4,0x34,
+ 0x45,0xF5,0x83,0x74,0x08,0xF0,0x90,0x45,
+ 0xD2,0xE0,0x64,0x04,0x70,0x50,0x12,0x72,
+ 0xE4,0x80,0x4B,0x90,0x45,0xB4,0xE0,0x64,
+ 0x08,0x70,0x3E,0x90,0x45,0xD2,0xE0,0xFF,
+ 0x04,0xF0,0x74,0xCE,0x2F,0xF5,0x82,0xE4,
+ 0x34,0x45,0xF5,0x83,0x74,0x08,0xF0,0x90,
+ 0x45,0xD2,0xE0,0xB4,0x04,0x03,0x12,0x72,
+ 0xE4,0x90,0x45,0xD2,0xE0,0xFF,0x04,0xF0,
+ 0x74,0xCE,0x2F,0xF5,0x82,0xE4,0x34,0x45,
+ 0xF5,0x83,0x74,0x08,0xF0,0x90,0x45,0xD2,
+ 0xE0,0xB4,0x04,0x0A,0x12,0x72,0xE4,0x80,
+ 0x05,0xE4,0x90,0x45,0xBB,0xF0,0x90,0x45,
+ 0xB5,0xE0,0xC3,0x94,0x0C,0x40,0x26,0x90,
+ 0x45,0xD2,0xE0,0x94,0x04,0x50,0x14,0xE0,
+ 0xFF,0x04,0xF0,0x74,0xCE,0x2F,0xF5,0x82,
+ 0xE4,0x34,0x45,0xF5,0x83,0x74,0x88,0xF0,
+ 0x12,0x72,0xE4,0x12,0x72,0xA1,0xE4,0x90,
+ 0x45,0xBB,0xF0,0x80,0x78,0x90,0x45,0xB5,
+ 0xE0,0xB4,0x07,0x21,0x90,0x45,0xD2,0xE0,
+ 0xFF,0x04,0xF0,0x74,0xCE,0x2F,0xF5,0x82,
+ 0xE4,0x34,0x45,0xF5,0x83,0x74,0x88,0xF0,
+ 0x90,0x45,0xD2,0xE0,0x64,0x04,0x70,0x55,
+ 0x12,0x72,0xE4,0x80,0x50,0x90,0x45,0xB5,
+ 0xE0,0x64,0x08,0x70,0x3E,0x90,0x45,0xD2,
+ 0xE0,0xFF,0x04,0xF0,0x74,0xCE,0x2F,0xF5,
+ 0x82,0xE4,0x34,0x45,0xF5,0x83,0x74,0x88,
+ 0xF0,0x90,0x45,0xD2,0xE0,0xB4,0x04,0x03,
+ 0x12,0x72,0xE4,0x90,0x45,0xD2,0xE0,0xFF,
+ 0x04,0xF0,0x74,0xCE,0x2F,0xF5,0x82,0xE4,
+ 0x34,0x45,0xF5,0x83,0x74,0x88,0xF0,0x90,
+ 0x45,0xD2,0xE0,0xB4,0x04,0x0F,0x12,0x72,
+ 0xE4,0x80,0x0A,0xE4,0x90,0x45,0xBB,0xF0,
+ 0x80,0x03,0x12,0x7B,0x63,0x90,0xDF,0x82,
+ 0xE0,0x20,0xE1,0x03,0x02,0x70,0x0F,0x22,
+ 0x90,0x43,0x0D,0xE0,0xB4,0x01,0x0D,0x90,
+ 0x45,0xA6,0xE0,0xB4,0x01,0x06,0x12,0x73,
+ 0x9E,0xEF,0x60,0x2E,0x90,0x45,0xBC,0xE0,
+ 0x70,0x28,0x7E,0xDE,0x7F,0x80,0x7C,0x45,
+ 0x7D,0xBE,0x7B,0x08,0x12,0x48,0x86,0x90,
+ 0x45,0xBC,0x74,0x01,0xF0,0xE4,0xA3,0xF0,
+ 0x90,0x45,0xB8,0xE0,0x60,0x06,0x90,0x45,
+ 0xBA,0xE0,0x04,0xF0,0x90,0x45,0xB9,0x74,
+ 0x01,0xF0,0x22,0xE4,0xFF,0xEF,0xC3,0x94,
+ 0x04,0x50,0x65,0x74,0xCE,0x2F,0xF5,0x82,
+ 0xE4,0x34,0x45,0xF5,0x83,0xE0,0xFE,0xB4,
+ 0x08,0x32,0x74,0xCF,0x2F,0xF5,0x82,0xE4,
+ 0x34,0x45,0xF5,0x83,0xE0,0xB4,0x88,0x24,
+ 0x90,0x45,0xC7,0xE0,0xFD,0xC3,0x74,0x07,
+ 0x9D,0xFD,0x74,0x01,0xA8,0x05,0x08,0x80,
+ 0x02,0xC3,0x33,0xD8,0xFC,0xFD,0x90,0x45,
+ 0xC8,0xE0,0x2D,0xF0,0x90,0x45,0xC7,0xE0,
+ 0x04,0xF0,0x80,0x20,0xEE,0xB4,0x88,0x16,
+ 0x74,0xCF,0x2F,0xF5,0x82,0xE4,0x34,0x45,
+ 0xF5,0x83,0xE0,0xB4,0x08,0x08,0x90,0x45,
+ 0xC7,0xE0,0x04,0xF0,0x80,0x06,0x90,0x45,
+ 0xC7,0xE0,0x04,0xF0,0x0F,0x0F,0x80,0x95,
+ 0xE4,0x90,0x45,0xD2,0xF0,0x90,0x45,0xC7,
+ 0xE0,0x64,0x08,0x70,0x3F,0xA3,0xE0,0xFF,
+ 0x90,0x45,0xC6,0xE0,0xFE,0x04,0xF0,0x74,
+ 0xBE,0x2E,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xEF,0xF0,0xE4,0x90,0x45,0xC7,0xF0,
+ 0xA3,0xF0,0x90,0x45,0xC6,0xE0,0xB4,0x04,
+ 0x1B,0x90,0x45,0x54,0xE0,0xFF,0x90,0x45,
+ 0xC0,0xE0,0x5F,0xF0,0x90,0x45,0x55,0xE0,
+ 0xFF,0x90,0x45,0xC1,0xE0,0x5F,0xF0,0xE4,
+ 0x90,0x45,0xC6,0xF0,0x22,0xE4,0x90,0x45,
+ 0xB6,0xF0,0xA3,0xF0,0x90,0x45,0x56,0xE0,
+ 0x75,0xF0,0x07,0xA4,0xFF,0x90,0x45,0xB6,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,0x9F,0xEC,
+ 0x95,0xF0,0x40,0x03,0x02,0x74,0x9B,0x74,
+ 0xF6,0x2D,0xF5,0x82,0x74,0x43,0x3C,0xF5,
+ 0x83,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x45,0xBE,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xC3,0x12,0x80,0x9B,0x60,0x03,
+ 0x02,0x74,0x8A,0x90,0x45,0xB6,0xE0,0xFE,
+ 0xA3,0xE0,0x24,0xFC,0xF5,0x82,0x74,0x43,
+ 0x3E,0xF5,0x83,0xE0,0xFE,0x30,0xE7,0x0B,
+ 0x90,0x45,0xCC,0x74,0x01,0xF0,0xE4,0xA3,
+ 0xF0,0xFF,0x22,0x90,0x45,0xCC,0xE0,0x60,
+ 0x1A,0xE4,0xA3,0xF0,0x90,0x45,0xCC,0x04,
+ 0xF0,0xEE,0xB4,0x40,0x0E,0x90,0x45,0xB7,
+ 0xE0,0x24,0x07,0xF0,0x90,0x45,0xB6,0xE0,
+ 0x34,0x00,0xF0,0xE4,0x90,0x45,0xBE,0xF0,
+ 0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0x90,0x45,
+ 0xB6,0xE0,0xFE,0xA3,0xE0,0xFF,0x24,0xFA,
+ 0xF5,0x82,0x74,0x43,0x3E,0xF5,0x83,0xE0,
+ 0xFD,0x90,0x45,0xC0,0xF0,0x74,0xFB,0x2F,
+ 0xF5,0x82,0x74,0x43,0x3E,0xF5,0x83,0xE0,
+ 0xFF,0x60,0x06,0x90,0x45,0xBE,0xF0,0x80,
+ 0x1D,0x90,0x45,0xB6,0xE0,0xFE,0xA3,0xE0,
+ 0x24,0xFC,0xF5,0x82,0x74,0x43,0x3E,0xF5,
+ 0x83,0xE0,0x30,0xE0,0x09,0x90,0x45,0xC0,
+ 0x74,0x9A,0xF0,0xA3,0xED,0xF0,0x7F,0x01,
+ 0x22,0x90,0x45,0xB7,0xE0,0x24,0x07,0xF0,
+ 0x90,0x45,0xB6,0xE0,0x34,0x00,0xF0,0x02,
+ 0x73,0xA5,0x7F,0x00,0x22,0x90,0x45,0xD4,
+ 0xEC,0xF0,0xA3,0xED,0xF0,0x90,0x45,0x77,
+ 0x74,0x01,0xF0,0x7E,0x00,0xA3,0x14,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x45,0xD4,0xE0,0xFF,
+ 0xA3,0xE0,0x90,0x45,0x7A,0xCF,0xF0,0xA3,
+ 0xEF,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0xE4,0xFB,0x7D,0xAC,0x7F,0x02,0x12,0x56,
+ 0x45,0x22,0x90,0xDE,0xC3,0xE0,0x90,0xDE,
+ 0x41,0xF0,0xE4,0xA3,0xF0,0x7C,0xDE,0x7D,
+ 0xC0,0x90,0xDE,0xC0,0xE0,0x04,0xFB,0x7F,
+ 0x00,0x7E,0xF7,0x12,0x48,0x86,0x90,0xF4,
+ 0x10,0xE0,0x54,0xFE,0x44,0x01,0xF0,0x22,
+ 0x90,0xF6,0xA8,0xE0,0x12,0x80,0xB1,0x75,
+ 0x46,0x00,0x75,0x63,0x04,0x75,0x86,0x05,
+ 0x75,0xF5,0x0D,0x76,0x4E,0x10,0x75,0xBF,
+ 0x11,0x79,0x5B,0x18,0x79,0x89,0x19,0x78,
+ 0xAD,0x1A,0x78,0xBE,0x1B,0x75,0xF5,0x20,
+ 0x79,0x20,0x25,0x77,0x73,0x80,0x77,0x73,
+ 0x81,0x76,0xC1,0x82,0x76,0xC1,0x83,0x77,
+ 0x56,0x84,0x77,0x56,0x85,0x78,0xDD,0x86,
+ 0x77,0xFB,0x87,0x77,0xFB,0x88,0x79,0xB6,
+ 0x89,0x00,0x00,0x79,0xE4,0x7E,0xDE,0x7F,
+ 0x40,0x90,0xF7,0x00,0xE0,0x04,0xFB,0x7D,
+ 0x00,0x7C,0xF7,0x12,0x48,0x86,0x90,0xF7,
+ 0x00,0xE0,0x04,0x90,0xDD,0x86,0xF0,0x02,
+ 0x79,0xE7,0x90,0xF6,0xA9,0xE0,0x90,0x45,
+ 0xEE,0xF0,0x90,0xF6,0xAA,0xE0,0x90,0x45,
+ 0xEF,0xF0,0x90,0xF6,0xAB,0xE0,0x90,0x45,
+ 0xF0,0xF0,0x90,0xF6,0xAC,0xE0,0x90,0x45,
+ 0xF1,0xF0,0x02,0x79,0xE7,0x90,0x45,0x8C,
+ 0x74,0x05,0xF0,0x90,0xF6,0xA9,0xE0,0x90,
+ 0x45,0xF2,0xF0,0x90,0xF6,0xAB,0xE0,0x90,
+ 0x45,0xF3,0xF0,0x90,0xF6,0xAC,0xE0,0x90,
+ 0x45,0xF4,0xF0,0x90,0xF6,0xAD,0xE0,0x90,
+ 0x45,0xF5,0xF0,0x90,0xF6,0xAE,0xE0,0x90,
+ 0x45,0xF6,0xF0,0x90,0xF6,0xAA,0xE0,0x90,
+ 0x45,0xF7,0xF0,0x02,0x79,0xE7,0x7C,0x45,
+ 0x7D,0xDA,0x7B,0x01,0x7F,0x1C,0x7E,0x00,
+ 0x12,0x57,0x4C,0x90,0x45,0xDA,0xE0,0x54,
+ 0xF7,0xF0,0xE0,0xFF,0x90,0xF6,0xA9,0xE0,
+ 0xFE,0x33,0x33,0x33,0x54,0xF8,0xFE,0xEF,
+ 0x4E,0x90,0x45,0xDA,0xF0,0x7C,0x45,0x7D,
+ 0xDA,0xE4,0xFB,0x7F,0x1C,0xFE,0x12,0x57,
+ 0x4C,0x02,0x79,0xE7,0x90,0x42,0xE9,0xE0,
+ 0x60,0x08,0x90,0x45,0xD8,0x74,0x01,0xF0,
+ 0x80,0x06,0x90,0x45,0xD8,0x74,0x03,0xF0,
+ 0x90,0xF0,0x01,0x74,0x08,0xF0,0xA3,0x74,
+ 0x80,0xF0,0x90,0xF6,0xA8,0xE0,0x90,0xF0,
+ 0x03,0xF0,0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,
+ 0xF0,0xA3,0xF0,0xA3,0x74,0x7F,0xF0,0x90,
+ 0xF6,0xA8,0xE0,0xF4,0x90,0xF0,0x09,0xF0,
+ 0x90,0x45,0xD8,0xE0,0xFF,0x90,0x45,0x8B,
+ 0xE0,0xFD,0x90,0x46,0x04,0x74,0x01,0xF0,
+ 0x7B,0x09,0x12,0x7E,0xD9,0x90,0x45,0xD7,
+ 0xEF,0xF0,0x02,0x79,0xE7,0x90,0x45,0x77,
+ 0x74,0x01,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0x07,0xF0,0xA3,0x74,0x45,0xF0,0xA3,0x74,
+ 0xD6,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0xFB,0x7D,0xC0,0x7F,0x02,0x12,0x56,0x45,
+ 0x90,0xF6,0xA9,0xE0,0x90,0x45,0xE2,0xF0,
+ 0x90,0x45,0xD6,0xE0,0x54,0xC3,0xF0,0xE0,
+ 0xFF,0x90,0x45,0xE2,0xE0,0xFE,0x25,0xE0,
+ 0x25,0xE0,0xFE,0xEF,0x4E,0x90,0x45,0xD6,
+ 0xF0,0x90,0x45,0x77,0x74,0x01,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x74,0x07,0xF0,0xA3,0x74,
+ 0x45,0xF0,0xA3,0x74,0xD6,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0x04,0xF0,0xE4,0xFB,0x7D,0xC0,
+ 0x7F,0x02,0x12,0x56,0x45,0x90,0x45,0xE2,
+ 0xE0,0x90,0xF6,0xA1,0xF0,0x02,0x79,0xE7,
+ 0x90,0xF0,0x02,0x74,0x52,0xF0,0x90,0x45,
+ 0x77,0x74,0x01,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0x05,0xF0,0xA3,0x74,0x45,0xF0,0xA3,
+ 0x74,0xD6,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,
+ 0xF0,0xFB,0x7D,0xC0,0x7F,0x02,0x12,0x56,
+ 0x45,0x90,0xF6,0xA8,0xE0,0xB4,0x82,0x0C,
+ 0x90,0x45,0xD9,0x74,0x01,0xF0,0x90,0x45,
+ 0xE3,0xF0,0x80,0x12,0x90,0xF6,0xA8,0xE0,
+ 0xB4,0x83,0x0B,0x90,0x45,0xD9,0x74,0x02,
+ 0xF0,0xE4,0x90,0x45,0xE3,0xF0,0x90,0x45,
+ 0xD6,0xE0,0x54,0xCF,0xF0,0xE0,0xFF,0x90,
+ 0x45,0xD9,0xE0,0xFE,0xC4,0x54,0xF0,0xFE,
+ 0xEF,0x4E,0x90,0x45,0xD6,0xF0,0x90,0x45,
+ 0x77,0x74,0x01,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0x05,0xF0,0xA3,0x74,0x45,0xF0,0xA3,
+ 0x74,0xD6,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,
+ 0xF0,0xE4,0xFB,0x7D,0xC0,0x7F,0x02,0x12,
+ 0x56,0x45,0x90,0x45,0xD9,0xE0,0x90,0xF6,
+ 0xA1,0xF0,0x02,0x79,0xE7,0x90,0xF6,0xA8,
+ 0xE0,0xB4,0x84,0x0C,0x90,0xD8,0xCF,0xE0,
+ 0x54,0xFE,0x44,0x01,0xF0,0x02,0x79,0xE7,
+ 0x90,0xD8,0xCF,0xE0,0x54,0xFE,0xF0,0x02,
+ 0x79,0xE7,0x90,0x45,0x77,0x74,0x01,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x20,0xF0,0xA3,
+ 0x74,0x45,0xF0,0xA3,0x74,0xD6,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x04,0xF0,0xFB,0x7D,0xC0,
+ 0x7F,0x02,0x12,0x56,0x45,0x90,0xF6,0xA8,
+ 0xE0,0xB4,0x80,0x07,0xE4,0x90,0x45,0xE4,
+ 0xF0,0x80,0x0D,0x90,0xF6,0xA8,0xE0,0xB4,
+ 0x81,0x06,0x90,0x45,0xE4,0x74,0x01,0xF0,
+ 0x90,0x45,0xD6,0xE0,0x54,0x7F,0xF0,0xE0,
+ 0xFF,0x90,0x45,0xE4,0xE0,0xFE,0xC4,0x33,
+ 0x33,0x33,0x54,0x80,0xFE,0xEF,0x4E,0x90,
+ 0x45,0xD6,0xF0,0x90,0x45,0x77,0x74,0x01,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x20,0xF0,
+ 0xA3,0x74,0x45,0xF0,0xA3,0x74,0xD6,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x04,0xF0,0xE4,0xFB,
+ 0x7D,0xC0,0x7F,0x02,0x12,0x56,0x45,0x90,
+ 0x45,0xE4,0xE0,0x90,0xF6,0xA1,0xF0,0x02,
+ 0x79,0xE7,0x90,0xF6,0x41,0xE0,0x24,0xCE,
+ 0x60,0x03,0x02,0x79,0xE7,0x90,0xF6,0xA8,
+ 0xE0,0x64,0x87,0x70,0x3D,0x90,0x45,0xD6,
+ 0xF0,0x7C,0x45,0x7D,0xD6,0x7F,0x44,0x12,
+ 0x74,0x9E,0x90,0x45,0xD6,0x74,0x28,0xF0,
+ 0x7C,0x45,0x7D,0xD6,0x7F,0x37,0x12,0x74,
+ 0x9E,0x90,0x45,0xD6,0x74,0x09,0xF0,0x7C,
+ 0x45,0x7D,0xD6,0x7F,0x2E,0x12,0x74,0x9E,
+ 0x90,0x45,0xD6,0x74,0x01,0xF0,0x7C,0x45,
+ 0x7D,0xD6,0x7F,0x2E,0x12,0x74,0x9E,0x02,
+ 0x79,0xE7,0x90,0xF6,0xA8,0xE0,0x64,0x88,
+ 0x60,0x03,0x02,0x79,0xE7,0x90,0x45,0xD6,
+ 0x74,0x02,0xF0,0x7C,0x45,0x7D,0xD6,0x7F,
+ 0x44,0x12,0x74,0x9E,0x90,0x45,0xD6,0x74,
+ 0x01,0xF0,0x7C,0x45,0x7D,0xD6,0x7F,0x47,
+ 0x12,0x74,0x9E,0x7C,0x45,0x7D,0xD6,0x7F,
+ 0x48,0x12,0x74,0x9E,0x90,0x45,0xD6,0x74,
+ 0x34,0xF0,0x7C,0x45,0x7D,0xD6,0x7F,0x37,
+ 0x12,0x74,0x9E,0x90,0x45,0xD6,0x74,0x09,
+ 0xF0,0x7C,0x45,0x7D,0xD6,0x7F,0x2E,0x12,
+ 0x74,0x9E,0x90,0x45,0xD6,0x74,0x01,0xF0,
+ 0x7C,0x45,0x7D,0xD6,0x7F,0x2E,0x12,0x74,
+ 0x9E,0x02,0x79,0xE7,0x90,0x45,0xFA,0x74,
+ 0x01,0xF0,0x12,0x7B,0x67,0xE4,0x90,0x45,
+ 0xFA,0xF0,0x02,0x79,0xE7,0x90,0x83,0xD0,
+ 0xE0,0xD3,0x94,0x01,0x40,0x04,0x7F,0x01,
+ 0x80,0x02,0x7F,0x00,0x90,0xF6,0xA1,0xEF,
+ 0xF0,0x90,0x45,0x8B,0xE0,0x90,0xF6,0xA2,
+ 0xF0,0x02,0x79,0xE7,0x90,0xF6,0xA9,0xE0,
+ 0xFF,0x90,0x45,0xDB,0x74,0x55,0xF0,0xEF,
+ 0xB4,0x01,0x06,0xA3,0x74,0x32,0xF0,0x80,
+ 0x06,0x90,0x45,0xDC,0x74,0xD2,0xF0,0x90,
+ 0x45,0x77,0x74,0x01,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x74,0x3E,0xF0,0xA3,0x74,0x45,0xF0,
+ 0xA3,0x74,0xDB,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0x02,0xF0,0xE4,0xFB,0x7D,0xC0,0x7F,
+ 0x02,0x12,0x56,0x45,0x02,0x79,0xE7,0x90,
+ 0x83,0xE8,0x74,0x01,0xF0,0x90,0x45,0x77,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x62,0xF0,
+ 0xA3,0x74,0x45,0xF0,0xA3,0x74,0xDD,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x02,0xF0,0x7B,
+ 0x01,0x7D,0xC0,0xFF,0x12,0x56,0x45,0x90,
+ 0x45,0xDD,0xE0,0x90,0xF6,0xA1,0xF0,0x90,
+ 0x45,0xDE,0xE0,0x90,0xF6,0xA2,0xF0,0x02,
+ 0x79,0xE7,0x90,0xF6,0xA9,0xE0,0x90,0x45,
+ 0xDF,0xF0,0x90,0x45,0x77,0x74,0x01,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x13,0xF0,0xA3,
+ 0x74,0x45,0xF0,0xA3,0x74,0xDF,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x04,0xF0,0xE4,0xFB,0x7D,
+ 0xC0,0x7F,0x02,0x12,0x56,0x45,0x80,0x5E,
+ 0x90,0x45,0x77,0x74,0x01,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0x74,0x13,0xF0,0xA3,0x74,0x45,
+ 0xF0,0xA3,0x74,0xE0,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x04,0xF0,0xFB,0x7D,0xC0,0x7F,0x02,
+ 0x12,0x56,0x45,0x90,0x45,0xE0,0xE0,0x90,
+ 0xF6,0xA1,0xF0,0x80,0x31,0x90,0xF6,0xA9,
+ 0xE0,0x90,0x45,0xE1,0xF0,0x90,0x45,0x77,
+ 0x74,0x01,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0x13,0xF0,0xA3,0x74,0x45,0xF0,0xA3,0x74,
+ 0xE1,0xF0,0xA3,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0xE4,0xFB,0x7D,0xC0,0x7F,0x02,0x12,0x56,
+ 0x45,0x80,0x03,0x12,0x7B,0x63,0x53,0x91,
+ 0xDF,0x90,0xF6,0xDF,0xE0,0x54,0xFE,0xF0,
+ 0x22,0x44,0x45,0xE5,0x9E,0xBE,0xDE,0xFE,
+ 0x00,0xC2,0xE9,0x90,0x45,0xEE,0xE0,0xFF,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0xFD,0xA3,0xE0,
+ 0xFC,0xD2,0xE9,0x60,0x06,0xED,0xD3,0x94,
+ 0x02,0x40,0x06,0x90,0xF6,0xA5,0xE4,0xF0,
+ 0x22,0xED,0xD3,0x94,0x00,0x40,0x16,0xED,
+ 0xC4,0x54,0xF0,0xFC,0x74,0x37,0x9C,0xFC,
+ 0xEE,0xC4,0x54,0x0F,0xFB,0xC3,0xEC,0x9B,
+ 0x90,0xF6,0xA5,0xF0,0x22,0xEE,0xD3,0x94,
+ 0x0C,0x40,0x10,0xEE,0x13,0x13,0x13,0x54,
+ 0x1F,0xFC,0xC3,0x74,0x49,0x9C,0x90,0xF6,
+ 0xA5,0xF0,0x22,0xEE,0xD3,0x94,0x02,0x40,
+ 0x19,0xEE,0x25,0xE0,0xFC,0xC3,0x74,0x5F,
+ 0x9C,0xFC,0xEF,0xC4,0x13,0x13,0x13,0x54,
+ 0x01,0xFB,0xC3,0xEC,0x9B,0x90,0xF6,0xA5,
+ 0xF0,0x22,0xED,0xD3,0x94,0x10,0x40,0x1A,
+ 0xEE,0x25,0xE0,0x25,0xE0,0xFE,0xC3,0x74,
+ 0x64,0x9E,0xFE,0xEF,0xC4,0x13,0x13,0x54,
+ 0x03,0xFF,0xC3,0xEE,0x9F,0x90,0xF6,0xA5,
+ 0xF0,0x22,0x90,0xF6,0xA5,0x74,0x64,0xF0,
+ 0x22,0xC2,0xE9,0x90,0x45,0xF2,0xE0,0xFF,
+ 0x90,0x45,0xE9,0xF0,0x90,0x45,0xF3,0xE0,
+ 0x90,0x45,0xEA,0xF0,0x90,0x45,0xF4,0xE0,
+ 0xF9,0xA3,0xE0,0x90,0x45,0xEB,0xF0,0x90,
+ 0x45,0xF6,0xE0,0x90,0x45,0xEC,0xF0,0x90,
+ 0x45,0xF7,0xE0,0x90,0x45,0xED,0xF0,0xD2,
+ 0xE9,0xEF,0xD3,0x94,0x64,0x50,0x03,0x02,
+ 0x7B,0x4B,0x90,0x45,0xEB,0xE0,0xFF,0xE9,
+ 0x9F,0x50,0x1C,0xE9,0xFD,0xC3,0xEF,0x9D,
+ 0xFF,0xE4,0x94,0x00,0xFE,0xA3,0xE0,0xFD,
+ 0x7C,0x00,0x12,0x80,0x5D,0xC3,0xE4,0x9F,
+ 0xFB,0x74,0x1E,0x9E,0xFA,0x80,0x1C,0x90,
+ 0x45,0xEB,0xE0,0xFF,0xE9,0xC3,0x9F,0xFF,
+ 0xE4,0x94,0x00,0xFE,0xA3,0xE0,0xFD,0x7C,
+ 0x00,0x12,0x80,0x5D,0xE4,0x2F,0xFB,0xEE,
+ 0x34,0x1E,0xFA,0x90,0xF6,0x41,0xE0,0x64,
+ 0x23,0x70,0x31,0x90,0x45,0xE3,0xE0,0xB4,
+ 0x01,0x1C,0xAF,0x01,0x90,0x45,0xEA,0xE0,
+ 0x29,0xFF,0xE4,0x33,0xCF,0x24,0x71,0xCF,
+ 0x34,0xFF,0xFE,0x7C,0x00,0x7D,0x28,0x12,
+ 0x80,0x5D,0xAA,0x06,0xAB,0x07,0xEA,0xFF,
+ 0x90,0x45,0xE2,0xE0,0x2F,0x24,0x05,0x90,
+ 0xF6,0xA6,0xF0,0x22,0xEA,0x90,0xF6,0xA6,
+ 0xF0,0x22,0x90,0x45,0xE9,0xE0,0xFF,0xC3,
+ 0x74,0x64,0x9F,0x75,0xF0,0x06,0x84,0xFF,
+ 0x90,0x45,0xED,0xE0,0x2F,0x90,0xF6,0xA6,
+ 0xF0,0x22,0x22,0x7F,0x00,0x22,0x90,0xF1,
+ 0x03,0xE0,0x90,0x45,0x88,0xF0,0x90,0xF6,
+ 0xB5,0xE0,0x54,0xF7,0x44,0x08,0xF0,0xE0,
+ 0x54,0xF7,0xF0,0x90,0x45,0x88,0xE0,0x90,
+ 0xF1,0x03,0xF0,0x90,0xF7,0x00,0xE0,0x04,
+ 0xF5,0x0D,0xA3,0xE0,0x54,0x70,0xFF,0x74,
+ 0xFE,0x25,0x0D,0xF5,0x82,0xE4,0x34,0xF6,
+ 0xF5,0x83,0xE0,0x2F,0xF0,0x90,0xF7,0x01,
+ 0xE0,0x54,0x8F,0xF0,0x7E,0xF0,0x7F,0x01,
+ 0xAB,0x0D,0x7D,0x00,0x7C,0xF7,0x12,0x48,
+ 0x86,0x90,0x42,0xE9,0xE0,0x60,0x04,0x7F,
+ 0x01,0x80,0x02,0x7F,0x03,0x90,0x45,0xF8,
+ 0xEF,0xF0,0x90,0x45,0x8B,0xE0,0xFD,0x90,
+ 0x46,0x04,0x74,0x01,0xF0,0xAB,0x0D,0x12,
+ 0x7E,0xD9,0xEF,0x70,0x76,0x90,0xF7,0x00,
+ 0xE0,0xB4,0x03,0x0A,0xA3,0xE0,0xB4,0x02,
+ 0x05,0x75,0x0D,0x02,0x80,0x6C,0x90,0xF7,
+ 0x00,0xE0,0xB4,0x04,0x06,0xA3,0xE0,0x64,
+ 0x03,0x60,0x58,0x90,0xF7,0x00,0xE0,0xB4,
+ 0x04,0x0A,0xA3,0xE0,0xB4,0x04,0x05,0x75,
+ 0x0D,0x02,0x80,0x4E,0x90,0xF7,0x00,0xE0,
+ 0xB4,0x05,0x06,0xA3,0xE0,0x64,0x05,0x60,
+ 0x3A,0x90,0xF7,0x02,0xE0,0x60,0x1F,0x24,
+ 0xFE,0x60,0x1B,0x14,0x60,0x13,0x24,0xE1,
+ 0x60,0x1E,0x24,0xFD,0x60,0x0B,0x24,0xFB,
+ 0x60,0x0C,0x14,0x60,0x04,0x24,0x2A,0x70,
+ 0x14,0x75,0x0D,0x05,0x80,0x1C,0x90,0xF7,
+ 0x04,0xE0,0x24,0x05,0xF5,0x0D,0x80,0x12,
+ 0x75,0x0D,0x09,0x80,0x0D,0x12,0x7B,0x64,
+ 0xEF,0x70,0x07,0x90,0xF4,0x05,0x74,0x20,
+ 0xF0,0x22,0x90,0xF4,0x12,0xE5,0x0D,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xE0,0x54,0xFC,0xF0,
+ 0xE4,0xF5,0x0E,0xF5,0x0F,0x90,0x45,0xF8,
+ 0xE0,0xFF,0x90,0x45,0x8B,0xE0,0x44,0x01,
+ 0xFD,0x90,0x46,0x04,0x74,0x01,0xF0,0xAB,
+ 0x0D,0x12,0x7E,0xD9,0x90,0x45,0xF9,0xEF,
+ 0xF0,0x60,0x14,0xE5,0x0F,0xF4,0x70,0x03,
+ 0xE5,0x0E,0xF4,0x60,0xBE,0x05,0x0F,0xE5,
+ 0x0F,0x70,0x02,0x05,0x0E,0x80,0xCE,0x7C,
+ 0xF0,0x7D,0x00,0xAB,0x0D,0x7F,0x00,0x7E,
+ 0xF7,0x12,0x48,0x86,0x90,0xF4,0x05,0x74,
+ 0x20,0xF0,0x90,0x45,0xFA,0xE0,0x70,0x28,
+ 0x90,0x42,0xE9,0xE0,0x60,0x1B,0x7E,0xDE,
+ 0x7F,0x40,0x90,0xF7,0x00,0xE0,0x04,0xFB,
+ 0x7D,0x00,0x7C,0xF7,0x12,0x48,0x86,0x90,
+ 0xF7,0x00,0xE0,0x04,0x90,0xDD,0x86,0xF0,
+ 0x22,0x90,0xF4,0x11,0xE0,0x54,0xFC,0xF0,
+ 0x22,0x05,0x16,0x85,0x16,0x16,0x05,0x16,
+ 0x85,0x16,0x16,0x05,0x16,0x85,0x16,0x16,
+ 0x05,0x16,0x85,0x16,0x16,0x05,0x16,0x05,
+ 0x16,0x90,0x83,0xF1,0xE0,0x90,0xF1,0x03,
+ 0xF0,0x12,0x4A,0x80,0x90,0x83,0xEE,0xE0,
+ 0xFF,0x90,0xF1,0x01,0xE0,0x8F,0xF0,0xA4,
+ 0xFF,0xAE,0xF0,0x90,0x83,0xEF,0xE0,0x7C,
+ 0x00,0x2F,0xF5,0x13,0xEC,0x3E,0xF5,0x12,
+ 0xE4,0xF5,0x14,0xF5,0x10,0xF5,0x11,0xC3,
+ 0xE5,0x11,0x95,0x13,0xE5,0x10,0x95,0x12,
+ 0x50,0x74,0xE5,0x11,0x45,0x10,0x70,0x20,
+ 0x90,0xF1,0x02,0xE0,0x54,0xFE,0x44,0x01,
+ 0xF0,0x90,0x83,0xFE,0xE0,0x54,0xFE,0x44,
+ 0x01,0xF0,0xE0,0x54,0xFE,0xF0,0xE0,0x54,
+ 0xFE,0x44,0x01,0xF0,0xE0,0x54,0xFE,0xF0,
+ 0xE5,0x14,0x25,0xE0,0x24,0xF4,0xF5,0x82,
+ 0xE4,0x34,0x83,0xF5,0x83,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x12,0x4A,0x1B,0x7E,0x00,0xE5,
+ 0x11,0x54,0x01,0x24,0xF0,0xF5,0x82,0xEE,
+ 0x34,0x83,0xF5,0x83,0xE0,0x90,0xF1,0x03,
+ 0xF0,0x90,0x83,0xFE,0xE0,0x54,0xFE,0x44,
+ 0x01,0xF0,0xE0,0x54,0xFE,0xF0,0x05,0x11,
+ 0xE5,0x11,0x70,0x02,0x05,0x10,0x74,0xFB,
+ 0x25,0x14,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xE0,0xF5,0x14,0x80,0x81,0xE4,0x22,
+ 0xE4,0xFF,0x90,0x83,0xF3,0xE0,0xFE,0x90,
+ 0x83,0xF2,0xE0,0xFD,0x2E,0x14,0xFE,0xEF,
+ 0xC3,0x9E,0x50,0x12,0xEF,0x04,0xFE,0x74,
+ 0xFB,0x2F,0xF5,0x82,0xE4,0x34,0x45,0xF5,
+ 0x83,0xEE,0xF0,0x0F,0x80,0xDC,0x74,0xFB,
+ 0x2F,0xF5,0x82,0xE4,0x34,0x45,0xF5,0x83,
+ 0xED,0xF0,0x22,0xE4,0x90,0x83,0xED,0xF0,
+ 0xA3,0x74,0x02,0xF0,0xA3,0x14,0xF0,0xA3,
+ 0x74,0xFF,0xF0,0xA3,0x74,0x07,0xF0,0xA3,
+ 0x74,0x01,0xF0,0xA3,0x04,0xF0,0xA3,0x14,
+ 0xF0,0xA3,0x74,0x63,0xF0,0xA3,0x74,0x03,
+ 0xF0,0xA3,0x74,0x40,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x74,0x24,0xF0,0x22,0x12,0x7D,0xD4,
+ 0xE4,0x90,0x83,0xE8,0xF0,0x90,0x46,0x07,
+ 0x74,0xAE,0xF0,0x12,0x7F,0xD8,0xD2,0x88,
+ 0xE4,0x90,0x45,0xFA,0xF0,0x12,0x7F,0xF3,
+ 0x22,0x90,0xF1,0x01,0xE0,0x04,0xFF,0xF0,
+ 0x24,0x00,0xF5,0x82,0xE4,0x34,0xF0,0xF5,
+ 0x83,0x74,0xFF,0xF0,0x90,0xF1,0x03,0x74,
+ 0x1A,0xF0,0x90,0x83,0xFE,0x74,0x01,0xF0,
+ 0xE4,0xF0,0x90,0xF1,0x02,0xE0,0x54,0xFE,
+ 0x44,0x01,0xF0,0x90,0x46,0x05,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x12,0x4A,0x1B,0x90,0xF6,
+ 0xB5,0xE0,0x54,0xF7,0x44,0x08,0xF0,0xE0,
+ 0x54,0xF7,0xF0,0x90,0x45,0x89,0xE4,0xF0,
+ 0xA3,0x04,0xF0,0x22,0x7E,0x00,0x7C,0x03,
+ 0x7D,0xA8,0x12,0x80,0x5D,0xE4,0x2F,0xFF,
+ 0xEE,0x34,0x04,0x90,0x46,0x05,0xF0,0xA3,
+ 0xEF,0xF0,0x22,0x90,0x83,0xE8,0xE0,0x60,
+ 0x06,0x14,0xF0,0x12,0x7E,0x22,0x22,0x90,
+ 0x83,0xE3,0xE0,0xB4,0x01,0x04,0x12,0x7F,
+ 0x43,0x22,0x90,0x83,0xED,0xE0,0x70,0x34,
+ 0x90,0xF1,0x04,0xE0,0x54,0x0C,0xFF,0xBF,
+ 0x08,0x18,0x90,0xF6,0xA7,0xE0,0x70,0x08,
+ 0x90,0xF1,0x03,0x74,0x1A,0xF0,0x80,0x12,
+ 0x90,0xF6,0xA7,0xE0,0x90,0xF1,0x03,0xF0,
+ 0x80,0x08,0x90,0x45,0x88,0xE0,0x90,0xF1,
+ 0x03,0xF0,0x90,0xF1,0x02,0xE0,0x54,0xFE,
+ 0x44,0x01,0xF0,0x22,0x12,0x7C,0xDA,0x22,
+ 0x90,0x46,0x01,0xEF,0xF0,0xAA,0x05,0xE4,
+ 0xF5,0x15,0x90,0x83,0xE8,0xE0,0x60,0x0E,
+ 0x75,0x15,0x01,0xAF,0x03,0x12,0x7E,0x6D,
+ 0xC2,0xAF,0xC2,0xDD,0x80,0x13,0x90,0x83,
+ 0xED,0xE0,0x64,0x01,0x60,0x07,0x90,0x83,
+ 0xE3,0xE0,0xB4,0x01,0x04,0xC2,0xAF,0xC2,
+ 0xDD,0x90,0x46,0x01,0xE0,0xFF,0xAE,0x02,
+ 0xAD,0x06,0x90,0x46,0x04,0xE0,0x90,0x45,
+ 0x86,0xF0,0x12,0x57,0x8C,0xD2,0xDD,0xD2,
+ 0xAF,0xE5,0x15,0x70,0x07,0x90,0x83,0xE3,
+ 0xE0,0xB4,0x01,0x02,0xE4,0xFF,0x90,0x83,
+ 0xE3,0xE0,0x60,0x0D,0x90,0x46,0x01,0xE0,
+ 0xB4,0x02,0x06,0x90,0x83,0xE3,0xE0,0x14,
+ 0xF0,0x22,0x90,0xF6,0xFF,0xE0,0x54,0xEF,
+ 0xF0,0xE0,0x54,0xFB,0xF0,0x90,0xF1,0x03,
+ 0x74,0x07,0xF0,0x90,0xF1,0x02,0xE0,0x54,
+ 0xFE,0x44,0x01,0xF0,0x90,0x83,0xE4,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x12,0x4A,0x1B,0x90,
+ 0x83,0xFE,0xE0,0x54,0xFE,0x44,0x01,0xF0,
+ 0xE0,0x54,0xFE,0xF0,0x90,0xF6,0xB5,0xE0,
+ 0x54,0xF7,0x44,0x08,0xF0,0xE0,0x54,0xF7,
+ 0xF0,0x90,0xF6,0xFF,0xE0,0x54,0xFD,0x44,
+ 0x02,0xF0,0x90,0x83,0xE6,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x12,0x4A,0x1B,0x90,0xF6,0xFF,
+ 0xE0,0x54,0xFB,0x44,0x04,0xF0,0x7F,0x01,
+ 0x7E,0x00,0x12,0x4A,0x1B,0x90,0xF6,0xFF,
+ 0xE0,0x54,0xFB,0xF0,0xE0,0x54,0xF7,0x44,
+ 0x08,0xF0,0x7F,0x01,0x7E,0x00,0x12,0x4A,
+ 0x1B,0x90,0xF6,0xFF,0xE0,0x54,0xFD,0xF0,
+ 0x7F,0x01,0x7E,0x00,0x12,0x4A,0x1B,0x90,
+ 0xF6,0xFF,0xE0,0x54,0xF7,0xF0,0x90,0x45,
+ 0x89,0xE4,0xF0,0xA3,0x04,0xF0,0x22,0xE4,
+ 0x90,0x83,0xE3,0xF0,0xA3,0x74,0x08,0xF0,
+ 0xA3,0x74,0x60,0xF0,0xA3,0x74,0x28,0xF0,
+ 0xA3,0x74,0x07,0xF0,0x22,0xC2,0xAF,0xC2,
+ 0xDD,0x22,0x90,0x12,0x22,0xE0,0x90,0x83,
+ 0xD0,0xF0,0xC3,0x94,0x7F,0x40,0x22,0x90,
+ 0x38,0x4F,0xE0,0xB4,0xFF,0x07,0x90,0x83,
+ 0xD0,0x74,0x02,0xF0,0x22,0x90,0x83,0xD1,
+ 0xE0,0xB4,0xC3,0x07,0x90,0x83,0xD0,0x74,
+ 0x11,0xF0,0x22,0x90,0x83,0xD0,0x74,0x01,
+ 0xF0,0x22,0x90,0x42,0xE9,0xE0,0x60,0x04,
+ 0x12,0x55,0xDB,0x22,0x7F,0x01,0x22,0xBB,
+ 0x01,0x0C,0xE5,0x82,0x29,0xF5,0x82,0xE5,
+ 0x83,0x3A,0xF5,0x83,0xE0,0x22,0x50,0x06,
+ 0xE9,0x25,0x82,0xF8,0xE6,0x22,0xBB,0xFE,
+ 0x06,0xE9,0x25,0x82,0xF8,0xE2,0x22,0xE5,
+ 0x82,0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,
+ 0x83,0xE4,0x93,0x22,0xEF,0x8D,0xF0,0xA4,
+ 0xA8,0xF0,0xCF,0x8C,0xF0,0xA4,0x28,0xCE,
+ 0x8D,0xF0,0xA4,0x2E,0xFE,0x22,0xC5,0xF0,
+ 0xF8,0xA3,0xE0,0x28,0xF0,0xC5,0xF0,0xF8,
+ 0xE5,0x82,0x15,0x82,0x70,0x02,0x15,0x83,
+ 0xE0,0x38,0xF0,0x22,0xA3,0xF8,0xE0,0xC5,
+ 0xF0,0x25,0xF0,0xF0,0xE5,0x82,0x15,0x82,
+ 0x70,0x02,0x15,0x83,0xE0,0xC8,0x38,0xF0,
+ 0xE8,0x22,0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,
+ 0x42,0xF0,0xE9,0x9D,0x42,0xF0,0xEC,0x64,
+ 0x80,0xC8,0x64,0x80,0x98,0x45,0xF0,0x22,
+ 0xD0,0x83,0xD0,0x82,0xF8,0xE4,0x93,0x70,
+ 0x12,0x74,0x01,0x93,0x70,0x0D,0xA3,0xA3,
+ 0x93,0xF8,0x74,0x01,0x93,0xF5,0x82,0x88,
+ 0x83,0xE4,0x73,0x74,0x02,0x93,0x68,0x60,
+ 0xEF,0xA3,0xA3,0xA3,0x80,0xDF,0x8A,0x83,
+ 0x89,0x82,0xE4,0x73,0xE7,0x09,0xF6,0x08,
+ 0xDF,0xFA,0x80,0x46,0xE7,0x09,0xF2,0x08,
+ 0xDF,0xFA,0x80,0x3E,0x88,0x82,0x8C,0x83,
+ 0xE7,0x09,0xF0,0xA3,0xDF,0xFA,0x80,0x32,
+ 0xE3,0x09,0xF6,0x08,0xDF,0xFA,0x80,0x6E,
+ 0xE3,0x09,0xF2,0x08,0xDF,0xFA,0x80,0x66,
+ 0x88,0x82,0x8C,0x83,0xE3,0x09,0xF0,0xA3,
+ 0xDF,0xFA,0x80,0x5A,0x89,0x82,0x8A,0x83,
+ 0xE0,0xA3,0xF6,0x08,0xDF,0xFA,0x80,0x4E,
+ 0x89,0x82,0x8A,0x83,0xE0,0xA3,0xF2,0x08,
+ 0xDF,0xFA,0x80,0x42,0x80,0xD2,0x80,0xFA,
+ 0x80,0xC6,0x80,0xD4,0x80,0x55,0x80,0xF2,
+ 0x80,0x29,0x80,0x10,0x80,0xA6,0x80,0xEA,
+ 0x80,0x9A,0x80,0xA8,0x80,0xDA,0x80,0xE2,
+ 0x80,0xCA,0x80,0x29,0x88,0x84,0x8C,0x85,
+ 0x89,0x82,0x8A,0x83,0xE4,0x93,0xA3,0x05,
+ 0x86,0xF0,0xA3,0x05,0x86,0xDF,0xF5,0xDE,
+ 0xF3,0x80,0x0B,0x89,0x82,0x8A,0x83,0xE4,
+ 0x93,0xA3,0xF6,0x08,0xDF,0xF9,0xEC,0xFA,
+ 0xA9,0xF0,0xED,0xFB,0x22,0x88,0x84,0x8C,
+ 0x85,0x89,0x82,0x8A,0x83,0xE0,0xA3,0x05,
+ 0x86,0xF0,0xA3,0x05,0x86,0xDF,0xF6,0xDE,
+ 0xF4,0x80,0xE3,0x89,0x82,0x8A,0x83,0xE4,
+ 0x93,0xA3,0xF2,0x08,0xDF,0xF9,0x80,0xD6,
+ 0x88,0xF0,0xEF,0x60,0x01,0x0E,0x4E,0x60,
+ 0xCD,0x88,0xF0,0xED,0x24,0x02,0xB4,0x04,
+ 0x00,0x50,0xC3,0xF5,0x82,0xEB,0x24,0x02,
+ 0xB4,0x04,0x00,0x50,0xB9,0x23,0x23,0x45,
+ 0x82,0x23,0x90,0x81,0x2D,0x73,0x7F,0xEE,
+ 0x5A,0xCF,0x5B,0xC3,0x64,0x8F,0x49,0x60,
+ 0x6D,0xEE,0x4F,0x3B,0x64,0x90,0x64,0x91,
+ 0x74,0xF9,0x64,0x92,0x64,0x93,0x4F,0x3F,
+ 0x12,0x01,0x00,0x02,0x00,0x00,0x00,0x40,
+ 0xA4,0x15,0x35,0x90,0x00,0x02,0x00,0x00,
+ 0x00,0x01,0x0A,0x06,0x00,0x02,0x00,0x00,
+ 0x00,0x40,0x01,0x00,0x09,0x07,0x35,0x00,
+ 0x01,0x01,0x00,0x80,0xFA,0x09,0x02,0x35,
+ 0x00,0x01,0x01,0x00,0x80,0xFA,0x09,0x04,
+ 0x00,0x00,0x05,0xFF,0x00,0x00,0x00,0x07,
+ 0x05,0x81,0x02,0x40,0x00,0x00,0x07,0x05,
+ 0x02,0x02,0x40,0x00,0x00,0x07,0x05,0x84,
+ 0x02,0x40,0x00,0x00,0x07,0x05,0x85,0x02,
+ 0x40,0x00,0x00,0x07,0x05,0x86,0x01,0x00,
+ 0x00,0x01,0x09,0x04,0x00,0x01,0x05,0xFF,
+ 0x00,0x00,0x00,0x07,0x05,0x81,0x02,0x40,
+ 0x00,0x00,0x07,0x05,0x02,0x02,0x40,0x00,
+ 0x00,0x07,0x05,0x84,0x02,0x40,0x00,0x00,
+ 0x07,0x05,0x85,0x02,0x40,0x00,0x00,0x07,
+ 0x05,0x86,0x01,0x00,0x14,0x01,0x09,0x04,
+ 0x01,0x00,0x01,0x03,0x00,0x01,0x00,0x09,
+ 0x21,0x01,0x01,0x00,0x01,0x22,0x41,0x00,
+ 0x07,0x05,0x83,0x03,0x40,0x00,0x10,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x05,0x01,0x09,0x06,0xA1,
+ 0x01,0x05,0x07,0x19,0xE0,0x29,0xE7,0x15,
+ 0x00,0x25,0x01,0x95,0x08,0x75,0x01,0x81,
+ 0x02,0x95,0x08,0x75,0x01,0x81,0x01,0x05,
+ 0x08,0x19,0x01,0x29,0x03,0x95,0x03,0x75,
+ 0x01,0x91,0x02,0x95,0x01,0x75,0x05,0x91,
+ 0x01,0x05,0x07,0x19,0x00,0x2A,0xFF,0x00,
+ 0x15,0x00,0x26,0xFF,0x00,0x95,0x06,0x75,
+ 0x08,0x81,0x00,0xC0,
+
+ 0x01,0x83,0xE9,0x00,0x04,0x11,0x7C,0x0B,
+ 0x16,0x0C,0x00,
+
+ 0x02,0x41,0x00,0x00,0x03,0xFA,0xBE,0x02,
+ 0x46,0x0C,
+
+ 0x02,0x45,0x50,0x63,0x0E,0x9F,0x57,0x44,
+ 0x41,0x91,0x05,0x42,0x0C,0x00,0x4E,0x42,
+ 0xB8,0x99,0x46,0x01,0xE9,0x50,0x06,0xC6,
+ 0xB3,0xB0,0xB0,0xAE,0xA8,0x9E,0x74,0x4E,
+ 0x42,0xC6,0x02,0x02,0x02,0x01,0x01,0x01,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x4E,0x42,0xD4,0x00,0x00,0x00,0x03,0x05,
+ 0x08,0x0C,0x0F,0x10,0x10,0x10,0x0D,0x0B,
+ 0x05,0x5C,0x42,0xE2,0x00,0x00,0x00,0x99,
+ 0x00,0x00,0x00,0xE8,0x00,0x4B,0x00,0xFC,
+ 0x00,0xAE,0x00,0x8B,0x00,0x79,0x00,0x70,
+ 0x00,0x6C,0x00,0x6B,0x00,0x6B,0x00,0x14,
+ 0x5C,0x42,0xFE,0x00,0x03,0x00,0x02,0x00,
+ 0x02,0x00,0x01,0x00,0x01,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5C,
+ 0x43,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x03,
+ 0x00,0x03,0x00,0x04,0x00,0x05,0x00,0x05,
+ 0x00,0x06,0x00,0x06,0x00,0x03,0x48,0x44,
+ 0x71,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x50,0x44,0x7F,0x02,0x39,0x04,0xEE,
+ 0x08,0xFB,0x0E,0xAA,0x10,0xD5,0x13,0x0D,
+ 0x14,0xC9,0x18,0xFE,0x43,0x44,0xAB,0x40,
+ 0x5B,0x00,0x00,0x78,0x7F,0xE4,0xF6,0xD8,
+ 0xFD,0x75,0x81,0x32,0x02,0x46,0x53,0x02,
+ 0x6F,0x69,0xE4,0x93,0xA3,0xF8,0xE4,0x93,
+ 0xA3,0x40,0x03,0xF6,0x80,0x01,0xF2,0x08,
+ 0xDF,0xF4,0x80,0x29,0xE4,0x93,0xA3,0xF8,
+ 0x54,0x07,0x24,0x0C,0xC8,0xC3,0x33,0xC4,
+ 0x54,0x0F,0x44,0x20,0xC8,0x83,0x40,0x04,
+ 0xF4,0x56,0x80,0x01,0x46,0xF6,0xDF,0xE4,
+ 0x80,0x0B,0x01,0x02,0x04,0x08,0x10,0x20,
+ 0x40,0x80,0x90,0x45,0x50,0xE4,0x7E,0x01,
+ 0x93,0x60,0xBC,0xA3,0xFF,0x54,0x3F,0x30,
+ 0xE5,0x09,0x54,0x1F,0xFE,0xE4,0x93,0xA3,
+ 0x60,0x01,0x0E,0xCF,0x54,0xC0,0x25,0xE0,
+ 0x60,0xA8,0x40,0xB8,0xE4,0x93,0xA3,0xFA,
+ 0xE4,0x93,0xA3,0xF8,0xE4,0x93,0xA3,0xC8,
+ 0xC5,0x82,0xC8,0xCA,0xC5,0x83,0xCA,0xF0,
+ 0xA3,0xC8,0xC5,0x82,0xC8,0xCA,0xC5,0x83,
+ 0xCA,0xDF,0xE9,0xDE,0xE7,0x80,0xBE,0xC0,
+ 0xE0,0x75,0xE0,0x00,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x02,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x04,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x06,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x08,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x0A,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x0C,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x0E,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x10,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x12,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x14,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x16,0x02,0x47,0x00,0xC0,
+ 0xE0,0x75,0xE0,0x18,0x02,0x47,0x00,0xC0,
+ 0xD0,0x75,0xD0,0x00,0xC0,0x86,0x75,0x86,
+ 0x00,0xC0,0x83,0xC0,0x82,0xC0,0x85,0xC0,
+ 0x84,0xC0,0xF0,0xC0,0x00,0xC0,0x01,0xC0,
+ 0x02,0xC0,0x03,0xC0,0x04,0xC0,0x05,0xC0,
+ 0x06,0xC0,0x07,0x90,0xAD,0x41,0xF9,0x93,
+ 0xFA,0xE9,0x04,0x93,0xF9,0x12,0xAA,0xCC,
+ 0xD0,0x07,0xD0,0x06,0xD0,0x05,0xD0,0x04,
+ 0xD0,0x03,0xD0,0x02,0xD0,0x01,0xD0,0x00,
+ 0xD0,0xF0,0xD0,0x84,0xD0,0x85,0xD0,0x82,
+ 0xD0,0x83,0xD0,0x86,0xD0,0xD0,0xD0,0xE0,
+ 0x32,0xC2,0x8C,0xC2,0x8D,0xEF,0x42,0x89,
+ 0xEA,0xF4,0xF5,0x8C,0xEB,0xF4,0xF5,0x8A,
+ 0x53,0x8E,0xF7,0xAF,0x05,0xEF,0x33,0x33,
+ 0x33,0x54,0xF8,0x42,0x8E,0xD2,0x8C,0x30,
+ 0x8D,0xFD,0xC2,0x8D,0x22,0xAB,0x07,0xAA,
+ 0x06,0xE4,0xFD,0x7F,0x01,0x12,0x47,0x52,
+ 0x22,0xC2,0xCA,0x43,0x8E,0x08,0xE4,0x90,
+ 0x42,0x5E,0xF0,0xA3,0xF0,0x90,0x42,0x60,
+ 0xF0,0xA3,0xF0,0xD2,0xAD,0xF5,0xC9,0xC2,
+ 0xC9,0xC2,0xCD,0xC2,0xCC,0xC2,0xC8,0xC2,
+ 0xCE,0xC2,0xCB,0x75,0xCA,0xAA,0x75,0xCB,
+ 0xF2,0xD2,0xCA,0x22,0xAB,0x07,0x90,0xF1,
+ 0x1D,0x74,0x01,0xF0,0xE4,0xF0,0xED,0x90,
+ 0xF1,0x18,0xF0,0xEC,0xA3,0xF0,0x90,0xF1,
+ 0x1B,0xEB,0xF0,0x90,0xF1,0x1A,0x74,0x01,
+ 0xF0,0x22,0x22,0xC2,0xAF,0x90,0x41,0x03,
+ 0x74,0x02,0xF0,0xA3,0x74,0x46,0xF0,0xA3,
+ 0x74,0x98,0xF0,0x90,0x41,0x0B,0x74,0x02,
+ 0xF0,0xA3,0x74,0x46,0xF0,0xA3,0x74,0xA0,
+ 0xF0,0x90,0x41,0x13,0x74,0x02,0xF0,0xA3,
+ 0x74,0x46,0xF0,0xA3,0x74,0xA8,0xF0,0x90,
+ 0x41,0x1B,0x74,0x02,0xF0,0xA3,0x74,0x46,
+ 0xF0,0xA3,0x74,0xB0,0xF0,0x90,0x41,0x23,
+ 0x74,0x02,0xF0,0xA3,0x74,0x46,0xF0,0xA3,
+ 0x74,0xB8,0xF0,0x90,0x41,0x2B,0x74,0x02,
+ 0xF0,0xA3,0x74,0x46,0xF0,0xA3,0x74,0xC0,
+ 0xF0,0x90,0x41,0x33,0x74,0x02,0xF0,0xA3,
+ 0x74,0x46,0xF0,0xA3,0x74,0xC8,0xF0,0x90,
+ 0x41,0x3B,0x74,0x02,0xF0,0xA3,0x74,0x46,
+ 0xF0,0xA3,0x74,0xD0,0xF0,0x90,0x41,0x43,
+ 0x74,0x02,0xF0,0xA3,0x74,0x46,0xF0,0xA3,
+ 0x74,0xD8,0xF0,0x90,0x41,0x4B,0x74,0x02,
+ 0xF0,0xA3,0x74,0x46,0xF0,0xA3,0x74,0xE0,
+ 0xF0,0x90,0x41,0x53,0x74,0x02,0xF0,0xA3,
+ 0x74,0x46,0xF0,0xA3,0x74,0xE8,0xF0,0x90,
+ 0x41,0x5B,0x74,0x02,0xF0,0xA3,0x74,0x46,
+ 0xF0,0xA3,0x74,0xF0,0xF0,0x90,0x41,0x63,
+ 0x74,0x02,0xF0,0xA3,0x74,0x46,0xF0,0xA3,
+ 0x74,0xF8,0xF0,0x90,0x47,0xCB,0x74,0x32,
+ 0xF0,0xD2,0xAF,0x22,0xE4,0x90,0x42,0x46,
+ 0xF0,0x12,0x6E,0x75,0x90,0xF7,0x3C,0xE0,
+ 0x70,0x03,0x12,0x9C,0x73,0xE4,0x90,0x41,
+ 0xD2,0xF0,0x90,0x41,0xD1,0xF0,0x04,0x12,
+ 0x72,0x28,0x22,0xC2,0xAF,0x90,0xF7,0x3D,
+ 0xE4,0xF0,0xFF,0x7E,0x28,0x12,0x47,0x76,
+ 0xD2,0xAF,0x22,0xE4,0x90,0x42,0x47,0xF0,
+ 0x90,0x42,0x46,0xF0,0x90,0x44,0x97,0xF0,
+ 0x22,0x05,0x2C,0x12,0x48,0xBC,0x12,0x48,
+ 0x8D,0x90,0x41,0xEB,0xE0,0x90,0xF0,0x76,
+ 0xF0,0x90,0x43,0x38,0x74,0x01,0xF0,0x90,
+ 0x43,0x3D,0xF0,0x90,0x43,0x39,0xF0,0xE4,
+ 0x90,0x43,0x3C,0xF0,0x90,0x41,0xE1,0xE0,
+ 0xB4,0x01,0x14,0x90,0x43,0x50,0x74,0x01,
+ 0xF0,0x12,0x68,0xE0,0x12,0x67,0x79,0x90,
+ 0xFB,0xA8,0x74,0x01,0xF0,0x80,0x16,0x90,
+ 0xFB,0xA8,0xE4,0xF0,0x12,0x67,0x6B,0xE4,
+ 0x90,0x43,0x50,0xF0,0x90,0x42,0x4B,0xE0,
+ 0x60,0x03,0x12,0x9E,0x78,0xE4,0x90,0x41,
+ 0xE1,0xF0,0x12,0xA5,0x73,0x22,0xEF,0x24,
+ 0x04,0x90,0xFE,0x00,0xF0,0x90,0xFE,0x03,
+ 0xE0,0x90,0xFE,0x01,0xF0,0xA3,0xED,0xF0,
+ 0xEF,0x24,0x05,0x90,0xFB,0x90,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0xF0,0x22,0xAD,0x07,0x75,
+ 0x0A,0x01,0x75,0x0B,0xFE,0x75,0x0C,0x01,
+ 0xE4,0xF5,0x08,0xF5,0x09,0xED,0x60,0x3B,
+ 0xB4,0x01,0x16,0xAB,0x0A,0xAA,0x0B,0xA9,
+ 0x0C,0x12,0xA9,0x1B,0xFE,0xE4,0x25,0x09,
+ 0xF5,0x09,0xEE,0x35,0x08,0xF5,0x08,0x80,
+ 0x22,0x85,0x0C,0x82,0x85,0x0B,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0x25,0x09,0xF5,0x09,0xEE,
+ 0x35,0x08,0xF5,0x08,0x74,0x02,0x25,0x0C,
+ 0xF5,0x0C,0xE4,0x35,0x0B,0xF5,0x0B,0x1D,
+ 0x1D,0x80,0xC2,0xAE,0x08,0xAF,0x09,0x22,
+ 0x90,0x42,0x63,0xEE,0xF0,0xA3,0xEF,0xF0,
+ 0x75,0x0D,0xFE,0x75,0x0E,0x03,0xED,0x60,
+ 0x2C,0x90,0x42,0x63,0xE0,0xFE,0xA3,0xE0,
+ 0xF5,0x82,0x8E,0x83,0xE0,0x85,0x0E,0x82,
+ 0x85,0x0D,0x83,0xF0,0x90,0x42,0x64,0xE0,
+ 0x04,0xF0,0x70,0x06,0x90,0x42,0x63,0xE0,
+ 0x04,0xF0,0x05,0x0E,0xE5,0x0E,0x70,0x02,
+ 0x05,0x0D,0x1D,0x80,0xD1,0x22,0xE4,0x90,
+ 0x42,0x6C,0xF0,0x90,0xFE,0x01,0xE0,0x54,
+ 0x7F,0x90,0x44,0x96,0xF0,0x90,0xFE,0x08,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x42,0x69,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x12,0x88,0x8B,0x90,
+ 0x44,0x96,0xE0,0xFB,0x60,0x0F,0x90,0xFE,
+ 0x02,0xE0,0xFD,0xA3,0xE0,0x90,0x42,0x69,
+ 0xCD,0xF0,0xA3,0xED,0xF0,0x90,0x42,0x69,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,0xEC,0x94,
+ 0x40,0x50,0x12,0x90,0x41,0x8C,0xE0,0x2D,
+ 0xFE,0x90,0x41,0x8B,0xE0,0x3C,0x90,0x42,
+ 0x69,0xF0,0xA3,0xCE,0xF0,0x90,0xFE,0x00,
+ 0xE0,0x64,0x03,0x70,0x29,0xEB,0x64,0x02,
+ 0x70,0x24,0x04,0xF0,0x90,0x42,0x69,0xE0,
+ 0xFE,0xA3,0xE0,0xF5,0x82,0x8E,0x83,0xE0,
+ 0x90,0xFE,0x01,0xF0,0x90,0xFB,0x90,0x74,
+ 0x02,0xF0,0xA3,0xE4,0xF0,0xA3,0xF0,0x90,
+ 0x42,0x6C,0xF0,0x02,0x4C,0x28,0x90,0xFE,
+ 0x00,0xE0,0x64,0x04,0x70,0x43,0x90,0x44,
+ 0x96,0xE0,0x64,0x03,0x70,0x3B,0x90,0x41,
+ 0x8B,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x42,
+ 0x69,0xE0,0xB5,0x06,0x11,0xA3,0xE0,0xB5,
+ 0x07,0x0C,0x12,0x48,0xCA,0x90,0x42,0x6C,
+ 0x74,0x03,0xF0,0x02,0x4C,0x28,0x90,0xFE,
+ 0x04,0xE0,0xFF,0x90,0x42,0x69,0xE0,0xFC,
+ 0xA3,0xE0,0xF5,0x82,0x8C,0x83,0xEF,0xF0,
+ 0x90,0x42,0x6C,0x74,0x02,0xF0,0x02,0x4C,
+ 0x28,0x90,0x42,0x67,0x74,0xFE,0xF0,0xA3,
+ 0x74,0x0A,0xF0,0x90,0xFE,0x00,0xE0,0xFF,
+ 0x24,0xFF,0xF5,0x82,0xE4,0x34,0xFD,0xF5,
+ 0x83,0xE0,0xFC,0xA3,0xE0,0xF4,0xFD,0xEC,
+ 0xF4,0x90,0x42,0x65,0xF0,0xA3,0xED,0xF0,
+ 0xEF,0x24,0xFE,0xFF,0x12,0x49,0x46,0x90,
+ 0x42,0x65,0xE0,0x6E,0x70,0x03,0xA3,0xE0,
+ 0x6F,0x60,0x09,0x90,0x42,0x6C,0x74,0x02,
+ 0xF0,0x02,0x4C,0x28,0x90,0x41,0x8B,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x42,0x69,0xE0,
+ 0xB5,0x06,0x27,0xA3,0xE0,0xB5,0x07,0x22,
+ 0x12,0x48,0xCA,0x90,0x42,0x6C,0x74,0x01,
+ 0xF0,0xE4,0xFD,0xFF,0x12,0x49,0x27,0x90,
+ 0xFE,0x01,0xE0,0xFE,0xA3,0xE0,0xF4,0xFF,
+ 0xEE,0xF4,0xA3,0xF0,0xA3,0xEF,0xF0,0x02,
+ 0x4C,0x28,0x90,0xFE,0x04,0xE0,0xFF,0x90,
+ 0x42,0x6B,0xF0,0x90,0xFE,0x01,0xE0,0x54,
+ 0x3F,0xFC,0xA3,0xE0,0xFD,0xEC,0x60,0x03,
+ 0x02,0x4C,0x80,0xED,0x60,0x59,0x24,0xF8,
+ 0x60,0x55,0x14,0x60,0x15,0x24,0xFC,0x70,
+ 0x03,0x02,0x4C,0x1F,0x24,0xEB,0x70,0x03,
+ 0x02,0x4B,0xD4,0x24,0x21,0x60,0x03,0x02,
+ 0x4C,0x80,0xEF,0x60,0x23,0x1F,0x90,0x42,
+ 0x67,0xE0,0xFC,0xA3,0xE0,0x2F,0xF5,0x82,
+ 0xE4,0x3C,0xF5,0x83,0xE0,0xFE,0x90,0x42,
+ 0x69,0xE0,0xFC,0xA3,0xE0,0x2F,0xF5,0x82,
+ 0xE4,0x3C,0xF5,0x83,0xEE,0xF0,0x80,0xDA,
+ 0x85,0x2C,0x2C,0x05,0x2C,0x05,0x2C,0x12,
+ 0xA4,0x30,0x05,0x2C,0x85,0x2C,0x2C,0x05,
+ 0x2C,0x85,0x2C,0x2C,0x02,0x4C,0x28,0x90,
+ 0x42,0x6B,0xE0,0xFF,0xE4,0xFD,0x12,0x49,
+ 0x27,0x90,0x42,0x69,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xA3,0xE0,0xFD,0x12,0x49,0x99,0x90,
+ 0xFE,0x00,0xE0,0x24,0xFE,0xFF,0x12,0x49,
+ 0x46,0xEF,0xF4,0xFF,0xEE,0xF4,0xFE,0x90,
+ 0xFE,0x00,0xE0,0x24,0xFF,0xF5,0x82,0xE4,
+ 0x34,0xFD,0xF5,0x83,0xEE,0xF0,0xA3,0xEF,
+ 0xF0,0x80,0x54,0xE4,0xFD,0x7F,0x04,0x12,
+ 0x49,0x27,0x90,0x41,0x91,0xE0,0x90,0xFE,
+ 0x03,0xF0,0x90,0x41,0x92,0xE0,0x90,0xFE,
+ 0x04,0xF0,0x90,0x41,0x93,0xE0,0x90,0xFE,
+ 0x05,0xF0,0x90,0x41,0x94,0xE0,0x90,0xFE,
+ 0x06,0xF0,0x90,0xFE,0x00,0xE0,0x24,0xFE,
+ 0xFF,0x12,0x49,0x46,0xEF,0xF4,0xFF,0xEE,
+ 0xF4,0xFE,0x90,0xFE,0x00,0xE0,0x24,0xFF,
+ 0xF5,0x82,0xE4,0x34,0xFD,0xF5,0x83,0xEE,
+ 0xF0,0xA3,0xEF,0xF0,0x80,0x09,0x90,0xFB,
+ 0x86,0x74,0x01,0xF0,0x12,0x8A,0x16,0x90,
+ 0xFB,0x86,0x74,0x01,0xF0,0x90,0x42,0x6C,
+ 0xE0,0xFF,0x64,0x02,0x60,0x24,0xEF,0x64,
+ 0x03,0x60,0x1F,0x90,0xF9,0x9F,0xE0,0x60,
+ 0x14,0x90,0xFB,0x88,0xE0,0x64,0x01,0x60,
+ 0xF8,0x90,0xFB,0x96,0xE4,0xF0,0x90,0xFB,
+ 0x88,0x04,0xF0,0x80,0x05,0x90,0xFB,0x93,
+ 0xE4,0xF0,0x90,0x42,0x6C,0xE0,0xFF,0x64,
+ 0x01,0x60,0x04,0xEF,0xB4,0x03,0x18,0x85,
+ 0x2C,0x2C,0x85,0x2C,0x2C,0x12,0x68,0xE0,
+ 0xE4,0xF5,0x0F,0x7B,0x01,0x7A,0x43,0x79,
+ 0x49,0x7D,0x01,0xFC,0x12,0xAD,0x13,0x22,
+ 0x90,0xFB,0x86,0xE0,0x60,0x32,0x90,0x43,
+ 0x51,0xE0,0x70,0x24,0x90,0xFE,0x00,0xE0,
+ 0x24,0x01,0xFF,0xE4,0x33,0xFE,0x90,0xFB,
+ 0x82,0xE0,0xC3,0x9F,0xEE,0x64,0x80,0xF8,
+ 0x74,0x80,0x98,0x50,0x0B,0xE0,0xF4,0x60,
+ 0x07,0x90,0xFB,0x86,0x74,0x01,0xF0,0x22,
+ 0x90,0xFB,0x82,0xE4,0xF0,0x12,0x49,0xD7,
+ 0x22,0xC2,0x8C,0x22,0x22,0x22,0x22,0x22,
+ 0x22,0x22,0xD2,0xAF,0x90,0x42,0x6D,0xE0,
+ 0x04,0xF0,0x12,0x63,0xAC,0x90,0xF5,0xBE,
+ 0x74,0x01,0xF0,0x12,0x62,0x71,0x90,0x44,
+ 0x98,0x74,0x01,0xF0,0x90,0x42,0x6D,0xE0,
+ 0x64,0xAF,0x70,0x31,0x90,0xF5,0xC1,0xE0,
+ 0x70,0x04,0x90,0x42,0x96,0xF0,0x90,0xF5,
+ 0xBA,0xE0,0x70,0x04,0x90,0x42,0x97,0xF0,
+ 0x90,0x42,0x97,0xE0,0x70,0x17,0x90,0x42,
+ 0x96,0xE0,0x70,0x11,0x90,0xF5,0xB9,0x04,
+ 0xF0,0x90,0xF5,0xC0,0xF0,0xD2,0xE9,0x90,
+ 0x44,0x98,0xF0,0xD2,0xEA,0x12,0x88,0x8B,
+ 0x53,0x91,0xDF,0xD2,0xAF,0x22,0x90,0xF7,
+ 0x79,0x74,0x01,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xA3,0xF0,0x90,0xF7,0x6A,0xF0,0x90,0xF7,
+ 0x74,0xF0,0x90,0xF0,0x09,0xF0,0x90,0xF7,
+ 0x7D,0xF0,0x90,0xF5,0xB9,0xF0,0x90,0xF5,
+ 0xBE,0xF0,0x90,0xF5,0xC0,0xF0,0x22,0xD2,
+ 0xAF,0x90,0xF7,0x7D,0xE0,0x64,0x01,0x70,
+ 0x57,0x90,0xF7,0x32,0xE0,0x60,0x03,0x12,
+ 0x9B,0x0B,0x90,0xF7,0x3C,0xE0,0x60,0x03,
+ 0x02,0x4E,0x18,0x90,0xF5,0xA9,0xE0,0x60,
+ 0x03,0x02,0x4E,0x18,0x90,0xF7,0x32,0xE0,
+ 0xB4,0x01,0x10,0x90,0xF7,0x7B,0xE0,0xB4,
+ 0x01,0x09,0x90,0x43,0x3C,0x74,0x02,0xF0,
+ 0x12,0x9C,0x7C,0x90,0xF7,0x31,0xE0,0x64,
+ 0x01,0x60,0x03,0x02,0x4E,0x18,0x90,0xF7,
+ 0x7C,0xE0,0x64,0x01,0x60,0x03,0x02,0x4E,
+ 0x18,0x90,0x44,0x97,0x04,0xF0,0x90,0xF7,
+ 0x49,0xE0,0x90,0x44,0x99,0xF0,0x80,0x6F,
+ 0x90,0x44,0x98,0xE0,0x64,0x01,0x70,0x67,
+ 0x90,0xF5,0xB9,0xE0,0x64,0x01,0x70,0x29,
+ 0x90,0xF5,0xB3,0x04,0xF0,0x90,0xF4,0x60,
+ 0xE0,0x70,0x05,0x12,0x67,0x0D,0x80,0x0F,
+ 0x90,0xF4,0x60,0xE0,0xB4,0x01,0x05,0x12,
+ 0x67,0x1D,0x80,0x03,0x12,0x67,0x2D,0x90,
+ 0xF5,0xB3,0xE4,0xF0,0x90,0x42,0x97,0x04,
+ 0xF0,0x90,0xF5,0xC0,0xE0,0x64,0x01,0x70,
+ 0x29,0x90,0xF5,0xBD,0x04,0xF0,0x90,0xF4,
+ 0x60,0xE0,0x70,0x05,0x12,0x67,0x3D,0x80,
+ 0x0F,0x90,0xF4,0x60,0xE0,0xB4,0x01,0x05,
+ 0x12,0x67,0x4B,0x80,0x03,0x12,0x67,0x5C,
+ 0x90,0xF5,0xBD,0xE4,0xF0,0x90,0x42,0x96,
+ 0x04,0xF0,0xE4,0x90,0x42,0x6D,0xF0,0x12,
+ 0x4D,0x1F,0x53,0x91,0xBF,0xE4,0x90,0x44,
+ 0x98,0xF0,0xD2,0xEA,0xD2,0xE9,0xD2,0xAF,
+ 0x22,0x90,0xF5,0x52,0x74,0x3F,0xF0,0x90,
+ 0xF5,0x54,0x74,0x01,0xF0,0x90,0xF7,0x0E,
+ 0xF0,0x22,0x90,0x43,0xC3,0x74,0x01,0xF0,
+ 0x90,0x44,0xB0,0x74,0x05,0xF0,0x90,0x43,
+ 0x42,0x74,0x01,0xF0,0x12,0xA7,0x2C,0x12,
+ 0xA5,0x8E,0x53,0x91,0x7F,0x12,0xA4,0x1A,
+ 0x22,0x90,0xF7,0x11,0xE4,0xF0,0x7F,0xFF,
+ 0x7E,0x66,0x12,0x47,0x76,0x90,0x44,0x98,
+ 0x74,0x01,0xF0,0xD2,0xEA,0x90,0xF7,0x11,
+ 0xF0,0x22,0xC2,0xAF,0xC2,0xDB,0x90,0xFB,
+ 0x7F,0xE0,0x70,0x09,0x90,0xFB,0x87,0xF0,
+ 0x90,0xFB,0xAF,0x04,0xF0,0xD2,0xAF,0x22,
+ 0xC2,0xE9,0xC2,0xEA,0xD2,0xA8,0xD2,0xAF,
+ 0x90,0x43,0x3A,0xE0,0x60,0x12,0x90,0xF9,
+ 0x57,0xE0,0x54,0xFD,0x44,0x02,0xF0,0xE0,
+ 0x54,0xFD,0xF0,0xE4,0x90,0x43,0x3A,0xF0,
+ 0x90,0xF5,0xA9,0x74,0x01,0xF0,0x90,0xF0,
+ 0x71,0xE4,0xF0,0x90,0xF1,0xE9,0xF0,0x90,
+ 0xF0,0xD5,0xF0,0x90,0xF0,0xE3,0xF0,0x90,
+ 0xF0,0xE2,0xF0,0x90,0xF1,0xEA,0xF0,0x90,
+ 0xF1,0xEF,0xF0,0x90,0xF1,0xF2,0xF0,0x90,
+ 0xF1,0xF7,0xF0,0x90,0xF1,0xFB,0xF0,0x90,
+ 0xF5,0xAF,0xF0,0xA3,0xF0,0xA3,0xF0,0x90,
+ 0xF5,0xBB,0xF0,0x90,0xF5,0xA8,0xF0,0x90,
+ 0xF5,0xAC,0xF0,0x90,0xF5,0xC8,0xF0,0x90,
+ 0xF4,0x71,0xF0,0x90,0xF9,0x0B,0xF0,0x90,
+ 0xF5,0xE7,0xF0,0x90,0xF5,0xE1,0xF0,0x90,
+ 0xF4,0x71,0xF0,0x90,0xF5,0xD7,0xF0,0x90,
+ 0xF6,0x25,0xF0,0x90,0xFD,0xA2,0xF0,0x90,
+ 0xF1,0xE8,0x04,0xF0,0x90,0xF0,0x6C,0xF0,
+ 0x90,0xF1,0x75,0xF0,0x90,0xF1,0x31,0xF0,
+ 0xE4,0x90,0x43,0x80,0xF0,0x90,0xF1,0xF6,
+ 0x04,0xF0,0x90,0xF1,0xFA,0xF0,0x90,0xF1,
+ 0xF3,0xF0,0x90,0xF1,0xF0,0xF0,0x90,0xF0,
+ 0x7D,0xF0,0x90,0xF1,0xEB,0xF0,0x90,0xF5,
+ 0xC2,0xF0,0x90,0xF5,0xB3,0xF0,0x90,0xF5,
+ 0xBD,0xF0,0x90,0xF1,0xE8,0xF0,0xE4,0xF0,
+ 0x90,0xF0,0x6C,0xF0,0x90,0xF1,0x75,0xF0,
+ 0x90,0xF1,0x31,0xF0,0x90,0xF1,0xFA,0xF0,
+ 0x90,0x41,0xBE,0xE0,0x90,0xF1,0xA3,0xF0,
+ 0x90,0x41,0xBF,0xE0,0x90,0xF1,0xA4,0xF0,
+ 0x90,0x41,0xC0,0xE0,0x90,0xF1,0xA5,0xF0,
+ 0x90,0xF6,0x21,0x74,0x02,0xF0,0x90,0xF6,
+ 0x23,0xF0,0x90,0xF5,0xC6,0xE4,0xF0,0xA3,
+ 0xF0,0x90,0xF5,0xC3,0xF0,0xA3,0xF0,0x90,
+ 0x41,0xB6,0xE0,0x90,0xF1,0x54,0xF0,0x90,
+ 0x41,0xB7,0xE0,0x90,0xF1,0x55,0xF0,0x90,
+ 0x41,0xB8,0xE0,0x90,0xF1,0x52,0xF0,0x90,
+ 0x41,0xB9,0xE0,0x90,0xF1,0x53,0xF0,0x90,
+ 0xF1,0x93,0xE4,0xF0,0x90,0xF1,0x69,0x74,
+ 0x08,0xF0,0x90,0xF1,0x5F,0x74,0x02,0xF0,
+ 0x90,0xF1,0x4E,0x74,0x40,0xF0,0x74,0xFF,
+ 0xF0,0x90,0xF1,0x85,0xE4,0xF0,0x90,0xF1,
+ 0x2F,0x04,0xF0,0x90,0xFD,0x02,0xF0,0x90,
+ 0xFD,0x0F,0x74,0x07,0xF0,0x90,0xF7,0x0F,
+ 0xE4,0xF0,0x90,0xF7,0x8A,0x74,0x0F,0xF0,
+ 0x90,0xF7,0x98,0x74,0x0D,0xF0,0x90,0xF7,
+ 0x8B,0x74,0x01,0xF0,0x90,0xFD,0x29,0xE4,
+ 0xF0,0x90,0xFD,0xA5,0xF0,0x90,0xF5,0x52,
+ 0x74,0x3F,0xF0,0xA3,0x74,0x05,0xF0,0x90,
+ 0x44,0x9A,0x74,0x0A,0xF0,0x90,0xF0,0x71,
+ 0x74,0x01,0xF0,0x90,0xF7,0x15,0xF0,0x90,
+ 0xF9,0x0E,0xF0,0x90,0xF5,0x06,0x74,0x04,
+ 0xF0,0x90,0xF7,0x3C,0xE0,0x70,0x04,0x90,
+ 0xF7,0x2F,0xF0,0x12,0x9C,0x73,0x90,0xF7,
+ 0x34,0xE4,0xF0,0x90,0xF7,0x33,0xF0,0x90,
+ 0xF7,0x35,0x74,0x05,0xF0,0xA3,0xF0,0x90,
+ 0xF7,0x39,0x74,0xFF,0xF0,0xA3,0x74,0x9C,
+ 0xF0,0x90,0xF7,0x7E,0x74,0x01,0xF0,0x90,
+ 0xFD,0x00,0xF0,0x90,0xFD,0x90,0x74,0x03,
+ 0xF0,0x90,0xF2,0x17,0x74,0xFE,0xF0,0x90,
+ 0xF0,0x42,0x04,0xF0,0xA3,0xF0,0xA3,0x74,
+ 0x07,0xF0,0xA3,0xF0,0x90,0xF7,0x74,0x74,
+ 0x01,0xF0,0x90,0xF7,0x6A,0xF0,0x12,0x4D,
+ 0x1F,0x90,0xF7,0x3E,0x74,0x01,0xF0,0x90,
+ 0xF7,0x3C,0xE0,0x70,0x0B,0x90,0x44,0x98,
+ 0xF0,0xD2,0xEA,0x90,0xF7,0x76,0x04,0xF0,
+ 0x90,0xF7,0x37,0x74,0xDC,0xF0,0xA3,0x74,
+ 0x05,0xF0,0x90,0xFD,0xA2,0xE4,0xF0,0xA3,
+ 0xF0,0xA3,0x74,0x05,0xF0,0x90,0xF5,0x4D,
+ 0x74,0x01,0xF0,0x90,0xF5,0x41,0xE4,0xF0,
+ 0xA3,0x74,0x02,0xF0,0x90,0xF6,0x5C,0xE4,
+ 0xF0,0xA3,0xF0,0x90,0xF0,0x5F,0x04,0xF0,
+ 0x90,0x42,0x0E,0xE0,0x90,0xF0,0x06,0xF0,
+ 0x90,0xF0,0x58,0xE4,0xF0,0xF0,0x90,0x42,
+ 0x2F,0xF0,0x90,0x42,0x3C,0x74,0xFF,0xF0,
+ 0x90,0x44,0x47,0xF0,0x90,0x44,0x40,0xF0,
+ 0x90,0xFD,0x29,0xE4,0xF0,0x90,0xF9,0xE5,
+ 0x74,0x1E,0xF0,0xA3,0x74,0x05,0xF0,0xA3,
+ 0xE4,0xF0,0x90,0x42,0x41,0x74,0xFF,0xF0,
+ 0x22,0x90,0xFD,0x15,0x74,0x08,0xF0,0xA3,
+ 0x74,0x10,0xF0,0xA3,0xE4,0xF0,0x90,0xFD,
+ 0x05,0x04,0xF0,0x90,0xFD,0x2B,0xF0,0x90,
+ 0xFD,0x2A,0xF0,0x90,0x42,0x6E,0xEF,0xF0,
+ 0xE4,0x90,0x42,0x3D,0xF0,0x90,0xFD,0x29,
+ 0xF0,0x90,0xFD,0x2C,0x04,0xF0,0xFF,0x12,
+ 0x6D,0xE8,0x90,0xFD,0x2C,0xE4,0xF0,0x22,
+ 0x90,0xF4,0xC1,0xE0,0x14,0x60,0x46,0x14,
+ 0x60,0x7C,0x24,0x02,0x60,0x03,0x02,0x51,
+ 0xED,0x90,0xFD,0x19,0x74,0xCA,0xF0,0xA3,
+ 0x74,0x08,0xF0,0xA3,0x74,0x4A,0xF0,0xA3,
+ 0x74,0x0A,0xF0,0xA3,0x74,0xCA,0xF0,0xA3,
+ 0x74,0x0C,0xF0,0xA3,0x74,0x4A,0xF0,0xA3,
+ 0x74,0x10,0xF0,0xA3,0x74,0xCA,0xF0,0xA3,
+ 0x74,0x14,0xF0,0xA3,0x74,0x4A,0xF0,0xA3,
+ 0x74,0x1A,0xF0,0xA3,0x74,0xCA,0xF0,0xA3,
+ 0x74,0x20,0xF0,0x80,0x6F,0x90,0xFD,0x19,
+ 0x74,0x80,0xF0,0xA3,0xE4,0xF0,0xA3,0xF0,
+ 0xA3,0x74,0x02,0xF0,0xA3,0x74,0x20,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0xE8,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0xB0,0xF0,
+ 0xA3,0x74,0x04,0xF0,0xA3,0x74,0xDC,0xF0,
+ 0xA3,0x74,0x05,0xF0,0xA3,0x74,0x34,0xF0,
+ 0xA3,0x74,0x08,0xF0,0x80,0x36,0x90,0xFD,
+ 0x19,0x74,0x7D,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0xB4,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0xC8,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0xFA,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x2C,0xF0,
+ 0xA3,0x74,0x01,0xF0,0xA3,0x74,0x52,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0x34,0xF0,
+ 0xA3,0x74,0x08,0xF0,0xE4,0xFD,0xED,0x75,
+ 0xF0,0x02,0xA4,0x24,0x19,0xFF,0xE5,0xF0,
+ 0x34,0xFD,0xFE,0x8F,0x82,0xF5,0x83,0xE0,
+ 0xF9,0xA3,0xE0,0xFC,0x90,0xF9,0x00,0xE0,
+ 0x70,0x18,0xEC,0x54,0x0F,0xFB,0xC4,0x54,
+ 0xF0,0xFB,0xE9,0xC4,0x54,0x0F,0x4B,0x8F,
+ 0x82,0x8E,0x83,0xF0,0xEC,0xC4,0x54,0x0F,
+ 0xA3,0xF0,0x90,0xF9,0x00,0xE0,0x64,0x02,
+ 0x70,0x1D,0xEC,0x54,0x0F,0xFB,0x25,0xE0,
+ 0x25,0xE0,0xFB,0xAA,0x01,0xEA,0x13,0x13,
+ 0x54,0x3F,0x4B,0x8F,0x82,0x8E,0x83,0xF0,
+ 0xEC,0x13,0x13,0x54,0x3F,0xA3,0xF0,0x0D,
+ 0xED,0xB4,0x07,0xA2,0x22,0x90,0xF5,0xC8,
+ 0xE4,0xF0,0x90,0xF5,0x75,0xF0,0x90,0xF5,
+ 0x74,0xF0,0x90,0xF1,0xD0,0xF0,0xA3,0xF0,
+ 0xA3,0xF0,0x90,0xF5,0x6E,0x74,0x0A,0xF0,
+ 0x90,0xF5,0x71,0x74,0x02,0xF0,0xA3,0x74,
+ 0x27,0xF0,0xA3,0xE4,0xF0,0x90,0x42,0x43,
+ 0xE0,0x64,0x01,0x60,0x03,0x02,0x53,0x06,
+ 0x90,0xF5,0xF7,0xE0,0xFE,0x90,0xF5,0xF6,
+ 0xE0,0x7C,0x00,0x24,0x00,0xFF,0xEC,0x3E,
+ 0xFE,0xEF,0x78,0x06,0xCE,0xC3,0x13,0xCE,
+ 0x13,0xD8,0xF9,0x90,0x42,0x6F,0xF0,0x90,
+ 0xF9,0x00,0xE0,0xB4,0x01,0x0C,0x90,0x42,
+ 0x6F,0xE0,0xFF,0x13,0x13,0x54,0x3F,0xF0,
+ 0x80,0x0F,0x90,0xF9,0x00,0xE0,0xB4,0x02,
+ 0x08,0x90,0x42,0x6F,0xE0,0xFF,0xC3,0x13,
+ 0xF0,0x90,0x42,0x6F,0xE0,0xFF,0xC3,0x94,
+ 0x04,0x40,0x05,0x74,0x03,0xF0,0x80,0x21,
+ 0xEF,0xC3,0x94,0x02,0x40,0x08,0x90,0x42,
+ 0x6F,0x74,0x02,0xF0,0x80,0x13,0xEF,0xC3,
+ 0x94,0x01,0x40,0x08,0x90,0x42,0x6F,0x74,
+ 0x01,0xF0,0x80,0x05,0xE4,0x90,0x42,0x6F,
+ 0xF0,0x90,0x42,0x6F,0xE0,0xFF,0x90,0xF9,
+ 0x01,0xE0,0xC3,0x9F,0x50,0x0F,0xE0,0x90,
+ 0x42,0x6F,0xF0,0x80,0x08,0x90,0xF9,0x01,
+ 0xE0,0x90,0x42,0x6F,0xF0,0x90,0x42,0x6F,
+ 0xE0,0x14,0x60,0x0F,0x14,0x60,0x11,0x14,
+ 0x60,0x13,0x24,0x03,0x70,0x12,0x12,0x53,
+ 0x52,0x80,0x0D,0x12,0x54,0x6F,0x80,0x08,
+ 0x12,0x55,0x88,0x80,0x03,0x12,0x56,0xAC,
+ 0x90,0xF9,0x01,0xE0,0x14,0x60,0x0E,0x14,
+ 0x60,0x0F,0x14,0x60,0x10,0x24,0x03,0x70,
+ 0x0F,0x12,0x54,0x07,0x22,0x12,0x55,0x20,
+ 0x22,0x12,0x56,0x48,0x22,0x12,0x57,0x5E,
+ 0x22,0x90,0xF5,0x76,0x74,0x20,0xF0,0xA3,
+ 0x74,0x01,0xF0,0xA3,0x74,0x22,0xF0,0xA3,
+ 0x74,0x02,0xF0,0xA3,0x74,0xFF,0xF0,0xA3,
+ 0x74,0x01,0xF0,0xA3,0x74,0x7E,0xF0,0xA3,
+ 0x74,0x02,0xF0,0xA3,0x74,0xA0,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x74,0x51,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0xA3,0x74,0x03,0xF0,0xA3,
+ 0x74,0x40,0xF0,0xA3,0x74,0x01,0xF0,0xA3,
+ 0x74,0xED,0xF0,0xA3,0x74,0x02,0xF0,0xA3,
+ 0x74,0xA1,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0xDF,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,
+ 0xC1,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,
+ 0x68,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x9F,
+ 0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,0x3E,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0xE8,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0xFF,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0x0A,0xF0,
+ 0xA3,0xE4,0xF0,0x90,0xF9,0x00,0xE0,0x70,
+ 0x0A,0x90,0xF5,0x9E,0x74,0x3F,0xF0,0xA3,
+ 0xE4,0xF0,0x22,0x90,0xF9,0x00,0xE0,0xB4,
+ 0x01,0x0A,0x90,0xF5,0x9E,0x74,0xFB,0xF0,
+ 0xA3,0xE4,0xF0,0x22,0x90,0xF5,0x9E,0x74,
+ 0x7D,0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,
+ 0x6C,0x74,0x40,0xF0,0xA3,0x74,0x07,0xF0,
+ 0x90,0xF9,0x00,0xE0,0x70,0x16,0x90,0xF5,
+ 0x6A,0xF0,0xA3,0x74,0x05,0xF0,0x90,0xF5,
+ 0x70,0x74,0x03,0xF0,0x90,0xF5,0x6F,0x74,
+ 0x01,0xF0,0x80,0x32,0x90,0xF9,0x00,0xE0,
+ 0xB4,0x01,0x16,0x90,0xF5,0x6A,0xE4,0xF0,
+ 0xA3,0x74,0x04,0xF0,0x90,0xF5,0x70,0x04,
+ 0xF0,0x90,0xF5,0x6F,0x74,0x03,0xF0,0x80,
+ 0x15,0x90,0xF5,0x6A,0xE4,0xF0,0xA3,0x74,
+ 0x0A,0xF0,0x90,0xF5,0x70,0x74,0x04,0xF0,
+ 0x90,0xF5,0x6F,0x74,0x02,0xF0,0x90,0xFD,
+ 0x27,0x74,0x03,0xF0,0x90,0xFD,0x31,0x74,
+ 0x40,0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,
+ 0x76,0x74,0x72,0xF0,0xA3,0x74,0x01,0xF0,
+ 0xA3,0xF0,0xA3,0x04,0xF0,0xA3,0x74,0x5C,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0xF0,0xA3,0x74,0xCD,0xF0,0xA3,0x74,
+ 0x02,0xF0,0xA3,0x74,0x8E,0xF0,0xA3,0x74,
+ 0x01,0xF0,0xA3,0x04,0xF0,0xA3,0x04,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xF0,0xA3,0x74,0xC3,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x16,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0x89,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,
+ 0x74,0xA9,0xF0,0xA3,0x74,0x03,0xF0,0xA3,
+ 0x74,0x5D,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0xD0,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0xA3,0x74,0x15,0xF0,0xA3,
+ 0xE4,0xF0,0xA3,0x74,0xEF,0xF0,0xA3,0x74,
+ 0x03,0xF0,0x90,0xF5,0x6C,0x74,0x80,0xF0,
+ 0xA3,0x74,0x06,0xF0,0x90,0xF9,0x00,0xE0,
+ 0x70,0x0A,0x90,0xF5,0x9E,0x74,0x3F,0xF0,
+ 0xA3,0xE4,0xF0,0x22,0x90,0xF9,0x00,0xE0,
+ 0xB4,0x01,0x0A,0x90,0xF5,0x9E,0x74,0xFB,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,0x9E,
+ 0x74,0x7D,0xF0,0xA3,0xE4,0xF0,0x22,0x90,
+ 0xF5,0x6C,0x74,0x80,0xF0,0xA3,0x74,0x06,
+ 0xF0,0x90,0xF9,0x00,0xE0,0x70,0x16,0x90,
+ 0xF5,0x6A,0xF0,0xA3,0x74,0x0A,0xF0,0x90,
+ 0xF5,0x70,0x74,0x04,0xF0,0x90,0xF5,0x6F,
+ 0x74,0x02,0xF0,0x80,0x32,0x90,0xF9,0x00,
+ 0xE0,0xB4,0x01,0x17,0x90,0xF5,0x6A,0xE4,
+ 0xF0,0xA3,0x74,0x08,0xF0,0x90,0xF5,0x70,
+ 0x74,0x06,0xF0,0x90,0xF5,0x6F,0x74,0x04,
+ 0xF0,0x80,0x14,0x90,0xF5,0x6A,0xE4,0xF0,
+ 0xA3,0x74,0x04,0xF0,0x90,0xF5,0x70,0x04,
+ 0xF0,0x90,0xF5,0x6F,0x74,0x03,0xF0,0x90,
+ 0xFD,0x27,0x74,0x04,0xF0,0x90,0xFD,0x31,
+ 0x74,0x80,0xF0,0xA3,0xE4,0xF0,0x22,0x90,
+ 0xF5,0x76,0x74,0xFF,0xF0,0xA3,0x74,0x01,
+ 0xF0,0xA3,0x74,0x9E,0xF0,0xA3,0x74,0x03,
+ 0xF0,0xA3,0x74,0x31,0xF0,0xA3,0x74,0x02,
+ 0xF0,0xA3,0x74,0xB0,0xF0,0xA3,0xE4,0xF0,
+ 0xA3,0x74,0x7B,0xF0,0xA3,0x74,0x01,0xF0,
+ 0xA3,0x74,0x25,0xF0,0xA3,0x74,0x03,0xF0,
+ 0xA3,0x74,0xEC,0xF0,0xA3,0x74,0x02,0xF0,
+ 0xA3,0x74,0xE1,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0xB0,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0x3A,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,
+ 0xA2,0xF0,0xA3,0x74,0x03,0xF0,0xA3,0x74,
+ 0x97,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x26,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x9C,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0xF9,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0x74,0x37,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0xFC,0xF0,0xA3,
+ 0x74,0x03,0xF0,0xA3,0x74,0xE8,0xF0,0xA3,
+ 0x74,0x03,0xF0,0x90,0xF5,0x6C,0xE4,0xF0,
+ 0xA3,0x74,0x05,0xF0,0x90,0xF9,0x00,0xE0,
+ 0x70,0x0A,0x90,0xF5,0x9E,0x74,0x19,0xF0,
+ 0xA3,0xE4,0xF0,0x22,0x90,0xF9,0x00,0xE0,
+ 0xB4,0x01,0x0A,0x90,0xF5,0x9E,0x74,0x65,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,0x9E,
+ 0x74,0x65,0xF0,0xA3,0xE4,0xF0,0x22,0x90,
+ 0xF5,0x6C,0xE4,0xF0,0xA3,0x74,0x05,0xF0,
+ 0x90,0xF9,0x00,0xE0,0x70,0x15,0x90,0xF5,
+ 0x6A,0xF0,0xA3,0x74,0x04,0xF0,0x90,0xF5,
+ 0x70,0x04,0xF0,0x90,0xF5,0x6F,0x74,0x03,
+ 0xF0,0x80,0x31,0x90,0xF9,0x00,0xE0,0xB4,
+ 0x01,0x15,0x90,0xF5,0x6A,0xE4,0xF0,0xA3,
+ 0xF0,0x90,0xF5,0x70,0x74,0x07,0xF0,0x90,
+ 0xF5,0x6F,0x74,0x05,0xF0,0x80,0x15,0x90,
+ 0xF5,0x6A,0xE4,0xF0,0xA3,0x74,0x08,0xF0,
+ 0x90,0xF5,0x70,0x74,0x06,0xF0,0x90,0xF5,
+ 0x6F,0x74,0x04,0xF0,0x90,0xFD,0x27,0x74,
+ 0x07,0xF0,0x90,0xFD,0x31,0xE4,0xF0,0xA3,
+ 0x04,0xF0,0x22,0x90,0xF5,0x76,0x74,0x06,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0xC1,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0xFF,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0xB8,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0x0C,
+ 0xF0,0xA3,0x74,0x01,0xF0,0xA3,0x74,0x36,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x79,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xA3,0x74,0xE7,0xF0,0xA3,0x74,0x02,0xF0,
+ 0xA3,0x74,0x18,0xF0,0xA3,0x74,0x03,0xF0,
+ 0xA3,0x74,0x74,0xF0,0xA3,0x74,0x03,0xF0,
+ 0xA3,0x74,0xD6,0xF0,0xA3,0x74,0x03,0xF0,
+ 0xA3,0x74,0x1E,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0x74,0x41,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,
+ 0x43,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x30,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x18,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x07,0xF0,0xA3,
+ 0xE4,0xF0,0x90,0xF9,0x00,0xE0,0x70,0x0A,
+ 0x90,0xF5,0x9E,0x74,0x19,0xF0,0xA3,0xE4,
+ 0xF0,0x22,0x90,0xF9,0x00,0xE0,0xB4,0x01,
+ 0x0A,0x90,0xF5,0x9E,0x74,0x65,0xF0,0xA3,
+ 0xE4,0xF0,0x22,0x90,0xF5,0x9E,0x74,0x32,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF5,0x6C,
+ 0xE4,0xF0,0xA3,0x74,0x02,0xF0,0x90,0xF9,
+ 0x00,0xE0,0x70,0x16,0x90,0xF5,0x6A,0xF0,
+ 0xA3,0x74,0x08,0xF0,0x90,0xF5,0x70,0x74,
+ 0x04,0xF0,0x90,0xF5,0x6F,0x74,0x02,0xF0,
+ 0x80,0x2F,0x90,0xF9,0x00,0xE0,0xB4,0x01,
+ 0x15,0x90,0xF5,0x6A,0xE4,0xF0,0xA3,0xF0,
+ 0x90,0xF5,0x70,0x74,0x06,0xF0,0x90,0xF5,
+ 0x6F,0x74,0x04,0xF0,0x80,0x13,0x90,0xF5,
+ 0x6A,0xE4,0xF0,0xA3,0xF0,0x90,0xF5,0x70,
+ 0x74,0x05,0xF0,0x90,0xF5,0x6F,0x74,0x03,
+ 0xF0,0x90,0xFD,0x27,0x74,0x07,0xF0,0x90,
+ 0xFD,0x31,0xE4,0xF0,0xA3,0x74,0x02,0xF0,
+ 0x22,0xE4,0x90,0x42,0x77,0xF0,0xA3,0xF0,
+ 0x90,0x42,0x7B,0xF0,0xA3,0x04,0xF0,0xE4,
+ 0x90,0x42,0x8D,0xF0,0x90,0xF5,0xAD,0xF0,
+ 0x90,0x42,0x75,0xF0,0xA3,0xF0,0x90,0x42,
+ 0x75,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x94,
+ 0x03,0xEE,0x94,0x00,0x40,0x03,0x02,0x59,
+ 0x62,0xEF,0x4E,0x70,0x22,0x90,0xF4,0x61,
+ 0xF0,0x90,0xF4,0x60,0xF0,0x90,0xF4,0x64,
+ 0x74,0x02,0xF0,0x90,0xF4,0x63,0x74,0x06,
+ 0xF0,0x90,0x43,0x80,0xE0,0x60,0x5A,0x90,
+ 0xF4,0x63,0x74,0x07,0xF0,0x80,0x52,0x90,
+ 0x42,0x75,0xE0,0x70,0x04,0xA3,0xE0,0x64,
+ 0x01,0x70,0x22,0x90,0xF4,0x61,0x74,0x02,
+ 0xF0,0x90,0xF4,0x60,0xF0,0x90,0xF4,0x6C,
+ 0xF0,0x90,0xF4,0x6B,0x74,0x04,0xF0,0x90,
+ 0x43,0x80,0xE0,0x60,0x2C,0x90,0xF4,0x6B,
+ 0x74,0x07,0xF0,0x80,0x24,0x90,0xF4,0x61,
+ 0x74,0x01,0xF0,0x90,0xF4,0x60,0x74,0x04,
+ 0xF0,0x90,0xF4,0x68,0x74,0x02,0xF0,0x90,
+ 0xF4,0x65,0x74,0x05,0xF0,0x90,0x43,0x80,
+ 0xE0,0x60,0x06,0x90,0xF4,0x65,0x74,0x07,
+ 0xF0,0x90,0xF5,0xAC,0x74,0x01,0xF0,0x90,
+ 0xF5,0xAE,0xE0,0xB4,0x01,0xF9,0x90,0xF5,
+ 0xAE,0x74,0x01,0xF0,0x90,0xF4,0x6F,0xE0,
+ 0xFE,0x90,0xF4,0x6E,0xE0,0xFD,0xEE,0xED,
+ 0xFF,0x90,0x42,0x79,0xEE,0xF0,0xA3,0xEF,
+ 0xF0,0x90,0xF4,0x73,0xE0,0xFE,0x90,0xF4,
+ 0x72,0xE0,0xFD,0xEE,0xED,0xFF,0x90,0x42,
+ 0x7D,0xEE,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0x7B,0xE0,0xFE,0xA3,0xE0,0xFF,0xFB,0xAA,
+ 0x06,0xE4,0xF9,0xF8,0x90,0x42,0x79,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0xE4,0xFC,0xFD,0x12,
+ 0xA9,0xD1,0xC0,0x04,0xC0,0x05,0xC0,0x06,
+ 0xC0,0x07,0x90,0x42,0x7D,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0xFB,0xAA,0x06,0xE4,0xF9,0xF8,
+ 0x90,0x42,0x77,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0xE4,0xFC,0xFD,0x12,0xA9,0xD1,0xA8,0x04,
+ 0xA9,0x05,0xAA,0x06,0xAB,0x07,0xD0,0x07,
+ 0xD0,0x06,0xD0,0x05,0xD0,0x04,0xC3,0x12,
+ 0xAA,0x44,0x50,0x4F,0x90,0x42,0x79,0xE0,
+ 0xFF,0xA3,0xE0,0x90,0x42,0x77,0xCF,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x42,0x7D,0xE0,0xFF,
+ 0xA3,0xE0,0x90,0x42,0x7B,0xCF,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0xF4,0x74,0xE0,0x90,0x42,
+ 0x71,0xF0,0x90,0xF4,0x75,0xE0,0x90,0x42,
+ 0x72,0xF0,0x90,0xF4,0x76,0xE0,0x90,0x42,
+ 0x73,0xF0,0x90,0xF4,0x77,0xE0,0x90,0x42,
+ 0x74,0xF0,0x90,0x42,0x76,0xE0,0x25,0xE0,
+ 0xFF,0x90,0x42,0x75,0xE0,0x33,0x90,0x42,
+ 0x8D,0xEF,0xF0,0x90,0xF5,0xAC,0xE4,0xF0,
+ 0x90,0x42,0x76,0xE0,0x04,0xF0,0x70,0x06,
+ 0x90,0x42,0x75,0xE0,0x04,0xF0,0x02,0x57,
+ 0xDF,0x90,0x42,0x74,0xE0,0xFF,0x90,0x42,
+ 0x73,0xE0,0xC3,0x9F,0x50,0x0D,0x90,0x42,
+ 0x70,0x74,0x03,0xF0,0x90,0x42,0x73,0xEF,
+ 0xF0,0x80,0x06,0x90,0x42,0x70,0x74,0x02,
+ 0xF0,0x90,0x42,0x72,0xE0,0xFF,0x90,0x42,
+ 0x71,0xE0,0xC3,0x9F,0x50,0x0D,0x90,0x42,
+ 0x8E,0x74,0x01,0xF0,0x90,0x42,0x71,0xEF,
+ 0xF0,0x80,0x05,0xE4,0x90,0x42,0x8E,0xF0,
+ 0x90,0x42,0x73,0xE0,0xFF,0x90,0x42,0x71,
+ 0xE0,0xC3,0x9F,0x50,0x08,0x90,0x42,0x70,
+ 0xE0,0x90,0x42,0x8E,0xF0,0x90,0x44,0x97,
+ 0xE0,0xB4,0x01,0x1F,0x90,0x44,0x99,0xE0,
+ 0xFF,0x70,0x06,0x90,0x42,0x8D,0xF0,0x80,
+ 0x12,0xEF,0xB4,0x01,0x08,0x90,0x42,0x8D,
+ 0x74,0x02,0xF0,0x80,0x06,0x90,0x42,0x8D,
+ 0x74,0x04,0xF0,0x90,0x42,0x8E,0xE0,0x90,
+ 0xF9,0x01,0xF0,0x90,0x42,0x8D,0xE0,0xFF,
+ 0x70,0x06,0x90,0xF9,0x00,0xF0,0x80,0x21,
+ 0xEF,0xC3,0x94,0x04,0x40,0x0E,0x90,0xF9,
+ 0x00,0x74,0x02,0xF0,0x90,0x42,0x8E,0xE0,
+ 0x04,0xF0,0x80,0x0D,0x90,0xF9,0x00,0x74,
+ 0x01,0xF0,0x90,0x42,0x8E,0xE0,0x24,0x02,
+ 0xF0,0x90,0x42,0x8E,0xE0,0xFD,0x12,0x5C,
+ 0x4D,0x90,0x42,0x8E,0xE0,0x24,0x06,0xFF,
+ 0x74,0x01,0x7E,0x00,0xA8,0x07,0x08,0x80,
+ 0x05,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,
+ 0x24,0xF6,0xFF,0xEE,0x34,0xFF,0x90,0x42,
+ 0x75,0xF0,0xA3,0xEF,0xF0,0xE0,0x90,0xF4,
+ 0x69,0xF0,0x90,0x42,0x75,0xE0,0x90,0xF4,
+ 0x6A,0xF0,0x90,0xF4,0x6D,0x74,0x14,0xF0,
+ 0x90,0xF5,0xAC,0xE4,0xF0,0x22,0x90,0x41,
+ 0xD5,0xE0,0x60,0x6E,0x90,0xF9,0x00,0xE0,
+ 0x90,0x42,0x8D,0xF0,0x90,0xF9,0x01,0xE0,
+ 0x90,0x42,0x8E,0xF0,0x90,0x42,0x8D,0xE0,
+ 0x70,0x0A,0xA3,0xE0,0xFD,0xE4,0xFF,0x12,
+ 0x5C,0x4D,0x80,0x22,0x90,0x42,0x8D,0xE0,
+ 0xB4,0x02,0x0D,0xA3,0xE0,0x04,0xF0,0xE0,
+ 0xFD,0x7F,0x04,0x12,0x5C,0x4D,0x80,0x0E,
+ 0x90,0x42,0x8E,0xE0,0x24,0x02,0xF0,0xE0,
+ 0xFD,0x7F,0x02,0x12,0x5C,0x4D,0x90,0x42,
+ 0x8E,0xE0,0x24,0x06,0xFF,0x74,0x01,0x7E,
+ 0x00,0xA8,0x07,0x08,0x80,0x05,0xC3,0x33,
+ 0xCE,0x33,0xCE,0xD8,0xF9,0x24,0xF6,0xFF,
+ 0xEE,0x34,0xFF,0xFE,0xEF,0x90,0xF4,0x69,
+ 0xF0,0xEE,0xA3,0xF0,0x90,0xF4,0x6D,0x74,
+ 0x14,0xF0,0x90,0xF4,0x63,0x74,0x05,0xF0,
+ 0x90,0x43,0x80,0xE0,0x60,0x06,0x90,0xF4,
+ 0x63,0x74,0x07,0xF0,0x90,0xF5,0xAD,0x74,
+ 0x01,0xF0,0x90,0xF5,0xAC,0xE4,0xF0,0x04,
+ 0xF0,0x90,0xF5,0xAE,0xE0,0xB4,0x01,0xF9,
+ 0x90,0xF5,0xAE,0x74,0x01,0xF0,0x90,0xF4,
+ 0x83,0xE0,0x90,0x42,0x7F,0xF0,0x90,0xF4,
+ 0x82,0xE0,0x90,0x42,0x80,0xF0,0x90,0xF4,
+ 0x81,0xE0,0x90,0x42,0x81,0xF0,0x90,0xF4,
+ 0x80,0xE0,0x90,0x42,0x82,0xF0,0x90,0xF4,
+ 0x86,0xE0,0x30,0xE2,0x04,0x7F,0xFF,0x80,
+ 0x02,0x7F,0x00,0x90,0x42,0x83,0xEF,0xF0,
+ 0xE0,0xB4,0xFF,0x09,0x90,0xF4,0x86,0xE0,
+ 0x44,0xF8,0xFF,0x80,0x07,0x90,0xF4,0x86,
+ 0xE0,0x54,0x07,0xFF,0x90,0x42,0x84,0xEF,
+ 0xF0,0x90,0xF4,0x85,0xE0,0x90,0x42,0x85,
+ 0xF0,0x90,0xF4,0x84,0xE0,0x90,0x42,0x86,
+ 0xF0,0x90,0x42,0x8E,0xE0,0x24,0x05,0xFF,
+ 0x74,0x01,0x7E,0x00,0xA8,0x07,0x08,0x80,
+ 0x05,0xC3,0x33,0xCE,0x33,0xCE,0xD8,0xF9,
+ 0x90,0x42,0x8C,0xF0,0xEE,0x90,0x42,0x8B,
+ 0xF0,0x90,0x42,0x83,0xE0,0xF8,0xA3,0xE0,
+ 0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0x90,
+ 0x42,0x7F,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x12,0xAC,0x9E,
+ 0xA8,0x04,0xA9,0x05,0xAA,0x06,0xAB,0x07,
+ 0x90,0x42,0x8B,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0xE4,0xFC,0xFD,0xEB,0x2F,0xFF,0xEA,0x3E,
+ 0xFE,0xED,0x39,0xFD,0xEC,0x38,0xFC,0x90,
+ 0x42,0x87,0x12,0xAA,0x8F,0x90,0x42,0x8C,
+ 0xE0,0x90,0xF5,0x3C,0xF0,0x90,0x42,0x8B,
+ 0xE0,0x90,0xF5,0x3D,0xF0,0xE4,0x7F,0xFF,
+ 0x7E,0x07,0xFD,0xFC,0x90,0x42,0x87,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xD3,0x12,0xAA,0x2E,0x40,0x0C,
+ 0x90,0x42,0x87,0x12,0xAA,0x9B,0x00,0x00,
+ 0x07,0xFF,0x80,0x26,0x7F,0x00,0x7E,0xF8,
+ 0x7D,0xFF,0x7C,0xFF,0x90,0x42,0x87,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xC3,0x12,0xAA,0x2E,0x50,0x0A,
+ 0x90,0x42,0x87,0x12,0xAA,0x9B,0xFF,0xFF,
+ 0xF8,0x00,0x90,0x42,0x8A,0xE0,0x90,0xF4,
+ 0x66,0xF0,0x90,0x42,0x89,0xE0,0x90,0xF4,
+ 0x67,0xF0,0x90,0xF4,0x67,0xE0,0x70,0xFA,
+ 0x90,0xF4,0x66,0xE0,0x70,0xF4,0x22,0x90,
+ 0xF4,0x71,0xE4,0xF0,0x04,0xF0,0x90,0xF5,
+ 0xAC,0xE4,0xF0,0xEF,0x70,0x05,0x12,0xA7,
+ 0x46,0x80,0x03,0x12,0x5A,0x57,0x90,0xF4,
+ 0x71,0xE4,0xF0,0x22,0x90,0xF4,0x60,0xEF,
+ 0xF0,0xA3,0xED,0xF0,0x22,0x90,0x42,0x8F,
+ 0xEE,0xF0,0xA3,0xEF,0xF0,0xA3,0xED,0xF0,
+ 0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0x90,
+ 0xF4,0x1D,0xE0,0x90,0x42,0x95,0xF0,0x90,
+ 0x42,0xA3,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x42,0x92,
+ 0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0xC3,0x12,0xAA,0x2E,0x40,
+ 0x48,0x90,0x42,0x92,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,
+ 0x42,0xA3,0x12,0xAA,0x8F,0x90,0x42,0x8F,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x42,0xAB,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x42,0x91,0xE0,
+ 0x70,0x10,0x90,0x42,0xA5,0xE0,0xFF,0xA3,
+ 0xE0,0x90,0x42,0xA7,0xCF,0xF0,0xA3,0xEF,
+ 0xF0,0x22,0x90,0x42,0xA5,0xE0,0xFF,0xA3,
+ 0xE0,0x90,0x42,0xA9,0xCF,0xF0,0xA3,0xEF,
+ 0xF0,0x22,0xE4,0x90,0x42,0xA7,0xF0,0xA3,
+ 0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,
+ 0xF0,0x90,0xF5,0xB3,0x04,0xF0,0x90,0xF5,
+ 0xB1,0xE4,0xF0,0x90,0xF5,0xB0,0xF0,0x90,
+ 0xF5,0xC2,0x04,0xF0,0x90,0xF5,0xB0,0xF0,
+ 0x90,0xF5,0xC2,0xE4,0xF0,0x90,0x42,0xB3,
+ 0xF0,0x90,0x42,0x9E,0xE0,0x70,0x05,0x90,
+ 0x42,0xB3,0x04,0xF0,0x90,0x42,0xA3,0x12,
+ 0xAA,0x9B,0x00,0x00,0x00,0x00,0xE4,0x90,
+ 0x42,0xB7,0xF0,0x90,0x42,0xB3,0xE0,0xFF,
+ 0x90,0x42,0xB7,0xE0,0xFE,0xD3,0x9F,0x40,
+ 0x03,0x02,0x5D,0xD8,0x90,0xF5,0xB8,0xEE,
+ 0xF0,0x90,0x42,0xB1,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0x90,
+ 0x42,0xB4,0xF0,0xA3,0xEF,0xF0,0x90,0x42,
+ 0xB1,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x42,
+ 0xB4,0xE0,0xFC,0xA3,0xE0,0xFD,0xD3,0x9F,
+ 0xEE,0x64,0x80,0xF8,0xEC,0x64,0x80,0x98,
+ 0x50,0x64,0xE0,0x90,0xF4,0x11,0xF0,0xEC,
+ 0xFF,0x33,0x95,0xE0,0xA3,0xEF,0xF0,0x90,
+ 0xF5,0xB5,0x74,0x01,0xF0,0x90,0x41,0xD6,
+ 0xE0,0xB4,0x01,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0xF5,0xB5,0xE0,0x64,0x01,
+ 0x60,0x04,0x7E,0x01,0x80,0x02,0x7E,0x00,
+ 0xEE,0x5F,0x70,0xE1,0x90,0xF5,0xB5,0xE0,
+ 0xB4,0x01,0x04,0x7F,0x01,0x80,0x02,0x7F,
+ 0x00,0x90,0x42,0xB6,0xEF,0xF0,0x90,0x42,
+ 0xB4,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x42,
+ 0xB7,0xE0,0xFD,0x12,0x5C,0x56,0x90,0x42,
+ 0xB5,0xE0,0x04,0xF0,0x70,0x06,0x90,0x42,
+ 0xB4,0xE0,0x04,0xF0,0x80,0x80,0x90,0x42,
+ 0xB7,0xE0,0x04,0xF0,0x02,0x5D,0x24,0x90,
+ 0x42,0xA7,0xE0,0xFE,0xA3,0xE0,0xFF,0xD3,
+ 0x90,0x42,0xAA,0xE0,0x9F,0x90,0x42,0xA9,
+ 0xE0,0x9E,0x50,0x03,0x02,0x5E,0xD3,0x90,
+ 0x41,0xEB,0xE0,0x64,0x01,0xF0,0x90,0xF0,
+ 0x76,0xF0,0xE4,0x90,0x42,0xAD,0xF0,0x90,
+ 0xF1,0xB5,0xE0,0x90,0x42,0xAE,0xF0,0x90,
+ 0xF1,0xB4,0xE0,0x90,0x42,0xAF,0xF0,0x90,
+ 0xF1,0xB3,0xE0,0x90,0x42,0xB0,0xF0,0xE4,
+ 0xFF,0xFE,0x7D,0x40,0xFC,0x90,0x42,0xAD,
+ 0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0x12,0xAA,0x2E,0x40,0x23,
+ 0x90,0x42,0xAD,0xE0,0xF8,0xA3,0xE0,0xF9,
+ 0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0xE4,0x9B,
+ 0xFF,0xE4,0x9A,0xFE,0x74,0x80,0x99,0xFD,
+ 0xE4,0x98,0xFC,0x90,0x42,0xAD,0x12,0xAA,
+ 0x8F,0x80,0x17,0x90,0x42,0xAD,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0x12,0xAA,0x20,0x90,0x42,0xAD,0x12,
+ 0xAA,0x8F,0x90,0x42,0x9F,0xE0,0xF8,0xA3,
+ 0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,
+ 0xC3,0xE4,0x9B,0xFF,0xE4,0x9A,0xFE,0x74,
+ 0x80,0x99,0xFD,0xE4,0x98,0xFC,0x90,0x42,
+ 0x9F,0x12,0xAA,0x8F,0x90,0xF1,0xEB,0x74,
+ 0x01,0xF0,0xE4,0xF0,0x90,0x42,0xAE,0xE0,
+ 0x90,0xF1,0xA5,0xF0,0x90,0x42,0xAF,0xE0,
+ 0x90,0xF1,0xA4,0xF0,0x90,0x42,0xB0,0xE0,
+ 0x90,0xF1,0xA3,0xF0,0x90,0xF1,0x14,0xE0,
+ 0x70,0x06,0x90,0xF1,0x10,0xE0,0x60,0x1A,
+ 0x90,0xF1,0x0E,0xE0,0xF4,0xF0,0xA3,0xE0,
+ 0xF4,0xF0,0x90,0xF1,0x12,0xE0,0xF4,0xF0,
+ 0xA3,0xE0,0xF4,0xF0,0x90,0xF1,0x0A,0x74,
+ 0x01,0xF0,0x90,0x42,0xAB,0xE0,0xFF,0x33,
+ 0x95,0xE0,0x90,0xF4,0x0D,0xEF,0xF0,0x90,
+ 0x42,0xAC,0xE0,0x90,0xF4,0x0C,0xF0,0x90,
+ 0xF5,0xB6,0x74,0x01,0xF0,0x90,0x41,0xD6,
+ 0xE0,0xB4,0x01,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0xF5,0xB7,0xE0,0x64,0x01,
+ 0x60,0x04,0x7E,0x01,0x80,0x02,0x7E,0x00,
+ 0xEE,0x5F,0x70,0xE1,0x90,0xF5,0xB7,0xE0,
+ 0xB4,0x01,0x04,0x7F,0x01,0x80,0x02,0x7F,
+ 0x00,0x90,0x42,0xB6,0xEF,0xF0,0x90,0x42,
+ 0xB6,0xE0,0x60,0xFA,0x90,0xF5,0xB6,0xE4,
+ 0xF0,0x90,0xF5,0xC2,0x04,0xF0,0x90,0xF5,
+ 0xB0,0xE4,0xF0,0x90,0xF5,0xC2,0xF0,0x22,
+ 0x90,0xF9,0x00,0xE0,0x70,0x0A,0x90,0x42,
+ 0xB1,0xF0,0xA3,0x74,0x32,0xF0,0x80,0x1B,
+ 0x90,0xF9,0x00,0xE0,0xB4,0x01,0x0B,0x90,
+ 0x42,0xB1,0xE4,0xF0,0xA3,0x74,0xC8,0xF0,
+ 0x80,0x09,0x90,0x42,0xB1,0xE4,0xF0,0xA3,
+ 0x74,0x64,0xF0,0x12,0x5C,0xDB,0x7F,0x01,
+ 0x12,0x6D,0xE8,0x90,0x42,0xB1,0xE4,0xF0,
+ 0xA3,0x74,0x1E,0xF0,0x12,0x5C,0xDB,0x90,
+ 0xF4,0x0C,0xE0,0x60,0x4E,0x90,0xF1,0xEB,
+ 0x74,0x01,0xF0,0xE4,0xF0,0x90,0xF9,0x00,
+ 0xE0,0x70,0x0A,0x90,0x42,0xB1,0xF0,0xA3,
+ 0x74,0x96,0xF0,0x80,0x1D,0x90,0xF9,0x00,
+ 0xE0,0xB4,0x01,0x0C,0x90,0x42,0xB1,0x74,
+ 0x02,0xF0,0xA3,0x74,0x58,0xF0,0x80,0x0A,
+ 0x90,0x42,0xB1,0x74,0x01,0xF0,0xA3,0x74,
+ 0x2C,0xF0,0x7F,0x01,0x12,0x6D,0xE8,0x12,
+ 0x5C,0xDB,0x90,0x42,0xB1,0xE4,0xF0,0xA3,
+ 0x74,0x1E,0xF0,0x7F,0x01,0x12,0x6D,0xE8,
+ 0x12,0x5C,0xDB,0x90,0xF4,0x0C,0xE0,0x60,
+ 0x10,0x90,0x41,0xDC,0x74,0x02,0xF0,0x90,
+ 0xF2,0x1C,0xF0,0xE4,0x90,0x43,0x3D,0xF0,
+ 0x22,0x90,0x41,0xDC,0x74,0x01,0xF0,0x90,
+ 0xF2,0x1C,0xF0,0x90,0x43,0x3D,0xF0,0xE4,
+ 0x90,0x42,0xAD,0xF0,0x90,0xF1,0xB5,0xE0,
+ 0x90,0x42,0xAE,0xF0,0x90,0xF1,0xB4,0xE0,
+ 0x90,0x42,0xAF,0xF0,0x90,0xF1,0xB3,0xE0,
+ 0x90,0x42,0xB0,0xF0,0x90,0x42,0xAD,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x90,0x42,0x9F,0xE0,0xF8,0xA3,
+ 0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,
+ 0xC3,0xEF,0x9B,0xFF,0xEE,0x9A,0xFE,0xED,
+ 0x99,0xFD,0xEC,0x98,0xFC,0x90,0x42,0xAD,
+ 0x12,0xAA,0x8F,0x7F,0xFF,0x7E,0xFF,0x7D,
+ 0x3F,0x7C,0x00,0x90,0x42,0xAD,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xD3,0x12,0xAA,0x2E,0x40,0x21,0x90,
+ 0x42,0xAD,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0x24,0x00,0xFF,0xE4,
+ 0x3E,0xFE,0xED,0x34,0x80,0xFD,0xEC,0x34,
+ 0xFF,0xFC,0x90,0x42,0xAD,0x12,0xAA,0x8F,
+ 0x90,0x42,0xAD,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,0x78,0x09,
+ 0x12,0xAA,0x68,0x90,0x42,0xAD,0x12,0xAA,
+ 0x8F,0x90,0x43,0x82,0xE0,0x60,0x04,0x7F,
+ 0x01,0x80,0x02,0x7F,0x00,0x90,0x42,0x23,
+ 0xE0,0x5F,0x70,0x0F,0x90,0xF1,0x33,0xE0,
+ 0x70,0x09,0x90,0xF1,0x35,0xE0,0x70,0x03,
+ 0x02,0x62,0x53,0xE4,0x90,0x42,0x9F,0xF0,
+ 0xA3,0xF0,0x90,0xF1,0x0F,0xE0,0x90,0x42,
+ 0xA1,0xF0,0x90,0xF1,0x0E,0xE0,0x90,0x42,
+ 0xA2,0xF0,0x90,0x42,0x9F,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x42,0xAD,0xE0,0xF8,0xA3,0xE0,0xF9,
+ 0xA3,0xE0,0xFA,0xA3,0xE0,0x2F,0xFF,0xEA,
+ 0x3E,0xFE,0xE9,0x3D,0xFD,0xE8,0x3C,0xFC,
+ 0x90,0x42,0x9F,0x12,0xAA,0x8F,0xE4,0xFF,
+ 0x7E,0x40,0xFD,0xFC,0x90,0x42,0x9F,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xC3,0x12,0xAA,0x2E,0x40,0x24,
+ 0x90,0x42,0x9F,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0x24,0x00,0xFF,
+ 0xEE,0x34,0xC0,0xFE,0xED,0x34,0xFF,0xFD,
+ 0xEC,0x34,0xFF,0xFC,0x90,0x42,0x9F,0x12,
+ 0xAA,0x8F,0x80,0x39,0xE4,0xFF,0xFE,0xFD,
+ 0xFC,0x90,0x42,0x9F,0xE0,0xF8,0xA3,0xE0,
+ 0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,
+ 0x12,0xAA,0x2E,0x50,0x20,0x90,0x42,0x9F,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,
+ 0xA3,0xE0,0x24,0x00,0xFF,0xEE,0x34,0x40,
+ 0xFE,0xE4,0x3D,0xFD,0xE4,0x3C,0xFC,0x90,
+ 0x42,0x9F,0x12,0xAA,0x8F,0x90,0x42,0xA2,
+ 0xE0,0x90,0xF1,0x0E,0xF0,0x90,0x42,0xA1,
+ 0xE0,0x90,0xF1,0x0F,0xF0,0xE4,0x90,0x42,
+ 0x9F,0xF0,0xA3,0xF0,0x90,0xF1,0x13,0xE0,
+ 0x90,0x42,0xA1,0xF0,0x90,0xF1,0x12,0xE0,
+ 0x90,0x42,0xA2,0xF0,0x90,0x42,0x9F,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x90,0x42,0xAD,0xE0,0xF8,0xA3,
+ 0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0x2F,
+ 0xFF,0xEA,0x3E,0xFE,0xE9,0x3D,0xFD,0xE8,
+ 0x3C,0xFC,0x90,0x42,0x9F,0x12,0xAA,0x8F,
+ 0xE4,0xFF,0x7E,0x40,0xFD,0xFC,0x90,0x42,
+ 0x9F,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xC3,0x12,0xAA,0x2E,
+ 0x40,0x24,0x90,0x42,0x9F,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0x24,
+ 0x00,0xFF,0xEE,0x34,0xC0,0xFE,0xED,0x34,
+ 0xFF,0xFD,0xEC,0x34,0xFF,0xFC,0x90,0x42,
+ 0x9F,0x12,0xAA,0x8F,0x80,0x39,0xE4,0xFF,
+ 0xFE,0xFD,0xFC,0x90,0x42,0x9F,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xC3,0x12,0xAA,0x2E,0x50,0x20,0x90,
+ 0x42,0x9F,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0x24,0x00,0xFF,0xEE,
+ 0x34,0x40,0xFE,0xE4,0x3D,0xFD,0xE4,0x3C,
+ 0xFC,0x90,0x42,0x9F,0x12,0xAA,0x8F,0x90,
+ 0x42,0xA2,0xE0,0x90,0xF1,0x12,0xF0,0x90,
+ 0x42,0xA1,0xE0,0x90,0xF1,0x13,0xF0,0x90,
+ 0x43,0x80,0xE0,0x70,0x05,0x90,0xF1,0x0A,
+ 0x04,0xF0,0xE4,0x90,0x42,0x9F,0xF0,0x90,
+ 0xF1,0xB5,0xE0,0x90,0x42,0xA0,0xF0,0x90,
+ 0xF1,0xB4,0xE0,0x90,0x42,0xA1,0xF0,0x90,
+ 0xF1,0xB3,0xE0,0x90,0x42,0xA2,0xF0,0x22,
+ 0x90,0x42,0x98,0xE0,0x70,0x1A,0xA3,0xE0,
+ 0x64,0x0C,0x60,0x05,0xE0,0x64,0x0D,0x70,
+ 0x22,0x90,0xF4,0x1B,0xE0,0xB4,0x0A,0x1B,
+ 0x90,0x42,0x98,0x74,0x01,0xF0,0x80,0x13,
+ 0x90,0x42,0x99,0xE0,0xB4,0x0C,0x0C,0x90,
+ 0xF4,0x1C,0xE0,0xB4,0x0A,0x05,0xE4,0x90,
+ 0x42,0x98,0xF0,0x90,0x42,0x98,0xE0,0xB4,
+ 0x01,0x19,0xA3,0xE0,0xB4,0x0C,0x14,0x90,
+ 0xF5,0xBA,0xE0,0xB4,0x01,0x0D,0x90,0x42,
+ 0x99,0x74,0x03,0xF0,0x90,0xF4,0x19,0xF0,
+ 0x02,0x63,0x75,0x90,0x42,0x98,0xE0,0xB4,
+ 0x01,0x0F,0xA3,0xE0,0xB4,0x0D,0x0A,0x74,
+ 0x03,0xF0,0x90,0xF4,0x19,0xF0,0x02,0x63,
+ 0x75,0x90,0x42,0x98,0xE0,0x70,0x15,0xA3,
+ 0xE0,0xB4,0x0C,0x10,0x90,0xF5,0xBA,0xE0,
+ 0xB4,0x01,0x09,0x90,0xF4,0x19,0x74,0x0C,
+ 0xF0,0x02,0x63,0x75,0x90,0x42,0x98,0xE0,
+ 0x70,0x16,0xA3,0xE0,0xB4,0x0C,0x11,0x90,
+ 0xF4,0x1C,0xE0,0xC3,0x94,0x0A,0x50,0x08,
+ 0x90,0xF4,0x19,0x74,0x0C,0xF0,0x80,0x64,
+ 0x90,0x42,0x98,0xE0,0x64,0x01,0x70,0x1C,
+ 0xA3,0xE0,0xB4,0x0C,0x17,0x90,0xF5,0xBA,
+ 0xE0,0x70,0x11,0x90,0xF4,0x1B,0xE0,0xC3,
+ 0x94,0x0A,0x50,0x08,0x90,0xF4,0x19,0x74,
+ 0x0C,0xF0,0x80,0x40,0x90,0x42,0x98,0xE0,
+ 0x64,0x01,0x70,0x1E,0xA3,0xE0,0xB4,0x0C,
+ 0x19,0x90,0xF5,0xBA,0xE0,0x70,0x13,0x90,
+ 0xF4,0x1B,0xE0,0xB4,0x0A,0x0C,0x90,0x42,
+ 0x99,0x74,0x03,0xF0,0x90,0xF4,0x19,0xF0,
+ 0x80,0x1A,0x90,0x42,0x99,0xE0,0xB4,0x0D,
+ 0x08,0x90,0xF4,0x19,0x74,0x0D,0xF0,0x80,
+ 0x0B,0x90,0x42,0x99,0xE0,0x04,0xF0,0xE0,
+ 0x90,0xF4,0x19,0xF0,0x90,0x42,0x99,0xE0,
+ 0x24,0xB8,0xF5,0x82,0xE4,0x34,0x42,0xF5,
+ 0x83,0xE0,0x90,0xF4,0x08,0xF0,0x90,0x42,
+ 0x99,0xE0,0x24,0xC6,0xF5,0x82,0xE4,0x34,
+ 0x42,0xF5,0x83,0xE0,0x90,0xF4,0x09,0xF0,
+ 0x90,0x42,0x99,0xE0,0x24,0xD4,0xF5,0x82,
+ 0xE4,0x34,0x42,0xF5,0x83,0xE0,0x90,0xF4,
+ 0x0A,0xF0,0x22,0x90,0x42,0x9B,0xE0,0x70,
+ 0x1A,0xA3,0xE0,0x64,0x0C,0x60,0x05,0xE0,
+ 0x64,0x0D,0x70,0x22,0x90,0xF5,0x68,0xE0,
+ 0xB4,0x0A,0x1B,0x90,0x42,0x9B,0x74,0x01,
+ 0xF0,0x80,0x13,0x90,0x42,0x9C,0xE0,0xB4,
+ 0x0C,0x0C,0x90,0xF5,0x69,0xE0,0xB4,0x05,
+ 0x05,0xE4,0x90,0x42,0x9B,0xF0,0x90,0x42,
+ 0x9B,0xE0,0xB4,0x01,0x19,0xA3,0xE0,0xB4,
+ 0x0C,0x14,0x90,0xF5,0xC1,0xE0,0xB4,0x01,
+ 0x0D,0x90,0x42,0x9C,0x74,0x03,0xF0,0x90,
+ 0xF5,0x66,0xF0,0x02,0x64,0xB0,0x90,0x42,
+ 0x9B,0xE0,0xB4,0x01,0x0F,0xA3,0xE0,0xB4,
+ 0x0D,0x0A,0x74,0x03,0xF0,0x90,0xF5,0x66,
+ 0xF0,0x02,0x64,0xB0,0x90,0x42,0x9B,0xE0,
+ 0x70,0x15,0xA3,0xE0,0xB4,0x0C,0x10,0x90,
+ 0xF5,0xC1,0xE0,0xB4,0x01,0x09,0x90,0xF5,
+ 0x66,0x74,0x0C,0xF0,0x02,0x64,0xB0,0x90,
+ 0x42,0x9B,0xE0,0x70,0x16,0xA3,0xE0,0xB4,
+ 0x0C,0x11,0x90,0xF5,0x69,0xE0,0xC3,0x94,
+ 0x05,0x50,0x08,0x90,0xF5,0x66,0x74,0x0C,
+ 0xF0,0x80,0x64,0x90,0x42,0x9B,0xE0,0x64,
+ 0x01,0x70,0x1C,0xA3,0xE0,0xB4,0x0C,0x17,
+ 0x90,0xF5,0xC1,0xE0,0x70,0x11,0x90,0xF5,
+ 0x68,0xE0,0xC3,0x94,0x0A,0x50,0x08,0x90,
+ 0xF5,0x66,0x74,0x0C,0xF0,0x80,0x40,0x90,
+ 0x42,0x9B,0xE0,0x64,0x01,0x70,0x1E,0xA3,
+ 0xE0,0xB4,0x0C,0x19,0x90,0xF5,0xC1,0xE0,
+ 0x70,0x13,0x90,0xF5,0x68,0xE0,0xB4,0x0A,
+ 0x0C,0x90,0x42,0x9C,0x74,0x03,0xF0,0x90,
+ 0xF5,0x66,0xF0,0x80,0x1A,0x90,0x42,0x9C,
+ 0xE0,0xB4,0x0D,0x08,0x90,0xF5,0x66,0x74,
+ 0x0D,0xF0,0x80,0x0B,0x90,0x42,0x9C,0xE0,
+ 0x04,0xF0,0xE0,0x90,0xF5,0x66,0xF0,0x90,
+ 0x42,0x9C,0xE0,0x25,0xE0,0x24,0xE2,0xF5,
+ 0x82,0xE4,0x34,0x42,0xF5,0x83,0xE0,0xA3,
+ 0xE0,0x90,0xF5,0x5B,0xF0,0x90,0x42,0x9C,
+ 0xE0,0x25,0xE0,0x24,0xFE,0xF5,0x82,0xE4,
+ 0x34,0x42,0xF5,0x83,0xE0,0xA3,0xE0,0x90,
+ 0xF5,0x5C,0xF0,0x90,0x42,0x9C,0xE0,0x25,
+ 0xE0,0x24,0x1A,0xF5,0x82,0xE4,0x34,0x43,
+ 0xF5,0x83,0xE0,0xA3,0xE0,0x90,0xF5,0x5D,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF4,0x60,
+ 0xE0,0x60,0x03,0x02,0x65,0x8F,0x90,0x41,
+ 0x96,0xE0,0x90,0xF4,0x03,0xF0,0x90,0x41,
+ 0x97,0xE0,0x90,0xF4,0x02,0xF0,0x90,0x41,
+ 0x98,0xE0,0x90,0xF4,0x01,0xF0,0x90,0x41,
+ 0x99,0xE0,0x90,0xF4,0x00,0xF0,0x90,0x41,
+ 0x9A,0xE0,0x90,0xF4,0x07,0xF0,0x90,0x41,
+ 0x9B,0xE0,0x90,0xF4,0x06,0xF0,0x90,0x41,
+ 0x9C,0xE0,0x90,0xF4,0x05,0xF0,0x90,0x41,
+ 0x9D,0xE0,0x90,0xF4,0x04,0xF0,0x12,0x67,
+ 0x0D,0x90,0xF9,0x01,0xE0,0x14,0x60,0x16,
+ 0x14,0x60,0x1F,0x14,0x60,0x28,0x24,0x03,
+ 0x70,0x2E,0x90,0xF5,0x59,0x74,0xFA,0xF0,
+ 0xA3,0x74,0x54,0xF0,0x80,0x22,0x90,0xF5,
+ 0x59,0x74,0x7A,0xF0,0xA3,0x74,0x52,0xF0,
+ 0x80,0x16,0x90,0xF5,0x59,0x74,0xE5,0xF0,
+ 0xA3,0x74,0x4D,0xF0,0x80,0x0A,0x90,0xF5,
+ 0x59,0x74,0x1B,0xF0,0xA3,0x74,0x46,0xF0,
+ 0x12,0x67,0x3D,0x90,0xF7,0x37,0x74,0xDC,
+ 0xF0,0xA3,0x74,0x05,0xF0,0x22,0x90,0xF4,
+ 0x60,0xE0,0x64,0x04,0x60,0x03,0x02,0x66,
+ 0x2A,0x90,0x41,0xAE,0xE0,0x90,0xF4,0x03,
+ 0xF0,0x90,0x41,0xAF,0xE0,0x90,0xF4,0x02,
+ 0xF0,0x90,0x41,0xB0,0xE0,0x90,0xF4,0x01,
+ 0xF0,0x90,0x41,0xB1,0xE0,0x90,0xF4,0x00,
+ 0xF0,0x90,0x41,0xB2,0xE0,0x90,0xF4,0x07,
+ 0xF0,0x90,0x41,0xB3,0xE0,0x90,0xF4,0x06,
+ 0xF0,0x90,0x41,0xB4,0xE0,0x90,0xF4,0x05,
+ 0xF0,0x90,0x41,0xB5,0xE0,0x90,0xF4,0x04,
+ 0xF0,0x12,0x67,0x2D,0x90,0xF9,0x01,0xE0,
+ 0x14,0x60,0x16,0x14,0x60,0x1F,0x14,0x60,
+ 0x28,0x24,0x03,0x70,0x2E,0x90,0xF5,0x59,
+ 0x74,0xA4,0xF0,0xA3,0x74,0x28,0xF0,0x80,
+ 0x22,0x90,0xF5,0x59,0x74,0x72,0xF0,0xA3,
+ 0x74,0x27,0xF0,0x80,0x16,0x90,0xF5,0x59,
+ 0x74,0x41,0xF0,0xA3,0x74,0x25,0xF0,0x80,
+ 0x0A,0x90,0xF5,0x59,0x74,0x87,0xF0,0xA3,
+ 0x74,0x21,0xF0,0x12,0x67,0x5C,0x90,0xF7,
+ 0x37,0x74,0xB8,0xF0,0xA3,0x74,0x0B,0xF0,
+ 0x22,0x90,0xF4,0x60,0xE0,0x24,0xFE,0x60,
+ 0x29,0x14,0x60,0x48,0x24,0x02,0x70,0x64,
+ 0x90,0x41,0x9E,0xE0,0x90,0xF4,0x03,0xF0,
+ 0x90,0x41,0x9F,0xE0,0x90,0xF4,0x02,0xF0,
+ 0x90,0x41,0xA0,0xE0,0x90,0xF4,0x01,0xF0,
+ 0x90,0x41,0xA1,0xE0,0x90,0xF4,0x00,0xF0,
+ 0x80,0x42,0x90,0x41,0xA2,0xE0,0x90,0xF4,
+ 0x03,0xF0,0x90,0x41,0xA3,0xE0,0x90,0xF4,
+ 0x02,0xF0,0x90,0x41,0xA4,0xE0,0x90,0xF4,
+ 0x01,0xF0,0x90,0x41,0xA5,0xE0,0x90,0xF4,
+ 0x00,0xF0,0x80,0x20,0x90,0x41,0xA6,0xE0,
+ 0x90,0xF4,0x03,0xF0,0x90,0x41,0xA7,0xE0,
+ 0x90,0xF4,0x02,0xF0,0x90,0x41,0xA8,0xE0,
+ 0x90,0xF4,0x01,0xF0,0x90,0x41,0xA9,0xE0,
+ 0x90,0xF4,0x00,0xF0,0x90,0x41,0xAA,0xE0,
+ 0x90,0xF4,0x07,0xF0,0x90,0x41,0xAB,0xE0,
+ 0x90,0xF4,0x06,0xF0,0x90,0x41,0xAC,0xE0,
+ 0x90,0xF4,0x05,0xF0,0x90,0x41,0xAD,0xE0,
+ 0x90,0xF4,0x04,0xF0,0x12,0x67,0x1D,0x90,
+ 0xF9,0x01,0xE0,0x14,0x60,0x16,0x14,0x60,
+ 0x1F,0x14,0x60,0x28,0x24,0x03,0x70,0x2E,
+ 0x90,0xF5,0x59,0x74,0x52,0xF0,0xA3,0x74,
+ 0x14,0xF0,0x80,0x22,0x90,0xF5,0x59,0x74,
+ 0xB9,0xF0,0xA3,0x74,0x13,0xF0,0x80,0x16,
+ 0x90,0xF5,0x59,0x74,0xA1,0xF0,0xA3,0x74,
+ 0x12,0xF0,0x80,0x0A,0x90,0xF5,0x59,0x74,
+ 0xC4,0xF0,0xA3,0x74,0x10,0xF0,0x12,0x67,
+ 0x4B,0x90,0xF7,0x37,0x74,0xB8,0xF0,0xA3,
+ 0x74,0x0B,0xF0,0x22,0x90,0xF4,0x08,0x74,
+ 0x99,0xF0,0xA3,0x74,0x02,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0x22,0x90,0xF4,0x08,0x74,
+ 0x99,0xF0,0xA3,0x74,0x02,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0x22,0x90,0xF4,0x08,0x74,
+ 0x99,0xF0,0xA3,0x74,0x02,0xF0,0xA3,0xE4,
+ 0xF0,0xA3,0xF0,0x22,0x90,0xF5,0x5B,0x74,
+ 0x60,0xF0,0xA3,0xE4,0xF0,0xA3,0xF0,0xA3,
+ 0xF0,0x22,0x90,0xF5,0x5B,0x74,0xFC,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x02,0xF0,0xA3,
+ 0xE4,0xF0,0x22,0x90,0xF5,0x5B,0xE4,0xF0,
+ 0xA3,0x74,0x03,0xF0,0xA3,0xE4,0xF0,0xA3,
+ 0xF0,0x22,0x90,0xFB,0x24,0xE4,0xF0,0x90,
+ 0x43,0x41,0xE0,0x90,0xFB,0x28,0xF0,0x22,
+ 0x90,0xFB,0x24,0x74,0x08,0xF0,0x90,0xFB,
+ 0x28,0x74,0x74,0xF0,0x22,0x90,0xFB,0x27,
+ 0xE0,0x54,0x1F,0xFF,0xC3,0x13,0xFF,0x90,
+ 0x41,0xDA,0x74,0x01,0xF0,0x90,0x43,0x41,
+ 0x74,0x82,0xF0,0x12,0x67,0x6B,0x90,0xFB,
+ 0x25,0x74,0x1F,0xF0,0xA3,0x74,0x22,0xF0,
+ 0x90,0xFB,0x29,0x74,0x42,0xF0,0x12,0x8E,
+ 0xE9,0x22,0x7E,0x41,0x7F,0x95,0xD3,0xEF,
+ 0x94,0x5D,0xEE,0x94,0x42,0x50,0x0D,0x8F,
+ 0x82,0x8E,0x83,0xE4,0xF0,0x0F,0xBF,0x00,
+ 0x01,0x0E,0x80,0xEA,0x12,0x67,0x86,0x12,
+ 0x47,0x82,0x90,0x41,0x8B,0x74,0x41,0xF0,
+ 0xA3,0x74,0x95,0xF0,0xE4,0x90,0x43,0x40,
+ 0xF0,0xD2,0xAF,0xD2,0xA8,0xC2,0xDB,0xD2,
+ 0xEC,0xF5,0x0F,0xF5,0x10,0x90,0x43,0x43,
+ 0xF0,0xA3,0xF0,0x90,0x43,0x3A,0xF0,0x90,
+ 0x41,0xD6,0x04,0xF0,0x90,0x41,0xE4,0x74,
+ 0x03,0xF0,0xE4,0x90,0x41,0xE5,0xF0,0xF5,
+ 0xF8,0x75,0xB8,0x12,0xD2,0x88,0xD2,0xEB,
+ 0x90,0x43,0x38,0xF0,0x90,0x41,0xD5,0xF0,
+ 0x90,0x43,0x3F,0x04,0xF0,0xE4,0x90,0x41,
+ 0xEB,0xF0,0x90,0x41,0xEA,0x04,0xF0,0x90,
+ 0x41,0xEF,0xF0,0x90,0x41,0xF0,0x04,0xF0,
+ 0xE4,0x90,0x41,0xF1,0xF0,0x90,0x41,0xF2,
+ 0xF0,0x90,0x42,0x12,0x04,0xF0,0x90,0x41,
+ 0xCF,0x74,0x10,0xF0,0x90,0x41,0xD0,0x74,
+ 0x27,0xF0,0x90,0x41,0xFA,0x74,0x50,0xF0,
+ 0x90,0x41,0xCE,0x74,0x01,0xF0,0x90,0x42,
+ 0x24,0x74,0x20,0xF0,0x90,0x42,0x25,0x74,
+ 0x2C,0xF0,0x90,0x42,0x26,0x74,0x01,0xF0,
+ 0x90,0x42,0x20,0x74,0x07,0xF0,0x90,0x42,
+ 0x21,0xF0,0x90,0x42,0x22,0x14,0xF0,0xE4,
+ 0x90,0x43,0x82,0xF0,0x90,0xF6,0x2E,0x74,
+ 0x64,0xF0,0xE4,0x90,0x43,0xBB,0xF0,0x90,
+ 0x41,0xE0,0x04,0xF0,0x90,0x43,0xF4,0x12,
+ 0xAA,0x9B,0x00,0x00,0x00,0x00,0xE4,0x90,
+ 0x41,0xF7,0xF0,0x90,0x41,0xF8,0xF0,0x90,
+ 0x41,0xF9,0xF0,0x90,0x41,0xC4,0x04,0xF0,
+ 0x90,0x41,0xCC,0x74,0x10,0xF0,0x90,0x41,
+ 0xCD,0x74,0x27,0xF0,0x7F,0x1B,0x12,0x89,
+ 0x23,0x90,0xFB,0x9F,0xE0,0x90,0x42,0x4E,
+ 0xF0,0x90,0xFB,0xA0,0xE0,0x90,0x44,0xB1,
+ 0xF0,0x12,0xA4,0x13,0x22,0x90,0x43,0x38,
+ 0xE0,0x70,0x05,0x90,0x43,0x3D,0xF0,0x22,
+ 0x90,0x43,0x3D,0x74,0x01,0xF0,0x22,0x90,
+ 0x41,0xDA,0xE0,0xB4,0x01,0x0B,0x90,0xF0,
+ 0x7F,0x74,0x01,0xF0,0xA3,0xE4,0xF0,0x80,
+ 0x08,0x90,0xF0,0x7F,0xE4,0xF0,0xA3,0x04,
+ 0xF0,0x90,0x43,0xC3,0x74,0x01,0xF0,0xE4,
+ 0x90,0x41,0xD5,0xF0,0x90,0xF7,0x3C,0xE0,
+ 0x60,0x09,0xE4,0x90,0x41,0xD2,0xF0,0x90,
+ 0x41,0xD1,0xF0,0xE4,0x90,0x43,0xBF,0xF0,
+ 0xA3,0xF0,0x90,0x43,0xC1,0xF0,0xA3,0xF0,
+ 0x90,0x43,0xF8,0x04,0xF0,0x12,0x4E,0x89,
+ 0x12,0x9F,0x6A,0x90,0x41,0xEA,0xE0,0x70,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,
+ 0x42,0x9E,0xEF,0xF0,0x12,0x72,0x21,0x90,
+ 0x43,0x42,0x74,0x01,0xF0,0xE4,0x90,0x43,
+ 0x40,0xF0,0x90,0xF7,0x31,0xE0,0xB4,0x01,
+ 0x03,0x12,0x9C,0xC3,0xE4,0x90,0x43,0x3E,
+ 0xF0,0x12,0xA5,0x0A,0x90,0x43,0x3D,0x74,
+ 0x01,0xF0,0x22,0x90,0xF1,0xEA,0xE4,0xF0,
+ 0x90,0xF1,0xEF,0xF0,0x90,0xF1,0xF2,0xF0,
+ 0x90,0xF0,0x7C,0xF0,0x90,0xF1,0xFB,0xF0,
+ 0x90,0xF1,0xF7,0xF0,0x90,0xF1,0xE8,0x04,
+ 0xF0,0x90,0xF1,0xEB,0xF0,0x90,0xF1,0xF0,
+ 0xF0,0x90,0xF1,0xF3,0xF0,0x90,0xF0,0x7D,
+ 0xF0,0x90,0xF1,0xFA,0xF0,0x90,0xF1,0xF6,
+ 0xF0,0x90,0xF1,0xF8,0xE4,0xF0,0x90,0xF1,
+ 0xFC,0x74,0x03,0xF0,0x90,0xF1,0xE8,0xE4,
+ 0xF0,0x90,0xF1,0xEB,0xF0,0x90,0xF1,0xF0,
+ 0xF0,0x90,0xF1,0xF3,0xF0,0x90,0xF0,0x7D,
+ 0xF0,0x90,0xF1,0xFA,0xF0,0x90,0xF1,0xF6,
+ 0xF0,0x90,0xF1,0xEA,0x04,0xF0,0x90,0xF1,
+ 0xEF,0xF0,0x90,0xF1,0xF2,0xF0,0x90,0xF0,
+ 0x7C,0xF0,0x90,0xF1,0xF7,0xF0,0x90,0xF1,
+ 0xFB,0xF0,0x90,0xF5,0xC2,0xF0,0xE4,0xF0,
+ 0x22,0x12,0x69,0x64,0x90,0xF1,0x4E,0x74,
+ 0x3F,0xF0,0x90,0xF1,0x85,0xE4,0xF0,0x90,
+ 0xF1,0x47,0xF0,0xA3,0xF0,0x90,0x42,0x11,
+ 0xE0,0x64,0x01,0x60,0x08,0xE4,0x90,0x43,
+ 0x81,0xF0,0x12,0x72,0x42,0x90,0x43,0x81,
+ 0x74,0x01,0xF0,0x90,0x43,0x3D,0xF0,0x22,
+ 0x7F,0xD4,0x7E,0x27,0x12,0x47,0x76,0x90,
+ 0xF1,0x48,0x74,0x01,0xF0,0x90,0xF0,0x92,
+ 0xE4,0xF0,0x90,0xF0,0x91,0x04,0xF0,0x90,
+ 0xF0,0x94,0xF0,0x90,0xF0,0x81,0xF0,0x90,
+ 0xF0,0x91,0xE4,0xF0,0xA3,0x04,0xF0,0x90,
+ 0xF0,0x94,0xE0,0xB4,0x01,0xF9,0x90,0xF1,
+ 0xFB,0xE4,0xF0,0x90,0xF1,0xFA,0x04,0xF0,
+ 0x90,0xF1,0xFD,0xF0,0x90,0xF1,0xFC,0xF0,
+ 0x90,0xF1,0xFA,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0x90,0xF1,0xFD,0xE0,0xB4,0x01,0xF9,0x90,
+ 0xF1,0xF7,0xE4,0xF0,0x90,0xF1,0xF6,0x04,
+ 0xF0,0x90,0xF1,0xF9,0xF0,0x90,0xF1,0xF8,
+ 0x04,0xF0,0x90,0xF2,0x14,0x14,0xF0,0x90,
+ 0xF1,0xF6,0xE4,0xF0,0xA3,0x04,0xF0,0x90,
+ 0xF1,0xF9,0xE0,0xB4,0x01,0xF9,0x90,0x43,
+ 0x3D,0x74,0x01,0xF0,0x22,0x90,0x41,0xD5,
+ 0xE0,0x70,0x04,0xFF,0x12,0x5C,0x30,0x12,
+ 0x64,0xF6,0x7F,0x01,0x12,0x5C,0x30,0x90,
+ 0xF6,0x24,0xE0,0xD3,0x94,0x04,0x40,0x0F,
+ 0xE4,0x90,0x41,0xDC,0xF0,0x90,0xF2,0x1C,
+ 0xF0,0x90,0x43,0x3D,0x04,0xF0,0x22,0x90,
+ 0x43,0x3D,0x74,0x01,0xF0,0x22,0x90,0xF1,
+ 0x48,0xE4,0xF0,0x90,0xF0,0x81,0x74,0x03,
+ 0xF0,0x90,0xF1,0xFC,0xF0,0x90,0xF5,0xAF,
+ 0xE4,0xF0,0x04,0xF0,0x90,0xF5,0xB4,0xE0,
+ 0xB4,0x01,0xF9,0x90,0xF5,0xAF,0xE4,0xF0,
+ 0x90,0x43,0x3D,0x04,0xF0,0x22,0x90,0xF4,
+ 0x13,0xE4,0xF0,0x12,0x5F,0x39,0x22,0x90,
+ 0xF4,0x1A,0x74,0x0D,0xF0,0x90,0xF4,0x10,
+ 0x74,0x08,0xF0,0x90,0xF4,0x18,0xF0,0x90,
+ 0xF5,0x61,0x74,0x06,0xF0,0xE4,0x90,0x42,
+ 0x6D,0xF0,0x90,0x42,0x98,0xF0,0x90,0x42,
+ 0x9A,0xF0,0x90,0x42,0x9B,0xF0,0x90,0x42,
+ 0x9D,0xF0,0x90,0x42,0x99,0xF0,0x90,0x42,
+ 0x9C,0xF0,0x90,0x42,0x96,0x04,0xF0,0x90,
+ 0xF5,0xBD,0xF0,0x90,0xF5,0xBB,0xF0,0x90,
+ 0xF5,0xBD,0xE4,0xF0,0x90,0xF5,0xBF,0x04,
+ 0xF0,0x90,0x42,0x97,0xF0,0x90,0xF5,0xB3,
+ 0xF0,0x90,0xF5,0xB1,0xF0,0x90,0xF5,0xB3,
+ 0xE4,0xF0,0x90,0xF5,0xB2,0x04,0xF0,0xD2,
+ 0xE9,0x22,0x90,0xF5,0xA8,0xE4,0xF0,0x04,
+ 0xF0,0x75,0xF0,0x02,0xE5,0x0F,0xA4,0x24,
+ 0x79,0xF5,0x82,0xE5,0xF0,0x34,0xAD,0xF5,
+ 0x83,0xE4,0x93,0xFC,0x74,0x01,0x93,0xFD,
+ 0xE4,0xFF,0x12,0x47,0xAD,0x90,0xF5,0xA9,
+ 0xE0,0x64,0x01,0x60,0x04,0x7F,0x01,0x80,
+ 0x02,0x7F,0x00,0x90,0xF1,0x1A,0xE0,0x5F,
+ 0x70,0xEB,0x90,0xF5,0xA9,0xE0,0xB4,0x01,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,
+ 0x43,0x3D,0xEF,0xF0,0xE0,0x64,0x01,0x70,
+ 0x40,0x90,0xF4,0xCC,0xE0,0xFF,0x90,0xF9,
+ 0x08,0xF0,0x90,0xF4,0xC1,0xE0,0xFF,0x90,
+ 0xF9,0x03,0xF0,0x90,0xF4,0xC4,0xE0,0xFF,
+ 0x90,0xF9,0x06,0xF0,0x90,0xF4,0xC5,0xE0,
+ 0xFF,0x90,0xF9,0x07,0xF0,0x90,0xF4,0xC6,
+ 0xE0,0x54,0x03,0xFF,0x90,0xF9,0x02,0xF0,
+ 0x70,0x05,0x90,0xF9,0x05,0x04,0xF0,0x90,
+ 0x41,0xD5,0x74,0x01,0xF0,0x90,0xF7,0x2F,
+ 0xF0,0x12,0x6E,0x8F,0x22,0x12,0x9A,0x04,
+ 0xE4,0x90,0x44,0x46,0xF0,0x90,0x44,0x42,
+ 0xF0,0xA3,0xF0,0x12,0x95,0xF5,0x90,0x44,
+ 0x41,0x74,0x01,0xF0,0x90,0x43,0x80,0xE0,
+ 0x60,0x0A,0x90,0xF1,0x2F,0x74,0x01,0xF0,
+ 0x90,0xF1,0x0A,0xF0,0x90,0x44,0x48,0x74,
+ 0x01,0xF0,0x12,0x97,0x17,0x12,0x70,0x6A,
+ 0x12,0x52,0x4E,0x12,0x51,0x31,0xE4,0xFF,
+ 0x12,0x50,0xFA,0x90,0xFD,0x32,0xE0,0x90,
+ 0xFD,0x92,0xF0,0x90,0xFD,0x31,0xE0,0x90,
+ 0xFD,0x91,0xF0,0x90,0xF2,0x1B,0x74,0x09,
+ 0xF0,0xE4,0xFF,0x12,0x83,0xDD,0x90,0xF2,
+ 0x1B,0x74,0x0A,0xF0,0x85,0x2C,0x2C,0x90,
+ 0xFD,0xA1,0xE0,0x60,0x03,0x12,0xA5,0x81,
+ 0x7F,0x04,0x12,0x6D,0xE8,0x90,0xF5,0x3B,
+ 0x74,0x01,0xF0,0xE4,0xFF,0x12,0x50,0xFA,
+ 0x12,0x72,0x21,0x90,0x43,0x3F,0xE0,0x60,
+ 0x21,0x90,0xF7,0x3C,0xE0,0x70,0x16,0x90,
+ 0xF7,0x40,0xF0,0x90,0xF5,0x54,0x04,0xF0,
+ 0xE4,0x90,0x44,0x9B,0xF0,0x90,0x44,0x9A,
+ 0xE0,0x90,0xF5,0x52,0xF0,0xE4,0x90,0x43,
+ 0x3B,0xF0,0x90,0x41,0xD1,0x74,0x01,0xF0,
+ 0x90,0x42,0x46,0xF0,0x12,0x93,0x38,0x7F,
+ 0x0A,0x12,0x6D,0xE8,0x90,0xF7,0x8E,0x74,
+ 0x01,0xF0,0x90,0x43,0xF8,0xF0,0x85,0x2C,
+ 0x2C,0x12,0xA6,0x09,0xE5,0x2D,0x70,0x7B,
+ 0x90,0x42,0x45,0xE0,0x60,0x75,0x90,0x43,
+ 0x42,0xE0,0x60,0x6F,0x90,0xF0,0x2B,0xE0,
+ 0x60,0x69,0x90,0xF6,0x08,0xE0,0x70,0x63,
+ 0xC2,0xEB,0x90,0xF7,0x8B,0x74,0x02,0xF0,
+ 0x7F,0x01,0x12,0x86,0xB2,0x90,0x42,0x37,
+ 0xE0,0x90,0x43,0x36,0xF0,0x90,0xFD,0xA5,
+ 0x74,0x01,0xF0,0x90,0x43,0x3E,0xF0,0x90,
+ 0xFD,0x29,0xF0,0x7F,0x08,0x12,0x6D,0xE8,
+ 0x7F,0x01,0x12,0x86,0xB2,0x90,0x42,0x37,
+ 0xE0,0xFF,0x90,0x43,0x36,0xE0,0xC3,0x9F,
+ 0x40,0x0F,0x90,0xFD,0xA5,0xE4,0xF0,0x90,
+ 0xFD,0x29,0xF0,0x90,0x43,0x3E,0xF0,0x80,
+ 0x0E,0x90,0xFD,0xA5,0x74,0x01,0xF0,0x90,
+ 0xFD,0x29,0xF0,0x90,0x43,0x3E,0xF0,0xE4,
+ 0x90,0x43,0x42,0xF0,0x90,0xF7,0x8B,0x04,
+ 0xF0,0xD2,0xEB,0x12,0x6E,0x75,0x90,0xF7,
+ 0x3C,0xE0,0x70,0x03,0x12,0xA7,0x34,0x90,
+ 0xF7,0x31,0xE0,0x60,0x05,0x7F,0x01,0x12,
+ 0x9C,0x29,0x12,0x91,0x6A,0x90,0xF2,0x1B,
+ 0x74,0x0B,0xF0,0x22,0x90,0x43,0x3D,0x74,
+ 0x01,0xF0,0xF5,0x0F,0x22,0x90,0x41,0xD6,
+ 0xE0,0x70,0x1D,0x90,0xF9,0x57,0xE0,0x54,
+ 0xFD,0x44,0x02,0xF0,0x90,0x41,0xD6,0x74,
+ 0x01,0xF0,0xE4,0x90,0x43,0x3A,0xF0,0x90,
+ 0x43,0x38,0xF0,0xA3,0xF0,0xF5,0x0F,0x22,
+ 0x90,0x43,0x39,0xE0,0x60,0x68,0x90,0x43,
+ 0x3D,0xE0,0xB4,0x01,0x0C,0xE5,0x0F,0x90,
+ 0xAD,0x5B,0x93,0xF5,0x0F,0xE4,0xF5,0x10,
+ 0x22,0xE5,0x0F,0x70,0x05,0xF5,0x0F,0xF5,
+ 0x10,0x22,0xE5,0x0F,0x90,0xAD,0x8D,0x93,
+ 0xB5,0x10,0x1C,0x90,0x43,0x43,0xE0,0xB5,
+ 0x0F,0x05,0x75,0x0F,0x01,0x80,0x0C,0x90,
+ 0x43,0x43,0xE5,0x0F,0xF0,0x90,0xAD,0x6F,
+ 0x93,0xF5,0x0F,0xE4,0xF5,0x10,0x22,0xE5,
+ 0x0F,0x90,0xAD,0x65,0x93,0xFF,0xB5,0x0F,
+ 0x03,0x05,0x10,0x22,0x90,0x43,0x44,0xE0,
+ 0xB5,0x0F,0x08,0x90,0xAD,0x6F,0x93,0xF5,
+ 0x0F,0x80,0x08,0x90,0x43,0x44,0xE5,0x0F,
+ 0xF0,0x8F,0x0F,0xE4,0xF5,0x10,0x22,0x90,
+ 0xF5,0x38,0xE0,0xFD,0xEF,0x60,0x0D,0x90,
+ 0xF5,0x38,0xE0,0xFE,0x6D,0x60,0xF5,0xAD,
+ 0x06,0x1F,0x80,0xF0,0x22,0xA2,0xAF,0xE4,
+ 0x33,0x90,0x43,0x37,0xF0,0x90,0xF7,0x14,
+ 0xE0,0x60,0x31,0x90,0xF7,0x32,0xE0,0x70,
+ 0x06,0x90,0xF7,0x3C,0xE0,0x60,0x25,0xC2,
+ 0xAF,0x90,0xF7,0x14,0xE4,0xF0,0x7F,0xD4,
+ 0x7E,0x27,0x12,0x47,0x76,0x90,0xF9,0x9D,
+ 0x74,0x01,0xF0,0x90,0xF7,0x16,0xF0,0x90,
+ 0xF7,0x11,0xE4,0xF0,0x90,0x43,0x37,0xE0,
+ 0x24,0xFF,0x92,0xAF,0x22,0xA2,0xAF,0xE4,
+ 0x33,0xFF,0xC2,0xAF,0x90,0xF7,0x14,0xE0,
+ 0x70,0x24,0x90,0xF7,0x32,0xE0,0x70,0x06,
+ 0x90,0xF7,0x3C,0xE0,0x60,0x18,0x90,0xF9,
+ 0x9D,0xE4,0xF0,0x90,0xF7,0x14,0x04,0xF0,
+ 0x90,0xF7,0x0D,0xF0,0x90,0xF7,0x86,0xF0,
+ 0xA3,0xF0,0x90,0xF7,0x11,0xF0,0xEF,0x24,
+ 0xFF,0x92,0xAF,0x22,0x90,0x42,0x46,0xE0,
+ 0x70,0x0C,0x90,0x42,0x47,0xE0,0x60,0x0A,
+ 0x90,0x44,0x97,0xE0,0x60,0x04,0x12,0x6E,
+ 0x3E,0x22,0x12,0x6D,0xFE,0x22,0x90,0xF1,
+ 0x0F,0xE0,0xFE,0x90,0xF1,0x0E,0xE0,0x7C,
+ 0x00,0x24,0x00,0xFF,0xEC,0x3E,0x90,0x43,
+ 0x45,0xF0,0xA3,0xEF,0xF0,0x90,0xF1,0x13,
+ 0xE0,0xFE,0x90,0xF1,0x12,0xE0,0x24,0x00,
+ 0xFF,0xEC,0x3E,0x90,0x43,0x47,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0xF1,0x10,0xE0,0x64,0x01,
+ 0x60,0x03,0x02,0x6F,0x5C,0x90,0xF1,0x14,
+ 0xE0,0x64,0x01,0x60,0x03,0x02,0x6F,0x5C,
+ 0xD3,0x90,0x43,0x46,0xE0,0x94,0x10,0x90,
+ 0x43,0x45,0xE0,0x94,0x35,0x40,0x0C,0xA3,
+ 0xE0,0x94,0x30,0x90,0x43,0x45,0xE0,0x94,
+ 0x38,0x40,0x1B,0xD3,0x90,0x43,0x48,0xE0,
+ 0x94,0x10,0x90,0x43,0x47,0xE0,0x94,0x35,
+ 0x40,0x61,0xA3,0xE0,0x94,0x30,0x90,0x43,
+ 0x47,0xE0,0x94,0x38,0x50,0x55,0x90,0xF4,
+ 0xC1,0xE0,0x64,0x01,0x70,0x25,0x90,0xF9,
+ 0x00,0xE0,0x70,0x0C,0x90,0xF5,0x4B,0x74,
+ 0x05,0xF0,0x90,0xF6,0x55,0x74,0x20,0xF0,
+ 0x90,0xF9,0x00,0xE0,0xB4,0x01,0x0C,0x90,
+ 0xF5,0x4B,0x74,0x04,0xF0,0x90,0xF6,0x55,
+ 0x74,0x10,0xF0,0x90,0xF4,0xC1,0xE0,0x64,
+ 0x02,0x70,0x2C,0x90,0xF9,0x00,0xE0,0x70,
+ 0x06,0x90,0xF5,0x4B,0x74,0x09,0xF0,0x90,
+ 0xF9,0x00,0xE0,0xB4,0x01,0x06,0x90,0xF5,
+ 0x4B,0x74,0x08,0xF0,0x90,0xF6,0x55,0x74,
+ 0x20,0xF0,0x22,0x90,0xF5,0x4B,0x74,0x14,
+ 0xF0,0x90,0xF6,0x55,0x74,0x20,0xF0,0x22,
+ 0x12,0x70,0x49,0x12,0x47,0xCC,0x12,0x67,
+ 0xB3,0x90,0x43,0x50,0x74,0x01,0xF0,0xFB,
+ 0x7A,0x43,0x79,0x49,0x12,0xAC,0xE2,0xEF,
+ 0x4E,0x60,0x10,0x7A,0x47,0x79,0xCB,0x12,
+ 0xAA,0xCC,0x7A,0x47,0x79,0xCB,0x12,0xAA,
+ 0xCC,0xD2,0xAF,0x90,0xF2,0x1B,0xE4,0xF0,
+ 0x90,0x43,0x50,0xE0,0x70,0xFA,0x12,0x6E,
+ 0x75,0x90,0x43,0x50,0xE0,0x70,0xFA,0xE5,
+ 0x0F,0xB4,0x0A,0x00,0x40,0x03,0x02,0x70,
+ 0x39,0x90,0x6F,0xB9,0xF8,0x28,0x28,0x73,
+ 0x02,0x6F,0xD7,0x02,0x6F,0xDC,0x02,0x6F,
+ 0xE1,0x02,0x6F,0xE6,0x02,0x6F,0xEB,0x02,
+ 0x6F,0xF0,0x02,0x6F,0xF5,0x02,0x6F,0xFA,
+ 0x02,0x70,0x1A,0x02,0x70,0x34,0x12,0x68,
+ 0xCE,0x80,0x60,0x12,0x68,0xE0,0x80,0x5B,
+ 0x12,0x8F,0x6A,0x80,0x56,0x12,0x69,0xE2,
+ 0x80,0x51,0x12,0x6A,0x11,0x80,0x4C,0x12,
+ 0x6A,0x8E,0x80,0x47,0x12,0x6A,0xBF,0x80,
+ 0x42,0x90,0xF5,0x05,0x74,0x01,0xF0,0x90,
+ 0x44,0xA1,0xF0,0x12,0x6A,0xE7,0x90,0x43,
+ 0x3D,0xE0,0xB4,0x01,0x05,0x7F,0x01,0x12,
+ 0x5C,0x30,0x7F,0x01,0x12,0x6D,0xE8,0x80,
+ 0x22,0x12,0xA5,0xCE,0x85,0x2C,0x2C,0x90,
+ 0xF5,0x05,0xE4,0xF0,0x90,0x43,0x3D,0xE0,
+ 0xB4,0x01,0x10,0x12,0xA6,0x73,0x12,0x6B,
+ 0xE6,0x80,0x08,0x12,0x93,0x7B,0x80,0x03,
+ 0x12,0x6D,0x4D,0x12,0x9B,0xC3,0x12,0x6D,
+ 0x56,0x12,0x6E,0x75,0x02,0x6F,0xA2,0x22,
+ 0x90,0xFB,0x87,0xE0,0x60,0xFA,0x90,0xFB,
+ 0x9E,0xE0,0xB4,0x04,0x05,0xA3,0xE0,0xFF,
+ 0x80,0x02,0x7F,0x00,0x90,0x43,0x51,0xEF,
+ 0xF0,0x90,0xFB,0x87,0xE4,0xF0,0xC2,0xDB,
+ 0x22,0x90,0xF9,0x05,0xE0,0x60,0x0A,0x90,
+ 0xF4,0xC4,0xE0,0x90,0x43,0x53,0xF0,0x80,
+ 0x08,0x90,0xF4,0xC5,0xE0,0x90,0x43,0x53,
+ 0xF0,0x90,0x43,0x53,0xE0,0x14,0x60,0x20,
+ 0x14,0x60,0x2F,0x14,0x60,0x3D,0x14,0x60,
+ 0x4B,0x24,0x04,0x70,0x57,0x90,0xF7,0x7F,
+ 0x74,0xE0,0xF0,0xA3,0x74,0x01,0xF0,0xA3,
+ 0x74,0xBB,0xF0,0xA3,0x74,0x01,0xF0,0x22,
+ 0x90,0xF7,0x7F,0x74,0x40,0xF0,0xA3,0x74,
+ 0x01,0xF0,0xA3,0x74,0x55,0xF0,0xA3,0xE4,
+ 0xF0,0x22,0x90,0xF7,0x7F,0x74,0xFA,0xF0,
+ 0xA3,0xE4,0xF0,0xA3,0x74,0x30,0xF0,0xA3,
+ 0xE4,0xF0,0x22,0x90,0xF7,0x7F,0x74,0xF5,
+ 0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x15,0xF0,
+ 0xA3,0xE4,0xF0,0x22,0x90,0xF7,0x7F,0x74,
+ 0xA0,0xF0,0xA3,0xE4,0xF0,0xA3,0x74,0x15,
+ 0xF0,0xA3,0xE4,0xF0,0x22,0x90,0x44,0xB2,
+ 0xE0,0x70,0x03,0x02,0x72,0x20,0x90,0xF0,
+ 0x2B,0xE0,0x70,0x16,0x90,0xF5,0x3E,0xE0,
+ 0xD3,0x94,0x20,0x40,0x0D,0x90,0xF2,0x17,
+ 0x74,0xFE,0xF0,0x90,0xF7,0x87,0x74,0x01,
+ 0xF0,0x22,0x90,0xF7,0x32,0xE0,0x64,0x01,
+ 0x70,0x2D,0x90,0x42,0x37,0xE0,0xFE,0x90,
+ 0x44,0x9C,0xE0,0xFD,0xD3,0x9E,0x40,0x05,
+ 0xED,0x9E,0xFF,0x80,0x0C,0x90,0x44,0x9C,
+ 0xE0,0xFE,0x90,0x42,0x37,0xE0,0xC3,0x9E,
+ 0xFF,0xEF,0xC3,0x94,0x0A,0x50,0x08,0x90,
+ 0x44,0x9C,0xE0,0x90,0x42,0x37,0xF0,0x90,
+ 0x42,0x37,0xE0,0xFE,0xC3,0x94,0x23,0x50,
+ 0x07,0x90,0xF2,0x17,0x74,0xFE,0xF0,0x22,
+ 0xEE,0xC3,0x94,0x28,0x50,0x13,0x90,0xF2,
+ 0x17,0xE0,0xB4,0xFE,0x05,0xE0,0x64,0xA6,
+ 0x60,0x07,0x90,0xF2,0x17,0x74,0xFE,0xF0,
+ 0x22,0x90,0x42,0x37,0xE0,0xC3,0x94,0x2D,
+ 0x50,0x13,0x90,0xF2,0x17,0xE0,0xB4,0xFE,
+ 0x05,0xE0,0x64,0xA6,0x60,0x07,0x90,0xF2,
+ 0x17,0x74,0xA6,0xF0,0x22,0x90,0x42,0x37,
+ 0xE0,0xFE,0xC3,0x94,0x37,0x50,0x07,0x90,
+ 0xF2,0x17,0x74,0xA6,0xF0,0x22,0xEE,0xC3,
+ 0x94,0x3C,0x50,0x13,0x90,0xF2,0x17,0xE0,
+ 0xB4,0xA6,0x05,0xE0,0x64,0x26,0x60,0x07,
+ 0x90,0xF2,0x17,0x74,0xA6,0xF0,0x22,0x90,
+ 0x42,0x37,0xE0,0xC3,0x94,0x41,0x50,0x13,
+ 0x90,0xF2,0x17,0xE0,0xB4,0xA6,0x05,0xE0,
+ 0x64,0x26,0x60,0x07,0x90,0xF2,0x17,0x74,
+ 0x26,0xF0,0x22,0x90,0x42,0x37,0xE0,0xFE,
+ 0xC3,0x94,0x4B,0x50,0x07,0x90,0xF2,0x17,
+ 0x74,0x26,0xF0,0x22,0xEE,0xC3,0x94,0x50,
+ 0x50,0x13,0x90,0xF2,0x17,0xE0,0xB4,0x26,
+ 0x05,0xE0,0x64,0x25,0x60,0x07,0x90,0xF2,
+ 0x17,0x74,0x26,0xF0,0x22,0x90,0x42,0x37,
+ 0xE0,0xC3,0x94,0x55,0x50,0x13,0x90,0xF2,
+ 0x17,0xE0,0xB4,0x26,0x05,0xE0,0x64,0x25,
+ 0x60,0x07,0x90,0xF2,0x17,0x74,0x25,0xF0,
+ 0x22,0x90,0xF2,0x17,0x74,0x25,0xF0,0x22,
+ 0x90,0xF2,0x17,0x74,0xFE,0xF0,0x22,0xE4,
+ 0x90,0x42,0x2F,0xF0,0x90,0xF7,0x83,0x74,
+ 0xAA,0xF0,0xA3,0xE4,0xF0,0x22,0x90,0xF1,
+ 0x75,0x74,0x01,0xF0,0x90,0xF1,0x0A,0xF0,
+ 0x22,0x90,0x43,0x5D,0x74,0x01,0xF0,0xA3,
+ 0x04,0xF0,0xA3,0xF0,0x90,0x44,0x97,0xE0,
+ 0x60,0x04,0x7F,0x00,0x80,0x05,0x90,0x42,
+ 0x23,0xE0,0xFF,0x90,0x43,0x60,0xEF,0xF0,
+ 0x85,0x2C,0x2C,0x85,0x2C,0x2C,0x90,0x43,
+ 0x81,0xE0,0x14,0x70,0x03,0x02,0x72,0xFE,
+ 0x04,0x60,0x03,0x02,0x73,0x30,0x90,0x43,
+ 0x60,0xE0,0x60,0x09,0xE4,0xFD,0x7F,0x02,
+ 0x12,0x5C,0x4D,0x80,0x35,0x90,0x41,0xD5,
+ 0xE0,0xB4,0x01,0x23,0x90,0xF9,0x01,0xE0,
+ 0x90,0x43,0x5F,0xF0,0x90,0xF9,0x00,0xE0,
+ 0xFF,0x90,0x43,0x5D,0xF0,0x60,0x0B,0xA3,
+ 0x74,0x02,0xF0,0xA3,0xE0,0x24,0x02,0xF0,
+ 0x80,0x05,0xE4,0x90,0x43,0x5E,0xF0,0x90,
+ 0x43,0x5E,0xE0,0xFF,0xA3,0xE0,0xFD,0x12,
+ 0x5C,0x4D,0x90,0xF4,0x63,0xE4,0xF0,0x90,
+ 0xF4,0x69,0x74,0xFB,0xF0,0xA3,0xE4,0xF0,
+ 0x90,0xF4,0x6D,0x74,0x05,0xF0,0x7F,0x01,
+ 0x12,0x5C,0x30,0x12,0x6A,0x11,0x90,0x43,
+ 0x60,0xE0,0xFF,0x60,0x06,0x90,0xF9,0x00,
+ 0x74,0x01,0xF0,0x90,0xF5,0xC2,0x74,0x01,
+ 0xF0,0xE4,0xF0,0xEF,0x60,0x0F,0xE4,0x90,
+ 0x42,0x40,0xF0,0x04,0x12,0x77,0x03,0x90,
+ 0x42,0x40,0xE0,0x60,0x32,0x90,0xF1,0x57,
+ 0xE0,0x60,0x08,0x90,0xF1,0x49,0x74,0x01,
+ 0xF0,0xE4,0xF0,0x7D,0xFF,0x7C,0x7F,0xE4,
+ 0xFF,0x12,0x47,0xAD,0x90,0xF1,0x82,0xE0,
+ 0x70,0x15,0x90,0xF1,0x57,0xE0,0x60,0x0F,
+ 0x90,0x42,0x62,0xE0,0xB4,0x01,0x08,0x90,
+ 0xF1,0x7C,0xE0,0x60,0xE7,0x80,0xE5,0xE4,
+ 0x90,0x42,0x9F,0xF0,0x90,0xF1,0xB5,0xE0,
+ 0x90,0x42,0xA0,0xF0,0x90,0xF1,0xB4,0xE0,
+ 0x90,0x42,0xA1,0xF0,0x90,0xF1,0xB3,0xE0,
+ 0x90,0x42,0xA2,0xF0,0x22,0x90,0x43,0x6B,
+ 0x12,0xAA,0x9B,0x00,0x00,0x00,0x00,0x90,
+ 0x43,0x6F,0x12,0xAA,0x9B,0x00,0x00,0x00,
+ 0x00,0xE4,0x90,0x43,0x92,0xF0,0xA3,0xF0,
+ 0x90,0x43,0x94,0xF0,0xA3,0xF0,0x90,0x43,
+ 0x83,0xE0,0xFF,0xA3,0xE0,0x90,0x43,0x61,
+ 0xCF,0xF0,0xA3,0xEF,0xF0,0x90,0x43,0x85,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0xD3,0x90,0x43,
+ 0x62,0xE0,0x9F,0x90,0x43,0x61,0xE0,0x9E,
+ 0x40,0x03,0x02,0x74,0xD6,0xA3,0xE0,0x90,
+ 0xF6,0x67,0xF0,0x90,0x43,0x61,0xE0,0x90,
+ 0xF6,0x68,0xF0,0x90,0xF6,0x66,0x74,0x01,
+ 0xF0,0x90,0xF6,0x66,0xE0,0xB4,0x01,0xF9,
+ 0x90,0xF6,0x30,0xE0,0x54,0x0F,0xFB,0xA3,
+ 0xE0,0x75,0xF0,0x10,0xA4,0xFF,0x90,0xF6,
+ 0x30,0xE0,0xFD,0xC4,0x54,0x0F,0x7C,0x00,
+ 0x2F,0xFF,0xEC,0x35,0xF0,0xFE,0xE4,0xFD,
+ 0x90,0x43,0x63,0x12,0xAA,0x8F,0xEB,0xB4,
+ 0x0F,0x16,0x90,0x43,0x63,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x43,0x67,0x12,0xAA,0x8F,0x80,0x25,
+ 0x90,0x43,0x63,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0x24,0x00,0xFF,
+ 0xEE,0x34,0x10,0xFE,0xE4,0x3D,0xFD,0xE4,
+ 0x3C,0xFC,0xA8,0x03,0x12,0xAA,0x7C,0x90,
+ 0x43,0x67,0x12,0xAA,0x8F,0x90,0x43,0x6B,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0x67,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xD3,0x12,0xAA,0x44,0x40,0x48,0x90,
+ 0x43,0x6B,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x43,0x6F,
+ 0x12,0xAA,0x8F,0x90,0x43,0x92,0xE0,0xFF,
+ 0xA3,0xE0,0x90,0x43,0x94,0xCF,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0x43,0x67,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x43,0x6B,0x12,0xAA,0x8F,0x90,0x43,
+ 0x61,0xE0,0xFF,0xA3,0xE0,0x90,0x43,0x92,
+ 0xCF,0xF0,0xA3,0xEF,0xF0,0x80,0x45,0x90,
+ 0x43,0x6F,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x43,0x67,
+ 0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0xD3,0x12,0xAA,0x44,0x40,
+ 0x23,0x90,0x43,0x67,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,
+ 0x43,0x6F,0x12,0xAA,0x8F,0x90,0x43,0x61,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x43,0x94,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x43,0x62,0xE0,
+ 0x04,0xF0,0x70,0x06,0x90,0x43,0x61,0xE0,
+ 0x04,0xF0,0x02,0x73,0x7E,0x22,0x90,0x41,
+ 0xB9,0xE0,0xFE,0x90,0x41,0xB8,0xE0,0x7C,
+ 0x00,0x24,0x00,0xFF,0xEC,0x3E,0x90,0x43,
+ 0x73,0xF0,0xA3,0xEF,0xF0,0xE4,0x7F,0x50,
+ 0x7E,0x0D,0xFD,0x90,0x43,0x8B,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xC3,0x12,0xAA,0x44,0x40,0x24,0x90,
+ 0x43,0x8B,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0x24,0xB0,0xFF,0xEE,
+ 0x34,0xF2,0xFE,0xED,0x34,0xFF,0xFD,0xEC,
+ 0x34,0xFF,0xFC,0x90,0x43,0x87,0x12,0xAA,
+ 0x8F,0x80,0x23,0x90,0x43,0x8B,0xE0,0xF8,
+ 0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xC3,0x74,0x50,0x9B,0xFF,0x74,0x0D,
+ 0x9A,0xFE,0xE4,0x99,0xFD,0xE4,0x98,0xFC,
+ 0x90,0x43,0x87,0x12,0xAA,0x8F,0x90,0x43,
+ 0x73,0xE0,0xFE,0xA3,0xE0,0xFF,0xE4,0xFC,
+ 0xFD,0x90,0x43,0x87,0xE0,0xF8,0xA3,0xE0,
+ 0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0x12,
+ 0xA9,0xD1,0x78,0x09,0x12,0xAA,0x55,0x90,
+ 0x43,0x87,0x12,0xAA,0x8F,0xE4,0x7F,0x50,
+ 0x7E,0x0D,0xFD,0xFC,0x90,0x43,0x8B,0xE0,
+ 0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,0xA3,
+ 0xE0,0xFB,0xC3,0x12,0xAA,0x44,0x50,0x22,
+ 0x90,0x43,0x87,0xE0,0xF8,0xA3,0xE0,0xF9,
+ 0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,0xE4,
+ 0x9B,0xFF,0x74,0x40,0x9A,0xFE,0xE4,0x99,
+ 0xFD,0xE4,0x98,0xFC,0x90,0x43,0x87,0x12,
+ 0xAA,0x8F,0x22,0x90,0x41,0xB7,0xE0,0xFE,
+ 0x90,0x41,0xB6,0xE0,0x7C,0x00,0x24,0x00,
+ 0xFF,0xEC,0x3E,0xFE,0xE4,0xFD,0x90,0x43,
+ 0x87,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0x12,0xA9,0xD1,0x78,
+ 0x09,0x12,0xAA,0x55,0x90,0x43,0x8B,0x12,
+ 0xAA,0x8F,0x22,0x74,0xFF,0x90,0x43,0x77,
+ 0xF0,0xA3,0xF0,0x90,0x43,0x83,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0xC3,0x90,0x43,0x86,0xE0,
+ 0x9F,0xFF,0x90,0x43,0x85,0xE0,0x9E,0xFE,
+ 0x90,0x42,0x21,0xE0,0xFD,0x7C,0x00,0x12,
+ 0xA9,0x34,0x90,0x42,0x20,0xE0,0xFD,0xEF,
+ 0xA8,0x05,0x08,0x80,0x05,0xCE,0xC3,0x13,
+ 0xCE,0x13,0xD8,0xF9,0xFF,0x90,0x42,0x22,
+ 0xE0,0x2F,0x90,0x43,0x75,0xF0,0x90,0x43,
+ 0x82,0xE0,0x70,0x16,0x12,0x73,0x4E,0x90,
+ 0x43,0x92,0xE0,0xFE,0xA3,0xE0,0xFF,0xE4,
+ 0xFC,0xFD,0x90,0x43,0x8B,0x12,0xAA,0x8F,
+ 0x80,0x3F,0x90,0x43,0x82,0xE0,0xB4,0x01,
+ 0x16,0x12,0x73,0x4E,0x90,0x43,0x92,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0xE4,0xFC,0xFD,0x90,
+ 0x43,0x8B,0x12,0xAA,0x8F,0x80,0x22,0x90,
+ 0x43,0x85,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,
+ 0x43,0x84,0xE0,0x2F,0xFF,0x90,0x43,0x83,
+ 0xE0,0x3E,0xC3,0x13,0xFE,0xEF,0x13,0xFF,
+ 0xE4,0xFC,0xFD,0x90,0x43,0x8B,0x12,0xAA,
+ 0x8F,0x12,0x74,0xD7,0x90,0x43,0x84,0xE0,
+ 0x24,0xB0,0xF0,0x90,0x43,0x83,0xE0,0x34,
+ 0x02,0xF0,0x90,0x43,0x86,0xE0,0x24,0xB0,
+ 0xF0,0x90,0x43,0x85,0xE0,0x34,0x02,0xF0,
+ 0x90,0x43,0x82,0xE0,0xFF,0x70,0x20,0x90,
+ 0x43,0x75,0xE0,0xA3,0xF0,0x90,0xF1,0x09,
+ 0xF0,0x90,0x43,0x8A,0xE0,0x90,0xF1,0x0E,
+ 0xF0,0x90,0x43,0x89,0xE0,0x90,0xF1,0x0F,
+ 0xF0,0xA3,0x74,0x01,0xF0,0x80,0x34,0xEF,
+ 0x64,0x01,0x70,0x2F,0x90,0x43,0x8F,0xE0,
+ 0x70,0x0A,0x90,0x43,0x75,0xE0,0x90,0xF1,
+ 0x0B,0xF0,0x80,0x0B,0x90,0x43,0x76,0xE0,
+ 0xFF,0xC3,0x13,0x90,0xF1,0x0B,0xF0,0x90,
+ 0x43,0x8A,0xE0,0x90,0xF1,0x12,0xF0,0x90,
+ 0x43,0x89,0xE0,0x90,0xF1,0x13,0xF0,0xA3,
+ 0x74,0x01,0xF0,0x90,0x43,0x82,0xE0,0x04,
+ 0xF0,0x22,0xE4,0x90,0x43,0x8F,0xF0,0x90,
+ 0x43,0x82,0xF0,0x90,0x42,0x25,0xE0,0x90,
+ 0x43,0x7A,0xF0,0x90,0x42,0x26,0xE0,0x90,
+ 0x43,0x79,0xF0,0x90,0xF6,0x25,0xE4,0xF0,
+ 0x90,0x42,0x24,0xE0,0x90,0xF6,0x26,0xF0,
+ 0x90,0xF6,0x2B,0x74,0x02,0xF0,0xA3,0xF0,
+ 0xA3,0xE4,0xF0,0x90,0xF6,0x25,0x04,0xF0,
+ 0x90,0xF6,0x2F,0xF0,0x90,0xF6,0x2F,0xE0,
+ 0xB4,0x01,0xF9,0x90,0xF6,0x32,0xE0,0x90,
+ 0x43,0x91,0xF0,0x90,0xF6,0x33,0xE0,0x90,
+ 0x43,0x90,0xF0,0x90,0x43,0x79,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0xC3,0x90,0x43,0x91,0xE0,
+ 0x9F,0x90,0x43,0x90,0xE0,0x9E,0x40,0x03,
+ 0x02,0x7A,0x09,0x90,0x43,0x79,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0xC3,0x90,0x43,0x91,0xE0,
+ 0x9F,0x90,0x43,0x90,0xE0,0x9E,0x50,0x3A,
+ 0x90,0xF6,0x2C,0xE0,0xB4,0x02,0x05,0x74,
+ 0x01,0xF0,0x80,0x0A,0x90,0xF6,0x2B,0xE0,
+ 0x04,0xF0,0xA3,0x74,0x02,0xF0,0x90,0xF6,
+ 0x2F,0x74,0x01,0xF0,0x90,0xF6,0x2F,0xE0,
+ 0xB4,0x01,0xF9,0x90,0xF6,0x32,0xE0,0x90,
+ 0x43,0x91,0xF0,0x90,0xF6,0x33,0xE0,0x90,
+ 0x43,0x90,0xF0,0x90,0xF6,0x2B,0xE0,0xB4,
+ 0x0F,0xB1,0x90,0x42,0x27,0xE0,0xFF,0x90,
+ 0xF6,0x2B,0xE0,0xC3,0x9F,0x40,0x04,0x7F,
+ 0x01,0x80,0x02,0x7F,0x00,0x90,0x43,0x80,
+ 0xEF,0xF0,0x60,0x5C,0x90,0xF1,0x2F,0xE4,
+ 0xF0,0x90,0xF1,0x34,0x04,0xF0,0x90,0xF1,
+ 0x37,0x74,0x10,0xF0,0xA3,0x74,0x06,0xF0,
+ 0x90,0xF1,0x3B,0x74,0x60,0xF0,0xA3,0x74,
+ 0x1A,0xF0,0x90,0xF1,0x3F,0x74,0xC0,0xF0,
+ 0xA3,0x74,0x2D,0xF0,0x90,0xF1,0x33,0x74,
+ 0x01,0xF0,0x90,0xF1,0x36,0x74,0x0D,0xF0,
+ 0x90,0xF1,0x39,0x74,0x10,0xF0,0xA3,0x74,
+ 0x18,0xF0,0x90,0xF1,0x3D,0x74,0x60,0xF0,
+ 0xA3,0x74,0x1B,0xF0,0x90,0xF1,0x41,0x74,
+ 0x40,0xF0,0xA3,0x74,0x3A,0xF0,0x90,0xF1,
+ 0x35,0x74,0x01,0xF0,0x90,0xF1,0x11,0xF0,
+ 0x90,0xF6,0x2B,0xE0,0x14,0xF0,0xC2,0xAF,
+ 0x90,0xF6,0x2D,0x74,0x01,0xF0,0x04,0x12,
+ 0xA7,0x90,0x90,0x42,0x40,0xE0,0x60,0x03,
+ 0x02,0x7A,0x26,0x90,0xF6,0x4C,0xE0,0x90,
+ 0x43,0x7C,0xF0,0x90,0xF6,0x4D,0xE0,0x90,
+ 0x43,0x7D,0xF0,0x90,0xF6,0x4E,0xE0,0x90,
+ 0x43,0x7E,0xF0,0x90,0xF6,0x4F,0xE0,0x90,
+ 0x43,0x7F,0xF0,0x90,0x43,0x7D,0xE0,0xFF,
+ 0x90,0x43,0x7C,0xE0,0xFE,0x6F,0x60,0x20,
+ 0x90,0x43,0x7E,0xE0,0xFD,0xEE,0x6D,0x60,
+ 0x17,0xA3,0xE0,0xFC,0xEE,0x6C,0x60,0x10,
+ 0xEF,0x6D,0x60,0x0C,0x90,0x43,0x7D,0xE0,
+ 0x6C,0x60,0x05,0xA3,0xE0,0xB5,0x04,0x06,
+ 0x90,0x43,0x8F,0x74,0x01,0xF0,0x90,0x43,
+ 0x7B,0x74,0x04,0xF0,0x90,0x43,0x7B,0xE0,
+ 0xFF,0xC3,0x94,0x06,0x40,0x03,0x02,0x7A,
+ 0x09,0x90,0xF6,0x4C,0xE0,0x6F,0x70,0x4B,
+ 0x90,0x43,0x8F,0xE0,0xB4,0x01,0x21,0x90,
+ 0x43,0x7B,0xE0,0xB4,0x05,0x1A,0x90,0x43,
+ 0x84,0x74,0xA0,0xF0,0x90,0x43,0x83,0x74,
+ 0x0F,0xF0,0x90,0x43,0x86,0x74,0x9F,0xF0,
+ 0x90,0x43,0x85,0x74,0x1A,0xF0,0x80,0x20,
+ 0x90,0xF6,0x34,0xE0,0x90,0x43,0x84,0xF0,
+ 0x90,0xF6,0x35,0xE0,0x90,0x43,0x83,0xF0,
+ 0x90,0xF6,0x36,0xE0,0x90,0x43,0x86,0xF0,
+ 0x90,0xF6,0x37,0xE0,0x90,0x43,0x85,0xF0,
+ 0x12,0x75,0xE4,0x90,0x43,0x7B,0xE0,0xFF,
+ 0x90,0xF6,0x4D,0xE0,0x6F,0x70,0x48,0x90,
+ 0x43,0x8F,0xE0,0xB4,0x01,0x1E,0xEF,0xB4,
+ 0x05,0x1A,0x90,0x43,0x84,0x74,0xA0,0xF0,
+ 0x90,0x43,0x83,0x74,0x0F,0xF0,0x90,0x43,
+ 0x86,0x74,0x9F,0xF0,0x90,0x43,0x85,0x74,
+ 0x1A,0xF0,0x80,0x20,0x90,0xF6,0x3A,0xE0,
+ 0x90,0x43,0x84,0xF0,0x90,0xF6,0x3B,0xE0,
+ 0x90,0x43,0x83,0xF0,0x90,0xF6,0x3C,0xE0,
+ 0x90,0x43,0x86,0xF0,0x90,0xF6,0x3D,0xE0,
+ 0x90,0x43,0x85,0xF0,0x12,0x75,0xE4,0x90,
+ 0x43,0x7B,0xE0,0xFF,0x90,0xF6,0x4E,0xE0,
+ 0x6F,0x70,0x48,0x90,0x43,0x8F,0xE0,0xB4,
+ 0x01,0x1E,0xEF,0xB4,0x05,0x1A,0x90,0x43,
+ 0x84,0x74,0xA0,0xF0,0x90,0x43,0x83,0x74,
+ 0x0F,0xF0,0x90,0x43,0x86,0x74,0x9F,0xF0,
+ 0x90,0x43,0x85,0x74,0x1A,0xF0,0x80,0x20,
+ 0x90,0xF6,0x40,0xE0,0x90,0x43,0x84,0xF0,
+ 0x90,0xF6,0x41,0xE0,0x90,0x43,0x83,0xF0,
+ 0x90,0xF6,0x42,0xE0,0x90,0x43,0x86,0xF0,
+ 0x90,0xF6,0x43,0xE0,0x90,0x43,0x85,0xF0,
+ 0x12,0x75,0xE4,0x90,0x43,0x7B,0xE0,0xFF,
+ 0x90,0xF6,0x4F,0xE0,0x6F,0x70,0x48,0x90,
+ 0x43,0x8F,0xE0,0xB4,0x01,0x1E,0xEF,0xB4,
+ 0x05,0x1A,0x90,0x43,0x84,0x74,0xA0,0xF0,
+ 0x90,0x43,0x83,0x74,0x0F,0xF0,0x90,0x43,
+ 0x86,0x74,0x9F,0xF0,0x90,0x43,0x85,0x74,
+ 0x1A,0xF0,0x80,0x20,0x90,0xF6,0x46,0xE0,
+ 0x90,0x43,0x84,0xF0,0x90,0xF6,0x47,0xE0,
+ 0x90,0x43,0x83,0xF0,0x90,0xF6,0x48,0xE0,
+ 0x90,0x43,0x86,0xF0,0x90,0xF6,0x49,0xE0,
+ 0x90,0x43,0x85,0xF0,0x12,0x75,0xE4,0x90,
+ 0x43,0x7B,0xE0,0x04,0xF0,0x02,0x78,0xA5,
+ 0x90,0xF6,0x25,0xE4,0xF0,0x90,0x43,0x80,
+ 0xE0,0x70,0x0D,0x90,0x43,0x82,0xE0,0xB4,
+ 0x01,0x06,0x90,0xF1,0x0A,0x74,0x01,0xF0,
+ 0x7F,0x01,0x12,0x6D,0xE8,0x22,0xE4,0xFD,
+ 0x90,0xF5,0xF7,0xE0,0xFE,0x90,0xF5,0xF6,
+ 0xE0,0x7A,0x00,0x24,0x00,0xFF,0xEA,0x3E,
+ 0x90,0x43,0xDE,0xF0,0xA3,0xEF,0xF0,0x90,
+ 0x43,0xDE,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,
+ 0x94,0x40,0xEE,0x94,0x08,0x40,0x0A,0xD3,
+ 0xEF,0x94,0x60,0xEE,0x94,0x08,0x50,0x01,
+ 0x0D,0x90,0x41,0xF3,0xE0,0x64,0x02,0x70,
+ 0x45,0xED,0x64,0x01,0x70,0x40,0x90,0xF9,
+ 0x04,0xE0,0x64,0x01,0x70,0x38,0x90,0xF9,
+ 0x01,0xE0,0x64,0x03,0x70,0x30,0x90,0xF9,
+ 0x00,0xE0,0x64,0x01,0x70,0x28,0x90,0xF9,
+ 0x03,0xE0,0x64,0x02,0x70,0x20,0x90,0x43,
+ 0xE4,0xE0,0xFF,0x70,0x0B,0x90,0xF5,0x6C,
+ 0x74,0xE5,0xF0,0xA3,0x74,0x01,0xF0,0x22,
+ 0xEF,0xB4,0x01,0x0A,0x90,0xF5,0x6C,0x74,
+ 0x1B,0xF0,0xA3,0x74,0x02,0xF0,0x22,0x90,
+ 0x43,0xE2,0x74,0x01,0xF0,0x90,0x41,0xF3,
+ 0xE0,0xFF,0xD3,0x94,0x01,0x40,0x05,0xEF,
+ 0x14,0xFF,0x80,0x02,0x7F,0x01,0x90,0x43,
+ 0xE3,0xEF,0xF0,0x90,0xF6,0x6D,0x74,0x01,
+ 0xF0,0x90,0x41,0xF3,0xE0,0x90,0xF6,0x6C,
+ 0xF0,0x90,0xF6,0x69,0x74,0x01,0xF0,0xE4,
+ 0xF9,0x90,0x41,0xF3,0xE0,0xFE,0xE9,0xC3,
+ 0x9E,0x50,0x47,0xE9,0x25,0xE0,0x24,0xC5,
+ 0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,0xE0,
+ 0x90,0xF6,0x6B,0xF0,0xE9,0x25,0xE0,0x24,
+ 0xC6,0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,
+ 0xE0,0x90,0xF6,0x6A,0xF0,0xE9,0x25,0xE0,
+ 0x24,0xCD,0xF5,0x82,0xE4,0x34,0x43,0xF5,
+ 0x83,0xE0,0x90,0xF6,0x6B,0xF0,0xE9,0x25,
+ 0xE0,0x24,0xCE,0xF5,0x82,0xE4,0x34,0x43,
+ 0xF5,0x83,0xE0,0x90,0xF6,0x6A,0xF0,0x09,
+ 0x80,0xAF,0x90,0x42,0x12,0xE0,0xB4,0x01,
+ 0x46,0x90,0x43,0xBF,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0xC3,0x90,0x43,0xEA,0xE0,0x9D,0x90,
+ 0x43,0xE9,0xE0,0x9C,0x50,0x0E,0x90,0x43,
+ 0xBF,0xE0,0xA3,0xE0,0x90,0x43,0xE9,0xEC,
+ 0xF0,0xA3,0xED,0xF0,0x90,0x43,0xC1,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0xC3,0x90,0x43,0xEC,
+ 0xE0,0x9D,0x90,0x43,0xEB,0xE0,0x9C,0x50,
+ 0x0E,0x90,0x43,0xC1,0xE0,0xA3,0xE0,0x90,
+ 0x43,0xEB,0xEC,0xF0,0xA3,0xED,0xF0,0x79,
+ 0x01,0x90,0x41,0xF3,0xE0,0xFE,0xE9,0xC3,
+ 0x9E,0x50,0x79,0xE9,0x25,0xE0,0x24,0xCD,
+ 0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0x90,0x43,0xCD,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xC3,0xED,0x9B,0xFD,
+ 0xEC,0x9A,0xFC,0xD3,0x90,0x43,0xEA,0xE0,
+ 0x9D,0x90,0x43,0xE9,0xE0,0x9C,0x40,0x06,
+ 0xE9,0x04,0x90,0x43,0xE2,0xF0,0x90,0x43,
+ 0xE0,0xE0,0xFC,0xA3,0xE0,0xFD,0x90,0x43,
+ 0xCE,0xE0,0x2D,0xFD,0x90,0x43,0xCD,0xE0,
+ 0x3C,0xFC,0xC3,0xEE,0x99,0xFF,0x25,0xE0,
+ 0x24,0xCD,0xF5,0x82,0xE4,0x34,0x43,0xF5,
+ 0x83,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,0xED,
+ 0x9B,0xFD,0xEC,0x9A,0xFC,0xD3,0x90,0x43,
+ 0xEC,0xE0,0x9D,0x90,0x43,0xEB,0xE0,0x9C,
+ 0x40,0x06,0xEF,0x14,0x90,0x43,0xE3,0xF0,
+ 0x09,0x02,0x7B,0x7A,0x90,0x43,0xE3,0xE0,
+ 0xFF,0x90,0x43,0xE2,0xE0,0xFE,0xD3,0x9F,
+ 0x40,0x0F,0xEF,0x24,0x01,0xFD,0xE4,0x33,
+ 0xFC,0xEE,0xB5,0x05,0xE7,0xE4,0xB5,0x04,
+ 0xE3,0x90,0x41,0xF3,0xE0,0xFF,0xB4,0x01,
+ 0x0C,0xE4,0x90,0x43,0xE4,0xF0,0x90,0x43,
+ 0xDD,0x74,0x0C,0xF0,0x22,0x90,0x43,0xE3,
+ 0xE0,0xF9,0x24,0x01,0xFD,0xE4,0x33,0xFC,
+ 0x90,0x43,0xE2,0xE0,0xFE,0xB5,0x05,0x1E,
+ 0xE4,0xB5,0x04,0x1A,0xEE,0xB5,0x07,0x07,
+ 0xE4,0x90,0x43,0xE4,0xF0,0x80,0x08,0x90,
+ 0x43,0xE2,0xE0,0x90,0x43,0xE4,0xF0,0x90,
+ 0x43,0xDD,0x74,0x0C,0xF0,0x22,0xE9,0xFF,
+ 0x90,0x43,0xE2,0xE0,0x2F,0xFF,0xE4,0x33,
+ 0xA2,0xE7,0x13,0xEF,0x13,0x90,0x43,0xE5,
+ 0xF0,0x90,0x43,0xDD,0x74,0x06,0xF0,0x22,
+ 0x90,0x43,0xE5,0xE0,0xFE,0x90,0x43,0x9F,
+ 0xF0,0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0xA3,0xF0,0xA3,0xF0,0xA3,0xCE,0xF0,0xE4,
+ 0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0x90,0x43,0x9F,0xE0,0x04,0xFF,0x90,0x41,
+ 0xF3,0xE0,0xFE,0x2F,0x8E,0xF0,0x84,0xAF,
+ 0xF0,0x90,0x43,0x9F,0xEF,0xF0,0xA3,0xE0,
+ 0xFD,0xA3,0xE0,0xA3,0xCD,0xF0,0xA3,0xED,
+ 0xF0,0xEF,0x25,0xE0,0x24,0xCD,0xF5,0x82,
+ 0xE4,0x34,0x43,0xF5,0x83,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x90,0x43,0xE0,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xEF,0x2D,0xFF,0xEE,0x3C,0xFE,
+ 0x90,0x43,0xE5,0xE0,0x25,0xE0,0x24,0xCD,
+ 0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xC3,0xEF,0x9B,0xFF,
+ 0xEE,0x9A,0xFE,0xED,0x24,0x01,0xFD,0xE4,
+ 0x3C,0xFC,0x12,0xA9,0x9B,0x90,0x43,0xA0,
+ 0xEC,0xF0,0xA3,0xED,0xF0,0xD3,0x90,0x43,
+ 0xDC,0xE0,0x9D,0xEC,0x64,0x80,0xF8,0x90,
+ 0x43,0xDB,0xE0,0x64,0x80,0x98,0x50,0x80,
+ 0x90,0x41,0xF3,0xE0,0xFD,0x7C,0x00,0x90,
+ 0x43,0xA5,0xE0,0x2D,0xFF,0x90,0x43,0xA4,
+ 0xE0,0x3C,0xCF,0x24,0xFF,0xCF,0x34,0xFF,
+ 0xFE,0x12,0xA9,0x9B,0xEC,0xF0,0xA3,0xED,
+ 0xF0,0xA3,0xE0,0xFF,0xA3,0xE0,0xA3,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x43,0xA5,0xE0,
+ 0x25,0xE0,0xFF,0x90,0x43,0xA4,0xE0,0x33,
+ 0xFE,0x74,0xCD,0x2F,0xF5,0x82,0x74,0x43,
+ 0x3E,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x43,0xE5,0xE0,0x25,0xE0,0x24,0xCD,
+ 0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0x90,0x43,0xE0,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xED,0x2B,0xFD,0xEC,
+ 0x3A,0xCD,0xC3,0x9F,0xFF,0xED,0x9E,0xFE,
+ 0xEB,0x24,0x01,0xFD,0xE4,0x3A,0xFC,0x12,
+ 0xA9,0x9B,0x90,0x43,0xA6,0xEC,0xF0,0xA3,
+ 0xED,0xF0,0xD3,0x90,0x43,0xDC,0xE0,0x9D,
+ 0xEC,0x64,0x80,0xF8,0x90,0x43,0xDB,0xE0,
+ 0x64,0x80,0x98,0x40,0x03,0x02,0x7D,0x19,
+ 0x90,0x43,0xA2,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x43,0xA8,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0x9F,0xEE,0x64,0x80,0xF8,0xEC,0x64,0x80,
+ 0x98,0x40,0x08,0xA3,0xEC,0xF0,0xA3,0xED,
+ 0xF0,0x80,0x08,0x90,0x43,0xAA,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x43,0xA0,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0xA6,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xC3,0x9F,0xEE,0x64,0x80,
+ 0xF8,0xEC,0x64,0x80,0x98,0x50,0x2B,0x90,
+ 0x43,0xAC,0xEC,0xF0,0xA3,0xED,0xF0,0x90,
+ 0x41,0xF3,0xE0,0xFD,0x7C,0x00,0x90,0x43,
+ 0xA5,0xE0,0x2D,0xFF,0x90,0x43,0xA4,0xE0,
+ 0x3C,0xCF,0x24,0xFF,0xCF,0x34,0xFF,0xFE,
+ 0x12,0xA9,0x9B,0xEC,0xF0,0xA3,0xED,0xF0,
+ 0x80,0x24,0x90,0x43,0xA0,0xE0,0xFF,0xA3,
+ 0xE0,0x90,0x43,0xAC,0xCF,0xF0,0xA3,0xEF,
+ 0xF0,0x90,0x43,0x9F,0xE0,0x04,0xFF,0x90,
+ 0x41,0xF3,0xE0,0xFE,0x2F,0x8E,0xF0,0x84,
+ 0x90,0x43,0x9F,0xE5,0xF0,0xF0,0x90,0x43,
+ 0xAA,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x90,
+ 0x43,0xAD,0xE0,0x9F,0xFF,0x90,0x43,0xAC,
+ 0xE0,0x9E,0x90,0x43,0xAE,0xF0,0xA3,0xEF,
+ 0xF0,0xE4,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,
+ 0x90,0x43,0x9E,0xF0,0x90,0x43,0xE8,0xE0,
+ 0x75,0xF0,0x04,0xA4,0xFF,0xC3,0x90,0x43,
+ 0xAF,0xE0,0x9F,0xE5,0xF0,0x64,0x80,0xF8,
+ 0x90,0x43,0xAE,0xE0,0x64,0x80,0x98,0x40,
+ 0x03,0x02,0x80,0x4A,0x90,0x43,0xB0,0xE0,
+ 0x60,0x03,0x02,0x80,0x4A,0x90,0x43,0x9E,
+ 0xE0,0x94,0x14,0x40,0x17,0x90,0xF5,0xE7,
+ 0xE4,0xF0,0x90,0xF5,0xE1,0xF0,0xF5,0x0F,
+ 0x7B,0x01,0x7A,0x43,0x79,0x49,0x7D,0x01,
+ 0xFC,0x12,0xAD,0x13,0x90,0x43,0x9E,0xE0,
+ 0x04,0xF0,0x90,0x43,0xAC,0xE0,0xFF,0xA3,
+ 0xE0,0x90,0x43,0xAA,0xCF,0xF0,0xA3,0xEF,
+ 0xF0,0x90,0x43,0x9F,0xE0,0x25,0xE0,0x24,
+ 0xCD,0xF5,0x82,0xE4,0x34,0x43,0xF5,0x83,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x43,0xE0,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xEF,0x2D,0xFF,
+ 0xEE,0x3C,0xFE,0x90,0x43,0xE5,0xE0,0x25,
+ 0xE0,0x24,0xCD,0xF5,0x82,0xE4,0x34,0x43,
+ 0xF5,0x83,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,
+ 0xEF,0x9B,0xFF,0xEE,0x9A,0xFE,0xED,0x24,
+ 0x01,0xFD,0xE4,0x3C,0xFC,0x12,0xA9,0x9B,
+ 0x90,0x43,0xA0,0xEC,0xF0,0xA3,0xED,0xF0,
+ 0x90,0x43,0xA5,0xE0,0x25,0xE0,0xFF,0x90,
+ 0x43,0xA4,0xE0,0x33,0xFE,0x74,0xCD,0x2F,
+ 0xF5,0x82,0x74,0x43,0x3E,0xF5,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x43,0xE5,0xE0,
+ 0x25,0xE0,0x24,0xCD,0xF5,0x82,0xE4,0x34,
+ 0x43,0xF5,0x83,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0x90,0x43,0xE0,0xE0,0xFA,0xA3,0xE0,0xFB,
+ 0xED,0x2B,0xFD,0xEC,0x3A,0xCD,0xC3,0x9F,
+ 0xFF,0xED,0x9E,0xFE,0xEB,0x24,0x01,0xFD,
+ 0xE4,0x3A,0xFC,0x12,0xA9,0x9B,0x90,0x43,
+ 0xA6,0xEC,0xF0,0xA3,0xED,0xF0,0x90,0x43,
+ 0xA0,0xE0,0xFE,0xA3,0xE0,0xFF,0xC3,0x9D,
+ 0xEC,0x64,0x80,0xF8,0xEE,0x64,0x80,0x98,
+ 0x50,0x3F,0x90,0x43,0xAC,0xEE,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0x43,0xB2,0xE0,0x60,0x03,
+ 0x02,0x80,0x17,0x90,0x43,0xE5,0xE0,0xFF,
+ 0x90,0x43,0x9F,0xE0,0xFE,0xB5,0x07,0x04,
+ 0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,0x43,
+ 0xB2,0xEF,0xF0,0x70,0x69,0xEE,0x04,0xFF,
+ 0x90,0x41,0xF3,0xE0,0xFE,0x2F,0x8E,0xF0,
+ 0x84,0x90,0x43,0x9F,0xE5,0xF0,0xF0,0x80,
+ 0x55,0x90,0x43,0xA6,0xE0,0xFF,0xA3,0xE0,
+ 0x90,0x43,0xAC,0xCF,0xF0,0xA3,0xEF,0xF0,
+ 0x90,0x43,0xB1,0xE0,0x70,0x40,0x90,0x43,
+ 0xE5,0xE0,0xFF,0x7E,0x00,0x90,0x43,0xA4,
+ 0xE0,0xFA,0xA3,0xE0,0xFB,0xB5,0x07,0x08,
+ 0xEE,0xB5,0x02,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0x43,0xB1,0xEF,0xF0,0x70,
+ 0x1D,0x90,0x41,0xF3,0xE0,0xFD,0x7C,0x00,
+ 0x2B,0xFF,0xEC,0x3A,0xCF,0x24,0xFF,0xCF,
+ 0x34,0xFF,0xFE,0x12,0xA9,0x9B,0x90,0x43,
+ 0xA4,0xEC,0xF0,0xA3,0xED,0xF0,0x12,0xA8,
+ 0x04,0x05,0x2C,0x85,0x2C,0x2C,0x05,0x2C,
+ 0x85,0x2C,0x2C,0x05,0x2C,0x85,0x2C,0x2C,
+ 0x05,0x2C,0x85,0x2C,0x2C,0x05,0x2C,0x85,
+ 0x2C,0x2C,0x05,0x2C,0x85,0x2C,0x2C,0x05,
+ 0x2C,0x85,0x2C,0x2C,0x05,0x2C,0x85,0x2C,
+ 0x2C,0x05,0x2C,0x85,0x2C,0x2C,0x02,0x7E,
+ 0x6D,0x90,0x43,0xB0,0xE0,0x60,0x0F,0x90,
+ 0x43,0xDD,0x74,0x07,0xF0,0x90,0x43,0xED,
+ 0x74,0x01,0xF0,0x02,0x81,0x04,0x90,0x43,
+ 0xE8,0xE0,0xF9,0x25,0xE0,0xFF,0xE4,0x33,
+ 0xFE,0x90,0x43,0xDB,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0x90,0x43,0xAC,0xE0,0xFA,0xA3,0xE0,
+ 0xFB,0xC3,0x9D,0xFD,0xEA,0x9C,0xFC,0xC3,
+ 0xED,0x9F,0xEE,0x64,0x80,0xF8,0xEC,0x64,
+ 0x80,0x98,0x50,0x22,0xE9,0x75,0xF0,0x02,
+ 0xA4,0xFF,0x90,0x43,0xDC,0xE0,0x2F,0xFF,
+ 0x90,0x43,0xDB,0xE0,0x35,0xF0,0xFE,0xC3,
+ 0xEB,0x9F,0xFF,0xEA,0x9E,0x90,0x43,0xE6,
+ 0xF0,0xA3,0xEF,0xF0,0x80,0x55,0xE9,0x25,
+ 0xE0,0xFF,0xE4,0x33,0xFE,0x90,0x43,0xAA,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0x90,0x43,0xDB,
+ 0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,0x9D,0xFD,
+ 0xEA,0x9C,0xFC,0xC3,0xED,0x9F,0xEE,0x64,
+ 0x80,0xF8,0xEC,0x64,0x80,0x98,0x50,0x24,
+ 0xE9,0x25,0xE0,0xFF,0xE4,0x33,0xFE,0xEB,
+ 0x2F,0xFF,0xEA,0x3E,0xFE,0x90,0x43,0xAA,
+ 0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,0xEF,0x9D,
+ 0xFF,0xEE,0x9C,0x90,0x43,0xE6,0xF0,0xA3,
+ 0xEF,0xF0,0x80,0x07,0xE4,0x90,0x43,0xE6,
+ 0xF0,0xA3,0xF0,0x90,0x43,0xED,0x74,0x03,
+ 0xF0,0x90,0xF5,0xE6,0xF0,0x90,0x43,0xE6,
+ 0xE0,0xA2,0xE7,0x13,0xF0,0xA3,0xE0,0x13,
+ 0xF0,0x90,0x43,0xDD,0x74,0x07,0xF0,0x22,
+ 0xAD,0x07,0x90,0x43,0xEF,0xE0,0x90,0xF5,
+ 0xDB,0xF0,0x90,0x43,0xEE,0xE0,0xFF,0x33,
+ 0x95,0xE0,0x90,0xF5,0xDC,0xEF,0xF0,0x90,
+ 0x43,0xE4,0xE0,0x90,0xF5,0xFA,0xF0,0x90,
+ 0xF5,0xE8,0xE4,0xF0,0x90,0x43,0xDD,0xE0,
+ 0x90,0xF5,0xE1,0xF0,0x90,0xF5,0xE8,0xE0,
+ 0xB4,0x01,0xF9,0x90,0xF5,0xE8,0xE4,0xF0,
+ 0x90,0xF5,0xE1,0x74,0x0D,0xF0,0x90,0xF5,
+ 0xE8,0xE0,0xB4,0x01,0xF9,0x90,0x43,0xDD,
+ 0x74,0x0E,0xF0,0x90,0xF5,0xDD,0xE0,0x90,
+ 0x43,0xB4,0xF0,0x90,0xF5,0xDE,0xE0,0x90,
+ 0x43,0xB3,0xF0,0xE0,0xC3,0x94,0x20,0x40,
+ 0x04,0xE0,0x24,0xC0,0xF0,0xED,0xB4,0x01,
+ 0x1C,0x90,0x43,0xF0,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0x90,0x43,0xB4,0xE0,0x2F,0xFF,0x90,
+ 0x43,0xB3,0xE0,0x3E,0x90,0x43,0xF2,0xF0,
+ 0xA3,0xEF,0xF0,0x80,0x1F,0x90,0x43,0xB3,
+ 0xE0,0xFF,0xA3,0xE0,0x90,0x43,0xF2,0xCF,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0xF5,0xFB,0xE0,
+ 0x90,0x43,0xF1,0xF0,0x90,0xF5,0xFC,0xE0,
+ 0x90,0x43,0xF0,0xF0,0x90,0x43,0xF3,0xE0,
+ 0x90,0xF4,0x66,0xF0,0x90,0x43,0xF2,0xE0,
+ 0x90,0xF4,0x67,0xF0,0x90,0xF6,0x08,0xE0,
+ 0x90,0xFD,0x0F,0xF0,0x90,0xF6,0x08,0xE0,
+ 0xFF,0x13,0x13,0x13,0x54,0x1F,0x90,0xFD,
+ 0xA1,0xF0,0x90,0xF5,0xFC,0xE0,0xFE,0x90,
+ 0xF5,0xFB,0xE0,0x7C,0x00,0x24,0x00,0xFF,
+ 0xEC,0x3E,0xAD,0x07,0xFC,0x90,0xF5,0x3D,
+ 0xE0,0xFE,0x90,0xF5,0x3C,0xE0,0x7A,0x00,
+ 0x24,0x00,0xFF,0xEA,0x3E,0xFE,0xEF,0x2D,
+ 0xFD,0xEE,0x3C,0xFF,0x33,0x95,0xE0,0xA3,
+ 0xEF,0xF0,0xAF,0x05,0xEF,0x90,0xF5,0x3C,
+ 0xF0,0x22,0x90,0x43,0xED,0xE0,0xF9,0xB4,
+ 0x01,0x37,0x90,0x43,0xE5,0xE0,0x25,0xE0,
+ 0x24,0xCD,0xF5,0x82,0xE4,0x34,0x43,0xF5,
+ 0x83,0xE0,0xFC,0xA3,0xE0,0xFD,0x90,0x43,
+ 0xEE,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,0xED,
+ 0x9B,0xFD,0xEC,0x9A,0xFC,0x90,0x43,0xE7,
+ 0xE0,0x2D,0xFE,0x90,0x43,0xE6,0xE0,0x3C,
+ 0x90,0x43,0xB5,0xF0,0xA3,0xCE,0xF0,0x80,
+ 0x72,0xE9,0xB4,0x02,0x32,0x90,0x43,0xDB,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x43,0xE1,
+ 0xE0,0x2F,0xFF,0x90,0x43,0xE0,0xE0,0x3E,
+ 0xFE,0x90,0x43,0xE6,0xE0,0xFC,0xA3,0xE0,
+ 0xFD,0xC3,0xEF,0x9D,0xFF,0xEE,0x9C,0xFE,
+ 0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0x90,0x43,
+ 0xB5,0xF0,0xA3,0xEF,0xF0,0x80,0x3C,0x90,
+ 0x43,0xED,0xE0,0xB4,0x03,0x35,0x90,0x43,
+ 0xE5,0xE0,0x25,0xE0,0x24,0xCD,0xF5,0x82,
+ 0xE4,0x34,0x43,0xF5,0x83,0xE0,0xFE,0xA3,
+ 0xE0,0xFF,0x90,0x43,0xEE,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xC3,0xEF,0x9D,0xFF,0xEE,0x9C,
+ 0xFE,0x90,0x43,0xE7,0xE0,0x2F,0xFF,0x90,
+ 0x43,0xE6,0xE0,0x3E,0x90,0x43,0xB5,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x43,0xB5,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0xEF,0xE0,0x2F,
+ 0xF0,0x90,0x43,0xEE,0xE0,0x3E,0xF0,0x90,
+ 0x43,0xB6,0xE0,0x90,0xF4,0x66,0xF0,0x90,
+ 0x43,0xB5,0xE0,0x90,0xF4,0x67,0xF0,0x90,
+ 0x43,0xE7,0xE0,0x90,0xF5,0xF4,0xF0,0x90,
+ 0x43,0xE6,0xE0,0x90,0xF5,0xF5,0xF0,0x90,
+ 0x43,0xDD,0x74,0x08,0xF0,0x22,0x90,0xF5,
+ 0xEB,0xE0,0x90,0x43,0xB8,0xF0,0x90,0xF5,
+ 0xEC,0xE0,0x90,0x43,0xB7,0xF0,0x90,0xF5,
+ 0xED,0xE0,0x90,0x43,0xBA,0xF0,0x90,0xF5,
+ 0xEE,0xE0,0x90,0x43,0xB9,0xF0,0x90,0x43,
+ 0xED,0xE0,0xFF,0xB4,0x01,0x0A,0x74,0x02,
+ 0xF0,0x90,0x43,0xDD,0x74,0x07,0xF0,0x22,
+ 0xEF,0x64,0x02,0x60,0x08,0xEF,0x64,0x03,
+ 0x60,0x03,0x02,0x83,0xDC,0x90,0x43,0xE3,
+ 0xE0,0xFF,0x90,0x43,0xE2,0xE0,0xFE,0x6F,
+ 0x70,0x2C,0x90,0xF5,0xE9,0xE0,0x70,0x07,
+ 0x90,0x43,0xE4,0xEE,0xF0,0x80,0x18,0x90,
+ 0x41,0xF3,0xE0,0x14,0xB5,0x06,0x07,0xE4,
+ 0x90,0x43,0xE4,0xF0,0x80,0x09,0x90,0x43,
+ 0xE2,0xE0,0x04,0x90,0x43,0xE4,0xF0,0x90,
+ 0x43,0xDD,0x74,0x0C,0xF0,0x22,0x90,0xF5,
+ 0xE9,0xE0,0x70,0x18,0x90,0x43,0xE2,0xE0,
+ 0xFF,0x90,0x43,0xE5,0xE0,0xB5,0x07,0x0C,
+ 0x90,0x43,0xE4,0xEF,0xF0,0x90,0x43,0xDD,
+ 0x74,0x0C,0xF0,0x22,0x90,0xF5,0xE9,0xE0,
+ 0x70,0x0B,0x90,0x43,0xE5,0xE0,0x14,0x90,
+ 0x43,0xE3,0xF0,0x80,0x09,0x90,0x43,0xE5,
+ 0xE0,0x04,0x90,0x43,0xE2,0xF0,0x90,0x43,
+ 0xE3,0xE0,0xFF,0x90,0x43,0xE2,0xE0,0x2F,
+ 0xFF,0xC3,0x13,0x90,0x43,0xE5,0xF0,0x90,
+ 0x43,0xED,0x74,0x03,0xF0,0x90,0x43,0xDD,
+ 0x74,0x06,0xF0,0x22,0x90,0x43,0xBC,0xEF,
+ 0xF0,0xC2,0xEB,0xE4,0x90,0x43,0xE9,0xF0,
+ 0xA3,0xF0,0x90,0xF9,0x01,0xE0,0xD3,0x94,
+ 0x01,0x50,0x0A,0x90,0x43,0xE9,0x74,0x05,
+ 0xF0,0xA3,0x74,0x55,0xF0,0x90,0xF9,0x01,
+ 0xE0,0x24,0x06,0xFF,0x74,0x01,0x7E,0x00,
+ 0xA8,0x07,0x08,0x80,0x05,0xC3,0x33,0xCE,
+ 0x33,0xCE,0xD8,0xF9,0x90,0x43,0xDC,0xF0,
+ 0xEE,0x90,0x43,0xDB,0xF0,0x90,0xF9,0x00,
+ 0xE0,0x70,0x34,0x90,0x43,0xE0,0x74,0x02,
+ 0xF0,0xA3,0x74,0xAB,0xF0,0x90,0x43,0xE8,
+ 0x74,0x28,0xF0,0x90,0x43,0xBE,0x74,0x05,
+ 0xF0,0x90,0xF5,0xEF,0x74,0x28,0xF0,0x90,
+ 0x43,0xE9,0xE0,0xFE,0xA3,0xE0,0x78,0x02,
+ 0xCE,0xC3,0x13,0xCE,0x13,0xD8,0xF9,0xF0,
+ 0xEE,0x90,0x43,0xE9,0xF0,0x80,0x6F,0x90,
+ 0xF9,0x00,0xE0,0xB4,0x01,0x34,0x90,0x43,
+ 0xE0,0x74,0x0A,0xF0,0xA3,0x74,0xAB,0xF0,
+ 0x90,0x43,0xE8,0x74,0x50,0xF0,0x90,0x43,
+ 0xBE,0x74,0x12,0xF0,0x90,0xF5,0xEF,0x74,
+ 0x50,0xF0,0x90,0x43,0xDB,0xE0,0xFE,0xA3,
+ 0xE0,0x78,0x02,0xC3,0x33,0xCE,0x33,0xCE,
+ 0xD8,0xF9,0xF0,0xEE,0x90,0x43,0xDB,0xF0,
+ 0x80,0x34,0x90,0x43,0xE0,0x74,0x05,0xF0,
+ 0xA3,0x74,0x55,0xF0,0x90,0x43,0xE8,0x74,
+ 0x3C,0xF0,0x90,0x43,0xBE,0x74,0x09,0xF0,
+ 0x90,0xF5,0xEF,0x74,0x3C,0xF0,0x90,0x43,
+ 0xDC,0xE0,0x25,0xE0,0xF0,0x90,0x43,0xDB,
+ 0xE0,0x33,0xF0,0x90,0x43,0xE9,0xE0,0xC3,
+ 0x13,0xF0,0xA3,0xE0,0x13,0xF0,0x90,0x43,
+ 0xE9,0xE0,0xFF,0xA3,0xE0,0xA3,0xCF,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x43,0xE8,0xE0,0x90,
+ 0xF5,0xE2,0xF0,0x90,0x43,0xDB,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0xE1,0xE0,0x2F,
+ 0xFF,0x90,0x43,0xE0,0xE0,0x3E,0xA2,0xE7,
+ 0x13,0xFE,0xEF,0x13,0xFF,0x90,0xF5,0xFE,
+ 0xF0,0xEE,0xA3,0xF0,0xE4,0x90,0x43,0xEE,
+ 0xF0,0xA3,0xF0,0x90,0xF5,0x3B,0xF0,0x90,
+ 0xF5,0xBB,0xF0,0x90,0xF5,0xB1,0xF0,0x90,
+ 0xF5,0xC8,0xF0,0x90,0xF5,0xF8,0x04,0xF0,
+ 0x90,0xF5,0xDF,0x74,0xFB,0xF0,0xA3,0xE4,
+ 0xF0,0x90,0xF5,0xE3,0x74,0x09,0xF0,0xA3,
+ 0x74,0x01,0xF0,0xA3,0xF0,0x90,0xF5,0xFD,
+ 0xF0,0x90,0xF6,0x6D,0xE4,0xF0,0x90,0xF5,
+ 0xF9,0x74,0x04,0xF0,0x90,0x42,0x12,0xE0,
+ 0xB4,0x01,0x1B,0x90,0x43,0xBC,0xE0,0xB4,
+ 0x01,0x14,0x90,0xF5,0xE3,0x74,0x01,0xF0,
+ 0x90,0xF5,0xF9,0xF0,0x90,0xF5,0xFE,0x74,
+ 0xFF,0xF0,0xA3,0x74,0x0F,0xF0,0xE4,0x90,
+ 0x43,0xBD,0xF0,0x90,0x43,0xC3,0xE0,0x64,
+ 0x01,0x70,0x3E,0x90,0x41,0xF3,0xF0,0x90,
+ 0x43,0xDA,0xF0,0x90,0x43,0xC4,0xF0,0x90,
+ 0x43,0xD8,0xF0,0x90,0x43,0xD6,0xF0,0x90,
+ 0xF0,0x2B,0xE0,0x60,0x12,0x90,0x42,0x5B,
+ 0xE0,0x90,0x43,0xD9,0xF0,0x90,0x42,0x57,
+ 0xE0,0x90,0x43,0xD7,0xF0,0x80,0x1E,0x90,
+ 0x42,0x16,0xE0,0x90,0x43,0xD9,0xF0,0x90,
+ 0x42,0x13,0xE0,0x90,0x43,0xD7,0xF0,0x80,
+ 0x0C,0x90,0x43,0xD7,0xE0,0x14,0xA3,0xF0,
+ 0xE4,0x90,0x43,0x42,0xF0,0x90,0x43,0xD7,
+ 0xE0,0xFF,0xA3,0xE0,0xC3,0x9F,0x50,0x5C,
+ 0x90,0xF5,0xE7,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0x90,0xF5,0xE1,0xE4,0xF0,0x90,0xF5,0xE7,
+ 0x04,0xF0,0x90,0xF5,0xE8,0xE0,0xB4,0x01,
+ 0xF9,0x90,0xF5,0xE1,0xE0,0x90,0x43,0xDD,
+ 0xF0,0xE0,0x64,0x05,0x70,0x2E,0x74,0x06,
+ 0xF0,0x90,0xF5,0xEA,0xE0,0x90,0x43,0xD5,
+ 0xF0,0x12,0xA5,0xD9,0x85,0x2C,0x2C,0x85,
+ 0x2C,0x2C,0x05,0x2C,0x85,0x2C,0x2C,0x90,
+ 0x43,0xDD,0xE0,0x90,0xF5,0xE1,0xF0,0x90,
+ 0x43,0xBC,0xE0,0xFF,0x90,0x43,0xBE,0xE0,
+ 0xFD,0x12,0x8B,0x5F,0x90,0x43,0xD8,0xE0,
+ 0x04,0xF0,0x80,0x99,0x12,0x7A,0xA8,0xE4,
+ 0x90,0x43,0xC3,0xF0,0x90,0x43,0xDD,0xE0,
+ 0xFF,0x64,0x0E,0x60,0x47,0xEF,0xB4,0x06,
+ 0x05,0x12,0x7C,0x79,0x80,0xEE,0x90,0x43,
+ 0xDD,0xE0,0x64,0x07,0x70,0x22,0x12,0x82,
+ 0x23,0x90,0xF5,0xE8,0x74,0x01,0xF0,0x90,
+ 0x43,0xDD,0xE0,0x90,0xF5,0xE1,0xF0,0x90,
+ 0xF5,0xE8,0xE0,0xB4,0x01,0xF9,0x90,0xF5,
+ 0xE6,0xE4,0xF0,0x12,0x83,0x0F,0x80,0xC4,
+ 0x90,0x43,0xDD,0xE0,0xB4,0x0C,0xBD,0x90,
+ 0x43,0xBC,0xE0,0xFF,0x12,0x81,0x21,0x12,
+ 0x7A,0x27,0x80,0xB0,0x90,0xF5,0xE7,0xE4,
+ 0xF0,0x90,0xF5,0xE1,0xF0,0xD2,0xEB,0x22,
+ 0x90,0x43,0xFF,0xE0,0xFE,0xA3,0xE0,0xA8,
+ 0x07,0x08,0x80,0x05,0xCE,0xC3,0x13,0xCE,
+ 0x13,0xD8,0xF9,0xF0,0xEE,0x90,0x43,0xFF,
+ 0xF0,0xE0,0xFE,0xA3,0xE0,0xFF,0x90,0x41,
+ 0xC4,0xE0,0xFD,0x7C,0x00,0x12,0xA9,0x46,
+ 0x90,0x43,0xFF,0xEE,0xF0,0xA3,0xEF,0xF0,
+ 0x22,0xAA,0x07,0xEA,0x70,0x10,0x90,0xF7,
+ 0x86,0x04,0xF0,0xA3,0xF0,0xE4,0x90,0x43,
+ 0xFE,0xF0,0x90,0x43,0xFC,0xF0,0xEA,0xB4,
+ 0x01,0x13,0x90,0x43,0xFC,0x74,0x01,0xF0,
+ 0x90,0xF7,0x87,0xF0,0x90,0xF7,0x87,0xE0,
+ 0x60,0xFA,0xE4,0xF5,0x2E,0xEA,0x64,0x01,
+ 0x60,0x24,0x90,0xF7,0x86,0xE0,0x70,0x09,
+ 0x90,0xF7,0x31,0xE0,0x70,0x03,0x02,0x87,
+ 0xAC,0x90,0x43,0xF8,0xE0,0xC3,0x94,0x01,
+ 0x50,0x03,0x02,0x87,0xAC,0x90,0xF7,0x87,
+ 0xE0,0x70,0x03,0x02,0x87,0xAC,0x05,0x2E,
+ 0x05,0x2C,0x05,0x2C,0x90,0xF9,0x00,0xE0,
+ 0x70,0x04,0x7B,0x04,0x80,0x0D,0x90,0xF9,
+ 0x00,0xE0,0xB4,0x01,0x04,0x7B,0x06,0x80,
+ 0x02,0x7B,0x05,0x90,0xF9,0x03,0xE0,0xFF,
+ 0xC3,0xEB,0x9F,0xFB,0x90,0xF7,0x92,0xE0,
+ 0x90,0x41,0xC1,0xF0,0x90,0xF7,0x93,0xE0,
+ 0x90,0x41,0xC2,0xF0,0x90,0xF7,0x94,0xE0,
+ 0x90,0x41,0xC3,0xF0,0x90,0xF7,0x8B,0xE0,
+ 0x90,0x41,0xC4,0xF0,0x90,0xF7,0x97,0xE0,
+ 0x90,0x43,0xF9,0xF0,0x90,0xF7,0x96,0xE0,
+ 0x90,0x43,0xFA,0xF0,0x90,0xF7,0x95,0xE0,
+ 0x90,0x43,0xFB,0xF0,0x90,0x43,0xF9,0xE0,
+ 0x90,0x43,0xFF,0xF0,0x90,0x43,0xFA,0xE0,
+ 0x90,0x44,0x00,0xF0,0xAF,0x03,0x12,0x86,
+ 0x81,0x90,0x44,0x00,0xE0,0x90,0x42,0x37,
+ 0xF0,0x90,0x41,0xC3,0xE0,0x90,0x43,0xFF,
+ 0xF0,0x90,0x41,0xC2,0xE0,0x90,0x44,0x00,
+ 0xF0,0xAF,0x03,0x12,0x86,0x81,0x90,0x44,
+ 0x00,0xE0,0x90,0x42,0x36,0xF0,0x90,0xF7,
+ 0x86,0x74,0x01,0xF0,0xA3,0xF0,0xE4,0x90,
+ 0x43,0xFE,0xF0,0xEA,0xB4,0x01,0x05,0xE4,
+ 0x90,0x43,0xFC,0xF0,0x22,0x90,0xF9,0x03,
+ 0xE0,0x90,0x41,0xC5,0xF0,0x90,0xF9,0x00,
+ 0xE0,0x90,0x41,0xC6,0xF0,0x90,0x43,0xFE,
+ 0xE0,0x04,0xF0,0xE0,0xC3,0x94,0x32,0x40,
+ 0x05,0xE4,0xFF,0x12,0x86,0xB2,0x90,0x43,
+ 0xFC,0xE0,0x70,0x05,0x7F,0x02,0x12,0x86,
+ 0xB2,0x90,0x43,0xFD,0xE0,0x04,0xF0,0xE0,
+ 0xC3,0x94,0x32,0x40,0x0B,0x90,0xF7,0x0D,
+ 0x74,0x01,0xF0,0xE4,0x90,0x43,0xFD,0xF0,
+ 0x90,0xF7,0x0D,0xE0,0x60,0x5A,0x90,0xF7,
+ 0x05,0xE0,0x90,0x41,0xC7,0xF0,0x90,0xF7,
+ 0x06,0xE0,0x90,0x41,0xC8,0xF0,0x90,0xF7,
+ 0x02,0xE0,0x90,0x41,0xC9,0xF0,0x90,0xF7,
+ 0x03,0xE0,0x90,0x41,0xCA,0xF0,0x90,0xF7,
+ 0x04,0xE0,0x90,0x41,0xCB,0xF0,0x90,0xF7,
+ 0x00,0xE0,0x90,0x41,0xCC,0xF0,0x90,0xF7,
+ 0x01,0xE0,0x90,0x41,0xCD,0xF0,0x90,0xF7,
+ 0x0D,0x74,0x01,0xF0,0xE4,0x90,0x43,0xFD,
+ 0xF0,0x90,0x41,0xD3,0xE0,0x04,0xF0,0xE0,
+ 0xFF,0x90,0x41,0xFA,0xE0,0xFE,0xEF,0x8E,
+ 0xF0,0x84,0x90,0x41,0xD3,0xE5,0xF0,0xF0,
+ 0x90,0xF7,0x00,0xE0,0xFF,0x90,0x41,0xCF,
+ 0xE0,0xFE,0xB5,0x07,0x0C,0x90,0xF7,0x01,
+ 0xE0,0xFF,0x90,0x41,0xD0,0xE0,0x6F,0x60,
+ 0x18,0x90,0xF7,0x00,0xEE,0xF0,0x90,0x41,
+ 0xD0,0xE0,0x90,0xF7,0x01,0xF0,0x90,0xF7,
+ 0x0C,0x74,0x01,0xF0,0xE4,0xF0,0xA3,0x04,
+ 0xF0,0x22,0x22,0x7F,0x00,0x22,0x90,0x42,
+ 0x5F,0xE0,0x04,0xF0,0x70,0x06,0x90,0x42,
+ 0x5E,0xE0,0x04,0xF0,0x90,0x42,0x48,0xE0,
+ 0x70,0x0B,0x90,0x42,0x5D,0xE0,0x70,0x05,
+ 0x12,0x88,0x8B,0x80,0x09,0x90,0xF0,0x01,
+ 0xE0,0x60,0x03,0x12,0x9D,0x48,0x90,0x42,
+ 0x5E,0xE0,0xFE,0xA3,0xE0,0xFF,0x7C,0x00,
+ 0x7D,0x0A,0x12,0xA9,0x46,0xED,0x4C,0x70,
+ 0x13,0x90,0x43,0x40,0xE0,0x60,0x0D,0x90,
+ 0x41,0xDB,0xE0,0xB4,0x23,0x03,0x12,0x9F,
+ 0xCB,0x12,0xA3,0x27,0x90,0xF9,0x99,0xE0,
+ 0x90,0x41,0xD2,0xF0,0x90,0x42,0x46,0xE0,
+ 0x70,0x06,0x90,0x42,0x47,0xE0,0x60,0x04,
+ 0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,0x41,
+ 0xD1,0xEF,0xF0,0x90,0x42,0x5E,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x7C,0x00,0x7D,0x32,0x12,
+ 0xA9,0x46,0xED,0x4C,0x70,0x0E,0x12,0x87,
+ 0xB6,0x12,0x8A,0x51,0x90,0x44,0xA0,0xE0,
+ 0x60,0x02,0x14,0xF0,0x12,0x88,0x8B,0xC2,
+ 0xCF,0x22,0xC2,0xAF,0x90,0xFB,0x88,0xE0,
+ 0x64,0x01,0x60,0xF8,0x90,0xFB,0x96,0xEF,
+ 0xF0,0x12,0x9D,0x24,0x90,0xFB,0x88,0xE0,
+ 0x70,0xFA,0xD2,0xAF,0x04,0x7F,0x01,0x22,
+ 0x90,0x43,0x3F,0xE0,0x70,0x03,0x02,0x8A,
+ 0x07,0xC2,0xE9,0xE4,0x90,0x44,0x98,0xF0,
+ 0x90,0xF7,0x3C,0xE0,0xB4,0x01,0x04,0xC2,
+ 0xEA,0x80,0x02,0xD2,0xEA,0x90,0xF7,0x0E,
+ 0xE0,0xB4,0x01,0x20,0x90,0x43,0x3B,0xE0,
+ 0xC3,0x94,0x02,0x50,0x11,0xE5,0x0F,0xB4,
+ 0x09,0x0C,0x12,0x4E,0x5A,0x90,0x43,0x3B,
+ 0xE0,0x04,0xF0,0x02,0x8A,0x07,0x12,0x8A,
+ 0x16,0x02,0x8A,0x07,0x90,0xF5,0x54,0xE0,
+ 0x64,0x01,0x70,0x7A,0x90,0xF0,0x2B,0xE0,
+ 0x70,0x12,0x90,0x42,0x38,0xE0,0xB4,0x01,
+ 0x0B,0x90,0xF2,0x17,0x74,0xFE,0xF0,0xE4,
+ 0x90,0x42,0x37,0xF0,0x90,0x44,0x9B,0xE0,
+ 0xC3,0x94,0x02,0x50,0x18,0xE5,0x0F,0xB4,
+ 0x09,0x13,0x12,0x4E,0x5A,0x90,0x44,0x9A,
+ 0xE0,0x90,0xF5,0x52,0xF0,0x90,0x44,0x9B,
+ 0xE0,0x04,0xF0,0x80,0x41,0x90,0x43,0x3C,
+ 0x74,0x02,0xF0,0x90,0xF7,0x0E,0xE0,0x64,
+ 0x01,0x60,0x07,0x90,0xF7,0x40,0xE0,0xB4,
+ 0x01,0x05,0x12,0x8A,0x16,0x80,0x27,0x90,
+ 0xF7,0x31,0xE0,0x60,0x0A,0xE4,0xFF,0x12,
+ 0x9C,0x29,0x12,0x48,0x8D,0x80,0x0C,0x90,
+ 0xF7,0x3C,0xE0,0x70,0x03,0x12,0x48,0x8D,
+ 0x12,0x72,0x28,0x05,0x2C,0xE4,0xF5,0x2D,
+ 0x12,0x4E,0x2A,0x12,0x4E,0x3B,0x12,0x4E,
+ 0x2A,0x90,0x44,0x9A,0xE0,0x90,0xF5,0x52,
+ 0xF0,0x53,0x91,0x7F,0x22,0x90,0xF7,0x32,
+ 0xE0,0x60,0x19,0x90,0xFB,0x88,0xE0,0x70,
+ 0xFA,0x90,0xFB,0x96,0x74,0x0D,0xF0,0x90,
+ 0xFB,0x88,0x74,0x01,0xF0,0xE4,0x90,0x44,
+ 0x97,0xF0,0x05,0x2C,0xE4,0x90,0x42,0x47,
+ 0xF0,0x90,0x42,0x46,0xF0,0x12,0x6E,0x75,
+ 0x12,0x48,0xAC,0x12,0x4E,0x2A,0x90,0x43,
+ 0x3C,0x74,0x01,0xF0,0x12,0x4E,0x3B,0x22,
+ 0x90,0x44,0x02,0xE0,0x54,0x01,0xF0,0xA2,
+ 0xAF,0xE4,0x33,0x90,0x44,0x01,0xF0,0xC2,
+ 0xAF,0x90,0x44,0x02,0xE0,0x70,0x27,0x90,
+ 0xF7,0x02,0xE0,0x90,0xFB,0x97,0xF0,0x90,
+ 0xF7,0x03,0xE0,0x90,0xFB,0x98,0xF0,0x90,
+ 0xF7,0x04,0xE0,0x90,0xFB,0x99,0xF0,0x90,
+ 0xF9,0x99,0xE0,0x90,0xFB,0x9A,0xF0,0x7F,
+ 0x04,0x12,0x89,0x23,0x80,0x41,0x90,0x44,
+ 0x02,0xE0,0x64,0x01,0x70,0x39,0x90,0xFB,
+ 0x97,0xE5,0x12,0xF0,0x90,0x42,0x5C,0xE0,
+ 0x90,0xFB,0x98,0xF0,0x90,0x42,0x30,0xE0,
+ 0x90,0xFB,0x9B,0xF0,0x90,0x42,0x31,0xE0,
+ 0x90,0xFB,0x9C,0xF0,0x90,0x42,0x48,0xE0,
+ 0x70,0x05,0x12,0x8B,0x2D,0x80,0x0B,0x90,
+ 0xF0,0x60,0xE0,0x90,0xFB,0x99,0xF0,0x12,
+ 0x8B,0x2D,0x7F,0x05,0x12,0x89,0x23,0x90,
+ 0x44,0x01,0xE0,0x24,0xFF,0x92,0xAF,0x90,
+ 0x44,0x02,0xE0,0x04,0xF0,0x90,0xFB,0xA3,
+ 0xE0,0x90,0x41,0xDE,0xF0,0x85,0x2C,0x2C,
+ 0x85,0x2C,0x2C,0x90,0xFB,0xA4,0xE0,0x90,
+ 0x41,0xDF,0xF0,0xE0,0xFF,0xD3,0x94,0x4E,
+ 0x40,0x06,0xE4,0x90,0x41,0xDD,0xF0,0x22,
+ 0xEF,0xC3,0x94,0x32,0x50,0x07,0x90,0x41,
+ 0xDD,0x74,0x64,0xF0,0x22,0xEF,0x24,0xCE,
+ 0xFF,0xE4,0x34,0xFF,0xFE,0x7C,0x00,0x7D,
+ 0x07,0x12,0xA9,0x34,0xEE,0xA2,0xE7,0x13,
+ 0xEF,0x13,0xFF,0xC3,0x74,0x64,0x9F,0x90,
+ 0x41,0xDD,0xF0,0x22,0xE4,0xFF,0x90,0x41,
+ 0xE7,0xE0,0x60,0x0B,0x90,0x42,0x59,0xE0,
+ 0x60,0x05,0x90,0x42,0x32,0xE0,0xFF,0x90,
+ 0xF0,0x61,0xE0,0xFE,0x90,0x42,0x48,0xE0,
+ 0x70,0x05,0x90,0x42,0x08,0xE0,0xFE,0xC3,
+ 0xEE,0x9F,0x90,0xFB,0x9A,0xF0,0xEE,0xC3,
+ 0x9F,0x50,0x02,0xE4,0xF0,0x22,0x90,0x44,
+ 0x03,0xEF,0xF0,0xA9,0x05,0xE4,0x90,0x44,
+ 0x09,0xF0,0xFB,0x90,0x43,0xD5,0xE0,0xFD,
+ 0xEB,0xC3,0x9D,0x50,0x5B,0x90,0xF5,0xF1,
+ 0xE0,0xFF,0x75,0xF0,0x02,0xEB,0xA4,0x24,
+ 0xC5,0xF5,0x82,0xE5,0xF0,0x34,0x43,0xF5,
+ 0x83,0xEF,0xF0,0x90,0xF5,0xF0,0xE0,0xFF,
+ 0x75,0xF0,0x02,0xEB,0xA4,0x24,0xC6,0xF5,
+ 0x82,0xE5,0xF0,0x34,0x43,0xF5,0x83,0xEF,
+ 0xF0,0x90,0xF5,0xF1,0xE0,0xFF,0x75,0xF0,
+ 0x02,0xEB,0xA4,0x24,0xCD,0xF5,0x82,0xE5,
+ 0xF0,0x34,0x43,0xF5,0x83,0xEF,0xF0,0x90,
+ 0xF5,0xF0,0xE0,0xFF,0x75,0xF0,0x02,0xEB,
+ 0xA4,0x24,0xCE,0xF5,0x82,0xE5,0xF0,0x34,
+ 0x43,0xF5,0x83,0xEF,0xF0,0x0B,0x80,0x9B,
+ 0x90,0x41,0xF3,0xED,0xF0,0x90,0x43,0xC5,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0xEE,0xC3,0x13,
+ 0xFE,0xEF,0x13,0xFF,0x90,0x44,0x04,0xEE,
+ 0xF0,0xA3,0xEF,0xF0,0x7A,0x01,0x90,0x41,
+ 0xF3,0xE0,0xFF,0xEA,0xC3,0x9F,0x50,0x54,
+ 0x75,0xF0,0x02,0xEA,0xA4,0x24,0xC5,0xF5,
+ 0x82,0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0x78,0x02,0xCE,0xC3,0x13,
+ 0xCE,0x13,0xD8,0xF9,0xFD,0xAC,0x06,0x75,
+ 0xF0,0x02,0xEA,0xA4,0x24,0xC5,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0xEE,0xC3,0x13,0xFE,0xEF,
+ 0x13,0x2D,0xFF,0xEE,0x3C,0xFE,0x90,0x44,
+ 0x04,0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xEC,
+ 0x9E,0x50,0x06,0x90,0x43,0xC4,0x74,0x01,
+ 0xF0,0x0A,0x80,0xA2,0x90,0x43,0xD6,0xE0,
+ 0xFE,0x70,0x14,0x90,0x41,0xF3,0xE0,0x64,
+ 0x01,0x70,0x31,0x90,0x43,0xD6,0x04,0xF0,
+ 0x90,0xF5,0xE2,0xE9,0xF0,0x80,0x25,0xEE,
+ 0xB4,0x01,0x17,0x90,0x41,0xF3,0xE0,0xB4,
+ 0x01,0x08,0x90,0x43,0xD6,0x74,0x03,0xF0,
+ 0x80,0x12,0x90,0x43,0xD6,0x74,0x02,0xF0,
+ 0x80,0x0A,0x90,0x43,0xD6,0xE0,0xB4,0x02,
+ 0x03,0x74,0x03,0xF0,0x90,0x43,0xD6,0xE0,
+ 0xB4,0x03,0x0F,0x90,0x43,0xD7,0xE0,0x14,
+ 0x90,0x43,0xD8,0xF0,0x90,0x41,0xF3,0x74,
+ 0x01,0xF0,0x90,0x44,0x03,0xE0,0x60,0x03,
+ 0x02,0x8E,0xE8,0x7A,0x01,0x90,0x43,0xD5,
+ 0xE0,0xFF,0xEA,0xC3,0x9F,0x50,0x37,0x75,
+ 0xF0,0x02,0xEA,0xA4,0x24,0xCD,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x43,0xCD,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xC3,0xEF,0x9D,0xFF,0xEE,
+ 0x9C,0xFE,0xEA,0x25,0xE0,0x24,0x08,0xF5,
+ 0x82,0xE4,0x34,0x44,0xF5,0x83,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x0A,0x80,0xBF,0x90,0x43,
+ 0xDA,0xE0,0xFC,0x70,0x39,0xFA,0x90,0x43,
+ 0xD5,0xE0,0xFF,0xEA,0xC3,0x9F,0x50,0x25,
+ 0xEA,0x25,0xE0,0x24,0x0A,0xF5,0x82,0xE4,
+ 0x34,0x44,0xF5,0x83,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xEA,0x25,0xE0,0x24,0x12,0xF5,0x82,
+ 0xE4,0x34,0x44,0xF5,0x83,0xEE,0xF0,0xA3,
+ 0xEF,0xF0,0x0A,0x80,0xD1,0x90,0x41,0xF3,
+ 0xE0,0x90,0x43,0xDA,0xF0,0x22,0xEC,0x64,
+ 0x01,0x70,0x03,0x02,0x8E,0x9E,0x90,0x44,
+ 0x08,0x74,0x01,0xF0,0x90,0x44,0x07,0xF0,
+ 0xE4,0xFA,0xF9,0xE9,0x25,0xE0,0x24,0x12,
+ 0xF5,0x82,0xE4,0x34,0x44,0xF5,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0xEA,0x25,0xE0,0x24,
+ 0x0A,0xF5,0x82,0xE4,0x34,0x44,0xF5,0x83,
+ 0xE0,0xFC,0xA3,0xE0,0xC3,0x9F,0xFF,0xEC,
+ 0x9E,0xFE,0xC3,0x64,0x80,0x94,0x80,0x50,
+ 0x24,0xC3,0xE4,0x9F,0xFF,0xE4,0x9E,0xFE,
+ 0x90,0x43,0xD5,0xE0,0x24,0xFE,0xFD,0xEA,
+ 0xC3,0x9D,0x50,0x03,0x0A,0x80,0x06,0x90,
+ 0x44,0x09,0x74,0x01,0xF0,0x90,0x44,0x06,
+ 0x74,0x01,0xF0,0x80,0x1A,0xE4,0x90,0x44,
+ 0x06,0xF0,0x90,0x43,0xDA,0xE0,0x24,0xFE,
+ 0xFD,0xE9,0xC3,0x9D,0x50,0x03,0x09,0x80,
+ 0x06,0x90,0x44,0x09,0x74,0x01,0xF0,0x90,
+ 0x43,0xD9,0xE0,0xFD,0xC3,0xEF,0x9D,0x74,
+ 0x80,0xF8,0x6E,0x98,0x40,0x2D,0x90,0x43,
+ 0xC5,0xE0,0xFE,0xA3,0xE0,0xFF,0xEE,0x13,
+ 0xFE,0xEF,0x13,0xFF,0x90,0x44,0x08,0xE0,
+ 0x75,0xF0,0x02,0xA4,0x24,0xC5,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,0xFC,
+ 0xA3,0xE0,0xD3,0x9F,0xEC,0x9E,0x50,0x03,
+ 0x02,0x8E,0x7D,0x90,0x44,0x08,0xE0,0xFC,
+ 0x75,0xF0,0x02,0xA4,0x24,0xCD,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x44,0x07,0xE0,0xFD,
+ 0x75,0xF0,0x02,0xA4,0x24,0xCD,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x75,0xF0,0x02,0xEC,0xA4,
+ 0x24,0xC5,0xF5,0x82,0xE5,0xF0,0x34,0x43,
+ 0xF5,0x83,0xE0,0xFE,0xA3,0xE0,0xFF,0x75,
+ 0xF0,0x02,0xED,0xA4,0x24,0xC5,0xF5,0x82,
+ 0xE5,0xF0,0x34,0x43,0xF5,0x83,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x44,0x07,0xE0,0x04,
+ 0xF0,0x90,0x44,0x06,0xE0,0xB4,0x01,0x17,
+ 0x90,0x43,0xDA,0xE0,0x24,0xFE,0xFF,0xE9,
+ 0xC3,0x9F,0x50,0x03,0x09,0x80,0x1D,0x90,
+ 0x44,0x09,0x74,0x01,0xF0,0x80,0x15,0x90,
+ 0x43,0xD5,0xE0,0x24,0xFE,0xFF,0xEA,0xC3,
+ 0x9F,0x50,0x03,0x0A,0x80,0x06,0x90,0x44,
+ 0x09,0x74,0x01,0xF0,0x90,0x44,0x07,0xE0,
+ 0x90,0x41,0xF3,0xF0,0xEA,0x04,0x90,0x44,
+ 0x08,0xF0,0xA3,0xE0,0x64,0x01,0x60,0x03,
+ 0x02,0x8D,0x44,0x90,0x41,0xF3,0xE0,0x90,
+ 0x43,0xDA,0xF0,0x80,0x06,0x90,0x41,0xF3,
+ 0x74,0x01,0xF0,0x7B,0x01,0x90,0x43,0xDA,
+ 0xE0,0x14,0xFF,0xEB,0xC3,0x9F,0x50,0x37,
+ 0x75,0xF0,0x02,0xEB,0xA4,0x24,0xCD,0xF5,
+ 0x82,0xE5,0xF0,0x34,0x43,0xF5,0x83,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x43,0xCD,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0xC3,0xEF,0x9D,0xFF,
+ 0xEE,0x9C,0xFE,0xEB,0x25,0xE0,0x24,0x10,
+ 0xF5,0x82,0xE4,0x34,0x44,0xF5,0x83,0xEE,
+ 0xF0,0xA3,0xEF,0xF0,0x0B,0x80,0xBE,0x22,
+ 0xEF,0x64,0x02,0x60,0x04,0xEF,0xB4,0x01,
+ 0x1B,0x90,0x44,0x36,0x74,0x0B,0xF0,0xA3,
+ 0x74,0xB3,0xF0,0xA3,0x74,0x0A,0xF0,0xA3,
+ 0x74,0x73,0xF0,0xA3,0x74,0x33,0xF0,0xA3,
+ 0x74,0xE5,0xF0,0x22,0xEF,0xB4,0x04,0x1B,
+ 0x90,0x44,0x36,0x74,0x0B,0xF0,0xA3,0x74,
+ 0xE3,0xF0,0xA3,0x74,0x0A,0xF0,0xA3,0x74,
+ 0x9D,0xF0,0xA3,0x74,0x33,0xF0,0xA3,0x74,
+ 0xB3,0xF0,0x22,0xEF,0xB4,0x05,0x1B,0x90,
+ 0x44,0x36,0x74,0x0B,0xF0,0xA3,0x74,0xA3,
+ 0xF0,0xA3,0x74,0x0A,0xF0,0xA3,0x74,0x65,
+ 0xF0,0xA3,0x74,0x33,0xF0,0xA3,0x74,0xF4,
+ 0xF0,0x22,0xEF,0xB4,0x0B,0x1A,0x90,0x44,
+ 0x36,0x74,0x0B,0xF0,0xA3,0x74,0xD5,0xF0,
+ 0xA3,0x74,0x0A,0xF0,0xA3,0x74,0x91,0xF0,
+ 0xA3,0x74,0x33,0xF0,0xA3,0x74,0xC1,0xF0,
+ 0x22,0x90,0xF0,0x2B,0xE4,0xF0,0x90,0x43,
+ 0x41,0x74,0x82,0xF0,0x90,0xFB,0x28,0xF0,
+ 0x90,0x42,0x09,0xE0,0x90,0xF0,0x41,0xF0,
+ 0x90,0x42,0x48,0xE0,0x14,0x60,0x21,0x14,
+ 0x60,0x39,0x24,0x02,0x60,0x03,0x02,0x90,
+ 0x1B,0x90,0xF1,0xE5,0x74,0x01,0xF0,0x12,
+ 0x88,0x8B,0x12,0x88,0x8B,0x12,0x88,0x8B,
+ 0x90,0x43,0x3D,0x74,0x01,0xF0,0x80,0x72,
+ 0x12,0x88,0x8B,0x90,0xF0,0x2C,0x74,0x01,
+ 0xF0,0x90,0xF1,0xE5,0xF0,0x90,0x43,0x3D,
+ 0xE0,0x64,0x01,0x70,0x5D,0x04,0x12,0xA4,
+ 0xFA,0x80,0x57,0x90,0xF0,0x2C,0x74,0x01,
+ 0xF0,0x90,0xF1,0xE5,0xF0,0x12,0x9E,0x2B,
+ 0x75,0xF0,0x02,0xE5,0x0F,0xA4,0x24,0x79,
+ 0xF5,0x82,0xE5,0xF0,0x34,0xAD,0xF5,0x83,
+ 0xE4,0x93,0xFC,0x74,0x01,0x93,0xFD,0xE4,
+ 0xFF,0x12,0x47,0xAD,0x90,0xF1,0xE7,0xE0,
+ 0x64,0x01,0x60,0x04,0x7F,0x01,0x80,0x02,
+ 0x7F,0x00,0x90,0xF1,0x1A,0xE0,0x5F,0x70,
+ 0xEB,0x90,0xF1,0xE7,0xE0,0xB4,0x01,0x04,
+ 0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,0x43,
+ 0x3D,0xEF,0xF0,0xE0,0xB4,0x01,0x03,0x12,
+ 0xA4,0xFA,0x90,0xF1,0x75,0x74,0x01,0xF0,
+ 0x90,0x42,0x5A,0xE0,0xF5,0x14,0x12,0xA2,
+ 0x78,0x90,0xF0,0xD5,0x74,0x01,0xF0,0x90,
+ 0xF0,0xE3,0xF0,0x90,0xF0,0xE2,0xF0,0x90,
+ 0x43,0x40,0xF0,0x22,0x90,0xF7,0x3C,0xE0,
+ 0x70,0x0B,0x90,0xF7,0x31,0xE0,0x60,0x05,
+ 0xE4,0xFF,0x12,0x9C,0x29,0x12,0x48,0x8D,
+ 0xE4,0xF5,0x0F,0x22,0x90,0x44,0x1B,0xEF,
+ 0xF0,0xA3,0xED,0xF0,0xE4,0x90,0x44,0x23,
+ 0xF0,0xA3,0xF0,0xA3,0xF0,0xA3,0xF0,0xAF,
+ 0x03,0x90,0x44,0x21,0xEA,0xF0,0xA3,0xEF,
+ 0xF0,0x90,0x44,0x1F,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0xA3,0xE0,0xFC,0xA3,0xE0,0xFD,0xC3,
+ 0x9F,0xEC,0x9E,0x40,0x03,0x02,0x91,0x1E,
+ 0x90,0xF9,0x00,0xE0,0xB4,0x02,0x0F,0x90,
+ 0x44,0x22,0xE0,0x25,0xE0,0xFD,0x90,0x44,
+ 0x21,0xE0,0x33,0xFC,0x80,0x1A,0x90,0xF9,
+ 0x00,0xE0,0xB4,0x01,0x13,0x90,0x44,0x21,
+ 0xE0,0xFE,0xA3,0xE0,0x78,0x02,0xC3,0x33,
+ 0xCE,0x33,0xCE,0xD8,0xF9,0xFD,0xAC,0x06,
+ 0xED,0x90,0xF5,0x50,0xF0,0xEC,0xA3,0xF0,
+ 0x90,0xF6,0x5B,0x74,0x01,0xF0,0x7F,0x55,
+ 0x7E,0x0D,0x12,0x47,0x76,0x90,0xF6,0x5F,
+ 0xE0,0xFF,0x13,0x13,0x54,0x3F,0xFF,0x90,
+ 0x44,0x24,0xE0,0x2F,0xF0,0x90,0x44,0x23,
+ 0xE0,0x34,0x00,0xF0,0x90,0xF6,0x5F,0xE0,
+ 0xFF,0x90,0x44,0x26,0xE0,0xC3,0x9F,0x50,
+ 0x08,0x90,0xF6,0x5F,0xE0,0x90,0x44,0x26,
+ 0xF0,0x90,0x44,0x1C,0xE0,0xFF,0x90,0xF6,
+ 0x5F,0xE0,0xD3,0x9F,0x40,0x06,0x90,0x44,
+ 0x25,0xE0,0x04,0xF0,0x90,0x44,0x22,0xE0,
+ 0x04,0xF0,0x70,0x06,0x90,0x44,0x21,0xE0,
+ 0x04,0xF0,0x02,0x90,0x72,0x90,0x44,0x23,
+ 0xE0,0xFE,0xA3,0xE0,0x78,0x07,0xCE,0xC3,
+ 0x13,0xCE,0x13,0xD8,0xF9,0xFF,0x90,0x44,
+ 0x26,0xE0,0xFE,0x13,0x13,0x54,0x3F,0xFD,
+ 0xEF,0xD3,0x9D,0x40,0x13,0xEF,0x94,0x80,
+ 0x40,0x05,0x74,0xFF,0xF0,0x80,0x10,0xEF,
+ 0x25,0xE0,0x90,0x44,0x26,0xF0,0x80,0x07,
+ 0xEE,0xC3,0x13,0x90,0x44,0x26,0xF0,0x90,
+ 0x44,0x1B,0xE0,0x70,0x06,0x90,0x44,0x26,
+ 0xE0,0xFF,0x22,0x90,0x44,0x25,0xE0,0xFF,
+ 0x22,0xE4,0x90,0x44,0x2F,0xF0,0xA3,0xF0,
+ 0x90,0x44,0x3C,0x04,0xF0,0x22,0x90,0x44,
+ 0x3C,0xE0,0x60,0x08,0x12,0x72,0x37,0xE4,
+ 0x90,0x44,0x3C,0xF0,0x22,0x90,0xF6,0x08,
+ 0xE0,0x90,0x44,0x29,0xF0,0x90,0xFD,0x29,
+ 0xE0,0x90,0x44,0x2A,0xF0,0xE4,0xA3,0xF0,
+ 0x90,0x41,0xD9,0xE0,0x70,0x05,0x90,0x44,
+ 0x2F,0xF0,0x22,0x12,0x91,0x77,0x90,0xF5,
+ 0x4C,0xE0,0xFF,0x90,0xF5,0x41,0xE0,0x4F,
+ 0x70,0x03,0x02,0x92,0xB1,0x90,0x44,0x1F,
+ 0x74,0x02,0xF0,0xA3,0x74,0x39,0xF0,0xE4,
+ 0xFB,0xFA,0xFD,0xFF,0x12,0x90,0x55,0x90,
+ 0x44,0x28,0xEF,0xF0,0xD3,0x94,0x32,0x40,
+ 0x04,0xE0,0xFF,0x80,0x02,0x7F,0xFF,0x90,
+ 0x44,0x28,0xEF,0xF0,0xFD,0x90,0x44,0x1F,
+ 0xE4,0xF0,0xA3,0x74,0x32,0xF0,0xE4,0xFB,
+ 0xFA,0x7F,0x01,0x12,0x90,0x55,0x90,0x44,
+ 0x27,0xEF,0xF0,0xD3,0x94,0x0A,0x40,0x58,
+ 0x90,0xF1,0x14,0xE0,0x70,0x1E,0x04,0xF0,
+ 0x90,0x44,0x3B,0xE0,0x90,0xF1,0x12,0xF0,
+ 0x90,0x44,0x3A,0xE0,0x90,0xF1,0x13,0xF0,
+ 0x90,0xF1,0x0B,0xE4,0xF0,0x90,0xF1,0x0A,
+ 0x04,0xF0,0x80,0x34,0x90,0xF1,0x10,0xE0,
+ 0x70,0x2E,0x90,0x44,0x3B,0xE0,0xFF,0x90,
+ 0xF1,0x12,0xE0,0x6F,0x60,0x22,0x90,0x44,
+ 0x3A,0xE0,0xFE,0x90,0xF1,0x13,0xE0,0x6E,
+ 0x60,0x16,0x90,0xF1,0x10,0x74,0x01,0xF0,
+ 0x90,0xF1,0x0E,0xEF,0xF0,0xA3,0xEE,0xF0,
+ 0x90,0xF1,0x09,0xE4,0xF0,0xA3,0x04,0xF0,
+ 0x90,0x44,0x28,0xE0,0xFD,0x90,0x44,0x1F,
+ 0x74,0x02,0xF0,0xA3,0x74,0x39,0xF0,0x7B,
+ 0xF4,0x7A,0x01,0x7F,0x01,0x12,0x90,0x55,
+ 0x90,0x44,0x27,0xEF,0xF0,0xD3,0x94,0x19,
+ 0x40,0x3E,0x90,0xF1,0x14,0xE0,0x70,0x38,
+ 0x04,0xF0,0x90,0x44,0x39,0xE0,0x90,0xF1,
+ 0x12,0xF0,0x90,0x44,0x38,0xE0,0x90,0xF1,
+ 0x13,0xF0,0x90,0xF1,0x0B,0x74,0x15,0xF0,
+ 0x90,0xF1,0x10,0x74,0x01,0xF0,0x90,0x44,
+ 0x37,0xE0,0x90,0xF1,0x0E,0xF0,0x90,0x44,
+ 0x36,0xE0,0x90,0xF1,0x0F,0xF0,0x90,0xF1,
+ 0x09,0x74,0x10,0xF0,0xA3,0x74,0x01,0xF0,
+ 0x22,0x90,0xF1,0x14,0xE0,0xFF,0x90,0x44,
+ 0x2E,0xE0,0x6F,0x60,0x04,0x7F,0x01,0x80,
+ 0x02,0x7F,0x00,0x90,0xF1,0x10,0xE0,0xFE,
+ 0x90,0x44,0x2D,0xE0,0x6E,0x60,0x04,0x7E,
+ 0x01,0x80,0x02,0x7E,0x00,0xEE,0x4F,0xFF,
+ 0x90,0x42,0x2E,0xE0,0x64,0x01,0x70,0x39,
+ 0x90,0xF5,0x41,0xE0,0x60,0x03,0xEF,0x60,
+ 0x3D,0x12,0xA7,0xE9,0x04,0x90,0xF5,0x4C,
+ 0xE0,0xB4,0x01,0xF9,0x90,0xF6,0x5D,0x74,
+ 0x01,0xF0,0x90,0xF1,0x10,0xE0,0x70,0x06,
+ 0x90,0xF1,0x14,0xE0,0x60,0x20,0x90,0xF4,
+ 0xC1,0xE0,0x70,0x1A,0x90,0xF4,0xC4,0xE0,
+ 0x70,0x14,0x90,0xF6,0x5C,0x04,0xF0,0x80,
+ 0x0D,0x90,0xF5,0x41,0xE4,0xF0,0x90,0xF6,
+ 0x5D,0xF0,0x90,0xF6,0x5C,0xF0,0x90,0xF1,
+ 0x10,0xE0,0x90,0x44,0x2D,0xF0,0x90,0xF1,
+ 0x14,0xE0,0x90,0x44,0x2E,0xF0,0x22,0xE4,
+ 0x90,0x44,0x3D,0xF0,0x90,0xF9,0x00,0xE0,
+ 0x70,0x09,0x90,0x42,0x2A,0xE0,0x90,0x44,
+ 0x3D,0xF0,0x22,0x90,0xF9,0x00,0xE0,0xB4,
+ 0x01,0x1F,0x90,0x41,0xE9,0xE0,0xB4,0x01,
+ 0x09,0x90,0x42,0x28,0xE0,0x90,0x44,0x3D,
+ 0xF0,0x22,0x90,0xF0,0x2B,0xE0,0x70,0x11,
+ 0x90,0x42,0x2B,0xE0,0x90,0x44,0x3D,0xF0,
+ 0x22,0x90,0x42,0x29,0xE0,0x90,0x44,0x3D,
+ 0xF0,0x22,0x12,0x88,0x8B,0x12,0x92,0xB2,
+ 0x12,0x95,0x1B,0x12,0x91,0x86,0x90,0xF7,
+ 0x8E,0x74,0x01,0xF0,0x90,0xF7,0x91,0xF0,
+ 0x90,0xF7,0x31,0xE0,0x60,0x05,0x7F,0x01,
+ 0x12,0x9C,0x29,0x12,0x4D,0x1F,0xE4,0x90,
+ 0x44,0x2C,0xF0,0x7D,0x00,0x7C,0x07,0xE4,
+ 0xFF,0x12,0x47,0xAD,0x12,0x88,0x8B,0x12,
+ 0x6E,0x8F,0x12,0x97,0x25,0x04,0x12,0x70,
+ 0xEE,0x90,0x42,0x1F,0xE0,0x60,0x34,0x90,
+ 0xF1,0x33,0xE0,0x70,0x2E,0x90,0xF1,0x35,
+ 0xE0,0x70,0x28,0x90,0xF4,0xC1,0xE0,0x64,
+ 0x02,0x70,0x20,0x90,0xF9,0x00,0xE0,0x60,
+ 0x1A,0x90,0xF0,0x2B,0xE0,0x70,0x14,0x90,
+ 0x44,0x48,0xE0,0x70,0x0E,0x90,0x43,0xC4,
+ 0xE0,0x60,0x08,0x90,0xFD,0xA2,0x74,0x01,
+ 0xF0,0x80,0x05,0x90,0xFD,0xA2,0xE4,0xF0,
+ 0x90,0xF9,0x99,0xE0,0x60,0x0E,0x90,0xF2,
+ 0x1B,0x74,0x0C,0xF0,0x90,0x42,0x9E,0x74,
+ 0x01,0xF0,0x80,0x06,0x90,0xF2,0x1B,0x74,
+ 0x0D,0xF0,0x90,0xFD,0x33,0xE4,0xF0,0x04,
+ 0xF0,0x90,0xFD,0x36,0xE0,0xB4,0x01,0xF9,
+ 0x12,0x9B,0x78,0x12,0x93,0x38,0x90,0x43,
+ 0x3E,0xE0,0xB4,0x01,0x0C,0x90,0xFD,0x0F,
+ 0xE4,0xF0,0x90,0xFD,0x29,0x04,0xF0,0x80,
+ 0x2E,0x90,0x44,0x3D,0xE0,0xFF,0x90,0xFD,
+ 0x54,0xE0,0xC3,0x9F,0x50,0x11,0x90,0xFD,
+ 0x0F,0xEF,0xF0,0x90,0xFD,0x29,0x74,0x01,
+ 0xF0,0x90,0x42,0x6E,0xF0,0x80,0x10,0x90,
+ 0x42,0x6E,0xE0,0xB4,0x01,0x09,0x90,0xFD,
+ 0x29,0xE4,0xF0,0x90,0x42,0x6E,0xF0,0x12,
+ 0x98,0xDA,0x90,0x44,0x2C,0xE0,0x75,0xF0,
+ 0x50,0x84,0xE5,0xF0,0x70,0x03,0x12,0x91,
+ 0x86,0x12,0x92,0xB2,0x12,0xA6,0xBB,0x12,
+ 0x9A,0xE4,0x12,0x70,0xEE,0x05,0x2C,0x90,
+ 0xF1,0x1A,0xE0,0x70,0xFA,0x90,0xF5,0x4E,
+ 0xE0,0x60,0x3C,0xA3,0xE0,0x60,0x38,0x90,
+ 0xF9,0x03,0xE0,0xFF,0x90,0xF4,0xC1,0xE0,
+ 0x6F,0x70,0x23,0x90,0xF9,0x05,0xE0,0xB4,
+ 0x01,0x0A,0xA3,0xE0,0xFF,0x90,0xF4,0xC4,
+ 0xE0,0xB5,0x07,0x12,0x90,0xF9,0x05,0xE0,
+ 0x70,0x15,0x90,0xF9,0x07,0xE0,0xFF,0x90,
+ 0xF4,0xC5,0xE0,0x6F,0x60,0x09,0x12,0xA4,
+ 0x28,0x90,0x44,0x2C,0x74,0xFE,0xF0,0x90,
+ 0x44,0x30,0xE0,0xB4,0x01,0x17,0x90,0xF5,
+ 0x4E,0xE0,0x64,0x01,0x60,0x0F,0xA3,0xE0,
+ 0x64,0x01,0x60,0x09,0x12,0xA4,0x28,0x90,
+ 0x44,0x2C,0x74,0xFE,0xF0,0x90,0x44,0x2C,
+ 0xE0,0x04,0xF0,0xE0,0xC3,0x94,0xFA,0x50,
+ 0x03,0x02,0x93,0xA4,0x90,0x44,0x30,0x74,
+ 0x01,0xF0,0x90,0x42,0x11,0xE0,0x64,0x01,
+ 0x60,0x09,0x90,0x44,0xA0,0xE0,0x70,0x03,
+ 0x12,0x72,0x42,0x90,0x43,0x3D,0x74,0x01,
+ 0xF0,0x22,0xE4,0xFF,0x90,0x44,0x32,0xF0,
+ 0xA3,0xF0,0xA3,0xF0,0x90,0xF9,0x00,0xE0,
+ 0x70,0x08,0x90,0x44,0x35,0x74,0x2D,0xF0,
+ 0x80,0x15,0x90,0xF9,0x00,0xE0,0xB4,0x02,
+ 0x08,0x90,0x44,0x35,0x74,0x59,0xF0,0x80,
+ 0x06,0x90,0x44,0x35,0x74,0xB1,0xF0,0x90,
+ 0xF5,0x56,0xE4,0xF0,0xFF,0x90,0x44,0x35,
+ 0xE0,0xFE,0xEF,0xC3,0x9E,0x40,0x03,0x02,
+ 0x95,0xEE,0x90,0xF6,0x56,0xEF,0xF0,0x90,
+ 0xF6,0x5A,0x74,0x01,0xF0,0x90,0xF6,0x5A,
+ 0xE0,0x70,0xFA,0x90,0xF6,0x5E,0xE0,0x90,
+ 0x44,0x31,0xF0,0x90,0x44,0x2F,0xE0,0xC3,
+ 0x94,0xC8,0x50,0x25,0x90,0x41,0xD9,0xE0,
+ 0xB4,0x01,0x1E,0xEF,0xC3,0x94,0x0E,0x40,
+ 0x0C,0x90,0x44,0x35,0xE0,0x24,0xF2,0xFE,
+ 0xEF,0xD3,0x9E,0x40,0x06,0x90,0x44,0x31,
+ 0x74,0x01,0xF0,0x90,0x44,0x2F,0xE0,0x04,
+ 0xF0,0x90,0x44,0x31,0xE0,0x60,0x17,0x90,
+ 0x44,0x33,0xE0,0xFE,0x74,0x01,0xA8,0x06,
+ 0x08,0x80,0x02,0xC3,0x33,0xD8,0xFC,0xFE,
+ 0x90,0x44,0x32,0xE0,0x2E,0xF0,0x90,0x44,
+ 0x33,0xE0,0x04,0xF0,0xE0,0x64,0x08,0x60,
+ 0x05,0xA3,0xE0,0xB4,0x16,0x1B,0x90,0x44,
+ 0x34,0xE0,0x90,0xF5,0x57,0xF0,0x90,0x44,
+ 0x32,0xE0,0x90,0xF5,0x55,0xF0,0xE4,0x90,
+ 0x44,0x32,0xF0,0xA3,0xF0,0xA3,0xE0,0x04,
+ 0xF0,0x0F,0x02,0x95,0x4E,0x90,0xF5,0x56,
+ 0x74,0x01,0xF0,0x22,0x90,0xF9,0x00,0xE0,
+ 0xB4,0x01,0x10,0x90,0x44,0x6B,0x74,0x0C,
+ 0xF0,0xA3,0x74,0x1A,0xF0,0xA3,0x74,0xA1,
+ 0xF0,0x80,0x24,0x90,0xF9,0x00,0xE0,0x70,
+ 0x10,0x90,0x44,0x6B,0x74,0x0A,0xF0,0xA3,
+ 0x74,0x06,0xF0,0xA3,0x74,0xA9,0xF0,0x80,
+ 0x0E,0x90,0x44,0x6B,0x74,0x0B,0xF0,0xA3,
+ 0x74,0x0D,0xF0,0xA3,0x74,0x51,0xF0,0xE4,
+ 0xFF,0x7F,0x08,0x90,0x44,0x71,0xE4,0xF0,
+ 0xA3,0xDF,0xFC,0x7F,0x08,0x90,0xF4,0xC1,
+ 0xE0,0x14,0x60,0x12,0x14,0x60,0x41,0x24,
+ 0x02,0x70,0x6E,0x90,0x44,0x69,0x74,0xB5,
+ 0xF0,0xA3,0x74,0x08,0xF0,0x22,0x90,0xF4,
+ 0xC6,0xE0,0x14,0x60,0x0A,0x14,0x60,0x12,
+ 0x14,0x60,0x1A,0x24,0x03,0x70,0x52,0x90,
+ 0x44,0x69,0x74,0xA2,0xF0,0xA3,0x74,0x09,
+ 0xF0,0x22,0x90,0x44,0x69,0x74,0xE5,0xF0,
+ 0xA3,0x74,0x0A,0xF0,0x22,0x90,0x44,0x69,
+ 0x74,0x8E,0xF0,0xA3,0x74,0x0A,0xF0,0x22,
+ 0x90,0xF4,0xC6,0xE0,0x14,0x60,0x0A,0x14,
+ 0x60,0x12,0x14,0x60,0x1A,0x24,0x03,0x70,
+ 0x20,0x90,0x44,0x69,0x74,0x9E,0xF0,0xA3,
+ 0x74,0x0A,0xF0,0x22,0x90,0x44,0x69,0x74,
+ 0x84,0xF0,0xA3,0x74,0x0A,0xF0,0x22,0x90,
+ 0x44,0x69,0x74,0xC5,0xF0,0xA3,0x74,0x0B,
+ 0xF0,0x22,0x90,0xFD,0x47,0xE0,0x90,0x44,
+ 0x55,0xF0,0x90,0xFD,0x46,0xE0,0x90,0x44,
+ 0x56,0xF0,0x90,0xFD,0x45,0xE0,0x90,0x44,
+ 0x57,0xF0,0x90,0xFD,0x44,0xE0,0x90,0x44,
+ 0x58,0xF0,0x90,0x44,0x55,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x90,0x44,0x6B,0xE0,0xF9,0xF8,0x12,0xAA,
+ 0x55,0x90,0x44,0x55,0x12,0xAA,0x8F,0x22,
+ 0xE4,0x90,0x44,0x51,0xF0,0x90,0xF5,0xD6,
+ 0xE0,0x90,0x44,0x52,0xF0,0x90,0xF5,0xD5,
+ 0xE0,0x90,0x44,0x53,0xF0,0x90,0xF5,0xD4,
+ 0xE0,0x90,0x44,0x54,0xF0,0x22,0xE4,0x90,
+ 0x44,0x7D,0xF0,0x90,0x44,0x7C,0xF0,0x90,
+ 0x44,0x7B,0xF0,0x22,0x90,0x44,0x7D,0xE0,
+ 0xB4,0x64,0x22,0x90,0x44,0x7C,0xE0,0xD3,
+ 0x94,0x05,0x40,0x11,0x90,0x44,0x7B,0xE0,
+ 0xD3,0x94,0x05,0x40,0x08,0x90,0x44,0x48,
+ 0x74,0x01,0xF0,0x80,0x05,0xE4,0x90,0x44,
+ 0x48,0xF0,0x12,0x97,0x17,0x90,0x44,0x7D,
+ 0xE0,0x04,0xF0,0x12,0x97,0x58,0x22,0x90,
+ 0xF5,0xCC,0xE4,0xF0,0xA3,0x74,0x02,0xF0,
+ 0x90,0xF5,0xD4,0xE0,0x90,0x44,0x54,0xF0,
+ 0x90,0xF5,0xCB,0xE0,0xB4,0x01,0xF9,0x12,
+ 0x96,0xF9,0x90,0xFD,0x33,0xE4,0xF0,0x04,
+ 0xF0,0x90,0xFD,0x36,0xE0,0xB4,0x01,0xF9,
+ 0x12,0x96,0xBB,0x90,0x44,0x51,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0x90,0x44,0x55,0xE0,0xF8,0xA3,0xE0,
+ 0xF9,0xA3,0xE0,0xFA,0xA3,0xE0,0xFB,0xC3,
+ 0x12,0xAA,0x44,0x50,0x06,0x90,0x44,0x7C,
+ 0xE0,0x04,0xF0,0x90,0x44,0x51,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,
+ 0xFF,0x78,0x02,0x12,0xAA,0x68,0x90,0x44,
+ 0x51,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0x2F,0xFF,0xEA,0x3E,0xFE,
+ 0xE9,0x3D,0xFD,0xE8,0x3C,0xFC,0x90,0x44,
+ 0x55,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0xD3,0x12,0xAA,0x44,
+ 0x40,0x06,0x90,0x44,0x7B,0xE0,0x04,0xF0,
+ 0x22,0x90,0xF5,0xCB,0xE0,0xB4,0x01,0xF9,
+ 0x90,0xF5,0xD0,0xE0,0x90,0x44,0x4A,0xF0,
+ 0x90,0xF5,0xCF,0xE0,0x90,0x44,0x4B,0xF0,
+ 0x90,0xF5,0xCE,0xE0,0x90,0x44,0x4C,0xF0,
+ 0x90,0x44,0x49,0xE0,0xFC,0xA3,0xE0,0xFD,
+ 0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,0x78,0x0A,
+ 0x12,0xAA,0x7C,0x78,0x0A,0x12,0xAA,0x68,
+ 0x90,0x44,0x49,0x12,0xAA,0x8F,0x90,0x44,
+ 0x69,0xE0,0xFF,0xE4,0xFC,0xFD,0xFE,0x90,
+ 0x44,0x49,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,
+ 0xE0,0xFA,0xA3,0xE0,0xFB,0x12,0xA9,0xD1,
+ 0x90,0x44,0x6A,0xE0,0xF9,0xF8,0x12,0xAA,
+ 0x68,0x90,0x44,0x49,0x12,0xAA,0x8F,0x90,
+ 0xF5,0xD3,0xE0,0x90,0x44,0x4E,0xF0,0x90,
+ 0xF5,0xD2,0xE0,0x90,0x44,0x4F,0xF0,0x90,
+ 0xF5,0xD1,0xE0,0x90,0x44,0x50,0xF0,0x90,
+ 0x44,0x4D,0xE0,0xFC,0xA3,0xE0,0xFD,0xA3,
+ 0xE0,0xFE,0xA3,0xE0,0xFF,0x78,0x0A,0x12,
+ 0xAA,0x7C,0x78,0x0A,0x12,0xAA,0x68,0x90,
+ 0x44,0x4D,0x12,0xAA,0x8F,0x90,0x44,0x69,
+ 0xE0,0xFF,0xE4,0xFC,0xFD,0xFE,0x90,0x44,
+ 0x4D,0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,
+ 0xFA,0xA3,0xE0,0xFB,0x12,0xA9,0xD1,0x90,
+ 0x44,0x6A,0xE0,0xF9,0xF8,0x12,0xAA,0x68,
+ 0x90,0x44,0x4D,0x12,0xAA,0x8F,0x22,0x90,
+ 0x44,0x45,0xE0,0x90,0xF5,0xCC,0xF0,0x90,
+ 0x44,0x44,0xE0,0x54,0x1F,0x90,0xF5,0xCD,
+ 0xF0,0x90,0xF5,0xD4,0xE0,0x90,0x44,0x54,
+ 0xF0,0x90,0xF5,0xCB,0xE0,0xB4,0x01,0xF9,
+ 0x22,0x90,0x42,0x3B,0xE0,0x70,0x03,0x02,
+ 0x99,0xC6,0x90,0x44,0xAE,0x74,0x08,0xF0,
+ 0xE4,0x90,0x44,0x3E,0xF0,0x90,0x44,0xAE,
+ 0xE0,0xFF,0x90,0x44,0x3E,0xE0,0xFE,0xC3,
+ 0x9F,0x50,0x6C,0xEE,0xFF,0x7E,0x00,0x7C,
+ 0x02,0x7D,0x58,0x12,0xA9,0x34,0xEF,0x24,
+ 0x64,0xFF,0xE4,0x3E,0x90,0x44,0x44,0xF0,
+ 0xA3,0xEF,0xF0,0x12,0xA4,0x59,0x90,0x44,
+ 0xAF,0xE0,0x70,0x43,0x05,0x2C,0x12,0x96,
+ 0xF9,0x90,0x44,0x3E,0xE0,0x70,0x03,0x12,
+ 0xA4,0xE8,0x90,0x44,0x55,0xE0,0xFC,0xA3,
+ 0xE0,0xFD,0xA3,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x78,0x04,0x12,0xAA,0x55,0x90,0x44,0x51,
+ 0xE0,0xF8,0xA3,0xE0,0xF9,0xA3,0xE0,0xFA,
+ 0xA3,0xE0,0xFB,0xC3,0x12,0xAA,0x44,0x50,
+ 0x0E,0x90,0x44,0x43,0xE0,0x04,0xF0,0x70,
+ 0x06,0x90,0x44,0x42,0xE0,0x04,0xF0,0x90,
+ 0x44,0x3E,0xE0,0x04,0xF0,0x80,0x86,0x90,
+ 0x44,0x46,0xE0,0x04,0xF0,0xE0,0x64,0x64,
+ 0x70,0x53,0x90,0xF9,0x00,0xE0,0x60,0x08,
+ 0x90,0x44,0x7E,0x74,0x28,0xF0,0x80,0x06,
+ 0x90,0x44,0x7E,0x74,0x3E,0xF0,0x90,0x42,
+ 0x2F,0x74,0x01,0xF0,0x90,0x44,0x7E,0xE0,
+ 0xFF,0xD3,0x90,0x44,0x43,0xE0,0x9F,0x90,
+ 0x44,0x42,0xE0,0x94,0x00,0x40,0x0B,0xE4,
+ 0x90,0x41,0xE8,0xF0,0x90,0x41,0xE9,0xF0,
+ 0x80,0x0A,0x90,0x41,0xE8,0x74,0x01,0xF0,
+ 0x90,0x41,0xE9,0xF0,0x90,0x44,0x47,0xE0,
+ 0x04,0xF0,0xE4,0x90,0x44,0x42,0xF0,0xA3,
+ 0xF0,0x90,0x44,0x46,0xF0,0x12,0x99,0xCA,
+ 0x22,0x90,0x42,0x2F,0xE0,0x60,0x33,0x90,
+ 0xF0,0x2B,0xE0,0x70,0x21,0x90,0x43,0xC4,
+ 0xE0,0x70,0x0C,0x90,0x41,0xE0,0xE0,0x60,
+ 0x06,0x90,0xF9,0x00,0xE0,0x70,0x0F,0x90,
+ 0x41,0xE8,0xE0,0x70,0x09,0x90,0xF7,0x84,
+ 0xF0,0x90,0xF7,0x83,0xF0,0x22,0x90,0xF7,
+ 0x84,0x74,0x01,0xF0,0x90,0xF7,0x83,0x74,
+ 0xFF,0xF0,0x22,0xE4,0x90,0x44,0x70,0xF0,
+ 0x90,0x44,0x6E,0xF0,0xA3,0xF0,0x12,0x95,
+ 0xF5,0x22,0x90,0xF9,0x00,0xE0,0x70,0x19,
+ 0x90,0x44,0x44,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x7C,0x06,0x7D,0xA8,0x12,0xA9,0x46,0x90,
+ 0x44,0x44,0xEC,0xF0,0xA3,0xED,0xF0,0x80,
+ 0x1E,0x90,0xF9,0x00,0xE0,0xB4,0x02,0x17,
+ 0x90,0x44,0x44,0xE0,0xFE,0xA3,0xE0,0xFF,
+ 0x7C,0x0D,0x7D,0x50,0x12,0xA9,0x46,0x90,
+ 0x44,0x44,0xEC,0xF0,0xA3,0xED,0xF0,0x12,
+ 0x98,0xB8,0x22,0x22,0xE4,0xFB,0xEB,0x25,
+ 0xE0,0x24,0x7F,0xF5,0x82,0xE4,0x34,0x44,
+ 0xF5,0x83,0xE0,0xFF,0xA3,0xE0,0x90,0x44,
+ 0x44,0xCF,0xF0,0xA3,0xEF,0xF0,0x12,0x9A,
+ 0x13,0x90,0xF5,0xD0,0xE0,0xFF,0xC4,0x13,
+ 0x54,0x07,0xFF,0x90,0xF5,0xD3,0xE0,0xFE,
+ 0xC4,0x13,0x54,0x07,0x6F,0x60,0x0D,0x74,
+ 0x71,0x2B,0xF5,0x82,0xE4,0x34,0x44,0xF5,
+ 0x83,0xE0,0x04,0xF0,0x0B,0xEB,0xB4,0x08,
+ 0xBD,0x90,0x44,0x6F,0xE0,0x04,0xF0,0xE0,
+ 0xC3,0x94,0x13,0x40,0x3D,0xE4,0xFF,0xFB,
+ 0x74,0x71,0x2B,0xF5,0x82,0xE4,0x34,0x44,
+ 0xF5,0x83,0xE0,0xFE,0xD3,0x94,0x0E,0x50,
+ 0x06,0xEE,0xC3,0x94,0x05,0x50,0x01,0x0F,
+ 0x74,0x71,0x2B,0xF5,0x82,0xE4,0x34,0x44,
+ 0xF5,0x83,0xE4,0xF0,0x0B,0xEB,0xB4,0x08,
+ 0xD7,0xEF,0xD3,0x94,0x06,0x40,0x06,0x90,
+ 0x42,0x3C,0x74,0x01,0xF0,0xE4,0x90,0x44,
+ 0x6F,0xF0,0x22,0x90,0x42,0x3A,0xE0,0xB4,
+ 0x01,0x1F,0x90,0xF0,0x2B,0xE0,0x70,0x19,
+ 0x12,0x9A,0x55,0x90,0x42,0x3C,0xE0,0xB4,
+ 0x01,0x0F,0x12,0x9A,0x04,0x90,0xFD,0x0F,
+ 0x74,0x07,0xF0,0x90,0xFD,0x29,0x74,0x01,
+ 0xF0,0x22,0x90,0xF7,0x66,0xE0,0x90,0x44,
+ 0x3F,0xF0,0xE0,0xFF,0x90,0x42,0x47,0xF0,
+ 0x90,0xF7,0x68,0xE0,0x90,0x44,0x9D,0xF0,
+ 0xEF,0x70,0x04,0x90,0x44,0x97,0xF0,0x90,
+ 0xF7,0x65,0xE0,0x90,0x44,0x9C,0xF0,0x90,
+ 0xF5,0xA9,0xE0,0x70,0x22,0x90,0xF7,0x63,
+ 0xE0,0x90,0x42,0x2F,0xF0,0x90,0xF7,0x64,
+ 0xE0,0x90,0x41,0xE8,0xF0,0x12,0x70,0x6A,
+ 0x90,0x44,0x3F,0xE0,0x90,0x41,0xD1,0xF0,
+ 0xE4,0x90,0x42,0x46,0xF0,0x80,0x0A,0x90,
+ 0x41,0xD1,0x74,0x01,0xF0,0x90,0x42,0x46,
+ 0xF0,0x12,0x99,0xCA,0x04,0x12,0x6E,0x75,
+ 0x90,0xF7,0x69,0xE0,0x70,0xFA,0x90,0xF7,
+ 0x6B,0x74,0x01,0xF0,0xE4,0xF0,0x22,0x90,
+ 0x42,0x3F,0xE0,0x64,0x01,0x70,0x42,0x90,
+ 0xFD,0x9D,0xE0,0xFE,0x90,0xFD,0x9C,0xE0,
+ 0x7C,0x00,0x24,0x00,0xFF,0xEC,0x3E,0xFE,
+ 0xC3,0xEF,0x94,0x46,0xEE,0x94,0x00,0x50,
+ 0x28,0x90,0xFD,0x37,0xE0,0x64,0x07,0x70,
+ 0x20,0x90,0xFD,0x29,0xF0,0x90,0x42,0x3D,
+ 0xF0,0x90,0xFD,0x2B,0xF0,0x7D,0xFF,0x7C,
+ 0x7F,0xFF,0x12,0x47,0xAD,0x90,0xF1,0x1A,
+ 0xE0,0x70,0xFA,0x90,0xFD,0x2B,0x74,0x01,
+ 0xF0,0x22,0xE5,0x0F,0x14,0xB4,0x08,0x00,
+ 0x50,0x5D,0x90,0x9B,0xD9,0x75,0xF0,0x03,
+ 0xA4,0xC5,0x83,0x25,0xF0,0xC5,0x83,0x73,
+ 0x02,0x9B,0xF1,0x02,0x9B,0xF8,0x02,0x9B,
+ 0xFF,0x02,0x9C,0x06,0x02,0x9C,0x0D,0x02,
+ 0x9C,0x14,0x02,0x9C,0x1B,0x02,0x9C,0x22,
+ 0x90,0xF2,0x1B,0x74,0x01,0xF0,0x22,0x90,
+ 0xF2,0x1B,0x74,0x02,0xF0,0x22,0x90,0xF2,
+ 0x1B,0x74,0x03,0xF0,0x22,0x90,0xF2,0x1B,
+ 0x74,0x04,0xF0,0x22,0x90,0xF2,0x1B,0x74,
+ 0x05,0xF0,0x22,0x90,0xF2,0x1B,0x74,0x06,
+ 0xF0,0x22,0x90,0xF2,0x1B,0x74,0x07,0xF0,
+ 0x22,0x90,0xF2,0x1B,0x74,0x08,0xF0,0x22,
+ 0xC2,0xAF,0x90,0x42,0x2F,0xE0,0x90,0xF7,
+ 0x5A,0xF0,0x90,0x41,0xE9,0xE0,0x90,0xF7,
+ 0x5B,0xF0,0x90,0x42,0x37,0xE0,0x90,0xF7,
+ 0x5C,0xF0,0xA3,0xEF,0xF0,0x90,0xF9,0x00,
+ 0xE0,0x90,0xF7,0x5E,0xF0,0x90,0x41,0xDF,
+ 0xE0,0x90,0xF7,0x5F,0xF0,0x90,0xF7,0x61,
+ 0x74,0x01,0xF0,0x90,0xF7,0x60,0xF0,0x7F,
+ 0x00,0x7E,0x28,0x12,0x47,0x76,0x90,0xF7,
+ 0x61,0xE4,0xF0,0x90,0xF7,0x60,0xF0,0xD2,
+ 0xAF,0x22,0x90,0xF5,0xA8,0xE4,0xF0,0x12,
+ 0x48,0xAC,0x22,0x12,0x9C,0xE6,0x90,0xF7,
+ 0x42,0xE0,0x90,0x44,0x99,0xF0,0xE0,0x90,
+ 0xF9,0x00,0xF0,0x90,0xF7,0x44,0xE0,0xFF,
+ 0x90,0xF9,0x08,0xF0,0x90,0xF7,0x43,0xE0,
+ 0xFF,0x90,0xF9,0x03,0xF0,0x90,0xF7,0x46,
+ 0xE0,0xFF,0x90,0xF9,0x06,0xF0,0x90,0xF7,
+ 0x47,0xE0,0xFF,0x90,0xF9,0x07,0xF0,0x90,
+ 0xF7,0x45,0xE0,0x54,0x03,0xFF,0x90,0xF9,
+ 0x02,0xF0,0x70,0x05,0x90,0xF9,0x05,0x04,
+ 0xF0,0x22,0xE4,0xFF,0xFE,0xC3,0xEF,0x94,
+ 0xFF,0xEE,0x64,0x80,0x94,0x7F,0x50,0x14,
+ 0xEF,0x24,0x58,0xFD,0xEE,0x34,0xF7,0x8D,
+ 0x82,0xF5,0x83,0xE4,0xF0,0x0F,0xBF,0x00,
+ 0x01,0x0E,0x80,0xE1,0x22,0x90,0xF5,0xB0,
+ 0xE0,0x60,0x0C,0x90,0xF9,0x00,0xE0,0xFF,
+ 0x90,0xF7,0x42,0xE0,0xB5,0x07,0x0D,0xE5,
+ 0x0F,0xB4,0x03,0x20,0x90,0xF7,0x42,0xE0,
+ 0x64,0x01,0x60,0x18,0x12,0x68,0xE0,0x75,
+ 0x0F,0x01,0x12,0x4D,0x1F,0x53,0x91,0xBF,
+ 0xE4,0x90,0x44,0x98,0xF0,0xD2,0xEA,0xD2,
+ 0xE9,0x12,0xA4,0x1A,0x90,0x44,0x97,0x74,
+ 0x01,0xF0,0x22,0x90,0xFB,0x96,0xE0,0x30,
+ 0xE7,0x16,0xE4,0x90,0x42,0x37,0xF0,0x12,
+ 0x70,0xEE,0xE4,0x90,0x44,0xB2,0xF0,0xF5,
+ 0x2E,0x7F,0x80,0x7E,0x13,0x12,0x47,0x76,
+ 0x90,0xFB,0x88,0x74,0x01,0xF0,0x22,0x90,
+ 0xF0,0x02,0xE0,0xF5,0x12,0xA3,0xE0,0xF5,
+ 0x11,0xE0,0x60,0x04,0x7F,0xFF,0x80,0x05,
+ 0x90,0xF0,0x02,0xE0,0xFF,0x90,0x42,0x44,
+ 0xEF,0xF0,0x90,0xF0,0x63,0xE0,0x90,0x44,
+ 0x9E,0xF0,0x90,0xF0,0x62,0xE0,0x90,0x44,
+ 0x9F,0xF0,0x90,0x44,0xA3,0xE0,0xFB,0x7A,
+ 0x00,0x90,0x44,0x9F,0xE0,0x2B,0xFE,0x90,
+ 0x44,0x9E,0xE0,0x3A,0x90,0x44,0xA5,0xF0,
+ 0xA3,0xCE,0xF0,0xC3,0x90,0x44,0x9F,0xE0,
+ 0x9B,0xFE,0x90,0x44,0x9E,0xE0,0x9A,0x90,
+ 0x44,0xA7,0xF0,0xA3,0xCE,0xF0,0x90,0x44,
+ 0xA6,0xE0,0x25,0xE0,0xFF,0x90,0x44,0xA5,
+ 0xE0,0x33,0xFE,0xD3,0xE5,0x12,0x9F,0xE5,
+ 0x11,0x9E,0x40,0x05,0x75,0x13,0xFC,0x80,
+ 0x44,0xC3,0x90,0x44,0xA6,0xE0,0x95,0x12,
+ 0x90,0x44,0xA5,0xE0,0x95,0x11,0x50,0x05,
+ 0x75,0x13,0xFF,0x80,0x30,0x90,0x44,0xA7,
+ 0xE0,0xC3,0x13,0xFE,0xA3,0xE0,0x13,0xFF,
+ 0xC3,0xE5,0x12,0x9F,0xE5,0x11,0x9E,0x50,
+ 0x05,0x75,0x13,0x04,0x80,0x17,0xD3,0x90,
+ 0x44,0xA8,0xE0,0x95,0x12,0x90,0x44,0xA7,
+ 0xE0,0x95,0x11,0x40,0x05,0x75,0x13,0x01,
+ 0x80,0x03,0xE4,0xF5,0x13,0x90,0xF0,0x01,
+ 0x74,0x01,0xF0,0x22,0x90,0x42,0x5A,0xEF,
+ 0xF0,0x90,0x44,0x92,0xE0,0x6F,0x60,0x19,
+ 0x90,0x41,0xDB,0xE0,0xB4,0x23,0x12,0xC2,
+ 0xAF,0x90,0x44,0x92,0xEF,0xF0,0x90,0xFB,
+ 0x97,0xF0,0x7F,0x10,0x12,0x89,0x23,0xD2,
+ 0xAF,0x22,0x90,0x41,0xDB,0xE0,0x64,0x23,
+ 0x70,0x44,0x90,0x41,0xEC,0xE0,0x70,0x3E,
+ 0x90,0x41,0xD9,0x04,0xF0,0x90,0x41,0xE0,
+ 0xE0,0xB4,0x01,0x13,0x90,0x44,0x90,0x74,
+ 0x0E,0xF0,0x7F,0x82,0x12,0x89,0x23,0x90,
+ 0x41,0xE7,0x74,0x01,0xF0,0x80,0x06,0x90,
+ 0x44,0x90,0x74,0x0B,0xF0,0x7F,0x81,0x12,
+ 0x89,0x23,0x90,0x41,0xD7,0x74,0x01,0xF0,
+ 0x90,0x44,0x92,0x74,0xFF,0xF0,0x90,0x44,
+ 0x90,0xE0,0xFF,0x12,0x9E,0x05,0x22,0x90,
+ 0x42,0x4E,0xE0,0x60,0x06,0x90,0xFB,0x2A,
+ 0x74,0x71,0xF0,0x90,0xFB,0x97,0xE4,0xF0,
+ 0x7F,0x11,0x12,0x89,0x23,0x74,0xFF,0xFF,
+ 0xFE,0x12,0x47,0x76,0x74,0xFF,0xFF,0xFE,
+ 0x12,0x47,0x76,0x90,0xFB,0x08,0xE0,0xFE,
+ 0x90,0xFB,0x07,0xE0,0x7C,0x00,0x24,0x00,
+ 0xF5,0x1E,0xEC,0x3E,0xF5,0x1D,0x90,0x42,
+ 0x00,0xE5,0x1E,0xF0,0x90,0xFB,0x97,0x74,
+ 0x01,0xF0,0x7F,0x11,0x12,0x89,0x23,0x90,
+ 0x42,0x4E,0xE0,0x60,0x06,0x90,0xFB,0x2A,
+ 0x74,0x75,0xF0,0x22,0x90,0xFB,0x08,0xE0,
+ 0x7F,0x00,0xFE,0x90,0xFB,0x07,0xE0,0x7A,
+ 0x00,0x24,0x00,0xFF,0xEA,0x3E,0xCF,0xC3,
+ 0x95,0x1E,0xCF,0x95,0x1D,0xFE,0x90,0x42,
+ 0x49,0xE0,0xF9,0xEF,0xA8,0x01,0x08,0x80,
+ 0x05,0xCE,0xC3,0x13,0xCE,0x13,0xD8,0xF9,
+ 0xFF,0x90,0xFB,0x28,0xE0,0xB4,0x86,0x13,
+ 0x90,0x42,0x04,0xE0,0xFE,0xA8,0x01,0x08,
+ 0x80,0x02,0xC3,0x13,0xD8,0xFC,0xFE,0xC3,
+ 0xEF,0x9E,0xFF,0x90,0x42,0x4E,0xE0,0x60,
+ 0x06,0xEF,0x7C,0x00,0xFD,0x80,0x14,0xEF,
+ 0x75,0xF0,0xAB,0xA4,0xAE,0xF0,0x78,0x06,
+ 0xCE,0xA2,0xE7,0x13,0xCE,0x13,0xD8,0xF8,
+ 0xFD,0xAC,0x06,0xAF,0x05,0x90,0x42,0x01,
+ 0xEF,0xF0,0x22,0xE5,0x18,0x90,0xF0,0x0E,
+ 0xF0,0xE5,0x17,0xFF,0x33,0x95,0xE0,0xA3,
+ 0xEF,0xF0,0xE5,0x1C,0xFD,0x90,0xF0,0x1B,
+ 0xF0,0xE5,0x1B,0xFF,0x33,0x95,0xE0,0xA3,
+ 0xEF,0xF0,0x90,0xF0,0x25,0xED,0xF0,0xA3,
+ 0xEF,0xF0,0x90,0xF0,0x2C,0x74,0x01,0xF0,
+ 0x22,0x90,0x41,0xDB,0xE0,0x64,0x23,0x70,
+ 0x58,0x90,0x41,0xE0,0xE0,0xB4,0x01,0x22,
+ 0x90,0x42,0x1B,0xE0,0x90,0xF0,0x0E,0xF0,
+ 0x90,0x42,0x1C,0xE0,0x90,0xF0,0x0F,0xF0,
+ 0x90,0x42,0x1D,0xE0,0x90,0xF0,0x1B,0xF0,
+ 0x90,0x42,0x1E,0xE0,0x90,0xF0,0x1C,0xF0,
+ 0x80,0x14,0x90,0xF0,0x0E,0x74,0xFF,0xF0,
+ 0xA3,0x74,0x01,0xF0,0x90,0xF0,0x1B,0x74,
+ 0xF0,0xF0,0xA3,0x74,0x01,0xF0,0x90,0xF0,
+ 0x1B,0xE0,0x90,0xF0,0x25,0xF0,0x90,0xF0,
+ 0x1C,0xE0,0x90,0xF0,0x26,0xF0,0x90,0xF0,
+ 0x2C,0x74,0x01,0xF0,0xE4,0x90,0x44,0x91,
+ 0xF0,0x22,0x90,0x41,0xEC,0xE0,0x60,0x03,
+ 0x02,0xA0,0xE3,0x90,0xF0,0x60,0xE0,0xC3,
+ 0x94,0xD5,0x50,0x41,0x90,0x42,0x5A,0xE0,
+ 0xF5,0x14,0x60,0x07,0x14,0xF0,0xE0,0xFF,
+ 0x12,0x9E,0x05,0x90,0xF0,0x60,0xE0,0xD3,
+ 0x94,0x60,0x40,0x03,0x02,0xA0,0x76,0x90,
+ 0x43,0x41,0x74,0x86,0xF0,0x90,0xFB,0x28,
+ 0xF0,0x90,0x41,0xD7,0xE0,0x70,0x6E,0x90,
+ 0xF0,0x60,0xE0,0xC3,0x94,0x50,0x50,0x65,
+ 0x7F,0x81,0x12,0x89,0x23,0x90,0x41,0xD7,
+ 0x74,0x01,0xF0,0x80,0x58,0x90,0xF0,0x60,
+ 0xE0,0xD3,0x94,0xDB,0x40,0x4F,0x90,0x44,
+ 0x91,0xE0,0x70,0x49,0x90,0x42,0x5A,0xE0,
+ 0xFF,0x12,0x9E,0x05,0x90,0x41,0xE0,0xE0,
+ 0xB4,0x01,0x04,0x7F,0x0E,0x80,0x02,0x7F,
+ 0x0B,0x90,0x42,0x5A,0xE0,0xC3,0x9F,0x50,
+ 0x03,0xE0,0x04,0xF0,0x90,0xF0,0x60,0xE0,
+ 0xC3,0x94,0xDF,0x40,0x20,0x90,0x43,0x41,
+ 0x74,0x82,0xF0,0x90,0xFB,0x28,0xF0,0x90,
+ 0x41,0xD7,0xE0,0x60,0x10,0x90,0x41,0xD9,
+ 0xE0,0x70,0x0A,0x7F,0x80,0x12,0x89,0x23,
+ 0xE4,0x90,0x41,0xD7,0xF0,0x90,0x41,0xE7,
+ 0xE0,0x60,0x46,0x90,0xF0,0x61,0xE0,0xD3,
+ 0x94,0xF3,0x40,0x06,0x90,0x41,0xD9,0xE0,
+ 0x60,0x26,0x90,0x41,0xD9,0xE0,0x60,0x31,
+ 0x90,0x44,0x91,0xE0,0x25,0xE0,0xFF,0xE4,
+ 0x33,0xFE,0xEF,0x24,0xA0,0xFF,0xE4,0x3E,
+ 0xFE,0x90,0xF0,0x61,0xE0,0xD3,0x9F,0xEE,
+ 0x64,0x80,0xF8,0x74,0x80,0x98,0x40,0x11,
+ 0x90,0x41,0xE0,0xE0,0xB4,0x01,0x05,0x7F,
+ 0x83,0x12,0x89,0x23,0xE4,0x90,0x41,0xE7,
+ 0xF0,0x90,0x41,0xE7,0xE0,0x70,0x1B,0x90,
+ 0xF0,0x61,0xE0,0xC3,0x94,0x63,0x50,0x12,
+ 0x90,0x41,0xE0,0xE0,0xB4,0x01,0x05,0x7F,
+ 0x82,0x12,0x89,0x23,0x90,0x41,0xE7,0x74,
+ 0x01,0xF0,0x90,0x41,0xED,0xE0,0x60,0x03,
+ 0x02,0xA2,0x58,0x12,0x9E,0xCD,0xEF,0xFB,
+ 0x90,0x41,0xD7,0xE0,0xFF,0xC3,0x74,0x01,
+ 0x9F,0xFF,0xE4,0x94,0x00,0xFE,0x90,0x42,
+ 0x14,0xE0,0xFD,0x7C,0x00,0x12,0xA9,0x34,
+ 0x90,0x42,0x17,0xE0,0x2F,0xFF,0xEC,0x3E,
+ 0xFE,0xD3,0xEB,0x9F,0xEE,0x64,0x80,0xF8,
+ 0x74,0x80,0x98,0x50,0x13,0x12,0x9E,0xCD,
+ 0x90,0x42,0x18,0xE0,0xFE,0xEF,0xD3,0x9E,
+ 0x40,0x78,0x90,0x41,0xD9,0xE0,0x60,0x72,
+ 0x90,0x42,0x5A,0xE0,0x60,0x6C,0x14,0xF0,
+ 0xE0,0xFF,0x12,0x9E,0x05,0x90,0x42,0x5A,
+ 0xE0,0xF5,0x14,0x90,0xF0,0x1C,0xE0,0xFE,
+ 0x90,0xF0,0x1B,0xE0,0x7C,0x00,0x24,0x00,
+ 0xF5,0x1C,0xEC,0x3E,0xF5,0x1B,0x74,0xFE,
+ 0x25,0x1C,0xF5,0x1C,0x74,0xFF,0x35,0x1B,
+ 0xF5,0x1B,0x90,0xF0,0x0F,0xE0,0xFE,0x90,
+ 0xF0,0x0E,0xE0,0x24,0x00,0xF5,0x18,0xEC,
+ 0x3E,0xF5,0x17,0x74,0xFE,0x25,0x18,0xF5,
+ 0x18,0x74,0xFF,0x35,0x17,0xF5,0x17,0x12,
+ 0x9F,0x3C,0x90,0x44,0x91,0xE0,0x04,0xF0,
+ 0x90,0x42,0x5A,0xE0,0xC3,0x94,0x03,0x50,
+ 0x11,0x90,0x41,0xD7,0xE0,0x70,0x0B,0x7F,
+ 0x81,0x12,0x89,0x23,0x90,0x41,0xD7,0x74,
+ 0x01,0xF0,0x12,0x9E,0xCD,0x90,0x42,0x19,
+ 0xE0,0xFE,0xEF,0xC3,0x9E,0x50,0x06,0x90,
+ 0x41,0xD9,0xE0,0x60,0x10,0x12,0x9E,0xCD,
+ 0x90,0x42,0x1A,0xE0,0xFE,0xEF,0xC3,0x9E,
+ 0x40,0x03,0x02,0xA2,0x58,0x90,0x41,0xE0,
+ 0xE0,0xB4,0x01,0x04,0x7F,0x0E,0x80,0x02,
+ 0x7F,0x0B,0x90,0x42,0x5A,0xE0,0xC3,0x9F,
+ 0x50,0x74,0x90,0x44,0x91,0xE0,0x60,0x77,
+ 0x90,0x42,0x5A,0xE0,0x04,0xF0,0xE0,0xFF,
+ 0x12,0x9E,0x05,0x90,0xF0,0x1C,0xE0,0xFE,
+ 0x90,0xF0,0x1B,0xE0,0x7C,0x00,0x24,0x00,
+ 0xF5,0x1C,0xEC,0x3E,0xF5,0x1B,0x74,0x02,
+ 0x25,0x1C,0xF5,0x1C,0xE4,0x35,0x1B,0xF5,
+ 0x1B,0x90,0xF0,0x0F,0xE0,0xFE,0x90,0xF0,
+ 0x0E,0xE0,0x24,0x00,0xF5,0x18,0xEC,0x3E,
+ 0xF5,0x17,0x74,0x02,0x25,0x18,0xF5,0x18,
+ 0xE4,0x35,0x17,0xF5,0x17,0x12,0x9F,0x3C,
+ 0x90,0x44,0x91,0xE0,0x14,0xF0,0x90,0x42,
+ 0x5A,0xE0,0xD3,0x94,0x0B,0x40,0x20,0x90,
+ 0x41,0xD7,0xE0,0x60,0x1A,0x90,0x44,0x91,
+ 0xE0,0x70,0x14,0x7F,0x80,0x12,0x89,0x23,
+ 0xE4,0x90,0x41,0xD7,0xF0,0x22,0x90,0x44,
+ 0x91,0xE0,0x60,0x03,0x12,0x9F,0x6A,0x22,
+ 0x90,0xF0,0x2B,0xE0,0x70,0x0E,0x90,0x43,
+ 0x3E,0xF0,0x90,0xFD,0x74,0xF0,0x90,0xF1,
+ 0xE9,0x04,0xF0,0x22,0x90,0xF1,0xE9,0xE4,
+ 0xF0,0x90,0xFD,0x74,0x04,0xF0,0x22,0xE5,
+ 0x0F,0xB4,0x02,0x05,0xE4,0x90,0x44,0xA1,
+ 0xF0,0x90,0x41,0xF5,0xE0,0x70,0x0A,0xF5,
+ 0x21,0xF5,0x22,0xF5,0x24,0xF5,0x25,0xF5,
+ 0x23,0x90,0x42,0x58,0xE0,0x60,0x05,0xE4,
+ 0xF5,0x2A,0xF5,0x2B,0x22,0xE5,0x22,0xD3,
+ 0x94,0x00,0x40,0x23,0x90,0x42,0x44,0xE0,
+ 0xFE,0xE5,0x23,0xD3,0x9E,0x40,0x06,0xE5,
+ 0x23,0x9E,0xFF,0x80,0x08,0x90,0x42,0x44,
+ 0xE0,0xC3,0x95,0x23,0xFF,0xEF,0x25,0x25,
+ 0xF5,0x25,0xE4,0x35,0x24,0xF5,0x24,0x90,
+ 0x42,0x44,0xE0,0xF5,0x23,0x22,0x90,0x42,
+ 0x05,0xE0,0xFD,0x90,0x42,0x06,0xE0,0x8D,
+ 0xF0,0xA4,0xFF,0xD3,0xE5,0x25,0x9F,0xE5,
+ 0x24,0x95,0xF0,0x40,0x08,0x90,0xF0,0x2B,
+ 0x74,0x01,0xF0,0x80,0x17,0x90,0x42,0x07,
+ 0xE0,0x8D,0xF0,0xA4,0xFF,0xC3,0xE5,0x25,
+ 0x9F,0xE5,0x24,0x95,0xF0,0x50,0x05,0x90,
+ 0xF0,0x2B,0xE4,0xF0,0x90,0xF0,0x2B,0xE0,
+ 0x60,0x0D,0x90,0x44,0xA3,0x74,0x15,0xF0,
+ 0x90,0xF7,0x0B,0x74,0x0B,0xF0,0x22,0x90,
+ 0x42,0x2D,0xE0,0x90,0x44,0xA3,0xF0,0x90,
+ 0xF7,0x0B,0x74,0x2B,0xF0,0x22,0xE5,0x0F,
+ 0xD3,0x94,0x02,0x40,0x37,0xE5,0x21,0xB4,
+ 0x01,0x03,0x12,0xA2,0x78,0xE5,0x21,0x70,
+ 0x21,0x90,0x42,0x05,0xE0,0xFF,0xE5,0x22,
+ 0xC3,0x9F,0x50,0x0A,0x12,0xA2,0x9E,0x12,
+ 0xA3,0x66,0x05,0x22,0x80,0x0C,0x75,0x21,
+ 0x01,0x12,0xA3,0xCC,0x12,0xA2,0xCF,0x12,
+ 0xA2,0x59,0x90,0x41,0xDB,0xE0,0xB4,0x2E,
+ 0x03,0x12,0x88,0x8B,0x22,0x90,0xF1,0x61,
+ 0xE0,0xFE,0x90,0xF1,0x60,0xE0,0x7C,0x00,
+ 0x24,0x00,0xFF,0xEC,0x3E,0x90,0x44,0x93,
+ 0xF0,0xA3,0xEF,0xF0,0x90,0x42,0x58,0xE0,
+ 0x60,0x48,0xE4,0xF5,0x26,0xF5,0x27,0x90,
+ 0xF2,0x10,0xE0,0xF5,0x28,0x90,0xF2,0x0F,
+ 0xE0,0xF5,0x29,0x90,0x42,0x44,0xE0,0xFF,
+ 0xE4,0xFC,0xFD,0xFE,0xAB,0x29,0xAA,0x28,
+ 0xA9,0x27,0xA8,0x26,0x12,0xA9,0xD1,0x8F,
+ 0x29,0x8E,0x28,0x8D,0x27,0x8C,0x26,0xAF,
+ 0x29,0xAE,0x28,0xAD,0x27,0xAC,0x26,0x90,
+ 0xF2,0x11,0xE0,0xF9,0xF8,0x12,0xAA,0x55,
+ 0xEF,0x25,0x2B,0xF5,0x2B,0xEE,0x35,0x2A,
+ 0xF5,0x2A,0x22,0x90,0x42,0x58,0xE0,0x60,
+ 0x40,0x90,0x44,0xA1,0xE0,0xFF,0xD3,0x94,
+ 0x01,0x50,0x07,0xEF,0x60,0x33,0x74,0x02,
+ 0xF0,0x22,0x85,0x2A,0x1F,0x85,0x2B,0x20,
+ 0xD3,0xE5,0x2B,0x94,0x50,0xE5,0x2A,0x94,
+ 0x07,0x40,0x08,0x90,0x41,0xD9,0x74,0x01,
+ 0xF0,0x80,0x10,0xC3,0xE5,0x2B,0x94,0x50,
+ 0xE5,0x2A,0x94,0x05,0x50,0x05,0xE4,0x90,
+ 0x41,0xD9,0xF0,0x90,0x44,0xA1,0x74,0x03,
+ 0xF0,0x22,0x90,0x41,0xE2,0x74,0x01,0xF0,
+ 0x22,0x7B,0x01,0x7A,0x43,0x79,0x49,0x7D,
+ 0x01,0x7C,0x00,0x12,0xAD,0x13,0x22,0xC2,
+ 0xAF,0x12,0x90,0x3D,0xD2,0xAF,0x22,0x90,
+ 0x41,0xE3,0xE0,0x60,0x0C,0x90,0x44,0xB1,
+ 0xE0,0x60,0x06,0x7F,0x1A,0x12,0x89,0x23,
+ 0x22,0xE4,0xFD,0xFF,0x12,0x49,0x27,0x90,
+ 0xFE,0x01,0xE0,0xFE,0xA3,0xE0,0xF4,0xFF,
+ 0xEE,0xF4,0xA3,0xF0,0xA3,0xEF,0xF0,0x22,
+ 0x90,0x44,0x46,0xE0,0x75,0xF0,0x05,0xA4,
+ 0xFF,0xAE,0xF0,0x90,0x44,0x45,0xE0,0x2F,
+ 0xF0,0x90,0x44,0x44,0xE0,0x3E,0xF0,0xE0,
+ 0xFE,0xA3,0xE0,0xFF,0x90,0x44,0x6C,0xE0,
+ 0xFC,0xA3,0xE0,0xFD,0x12,0xA9,0x46,0x90,
+ 0x44,0x44,0xEC,0xF0,0xA3,0xED,0xF0,0x90,
+ 0x44,0x44,0xE0,0xFE,0xA3,0xE0,0x78,0x05,
+ 0xCE,0xC3,0x13,0xCE,0x13,0xD8,0xF9,0xFF,
+ 0x90,0xF9,0x00,0xE0,0x70,0x08,0xEF,0x25,
+ 0xE0,0x25,0xE0,0xFF,0x80,0x0B,0x90,0xF9,
+ 0x00,0xE0,0xB4,0x02,0x04,0xEF,0x25,0xE0,
+ 0xFF,0x90,0x41,0xD9,0xE0,0x60,0x27,0xEF,
+ 0xC3,0x94,0x16,0x40,0x16,0xEF,0xD3,0x94,
+ 0x57,0x40,0x05,0xEF,0x94,0x6D,0x40,0x0B,
+ 0xEF,0xD3,0x94,0x7D,0x40,0x10,0xEF,0x94,
+ 0x8F,0x50,0x0B,0x90,0x44,0xAE,0xE0,0x04,
+ 0xF0,0xA3,0x74,0x01,0xF0,0x22,0xE4,0x90,
+ 0x44,0xAF,0xF0,0x12,0x98,0xB8,0x22,0x90,
+ 0xFD,0x33,0xE4,0xF0,0x04,0xF0,0x90,0xFD,
+ 0x36,0xE0,0xB4,0x01,0xF9,0x12,0x96,0xBB,
+ 0x22,0x7D,0xFE,0x7C,0x27,0xE4,0xFF,0x12,
+ 0x47,0xAD,0x90,0xF1,0x1A,0xE0,0x70,0xFA,
+ 0x22,0x90,0x44,0x97,0xE0,0x70,0x17,0x90,
+ 0xF9,0x99,0xE0,0x70,0x11,0x90,0xF9,0x00,
+ 0xE0,0x70,0x04,0x7F,0x01,0x80,0x02,0x7F,
+ 0x00,0x90,0xF9,0x00,0xEF,0xF0,0x90,0x44,
+ 0xAA,0xE0,0x04,0xF0,0xE4,0xF5,0x2D,0x90,
+ 0x43,0xFC,0xF0,0xF5,0x2E,0x90,0x42,0x37,
+ 0xF0,0x90,0xF7,0x0B,0x74,0x2F,0xF0,0x90,
+ 0x44,0xB3,0x74,0x01,0xF0,0xE4,0xA3,0xF0,
+ 0x90,0x42,0x38,0xE0,0x90,0x44,0xB2,0xF0,
+ 0xE4,0x90,0x41,0xD9,0xF0,0x90,0x41,0xDB,
+ 0xE0,0xB4,0x32,0x0C,0x90,0x44,0xA9,0xE0,
+ 0xB4,0x01,0x05,0x7F,0x87,0x12,0x89,0x23,
+ 0xE4,0x90,0x44,0xA9,0xF0,0x90,0x44,0xB5,
+ 0xF0,0x22,0xE4,0x90,0x44,0xAA,0xF0,0x90,
+ 0x41,0xDC,0xF0,0x90,0x44,0x9C,0xF0,0x22,
+ 0x90,0xF7,0x81,0x74,0x40,0xF0,0x90,0xFD,
+ 0xA4,0x74,0x0A,0xF0,0x22,0x90,0xF5,0xB0,
+ 0xE4,0xF0,0xE5,0x0F,0xB4,0x09,0x02,0x05,
+ 0x2D,0x90,0x41,0xE6,0xE0,0xFF,0xE5,0x2D,
+ 0x8F,0xF0,0x84,0x85,0xF0,0x2D,0x75,0x0F,
+ 0x08,0xE5,0x2D,0x60,0x0A,0x90,0xF5,0x4E,
+ 0xE0,0x60,0x04,0xA3,0xE0,0x70,0x06,0x75,
+ 0x0F,0x01,0x12,0x68,0xE0,0x90,0xF2,0x17,
+ 0x74,0xFE,0xF0,0x90,0x44,0xB3,0x74,0x01,
+ 0xF0,0xE4,0xA3,0xF0,0x22,0xE5,0x2D,0x70,
+ 0x06,0x12,0x6A,0xF0,0x12,0x6B,0x53,0x22,
+ 0x90,0x43,0xD5,0xE0,0xB4,0x01,0x0A,0x90,
+ 0x43,0xD8,0xE0,0x70,0x04,0x90,0x43,0x42,
+ 0xF0,0x90,0x44,0xB4,0xE0,0xFF,0x60,0x0F,
+ 0x90,0x41,0xF3,0xE0,0xFE,0xEF,0x6E,0x60,
+ 0x06,0x90,0x44,0xB3,0xE0,0xE4,0xF0,0x90,
+ 0x43,0xDA,0xE0,0x90,0x44,0xB4,0xF0,0x22,
+ 0x90,0x43,0x42,0x74,0x01,0xF0,0x22,0x90,
+ 0xF9,0x0B,0xE4,0xF0,0x90,0xF5,0xD7,0x04,
+ 0xF0,0x90,0xF5,0xD7,0xE0,0x70,0xFA,0x22,
+ 0x90,0x41,0xBD,0xE0,0x90,0xF1,0xE0,0xF0,
+ 0x90,0x41,0xBC,0xE0,0x90,0xF1,0xDF,0xF0,
+ 0x90,0x41,0xBB,0xE0,0x90,0xF1,0xDE,0xF0,
+ 0x90,0x41,0xBA,0xE0,0x90,0xF1,0xDD,0xF0,
+ 0x90,0xF1,0xDB,0x74,0x01,0xF0,0x90,0xF1,
+ 0xDC,0xE0,0x60,0xFA,0x90,0xF1,0xE4,0xE0,
+ 0x90,0xF9,0x13,0xF0,0x90,0xF1,0xE3,0xE0,
+ 0x90,0xF9,0x12,0xF0,0x90,0xF1,0xE2,0xE0,
+ 0x90,0xF9,0x11,0xF0,0x90,0xF1,0xE1,0xE0,
+ 0x90,0xF9,0x10,0xF0,0x90,0xF1,0xDB,0xE4,
+ 0xF0,0x22,0x90,0xF5,0xBB,0xE4,0xF0,0x90,
+ 0xF5,0xB1,0xF0,0x90,0xF5,0xC8,0xF0,0xE5,
+ 0x2D,0x60,0x36,0x12,0xA6,0x21,0x90,0xF9,
+ 0x0B,0x74,0x01,0xF0,0x90,0xF5,0xBB,0xE4,
+ 0xF0,0x90,0xF5,0xB1,0xF0,0x90,0xF5,0xC8,
+ 0xF0,0x90,0xF5,0x1D,0xE0,0x60,0xFA,0x7F,
+ 0x01,0x12,0x5C,0x30,0x90,0xF5,0xC2,0x74,
+ 0x01,0xF0,0xE4,0xF0,0x7F,0x02,0x12,0x6D,
+ 0xE8,0x12,0xA6,0x10,0x7F,0x02,0x12,0x6D,
+ 0xE8,0x22,0x12,0x95,0x1B,0x90,0xF5,0x4E,
+ 0xE0,0x70,0x04,0xA3,0xE0,0x60,0x0F,0x90,
+ 0xF5,0xBB,0xE0,0x70,0x09,0x12,0x6A,0xF0,
+ 0x90,0xF5,0xC8,0x74,0x01,0xF0,0xE5,0x2E,
+ 0xD3,0x94,0x01,0x40,0x13,0x90,0xF7,0x31,
+ 0xE0,0x60,0x05,0x7F,0x01,0x12,0x9C,0x29,
+ 0x90,0x42,0x38,0xE0,0x90,0x44,0xB2,0xF0,
+ 0x75,0x2E,0x01,0x90,0xF7,0x31,0xE0,0x60,
+ 0x28,0x90,0xF7,0x3B,0xE0,0x64,0x02,0x60,
+ 0x20,0xE0,0x64,0x03,0x60,0x1B,0xE0,0x64,
+ 0x04,0x60,0x16,0xC2,0xAF,0x90,0xF7,0x34,
+ 0x74,0x01,0xF0,0x7F,0x00,0x7E,0x28,0x12,
+ 0x47,0x76,0x90,0xF7,0x34,0xE4,0xF0,0xD2,
+ 0xAF,0x12,0x88,0x8B,0x22,0x12,0x86,0x81,
+ 0x05,0x2E,0x22,0xE4,0xF5,0x2E,0x90,0x44,
+ 0x9C,0xF0,0x22,0xC2,0xAF,0x90,0xF7,0x3D,
+ 0x74,0x01,0xF0,0x7F,0x00,0x7E,0x28,0x12,
+ 0x47,0x76,0xD2,0xAF,0x22,0x90,0x41,0xDA,
+ 0xE0,0xB4,0x01,0x1E,0x90,0xFB,0x28,0x74,
+ 0x42,0xF0,0x90,0xF0,0x80,0x74,0x01,0xF0,
+ 0x90,0x41,0xC0,0xE0,0xFF,0x25,0xE0,0x90,
+ 0xF1,0xA5,0xF0,0x90,0xF1,0xEA,0xE4,0xF0,
+ 0x04,0xF0,0x12,0x57,0xC2,0x90,0x41,0xDA,
+ 0xE0,0xB4,0x01,0x1A,0x90,0x41,0xC0,0xE0,
+ 0x90,0xF1,0xA5,0xF0,0x90,0xF1,0xEA,0xE4,
+ 0xF0,0x04,0xF0,0x90,0xFB,0x28,0x74,0x82,
+ 0xF0,0x90,0xF0,0x80,0xE4,0xF0,0x22,0x90,
+ 0xF6,0x2F,0x74,0x01,0xF0,0x75,0xF0,0x02,
+ 0xE5,0x0F,0xA4,0x24,0x79,0xF5,0x82,0xE5,
+ 0xF0,0x34,0xAD,0xF5,0x83,0xE4,0x93,0xFC,
+ 0x74,0x01,0x93,0xFD,0xE4,0xFF,0x12,0x47,
+ 0xAD,0x90,0xF6,0x2F,0xE0,0x64,0x01,0x60,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,
+ 0xF1,0x1A,0xE0,0x5F,0x70,0xEB,0x90,0xF6,
+ 0x2F,0xE0,0xB4,0x01,0x04,0x7F,0x01,0x80,
+ 0x02,0x7F,0x00,0x90,0x43,0x3D,0xEF,0xF0,
+ 0xE0,0x70,0x0A,0x90,0x42,0x40,0x04,0xF0,
+ 0x90,0xF6,0x25,0xE4,0xF0,0xD2,0xAF,0x22,
+ 0x90,0xF5,0x41,0xE4,0xF0,0x90,0xF6,0x5D,
+ 0xF0,0x90,0xF6,0x5C,0xF0,0x7F,0x55,0x7E,
+ 0x0D,0x12,0x47,0x76,0x90,0xF5,0x41,0x74,
+ 0x01,0xF0,0x22,0x90,0x43,0xAE,0xE0,0xFE,
+ 0xA3,0xE0,0xFF,0x90,0x44,0xB6,0xEE,0xF0,
+ 0xA3,0xEF,0xF0,0x90,0x43,0xAA,0xE0,0xFC,
+ 0xA3,0xE0,0xFD,0xA3,0xE0,0xFA,0xA3,0xE0,
+ 0xC3,0x9D,0xFD,0xEA,0x9C,0xA3,0xF0,0xA3,
+ 0xED,0xF0,0x90,0x43,0xAE,0xE0,0xFC,0xA3,
+ 0xE0,0xB5,0x07,0x0A,0xEC,0xB5,0x06,0x06,
+ 0x90,0x44,0xB5,0xE0,0x04,0xF0,0x90,0x43,
+ 0xB1,0xE0,0x60,0x04,0xA3,0xE0,0x70,0x09,
+ 0x90,0x44,0xB5,0xE0,0xC3,0x94,0x02,0x40,
+ 0x04,0x7F,0x01,0x80,0x02,0x7F,0x00,0x90,
+ 0x43,0xB0,0xEF,0xF0,0x22,
+
+ 0x02,0xA9,0x1B,0x04,0x7C,0x66,0x52,0xBB,
+ 0x01,0x06,0x89,0x82,0x8A,0x83,0xE0,0x22,
+ 0x50,0x02,0xE7,0x22,0xBB,0xFE,0x02,0xE3,
+ 0x22,0x89,0x82,0x8A,0x83,0xE4,0x93,0x22,
+ 0xEF,0x8D,0xF0,0xA4,0xA8,0xF0,0xCF,0x8C,
+ 0xF0,0xA4,0x28,0xCE,0x8D,0xF0,0xA4,0x2E,
+ 0xFE,0x22,0xBC,0x00,0x0B,0xBE,0x00,0x29,
+ 0xEF,0x8D,0xF0,0x84,0xFF,0xAD,0xF0,0x22,
+ 0xE4,0xCC,0xF8,0x75,0xF0,0x08,0xEF,0x2F,
+ 0xFF,0xEE,0x33,0xFE,0xEC,0x33,0xFC,0xEE,
+ 0x9D,0xEC,0x98,0x40,0x05,0xFC,0xEE,0x9D,
+ 0xFE,0x0F,0xD5,0xF0,0xE9,0xE4,0xCE,0xFD,
+ 0x22,0xED,0xF8,0xF5,0xF0,0xEE,0x84,0x20,
+ 0xD2,0x1C,0xFE,0xAD,0xF0,0x75,0xF0,0x08,
+ 0xEF,0x2F,0xFF,0xED,0x33,0xFD,0x40,0x07,
+ 0x98,0x50,0x06,0xD5,0xF0,0xF2,0x22,0xC3,
+ 0x98,0xFD,0x0F,0xD5,0xF0,0xEA,0x22,0xC2,
+ 0xD5,0xEC,0x30,0xE7,0x09,0xB2,0xD5,0xE4,
+ 0xC3,0x9D,0xFD,0xE4,0x9C,0xFC,0xEE,0x30,
+ 0xE7,0x15,0xB2,0xD5,0xE4,0xC3,0x9F,0xFF,
+ 0xE4,0x9E,0xFE,0x12,0xA9,0x46,0xC3,0xE4,
+ 0x9D,0xFD,0xE4,0x9C,0xFC,0x80,0x03,0x12,
+ 0xA9,0x46,0x30,0xD5,0x07,0xC3,0xE4,0x9F,
+ 0xFF,0xE4,0x9E,0xFE,0x22,0xE8,0x8F,0xF0,
+ 0xA4,0xCC,0x8B,0xF0,0xA4,0x2C,0xFC,0xE9,
+ 0x8E,0xF0,0xA4,0x2C,0xFC,0x8A,0xF0,0xED,
+ 0xA4,0x2C,0xFC,0xEA,0x8E,0xF0,0xA4,0xCD,
+ 0xA8,0xF0,0x8B,0xF0,0xA4,0x2D,0xCC,0x38,
+ 0x25,0xF0,0xFD,0xE9,0x8F,0xF0,0xA4,0x2C,
+ 0xCD,0x35,0xF0,0xFC,0xEB,0x8E,0xF0,0xA4,
+ 0xFE,0xA9,0xF0,0xEB,0x8F,0xF0,0xA4,0xCF,
+ 0xC5,0xF0,0x2E,0xCD,0x39,0xFE,0xE4,0x3C,
+ 0xFC,0xEA,0xA4,0x2D,0xCE,0x35,0xF0,0xFD,
+ 0xE4,0x3C,0xFC,0x22,0xC3,0xE4,0x9F,0xFF,
+ 0xE4,0x9E,0xFE,0xE4,0x9D,0xFD,0xE4,0x9C,
+ 0xFC,0x22,0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,
+ 0x42,0xF0,0xE9,0x9D,0x42,0xF0,0xEC,0x64,
+ 0x80,0xC8,0x64,0x80,0x98,0x45,0xF0,0x22,
+ 0xEB,0x9F,0xF5,0xF0,0xEA,0x9E,0x42,0xF0,
+ 0xE9,0x9D,0x42,0xF0,0xE8,0x9C,0x45,0xF0,
+ 0x22,0xE8,0x60,0x0F,0xEC,0xC3,0x13,0xFC,
+ 0xED,0x13,0xFD,0xEE,0x13,0xFE,0xEF,0x13,
+ 0xFF,0xD8,0xF1,0x22,0xE8,0x60,0x10,0xEC,
+ 0xA2,0xE7,0x13,0xFC,0xED,0x13,0xFD,0xEE,
+ 0x13,0xFE,0xEF,0x13,0xFF,0xD8,0xF0,0x22,
+ 0xE8,0x60,0x0F,0xEF,0xC3,0x33,0xFF,0xEE,
+ 0x33,0xFE,0xED,0x33,0xFD,0xEC,0x33,0xFC,
+ 0xD8,0xF1,0x22,0xEC,0xF0,0xA3,0xED,0xF0,
+ 0xA3,0xEE,0xF0,0xA3,0xEF,0xF0,0x22,0xA8,
+ 0x82,0x85,0x83,0xF0,0xD0,0x83,0xD0,0x82,
+ 0x12,0xAA,0xB2,0x12,0xAA,0xB2,0x12,0xAA,
+ 0xB2,0x12,0xAA,0xB2,0xE4,0x73,0xE4,0x93,
+ 0xA3,0xC5,0x83,0xC5,0xF0,0xC5,0x83,0xC8,
+ 0xC5,0x82,0xC8,0xF0,0xA3,0xC5,0x83,0xC5,
+ 0xF0,0xC5,0x83,0xC8,0xC5,0x82,0xC8,0x22,
+ 0x8A,0x83,0x89,0x82,0xE4,0x73,0xBB,0x01,
+ 0x0C,0xE5,0x82,0x29,0xF5,0x82,0xE5,0x83,
+ 0x3A,0xF5,0x83,0xE0,0x22,0x50,0x06,0xE9,
+ 0x25,0x82,0xF8,0xE6,0x22,0xBB,0xFE,0x06,
+ 0xE9,0x25,0x82,0xF8,0xE2,0x22,0xE5,0x82,
+ 0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,0x83,
+ 0xE4,0x93,0x22,0xF8,0xBB,0x01,0x0D,0xE5,
+ 0x82,0x29,0xF5,0x82,0xE5,0x83,0x3A,0xF5,
+ 0x83,0xE8,0xF0,0x22,0x50,0x06,0xE9,0x25,
+ 0x82,0xC8,0xF6,0x22,0xBB,0xFE,0x05,0xE9,
+ 0x25,0x82,0xC8,0xF2,0x22,0xBB,0x01,0x0A,
+ 0x89,0x82,0x8A,0x83,0xE0,0xF5,0xF0,0xA3,
+ 0xE0,0x22,0x50,0x06,0x87,0xF0,0x09,0xE7,
+ 0x19,0x22,0xBB,0xFE,0x07,0xE3,0xF5,0xF0,
+ 0x09,0xE3,0x19,0x22,0x89,0x82,0x8A,0x83,
+ 0xE4,0x93,0xF5,0xF0,0x74,0x01,0x93,0x22,
+ 0xBB,0x01,0x10,0xE5,0x82,0x29,0xF5,0x82,
+ 0xE5,0x83,0x3A,0xF5,0x83,0xE0,0xF5,0xF0,
+ 0xA3,0xE0,0x22,0x50,0x09,0xE9,0x25,0x82,
+ 0xF8,0x86,0xF0,0x08,0xE6,0x22,0xBB,0xFE,
+ 0x0A,0xE9,0x25,0x82,0xF8,0xE2,0xF5,0xF0,
+ 0x08,0xE2,0x22,0xE5,0x83,0x2A,0xF5,0x83,
+ 0xE9,0x93,0xF5,0xF0,0xA3,0xE9,0x93,0x22,
+ 0xBB,0x01,0x0A,0x89,0x82,0x8A,0x83,0xF0,
+ 0xE5,0xF0,0xA3,0xF0,0x22,0x50,0x06,0xF7,
+ 0x09,0xA7,0xF0,0x19,0x22,0xBB,0xFE,0x06,
+ 0xF3,0xE5,0xF0,0x09,0xF3,0x19,0x22,0xF8,
+ 0xBB,0x01,0x11,0xE5,0x82,0x29,0xF5,0x82,
+ 0xE5,0x83,0x3A,0xF5,0x83,0xE8,0xF0,0xE5,
+ 0xF0,0xA3,0xF0,0x22,0x50,0x09,0xE9,0x25,
+ 0x82,0xC8,0xF6,0x08,0xA6,0xF0,0x22,0xBB,
+ 0xFE,0x09,0xE9,0x25,0x82,0xC8,0xF2,0xE5,
+ 0xF0,0x08,0xF2,0x22,0x75,0xF0,0x08,0x75,
+ 0x82,0x00,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,
+ 0xCD,0x33,0xCD,0xCC,0x33,0xCC,0xC5,0x82,
+ 0x33,0xC5,0x82,0x9B,0xED,0x9A,0xEC,0x99,
+ 0xE5,0x82,0x98,0x40,0x0C,0xF5,0x82,0xEE,
+ 0x9B,0xFE,0xED,0x9A,0xFD,0xEC,0x99,0xFC,
+ 0x0F,0xD5,0xF0,0xD6,0xE4,0xCE,0xFB,0xE4,
+ 0xCD,0xFA,0xE4,0xCC,0xF9,0xA8,0x82,0x22,
+ 0xB8,0x00,0xC1,0xB9,0x00,0x59,0xBA,0x00,
+ 0x2D,0xEC,0x8B,0xF0,0x84,0xCF,0xCE,0xCD,
+ 0xFC,0xE5,0xF0,0xCB,0xF9,0x78,0x18,0xEF,
+ 0x2F,0xFF,0xEE,0x33,0xFE,0xED,0x33,0xFD,
+ 0xEC,0x33,0xFC,0xEB,0x33,0xFB,0x10,0xD7,
+ 0x03,0x99,0x40,0x04,0xEB,0x99,0xFB,0x0F,
+ 0xD8,0xE5,0xE4,0xF9,0xFA,0x22,0x78,0x18,
+ 0xEF,0x2F,0xFF,0xEE,0x33,0xFE,0xED,0x33,
+ 0xFD,0xEC,0x33,0xFC,0xC9,0x33,0xC9,0x10,
+ 0xD7,0x05,0x9B,0xE9,0x9A,0x40,0x07,0xEC,
+ 0x9B,0xFC,0xE9,0x9A,0xF9,0x0F,0xD8,0xE0,
+ 0xE4,0xC9,0xFA,0xE4,0xCC,0xFB,0x22,0x75,
+ 0xF0,0x10,0xEF,0x2F,0xFF,0xEE,0x33,0xFE,
+ 0xED,0x33,0xFD,0xCC,0x33,0xCC,0xC8,0x33,
+ 0xC8,0x10,0xD7,0x07,0x9B,0xEC,0x9A,0xE8,
+ 0x99,0x40,0x0A,0xED,0x9B,0xFD,0xEC,0x9A,
+ 0xFC,0xE8,0x99,0xF8,0x0F,0xD5,0xF0,0xDA,
+ 0xE4,0xCD,0xFB,0xE4,0xCC,0xFA,0xE4,0xC8,
+ 0xF9,0x22,0xC2,0xD5,0xE8,0x30,0xE7,0x0F,
+ 0xB2,0xD5,0xE4,0xC3,0x9B,0xFB,0xE4,0x9A,
+ 0xFA,0xE4,0x99,0xF9,0xE4,0x98,0xF8,0xEC,
+ 0x30,0xE7,0x17,0xB2,0xD5,0x12,0xAC,0xD4,
+ 0x12,0xAC,0x0C,0xE4,0xC3,0x9B,0xFB,0xE4,
+ 0x9A,0xFA,0xE4,0x99,0xF9,0xE4,0x98,0xF8,
+ 0x80,0x03,0x12,0xAC,0x0C,0x30,0xD5,0x0D,
+ 0xE4,0xC3,0x9F,0xFF,0xE4,0x9E,0xFE,0xE4,
+ 0x9D,0xFD,0xE4,0x9C,0xFC,0x22,0xD0,0xE0,
+ 0xF5,0xF0,0xFC,0xD0,0xE0,0xFD,0x12,0xAB,
+ 0x84,0x85,0x2F,0xF0,0xE5,0x81,0x90,0x00,
+ 0x02,0x12,0xAB,0xA3,0x85,0x32,0xF0,0xE5,
+ 0x31,0x90,0x00,0x04,0x12,0xAB,0xA3,0xE5,
+ 0x30,0x90,0x00,0x06,0x12,0xAA,0xFF,0x8D,
+ 0x82,0x8C,0x83,0xE4,0xFE,0xFF,0x73,0xED,
+ 0xFF,0xEC,0xFE,0x12,0xAB,0x21,0xFC,0xAD,
+ 0xF0,0x90,0x00,0x02,0x12,0xAB,0x4C,0x85,
+ 0xF0,0x81,0xF5,0x2F,0x90,0x00,0x04,0x12,
+ 0xAB,0x4C,0xF5,0x32,0x85,0xF0,0x31,0x90,
+ 0x00,0x06,0x12,0xAA,0xD2,0xF5,0x30,0x8D,
+ 0x82,0x8C,0x83,0xE4,0x73,0x4C,0x81,0x4C,
+ 0xBA,0x4C,0xBD,0x4C,0xBE,0x4C,0xBF,0x88,
+ 0x8F,0x4C,0xC0,0x4C,0xC1,0x4C,0xC2,0x4C,
+ 0xC3,0x4D,0x48,0x89,0x41,0x4E,0x73,0x01,
+ 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
+ 0x09,0x00,0x01,0x02,0x03,0x04,0x05,0x05,
+ 0x03,0x08,0x01,0x00,0x01,0x01,0x02,0x03,
+ 0x03,0x01,0x01,0x01,0x01,0x3E,0x80,0x06,
+ 0x40,0x7D,0x00,0x12,0xC0,0x12,0xC0,0xFA,
+ 0x00,0x12,0xC0,0xBB,0x80,0x9C,0x40,0x00,
+ 0xA0,0x00,0x00,0x01,0x02,0x02,0x02,0x02,
+ 0x02,0x01,0x01
+};
+
+static Segment Firmware_segments[] = {
+ { 0x00, 0x0000000A },
+ { 0x00, 0x00003B24 },
+ { 0x00, 0x0000000B },
+ { 0x00, 0x0000000A },
+ { 0x00, 0x000063CE },
+ { 0x00, 0x000006E5 },
+ { 0x00, 0x0000000A },
+ { 0x00, 0x00003B24 },
+ { 0x00, 0x0000000B },
+ { 0x00, 0x0000000A },
+ { 0x00, 0x00006315 },
+ { 0x00, 0x00000483 }
+};
+
+static Byte Firmware_new_partitions[] = {
+ 0x06,
+ 0x06
+};
+
+
+#define Firmware_SCRIPTSETLENGTH 0x00000001
+
+
+static Word Firmware_scriptSets[] = {
+ 0x6C
+};
+
+
+static ValueSet Firmware_scripts[] = {
+ {0x0051, 0x01},
+ {0x0070, 0x0A},
+ {0x007E, 0x04},
+ {0x0081, 0x0A},
+ {0x008A, 0x01},
+ {0x008E, 0x01},
+ {0x0092, 0x06},
+ {0x0099, 0x01},
+ {0x009F, 0xE1},
+ {0x00A0, 0xCF},
+ {0x00A3, 0x01},
+ {0x00A5, 0x01},
+ {0x00A6, 0x01},
+ {0x00A9, 0x00},
+ {0x00AA, 0x01},
+ {0x00B0, 0x01},
+ {0x00C2, 0x05},
+ {0x00C6, 0x19},
+ {0xF000, 0x0F},
+ {0xF016, 0x10},
+ {0xF017, 0x04},
+ {0xF018, 0x05},
+ {0xF019, 0x04},
+ {0xF01A, 0x05},
+ {0xF021, 0x03},
+ {0xF022, 0x0A},
+ {0xF023, 0x0A},
+ {0xF02B, 0x00},
+ {0xF02C, 0x01},
+ {0xF064, 0x03},
+ {0xF065, 0xF9},
+ {0xF066, 0x03},
+ {0xF067, 0x01},
+ {0xF06F, 0xE0},
+ {0xF070, 0x03},
+ {0xF072, 0x0F},
+ {0xF073, 0x03},
+ {0xF078, 0x00},
+ {0xF087, 0x00},
+ {0xF09B, 0x3F},
+ {0xF09C, 0x00},
+ {0xF09D, 0x20},
+ {0xF09E, 0x00},
+ {0xF09F, 0x0C},
+ {0xF0A0, 0x00},
+ {0xF130, 0x04},
+ {0xF132, 0x04},
+ {0xF144, 0x1A},
+ {0xF146, 0x00},
+ {0xF14A, 0x01},
+ {0xF14C, 0x00},
+ {0xF14D, 0x00},
+ {0xF14F, 0x04},
+ {0xF158, 0x7F},
+ {0xF15A, 0x00},
+ {0xF15B, 0x08},
+ {0xF15D, 0x03},
+ {0xF15E, 0x05},
+ {0xF163, 0x05},
+ {0xF166, 0x01},
+ {0xF167, 0x40},
+ {0xF168, 0x0F},
+ {0xF17A, 0x00},
+ {0xF17B, 0x00},
+ {0xF183, 0x01},
+ {0xF19D, 0x40},
+ {0xF1BC, 0x36},
+ {0xF1BD, 0x00},
+ {0xF1CB, 0xA0},
+ {0xF1CC, 0x01},
+ {0xF204, 0x10},
+ {0xF214, 0x00},
+ {0xF40E, 0x0A},
+ {0xF40F, 0x40},
+ {0xF410, 0x08},
+ {0xF55F, 0x0A},
+ {0xF561, 0x15},
+ {0xF562, 0x20},
+ {0xF5DF, 0xFB},
+ {0xF5E0, 0x00},
+ {0xF5E3, 0x09},
+ {0xF5E4, 0x01},
+ {0xF5E5, 0x01},
+ {0xF5F8, 0x01},
+ {0xF5FD, 0x01},
+ {0xF600, 0x05},
+ {0xF601, 0x08},
+ {0xF602, 0x0B},
+ {0xF603, 0x0E},
+ {0xF604, 0x11},
+ {0xF605, 0x14},
+ {0xF606, 0x17},
+ {0xF607, 0x1F},
+ {0xF60E, 0x00},
+ {0xF60F, 0x04},
+ {0xF610, 0x32},
+ {0xF611, 0x10},
+ {0xF707, 0xFC},
+ {0xF708, 0x00},
+ {0xF709, 0x37},
+ {0xF70A, 0x00},
+ {0xF78B, 0x01},
+ {0xF80F, 0x40},
+ {0xF810, 0x54},
+ {0xF811, 0x5A},
+ {0xF905, 0x01},
+ {0xFB06, 0x03},
+ {0xFD8B, 0x00}
+};
+
+
+// Merged Firmware: LL_regular_OFDM_non_mt2266 + LL_regular_OFDM_mt2266
+#endif
diff --git a/api/i2c_driver.c b/api/i2c_driver.c
new file mode 100644
index 0000000..5c5460d
--- /dev/null
+++ b/api/i2c_driver.c
@@ -0,0 +1,65 @@
+//---------------------------------------------------------------------------
+#include "xc4000_control.h"
+#include "i2c_driver.h"
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+//---------------------------------------------------------------------------
+Demodulator* XC4000Handle = NULL;
+Byte XC4000Chip = 0;
+
+/* *************************************************************** */
+/* *************************************************************** */
+/* */
+/* FOLLOWING FUNCTIONS TO BE IMPLEMENTED BY CUSTOMER */
+/* */
+/* *************************************************************** */
+/* *************************************************************** */
+
+// user must replace the following routines with their own i2c driver
+// return XC_RESULT_SUCCESS if i2c data is send correctly,
+// return XC_RESULT_I2C_WRITE_FAILURE when error occur.
+int xc_send_i2c_data(unsigned char *bytes_to_send, int nb_bytes_to_send)
+{
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_writeTunerRegisters (XC4000Handle, XC4000Chip, 0x0000, nb_bytes_to_send, bytes_to_send);
+ return (error);
+}
+
+int xc_read_i2c_data(unsigned char *bytes_received, int nb_bytes_to_receive)
+{
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_readTunerRegisters (XC4000Handle, XC4000Chip, 0x0000, nb_bytes_to_receive, bytes_received);
+ return (error);
+}
+
+int xc_reset()
+{
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_writeRegisterBits (XC4000Handle, XC4000Chip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 0);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (XC4000Handle, XC4000Chip, Processor_LINK, p_reg_top_gpiot2_en, reg_top_gpiot2_en_pos, reg_top_gpiot2_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (XC4000Handle, XC4000Chip, Processor_LINK, p_reg_top_gpiot2_on, reg_top_gpiot2_on_pos, reg_top_gpiot2_on_len, 1);
+ if (error) goto exit;
+
+ User_delay (XC4000Handle, 250);
+
+ error = Standard_writeRegisterBits (XC4000Handle, XC4000Chip, Processor_LINK, p_reg_top_gpiot2_o, reg_top_gpiot2_o_pos, reg_top_gpiot2_o_len, 1);
+ if (error) goto exit;
+
+exit:
+ return (error);
+}
+
+void xc_wait(int wait_ms)
+{
+ User_delay (XC4000Handle, (Dword)wait_ms);
+}
diff --git a/api/i2c_driver.h b/api/i2c_driver.h
new file mode 100644
index 0000000..7826dce
--- /dev/null
+++ b/api/i2c_driver.h
@@ -0,0 +1,21 @@
+//---------------------------------------------------------------------------
+
+#ifndef i2c_driverH
+#define i2c_driverH
+
+// Sends data bytes to xc4000 via I2C starting with
+// bytes_to_send[0] and ending with bytes_to_send[nb_bytes_to_send-1]
+int xc_send_i2c_data(unsigned char *bytes_to_send, int nb_bytes_to_send);
+
+// Reads data bytes from xc4000 via I2C starting with
+// bytes_received[0] and ending with bytes_received[nb_bytes_to_receive-1]
+int xc_read_i2c_data(unsigned char *bytes_received, int nb_bytes_to_receive);
+
+// Does hardware reset
+int xc_reset();
+
+// Waits for wait_ms milliseconds
+void xc_wait(int wait_ms);
+
+//---------------------------------------------------------------------------
+#endif
diff --git a/api/inttype.h b/api/inttype.h
new file mode 100644
index 0000000..8f7ed4b
--- /dev/null
+++ b/api/inttype.h
@@ -0,0 +1,40 @@
+#ifndef __INTTYPE_H__
+#define __INTTYPE_H__
+
+
+/**
+ * The type defination of SnrTable.
+ */
+typedef struct {
+ Dword errorCount;
+ Dword snr;
+ double errorRate;
+} SnrTable;
+
+
+/**
+ * The type defination of Statistic.
+ */
+typedef struct {
+ Word abortCount;
+ Dword postVitBitCount;
+ Dword postVitErrorCount;
+ /** float point */
+ Dword softBitCount;
+ Dword softErrorCount;
+ Dword preVitBitCount;
+ Dword preVitErrorCount;
+ double snr;
+} ChannelStatistic;
+
+
+/**
+ * The type defination of AgcVoltage.
+ */
+typedef struct {
+ double doSetVolt;
+ double doPuUpVolt;
+} AgcVoltage;
+
+
+#endif \ No newline at end of file
diff --git a/api/iocontrol.h b/api/iocontrol.h
new file mode 100644
index 0000000..9f09478
--- /dev/null
+++ b/api/iocontrol.h
@@ -0,0 +1,738 @@
+/**
+ *
+ * Copyright (c) 2006 Afa Corporation. All rights reserved.
+ *
+ * Module Name:
+ * iocontrol.h
+ *
+ * Abstract:
+ * The structure and IO code for IO control call.
+ *
+ */
+
+#ifndef __IOCONTROL_H__
+#define __IOCONTROL_H__
+
+#ifdef UNDER_CE
+#include <winioctl.h>
+#else
+#endif
+
+#include "type.h"
+
+#define MEDIA_DEVICE_AFADEMOD 0x00000AFA
+
+typedef struct {
+ Byte chipNumber;
+ Word sawBandwidth;
+ StreamType streamType;
+ Architecture architecture;
+ Dword error;
+ Byte reserved[16];
+} InitializeRequest, *PInitializeRequest;
+
+typedef struct {
+ Dword error;
+ Byte reserved[16];
+} FinalizeRequest, *PFinalizeRequest;
+
+typedef struct {
+ StreamType streamType;
+ Dword error;
+ Byte reserved[16];
+} SetStreamTypeRequest, *PSetStreamTypeRequest;
+
+typedef struct {
+ Architecture architecture;
+ Dword error;
+ Byte reserved[16];
+} SetArchitectureRequest, *PSetArchitectureRequest;
+
+typedef struct {
+ Byte chip;
+ ChannelModulation* channelModulation;
+ Dword error;
+ Byte reserved[16];
+} GetChannelModulationRequest, *PGetChannelModulationRequest;
+
+typedef struct {
+ Processor processor;
+ Dword* version;
+ Dword error;
+ Byte reserved[16];
+} GetFirmwareVersionRequest, *PGetFirmwareVersionRequest;
+
+typedef struct {
+ Byte chip;
+ Word bandwidth;
+ Dword frequency;
+ Dword error;
+ Byte reserved[16];
+} AcquireChannelRequest, *PAcquireChannelRequest;
+
+typedef struct {
+ Byte chip;
+ Bool* locked;
+ Dword error;
+ Byte reserved[16];
+} IsLockedRequest, *PIsLockedRequest;
+
+typedef struct {
+ Byte chip;
+ Pid pid;
+ Dword error;
+ Byte reserved[16];
+} AddPidRequest, *PAddPidRequest;
+
+typedef struct {
+ Byte chip;
+ Pid pid;
+ Dword error;
+ Byte reserved[16];
+} RemovePidRequest, *PRemovePidRequest;
+
+typedef struct {
+ Byte chip;
+ Dword error;
+ Byte reserved[16];
+} ResetPidRequest, *PResetPidRequest;
+
+typedef struct {
+ Byte chip;
+ Byte superFrameCount;
+ Word packetUnit;
+ Dword error;
+ Byte reserved[16];
+} SetStatisticRangeRequest, *PSetStatisticRangeRequest;
+
+typedef struct {
+ Byte chip;
+ Byte* superFrameCount;
+ Word* packetUnit;
+ Dword error;
+ Byte reserved[16];
+} GetStatisticRangeRequest, *PGetStatisticRangeRequest;
+
+typedef struct {
+ Byte chip;
+ ChannelStatistic* channelStatistic;
+ Dword error;
+ Byte reserved[16];
+} GetChannelStatisticRequest, *PGetChannelStatisticRequest;
+
+typedef struct {
+ Byte chip;
+ Statistic* statistic;
+ Dword error;
+ Byte reserved[16];
+} GetStatisticRequest, *PGetStatisticRequest;
+
+typedef struct {
+ Dword* bufferLength;
+ Byte* buffer;
+ Dword error;
+ Byte reserved[16];
+} GetDatagramRequest, *PGetDatagramRequest;
+
+typedef struct {
+ Byte chip;
+ Byte control;
+ Dword error;
+ Byte reserved[16];
+} ControlPidFilterRequest, *PControlPidFilterRequest;
+
+typedef struct {
+ Byte chip;
+ Byte control;
+ Dword error;
+ Byte reserved[16];
+} ControlPowerSavingRequest, *PControlPowerSavingRequest;
+
+typedef struct {
+ Byte DriverVerion[16]; /** XX.XX.XX.XX Ex., 1.2.3.4 */
+ Byte APIVerion[32]; /** XX.XX.XXXXXXXX.XX Ex., 1.2.3.4 */
+ Byte FWVerionLink[16]; /** XX.XX.XX.XX Ex., 1.2.3.4 */
+ Byte FWVerionOFDM[16]; /** XX.XX.XX.XX Ex., 1.2.3.4 */
+ Byte DateTime[24]; /** Ex.,"2004-12-20 18:30:00" or "DEC 20 2004 10:22:10" with compiler __DATE__ and __TIME__ definitions */
+ Byte Company[8]; /** Ex.,"Afatech" */
+ Byte SupportHWInfo[32]; /** Ex.,"Jupiter DVBT/DVBH" */
+ Dword error;
+ Byte reserved[128];
+} DemodDriverInfo, *PDemodDriverInfo;
+
+typedef struct {
+ Ensemble* ensemble;
+ Dword error;
+ Byte reserved[16];
+} AcquireEnsembleRequest, *PAcquireEnsembleRequest;
+
+typedef struct {
+ Byte* serviceLength;
+ Service* services;
+ Dword error;
+ Byte reserved[16];
+} AcquireServiceRequest, *PAcquireServiceRequest;
+
+typedef struct {
+ Service service;
+ Byte* componentLength;
+ Component* components;
+ Dword error;
+ Byte reserved[16];
+} AcquireComponentRequest, *PAcquireComponentRequest;
+
+typedef struct {
+ Component component;
+ Dword error;
+ Byte reserved[16];
+} AddComponentRequest, *PAddComponentRequest;
+
+typedef struct {
+ Component component;
+ Dword error;
+ Byte reserved[16];
+} RemoveComponentRequest, *PRemoveComponentRequest;
+
+typedef struct {
+ Byte figType;
+ Byte figExtension;
+ Dword error;
+ Byte reserved[16];
+} AddFigRequest, *PAddFigRequest;
+
+typedef struct {
+ Byte figType;
+ Byte figExtension;
+ Dword error;
+ Byte reserved[16];
+} RemoveFigRequest, *PRemoveFigRequest;
+
+
+/**
+ * Demodulator API commands
+ */
+
+/**
+ * First, download firmware from host to demodulator. Actually, firmware is
+ * put in firmware.h as a part of source code. Therefore, in order to
+ * update firmware the host have to re-compile the source code.
+ * Second, setting all parameters which will be need at the beginning.
+ * Paramters: None
+ */
+#define IOCTL_AFA_DEMOD_INITIALIZE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x003, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Set the output stream type of chip. Because the device could output in
+ * many stream type, therefore host have to choose one type before receive
+ * data.
+ * Paramters: DemodStreamType struct
+ */
+#define IOCTL_AFA_DEMOD_SETSTREAMTYPE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x004, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Set the output stream type of chip. Because the device could output in
+ * many stream type, therefore host have to choose one type before receive
+ * data.
+ * Paramters: DemodStreamType struct
+ */
+#define IOCTL_AFA_DEMOD_SETARCHITECTURE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x006, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Set the output stream type of chip. Because the device could output in
+ * many stream type, therefore host have to choose one type before receive
+ * data.
+ * Paramters: DemodStreamType struct
+ */
+#define IOCTL_AFA_DEMOD_GETCHANNELMODULATION \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x008, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Set the output stream type of chip. Because the device could output in
+ * many stream type, therefore host have to choose one type before receive
+ * data.
+ * Paramters: DemodStreamType struct
+ */
+#define IOCTL_AFA_DEMOD_GETFIRMWAREVERSION \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x009, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Specify the bandwidth of channel and tune the channel to the specific
+ * frequency. Afterwards, host could use output parameter dvbH to determine
+ * if there is a DVB-H signal.
+ * In DVB-T mode, after calling this function output parameter dvbH should
+ * be False and host could use output parameter "locked" to indicate if the
+ * TS is correct.
+ * In DVB-H mode, after calling this function output parameter dvbH should
+ * be True and host could use Jupiter_acquirePlatorm to get platform.
+ * Paramters: DemodAcqCh struct
+ */
+#define IOCTL_AFA_DEMOD_ACQUIRECHANNEL \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x00A, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get all the platforms found in current frequency.
+ * Paramters: DemodAcqPlatform struct
+ */
+#define IOCTL_AFA_DEMOD_ISLOCKED \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x00B, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get all the platforms found in current frequency.
+ * Paramters: DemodAcqPlatform struct
+ */
+#define IOCTL_AFA_DEMOD_ACQUIREPLATFORM \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x00C, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Change the current platform as the specified platform. If the target
+ * platform is locate in different frequency, this function will tune to
+ * that frequency before setting platform.
+ * Paramters: DemodSetPlatform struct
+ */
+#define IOCTL_AFA_DEMOD_SETPLATFORM \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x00D, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Add IP to IP filter.
+ * Paramters: DemodIp struct
+ */
+#define IOCTL_AFA_DEMOD_ADDIP \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x00E, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Remove IP from IP filter.
+ * Paramters: DemodIp struct
+ */
+#define IOCTL_AFA_DEMOD_REMOVEIP \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x00F, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Add PID to PID filter.
+ * Paramters: DemodPid struct
+ */
+#define IOCTL_AFA_DEMOD_ADDPID \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x010, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Remove PID from PID filter.
+ * Paramters: DemodPid struct
+ */
+#define IOCTL_AFA_DEMOD_REMOVEPID \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x011, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Reset PID from PID filter.
+ * Paramters: ResetPidRequest struct
+ */
+#define IOCTL_AFA_DEMOD_RESETPID \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x012, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get data of one single section
+ * Paramters: DemodGetStat struct
+ */
+#define IOCTL_AFA_DEMOD_GETSECTION \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x013, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ * Paramters: DemodGetStat struct
+ */
+#define IOCTL_AFA_DEMOD_SETSTATISTICRANGE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x014, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ * Paramters: DemodGetStat struct
+ */
+#define IOCTL_AFA_DEMOD_GETSTATISTICRANGE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x015, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ * Paramters: DemodGetStat struct
+ */
+#define IOCTL_AFA_DEMOD_GETCHANNELSTATISTIC \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x016, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ * Paramters: DemodGetStat struct
+ */
+#define IOCTL_AFA_DEMOD_GETSTATISTIC \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x017, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ * Paramters: DemodGetStat struct
+ */
+#define IOCTL_AFA_DEMOD_GETINTERRUPTS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x018, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ * Paramters: DemodGetStat struct
+ */
+#define IOCTL_AFA_DEMOD_CLEARINTERRUPT \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x019, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ * Paramters: DemodGetStat struct
+ */
+#define IOCTL_AFA_DEMOD_GETDATAGRAM \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x01A, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ *
+ * Paramters: DemodControl struct
+ */
+#define IOCTL_AFA_DEMOD_GETDELTAT \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x01B, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Enable PID filter.
+ * Paramters: EnablePidRequest struct
+ */
+#define IOCTL_AFA_DEMOD_CONTROLPIDFILTER \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x01C, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ *
+ * Paramters: DemodControl struct
+ */
+#define IOCTL_AFA_DEMOD_CONTROLTIMESLICING \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x01D, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ *
+ * Paramters: DemodControl struct
+ */
+#define IOCTL_AFA_DEMOD_CONTROLPOWERSAVING \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x01E, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Power off the demodulators.
+ * Paramters: None
+ */
+#define IOCTL_AFA_DEMOD_FINALIZE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x01F, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get driver information.
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_GETDRIVERINFO \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x020, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get ensemble.
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_ACQUIREENSEMBLE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x021, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get service.
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_ACQUIRESERVICE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x022, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Get component.
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_ACQUIRECOMPONENT \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x023, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Add component.
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_ADDCOMPONENT \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x024, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Remove component.
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_REMOVECOMPONENT \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x025, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Add FIG.
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_ADDFIG \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x026, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Remove FIG.
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_REMOVEFIG \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x027, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+
+/**
+ * Demodulator Misc API commands
+ */
+
+typedef struct {
+ Byte chip;
+ Processor processor;
+ Dword registerAddress;
+ Byte bufferLength;
+ Byte buffer[256];
+ Dword error;
+ Byte reserved[16];
+} WriteRegistersRequest, *PWriteRegistersRequest;
+
+typedef struct {
+ Byte chip;
+ Word registerAddress;
+ Byte bufferLength;
+ Byte buffer[256];
+ Dword error;
+ Byte reserved[16];
+} WriteTunerRegistersRequest, *PWriteTunerRegistersRequest;
+
+typedef struct {
+ Byte chip;
+ Word registerAddress;
+ Byte bufferLength;
+ Byte buffer[256];
+ Dword error;
+ Byte reserved[16];
+} WriteEepromValuesRequest, *PWriteEepromValuesRequest;
+
+typedef struct {
+ Byte chip;
+ Processor processor;
+ Dword registerAddress;
+ Byte position;
+ Byte length;
+ Byte value;
+ Dword error;
+ Byte reserved[16];
+} WriteRegisterBitsRequest, *PWriteRegisterBitsRequest;
+
+typedef struct {
+ Byte chip;
+ Processor processor;
+ Word variableIndex;
+ Byte bufferLength;
+ Byte buffer[256];
+ Dword error;
+ Byte reserved[16];
+} SetVariablesRequest, *PSetVariablesRequest;
+
+typedef struct {
+ Byte chip;
+ Processor processor;
+ Word variableIndex;
+ Byte position;
+ Byte length;
+ Byte value;
+ Dword error;
+ Byte reserved[16];
+} SetVariableBitsRequest, *PSetVariableBitsRequest;
+
+typedef struct {
+ Byte chip;
+ Processor processor;
+ Dword registerAddress;
+ Byte bufferLength;
+ Byte* buffer;
+ Dword error;
+ Byte reserved[16];
+} ReadRegistersRequest, *PReadRegistersRequest;
+
+typedef struct {
+ Byte chip;
+ Word registerAddress;
+ Byte bufferLength;
+ Byte* buffer;
+ Dword error;
+ Byte reserved[16];
+} ReadTunerRegistersRequest, *PReadTunerRegistersRequest;
+
+typedef struct {
+ Byte chip;
+ Word registerAddress;
+ Byte bufferLength;
+ Byte* buffer;
+ Dword error;
+ Byte reserved[16];
+} ReadEepromValuesRequest, *PReadEepromValuesRequest;
+
+typedef struct {
+ Byte chip;
+ Processor processor;
+ Dword registerAddress;
+ Byte position;
+ Byte length;
+ Byte* value;
+ Dword error;
+ Byte reserved[16];
+} ReadRegisterBitsRequest, *PReadRegisterBitsRequest;
+
+typedef struct {
+ Byte chip;
+ Processor processor;
+ Word variableIndex;
+ Byte bufferLength;
+ Byte* buffer;
+ Dword error;
+ Byte reserved[16];
+} GetVariablesRequest, *PGetVariablesRequest;
+
+typedef struct {
+ Byte chip;
+ Processor processor;
+ Word variableIndex;
+ Byte position;
+ Byte length;
+ Byte* value;
+ Dword error;
+ Byte reserved[16];
+} GetVariableBitsRequest, *PGetVariableBitsRequest;
+
+
+/**
+ * Write a sequence of bytes to the contiguous registers in demodulator.
+ * Paramters: DemodRegs struct
+ */
+#define IOCTL_AFA_DEMOD_WRITEREGISTERS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x101, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Write a sequence of bytes to the contiguous registers in tuner.
+ * Paramters: DemodTunerRegs struct
+ */
+#define IOCTL_AFA_DEMOD_WRITETUNERREGISTERS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x102, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Write a sequence of bytes to the contiguous cells in the EEPROM.
+ * Paramters: DemodEEPROMVaules struct
+ */
+#define IOCTL_AFA_DEMOD_WRITEEEPROMVALUES \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x103, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Write one byte to the contiguous registers in demodulator.
+ * Paramters: DemodRegs struct
+ */
+#define IOCTL_AFA_DEMOD_WRITEREGISTERBITS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x104, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Write a sequence of bytes to the contiguous variables in demodulator.
+ * Paramters: DemodVariables struct
+ */
+#define IOCTL_AFA_DEMOD_SETVARIABLES \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x105, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Write a sequence of bytes to the contiguous variables in demodulator.
+ * Paramters: DemodVariables struct
+ */
+#define IOCTL_AFA_DEMOD_SETVARIABLEBITS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x106, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Read a sequence of bytes from the contiguous registers in demodulator.
+ * Paramters: DemodRegs struct
+ */
+#define IOCTL_AFA_DEMOD_READREGISTERS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x108, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Read a sequence of bytes from the contiguous registers in tuner.
+ * Paramters: DemodTunerRegs
+ */
+#define IOCTL_AFA_DEMOD_READTUNERREGISTERS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x109, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Read a sequence of bytes from the contiguous cells in the EEPROM.
+ * Paramters: DemodEEPROMVaules struct
+ */
+#define IOCTL_AFA_DEMOD_READEEPROMVALUES \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x10A, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Read a sequence of bytes from the contiguous registers in demodulator.
+ * Paramters: DemodRegs struct
+ */
+#define IOCTL_AFA_DEMOD_READREGISTERBITS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x10B, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Read a sequence of bytes from the contiguous variables in demodulator.
+ * Paramters: DemodVariables struct
+ */
+#define IOCTL_AFA_DEMOD_GETVARIABLES \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x10C, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+/**
+ * Read a sequence of bytes from the contiguous variables in demodulator.
+ * Paramters: DemodVariables struct
+ */
+#define IOCTL_AFA_DEMOD_GETVARIABLEBITS \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x10D, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+
+
+/**
+ * Demodulator Stream control API commands
+ */
+
+typedef struct {
+ Byte chip;
+ Dword error;
+ Byte reserved[16];
+} StartCaptureRequest, *PStartCaptureRequest;
+
+typedef struct {
+ Byte chip;
+ Dword error;
+ Byte reserved[16];
+} StopCaptureRequest, *PStopCaptureRequest;
+
+/**
+ * Start capture data stream
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_STARTCAPTURE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x200, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+
+/**
+ * Stop capture data stream
+ * Paramters: DemodDriverInfo struct
+ */
+#define IOCTL_AFA_DEMOD_STOPCAPTURE \
+ CTL_CODE( MEDIA_DEVICE_AFADEMOD, 0x201, METHOD_BUFFERED, FILE_ANY_ACCESS )
+
+
+#endif \ No newline at end of file
diff --git a/api/mt2260.c b/api/mt2260.c
new file mode 100644
index 0000000..44a0e85
--- /dev/null
+++ b/api/mt2260.c
@@ -0,0 +1,1992 @@
+/*****************************************************************************
+**
+** Name: mt2260.c
+**
+** Description: Microtune MT2260 Tuner software interface.
+** Supports tuners with Part/Rev code: 0x85.
+**
+** Functions
+** Implemented: UData_t MT2260_Open
+** UData_t MT2260_Close
+** UData_t MT2260_ChangeFreq
+** UData_t MT2260_GetLocked
+** UData_t MT2260_GetParam
+** UData_t MT2260_GetReg
+** UData_t MT2260_GetUserData
+** UData_t MT2260_ReInit
+** UData_t MT2260_SetParam
+** UData_t MT2260_SetPowerModes
+** UData_t MT2260_SetReg
+**
+** References: AN-00010: MicroTuner Serial Interface Application Note
+** MicroTune, Inc.
+**
+** Exports: None
+**
+** Dependencies: MT2260_ReadSub(hUserData, IC_Addr, subAddress, *pData, cnt);
+** - Read byte(s) of data from the two-wire bus.
+**
+** MT2260_WriteSub(hUserData, IC_Addr, subAddress, *pData, cnt);
+** - Write byte(s) of data to the two-wire bus.
+**
+** MT2260_Sleep(hUserData, nMinDelayTime);
+** - Delay execution for x milliseconds
+**
+** CVS ID: $Id: mt2260.c,v 1.1 2006/05/08 22:05:01 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/web05/html/software/tuners/MT2260/MT2260B0/mt2260.c,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+** N/A 04-26-2006 DAD Ver 1.01: Add support for 8-38.4 MHz crystals
+**
+*****************************************************************************/
+#include "mt2260.h"
+//#include <stdlib.h> /* for NULL */ //for Linux
+
+/* Version of this module */
+#define VERSION 10001 /* Version 01.01 */
+
+
+#ifndef MT2260_CNT
+#error You must define MT2260_CNT in the "mt_userdef.h" file
+#endif
+
+/*
+** Normally, the "reg" array in the tuner structure is used as a cache
+** containing the current value of the tuner registers. If the user's
+** application MUST change tuner registers without using the MT2260_SetReg
+** routine provided, he may compile this code with the __NO_CACHE__
+** variable defined.
+** The PREFETCH macro will insert code code to re-read tuner registers if
+** __NO_CACHE__ is defined. If it is not defined (normal) then PREFETCH
+** does nothing.
+*/
+
+#if defined(__NO_CACHE__)
+#define PREFETCH(var, cnt) \
+ if (MT_NO_ERROR(status)) \
+ status |= MT2260_ReadSub(pInfo->hUserData, pInfo->address, (var), &pInfo->reg[(var)], (cnt));
+#else
+#define PREFETCH(var, cnt)
+#endif
+
+
+
+/*
+** Two-wire serial bus subaddresses of the tuner registers.
+** Also known as the tuner's register addresses.
+*/
+static enum MT2260_Register_Offsets
+{
+ MT2260_PART_REV = 0, /* 0x00 */
+ MT2260_LO_CTRL_1, /* 0x01 */
+ MT2260_LO_CTRL_2, /* 0x02 */
+ MT2260_LO_CTRL_3, /* 0x03 */
+ MT2260_SMART_ANT, /* 0x04 */
+ MT2260_BAND_CTRL, /* 0x05 */
+ MT2260_CLEARTUNE, /* 0x06 */
+ MT2260_IGAIN, /* 0x07 */
+ MT2260_BBFILT_1, /* 0x08 */
+ MT2260_BBFILT_2, /* 0x09 */
+ MT2260_BBFILT_3, /* 0x0A */
+ MT2260_BBFILT_4, /* 0x0B */
+ MT2260_BBFILT_5, /* 0x0C */
+ MT2260_BBFILT_6, /* 0x0D */
+ MT2260_BBFILT_7, /* 0x0E */
+ MT2260_BBFILT_8, /* 0x0F */
+ MT2260_RCC_CTRL, /* 0x10 */
+ MT2260_RSVD_11, /* 0x11 */
+ MT2260_STATUS_1, /* 0x12 */
+ MT2260_STATUS_2, /* 0x13 */
+ MT2260_STATUS_3, /* 0x14 */
+ MT2260_STATUS_4, /* 0x15 */
+ MT2260_STATUS_5, /* 0x16 */
+ MT2260_SRO_CTRL, /* 0x17 */
+ MT2260_RSVD_18, /* 0x18 */
+ MT2260_RSVD_19, /* 0x19 */
+ MT2260_RSVD_1A, /* 0x1A */
+ MT2260_RSVD_1B, /* 0x1B */
+ MT2260_ENABLES, /* 0x1C */
+ MT2260_RSVD_1D, /* 0x1D */
+ MT2260_RSVD_1E, /* 0x1E */
+ MT2260_RSVD_1F, /* 0x1F */
+ MT2260_GPO, /* 0x20 */
+ MT2260_RSVD_21, /* 0x21 */
+ MT2260_RSVD_22, /* 0x22 */
+ MT2260_RSVD_23, /* 0x23 */
+ MT2260_RSVD_24, /* 0x24 */
+ MT2260_RSVD_25, /* 0x25 */
+ MT2260_RSVD_26, /* 0x26 */
+ MT2260_RSVD_27, /* 0x27 */
+ MT2260_RSVD_28, /* 0x28 */
+ MT2260_RSVD_29, /* 0x29 */
+ MT2260_RSVD_2A, /* 0x2A */
+ MT2260_RSVD_2B, /* 0x2B */
+ MT2260_RSVD_2C, /* 0x2C */
+ MT2260_RSVD_2D, /* 0x2D */
+ MT2260_RSVD_2E, /* 0x2E */
+ MT2260_RSVD_2F, /* 0x2F */
+ MT2260_RSVD_30, /* 0x30 */
+ MT2260_RSVD_31, /* 0x31 */
+ MT2260_RSVD_32, /* 0x32 */
+ MT2260_RSVD_33, /* 0x33 */
+ MT2260_RSVD_34, /* 0x34 */
+ MT2260_RSVD_35, /* 0x35 */
+ MT2260_RSVD_36, /* 0x36 */
+ MT2260_RSVD_37, /* 0x37 */
+ MT2260_RSVD_38, /* 0x38 */
+ MT2260_RSVD_39, /* 0x39 */
+ MT2260_RSVD_3A, /* 0x3A */
+ MT2260_RSVD_3B, /* 0x3B */
+ MT2260_RSVD_3C, /* 0x3C */
+ END_REGS
+};
+
+/*
+** DefaultsEntry points to an array of U8Data used to initialize
+** various registers (the first byte is the starting subaddress)
+** and a count of the bytes (including subaddress) in the array.
+**
+** DefaultsList is an array of DefaultsEntry elements terminated
+** by an entry with a NULL pointer for the data array.
+*/
+typedef struct MT2260_DefaultsEntryTag
+{
+ U8Data *data;
+ UData_t cnt;
+} MT2260_DefaultsEntry;
+
+typedef MT2260_DefaultsEntry MT2260_DefaultsList[];
+
+#define DEF_LIST_ENTRY(a) {a, sizeof(a)/sizeof(U8Data) - 1}
+#define END_DEF_LIST {0,0}
+
+/*
+** Constants used by the tuning algorithm
+*/
+ /* REF_FREQ is now the actual crystal frequency */
+#define REF_FREQ (30000000UL) /* Reference oscillator Frequency (in Hz) */
+#define TUNE_STEP_SIZE (50UL) /* Tune in steps of 50 kHz */
+#define MIN_UHF_FREQ (350000000UL) /* Minimum UHF frequency (in Hz) */
+#define MAX_UHF_FREQ (900000000UL) /* Maximum UHF frequency (in Hz) */
+#define MIN_LBAND_FREQ (1670000000UL) /* Minimum L-Band frequency (in Hz) */
+#define MAX_LBAND_FREQ (1680000000UL) /* Maximum L-Band frequency (in Hz) */
+#define OUTPUT_BW (8000000UL) /* Output channel bandwidth (in Hz) */
+#define UHF_DEFAULT_FREQ (600000000UL) /* Default UHF input frequency (in Hz) */
+
+
+/*
+** The number of Tuner Registers
+*/
+static const UData_t Num_Registers = END_REGS;
+
+typedef struct
+{
+ Handle_t handle;
+ Handle_t hUserData;
+ UData_t address;
+ UData_t version;
+ UData_t tuner_id;
+ UData_t f_Ref;
+ UData_t f_Step;
+ UData_t f_in;
+ UData_t f_LO;
+ UData_t f_bw;
+ UData_t band;
+ UData_t num_regs;
+ U8Data RC2_Value;
+ U8Data RC2_Nominal;
+ U8Data reg[END_REGS];
+} MT2260_Info_t;
+
+static UData_t nMaxTuners = MT2260_CNT;
+static MT2260_Info_t MT2260_Info[MT2260_CNT];
+static MT2260_Info_t *Avail[MT2260_CNT];
+static UData_t nOpenTuners = 0;
+
+/*
+** Constants used to write a minimal set of registers when changing bands.
+** If the user wants a total reset, they should call MT2260_Open() again.
+** Skip 01, 02, 03, 04 (get overwritten anyways)
+** Write 05
+** Skip 06 - 18
+** Write 19 (diff for L-Band)
+** Skip 1A 1B 1C
+** Write 1D - 2B
+** Skip 2C - 3C
+*/
+
+static U8Data MT2260_UHF_defaults1[] =
+{
+ 0x05, /* address 0xC0, reg 0x05 */
+ 0x52, /* Reg 0x05 */
+};
+static U8Data MT2260_UHF_defaults2[] =
+{
+ 0x19, /* address 0xC0, reg 0x19 */
+ 0x61, /* Reg 0x19 CAPto = 3*/
+};
+static U8Data MT2260_UHF_defaults3[] =
+{
+ 0x1D, /* address 0xC0, reg 0x1D */
+ 0xDC, /* Reg 0x1D */
+ 0x00, /* Reg 0x1E */
+ 0x0A, /* Reg 0x1F */
+ 0xD4, /* Reg 0x20 GPO = 1*/
+ 0x03, /* Reg 0x21 LBIASen = 1, UBIASen = 1*/
+ 0x64, /* Reg 0x22 */
+ 0x64, /* Reg 0x23 */
+ 0x64, /* Reg 0x24 */
+ 0x64, /* Reg 0x25 */
+ 0x22, /* Reg 0x26 CASCM = b0100 (bits reversed)*/
+ 0xAA, /* Reg 0x27 */
+ 0xF2, /* Reg 0x28 */
+ 0x1E, /* Reg 0x29 */
+ 0x80, /* Reg 0x2A MIXbiasen = 1*/
+ 0x14, /* Reg 0x2B */
+};
+
+static MT2260_DefaultsList MT2260_UHF_defaults = {
+ DEF_LIST_ENTRY(MT2260_UHF_defaults1),
+ DEF_LIST_ENTRY(MT2260_UHF_defaults2),
+ DEF_LIST_ENTRY(MT2260_UHF_defaults3),
+ END_DEF_LIST
+};
+
+static U8Data MT2260_LBAND_defaults1[] =
+{
+ 0x05, /* address 0xC0, reg 0x05 */
+ 0xC4, /* Reg 0x05 */
+};
+static U8Data MT2260_LBAND_defaults2[] =
+{
+ 0x19, /* address 0xC0, reg 0x19 */
+ 0x63, /* Reg 0x19 CAPto = 3, VCOamp = 3*/
+};
+static U8Data MT2260_LBAND_defaults3[] =
+{
+ 0x1D, /* address 0xC0, reg 0x1D */
+ 0xFE, /* Reg 0x1D */
+ 0x00, /* reg 0x1E */
+ 0x00, /* reg 0x1F */
+ 0xB4, /* Reg 0x20 GPO = 1, RFAext = 0*/
+ 0x01, /* Reg 0x21 LBIASen = 1*/
+ 0xA5, /* Reg 0x22 */
+ 0xA5, /* Reg 0x23 */
+ 0xA5, /* Reg 0x24 */
+ 0xA5, /* Reg 0x25 */
+ 0x82, /* Reg 0x26 CASCM = b0001 (bits reversed)*/
+ 0xAA, /* Reg 0x27 */
+ 0xF1, /* Reg 0x28 */
+ 0x17, /* Reg 0x29 */
+ 0x80, /* Reg 0x2A MIXbiasen = 1*/
+ 0x1F, /* Reg 0x2B */
+};
+
+static MT2260_DefaultsList MT2260_LBAND_defaults = {
+ DEF_LIST_ENTRY(MT2260_LBAND_defaults1),
+ DEF_LIST_ENTRY(MT2260_LBAND_defaults2),
+ DEF_LIST_ENTRY(MT2260_LBAND_defaults3),
+ END_DEF_LIST
+};
+
+/* This table is used when MaxSensitivity is ON */
+static UData_t MT2260_UHF_XFreq[] =
+{
+ 443000 / TUNE_STEP_SIZE, /* < 443 MHz: 15+1 */
+ 470000 / TUNE_STEP_SIZE, /* 443 .. 470 MHz: 15 */
+ 496000 / TUNE_STEP_SIZE, /* 470 .. 496 MHz: 14 */
+ 525000 / TUNE_STEP_SIZE, /* 496 .. 525 MHz: 13 */
+ 552000 / TUNE_STEP_SIZE, /* 525 .. 552 MHz: 12 */
+ 580000 / TUNE_STEP_SIZE, /* 552 .. 580 MHz: 11 */
+ 605000 / TUNE_STEP_SIZE, /* 580 .. 605 MHz: 10 */
+ 632000 / TUNE_STEP_SIZE, /* 605 .. 632 MHz: 9 */
+ 657000 / TUNE_STEP_SIZE, /* 632 .. 657 MHz: 8 */
+ 682000 / TUNE_STEP_SIZE, /* 657 .. 682 MHz: 7 */
+ 710000 / TUNE_STEP_SIZE, /* 682 .. 710 MHz: 6 */
+ 735000 / TUNE_STEP_SIZE, /* 710 .. 735 MHz: 5 */
+ 763000 / TUNE_STEP_SIZE, /* 735 .. 763 MHz: 4 */
+ 802000 / TUNE_STEP_SIZE, /* 763 .. 802 MHz: 3 */
+ 840000 / TUNE_STEP_SIZE, /* 802 .. 840 MHz: 2 */
+ 877000 / TUNE_STEP_SIZE /* 840 .. 877 MHz: 1 */
+ /* 877+ MHz: 0 */
+};
+
+/* This table is used when MaxSensitivity is OFF */
+static UData_t MT2260_UHFA_XFreq[] =
+{
+ 442000 / TUNE_STEP_SIZE, /* < 442 MHz: 15+1 */
+ 472000 / TUNE_STEP_SIZE, /* 442 .. 472 MHz: 15 */
+ 505000 / TUNE_STEP_SIZE, /* 472 .. 505 MHz: 14 */
+ 535000 / TUNE_STEP_SIZE, /* 505 .. 535 MHz: 13 */
+ 560000 / TUNE_STEP_SIZE, /* 535 .. 560 MHz: 12 */
+ 593000 / TUNE_STEP_SIZE, /* 560 .. 593 MHz: 11 */
+ 620000 / TUNE_STEP_SIZE, /* 593 .. 620 MHz: 10 */
+ 647000 / TUNE_STEP_SIZE, /* 620 .. 647 MHz: 9 */
+ 673000 / TUNE_STEP_SIZE, /* 647 .. 673 MHz: 8 */
+ 700000 / TUNE_STEP_SIZE, /* 673 .. 700 MHz: 7 */
+ 727000 / TUNE_STEP_SIZE, /* 700 .. 727 MHz: 6 */
+ 752000 / TUNE_STEP_SIZE, /* 727 .. 752 MHz: 5 */
+ 783000 / TUNE_STEP_SIZE, /* 752 .. 783 MHz: 4 */
+ 825000 / TUNE_STEP_SIZE, /* 783 .. 825 MHz: 3 */
+ 865000 / TUNE_STEP_SIZE, /* 825 .. 865 MHz: 2 */
+ 905000 / TUNE_STEP_SIZE /* 865 .. 905 MHz: 1 */
+ /* 905+ MHz: 0 */
+};
+
+static UData_t UncheckedSet(MT2260_Info_t* pInfo,
+ U8Data reg,
+ U8Data val);
+
+static UData_t UncheckedGet(MT2260_Info_t* pInfo,
+ U8Data reg,
+ U8Data* val);
+
+
+/******************************************************************************
+**
+** Name: MT2260_Open
+**
+** Description: Initialize the tuner's register values.
+**
+** Parameters: MT2260_Addr - Serial bus address of the tuner.
+** hMT2260 - Tuner handle passed back.
+** hUserData - User-defined data, if needed for the
+** MT2260_ReadSub() & MT2260_WriteSub functions.
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_TUNER_ID_ERR - Tuner Part/Rev code mismatch
+** MT_TUNER_INIT_ERR - Tuner initialization failed
+** MT_COMM_ERR - Serial bus communications error
+** MT_ARG_NULL - Null pointer argument passed
+** MT_TUNER_CNT_ERR - Too many tuners open
+**
+** Dependencies: MT2260_ReadSub - Read byte(s) of data from the two-wire bus
+** MT2260_WriteSub - Write byte(s) of data to the two-wire bus
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2260_Open(UData_t MT2260_Addr,
+ Handle_t* hMT2260,
+ Handle_t hUserData)
+{
+ UData_t status = MT_OK; /* Status to be returned. */
+ SData_t i;
+ MT2260_Info_t* pInfo = NULL;
+
+ /* Check the argument before using */
+ if (hMT2260 == NULL)
+ return MT_ARG_NULL;
+ *hMT2260 = NULL;
+
+ /*
+ ** If this is our first tuner, initialize the address fields and
+ ** the list of available control blocks.
+ */
+ if (nOpenTuners == 0)
+ {
+ for (i=MT2260_CNT-1; i>=0; i--)
+ {
+ MT2260_Info[i].handle = NULL;
+ MT2260_Info[i].address = MAX_UDATA;
+ MT2260_Info[i].hUserData = NULL;
+ Avail[i] = &MT2260_Info[i];
+ }
+ }
+
+ /*
+ ** Look for an existing MT2260_State_t entry with this address.
+ */
+ for (i=MT2260_CNT-1; i>=0; i--)
+ {
+ /*
+ ** If an open'ed handle provided, we'll re-initialize that structure.
+ **
+ ** We recognize an open tuner because the address and hUserData are
+ ** the same as one that has already been opened
+ */
+ if ((MT2260_Info[i].address == MT2260_Addr) &&
+ (MT2260_Info[i].hUserData == hUserData))
+ {
+ pInfo = &MT2260_Info[i];
+ break;
+ }
+ }
+
+ /* If not found, choose an empty spot. */
+ if (pInfo == NULL)
+ {
+ /* Check to see that we're not over-allocating. */
+ if (nOpenTuners == MT2260_CNT)
+ return MT_TUNER_CNT_ERR;
+
+ /* Use the next available block from the list */
+ pInfo = Avail[nOpenTuners];
+ nOpenTuners++;
+ }
+
+ pInfo->handle = (Handle_t) pInfo;
+ pInfo->hUserData = hUserData;
+ pInfo->address = MT2260_Addr;
+
+ status |= MT2260_ReInit((Handle_t) pInfo);
+
+ if (MT_IS_ERROR(status))
+ MT2260_Close((Handle_t) pInfo);
+ else
+ *hMT2260 = pInfo->handle;
+
+ return (status);
+}
+
+
+static UData_t IsValidHandle(MT2260_Info_t* handle)
+{
+ return ((handle != NULL) && (handle->handle == handle)) ? 1 : 0;
+}
+
+
+/******************************************************************************
+**
+** Name: MT2260_Close
+**
+** Description: Release the handle to the tuner.
+**
+** Parameters: hMT2260 - Handle to the MT2260 tuner
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: mt_errordef.h - definition of error codes
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2260_Close(Handle_t hMT2260)
+{
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) hMT2260;
+
+ if (!IsValidHandle(pInfo))
+ return MT_INV_HANDLE;
+
+ /* Remove the tuner from our list of tuners */
+ pInfo->handle = NULL;
+ pInfo->address = MAX_UDATA;
+ pInfo->hUserData = NULL;
+ nOpenTuners--;
+ Avail[nOpenTuners] = pInfo; /* Return control block to available list */
+
+ return MT_OK;
+}
+
+
+/******************************************************************************
+**
+** Name: Run_BB_RC_Cal2
+**
+** Description: Run Base Band RC Calibration (Method 2)
+** MT2260 B0 only, others return MT_OK
+**
+** Parameters: hMT2260 - Handle to the MT2260 tuner
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: mt_errordef.h - definition of error codes
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+** N/A 04-26-2006 DAD Clear bit only if SRO >= 36 MHz (was 33 MHz).
+**
+******************************************************************************/
+static UData_t Run_BB_RC_Cal2(Handle_t h)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ U8Data tmp_rcc;
+ U8Data dumy;
+
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ /*
+ ** Set the crystal frequency in the calibration register
+ ** and enable RC calibration #2
+ */
+ PREFETCH(MT2260_RCC_CTRL, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ tmp_rcc = pInfo->reg[MT2260_RCC_CTRL];
+ if (pInfo->f_Ref < (36000000 /*/ TUNE_STEP_SIZE*/))
+ tmp_rcc = (tmp_rcc & 0xDF) | 0x10;
+ else
+ tmp_rcc |= 0x30;
+ status |= UncheckedSet(pInfo, MT2260_RCC_CTRL, tmp_rcc);
+
+ /* Read RC Calibration value */
+ status |= UncheckedGet(pInfo, MT2260_STATUS_4, &dumy);
+
+ /* Disable RC Cal 2 */
+ status |= UncheckedSet(pInfo, MT2260_RCC_CTRL, pInfo->reg[MT2260_RCC_CTRL] & 0xEF);
+
+ /* Store RC Cal 2 value */
+ pInfo->RC2_Value = pInfo->reg[MT2260_STATUS_4];
+
+ if (pInfo->f_Ref < (36000000 /*/ TUNE_STEP_SIZE*/))
+ pInfo->RC2_Nominal = (U8Data) ((pInfo->f_Ref + 77570) / 155139);
+ else
+ pInfo->RC2_Nominal = (U8Data) ((pInfo->f_Ref + 93077) / 186154);
+
+ return (status);
+}
+
+
+/******************************************************************************
+**
+** Name: Set_BBFilt
+**
+** Description: Set Base Band Filter bandwidth
+** Based on SRO frequency & BB RC Calibration
+** User stores channel bw as 5-8 MHz. This routine
+** calculates a 3 dB corner bw based on 1/2 the bandwidth
+** and a bandwidth related constant.
+**
+** Parameters: hMT2260 - Handle to the MT2260 tuner
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: mt_errordef.h - definition of error codes
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+static UData_t Set_BBFilt(Handle_t h)
+{
+ UData_t f_3dB_bw;
+ U8Data BBFilt = 0;
+ U8Data Sel = 0;
+ SData_t TmpFilt;
+ SData_t i;
+ UData_t status = MT_OK; /* Status to be returned */
+
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ /*
+ ** Convert the channel bandwidth into a 3 dB bw by dividing it by 2
+ ** and subtracting 300, 250, 200, or 0 kHz based on 8, 7, 6, 5 MHz
+ ** channel bandwidth.
+ */
+ f_3dB_bw = (pInfo->f_bw / 2); /* bw -> bw/2 */
+ if (pInfo->f_bw > 7500000)
+ {
+ /* >3.75 MHz corner */
+ f_3dB_bw -= 300000;
+ Sel = 0x00;
+ TmpFilt = ((429916107 / pInfo->RC2_Value) * pInfo->RC2_Nominal) / f_3dB_bw - 81;
+ }
+ else if (pInfo->f_bw > 6500000)
+ {
+ /* >3.25 MHz .. 3.75 MHz corner */
+ f_3dB_bw -= 250000;
+ Sel = 0x00;
+ TmpFilt = ((429916107 / pInfo->RC2_Value) * pInfo->RC2_Nominal) / f_3dB_bw - 81;
+ }
+ else if (pInfo->f_bw > 5500000)
+ {
+ /* >2.75 MHz .. 3.25 MHz corner */
+ f_3dB_bw -= 200000;
+ Sel = 0x80;
+ TmpFilt = ((429916107 / pInfo->RC2_Value) * pInfo->RC2_Nominal) / f_3dB_bw - 113;
+ }
+ else
+ {
+ /* <= 2.75 MHz corner */
+ Sel = 0xC0;
+ TmpFilt = ((429916107 / pInfo->RC2_Value) * pInfo->RC2_Nominal) / f_3dB_bw - 129;
+ }
+
+ if (TmpFilt > 63)
+ TmpFilt = 63;
+ else if (TmpFilt < 0)
+ TmpFilt = 0;
+ BBFilt = ((U8Data) TmpFilt) | Sel;
+
+ for ( i = MT2260_BBFILT_1; i <= MT2260_BBFILT_8; i++ )
+ pInfo->reg[i] = BBFilt;
+
+ if (MT_NO_ERROR(status))
+ status |= MT2260_WriteSub(pInfo->hUserData,
+ pInfo->address,
+ MT2260_BBFILT_1,
+ &pInfo->reg[MT2260_BBFILT_1],
+ 8);
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2260_GetLocked
+**
+** Description: Checks to see if the PLL is locked.
+**
+** Parameters: h - Open handle to the tuner (from MT2260_Open).
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: MT2260_ReadSub - Read byte(s) of data from the serial bus
+** MT2260_Sleep - Delay execution for x milliseconds
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_GetLocked(Handle_t h)
+{
+ const UData_t nMaxWait = 200; /* wait a maximum of 200 msec */
+ const UData_t nPollRate = 2; /* poll status bits every 2 ms */
+ const UData_t nMaxLoops = nMaxWait / nPollRate;
+ UData_t status = MT_OK; /* Status to be returned */
+ UData_t nDelays = 0;
+ U8Data statreg;
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ if (IsValidHandle(pInfo) == 0)
+ return MT_INV_HANDLE;
+
+ do
+ {
+ status |= UncheckedGet(pInfo, MT2260_STATUS_1, &statreg);
+
+ if ((MT_IS_ERROR(status)) || ((statreg & 0x40) == 0x40))
+ return (status);
+
+ MT2260_Sleep(pInfo->hUserData, nPollRate); /* Wait between retries */
+ }
+ while (++nDelays < nMaxLoops);
+
+ if ((statreg & 0x40) != 0x40)
+ status |= MT_DNC_UNLOCK;
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2260_GetParam
+**
+** Description: Gets a tuning algorithm parameter.
+**
+** This function provides access to the internals of the
+** tuning algorithm - mostly for testing purposes.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** param - Tuning algorithm parameter
+** (see enum MT2260_Param)
+** pValue - ptr to returned value
+**
+** param Description
+** ---------------------- --------------------------------
+** MT2260_IC_ADDR Serial Bus address of this tuner
+** MT2260_MAX_OPEN Max number of MT2260's that can be open
+** MT2260_NUM_OPEN Number of MT2260's currently open
+** MT2260_NUM_REGS Number of tuner registers
+** MT2260_SRO_FREQ crystal frequency
+** MT2260_STEPSIZE minimum tuning step size
+** MT2260_INPUT_FREQ input center frequency
+** MT2260_LO_FREQ LO Frequency
+** MT2260_OUTPUT_BW Output channel bandwidth
+** MT2260_RC2_VALUE Base band filter cal RC code (method 2)
+** MT2260_RC2_NOMINAL Base band filter nominal cal RC code
+** MT2260_RF_ADC RF attenuator A/D readback
+** MT2260_RF_ATTN RF attenuation (0-255)
+** MT2260_RF_EXT External control of RF atten
+** MT2260_LNA_GAIN LNA gain setting (0-15)
+** MT2260_BB_ADC BB attenuator A/D readback
+** MT2260_BB_ATTN Baseband attenuation (0-255)
+** MT2260_BB_EXT External control of BB atten
+**
+** Usage: status |= MT2260_GetParam(hMT2260,
+** MT2260_OUTPUT_BW,
+** &f_bw);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Invalid parameter requested
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** See Also: MT2260_SetParam, MT2260_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_GetParam(Handle_t h,
+ MT2260_Param param,
+ UData_t* pValue)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ U8Data tmp;
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ if (pValue == NULL)
+ status |= MT_ARG_NULL;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ if (MT_NO_ERROR(status))
+ {
+ switch (param)
+ {
+ /* Serial Bus address of this tuner */
+ case MT2260_IC_ADDR:
+ *pValue = pInfo->address;
+ break;
+
+ /* Max # of MT2260's allowed to be open */
+ case MT2260_MAX_OPEN:
+ *pValue = nMaxTuners;
+ break;
+
+ /* # of MT2260's open */
+ case MT2260_NUM_OPEN:
+ *pValue = nOpenTuners;
+ break;
+
+ /* Number of tuner registers */
+ case MT2260_NUM_REGS:
+ *pValue = Num_Registers;
+ break;
+
+ /* crystal frequency */
+ case MT2260_SRO_FREQ:
+ *pValue = pInfo->f_Ref;
+ break;
+
+ /* minimum tuning step size */
+ case MT2260_STEPSIZE:
+ *pValue = pInfo->f_Step;
+ break;
+
+ /* input center frequency */
+ case MT2260_INPUT_FREQ:
+ *pValue = pInfo->f_in;
+ break;
+
+ /* LO Frequency */
+ case MT2260_LO_FREQ:
+ *pValue = pInfo->f_LO;
+ break;
+
+ /* Output Channel Bandwidth */
+ case MT2260_OUTPUT_BW:
+ *pValue = pInfo->f_bw;
+ break;
+
+ /* Base band filter cal RC code */
+ case MT2260_RC2_VALUE:
+ *pValue = (UData_t) pInfo->RC2_Value;
+ break;
+
+ /* Base band filter nominal cal RC code */
+ case MT2260_RC2_NOMINAL:
+ *pValue = (UData_t) pInfo->RC2_Nominal;
+ break;
+
+ /* RF attenuator A/D readback */
+ case MT2260_RF_ADC:
+ status |= UncheckedGet(pInfo, MT2260_STATUS_2, &tmp);
+ if (MT_NO_ERROR(status))
+ *pValue = (UData_t) tmp;
+ break;
+
+ /* BB attenuator A/D readback */
+ case MT2260_BB_ADC:
+ status |= UncheckedGet(pInfo, MT2260_STATUS_3, &tmp);
+ if (MT_NO_ERROR(status))
+ *pValue = (UData_t) tmp;
+ break;
+
+ /* RF attenuator setting */
+ case MT2260_RF_ATTN:
+ PREFETCH(MT2260_RSVD_1F, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ if (MT_NO_ERROR(status))
+ *pValue = pInfo->reg[MT2260_RSVD_1F];
+ break;
+
+ /* BB attenuator setting */
+ case MT2260_BB_ATTN:
+ PREFETCH(MT2260_RSVD_2C, 3); /* Fetch register(s) if __NO_CACHE__ defined */
+ *pValue = pInfo->reg[MT2260_RSVD_2C]
+ + pInfo->reg[MT2260_RSVD_2D]
+ + pInfo->reg[MT2260_RSVD_2E] - 3;
+ break;
+
+ /* RF external / internal atten control */
+ case MT2260_RF_EXT:
+ PREFETCH(MT2260_GPO, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ *pValue = ((pInfo->reg[MT2260_GPO] & 0x40) != 0x00);
+ break;
+
+ /* BB external / internal atten control */
+ case MT2260_BB_EXT:
+ PREFETCH(MT2260_RSVD_33, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ *pValue = ((pInfo->reg[MT2260_RSVD_33] & 0x10) != 0x00);
+ break;
+
+ /* LNA gain setting (0-15) */
+ case MT2260_LNA_GAIN:
+ PREFETCH(MT2260_IGAIN, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ *pValue = ((pInfo->reg[MT2260_IGAIN] & 0x3C) >> 2);
+ break;
+
+ case MT2260_EOP:
+ default:
+ status |= MT_ARG_RANGE;
+ }
+ }
+ return (status);
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION - DO NOT USE OUTSIDE OF mt2260.c
+**
+** Name: UncheckedGet
+**
+** Description: Gets an MT2260 register with minimal checking
+**
+** NOTE: This is a local function that performs the same
+** steps as the MT2260_GetReg function that is available
+** in the external API. It does not do any of the standard
+** error checking that the API function provides and should
+** not be called from outside this file.
+**
+** Parameters: *pInfo - Tuner control structure
+** reg - MT2260 register/subaddress location
+** *val - MT2260 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** Use this function if you need to read a register from
+** the MT2260.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+static UData_t UncheckedGet(MT2260_Info_t* pInfo,
+ U8Data reg,
+ U8Data* val)
+{
+ UData_t status; /* Status to be returned */
+
+#if defined(_DEBUG)
+ status = MT_OK;
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ if (val == NULL)
+ status |= MT_ARG_NULL;
+
+ if (reg >= END_REGS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_IS_ERROR(status))
+ return(status);
+#endif
+
+ status = MT2260_ReadSub(pInfo->hUserData, pInfo->address, reg, &pInfo->reg[reg], 1);
+
+ if (MT_NO_ERROR(status))
+ *val = pInfo->reg[reg];
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2260_GetReg
+**
+** Description: Gets an MT2260 register.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** reg - MT2260 register/subaddress location
+** *val - MT2260 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** Use this function if you need to read a register from
+** the MT2260.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_GetReg(Handle_t h,
+ U8Data reg,
+ U8Data* val)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ if (val == NULL)
+ status |= MT_ARG_NULL;
+
+ if (reg >= END_REGS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_NO_ERROR(status))
+ status |= UncheckedGet(pInfo, reg, val);
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2260_GetUserData
+**
+** Description: Gets the user-defined data item.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** The hUserData parameter is a user-specific argument
+** that is stored internally with the other tuner-
+** specific information.
+**
+** For example, if additional arguments are needed
+** for the user to identify the device communicating
+** with the tuner, this argument can be used to supply
+** the necessary information.
+**
+** The hUserData parameter is initialized in the tuner's
+** Open function to NULL.
+**
+** See Also: MT2260_SetUserData, MT2260_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_GetUserData(Handle_t h,
+ Handle_t* hUserData)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status = MT_INV_HANDLE;
+
+ if (hUserData == NULL)
+ status |= MT_ARG_NULL;
+
+ if (MT_NO_ERROR(status))
+ *hUserData = pInfo->hUserData;
+
+ return (status);
+}
+
+
+/******************************************************************************
+**
+** Name: MT2260_ReInit
+**
+** Description: Initialize the tuner's register values.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_TUNER_ID_ERR - Tuner Part/Rev code mismatch
+** MT_TUNER_INIT_ERR - Tuner initialization failed
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_COMM_ERR - Serial bus communications error
+**
+** Dependencies: MT2260_ReadSub - Read byte(s) of data from the two-wire bus
+** MT2260_WriteSub - Write byte(s) of data to the two-wire bus
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2260_ReInit(Handle_t h)
+{
+ U8Data MT2260_Init_Defaults1[] =
+ {
+ 0x01, /* Start w/register 0x01 */
+ 0x00, /* Reg 0x01 */
+ 0x00, /* Reg 0x02 */
+ 0x28, /* Reg 0x03 */
+ 0x00, /* Reg 0x04 */
+ 0x52, /* Reg 0x05 */
+ 0x99, /* Reg 0x06 */
+ 0x3F, /* Reg 0x07 */
+ };
+
+ U8Data MT2260_Init_Defaults2[] =
+ {
+ 0x17, /* Start w/register 0x17 */
+ 0x6D, /* Reg 0x17 */
+ 0x71, /* Reg 0x18 */
+ 0x61, /* Reg 0x19 */
+ 0xC0, /* Reg 0x1A */
+ 0xBF, /* Reg 0x1B */
+ 0xFF, /* Reg 0x1C */
+ 0xDC, /* Reg 0x1D */
+ 0x00, /* Reg 0x1E */
+ 0x0A, /* Reg 0x1F */
+ 0xD4, /* Reg 0x20 */
+ 0x03, /* Reg 0x21 */
+ 0x64, /* Reg 0x22 */
+ 0x64, /* Reg 0x23 */
+ 0x64, /* Reg 0x24 */
+ 0x64, /* Reg 0x25 */
+ 0x22, /* Reg 0x26 */
+ 0xAA, /* Reg 0x27 */
+ 0xF2, /* Reg 0x28 */
+ 0x1E, /* Reg 0x29 */
+ 0x80, /* Reg 0x2A */
+ 0x14, /* Reg 0x2B */
+ 0x01, /* Reg 0x2C */
+ 0x01, /* Reg 0x2D */
+ 0x01, /* Reg 0x2E */
+ 0x01, /* Reg 0x2F */
+ 0x01, /* Reg 0x30 */
+ 0x01, /* Reg 0x31 */
+ 0x7F, /* Reg 0x32 */
+ 0x5E, /* Reg 0x33 */
+ 0x3F, /* Reg 0x34 */
+ 0xFF, /* Reg 0x35 */
+ 0xFF, /* Reg 0x36 */
+ 0xFF, /* Reg 0x37 */
+ 0x00, /* Reg 0x38 */
+ 0x77, /* Reg 0x39 */
+ 0x0F, /* Reg 0x3A */
+ 0x2D, /* Reg 0x3B */
+ };
+
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+ U8Data BBVref;
+ U8Data tmpreg = 0;
+ U8Data fusereg = 0;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ /* Read the Part/Rev code from the tuner */
+ if (MT_NO_ERROR(status))
+ status |= UncheckedGet(pInfo, MT2260_PART_REV, &tmpreg);
+
+ /* MT2260 B0 */
+ if (MT_NO_ERROR(status) && (tmpreg != 0x85))
+ status |= MT_TUNER_ID_ERR; /* Wrong tuner Part/Rev code */
+
+ if (MT_NO_ERROR(status))
+ {
+ /* Initialize the tuner state. Hold off on f_in and f_LO */
+ pInfo->version = VERSION;
+ pInfo->tuner_id = pInfo->reg[MT2260_PART_REV];
+ pInfo->f_Ref = REF_FREQ;
+ pInfo->f_Step = TUNE_STEP_SIZE * 1000; /* kHz -> Hz */
+ pInfo->f_in = UHF_DEFAULT_FREQ;
+ pInfo->f_LO = UHF_DEFAULT_FREQ;
+ pInfo->f_bw = OUTPUT_BW;
+ pInfo->band = MT2260_UHF_BAND;
+ pInfo->num_regs = END_REGS;
+
+ /* Write the default values to the tuner registers. Default mode is UHF */
+ status |= MT2260_WriteSub(pInfo->hUserData,
+ pInfo->address,
+ MT2260_Init_Defaults1[0],
+ &MT2260_Init_Defaults1[1],
+ sizeof(MT2260_Init_Defaults1)/sizeof(U8Data)-1);
+
+ if (MT_NO_ERROR(status))
+ {
+ status |= MT2260_WriteSub(pInfo->hUserData,
+ pInfo->address,
+ MT2260_Init_Defaults2[0],
+ &MT2260_Init_Defaults2[1],
+ sizeof(MT2260_Init_Defaults2)/sizeof(U8Data)-1);
+ }
+ }
+
+ /* Read back all the registers from the tuner */
+ if (MT_NO_ERROR(status))
+ {
+ status |= MT2260_ReadSub(pInfo->hUserData, pInfo->address, 0, &pInfo->reg[0], END_REGS);
+ }
+
+ /*
+ ** Read the FUSE registers and set BBVref[0x33] accordingly
+ */
+ tmpreg = pInfo->reg[MT2260_RSVD_11] |= 0x03; /* FUSEen=1, FUSErd=1 */
+ if (MT_NO_ERROR(status))
+ status |= UncheckedSet(pInfo, MT2260_RSVD_11, tmpreg);
+ tmpreg &= ~(0x02); /* FUSErd=0 */
+ if (MT_NO_ERROR(status))
+ status |= UncheckedSet(pInfo, MT2260_RSVD_11, tmpreg);
+
+ /* Get and store the fuse register value */
+ if (MT_NO_ERROR(status))
+ status |= UncheckedGet(pInfo, MT2260_STATUS_5, &fusereg);
+
+ /* Use fuse register value to set BBVref */
+ if (MT_NO_ERROR(status))
+ {
+ BBVref = (((fusereg >> 6) + 2) & 0x03);
+ tmpreg = (pInfo->reg[MT2260_RSVD_33] & ~(0x60)) | (BBVref << 5);
+ status |= UncheckedSet(pInfo, MT2260_RSVD_33, tmpreg);
+ }
+
+ if (MT_NO_ERROR(status))
+ status |= Run_BB_RC_Cal2(h);
+
+ if (MT_NO_ERROR(status))
+ status |= Set_BBFilt(h);
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2260_SetParam
+**
+** Description: Sets a tuning algorithm parameter.
+**
+** This function provides access to the internals of the
+** tuning algorithm. You can override many of the tuning
+** algorithm defaults using this function.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** param - Tuning algorithm parameter
+** (see enum MT2260_Param)
+** nValue - value to be set
+**
+** param Description
+** ---------------------- --------------------------------
+** MT2260_SRO_FREQ crystal frequency
+** MT2260_STEPSIZE minimum tuning step size
+** MT2260_INPUT_FREQ Center of input channel
+** MT2260_OUTPUT_BW Output channel bandwidth
+** MT2260_RF_ATTN RF attenuation (0-255)
+** MT2260_RF_EXT External control of RF atten
+** MT2260_LNA_GAIN LNA gain setting (0-15)
+** MT2260_LNA_GAIN_DECR Decrement LNA Gain (arg=min)
+** MT2260_LNA_GAIN_INCR Increment LNA Gain (arg=max)
+** MT2260_BB_ATTN Baseband attenuation (0-255)
+** MT2260_BB_EXT External control of BB atten
+** MT2260_UHF_MAXSENS Set for UHF max sensitivity mode
+** MT2260_UHF_NORMAL Set for UHF normal mode
+**
+** Usage: status |= MT2260_SetParam(hMT2260,
+** MT2260_STEPSIZE,
+** 50000);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_RANGE - Invalid parameter requested
+** or set value out of range
+** or non-writable parameter
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** See Also: MT2260_GetParam, MT2260_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+** N/A 04-26-2006 DAD Ver 1.01: Add support for 8-38.4 MHz crystals
+**
+****************************************************************************/
+UData_t MT2260_SetParam(Handle_t h,
+ MT2260_Param param,
+ UData_t nValue)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ U8Data tmpreg;
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ if (MT_NO_ERROR(status))
+ {
+ switch (param)
+ {
+ /* crystal frequency */
+ case MT2260_SRO_FREQ:
+ pInfo->f_Ref = nValue;
+ if (pInfo->f_Ref < 22000000)
+ {
+ /* Turn off f_SRO divide by 2 */
+ status |= UncheckedSet(pInfo,
+ MT2260_SRO_CTRL,
+ (U8Data) (pInfo->reg[MT2260_SRO_CTRL] &= 0xFE));
+ }
+ else
+ {
+ /* Turn on f_SRO divide by 2 */
+ status |= UncheckedSet(pInfo,
+ MT2260_SRO_CTRL,
+ (U8Data) (pInfo->reg[MT2260_SRO_CTRL] |= 0x01));
+ }
+ status |= Run_BB_RC_Cal2(h);
+ if (MT_NO_ERROR(status))
+ status |= Set_BBFilt(h);
+ break;
+
+ /* minimum tuning step size */
+ case MT2260_STEPSIZE:
+ pInfo->f_Step = nValue;
+ break;
+
+ /* Width of output channel */
+ case MT2260_OUTPUT_BW:
+ pInfo->f_bw = nValue;
+ status |= Set_BBFilt(h);
+ break;
+
+ /* BB attenuation (0-255) */
+ case MT2260_BB_ATTN:
+ if (nValue > 255)
+ status |= MT_ARG_RANGE;
+ else
+ {
+ UData_t BBA_Stage1;
+ UData_t BBA_Stage2;
+ UData_t BBA_Stage3;
+
+ BBA_Stage3 = (nValue > 102) ? 103 : nValue + 1;
+ BBA_Stage2 = (nValue > 175) ? 75 : nValue + 2 - BBA_Stage3;
+ BBA_Stage1 = (nValue > 176) ? nValue - 175 : 1;
+ pInfo->reg[MT2260_RSVD_2C] = (U8Data) BBA_Stage1;
+ pInfo->reg[MT2260_RSVD_2D] = (U8Data) BBA_Stage2;
+ pInfo->reg[MT2260_RSVD_2E] = (U8Data) BBA_Stage3;
+ pInfo->reg[MT2260_RSVD_2F] = (U8Data) BBA_Stage1;
+ pInfo->reg[MT2260_RSVD_30] = (U8Data) BBA_Stage2;
+ pInfo->reg[MT2260_RSVD_31] = (U8Data) BBA_Stage3;
+ status |= MT2260_WriteSub(pInfo->hUserData,
+ pInfo->address,
+ MT2260_RSVD_2C,
+ &pInfo->reg[MT2260_RSVD_2C],
+ 6);
+ }
+ break;
+
+ /* RF attenuation (0-255) */
+ case MT2260_RF_ATTN:
+ if (nValue > 255)
+ status |= MT_ARG_RANGE;
+ else
+ status |= UncheckedSet(pInfo, MT2260_RSVD_1F, (U8Data) nValue);
+ break;
+
+ /* RF external / internal atten control */
+ case MT2260_RF_EXT:
+ if (nValue == 0)
+ tmpreg = pInfo->reg[MT2260_GPO] &= ~0x40;
+ else
+ tmpreg = pInfo->reg[MT2260_GPO] |= 0x40;
+ status |= UncheckedSet(pInfo, MT2260_GPO, tmpreg);
+ break;
+
+ /* LNA gain setting (0-15) */
+ case MT2260_LNA_GAIN:
+ if (nValue > 15)
+ status |= MT_ARG_RANGE;
+ else
+ {
+ tmpreg = (pInfo->reg[MT2260_IGAIN] & 0xC3) | ((U8Data)nValue << 2);
+ status |= UncheckedSet(pInfo, MT2260_IGAIN, tmpreg);
+ }
+ break;
+
+ /* Decrement LNA Gain setting, argument is min LNA Gain setting */
+ case MT2260_LNA_GAIN_DECR:
+ if (nValue > 15)
+ status |= MT_ARG_RANGE;
+ else
+ {
+ PREFETCH(MT2260_IGAIN, 1);
+ if (MT_NO_ERROR(status) && ((U8Data) ((pInfo->reg[MT2260_IGAIN] & 0x3C) >> 2) > (U8Data) nValue))
+ status |= UncheckedSet(pInfo, MT2260_IGAIN, pInfo->reg[MT2260_IGAIN] - 0x04);
+ }
+ break;
+
+ /* Increment LNA Gain setting, argument is max LNA Gain setting */
+ case MT2260_LNA_GAIN_INCR:
+ if (nValue > 15)
+ status |= MT_ARG_RANGE;
+ else
+ {
+ PREFETCH(MT2260_IGAIN, 1);
+ if (MT_NO_ERROR(status) && ((U8Data) ((pInfo->reg[MT2260_IGAIN] & 0x3C) >> 2) < (U8Data) nValue))
+ status |= UncheckedSet(pInfo, MT2260_IGAIN, pInfo->reg[MT2260_IGAIN] + 0x04);
+ }
+ break;
+
+ /* BB external / internal atten control */
+ case MT2260_BB_EXT:
+ if (nValue == 0)
+ /* tmpreg = pInfo->reg[MT2260_RSVD_33] &= ~0x08; */
+ tmpreg = pInfo->reg[MT2260_RSVD_33] &= ~0x10;
+ else
+ /* tmpreg = pInfo->reg[MT2260_RSVD_33] |= 0x08; */
+ tmpreg = pInfo->reg[MT2260_RSVD_33] |= 0x10;
+ status |= UncheckedSet(pInfo, MT2260_RSVD_33, tmpreg);
+ break;
+
+ /* Set for UHF max sensitivity mode */
+ case MT2260_UHF_MAXSENS:
+ PREFETCH(MT2260_BAND_CTRL, 1);
+ if (MT_NO_ERROR(status) && ((pInfo->reg[MT2260_BAND_CTRL] ^ 0x30) == 0x10))
+ status |= UncheckedSet(pInfo, MT2260_BAND_CTRL, pInfo->reg[MT2260_BAND_CTRL] ^ 0x30);
+ break;
+
+ /* Set for UHF normal mode */
+ case MT2260_UHF_NORMAL:
+ if (MT_NO_ERROR(status) && ((pInfo->reg[MT2260_BAND_CTRL] ^ 0x30) == 0x20))
+ status |= UncheckedSet(pInfo, MT2260_BAND_CTRL, pInfo->reg[MT2260_BAND_CTRL] ^ 0x30);
+ break;
+
+ /* These parameters are read-only */
+ case MT2260_IC_ADDR:
+ case MT2260_MAX_OPEN:
+ case MT2260_NUM_OPEN:
+ case MT2260_NUM_REGS:
+ case MT2260_INPUT_FREQ:
+ case MT2260_LO_FREQ:
+ case MT2260_RC2_VALUE:
+ case MT2260_RF_ADC:
+ case MT2260_BB_ADC:
+ case MT2260_EOP:
+ default:
+ status |= MT_ARG_RANGE;
+ }
+ }
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2260_SetPowerModes
+**
+** Description: Sets the bits in the MT2260_ENABLES register and the
+** SROsd bit in the MT2260_SROADC_CTRL register.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** flags - Bit mask of flags to indicate enabled
+** bits.
+**
+** Usage: status = MT2260_SetPowerModes(hMT2260, flags);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** The bits in the MT2260_ENABLES register and the
+** SROsd bit are set according to the supplied flags.
+**
+** The pre-defined flags are as follows:
+** MT2260_SROen
+** MT2260_LOen
+** MT2260_ADCen
+** MT2260_PDen
+** MT2260_DCOCen
+** MT2260_BBen
+** MT2260_MIXen
+** MT2260_LNAen
+** MT2260_ALL_ENABLES
+** MT2260_NO_ENABLES
+** MT2260_SROsd
+** MT2260_SRO_NOT_sd
+**
+** ONLY the enable bits (or SROsd bit) specified in the
+** flags parameter will be set. Any flag which is not
+** included, will cause that bit to be disabled.
+**
+** The ALL_ENABLES, NO_ENABLES, and SRO_NOT_sd constants
+** are for convenience. The NO_ENABLES and SRO_NOT_sd
+** do not actually have to be included, but are provided
+** for clarity.
+**
+** See Also: MT2260_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_SetPowerModes(Handle_t h,
+ UData_t flags)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+ U8Data tmpreg;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ PREFETCH(MT2260_SRO_CTRL, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ if (MT_NO_ERROR(status))
+ {
+ if (flags & MT2260_SROsd)
+ tmpreg = pInfo->reg[MT2260_SRO_CTRL] |= 0x10; /* set the SROsd bit */
+ else
+ tmpreg = pInfo->reg[MT2260_SRO_CTRL] &= 0xEF; /* clear the SROsd bit */
+ status |= UncheckedSet(pInfo, MT2260_SRO_CTRL, tmpreg);
+ }
+
+ PREFETCH(MT2260_ENABLES, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+
+ if (MT_NO_ERROR(status))
+ {
+ status |= UncheckedSet(pInfo, MT2260_ENABLES, (U8Data)(flags & 0xff));
+ }
+
+ return status;
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION - DO NOT USE OUTSIDE OF mt2260.c
+**
+** Name: UncheckedSet
+**
+** Description: Sets an MT2260 register.
+**
+** NOTE: This is a local function that performs the same
+** steps as the MT2260_SetReg function that is available
+** in the external API. It does not do any of the standard
+** error checking that the API function provides and should
+** not be called from outside this file.
+**
+** Parameters: *pInfo - Tuner control structure
+** reg - MT2260 register/subaddress location
+** val - MT2260 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** Sets a register value without any preliminary checking for
+** valid handles or register numbers.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+static UData_t UncheckedSet(MT2260_Info_t* pInfo,
+ U8Data reg,
+ U8Data val)
+{
+ UData_t status; /* Status to be returned */
+
+#if defined(_DEBUG)
+ status = MT_OK;
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ if (reg >= END_REGS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_IS_ERROR(status))
+ return (status);
+#endif
+
+ status = MT2260_WriteSub(pInfo->hUserData, pInfo->address, reg, &val, 1);
+
+ if (MT_NO_ERROR(status))
+ pInfo->reg[reg] = val;
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2260_SetReg
+**
+** Description: Sets an MT2260 register.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** reg - MT2260 register/subaddress location
+** val - MT2260 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** Use this function if you need to override a default
+** register value
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_SetReg(Handle_t h,
+ U8Data reg,
+ U8Data val)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ status |= MT_INV_HANDLE;
+
+ if (reg >= END_REGS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_NO_ERROR(status))
+ status |= UncheckedSet(pInfo, reg, val);
+
+ return (status);
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION
+**
+** Name: RoundToStep
+**
+** Description: Rounds the given frequency to the closes f_Step value
+** given the tuner ref frequency..
+**
+**
+** Parameters: freq - Frequency to be rounded (in Hz).
+** f_Step - Step size for the frequency (in Hz).
+** f_Ref - SRO frequency (in Hz).
+**
+** Returns: Rounded frequency.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-01-2006 JWS Original
+**
+****************************************************************************/
+static UData_t RoundToStep(UData_t freq, UData_t f_Step, UData_t f_ref)
+{
+ return f_ref * (freq / f_ref)
+ + f_Step * (((freq % f_ref) + (f_Step / 2)) / f_Step);
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION
+**
+** Name: CalcLOMult
+**
+** Description: Calculates Integer divider value and the numerator
+** value for LO's FracN PLL.
+**
+** This function assumes that the f_LO and f_Ref are
+** evenly divisible by f_LO_Step.
+**
+** Parameters: Div - OUTPUT: Whole number portion of the multiplier
+** FracN - OUTPUT: Fractional portion of the multiplier
+** f_LO - desired LO frequency.
+** denom - LO FracN denominator value
+** f_Ref - SRO frequency.
+**
+** Returns: Recalculated LO frequency.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-01-2006 JWS Original
+**
+****************************************************************************/
+static UData_t CalcLOMult(UData_t *Div,
+ UData_t *FracN,
+ UData_t f_LO,
+ UData_t denom,
+ UData_t f_Ref)
+{
+ UData_t a, b, i;
+ const SData_t TwoNShift = 13; /* bits to shift to obtain 2^n qty */
+ const SData_t RoundShift = 18; /* bits to shift before rounding */
+ const UData_t FracN_Scale = (f_Ref / (MAX_UDATA >> TwoNShift)) + 1;
+
+ /* Calculate the whole number portion of the divider */
+ *Div = f_LO / f_Ref;
+
+ /*
+ ** Calculate the FracN numerator 1 bit at a time. This keeps the
+ ** integer values from overflowing when large values are multiplied.
+ ** This loop calculates the fractional portion of F/20MHz accurate
+ ** to 32 bits. The 2^n factor is represented by the placement of
+ ** the value in the 32-bit word. Since we want as much accuracy
+ ** as possible, we'll leave it at the top of the word.
+ */
+ *FracN = 0;
+ a = f_LO;
+ for (i=32; i>0; --i)
+ {
+ b = 2*(a % f_Ref);
+ *FracN = (*FracN * 2) + (b >= f_Ref);
+ a = b;
+ }
+
+ /*
+ ** If the denominator is a 2^n - 1 value (the usual case) then the
+ ** value we really need is (F/20) * 2^n - (F/20). Shifting the
+ ** calculated (F/20) value to the right and subtracting produces
+ ** the desired result -- still accurate to 32 bits.
+ */
+ if ((denom & 0x01) != 0)
+ *FracN -= (*FracN >> TwoNShift);
+
+ /*
+ ** Now shift the result so that it is 1 bit bigger than we need,
+ ** use the low-order bit to round the remaining bits, and shift
+ ** to make the answer the desired size.
+ */
+ *FracN >>= RoundShift;
+ *FracN = (*FracN & 0x01) + (*FracN >> 1);
+
+ /* Check for rollover (cannot happen with 50 kHz step size) */
+ if (*FracN == (denom | 1))
+ {
+ *FracN = 0;
+ ++Div;
+ }
+
+
+ return (f_Ref * (*Div))
+ + FracN_Scale * (((f_Ref / FracN_Scale) * (*FracN)) / denom);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2260_ChangeFreq
+**
+** Description: Change the tuner's tuned frequency to f_in.
+**
+** Parameters: h - Open handle to the tuner (from MT2260_Open).
+** f_in - RF input center frequency (in Hz).
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_FIN_RANGE - Input freq out of range
+** MT_DNC_RANGE - Downconverter freq out of range
+**
+** Dependencies: MUST CALL MT2260_Open BEFORE MT2260_ChangeFreq!
+**
+** MT2260_ReadSub - Read byte(s) of data from the two-wire-bus
+** MT2260_WriteSub - Write byte(s) of data to the two-wire-bus
+** MT2260_Sleep - Delay execution for x milliseconds
+** MT2260_GetLocked - Checks to see if the PLL is locked
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+** N/A 04-26-2006 DAD Ver 1.01: Add support for 8-38.4 MHz crystals
+**
+****************************************************************************/
+UData_t MT2260_ChangeFreq(Handle_t h,
+ UData_t f_in) /* RF input center frequency */
+{
+ MT2260_Info_t* pInfo = (MT2260_Info_t*) h;
+
+ UData_t status = MT_OK; /* status of operation */
+ UData_t LO; /* LO register value */
+ UData_t Num; /* Numerator for LO reg. value */
+ UData_t ofLO; /* last time's LO frequency */
+ UData_t ofin; /* last time's input frequency */
+ U8Data LO_Band; /* LO Mode bits */
+ UData_t s_fRef; /* Ref Freq scaled for LO Band */
+ UData_t this_band; /* Band for the requested freq */
+ UData_t SROx2; /* SRO times 2 */
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return MT_INV_HANDLE;
+
+ /*
+ ** Save original input and LO value
+ */
+ ofLO = pInfo->f_LO;
+ ofin = pInfo->f_in;
+
+ /*
+ ** Assign in the requested input value
+ */
+ pInfo->f_in = f_in;
+
+ /*
+ ** Get the SRO multiplier value
+ */
+ SROx2 = (2 - (pInfo->reg[MT2260_SRO_CTRL] & 0x01));
+
+ /* Request an LO that is on a step size boundary */
+ pInfo->f_LO = RoundToStep(f_in, pInfo->f_Step, pInfo->f_Ref);
+
+ if (pInfo->f_LO < MIN_UHF_FREQ)
+ {
+ status |= MT_FIN_RANGE | MT_ARG_RANGE | MT_DNC_RANGE;
+ return status; /* Does not support frequencies below MIN_UHF_FREQ */
+ }
+ else if (pInfo->f_LO <= MAX_UHF_FREQ)
+ {
+ /* UHF Band */
+ s_fRef = pInfo->f_Ref * SROx2 / 2;
+ LO_Band = 1;
+ this_band = MT2260_UHF_BAND;
+ }
+ else
+ {
+ /* L-Band */
+ s_fRef = pInfo->f_Ref * SROx2;
+ LO_Band = 3;
+ this_band = MT2260_L_BAND;
+
+ /*
+ ** Check the LO frequency range
+ */
+ if ((pInfo->f_LO < MIN_LBAND_FREQ) || (pInfo->f_LO > MAX_LBAND_FREQ))
+ status |= MT_FIN_RANGE | MT_DNC_RANGE;
+ }
+
+ /*
+ ** Calculate the LO frequencies and the values to be placed
+ ** in the tuning registers.
+ */
+ pInfo->f_LO = CalcLOMult(&LO, &Num, pInfo->f_LO, 8191, s_fRef);
+
+ /*
+ ** If we have the same LO frequencies and we're already locked,
+ ** then just return without writing any registers.
+ */
+ if ((ofLO == pInfo->f_LO)
+ && ((pInfo->reg[MT2260_STATUS_1] & 0x40) == 0x40))
+ {
+ return (status);
+ }
+
+ /*
+ ** Reset defaults here if we're tuning into a new band
+ */
+ if (MT_NO_ERROR(status))
+ {
+ if (this_band != pInfo->band)
+ {
+ MT2260_DefaultsEntry *defaults = NULL;
+ switch (this_band)
+ {
+ case MT2260_L_BAND:
+ defaults = &MT2260_LBAND_defaults[0];
+ break;
+ case MT2260_UHF_BAND:
+ defaults = &MT2260_UHF_defaults[0];
+ break;
+ default:
+ status |= MT_ARG_RANGE;
+ }
+ if ( MT_NO_ERROR(status))
+ {
+ while (defaults->data && MT_NO_ERROR(status))
+ {
+ status |= MT2260_WriteSub(pInfo->hUserData, pInfo->address, defaults->data[0], &defaults->data[1], defaults->cnt);
+ defaults++;
+ }
+ /* re-read the new registers into the cached values */
+ status |= MT2260_ReadSub(pInfo->hUserData, pInfo->address, 0, &pInfo->reg[0], END_REGS);
+ pInfo->band = this_band;
+ }
+ }
+ }
+
+ /*
+ ** Place all of the calculated values into the local tuner
+ ** register fields.
+ */
+ if (MT_NO_ERROR(status))
+ {
+ pInfo->reg[MT2260_LO_CTRL_1] = (U8Data)(Num >> 8);
+ pInfo->reg[MT2260_LO_CTRL_2] = (U8Data)(Num & 0xFF);
+ pInfo->reg[MT2260_LO_CTRL_3] = (U8Data)(LO & 0xFF);
+
+ /*
+ ** Now write out the computed register values
+ */
+ status |= MT2260_WriteSub(pInfo->hUserData, pInfo->address, MT2260_LO_CTRL_1, &pInfo->reg[MT2260_LO_CTRL_1], 3);
+
+ if (pInfo->band == MT2260_UHF_BAND)
+ {
+ U8Data CapSel = 0; /* def when f_in > all */
+ U8Data idx;
+ UData_t* XFreq;
+ SData_t ClearTune_Fuse;
+ SData_t f_offset;
+ UData_t f_in_;
+
+ PREFETCH(MT2260_BAND_CTRL, 2); /* Fetch register(s) if __NO_CACHE__ defined */
+ PREFETCH(MT2260_STATUS_5, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+
+ XFreq = (pInfo->reg[MT2260_BAND_CTRL] & 0x10) ? MT2260_UHFA_XFreq : MT2260_UHF_XFreq;
+ ClearTune_Fuse = pInfo->reg[MT2260_STATUS_5] & 0x07;
+ f_offset = (10000000) * ((ClearTune_Fuse > 3) ? (ClearTune_Fuse - 8) : ClearTune_Fuse);
+ f_in_ = (f_in - f_offset) / 1000 / TUNE_STEP_SIZE;
+
+ for (idx=0; idx<16; ++idx)
+ {
+ if (XFreq[idx] >= f_in_)
+ {
+ CapSel = 16 - idx;
+ break;
+ }
+ }
+ /* If CapSel == 16, set UBANDen and set CapSel = 15 */
+ if (CapSel == 16)
+ {
+ pInfo->reg[MT2260_BAND_CTRL] |= 0x01;
+ CapSel = 15;
+ }
+ else
+ pInfo->reg[MT2260_BAND_CTRL] &= ~(0x01);
+
+ pInfo->reg[MT2260_BAND_CTRL] =
+ (pInfo->reg[MT2260_BAND_CTRL] & 0x3F) | (LO_Band << 6);
+ pInfo->reg[MT2260_CLEARTUNE] = (CapSel << 4) | CapSel;
+ /* Write UBANDsel[05] & ClearTune[06] */
+ status |= MT2260_WriteSub(pInfo->hUserData, pInfo->address, MT2260_BAND_CTRL, &pInfo->reg[MT2260_BAND_CTRL], 2);
+ }
+ }
+
+ /*
+ ** Check for LO lock
+ */
+ if (MT_NO_ERROR(status))
+ {
+ status |= MT2260_GetLocked(h);
+ }
+
+ return (status);
+}
diff --git a/api/mt2260.h b/api/mt2260.h
new file mode 100644
index 0000000..c588f63
--- /dev/null
+++ b/api/mt2260.h
@@ -0,0 +1,611 @@
+/*****************************************************************************
+**
+** Name: mt2260.h
+**
+** Description: Microtune MT2260 Tuner software interface.
+** Supports tuners with Part/Rev code: 0x85.
+**
+** Functions
+** Implemented: UData_t MT2260_Open
+** UData_t MT2260_Close
+** UData_t MT2260_ChangeFreq
+** UData_t MT2260_GetLocked
+** UData_t MT2260_GetParam
+** UData_t MT2260_GetReg
+** UData_t MT2260_GetUserData
+** UData_t MT2260_ReInit
+** UData_t MT2260_SetParam
+** UData_t MT2260_SetPowerModes
+** UData_t MT2260_SetReg
+**
+** References: AN-00010: MicroTuner Serial Interface Application Note
+** MicroTune, Inc.
+**
+** Exports: None
+**
+** Dependencies: MT_ReadSub(hUserData, IC_Addr, subAddress, *pData, cnt);
+** - Read byte(s) of data from the two-wire bus.
+**
+** MT_WriteSub(hUserData, IC_Addr, subAddress, *pData, cnt);
+** - Write byte(s) of data to the two-wire bus.
+**
+** MT_Sleep(hUserData, nMinDelayTime);
+** - Delay execution for x milliseconds
+**
+** CVS ID: $Id: mt2260.h,v 1.1 2006/05/08 22:05:01 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/web05/html/software/tuners/MT2260/MT2260B0/mt2260.h,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+*****************************************************************************/
+#if !defined( __MT2260_H )
+#define __MT2260_H
+
+#include "mt2260_userdef.h"
+
+#if defined( __cplusplus )
+extern "C" /* Use "C" external linkage */
+{
+#endif
+
+/*
+** Parameter for function MT2260_GetParam & MT2260_SetParam that
+** specifies the tuning algorithm parameter to be read/written.
+*/
+typedef enum
+{
+ /* tuner address set by MT2260_Open() */
+ MT2260_IC_ADDR,
+
+ /* max number of MT2260 tuners set by MT2260_CNT in mt_userdef.h */
+ MT2260_MAX_OPEN,
+
+ /* current number of open MT2260 tuners set by MT2260_Open() */
+ MT2260_NUM_OPEN,
+
+ /* Number of tuner registers */
+ MT2260_NUM_REGS,
+
+ /* crystal frequency (default: 18000000 Hz) */
+ MT2260_SRO_FREQ,
+
+ /* min tuning step size (default: 50000 Hz) */
+ MT2260_STEPSIZE,
+
+ /* input center frequency set by MT2260_ChangeFreq() */
+ MT2260_INPUT_FREQ,
+
+ /* LO Frequency set by MT2260_ChangeFreq() */
+ MT2260_LO_FREQ,
+
+ /* output channel bandwidth (default: 8000000 Hz) */
+ MT2260_OUTPUT_BW,
+
+ /* Base band filter calibration RC code (default: N/A) */
+ MT2260_RC2_VALUE,
+
+ /* Base band filter nominal cal RC code (default: N/A) */
+ MT2260_RC2_NOMINAL,
+
+ /* RF attenuator A/D readback (read-only) */
+ MT2260_RF_ADC,
+
+ /* BB attenuator A/D readback (read-only) */
+ MT2260_BB_ADC,
+
+ /* RF attenuator setting (default: varies) */
+ MT2260_RF_ATTN,
+
+ /* BB attenuator setting (default: varies) */
+ MT2260_BB_ATTN,
+
+ /* RF external / internal atten control (default: varies) */
+ MT2260_RF_EXT,
+
+ /* BB external / internal atten control (default: 1) */
+ MT2260_BB_EXT,
+
+ /* LNA gain setting (0-15) (default: varies) */
+ MT2260_LNA_GAIN,
+
+ /* Decrement LNA Gain (where arg=min LNA Gain value) */
+ MT2260_LNA_GAIN_DECR,
+
+ /* Increment LNA Gain (where arg=max LNA Gain value) */
+ MT2260_LNA_GAIN_INCR,
+
+ /* Set for UHF max sensitivity mode */
+ MT2260_UHF_MAXSENS,
+
+ /* Set for UHF normal mode */
+ MT2260_UHF_NORMAL,
+
+ MT2260_EOP /* last entry in enumerated list */
+} MT2260_Param;
+
+/*
+** Constants for Specifying Operating Band of the Tuner
+*/
+#define MT2260_VHF_BAND (0)
+#define MT2260_UHF_BAND (1)
+#define MT2260_L_BAND (2)
+
+/*
+** Constants for specifying power modes these values
+** are bit-mapped and can be added/OR'ed to indicate
+** multiple settings. Examples:
+** MT2260_SetPowerModes(h, MT2260_NO_ENABLES + MT22260_SROsd);
+** MT2260_SetPowerModes(h, MT2260_ALL_ENABLES | MT22260_SRO_NOT_sd);
+** MT2260_SetPowerModes(h, MT2260_NO_ENABLES + MT22260_SROsd);
+** MT2260_SetPowerModes(h, MT2260_SROen + MT22260_LOen + MT2260_ADCen);
+*/
+#define MT2260_SROen (0x01)
+#define MT2260_LOen (0x02)
+#define MT2260_ADCen (0x04)
+#define MT2260_PDen (0x08)
+#define MT2260_DCOCen (0x10)
+#define MT2260_BBen (0x20)
+#define MT2260_MIXen (0x40)
+#define MT2260_LNAen (0x80)
+#define MT2260_ALL_ENABLES (0xFF)
+#define MT2260_NO_ENABLES (0x00)
+#define MT2260_SROsd (0x100)
+#define MT2260_SRO_NOT_sd (0x000)
+
+/* ====== Functions which are declared in mt2260.c File ======= */
+
+/******************************************************************************
+**
+** Name: MT2260_Open
+**
+** Description: Initialize the tuner's register values.
+**
+** Usage: status = MT2260_Open(0xC0, &hMT2260, NULL);
+** if (MT_IS_ERROR(status))
+** // Check error codes for reason
+**
+** Parameters: MT2260_Addr - Serial bus address of the tuner.
+** hMT2260 - Tuner handle passed back.
+** hUserData - User-defined data, if needed for the
+** MT_ReadSub() & MT_WriteSub functions.
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_TUNER_ID_ERR - Tuner Part/Rev code mismatch
+** MT_TUNER_INIT_ERR - Tuner initialization failed
+** MT_COMM_ERR - Serial bus communications error
+** MT_ARG_NULL - Null pointer argument passed
+** MT_TUNER_CNT_ERR - Too many tuners open
+**
+** Dependencies: MT_ReadSub - Read byte(s) of data from the two-wire bus
+** MT_WriteSub - Write byte(s) of data to the two-wire bus
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2260_Open(UData_t MT2260_Addr,
+ Handle_t* hMT2260,
+ Handle_t hUserData);
+
+
+/******************************************************************************
+**
+** Name: MT2260_Close
+**
+** Description: Release the handle to the tuner.
+**
+** Parameters: hMT2260 - Handle to the MT2260 tuner
+**
+** Usage: status = MT2260_Close(hMT2260);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: mt_errordef.h - definition of error codes
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2260_Close(Handle_t hMT2260);
+
+
+/****************************************************************************
+**
+** Name: MT2260_ChangeFreq
+**
+** Description: Change the tuner's tuned frequency to f_in.
+**
+** Parameters: h - Open handle to the tuner (from MT2260_Open).
+** f_in - RF input center frequency (in Hz).
+**
+** Usage: status = MT2260_ChangeFreq(hMT2260, f_in);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_FIN_RANGE - Input freq out of range
+** MT_DNC_RANGE - Downconverter freq out of range
+**
+** Dependencies: MUST CALL MT2260_Open BEFORE MT2260_ChangeFreq!
+**
+** MT_ReadSub - Read byte(s) of data from the two-wire-bus
+** MT_WriteSub - Write byte(s) of data to the two-wire-bus
+** MT_Sleep - Delay execution for x milliseconds
+** MT2260_GetLocked - Checks to see if the PLL is locked
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2260_ChangeFreq(Handle_t h,
+ UData_t f_in);
+
+
+/****************************************************************************
+**
+** Name: MT2260_GetLocked
+**
+** Description: Checks to see if the PLL is locked.
+**
+** Parameters: h - Open handle to the tuner (from MT2260_Open).
+**
+** Usage: status = MT2260_GetLocked(hMT2260);
+** if (status & MT_DNC_UNLOCK)
+** // error!, PLL is unlocked
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: MT_ReadSub - Read byte(s) of data from the serial bus
+** MT_Sleep - Delay execution for x milliseconds
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_GetLocked(Handle_t h);
+
+
+/****************************************************************************
+**
+** Name: MT2260_GetParam
+**
+** Description: Gets a tuning algorithm parameter.
+**
+** This function provides access to the internals of the
+** tuning algorithm - mostly for testing purposes.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** param - Tuning algorithm parameter
+** (see enum MT2260_Param)
+** pValue - ptr to returned value
+**
+** param Description
+** ---------------------- --------------------------------
+** MT2260_IC_ADDR Serial Bus address of this tuner
+** MT2260_MAX_OPEN Max number of MT2260's that can be open
+** MT2260_NUM_OPEN Number of MT2260's currently open
+** MT2260_NUM_REGS Number of tuner registers
+** MT2260_SRO_FREQ crystal frequency
+** MT2260_STEPSIZE minimum tuning step size
+** MT2260_INPUT_FREQ input center frequency
+** MT2260_LO_FREQ LO Frequency
+** MT2260_OUTPUT_BW Output channel bandwidth
+** MT2260_RC2_VALUE Base band filter cal RC code (method 2)
+** MT2260_RF_ADC RF attenuator A/D readback
+** MT2260_RF_ATTN RF attenuation (0-255)
+** MT2260_RF_EXT External control of RF atten
+** MT2260_LNA_GAIN LNA gain setting (0-15)
+** MT2260_BB_ADC BB attenuator A/D readback
+** MT2260_BB_ATTN Baseband attenuation (0-255)
+** MT2260_BB_EXT External control of BB atten
+**
+** Usage: status |= MT2260_GetParam(hMT2260,
+** MT2260_OUTPUT_BW,
+** &f_bw);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Invalid parameter requested
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** See Also: MT2260_SetParam, MT2260_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_GetParam(Handle_t h,
+ MT2260_Param param,
+ UData_t* pValue);
+
+
+/****************************************************************************
+**
+** Name: MT2260_GetReg
+**
+** Description: Gets an MT2260 register.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** reg - MT2260 register/subaddress location
+** *val - MT2260 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** Use this function if you need to read a register from
+** the MT2260.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_GetReg(Handle_t h,
+ U8Data reg,
+ U8Data* val);
+
+
+/****************************************************************************
+**
+** Name: MT2260_GetUserData
+**
+** Description: Gets the user-defined data item.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+**
+** Usage: status = MT2260_GetUserData(hMT2260, &hUserData);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** The hUserData parameter is a user-specific argument
+** that is stored internally with the other tuner-
+** specific information.
+**
+** For example, if additional arguments are needed
+** for the user to identify the device communicating
+** with the tuner, this argument can be used to supply
+** the necessary information.
+**
+** The hUserData parameter is initialized in the tuner's
+** Open function to NULL.
+**
+** See Also: MT2260_SetUserData, MT2260_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_GetUserData(Handle_t h,
+ Handle_t* hUserData);
+
+
+/******************************************************************************
+**
+** Name: MT2260_ReInit
+**
+** Description: Initialize the tuner's register values.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_TUNER_ID_ERR - Tuner Part/Rev code mismatch
+** MT_TUNER_INIT_ERR - Tuner initialization failed
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_COMM_ERR - Serial bus communications error
+**
+** Dependencies: MT_ReadSub - Read byte(s) of data from the two-wire bus
+** MT_WriteSub - Write byte(s) of data to the two-wire bus
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2260_ReInit(Handle_t h);
+
+
+/****************************************************************************
+**
+** Name: MT2260_SetParam
+**
+** Description: Sets a tuning algorithm parameter.
+**
+** This function provides access to the internals of the
+** tuning algorithm. You can override many of the tuning
+** algorithm defaults using this function.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** param - Tuning algorithm parameter
+** (see enum MT2260_Param)
+** nValue - value to be set
+**
+** param Description
+** ---------------------- --------------------------------
+** MT2260_SRO_FREQ crystal frequency
+** MT2260_STEPSIZE minimum tuning step size
+** MT2260_INPUT_FREQ Center of input channel
+** MT2260_OUTPUT_BW Output channel bandwidth
+** MT2260_RF_ATTN RF attenuation (0-255)
+** MT2260_RF_EXT External control of RF atten
+** MT2260_LNA_GAIN LNA gain setting (0-15)
+** MT2260_LNA_GAIN_DECR Decrement LNA Gain (arg=min)
+** MT2260_LNA_GAIN_INCR Increment LNA Gain (arg=max)
+** MT2260_BB_ATTN Baseband attenuation (0-255)
+** MT2260_BB_EXT External control of BB atten
+** MT2260_UHF_MAXSENS Set for UHF max sensitivity mode
+** MT2260_UHF_NORMAL Set for UHF normal mode
+**
+** Usage: status |= MT2260_SetParam(hMT2260,
+** MT2260_STEPSIZE,
+** 50000);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Invalid parameter requested
+** or set value out of range
+** or non-writable parameter
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** See Also: MT2260_GetParam, MT2260_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_SetParam(Handle_t h,
+ MT2260_Param param,
+ UData_t nValue);
+
+
+/****************************************************************************
+**
+** Name: MT2260_SetPowerModes
+**
+** Description: Sets the bits in the MT2260_ENABLES register and the
+** SROsd bit in the MT2260_SROADC_CTRL register.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** flags - Bit mask of flags to indicate enabled
+** bits.
+**
+** Usage: status = MT2260_SetPowerModes(hMT2260, flags);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** The bits in the MT2260_ENABLES register and the
+** SROsd bit are set according to the supplied flags.
+**
+** The pre-defined flags are as follows:
+** MT2260_SROen
+** MT2260_LOen
+** MT2260_ADCen
+** MT2260_PDen
+** MT2260_DCOCen
+** MT2260_BBen
+** MT2260_MIXen
+** MT2260_LNAen
+** MT2260_ALL_ENABLES
+** MT2260_NO_ENABLES
+** MT2260_SROsd
+** MT2260_SRO_NOT_sd
+**
+** ONLY the enable bits (or SROsd bit) specified in the
+** flags parameter will be set. Any flag which is not
+** included, will cause that bit to be disabled.
+**
+** The ALL_ENABLES, NO_ENABLES, and SRO_NOT_sd constants
+** are for convenience. The NO_ENABLES and SRO_NOT_sd
+** do not actually have to be included, but are provided
+** for clarity.
+**
+** See Also: MT2260_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_SetPowerModes(Handle_t h,
+ UData_t flags);
+
+
+/****************************************************************************
+**
+** Name: MT2260_SetReg
+**
+** Description: Sets an MT2260 register.
+**
+** Parameters: h - Tuner handle (returned by MT2260_Open)
+** reg - MT2260 register/subaddress location
+** val - MT2260 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2260_Open() FIRST!
+**
+** Use this function if you need to override a default
+** register value
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2260_SetReg(Handle_t h,
+ U8Data reg,
+ U8Data val);
+
+
+#if defined( __cplusplus )
+}
+#endif
+
+#endif \ No newline at end of file
diff --git a/api/mt2260_userdef.c b/api/mt2260_userdef.c
new file mode 100644
index 0000000..cf7e534
--- /dev/null
+++ b/api/mt2260_userdef.c
@@ -0,0 +1,221 @@
+/*****************************************************************************
+**
+** Name: mt_userdef.c
+**
+** Description: User-defined MicroTuner software interface
+**
+** Functions
+** Requiring
+** Implementation: MT_WriteSub
+** MT_ReadSub
+** MT_Sleep
+**
+** References: None
+**
+** Exports: None
+**
+** CVS ID: $Id: mt_userdef.c,v 1.1 2006/05/08 22:05:01 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/web05/html/software/tuners/MT2260/MT2260B0/mt_userdef.c,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+** N/A 12-06-2004 JWS Multi-tuner support
+**
+*****************************************************************************/
+#include "mt2260_userdef.h"
+
+
+/*****************************************************************************
+**
+** Name: MT_WriteSub
+**
+** Description: Write values to device using a two-wire serial bus.
+**
+** Parameters: handle - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** addr - device serial bus address (value passed
+** as parameter to MTxxxx_Open)
+** subAddress - serial bus sub-address (Register Address)
+** data - pointer to the Data to be written to the
+** device
+** cnt - number of bytes/registers to be written
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** user-defined
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code for this
+** function to write data using the tuner's 2-wire serial
+** bus.
+**
+** The handle parameter is a user-specific argument.
+** If additional arguments are needed for the user's
+** serial bus read/write functions, this argument can be
+** used to supply the necessary information.
+** The handle parameter is initialized in the tuner's Open
+** function.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+UData_t MT2260_WriteSub(Handle_t handle,
+ UData_t addr,
+ U8Data subAddress,
+ U8Data *data,
+ UData_t cnt)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ /*
+ ** ToDo: Add code here to implement a serial-bus write
+ ** operation to the MTxxxx tuner. If successful,
+ ** return MT_OK.
+ */
+ PUserData userData;
+ U8Data * buffer;
+ U8Data i;
+ U8Data blocks;
+ U8Data remains;
+
+ blocks = (U8Data) (cnt / 17);
+ remains = (U8Data) (cnt % 17);
+
+ userData = (PUserData) handle;
+
+ buffer = data;
+ for (i = 0; i < blocks; i++) {
+ status = Standard_writeTunerRegisters (userData->demodulator, userData->chip, (unsigned short)subAddress + (unsigned short)i * 17, 17, buffer);
+ if (status) goto exit;
+
+ buffer += 17;
+ }
+
+ if (remains)
+ {
+ status = Standard_writeTunerRegisters (userData->demodulator, userData->chip, (unsigned short)subAddress + (unsigned short)i * 17, remains, buffer);
+ if (status) goto exit;
+ }
+
+exit:
+ return (status);
+}
+
+
+/*****************************************************************************
+**
+** Name: MT_ReadSub
+**
+** Description: Read values from device using a two-wire serial bus.
+**
+** Parameters: handle - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** addr - device serial bus address (value passed
+** as parameter to MTxxxx_Open)
+** subAddress - serial bus sub-address (Register Address)
+** data - pointer to the Data to be written to the
+** device
+** cnt - number of bytes/registers to be written
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** user-defined
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code for this
+** function to read data using the tuner's 2-wire serial
+** bus.
+**
+** The handle parameter is a user-specific argument.
+** If additional arguments are needed for the user's
+** serial bus read/write functions, this argument can be
+** used to supply the necessary information.
+** The handle parameter is initialized in the tuner's Open
+** function.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+UData_t MT2260_ReadSub(Handle_t handle,
+ UData_t addr,
+ U8Data subAddress,
+ U8Data *data,
+ UData_t cnt)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+
+ /*
+ ** ToDo: Add code here to implement a serial-bus read
+ ** operation to the MTxxxx tuner. If successful,
+ ** return MT_OK.
+ */
+ PUserData userData;
+ U8Data buffer[8];
+ U8Data i;
+
+ /*
+ ** ToDo: Add code here to implement a serial-bus read
+ ** operation to the MTxxxx tuner. If successful,
+ ** return true.
+ */
+ userData = (PUserData)handle;
+
+ for (i = 0; i < cnt; i++)
+ {
+ status = Standard_readTunerRegisters (userData->demodulator, userData->chip, subAddress + i, (U8Data)1, &buffer[0]);
+ if (status) goto exit;
+ *(data + i) = buffer[0];
+ }
+
+exit:
+ return (status);
+}
+
+
+/*****************************************************************************
+**
+** Name: MT_Sleep
+**
+** Description: Delay execution for "nMinDelayTime" milliseconds
+**
+** Parameters: handle - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** nMinDelayTime - Delay time in milliseconds
+**
+** Returns: None.
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code that
+** blocks execution for the specified period of time.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+void MT2260_Sleep(Handle_t handle,
+ UData_t nMinDelayTime)
+{
+ PUserData userData;
+ /*
+ ** ToDo: Add code here to implement a OS blocking
+ ** for a period of "nMinDelayTime" milliseconds.
+ */
+ userData = (PUserData)handle;
+
+ User_delay (userData->demodulator, (unsigned long) nMinDelayTime);
+}
diff --git a/api/mt2260_userdef.h b/api/mt2260_userdef.h
new file mode 100644
index 0000000..1a1029a
--- /dev/null
+++ b/api/mt2260_userdef.h
@@ -0,0 +1,250 @@
+/*****************************************************************************
+**
+** Name: mt_userdef.h
+**
+** Description: User-defined data types needed by MicroTuner source code.
+**
+** Customers must provide the code for these functions
+** in the file "mt_userdef.c".
+**
+** Customers must verify that the typedef's in the
+** "Data Types" section are correct for their platform.
+**
+** Functions
+** Requiring
+** Implementation: MT_WriteSub
+** MT_ReadSub
+** MT_Sleep
+**
+** References: None
+**
+** Exports: None
+**
+** CVS ID: $Id: mt_userdef.h,v 1.1 2006/05/08 22:05:01 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/web05/html/software/tuners/MT2260/MT2260B0/mt_userdef.h,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+** 082 12-06-2004 JWS Multi-tuner support - requires MTxxxx_CNT
+** declarations
+**
+*****************************************************************************/
+#if !defined( __MT_USERDEF_H )
+#define __MT_USERDEF_H
+
+#include "mt_errordef.h"
+#include "standard.h"
+
+#if defined( __cplusplus )
+extern "C" /* Use "C" external linkage */
+{
+#endif
+
+/*
+** Data Types
+*/
+typedef unsigned char U8Data; /* type corresponds to 8 bits */
+typedef unsigned long UData_t; /* type must be at least 32 bits */
+typedef int SData_t; /* type must be at least 32 bits */
+typedef void * Handle_t; /* memory pointer type */
+typedef double FData_t; /* floating point data type */
+
+typedef struct {
+ Byte chip;
+ Demodulator* demodulator;
+} UserData, *PUserData;
+
+#define AF901X_CAN_TUNER 0x1
+#define AF901X_SILICON_TUNER 0x2
+
+#define MAX_UDATA (4294967295) /* max value storable in UData_t */
+
+/*
+** Define an MTxxxx_CNT macro for each type of tuner that will be built
+** into your application (e.g., MT2121, MT2060). MT_TUNER_CNT
+** must be set to the SUM of all of the MTxxxx_CNT macros.
+**
+** #define MT2050_CNT (1)
+** #define MT2060_CNT (2)
+** #define MT2111_CNT (1)
+** #define MT2121_CNT (3)
+*/
+
+#define MT2260_CNT (2)
+#if !defined( MT_TUNER_CNT )
+#define MT_TUNER_CNT (2) /* total num of MicroTuner tuners */
+#endif
+
+/*
+** Optional user-defined Error/Info Codes (examples below)
+**
+** This is the area where you can define user-specific error/info return
+** codes to be returned by any of the functions you are responsible for
+** writing such as MT_WriteSub() and MT_ReadSub. There are four bits
+** available in the status field for your use. When set, these
+** bits will be returned in the status word returned by any tuner driver
+** call. If you OR in the MT_ERROR bit as well, the tuner driver code
+** will treat the code as an error.
+**
+** The following are a few examples of errors you can provide.
+**
+** Example 1:
+** You might check to see the hUserData handle is correct and issue
+** MY_USERDATA_INVALID which would be defined like this:
+**
+** #define MY_USERDATA_INVALID (MT_USER_ERROR | MT_USER_DEFINED1)
+**
+**
+** Example 2:
+** You might be able to provide more descriptive two-wire bus errors:
+**
+** #define NO_ACK (MT_USER_ERROR | MT_USER_DEFINED1)
+** #define NO_NACK (MT_USER_ERROR | MT_USER_DEFINED2)
+** #define BUS_BUSY (MT_USER_ERROR | MT_USER_DEFINED3)
+**
+**
+** Example 3:
+** You can also provide information (non-error) feedback:
+**
+** #define MY_INFO_1 (MT_USER_DEFINED1)
+**
+**
+** Example 4:
+** You can combine the fields together to make a multi-bit field.
+** This one can provide the tuner number based off of the addr
+** passed to MT_WriteSub or MT_ReadSub. It assumes that
+** MT_USER_DEFINED4 through MT_USER_DEFINED1 are contiguously. If
+** TUNER_NUM were OR'ed into the status word on an error, you could
+** use this to identify which tuner had the problem (and whether it
+** was during a read or write operation).
+**
+** #define TUNER_NUM ((addr & 0x07) >> 1) << MT_USER_SHIFT
+**
+*/
+
+/*****************************************************************************
+**
+** Name: MT_WriteSub
+**
+** Description: Write values to device using a two-wire serial bus.
+**
+** Parameters: hUserData - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** addr - device serial bus address (value passed
+** as parameter to MTxxxx_Open)
+** subAddress - serial bus sub-address (Register Address)
+** pData - pointer to the Data to be written to the
+** device
+** cnt - number of bytes/registers to be written
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** user-defined
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code for this
+** function to write data using the tuner's 2-wire serial
+** bus.
+**
+** The hUserData parameter is a user-specific argument.
+** If additional arguments are needed for the user's
+** serial bus read/write functions, this argument can be
+** used to supply the necessary information.
+** The hUserData parameter is initialized in the tuner's Open
+** function.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+UData_t MT2260_WriteSub(Handle_t hUserData,
+ UData_t addr,
+ U8Data subAddress,
+ U8Data *pData,
+ UData_t cnt);
+
+
+/*****************************************************************************
+**
+** Name: MT_ReadSub
+**
+** Description: Read values from device using a two-wire serial bus.
+**
+** Parameters: hUserData - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** addr - device serial bus address (value passed
+** as parameter to MTxxxx_Open)
+** subAddress - serial bus sub-address (Register Address)
+** pData - pointer to the Data to be written to the
+** device
+** cnt - number of bytes/registers to be written
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** user-defined
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code for this
+** function to read data using the tuner's 2-wire serial
+** bus.
+**
+** The hUserData parameter is a user-specific argument.
+** If additional arguments are needed for the user's
+** serial bus read/write functions, this argument can be
+** used to supply the necessary information.
+** The hUserData parameter is initialized in the tuner's Open
+** function.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+UData_t MT2260_ReadSub(Handle_t hUserData,
+ UData_t addr,
+ U8Data subAddress,
+ U8Data *pData,
+ UData_t cnt);
+
+
+/*****************************************************************************
+**
+** Name: MT_Sleep
+**
+** Description: Delay execution for "nMinDelayTime" milliseconds
+**
+** Parameters: hUserData - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** nMinDelayTime - Delay time in milliseconds
+**
+** Returns: None.
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code that
+** blocks execution for the specified period of time.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+void MT2260_Sleep(Handle_t hUserData,
+ UData_t nMinDelayTime);
+
+#if defined( __cplusplus )
+}
+#endif
+
+#endif \ No newline at end of file
diff --git a/api/mt2266.c b/api/mt2266.c
new file mode 100644
index 0000000..4cdc225
--- /dev/null
+++ b/api/mt2266.c
@@ -0,0 +1,2368 @@
+/*****************************************************************************
+**
+** Name: mt2266.c
+**
+** Copyright 2007 Microtune, Inc. All Rights Reserved
+**
+** This source code file contains confidential information and/or trade
+** secrets of Microtune, Inc. or its affiliates and is subject to the
+** terms of your confidentiality agreement with Microtune, Inc. or one of
+** its affiliates, as applicable.
+**
+*****************************************************************************/
+
+/*****************************************************************************
+**
+** Name: mt2266.c
+**
+** Description: Microtune MT2266 Tuner software interface.
+** Supports tuners with Part/Rev code: 0x85.
+**
+** Functions
+** Implemented: UData_t MT2266_Open
+** UData_t MT2266_Close
+** UData_t MT2266_ChangeFreq
+** UData_t MT2266_GetLocked
+** UData_t MT2266_GetParam
+** UData_t MT2266_GetReg
+** UData_t MT2266_GetUHFXFreqs
+** UData_t MT2266_GetUserData
+** UData_t MT2266_ReInit
+** UData_t MT2266_SetParam
+** UData_t MT2266_SetPowerModes
+** UData_t MT2266_SetReg
+** UData_t MT2266_SetUHFXFreqs
+**
+** References: AN-00010: MicroTuner Serial Interface Application Note
+** MicroTune, Inc.
+**
+** Exports: None
+**
+** Dependencies: MT2266_ReadSub(hUserData, IC_Addr, subAddress, *pData, cnt);
+** - Read byte(s) of data from the two-wire bus.
+**
+** MT2266_WriteSub(hUserData, IC_Addr, subAddress, *pData, cnt);
+** - Write byte(s) of data to the two-wire bus.
+**
+** MT_Sleep(hUserData, nMinDelayTime);
+** - Delay execution for x milliseconds
+**
+** CVS ID: $Id: mt2266.c,v 1.5 2007/10/02 18:43:17 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/software/tuners/MT2266/mt2266.c,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+** N/A 06-08-2006 JWS Ver 1.01: Corrected problem with tuner ID check
+** N/A 11-01-2006 RSK Ver 1.02: Adding multiple-filter support
+** as well as Get/Set functions.
+** N/A 11-29-2006 DAD Ver 1.03: Parenthesis clarification for gcc
+** N/A 12-20-2006 RSK Ver 1.04: Adding fLO_FractionalTerm() usage.
+** 118 05-09-2007 RSK Ver 1.05: Adding Standard MTxxxx_Tune() API.
+**
+*****************************************************************************/
+#include "mt2266.h"
+//#include <stdlib.h> /* for NULL */ // for Linux
+
+/* Version of this module */
+#define VERSION 10005 /* Version 01.05 */
+
+
+#ifndef MT2266_CNT
+#error You must define MT2266_CNT in the "mt_userdef.h" file
+#endif
+
+/*
+** Normally, the "reg" array in the tuner structure is used as a cache
+** containing the current value of the tuner registers. If the user's
+** application MUST change tuner registers without using the MT2266_SetReg
+** routine provided, he may compile this code with the __NO_CACHE__
+** variable defined.
+** The PREFETCH macro will insert code code to re-read tuner registers if
+** __NO_CACHE__ is defined. If it is not defined (normal) then PREFETCH
+** does nothing.
+*/
+
+#if defined(__NO_CACHE__)
+#define PREFETCH(var, cnt) \
+ if (MT_NO_ERROR(status)) \
+ status |= MT2266_ReadSub(pInfo->hUserData, pInfo->address, (var), &pInfo->reg[(var)], (cnt));
+#else
+#define PREFETCH(var, cnt)
+#endif
+
+
+
+/*
+** Two-wire serial bus subaddresses of the tuner registers.
+** Also known as the tuner's register addresses.
+*/
+static enum MT2266_Register_Offsets
+{
+ MT2266_PART_REV = 0, /* 0x00 */
+ MT2266_LO_CTRL_1, /* 0x01 */
+ MT2266_LO_CTRL_2, /* 0x02 */
+ MT2266_LO_CTRL_3, /* 0x03 */
+ MT2266_SMART_ANT, /* 0x04 */
+ MT2266_BAND_CTRL, /* 0x05 */
+ MT2266_CLEARTUNE, /* 0x06 */
+ MT2266_IGAIN, /* 0x07 */
+ MT2266_BBFILT_1, /* 0x08 */
+ MT2266_BBFILT_2, /* 0x09 */
+ MT2266_BBFILT_3, /* 0x0A */
+ MT2266_BBFILT_4, /* 0x0B */
+ MT2266_BBFILT_5, /* 0x0C */
+ MT2266_BBFILT_6, /* 0x0D */
+ MT2266_BBFILT_7, /* 0x0E */
+ MT2266_BBFILT_8, /* 0x0F */
+ MT2266_RCC_CTRL, /* 0x10 */
+ MT2266_RSVD_11, /* 0x11 */
+ MT2266_STATUS_1, /* 0x12 */
+ MT2266_STATUS_2, /* 0x13 */
+ MT2266_STATUS_3, /* 0x14 */
+ MT2266_STATUS_4, /* 0x15 */
+ MT2266_STATUS_5, /* 0x16 */
+ MT2266_SRO_CTRL, /* 0x17 */
+ MT2266_RSVD_18, /* 0x18 */
+ MT2266_RSVD_19, /* 0x19 */
+ MT2266_RSVD_1A, /* 0x1A */
+ MT2266_RSVD_1B, /* 0x1B */
+ MT2266_ENABLES, /* 0x1C */
+ MT2266_RSVD_1D, /* 0x1D */
+ MT2266_RSVD_1E, /* 0x1E */
+ MT2266_RSVD_1F, /* 0x1F */
+ MT2266_GPO, /* 0x20 */
+ MT2266_RSVD_21, /* 0x21 */
+ MT2266_RSVD_22, /* 0x22 */
+ MT2266_RSVD_23, /* 0x23 */
+ MT2266_RSVD_24, /* 0x24 */
+ MT2266_RSVD_25, /* 0x25 */
+ MT2266_RSVD_26, /* 0x26 */
+ MT2266_RSVD_27, /* 0x27 */
+ MT2266_RSVD_28, /* 0x28 */
+ MT2266_RSVD_29, /* 0x29 */
+ MT2266_RSVD_2A, /* 0x2A */
+ MT2266_RSVD_2B, /* 0x2B */
+ MT2266_RSVD_2C, /* 0x2C */
+ MT2266_RSVD_2D, /* 0x2D */
+ MT2266_RSVD_2E, /* 0x2E */
+ MT2266_RSVD_2F, /* 0x2F */
+ MT2266_RSVD_30, /* 0x30 */
+ MT2266_RSVD_31, /* 0x31 */
+ MT2266_RSVD_32, /* 0x32 */
+ MT2266_RSVD_33, /* 0x33 */
+ MT2266_RSVD_34, /* 0x34 */
+ MT2266_RSVD_35, /* 0x35 */
+ MT2266_RSVD_36, /* 0x36 */
+ MT2266_RSVD_37, /* 0x37 */
+ MT2266_RSVD_38, /* 0x38 */
+ MT2266_RSVD_39, /* 0x39 */
+ MT2266_RSVD_3A, /* 0x3A */
+ MT2266_RSVD_3B, /* 0x3B */
+ MT2266_RSVD_3C, /* 0x3C */
+ END_REGS
+};
+
+/*
+** DefaultsEntry points to an array of U8Data used to initialize
+** various registers (the first byte is the starting subaddress)
+** and a count of the bytes (including subaddress) in the array.
+**
+** DefaultsList is an array of DefaultsEntry elements terminated
+** by an entry with a NULL pointer for the data array.
+*/
+typedef struct MT2266_DefaultsEntryTag
+{
+ U8Data *data;
+ UData_t cnt;
+} MT2266_DefaultsEntry;
+
+typedef MT2266_DefaultsEntry MT2266_DefaultsList[];
+
+#define DEF_LIST_ENTRY(a) {a, sizeof(a)/sizeof(U8Data) - 1}
+#define END_DEF_LIST {0,0}
+
+/*
+** Constants used by the tuning algorithm
+*/
+ /* REF_FREQ is now the actual crystal frequency */
+#define REF_FREQ (30000000UL) /* Reference oscillator Frequency (in Hz) */
+#define TUNE_STEP_SIZE (50UL) /* Tune in steps of 50 kHz */
+#define MIN_UHF_FREQ (350000000UL) /* Minimum UHF frequency (in Hz) */
+#define MAX_UHF_FREQ (900000000UL) /* Maximum UHF frequency (in Hz) */
+#define MIN_VHF_FREQ (174000000UL) /* Minimum VHF frequency (in Hz) */
+#define MAX_VHF_FREQ (230000000UL) /* Maximum VHF frequency (in Hz) */
+#define OUTPUT_BW (8000000UL) /* Output channel bandwidth (in Hz) */
+#define UHF_DEFAULT_FREQ (600000000UL) /* Default UHF input frequency (in Hz) */
+
+
+/*
+** The number of Tuner Registers
+*/
+static const UData_t Num_Registers = END_REGS;
+
+/*
+** Crossover Frequency sets for 2 filters, without and with attenuation.
+*/
+typedef struct
+{
+ MT2266_XFreq_Set xfreq[ MT2266_NUMBER_OF_XFREQ_SETS ];
+
+} MT2266_XFreqs_t;
+
+
+MT2266_XFreqs_t MT2266_default_XFreqs =
+{
+ /* xfreq */
+ {
+ /* uhf0 */
+ { /* < 0 MHz: 15+1 */
+ 0UL, /* 0 .. 0 MHz: 15 */
+ 0UL, /* 0 .. 443 MHz: 14 */
+ 443000 / TUNE_STEP_SIZE, /* 443 .. 470 MHz: 13 */
+ 470000 / TUNE_STEP_SIZE, /* 470 .. 496 MHz: 12 */
+ 496000 / TUNE_STEP_SIZE, /* 496 .. 525 MHz: 11 */
+ 525000 / TUNE_STEP_SIZE, /* 525 .. 552 MHz: 10 */
+ 552000 / TUNE_STEP_SIZE, /* 552 .. 580 MHz: 9 */
+ 580000 / TUNE_STEP_SIZE, /* 580 .. 657 MHz: 8 */
+ 657000 / TUNE_STEP_SIZE, /* 657 .. 682 MHz: 7 */
+ 682000 / TUNE_STEP_SIZE, /* 682 .. 710 MHz: 6 */
+ 710000 / TUNE_STEP_SIZE, /* 710 .. 735 MHz: 5 */
+ 735000 / TUNE_STEP_SIZE, /* 735 .. 763 MHz: 4 */
+ 763000 / TUNE_STEP_SIZE, /* 763 .. 802 MHz: 3 */
+ 802000 / TUNE_STEP_SIZE, /* 802 .. 840 MHz: 2 */
+ 840000 / TUNE_STEP_SIZE, /* 840 .. 877 MHz: 1 */
+ 877000 / TUNE_STEP_SIZE /* 877+ MHz: 0 */
+ },
+
+ /* uhf1 */
+ { /* < 443 MHz: 15+1 */
+ 443000 / TUNE_STEP_SIZE, /* 443 .. 470 MHz: 15 */
+ 470000 / TUNE_STEP_SIZE, /* 470 .. 496 MHz: 14 */
+ 496000 / TUNE_STEP_SIZE, /* 496 .. 525 MHz: 13 */
+ 525000 / TUNE_STEP_SIZE, /* 525 .. 552 MHz: 12 */
+ 552000 / TUNE_STEP_SIZE, /* 552 .. 580 MHz: 11 */
+ 580000 / TUNE_STEP_SIZE, /* 580 .. 605 MHz: 10 */
+ 605000 / TUNE_STEP_SIZE, /* 605 .. 632 MHz: 9 */
+ 632000 / TUNE_STEP_SIZE, /* 632 .. 657 MHz: 8 */
+ 657000 / TUNE_STEP_SIZE, /* 657 .. 682 MHz: 7 */
+ 682000 / TUNE_STEP_SIZE, /* 682 .. 710 MHz: 6 */
+ 710000 / TUNE_STEP_SIZE, /* 710 .. 735 MHz: 5 */
+ 735000 / TUNE_STEP_SIZE, /* 735 .. 763 MHz: 4 */
+ 763000 / TUNE_STEP_SIZE, /* 763 .. 802 MHz: 3 */
+ 802000 / TUNE_STEP_SIZE, /* 802 .. 840 MHz: 2 */
+ 840000 / TUNE_STEP_SIZE, /* 840 .. 877 MHz: 1 */
+ 877000 / TUNE_STEP_SIZE /* 877+ MHz: 0 */
+ },
+
+ /* uhf0_a */
+ { /* < 0 MHz: 15+1 */
+ 0UL, /* 0 .. 0 MHz: 15 */
+ 0UL, /* 0 .. 442 MHz: 14 */
+ 442000 / TUNE_STEP_SIZE, /* 442 .. 472 MHz: 13 */
+ 472000 / TUNE_STEP_SIZE, /* 472 .. 505 MHz: 12 */
+ 505000 / TUNE_STEP_SIZE, /* 505 .. 535 MHz: 11 */
+ 535000 / TUNE_STEP_SIZE, /* 535 .. 560 MHz: 10 */
+ 560000 / TUNE_STEP_SIZE, /* 560 .. 593 MHz: 9 */
+ 593000 / TUNE_STEP_SIZE, /* 593 .. 673 MHz: 8 */
+ 673000 / TUNE_STEP_SIZE, /* 673 .. 700 MHz: 7 */
+ 700000 / TUNE_STEP_SIZE, /* 700 .. 727 MHz: 6 */
+ 727000 / TUNE_STEP_SIZE, /* 727 .. 752 MHz: 5 */
+ 752000 / TUNE_STEP_SIZE, /* 752 .. 783 MHz: 4 */
+ 783000 / TUNE_STEP_SIZE, /* 783 .. 825 MHz: 3 */
+ 825000 / TUNE_STEP_SIZE, /* 825 .. 865 MHz: 2 */
+ 865000 / TUNE_STEP_SIZE, /* 865 .. 905 MHz: 1 */
+ 905000 / TUNE_STEP_SIZE /* 905+ MHz: 0 */
+ },
+
+ /* uhf1_a */
+ { /* < 442 MHz: 15+1 */
+ 442000 / TUNE_STEP_SIZE, /* 442 .. 472 MHz: 15 */
+ 472000 / TUNE_STEP_SIZE, /* 472 .. 505 MHz: 14 */
+ 505000 / TUNE_STEP_SIZE, /* 505 .. 535 MHz: 13 */
+ 535000 / TUNE_STEP_SIZE, /* 535 .. 560 MHz: 12 */
+ 560000 / TUNE_STEP_SIZE, /* 560 .. 593 MHz: 11 */
+ 593000 / TUNE_STEP_SIZE, /* 593 .. 620 MHz: 10 */
+ 620000 / TUNE_STEP_SIZE, /* 620 .. 647 MHz: 9 */
+ 647000 / TUNE_STEP_SIZE, /* 647 .. 673 MHz: 8 */
+ 673000 / TUNE_STEP_SIZE, /* 673 .. 700 MHz: 7 */
+ 700000 / TUNE_STEP_SIZE, /* 700 .. 727 MHz: 6 */
+ 727000 / TUNE_STEP_SIZE, /* 727 .. 752 MHz: 5 */
+ 752000 / TUNE_STEP_SIZE, /* 752 .. 783 MHz: 4 */
+ 783000 / TUNE_STEP_SIZE, /* 783 .. 825 MHz: 3 */
+ 825000 / TUNE_STEP_SIZE, /* 825 .. 865 MHz: 2 */
+ 865000 / TUNE_STEP_SIZE, /* 865 .. 905 MHz: 1 */
+ 905000 / TUNE_STEP_SIZE /* 905+ MHz: 0 */
+ }
+ }
+};
+
+typedef struct
+{
+ Handle_t handle;
+ Handle_t hUserData;
+ UData_t address;
+ UData_t version;
+ UData_t tuner_id;
+ UData_t f_Ref;
+ UData_t f_Step;
+ UData_t f_in;
+ UData_t f_LO;
+ UData_t f_bw;
+ UData_t band;
+ UData_t num_regs;
+ U8Data RC2_Value;
+ U8Data RC2_Nominal;
+ U8Data reg[END_REGS];
+
+ MT2266_XFreqs_t xfreqs;
+
+} MT2266_Info_t;
+
+static UData_t nMaxTuners = MT2266_CNT;
+static MT2266_Info_t MT2266_Info[MT2266_CNT];
+static MT2266_Info_t *Avail[MT2266_CNT];
+static UData_t nOpenTuners = 0;
+
+/*
+** Constants used to write a minimal set of registers when changing bands.
+** If the user wants a total reset, they should call MT2266_Open() again.
+** Skip 01, 02, 03, 04 (get overwritten anyways)
+** Write 05
+** Skip 06 - 18
+** Write 19 (diff for L-Band)
+** Skip 1A 1B 1C
+** Write 1D - 2B
+** Skip 2C - 3C
+*/
+
+static U8Data MT2266_VHF_defaults1[] =
+{
+ 0x05, /* address 0xC0, reg 0x05 */
+ 0x04, /* Reg 0x05 LBANDen = 1 (that's right)*/
+};
+static U8Data MT2266_VHF_defaults2[] =
+{
+ 0x19, /* address 0xC0, reg 0x19 */
+ 0x61, /* Reg 0x19 CAPto = 3*/
+};
+static U8Data MT2266_VHF_defaults3[] =
+{
+ 0x1D, /* address 0xC0, reg 0x1D */
+ 0xFE, /* reg 0x1D */
+ 0x00, /* reg 0x1E */
+ 0x00, /* reg 0x1F */
+ 0xB4, /* Reg 0x20 GPO = 1*/
+ 0x03, /* Reg 0x21 LBIASen = 1, UBIASen = 1*/
+ 0xA5, /* Reg 0x22 */
+ 0xA5, /* Reg 0x23 */
+ 0xA5, /* Reg 0x24 */
+ 0xA5, /* Reg 0x25 */
+ 0x82, /* Reg 0x26 CASCM = b0001 (bits reversed)*/
+ 0xAA, /* Reg 0x27 */
+ 0xF1, /* Reg 0x28 */
+ 0x17, /* Reg 0x29 */
+ 0x80, /* Reg 0x2A MIXbiasen = 1*/
+ 0x1F, /* Reg 0x2B */
+};
+
+static MT2266_DefaultsList MT2266_VHF_defaults = {
+ DEF_LIST_ENTRY(MT2266_VHF_defaults1),
+ DEF_LIST_ENTRY(MT2266_VHF_defaults2),
+ DEF_LIST_ENTRY(MT2266_VHF_defaults3),
+ END_DEF_LIST
+};
+
+static U8Data MT2266_UHF_defaults1[] =
+{
+ 0x05, /* address 0xC0, reg 0x05 */
+ 0x52, /* Reg 0x05 */
+};
+static U8Data MT2266_UHF_defaults2[] =
+{
+ 0x19, /* address 0xC0, reg 0x19 */
+ 0x61, /* Reg 0x19 CAPto = 3*/
+};
+static U8Data MT2266_UHF_defaults3[] =
+{
+ 0x1D, /* address 0xC0, reg 0x1D */
+ 0xDC, /* Reg 0x1D */
+ 0x00, /* Reg 0x1E */
+ 0x0A, /* Reg 0x1F */
+ 0xD4, /* Reg 0x20 GPO = 1*/
+ 0x03, /* Reg 0x21 LBIASen = 1, UBIASen = 1*/
+ 0x64, /* Reg 0x22 */
+ 0x64, /* Reg 0x23 */
+ 0x64, /* Reg 0x24 */
+ 0x64, /* Reg 0x25 */
+ 0x22, /* Reg 0x26 CASCM = b0100 (bits reversed)*/
+ 0xAA, /* Reg 0x27 */
+ 0xF2, /* Reg 0x28 */
+ 0x1E, /* Reg 0x29 */
+ 0x80, /* Reg 0x2A MIXbiasen = 1*/
+ 0x14, /* Reg 0x2B */
+};
+
+static MT2266_DefaultsList MT2266_UHF_defaults = {
+ DEF_LIST_ENTRY(MT2266_UHF_defaults1),
+ DEF_LIST_ENTRY(MT2266_UHF_defaults2),
+ DEF_LIST_ENTRY(MT2266_UHF_defaults3),
+ END_DEF_LIST
+};
+
+
+static UData_t UncheckedSet(MT2266_Info_t* pInfo,
+ U8Data reg,
+ U8Data val);
+
+static UData_t UncheckedGet(MT2266_Info_t* pInfo,
+ U8Data reg,
+ U8Data* val);
+
+
+/******************************************************************************
+**
+** Name: MT2266_Open
+**
+** Description: Initialize the tuner's register values.
+**
+** Parameters: MT2266_Addr - Serial bus address of the tuner.
+** hMT2266 - Tuner handle passed back.
+** hUserData - User-defined data, if needed for the
+** MT2266_ReadSub() & MT2266_WriteSub functions.
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_TUNER_ID_ERR - Tuner Part/Rev code mismatch
+** MT_TUNER_INIT_ERR - Tuner initialization failed
+** MT_COMM_ERR - Serial bus communications error
+** MT_ARG_NULL - Null pointer argument passed
+** MT_TUNER_CNT_ERR - Too many tuners open
+**
+** Dependencies: MT2266_ReadSub - Read byte(s) of data from the two-wire bus
+** MT2266_WriteSub - Write byte(s) of data to the two-wire bus
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+** N/A 11-01-2006 RSK Ver 1.02: Initialize Crossover Tables to Default
+**
+******************************************************************************/
+UData_t MT2266_Open(UData_t MT2266_Addr,
+ Handle_t* hMT2266,
+ Handle_t hUserData)
+{
+ UData_t status = MT_OK; /* Status to be returned. */
+ SData_t i, j;
+ MT2266_Info_t* pInfo = NULL;
+
+ /* Check the argument before using */
+ if (hMT2266 == NULL)
+ return MT_ARG_NULL;
+ *hMT2266 = NULL;
+
+ /*
+ ** If this is our first tuner, initialize the address fields and
+ ** the list of available control blocks.
+ */
+ if (nOpenTuners == 0)
+ {
+ for (i=MT2266_CNT-1; i>=0; i--)
+ {
+ MT2266_Info[i].handle = NULL;
+ MT2266_Info[i].address = MAX_UDATA;
+ MT2266_Info[i].hUserData = NULL;
+
+ /* Reset the UHF Crossover Frequency tables on open/init. */
+ for (j=0; j< MT2266_NUM_XFREQS; j++ )
+ {
+ MT2266_Info[i].xfreqs.xfreq[MT2266_UHF0][j] = MT2266_default_XFreqs.xfreq[MT2266_UHF0][j];
+ MT2266_Info[i].xfreqs.xfreq[MT2266_UHF1][j] = MT2266_default_XFreqs.xfreq[MT2266_UHF1][j];
+ MT2266_Info[i].xfreqs.xfreq[MT2266_UHF0_ATTEN][j] = MT2266_default_XFreqs.xfreq[MT2266_UHF0_ATTEN][j];
+ MT2266_Info[i].xfreqs.xfreq[MT2266_UHF1_ATTEN][j] = MT2266_default_XFreqs.xfreq[MT2266_UHF1_ATTEN][j];
+ }
+
+ Avail[i] = &MT2266_Info[i];
+ }
+ }
+
+ /*
+ ** Look for an existing MT2266_State_t entry with this address.
+ */
+ for (i=MT2266_CNT-1; i>=0; i--)
+ {
+ /*
+ ** If an open'ed handle provided, we'll re-initialize that structure.
+ **
+ ** We recognize an open tuner because the address and hUserData are
+ ** the same as one that has already been opened
+ */
+ if ((MT2266_Info[i].address == MT2266_Addr) &&
+ (MT2266_Info[i].hUserData == hUserData))
+ {
+ pInfo = &MT2266_Info[i];
+ break;
+ }
+ }
+
+ /* If not found, choose an empty spot. */
+ if (pInfo == NULL)
+ {
+ /* Check to see that we're not over-allocating. */
+ if (nOpenTuners == MT2266_CNT)
+ return MT_TUNER_CNT_ERR;
+
+ /* Use the next available block from the list */
+ pInfo = Avail[nOpenTuners];
+ nOpenTuners++;
+ }
+
+ pInfo->handle = (Handle_t) pInfo;
+ pInfo->hUserData = hUserData;
+ pInfo->address = MT2266_Addr;
+
+ status |= MT2266_ReInit((Handle_t) pInfo);
+
+ if (MT_IS_ERROR(status))
+ MT2266_Close((Handle_t) pInfo);
+ else
+ *hMT2266 = pInfo->handle;
+
+ return (status);
+}
+
+
+static UData_t IsValidHandle(MT2266_Info_t* handle)
+{
+ return ((handle != NULL) && (handle->handle == handle)) ? 1 : 0;
+}
+
+
+/******************************************************************************
+**
+** Name: MT2266_Close
+**
+** Description: Release the handle to the tuner.
+**
+** Parameters: hMT2266 - Handle to the MT2266 tuner
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: mt_errordef.h - definition of error codes
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+******************************************************************************/
+UData_t MT2266_Close(Handle_t hMT2266)
+{
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) hMT2266;
+
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ /* Remove the tuner from our list of tuners */
+ pInfo->handle = NULL;
+ pInfo->address = MAX_UDATA;
+ pInfo->hUserData = NULL;
+ nOpenTuners--;
+ Avail[nOpenTuners] = pInfo; /* Return control block to available list */
+
+ return MT_OK;
+}
+
+
+/******************************************************************************
+**
+** Name: Run_BB_RC_Cal2
+**
+** Description: Run Base Band RC Calibration (Method 2)
+** MT2266 B0 only, others return MT_OK
+**
+** Parameters: hMT2266 - Handle to the MT2266 tuner
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: mt_errordef.h - definition of error codes
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+******************************************************************************/
+static UData_t Run_BB_RC_Cal2(Handle_t h)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ U8Data tmp_rcc;
+ U8Data dumy;
+
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ /*
+ ** Set the crystal frequency in the calibration register
+ ** and enable RC calibration #2
+ */
+ PREFETCH(MT2266_RCC_CTRL, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ tmp_rcc = pInfo->reg[MT2266_RCC_CTRL];
+ if (pInfo->f_Ref < (36000000 /*/ TUNE_STEP_SIZE*/))
+ tmp_rcc = (tmp_rcc & 0xDF) | 0x10;
+ else
+ tmp_rcc |= 0x30;
+ status |= UncheckedSet(pInfo, MT2266_RCC_CTRL, tmp_rcc);
+
+ /* Read RC Calibration value */
+ status |= UncheckedGet(pInfo, MT2266_STATUS_4, &dumy);
+
+ /* Disable RC Cal 2 */
+ status |= UncheckedSet(pInfo, MT2266_RCC_CTRL, pInfo->reg[MT2266_RCC_CTRL] & 0xEF);
+
+ /* Store RC Cal 2 value */
+ pInfo->RC2_Value = pInfo->reg[MT2266_STATUS_4];
+
+ if (pInfo->f_Ref < (36000000 /*/ TUNE_STEP_SIZE*/))
+ pInfo->RC2_Nominal = (U8Data) ((pInfo->f_Ref + 77570) / 155139);
+ else
+ pInfo->RC2_Nominal = (U8Data) ((pInfo->f_Ref + 93077) / 186154);
+
+ return (status);
+}
+
+
+/******************************************************************************
+**
+** Name: Set_BBFilt
+**
+** Description: Set Base Band Filter bandwidth
+** Based on SRO frequency & BB RC Calibration
+** User stores channel bw as 5-8 MHz. This routine
+** calculates a 3 dB corner bw based on 1/2 the bandwidth
+** and a bandwidth related constant.
+**
+** Parameters: hMT2266 - Handle to the MT2266 tuner
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: mt_errordef.h - definition of error codes
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+******************************************************************************/
+static UData_t Set_BBFilt(Handle_t h)
+{
+ UData_t f_3dB_bw;
+ U8Data BBFilt = 0;
+ U8Data Sel = 0;
+ SData_t TmpFilt;
+ SData_t i;
+ UData_t status = MT_OK; /* Status to be returned */
+
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (pInfo->RC2_Value == 0)
+ return (MT_COMM_ERR);
+
+ /*
+ ** Convert the channel bandwidth into a 3 dB bw by dividing it by 2
+ ** and subtracting 300, 250, 200, or 0 kHz based on 8, 7, 6, 5 MHz
+ ** channel bandwidth.
+ */
+ f_3dB_bw = (pInfo->f_bw / 2); /* bw -> bw/2 */
+ if (pInfo->f_bw > 7500000)
+ {
+ /* >3.75 MHz corner */
+ f_3dB_bw -= 300000;
+ Sel = 0x00;
+ TmpFilt = ((429916107 / pInfo->RC2_Value) * pInfo->RC2_Nominal) / f_3dB_bw - 81;
+ }
+ else if (pInfo->f_bw > 6500000)
+ {
+ /* >3.25 MHz .. 3.75 MHz corner */
+ f_3dB_bw -= 250000;
+ Sel = 0x00;
+ TmpFilt = ((429916107 / pInfo->RC2_Value) * pInfo->RC2_Nominal) / f_3dB_bw - 81;
+ }
+ else if (pInfo->f_bw > 5500000)
+ {
+ /* >2.75 MHz .. 3.25 MHz corner */
+ f_3dB_bw -= 200000;
+ Sel = 0x80;
+ TmpFilt = ((429916107 / pInfo->RC2_Value) * pInfo->RC2_Nominal) / f_3dB_bw - 113;
+ }
+ else
+ {
+ /* <= 2.75 MHz corner */
+ Sel = 0xC0;
+ TmpFilt = ((429916107 / pInfo->RC2_Value) * pInfo->RC2_Nominal) / f_3dB_bw - 129;
+ }
+
+ if (TmpFilt > 63)
+ TmpFilt = 63;
+ else if (TmpFilt < 0)
+ TmpFilt = 0;
+ BBFilt = ((U8Data) TmpFilt) | Sel;
+
+ for ( i = MT2266_BBFILT_1; i <= MT2266_BBFILT_8; i++ )
+ pInfo->reg[i] = BBFilt;
+
+ if (MT_NO_ERROR(status))
+ status |= MT2266_WriteSub(pInfo->hUserData,
+ pInfo->address,
+ MT2266_BBFILT_1,
+ &pInfo->reg[MT2266_BBFILT_1],
+ 8);
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetLocked
+**
+** Description: Checks to see if the PLL is locked.
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: MT2266_ReadSub - Read byte(s) of data from the serial bus
+** MT_Sleep - Delay execution for x milliseconds
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+UData_t MT2266_GetLocked(Handle_t h)
+{
+ const UData_t nMaxWait = 200; /* wait a maximum of 200 msec */
+ const UData_t nPollRate = 2; /* poll status bits every 2 ms */
+ const UData_t nMaxLoops = nMaxWait / nPollRate;
+ UData_t status = MT_OK; /* Status to be returned */
+ UData_t nDelays = 0;
+ U8Data statreg;
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ do
+ {
+ status |= UncheckedGet(pInfo, MT2266_STATUS_1, &statreg);
+
+ if ((MT_IS_ERROR(status)) || ((statreg & 0x40) == 0x40))
+ return (status);
+
+ MT2266_Sleep(pInfo->hUserData, nPollRate); /* Wait between retries */
+ }
+ while (++nDelays < nMaxLoops);
+
+ if ((statreg & 0x40) != 0x40)
+ status |= MT_DNC_UNLOCK;
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetParam
+**
+** Description: Gets a tuning algorithm parameter.
+**
+** This function provides access to the internals of the
+** tuning algorithm - mostly for testing purposes.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** param - Tuning algorithm parameter
+** (see enum MT2266_Param)
+** pValue - ptr to returned value
+**
+** param Description
+** ---------------------- --------------------------------
+** MT2266_IC_ADDR Serial Bus address of this tuner
+** MT2266_MAX_OPEN Max number of MT2266's that can be open
+** MT2266_NUM_OPEN Number of MT2266's currently open
+** MT2266_NUM_REGS Number of tuner registers
+** MT2266_SRO_FREQ crystal frequency
+** MT2266_STEPSIZE minimum tuning step size
+** MT2266_INPUT_FREQ input center frequency
+** MT2266_LO_FREQ LO Frequency
+** MT2266_OUTPUT_BW Output channel bandwidth
+** MT2266_RC2_VALUE Base band filter cal RC code (method 2)
+** MT2266_RC2_NOMINAL Base band filter nominal cal RC code
+** MT2266_RF_ADC RF attenuator A/D readback
+** MT2266_RF_ATTN RF attenuation (0-255)
+** MT2266_RF_EXT External control of RF atten
+** MT2266_LNA_GAIN LNA gain setting (0-15)
+** MT2266_BB_ADC BB attenuator A/D readback
+** MT2266_BB_ATTN Baseband attenuation (0-255)
+** MT2266_BB_EXT External control of BB atten
+**
+** Usage: status |= MT2266_GetParam(hMT2266,
+** MT2266_OUTPUT_BW,
+** &f_bw);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Invalid parameter requested
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** See Also: MT2266_SetParam, MT2266_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+UData_t MT2266_GetParam(Handle_t h,
+ MT2266_Param param,
+ UData_t* pValue)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ U8Data tmp;
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ if (pValue == NULL)
+ status |= MT_ARG_NULL;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (MT_NO_ERROR(status))
+ {
+ switch (param)
+ {
+ /* Serial Bus address of this tuner */
+ case MT2266_IC_ADDR:
+ *pValue = pInfo->address;
+ break;
+
+ /* Max # of MT2266's allowed to be open */
+ case MT2266_MAX_OPEN:
+ *pValue = nMaxTuners;
+ break;
+
+ /* # of MT2266's open */
+ case MT2266_NUM_OPEN:
+ *pValue = nOpenTuners;
+ break;
+
+ /* Number of tuner registers */
+ case MT2266_NUM_REGS:
+ *pValue = Num_Registers;
+ break;
+
+ /* crystal frequency */
+ case MT2266_SRO_FREQ:
+ *pValue = pInfo->f_Ref;
+ break;
+
+ /* minimum tuning step size */
+ case MT2266_STEPSIZE:
+ *pValue = pInfo->f_Step;
+ break;
+
+ /* input center frequency */
+ case MT2266_INPUT_FREQ:
+ *pValue = pInfo->f_in;
+ break;
+
+ /* LO Frequency */
+ case MT2266_LO_FREQ:
+ *pValue = pInfo->f_LO;
+ break;
+
+ /* Output Channel Bandwidth */
+ case MT2266_OUTPUT_BW:
+ *pValue = pInfo->f_bw;
+ break;
+
+ /* Base band filter cal RC code */
+ case MT2266_RC2_VALUE:
+ *pValue = (UData_t) pInfo->RC2_Value;
+ break;
+
+ /* Base band filter nominal cal RC code */
+ case MT2266_RC2_NOMINAL:
+ *pValue = (UData_t) pInfo->RC2_Nominal;
+ break;
+
+ /* RF attenuator A/D readback */
+ case MT2266_RF_ADC:
+ status |= UncheckedGet(pInfo, MT2266_STATUS_2, &tmp);
+ if (MT_NO_ERROR(status))
+ *pValue = (UData_t) tmp;
+ break;
+
+ /* BB attenuator A/D readback */
+ case MT2266_BB_ADC:
+ status |= UncheckedGet(pInfo, MT2266_STATUS_3, &tmp);
+ if (MT_NO_ERROR(status))
+ *pValue = (UData_t) tmp;
+ break;
+
+ /* RF attenuator setting */
+ case MT2266_RF_ATTN:
+ PREFETCH(MT2266_RSVD_1F, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ if (MT_NO_ERROR(status))
+ *pValue = pInfo->reg[MT2266_RSVD_1F];
+ break;
+
+ /* BB attenuator setting */
+ case MT2266_BB_ATTN:
+ PREFETCH(MT2266_RSVD_2C, 3); /* Fetch register(s) if __NO_CACHE__ defined */
+ *pValue = pInfo->reg[MT2266_RSVD_2C]
+ + pInfo->reg[MT2266_RSVD_2D]
+ + pInfo->reg[MT2266_RSVD_2E] - 3;
+ break;
+
+ /* RF external / internal atten control */
+ case MT2266_RF_EXT:
+ PREFETCH(MT2266_GPO, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ *pValue = ((pInfo->reg[MT2266_GPO] & 0x40) != 0x00);
+ break;
+
+ /* BB external / internal atten control */
+ case MT2266_BB_EXT:
+ PREFETCH(MT2266_RSVD_33, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ *pValue = ((pInfo->reg[MT2266_RSVD_33] & 0x10) != 0x00);
+ break;
+
+ /* LNA gain setting (0-15) */
+ case MT2266_LNA_GAIN:
+ PREFETCH(MT2266_IGAIN, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ *pValue = ((pInfo->reg[MT2266_IGAIN] & 0x3C) >> 2);
+ break;
+
+ case MT2266_EOP:
+ default:
+ status |= MT_ARG_RANGE;
+ }
+ }
+ return (status);
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION - DO NOT USE OUTSIDE OF mt2266.c
+**
+** Name: UncheckedGet
+**
+** Description: Gets an MT2266 register with minimal checking
+**
+** NOTE: This is a local function that performs the same
+** steps as the MT2266_GetReg function that is available
+** in the external API. It does not do any of the standard
+** error checking that the API function provides and should
+** not be called from outside this file.
+**
+** Parameters: *pInfo - Tuner control structure
+** reg - MT2266 register/subaddress location
+** *val - MT2266 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** Use this function if you need to read a register from
+** the MT2266.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+static UData_t UncheckedGet(MT2266_Info_t* pInfo,
+ U8Data reg,
+ U8Data* val)
+{
+ UData_t status; /* Status to be returned */
+
+#if defined(_DEBUG)
+ status = MT_OK;
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (val == NULL)
+ status |= MT_ARG_NULL;
+
+ if (reg >= END_REGS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_IS_ERROR(status))
+ return(status);
+#endif
+
+ status = MT2266_ReadSub(pInfo->hUserData, pInfo->address, reg, &pInfo->reg[reg], 1);
+
+ if (MT_NO_ERROR(status))
+ *val = pInfo->reg[reg];
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetReg
+**
+** Description: Gets an MT2266 register.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** reg - MT2266 register/subaddress location
+** *val - MT2266 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** Use this function if you need to read a register from
+** the MT2266.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+UData_t MT2266_GetReg(Handle_t h,
+ U8Data reg,
+ U8Data* val)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (val == NULL)
+ status |= MT_ARG_NULL;
+
+ if (reg >= END_REGS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_NO_ERROR(status))
+ status |= UncheckedGet(pInfo, reg, val);
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetUHFXFreqs
+**
+** Description: Retrieves the specified set of UHF Crossover Frequencies
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+**
+** Usage: MT2266_Freq_Set tmpFreqs;
+** status = MT2266_GetUHFXFreqs(hMT2266,
+** MT2266_UHF1_WITH_ATTENUATION,
+** tmpFreqs );
+** if (status & MT_ARG_RANGE)
+** // error, Invalid UHF Crossover Frequency Set requested.
+** else
+** for( int i = 0; i < MT2266_NUM_XFREQS; i++ )
+** . . .
+**
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_ARG_RANGE - freq_type is out of range.
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: freqs_buffer *must* be defined of type MT2266_Freq_Set
+** to assure sufficient space allocation!
+**
+** USERS MUST CALL MT2266_Open() FIRST!
+**
+** See Also: MT2266_SetUHFXFreqs
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 10-26-2006 RSK Original.
+**
+****************************************************************************/
+UData_t MT2266_GetUHFXFreqs(Handle_t h,
+ MT2266_UHFXFreq_Type freq_type,
+ MT2266_XFreq_Set freqs_buffer)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (freq_type >= MT2266_NUMBER_OF_XFREQ_SETS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_NO_ERROR(status))
+ {
+ int i;
+
+ for( i = 0; i < MT2266_NUM_XFREQS; i++ )
+ {
+ freqs_buffer[i] = pInfo->xfreqs.xfreq[ freq_type ][i] * TUNE_STEP_SIZE / 1000;
+ }
+ }
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetUserData
+**
+** Description: Gets the user-defined data item.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** The hUserData parameter is a user-specific argument
+** that is stored internally with the other tuner-
+** specific information.
+**
+** For example, if additional arguments are needed
+** for the user to identify the device communicating
+** with the tuner, this argument can be used to supply
+** the necessary information.
+**
+** The hUserData parameter is initialized in the tuner's
+** Open function to NULL.
+**
+** See Also: MT2266_SetUserData, MT2266_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+UData_t MT2266_GetUserData(Handle_t h,
+ Handle_t* hUserData)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (hUserData == NULL)
+ status |= MT_ARG_NULL;
+
+ if (MT_NO_ERROR(status))
+ *hUserData = pInfo->hUserData;
+
+ return (status);
+}
+
+
+/******************************************************************************
+**
+** Name: MT2266_ReInit
+**
+** Description: Initialize the tuner's register values.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_TUNER_ID_ERR - Tuner Part/Rev code mismatch
+** MT_TUNER_INIT_ERR - Tuner initialization failed
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_COMM_ERR - Serial bus communications error
+**
+** Dependencies: MT2266_ReadSub - Read byte(s) of data from the two-wire bus
+** MT2266_WriteSub - Write byte(s) of data to the two-wire bus
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+** N/A 06-08-2006 JWS Ver 1.01: Corrected problem with tuner ID check
+** N/A 11-01-2006 RSK Ver 1.02: Initialize XFreq Tables to Default
+** N/A 11-29-2006 DAD Ver 1.03: Parenthesis clarification
+**
+******************************************************************************/
+UData_t MT2266_ReInit(Handle_t h)
+{
+ int j;
+
+ U8Data MT2266_Init_Defaults1[] =
+ {
+ 0x01, /* Start w/register 0x01 */
+ 0x00, /* Reg 0x01 */
+ 0x00, /* Reg 0x02 */
+ 0x28, /* Reg 0x03 */
+ 0x00, /* Reg 0x04 */
+ 0x52, /* Reg 0x05 */
+ 0x99, /* Reg 0x06 */
+ 0x3F, /* Reg 0x07 */
+ };
+
+ U8Data MT2266_Init_Defaults2[] =
+ {
+ 0x17, /* Start w/register 0x17 */
+ 0x6D, /* Reg 0x17 */
+ 0x71, /* Reg 0x18 */
+ 0x61, /* Reg 0x19 */
+ 0xC0, /* Reg 0x1A */
+ 0xBF, /* Reg 0x1B */
+ 0xFF, /* Reg 0x1C */
+ 0xDC, /* Reg 0x1D */
+ 0x00, /* Reg 0x1E */
+ 0x0A, /* Reg 0x1F */
+ 0xD4, /* Reg 0x20 */
+ 0x03, /* Reg 0x21 */
+ 0x64, /* Reg 0x22 */
+ 0x64, /* Reg 0x23 */
+ 0x64, /* Reg 0x24 */
+ 0x64, /* Reg 0x25 */
+ 0x22, /* Reg 0x26 */
+ 0xAA, /* Reg 0x27 */
+ 0xF2, /* Reg 0x28 */
+ 0x1E, /* Reg 0x29 */
+ 0x80, /* Reg 0x2A */
+ 0x14, /* Reg 0x2B */
+ 0x01, /* Reg 0x2C */
+ 0x01, /* Reg 0x2D */
+ 0x01, /* Reg 0x2E */
+ 0x01, /* Reg 0x2F */
+ 0x01, /* Reg 0x30 */
+ 0x01, /* Reg 0x31 */
+ 0x7F, /* Reg 0x32 */
+ 0x5E, /* Reg 0x33 */
+ 0x3F, /* Reg 0x34 */
+ 0xFF, /* Reg 0x35 */
+ 0xFF, /* Reg 0x36 */
+ 0xFF, /* Reg 0x37 */
+ 0x00, /* Reg 0x38 */
+ 0x77, /* Reg 0x39 */
+ 0x0F, /* Reg 0x3A */
+ 0x2D, /* Reg 0x3B */
+ };
+
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+ U8Data BBVref;
+ U8Data tmpreg = 0;
+ U8Data statusreg = 0;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ /* Read the Part/Rev code from the tuner */
+ if (MT_NO_ERROR(status))
+ status |= UncheckedGet(pInfo, MT2266_PART_REV, &tmpreg);
+ if (MT_NO_ERROR(status) && (tmpreg != 0x85)) /* MT226? B0 */
+ status |= MT_TUNER_ID_ERR;
+ else
+ {
+ /*
+ ** Read the status register 5
+ */
+ tmpreg = pInfo->reg[MT2266_RSVD_11] |= 0x03;
+ if (MT_NO_ERROR(status))
+ status |= UncheckedSet(pInfo, MT2266_RSVD_11, tmpreg);
+ tmpreg &= ~(0x02);
+ if (MT_NO_ERROR(status))
+ status |= UncheckedSet(pInfo, MT2266_RSVD_11, tmpreg);
+
+ /* Get and store the status 5 register value */
+ if (MT_NO_ERROR(status))
+ status |= UncheckedGet(pInfo, MT2266_STATUS_5, &statusreg);
+
+ /* MT2266 */
+ if (MT_IS_ERROR(status) || ((statusreg & 0x30) != 0x30))
+ status |= MT_TUNER_ID_ERR; /* Wrong tuner Part/Rev code */
+ }
+
+ if (MT_NO_ERROR(status))
+ {
+ /* Initialize the tuner state. Hold off on f_in and f_LO */
+ pInfo->version = VERSION;
+ pInfo->tuner_id = pInfo->reg[MT2266_PART_REV];
+ pInfo->f_Ref = REF_FREQ;
+ pInfo->f_Step = TUNE_STEP_SIZE * 1000; /* kHz -> Hz */
+ pInfo->f_in = UHF_DEFAULT_FREQ;
+ pInfo->f_LO = UHF_DEFAULT_FREQ;
+ pInfo->f_bw = OUTPUT_BW;
+ pInfo->band = MT2266_UHF_BAND;
+ pInfo->num_regs = END_REGS;
+
+ /* Reset the UHF Crossover Frequency tables on open/init. */
+ for (j=0; j< MT2266_NUM_XFREQS; j++ )
+ {
+ pInfo->xfreqs.xfreq[MT2266_UHF0][j] = MT2266_default_XFreqs.xfreq[MT2266_UHF0][j];
+ pInfo->xfreqs.xfreq[MT2266_UHF1][j] = MT2266_default_XFreqs.xfreq[MT2266_UHF1][j];
+ pInfo->xfreqs.xfreq[MT2266_UHF0_ATTEN][j] = MT2266_default_XFreqs.xfreq[MT2266_UHF0_ATTEN][j];
+ pInfo->xfreqs.xfreq[MT2266_UHF1_ATTEN][j] = MT2266_default_XFreqs.xfreq[MT2266_UHF1_ATTEN][j];
+ }
+
+ /* Write the default values to the tuner registers. Default mode is UHF */
+ status |= MT2266_WriteSub(pInfo->hUserData,
+ pInfo->address,
+ MT2266_Init_Defaults1[0],
+ &MT2266_Init_Defaults1[1],
+ sizeof(MT2266_Init_Defaults1)/sizeof(U8Data)-1);
+ if (MT_NO_ERROR(status))
+ {
+ status |= MT2266_WriteSub(pInfo->hUserData,
+ pInfo->address,
+ MT2266_Init_Defaults2[0],
+ &MT2266_Init_Defaults2[1],
+ sizeof(MT2266_Init_Defaults2)/sizeof(U8Data)-1);
+ }
+ }
+
+ /* Read back all the registers from the tuner */
+ if (MT_NO_ERROR(status))
+ {
+ status |= MT2266_ReadSub(pInfo->hUserData, pInfo->address, 0, &pInfo->reg[0], END_REGS);
+ }
+
+ /*
+ ** Set reg[0x33] based on statusreg
+ */
+ if (MT_NO_ERROR(status))
+ {
+ BBVref = (((statusreg >> 6) + 2) & 0x03);
+ tmpreg = (pInfo->reg[MT2266_RSVD_33] & ~(0x60)) | (BBVref << 5);
+ status |= UncheckedSet(pInfo, MT2266_RSVD_33, tmpreg);
+ }
+
+ /* Run the baseband filter calibration */
+ if (MT_NO_ERROR(status))
+ status |= Run_BB_RC_Cal2(h);
+
+ /* Set the baseband filter bandwidth to the default */
+ if (MT_NO_ERROR(status))
+ status |= Set_BBFilt(h);
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_SetParam
+**
+** Description: Sets a tuning algorithm parameter.
+**
+** This function provides access to the internals of the
+** tuning algorithm. You can override many of the tuning
+** algorithm defaults using this function.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** param - Tuning algorithm parameter
+** (see enum MT2266_Param)
+** nValue - value to be set
+**
+** param Description
+** ---------------------- --------------------------------
+** MT2266_SRO_FREQ crystal frequency
+** MT2266_STEPSIZE minimum tuning step size
+** MT2266_INPUT_FREQ Center of input channel
+** MT2266_OUTPUT_BW Output channel bandwidth
+** MT2266_RF_ATTN RF attenuation (0-255)
+** MT2266_RF_EXT External control of RF atten
+** MT2266_LNA_GAIN LNA gain setting (0-15)
+** MT2266_LNA_GAIN_DECR Decrement LNA Gain (arg=min)
+** MT2266_LNA_GAIN_INCR Increment LNA Gain (arg=max)
+** MT2266_BB_ATTN Baseband attenuation (0-255)
+** MT2266_BB_EXT External control of BB atten
+** MT2266_UHF_MAXSENS Set for UHF max sensitivity mode
+** MT2266_UHF_NORMAL Set for UHF normal mode
+**
+** Usage: status |= MT2266_SetParam(hMT2266,
+** MT2266_STEPSIZE,
+** 50000);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_RANGE - Invalid parameter requested
+** or set value out of range
+** or non-writable parameter
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** See Also: MT2266_GetParam, MT2266_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+** N/A 11-29-2006 DAD Ver 1.03: Parenthesis clarification for gcc
+**
+****************************************************************************/
+UData_t MT2266_SetParam(Handle_t h,
+ MT2266_Param param,
+ UData_t nValue)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ U8Data tmpreg;
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (MT_NO_ERROR(status))
+ {
+ switch (param)
+ {
+ /* crystal frequency */
+ case MT2266_SRO_FREQ:
+ pInfo->f_Ref = nValue;
+ if (pInfo->f_Ref < 22000000)
+ {
+ /* Turn off f_SRO divide by 2 */
+ status |= UncheckedSet(pInfo,
+ MT2266_SRO_CTRL,
+ (U8Data) (pInfo->reg[MT2266_SRO_CTRL] &= 0xFE));
+ }
+ else
+ {
+ /* Turn on f_SRO divide by 2 */
+ status |= UncheckedSet(pInfo,
+ MT2266_SRO_CTRL,
+ (U8Data) (pInfo->reg[MT2266_SRO_CTRL] |= 0x01));
+ }
+ status |= Run_BB_RC_Cal2(h);
+ if (MT_NO_ERROR(status))
+ status |= Set_BBFilt(h);
+ break;
+
+ /* minimum tuning step size */
+ case MT2266_STEPSIZE:
+ pInfo->f_Step = nValue;
+ break;
+
+ /* Width of output channel */
+ case MT2266_OUTPUT_BW:
+ pInfo->f_bw = nValue;
+ status |= Set_BBFilt(h);
+ break;
+
+ /* BB attenuation (0-255) */
+ case MT2266_BB_ATTN:
+ if (nValue > 255)
+ status |= MT_ARG_RANGE;
+ else
+ {
+ UData_t BBA_Stage1;
+ UData_t BBA_Stage2;
+ UData_t BBA_Stage3;
+
+ BBA_Stage3 = (nValue > 102) ? 103 : nValue + 1;
+ BBA_Stage2 = (nValue > 175) ? 75 : nValue + 2 - BBA_Stage3;
+ BBA_Stage1 = (nValue > 176) ? nValue - 175 : 1;
+ pInfo->reg[MT2266_RSVD_2C] = (U8Data) BBA_Stage1;
+ pInfo->reg[MT2266_RSVD_2D] = (U8Data) BBA_Stage2;
+ pInfo->reg[MT2266_RSVD_2E] = (U8Data) BBA_Stage3;
+ pInfo->reg[MT2266_RSVD_2F] = (U8Data) BBA_Stage1;
+ pInfo->reg[MT2266_RSVD_30] = (U8Data) BBA_Stage2;
+ pInfo->reg[MT2266_RSVD_31] = (U8Data) BBA_Stage3;
+ status |= MT2266_WriteSub(pInfo->hUserData,
+ pInfo->address,
+ MT2266_RSVD_2C,
+ &pInfo->reg[MT2266_RSVD_2C],
+ 6);
+ }
+ break;
+
+ /* RF attenuation (0-255) */
+ case MT2266_RF_ATTN:
+ if (nValue > 255)
+ status |= MT_ARG_RANGE;
+ else
+ status |= UncheckedSet(pInfo, MT2266_RSVD_1F, (U8Data) nValue);
+ break;
+
+ /* RF external / internal atten control */
+ case MT2266_RF_EXT:
+ if (nValue == 0)
+ tmpreg = pInfo->reg[MT2266_GPO] &= ~0x40;
+ else
+ tmpreg = pInfo->reg[MT2266_GPO] |= 0x40;
+ status |= UncheckedSet(pInfo, MT2266_GPO, tmpreg);
+ break;
+
+ /* LNA gain setting (0-15) */
+ case MT2266_LNA_GAIN:
+ if (nValue > 15)
+ status |= MT_ARG_RANGE;
+ else
+ {
+ tmpreg = (pInfo->reg[MT2266_IGAIN] & 0xC3) | ((U8Data)nValue << 2);
+ status |= UncheckedSet(pInfo, MT2266_IGAIN, tmpreg);
+ }
+ break;
+
+ /* Decrement LNA Gain setting, argument is min LNA Gain setting */
+ case MT2266_LNA_GAIN_DECR:
+ if (nValue > 15)
+ status |= MT_ARG_RANGE;
+ else
+ {
+ PREFETCH(MT2266_IGAIN, 1);
+ if (MT_NO_ERROR(status) && ((U8Data) ((pInfo->reg[MT2266_IGAIN] & 0x3C) >> 2) > (U8Data) nValue))
+ status |= UncheckedSet(pInfo, MT2266_IGAIN, pInfo->reg[MT2266_IGAIN] - 0x04);
+ }
+ break;
+
+ /* Increment LNA Gain setting, argument is max LNA Gain setting */
+ case MT2266_LNA_GAIN_INCR:
+ if (nValue > 15)
+ status |= MT_ARG_RANGE;
+ else
+ {
+ PREFETCH(MT2266_IGAIN, 1);
+ if (MT_NO_ERROR(status) && ((U8Data) ((pInfo->reg[MT2266_IGAIN] & 0x3C) >> 2) < (U8Data) nValue))
+ status |= UncheckedSet(pInfo, MT2266_IGAIN, pInfo->reg[MT2266_IGAIN] + 0x04);
+ }
+ break;
+
+ /* BB external / internal atten control */
+ case MT2266_BB_EXT:
+ if (nValue == 0)
+ tmpreg = pInfo->reg[MT2266_RSVD_33] &= ~0x08;
+ else
+ tmpreg = pInfo->reg[MT2266_RSVD_33] |= 0x08;
+ status |= UncheckedSet(pInfo, MT2266_RSVD_33, tmpreg);
+ break;
+
+ /* Set for UHF max sensitivity mode */
+ case MT2266_UHF_MAXSENS:
+ PREFETCH(MT2266_BAND_CTRL, 1);
+ if (MT_NO_ERROR(status) && ((pInfo->reg[MT2266_BAND_CTRL] & 0x30) == 0x10))
+ status |= UncheckedSet(pInfo, MT2266_BAND_CTRL, pInfo->reg[MT2266_BAND_CTRL] ^ 0x30);
+ break;
+
+ /* Set for UHF normal mode */
+ case MT2266_UHF_NORMAL:
+ if (MT_NO_ERROR(status) && ((pInfo->reg[MT2266_BAND_CTRL] & 0x30) == 0x20))
+ status |= UncheckedSet(pInfo, MT2266_BAND_CTRL, pInfo->reg[MT2266_BAND_CTRL] ^ 0x30);
+ break;
+
+ /* These parameters are read-only */
+ case MT2266_IC_ADDR:
+ case MT2266_MAX_OPEN:
+ case MT2266_NUM_OPEN:
+ case MT2266_NUM_REGS:
+ case MT2266_INPUT_FREQ:
+ case MT2266_LO_FREQ:
+ case MT2266_RC2_VALUE:
+ case MT2266_RF_ADC:
+ case MT2266_BB_ADC:
+ case MT2266_EOP:
+ default:
+ status |= MT_ARG_RANGE;
+ }
+ }
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_SetPowerModes
+**
+** Description: Sets the bits in the MT2266_ENABLES register and the
+** SROsd bit in the MT2266_SROADC_CTRL register.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** flags - Bit mask of flags to indicate enabled
+** bits.
+**
+** Usage: status = MT2266_SetPowerModes(hMT2266, flags);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** The bits in the MT2266_ENABLES register and the
+** SROsd bit are set according to the supplied flags.
+**
+** The pre-defined flags are as follows:
+** MT2266_SROen
+** MT2266_LOen
+** MT2266_ADCen
+** MT2266_PDen
+** MT2266_DCOCen
+** MT2266_BBen
+** MT2266_MIXen
+** MT2266_LNAen
+** MT2266_ALL_ENABLES
+** MT2266_NO_ENABLES
+** MT2266_SROsd
+** MT2266_SRO_NOT_sd
+**
+** ONLY the enable bits (or SROsd bit) specified in the
+** flags parameter will be set. Any flag which is not
+** included, will cause that bit to be disabled.
+**
+** The ALL_ENABLES, NO_ENABLES, and SRO_NOT_sd constants
+** are for convenience. The NO_ENABLES and SRO_NOT_sd
+** do not actually have to be included, but are provided
+** for clarity.
+**
+** See Also: MT2266_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+UData_t MT2266_SetPowerModes(Handle_t h,
+ UData_t flags)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+ U8Data tmpreg;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ PREFETCH(MT2266_SRO_CTRL, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+ if (MT_NO_ERROR(status))
+ {
+ if (flags & MT2266_SROsd)
+ tmpreg = pInfo->reg[MT2266_SRO_CTRL] |= 0x10; /* set the SROsd bit */
+ else
+ tmpreg = pInfo->reg[MT2266_SRO_CTRL] &= 0xEF; /* clear the SROsd bit */
+ status |= UncheckedSet(pInfo, MT2266_SRO_CTRL, tmpreg);
+ }
+
+ PREFETCH(MT2266_ENABLES, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+
+ if (MT_NO_ERROR(status))
+ {
+ status |= UncheckedSet(pInfo, MT2266_ENABLES, (U8Data)(flags & 0xff));
+ }
+
+ return status;
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION - DO NOT USE OUTSIDE OF mt2266.c
+**
+** Name: UncheckedSet
+**
+** Description: Sets an MT2266 register.
+**
+** NOTE: This is a local function that performs the same
+** steps as the MT2266_SetReg function that is available
+** in the external API. It does not do any of the standard
+** error checking that the API function provides and should
+** not be called from outside this file.
+**
+** Parameters: *pInfo - Tuner control structure
+** reg - MT2266 register/subaddress location
+** val - MT2266 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** Sets a register value without any preliminary checking for
+** valid handles or register numbers.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+static UData_t UncheckedSet(MT2266_Info_t* pInfo,
+ U8Data reg,
+ U8Data val)
+{
+ UData_t status; /* Status to be returned */
+
+#if defined(_DEBUG)
+ status = MT_OK;
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (reg >= END_REGS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_IS_ERROR(status))
+ return (status);
+#endif
+
+ status = MT2266_WriteSub(pInfo->hUserData, pInfo->address, reg, &val, 1);
+
+ if (MT_NO_ERROR(status))
+ pInfo->reg[reg] = val;
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_SetReg
+**
+** Description: Sets an MT2266 register.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** reg - MT2266 register/subaddress location
+** val - MT2266 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** Use this function if you need to override a default
+** register value
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+UData_t MT2266_SetReg(Handle_t h,
+ U8Data reg,
+ U8Data val)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (reg >= END_REGS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_NO_ERROR(status))
+ status |= UncheckedSet(pInfo, reg, val);
+
+ return (status);
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_SetUHFXFreqs
+**
+** Description: Assigns the specified set of UHF Crossover Frequencies
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+**
+** Usage: MT2266_Freq_Set tmpFreqs;
+** status = MT2266_GetUHFXFreqs(hMT2266,
+** MT2266_UHF1_WITH_ATTENUATION,
+** tmpFreqs );
+** ...
+** tmpFreqs[i] = <desired value>
+** ...
+** status = MT2266_SetUHFXFreqs(hMT2266,
+** MT2266_UHF1_WITH_ATTENUATION,
+** tmpFreqs );
+**
+** if (status & MT_ARG_RANGE)
+** // error, Invalid UHF Crossover Frequency Set requested.
+** else
+** for( int i = 0; i < MT2266_NUM_XFREQS; i++ )
+** . . .
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_ARG_RANGE - freq_type is out of range.
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: freqs_buffer *must* be defined of type MT2266_Freq_Set
+** to assure sufficient space allocation!
+**
+** USERS MUST CALL MT2266_Open() FIRST!
+**
+** See Also: MT2266_SetUHFXFreqs
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 10-26-2006 RSK Original.
+**
+****************************************************************************/
+UData_t MT2266_SetUHFXFreqs(Handle_t h,
+ MT2266_UHFXFreq_Type freq_type,
+ MT2266_XFreq_Set freqs_buffer)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ if (freq_type >= MT2266_NUMBER_OF_XFREQ_SETS)
+ status |= MT_ARG_RANGE;
+
+ if (MT_NO_ERROR(status))
+ {
+ int i;
+
+ for( i = 0; i < MT2266_NUM_XFREQS; i++ )
+ {
+ pInfo->xfreqs.xfreq[ freq_type ][i] = freqs_buffer[i] * 1000 / TUNE_STEP_SIZE;
+ }
+ }
+
+ return (status);
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION
+**
+** Name: RoundToStep
+**
+** Description: Rounds the given frequency to the closes f_Step value
+** given the tuner ref frequency..
+**
+**
+** Parameters: freq - Frequency to be rounded (in Hz).
+** f_Step - Step size for the frequency (in Hz).
+** f_Ref - SRO frequency (in Hz).
+**
+** Returns: Rounded frequency.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+**
+****************************************************************************/
+static UData_t RoundToStep(UData_t freq, UData_t f_Step, UData_t f_ref)
+{
+ return f_ref * (freq / f_ref)
+ + f_Step * (((freq % f_ref) + (f_Step / 2)) / f_Step);
+}
+
+
+/****************************************************************************
+**
+** Name: fLO_FractionalTerm
+**
+** Description: Calculates the portion contributed by FracN / denom.
+**
+** This function preserves maximum precision without
+** risk of overflow. It accurately calculates
+** f_ref * num / denom to within 1 HZ with fixed math.
+**
+** Parameters: num - Fractional portion of the multiplier
+** denom - denominator portion of the ratio
+** This routine successfully handles denom values
+** up to and including 2^18.
+** f_Ref - SRO frequency. This calculation handles
+** f_ref as two separate 14-bit fields.
+** Therefore, a maximum value of 2^28-1
+** may safely be used for f_ref. This is
+** the genesis of the magic number "14" and the
+** magic mask value of 0x03FFF.
+**
+** Returns: f_ref * num / denom
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 12-20-2006 RSK Ver 1.04: Adding fLO_FractionalTerm() usage.
+**
+****************************************************************************/
+static UData_t fLO_FractionalTerm( UData_t f_ref,
+ UData_t num,
+ UData_t denom )
+{
+ UData_t t1 = (f_ref >> 14) * num;
+ UData_t term1 = t1 / denom;
+ UData_t loss = t1 % denom;
+ UData_t term2 = ( ((f_ref & 0x00003FFF) * num + (loss<<14)) + (denom/2) ) / denom;
+ return ((term1 << 14) + term2);
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION
+**
+** Name: CalcLOMult
+**
+** Description: Calculates Integer divider value and the numerator
+** value for LO's FracN PLL.
+**
+** This function assumes that the f_LO and f_Ref are
+** evenly divisible by f_LO_Step.
+**
+** Parameters: Div - OUTPUT: Whole number portion of the multiplier
+** FracN - OUTPUT: Fractional portion of the multiplier
+** f_LO - desired LO frequency.
+** denom - LO FracN denominator value
+** f_Ref - SRO frequency.
+**
+** Returns: Recalculated LO frequency.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+** N/A 12-20-2006 RSK Ver 1.04: Adding fLO_FractionalTerm() usage.
+**
+****************************************************************************/
+static UData_t CalcLOMult(UData_t *Div,
+ UData_t *FracN,
+ UData_t f_LO,
+ UData_t denom,
+ UData_t f_Ref)
+{
+ UData_t a, b, i;
+ const SData_t TwoNShift = 13; /* bits to shift to obtain 2^n qty */
+ const SData_t RoundShift = 18; /* bits to shift before rounding */
+
+ /* Calculate the whole number portion of the divider */
+ *Div = f_LO / f_Ref;
+
+ /*
+ ** Calculate the FracN numerator 1 bit at a time. This keeps the
+ ** integer values from overflowing when large values are multiplied.
+ ** This loop calculates the fractional portion of F/20MHz accurate
+ ** to 32 bits. The 2^n factor is represented by the placement of
+ ** the value in the 32-bit word. Since we want as much accuracy
+ ** as possible, we'll leave it at the top of the word.
+ */
+ *FracN = 0;
+ a = f_LO;
+ for (i=32; i>0; --i)
+ {
+ b = 2*(a % f_Ref);
+ *FracN = (*FracN * 2) + (b >= f_Ref);
+ a = b;
+ }
+
+ /*
+ ** If the denominator is a 2^n - 1 value (the usual case) then the
+ ** value we really need is (F/20) * 2^n - (F/20). Shifting the
+ ** calculated (F/20) value to the right and subtracting produces
+ ** the desired result -- still accurate to 32 bits.
+ */
+ if ((denom & 0x01) != 0)
+ *FracN -= (*FracN >> TwoNShift);
+
+ /*
+ ** Now shift the result so that it is 1 bit bigger than we need,
+ ** use the low-order bit to round the remaining bits, and shift
+ ** to make the answer the desired size.
+ */
+ *FracN >>= RoundShift;
+ *FracN = (*FracN & 0x01) + (*FracN >> 1);
+
+ /* Check for rollover (cannot happen with 50 kHz step size) */
+ if (*FracN == (denom | 1))
+ {
+ *FracN = 0;
+ ++Div;
+ }
+
+
+ return (f_Ref * (*Div)) + fLO_FractionalTerm( f_Ref, *FracN, denom );
+}
+
+
+/****************************************************************************
+** LOCAL FUNCTION
+**
+** Name: GetCrossover
+**
+** Description: Determines the appropriate value in the set of
+** crossover frequencies.
+**
+** This function assumes that the crossover frequency table
+** ias been properly initialized in descending order.
+**
+** Parameters: f_in - The input frequency to use.
+** freqs - The array of crossover frequency entries.
+**
+** Returns: Index of crossover frequency band to use.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 10-27-2006 RSK Original
+**
+****************************************************************************/
+static U8Data GetCrossover( UData_t f_in, UData_t* freqs )
+{
+ U8Data idx;
+ U8Data retVal = 0;
+
+ for (idx=0; idx< (U8Data)MT2266_NUM_XFREQS; idx++)
+ {
+ if ( freqs[idx] >= f_in)
+ {
+ retVal = (U8Data)MT2266_NUM_XFREQS - idx;
+ break;
+ }
+ }
+
+ return retVal;
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_ChangeFreq
+**
+** Description: Change the tuner's tuned frequency to f_in.
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+** f_in - RF input center frequency (in Hz).
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_FIN_RANGE - Input freq out of range
+** MT_DNC_RANGE - Downconverter freq out of range
+**
+** Dependencies: MUST CALL MT2266_Open BEFORE MT2266_ChangeFreq!
+**
+** MT2266_ReadSub - Read byte(s) of data from the two-wire-bus
+** MT2266_WriteSub - Write byte(s) of data to the two-wire-bus
+** MT_Sleep - Delay execution for x milliseconds
+** MT2266_GetLocked - Checks to see if the PLL is locked
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+** N/A 11-01-2006 RSK Ver 1.02: Added usage of UFILT0 and UFILT1.
+** N/A 11-29-2006 DAD Ver 1.03: Parenthesis clarification
+** 118 05-09-2007 RSK Ver 1.05: Refactored to call _Tune() API.
+**
+****************************************************************************/
+UData_t MT2266_ChangeFreq(Handle_t h,
+ UData_t f_in) /* RF input center frequency */
+{
+ return (MT2266_Tune(h, f_in));
+}
+
+
+/****************************************************************************
+**
+** Name: MT2266_Tune
+**
+** Description: Change the tuner's tuned frequency to f_in.
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+** f_in - RF input center frequency (in Hz).
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_FIN_RANGE - Input freq out of range
+** MT_DNC_RANGE - Downconverter freq out of range
+**
+** Dependencies: MUST CALL MT2266_Open BEFORE MT2266_Tune!
+**
+** MT_ReadSub - Read byte(s) of data from the two-wire-bus
+** MT_WriteSub - Write byte(s) of data to the two-wire-bus
+** MT_Sleep - Delay execution for x milliseconds
+** MT2266_GetLocked - Checks to see if the PLL is locked
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+** N/A 11-01-2006 RSK Ver 1.02: Added usage of UFILT0 and UFILT1.
+** N/A 11-29-2006 DAD Ver 1.03: Parenthesis clarification
+** 118 05-09-2007 RSK Ver 1.05: Adding Standard MTxxxx_Tune() API.
+**
+****************************************************************************/
+UData_t MT2266_Tune(Handle_t h,
+ UData_t f_in) /* RF input center frequency */
+{
+ MT2266_Info_t* pInfo = (MT2266_Info_t*) h;
+
+ UData_t status = MT_OK; /* status of operation */
+ UData_t LO; /* LO register value */
+ UData_t Num; /* Numerator for LO reg. value */
+ UData_t ofLO; /* last time's LO frequency */
+ UData_t ofin; /* last time's input frequency */
+ U8Data LO_Band; /* LO Mode bits */
+ UData_t s_fRef; /* Ref Freq scaled for LO Band */
+ UData_t this_band; /* Band for the requested freq */
+ UData_t SROx2; /* SRO times 2 */
+
+ /* Verify that the handle passed points to a valid tuner */
+ if (IsValidHandle(pInfo) == 0)
+ return (MT_INV_HANDLE);
+
+ /*
+ ** Save original input and LO value
+ */
+ ofLO = pInfo->f_LO;
+ ofin = pInfo->f_in;
+
+ /*
+ ** Assign in the requested input value
+ */
+ pInfo->f_in = f_in;
+
+ /*
+ ** Get the SRO multiplier value
+ */
+ SROx2 = (2 - (pInfo->reg[MT2266_SRO_CTRL] & 0x01));
+
+ /* Request an LO that is on a step size boundary */
+ pInfo->f_LO = RoundToStep(f_in, pInfo->f_Step, pInfo->f_Ref);
+
+ if (pInfo->f_LO < MIN_VHF_FREQ)
+ {
+ status |= MT_FIN_RANGE | MT_ARG_RANGE | MT_DNC_RANGE;
+ return status; /* Does not support frequencies below MIN_VHF_FREQ */
+ }
+ else if (pInfo->f_LO <= MAX_VHF_FREQ)
+ {
+ /* VHF Band */
+ s_fRef = pInfo->f_Ref * SROx2 / 4;
+ LO_Band = 0;
+ this_band = MT2266_VHF_BAND;
+ }
+ else if (pInfo->f_LO < MIN_UHF_FREQ)
+ {
+ status |= MT_FIN_RANGE | MT_ARG_RANGE | MT_DNC_RANGE;
+ return status; /* Does not support frequencies between MAX_VHF_FREQ & MIN_UHF_FREQ */
+ }
+ else if (pInfo->f_LO <= MAX_UHF_FREQ)
+ {
+ /* UHF Band */
+ s_fRef = pInfo->f_Ref * SROx2 / 2;
+ LO_Band = 1;
+ this_band = MT2266_UHF_BAND;
+ }
+ else
+ {
+ status |= MT_FIN_RANGE | MT_ARG_RANGE | MT_DNC_RANGE;
+ return status; /* Does not support frequencies above MAX_UHF_FREQ */
+ }
+
+ /*
+ ** Calculate the LO frequencies and the values to be placed
+ ** in the tuning registers.
+ */
+ pInfo->f_LO = CalcLOMult(&LO, &Num, pInfo->f_LO, 8191, s_fRef);
+
+ /*
+ ** If we have the same LO frequencies and we're already locked,
+ ** then just return without writing any registers.
+ */
+ if ((ofLO == pInfo->f_LO)
+ && ((pInfo->reg[MT2266_STATUS_1] & 0x40) == 0x40))
+ {
+ return (status);
+ }
+
+ /*
+ ** Reset defaults here if we're tuning into a new band
+ */
+ if (MT_NO_ERROR(status))
+ {
+ if (this_band != pInfo->band)
+ {
+ MT2266_DefaultsEntry *defaults = NULL;
+ switch (this_band)
+ {
+ case MT2266_VHF_BAND:
+ defaults = &MT2266_VHF_defaults[0];
+ break;
+ case MT2266_UHF_BAND:
+ defaults = &MT2266_UHF_defaults[0];
+ break;
+ default:
+ status |= MT_ARG_RANGE;
+ }
+ if ( MT_NO_ERROR(status))
+ {
+ while (defaults->data && MT_NO_ERROR(status))
+ {
+ status |= MT2266_WriteSub(pInfo->hUserData, pInfo->address, defaults->data[0], &defaults->data[1], defaults->cnt);
+ defaults++;
+ }
+ /* re-read the new registers into the cached values */
+ status |= MT2266_ReadSub(pInfo->hUserData, pInfo->address, 0, &pInfo->reg[0], END_REGS);
+ pInfo->band = this_band;
+ }
+ }
+ }
+
+ /*
+ ** Place all of the calculated values into the local tuner
+ ** register fields.
+ */
+ if (MT_NO_ERROR(status))
+ {
+ pInfo->reg[MT2266_LO_CTRL_1] = (U8Data)(Num >> 8);
+ pInfo->reg[MT2266_LO_CTRL_2] = (U8Data)(Num & 0xFF);
+ pInfo->reg[MT2266_LO_CTRL_3] = (U8Data)(LO & 0xFF);
+
+ /*
+ ** Now write out the computed register values
+ */
+ status |= MT2266_WriteSub(pInfo->hUserData, pInfo->address, MT2266_LO_CTRL_1, &pInfo->reg[MT2266_LO_CTRL_1], 3);
+
+ if (pInfo->band == MT2266_UHF_BAND)
+ {
+ U8Data UFilt0 = 0; /* def when f_in > all */
+ U8Data UFilt1 = 0; /* def when f_in > all */
+ UData_t* XFreq0;
+ UData_t* XFreq1;
+ SData_t ClearTune_Fuse;
+ SData_t f_offset;
+ UData_t f_in_;
+
+ PREFETCH(MT2266_BAND_CTRL, 2); /* Fetch register(s) if __NO_CACHE__ defined */
+ PREFETCH(MT2266_STATUS_5, 1); /* Fetch register(s) if __NO_CACHE__ defined */
+
+ XFreq0 = (pInfo->reg[MT2266_BAND_CTRL] & 0x10) ? pInfo->xfreqs.xfreq[ MT2266_UHF0_ATTEN ] : pInfo->xfreqs.xfreq[ MT2266_UHF0 ];
+ XFreq1 = (pInfo->reg[MT2266_BAND_CTRL] & 0x10) ? pInfo->xfreqs.xfreq[ MT2266_UHF1_ATTEN ] : pInfo->xfreqs.xfreq[ MT2266_UHF1 ];
+
+ ClearTune_Fuse = pInfo->reg[MT2266_STATUS_5] & 0x07;
+ f_offset = (10000000) * ((ClearTune_Fuse > 3) ? (ClearTune_Fuse - 8) : ClearTune_Fuse);
+ f_in_ = (f_in - f_offset) / 1000 / TUNE_STEP_SIZE;
+
+ UFilt0 = GetCrossover( f_in_, XFreq0 );
+ UFilt1 = GetCrossover( f_in_, XFreq1 );
+
+ /* If UFilt == 16, set UBANDen and set UFilt = 15 */
+ if ( (UFilt0 == 16) || (UFilt1 == 16) )
+ {
+ pInfo->reg[MT2266_BAND_CTRL] |= 0x01;
+ if( UFilt0 > 0 ) UFilt0--;
+ if( UFilt1 > 0 ) UFilt1--;
+ }
+ else
+ pInfo->reg[MT2266_BAND_CTRL] &= ~(0x01);
+
+ pInfo->reg[MT2266_BAND_CTRL] =
+ (pInfo->reg[MT2266_BAND_CTRL] & 0x3F) | (LO_Band << 6);
+
+ pInfo->reg[MT2266_CLEARTUNE] = (UFilt1 << 4) | UFilt0;
+ /* Write UBANDsel [05] & ClearTune [06] */
+ status |= MT2266_WriteSub(pInfo->hUserData, pInfo->address, MT2266_BAND_CTRL, &pInfo->reg[MT2266_BAND_CTRL], 2);
+ }
+ }
+
+ /*
+ ** Check for LO lock
+ */
+ if (MT_NO_ERROR(status))
+ {
+ status |= MT2266_GetLocked(h);
+ }
+
+ return (status);
+}
+
diff --git a/api/mt2266.h b/api/mt2266.h
new file mode 100644
index 0000000..11bc038
--- /dev/null
+++ b/api/mt2266.h
@@ -0,0 +1,780 @@
+/*****************************************************************************
+**
+** Name: mt2266.h
+**
+** Copyright 2007 Microtune, Inc. All Rights Reserved
+**
+** This source code file contains confidential information and/or trade
+** secrets of Microtune, Inc. or its affiliates and is subject to the
+** terms of your confidentiality agreement with Microtune, Inc. or one of
+** its affiliates, as applicable.
+**
+*****************************************************************************/
+
+/*****************************************************************************
+**
+** Name: mt2266.h
+**
+** Description: Microtune MT2266 Tuner software interface.
+** Supports tuners with Part/Rev code: 0x85.
+**
+** Functions
+** Implemented: UData_t MT2266_Open
+** UData_t MT2266_Close
+** UData_t MT2266_ChangeFreq
+** UData_t MT2266_GetLocked
+** UData_t MT2266_GetParam
+** UData_t MT2266_GetReg
+** UData_t MT2266_GetUHFXFreqs
+** UData_t MT2266_GetUserData
+** UData_t MT2266_ReInit
+** UData_t MT2266_SetParam
+** UData_t MT2266_SetPowerModes
+** UData_t MT2266_SetReg
+** UData_t MT2266_SetUHFXFreqs
+** UData_t MT2266_Tune
+**
+** References: AN-00010: MicroTuner Serial Interface Application Note
+** MicroTune, Inc.
+**
+** Exports: None
+**
+** Dependencies: MT_ReadSub(hUserData, IC_Addr, subAddress, *pData, cnt);
+** - Read byte(s) of data from the two-wire bus.
+**
+** MT_WriteSub(hUserData, IC_Addr, subAddress, *pData, cnt);
+** - Write byte(s) of data to the two-wire bus.
+**
+** MT_Sleep(hUserData, nMinDelayTime);
+** - Delay execution for x milliseconds
+**
+** CVS ID: $Id: mt2266.h,v 1.3 2007/10/02 18:43:17 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/software/tuners/MT2266/mt2266.h,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 05-30-2006 DAD Ver 1.0: Modified version of mt2260.c (Ver 1.01).
+** N/A 11-01-2006 RSK Ver 1.02: Adding Get/Set UHFXFreq access functions.
+** 118 05-09-2007 RSK Ver 1.05: Adding Standard MTxxxx_Tune() API.
+**
+*****************************************************************************/
+#if !defined( __MT2266_H )
+#define __MT2266_H
+
+#include "mt2266_userdef.h"
+
+#if defined( __cplusplus )
+extern "C" /* Use "C" external linkage */
+{
+#endif
+
+/*
+** Parameter for function MT2266_GetParam & MT2266_SetParam that
+** specifies the tuning algorithm parameter to be read/written.
+*/
+typedef enum
+{
+ /* tuner address set by MT2266_Open() */
+ MT2266_IC_ADDR,
+
+ /* max number of MT2266 tuners set by MT2266_CNT in mt_userdef.h */
+ MT2266_MAX_OPEN,
+
+ /* current number of open MT2266 tuners set by MT2266_Open() */
+ MT2266_NUM_OPEN,
+
+ /* Number of tuner registers */
+ MT2266_NUM_REGS,
+
+ /* crystal frequency (default: 18000000 Hz) */
+ MT2266_SRO_FREQ,
+
+ /* min tuning step size (default: 50000 Hz) */
+ MT2266_STEPSIZE,
+
+ /* input center frequency set by MT2266_ChangeFreq() */
+ MT2266_INPUT_FREQ,
+
+ /* LO Frequency set by MT2266_ChangeFreq() */
+ MT2266_LO_FREQ,
+
+ /* output channel bandwidth (default: 8000000 Hz) */
+ MT2266_OUTPUT_BW,
+
+ /* Base band filter calibration RC code (default: N/A) */
+ MT2266_RC2_VALUE,
+
+ /* Base band filter nominal cal RC code (default: N/A) */
+ MT2266_RC2_NOMINAL,
+
+ /* RF attenuator A/D readback (read-only) */
+ MT2266_RF_ADC,
+
+ /* BB attenuator A/D readback (read-only) */
+ MT2266_BB_ADC,
+
+ /* RF attenuator setting (default: varies) */
+ MT2266_RF_ATTN,
+
+ /* BB attenuator setting (default: varies) */
+ MT2266_BB_ATTN,
+
+ /* RF external / internal atten control (default: varies) */
+ MT2266_RF_EXT,
+
+ /* BB external / internal atten control (default: 1) */
+ MT2266_BB_EXT,
+
+ /* LNA gain setting (0-15) (default: varies) */
+ MT2266_LNA_GAIN,
+
+ /* Decrement LNA Gain (where arg=min LNA Gain value) */
+ MT2266_LNA_GAIN_DECR,
+
+ /* Increment LNA Gain (where arg=max LNA Gain value) */
+ MT2266_LNA_GAIN_INCR,
+
+ /* Set for UHF max sensitivity mode */
+ MT2266_UHF_MAXSENS,
+
+ /* Set for UHF normal mode */
+ MT2266_UHF_NORMAL,
+
+ MT2266_EOP /* last entry in enumerated list */
+} MT2266_Param;
+
+
+/*
+** Parameter for function MT2266_GetUHFXFreqs & MT2266_SetUHFXFreqs that
+** specifies the particular frequency crossover table to be read/written.
+*/
+typedef enum
+{
+ /* Reference the UHF 0 filter, without any attenuation */
+ MT2266_UHF0,
+
+ /* Reference the UHF 1 filter, without any attenuation */
+ MT2266_UHF1,
+
+ /* Reference the UHF 0 filter, with attenuation */
+ MT2266_UHF0_ATTEN,
+
+ /* Reference the UHF 1 filter, with attenuation */
+ MT2266_UHF1_ATTEN,
+
+ MT2266_NUMBER_OF_XFREQ_SETS /* last entry in enumerated list */
+
+} MT2266_UHFXFreq_Type;
+
+
+#define MT2266_NUM_XFREQS (16)
+
+typedef UData_t MT2266_XFreq_Set[ MT2266_NUM_XFREQS ];
+
+/*
+** Constants for Specifying Operating Band of the Tuner
+*/
+#define MT2266_VHF_BAND (0)
+#define MT2266_UHF_BAND (1)
+#define MT2266_L_BAND (2)
+
+/*
+** Constants for specifying power modes these values
+** are bit-mapped and can be added/OR'ed to indicate
+** multiple settings. Examples:
+** MT2266_SetPowerModes(h, MT2266_NO_ENABLES + MT22266_SROsd);
+** MT2266_SetPowerModes(h, MT2266_ALL_ENABLES | MT22266_SRO_NOT_sd);
+** MT2266_SetPowerModes(h, MT2266_NO_ENABLES + MT22266_SROsd);
+** MT2266_SetPowerModes(h, MT2266_SROen + MT22266_LOen + MT2266_ADCen);
+*/
+#define MT2266_SROen (0x01)
+#define MT2266_LOen (0x02)
+#define MT2266_ADCen (0x04)
+#define MT2266_PDen (0x08)
+#define MT2266_DCOCen (0x10)
+#define MT2266_BBen (0x20)
+#define MT2266_MIXen (0x40)
+#define MT2266_LNAen (0x80)
+#define MT2266_ALL_ENABLES (0xFF)
+#define MT2266_NO_ENABLES (0x00)
+#define MT2266_SROsd (0x100)
+#define MT2266_SRO_NOT_sd (0x000)
+
+/* ====== Functions which are declared in mt2266.c File ======= */
+
+/******************************************************************************
+**
+** Name: MT2266_Open
+**
+** Description: Initialize the tuner's register values.
+**
+** Usage: status = MT2266_Open(0xC0, &hMT2266, NULL);
+** if (MT_IS_ERROR(status))
+** // Check error codes for reason
+**
+** Parameters: MT2266_Addr - Serial bus address of the tuner.
+** hMT2266 - Tuner handle passed back.
+** hUserData - User-defined data, if needed for the
+** MT_ReadSub() & MT_WriteSub functions.
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_TUNER_ID_ERR - Tuner Part/Rev code mismatch
+** MT_TUNER_INIT_ERR - Tuner initialization failed
+** MT_COMM_ERR - Serial bus communications error
+** MT_ARG_NULL - Null pointer argument passed
+** MT_TUNER_CNT_ERR - Too many tuners open
+**
+** Dependencies: MT_ReadSub - Read byte(s) of data from the two-wire bus
+** MT_WriteSub - Write byte(s) of data to the two-wire bus
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2266_Open(UData_t MT2266_Addr,
+ Handle_t* hMT2266,
+ Handle_t hUserData);
+
+
+/******************************************************************************
+**
+** Name: MT2266_Close
+**
+** Description: Release the handle to the tuner.
+**
+** Parameters: hMT2266 - Handle to the MT2266 tuner
+**
+** Usage: status = MT2266_Close(hMT2266);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: mt_errordef.h - definition of error codes
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2266_Close(Handle_t hMT2266);
+
+
+/****************************************************************************
+**
+** Name: MT2266_ChangeFreq
+**
+** Description: Change the tuner's tuned frequency to f_in.
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+** f_in - RF input center frequency (in Hz).
+**
+** Usage: status = MT2266_ChangeFreq(hMT2266, f_in);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_FIN_RANGE - Input freq out of range
+** MT_DNC_RANGE - Downconverter freq out of range
+**
+** Dependencies: MUST CALL MT2266_Open BEFORE MT2266_ChangeFreq!
+**
+** MT_ReadSub - Read byte(s) of data from the two-wire-bus
+** MT_WriteSub - Write byte(s) of data to the two-wire-bus
+** MT_Sleep - Delay execution for x milliseconds
+** MT2266_GetLocked - Checks to see if the PLL is locked
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2266_ChangeFreq(Handle_t h,
+ UData_t f_in);
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetLocked
+**
+** Description: Checks to see if the PLL is locked.
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+**
+** Usage: status = MT2266_GetLocked(hMT2266);
+** if (status & MT_DNC_UNLOCK)
+** // error!, PLL is unlocked
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: MT_ReadSub - Read byte(s) of data from the serial bus
+** MT_Sleep - Delay execution for x milliseconds
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2266_GetLocked(Handle_t h);
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetParam
+**
+** Description: Gets a tuning algorithm parameter.
+**
+** This function provides access to the internals of the
+** tuning algorithm - mostly for testing purposes.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** param - Tuning algorithm parameter
+** (see enum MT2266_Param)
+** pValue - ptr to returned value
+**
+** param Description
+** ---------------------- --------------------------------
+** MT2266_IC_ADDR Serial Bus address of this tuner
+** MT2266_MAX_OPEN Max number of MT2266's that can be open
+** MT2266_NUM_OPEN Number of MT2266's currently open
+** MT2266_NUM_REGS Number of tuner registers
+** MT2266_SRO_FREQ crystal frequency
+** MT2266_STEPSIZE minimum tuning step size
+** MT2266_INPUT_FREQ input center frequency
+** MT2266_LO_FREQ LO Frequency
+** MT2266_OUTPUT_BW Output channel bandwidth
+** MT2266_RC2_VALUE Base band filter cal RC code (method 2)
+** MT2266_RF_ADC RF attenuator A/D readback
+** MT2266_RF_ATTN RF attenuation (0-255)
+** MT2266_RF_EXT External control of RF atten
+** MT2266_LNA_GAIN LNA gain setting (0-15)
+** MT2266_BB_ADC BB attenuator A/D readback
+** MT2266_BB_ATTN Baseband attenuation (0-255)
+** MT2266_BB_EXT External control of BB atten
+**
+** Usage: status |= MT2266_GetParam(hMT2266,
+** MT2266_OUTPUT_BW,
+** &f_bw);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Invalid parameter requested
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** See Also: MT2266_SetParam, MT2266_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2266_GetParam(Handle_t h,
+ MT2266_Param param,
+ UData_t* pValue);
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetReg
+**
+** Description: Gets an MT2266 register.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** reg - MT2266 register/subaddress location
+** *val - MT2266 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** Use this function if you need to read a register from
+** the MT2266.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2266_GetReg(Handle_t h,
+ U8Data reg,
+ U8Data* val);
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetUHFXFreqs
+**
+** Description: Retrieves the specified set of UHF Crossover Frequencies
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+**
+** Usage: MT2266_Freq_Set tmpFreqs;
+** status = MT2266_GetUHFXFreqs(hMT2266,
+** MT2266_UHF1_WITH_ATTENUATION,
+** tmpFreqs );
+** if (status & MT_ARG_RANGE)
+** // error, Invalid UHF Crossover Frequency Set requested.
+** else
+** for( int i = 0; i < MT2266_NUM_XFREQS; i++ )
+** . . .
+**
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_ARG_RANGE - freq_type is out of range.
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: freqs_buffer *must* be defined of type MT2266_Freq_Set
+** to assure sufficient space allocation!
+**
+** USERS MUST CALL MT2266_Open() FIRST!
+**
+** See Also: MT2266_SetUHFXFreqs
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 11-01-2006 RSK Original.
+**
+****************************************************************************/
+UData_t MT2266_GetUHFXFreqs(Handle_t h,
+ MT2266_UHFXFreq_Type freq_type,
+ MT2266_XFreq_Set freqs_buffer);
+
+
+/****************************************************************************
+**
+** Name: MT2266_GetUserData
+**
+** Description: Gets the user-defined data item.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+**
+** Usage: status = MT2266_GetUserData(hMT2266, &hUserData);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** The hUserData parameter is a user-specific argument
+** that is stored internally with the other tuner-
+** specific information.
+**
+** For example, if additional arguments are needed
+** for the user to identify the device communicating
+** with the tuner, this argument can be used to supply
+** the necessary information.
+**
+** The hUserData parameter is initialized in the tuner's
+** Open function to NULL.
+**
+** See Also: MT2266_SetUserData, MT2266_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2266_GetUserData(Handle_t h,
+ Handle_t* hUserData);
+
+
+/******************************************************************************
+**
+** Name: MT2266_ReInit
+**
+** Description: Initialize the tuner's register values.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_TUNER_ID_ERR - Tuner Part/Rev code mismatch
+** MT_TUNER_INIT_ERR - Tuner initialization failed
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_COMM_ERR - Serial bus communications error
+**
+** Dependencies: MT_ReadSub - Read byte(s) of data from the two-wire bus
+** MT_WriteSub - Write byte(s) of data to the two-wire bus
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+******************************************************************************/
+UData_t MT2266_ReInit(Handle_t h);
+
+
+/****************************************************************************
+**
+** Name: MT2266_SetParam
+**
+** Description: Sets a tuning algorithm parameter.
+**
+** This function provides access to the internals of the
+** tuning algorithm. You can override many of the tuning
+** algorithm defaults using this function.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** param - Tuning algorithm parameter
+** (see enum MT2266_Param)
+** nValue - value to be set
+**
+** param Description
+** ---------------------- --------------------------------
+** MT2266_SRO_FREQ crystal frequency
+** MT2266_STEPSIZE minimum tuning step size
+** MT2266_INPUT_FREQ Center of input channel
+** MT2266_OUTPUT_BW Output channel bandwidth
+** MT2266_RF_ATTN RF attenuation (0-255)
+** MT2266_RF_EXT External control of RF atten
+** MT2266_LNA_GAIN LNA gain setting (0-15)
+** MT2266_LNA_GAIN_DECR Decrement LNA Gain (arg=min)
+** MT2266_LNA_GAIN_INCR Increment LNA Gain (arg=max)
+** MT2266_BB_ATTN Baseband attenuation (0-255)
+** MT2266_BB_EXT External control of BB atten
+** MT2266_UHF_MAXSENS Set for UHF max sensitivity mode
+** MT2266_UHF_NORMAL Set for UHF normal mode
+**
+** Usage: status |= MT2266_SetParam(hMT2266,
+** MT2266_STEPSIZE,
+** 50000);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_NULL - Null pointer argument passed
+** MT_ARG_RANGE - Invalid parameter requested
+** or set value out of range
+** or non-writable parameter
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** See Also: MT2266_GetParam, MT2266_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2266_SetParam(Handle_t h,
+ MT2266_Param param,
+ UData_t nValue);
+
+
+/****************************************************************************
+**
+** Name: MT2266_SetPowerModes
+**
+** Description: Sets the bits in the MT2266_ENABLES register and the
+** SROsd bit in the MT2266_SROADC_CTRL register.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** flags - Bit mask of flags to indicate enabled
+** bits.
+**
+** Usage: status = MT2266_SetPowerModes(hMT2266, flags);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** The bits in the MT2266_ENABLES register and the
+** SROsd bit are set according to the supplied flags.
+**
+** The pre-defined flags are as follows:
+** MT2266_SROen
+** MT2266_LOen
+** MT2266_ADCen
+** MT2266_PDen
+** MT2266_DCOCen
+** MT2266_BBen
+** MT2266_MIXen
+** MT2266_LNAen
+** MT2266_ALL_ENABLES
+** MT2266_NO_ENABLES
+** MT2266_SROsd
+** MT2266_SRO_NOT_sd
+**
+** ONLY the enable bits (or SROsd bit) specified in the
+** flags parameter will be set. Any flag which is not
+** included, will cause that bit to be disabled.
+**
+** The ALL_ENABLES, NO_ENABLES, and SRO_NOT_sd constants
+** are for convenience. The NO_ENABLES and SRO_NOT_sd
+** do not actually have to be included, but are provided
+** for clarity.
+**
+** See Also: MT2266_Open
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2266_SetPowerModes(Handle_t h,
+ UData_t flags);
+
+
+/****************************************************************************
+**
+** Name: MT2266_SetReg
+**
+** Description: Sets an MT2266 register.
+**
+** Parameters: h - Tuner handle (returned by MT2266_Open)
+** reg - MT2266 register/subaddress location
+** val - MT2266 register/subaddress value
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_ARG_RANGE - Argument out of range
+**
+** Dependencies: USERS MUST CALL MT2266_Open() FIRST!
+**
+** Use this function if you need to override a default
+** register value
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 02-03-2006 DAD/JWS Original.
+**
+****************************************************************************/
+UData_t MT2266_SetReg(Handle_t h,
+ U8Data reg,
+ U8Data val);
+
+
+/****************************************************************************
+**
+** Name: MT2266_SetUHFXFreqs
+**
+** Description: Retrieves the specified set of UHF Crossover Frequencies
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+**
+** Usage: MT2266_Freq_Set tmpFreqs;
+** status = MT2266_SetUHFXFreqs(hMT2266,
+** MT2266_UHF1_WITH_ATTENUATION,
+** tmpFreqs );
+** if (status & MT_ARG_RANGE)
+** // error, Invalid UHF Crossover Frequency Set requested.
+** else
+** for( int i = 0; i < MT2266_NUM_XFREQS; i++ )
+** . . .
+**
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_ARG_RANGE - freq_type is out of range.
+** MT_INV_HANDLE - Invalid tuner handle
+**
+** Dependencies: freqs_buffer *must* be defined of type MT2266_Freq_Set
+** to assure sufficient space allocation!
+**
+** USERS MUST CALL MT2266_Open() FIRST!
+**
+** See Also: MT2266_SetUHFXFreqs
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 11_01-2006 RSK Original.
+**
+****************************************************************************/
+UData_t MT2266_SetUHFXFreqs(Handle_t h,
+ MT2266_UHFXFreq_Type freq_type,
+ MT2266_XFreq_Set freqs_buffer);
+
+
+/****************************************************************************
+**
+** Name: MT2266_Tune
+**
+** Description: Change the tuner's tuned frequency to f_in.
+**
+** Parameters: h - Open handle to the tuner (from MT2266_Open).
+** f_in - RF input center frequency (in Hz).
+**
+** Usage: status = MT2266_Tune(hMT2266, f_in);
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_INV_HANDLE - Invalid tuner handle
+** MT_DNC_UNLOCK - Downconverter PLL unlocked
+** MT_COMM_ERR - Serial bus communications error
+** MT_FIN_RANGE - Input freq out of range
+** MT_DNC_RANGE - Downconverter freq out of range
+**
+** Dependencies: MUST CALL MT2266_Open BEFORE MT2266_Tune!
+**
+** MT_ReadSub - Read byte(s) of data from the two-wire-bus
+** MT_WriteSub - Write byte(s) of data to the two-wire-bus
+** MT_Sleep - Delay execution for x milliseconds
+** MT2266_GetLocked - Checks to see if the PLL is locked
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** 118 05-09-2007 RSK Original API Introduction (was ChangeFreq).
+**
+******************************************************************************/
+UData_t MT2266_Tune(Handle_t h,
+ UData_t f_in);
+
+
+#if defined( __cplusplus )
+}
+#endif
+
+#endif \ No newline at end of file
diff --git a/api/mt2266_userdef.c b/api/mt2266_userdef.c
new file mode 100644
index 0000000..cd325ac
--- /dev/null
+++ b/api/mt2266_userdef.c
@@ -0,0 +1,545 @@
+/*****************************************************************************
+**
+** Name: mt_userdef.c
+**
+** Description: User-defined MicroTuner software interface
+**
+** Functions
+** Requiring
+** Implementation: MT_WriteSub
+** MT_ReadSub
+** MT_Sleep
+**
+** References: None
+**
+** Exports: None
+**
+** CVS ID: $Id: mt_userdef.c,v 1.2 2006/10/26 16:39:18 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/software/tuners/MT2266/mt_userdef.c,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+#include "mt2266_userdef.h"
+
+
+/*****************************************************************************
+**
+** Name: MT_WriteSub
+**
+** Description: Write values to device using a two-wire serial bus.
+**
+** Parameters: handle - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** addr - device serial bus address (value passed
+** as parameter to MTxxxx_Open)
+** subAddress - serial bus sub-address (Register Address)
+** data - pointer to the Data to be written to the
+** device
+** cnt - number of bytes/registers to be written
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** user-defined
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code for this
+** function to write data using the tuner's 2-wire serial
+** bus.
+**
+** The handle parameter is a user-specific argument.
+** If additional arguments are needed for the user's
+** serial bus read/write functions, this argument can be
+** used to supply the necessary information.
+** The handle parameter is initialized in the tuner's Open
+** function.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+UData_t MT2266_WriteSub(Handle_t handle,
+ UData_t addr,
+ U8Data subAddress,
+ U8Data *data,
+ UData_t cnt)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ /*
+ ** ToDo: Add code here to implement a serial-bus write
+ ** operation to the MTxxxx tuner. If successful,
+ ** return MT_OK.
+ */
+ PUserData userData;
+ U8Data * buffer;
+ U8Data i;
+ U8Data blocks;
+ U8Data remains;
+
+ blocks = (U8Data) (cnt / 17);
+ remains = (U8Data) (cnt % 17);
+
+ userData = (PUserData) handle;
+
+ buffer = data;
+ for (i = 0; i < blocks; i++) {
+ status = Standard_writeTunerRegisters (userData->demodulator, userData->chip, (unsigned short)subAddress + (unsigned short)i * 17, 17, buffer);
+ if (status) goto exit;
+
+ buffer += 17;
+ }
+
+ if (remains)
+ {
+ status = Standard_writeTunerRegisters (userData->demodulator, userData->chip, (unsigned short)subAddress + (unsigned short)i * 17, remains, buffer);
+ if (status) goto exit;
+ }
+
+exit:
+ return (status);
+}
+
+
+/*****************************************************************************
+**
+** Name: MT_ReadSub
+**
+** Description: Read values from device using a two-wire serial bus.
+**
+** Parameters: handle - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** addr - device serial bus address (value passed
+** as parameter to MTxxxx_Open)
+** subAddress - serial bus sub-address (Register Address)
+** data - pointer to the Data to be written to the
+** device
+** cnt - number of bytes/registers to be written
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** user-defined
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code for this
+** function to read data using the tuner's 2-wire serial
+** bus.
+**
+** The handle parameter is a user-specific argument.
+** If additional arguments are needed for the user's
+** serial bus read/write functions, this argument can be
+** used to supply the necessary information.
+** The handle parameter is initialized in the tuner's Open
+** function.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+UData_t MT2266_ReadSub(Handle_t handle,
+ UData_t addr,
+ U8Data subAddress,
+ U8Data *data,
+ UData_t cnt)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+
+ /*
+ ** ToDo: Add code here to implement a serial-bus read
+ ** operation to the MTxxxx tuner. If successful,
+ ** return MT_OK.
+ */
+ PUserData userData;
+ U8Data buffer[8];
+ U8Data i;
+
+ /*
+ ** ToDo: Add code here to implement a serial-bus read
+ ** operation to the MTxxxx tuner. If successful,
+ ** return true.
+ */
+ userData = (PUserData)handle;
+
+ for (i = 0; i < cnt; i++)
+ {
+ status = Standard_readTunerRegisters (userData->demodulator, userData->chip, subAddress + i, (U8Data)1, &buffer[0]);
+ if (status) goto exit;
+ *(data + i) = buffer[0];
+ }
+
+exit:
+ return (status);
+}
+
+
+/*****************************************************************************
+**
+** Name: MT_Sleep
+**
+** Description: Delay execution for "nMinDelayTime" milliseconds
+**
+** Parameters: handle - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** nMinDelayTime - Delay time in milliseconds
+**
+** Returns: None.
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code that
+** blocks execution for the specified period of time.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+void MT2266_Sleep(Handle_t handle,
+ UData_t nMinDelayTime)
+{
+ PUserData userData;
+ /*
+ ** ToDo: Add code here to implement a OS blocking
+ ** for a period of "nMinDelayTime" milliseconds.
+ */
+ userData = (PUserData)handle;
+
+ User_delay (userData->demodulator, (unsigned long) nMinDelayTime);
+}
+
+
+#if defined(MT2060_CNT)
+#if MT2060_CNT > 0
+/*****************************************************************************
+**
+** Name: MT_TunerGain (MT2060 only)
+**
+** Description: Measure the relative tuner gain using the demodulator
+**
+** Parameters: handle - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** pMeas - Tuner gain (1/100 of dB scale).
+** ie. 1234 = 12.34 (dB)
+**
+** Returns: status:
+** MT_OK - No errors
+** user-defined errors could be set
+**
+** Notes: This is a callback function that is called from the
+** the 1st IF location routine. You MUST provide
+** code that measures the relative tuner gain in a dB
+** (not linear) scale. The return value is an integer
+** value scaled to 1/100 of a dB.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 06-16-2004 DAD Original
+** N/A 11-30-2004 DAD Renamed from MT_DemodInputPower. This name
+** better describes what this function does.
+**
+*****************************************************************************/
+int IfGainTable[256] = {
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 6000,
+ 5993,
+ 5987,
+ 5981,
+ 5975,
+ 5968,
+ 5962,
+ 5956,
+ 5950,
+ 5949,
+ 5948,
+ 5947,
+ 5946,
+ 5945,
+ 5944,
+ 5943,
+ 5942,
+ 5941,
+ 5940,
+ 5939,
+ 5938,
+ 5937,
+ 5937,
+ 5936,
+ 5935,
+ 5934,
+ 5933,
+ 5932,
+ 5931,
+ 5930,
+ 5929,
+ 5928,
+ 5927,
+ 5926,
+ 5925,
+ 5925,
+ 5924,
+ 5923,
+ 5922,
+ 5921,
+ 5920,
+ 5919,
+ 5918,
+ 5917,
+ 5916,
+ 5915,
+ 5914,
+ 5913,
+ 5912,
+ 5912,
+ 5911,
+ 5910,
+ 5909,
+ 5908,
+ 5907,
+ 5906,
+ 5905,
+ 5904,
+ 5903,
+ 5902,
+ 5901,
+ 5900,
+ 5900,
+ 5885,
+ 5871,
+ 5857,
+ 5842,
+ 5828,
+ 5814,
+ 5800,
+ 5785,
+ 5771,
+ 5757,
+ 5742,
+ 5728,
+ 5714,
+ 5700,
+ 5685,
+ 5671,
+ 5657,
+ 5642,
+ 5628,
+ 5614,
+ 5600,
+ 5585,
+ 5571,
+ 5557,
+ 5542,
+ 5528,
+ 5514,
+ 5500,
+ 5485,
+ 5471,
+ 5457,
+ 5442,
+ 5428,
+ 5414,
+ 5400,
+ 5381,
+ 5362,
+ 5344,
+ 5325,
+ 5307,
+ 5288,
+ 5270,
+ 5251,
+ 5233,
+ 5214,
+ 5196,
+ 5177,
+ 5159,
+ 5140,
+ 5122,
+ 5103,
+ 5085,
+ 5066,
+ 5048,
+ 5029,
+ 5011,
+ 4992,
+ 4974,
+ 4955,
+ 4937,
+ 4918,
+ 4900,
+ 4871,
+ 4842,
+ 4813,
+ 4784,
+ 4755,
+ 4726,
+ 4697,
+ 4668,
+ 4639,
+ 4610,
+ 4581,
+ 4552,
+ 4523,
+ 4494,
+ 4465,
+ 4436,
+ 4407,
+ 4378,
+ 4350,
+ 4318,
+ 4287,
+ 4256,
+ 4225,
+ 4193,
+ 4162,
+ 4131,
+ 4100,
+ 4068,
+ 4037,
+ 4006,
+ 3975,
+ 3943,
+ 3912,
+ 3881,
+ 3850,
+ 3809,
+ 3768,
+ 3727,
+ 3686,
+ 3645,
+ 3604,
+ 3563,
+ 3522,
+ 3481,
+ 3440,
+ 3400,
+ 3358,
+ 3316,
+ 3275,
+ 3233,
+ 3191,
+ 3150,
+ 3108,
+ 3066,
+ 3025,
+ 2983,
+ 2941,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900,
+ 2900
+};
+
+UData_t MT2266_TunerGain(Handle_t handle,
+ SData_t* pMeas)
+{
+ UData_t status = MT_OK; /* Status to be returned */
+ U8Data rfAgc;
+ U8Data ifAgc;
+ PUserData userData;
+
+ /*
+ ** ToDo: Add code here to return the gain / power level measured
+ ** at the input to the demodulator.
+ */
+
+
+ /*
+ ** ToDo: Add code here to return the gain / power level measured
+ ** at the input to the demodulator.
+ */
+ userData = (PUserData)handle;
+
+ MT2060_Sleep(handle, 100);
+
+ status = Standard_getIfAgcGain (userData->demodulator, userData->chip, &rfAgc, &ifAgc);
+ if (status) goto exit;
+
+ *pMeas = IfGainTable[ifAgc];
+
+exit:
+ return (status);
+}
+#endif
+#endif \ No newline at end of file
diff --git a/api/mt2266_userdef.h b/api/mt2266_userdef.h
new file mode 100644
index 0000000..bca161f
--- /dev/null
+++ b/api/mt2266_userdef.h
@@ -0,0 +1,288 @@
+/*****************************************************************************
+**
+** Name: mt_userdef.h
+**
+** Description: User-defined data types needed by MicroTuner source code.
+**
+** Customers must provide the code for these functions
+** in the file "mt_userdef.c".
+**
+** Customers must verify that the typedef's in the
+** "Data Types" section are correct for their platform.
+**
+** Functions
+** Requiring
+** Implementation: MT_WriteSub
+** MT_ReadSub
+** MT_Sleep
+**
+** References: None
+**
+** Exports: None
+**
+** CVS ID: $Id: mt_userdef.h,v 1.1 2006/06/22 20:18:12 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/software/tuners/MT2266/mt_userdef.h,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+** 082 12-06-2004 JWS Multi-tuner support - requires MTxxxx_CNT
+** declarations
+**
+*****************************************************************************/
+#if !defined( __MT_USERDEF_H )
+#define __MT_USERDEF_H
+
+#include "mt_errordef.h"
+#include "standard.h"
+
+#if defined( __cplusplus )
+extern "C" /* Use "C" external linkage */
+{
+#endif
+
+/*
+** Data Types
+*/
+typedef unsigned char U8Data; /* type corresponds to 8 bits */
+typedef unsigned long UData_t; /* type must be at least 32 bits */
+typedef int SData_t; /* type must be at least 32 bits */
+typedef void * Handle_t; /* memory pointer type */
+typedef double FData_t; /* floating point data type */
+
+typedef struct {
+ Byte chip;
+ Demodulator* demodulator;
+}UserData, *PUserData;
+
+#define AF901X_CAN_TUNER 0x1
+#define AF901X_SILICON_TUNER 0x2
+
+#define MAX_UDATA (4294967295) /* max value storable in UData_t */
+
+/*
+** Define an MTxxxx_CNT macro for each type of tuner that will be built
+** into your application (e.g., MT2121, MT2060). MT_TUNER_CNT
+** must be set to the SUM of all of the MTxxxx_CNT macros.
+**
+** #define MT2050_CNT (1)
+** #define MT2060_CNT (2)
+** #define MT2111_CNT (1)
+** #define MT2121_CNT (3)
+*/
+
+#define MT2266_CNT (2)
+#if !defined( MT_TUNER_CNT )
+#define MT_TUNER_CNT (2) /* total num of MicroTuner tuners */
+#endif
+
+/*
+** Optional user-defined Error/Info Codes (examples below)
+**
+** This is the area where you can define user-specific error/info return
+** codes to be returned by any of the functions you are responsible for
+** writing such as MT_WriteSub() and MT_ReadSub. There are four bits
+** available in the status field for your use. When set, these
+** bits will be returned in the status word returned by any tuner driver
+** call. If you OR in the MT_ERROR bit as well, the tuner driver code
+** will treat the code as an error.
+**
+** The following are a few examples of errors you can provide.
+**
+** Example 1:
+** You might check to see the hUserData handle is correct and issue
+** MY_USERDATA_INVALID which would be defined like this:
+**
+** #define MY_USERDATA_INVALID (MT_USER_ERROR | MT_USER_DEFINED1)
+**
+**
+** Example 2:
+** You might be able to provide more descriptive two-wire bus errors:
+**
+** #define NO_ACK (MT_USER_ERROR | MT_USER_DEFINED1)
+** #define NO_NACK (MT_USER_ERROR | MT_USER_DEFINED2)
+** #define BUS_BUSY (MT_USER_ERROR | MT_USER_DEFINED3)
+**
+**
+** Example 3:
+** You can also provide information (non-error) feedback:
+**
+** #define MY_INFO_1 (MT_USER_DEFINED1)
+**
+**
+** Example 4:
+** You can combine the fields together to make a multi-bit field.
+** This one can provide the tuner number based off of the addr
+** passed to MT_WriteSub or MT_ReadSub. It assumes that
+** MT_USER_DEFINED4 through MT_USER_DEFINED1 are contiguously. If
+** TUNER_NUM were OR'ed into the status word on an error, you could
+** use this to identify which tuner had the problem (and whether it
+** was during a read or write operation).
+**
+** #define TUNER_NUM ((addr & 0x07) >> 1) << MT_USER_SHIFT
+**
+*/
+
+/*****************************************************************************
+**
+** Name: MT_WriteSub
+**
+** Description: Write values to device using a two-wire serial bus.
+**
+** Parameters: hUserData - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** addr - device serial bus address (value passed
+** as parameter to MTxxxx_Open)
+** subAddress - serial bus sub-address (Register Address)
+** pData - pointer to the Data to be written to the
+** device
+** cnt - number of bytes/registers to be written
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** user-defined
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code for this
+** function to write data using the tuner's 2-wire serial
+** bus.
+**
+** The hUserData parameter is a user-specific argument.
+** If additional arguments are needed for the user's
+** serial bus read/write functions, this argument can be
+** used to supply the necessary information.
+** The hUserData parameter is initialized in the tuner's Open
+** function.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+UData_t MT2266_WriteSub(Handle_t hUserData,
+ UData_t addr,
+ U8Data subAddress,
+ U8Data *pData,
+ UData_t cnt);
+
+
+/*****************************************************************************
+**
+** Name: MT_ReadSub
+**
+** Description: Read values from device using a two-wire serial bus.
+**
+** Parameters: hUserData - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** addr - device serial bus address (value passed
+** as parameter to MTxxxx_Open)
+** subAddress - serial bus sub-address (Register Address)
+** pData - pointer to the Data to be written to the
+** device
+** cnt - number of bytes/registers to be written
+**
+** Returns: status:
+** MT_OK - No errors
+** MT_COMM_ERR - Serial bus communications error
+** user-defined
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code for this
+** function to read data using the tuner's 2-wire serial
+** bus.
+**
+** The hUserData parameter is a user-specific argument.
+** If additional arguments are needed for the user's
+** serial bus read/write functions, this argument can be
+** used to supply the necessary information.
+** The hUserData parameter is initialized in the tuner's Open
+** function.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+UData_t MT2266_ReadSub(Handle_t hUserData,
+ UData_t addr,
+ U8Data subAddress,
+ U8Data *pData,
+ UData_t cnt);
+
+
+/*****************************************************************************
+**
+** Name: MT_Sleep
+**
+** Description: Delay execution for "nMinDelayTime" milliseconds
+**
+** Parameters: hUserData - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** nMinDelayTime - Delay time in milliseconds
+**
+** Returns: None.
+**
+** Notes: This is a callback function that is called from the
+** the tuning algorithm. You MUST provide code that
+** blocks execution for the specified period of time.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 03-25-2004 DAD Original
+**
+*****************************************************************************/
+void MT2266_Sleep(Handle_t hUserData,
+ UData_t nMinDelayTime);
+
+
+#if defined(MT2060_CNT)
+#if MT2060_CNT > 0
+/*****************************************************************************
+**
+** Name: MT_TunerGain (for MT2060 only)
+**
+** Description: Measure the relative tuner gain using the demodulator
+**
+** Parameters: hUserData - User-specific I/O parameter that was
+** passed to tuner's Open function.
+** pMeas - Tuner gain (1/100 of dB scale).
+** ie. 1234 = 12.34 (dB)
+**
+** Returns: status:
+** MT_OK - No errors
+** user-defined errors could be set
+**
+** Notes: This is a callback function that is called from the
+** the 1st IF location routine. You MUST provide
+** code that measures the relative tuner gain in a dB
+** (not linear) scale. The return value is an integer
+** value scaled to 1/100 of a dB.
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 06-16-2004 DAD Original
+** N/A 11-30-2004 DAD Renamed from MT_DemodInputPower. This name
+** better describes what this function does.
+**
+*****************************************************************************/
+UData_t MT2266_TunerGain(Handle_t hUserData,
+ SData_t* pMeas);
+#endif
+#endif
+
+#if defined( __cplusplus )
+}
+#endif
+
+#endif \ No newline at end of file
diff --git a/api/mt_errordef.h b/api/mt_errordef.h
new file mode 100644
index 0000000..99fb85b
--- /dev/null
+++ b/api/mt_errordef.h
@@ -0,0 +1,143 @@
+/*****************************************************************************
+**
+** Name: mt_errordef.h
+**
+** Description: Definition of bits in status/error word used by various
+** MicroTuner control programs.
+**
+** References: None
+**
+** Exports: None
+**
+** CVS ID: $Id: mt_errordef.h,v 1.1 2006/06/22 20:18:12 software Exp $
+** CVS Source: $Source: /export/home/cvsroot/software/tuners/MT2266/mt_errordef.h,v $
+**
+** Revision History:
+**
+** SCR Date Author Description
+** -------------------------------------------------------------------------
+** N/A 09-09-2004 JWS Original
+** 088 01-26-2005 DAD Added MT_TUNER_INIT_ERR.
+** N/A 12-09-2005 DAD Added MT_TUNER_TIMEOUT (info).
+**
+*****************************************************************************/
+
+/*
+** Note to users: DO NOT EDIT THIS FILE
+**
+** If you wish to rename any of the "user defined" bits,
+** it should be done in the user file that includes this
+** source file (e.g. mt_userdef.h)
+**
+*/
+
+
+
+/*
+** 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
+** 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
+** M U <- Info Codes --> <# Spurs> < User> <----- Err Codes ----->
+**
+** 31 = MT_ERROR - Master Error Flag. If set, check Err Codes for reason.
+** 30 = MT_USER_ERROR - User-declared error flag.
+** 29 = Unused
+** 28 = Unused
+** 27 = MT_DNC_RANGE
+** 26 = MT_UPC_RANGE
+** 25 = MT_FOUT_RANGE
+** 24 = MT_FIN_OUT_OF_RANGE
+** 23 = MT_SPUR_PRESENT - Unavoidable spur in output
+** 22 = MT_TUNER_TIMEOUT
+** 21 = Unused
+** 20 = Unused
+** 19 = MT_SPUR_CNT_MASK (MSB) - Count of avoided spurs
+** 18 = MT_SPUR_CNT_MASK
+** 17 = MT_SPUR_CNT_MASK
+** 16 = MT_SPUR_CNT_MASK
+** 15 = MT_SPUR_CNT_MASK (LSB)
+** 14 = MT_USER_DEFINED4 - User-definable bit (see MT_Userdef.h)
+** 13 = MT_USER_DEFINED3 - User-definable bit (see MT_Userdef.h)
+** 12 = MT_USER_DEFINED2 - User-definable bit (see MT_Userdef.h)
+** 11 = MT_USER_DEFINED1 - User-definable bit (see MT_Userdef.h)
+** 10 = Unused
+** 9 = MT_TUNER_INIT_ERR - Tuner initialization error
+** 8 = MT_TUNER_ID_ERR - Tuner Part Code / Rev Code mismatches expected value
+** 7 = MT_TUNER_CNT_ERR - Attempt to open more than MT_TUNER_CNT tuners
+** 6 = MT_ARG_NULL - Null pointer passed as argument
+** 5 = MT_ARG_RANGE - Argument value out of range
+** 4 = MT_INV_HANDLE - Tuner handle is invalid
+** 3 = MT_COMM_ERR - Serial bus communications error
+** 2 = MT_DNC_UNLOCK - Downconverter PLL is unlocked
+** 1 = MT_UPC_UNLOCK - Upconverter PLL is unlocked
+** 0 = MT_UNKNOWN - Unknown error
+*/
+#define MT_ERROR (1 << 31)
+#define MT_USER_ERROR (1 << 30)
+
+/* Macro to be used to check for errors */
+#define MT_IS_ERROR(s) (((s) >> 30) != 0)
+#define MT_NO_ERROR(s) (((s) >> 30) == 0)
+
+
+#define MT_OK (0x00000000)
+
+/* Unknown error */
+#define MT_UNKNOWN (0x80000001)
+
+/* Error: Upconverter PLL is not locked */
+#define MT_UPC_UNLOCK (0x80000002)
+
+/* Error: Downconverter PLL is not locked */
+#define MT_DNC_UNLOCK (0x80000004)
+
+/* Error: Two-wire serial bus communications error */
+#define MT_COMM_ERR (0x80000008)
+
+/* Error: Tuner handle passed to function was invalid */
+#define MT_INV_HANDLE (0x80000010)
+
+/* Error: Function argument is invalid (out of range) */
+#define MT_ARG_RANGE (0x80000020)
+
+/* Error: Function argument (ptr to return value) was NULL */
+#define MT_ARG_NULL (0x80000040)
+
+/* Error: Attempt to open more than MT_TUNER_CNT tuners */
+#define MT_TUNER_CNT_ERR (0x80000080)
+
+/* Error: Tuner Part Code / Rev Code mismatches expected value */
+#define MT_TUNER_ID_ERR (0x80000100)
+
+/* Error: Tuner Initialization failure */
+#define MT_TUNER_INIT_ERR (0x80000200)
+
+/* User-definable fields (see mt_userdef.h) */
+#define MT_USER_DEFINED1 (0x00001000)
+#define MT_USER_DEFINED2 (0x00002000)
+#define MT_USER_DEFINED3 (0x00004000)
+#define MT_USER_DEFINED4 (0x00008000)
+#define MT_USER_MASK (0x4000f000)
+#define MT_USER_SHIFT (12)
+
+/* Info: Mask of bits used for # of LO-related spurs that were avoided during tuning */
+#define MT_SPUR_CNT_MASK (0x001f0000)
+#define MT_SPUR_SHIFT (16)
+
+/* Info: Tuner timeout waiting for condition */
+#define MT_TUNER_TIMEOUT (0x00400000)
+
+/* Info: Unavoidable LO-related spur may be present in the output */
+#define MT_SPUR_PRESENT (0x00800000)
+
+/* Info: Tuner input frequency is out of range */
+#define MT_FIN_RANGE (0x01000000)
+
+/* Info: Tuner output frequency is out of range */
+#define MT_FOUT_RANGE (0x02000000)
+
+/* Info: Upconverter frequency is out of range (may be reason for MT_UPC_UNLOCK) */
+#define MT_UPC_RANGE (0x04000000)
+
+/* Info: Downconverter frequency is out of range (may be reason for MT_DPC_UNLOCK) */
+#define MT_DNC_RANGE (0x08000000)
+
diff --git a/api/register.h b/api/register.h
new file mode 100644
index 0000000..76e4795
--- /dev/null
+++ b/api/register.h
@@ -0,0 +1,13519 @@
+#ifndef _TD_BIU_REG_H_
+#define _TD_BIU_REG_H_
+// biu_reg.h 6-27-2007
+// gen_biu Ver 1.0 generated by
+#define xd_p_reg_p_aagc_log_2_acc (*(volatile byte xdata *) 0xF000)
+#define p_reg_p_aagc_log_2_acc 0xF000
+#define reg_p_aagc_log_2_acc_pos 0
+#define reg_p_aagc_log_2_acc_len 4
+#define reg_p_aagc_log_2_acc_lsb 0
+#define xd_p_reg_p_aagc_signal_level_rdy (*(volatile byte xdata *) 0xF001)
+#define p_reg_p_aagc_signal_level_rdy 0xF001
+#define reg_p_aagc_signal_level_rdy_pos 0
+#define reg_p_aagc_signal_level_rdy_len 1
+#define reg_p_aagc_signal_level_rdy_lsb 0
+#define xd_r_reg_r_aagc_signal_level_7_0 (*(volatile byte xdata *) 0xF002)
+#define r_reg_r_aagc_signal_level_7_0 0xF002
+#define reg_r_aagc_signal_level_7_0_pos 0
+#define reg_r_aagc_signal_level_7_0_len 8
+#define reg_r_aagc_signal_level_7_0_lsb 0
+#define xd_r_reg_r_aagc_signal_level_9_8 (*(volatile byte xdata *) 0xF003)
+#define r_reg_r_aagc_signal_level_9_8 0xF003
+#define reg_r_aagc_signal_level_9_8_pos 0
+#define reg_r_aagc_signal_level_9_8_len 2
+#define reg_r_aagc_signal_level_9_8_lsb 8
+#define xd_p_reg_p_aagc_rf_if_swap (*(volatile byte xdata *) 0xF004)
+#define p_reg_p_aagc_rf_if_swap 0xF004
+#define reg_p_aagc_rf_if_swap_pos 0
+#define reg_p_aagc_rf_if_swap_len 1
+#define reg_p_aagc_rf_if_swap_lsb 0
+#define xd_p_reg_p_pwm_rf_if_from_hw (*(volatile byte xdata *) 0xF006)
+#define p_reg_p_pwm_rf_if_from_hw 0xF006
+#define reg_p_pwm_rf_if_from_hw_pos 0
+#define reg_p_pwm_rf_if_from_hw_len 1
+#define reg_p_pwm_rf_if_from_hw_lsb 0
+#define xd_p_reg_aagc_out_if_inv (*(volatile byte xdata *) 0xF007)
+#define p_reg_aagc_out_if_inv 0xF007
+#define reg_aagc_out_if_inv_pos 0
+#define reg_aagc_out_if_inv_len 1
+#define reg_aagc_out_if_inv_lsb 0
+#define xd_p_reg_aagc_int_en (*(volatile byte xdata *) 0xF008)
+#define p_reg_aagc_int_en 0xF008
+#define reg_aagc_int_en_pos 0
+#define reg_aagc_int_en_len 1
+#define reg_aagc_int_en_lsb 0
+#define xd_p_reg_aagc_lock_change_flag (*(volatile byte xdata *) 0xF009)
+#define p_reg_aagc_lock_change_flag 0xF009
+#define reg_aagc_lock_change_flag_pos 0
+#define reg_aagc_lock_change_flag_len 1
+#define reg_aagc_lock_change_flag_lsb 0
+#define xd_p_reg_aagc_rf_loop_bw_scale_acquire (*(volatile byte xdata *) 0xF00A)
+#define p_reg_aagc_rf_loop_bw_scale_acquire 0xF00A
+#define reg_aagc_rf_loop_bw_scale_acquire_pos 0
+#define reg_aagc_rf_loop_bw_scale_acquire_len 5
+#define reg_aagc_rf_loop_bw_scale_acquire_lsb 0
+#define xd_p_reg_aagc_rf_loop_bw_scale_track (*(volatile byte xdata *) 0xF00B)
+#define p_reg_aagc_rf_loop_bw_scale_track 0xF00B
+#define reg_aagc_rf_loop_bw_scale_track_pos 0
+#define reg_aagc_rf_loop_bw_scale_track_len 5
+#define reg_aagc_rf_loop_bw_scale_track_lsb 0
+#define xd_p_reg_aagc_if_loop_bw_scale_acquire (*(volatile byte xdata *) 0xF00C)
+#define p_reg_aagc_if_loop_bw_scale_acquire 0xF00C
+#define reg_aagc_if_loop_bw_scale_acquire_pos 0
+#define reg_aagc_if_loop_bw_scale_acquire_len 5
+#define reg_aagc_if_loop_bw_scale_acquire_lsb 0
+#define xd_p_reg_aagc_if_loop_bw_scale_track (*(volatile byte xdata *) 0xF00D)
+#define p_reg_aagc_if_loop_bw_scale_track 0xF00D
+#define reg_aagc_if_loop_bw_scale_track_pos 0
+#define reg_aagc_if_loop_bw_scale_track_len 5
+#define reg_aagc_if_loop_bw_scale_track_lsb 0
+#define xd_p_reg_aagc_max_rf_agc_7_0 (*(volatile byte xdata *) 0xF00E)
+#define p_reg_aagc_max_rf_agc_7_0 0xF00E
+#define reg_aagc_max_rf_agc_7_0_pos 0
+#define reg_aagc_max_rf_agc_7_0_len 8
+#define reg_aagc_max_rf_agc_7_0_lsb 0
+#define xd_p_reg_aagc_max_rf_agc_9_8 (*(volatile byte xdata *) 0xF00F)
+#define p_reg_aagc_max_rf_agc_9_8 0xF00F
+#define reg_aagc_max_rf_agc_9_8_pos 0
+#define reg_aagc_max_rf_agc_9_8_len 2
+#define reg_aagc_max_rf_agc_9_8_lsb 8
+#define xd_p_reg_aagc_min_rf_agc_7_0 (*(volatile byte xdata *) 0xF010)
+#define p_reg_aagc_min_rf_agc_7_0 0xF010
+#define reg_aagc_min_rf_agc_7_0_pos 0
+#define reg_aagc_min_rf_agc_7_0_len 8
+#define reg_aagc_min_rf_agc_7_0_lsb 0
+#define xd_p_reg_aagc_min_rf_agc_9_8 (*(volatile byte xdata *) 0xF011)
+#define p_reg_aagc_min_rf_agc_9_8 0xF011
+#define reg_aagc_min_rf_agc_9_8_pos 0
+#define reg_aagc_min_rf_agc_9_8_len 2
+#define reg_aagc_min_rf_agc_9_8_lsb 8
+#define xd_p_reg_aagc_max_if_agc_7_0 (*(volatile byte xdata *) 0xF012)
+#define p_reg_aagc_max_if_agc_7_0 0xF012
+#define reg_aagc_max_if_agc_7_0_pos 0
+#define reg_aagc_max_if_agc_7_0_len 8
+#define reg_aagc_max_if_agc_7_0_lsb 0
+#define xd_p_reg_aagc_max_if_agc_9_8 (*(volatile byte xdata *) 0xF013)
+#define p_reg_aagc_max_if_agc_9_8 0xF013
+#define reg_aagc_max_if_agc_9_8_pos 0
+#define reg_aagc_max_if_agc_9_8_len 2
+#define reg_aagc_max_if_agc_9_8_lsb 8
+#define xd_p_reg_aagc_min_if_agc_7_0 (*(volatile byte xdata *) 0xF014)
+#define p_reg_aagc_min_if_agc_7_0 0xF014
+#define reg_aagc_min_if_agc_7_0_pos 0
+#define reg_aagc_min_if_agc_7_0_len 8
+#define reg_aagc_min_if_agc_7_0_lsb 0
+#define xd_p_reg_aagc_min_if_agc_9_8 (*(volatile byte xdata *) 0xF015)
+#define p_reg_aagc_min_if_agc_9_8 0xF015
+#define reg_aagc_min_if_agc_9_8_pos 0
+#define reg_aagc_min_if_agc_9_8_len 2
+#define reg_aagc_min_if_agc_9_8_lsb 8
+#define xd_p_reg_aagc_lock_sample_scale (*(volatile byte xdata *) 0xF016)
+#define p_reg_aagc_lock_sample_scale 0xF016
+#define reg_aagc_lock_sample_scale_pos 0
+#define reg_aagc_lock_sample_scale_len 5
+#define reg_aagc_lock_sample_scale_lsb 0
+#define xd_p_reg_aagc_rf_agc_lock_scale_acquire (*(volatile byte xdata *) 0xF017)
+#define p_reg_aagc_rf_agc_lock_scale_acquire 0xF017
+#define reg_aagc_rf_agc_lock_scale_acquire_pos 0
+#define reg_aagc_rf_agc_lock_scale_acquire_len 3
+#define reg_aagc_rf_agc_lock_scale_acquire_lsb 0
+#define xd_p_reg_aagc_rf_agc_lock_scale_track (*(volatile byte xdata *) 0xF018)
+#define p_reg_aagc_rf_agc_lock_scale_track 0xF018
+#define reg_aagc_rf_agc_lock_scale_track_pos 0
+#define reg_aagc_rf_agc_lock_scale_track_len 3
+#define reg_aagc_rf_agc_lock_scale_track_lsb 0
+#define xd_p_reg_aagc_if_agc_lock_scale_acquire (*(volatile byte xdata *) 0xF019)
+#define p_reg_aagc_if_agc_lock_scale_acquire 0xF019
+#define reg_aagc_if_agc_lock_scale_acquire_pos 0
+#define reg_aagc_if_agc_lock_scale_acquire_len 3
+#define reg_aagc_if_agc_lock_scale_acquire_lsb 0
+#define xd_p_reg_aagc_if_agc_lock_scale_track (*(volatile byte xdata *) 0xF01A)
+#define p_reg_aagc_if_agc_lock_scale_track 0xF01A
+#define reg_aagc_if_agc_lock_scale_track_pos 0
+#define reg_aagc_if_agc_lock_scale_track_len 3
+#define reg_aagc_if_agc_lock_scale_track_lsb 0
+#define xd_p_reg_aagc_rf_top_numerator_s_7_0 (*(volatile byte xdata *) 0xF01B)
+#define p_reg_aagc_rf_top_numerator_s_7_0 0xF01B
+#define reg_aagc_rf_top_numerator_s_7_0_pos 0
+#define reg_aagc_rf_top_numerator_s_7_0_len 8
+#define reg_aagc_rf_top_numerator_s_7_0_lsb 0
+#define xd_p_reg_aagc_rf_top_numerator_s_9_8 (*(volatile byte xdata *) 0xF01C)
+#define p_reg_aagc_rf_top_numerator_s_9_8 0xF01C
+#define reg_aagc_rf_top_numerator_s_9_8_pos 0
+#define reg_aagc_rf_top_numerator_s_9_8_len 2
+#define reg_aagc_rf_top_numerator_s_9_8_lsb 8
+#define xd_p_reg_aagc_if_top_numerator_s_7_0 (*(volatile byte xdata *) 0xF01D)
+#define p_reg_aagc_if_top_numerator_s_7_0 0xF01D
+#define reg_aagc_if_top_numerator_s_7_0_pos 0
+#define reg_aagc_if_top_numerator_s_7_0_len 8
+#define reg_aagc_if_top_numerator_s_7_0_lsb 0
+#define xd_p_reg_aagc_if_top_numerator_s_9_8 (*(volatile byte xdata *) 0xF01E)
+#define p_reg_aagc_if_top_numerator_s_9_8 0xF01E
+#define reg_aagc_if_top_numerator_s_9_8_pos 0
+#define reg_aagc_if_top_numerator_s_9_8_len 2
+#define reg_aagc_if_top_numerator_s_9_8_lsb 8
+#define xd_p_reg_aagc_adc_out_desired_s_7_0 (*(volatile byte xdata *) 0xF01F)
+#define p_reg_aagc_adc_out_desired_s_7_0 0xF01F
+#define reg_aagc_adc_out_desired_s_7_0_pos 0
+#define reg_aagc_adc_out_desired_s_7_0_len 8
+#define reg_aagc_adc_out_desired_s_7_0_lsb 0
+#define xd_p_reg_aagc_adc_out_desired_s_8 (*(volatile byte xdata *) 0xF020)
+#define p_reg_aagc_adc_out_desired_s_8 0xF020
+#define reg_aagc_adc_out_desired_s_8_pos 0
+#define reg_aagc_adc_out_desired_s_8_len 1
+#define reg_aagc_adc_out_desired_s_8_lsb 8
+#define xd_p_reg_aagc_lock_count_th (*(volatile byte xdata *) 0xF021)
+#define p_reg_aagc_lock_count_th 0xF021
+#define reg_aagc_lock_count_th_pos 0
+#define reg_aagc_lock_count_th_len 4
+#define reg_aagc_lock_count_th_lsb 0
+#define xd_p_reg_aagc_rf_agc_unlock_numerator (*(volatile byte xdata *) 0xF022)
+#define p_reg_aagc_rf_agc_unlock_numerator 0xF022
+#define reg_aagc_rf_agc_unlock_numerator_pos 0
+#define reg_aagc_rf_agc_unlock_numerator_len 6
+#define reg_aagc_rf_agc_unlock_numerator_lsb 0
+#define xd_p_reg_aagc_if_agc_unlock_numerator (*(volatile byte xdata *) 0xF023)
+#define p_reg_aagc_if_agc_unlock_numerator 0xF023
+#define reg_aagc_if_agc_unlock_numerator_pos 0
+#define reg_aagc_if_agc_unlock_numerator_len 6
+#define reg_aagc_if_agc_unlock_numerator_lsb 0
+#define xd_p_reg_aagc_rf_top_numerator_m_7_0 (*(volatile byte xdata *) 0xF025)
+#define p_reg_aagc_rf_top_numerator_m_7_0 0xF025
+#define reg_aagc_rf_top_numerator_m_7_0_pos 0
+#define reg_aagc_rf_top_numerator_m_7_0_len 8
+#define reg_aagc_rf_top_numerator_m_7_0_lsb 0
+#define xd_p_reg_aagc_rf_top_numerator_m_9_8 (*(volatile byte xdata *) 0xF026)
+#define p_reg_aagc_rf_top_numerator_m_9_8 0xF026
+#define reg_aagc_rf_top_numerator_m_9_8_pos 0
+#define reg_aagc_rf_top_numerator_m_9_8_len 2
+#define reg_aagc_rf_top_numerator_m_9_8_lsb 8
+#define xd_p_reg_aagc_if_top_numerator_m_7_0 (*(volatile byte xdata *) 0xF027)
+#define p_reg_aagc_if_top_numerator_m_7_0 0xF027
+#define reg_aagc_if_top_numerator_m_7_0_pos 0
+#define reg_aagc_if_top_numerator_m_7_0_len 8
+#define reg_aagc_if_top_numerator_m_7_0_lsb 0
+#define xd_p_reg_aagc_if_top_numerator_m_9_8 (*(volatile byte xdata *) 0xF028)
+#define p_reg_aagc_if_top_numerator_m_9_8 0xF028
+#define reg_aagc_if_top_numerator_m_9_8_pos 0
+#define reg_aagc_if_top_numerator_m_9_8_len 2
+#define reg_aagc_if_top_numerator_m_9_8_lsb 8
+#define xd_p_reg_aagc_adc_out_desired_m_7_0 (*(volatile byte xdata *) 0xF029)
+#define p_reg_aagc_adc_out_desired_m_7_0 0xF029
+#define reg_aagc_adc_out_desired_m_7_0_pos 0
+#define reg_aagc_adc_out_desired_m_7_0_len 8
+#define reg_aagc_adc_out_desired_m_7_0_lsb 0
+#define xd_p_reg_aagc_adc_out_desired_m_8 (*(volatile byte xdata *) 0xF02A)
+#define p_reg_aagc_adc_out_desired_m_8 0xF02A
+#define reg_aagc_adc_out_desired_m_8_pos 0
+#define reg_aagc_adc_out_desired_m_8_len 1
+#define reg_aagc_adc_out_desired_m_8_lsb 8
+#define xd_p_reg_aagc_mobile_sel (*(volatile byte xdata *) 0xF02B)
+#define p_reg_aagc_mobile_sel 0xF02B
+#define reg_aagc_mobile_sel_pos 0
+#define reg_aagc_mobile_sel_len 1
+#define reg_aagc_mobile_sel_lsb 0
+#define xd_p_reg_aagc_top_reload (*(volatile byte xdata *) 0xF02C)
+#define p_reg_aagc_top_reload 0xF02C
+#define reg_aagc_top_reload_pos 0
+#define reg_aagc_top_reload_len 1
+#define reg_aagc_top_reload_lsb 0
+#define xd_p_reg_aagc_rf_delta_voltage_en (*(volatile byte xdata *) 0xF02D)
+#define p_reg_aagc_rf_delta_voltage_en 0xF02D
+#define reg_aagc_rf_delta_voltage_en_pos 0
+#define reg_aagc_rf_delta_voltage_en_len 1
+#define reg_aagc_rf_delta_voltage_en_lsb 0
+#define xd_p_reg_aagc_rf_voltage_inc (*(volatile byte xdata *) 0xF02E)
+#define p_reg_aagc_rf_voltage_inc 0xF02E
+#define reg_aagc_rf_voltage_inc_pos 0
+#define reg_aagc_rf_voltage_inc_len 1
+#define reg_aagc_rf_voltage_inc_lsb 0
+#define xd_p_reg_aagc_if_delta_voltage_en (*(volatile byte xdata *) 0xF02F)
+#define p_reg_aagc_if_delta_voltage_en 0xF02F
+#define reg_aagc_if_delta_voltage_en_pos 0
+#define reg_aagc_if_delta_voltage_en_len 1
+#define reg_aagc_if_delta_voltage_en_lsb 0
+#define xd_p_reg_aagc_if_voltage_inc (*(volatile byte xdata *) 0xF030)
+#define p_reg_aagc_if_voltage_inc 0xF030
+#define reg_aagc_if_voltage_inc_pos 0
+#define reg_aagc_if_voltage_inc_len 1
+#define reg_aagc_if_voltage_inc_lsb 0
+#define xd_p_reg_aagc_rf_delta_voltage_7_0 (*(volatile byte xdata *) 0xF032)
+#define p_reg_aagc_rf_delta_voltage_7_0 0xF032
+#define reg_aagc_rf_delta_voltage_7_0_pos 0
+#define reg_aagc_rf_delta_voltage_7_0_len 8
+#define reg_aagc_rf_delta_voltage_7_0_lsb 0
+#define xd_p_reg_aagc_rf_delta_voltage_15_8 (*(volatile byte xdata *) 0xF033)
+#define p_reg_aagc_rf_delta_voltage_15_8 0xF033
+#define reg_aagc_rf_delta_voltage_15_8_pos 0
+#define reg_aagc_rf_delta_voltage_15_8_len 8
+#define reg_aagc_rf_delta_voltage_15_8_lsb 8
+#define xd_p_reg_aagc_rf_delta_voltage_23_16 (*(volatile byte xdata *) 0xF034)
+#define p_reg_aagc_rf_delta_voltage_23_16 0xF034
+#define reg_aagc_rf_delta_voltage_23_16_pos 0
+#define reg_aagc_rf_delta_voltage_23_16_len 8
+#define reg_aagc_rf_delta_voltage_23_16_lsb 16
+#define xd_p_reg_aagc_rf_delta_voltage_29_24 (*(volatile byte xdata *) 0xF035)
+#define p_reg_aagc_rf_delta_voltage_29_24 0xF035
+#define reg_aagc_rf_delta_voltage_29_24_pos 0
+#define reg_aagc_rf_delta_voltage_29_24_len 6
+#define reg_aagc_rf_delta_voltage_29_24_lsb 24
+#define xd_p_reg_aagc_if_delta_voltage_7_0 (*(volatile byte xdata *) 0xF036)
+#define p_reg_aagc_if_delta_voltage_7_0 0xF036
+#define reg_aagc_if_delta_voltage_7_0_pos 0
+#define reg_aagc_if_delta_voltage_7_0_len 8
+#define reg_aagc_if_delta_voltage_7_0_lsb 0
+#define xd_p_reg_aagc_if_delta_voltage_15_8 (*(volatile byte xdata *) 0xF037)
+#define p_reg_aagc_if_delta_voltage_15_8 0xF037
+#define reg_aagc_if_delta_voltage_15_8_pos 0
+#define reg_aagc_if_delta_voltage_15_8_len 8
+#define reg_aagc_if_delta_voltage_15_8_lsb 8
+#define xd_p_reg_aagc_if_delta_voltage_23_16 (*(volatile byte xdata *) 0xF038)
+#define p_reg_aagc_if_delta_voltage_23_16 0xF038
+#define reg_aagc_if_delta_voltage_23_16_pos 0
+#define reg_aagc_if_delta_voltage_23_16_len 8
+#define reg_aagc_if_delta_voltage_23_16_lsb 16
+#define xd_p_reg_aagc_if_delta_voltage_29_24 (*(volatile byte xdata *) 0xF039)
+#define p_reg_aagc_if_delta_voltage_29_24 0xF039
+#define reg_aagc_if_delta_voltage_29_24_pos 0
+#define reg_aagc_if_delta_voltage_29_24_len 6
+#define reg_aagc_if_delta_voltage_29_24_lsb 24
+#define xd_p_reg_aagc_delta_voltage_hold_time (*(volatile byte xdata *) 0xF03A)
+#define p_reg_aagc_delta_voltage_hold_time 0xF03A
+#define reg_aagc_delta_voltage_hold_time_pos 0
+#define reg_aagc_delta_voltage_hold_time_len 8
+#define reg_aagc_delta_voltage_hold_time_lsb 0
+#define xd_p_reg_aagc_top_th_dis (*(volatile byte xdata *) 0xF041)
+#define p_reg_aagc_top_th_dis 0xF041
+#define reg_aagc_top_th_dis_pos 0
+#define reg_aagc_top_th_dis_len 1
+#define reg_aagc_top_th_dis_lsb 0
+#define xd_p_reg_p_aagc_rf_floor_dca (*(volatile byte xdata *) 0xF042)
+#define p_reg_p_aagc_rf_floor_dca 0xF042
+#define reg_p_aagc_rf_floor_dca_pos 0
+#define reg_p_aagc_rf_floor_dca_len 8
+#define reg_p_aagc_rf_floor_dca_lsb 0
+#define xd_p_reg_p_aagc_if_floor_dca (*(volatile byte xdata *) 0xF043)
+#define p_reg_p_aagc_if_floor_dca 0xF043
+#define reg_p_aagc_if_floor_dca_pos 0
+#define reg_p_aagc_if_floor_dca_len 8
+#define reg_p_aagc_if_floor_dca_lsb 0
+#define xd_p_reg_p_aagc_rf_gain_scale_dca (*(volatile byte xdata *) 0xF044)
+#define p_reg_p_aagc_rf_gain_scale_dca 0xF044
+#define reg_p_aagc_rf_gain_scale_dca_pos 0
+#define reg_p_aagc_rf_gain_scale_dca_len 3
+#define reg_p_aagc_rf_gain_scale_dca_lsb 0
+#define xd_p_reg_p_aagc_if_gain_scale_dca (*(volatile byte xdata *) 0xF045)
+#define p_reg_p_aagc_if_gain_scale_dca 0xF045
+#define reg_p_aagc_if_gain_scale_dca_pos 0
+#define reg_p_aagc_if_gain_scale_dca_len 3
+#define reg_p_aagc_if_gain_scale_dca_lsb 0
+#define xd_r_reg_r_aagc_ufl_gain (*(volatile byte xdata *) 0xF046)
+#define r_reg_r_aagc_ufl_gain 0xF046
+#define reg_r_aagc_ufl_gain_pos 0
+#define reg_r_aagc_ufl_gain_len 8
+#define reg_r_aagc_ufl_gain_lsb 0
+#define xd_p_reg_aagc_out_rf_inv (*(volatile byte xdata *) 0xF047)
+#define p_reg_aagc_out_rf_inv 0xF047
+#define reg_aagc_out_rf_inv_pos 0
+#define reg_aagc_out_rf_inv_len 1
+#define reg_aagc_out_rf_inv_lsb 0
+#define xd_p_reg_p_aagc_save_agc_control (*(volatile byte xdata *) 0xF048)
+#define p_reg_p_aagc_save_agc_control 0xF048
+#define reg_p_aagc_save_agc_control_pos 0
+#define reg_p_aagc_save_agc_control_len 1
+#define reg_p_aagc_save_agc_control_lsb 0
+#define xd_p_reg_aagc_fw_sel (*(volatile byte xdata *) 0xF049)
+#define p_reg_aagc_fw_sel 0xF049
+#define reg_aagc_fw_sel_pos 0
+#define reg_aagc_fw_sel_len 1
+#define reg_aagc_fw_sel_lsb 0
+#define xd_r_reg_r_aagc_rf_control_7_0 (*(volatile byte xdata *) 0xF04A)
+#define r_reg_r_aagc_rf_control_7_0 0xF04A
+#define reg_r_aagc_rf_control_7_0_pos 0
+#define reg_r_aagc_rf_control_7_0_len 8
+#define reg_r_aagc_rf_control_7_0_lsb 0
+#define xd_r_reg_r_aagc_rf_control_9_8 (*(volatile byte xdata *) 0xF04B)
+#define r_reg_r_aagc_rf_control_9_8 0xF04B
+#define reg_r_aagc_rf_control_9_8_pos 0
+#define reg_r_aagc_rf_control_9_8_len 2
+#define reg_r_aagc_rf_control_9_8_lsb 8
+#define xd_r_reg_r_aagc_if_control_7_0 (*(volatile byte xdata *) 0xF04C)
+#define r_reg_r_aagc_if_control_7_0 0xF04C
+#define reg_r_aagc_if_control_7_0_pos 0
+#define reg_r_aagc_if_control_7_0_len 8
+#define reg_r_aagc_if_control_7_0_lsb 0
+#define xd_r_reg_r_aagc_if_control_9_8 (*(volatile byte xdata *) 0xF04D)
+#define r_reg_r_aagc_if_control_9_8 0xF04D
+#define reg_r_aagc_if_control_9_8_pos 0
+#define reg_r_aagc_if_control_9_8_len 2
+#define reg_r_aagc_if_control_9_8_lsb 8
+#define xd_p_reg_aagc_adc_out_desired_from_fw_7_0 (*(volatile byte xdata *) 0xF04E)
+#define p_reg_aagc_adc_out_desired_from_fw_7_0 0xF04E
+#define reg_aagc_adc_out_desired_from_fw_7_0_pos 0
+#define reg_aagc_adc_out_desired_from_fw_7_0_len 8
+#define reg_aagc_adc_out_desired_from_fw_7_0_lsb 0
+#define xd_p_reg_aagc_adc_out_desired_from_fw_8 (*(volatile byte xdata *) 0xF04F)
+#define p_reg_aagc_adc_out_desired_from_fw_8 0xF04F
+#define reg_aagc_adc_out_desired_from_fw_8_pos 0
+#define reg_aagc_adc_out_desired_from_fw_8_len 1
+#define reg_aagc_adc_out_desired_from_fw_8_lsb 8
+#define xd_p_reg_aagc_init_rf_agc_7_0 (*(volatile byte xdata *) 0xF050)
+#define p_reg_aagc_init_rf_agc_7_0 0xF050
+#define reg_aagc_init_rf_agc_7_0_pos 0
+#define reg_aagc_init_rf_agc_7_0_len 8
+#define reg_aagc_init_rf_agc_7_0_lsb 0
+#define xd_p_reg_aagc_init_rf_agc_9_8 (*(volatile byte xdata *) 0xF051)
+#define p_reg_aagc_init_rf_agc_9_8 0xF051
+#define reg_aagc_init_rf_agc_9_8_pos 0
+#define reg_aagc_init_rf_agc_9_8_len 2
+#define reg_aagc_init_rf_agc_9_8_lsb 8
+#define xd_p_reg_aagc_init_if_agc_7_0 (*(volatile byte xdata *) 0xF052)
+#define p_reg_aagc_init_if_agc_7_0 0xF052
+#define reg_aagc_init_if_agc_7_0_pos 0
+#define reg_aagc_init_if_agc_7_0_len 8
+#define reg_aagc_init_if_agc_7_0_lsb 0
+#define xd_p_reg_aagc_init_if_agc_9_8 (*(volatile byte xdata *) 0xF053)
+#define p_reg_aagc_init_if_agc_9_8 0xF053
+#define reg_aagc_init_if_agc_9_8_pos 0
+#define reg_aagc_init_if_agc_9_8_len 2
+#define reg_aagc_init_if_agc_9_8_lsb 8
+#define xd_p_reg_p_pwm_if_high_unit_num (*(volatile byte xdata *) 0xF054)
+#define p_reg_p_pwm_if_high_unit_num 0xF054
+#define reg_p_pwm_if_high_unit_num_pos 0
+#define reg_p_pwm_if_high_unit_num_len 8
+#define reg_p_pwm_if_high_unit_num_lsb 0
+#define xd_p_reg_p_pwm_rf_high_unit_num (*(volatile byte xdata *) 0xF055)
+#define p_reg_p_pwm_rf_high_unit_num 0xF055
+#define reg_p_pwm_rf_high_unit_num_pos 0
+#define reg_p_pwm_rf_high_unit_num_len 8
+#define reg_p_pwm_rf_high_unit_num_lsb 0
+#define xd_p_reg_p_pwm_rf_gpio (*(volatile byte xdata *) 0xF058)
+#define p_reg_p_pwm_rf_gpio 0xF058
+#define reg_p_pwm_rf_gpio_pos 0
+#define reg_p_pwm_rf_gpio_len 1
+#define reg_p_pwm_rf_gpio_lsb 0
+#define xd_p_reg_p_pwm_if_gpio (*(volatile byte xdata *) 0xF058)
+#define p_reg_p_pwm_if_gpio 0xF058
+#define reg_p_pwm_if_gpio_pos 1
+#define reg_p_pwm_if_gpio_len 1
+#define reg_p_pwm_if_gpio_lsb 0
+#define xd_p_reg_aagc_in_sat_cnt_7_0 (*(volatile byte xdata *) 0xF05A)
+#define p_reg_aagc_in_sat_cnt_7_0 0xF05A
+#define reg_aagc_in_sat_cnt_7_0_pos 0
+#define reg_aagc_in_sat_cnt_7_0_len 8
+#define reg_aagc_in_sat_cnt_7_0_lsb 0
+#define xd_p_reg_aagc_in_sat_cnt_15_8 (*(volatile byte xdata *) 0xF05B)
+#define p_reg_aagc_in_sat_cnt_15_8 0xF05B
+#define reg_aagc_in_sat_cnt_15_8_pos 0
+#define reg_aagc_in_sat_cnt_15_8_len 8
+#define reg_aagc_in_sat_cnt_15_8_lsb 8
+#define xd_p_reg_aagc_in_sat_cnt_23_16 (*(volatile byte xdata *) 0xF05C)
+#define p_reg_aagc_in_sat_cnt_23_16 0xF05C
+#define reg_aagc_in_sat_cnt_23_16_pos 0
+#define reg_aagc_in_sat_cnt_23_16_len 8
+#define reg_aagc_in_sat_cnt_23_16_lsb 16
+#define xd_p_reg_aagc_in_sat_cnt_31_24 (*(volatile byte xdata *) 0xF05D)
+#define p_reg_aagc_in_sat_cnt_31_24 0xF05D
+#define reg_aagc_in_sat_cnt_31_24_pos 0
+#define reg_aagc_in_sat_cnt_31_24_len 8
+#define reg_aagc_in_sat_cnt_31_24_lsb 24
+#define xd_p_reg_p_pwm_cycle_unit (*(volatile byte xdata *) 0xF05E)
+#define p_reg_p_pwm_cycle_unit 0xF05E
+#define reg_p_pwm_cycle_unit_pos 0
+#define reg_p_pwm_cycle_unit_len 4
+#define reg_p_pwm_cycle_unit_lsb 0
+#define xd_p_reg_p_pwm_en (*(volatile byte xdata *) 0xF05F)
+#define p_reg_p_pwm_en 0xF05F
+#define reg_p_pwm_en_pos 0
+#define reg_p_pwm_en_len 1
+#define reg_p_pwm_en_lsb 0
+#define xd_r_reg_aagc_rf_gain (*(volatile byte xdata *) 0xF060)
+#define r_reg_aagc_rf_gain 0xF060
+#define reg_aagc_rf_gain_pos 0
+#define reg_aagc_rf_gain_len 8
+#define reg_aagc_rf_gain_lsb 0
+#define xd_r_reg_aagc_if_gain (*(volatile byte xdata *) 0xF061)
+#define r_reg_aagc_if_gain 0xF061
+#define reg_aagc_if_gain_pos 0
+#define reg_aagc_if_gain_len 8
+#define reg_aagc_if_gain_lsb 0
+#define xd_r_reg_aagc_current_desired_level_7_0 (*(volatile byte xdata *) 0xF062)
+#define r_reg_aagc_current_desired_level_7_0 0xF062
+#define reg_aagc_current_desired_level_7_0_pos 0
+#define reg_aagc_current_desired_level_7_0_len 8
+#define reg_aagc_current_desired_level_7_0_lsb 0
+#define xd_r_reg_aagc_current_desired_level_8 (*(volatile byte xdata *) 0xF063)
+#define r_reg_aagc_current_desired_level_8 0xF063
+#define reg_aagc_current_desired_level_8_pos 0
+#define reg_aagc_current_desired_level_8_len 1
+#define reg_aagc_current_desired_level_8_lsb 8
+#define xd_p_reg_tinr_fifo_size (*(volatile byte xdata *) 0xF064)
+#define p_reg_tinr_fifo_size 0xF064
+#define reg_tinr_fifo_size_pos 0
+#define reg_tinr_fifo_size_len 5
+#define reg_tinr_fifo_size_lsb 0
+#define xd_p_reg_tinr_saturation_th_7_0 (*(volatile byte xdata *) 0xF065)
+#define p_reg_tinr_saturation_th_7_0 0xF065
+#define reg_tinr_saturation_th_7_0_pos 0
+#define reg_tinr_saturation_th_7_0_len 8
+#define reg_tinr_saturation_th_7_0_lsb 0
+#define xd_p_reg_tinr_saturation_th_9_8 (*(volatile byte xdata *) 0xF066)
+#define p_reg_tinr_saturation_th_9_8 0xF066
+#define reg_tinr_saturation_th_9_8_pos 0
+#define reg_tinr_saturation_th_9_8_len 2
+#define reg_tinr_saturation_th_9_8_lsb 8
+#define xd_p_reg_tinr_saturation_cnt_th (*(volatile byte xdata *) 0xF067)
+#define p_reg_tinr_saturation_cnt_th 0xF067
+#define reg_tinr_saturation_cnt_th_pos 0
+#define reg_tinr_saturation_cnt_th_len 4
+#define reg_tinr_saturation_cnt_th_lsb 0
+#define xd_r_reg_tinr_counter_7_0 (*(volatile byte xdata *) 0xF068)
+#define r_reg_tinr_counter_7_0 0xF068
+#define reg_tinr_counter_7_0_pos 0
+#define reg_tinr_counter_7_0_len 8
+#define reg_tinr_counter_7_0_lsb 0
+#define xd_r_reg_tinr_counter_15_8 (*(volatile byte xdata *) 0xF069)
+#define r_reg_tinr_counter_15_8 0xF069
+#define reg_tinr_counter_15_8_pos 0
+#define reg_tinr_counter_15_8_len 8
+#define reg_tinr_counter_15_8_lsb 8
+#define xd_p_reg_tinr_counter_rst (*(volatile byte xdata *) 0xF06C)
+#define p_reg_tinr_counter_rst 0xF06C
+#define reg_tinr_counter_rst_pos 0
+#define reg_tinr_counter_rst_len 1
+#define reg_tinr_counter_rst_lsb 0
+#define xd_p_reg_tinr_ins_th_7_0 (*(volatile byte xdata *) 0xF06F)
+#define p_reg_tinr_ins_th_7_0 0xF06F
+#define reg_tinr_ins_th_7_0_pos 0
+#define reg_tinr_ins_th_7_0_len 8
+#define reg_tinr_ins_th_7_0_lsb 0
+#define xd_p_reg_tinr_ins_th_9_8 (*(volatile byte xdata *) 0xF070)
+#define p_reg_tinr_ins_th_9_8 0xF070
+#define reg_tinr_ins_th_9_8_pos 0
+#define reg_tinr_ins_th_9_8_len 2
+#define reg_tinr_ins_th_9_8_lsb 8
+#define xd_p_reg_tinr_ins_en (*(volatile byte xdata *) 0xF071)
+#define p_reg_tinr_ins_en 0xF071
+#define reg_tinr_ins_en_pos 0
+#define reg_tinr_ins_en_len 1
+#define reg_tinr_ins_en_lsb 0
+#define xd_p_reg_tinr_ins_size (*(volatile byte xdata *) 0xF072)
+#define p_reg_tinr_ins_size 0xF072
+#define reg_tinr_ins_size_pos 0
+#define reg_tinr_ins_size_len 4
+#define reg_tinr_ins_size_lsb 0
+#define xd_p_reg_tinr_ins_hnum (*(volatile byte xdata *) 0xF073)
+#define p_reg_tinr_ins_hnum 0xF073
+#define reg_tinr_ins_hnum_pos 0
+#define reg_tinr_ins_hnum_len 4
+#define reg_tinr_ins_hnum_lsb 0
+#define xd_r_reg_tinr_ins_hcnt_7_0 (*(volatile byte xdata *) 0xF074)
+#define r_reg_tinr_ins_hcnt_7_0 0xF074
+#define reg_tinr_ins_hcnt_7_0_pos 0
+#define reg_tinr_ins_hcnt_7_0_len 8
+#define reg_tinr_ins_hcnt_7_0_lsb 0
+#define xd_r_reg_tinr_ins_hcnt_15_8 (*(volatile byte xdata *) 0xF075)
+#define r_reg_tinr_ins_hcnt_15_8 0xF075
+#define reg_tinr_ins_hcnt_15_8_pos 0
+#define reg_tinr_ins_hcnt_15_8_len 8
+#define reg_tinr_ins_hcnt_15_8_lsb 8
+#define xd_p_reg_tinr_in_conj (*(volatile byte xdata *) 0xF076)
+#define p_reg_tinr_in_conj 0xF076
+#define reg_tinr_in_conj_pos 0
+#define reg_tinr_in_conj_len 1
+#define reg_tinr_in_conj_lsb 0
+#define xd_p_reg_tinr_in_zero_if (*(volatile byte xdata *) 0xF077)
+#define p_reg_tinr_in_zero_if 0xF077
+#define reg_tinr_in_zero_if_pos 0
+#define reg_tinr_in_zero_if_len 2
+#define reg_tinr_in_zero_if_lsb 0
+#define xd_p_reg_tinr_in_shift (*(volatile byte xdata *) 0xF078)
+#define p_reg_tinr_in_shift 0xF078
+#define reg_tinr_in_shift_pos 0
+#define reg_tinr_in_shift_len 1
+#define reg_tinr_in_shift_lsb 0
+#define xd_p_reg_tinr_in_conj_sat_counter_rst (*(volatile byte xdata *) 0xF079)
+#define p_reg_tinr_in_conj_sat_counter_rst 0xF079
+#define reg_tinr_in_conj_sat_counter_rst_pos 0
+#define reg_tinr_in_conj_sat_counter_rst_len 1
+#define reg_tinr_in_conj_sat_counter_rst_lsb 0
+#define xd_r_reg_tinr_in_conj_sat_counter_7_0 (*(volatile byte xdata *) 0xF07A)
+#define r_reg_tinr_in_conj_sat_counter_7_0 0xF07A
+#define reg_tinr_in_conj_sat_counter_7_0_pos 0
+#define reg_tinr_in_conj_sat_counter_7_0_len 8
+#define reg_tinr_in_conj_sat_counter_7_0_lsb 0
+#define xd_r_reg_tinr_in_conj_sat_counter_14_8 (*(volatile byte xdata *) 0xF07B)
+#define r_reg_tinr_in_conj_sat_counter_14_8 0xF07B
+#define reg_tinr_in_conj_sat_counter_14_8_pos 0
+#define reg_tinr_in_conj_sat_counter_14_8_len 7
+#define reg_tinr_in_conj_sat_counter_14_8_lsb 8
+#define xd_p_reg_p_antif_en (*(volatile byte xdata *) 0xF07C)
+#define p_reg_p_antif_en 0xF07C
+#define reg_p_antif_en_pos 0
+#define reg_p_antif_en_len 1
+#define reg_p_antif_en_lsb 0
+#define xd_p_reg_p_antif_rst (*(volatile byte xdata *) 0xF07D)
+#define p_reg_p_antif_rst 0xF07D
+#define reg_p_antif_rst_pos 0
+#define reg_p_antif_rst_len 1
+#define reg_p_antif_rst_lsb 0
+#define xd_p_reg_p_antif_byp (*(volatile byte xdata *) 0xF07E)
+#define p_reg_p_antif_byp 0xF07E
+#define reg_p_antif_byp_pos 0
+#define reg_p_antif_byp_len 1
+#define reg_p_antif_byp_lsb 0
+#define xd_p_reg_p_antif_mode (*(volatile byte xdata *) 0xF07F)
+#define p_reg_p_antif_mode 0xF07F
+#define reg_p_antif_mode_pos 0
+#define reg_p_antif_mode_len 1
+#define reg_p_antif_mode_lsb 0
+#define xd_p_reg_p_ds_byp (*(volatile byte xdata *) 0xF080)
+#define p_reg_p_ds_byp 0xF080
+#define reg_p_ds_byp_pos 0
+#define reg_p_ds_byp_len 1
+#define reg_p_ds_byp_lsb 0
+#define xd_p_reg_p_antif_dagc5_mode (*(volatile byte xdata *) 0xF081)
+#define p_reg_p_antif_dagc5_mode 0xF081
+#define reg_p_antif_dagc5_mode_pos 0
+#define reg_p_antif_dagc5_mode_len 2
+#define reg_p_antif_dagc5_mode_lsb 0
+#define xd_p_reg_p_antif_dagc5_desired_level_7_0 (*(volatile byte xdata *) 0xF082)
+#define p_reg_p_antif_dagc5_desired_level_7_0 0xF082
+#define reg_p_antif_dagc5_desired_level_7_0_pos 0
+#define reg_p_antif_dagc5_desired_level_7_0_len 8
+#define reg_p_antif_dagc5_desired_level_7_0_lsb 0
+#define xd_p_reg_p_antif_dagc5_desired_level_8 (*(volatile byte xdata *) 0xF083)
+#define p_reg_p_antif_dagc5_desired_level_8 0xF083
+#define reg_p_antif_dagc5_desired_level_8_pos 0
+#define reg_p_antif_dagc5_desired_level_8_len 1
+#define reg_p_antif_dagc5_desired_level_8_lsb 8
+#define xd_p_reg_p_antif_dagc5_apply_delay (*(volatile byte xdata *) 0xF084)
+#define p_reg_p_antif_dagc5_apply_delay 0xF084
+#define reg_p_antif_dagc5_apply_delay_pos 0
+#define reg_p_antif_dagc5_apply_delay_len 7
+#define reg_p_antif_dagc5_apply_delay_lsb 0
+#define xd_p_reg_p_antif_dagc5_fixed_gain_7_0 (*(volatile byte xdata *) 0xF085)
+#define p_reg_p_antif_dagc5_fixed_gain_7_0 0xF085
+#define reg_p_antif_dagc5_fixed_gain_7_0_pos 0
+#define reg_p_antif_dagc5_fixed_gain_7_0_len 8
+#define reg_p_antif_dagc5_fixed_gain_7_0_lsb 0
+#define xd_p_reg_p_antif_dagc5_fixed_gain_11_8 (*(volatile byte xdata *) 0xF086)
+#define p_reg_p_antif_dagc5_fixed_gain_11_8 0xF086
+#define reg_p_antif_dagc5_fixed_gain_11_8_pos 0
+#define reg_p_antif_dagc5_fixed_gain_11_8_len 4
+#define reg_p_antif_dagc5_fixed_gain_11_8_lsb 8
+#define xd_p_reg_p_antif_dagc5_use_despow (*(volatile byte xdata *) 0xF087)
+#define p_reg_p_antif_dagc5_use_despow 0xF087
+#define reg_p_antif_dagc5_use_despow_pos 0
+#define reg_p_antif_dagc5_use_despow_len 1
+#define reg_p_antif_dagc5_use_despow_lsb 0
+#define xd_p_reg_p_antif_dagc5_log_2_accumulate_num (*(volatile byte xdata *) 0xF088)
+#define p_reg_p_antif_dagc5_log_2_accumulate_num 0xF088
+#define reg_p_antif_dagc5_log_2_accumulate_num_pos 0
+#define reg_p_antif_dagc5_log_2_accumulate_num_len 5
+#define reg_p_antif_dagc5_log_2_accumulate_num_lsb 0
+#define xd_p_reg_p_antif_dagc5_in_sat_cnt_7_0 (*(volatile byte xdata *) 0xF089)
+#define p_reg_p_antif_dagc5_in_sat_cnt_7_0 0xF089
+#define reg_p_antif_dagc5_in_sat_cnt_7_0_pos 0
+#define reg_p_antif_dagc5_in_sat_cnt_7_0_len 8
+#define reg_p_antif_dagc5_in_sat_cnt_7_0_lsb 0
+#define xd_p_reg_p_antif_dagc5_in_sat_cnt_15_8 (*(volatile byte xdata *) 0xF08A)
+#define p_reg_p_antif_dagc5_in_sat_cnt_15_8 0xF08A
+#define reg_p_antif_dagc5_in_sat_cnt_15_8_pos 0
+#define reg_p_antif_dagc5_in_sat_cnt_15_8_len 8
+#define reg_p_antif_dagc5_in_sat_cnt_15_8_lsb 8
+#define xd_p_reg_p_antif_dagc5_in_sat_cnt_23_16 (*(volatile byte xdata *) 0xF08B)
+#define p_reg_p_antif_dagc5_in_sat_cnt_23_16 0xF08B
+#define reg_p_antif_dagc5_in_sat_cnt_23_16_pos 0
+#define reg_p_antif_dagc5_in_sat_cnt_23_16_len 8
+#define reg_p_antif_dagc5_in_sat_cnt_23_16_lsb 16
+#define xd_p_reg_p_antif_dagc5_in_sat_cnt_31_24 (*(volatile byte xdata *) 0xF08C)
+#define p_reg_p_antif_dagc5_in_sat_cnt_31_24 0xF08C
+#define reg_p_antif_dagc5_in_sat_cnt_31_24_pos 0
+#define reg_p_antif_dagc5_in_sat_cnt_31_24_len 8
+#define reg_p_antif_dagc5_in_sat_cnt_31_24_lsb 24
+#define xd_p_reg_p_antif_dagc5_out_sat_cnt_7_0 (*(volatile byte xdata *) 0xF08D)
+#define p_reg_p_antif_dagc5_out_sat_cnt_7_0 0xF08D
+#define reg_p_antif_dagc5_out_sat_cnt_7_0_pos 0
+#define reg_p_antif_dagc5_out_sat_cnt_7_0_len 8
+#define reg_p_antif_dagc5_out_sat_cnt_7_0_lsb 0
+#define xd_p_reg_p_antif_dagc5_out_sat_cnt_15_8 (*(volatile byte xdata *) 0xF08E)
+#define p_reg_p_antif_dagc5_out_sat_cnt_15_8 0xF08E
+#define reg_p_antif_dagc5_out_sat_cnt_15_8_pos 0
+#define reg_p_antif_dagc5_out_sat_cnt_15_8_len 8
+#define reg_p_antif_dagc5_out_sat_cnt_15_8_lsb 8
+#define xd_p_reg_p_antif_dagc5_out_sat_cnt_23_16 (*(volatile byte xdata *) 0xF08F)
+#define p_reg_p_antif_dagc5_out_sat_cnt_23_16 0xF08F
+#define reg_p_antif_dagc5_out_sat_cnt_23_16_pos 0
+#define reg_p_antif_dagc5_out_sat_cnt_23_16_len 8
+#define reg_p_antif_dagc5_out_sat_cnt_23_16_lsb 16
+#define xd_p_reg_p_antif_dagc5_out_sat_cnt_31_24 (*(volatile byte xdata *) 0xF090)
+#define p_reg_p_antif_dagc5_out_sat_cnt_31_24 0xF090
+#define reg_p_antif_dagc5_out_sat_cnt_31_24_pos 0
+#define reg_p_antif_dagc5_out_sat_cnt_31_24_len 8
+#define reg_p_antif_dagc5_out_sat_cnt_31_24_lsb 24
+#define xd_p_reg_p_antif_dagc5_rst (*(volatile byte xdata *) 0xF091)
+#define p_reg_p_antif_dagc5_rst 0xF091
+#define reg_p_antif_dagc5_rst_pos 0
+#define reg_p_antif_dagc5_rst_len 1
+#define reg_p_antif_dagc5_rst_lsb 0
+#define xd_p_reg_p_antif_dagc5_en (*(volatile byte xdata *) 0xF092)
+#define p_reg_p_antif_dagc5_en 0xF092
+#define reg_p_antif_dagc5_en_pos 0
+#define reg_p_antif_dagc5_en_len 1
+#define reg_p_antif_dagc5_en_lsb 0
+#define xd_p_reg_p_antif_sc_mode (*(volatile byte xdata *) 0xF093)
+#define p_reg_p_antif_sc_mode 0xF093
+#define reg_p_antif_sc_mode_pos 0
+#define reg_p_antif_sc_mode_len 4
+#define reg_p_antif_sc_mode_lsb 0
+#define xd_p_reg_p_antif_dagc5_done (*(volatile byte xdata *) 0xF094)
+#define p_reg_p_antif_dagc5_done 0xF094
+#define reg_p_antif_dagc5_done_pos 0
+#define reg_p_antif_dagc5_done_len 1
+#define reg_p_antif_dagc5_done_lsb 0
+#define xd_r_reg_r_antif_sc_7_0 (*(volatile byte xdata *) 0xF095)
+#define r_reg_r_antif_sc_7_0 0xF095
+#define reg_r_antif_sc_7_0_pos 0
+#define reg_r_antif_sc_7_0_len 8
+#define reg_r_antif_sc_7_0_lsb 0
+#define xd_r_reg_r_antif_sc_15_8 (*(volatile byte xdata *) 0xF096)
+#define r_reg_r_antif_sc_15_8 0xF096
+#define reg_r_antif_sc_15_8_pos 0
+#define reg_r_antif_sc_15_8_len 8
+#define reg_r_antif_sc_15_8_lsb 8
+#define xd_r_reg_r_antif_dagc5_multiplier_7_0 (*(volatile byte xdata *) 0xF097)
+#define r_reg_r_antif_dagc5_multiplier_7_0 0xF097
+#define reg_r_antif_dagc5_multiplier_7_0_pos 0
+#define reg_r_antif_dagc5_multiplier_7_0_len 8
+#define reg_r_antif_dagc5_multiplier_7_0_lsb 0
+#define xd_r_reg_r_antif_dagc5_multiplier_15_8 (*(volatile byte xdata *) 0xF098)
+#define r_reg_r_antif_dagc5_multiplier_15_8 0xF098
+#define reg_r_antif_dagc5_multiplier_15_8_pos 0
+#define reg_r_antif_dagc5_multiplier_15_8_len 8
+#define reg_r_antif_dagc5_multiplier_15_8_lsb 8
+#define xd_r_reg_r_antif_dagc5_right_shift_bits (*(volatile byte xdata *) 0xF099)
+#define r_reg_r_antif_dagc5_right_shift_bits 0xF099
+#define reg_r_antif_dagc5_right_shift_bits_pos 0
+#define reg_r_antif_dagc5_right_shift_bits_len 4
+#define reg_r_antif_dagc5_right_shift_bits_lsb 0
+#define xd_p_reg_p_antif_dagc5_bypass_scale_ctl (*(volatile byte xdata *) 0xF09A)
+#define p_reg_p_antif_dagc5_bypass_scale_ctl 0xF09A
+#define reg_p_antif_dagc5_bypass_scale_ctl_pos 0
+#define reg_p_antif_dagc5_bypass_scale_ctl_len 3
+#define reg_p_antif_dagc5_bypass_scale_ctl_lsb 0
+#define xd_p_reg_mccid_ccirunno_7_0 (*(volatile byte xdata *) 0xF09B)
+#define p_reg_mccid_ccirunno_7_0 0xF09B
+#define reg_mccid_ccirunno_7_0_pos 0
+#define reg_mccid_ccirunno_7_0_len 8
+#define reg_mccid_ccirunno_7_0_lsb 0
+#define xd_p_reg_mccid_ccirunno_8 (*(volatile byte xdata *) 0xF09C)
+#define p_reg_mccid_ccirunno_8 0xF09C
+#define reg_mccid_ccirunno_8_pos 0
+#define reg_mccid_ccirunno_8_len 1
+#define reg_mccid_ccirunno_8_lsb 8
+#define xd_p_reg_mccid_acirunno_7_0 (*(volatile byte xdata *) 0xF09D)
+#define p_reg_mccid_acirunno_7_0 0xF09D
+#define reg_mccid_acirunno_7_0_pos 0
+#define reg_mccid_acirunno_7_0_len 8
+#define reg_mccid_acirunno_7_0_lsb 0
+#define xd_p_reg_mccid_acirunno_8 (*(volatile byte xdata *) 0xF09E)
+#define p_reg_mccid_acirunno_8 0xF09E
+#define reg_mccid_acirunno_8_pos 0
+#define reg_mccid_acirunno_8_len 1
+#define reg_mccid_acirunno_8_lsb 8
+#define xd_p_reg_mccid_maxtonenearrange_7_0 (*(volatile byte xdata *) 0xF09F)
+#define p_reg_mccid_maxtonenearrange_7_0 0xF09F
+#define reg_mccid_maxtonenearrange_7_0_pos 0
+#define reg_mccid_maxtonenearrange_7_0_len 8
+#define reg_mccid_maxtonenearrange_7_0_lsb 0
+#define xd_p_reg_mccid_maxtonenearrange_8 (*(volatile byte xdata *) 0xF0A0)
+#define p_reg_mccid_maxtonenearrange_8 0xF0A0
+#define reg_mccid_maxtonenearrange_8_pos 0
+#define reg_mccid_maxtonenearrange_8_len 1
+#define reg_mccid_maxtonenearrange_8_lsb 8
+#define xd_r_reg_mccid_maxacipower_7_0 (*(volatile byte xdata *) 0xF0A1)
+#define r_reg_mccid_maxacipower_7_0 0xF0A1
+#define reg_mccid_maxacipower_7_0_pos 0
+#define reg_mccid_maxacipower_7_0_len 8
+#define reg_mccid_maxacipower_7_0_lsb 0
+#define xd_r_reg_mccid_maxacipower_15_8 (*(volatile byte xdata *) 0xF0A2)
+#define r_reg_mccid_maxacipower_15_8 0xF0A2
+#define reg_mccid_maxacipower_15_8_pos 0
+#define reg_mccid_maxacipower_15_8_len 8
+#define reg_mccid_maxacipower_15_8_lsb 8
+#define xd_r_reg_mccid_maxacipower_19_16 (*(volatile byte xdata *) 0xF0A3)
+#define r_reg_mccid_maxacipower_19_16 0xF0A3
+#define reg_mccid_maxacipower_19_16_pos 0
+#define reg_mccid_maxacipower_19_16_len 4
+#define reg_mccid_maxacipower_19_16_lsb 16
+#define xd_p_reg_p_dcoe_en (*(volatile byte xdata *) 0xF0D5)
+#define p_reg_p_dcoe_en 0xF0D5
+#define reg_p_dcoe_en_pos 0
+#define reg_p_dcoe_en_len 1
+#define reg_p_dcoe_en_lsb 0
+#define xd_p_reg_p_dcoe_rst (*(volatile byte xdata *) 0xF0D6)
+#define p_reg_p_dcoe_rst 0xF0D6
+#define reg_p_dcoe_rst_pos 0
+#define reg_p_dcoe_rst_len 1
+#define reg_p_dcoe_rst_lsb 0
+#define xd_p_reg_p_dcoe_clear (*(volatile byte xdata *) 0xF0D7)
+#define p_reg_p_dcoe_clear 0xF0D7
+#define reg_p_dcoe_clear_pos 0
+#define reg_p_dcoe_clear_len 1
+#define reg_p_dcoe_clear_lsb 0
+#define xd_p_reg_p_dcoe_applyloc_7_0 (*(volatile byte xdata *) 0xF0D8)
+#define p_reg_p_dcoe_applyloc_7_0 0xF0D8
+#define reg_p_dcoe_applyloc_7_0_pos 0
+#define reg_p_dcoe_applyloc_7_0_len 8
+#define reg_p_dcoe_applyloc_7_0_lsb 0
+#define xd_p_reg_p_dcoe_applyloc_12_8 (*(volatile byte xdata *) 0xF0D9)
+#define p_reg_p_dcoe_applyloc_12_8 0xF0D9
+#define reg_p_dcoe_applyloc_12_8_pos 0
+#define reg_p_dcoe_applyloc_12_8_len 5
+#define reg_p_dcoe_applyloc_12_8_lsb 8
+#define xd_p_reg_p_dcoe_accnums (*(volatile byte xdata *) 0xF0DA)
+#define p_reg_p_dcoe_accnums 0xF0DA
+#define reg_p_dcoe_accnums_pos 0
+#define reg_p_dcoe_accnums_len 3
+#define reg_p_dcoe_accnums_lsb 0
+#define xd_p_reg_p_dcoe_accweightsum_sh (*(volatile byte xdata *) 0xF0DB)
+#define p_reg_p_dcoe_accweightsum_sh 0xF0DB
+#define reg_p_dcoe_accweightsum_sh_pos 0
+#define reg_p_dcoe_accweightsum_sh_len 3
+#define reg_p_dcoe_accweightsum_sh_lsb 0
+#define xd_p_reg_p_dcoe_accweightcurr (*(volatile byte xdata *) 0xF0DC)
+#define p_reg_p_dcoe_accweightcurr 0xF0DC
+#define reg_p_dcoe_accweightcurr_pos 0
+#define reg_p_dcoe_accweightcurr_len 8
+#define reg_p_dcoe_accweightcurr_lsb 0
+#define xd_p_reg_dcoe_apply_rd (*(volatile byte xdata *) 0xF0DF)
+#define p_reg_dcoe_apply_rd 0xF0DF
+#define reg_dcoe_apply_rd_pos 0
+#define reg_dcoe_apply_rd_len 1
+#define reg_dcoe_apply_rd_lsb 0
+#define xd_r_reg_dcoe_apply_i (*(volatile byte xdata *) 0xF0E0)
+#define r_reg_dcoe_apply_i 0xF0E0
+#define reg_dcoe_apply_i_pos 0
+#define reg_dcoe_apply_i_len 8
+#define reg_dcoe_apply_i_lsb 0
+#define xd_r_reg_dcoe_apply_q (*(volatile byte xdata *) 0xF0E1)
+#define r_reg_dcoe_apply_q 0xF0E1
+#define reg_dcoe_apply_q_pos 0
+#define reg_dcoe_apply_q_len 8
+#define reg_dcoe_apply_q_lsb 0
+#define xd_p_reg_p_dcrm_en (*(volatile byte xdata *) 0xF0E2)
+#define p_reg_p_dcrm_en 0xF0E2
+#define reg_p_dcrm_en_pos 0
+#define reg_p_dcrm_en_len 1
+#define reg_p_dcrm_en_lsb 0
+#define xd_p_reg_p_dcrm_fir (*(volatile byte xdata *) 0xF0E3)
+#define p_reg_p_dcrm_fir 0xF0E3
+#define reg_p_dcrm_fir_pos 0
+#define reg_p_dcrm_fir_len 1
+#define reg_p_dcrm_fir_lsb 0
+#define xd_p_reg_p_dcrm_log2_firlen (*(volatile byte xdata *) 0xF0E4)
+#define p_reg_p_dcrm_log2_firlen 0xF0E4
+#define reg_p_dcrm_log2_firlen_pos 0
+#define reg_p_dcrm_log2_firlen_len 3
+#define reg_p_dcrm_log2_firlen_lsb 0
+#define xd_r_reg_dcoe_apply_fir_i (*(volatile byte xdata *) 0xF0E5)
+#define r_reg_dcoe_apply_fir_i 0xF0E5
+#define reg_dcoe_apply_fir_i_pos 0
+#define reg_dcoe_apply_fir_i_len 8
+#define reg_dcoe_apply_fir_i_lsb 0
+#define xd_r_reg_dcoe_apply_fir_q (*(volatile byte xdata *) 0xF0E6)
+#define r_reg_dcoe_apply_fir_q 0xF0E6
+#define reg_dcoe_apply_fir_q_pos 0
+#define reg_dcoe_apply_fir_q_len 8
+#define reg_dcoe_apply_fir_q_lsb 0
+#define xd_p_reg_p_dcrm_force_en (*(volatile byte xdata *) 0xF0E7)
+#define p_reg_p_dcrm_force_en 0xF0E7
+#define reg_p_dcrm_force_en_pos 0
+#define reg_p_dcrm_force_en_len 1
+#define reg_p_dcrm_force_en_lsb 0
+#define xd_p_reg_p_dcrm_force_value_i (*(volatile byte xdata *) 0xF0E8)
+#define p_reg_p_dcrm_force_value_i 0xF0E8
+#define reg_p_dcrm_force_value_i_pos 0
+#define reg_p_dcrm_force_value_i_len 8
+#define reg_p_dcrm_force_value_i_lsb 0
+#define xd_p_reg_p_dcrm_force_value_q (*(volatile byte xdata *) 0xF0E9)
+#define p_reg_p_dcrm_force_value_q 0xF0E9
+#define reg_p_dcrm_force_value_q_pos 0
+#define reg_p_dcrm_force_value_q_len 8
+#define reg_p_dcrm_force_value_q_lsb 0
+#define xd_p_reg_p_iqip_en (*(volatile byte xdata *) 0xF0EA)
+#define p_reg_p_iqip_en 0xF0EA
+#define reg_p_iqip_en_pos 0
+#define reg_p_iqip_en_len 1
+#define reg_p_iqip_en_lsb 0
+#define xd_p_reg_p_iqip_rst (*(volatile byte xdata *) 0xF0EB)
+#define p_reg_p_iqip_rst 0xF0EB
+#define reg_p_iqip_rst_pos 0
+#define reg_p_iqip_rst_len 1
+#define reg_p_iqip_rst_lsb 0
+#define xd_p_reg_iqip_mu_ld (*(volatile byte xdata *) 0xF0EC)
+#define p_reg_iqip_mu_ld 0xF0EC
+#define reg_iqip_mu_ld_pos 0
+#define reg_iqip_mu_ld_len 1
+#define reg_iqip_mu_ld_lsb 0
+#define xd_p_reg_p_iqip_mu_7_0 (*(volatile byte xdata *) 0xF0ED)
+#define p_reg_p_iqip_mu_7_0 0xF0ED
+#define reg_p_iqip_mu_7_0_pos 0
+#define reg_p_iqip_mu_7_0_len 8
+#define reg_p_iqip_mu_7_0_lsb 0
+#define xd_p_reg_p_iqip_mu_11_8 (*(volatile byte xdata *) 0xF0EE)
+#define p_reg_p_iqip_mu_11_8 0xF0EE
+#define reg_p_iqip_mu_11_8_pos 0
+#define reg_p_iqip_mu_11_8_len 4
+#define reg_p_iqip_mu_11_8_lsb 8
+#define xd_p_reg_iqip_gs_ld (*(volatile byte xdata *) 0xF0EF)
+#define p_reg_iqip_gs_ld 0xF0EF
+#define reg_iqip_gs_ld_pos 0
+#define reg_iqip_gs_ld_len 1
+#define reg_iqip_gs_ld_lsb 0
+#define xd_p_reg_p_iqip_gsnums (*(volatile byte xdata *) 0xF0F0)
+#define p_reg_p_iqip_gsnums 0xF0F0
+#define reg_p_iqip_gsnums_pos 0
+#define reg_p_iqip_gsnums_len 4
+#define reg_p_iqip_gsnums_lsb 0
+#define xd_p_reg_p_iqip_gsites_7_0 (*(volatile byte xdata *) 0xF0F1)
+#define p_reg_p_iqip_gsites_7_0 0xF0F1
+#define reg_p_iqip_gsites_7_0_pos 0
+#define reg_p_iqip_gsites_7_0_len 8
+#define reg_p_iqip_gsites_7_0_lsb 0
+#define xd_p_reg_p_iqip_gsites_15_8 (*(volatile byte xdata *) 0xF0F2)
+#define p_reg_p_iqip_gsites_15_8 0xF0F2
+#define reg_p_iqip_gsites_15_8_pos 0
+#define reg_p_iqip_gsites_15_8_len 8
+#define reg_p_iqip_gsites_15_8_lsb 8
+#define xd_p_reg_iqip_w_ld (*(volatile byte xdata *) 0xF0F3)
+#define p_reg_iqip_w_ld 0xF0F3
+#define reg_iqip_w_ld_pos 0
+#define reg_iqip_w_ld_len 1
+#define reg_iqip_w_ld_lsb 0
+#define xd_p_reg_p_iqip_w_re_7_0 (*(volatile byte xdata *) 0xF0F4)
+#define p_reg_p_iqip_w_re_7_0 0xF0F4
+#define reg_p_iqip_w_re_7_0_pos 0
+#define reg_p_iqip_w_re_7_0_len 8
+#define reg_p_iqip_w_re_7_0_lsb 0
+#define xd_p_reg_p_iqip_w_re_15_8 (*(volatile byte xdata *) 0xF0F5)
+#define p_reg_p_iqip_w_re_15_8 0xF0F5
+#define reg_p_iqip_w_re_15_8_pos 0
+#define reg_p_iqip_w_re_15_8_len 8
+#define reg_p_iqip_w_re_15_8_lsb 8
+#define xd_p_reg_p_iqip_w_re_16 (*(volatile byte xdata *) 0xF0F6)
+#define p_reg_p_iqip_w_re_16 0xF0F6
+#define reg_p_iqip_w_re_16_pos 0
+#define reg_p_iqip_w_re_16_len 1
+#define reg_p_iqip_w_re_16_lsb 16
+#define xd_p_reg_p_iqip_w_im_7_0 (*(volatile byte xdata *) 0xF0F7)
+#define p_reg_p_iqip_w_im_7_0 0xF0F7
+#define reg_p_iqip_w_im_7_0_pos 0
+#define reg_p_iqip_w_im_7_0_len 8
+#define reg_p_iqip_w_im_7_0_lsb 0
+#define xd_p_reg_p_iqip_w_im_15_8 (*(volatile byte xdata *) 0xF0F8)
+#define p_reg_p_iqip_w_im_15_8 0xF0F8
+#define reg_p_iqip_w_im_15_8_pos 0
+#define reg_p_iqip_w_im_15_8_len 8
+#define reg_p_iqip_w_im_15_8_lsb 8
+#define xd_p_reg_p_iqip_w_im_16 (*(volatile byte xdata *) 0xF0F9)
+#define p_reg_p_iqip_w_im_16 0xF0F9
+#define reg_p_iqip_w_im_16_pos 0
+#define reg_p_iqip_w_im_16_len 1
+#define reg_p_iqip_w_im_16_lsb 16
+#define xd_p_reg_iqip_accnums_rd (*(volatile byte xdata *) 0xF0FA)
+#define p_reg_iqip_accnums_rd 0xF0FA
+#define reg_iqip_accnums_rd_pos 0
+#define reg_iqip_accnums_rd_len 1
+#define reg_iqip_accnums_rd_lsb 0
+#define xd_p_reg_p_iqip_accnums (*(volatile byte xdata *) 0xF0FB)
+#define p_reg_p_iqip_accnums 0xF0FB
+#define reg_p_iqip_accnums_pos 0
+#define reg_p_iqip_accnums_len 2
+#define reg_p_iqip_accnums_lsb 0
+#define xd_p_reg_iqip_accnums_rdy (*(volatile byte xdata *) 0xF0FC)
+#define p_reg_iqip_accnums_rdy 0xF0FC
+#define reg_iqip_accnums_rdy_pos 0
+#define reg_iqip_accnums_rdy_len 1
+#define reg_iqip_accnums_rdy_lsb 0
+#define xd_r_reg_r_iqip_wacc_re_7_0 (*(volatile byte xdata *) 0xF0FD)
+#define r_reg_r_iqip_wacc_re_7_0 0xF0FD
+#define reg_r_iqip_wacc_re_7_0_pos 0
+#define reg_r_iqip_wacc_re_7_0_len 8
+#define reg_r_iqip_wacc_re_7_0_lsb 0
+#define xd_r_reg_r_iqip_wacc_re_15_8 (*(volatile byte xdata *) 0xF0FE)
+#define r_reg_r_iqip_wacc_re_15_8 0xF0FE
+#define reg_r_iqip_wacc_re_15_8_pos 0
+#define reg_r_iqip_wacc_re_15_8_len 8
+#define reg_r_iqip_wacc_re_15_8_lsb 8
+#define xd_r_reg_r_iqip_wacc_re_16 (*(volatile byte xdata *) 0xF0FF)
+#define r_reg_r_iqip_wacc_re_16 0xF0FF
+#define reg_r_iqip_wacc_re_16_pos 0
+#define reg_r_iqip_wacc_re_16_len 1
+#define reg_r_iqip_wacc_re_16_lsb 16
+#define xd_r_reg_r_iqip_wacc_im_7_0 (*(volatile byte xdata *) 0xF100)
+#define r_reg_r_iqip_wacc_im_7_0 0xF100
+#define reg_r_iqip_wacc_im_7_0_pos 0
+#define reg_r_iqip_wacc_im_7_0_len 8
+#define reg_r_iqip_wacc_im_7_0_lsb 0
+#define xd_r_reg_r_iqip_wacc_im_15_8 (*(volatile byte xdata *) 0xF101)
+#define r_reg_r_iqip_wacc_im_15_8 0xF101
+#define reg_r_iqip_wacc_im_15_8_pos 0
+#define reg_r_iqip_wacc_im_15_8_len 8
+#define reg_r_iqip_wacc_im_15_8_lsb 8
+#define xd_r_reg_r_iqip_wacc_im_16 (*(volatile byte xdata *) 0xF102)
+#define r_reg_r_iqip_wacc_im_16 0xF102
+#define reg_r_iqip_wacc_im_16_pos 0
+#define reg_r_iqip_wacc_im_16_len 1
+#define reg_r_iqip_wacc_im_16_lsb 16
+#define xd_r_reg_r_iqip_out2cacc_re_7_0 (*(volatile byte xdata *) 0xF103)
+#define r_reg_r_iqip_out2cacc_re_7_0 0xF103
+#define reg_r_iqip_out2cacc_re_7_0_pos 0
+#define reg_r_iqip_out2cacc_re_7_0_len 8
+#define reg_r_iqip_out2cacc_re_7_0_lsb 0
+#define xd_r_reg_r_iqip_out2cacc_re_15_8 (*(volatile byte xdata *) 0xF104)
+#define r_reg_r_iqip_out2cacc_re_15_8 0xF104
+#define reg_r_iqip_out2cacc_re_15_8_pos 0
+#define reg_r_iqip_out2cacc_re_15_8_len 8
+#define reg_r_iqip_out2cacc_re_15_8_lsb 8
+#define xd_r_reg_r_iqip_out2cacc_re_21_16 (*(volatile byte xdata *) 0xF105)
+#define r_reg_r_iqip_out2cacc_re_21_16 0xF105
+#define reg_r_iqip_out2cacc_re_21_16_pos 0
+#define reg_r_iqip_out2cacc_re_21_16_len 6
+#define reg_r_iqip_out2cacc_re_21_16_lsb 16
+#define xd_r_reg_r_iqip_out2cacc_im_7_0 (*(volatile byte xdata *) 0xF106)
+#define r_reg_r_iqip_out2cacc_im_7_0 0xF106
+#define reg_r_iqip_out2cacc_im_7_0_pos 0
+#define reg_r_iqip_out2cacc_im_7_0_len 8
+#define reg_r_iqip_out2cacc_im_7_0_lsb 0
+#define xd_r_reg_r_iqip_out2cacc_im_15_8 (*(volatile byte xdata *) 0xF107)
+#define r_reg_r_iqip_out2cacc_im_15_8 0xF107
+#define reg_r_iqip_out2cacc_im_15_8_pos 0
+#define reg_r_iqip_out2cacc_im_15_8_len 8
+#define reg_r_iqip_out2cacc_im_15_8_lsb 8
+#define xd_r_reg_r_iqip_out2cacc_im_21_16 (*(volatile byte xdata *) 0xF108)
+#define r_reg_r_iqip_out2cacc_im_21_16 0xF108
+#define reg_r_iqip_out2cacc_im_21_16_pos 0
+#define reg_r_iqip_out2cacc_im_21_16_len 6
+#define reg_r_iqip_out2cacc_im_21_16_lsb 16
+#define xd_p_reg_mccid_ccif0_scstrobe (*(volatile byte xdata *) 0xF109)
+#define p_reg_mccid_ccif0_scstrobe 0xF109
+#define reg_mccid_ccif0_scstrobe_pos 0
+#define reg_mccid_ccif0_scstrobe_len 7
+#define reg_mccid_ccif0_scstrobe_lsb 0
+#define xd_p_reg_mccid_cciftrigger (*(volatile byte xdata *) 0xF10A)
+#define p_reg_mccid_cciftrigger 0xF10A
+#define reg_mccid_cciftrigger_pos 0
+#define reg_mccid_cciftrigger_len 1
+#define reg_mccid_cciftrigger_lsb 0
+#define xd_p_reg_mccid_ccif1_scstrobe (*(volatile byte xdata *) 0xF10B)
+#define p_reg_mccid_ccif1_scstrobe 0xF10B
+#define reg_mccid_ccif1_scstrobe_pos 0
+#define reg_mccid_ccif1_scstrobe_len 7
+#define reg_mccid_ccif1_scstrobe_lsb 0
+#define xd_p_reg_mccid_ccif0_fcwccif_7_0 (*(volatile byte xdata *) 0xF10E)
+#define p_reg_mccid_ccif0_fcwccif_7_0 0xF10E
+#define reg_mccid_ccif0_fcwccif_7_0_pos 0
+#define reg_mccid_ccif0_fcwccif_7_0_len 8
+#define reg_mccid_ccif0_fcwccif_7_0_lsb 0
+#define xd_p_reg_mccid_ccif0_fcwccif_13_8 (*(volatile byte xdata *) 0xF10F)
+#define p_reg_mccid_ccif0_fcwccif_13_8 0xF10F
+#define reg_mccid_ccif0_fcwccif_13_8_pos 0
+#define reg_mccid_ccif0_fcwccif_13_8_len 6
+#define reg_mccid_ccif0_fcwccif_13_8_lsb 8
+#define xd_p_reg_mccid_ccif0_state (*(volatile byte xdata *) 0xF110)
+#define p_reg_mccid_ccif0_state 0xF110
+#define reg_mccid_ccif0_state_pos 0
+#define reg_mccid_ccif0_state_len 1
+#define reg_mccid_ccif0_state_lsb 0
+#define xd_p_reg_mccid_ccif0_acistate (*(volatile byte xdata *) 0xF111)
+#define p_reg_mccid_ccif0_acistate 0xF111
+#define reg_mccid_ccif0_acistate_pos 0
+#define reg_mccid_ccif0_acistate_len 1
+#define reg_mccid_ccif0_acistate_lsb 0
+#define xd_p_reg_mccid_ccif1_fcwccif_7_0 (*(volatile byte xdata *) 0xF112)
+#define p_reg_mccid_ccif1_fcwccif_7_0 0xF112
+#define reg_mccid_ccif1_fcwccif_7_0_pos 0
+#define reg_mccid_ccif1_fcwccif_7_0_len 8
+#define reg_mccid_ccif1_fcwccif_7_0_lsb 0
+#define xd_p_reg_mccid_ccif1_fcwccif_13_8 (*(volatile byte xdata *) 0xF113)
+#define p_reg_mccid_ccif1_fcwccif_13_8 0xF113
+#define reg_mccid_ccif1_fcwccif_13_8_pos 0
+#define reg_mccid_ccif1_fcwccif_13_8_len 6
+#define reg_mccid_ccif1_fcwccif_13_8_lsb 8
+#define xd_p_reg_mccid_ccif1_state (*(volatile byte xdata *) 0xF114)
+#define p_reg_mccid_ccif1_state 0xF114
+#define reg_mccid_ccif1_state_pos 0
+#define reg_mccid_ccif1_state_len 1
+#define reg_mccid_ccif1_state_lsb 0
+#define xd_p_reg_mccid_ccif1_acistate (*(volatile byte xdata *) 0xF115)
+#define p_reg_mccid_ccif1_acistate 0xF115
+#define reg_mccid_ccif1_acistate_pos 0
+#define reg_mccid_ccif1_acistate_len 1
+#define reg_mccid_ccif1_acistate_lsb 0
+#define xd_r_reg_r_acif_saturate (*(volatile byte xdata *) 0xF117)
+#define r_reg_r_acif_saturate 0xF117
+#define reg_r_acif_saturate_pos 0
+#define reg_r_acif_saturate_len 8
+#define reg_r_acif_saturate_lsb 0
+#define xd_p_reg_tmr_timer0_threshold_7_0 (*(volatile byte xdata *) 0xF118)
+#define p_reg_tmr_timer0_threshold_7_0 0xF118
+#define reg_tmr_timer0_threshold_7_0_pos 0
+#define reg_tmr_timer0_threshold_7_0_len 8
+#define reg_tmr_timer0_threshold_7_0_lsb 0
+#define xd_p_reg_tmr_timer0_threshold_15_8 (*(volatile byte xdata *) 0xF119)
+#define p_reg_tmr_timer0_threshold_15_8 0xF119
+#define reg_tmr_timer0_threshold_15_8_pos 0
+#define reg_tmr_timer0_threshold_15_8_len 8
+#define reg_tmr_timer0_threshold_15_8_lsb 8
+#define xd_p_reg_tmr_timer0_enable (*(volatile byte xdata *) 0xF11A)
+#define p_reg_tmr_timer0_enable 0xF11A
+#define reg_tmr_timer0_enable_pos 0
+#define reg_tmr_timer0_enable_len 1
+#define reg_tmr_timer0_enable_lsb 0
+#define xd_p_reg_tmr_timer0_clk_sel (*(volatile byte xdata *) 0xF11B)
+#define p_reg_tmr_timer0_clk_sel 0xF11B
+#define reg_tmr_timer0_clk_sel_pos 0
+#define reg_tmr_timer0_clk_sel_len 1
+#define reg_tmr_timer0_clk_sel_lsb 0
+#define xd_p_reg_tmr_timer0_int (*(volatile byte xdata *) 0xF11C)
+#define p_reg_tmr_timer0_int 0xF11C
+#define reg_tmr_timer0_int_pos 0
+#define reg_tmr_timer0_int_len 1
+#define reg_tmr_timer0_int_lsb 0
+#define xd_p_reg_tmr_timer0_rst (*(volatile byte xdata *) 0xF11D)
+#define p_reg_tmr_timer0_rst 0xF11D
+#define reg_tmr_timer0_rst_pos 0
+#define reg_tmr_timer0_rst_len 1
+#define reg_tmr_timer0_rst_lsb 0
+#define xd_r_reg_tmr_timer0_count_7_0 (*(volatile byte xdata *) 0xF11E)
+#define r_reg_tmr_timer0_count_7_0 0xF11E
+#define reg_tmr_timer0_count_7_0_pos 0
+#define reg_tmr_timer0_count_7_0_len 8
+#define reg_tmr_timer0_count_7_0_lsb 0
+#define xd_r_reg_tmr_timer0_count_15_8 (*(volatile byte xdata *) 0xF11F)
+#define r_reg_tmr_timer0_count_15_8 0xF11F
+#define reg_tmr_timer0_count_15_8_pos 0
+#define reg_tmr_timer0_count_15_8_len 8
+#define reg_tmr_timer0_count_15_8_lsb 8
+#define xd_p_reg_suspend (*(volatile byte xdata *) 0xF120)
+#define p_reg_suspend 0xF120
+#define reg_suspend_pos 0
+#define reg_suspend_len 1
+#define reg_suspend_lsb 0
+#define xd_p_reg_suspend_rdy (*(volatile byte xdata *) 0xF121)
+#define p_reg_suspend_rdy 0xF121
+#define reg_suspend_rdy_pos 0
+#define reg_suspend_rdy_len 1
+#define reg_suspend_rdy_lsb 0
+#define xd_p_reg_resume (*(volatile byte xdata *) 0xF122)
+#define p_reg_resume 0xF122
+#define reg_resume_pos 0
+#define reg_resume_len 1
+#define reg_resume_lsb 0
+#define xd_p_reg_resume_rdy (*(volatile byte xdata *) 0xF123)
+#define p_reg_resume_rdy 0xF123
+#define reg_resume_rdy_pos 0
+#define reg_resume_rdy_len 1
+#define reg_resume_rdy_lsb 0
+#define xd_p_reg_gp_trigger (*(volatile byte xdata *) 0xF124)
+#define p_reg_gp_trigger 0xF124
+#define reg_gp_trigger_pos 0
+#define reg_gp_trigger_len 1
+#define reg_gp_trigger_lsb 0
+#define xd_p_reg_trigger_sel (*(volatile byte xdata *) 0xF125)
+#define p_reg_trigger_sel 0xF125
+#define reg_trigger_sel_pos 0
+#define reg_trigger_sel_len 2
+#define reg_trigger_sel_lsb 0
+#define xd_p_reg_debug_ofdm (*(volatile byte xdata *) 0xF126)
+#define p_reg_debug_ofdm 0xF126
+#define reg_debug_ofdm_pos 0
+#define reg_debug_ofdm_len 2
+#define reg_debug_ofdm_lsb 0
+#define xd_p_reg_trigger_module_sel (*(volatile byte xdata *) 0xF127)
+#define p_reg_trigger_module_sel 0xF127
+#define reg_trigger_module_sel_pos 0
+#define reg_trigger_module_sel_len 6
+#define reg_trigger_module_sel_lsb 0
+#define xd_p_reg_trigger_set_sel (*(volatile byte xdata *) 0xF128)
+#define p_reg_trigger_set_sel 0xF128
+#define reg_trigger_set_sel_pos 0
+#define reg_trigger_set_sel_len 6
+#define reg_trigger_set_sel_lsb 0
+#define xd_p_reg_fw_int_mask_n (*(volatile byte xdata *) 0xF129)
+#define p_reg_fw_int_mask_n 0xF129
+#define reg_fw_int_mask_n_pos 0
+#define reg_fw_int_mask_n_len 1
+#define reg_fw_int_mask_n_lsb 0
+#define xd_p_reg_dioif_rst (*(volatile byte xdata *) 0xF12A)
+#define p_reg_dioif_rst 0xF12A
+#define reg_dioif_rst_pos 0
+#define reg_dioif_rst_len 1
+#define reg_dioif_rst_lsb 0
+#define xd_p_reg_debug_group (*(volatile byte xdata *) 0xF12B)
+#define p_reg_debug_group 0xF12B
+#define reg_debug_group_pos 0
+#define reg_debug_group_len 4
+#define reg_debug_group_lsb 0
+#define xd_p_reg_odbg_clk_sel (*(volatile byte xdata *) 0xF12C)
+#define p_reg_odbg_clk_sel 0xF12C
+#define reg_odbg_clk_sel_pos 0
+#define reg_odbg_clk_sel_len 3
+#define reg_odbg_clk_sel_lsb 0
+#define xd_p_reg_p_ccif_shift_fre (*(volatile byte xdata *) 0xF12F)
+#define p_reg_p_ccif_shift_fre 0xF12F
+#define reg_p_ccif_shift_fre_pos 0
+#define reg_p_ccif_shift_fre_len 1
+#define reg_p_ccif_shift_fre_lsb 0
+#define xd_p_reg_p_ccif_bandwidth_factor (*(volatile byte xdata *) 0xF130)
+#define p_reg_p_ccif_bandwidth_factor 0xF130
+#define reg_p_ccif_bandwidth_factor_pos 0
+#define reg_p_ccif_bandwidth_factor_len 3
+#define reg_p_ccif_bandwidth_factor_lsb 0
+#define xd_p_reg_ccif_rst (*(volatile byte xdata *) 0xF131)
+#define p_reg_ccif_rst 0xF131
+#define reg_ccif_rst_pos 0
+#define reg_ccif_rst_len 1
+#define reg_ccif_rst_lsb 0
+#define xd_p_reg_p_ccif_min_bandwidth (*(volatile byte xdata *) 0xF132)
+#define p_reg_p_ccif_min_bandwidth 0xF132
+#define reg_p_ccif_min_bandwidth_pos 0
+#define reg_p_ccif_min_bandwidth_len 7
+#define reg_p_ccif_min_bandwidth_lsb 0
+#define xd_p_reg_ccif_bq0_state (*(volatile byte xdata *) 0xF133)
+#define p_reg_ccif_bq0_state 0xF133
+#define reg_ccif_bq0_state_pos 0
+#define reg_ccif_bq0_state_len 1
+#define reg_ccif_bq0_state_lsb 0
+#define xd_p_reg_ccif_bq0_outputscaling (*(volatile byte xdata *) 0xF134)
+#define p_reg_ccif_bq0_outputscaling 0xF134
+#define reg_ccif_bq0_outputscaling_pos 0
+#define reg_ccif_bq0_outputscaling_len 5
+#define reg_ccif_bq0_outputscaling_lsb 0
+#define xd_p_reg_ccif_bq1_state (*(volatile byte xdata *) 0xF135)
+#define p_reg_ccif_bq1_state 0xF135
+#define reg_ccif_bq1_state_pos 0
+#define reg_ccif_bq1_state_len 1
+#define reg_ccif_bq1_state_lsb 0
+#define xd_p_reg_ccif_bq1_outputscaling (*(volatile byte xdata *) 0xF136)
+#define p_reg_ccif_bq1_outputscaling 0xF136
+#define reg_ccif_bq1_outputscaling_pos 0
+#define reg_ccif_bq1_outputscaling_len 5
+#define reg_ccif_bq1_outputscaling_lsb 0
+#define xd_p_reg_ccif_bq0_a1_7_0 (*(volatile byte xdata *) 0xF137)
+#define p_reg_ccif_bq0_a1_7_0 0xF137
+#define reg_ccif_bq0_a1_7_0_pos 0
+#define reg_ccif_bq0_a1_7_0_len 8
+#define reg_ccif_bq0_a1_7_0_lsb 0
+#define xd_p_reg_ccif_bq0_a1_13_8 (*(volatile byte xdata *) 0xF138)
+#define p_reg_ccif_bq0_a1_13_8 0xF138
+#define reg_ccif_bq0_a1_13_8_pos 0
+#define reg_ccif_bq0_a1_13_8_len 6
+#define reg_ccif_bq0_a1_13_8_lsb 8
+#define xd_p_reg_ccif_bq1_a1_7_0 (*(volatile byte xdata *) 0xF139)
+#define p_reg_ccif_bq1_a1_7_0 0xF139
+#define reg_ccif_bq1_a1_7_0_pos 0
+#define reg_ccif_bq1_a1_7_0_len 8
+#define reg_ccif_bq1_a1_7_0_lsb 0
+#define xd_p_reg_ccif_bq1_a1_13_8 (*(volatile byte xdata *) 0xF13A)
+#define p_reg_ccif_bq1_a1_13_8 0xF13A
+#define reg_ccif_bq1_a1_13_8_pos 0
+#define reg_ccif_bq1_a1_13_8_len 6
+#define reg_ccif_bq1_a1_13_8_lsb 8
+#define xd_p_reg_ccif_bq0_b1_7_0 (*(volatile byte xdata *) 0xF13B)
+#define p_reg_ccif_bq0_b1_7_0 0xF13B
+#define reg_ccif_bq0_b1_7_0_pos 0
+#define reg_ccif_bq0_b1_7_0_len 8
+#define reg_ccif_bq0_b1_7_0_lsb 0
+#define xd_p_reg_ccif_bq0_b1_13_8 (*(volatile byte xdata *) 0xF13C)
+#define p_reg_ccif_bq0_b1_13_8 0xF13C
+#define reg_ccif_bq0_b1_13_8_pos 0
+#define reg_ccif_bq0_b1_13_8_len 6
+#define reg_ccif_bq0_b1_13_8_lsb 8
+#define xd_p_reg_ccif_bq1_b1_7_0 (*(volatile byte xdata *) 0xF13D)
+#define p_reg_ccif_bq1_b1_7_0 0xF13D
+#define reg_ccif_bq1_b1_7_0_pos 0
+#define reg_ccif_bq1_b1_7_0_len 8
+#define reg_ccif_bq1_b1_7_0_lsb 0
+#define xd_p_reg_ccif_bq1_b1_13_8 (*(volatile byte xdata *) 0xF13E)
+#define p_reg_ccif_bq1_b1_13_8 0xF13E
+#define reg_ccif_bq1_b1_13_8_pos 0
+#define reg_ccif_bq1_b1_13_8_len 6
+#define reg_ccif_bq1_b1_13_8_lsb 8
+#define xd_p_reg_ccif_bq0_b2_7_0 (*(volatile byte xdata *) 0xF13F)
+#define p_reg_ccif_bq0_b2_7_0 0xF13F
+#define reg_ccif_bq0_b2_7_0_pos 0
+#define reg_ccif_bq0_b2_7_0_len 8
+#define reg_ccif_bq0_b2_7_0_lsb 0
+#define xd_p_reg_ccif_bq0_b2_13_8 (*(volatile byte xdata *) 0xF140)
+#define p_reg_ccif_bq0_b2_13_8 0xF140
+#define reg_ccif_bq0_b2_13_8_pos 0
+#define reg_ccif_bq0_b2_13_8_len 6
+#define reg_ccif_bq0_b2_13_8_lsb 8
+#define xd_p_reg_ccif_bq1_b2_7_0 (*(volatile byte xdata *) 0xF141)
+#define p_reg_ccif_bq1_b2_7_0 0xF141
+#define reg_ccif_bq1_b2_7_0_pos 0
+#define reg_ccif_bq1_b2_7_0_len 8
+#define reg_ccif_bq1_b2_7_0_lsb 0
+#define xd_p_reg_ccif_bq1_b2_13_8 (*(volatile byte xdata *) 0xF142)
+#define p_reg_ccif_bq1_b2_13_8 0xF142
+#define reg_ccif_bq1_b2_13_8_pos 0
+#define reg_ccif_bq1_b2_13_8_len 6
+#define reg_ccif_bq1_b2_13_8_lsb 8
+#define xd_p_reg_ccif_debug_rst (*(volatile byte xdata *) 0xF143)
+#define p_reg_ccif_debug_rst 0xF143
+#define reg_ccif_debug_rst_pos 0
+#define reg_ccif_debug_rst_len 1
+#define reg_ccif_debug_rst_lsb 0
+#define xd_p_reg_mccid_defaultccifscstrobe (*(volatile byte xdata *) 0xF144)
+#define p_reg_mccid_defaultccifscstrobe 0xF144
+#define reg_mccid_defaultccifscstrobe_pos 0
+#define reg_mccid_defaultccifscstrobe_len 7
+#define reg_mccid_defaultccifscstrobe_lsb 0
+#define xd_p_reg_mccid_monitoringaci (*(volatile byte xdata *) 0xF145)
+#define p_reg_mccid_monitoringaci 0xF145
+#define reg_mccid_monitoringaci_pos 0
+#define reg_mccid_monitoringaci_len 1
+#define reg_mccid_monitoringaci_lsb 0
+#define xd_p_reg_mccid_ispassmode (*(volatile byte xdata *) 0xF146)
+#define p_reg_mccid_ispassmode 0xF146
+#define reg_mccid_ispassmode_pos 0
+#define reg_mccid_ispassmode_len 1
+#define reg_mccid_ispassmode_lsb 0
+#define xd_p_reg_mccid_issteadystatemode (*(volatile byte xdata *) 0xF147)
+#define p_reg_mccid_issteadystatemode 0xF147
+#define reg_mccid_issteadystatemode_pos 0
+#define reg_mccid_issteadystatemode_len 1
+#define reg_mccid_issteadystatemode_lsb 0
+#define xd_p_reg_mccid_fixedgaincmp (*(volatile byte xdata *) 0xF148)
+#define p_reg_mccid_fixedgaincmp 0xF148
+#define reg_mccid_fixedgaincmp_pos 0
+#define reg_mccid_fixedgaincmp_len 1
+#define reg_mccid_fixedgaincmp_lsb 0
+#define xd_p_reg_mccid_misscounter_reset (*(volatile byte xdata *) 0xF149)
+#define p_reg_mccid_misscounter_reset 0xF149
+#define reg_mccid_misscounter_reset_pos 0
+#define reg_mccid_misscounter_reset_len 1
+#define reg_mccid_misscounter_reset_lsb 0
+#define xd_p_reg_mccid_acwgcheckcciexist (*(volatile byte xdata *) 0xF14A)
+#define p_reg_mccid_acwgcheckcciexist 0xF14A
+#define reg_mccid_acwgcheckcciexist_pos 0
+#define reg_mccid_acwgcheckcciexist_len 1
+#define reg_mccid_acwgcheckcciexist_lsb 0
+#define xd_p_reg_mccid_acidone (*(volatile byte xdata *) 0xF14B)
+#define p_reg_mccid_acidone 0xF14B
+#define reg_mccid_acidone_pos 0
+#define reg_mccid_acidone_len 1
+#define reg_mccid_acidone_lsb 0
+#define xd_p_reg_mccid_sxdesiredpower_7_0 (*(volatile byte xdata *) 0xF14C)
+#define p_reg_mccid_sxdesiredpower_7_0 0xF14C
+#define reg_mccid_sxdesiredpower_7_0_pos 0
+#define reg_mccid_sxdesiredpower_7_0_len 8
+#define reg_mccid_sxdesiredpower_7_0_lsb 0
+#define xd_p_reg_mccid_sxdesiredpower_9_8 (*(volatile byte xdata *) 0xF14D)
+#define p_reg_mccid_sxdesiredpower_9_8 0xF14D
+#define reg_mccid_sxdesiredpower_9_8_pos 0
+#define reg_mccid_sxdesiredpower_9_8_len 2
+#define reg_mccid_sxdesiredpower_9_8_lsb 8
+#define xd_p_reg_mccid_defaultccitimertriggerno (*(volatile byte xdata *) 0xF14E)
+#define p_reg_mccid_defaultccitimertriggerno 0xF14E
+#define reg_mccid_defaultccitimertriggerno_pos 0
+#define reg_mccid_defaultccitimertriggerno_len 8
+#define reg_mccid_defaultccitimertriggerno_lsb 0
+#define xd_p_reg_mccid_detectedmaxtonecountshift (*(volatile byte xdata *) 0xF14F)
+#define p_reg_mccid_detectedmaxtonecountshift 0xF14F
+#define reg_mccid_detectedmaxtonecountshift_pos 0
+#define reg_mccid_detectedmaxtonecountshift_len 3
+#define reg_mccid_detectedmaxtonecountshift_lsb 0
+#define xd_p_reg_mccid_moveffttoccif_en (*(volatile byte xdata *) 0xF151)
+#define p_reg_mccid_moveffttoccif_en 0xF151
+#define reg_mccid_moveffttoccif_en_pos 0
+#define reg_mccid_moveffttoccif_en_len 1
+#define reg_mccid_moveffttoccif_en_lsb 0
+#define xd_p_reg_mccid_fftindextobfsfcwfactor_7_0 (*(volatile byte xdata *) 0xF152)
+#define p_reg_mccid_fftindextobfsfcwfactor_7_0 0xF152
+#define reg_mccid_fftindextobfsfcwfactor_7_0_pos 0
+#define reg_mccid_fftindextobfsfcwfactor_7_0_len 8
+#define reg_mccid_fftindextobfsfcwfactor_7_0_lsb 0
+#define xd_p_reg_mccid_fftindextobfsfcwfactor_9_8 (*(volatile byte xdata *) 0xF153)
+#define p_reg_mccid_fftindextobfsfcwfactor_9_8 0xF153
+#define reg_mccid_fftindextobfsfcwfactor_9_8_pos 0
+#define reg_mccid_fftindextobfsfcwfactor_9_8_len 2
+#define reg_mccid_fftindextobfsfcwfactor_9_8_lsb 8
+#define xd_p_reg_mccid_bfsfcwffttoindexfactor_7_0 (*(volatile byte xdata *) 0xF154)
+#define p_reg_mccid_bfsfcwffttoindexfactor_7_0 0xF154
+#define reg_mccid_bfsfcwffttoindexfactor_7_0_pos 0
+#define reg_mccid_bfsfcwffttoindexfactor_7_0_len 8
+#define reg_mccid_bfsfcwffttoindexfactor_7_0_lsb 0
+#define xd_p_reg_mccid_bfsfcwffttoindexfactor_10_8 (*(volatile byte xdata *) 0xF155)
+#define p_reg_mccid_bfsfcwffttoindexfactor_10_8 0xF155
+#define reg_mccid_bfsfcwffttoindexfactor_10_8_pos 0
+#define reg_mccid_bfsfcwffttoindexfactor_10_8_len 3
+#define reg_mccid_bfsfcwffttoindexfactor_10_8_lsb 8
+#define xd_p_reg_mccid_detectedaci (*(volatile byte xdata *) 0xF156)
+#define p_reg_mccid_detectedaci 0xF156
+#define reg_mccid_detectedaci_pos 0
+#define reg_mccid_detectedaci_len 1
+#define reg_mccid_detectedaci_lsb 0
+#define xd_r_reg_mccid_filter_enable (*(volatile byte xdata *) 0xF157)
+#define r_reg_mccid_filter_enable 0xF157
+#define reg_mccid_filter_enable_pos 0
+#define reg_mccid_filter_enable_len 1
+#define reg_mccid_filter_enable_lsb 0
+#define xd_p_reg_mccid_aciscstrobe (*(volatile byte xdata *) 0xF158)
+#define p_reg_mccid_aciscstrobe 0xF158
+#define reg_mccid_aciscstrobe_pos 0
+#define reg_mccid_aciscstrobe_len 7
+#define reg_mccid_aciscstrobe_lsb 0
+#define xd_p_reg_mccid_scanningaci (*(volatile byte xdata *) 0xF159)
+#define p_reg_mccid_scanningaci 0xF159
+#define reg_mccid_scanningaci_pos 0
+#define reg_mccid_scanningaci_len 1
+#define reg_mccid_scanningaci_lsb 0
+#define xd_p_reg_mccid_windowsizeacciwdcount_7_0 (*(volatile byte xdata *) 0xF15A)
+#define p_reg_mccid_windowsizeacciwdcount_7_0 0xF15A
+#define reg_mccid_windowsizeacciwdcount_7_0_pos 0
+#define reg_mccid_windowsizeacciwdcount_7_0_len 8
+#define reg_mccid_windowsizeacciwdcount_7_0_lsb 0
+#define xd_p_reg_mccid_windowsizeacciwdcount_12_8 (*(volatile byte xdata *) 0xF15B)
+#define p_reg_mccid_windowsizeacciwdcount_12_8 0xF15B
+#define reg_mccid_windowsizeacciwdcount_12_8_pos 0
+#define reg_mccid_windowsizeacciwdcount_12_8_len 5
+#define reg_mccid_windowsizeacciwdcount_12_8_lsb 8
+#define xd_p_reg_mccid_scannedacionly (*(volatile byte xdata *) 0xF15C)
+#define p_reg_mccid_scannedacionly 0xF15C
+#define reg_mccid_scannedacionly_pos 0
+#define reg_mccid_scannedacionly_len 1
+#define reg_mccid_scannedacionly_lsb 0
+#define xd_p_reg_mccid_scfactor (*(volatile byte xdata *) 0xF15D)
+#define p_reg_mccid_scfactor 0xF15D
+#define reg_mccid_scfactor_pos 0
+#define reg_mccid_scfactor_len 5
+#define reg_mccid_scfactor_lsb 0
+#define xd_p_reg_mccid_defaultevaluatingbandwidthfactor (*(volatile byte xdata *) 0xF15E)
+#define p_reg_mccid_defaultevaluatingbandwidthfactor 0xF15E
+#define reg_mccid_defaultevaluatingbandwidthfactor_pos 0
+#define reg_mccid_defaultevaluatingbandwidthfactor_len 3
+#define reg_mccid_defaultevaluatingbandwidthfactor_lsb 0
+#define xd_p_reg_mccid_defaultacipowerlevel (*(volatile byte xdata *) 0xF15F)
+#define p_reg_mccid_defaultacipowerlevel 0xF15F
+#define reg_mccid_defaultacipowerlevel_pos 0
+#define reg_mccid_defaultacipowerlevel_len 3
+#define reg_mccid_defaultacipowerlevel_lsb 0
+#define xd_r_reg_mccid_outputdagc1gain_7_0 (*(volatile byte xdata *) 0xF160)
+#define r_reg_mccid_outputdagc1gain_7_0 0xF160
+#define reg_mccid_outputdagc1gain_7_0_pos 0
+#define reg_mccid_outputdagc1gain_7_0_len 8
+#define reg_mccid_outputdagc1gain_7_0_lsb 0
+#define xd_r_reg_mccid_outputdagc1gain_9_8 (*(volatile byte xdata *) 0xF161)
+#define r_reg_mccid_outputdagc1gain_9_8 0xF161
+#define reg_mccid_outputdagc1gain_9_8_pos 0
+#define reg_mccid_outputdagc1gain_9_8_len 2
+#define reg_mccid_outputdagc1gain_9_8_lsb 8
+#define xd_r_reg_mccid_outputdagc1gainshift (*(volatile byte xdata *) 0xF162)
+#define r_reg_mccid_outputdagc1gainshift 0xF162
+#define reg_mccid_outputdagc1gainshift_pos 0
+#define reg_mccid_outputdagc1gainshift_len 4
+#define reg_mccid_outputdagc1gainshift_lsb 0
+#define xd_p_reg_mccid_defaultacwgcheckccipowerlevel (*(volatile byte xdata *) 0xF163)
+#define p_reg_mccid_defaultacwgcheckccipowerlevel 0xF163
+#define reg_mccid_defaultacwgcheckccipowerlevel_pos 0
+#define reg_mccid_defaultacwgcheckccipowerlevel_len 3
+#define reg_mccid_defaultacwgcheckccipowerlevel_lsb 0
+#define xd_p_reg_mccid_ccipowerlevelfactor (*(volatile byte xdata *) 0xF166)
+#define p_reg_mccid_ccipowerlevelfactor 0xF166
+#define reg_mccid_ccipowerlevelfactor_pos 0
+#define reg_mccid_ccipowerlevelfactor_len 3
+#define reg_mccid_ccipowerlevelfactor_lsb 0
+#define xd_p_reg_mccid_scstrobesearchingrange (*(volatile byte xdata *) 0xF167)
+#define p_reg_mccid_scstrobesearchingrange 0xF167
+#define reg_mccid_scstrobesearchingrange_pos 0
+#define reg_mccid_scstrobesearchingrange_len 8
+#define reg_mccid_scstrobesearchingrange_lsb 0
+#define xd_p_reg_mccid_searchingno (*(volatile byte xdata *) 0xF168)
+#define p_reg_mccid_searchingno 0xF168
+#define reg_mccid_searchingno_pos 0
+#define reg_mccid_searchingno_len 6
+#define reg_mccid_searchingno_lsb 0
+#define xd_p_reg_mccid_scannedacifrequencyresolution (*(volatile byte xdata *) 0xF169)
+#define p_reg_mccid_scannedacifrequencyresolution 0xF169
+#define reg_mccid_scannedacifrequencyresolution_pos 0
+#define reg_mccid_scannedacifrequencyresolution_len 4
+#define reg_mccid_scannedacifrequencyresolution_lsb 0
+#define xd_p_reg_mccid_fft0_maskmaxtoneindex_7_0 (*(volatile byte xdata *) 0xF16A)
+#define p_reg_mccid_fft0_maskmaxtoneindex_7_0 0xF16A
+#define reg_mccid_fft0_maskmaxtoneindex_7_0_pos 0
+#define reg_mccid_fft0_maskmaxtoneindex_7_0_len 8
+#define reg_mccid_fft0_maskmaxtoneindex_7_0_lsb 0
+#define xd_p_reg_mccid_fft0_maskmaxtoneindex_12_8 (*(volatile byte xdata *) 0xF16B)
+#define p_reg_mccid_fft0_maskmaxtoneindex_12_8 0xF16B
+#define reg_mccid_fft0_maskmaxtoneindex_12_8_pos 0
+#define reg_mccid_fft0_maskmaxtoneindex_12_8_len 5
+#define reg_mccid_fft0_maskmaxtoneindex_12_8_lsb 8
+#define xd_p_reg_mccid_fft0_state (*(volatile byte xdata *) 0xF16C)
+#define p_reg_mccid_fft0_state 0xF16C
+#define reg_mccid_fft0_state_pos 0
+#define reg_mccid_fft0_state_len 1
+#define reg_mccid_fft0_state_lsb 0
+#define xd_p_reg_mccid_fft1_state (*(volatile byte xdata *) 0xF16D)
+#define p_reg_mccid_fft1_state 0xF16D
+#define reg_mccid_fft1_state_pos 0
+#define reg_mccid_fft1_state_len 1
+#define reg_mccid_fft1_state_lsb 0
+#define xd_p_reg_mccid_fft0_maskmintoneindex_7_0 (*(volatile byte xdata *) 0xF16E)
+#define p_reg_mccid_fft0_maskmintoneindex_7_0 0xF16E
+#define reg_mccid_fft0_maskmintoneindex_7_0_pos 0
+#define reg_mccid_fft0_maskmintoneindex_7_0_len 8
+#define reg_mccid_fft0_maskmintoneindex_7_0_lsb 0
+#define xd_p_reg_mccid_fft0_maskmintoneindex_12_8 (*(volatile byte xdata *) 0xF16F)
+#define p_reg_mccid_fft0_maskmintoneindex_12_8 0xF16F
+#define reg_mccid_fft0_maskmintoneindex_12_8_pos 0
+#define reg_mccid_fft0_maskmintoneindex_12_8_len 5
+#define reg_mccid_fft0_maskmintoneindex_12_8_lsb 8
+#define xd_p_reg_mccid_acipowerlevelfactor (*(volatile byte xdata *) 0xF170)
+#define p_reg_mccid_acipowerlevelfactor 0xF170
+#define reg_mccid_acipowerlevelfactor_pos 0
+#define reg_mccid_acipowerlevelfactor_len 3
+#define reg_mccid_acipowerlevelfactor_lsb 0
+#define xd_p_reg_mccid_fft1_maskmaxtoneindex_7_0 (*(volatile byte xdata *) 0xF171)
+#define p_reg_mccid_fft1_maskmaxtoneindex_7_0 0xF171
+#define reg_mccid_fft1_maskmaxtoneindex_7_0_pos 0
+#define reg_mccid_fft1_maskmaxtoneindex_7_0_len 8
+#define reg_mccid_fft1_maskmaxtoneindex_7_0_lsb 0
+#define xd_p_reg_mccid_fft1_maskmaxtoneindex_12_8 (*(volatile byte xdata *) 0xF172)
+#define p_reg_mccid_fft1_maskmaxtoneindex_12_8 0xF172
+#define reg_mccid_fft1_maskmaxtoneindex_12_8_pos 0
+#define reg_mccid_fft1_maskmaxtoneindex_12_8_len 5
+#define reg_mccid_fft1_maskmaxtoneindex_12_8_lsb 8
+#define xd_p_reg_mccid_fft1_maskmintoneindex_7_0 (*(volatile byte xdata *) 0xF173)
+#define p_reg_mccid_fft1_maskmintoneindex_7_0 0xF173
+#define reg_mccid_fft1_maskmintoneindex_7_0_pos 0
+#define reg_mccid_fft1_maskmintoneindex_7_0_len 8
+#define reg_mccid_fft1_maskmintoneindex_7_0_lsb 0
+#define xd_p_reg_mccid_fft1_maskmintoneindex_12_8 (*(volatile byte xdata *) 0xF174)
+#define p_reg_mccid_fft1_maskmintoneindex_12_8 0xF174
+#define reg_mccid_fft1_maskmintoneindex_12_8_pos 0
+#define reg_mccid_fft1_maskmintoneindex_12_8_len 5
+#define reg_mccid_fft1_maskmintoneindex_12_8_lsb 8
+#define xd_p_reg_mccid_reset (*(volatile byte xdata *) 0xF175)
+#define p_reg_mccid_reset 0xF175
+#define reg_mccid_reset_pos 0
+#define reg_mccid_reset_len 1
+#define reg_mccid_reset_lsb 0
+#define xd_p_reg_mccid_gaincmpreset (*(volatile byte xdata *) 0xF176)
+#define p_reg_mccid_gaincmpreset 0xF176
+#define reg_mccid_gaincmpreset_pos 0
+#define reg_mccid_gaincmpreset_len 1
+#define reg_mccid_gaincmpreset_lsb 0
+#define xd_p_reg_mccid_acwgreset (*(volatile byte xdata *) 0xF177)
+#define p_reg_mccid_acwgreset 0xF177
+#define reg_mccid_acwgreset_pos 0
+#define reg_mccid_acwgreset_len 1
+#define reg_mccid_acwgreset_lsb 0
+#define xd_p_reg_mccid_ccif0_ofsmstateenable (*(volatile byte xdata *) 0xF178)
+#define p_reg_mccid_ccif0_ofsmstateenable 0xF178
+#define reg_mccid_ccif0_ofsmstateenable_pos 0
+#define reg_mccid_ccif0_ofsmstateenable_len 1
+#define reg_mccid_ccif0_ofsmstateenable_lsb 0
+#define xd_p_reg_mccid_ccif1_ofsmstateenable (*(volatile byte xdata *) 0xF179)
+#define p_reg_mccid_ccif1_ofsmstateenable 0xF179
+#define reg_mccid_ccif1_ofsmstateenable_pos 0
+#define reg_mccid_ccif1_ofsmstateenable_len 1
+#define reg_mccid_ccif1_ofsmstateenable_lsb 0
+#define xd_p_reg_mccid_fft0_ofsmstateenable (*(volatile byte xdata *) 0xF17A)
+#define p_reg_mccid_fft0_ofsmstateenable 0xF17A
+#define reg_mccid_fft0_ofsmstateenable_pos 0
+#define reg_mccid_fft0_ofsmstateenable_len 1
+#define reg_mccid_fft0_ofsmstateenable_lsb 0
+#define xd_p_reg_mccid_fft1_ofsmstateenable (*(volatile byte xdata *) 0xF17B)
+#define p_reg_mccid_fft1_ofsmstateenable 0xF17B
+#define reg_mccid_fft1_ofsmstateenable_pos 0
+#define reg_mccid_fft1_ofsmstateenable_len 1
+#define reg_mccid_fft1_ofsmstateenable_lsb 0
+#define xd_p_reg_mccid_fftfiltermaskchange (*(volatile byte xdata *) 0xF17C)
+#define p_reg_mccid_fftfiltermaskchange 0xF17C
+#define reg_mccid_fftfiltermaskchange_pos 0
+#define reg_mccid_fftfiltermaskchange_len 1
+#define reg_mccid_fftfiltermaskchange_lsb 0
+#define xd_r_reg_mccid_maxacipowertone_7_0 (*(volatile byte xdata *) 0xF17D)
+#define r_reg_mccid_maxacipowertone_7_0 0xF17D
+#define reg_mccid_maxacipowertone_7_0_pos 0
+#define reg_mccid_maxacipowertone_7_0_len 8
+#define reg_mccid_maxacipowertone_7_0_lsb 0
+#define xd_r_reg_mccid_maxacipowertone_12_8 (*(volatile byte xdata *) 0xF17E)
+#define r_reg_mccid_maxacipowertone_12_8 0xF17E
+#define reg_mccid_maxacipowertone_12_8_pos 0
+#define reg_mccid_maxacipowertone_12_8_len 5
+#define reg_mccid_maxacipowertone_12_8_lsb 8
+#define xd_r_reg_mccid_ccidisappear (*(volatile byte xdata *) 0xF17F)
+#define r_reg_mccid_ccidisappear 0xF17F
+#define reg_mccid_ccidisappear_pos 0
+#define reg_mccid_ccidisappear_len 1
+#define reg_mccid_ccidisappear_lsb 0
+#define xd_r_reg_mccid_ccilocatordone (*(volatile byte xdata *) 0xF182)
+#define r_reg_mccid_ccilocatordone 0xF182
+#define reg_mccid_ccilocatordone_pos 0
+#define reg_mccid_ccilocatordone_len 1
+#define reg_mccid_ccilocatordone_lsb 0
+#define xd_p_reg_mccid_enablecciftrigger (*(volatile byte xdata *) 0xF183)
+#define p_reg_mccid_enablecciftrigger 0xF183
+#define reg_mccid_enablecciftrigger_pos 0
+#define reg_mccid_enablecciftrigger_len 1
+#define reg_mccid_enablecciftrigger_lsb 0
+#define xd_p_reg_mccid_disableacwglaunchevaluationbandwidthtrigger (*(volatile byte xdata *) 0xF184)
+#define p_reg_mccid_disableacwglaunchevaluationbandwidthtrigger 0xF184
+#define reg_mccid_disableacwglaunchevaluationbandwidthtrigger_pos 0
+#define reg_mccid_disableacwglaunchevaluationbandwidthtrigger_len 1
+#define reg_mccid_disableacwglaunchevaluationbandwidthtrigger_lsb 0
+#define xd_p_reg_mccid_control_by_ofsm (*(volatile byte xdata *) 0xF185)
+#define p_reg_mccid_control_by_ofsm 0xF185
+#define reg_mccid_control_by_ofsm_pos 0
+#define reg_mccid_control_by_ofsm_len 1
+#define reg_mccid_control_by_ofsm_lsb 0
+#define xd_p_reg_mccid_ofsmcontrolccilocator (*(volatile byte xdata *) 0xF186)
+#define p_reg_mccid_ofsmcontrolccilocator 0xF186
+#define reg_mccid_ofsmcontrolccilocator_pos 0
+#define reg_mccid_ofsmcontrolccilocator_len 1
+#define reg_mccid_ofsmcontrolccilocator_lsb 0
+#define xd_p_reg_mccid_disablepotentialccitriggerccilocator (*(volatile byte xdata *) 0xF187)
+#define p_reg_mccid_disablepotentialccitriggerccilocator 0xF187
+#define reg_mccid_disablepotentialccitriggerccilocator_pos 0
+#define reg_mccid_disablepotentialccitriggerccilocator_len 1
+#define reg_mccid_disablepotentialccitriggerccilocator_lsb 0
+#define xd_p_reg_mccid_ofsmcontrolccitesting (*(volatile byte xdata *) 0xF188)
+#define p_reg_mccid_ofsmcontrolccitesting 0xF188
+#define reg_mccid_ofsmcontrolccitesting_pos 0
+#define reg_mccid_ofsmcontrolccitesting_len 1
+#define reg_mccid_ofsmcontrolccitesting_lsb 0
+#define xd_p_reg_mccid_disableccitestingtriggercheckcci (*(volatile byte xdata *) 0xF189)
+#define p_reg_mccid_disableccitestingtriggercheckcci 0xF189
+#define reg_mccid_disableccitestingtriggercheckcci_pos 0
+#define reg_mccid_disableccitestingtriggercheckcci_len 1
+#define reg_mccid_disableccitestingtriggercheckcci_lsb 0
+#define xd_p_reg_mccid_ofsmcontrolacwgsetccifscstrobe (*(volatile byte xdata *) 0xF18A)
+#define p_reg_mccid_ofsmcontrolacwgsetccifscstrobe 0xF18A
+#define reg_mccid_ofsmcontrolacwgsetccifscstrobe_pos 0
+#define reg_mccid_ofsmcontrolacwgsetccifscstrobe_len 1
+#define reg_mccid_ofsmcontrolacwgsetccifscstrobe_lsb 0
+#define xd_p_reg_mccid_disableacwgevaluatingbandwidthtrigger (*(volatile byte xdata *) 0xF18B)
+#define p_reg_mccid_disableacwgevaluatingbandwidthtrigger 0xF18B
+#define reg_mccid_disableacwgevaluatingbandwidthtrigger_pos 0
+#define reg_mccid_disableacwgevaluatingbandwidthtrigger_len 1
+#define reg_mccid_disableacwgevaluatingbandwidthtrigger_lsb 0
+#define xd_p_reg_mccid_ofsmcontrolevaluatingbandwidth (*(volatile byte xdata *) 0xF18C)
+#define p_reg_mccid_ofsmcontrolevaluatingbandwidth 0xF18C
+#define reg_mccid_ofsmcontrolevaluatingbandwidth_pos 0
+#define reg_mccid_ofsmcontrolevaluatingbandwidth_len 1
+#define reg_mccid_ofsmcontrolevaluatingbandwidth_lsb 0
+#define xd_p_reg_mccid_ofsmcontrolscanningaci (*(volatile byte xdata *) 0xF18D)
+#define p_reg_mccid_ofsmcontrolscanningaci 0xF18D
+#define reg_mccid_ofsmcontrolscanningaci_pos 0
+#define reg_mccid_ofsmcontrolscanningaci_len 1
+#define reg_mccid_ofsmcontrolscanningaci_lsb 0
+#define xd_p_reg_mccid_disablescanningaci (*(volatile byte xdata *) 0xF18E)
+#define p_reg_mccid_disablescanningaci 0xF18E
+#define reg_mccid_disablescanningaci_pos 0
+#define reg_mccid_disablescanningaci_len 1
+#define reg_mccid_disablescanningaci_lsb 0
+#define xd_p_reg_mccid_disableacwgccidetecting (*(volatile byte xdata *) 0xF18F)
+#define p_reg_mccid_disableacwgccidetecting 0xF18F
+#define reg_mccid_disableacwgccidetecting_pos 0
+#define reg_mccid_disableacwgccidetecting_len 1
+#define reg_mccid_disableacwgccidetecting_lsb 0
+#define xd_p_reg_mccid_ofsmcontrolccitimertrigger (*(volatile byte xdata *) 0xF190)
+#define p_reg_mccid_ofsmcontrolccitimertrigger 0xF190
+#define reg_mccid_ofsmcontrolccitimertrigger_pos 0
+#define reg_mccid_ofsmcontrolccitimertrigger_len 1
+#define reg_mccid_ofsmcontrolccitimertrigger_lsb 0
+#define xd_p_reg_mccid_disableccitimertrigger (*(volatile byte xdata *) 0xF191)
+#define p_reg_mccid_disableccitimertrigger 0xF191
+#define reg_mccid_disableccitimertrigger_pos 0
+#define reg_mccid_disableccitimertrigger_len 1
+#define reg_mccid_disableccitimertrigger_lsb 0
+#define xd_p_reg_mccid_ofsmdisableccitriggercounting (*(volatile byte xdata *) 0xF192)
+#define p_reg_mccid_ofsmdisableccitriggercounting 0xF192
+#define reg_mccid_ofsmdisableccitriggercounting_pos 0
+#define reg_mccid_ofsmdisableccitriggercounting_len 1
+#define reg_mccid_ofsmdisableccitriggercounting_lsb 0
+#define xd_p_reg_mccid_enableccifilteraci (*(volatile byte xdata *) 0xF193)
+#define p_reg_mccid_enableccifilteraci 0xF193
+#define reg_mccid_enableccifilteraci_pos 0
+#define reg_mccid_enableccifilteraci_len 1
+#define reg_mccid_enableccifilteraci_lsb 0
+#define xd_p_reg_mccid_scannedfcwbfs_7_0 (*(volatile byte xdata *) 0xF194)
+#define p_reg_mccid_scannedfcwbfs_7_0 0xF194
+#define reg_mccid_scannedfcwbfs_7_0_pos 0
+#define reg_mccid_scannedfcwbfs_7_0_len 8
+#define reg_mccid_scannedfcwbfs_7_0_lsb 0
+#define xd_p_reg_mccid_scannedfcwbfs_13_8 (*(volatile byte xdata *) 0xF195)
+#define p_reg_mccid_scannedfcwbfs_13_8 0xF195
+#define reg_mccid_scannedfcwbfs_13_8_pos 0
+#define reg_mccid_scannedfcwbfs_13_8_len 6
+#define reg_mccid_scannedfcwbfs_13_8_lsb 8
+#define xd_p_reg_mccid_acwgevaluatingbandwidth (*(volatile byte xdata *) 0xF196)
+#define p_reg_mccid_acwgevaluatingbandwidth 0xF196
+#define reg_mccid_acwgevaluatingbandwidth_pos 0
+#define reg_mccid_acwgevaluatingbandwidth_len 1
+#define reg_mccid_acwgevaluatingbandwidth_lsb 0
+#define xd_p_reg_mccid_acwglaunchevaluationbandwidth (*(volatile byte xdata *) 0xF197)
+#define p_reg_mccid_acwglaunchevaluationbandwidth 0xF197
+#define reg_mccid_acwglaunchevaluationbandwidth_pos 0
+#define reg_mccid_acwglaunchevaluationbandwidth_len 1
+#define reg_mccid_acwglaunchevaluationbandwidth_lsb 0
+#define xd_p_reg_mccid_scannedcandidate (*(volatile byte xdata *) 0xF198)
+#define p_reg_mccid_scannedcandidate 0xF198
+#define reg_mccid_scannedcandidate_pos 0
+#define reg_mccid_scannedcandidate_len 3
+#define reg_mccid_scannedcandidate_lsb 0
+#define xd_p_reg_mccid_scstrobesearchingcandidate (*(volatile byte xdata *) 0xF199)
+#define p_reg_mccid_scstrobesearchingcandidate 0xF199
+#define reg_mccid_scstrobesearchingcandidate_pos 0
+#define reg_mccid_scstrobesearchingcandidate_len 2
+#define reg_mccid_scstrobesearchingcandidate_lsb 0
+#define xd_p_reg_mccid_potentialcci (*(volatile byte xdata *) 0xF19A)
+#define p_reg_mccid_potentialcci 0xF19A
+#define reg_mccid_potentialcci_pos 0
+#define reg_mccid_potentialcci_len 1
+#define reg_mccid_potentialcci_lsb 0
+#define xd_p_reg_mccid_cciftimertrigger (*(volatile byte xdata *) 0xF19B)
+#define p_reg_mccid_cciftimertrigger 0xF19B
+#define reg_mccid_cciftimertrigger_pos 0
+#define reg_mccid_cciftimertrigger_len 1
+#define reg_mccid_cciftimertrigger_lsb 0
+#define xd_p_reg_mccid_ccitesting (*(volatile byte xdata *) 0xF19C)
+#define p_reg_mccid_ccitesting 0xF19C
+#define reg_mccid_ccitesting_pos 0
+#define reg_mccid_ccitesting_len 1
+#define reg_mccid_ccitesting_lsb 0
+#define xd_p_reg_mccid_defaultccilocatormissno (*(volatile byte xdata *) 0xF19D)
+#define p_reg_mccid_defaultccilocatormissno 0xF19D
+#define reg_mccid_defaultccilocatormissno_pos 0
+#define reg_mccid_defaultccilocatormissno_len 8
+#define reg_mccid_defaultccilocatormissno_lsb 0
+#define xd_p_reg_mccid_dagc1_use_despow (*(volatile byte xdata *) 0xF19E)
+#define p_reg_mccid_dagc1_use_despow 0xF19E
+#define reg_mccid_dagc1_use_despow_pos 0
+#define reg_mccid_dagc1_use_despow_len 1
+#define reg_mccid_dagc1_use_despow_lsb 0
+#define xd_p_reg_mccid_scannedacifrequencybegin_7_0 (*(volatile byte xdata *) 0xF19F)
+#define p_reg_mccid_scannedacifrequencybegin_7_0 0xF19F
+#define reg_mccid_scannedacifrequencybegin_7_0_pos 0
+#define reg_mccid_scannedacifrequencybegin_7_0_len 8
+#define reg_mccid_scannedacifrequencybegin_7_0_lsb 0
+#define xd_p_reg_mccid_scannedacifrequencybegin_13_8 (*(volatile byte xdata *) 0xF1A0)
+#define p_reg_mccid_scannedacifrequencybegin_13_8 0xF1A0
+#define reg_mccid_scannedacifrequencybegin_13_8_pos 0
+#define reg_mccid_scannedacifrequencybegin_13_8_len 6
+#define reg_mccid_scannedacifrequencybegin_13_8_lsb 8
+#define xd_p_reg_mccid_scannedacifrequencyend_7_0 (*(volatile byte xdata *) 0xF1A1)
+#define p_reg_mccid_scannedacifrequencyend_7_0 0xF1A1
+#define reg_mccid_scannedacifrequencyend_7_0_pos 0
+#define reg_mccid_scannedacifrequencyend_7_0_len 8
+#define reg_mccid_scannedacifrequencyend_7_0_lsb 0
+#define xd_p_reg_mccid_scannedacifrequencyend_13_8 (*(volatile byte xdata *) 0xF1A2)
+#define p_reg_mccid_scannedacifrequencyend_13_8 0xF1A2
+#define reg_mccid_scannedacifrequencyend_13_8_pos 0
+#define reg_mccid_scannedacifrequencyend_13_8_len 6
+#define reg_mccid_scannedacifrequencyend_13_8_lsb 8
+#define xd_p_reg_bfs_fcw_7_0 (*(volatile byte xdata *) 0xF1A3)
+#define p_reg_bfs_fcw_7_0 0xF1A3
+#define reg_bfs_fcw_7_0_pos 0
+#define reg_bfs_fcw_7_0_len 8
+#define reg_bfs_fcw_7_0_lsb 0
+#define xd_p_reg_bfs_fcw_15_8 (*(volatile byte xdata *) 0xF1A4)
+#define p_reg_bfs_fcw_15_8 0xF1A4
+#define reg_bfs_fcw_15_8_pos 0
+#define reg_bfs_fcw_15_8_len 8
+#define reg_bfs_fcw_15_8_lsb 8
+#define xd_p_reg_bfs_fcw_22_16 (*(volatile byte xdata *) 0xF1A5)
+#define p_reg_bfs_fcw_22_16 0xF1A5
+#define reg_bfs_fcw_22_16_pos 0
+#define reg_bfs_fcw_22_16_len 7
+#define reg_bfs_fcw_22_16_lsb 16
+#define xd_p_reg_cfoe_fcw_inv (*(volatile byte xdata *) 0xF1A6)
+#define p_reg_cfoe_fcw_inv 0xF1A6
+#define reg_cfoe_fcw_inv_pos 0
+#define reg_cfoe_fcw_inv_len 1
+#define reg_cfoe_fcw_inv_lsb 0
+#define xd_p_reg_bfs_0if (*(volatile byte xdata *) 0xF1A7)
+#define p_reg_bfs_0if 0xF1A7
+#define reg_bfs_0if_pos 0
+#define reg_bfs_0if_len 1
+#define reg_bfs_0if_lsb 0
+#define xd_p_reg_sadc_clk (*(volatile byte xdata *) 0xF1A9)
+#define p_reg_sadc_clk 0xF1A9
+#define reg_sadc_clk_pos 0
+#define reg_sadc_clk_len 1
+#define reg_sadc_clk_lsb 0
+#define xd_p_reg_sadc_tx (*(volatile byte xdata *) 0xF1AA)
+#define p_reg_sadc_tx 0xF1AA
+#define reg_sadc_tx_pos 0
+#define reg_sadc_tx_len 1
+#define reg_sadc_tx_lsb 0
+#define xd_p_reg_sadc_rx (*(volatile byte xdata *) 0xF1AB)
+#define p_reg_sadc_rx 0xF1AB
+#define reg_sadc_rx_pos 0
+#define reg_sadc_rx_len 1
+#define reg_sadc_rx_lsb 0
+#define xd_p_reg_sadc_cs (*(volatile byte xdata *) 0xF1AC)
+#define p_reg_sadc_cs 0xF1AC
+#define reg_sadc_cs_pos 0
+#define reg_sadc_cs_len 1
+#define reg_sadc_cs_lsb 0
+#define xd_p_reg_fix_fcw_7_0 (*(volatile byte xdata *) 0xF1AD)
+#define p_reg_fix_fcw_7_0 0xF1AD
+#define reg_fix_fcw_7_0_pos 0
+#define reg_fix_fcw_7_0_len 8
+#define reg_fix_fcw_7_0_lsb 0
+#define xd_p_reg_fix_fcw_15_8 (*(volatile byte xdata *) 0xF1AE)
+#define p_reg_fix_fcw_15_8 0xF1AE
+#define reg_fix_fcw_15_8_pos 0
+#define reg_fix_fcw_15_8_len 8
+#define reg_fix_fcw_15_8_lsb 8
+#define xd_p_reg_fix_fcw_22_16 (*(volatile byte xdata *) 0xF1AF)
+#define p_reg_fix_fcw_22_16 0xF1AF
+#define reg_fix_fcw_22_16_pos 0
+#define reg_fix_fcw_22_16_len 7
+#define reg_fix_fcw_22_16_lsb 16
+#define xd_r_reg_bfs_fcw_offset_7_0 (*(volatile byte xdata *) 0xF1B0)
+#define r_reg_bfs_fcw_offset_7_0 0xF1B0
+#define reg_bfs_fcw_offset_7_0_pos 0
+#define reg_bfs_fcw_offset_7_0_len 8
+#define reg_bfs_fcw_offset_7_0_lsb 0
+#define xd_r_reg_bfs_fcw_offset_15_8 (*(volatile byte xdata *) 0xF1B1)
+#define r_reg_bfs_fcw_offset_15_8 0xF1B1
+#define reg_bfs_fcw_offset_15_8_pos 0
+#define reg_bfs_fcw_offset_15_8_len 8
+#define reg_bfs_fcw_offset_15_8_lsb 8
+#define xd_r_reg_bfs_fcw_offset_22_16 (*(volatile byte xdata *) 0xF1B2)
+#define r_reg_bfs_fcw_offset_22_16 0xF1B2
+#define reg_bfs_fcw_offset_22_16_pos 0
+#define reg_bfs_fcw_offset_22_16_len 7
+#define reg_bfs_fcw_offset_22_16_lsb 16
+#define xd_r_bfs_fcw_q_7_0 (*(volatile byte xdata *) 0xF1B3)
+#define r_bfs_fcw_q_7_0 0xF1B3
+#define bfs_fcw_q_7_0_pos 0
+#define bfs_fcw_q_7_0_len 8
+#define bfs_fcw_q_7_0_lsb 0
+#define xd_r_bfs_fcw_q_15_8 (*(volatile byte xdata *) 0xF1B4)
+#define r_bfs_fcw_q_15_8 0xF1B4
+#define bfs_fcw_q_15_8_pos 0
+#define bfs_fcw_q_15_8_len 8
+#define bfs_fcw_q_15_8_lsb 8
+#define xd_r_bfs_fcw_q_22_16 (*(volatile byte xdata *) 0xF1B5)
+#define r_bfs_fcw_q_22_16 0xF1B5
+#define bfs_fcw_q_22_16_pos 0
+#define bfs_fcw_q_22_16_len 7
+#define bfs_fcw_q_22_16_lsb 16
+#define xd_p_reg_dagc3_use_despow (*(volatile byte xdata *) 0xF1B6)
+#define p_reg_dagc3_use_despow 0xF1B6
+#define reg_dagc3_use_despow_pos 0
+#define reg_dagc3_use_despow_len 1
+#define reg_dagc3_use_despow_lsb 0
+#define xd_p_reg_dagc3_log_2_accumulate (*(volatile byte xdata *) 0xF1B7)
+#define p_reg_dagc3_log_2_accumulate 0xF1B7
+#define reg_dagc3_log_2_accumulate_pos 0
+#define reg_dagc3_log_2_accumulate_len 5
+#define reg_dagc3_log_2_accumulate_lsb 0
+#define xd_p_reg_dagc3_desired_level_7_0 (*(volatile byte xdata *) 0xF1BC)
+#define p_reg_dagc3_desired_level_7_0 0xF1BC
+#define reg_dagc3_desired_level_7_0_pos 0
+#define reg_dagc3_desired_level_7_0_len 8
+#define reg_dagc3_desired_level_7_0_lsb 0
+#define xd_p_reg_dagc3_desired_level_8 (*(volatile byte xdata *) 0xF1BD)
+#define p_reg_dagc3_desired_level_8 0xF1BD
+#define reg_dagc3_desired_level_8_pos 0
+#define reg_dagc3_desired_level_8_len 1
+#define reg_dagc3_desired_level_8_lsb 8
+#define xd_p_reg_dagc3_apply_delay (*(volatile byte xdata *) 0xF1BE)
+#define p_reg_dagc3_apply_delay 0xF1BE
+#define reg_dagc3_apply_delay_pos 0
+#define reg_dagc3_apply_delay_len 7
+#define reg_dagc3_apply_delay_lsb 0
+#define xd_p_reg_dagc3_bp_scale (*(volatile byte xdata *) 0xF1BF)
+#define p_reg_dagc3_bp_scale 0xF1BF
+#define reg_dagc3_bp_scale_pos 0
+#define reg_dagc3_bp_scale_len 3
+#define reg_dagc3_bp_scale_lsb 0
+#define xd_p_reg_dagc3_in_sat_cnt_7_0 (*(volatile byte xdata *) 0xF1C0)
+#define p_reg_dagc3_in_sat_cnt_7_0 0xF1C0
+#define reg_dagc3_in_sat_cnt_7_0_pos 0
+#define reg_dagc3_in_sat_cnt_7_0_len 8
+#define reg_dagc3_in_sat_cnt_7_0_lsb 0
+#define xd_p_reg_dagc3_in_sat_cnt_15_8 (*(volatile byte xdata *) 0xF1C1)
+#define p_reg_dagc3_in_sat_cnt_15_8 0xF1C1
+#define reg_dagc3_in_sat_cnt_15_8_pos 0
+#define reg_dagc3_in_sat_cnt_15_8_len 8
+#define reg_dagc3_in_sat_cnt_15_8_lsb 8
+#define xd_p_reg_dagc3_in_sat_cnt_23_16 (*(volatile byte xdata *) 0xF1C2)
+#define p_reg_dagc3_in_sat_cnt_23_16 0xF1C2
+#define reg_dagc3_in_sat_cnt_23_16_pos 0
+#define reg_dagc3_in_sat_cnt_23_16_len 8
+#define reg_dagc3_in_sat_cnt_23_16_lsb 16
+#define xd_p_reg_dagc3_in_sat_cnt_31_24 (*(volatile byte xdata *) 0xF1C3)
+#define p_reg_dagc3_in_sat_cnt_31_24 0xF1C3
+#define reg_dagc3_in_sat_cnt_31_24_pos 0
+#define reg_dagc3_in_sat_cnt_31_24_len 8
+#define reg_dagc3_in_sat_cnt_31_24_lsb 24
+#define xd_p_reg_dagc3_out_sat_cnt_7_0 (*(volatile byte xdata *) 0xF1C4)
+#define p_reg_dagc3_out_sat_cnt_7_0 0xF1C4
+#define reg_dagc3_out_sat_cnt_7_0_pos 0
+#define reg_dagc3_out_sat_cnt_7_0_len 8
+#define reg_dagc3_out_sat_cnt_7_0_lsb 0
+#define xd_p_reg_dagc3_out_sat_cnt_15_8 (*(volatile byte xdata *) 0xF1C5)
+#define p_reg_dagc3_out_sat_cnt_15_8 0xF1C5
+#define reg_dagc3_out_sat_cnt_15_8_pos 0
+#define reg_dagc3_out_sat_cnt_15_8_len 8
+#define reg_dagc3_out_sat_cnt_15_8_lsb 8
+#define xd_p_reg_dagc3_out_sat_cnt_23_16 (*(volatile byte xdata *) 0xF1C6)
+#define p_reg_dagc3_out_sat_cnt_23_16 0xF1C6
+#define reg_dagc3_out_sat_cnt_23_16_pos 0
+#define reg_dagc3_out_sat_cnt_23_16_len 8
+#define reg_dagc3_out_sat_cnt_23_16_lsb 16
+#define xd_p_reg_dagc3_out_sat_cnt_31_24 (*(volatile byte xdata *) 0xF1C7)
+#define p_reg_dagc3_out_sat_cnt_31_24 0xF1C7
+#define reg_dagc3_out_sat_cnt_31_24_pos 0
+#define reg_dagc3_out_sat_cnt_31_24_len 8
+#define reg_dagc3_out_sat_cnt_31_24_lsb 24
+#define xd_r_bfs_dagc3_multiplier_7_0 (*(volatile byte xdata *) 0xF1C8)
+#define r_bfs_dagc3_multiplier_7_0 0xF1C8
+#define bfs_dagc3_multiplier_7_0_pos 0
+#define bfs_dagc3_multiplier_7_0_len 8
+#define bfs_dagc3_multiplier_7_0_lsb 0
+#define xd_r_bfs_dagc3_multiplier_15_8 (*(volatile byte xdata *) 0xF1C9)
+#define r_bfs_dagc3_multiplier_15_8 0xF1C9
+#define bfs_dagc3_multiplier_15_8_pos 0
+#define bfs_dagc3_multiplier_15_8_len 8
+#define bfs_dagc3_multiplier_15_8_lsb 8
+#define xd_r_bfs_dagc3_right_shift_bits (*(volatile byte xdata *) 0xF1CA)
+#define r_bfs_dagc3_right_shift_bits 0xF1CA
+#define bfs_dagc3_right_shift_bits_pos 0
+#define bfs_dagc3_right_shift_bits_len 4
+#define bfs_dagc3_right_shift_bits_lsb 0
+#define xd_p_reg_dagc3_fixed_gain_7_0 (*(volatile byte xdata *) 0xF1CB)
+#define p_reg_dagc3_fixed_gain_7_0 0xF1CB
+#define reg_dagc3_fixed_gain_7_0_pos 0
+#define reg_dagc3_fixed_gain_7_0_len 8
+#define reg_dagc3_fixed_gain_7_0_lsb 0
+#define xd_p_reg_dagc3_fixed_gain_11_8 (*(volatile byte xdata *) 0xF1CC)
+#define p_reg_dagc3_fixed_gain_11_8 0xF1CC
+#define reg_dagc3_fixed_gain_11_8_pos 0
+#define reg_dagc3_fixed_gain_11_8_len 4
+#define reg_dagc3_fixed_gain_11_8_lsb 8
+#define xd_p_reg_f_adc_7_0 (*(volatile byte xdata *) 0xF1CD)
+#define p_reg_f_adc_7_0 0xF1CD
+#define reg_f_adc_7_0_pos 0
+#define reg_f_adc_7_0_len 8
+#define reg_f_adc_7_0_lsb 0
+#define xd_p_reg_f_adc_15_8 (*(volatile byte xdata *) 0xF1CE)
+#define p_reg_f_adc_15_8 0xF1CE
+#define reg_f_adc_15_8_pos 0
+#define reg_f_adc_15_8_len 8
+#define reg_f_adc_15_8_lsb 8
+#define xd_p_reg_f_adc_23_16 (*(volatile byte xdata *) 0xF1CF)
+#define p_reg_f_adc_23_16 0xF1CF
+#define reg_f_adc_23_16_pos 0
+#define reg_f_adc_23_16_len 8
+#define reg_f_adc_23_16_lsb 16
+#define xd_p_reg_fste_frac_step_size_7_0 (*(volatile byte xdata *) 0xF1D0)
+#define p_reg_fste_frac_step_size_7_0 0xF1D0
+#define reg_fste_frac_step_size_7_0_pos 0
+#define reg_fste_frac_step_size_7_0_len 8
+#define reg_fste_frac_step_size_7_0_lsb 0
+#define xd_p_reg_fste_frac_step_size_15_8 (*(volatile byte xdata *) 0xF1D1)
+#define p_reg_fste_frac_step_size_15_8 0xF1D1
+#define reg_fste_frac_step_size_15_8_pos 0
+#define reg_fste_frac_step_size_15_8_len 8
+#define reg_fste_frac_step_size_15_8_lsb 8
+#define xd_p_reg_fste_frac_step_size_19_16 (*(volatile byte xdata *) 0xF1D2)
+#define p_reg_fste_frac_step_size_19_16 0xF1D2
+#define reg_fste_frac_step_size_19_16_pos 0
+#define reg_fste_frac_step_size_19_16_len 4
+#define reg_fste_frac_step_size_19_16_lsb 16
+#define xd_r_intp_mu_7_0 (*(volatile byte xdata *) 0xF1D3)
+#define r_intp_mu_7_0 0xF1D3
+#define intp_mu_7_0_pos 0
+#define intp_mu_7_0_len 8
+#define intp_mu_7_0_lsb 0
+#define xd_r_intp_mu_15_8 (*(volatile byte xdata *) 0xF1D4)
+#define r_intp_mu_15_8 0xF1D4
+#define intp_mu_15_8_pos 0
+#define intp_mu_15_8_len 8
+#define intp_mu_15_8_lsb 8
+#define xd_r_intp_mu_23_16 (*(volatile byte xdata *) 0xF1D5)
+#define r_intp_mu_23_16 0xF1D5
+#define intp_mu_23_16_pos 0
+#define intp_mu_23_16_len 8
+#define intp_mu_23_16_lsb 16
+#define xd_r_intp_mu_25_24 (*(volatile byte xdata *) 0xF1D6)
+#define r_intp_mu_25_24 0xF1D6
+#define intp_mu_25_24_pos 0
+#define intp_mu_25_24_len 2
+#define intp_mu_25_24_lsb 24
+#define xd_p_intp_muq_7_0 (*(volatile byte xdata *) 0xF1D7)
+#define p_intp_muq_7_0 0xF1D7
+#define intp_muq_7_0_pos 0
+#define intp_muq_7_0_len 8
+#define intp_muq_7_0_lsb 0
+#define xd_p_intp_muq_15_8 (*(volatile byte xdata *) 0xF1D8)
+#define p_intp_muq_15_8 0xF1D8
+#define intp_muq_15_8_pos 0
+#define intp_muq_15_8_len 8
+#define intp_muq_15_8_lsb 8
+#define xd_p_intp_muq_23_16 (*(volatile byte xdata *) 0xF1D9)
+#define p_intp_muq_23_16 0xF1D9
+#define intp_muq_23_16_pos 0
+#define intp_muq_23_16_len 8
+#define intp_muq_23_16_lsb 16
+#define xd_p_reg_sfoe_inv (*(volatile byte xdata *) 0xF1DA)
+#define p_reg_sfoe_inv 0xF1DA
+#define reg_sfoe_inv_pos 0
+#define reg_sfoe_inv_len 1
+#define reg_sfoe_inv_lsb 0
+#define xd_p_intp_ext_en (*(volatile byte xdata *) 0xF1DB)
+#define p_intp_ext_en 0xF1DB
+#define intp_ext_en_pos 0
+#define intp_ext_en_len 1
+#define intp_ext_en_lsb 0
+#define xd_r_intp_ext_done (*(volatile byte xdata *) 0xF1DC)
+#define r_intp_ext_done 0xF1DC
+#define intp_ext_done_pos 0
+#define intp_ext_done_len 1
+#define intp_ext_done_lsb 0
+#define xd_p_intp_ext_in_7_0 (*(volatile byte xdata *) 0xF1DD)
+#define p_intp_ext_in_7_0 0xF1DD
+#define intp_ext_in_7_0_pos 0
+#define intp_ext_in_7_0_len 8
+#define intp_ext_in_7_0_lsb 0
+#define xd_p_intp_ext_in_15_8 (*(volatile byte xdata *) 0xF1DE)
+#define p_intp_ext_in_15_8 0xF1DE
+#define intp_ext_in_15_8_pos 0
+#define intp_ext_in_15_8_len 8
+#define intp_ext_in_15_8_lsb 8
+#define xd_p_intp_ext_in_23_16 (*(volatile byte xdata *) 0xF1DF)
+#define p_intp_ext_in_23_16 0xF1DF
+#define intp_ext_in_23_16_pos 0
+#define intp_ext_in_23_16_len 8
+#define intp_ext_in_23_16_lsb 16
+#define xd_p_intp_ext_in_25_24 (*(volatile byte xdata *) 0xF1E0)
+#define p_intp_ext_in_25_24 0xF1E0
+#define intp_ext_in_25_24_pos 0
+#define intp_ext_in_25_24_len 2
+#define intp_ext_in_25_24_lsb 24
+#define xd_r_intp_ext_out_7_0 (*(volatile byte xdata *) 0xF1E1)
+#define r_intp_ext_out_7_0 0xF1E1
+#define intp_ext_out_7_0_pos 0
+#define intp_ext_out_7_0_len 8
+#define intp_ext_out_7_0_lsb 0
+#define xd_r_intp_ext_out_15_8 (*(volatile byte xdata *) 0xF1E2)
+#define r_intp_ext_out_15_8 0xF1E2
+#define intp_ext_out_15_8_pos 0
+#define intp_ext_out_15_8_len 8
+#define intp_ext_out_15_8_lsb 8
+#define xd_r_intp_ext_out_23_16 (*(volatile byte xdata *) 0xF1E3)
+#define r_intp_ext_out_23_16 0xF1E3
+#define intp_ext_out_23_16_pos 0
+#define intp_ext_out_23_16_len 8
+#define intp_ext_out_23_16_lsb 16
+#define xd_r_intp_ext_out_28_24 (*(volatile byte xdata *) 0xF1E4)
+#define r_intp_ext_out_28_24 0xF1E4
+#define intp_ext_out_28_24_pos 0
+#define intp_ext_out_28_24_len 5
+#define intp_ext_out_28_24_lsb 24
+#define xd_p_reg_agc_rst (*(volatile byte xdata *) 0xF1E5)
+#define p_reg_agc_rst 0xF1E5
+#define reg_agc_rst_pos 0
+#define reg_agc_rst_len 1
+#define reg_agc_rst_lsb 0
+#define xd_p_rf_agc_en (*(volatile byte xdata *) 0xF1E6)
+#define p_rf_agc_en 0xF1E6
+#define rf_agc_en_pos 0
+#define rf_agc_en_len 1
+#define rf_agc_en_lsb 0
+#define xd_p_agc_lock (*(volatile byte xdata *) 0xF1E7)
+#define p_agc_lock 0xF1E7
+#define agc_lock_pos 0
+#define agc_lock_len 1
+#define agc_lock_lsb 0
+#define xd_p_reg_tinr_rst (*(volatile byte xdata *) 0xF1E8)
+#define p_reg_tinr_rst 0xF1E8
+#define reg_tinr_rst_pos 0
+#define reg_tinr_rst_len 1
+#define reg_tinr_rst_lsb 0
+#define xd_p_reg_tinr_en (*(volatile byte xdata *) 0xF1E9)
+#define p_reg_tinr_en 0xF1E9
+#define reg_tinr_en_pos 0
+#define reg_tinr_en_len 1
+#define reg_tinr_en_lsb 0
+#define xd_p_reg_bfs_en (*(volatile byte xdata *) 0xF1EA)
+#define p_reg_bfs_en 0xF1EA
+#define reg_bfs_en_pos 0
+#define reg_bfs_en_len 1
+#define reg_bfs_en_lsb 0
+#define xd_p_reg_bfs_rst (*(volatile byte xdata *) 0xF1EB)
+#define p_reg_bfs_rst 0xF1EB
+#define reg_bfs_rst_pos 0
+#define reg_bfs_rst_len 1
+#define reg_bfs_rst_lsb 0
+#define xd_p_reg_bfs_byp (*(volatile byte xdata *) 0xF1EC)
+#define p_reg_bfs_byp 0xF1EC
+#define reg_bfs_byp_pos 0
+#define reg_bfs_byp_len 1
+#define reg_bfs_byp_lsb 0
+#define xd_p_intp_en (*(volatile byte xdata *) 0xF1EF)
+#define p_intp_en 0xF1EF
+#define intp_en_pos 0
+#define intp_en_len 1
+#define intp_en_lsb 0
+#define xd_p_intp_rst (*(volatile byte xdata *) 0xF1F0)
+#define p_intp_rst 0xF1F0
+#define intp_rst_pos 0
+#define intp_rst_len 1
+#define intp_rst_lsb 0
+#define xd_p_reg_p_acif_en (*(volatile byte xdata *) 0xF1F2)
+#define p_reg_p_acif_en 0xF1F2
+#define reg_p_acif_en_pos 0
+#define reg_p_acif_en_len 1
+#define reg_p_acif_en_lsb 0
+#define xd_p_reg_p_acif_rst (*(volatile byte xdata *) 0xF1F3)
+#define p_reg_p_acif_rst 0xF1F3
+#define reg_p_acif_rst_pos 0
+#define reg_p_acif_rst_len 1
+#define reg_p_acif_rst_lsb 0
+#define xd_p_reg_p_acif_byp (*(volatile byte xdata *) 0xF1F4)
+#define p_reg_p_acif_byp 0xF1F4
+#define reg_p_acif_byp_pos 0
+#define reg_p_acif_byp_len 1
+#define reg_p_acif_byp_lsb 0
+#define xd_p_dagc2_rst (*(volatile byte xdata *) 0xF1F6)
+#define p_dagc2_rst 0xF1F6
+#define dagc2_rst_pos 0
+#define dagc2_rst_len 1
+#define dagc2_rst_lsb 0
+#define xd_p_dagc2_en (*(volatile byte xdata *) 0xF1F7)
+#define p_dagc2_en 0xF1F7
+#define dagc2_en_pos 0
+#define dagc2_en_len 1
+#define dagc2_en_lsb 0
+#define xd_p_dagc2_mode (*(volatile byte xdata *) 0xF1F8)
+#define p_dagc2_mode 0xF1F8
+#define dagc2_mode_pos 0
+#define dagc2_mode_len 2
+#define dagc2_mode_lsb 0
+#define xd_p_dagc2_done (*(volatile byte xdata *) 0xF1F9)
+#define p_dagc2_done 0xF1F9
+#define dagc2_done_pos 0
+#define dagc2_done_len 1
+#define dagc2_done_lsb 0
+#define xd_p_dagc3_rst (*(volatile byte xdata *) 0xF1FA)
+#define p_dagc3_rst 0xF1FA
+#define dagc3_rst_pos 0
+#define dagc3_rst_len 1
+#define dagc3_rst_lsb 0
+#define xd_p_dagc3_en (*(volatile byte xdata *) 0xF1FB)
+#define p_dagc3_en 0xF1FB
+#define dagc3_en_pos 0
+#define dagc3_en_len 1
+#define dagc3_en_lsb 0
+#define xd_p_dagc3_mode (*(volatile byte xdata *) 0xF1FC)
+#define p_dagc3_mode 0xF1FC
+#define dagc3_mode_pos 0
+#define dagc3_mode_len 2
+#define dagc3_mode_lsb 0
+#define xd_p_dagc3_done (*(volatile byte xdata *) 0xF1FD)
+#define p_dagc3_done 0xF1FD
+#define dagc3_done_pos 0
+#define dagc3_done_len 1
+#define dagc3_done_lsb 0
+#define xd_p_reg_dagc2_desired_level_7_0 (*(volatile byte xdata *) 0xF202)
+#define p_reg_dagc2_desired_level_7_0 0xF202
+#define reg_dagc2_desired_level_7_0_pos 0
+#define reg_dagc2_desired_level_7_0_len 8
+#define reg_dagc2_desired_level_7_0_lsb 0
+#define xd_p_reg_dagc2_desired_level_8 (*(volatile byte xdata *) 0xF203)
+#define p_reg_dagc2_desired_level_8 0xF203
+#define reg_dagc2_desired_level_8_pos 0
+#define reg_dagc2_desired_level_8_len 1
+#define reg_dagc2_desired_level_8_lsb 8
+#define xd_p_reg_dagc2_apply_delay (*(volatile byte xdata *) 0xF204)
+#define p_reg_dagc2_apply_delay 0xF204
+#define reg_dagc2_apply_delay_pos 0
+#define reg_dagc2_apply_delay_len 7
+#define reg_dagc2_apply_delay_lsb 0
+#define xd_p_reg_dagc2_bypass_scale_ctl (*(volatile byte xdata *) 0xF205)
+#define p_reg_dagc2_bypass_scale_ctl 0xF205
+#define reg_dagc2_bypass_scale_ctl_pos 0
+#define reg_dagc2_bypass_scale_ctl_len 3
+#define reg_dagc2_bypass_scale_ctl_lsb 0
+#define xd_p_reg_dagc2_programmable_shift2 (*(volatile byte xdata *) 0xF206)
+#define p_reg_dagc2_programmable_shift2 0xF206
+#define reg_dagc2_programmable_shift2_pos 0
+#define reg_dagc2_programmable_shift2_len 8
+#define reg_dagc2_programmable_shift2_lsb 0
+#define xd_p_reg_dagc2_in_sat_cnt_7_0 (*(volatile byte xdata *) 0xF207)
+#define p_reg_dagc2_in_sat_cnt_7_0 0xF207
+#define reg_dagc2_in_sat_cnt_7_0_pos 0
+#define reg_dagc2_in_sat_cnt_7_0_len 8
+#define reg_dagc2_in_sat_cnt_7_0_lsb 0
+#define xd_p_reg_dagc2_in_sat_cnt_15_8 (*(volatile byte xdata *) 0xF208)
+#define p_reg_dagc2_in_sat_cnt_15_8 0xF208
+#define reg_dagc2_in_sat_cnt_15_8_pos 0
+#define reg_dagc2_in_sat_cnt_15_8_len 8
+#define reg_dagc2_in_sat_cnt_15_8_lsb 8
+#define xd_p_reg_dagc2_in_sat_cnt_23_16 (*(volatile byte xdata *) 0xF209)
+#define p_reg_dagc2_in_sat_cnt_23_16 0xF209
+#define reg_dagc2_in_sat_cnt_23_16_pos 0
+#define reg_dagc2_in_sat_cnt_23_16_len 8
+#define reg_dagc2_in_sat_cnt_23_16_lsb 16
+#define xd_p_reg_dagc2_in_sat_cnt_31_24 (*(volatile byte xdata *) 0xF20A)
+#define p_reg_dagc2_in_sat_cnt_31_24 0xF20A
+#define reg_dagc2_in_sat_cnt_31_24_pos 0
+#define reg_dagc2_in_sat_cnt_31_24_len 8
+#define reg_dagc2_in_sat_cnt_31_24_lsb 24
+#define xd_p_reg_dagc2_out_sat_cnt_7_0 (*(volatile byte xdata *) 0xF20B)
+#define p_reg_dagc2_out_sat_cnt_7_0 0xF20B
+#define reg_dagc2_out_sat_cnt_7_0_pos 0
+#define reg_dagc2_out_sat_cnt_7_0_len 8
+#define reg_dagc2_out_sat_cnt_7_0_lsb 0
+#define xd_p_reg_dagc2_out_sat_cnt_15_8 (*(volatile byte xdata *) 0xF20C)
+#define p_reg_dagc2_out_sat_cnt_15_8 0xF20C
+#define reg_dagc2_out_sat_cnt_15_8_pos 0
+#define reg_dagc2_out_sat_cnt_15_8_len 8
+#define reg_dagc2_out_sat_cnt_15_8_lsb 8
+#define xd_p_reg_dagc2_out_sat_cnt_23_16 (*(volatile byte xdata *) 0xF20D)
+#define p_reg_dagc2_out_sat_cnt_23_16 0xF20D
+#define reg_dagc2_out_sat_cnt_23_16_pos 0
+#define reg_dagc2_out_sat_cnt_23_16_len 8
+#define reg_dagc2_out_sat_cnt_23_16_lsb 16
+#define xd_p_reg_dagc2_out_sat_cnt_31_24 (*(volatile byte xdata *) 0xF20E)
+#define p_reg_dagc2_out_sat_cnt_31_24 0xF20E
+#define reg_dagc2_out_sat_cnt_31_24_pos 0
+#define reg_dagc2_out_sat_cnt_31_24_len 8
+#define reg_dagc2_out_sat_cnt_31_24_lsb 24
+#define xd_r_reg_dagc2_multiplier_7_0 (*(volatile byte xdata *) 0xF20F)
+#define r_reg_dagc2_multiplier_7_0 0xF20F
+#define reg_dagc2_multiplier_7_0_pos 0
+#define reg_dagc2_multiplier_7_0_len 8
+#define reg_dagc2_multiplier_7_0_lsb 0
+#define xd_r_reg_dagc2_multiplier_15_8 (*(volatile byte xdata *) 0xF210)
+#define r_reg_dagc2_multiplier_15_8 0xF210
+#define reg_dagc2_multiplier_15_8_pos 0
+#define reg_dagc2_multiplier_15_8_len 8
+#define reg_dagc2_multiplier_15_8_lsb 8
+#define xd_r_reg_dagc2_right_shift_bits (*(volatile byte xdata *) 0xF211)
+#define r_reg_dagc2_right_shift_bits 0xF211
+#define reg_dagc2_right_shift_bits_pos 0
+#define reg_dagc2_right_shift_bits_len 4
+#define reg_dagc2_right_shift_bits_lsb 0
+#define xd_p_reg_dagc2_smbuf_err (*(volatile byte xdata *) 0xF212)
+#define p_reg_dagc2_smbuf_err 0xF212
+#define reg_dagc2_smbuf_err_pos 0
+#define reg_dagc2_smbuf_err_len 1
+#define reg_dagc2_smbuf_err_lsb 0
+#define xd_p_reg_dagc2_cplxconj (*(volatile byte xdata *) 0xF213)
+#define p_reg_dagc2_cplxconj 0xF213
+#define reg_dagc2_cplxconj_pos 0
+#define reg_dagc2_cplxconj_len 1
+#define reg_dagc2_cplxconj_lsb 0
+#define xd_p_reg_dagc2_use_despow (*(volatile byte xdata *) 0xF214)
+#define p_reg_dagc2_use_despow 0xF214
+#define reg_dagc2_use_despow_pos 0
+#define reg_dagc2_use_despow_len 1
+#define reg_dagc2_use_despow_lsb 0
+#define xd_p_reg_dagc2_log_2_accumulate (*(volatile byte xdata *) 0xF215)
+#define p_reg_dagc2_log_2_accumulate 0xF215
+#define reg_dagc2_log_2_accumulate_pos 0
+#define reg_dagc2_log_2_accumulate_len 5
+#define reg_dagc2_log_2_accumulate_lsb 0
+#define xd_r_dagc2_dca_gain (*(volatile byte xdata *) 0xF216)
+#define r_dagc2_dca_gain 0xF216
+#define dagc2_dca_gain_pos 0
+#define dagc2_dca_gain_len 8
+#define dagc2_dca_gain_lsb 0
+#define xd_p_reg_dca_gain_offset (*(volatile byte xdata *) 0xF217)
+#define p_reg_dca_gain_offset 0xF217
+#define reg_dca_gain_offset_pos 0
+#define reg_dca_gain_offset_len 8
+#define reg_dca_gain_offset_lsb 0
+#define xd_p_reg_dagc2_FG_mode (*(volatile byte xdata *) 0xF218)
+#define p_reg_dagc2_FG_mode 0xF218
+#define reg_dagc2_FG_mode_pos 0
+#define reg_dagc2_FG_mode_len 1
+#define reg_dagc2_FG_mode_lsb 0
+#define xd_p_reg_dagc2_fixed_gain_7_0 (*(volatile byte xdata *) 0xF219)
+#define p_reg_dagc2_fixed_gain_7_0 0xF219
+#define reg_dagc2_fixed_gain_7_0_pos 0
+#define reg_dagc2_fixed_gain_7_0_len 8
+#define reg_dagc2_fixed_gain_7_0_lsb 0
+#define xd_p_reg_dagc2_fixed_gain_11_8 (*(volatile byte xdata *) 0xF21A)
+#define p_reg_dagc2_fixed_gain_11_8 0xF21A
+#define reg_dagc2_fixed_gain_11_8_pos 0
+#define reg_dagc2_fixed_gain_11_8_len 4
+#define reg_dagc2_fixed_gain_11_8_lsb 8
+#define xd_p_reg_td_debug_7_0 (*(volatile byte xdata *) 0xF21B)
+#define p_reg_td_debug_7_0 0xF21B
+#define reg_td_debug_7_0_pos 0
+#define reg_td_debug_7_0_len 8
+#define reg_td_debug_7_0_lsb 0
+#define xd_p_reg_td_debug_15_8 (*(volatile byte xdata *) 0xF21C)
+#define p_reg_td_debug_15_8 0xF21C
+#define reg_td_debug_15_8_pos 0
+#define reg_td_debug_15_8_len 8
+#define reg_td_debug_15_8_lsb 8
+#define xd_p_reg_td_debug_23_16 (*(volatile byte xdata *) 0xF21D)
+#define p_reg_td_debug_23_16 0xF21D
+#define reg_td_debug_23_16_pos 0
+#define reg_td_debug_23_16_len 8
+#define reg_td_debug_23_16_lsb 16
+#define xd_p_reg_td_debug_30_24 (*(volatile byte xdata *) 0xF21E)
+#define p_reg_td_debug_30_24 0xF21E
+#define reg_td_debug_30_24_pos 0
+#define reg_td_debug_30_24_len 7
+#define reg_td_debug_30_24_lsb 24
+#define xd_g_reg_tpsd_txmod (*(volatile byte xdata *) 0xF900)
+#define g_reg_tpsd_txmod 0xF900
+#define reg_tpsd_txmod_pos 0
+#define reg_tpsd_txmod_len 2
+#define reg_tpsd_txmod_lsb 0
+#define xd_g_reg_tpsd_gi (*(volatile byte xdata *) 0xF901)
+#define g_reg_tpsd_gi 0xF901
+#define reg_tpsd_gi_pos 0
+#define reg_tpsd_gi_len 2
+#define reg_tpsd_gi_lsb 0
+#define xd_g_reg_tpsd_hier (*(volatile byte xdata *) 0xF902)
+#define g_reg_tpsd_hier 0xF902
+#define reg_tpsd_hier_pos 0
+#define reg_tpsd_hier_len 3
+#define reg_tpsd_hier_lsb 0
+#define xd_g_reg_tpsd_const (*(volatile byte xdata *) 0xF903)
+#define g_reg_tpsd_const 0xF903
+#define reg_tpsd_const_pos 0
+#define reg_tpsd_const_len 2
+#define reg_tpsd_const_lsb 0
+#define xd_g_reg_bw (*(volatile byte xdata *) 0xF904)
+#define g_reg_bw 0xF904
+#define reg_bw_pos 0
+#define reg_bw_len 2
+#define reg_bw_lsb 0
+#define xd_g_reg_dec_pri (*(volatile byte xdata *) 0xF905)
+#define g_reg_dec_pri 0xF905
+#define reg_dec_pri_pos 0
+#define reg_dec_pri_len 1
+#define reg_dec_pri_lsb 0
+#define xd_g_reg_tpsd_hpcr (*(volatile byte xdata *) 0xF906)
+#define g_reg_tpsd_hpcr 0xF906
+#define reg_tpsd_hpcr_pos 0
+#define reg_tpsd_hpcr_len 3
+#define reg_tpsd_hpcr_lsb 0
+#define xd_g_reg_tpsd_lpcr (*(volatile byte xdata *) 0xF907)
+#define g_reg_tpsd_lpcr 0xF907
+#define reg_tpsd_lpcr_pos 0
+#define reg_tpsd_lpcr_len 3
+#define reg_tpsd_lpcr_lsb 0
+#define xd_g_reg_tpsd_indep (*(volatile byte xdata *) 0xF908)
+#define g_reg_tpsd_indep 0xF908
+#define reg_tpsd_indep_pos 0
+#define reg_tpsd_indep_len 1
+#define reg_tpsd_indep_lsb 0
+#define xd_g_reg_tpsd_tslice (*(volatile byte xdata *) 0xF909)
+#define g_reg_tpsd_tslice 0xF909
+#define reg_tpsd_tslice_pos 0
+#define reg_tpsd_tslice_len 1
+#define reg_tpsd_tslice_lsb 0
+#define xd_g_reg_tpsd_mpefec (*(volatile byte xdata *) 0xF90A)
+#define g_reg_tpsd_mpefec 0xF90A
+#define reg_tpsd_mpefec_pos 0
+#define reg_tpsd_mpefec_len 1
+#define reg_tpsd_mpefec_lsb 0
+#define xd_g_reg_sntc_en (*(volatile byte xdata *) 0xF90B)
+#define g_reg_sntc_en 0xF90B
+#define reg_sntc_en_pos 0
+#define reg_sntc_en_len 1
+#define reg_sntc_en_lsb 0
+#define xd_g_reg_intp_sys_div (*(volatile byte xdata *) 0xF90C)
+#define g_reg_intp_sys_div 0xF90C
+#define reg_intp_sys_div_pos 0
+#define reg_intp_sys_div_len 1
+#define reg_intp_sys_div_lsb 0
+#define xd_g_reg_clk_sntc_sel (*(volatile byte xdata *) 0xF90D)
+#define g_reg_clk_sntc_sel 0xF90D
+#define reg_clk_sntc_sel_pos 0
+#define reg_clk_sntc_sel_len 3
+#define reg_clk_sntc_sel_lsb 0
+#define xd_g_reg_clk_sys40 (*(volatile byte xdata *) 0xF90E)
+#define g_reg_clk_sys40 0xF90E
+#define reg_clk_sys40_pos 0
+#define reg_clk_sys40_len 1
+#define reg_clk_sys40_lsb 0
+#define xd_g_reg_intp_sys_polarity (*(volatile byte xdata *) 0xF90F)
+#define g_reg_intp_sys_polarity 0xF90F
+#define reg_intp_sys_polarity_pos 0
+#define reg_intp_sys_polarity_len 1
+#define reg_intp_sys_polarity_lsb 0
+#define xd_g_reg_intp_sys_sc_7_0 (*(volatile byte xdata *) 0xF910)
+#define g_reg_intp_sys_sc_7_0 0xF910
+#define reg_intp_sys_sc_7_0_pos 0
+#define reg_intp_sys_sc_7_0_len 8
+#define reg_intp_sys_sc_7_0_lsb 0
+#define xd_g_reg_intp_sys_sc_15_8 (*(volatile byte xdata *) 0xF911)
+#define g_reg_intp_sys_sc_15_8 0xF911
+#define reg_intp_sys_sc_15_8_pos 0
+#define reg_intp_sys_sc_15_8_len 8
+#define reg_intp_sys_sc_15_8_lsb 8
+#define xd_g_reg_intp_sys_sc_23_16 (*(volatile byte xdata *) 0xF912)
+#define g_reg_intp_sys_sc_23_16 0xF912
+#define reg_intp_sys_sc_23_16_pos 0
+#define reg_intp_sys_sc_23_16_len 8
+#define reg_intp_sys_sc_23_16_lsb 16
+#define xd_g_reg_intp_sys_sc_26_24 (*(volatile byte xdata *) 0xF913)
+#define g_reg_intp_sys_sc_26_24 0xF913
+#define reg_intp_sys_sc_26_24_pos 0
+#define reg_intp_sys_sc_26_24_len 3
+#define reg_intp_sys_sc_26_24_lsb 24
+#define xd_g_reg_ofsm_clk (*(volatile byte xdata *) 0xF914)
+#define g_reg_ofsm_clk 0xF914
+#define reg_ofsm_clk_pos 0
+#define reg_ofsm_clk_len 3
+#define reg_ofsm_clk_lsb 0
+#define xd_g_reg_fclk_cfg (*(volatile byte xdata *) 0xF915)
+#define g_reg_fclk_cfg 0xF915
+#define reg_fclk_cfg_pos 0
+#define reg_fclk_cfg_len 1
+#define reg_fclk_cfg_lsb 0
+#define xd_g_reg_fclk_idi (*(volatile byte xdata *) 0xF916)
+#define g_reg_fclk_idi 0xF916
+#define reg_fclk_idi_pos 0
+#define reg_fclk_idi_len 1
+#define reg_fclk_idi_lsb 0
+#define xd_g_reg_fclk_odi (*(volatile byte xdata *) 0xF917)
+#define g_reg_fclk_odi 0xF917
+#define reg_fclk_odi_pos 0
+#define reg_fclk_odi_len 1
+#define reg_fclk_odi_lsb 0
+#define xd_g_reg_fclk_rsd (*(volatile byte xdata *) 0xF918)
+#define g_reg_fclk_rsd 0xF918
+#define reg_fclk_rsd_pos 0
+#define reg_fclk_rsd_len 1
+#define reg_fclk_rsd_lsb 0
+#define xd_g_reg_fclk_vtb (*(volatile byte xdata *) 0xF919)
+#define g_reg_fclk_vtb 0xF919
+#define reg_fclk_vtb_pos 0
+#define reg_fclk_vtb_len 1
+#define reg_fclk_vtb_lsb 0
+#define xd_g_reg_fclk_cste (*(volatile byte xdata *) 0xF91A)
+#define g_reg_fclk_cste 0xF91A
+#define reg_fclk_cste_pos 0
+#define reg_fclk_cste_len 1
+#define reg_fclk_cste_lsb 0
+#define xd_g_reg_fclk_mp2if (*(volatile byte xdata *) 0xF91B)
+#define g_reg_fclk_mp2if 0xF91B
+#define reg_fclk_mp2if_pos 0
+#define reg_fclk_mp2if_len 1
+#define reg_fclk_mp2if_lsb 0
+#define xd_p_reg_adcout_sync (*(volatile byte xdata *) 0xFA00)
+#define p_reg_adcout_sync 0xFA00
+#define reg_adcout_sync_pos 0
+#define reg_adcout_sync_len 1
+#define reg_adcout_sync_lsb 0
+#define xd_p_reg_dagc2o_edge1 (*(volatile byte xdata *) 0xFA01)
+#define p_reg_dagc2o_edge1 0xFA01
+#define reg_dagc2o_edge1_pos 0
+#define reg_dagc2o_edge1_len 1
+#define reg_dagc2o_edge1_lsb 0
+#define xd_p_reg_dagc2o_edge0 (*(volatile byte xdata *) 0xFA02)
+#define p_reg_dagc2o_edge0 0xFA02
+#define reg_dagc2o_edge0_pos 0
+#define reg_dagc2o_edge0_len 1
+#define reg_dagc2o_edge0_lsb 0
+#define xd_p_reg_second_rom_on (*(volatile byte xdata *) 0xFA03)
+#define p_reg_second_rom_on 0xFA03
+#define reg_second_rom_on_pos 0
+#define reg_second_rom_on_len 1
+#define reg_second_rom_on_lsb 0
+#define xd_p_reg_bypass_host2tuner (*(volatile byte xdata *) 0xFA04)
+#define p_reg_bypass_host2tuner 0xFA04
+#define reg_bypass_host2tuner_pos 0
+#define reg_bypass_host2tuner_len 1
+#define reg_bypass_host2tuner_lsb 0
+#endif
+// biu_reg.h 6-27-2007
+// gen_biu Ver 1.0 generated by tienchi
+#define xd_p_cfoe_NS_coeff1_7_0 (*(volatile byte xdata *) 0xF400)
+#define p_cfoe_NS_coeff1_7_0 0xF400
+#define cfoe_NS_coeff1_7_0_pos 0
+#define cfoe_NS_coeff1_7_0_len 8
+#define cfoe_NS_coeff1_7_0_lsb 0
+#define xd_p_cfoe_NS_coeff1_15_8 (*(volatile byte xdata *) 0xF401)
+#define p_cfoe_NS_coeff1_15_8 0xF401
+#define cfoe_NS_coeff1_15_8_pos 0
+#define cfoe_NS_coeff1_15_8_len 8
+#define cfoe_NS_coeff1_15_8_lsb 8
+#define xd_p_cfoe_NS_coeff1_23_16 (*(volatile byte xdata *) 0xF402)
+#define p_cfoe_NS_coeff1_23_16 0xF402
+#define cfoe_NS_coeff1_23_16_pos 0
+#define cfoe_NS_coeff1_23_16_len 8
+#define cfoe_NS_coeff1_23_16_lsb 16
+#define xd_p_cfoe_NS_coeff1_25_24 (*(volatile byte xdata *) 0xF403)
+#define p_cfoe_NS_coeff1_25_24 0xF403
+#define cfoe_NS_coeff1_25_24_pos 0
+#define cfoe_NS_coeff1_25_24_len 2
+#define cfoe_NS_coeff1_25_24_lsb 24
+#define xd_p_cfoe_NS_coeff2_7_0 (*(volatile byte xdata *) 0xF404)
+#define p_cfoe_NS_coeff2_7_0 0xF404
+#define cfoe_NS_coeff2_7_0_pos 0
+#define cfoe_NS_coeff2_7_0_len 8
+#define cfoe_NS_coeff2_7_0_lsb 0
+#define xd_p_cfoe_NS_coeff2_15_8 (*(volatile byte xdata *) 0xF405)
+#define p_cfoe_NS_coeff2_15_8 0xF405
+#define cfoe_NS_coeff2_15_8_pos 0
+#define cfoe_NS_coeff2_15_8_len 8
+#define cfoe_NS_coeff2_15_8_lsb 8
+#define xd_p_cfoe_NS_coeff2_23_16 (*(volatile byte xdata *) 0xF406)
+#define p_cfoe_NS_coeff2_23_16 0xF406
+#define cfoe_NS_coeff2_23_16_pos 0
+#define cfoe_NS_coeff2_23_16_len 8
+#define cfoe_NS_coeff2_23_16_lsb 16
+#define xd_p_cfoe_NS_coeff2_24 (*(volatile byte xdata *) 0xF407)
+#define p_cfoe_NS_coeff2_24 0xF407
+#define cfoe_NS_coeff2_24_pos 0
+#define cfoe_NS_coeff2_24_len 1
+#define cfoe_NS_coeff2_24_lsb 24
+#define xd_p_cfoe_lf_c1_7_0 (*(volatile byte xdata *) 0xF408)
+#define p_cfoe_lf_c1_7_0 0xF408
+#define cfoe_lf_c1_7_0_pos 0
+#define cfoe_lf_c1_7_0_len 8
+#define cfoe_lf_c1_7_0_lsb 0
+#define xd_p_cfoe_lf_c1_9_8 (*(volatile byte xdata *) 0xF409)
+#define p_cfoe_lf_c1_9_8 0xF409
+#define cfoe_lf_c1_9_8_pos 0
+#define cfoe_lf_c1_9_8_len 2
+#define cfoe_lf_c1_9_8_lsb 8
+#define xd_p_cfoe_lf_c2_7_0 (*(volatile byte xdata *) 0xF40A)
+#define p_cfoe_lf_c2_7_0 0xF40A
+#define cfoe_lf_c2_7_0_pos 0
+#define cfoe_lf_c2_7_0_len 8
+#define cfoe_lf_c2_7_0_lsb 0
+#define xd_p_cfoe_lf_c2_9_8 (*(volatile byte xdata *) 0xF40B)
+#define p_cfoe_lf_c2_9_8 0xF40B
+#define cfoe_lf_c2_9_8_pos 0
+#define cfoe_lf_c2_9_8_len 2
+#define cfoe_lf_c2_9_8_lsb 8
+#define xd_p_cfoe_ifod_7_0 (*(volatile byte xdata *) 0xF40C)
+#define p_cfoe_ifod_7_0 0xF40C
+#define cfoe_ifod_7_0_pos 0
+#define cfoe_ifod_7_0_len 8
+#define cfoe_ifod_7_0_lsb 0
+#define xd_p_cfoe_ifod_10_8 (*(volatile byte xdata *) 0xF40D)
+#define p_cfoe_ifod_10_8 0xF40D
+#define cfoe_ifod_10_8_pos 0
+#define cfoe_ifod_10_8_len 3
+#define cfoe_ifod_10_8_lsb 8
+#define xd_p_cfoe_Divg_ctr_th (*(volatile byte xdata *) 0xF40E)
+#define p_cfoe_Divg_ctr_th 0xF40E
+#define cfoe_Divg_ctr_th_pos 0
+#define cfoe_Divg_ctr_th_len 4
+#define cfoe_Divg_ctr_th_lsb 0
+#define xd_p_cfoe_FOT_divg_th (*(volatile byte xdata *) 0xF40F)
+#define p_cfoe_FOT_divg_th 0xF40F
+#define cfoe_FOT_divg_th_pos 0
+#define cfoe_FOT_divg_th_len 8
+#define cfoe_FOT_divg_th_lsb 0
+#define xd_p_cfoe_FOT_cnvg_th (*(volatile byte xdata *) 0xF410)
+#define p_cfoe_FOT_cnvg_th 0xF410
+#define cfoe_FOT_cnvg_th_pos 0
+#define cfoe_FOT_cnvg_th_len 8
+#define cfoe_FOT_cnvg_th_lsb 0
+#define xd_p_reg_cfoe_offset_7_0 (*(volatile byte xdata *) 0xF411)
+#define p_reg_cfoe_offset_7_0 0xF411
+#define reg_cfoe_offset_7_0_pos 0
+#define reg_cfoe_offset_7_0_len 8
+#define reg_cfoe_offset_7_0_lsb 0
+#define xd_p_reg_cfoe_offset_10_8 (*(volatile byte xdata *) 0xF412)
+#define p_reg_cfoe_offset_10_8 0xF412
+#define reg_cfoe_offset_10_8_pos 0
+#define reg_cfoe_offset_10_8_len 3
+#define reg_cfoe_offset_10_8_lsb 8
+#define xd_p_reg_cfoe_ifoe_sign_corr (*(volatile byte xdata *) 0xF413)
+#define p_reg_cfoe_ifoe_sign_corr 0xF413
+#define reg_cfoe_ifoe_sign_corr_pos 0
+#define reg_cfoe_ifoe_sign_corr_len 1
+#define reg_cfoe_ifoe_sign_corr_lsb 0
+#define xd_p_cfoe_FOT_pullin_cnt_clr (*(volatile byte xdata *) 0xF414)
+#define p_cfoe_FOT_pullin_cnt_clr 0xF414
+#define cfoe_FOT_pullin_cnt_clr_pos 0
+#define cfoe_FOT_pullin_cnt_clr_len 1
+#define cfoe_FOT_pullin_cnt_clr_lsb 0
+#define xd_p_cfoe_FOT_spec_inv (*(volatile byte xdata *) 0xF415)
+#define p_cfoe_FOT_spec_inv 0xF415
+#define cfoe_FOT_spec_inv_pos 0
+#define cfoe_FOT_spec_inv_len 1
+#define cfoe_FOT_spec_inv_lsb 0
+#define xd_p_cfoe_FOT_pullin_ctr_th (*(volatile byte xdata *) 0xF416)
+#define p_cfoe_FOT_pullin_ctr_th 0xF416
+#define cfoe_FOT_pullin_ctr_th_pos 0
+#define cfoe_FOT_pullin_ctr_th_len 4
+#define cfoe_FOT_pullin_ctr_th_lsb 0
+#define xd_p_cfoe_FOT_sf_ctr_th (*(volatile byte xdata *) 0xF417)
+#define p_cfoe_FOT_sf_ctr_th 0xF417
+#define cfoe_FOT_sf_ctr_th_pos 0
+#define cfoe_FOT_sf_ctr_th_len 4
+#define cfoe_FOT_sf_ctr_th_lsb 0
+#define xd_p_cfoe_FOT_pullin_th (*(volatile byte xdata *) 0xF418)
+#define p_cfoe_FOT_pullin_th 0xF418
+#define cfoe_FOT_pullin_th_pos 0
+#define cfoe_FOT_pullin_th_len 8
+#define cfoe_FOT_pullin_th_lsb 0
+#define xd_p_cfoe_FOT_kalman_cnt (*(volatile byte xdata *) 0xF419)
+#define p_cfoe_FOT_kalman_cnt 0xF419
+#define cfoe_FOT_kalman_cnt_pos 0
+#define cfoe_FOT_kalman_cnt_len 4
+#define cfoe_FOT_kalman_cnt_lsb 0
+#define xd_p_cfoe_FOT_fsm_info (*(volatile byte xdata *) 0xF41A)
+#define p_cfoe_FOT_fsm_info 0xF41A
+#define cfoe_FOT_fsm_info_pos 0
+#define cfoe_FOT_fsm_info_len 4
+#define cfoe_FOT_fsm_info_lsb 0
+#define xd_r_cfoe_FOT_pullin_cnt (*(volatile byte xdata *) 0xF41B)
+#define r_cfoe_FOT_pullin_cnt 0xF41B
+#define cfoe_FOT_pullin_cnt_pos 0
+#define cfoe_FOT_pullin_cnt_len 4
+#define cfoe_FOT_pullin_cnt_lsb 0
+#define xd_r_cfoe_FOT_sf_cnt (*(volatile byte xdata *) 0xF41C)
+#define r_cfoe_FOT_sf_cnt 0xF41C
+#define cfoe_FOT_sf_cnt_pos 0
+#define cfoe_FOT_sf_cnt_len 4
+#define cfoe_FOT_sf_cnt_lsb 0
+#define xd_r_reg_r_cfoe_ifoe_ifo_metric (*(volatile byte xdata *) 0xF41D)
+#define r_reg_r_cfoe_ifoe_ifo_metric 0xF41D
+#define reg_r_cfoe_ifoe_ifo_metric_pos 0
+#define reg_r_cfoe_ifoe_ifo_metric_len 8
+#define reg_r_cfoe_ifoe_ifo_metric_lsb 0
+#define xd_r_reg_r_cfoe_ifoe_cos2num_7_0 (*(volatile byte xdata *) 0xF41E)
+#define r_reg_r_cfoe_ifoe_cos2num_7_0 0xF41E
+#define reg_r_cfoe_ifoe_cos2num_7_0_pos 0
+#define reg_r_cfoe_ifoe_cos2num_7_0_len 8
+#define reg_r_cfoe_ifoe_cos2num_7_0_lsb 0
+#define xd_r_reg_r_cfoe_ifoe_cos2num_15_8 (*(volatile byte xdata *) 0xF41F)
+#define r_reg_r_cfoe_ifoe_cos2num_15_8 0xF41F
+#define reg_r_cfoe_ifoe_cos2num_15_8_pos 0
+#define reg_r_cfoe_ifoe_cos2num_15_8_len 8
+#define reg_r_cfoe_ifoe_cos2num_15_8_lsb 8
+#define xd_r_reg_r_cfoe_ifoe_cos2num_19_16 (*(volatile byte xdata *) 0xF420)
+#define r_reg_r_cfoe_ifoe_cos2num_19_16 0xF420
+#define reg_r_cfoe_ifoe_cos2num_19_16_pos 0
+#define reg_r_cfoe_ifoe_cos2num_19_16_len 4
+#define reg_r_cfoe_ifoe_cos2num_19_16_lsb 16
+#define xd_p_ste_Nu (*(volatile byte xdata *) 0xF460)
+#define p_ste_Nu 0xF460
+#define ste_Nu_pos 0
+#define ste_Nu_len 3
+#define ste_Nu_lsb 0
+#define xd_p_ste_GI (*(volatile byte xdata *) 0xF461)
+#define p_ste_GI 0xF461
+#define ste_GI_pos 0
+#define ste_GI_len 3
+#define ste_GI_lsb 0
+#define xd_p_ste_symbol_num (*(volatile byte xdata *) 0xF463)
+#define p_ste_symbol_num 0xF463
+#define ste_symbol_num_pos 0
+#define ste_symbol_num_len 3
+#define ste_symbol_num_lsb 0
+#define xd_p_ste_sample_num (*(volatile byte xdata *) 0xF464)
+#define p_ste_sample_num 0xF464
+#define ste_sample_num_pos 0
+#define ste_sample_num_len 2
+#define ste_sample_num_lsb 0
+#define xd_p_ste_symbol_num_4K (*(volatile byte xdata *) 0xF465)
+#define p_ste_symbol_num_4K 0xF465
+#define ste_symbol_num_4K_pos 0
+#define ste_symbol_num_4K_len 3
+#define ste_symbol_num_4K_lsb 0
+#define xd_p_ste_FFT_offset_7_0 (*(volatile byte xdata *) 0xF466)
+#define p_ste_FFT_offset_7_0 0xF466
+#define ste_FFT_offset_7_0_pos 0
+#define ste_FFT_offset_7_0_len 8
+#define ste_FFT_offset_7_0_lsb 0
+#define xd_p_ste_FFT_offset_13_8 (*(volatile byte xdata *) 0xF467)
+#define p_ste_FFT_offset_13_8 0xF467
+#define ste_FFT_offset_13_8_pos 0
+#define ste_FFT_offset_13_8_len 6
+#define ste_FFT_offset_13_8_lsb 8
+#define xd_p_ste_sample_num_4K (*(volatile byte xdata *) 0xF468)
+#define p_ste_sample_num_4K 0xF468
+#define ste_sample_num_4K_pos 0
+#define ste_sample_num_4K_len 2
+#define ste_sample_num_4K_lsb 0
+#define xd_p_ste_adv_start_7_0 (*(volatile byte xdata *) 0xF469)
+#define p_ste_adv_start_7_0 0xF469
+#define ste_adv_start_7_0_pos 0
+#define ste_adv_start_7_0_len 8
+#define ste_adv_start_7_0_lsb 0
+#define xd_p_ste_adv_start_10_8 (*(volatile byte xdata *) 0xF46A)
+#define p_ste_adv_start_10_8 0xF46A
+#define ste_adv_start_10_8_pos 0
+#define ste_adv_start_10_8_len 3
+#define ste_adv_start_10_8_lsb 8
+#define xd_p_ste_symbol_num_8K (*(volatile byte xdata *) 0xF46B)
+#define p_ste_symbol_num_8K 0xF46B
+#define ste_symbol_num_8K_pos 0
+#define ste_symbol_num_8K_len 3
+#define ste_symbol_num_8K_lsb 0
+#define xd_p_ste_sample_num_8K (*(volatile byte xdata *) 0xF46C)
+#define p_ste_sample_num_8K 0xF46C
+#define ste_sample_num_8K_pos 0
+#define ste_sample_num_8K_len 2
+#define ste_sample_num_8K_lsb 0
+#define xd_p_ste_adv_stop (*(volatile byte xdata *) 0xF46D)
+#define p_ste_adv_stop 0xF46D
+#define ste_adv_stop_pos 0
+#define ste_adv_stop_len 8
+#define ste_adv_stop_lsb 0
+#define xd_r_ste_P_value_7_0 (*(volatile byte xdata *) 0xF46E)
+#define r_ste_P_value_7_0 0xF46E
+#define ste_P_value_7_0_pos 0
+#define ste_P_value_7_0_len 8
+#define ste_P_value_7_0_lsb 0
+#define xd_r_ste_P_value_10_8 (*(volatile byte xdata *) 0xF46F)
+#define r_ste_P_value_10_8 0xF46F
+#define ste_P_value_10_8_pos 0
+#define ste_P_value_10_8_len 3
+#define ste_P_value_10_8_lsb 8
+#define xd_p_reg_ste_tstmod (*(volatile byte xdata *) 0xF470)
+#define p_reg_ste_tstmod 0xF470
+#define reg_ste_tstmod_pos 0
+#define reg_ste_tstmod_len 1
+#define reg_ste_tstmod_lsb 0
+#define xd_p_reg_ste_buf_en (*(volatile byte xdata *) 0xF471)
+#define p_reg_ste_buf_en 0xF471
+#define reg_ste_buf_en_pos 0
+#define reg_ste_buf_en_len 1
+#define reg_ste_buf_en_lsb 0
+#define xd_r_ste_M_value_7_0 (*(volatile byte xdata *) 0xF472)
+#define r_ste_M_value_7_0 0xF472
+#define ste_M_value_7_0_pos 0
+#define ste_M_value_7_0_len 8
+#define ste_M_value_7_0_lsb 0
+#define xd_r_ste_M_value_10_8 (*(volatile byte xdata *) 0xF473)
+#define r_ste_M_value_10_8 0xF473
+#define ste_M_value_10_8_pos 0
+#define ste_M_value_10_8_len 3
+#define ste_M_value_10_8_lsb 8
+#define xd_r_ste_H1 (*(volatile byte xdata *) 0xF474)
+#define r_ste_H1 0xF474
+#define ste_H1_pos 0
+#define ste_H1_len 7
+#define ste_H1_lsb 0
+#define xd_r_ste_H2 (*(volatile byte xdata *) 0xF475)
+#define r_ste_H2 0xF475
+#define ste_H2_pos 0
+#define ste_H2_len 7
+#define ste_H2_lsb 0
+#define xd_r_ste_H3 (*(volatile byte xdata *) 0xF476)
+#define r_ste_H3 0xF476
+#define ste_H3_pos 0
+#define ste_H3_len 7
+#define ste_H3_lsb 0
+#define xd_r_ste_H4 (*(volatile byte xdata *) 0xF477)
+#define r_ste_H4 0xF477
+#define ste_H4_pos 0
+#define ste_H4_len 7
+#define ste_H4_lsb 0
+#define xd_r_ste_Corr_value_I_7_0 (*(volatile byte xdata *) 0xF478)
+#define r_ste_Corr_value_I_7_0 0xF478
+#define ste_Corr_value_I_7_0_pos 0
+#define ste_Corr_value_I_7_0_len 8
+#define ste_Corr_value_I_7_0_lsb 0
+#define xd_r_ste_Corr_value_I_15_8 (*(volatile byte xdata *) 0xF479)
+#define r_ste_Corr_value_I_15_8 0xF479
+#define ste_Corr_value_I_15_8_pos 0
+#define ste_Corr_value_I_15_8_len 8
+#define ste_Corr_value_I_15_8_lsb 8
+#define xd_r_ste_Corr_value_I_23_16 (*(volatile byte xdata *) 0xF47A)
+#define r_ste_Corr_value_I_23_16 0xF47A
+#define ste_Corr_value_I_23_16_pos 0
+#define ste_Corr_value_I_23_16_len 8
+#define ste_Corr_value_I_23_16_lsb 16
+#define xd_r_ste_Corr_value_I_27_24 (*(volatile byte xdata *) 0xF47B)
+#define r_ste_Corr_value_I_27_24 0xF47B
+#define ste_Corr_value_I_27_24_pos 0
+#define ste_Corr_value_I_27_24_len 4
+#define ste_Corr_value_I_27_24_lsb 24
+#define xd_r_ste_Corr_value_Q_7_0 (*(volatile byte xdata *) 0xF47C)
+#define r_ste_Corr_value_Q_7_0 0xF47C
+#define ste_Corr_value_Q_7_0_pos 0
+#define ste_Corr_value_Q_7_0_len 8
+#define ste_Corr_value_Q_7_0_lsb 0
+#define xd_r_ste_Corr_value_Q_15_8 (*(volatile byte xdata *) 0xF47D)
+#define r_ste_Corr_value_Q_15_8 0xF47D
+#define ste_Corr_value_Q_15_8_pos 0
+#define ste_Corr_value_Q_15_8_len 8
+#define ste_Corr_value_Q_15_8_lsb 8
+#define xd_r_ste_Corr_value_Q_23_16 (*(volatile byte xdata *) 0xF47E)
+#define r_ste_Corr_value_Q_23_16 0xF47E
+#define ste_Corr_value_Q_23_16_pos 0
+#define ste_Corr_value_Q_23_16_len 8
+#define ste_Corr_value_Q_23_16_lsb 16
+#define xd_r_ste_Corr_value_Q_27_24 (*(volatile byte xdata *) 0xF47F)
+#define r_ste_Corr_value_Q_27_24 0xF47F
+#define ste_Corr_value_Q_27_24_pos 0
+#define ste_Corr_value_Q_27_24_len 4
+#define ste_Corr_value_Q_27_24_lsb 24
+#define xd_r_ste_J_num_7_0 (*(volatile byte xdata *) 0xF480)
+#define r_ste_J_num_7_0 0xF480
+#define ste_J_num_7_0_pos 0
+#define ste_J_num_7_0_len 8
+#define ste_J_num_7_0_lsb 0
+#define xd_r_ste_J_num_15_8 (*(volatile byte xdata *) 0xF481)
+#define r_ste_J_num_15_8 0xF481
+#define ste_J_num_15_8_pos 0
+#define ste_J_num_15_8_len 8
+#define ste_J_num_15_8_lsb 8
+#define xd_r_ste_J_num_23_16 (*(volatile byte xdata *) 0xF482)
+#define r_ste_J_num_23_16 0xF482
+#define ste_J_num_23_16_pos 0
+#define ste_J_num_23_16_len 8
+#define ste_J_num_23_16_lsb 16
+#define xd_r_ste_J_num_31_24 (*(volatile byte xdata *) 0xF483)
+#define r_ste_J_num_31_24 0xF483
+#define ste_J_num_31_24_pos 0
+#define ste_J_num_31_24_len 8
+#define ste_J_num_31_24_lsb 24
+#define xd_r_ste_J_den_7_0 (*(volatile byte xdata *) 0xF484)
+#define r_ste_J_den_7_0 0xF484
+#define ste_J_den_7_0_pos 0
+#define ste_J_den_7_0_len 8
+#define ste_J_den_7_0_lsb 0
+#define xd_r_ste_J_den_15_8 (*(volatile byte xdata *) 0xF485)
+#define r_ste_J_den_15_8 0xF485
+#define ste_J_den_15_8_pos 0
+#define ste_J_den_15_8_len 8
+#define ste_J_den_15_8_lsb 8
+#define xd_r_ste_J_den_18_16 (*(volatile byte xdata *) 0xF486)
+#define r_ste_J_den_18_16 0xF486
+#define ste_J_den_18_16_pos 0
+#define ste_J_den_18_16_len 3
+#define ste_J_den_18_16_lsb 16
+#define xd_r_ste_Beacon_Indicator (*(volatile byte xdata *) 0xF488)
+#define r_ste_Beacon_Indicator 0xF488
+#define ste_Beacon_Indicator_pos 0
+#define ste_Beacon_Indicator_len 1
+#define ste_Beacon_Indicator_lsb 0
+#define xd_p_ste_got_sntc_bcn (*(volatile byte xdata *) 0xF48B)
+#define p_ste_got_sntc_bcn 0xF48B
+#define ste_got_sntc_bcn_pos 0
+#define ste_got_sntc_bcn_len 1
+#define ste_got_sntc_bcn_lsb 0
+#define xd_r_tpsd_Frame_Num (*(volatile byte xdata *) 0xF4C0)
+#define r_tpsd_Frame_Num 0xF4C0
+#define tpsd_Frame_Num_pos 0
+#define tpsd_Frame_Num_len 2
+#define tpsd_Frame_Num_lsb 0
+#define xd_r_tpsd_Constel (*(volatile byte xdata *) 0xF4C1)
+#define r_tpsd_Constel 0xF4C1
+#define tpsd_Constel_pos 0
+#define tpsd_Constel_len 2
+#define tpsd_Constel_lsb 0
+#define xd_r_tpsd_GI (*(volatile byte xdata *) 0xF4C2)
+#define r_tpsd_GI 0xF4C2
+#define tpsd_GI_pos 0
+#define tpsd_GI_len 2
+#define tpsd_GI_lsb 0
+#define xd_r_tpsd_Mode (*(volatile byte xdata *) 0xF4C3)
+#define r_tpsd_Mode 0xF4C3
+#define tpsd_Mode_pos 0
+#define tpsd_Mode_len 2
+#define tpsd_Mode_lsb 0
+#define xd_r_tpsd_CR_HP (*(volatile byte xdata *) 0xF4C4)
+#define r_tpsd_CR_HP 0xF4C4
+#define tpsd_CR_HP_pos 0
+#define tpsd_CR_HP_len 3
+#define tpsd_CR_HP_lsb 0
+#define xd_r_tpsd_CR_LP (*(volatile byte xdata *) 0xF4C5)
+#define r_tpsd_CR_LP 0xF4C5
+#define tpsd_CR_LP_pos 0
+#define tpsd_CR_LP_len 3
+#define tpsd_CR_LP_lsb 0
+#define xd_r_tpsd_Hie (*(volatile byte xdata *) 0xF4C6)
+#define r_tpsd_Hie 0xF4C6
+#define tpsd_Hie_pos 0
+#define tpsd_Hie_len 3
+#define tpsd_Hie_lsb 0
+#define xd_r_tpsd_Res_Bits (*(volatile byte xdata *) 0xF4C7)
+#define r_tpsd_Res_Bits 0xF4C7
+#define tpsd_Res_Bits_pos 0
+#define tpsd_Res_Bits_len 5
+#define tpsd_Res_Bits_lsb 0
+#define xd_r_tpsd_Res_Bits_0 (*(volatile byte xdata *) 0xF4C8)
+#define r_tpsd_Res_Bits_0 0xF4C8
+#define tpsd_Res_Bits_0_pos 0
+#define tpsd_Res_Bits_0_len 1
+#define tpsd_Res_Bits_0_lsb 0
+#define xd_r_tpsd_LengthInd (*(volatile byte xdata *) 0xF4C9)
+#define r_tpsd_LengthInd 0xF4C9
+#define tpsd_LengthInd_pos 0
+#define tpsd_LengthInd_len 6
+#define tpsd_LengthInd_lsb 0
+#define xd_r_tpsd_Cell_Id_7_0 (*(volatile byte xdata *) 0xF4CA)
+#define r_tpsd_Cell_Id_7_0 0xF4CA
+#define tpsd_Cell_Id_7_0_pos 0
+#define tpsd_Cell_Id_7_0_len 8
+#define tpsd_Cell_Id_7_0_lsb 0
+#define xd_r_tpsd_Cell_Id_15_8 (*(volatile byte xdata *) 0xF4CB)
+#define r_tpsd_Cell_Id_15_8 0xF4CB
+#define tpsd_Cell_Id_15_8_pos 0
+#define tpsd_Cell_Id_15_8_len 8
+#define tpsd_Cell_Id_15_8_lsb 0
+#define xd_r_tpsd_use_InDepthInt (*(volatile byte xdata *) 0xF4CC)
+#define r_tpsd_use_InDepthInt 0xF4CC
+#define tpsd_use_InDepthInt_pos 0
+#define tpsd_use_InDepthInt_len 1
+#define tpsd_use_InDepthInt_lsb 0
+#define xd_r_tpsd_use_TimeSlicing_HP (*(volatile byte xdata *) 0xF4CD)
+#define r_tpsd_use_TimeSlicing_HP 0xF4CD
+#define tpsd_use_TimeSlicing_HP_pos 0
+#define tpsd_use_TimeSlicing_HP_len 1
+#define tpsd_use_TimeSlicing_HP_lsb 0
+#define xd_r_tpsd_use_mpe_fec_HP (*(volatile byte xdata *) 0xF4CE)
+#define r_tpsd_use_mpe_fec_HP 0xF4CE
+#define tpsd_use_mpe_fec_HP_pos 0
+#define tpsd_use_mpe_fec_HP_len 1
+#define tpsd_use_mpe_fec_HP_lsb 0
+#define xd_r_tpsd_use_TimeSlicing_LP (*(volatile byte xdata *) 0xF4CF)
+#define r_tpsd_use_TimeSlicing_LP 0xF4CF
+#define tpsd_use_TimeSlicing_LP_pos 0
+#define tpsd_use_TimeSlicing_LP_len 1
+#define tpsd_use_TimeSlicing_LP_lsb 0
+#define xd_r_tpsd_use_mpe_fec_LP (*(volatile byte xdata *) 0xF4D0)
+#define r_tpsd_use_mpe_fec_LP 0xF4D0
+#define tpsd_use_mpe_fec_LP_pos 0
+#define tpsd_use_mpe_fec_LP_len 1
+#define tpsd_use_mpe_fec_LP_lsb 0
+#define xd_r_tpsd_leng23_ind_return (*(volatile byte xdata *) 0xF4D1)
+#define r_tpsd_leng23_ind_return 0xF4D1
+#define tpsd_leng23_ind_return_pos 0
+#define tpsd_leng23_ind_return_len 1
+#define tpsd_leng23_ind_return_lsb 0
+#define xd_p_reg_fft_re_exp (*(volatile byte xdata *) 0xF500)
+#define p_reg_fft_re_exp 0xF500
+#define reg_fft_re_exp_pos 0
+#define reg_fft_re_exp_len 4
+#define reg_fft_re_exp_lsb 0
+#define xd_p_reg_fft_re_mts (*(volatile byte xdata *) 0xF501)
+#define p_reg_fft_re_mts 0xF501
+#define reg_fft_re_mts_pos 0
+#define reg_fft_re_mts_len 8
+#define reg_fft_re_mts_lsb 0
+#define xd_p_reg_fft_im_exp (*(volatile byte xdata *) 0xF502)
+#define p_reg_fft_im_exp 0xF502
+#define reg_fft_im_exp_pos 0
+#define reg_fft_im_exp_len 4
+#define reg_fft_im_exp_lsb 0
+#define xd_p_reg_fft_im_mts (*(volatile byte xdata *) 0xF503)
+#define p_reg_fft_im_mts 0xF503
+#define reg_fft_im_mts_pos 0
+#define reg_fft_im_mts_len 8
+#define reg_fft_im_mts_lsb 0
+#define xd_p_reg_fft_conjugate (*(volatile byte xdata *) 0xF504)
+#define p_reg_fft_conjugate 0xF504
+#define reg_fft_conjugate_pos 0
+#define reg_fft_conjugate_len 1
+#define reg_fft_conjugate_lsb 0
+#define xd_p_reg_fft_power_en (*(volatile byte xdata *) 0xF505)
+#define p_reg_fft_power_en 0xF505
+#define reg_fft_power_en_pos 0
+#define reg_fft_power_en_len 1
+#define reg_fft_power_en_lsb 0
+#define xd_p_reg_fft_power_factor (*(volatile byte xdata *) 0xF506)
+#define p_reg_fft_power_factor 0xF506
+#define reg_fft_power_factor_pos 0
+#define reg_fft_power_factor_len 6
+#define reg_fft_power_factor_lsb 0
+#define xd_p_reg_fft_power_in (*(volatile byte xdata *) 0xF507)
+#define p_reg_fft_power_in 0xF507
+#define reg_fft_power_in_pos 0
+#define reg_fft_power_in_len 8
+#define reg_fft_power_in_lsb 0
+#define xd_p_reg_fft_mask_from0_7_0 (*(volatile byte xdata *) 0xF508)
+#define p_reg_fft_mask_from0_7_0 0xF508
+#define reg_fft_mask_from0_7_0_pos 0
+#define reg_fft_mask_from0_7_0_len 8
+#define reg_fft_mask_from0_7_0_lsb 0
+#define xd_p_reg_fft_mask_from0_12_8 (*(volatile byte xdata *) 0xF509)
+#define p_reg_fft_mask_from0_12_8 0xF509
+#define reg_fft_mask_from0_12_8_pos 0
+#define reg_fft_mask_from0_12_8_len 5
+#define reg_fft_mask_from0_12_8_lsb 8
+#define xd_p_reg_fft_mask_to0_7_0 (*(volatile byte xdata *) 0xF50A)
+#define p_reg_fft_mask_to0_7_0 0xF50A
+#define reg_fft_mask_to0_7_0_pos 0
+#define reg_fft_mask_to0_7_0_len 8
+#define reg_fft_mask_to0_7_0_lsb 0
+#define xd_p_reg_fft_mask_to0_12_8 (*(volatile byte xdata *) 0xF50B)
+#define p_reg_fft_mask_to0_12_8 0xF50B
+#define reg_fft_mask_to0_12_8_pos 0
+#define reg_fft_mask_to0_12_8_len 5
+#define reg_fft_mask_to0_12_8_lsb 8
+#define xd_p_reg_fft_mask_from1_7_0 (*(volatile byte xdata *) 0xF50C)
+#define p_reg_fft_mask_from1_7_0 0xF50C
+#define reg_fft_mask_from1_7_0_pos 0
+#define reg_fft_mask_from1_7_0_len 8
+#define reg_fft_mask_from1_7_0_lsb 0
+#define xd_p_reg_fft_mask_from1_12_8 (*(volatile byte xdata *) 0xF50D)
+#define p_reg_fft_mask_from1_12_8 0xF50D
+#define reg_fft_mask_from1_12_8_pos 0
+#define reg_fft_mask_from1_12_8_len 5
+#define reg_fft_mask_from1_12_8_lsb 8
+#define xd_p_reg_fft_mask_to1_7_0 (*(volatile byte xdata *) 0xF50E)
+#define p_reg_fft_mask_to1_7_0 0xF50E
+#define reg_fft_mask_to1_7_0_pos 0
+#define reg_fft_mask_to1_7_0_len 8
+#define reg_fft_mask_to1_7_0_lsb 0
+#define xd_p_reg_fft_mask_to1_12_8 (*(volatile byte xdata *) 0xF50F)
+#define p_reg_fft_mask_to1_12_8 0xF50F
+#define reg_fft_mask_to1_12_8_pos 0
+#define reg_fft_mask_to1_12_8_len 5
+#define reg_fft_mask_to1_12_8_lsb 8
+#define xd_p_reg_fft_mask_from2_7_0 (*(volatile byte xdata *) 0xF510)
+#define p_reg_fft_mask_from2_7_0 0xF510
+#define reg_fft_mask_from2_7_0_pos 0
+#define reg_fft_mask_from2_7_0_len 8
+#define reg_fft_mask_from2_7_0_lsb 0
+#define xd_p_reg_fft_mask_from2_12_8 (*(volatile byte xdata *) 0xF511)
+#define p_reg_fft_mask_from2_12_8 0xF511
+#define reg_fft_mask_from2_12_8_pos 0
+#define reg_fft_mask_from2_12_8_len 5
+#define reg_fft_mask_from2_12_8_lsb 8
+#define xd_p_reg_fft_mask_to2_7_0 (*(volatile byte xdata *) 0xF512)
+#define p_reg_fft_mask_to2_7_0 0xF512
+#define reg_fft_mask_to2_7_0_pos 0
+#define reg_fft_mask_to2_7_0_len 8
+#define reg_fft_mask_to2_7_0_lsb 0
+#define xd_p_reg_fft_mask_to2_12_8 (*(volatile byte xdata *) 0xF513)
+#define p_reg_fft_mask_to2_12_8 0xF513
+#define reg_fft_mask_to2_12_8_pos 0
+#define reg_fft_mask_to2_12_8_len 5
+#define reg_fft_mask_to2_12_8_lsb 8
+#define xd_p_reg_fft_mask_from3_7_0 (*(volatile byte xdata *) 0xF514)
+#define p_reg_fft_mask_from3_7_0 0xF514
+#define reg_fft_mask_from3_7_0_pos 0
+#define reg_fft_mask_from3_7_0_len 8
+#define reg_fft_mask_from3_7_0_lsb 0
+#define xd_p_reg_fft_mask_from3_12_8 (*(volatile byte xdata *) 0xF515)
+#define p_reg_fft_mask_from3_12_8 0xF515
+#define reg_fft_mask_from3_12_8_pos 0
+#define reg_fft_mask_from3_12_8_len 5
+#define reg_fft_mask_from3_12_8_lsb 8
+#define xd_p_reg_fft_mask_to3_7_0 (*(volatile byte xdata *) 0xF516)
+#define p_reg_fft_mask_to3_7_0 0xF516
+#define reg_fft_mask_to3_7_0_pos 0
+#define reg_fft_mask_to3_7_0_len 8
+#define reg_fft_mask_to3_7_0_lsb 0
+#define xd_p_reg_fft_mask_to3_12_8 (*(volatile byte xdata *) 0xF517)
+#define p_reg_fft_mask_to3_12_8 0xF517
+#define reg_fft_mask_to3_12_8_pos 0
+#define reg_fft_mask_to3_12_8_len 5
+#define reg_fft_mask_to3_12_8_lsb 8
+#define xd_r_fd_sntc_frame_num (*(volatile byte xdata *) 0xF518)
+#define r_fd_sntc_frame_num 0xF518
+#define fd_sntc_frame_num_pos 0
+#define fd_sntc_frame_num_len 2
+#define fd_sntc_frame_num_lsb 0
+#define xd_r_fd_sntc_symbol_count (*(volatile byte xdata *) 0xF519)
+#define r_fd_sntc_symbol_count 0xF519
+#define fd_sntc_symbol_count_pos 0
+#define fd_sntc_symbol_count_len 7
+#define fd_sntc_symbol_count_lsb 0
+#define xd_p_reg_sntc_cnt_lo (*(volatile byte xdata *) 0xF51A)
+#define p_reg_sntc_cnt_lo 0xF51A
+#define reg_sntc_cnt_lo_pos 0
+#define reg_sntc_cnt_lo_len 8
+#define reg_sntc_cnt_lo_lsb 0
+#define xd_p_reg_sntc_cnt_hi (*(volatile byte xdata *) 0xF51B)
+#define p_reg_sntc_cnt_hi 0xF51B
+#define reg_sntc_cnt_hi_pos 0
+#define reg_sntc_cnt_hi_len 7
+#define reg_sntc_cnt_hi_lsb 0
+#define xd_p_reg_sntc_fft_in (*(volatile byte xdata *) 0xF51C)
+#define p_reg_sntc_fft_in 0xF51C
+#define reg_sntc_fft_in_pos 0
+#define reg_sntc_fft_in_len 1
+#define reg_sntc_fft_in_lsb 0
+#define xd_r_fd_sntc_en (*(volatile byte xdata *) 0xF51D)
+#define r_fd_sntc_en 0xF51D
+#define fd_sntc_en_pos 0
+#define fd_sntc_en_len 1
+#define fd_sntc_en_lsb 0
+#define xd_p_reg_sntc_x2 (*(volatile byte xdata *) 0xF51E)
+#define p_reg_sntc_x2 0xF51E
+#define reg_sntc_x2_pos 0
+#define reg_sntc_x2_len 1
+#define reg_sntc_x2_lsb 0
+#define xd_p_reg_cge_en_7_0 (*(volatile byte xdata *) 0xF51F)
+#define p_reg_cge_en_7_0 0xF51F
+#define reg_cge_en_7_0_pos 0
+#define reg_cge_en_7_0_len 8
+#define reg_cge_en_7_0_lsb 0
+#define xd_p_reg_cge_en_15_8 (*(volatile byte xdata *) 0xF520)
+#define p_reg_cge_en_15_8 0xF520
+#define reg_cge_en_15_8_pos 0
+#define reg_cge_en_15_8_len 8
+#define reg_cge_en_15_8_lsb 8
+#define xd_p_reg_cge_en_23_16 (*(volatile byte xdata *) 0xF521)
+#define p_reg_cge_en_23_16 0xF521
+#define reg_cge_en_23_16_pos 0
+#define reg_cge_en_23_16_len 8
+#define reg_cge_en_23_16_lsb 16
+#define xd_p_reg_cge_en_31_24 (*(volatile byte xdata *) 0xF522)
+#define p_reg_cge_en_31_24 0xF522
+#define reg_cge_en_31_24_pos 0
+#define reg_cge_en_31_24_len 8
+#define reg_cge_en_31_24_lsb 24
+#define xd_p_reg_cge_en_39_32 (*(volatile byte xdata *) 0xF523)
+#define p_reg_cge_en_39_32 0xF523
+#define reg_cge_en_39_32_pos 0
+#define reg_cge_en_39_32_len 8
+#define reg_cge_en_39_32_lsb 32
+#define xd_p_reg_cge_en_43_40 (*(volatile byte xdata *) 0xF524)
+#define p_reg_cge_en_43_40 0xF524
+#define reg_cge_en_43_40_pos 0
+#define reg_cge_en_43_40_len 4
+#define reg_cge_en_43_40_lsb 40
+#define xd_p_reg_fft_sat_en (*(volatile byte xdata *) 0xF525)
+#define p_reg_fft_sat_en 0xF525
+#define reg_fft_sat_en_pos 0
+#define reg_fft_sat_en_len 1
+#define reg_fft_sat_en_lsb 0
+#define xd_p_reg_fft_sat_count_clr (*(volatile byte xdata *) 0xF526)
+#define p_reg_fft_sat_count_clr 0xF526
+#define reg_fft_sat_count_clr_pos 0
+#define reg_fft_sat_count_clr_len 1
+#define reg_fft_sat_count_clr_lsb 0
+#define xd_p_reg_fft_rescale_round (*(volatile byte xdata *) 0xF527)
+#define p_reg_fft_rescale_round 0xF527
+#define reg_fft_rescale_round_pos 0
+#define reg_fft_rescale_round_len 1
+#define reg_fft_rescale_round_lsb 0
+#define xd_r_reg_fft_sat_count_12_7_0 (*(volatile byte xdata *) 0xF528)
+#define r_reg_fft_sat_count_12_7_0 0xF528
+#define reg_fft_sat_count_12_7_0_pos 0
+#define reg_fft_sat_count_12_7_0_len 8
+#define reg_fft_sat_count_12_7_0_lsb 0
+#define xd_r_reg_fft_sat_count_12_15_8 (*(volatile byte xdata *) 0xF529)
+#define r_reg_fft_sat_count_12_15_8 0xF529
+#define reg_fft_sat_count_12_15_8_pos 0
+#define reg_fft_sat_count_12_15_8_len 8
+#define reg_fft_sat_count_12_15_8_lsb 8
+#define xd_r_reg_fft_sat_count_10_7_0 (*(volatile byte xdata *) 0xF52A)
+#define r_reg_fft_sat_count_10_7_0 0xF52A
+#define reg_fft_sat_count_10_7_0_pos 0
+#define reg_fft_sat_count_10_7_0_len 8
+#define reg_fft_sat_count_10_7_0_lsb 0
+#define xd_r_reg_fft_sat_count_10_15_8 (*(volatile byte xdata *) 0xF52B)
+#define r_reg_fft_sat_count_10_15_8 0xF52B
+#define reg_fft_sat_count_10_15_8_pos 0
+#define reg_fft_sat_count_10_15_8_len 8
+#define reg_fft_sat_count_10_15_8_lsb 8
+#define xd_p_reg_fft_capture_idx_7_0 (*(volatile byte xdata *) 0xF52C)
+#define p_reg_fft_capture_idx_7_0 0xF52C
+#define reg_fft_capture_idx_7_0_pos 0
+#define reg_fft_capture_idx_7_0_len 8
+#define reg_fft_capture_idx_7_0_lsb 0
+#define xd_p_reg_fft_capture_idx_12_8 (*(volatile byte xdata *) 0xF52D)
+#define p_reg_fft_capture_idx_12_8 0xF52D
+#define reg_fft_capture_idx_12_8_pos 0
+#define reg_fft_capture_idx_12_8_len 5
+#define reg_fft_capture_idx_12_8_lsb 8
+#define xd_p_reg_fft_capture (*(volatile byte xdata *) 0xF52E)
+#define p_reg_fft_capture 0xF52E
+#define reg_fft_capture_pos 0
+#define reg_fft_capture_len 1
+#define reg_fft_capture_lsb 0
+#define xd_p_reg_gp_trigger_fd (*(volatile byte xdata *) 0xF52F)
+#define p_reg_gp_trigger_fd 0xF52F
+#define reg_gp_trigger_fd_pos 0
+#define reg_gp_trigger_fd_len 1
+#define reg_gp_trigger_fd_lsb 0
+#define xd_p_reg_trigger_sel_fd (*(volatile byte xdata *) 0xF530)
+#define p_reg_trigger_sel_fd 0xF530
+#define reg_trigger_sel_fd_pos 0
+#define reg_trigger_sel_fd_len 2
+#define reg_trigger_sel_fd_lsb 0
+#define xd_p_reg_trigger_module_sel_fd (*(volatile byte xdata *) 0xF531)
+#define p_reg_trigger_module_sel_fd 0xF531
+#define reg_trigger_module_sel_fd_pos 0
+#define reg_trigger_module_sel_fd_len 6
+#define reg_trigger_module_sel_fd_lsb 0
+#define xd_p_reg_trigger_set_sel_fd (*(volatile byte xdata *) 0xF532)
+#define p_reg_trigger_set_sel_fd 0xF532
+#define reg_trigger_set_sel_fd_pos 0
+#define reg_trigger_set_sel_fd_len 6
+#define reg_trigger_set_sel_fd_lsb 0
+#define xd_r_reg_fft_idx_pre_max_7_0 (*(volatile byte xdata *) 0xF533)
+#define r_reg_fft_idx_pre_max_7_0 0xF533
+#define reg_fft_idx_pre_max_7_0_pos 0
+#define reg_fft_idx_pre_max_7_0_len 8
+#define reg_fft_idx_pre_max_7_0_lsb 0
+#define xd_r_reg_fft_idx_pre_max_12_8 (*(volatile byte xdata *) 0xF534)
+#define r_reg_fft_idx_pre_max_12_8 0xF534
+#define reg_fft_idx_pre_max_12_8_pos 0
+#define reg_fft_idx_pre_max_12_8_len 5
+#define reg_fft_idx_pre_max_12_8_lsb 8
+#define xd_r_reg_fft_crc (*(volatile byte xdata *) 0xF535)
+#define r_reg_fft_crc 0xF535
+#define reg_fft_crc_pos 0
+#define reg_fft_crc_len 8
+#define reg_fft_crc_lsb 0
+#define xd_p_fd_fft_shift_max (*(volatile byte xdata *) 0xF536)
+#define p_fd_fft_shift_max 0xF536
+#define fd_fft_shift_max_pos 0
+#define fd_fft_shift_max_len 4
+#define fd_fft_shift_max_lsb 0
+#define xd_p_fd_fft_frame_num (*(volatile byte xdata *) 0xF537)
+#define p_fd_fft_frame_num 0xF537
+#define fd_fft_frame_num_pos 0
+#define fd_fft_frame_num_len 2
+#define fd_fft_frame_num_lsb 0
+#define xd_p_fd_fft_symbol_count (*(volatile byte xdata *) 0xF538)
+#define p_fd_fft_symbol_count 0xF538
+#define fd_fft_symbol_count_pos 0
+#define fd_fft_symbol_count_len 7
+#define fd_fft_symbol_count_lsb 0
+#define xd_r_reg_fft_idx_max_7_0 (*(volatile byte xdata *) 0xF539)
+#define r_reg_fft_idx_max_7_0 0xF539
+#define reg_fft_idx_max_7_0_pos 0
+#define reg_fft_idx_max_7_0_len 8
+#define reg_fft_idx_max_7_0_lsb 0
+#define xd_r_reg_fft_idx_max_12_8 (*(volatile byte xdata *) 0xF53A)
+#define r_reg_fft_idx_max_12_8 0xF53A
+#define reg_fft_idx_max_12_8_pos 0
+#define reg_fft_idx_max_12_8_len 5
+#define reg_fft_idx_max_12_8_lsb 8
+#define xd_p_reg_fft_rotate_en (*(volatile byte xdata *) 0xF53B)
+#define p_reg_fft_rotate_en 0xF53B
+#define reg_fft_rotate_en_pos 0
+#define reg_fft_rotate_en_len 1
+#define reg_fft_rotate_en_lsb 0
+#define xd_p_reg_fft_rotate_base_7_0 (*(volatile byte xdata *) 0xF53C)
+#define p_reg_fft_rotate_base_7_0 0xF53C
+#define reg_fft_rotate_base_7_0_pos 0
+#define reg_fft_rotate_base_7_0_len 8
+#define reg_fft_rotate_base_7_0_lsb 0
+#define xd_p_reg_fft_rotate_base_12_8 (*(volatile byte xdata *) 0xF53D)
+#define p_reg_fft_rotate_base_12_8 0xF53D
+#define reg_fft_rotate_base_12_8_pos 0
+#define reg_fft_rotate_base_12_8_len 5
+#define reg_fft_rotate_base_12_8_lsb 8
+#define xd_r_fd_fpcc_cp_corr_signn (*(volatile byte xdata *) 0xF53E)
+#define r_fd_fpcc_cp_corr_signn 0xF53E
+#define fd_fpcc_cp_corr_signn_pos 0
+#define fd_fpcc_cp_corr_signn_len 8
+#define fd_fpcc_cp_corr_signn_lsb 0
+#define xd_p_reg_feq_s1 (*(volatile byte xdata *) 0xF53F)
+#define p_reg_feq_s1 0xF53F
+#define reg_feq_s1_pos 0
+#define reg_feq_s1_len 5
+#define reg_feq_s1_lsb 0
+#define xd_p_reg_feq_sat_ind (*(volatile byte xdata *) 0xF540)
+#define p_reg_feq_sat_ind 0xF540
+#define reg_feq_sat_ind_pos 0
+#define reg_feq_sat_ind_len 3
+#define reg_feq_sat_ind_lsb 0
+#define xd_p_reg_p_csi_cal_en (*(volatile byte xdata *) 0xF541)
+#define p_reg_p_csi_cal_en 0xF541
+#define reg_p_csi_cal_en_pos 0
+#define reg_p_csi_cal_en_len 1
+#define reg_p_csi_cal_en_lsb 0
+#define xd_p_reg_p_csi_ar_mode (*(volatile byte xdata *) 0xF542)
+#define p_reg_p_csi_ar_mode 0xF542
+#define reg_p_csi_ar_mode_pos 0
+#define reg_p_csi_ar_mode_len 2
+#define reg_p_csi_ar_mode_lsb 0
+#define xd_p_reg_p_csi_accu_sym_num (*(volatile byte xdata *) 0xF543)
+#define p_reg_p_csi_accu_sym_num 0xF543
+#define reg_p_csi_accu_sym_num_pos 0
+#define reg_p_csi_accu_sym_num_len 8
+#define reg_p_csi_accu_sym_num_lsb 0
+#define xd_p_reg_p_csi_eh2_shift_thr (*(volatile byte xdata *) 0xF544)
+#define p_reg_p_csi_eh2_shift_thr 0xF544
+#define reg_p_csi_eh2_shift_thr_pos 0
+#define reg_p_csi_eh2_shift_thr_len 4
+#define reg_p_csi_eh2_shift_thr_lsb 0
+#define xd_p_reg_p_feq_protect_eh2_shift_thr (*(volatile byte xdata *) 0xF545)
+#define p_reg_p_feq_protect_eh2_shift_thr 0xF545
+#define reg_p_feq_protect_eh2_shift_thr_pos 0
+#define reg_p_feq_protect_eh2_shift_thr_len 4
+#define reg_p_feq_protect_eh2_shift_thr_lsb 0
+#define xd_p_reg_p_csi_error_accu_s1 (*(volatile byte xdata *) 0xF546)
+#define p_reg_p_csi_error_accu_s1 0xF546
+#define reg_p_csi_error_accu_s1_pos 0
+#define reg_p_csi_error_accu_s1_len 6
+#define reg_p_csi_error_accu_s1_lsb 0
+#define xd_p_reg_p_csi_shift2 (*(volatile byte xdata *) 0xF547)
+#define p_reg_p_csi_shift2 0xF547
+#define reg_p_csi_shift2_pos 0
+#define reg_p_csi_shift2_len 4
+#define reg_p_csi_shift2_lsb 0
+#define xd_p_reg_p_csi_mul2 (*(volatile byte xdata *) 0xF548)
+#define p_reg_p_csi_mul2 0xF548
+#define reg_p_csi_mul2_pos 0
+#define reg_p_csi_mul2_len 8
+#define reg_p_csi_mul2_lsb 0
+#define xd_p_reg_p_csi_level2_7_0 (*(volatile byte xdata *) 0xF549)
+#define p_reg_p_csi_level2_7_0 0xF549
+#define reg_p_csi_level2_7_0_pos 0
+#define reg_p_csi_level2_7_0_len 8
+#define reg_p_csi_level2_7_0_lsb 0
+#define xd_p_reg_p_csi_level2_8 (*(volatile byte xdata *) 0xF54A)
+#define p_reg_p_csi_level2_8 0xF54A
+#define reg_p_csi_level2_8_pos 0
+#define reg_p_csi_level2_8_len 1
+#define reg_p_csi_level2_8_lsb 8
+#define xd_p_reg_p_feq_protect_ratio (*(volatile byte xdata *) 0xF54B)
+#define p_reg_p_feq_protect_ratio 0xF54B
+#define reg_p_feq_protect_ratio_pos 0
+#define reg_p_feq_protect_ratio_len 8
+#define reg_p_feq_protect_ratio_lsb 0
+#define xd_r_reg_csi_rdy (*(volatile byte xdata *) 0xF54C)
+#define r_reg_csi_rdy 0xF54C
+#define reg_csi_rdy_pos 0
+#define reg_csi_rdy_len 1
+#define reg_csi_rdy_lsb 0
+#define xd_p_reg_p_feq_h2protect_en (*(volatile byte xdata *) 0xF54D)
+#define p_reg_p_feq_h2protect_en 0xF54D
+#define reg_p_feq_h2protect_en_pos 0
+#define reg_p_feq_h2protect_en_len 1
+#define reg_p_feq_h2protect_en_lsb 0
+#define xd_r_reg_tpsd_lock_f0 (*(volatile byte xdata *) 0xF54E)
+#define r_reg_tpsd_lock_f0 0xF54E
+#define reg_tpsd_lock_f0_pos 0
+#define reg_tpsd_lock_f0_len 1
+#define reg_tpsd_lock_f0_lsb 0
+#define xd_r_reg_tpsd_lock_f1 (*(volatile byte xdata *) 0xF54F)
+#define r_reg_tpsd_lock_f1 0xF54F
+#define reg_tpsd_lock_f1_pos 0
+#define reg_tpsd_lock_f1_len 1
+#define reg_tpsd_lock_f1_lsb 0
+#define xd_p_reg_p_csi_sp_idx_7_0 (*(volatile byte xdata *) 0xF550)
+#define p_reg_p_csi_sp_idx_7_0 0xF550
+#define reg_p_csi_sp_idx_7_0_pos 0
+#define reg_p_csi_sp_idx_7_0_len 8
+#define reg_p_csi_sp_idx_7_0_lsb 0
+#define xd_p_reg_p_csi_sp_idx_11_8 (*(volatile byte xdata *) 0xF551)
+#define p_reg_p_csi_sp_idx_11_8 0xF551
+#define reg_p_csi_sp_idx_11_8_pos 0
+#define reg_p_csi_sp_idx_11_8_len 4
+#define reg_p_csi_sp_idx_11_8_lsb 8
+#define xd_p_fd_fpcc_cp_corr_tone_th (*(volatile byte xdata *) 0xF552)
+#define p_fd_fpcc_cp_corr_tone_th 0xF552
+#define fd_fpcc_cp_corr_tone_th_pos 0
+#define fd_fpcc_cp_corr_tone_th_len 6
+#define fd_fpcc_cp_corr_tone_th_lsb 0
+#define xd_p_fd_fpcc_cp_corr_symbol_log_th (*(volatile byte xdata *) 0xF553)
+#define p_fd_fpcc_cp_corr_symbol_log_th 0xF553
+#define fd_fpcc_cp_corr_symbol_log_th_pos 0
+#define fd_fpcc_cp_corr_symbol_log_th_len 4
+#define fd_fpcc_cp_corr_symbol_log_th_lsb 0
+#define xd_p_fd_fpcc_cp_corr_int (*(volatile byte xdata *) 0xF554)
+#define p_fd_fpcc_cp_corr_int 0xF554
+#define fd_fpcc_cp_corr_int_pos 0
+#define fd_fpcc_cp_corr_int_len 1
+#define fd_fpcc_cp_corr_int_lsb 0
+#define xd_p_reg_fpcc_cp_memidx (*(volatile byte xdata *) 0xF555)
+#define p_reg_fpcc_cp_memidx 0xF555
+#define reg_fpcc_cp_memidx_pos 0
+#define reg_fpcc_cp_memidx_len 8
+#define reg_fpcc_cp_memidx_lsb 0
+#define xd_p_reg_fpcc_cpmask_en (*(volatile byte xdata *) 0xF556)
+#define p_reg_fpcc_cpmask_en 0xF556
+#define reg_fpcc_cpmask_en_pos 0
+#define reg_fpcc_cpmask_en_len 1
+#define reg_fpcc_cpmask_en_lsb 0
+#define xd_p_reg_fpcc_cp_grpidx (*(volatile byte xdata *) 0xF557)
+#define p_reg_fpcc_cp_grpidx 0xF557
+#define reg_fpcc_cp_grpidx_pos 0
+#define reg_fpcc_cp_grpidx_len 5
+#define reg_fpcc_cp_grpidx_lsb 0
+#define xd_r_reg_fpcc_cp_sts (*(volatile byte xdata *) 0xF558)
+#define r_reg_fpcc_cp_sts 0xF558
+#define reg_fpcc_cp_sts_pos 0
+#define reg_fpcc_cp_sts_len 1
+#define reg_fpcc_cp_sts_lsb 0
+#define xd_p_reg_sfoe_ns_7_0 (*(volatile byte xdata *) 0xF559)
+#define p_reg_sfoe_ns_7_0 0xF559
+#define reg_sfoe_ns_7_0_pos 0
+#define reg_sfoe_ns_7_0_len 8
+#define reg_sfoe_ns_7_0_lsb 0
+#define xd_p_reg_sfoe_ns_14_8 (*(volatile byte xdata *) 0xF55A)
+#define p_reg_sfoe_ns_14_8 0xF55A
+#define reg_sfoe_ns_14_8_pos 0
+#define reg_sfoe_ns_14_8_len 7
+#define reg_sfoe_ns_14_8_lsb 8
+#define xd_p_reg_sfoe_c1_7_0 (*(volatile byte xdata *) 0xF55B)
+#define p_reg_sfoe_c1_7_0 0xF55B
+#define reg_sfoe_c1_7_0_pos 0
+#define reg_sfoe_c1_7_0_len 8
+#define reg_sfoe_c1_7_0_lsb 0
+#define xd_p_reg_sfoe_c1_9_8 (*(volatile byte xdata *) 0xF55C)
+#define p_reg_sfoe_c1_9_8 0xF55C
+#define reg_sfoe_c1_9_8_pos 0
+#define reg_sfoe_c1_9_8_len 2
+#define reg_sfoe_c1_9_8_lsb 8
+#define xd_p_reg_sfoe_c2_7_0 (*(volatile byte xdata *) 0xF55D)
+#define p_reg_sfoe_c2_7_0 0xF55D
+#define reg_sfoe_c2_7_0_pos 0
+#define reg_sfoe_c2_7_0_len 8
+#define reg_sfoe_c2_7_0_lsb 0
+#define xd_p_reg_sfoe_c2_9_8 (*(volatile byte xdata *) 0xF55E)
+#define p_reg_sfoe_c2_9_8 0xF55E
+#define reg_sfoe_c2_9_8_pos 0
+#define reg_sfoe_c2_9_8_len 2
+#define reg_sfoe_c2_9_8_lsb 8
+#define xd_p_reg_sfoe_lm_counter_th (*(volatile byte xdata *) 0xF55F)
+#define p_reg_sfoe_lm_counter_th 0xF55F
+#define reg_sfoe_lm_counter_th_pos 0
+#define reg_sfoe_lm_counter_th_len 4
+#define reg_sfoe_lm_counter_th_lsb 0
+#define xd_p_reg_sfoe_spec_inv (*(volatile byte xdata *) 0xF560)
+#define p_reg_sfoe_spec_inv 0xF560
+#define reg_sfoe_spec_inv_pos 0
+#define reg_sfoe_spec_inv_len 1
+#define reg_sfoe_spec_inv_lsb 0
+#define xd_p_reg_sfoe_convg_th (*(volatile byte xdata *) 0xF561)
+#define p_reg_sfoe_convg_th 0xF561
+#define reg_sfoe_convg_th_pos 0
+#define reg_sfoe_convg_th_len 8
+#define reg_sfoe_convg_th_lsb 0
+#define xd_p_reg_sfoe_divg_th (*(volatile byte xdata *) 0xF562)
+#define p_reg_sfoe_divg_th 0xF562
+#define reg_sfoe_divg_th_pos 0
+#define reg_sfoe_divg_th_len 8
+#define reg_sfoe_divg_th_lsb 0
+#define xd_p_reg_sfoe_pullin_ctr_th (*(volatile byte xdata *) 0xF563)
+#define p_reg_sfoe_pullin_ctr_th 0xF563
+#define reg_sfoe_pullin_ctr_th_pos 0
+#define reg_sfoe_pullin_ctr_th_len 4
+#define reg_sfoe_pullin_ctr_th_lsb 0
+#define xd_p_reg_sfoe_sf_ctr_th (*(volatile byte xdata *) 0xF564)
+#define p_reg_sfoe_sf_ctr_th 0xF564
+#define reg_sfoe_sf_ctr_th_pos 0
+#define reg_sfoe_sf_ctr_th_len 4
+#define reg_sfoe_sf_ctr_th_lsb 0
+#define xd_p_reg_sfoe_pullin_th (*(volatile byte xdata *) 0xF565)
+#define p_reg_sfoe_pullin_th 0xF565
+#define reg_sfoe_pullin_th_pos 0
+#define reg_sfoe_pullin_th_len 8
+#define reg_sfoe_pullin_th_lsb 0
+#define xd_p_reg_sfoe_kalman_cnt (*(volatile byte xdata *) 0xF566)
+#define p_reg_sfoe_kalman_cnt 0xF566
+#define reg_sfoe_kalman_cnt_pos 0
+#define reg_sfoe_kalman_cnt_len 4
+#define reg_sfoe_kalman_cnt_lsb 0
+#define xd_p_reg_sfoe_fsm_info (*(volatile byte xdata *) 0xF567)
+#define p_reg_sfoe_fsm_info 0xF567
+#define reg_sfoe_fsm_info_pos 0
+#define reg_sfoe_fsm_info_len 4
+#define reg_sfoe_fsm_info_lsb 0
+#define xd_r_reg_sfoe_pullin_cnt (*(volatile byte xdata *) 0xF568)
+#define r_reg_sfoe_pullin_cnt 0xF568
+#define reg_sfoe_pullin_cnt_pos 0
+#define reg_sfoe_pullin_cnt_len 4
+#define reg_sfoe_pullin_cnt_lsb 0
+#define xd_r_reg_sfoe_sf_cnt (*(volatile byte xdata *) 0xF569)
+#define r_reg_sfoe_sf_cnt 0xF569
+#define reg_sfoe_sf_cnt_pos 0
+#define reg_sfoe_sf_cnt_len 4
+#define reg_sfoe_sf_cnt_lsb 0
+#define xd_p_reg_fste_phase_ini_7_0 (*(volatile byte xdata *) 0xF56A)
+#define p_reg_fste_phase_ini_7_0 0xF56A
+#define reg_fste_phase_ini_7_0_pos 0
+#define reg_fste_phase_ini_7_0_len 8
+#define reg_fste_phase_ini_7_0_lsb 0
+#define xd_p_reg_fste_phase_ini_11_8 (*(volatile byte xdata *) 0xF56B)
+#define p_reg_fste_phase_ini_11_8 0xF56B
+#define reg_fste_phase_ini_11_8_pos 0
+#define reg_fste_phase_ini_11_8_len 4
+#define reg_fste_phase_ini_11_8_lsb 8
+#define xd_p_reg_fste_phase_inc_7_0 (*(volatile byte xdata *) 0xF56C)
+#define p_reg_fste_phase_inc_7_0 0xF56C
+#define reg_fste_phase_inc_7_0_pos 0
+#define reg_fste_phase_inc_7_0_len 8
+#define reg_fste_phase_inc_7_0_lsb 0
+#define xd_p_reg_fste_phase_inc_11_8 (*(volatile byte xdata *) 0xF56D)
+#define p_reg_fste_phase_inc_11_8 0xF56D
+#define reg_fste_phase_inc_11_8_pos 0
+#define reg_fste_phase_inc_11_8_len 4
+#define reg_fste_phase_inc_11_8_lsb 8
+#define xd_p_reg_fste_acum_cost_cnt_max (*(volatile byte xdata *) 0xF56E)
+#define p_reg_fste_acum_cost_cnt_max 0xF56E
+#define reg_fste_acum_cost_cnt_max_pos 0
+#define reg_fste_acum_cost_cnt_max_len 4
+#define reg_fste_acum_cost_cnt_max_lsb 0
+#define xd_p_reg_fste_step_size_std (*(volatile byte xdata *) 0xF56F)
+#define p_reg_fste_step_size_std 0xF56F
+#define reg_fste_step_size_std_pos 0
+#define reg_fste_step_size_std_len 4
+#define reg_fste_step_size_std_lsb 0
+#define xd_p_reg_fste_step_size_max (*(volatile byte xdata *) 0xF570)
+#define p_reg_fste_step_size_max 0xF570
+#define reg_fste_step_size_max_pos 0
+#define reg_fste_step_size_max_len 4
+#define reg_fste_step_size_max_lsb 0
+#define xd_p_reg_fste_rpd_dir_cnt_max (*(volatile byte xdata *) 0xF571)
+#define p_reg_fste_rpd_dir_cnt_max 0xF571
+#define reg_fste_rpd_dir_cnt_max_pos 0
+#define reg_fste_rpd_dir_cnt_max_len 4
+#define reg_fste_rpd_dir_cnt_max_lsb 0
+#define xd_p_reg_fste_frac_cost_cnt_max_7_0 (*(volatile byte xdata *) 0xF572)
+#define p_reg_fste_frac_cost_cnt_max_7_0 0xF572
+#define reg_fste_frac_cost_cnt_max_7_0_pos 0
+#define reg_fste_frac_cost_cnt_max_7_0_len 8
+#define reg_fste_frac_cost_cnt_max_7_0_lsb 0
+#define xd_p_reg_fste_frac_cost_cnt_max_9_8 (*(volatile byte xdata *) 0xF573)
+#define p_reg_fste_frac_cost_cnt_max_9_8 0xF573
+#define reg_fste_frac_cost_cnt_max_9_8_pos 0
+#define reg_fste_frac_cost_cnt_max_9_8_len 2
+#define reg_fste_frac_cost_cnt_max_9_8_lsb 8
+#define xd_p_reg_fste_isLongWeakTail (*(volatile byte xdata *) 0xF574)
+#define p_reg_fste_isLongWeakTail 0xF574
+#define reg_fste_isLongWeakTail_pos 0
+#define reg_fste_isLongWeakTail_len 1
+#define reg_fste_isLongWeakTail_lsb 0
+#define xd_p_reg_fste_isLongWeakHead (*(volatile byte xdata *) 0xF575)
+#define p_reg_fste_isLongWeakHead 0xF575
+#define reg_fste_isLongWeakHead_pos 0
+#define reg_fste_isLongWeakHead_len 1
+#define reg_fste_isLongWeakHead_lsb 0
+#define xd_p_reg_fste_w0_7_0 (*(volatile byte xdata *) 0xF576)
+#define p_reg_fste_w0_7_0 0xF576
+#define reg_fste_w0_7_0_pos 0
+#define reg_fste_w0_7_0_len 8
+#define reg_fste_w0_7_0_lsb 0
+#define xd_p_reg_fste_w0_9_8 (*(volatile byte xdata *) 0xF577)
+#define p_reg_fste_w0_9_8 0xF577
+#define reg_fste_w0_9_8_pos 0
+#define reg_fste_w0_9_8_len 2
+#define reg_fste_w0_9_8_lsb 8
+#define xd_p_reg_fste_w1_7_0 (*(volatile byte xdata *) 0xF578)
+#define p_reg_fste_w1_7_0 0xF578
+#define reg_fste_w1_7_0_pos 0
+#define reg_fste_w1_7_0_len 8
+#define reg_fste_w1_7_0_lsb 0
+#define xd_p_reg_fste_w1_9_8 (*(volatile byte xdata *) 0xF579)
+#define p_reg_fste_w1_9_8 0xF579
+#define reg_fste_w1_9_8_pos 0
+#define reg_fste_w1_9_8_len 2
+#define reg_fste_w1_9_8_lsb 8
+#define xd_p_reg_fste_w2_7_0 (*(volatile byte xdata *) 0xF57A)
+#define p_reg_fste_w2_7_0 0xF57A
+#define reg_fste_w2_7_0_pos 0
+#define reg_fste_w2_7_0_len 8
+#define reg_fste_w2_7_0_lsb 0
+#define xd_p_reg_fste_w2_9_8 (*(volatile byte xdata *) 0xF57B)
+#define p_reg_fste_w2_9_8 0xF57B
+#define reg_fste_w2_9_8_pos 0
+#define reg_fste_w2_9_8_len 2
+#define reg_fste_w2_9_8_lsb 8
+#define xd_p_reg_fste_w3_7_0 (*(volatile byte xdata *) 0xF57C)
+#define p_reg_fste_w3_7_0 0xF57C
+#define reg_fste_w3_7_0_pos 0
+#define reg_fste_w3_7_0_len 8
+#define reg_fste_w3_7_0_lsb 0
+#define xd_p_reg_fste_w3_9_8 (*(volatile byte xdata *) 0xF57D)
+#define p_reg_fste_w3_9_8 0xF57D
+#define reg_fste_w3_9_8_pos 0
+#define reg_fste_w3_9_8_len 2
+#define reg_fste_w3_9_8_lsb 8
+#define xd_p_reg_fste_w4_7_0 (*(volatile byte xdata *) 0xF57E)
+#define p_reg_fste_w4_7_0 0xF57E
+#define reg_fste_w4_7_0_pos 0
+#define reg_fste_w4_7_0_len 8
+#define reg_fste_w4_7_0_lsb 0
+#define xd_p_reg_fste_w4_9_8 (*(volatile byte xdata *) 0xF57F)
+#define p_reg_fste_w4_9_8 0xF57F
+#define reg_fste_w4_9_8_pos 0
+#define reg_fste_w4_9_8_len 2
+#define reg_fste_w4_9_8_lsb 8
+#define xd_p_reg_fste_w5_7_0 (*(volatile byte xdata *) 0xF580)
+#define p_reg_fste_w5_7_0 0xF580
+#define reg_fste_w5_7_0_pos 0
+#define reg_fste_w5_7_0_len 8
+#define reg_fste_w5_7_0_lsb 0
+#define xd_p_reg_fste_w5_9_8 (*(volatile byte xdata *) 0xF581)
+#define p_reg_fste_w5_9_8 0xF581
+#define reg_fste_w5_9_8_pos 0
+#define reg_fste_w5_9_8_len 2
+#define reg_fste_w5_9_8_lsb 8
+#define xd_p_reg_fste_w6_7_0 (*(volatile byte xdata *) 0xF582)
+#define p_reg_fste_w6_7_0 0xF582
+#define reg_fste_w6_7_0_pos 0
+#define reg_fste_w6_7_0_len 8
+#define reg_fste_w6_7_0_lsb 0
+#define xd_p_reg_fste_w6_9_8 (*(volatile byte xdata *) 0xF583)
+#define p_reg_fste_w6_9_8 0xF583
+#define reg_fste_w6_9_8_pos 0
+#define reg_fste_w6_9_8_len 2
+#define reg_fste_w6_9_8_lsb 8
+#define xd_p_reg_fste_w7_7_0 (*(volatile byte xdata *) 0xF584)
+#define p_reg_fste_w7_7_0 0xF584
+#define reg_fste_w7_7_0_pos 0
+#define reg_fste_w7_7_0_len 8
+#define reg_fste_w7_7_0_lsb 0
+#define xd_p_reg_fste_w7_9_8 (*(volatile byte xdata *) 0xF585)
+#define p_reg_fste_w7_9_8 0xF585
+#define reg_fste_w7_9_8_pos 0
+#define reg_fste_w7_9_8_len 2
+#define reg_fste_w7_9_8_lsb 8
+#define xd_p_reg_fste_w8_7_0 (*(volatile byte xdata *) 0xF586)
+#define p_reg_fste_w8_7_0 0xF586
+#define reg_fste_w8_7_0_pos 0
+#define reg_fste_w8_7_0_len 8
+#define reg_fste_w8_7_0_lsb 0
+#define xd_p_reg_fste_w8_9_8 (*(volatile byte xdata *) 0xF587)
+#define p_reg_fste_w8_9_8 0xF587
+#define reg_fste_w8_9_8_pos 0
+#define reg_fste_w8_9_8_len 2
+#define reg_fste_w8_9_8_lsb 8
+#define xd_p_reg_fste_w9_7_0 (*(volatile byte xdata *) 0xF588)
+#define p_reg_fste_w9_7_0 0xF588
+#define reg_fste_w9_7_0_pos 0
+#define reg_fste_w9_7_0_len 8
+#define reg_fste_w9_7_0_lsb 0
+#define xd_p_reg_fste_w9_9_8 (*(volatile byte xdata *) 0xF589)
+#define p_reg_fste_w9_9_8 0xF589
+#define reg_fste_w9_9_8_pos 0
+#define reg_fste_w9_9_8_len 2
+#define reg_fste_w9_9_8_lsb 8
+#define xd_p_reg_fste_wa_7_0 (*(volatile byte xdata *) 0xF58A)
+#define p_reg_fste_wa_7_0 0xF58A
+#define reg_fste_wa_7_0_pos 0
+#define reg_fste_wa_7_0_len 8
+#define reg_fste_wa_7_0_lsb 0
+#define xd_p_reg_fste_wa_9_8 (*(volatile byte xdata *) 0xF58B)
+#define p_reg_fste_wa_9_8 0xF58B
+#define reg_fste_wa_9_8_pos 0
+#define reg_fste_wa_9_8_len 2
+#define reg_fste_wa_9_8_lsb 8
+#define xd_p_reg_fste_wb_7_0 (*(volatile byte xdata *) 0xF58C)
+#define p_reg_fste_wb_7_0 0xF58C
+#define reg_fste_wb_7_0_pos 0
+#define reg_fste_wb_7_0_len 8
+#define reg_fste_wb_7_0_lsb 0
+#define xd_p_reg_fste_wb_9_8 (*(volatile byte xdata *) 0xF58D)
+#define p_reg_fste_wb_9_8 0xF58D
+#define reg_fste_wb_9_8_pos 0
+#define reg_fste_wb_9_8_len 2
+#define reg_fste_wb_9_8_lsb 8
+#define xd_p_reg_fste_wc_7_0 (*(volatile byte xdata *) 0xF58E)
+#define p_reg_fste_wc_7_0 0xF58E
+#define reg_fste_wc_7_0_pos 0
+#define reg_fste_wc_7_0_len 8
+#define reg_fste_wc_7_0_lsb 0
+#define xd_p_reg_fste_wc_9_8 (*(volatile byte xdata *) 0xF58F)
+#define p_reg_fste_wc_9_8 0xF58F
+#define reg_fste_wc_9_8_pos 0
+#define reg_fste_wc_9_8_len 2
+#define reg_fste_wc_9_8_lsb 8
+#define xd_p_reg_fste_wd_7_0 (*(volatile byte xdata *) 0xF590)
+#define p_reg_fste_wd_7_0 0xF590
+#define reg_fste_wd_7_0_pos 0
+#define reg_fste_wd_7_0_len 8
+#define reg_fste_wd_7_0_lsb 0
+#define xd_p_reg_fste_wd_9_8 (*(volatile byte xdata *) 0xF591)
+#define p_reg_fste_wd_9_8 0xF591
+#define reg_fste_wd_9_8_pos 0
+#define reg_fste_wd_9_8_len 2
+#define reg_fste_wd_9_8_lsb 8
+#define xd_p_reg_fste_we_7_0 (*(volatile byte xdata *) 0xF592)
+#define p_reg_fste_we_7_0 0xF592
+#define reg_fste_we_7_0_pos 0
+#define reg_fste_we_7_0_len 8
+#define reg_fste_we_7_0_lsb 0
+#define xd_p_reg_fste_we_9_8 (*(volatile byte xdata *) 0xF593)
+#define p_reg_fste_we_9_8 0xF593
+#define reg_fste_we_9_8_pos 0
+#define reg_fste_we_9_8_len 2
+#define reg_fste_we_9_8_lsb 8
+#define xd_p_reg_fste_wf_7_0 (*(volatile byte xdata *) 0xF594)
+#define p_reg_fste_wf_7_0 0xF594
+#define reg_fste_wf_7_0_pos 0
+#define reg_fste_wf_7_0_len 8
+#define reg_fste_wf_7_0_lsb 0
+#define xd_p_reg_fste_wf_9_8 (*(volatile byte xdata *) 0xF595)
+#define p_reg_fste_wf_9_8 0xF595
+#define reg_fste_wf_9_8_pos 0
+#define reg_fste_wf_9_8_len 2
+#define reg_fste_wf_9_8_lsb 8
+#define xd_p_reg_fste_wg_7_0 (*(volatile byte xdata *) 0xF596)
+#define p_reg_fste_wg_7_0 0xF596
+#define reg_fste_wg_7_0_pos 0
+#define reg_fste_wg_7_0_len 8
+#define reg_fste_wg_7_0_lsb 0
+#define xd_p_reg_fste_wg_9_8 (*(volatile byte xdata *) 0xF597)
+#define p_reg_fste_wg_9_8 0xF597
+#define reg_fste_wg_9_8_pos 0
+#define reg_fste_wg_9_8_len 2
+#define reg_fste_wg_9_8_lsb 8
+#define xd_p_reg_fste_wh_7_0 (*(volatile byte xdata *) 0xF598)
+#define p_reg_fste_wh_7_0 0xF598
+#define reg_fste_wh_7_0_pos 0
+#define reg_fste_wh_7_0_len 8
+#define reg_fste_wh_7_0_lsb 0
+#define xd_p_reg_fste_wh_9_8 (*(volatile byte xdata *) 0xF599)
+#define p_reg_fste_wh_9_8 0xF599
+#define reg_fste_wh_9_8_pos 0
+#define reg_fste_wh_9_8_len 2
+#define reg_fste_wh_9_8_lsb 8
+#define xd_r_fd_fste_i_adj_org (*(volatile byte xdata *) 0xF59A)
+#define r_fd_fste_i_adj_org 0xF59A
+#define fd_fste_i_adj_org_pos 0
+#define fd_fste_i_adj_org_len 5
+#define fd_fste_i_adj_org_lsb 0
+#define xd_r_fd_fste_f_adj_7_0 (*(volatile byte xdata *) 0xF59B)
+#define r_fd_fste_f_adj_7_0 0xF59B
+#define fd_fste_f_adj_7_0_pos 0
+#define fd_fste_f_adj_7_0_len 8
+#define fd_fste_f_adj_7_0_lsb 0
+#define xd_r_fd_fste_f_adj_15_8 (*(volatile byte xdata *) 0xF59C)
+#define r_fd_fste_f_adj_15_8 0xF59C
+#define fd_fste_f_adj_15_8_pos 0
+#define fd_fste_f_adj_15_8_len 8
+#define fd_fste_f_adj_15_8_lsb 8
+#define xd_r_fd_fste_f_adj_19_16 (*(volatile byte xdata *) 0xF59D)
+#define r_fd_fste_f_adj_19_16 0xF59D
+#define fd_fste_f_adj_19_16_pos 0
+#define fd_fste_f_adj_19_16_len 4
+#define fd_fste_f_adj_19_16_lsb 16
+#define xd_p_reg_fste_ehw_7_0 (*(volatile byte xdata *) 0xF59E)
+#define p_reg_fste_ehw_7_0 0xF59E
+#define reg_fste_ehw_7_0_pos 0
+#define reg_fste_ehw_7_0_len 8
+#define reg_fste_ehw_7_0_lsb 0
+#define xd_p_reg_fste_ehw_12_8 (*(volatile byte xdata *) 0xF59F)
+#define p_reg_fste_ehw_12_8 0xF59F
+#define reg_fste_ehw_12_8_pos 0
+#define reg_fste_ehw_12_8_len 5
+#define reg_fste_ehw_12_8_lsb 8
+#define xd_p_reg_fste_i_adj_vld (*(volatile byte xdata *) 0xF5A0)
+#define p_reg_fste_i_adj_vld 0xF5A0
+#define reg_fste_i_adj_vld_pos 0
+#define reg_fste_i_adj_vld_len 1
+#define reg_fste_i_adj_vld_lsb 0
+#define xd_p_reg_fste_ceTimesPhasor_real (*(volatile byte xdata *) 0xF5A1)
+#define p_reg_fste_ceTimesPhasor_real 0xF5A1
+#define reg_fste_ceTimesPhasor_real_pos 0
+#define reg_fste_ceTimesPhasor_real_len 1
+#define reg_fste_ceTimesPhasor_real_lsb 0
+#define xd_p_reg_fste_ceTimesPhasor_imag (*(volatile byte xdata *) 0xF5A2)
+#define p_reg_fste_ceTimesPhasor_imag 0xF5A2
+#define reg_fste_ceTimesPhasor_imag_pos 0
+#define reg_fste_ceTimesPhasor_imag_len 1
+#define reg_fste_ceTimesPhasor_imag_lsb 0
+#define xd_p_reg_fste_cerTimesW_real (*(volatile byte xdata *) 0xF5A3)
+#define p_reg_fste_cerTimesW_real 0xF5A3
+#define reg_fste_cerTimesW_real_pos 0
+#define reg_fste_cerTimesW_real_len 1
+#define reg_fste_cerTimesW_real_lsb 0
+#define xd_p_reg_fste_cerTimesW_imag (*(volatile byte xdata *) 0xF5A4)
+#define p_reg_fste_cerTimesW_imag 0xF5A4
+#define reg_fste_cerTimesW_imag_pos 0
+#define reg_fste_cerTimesW_imag_len 1
+#define reg_fste_cerTimesW_imag_lsb 0
+#define xd_p_reg_fste_cerTimesWAccum_real (*(volatile byte xdata *) 0xF5A5)
+#define p_reg_fste_cerTimesWAccum_real 0xF5A5
+#define reg_fste_cerTimesWAccum_real_pos 0
+#define reg_fste_cerTimesWAccum_real_len 1
+#define reg_fste_cerTimesWAccum_real_lsb 0
+#define xd_p_reg_fste_cerTimesWAccum_imag (*(volatile byte xdata *) 0xF5A6)
+#define p_reg_fste_cerTimesWAccum_imag 0xF5A6
+#define reg_fste_cerTimesWAccum_imag_pos 0
+#define reg_fste_cerTimesWAccum_imag_len 1
+#define reg_fste_cerTimesWAccum_imag_lsb 0
+#define xd_p_reg_fste_cost (*(volatile byte xdata *) 0xF5A7)
+#define p_reg_fste_cost 0xF5A7
+#define reg_fste_cost_pos 0
+#define reg_fste_cost_len 1
+#define reg_fste_cost_lsb 0
+#define xd_p_fd_tpsd_en (*(volatile byte xdata *) 0xF5A8)
+#define p_fd_tpsd_en 0xF5A8
+#define fd_tpsd_en_pos 0
+#define fd_tpsd_en_len 1
+#define fd_tpsd_en_lsb 0
+#define xd_p_fd_tpsd_lock (*(volatile byte xdata *) 0xF5A9)
+#define p_fd_tpsd_lock 0xF5A9
+#define fd_tpsd_lock_pos 0
+#define fd_tpsd_lock_len 1
+#define fd_tpsd_lock_lsb 0
+#define xd_r_fd_tpsd_s19 (*(volatile byte xdata *) 0xF5AA)
+#define r_fd_tpsd_s19 0xF5AA
+#define fd_tpsd_s19_pos 0
+#define fd_tpsd_s19_len 1
+#define fd_tpsd_s19_lsb 0
+#define xd_r_fd_tpsd_s17 (*(volatile byte xdata *) 0xF5AB)
+#define r_fd_tpsd_s17 0xF5AB
+#define fd_tpsd_s17_pos 0
+#define fd_tpsd_s17_len 1
+#define fd_tpsd_s17_lsb 0
+#define xd_p_fd_sfr_ste_en (*(volatile byte xdata *) 0xF5AC)
+#define p_fd_sfr_ste_en 0xF5AC
+#define fd_sfr_ste_en_pos 0
+#define fd_sfr_ste_en_len 1
+#define fd_sfr_ste_en_lsb 0
+#define xd_p_fd_sfr_ste_mode (*(volatile byte xdata *) 0xF5AD)
+#define p_fd_sfr_ste_mode 0xF5AD
+#define fd_sfr_ste_mode_pos 0
+#define fd_sfr_ste_mode_len 2
+#define fd_sfr_ste_mode_lsb 0
+#define xd_p_fd_sfr_ste_done (*(volatile byte xdata *) 0xF5AE)
+#define p_fd_sfr_ste_done 0xF5AE
+#define fd_sfr_ste_done_pos 0
+#define fd_sfr_ste_done_len 1
+#define fd_sfr_ste_done_lsb 0
+#define xd_p_reg_cfoe_ffoe_en (*(volatile byte xdata *) 0xF5AF)
+#define p_reg_cfoe_ffoe_en 0xF5AF
+#define reg_cfoe_ffoe_en_pos 0
+#define reg_cfoe_ffoe_en_len 1
+#define reg_cfoe_ffoe_en_lsb 0
+#define xd_p_reg_cfoe_ifoe_en (*(volatile byte xdata *) 0xF5B0)
+#define p_reg_cfoe_ifoe_en 0xF5B0
+#define reg_cfoe_ifoe_en_pos 0
+#define reg_cfoe_ifoe_en_len 1
+#define reg_cfoe_ifoe_en_lsb 0
+#define xd_p_reg_cfoe_fot_en (*(volatile byte xdata *) 0xF5B1)
+#define p_reg_cfoe_fot_en 0xF5B1
+#define reg_cfoe_fot_en_pos 0
+#define reg_cfoe_fot_en_len 1
+#define reg_cfoe_fot_en_lsb 0
+#define xd_p_reg_cfoe_fot_lm_en (*(volatile byte xdata *) 0xF5B2)
+#define p_reg_cfoe_fot_lm_en 0xF5B2
+#define reg_cfoe_fot_lm_en_pos 0
+#define reg_cfoe_fot_lm_en_len 1
+#define reg_cfoe_fot_lm_en_lsb 0
+#define xd_p_reg_cfoe_fot_rst (*(volatile byte xdata *) 0xF5B3)
+#define p_reg_cfoe_fot_rst 0xF5B3
+#define reg_cfoe_fot_rst_pos 0
+#define reg_cfoe_fot_rst_len 1
+#define reg_cfoe_fot_rst_lsb 0
+#define xd_r_fd_cfoe_ffoe_done (*(volatile byte xdata *) 0xF5B4)
+#define r_fd_cfoe_ffoe_done 0xF5B4
+#define fd_cfoe_ffoe_done_pos 0
+#define fd_cfoe_ffoe_done_len 1
+#define fd_cfoe_ffoe_done_lsb 0
+#define xd_p_fd_cfoe_metric_vld (*(volatile byte xdata *) 0xF5B5)
+#define p_fd_cfoe_metric_vld 0xF5B5
+#define fd_cfoe_metric_vld_pos 0
+#define fd_cfoe_metric_vld_len 1
+#define fd_cfoe_metric_vld_lsb 0
+#define xd_p_reg_cfoe_ifod_vld (*(volatile byte xdata *) 0xF5B6)
+#define p_reg_cfoe_ifod_vld 0xF5B6
+#define reg_cfoe_ifod_vld_pos 0
+#define reg_cfoe_ifod_vld_len 1
+#define reg_cfoe_ifod_vld_lsb 0
+#define xd_r_fd_cfoe_ifoe_done (*(volatile byte xdata *) 0xF5B7)
+#define r_fd_cfoe_ifoe_done 0xF5B7
+#define fd_cfoe_ifoe_done_pos 0
+#define fd_cfoe_ifoe_done_len 1
+#define fd_cfoe_ifoe_done_lsb 0
+#define xd_p_reg_cfoe_ifoe_spec_inv (*(volatile byte xdata *) 0xF5B8)
+#define p_reg_cfoe_ifoe_spec_inv 0xF5B8
+#define reg_cfoe_ifoe_spec_inv_pos 0
+#define reg_cfoe_ifoe_spec_inv_len 1
+#define reg_cfoe_ifoe_spec_inv_lsb 0
+#define xd_p_reg_cfoe_divg_int (*(volatile byte xdata *) 0xF5B9)
+#define p_reg_cfoe_divg_int 0xF5B9
+#define reg_cfoe_divg_int_pos 0
+#define reg_cfoe_divg_int_len 1
+#define reg_cfoe_divg_int_lsb 0
+#define xd_r_reg_cfoe_divg_flag (*(volatile byte xdata *) 0xF5BA)
+#define r_reg_cfoe_divg_flag 0xF5BA
+#define reg_cfoe_divg_flag_pos 0
+#define reg_cfoe_divg_flag_len 1
+#define reg_cfoe_divg_flag_lsb 0
+#define xd_p_reg_sfoe_en (*(volatile byte xdata *) 0xF5BB)
+#define p_reg_sfoe_en 0xF5BB
+#define reg_sfoe_en_pos 0
+#define reg_sfoe_en_len 1
+#define reg_sfoe_en_lsb 0
+#define xd_p_reg_sfoe_dis (*(volatile byte xdata *) 0xF5BC)
+#define p_reg_sfoe_dis 0xF5BC
+#define reg_sfoe_dis_pos 0
+#define reg_sfoe_dis_len 1
+#define reg_sfoe_dis_lsb 0
+#define xd_p_reg_sfoe_rst (*(volatile byte xdata *) 0xF5BD)
+#define p_reg_sfoe_rst 0xF5BD
+#define reg_sfoe_rst_pos 0
+#define reg_sfoe_rst_len 1
+#define reg_sfoe_rst_lsb 0
+#define xd_p_reg_sfoe_vld_int (*(volatile byte xdata *) 0xF5BE)
+#define p_reg_sfoe_vld_int 0xF5BE
+#define reg_sfoe_vld_int_pos 0
+#define reg_sfoe_vld_int_len 1
+#define reg_sfoe_vld_int_lsb 0
+#define xd_p_reg_sfoe_lm_en (*(volatile byte xdata *) 0xF5BF)
+#define p_reg_sfoe_lm_en 0xF5BF
+#define reg_sfoe_lm_en_pos 0
+#define reg_sfoe_lm_en_len 1
+#define reg_sfoe_lm_en_lsb 0
+#define xd_p_reg_sfoe_divg_int (*(volatile byte xdata *) 0xF5C0)
+#define p_reg_sfoe_divg_int 0xF5C0
+#define reg_sfoe_divg_int_pos 0
+#define reg_sfoe_divg_int_len 1
+#define reg_sfoe_divg_int_lsb 0
+#define xd_r_reg_sfoe_divg_flag (*(volatile byte xdata *) 0xF5C1)
+#define r_reg_sfoe_divg_flag 0xF5C1
+#define reg_sfoe_divg_flag_pos 0
+#define reg_sfoe_divg_flag_len 1
+#define reg_sfoe_divg_flag_lsb 0
+#define xd_p_reg_fft_rst (*(volatile byte xdata *) 0xF5C2)
+#define p_reg_fft_rst 0xF5C2
+#define reg_fft_rst_pos 0
+#define reg_fft_rst_len 1
+#define reg_fft_rst_lsb 0
+#define xd_p_reg_fft_mask2_en (*(volatile byte xdata *) 0xF5C3)
+#define p_reg_fft_mask2_en 0xF5C3
+#define reg_fft_mask2_en_pos 0
+#define reg_fft_mask2_en_len 1
+#define reg_fft_mask2_en_lsb 0
+#define xd_p_reg_fft_mask3_en (*(volatile byte xdata *) 0xF5C4)
+#define p_reg_fft_mask3_en 0xF5C4
+#define reg_fft_mask3_en_pos 0
+#define reg_fft_mask3_en_len 1
+#define reg_fft_mask3_en_lsb 0
+#define xd_p_reg_fft_crc_en (*(volatile byte xdata *) 0xF5C5)
+#define p_reg_fft_crc_en 0xF5C5
+#define reg_fft_crc_en_pos 0
+#define reg_fft_crc_en_len 1
+#define reg_fft_crc_en_lsb 0
+#define xd_p_reg_fft_mask0_en (*(volatile byte xdata *) 0xF5C6)
+#define p_reg_fft_mask0_en 0xF5C6
+#define reg_fft_mask0_en_pos 0
+#define reg_fft_mask0_en_len 1
+#define reg_fft_mask0_en_lsb 0
+#define xd_p_reg_fft_mask1_en (*(volatile byte xdata *) 0xF5C7)
+#define p_reg_fft_mask1_en 0xF5C7
+#define reg_fft_mask1_en_pos 0
+#define reg_fft_mask1_en_len 1
+#define reg_fft_mask1_en_lsb 0
+#define xd_p_fd_fste_en (*(volatile byte xdata *) 0xF5C8)
+#define p_fd_fste_en 0xF5C8
+#define fd_fste_en_pos 0
+#define fd_fste_en_len 1
+#define fd_fste_en_lsb 0
+#define xd_p_reg_feq_eh2_comp_en (*(volatile byte xdata *) 0xF5C9)
+#define p_reg_feq_eh2_comp_en 0xF5C9
+#define reg_feq_eh2_comp_en_pos 0
+#define reg_feq_eh2_comp_en_len 1
+#define reg_feq_eh2_comp_en_lsb 0
+#define xd_p_reg_feq_read_update (*(volatile byte xdata *) 0xF5CA)
+#define p_reg_feq_read_update 0xF5CA
+#define reg_feq_read_update_pos 0
+#define reg_feq_read_update_len 1
+#define reg_feq_read_update_lsb 0
+#define xd_p_reg_feq_data_vld (*(volatile byte xdata *) 0xF5CB)
+#define p_reg_feq_data_vld 0xF5CB
+#define reg_feq_data_vld_pos 0
+#define reg_feq_data_vld_len 1
+#define reg_feq_data_vld_lsb 0
+#define xd_p_reg_feq_tone_idx_7_0 (*(volatile byte xdata *) 0xF5CC)
+#define p_reg_feq_tone_idx_7_0 0xF5CC
+#define reg_feq_tone_idx_7_0_pos 0
+#define reg_feq_tone_idx_7_0_len 8
+#define reg_feq_tone_idx_7_0_lsb 0
+#define xd_p_reg_feq_tone_idx_12_8 (*(volatile byte xdata *) 0xF5CD)
+#define p_reg_feq_tone_idx_12_8 0xF5CD
+#define reg_feq_tone_idx_12_8_pos 0
+#define reg_feq_tone_idx_12_8_len 5
+#define reg_feq_tone_idx_12_8_lsb 8
+#define xd_r_reg_feq_data_re_7_0 (*(volatile byte xdata *) 0xF5CE)
+#define r_reg_feq_data_re_7_0 0xF5CE
+#define reg_feq_data_re_7_0_pos 0
+#define reg_feq_data_re_7_0_len 8
+#define reg_feq_data_re_7_0_lsb 0
+#define xd_r_reg_feq_data_re_15_8 (*(volatile byte xdata *) 0xF5CF)
+#define r_reg_feq_data_re_15_8 0xF5CF
+#define reg_feq_data_re_15_8_pos 0
+#define reg_feq_data_re_15_8_len 8
+#define reg_feq_data_re_15_8_lsb 8
+#define xd_r_reg_feq_data_re_21_16 (*(volatile byte xdata *) 0xF5D0)
+#define r_reg_feq_data_re_21_16 0xF5D0
+#define reg_feq_data_re_21_16_pos 0
+#define reg_feq_data_re_21_16_len 6
+#define reg_feq_data_re_21_16_lsb 16
+#define xd_r_reg_feq_data_im_7_0 (*(volatile byte xdata *) 0xF5D1)
+#define r_reg_feq_data_im_7_0 0xF5D1
+#define reg_feq_data_im_7_0_pos 0
+#define reg_feq_data_im_7_0_len 8
+#define reg_feq_data_im_7_0_lsb 0
+#define xd_r_reg_feq_data_im_15_8 (*(volatile byte xdata *) 0xF5D2)
+#define r_reg_feq_data_im_15_8 0xF5D2
+#define reg_feq_data_im_15_8_pos 0
+#define reg_feq_data_im_15_8_len 8
+#define reg_feq_data_im_15_8_lsb 8
+#define xd_r_reg_feq_data_im_21_16 (*(volatile byte xdata *) 0xF5D3)
+#define r_reg_feq_data_im_21_16 0xF5D3
+#define reg_feq_data_im_21_16_pos 0
+#define reg_feq_data_im_21_16_len 6
+#define reg_feq_data_im_21_16_lsb 16
+#define xd_r_reg_feq_data_h2_7_0 (*(volatile byte xdata *) 0xF5D4)
+#define r_reg_feq_data_h2_7_0 0xF5D4
+#define reg_feq_data_h2_7_0_pos 0
+#define reg_feq_data_h2_7_0_len 8
+#define reg_feq_data_h2_7_0_lsb 0
+#define xd_r_reg_feq_data_h2_15_8 (*(volatile byte xdata *) 0xF5D5)
+#define r_reg_feq_data_h2_15_8 0xF5D5
+#define reg_feq_data_h2_15_8_pos 0
+#define reg_feq_data_h2_15_8_len 8
+#define reg_feq_data_h2_15_8_lsb 8
+#define xd_r_reg_feq_data_h2_18_16 (*(volatile byte xdata *) 0xF5D6)
+#define r_reg_feq_data_h2_18_16 0xF5D6
+#define reg_feq_data_h2_18_16_pos 0
+#define reg_feq_data_h2_18_16_len 3
+#define reg_feq_data_h2_18_16_lsb 16
+#define xd_p_reg_fs_en (*(volatile byte xdata *) 0xF5D7)
+#define p_reg_fs_en 0xF5D7
+#define reg_fs_en_pos 0
+#define reg_fs_en_len 1
+#define reg_fs_en_lsb 0
+#define xd_p_reg_fs_offset (*(volatile byte xdata *) 0xF5D8)
+#define p_reg_fs_offset 0xF5D8
+#define reg_fs_offset_pos 0
+#define reg_fs_offset_len 3
+#define reg_fs_offset_lsb 0
+#define xd_p_reg_fs_debug (*(volatile byte xdata *) 0xF5D9)
+#define p_reg_fs_debug 0xF5D9
+#define reg_fs_debug_pos 0
+#define reg_fs_debug_len 1
+#define reg_fs_debug_lsb 0
+#define xd_p_reg_fs_half_inv (*(volatile byte xdata *) 0xF5DA)
+#define p_reg_fs_half_inv 0xF5DA
+#define reg_fs_half_inv_pos 0
+#define reg_fs_half_inv_len 1
+#define reg_fs_half_inv_lsb 0
+#define xd_p_reg_cdpf_currentfftposition_7_0 (*(volatile byte xdata *) 0xF5DB)
+#define p_reg_cdpf_currentfftposition_7_0 0xF5DB
+#define reg_cdpf_currentfftposition_7_0_pos 0
+#define reg_cdpf_currentfftposition_7_0_len 8
+#define reg_cdpf_currentfftposition_7_0_lsb 0
+#define xd_p_reg_cdpf_currentfftposition_14_8 (*(volatile byte xdata *) 0xF5DC)
+#define p_reg_cdpf_currentfftposition_14_8 0xF5DC
+#define reg_cdpf_currentfftposition_14_8_pos 0
+#define reg_cdpf_currentfftposition_14_8_len 7
+#define reg_cdpf_currentfftposition_14_8_lsb 8
+#define xd_r_reg_cdpf_fftshift_7_0 (*(volatile byte xdata *) 0xF5DD)
+#define r_reg_cdpf_fftshift_7_0 0xF5DD
+#define reg_cdpf_fftshift_7_0_pos 0
+#define reg_cdpf_fftshift_7_0_len 8
+#define reg_cdpf_fftshift_7_0_lsb 0
+#define xd_r_reg_cdpf_fftshift_13_8 (*(volatile byte xdata *) 0xF5DE)
+#define r_reg_cdpf_fftshift_13_8 0xF5DE
+#define reg_cdpf_fftshift_13_8_pos 0
+#define reg_cdpf_fftshift_13_8_len 6
+#define reg_cdpf_fftshift_13_8_lsb 8
+#define xd_p_reg_cdpf_channelpowerdown_7_0 (*(volatile byte xdata *) 0xF5DF)
+#define p_reg_cdpf_channelpowerdown_7_0 0xF5DF
+#define reg_cdpf_channelpowerdown_7_0_pos 0
+#define reg_cdpf_channelpowerdown_7_0_len 8
+#define reg_cdpf_channelpowerdown_7_0_lsb 0
+#define xd_p_reg_cdpf_channelpowerdown_10_8 (*(volatile byte xdata *) 0xF5E0)
+#define p_reg_cdpf_channelpowerdown_10_8 0xF5E0
+#define reg_cdpf_channelpowerdown_10_8_pos 0
+#define reg_cdpf_channelpowerdown_10_8_len 3
+#define reg_cdpf_channelpowerdown_10_8_lsb 8
+#define xd_p_reg_cdpf_state (*(volatile byte xdata *) 0xF5E1)
+#define p_reg_cdpf_state 0xF5E1
+#define reg_cdpf_state_pos 0
+#define reg_cdpf_state_len 4
+#define reg_cdpf_state_lsb 0
+#define xd_p_reg_cdpf_echotestsearchingrange (*(volatile byte xdata *) 0xF5E2)
+#define p_reg_cdpf_echotestsearchingrange 0xF5E2
+#define reg_cdpf_echotestsearchingrange_pos 0
+#define reg_cdpf_echotestsearchingrange_len 8
+#define reg_cdpf_echotestsearchingrange_lsb 0
+#define xd_p_reg_cdpf_rxsymboldelay (*(volatile byte xdata *) 0xF5E3)
+#define p_reg_cdpf_rxsymboldelay 0xF5E3
+#define reg_cdpf_rxsymboldelay_pos 0
+#define reg_cdpf_rxsymboldelay_len 4
+#define reg_cdpf_rxsymboldelay_lsb 0
+#define xd_p_reg_cdpf_ceavesymbolno (*(volatile byte xdata *) 0xF5E4)
+#define p_reg_cdpf_ceavesymbolno 0xF5E4
+#define reg_cdpf_ceavesymbolno_pos 0
+#define reg_cdpf_ceavesymbolno_len 4
+#define reg_cdpf_ceavesymbolno_lsb 0
+#define xd_p_reg_cdpf_ceshift (*(volatile byte xdata *) 0xF5E5)
+#define p_reg_cdpf_ceshift 0xF5E5
+#define reg_cdpf_ceshift_pos 0
+#define reg_cdpf_ceshift_len 3
+#define reg_cdpf_ceshift_lsb 0
+#define xd_p_reg_cdpf_postpreechotry (*(volatile byte xdata *) 0xF5E6)
+#define p_reg_cdpf_postpreechotry 0xF5E6
+#define reg_cdpf_postpreechotry_pos 0
+#define reg_cdpf_postpreechotry_len 2
+#define reg_cdpf_postpreechotry_lsb 0
+#define xd_p_reg_cdpf_en (*(volatile byte xdata *) 0xF5E7)
+#define p_reg_cdpf_en 0xF5E7
+#define reg_cdpf_en_pos 0
+#define reg_cdpf_en_len 1
+#define reg_cdpf_en_lsb 0
+#define xd_p_reg_cdpf_stateready (*(volatile byte xdata *) 0xF5E8)
+#define p_reg_cdpf_stateready 0xF5E8
+#define reg_cdpf_stateready_pos 0
+#define reg_cdpf_stateready_len 1
+#define reg_cdpf_stateready_lsb 0
+#define xd_r_reg_cdpf_prepostpowercompare (*(volatile byte xdata *) 0xF5E9)
+#define r_reg_cdpf_prepostpowercompare 0xF5E9
+#define reg_cdpf_prepostpowercompare_pos 0
+#define reg_cdpf_prepostpowercompare_len 1
+#define reg_cdpf_prepostpowercompare_lsb 0
+#define xd_r_reg_cdpf_candidateno (*(volatile byte xdata *) 0xF5EA)
+#define r_reg_cdpf_candidateno 0xF5EA
+#define reg_cdpf_candidateno_pos 0
+#define reg_cdpf_candidateno_len 6
+#define reg_cdpf_candidateno_lsb 0
+#define xd_p_reg_cdpf_preechopower_7_0 (*(volatile byte xdata *) 0xF5EB)
+#define p_reg_cdpf_preechopower_7_0 0xF5EB
+#define reg_cdpf_preechopower_7_0_pos 0
+#define reg_cdpf_preechopower_7_0_len 8
+#define reg_cdpf_preechopower_7_0_lsb 0
+#define xd_p_reg_cdpf_preechopower_15_8 (*(volatile byte xdata *) 0xF5EC)
+#define p_reg_cdpf_preechopower_15_8 0xF5EC
+#define reg_cdpf_preechopower_15_8_pos 0
+#define reg_cdpf_preechopower_15_8_len 8
+#define reg_cdpf_preechopower_15_8_lsb 8
+#define xd_p_reg_cdpf_postechopower_7_0 (*(volatile byte xdata *) 0xF5ED)
+#define p_reg_cdpf_postechopower_7_0 0xF5ED
+#define reg_cdpf_postechopower_7_0_pos 0
+#define reg_cdpf_postechopower_7_0_len 8
+#define reg_cdpf_postechopower_7_0_lsb 0
+#define xd_p_reg_cdpf_postechopower_15_8 (*(volatile byte xdata *) 0xF5EE)
+#define p_reg_cdpf_postechopower_15_8 0xF5EE
+#define reg_cdpf_postechopower_15_8_pos 0
+#define reg_cdpf_postechopower_15_8_len 8
+#define reg_cdpf_postechopower_15_8_lsb 8
+#define xd_p_reg_cdpf_searchingend (*(volatile byte xdata *) 0xF5EF)
+#define p_reg_cdpf_searchingend 0xF5EF
+#define reg_cdpf_searchingend_pos 0
+#define reg_cdpf_searchingend_len 8
+#define reg_cdpf_searchingend_lsb 0
+#define xd_r_reg_cdpf_candidate_7_0 (*(volatile byte xdata *) 0xF5F0)
+#define r_reg_cdpf_candidate_7_0 0xF5F0
+#define reg_cdpf_candidate_7_0_pos 0
+#define reg_cdpf_candidate_7_0_len 8
+#define reg_cdpf_candidate_7_0_lsb 0
+#define xd_r_reg_cdpf_candidate_15_8 (*(volatile byte xdata *) 0xF5F1)
+#define r_reg_cdpf_candidate_15_8 0xF5F1
+#define reg_cdpf_candidate_15_8_pos 0
+#define reg_cdpf_candidate_15_8_len 8
+#define reg_cdpf_candidate_15_8_lsb 8
+#define xd_p_reg_cdpf_candidate_rptr (*(volatile byte xdata *) 0xF5F2)
+#define p_reg_cdpf_candidate_rptr 0xF5F2
+#define reg_cdpf_candidate_rptr_pos 0
+#define reg_cdpf_candidate_rptr_len 7
+#define reg_cdpf_candidate_rptr_lsb 0
+#define xd_p_reg_cdpf_candidate_rptr_force (*(volatile byte xdata *) 0xF5F3)
+#define p_reg_cdpf_candidate_rptr_force 0xF5F3
+#define reg_cdpf_candidate_rptr_force_pos 0
+#define reg_cdpf_candidate_rptr_force_len 1
+#define reg_cdpf_candidate_rptr_force_lsb 0
+#define xd_p_reg_cdpf_trialshiftoffset_7_0 (*(volatile byte xdata *) 0xF5F4)
+#define p_reg_cdpf_trialshiftoffset_7_0 0xF5F4
+#define reg_cdpf_trialshiftoffset_7_0_pos 0
+#define reg_cdpf_trialshiftoffset_7_0_len 8
+#define reg_cdpf_trialshiftoffset_7_0_lsb 0
+#define xd_p_reg_cdpf_trialshiftoffset_13_8 (*(volatile byte xdata *) 0xF5F5)
+#define p_reg_cdpf_trialshiftoffset_13_8 0xF5F5
+#define reg_cdpf_trialshiftoffset_13_8_pos 0
+#define reg_cdpf_trialshiftoffset_13_8_len 6
+#define reg_cdpf_trialshiftoffset_13_8_lsb 8
+#define xd_p_reg_cdpf_channellength_7_0 (*(volatile byte xdata *) 0xF5F6)
+#define p_reg_cdpf_channellength_7_0 0xF5F6
+#define reg_cdpf_channellength_7_0_pos 0
+#define reg_cdpf_channellength_7_0_len 8
+#define reg_cdpf_channellength_7_0_lsb 0
+#define xd_p_reg_cdpf_channellength_12_8 (*(volatile byte xdata *) 0xF5F7)
+#define p_reg_cdpf_channellength_12_8 0xF5F7
+#define reg_cdpf_channellength_12_8_pos 0
+#define reg_cdpf_channellength_12_8_len 5
+#define reg_cdpf_channellength_12_8_lsb 8
+#define xd_p_reg_cdpf_hardwaresort (*(volatile byte xdata *) 0xF5F8)
+#define p_reg_cdpf_hardwaresort 0xF5F8
+#define reg_cdpf_hardwaresort_pos 0
+#define reg_cdpf_hardwaresort_len 1
+#define reg_cdpf_hardwaresort_lsb 0
+#define xd_p_reg_cdpf_maxcandidateno (*(volatile byte xdata *) 0xF5F9)
+#define p_reg_cdpf_maxcandidateno 0xF5F9
+#define reg_cdpf_maxcandidateno_pos 0
+#define reg_cdpf_maxcandidateno_len 3
+#define reg_cdpf_maxcandidateno_lsb 0
+#define xd_p_reg_cdpf_channelleftindex (*(volatile byte xdata *) 0xF5FA)
+#define p_reg_cdpf_channelleftindex 0xF5FA
+#define reg_cdpf_channelleftindex_pos 0
+#define reg_cdpf_channelleftindex_len 4
+#define reg_cdpf_channelleftindex_lsb 0
+#define xd_r_reg_cdpf_fdishift_7_0 (*(volatile byte xdata *) 0xF5FB)
+#define r_reg_cdpf_fdishift_7_0 0xF5FB
+#define reg_cdpf_fdishift_7_0_pos 0
+#define reg_cdpf_fdishift_7_0_len 8
+#define reg_cdpf_fdishift_7_0_lsb 0
+#define xd_r_reg_cdpf_fdishift_15_8 (*(volatile byte xdata *) 0xF5FC)
+#define r_reg_cdpf_fdishift_15_8 0xF5FC
+#define reg_cdpf_fdishift_15_8_pos 0
+#define reg_cdpf_fdishift_15_8_len 8
+#define reg_cdpf_fdishift_15_8_lsb 8
+#define xd_p_reg_cdpf_guardband (*(volatile byte xdata *) 0xF5FD)
+#define p_reg_cdpf_guardband 0xF5FD
+#define reg_cdpf_guardband_pos 0
+#define reg_cdpf_guardband_len 5
+#define reg_cdpf_guardband_lsb 0
+#define xd_p_reg_cdpf_maxtonemaxindex_7_0 (*(volatile byte xdata *) 0xF5FE)
+#define p_reg_cdpf_maxtonemaxindex_7_0 0xF5FE
+#define reg_cdpf_maxtonemaxindex_7_0_pos 0
+#define reg_cdpf_maxtonemaxindex_7_0_len 8
+#define reg_cdpf_maxtonemaxindex_7_0_lsb 0
+#define xd_p_reg_cdpf_maxtonemaxindex_12_8 (*(volatile byte xdata *) 0xF5FF)
+#define p_reg_cdpf_maxtonemaxindex_12_8 0xF5FF
+#define reg_cdpf_maxtonemaxindex_12_8_pos 0
+#define reg_cdpf_maxtonemaxindex_12_8_len 5
+#define reg_cdpf_maxtonemaxindex_12_8_lsb 8
+#define xd_p_reg_cdpf_fdiw0 (*(volatile byte xdata *) 0xF600)
+#define p_reg_cdpf_fdiw0 0xF600
+#define reg_cdpf_fdiw0_pos 0
+#define reg_cdpf_fdiw0_len 7
+#define reg_cdpf_fdiw0_lsb 0
+#define xd_p_reg_cdpf_fdiw1 (*(volatile byte xdata *) 0xF601)
+#define p_reg_cdpf_fdiw1 0xF601
+#define reg_cdpf_fdiw1_pos 0
+#define reg_cdpf_fdiw1_len 7
+#define reg_cdpf_fdiw1_lsb 0
+#define xd_p_reg_cdpf_fdiw2 (*(volatile byte xdata *) 0xF602)
+#define p_reg_cdpf_fdiw2 0xF602
+#define reg_cdpf_fdiw2_pos 0
+#define reg_cdpf_fdiw2_len 7
+#define reg_cdpf_fdiw2_lsb 0
+#define xd_p_reg_cdpf_fdiw3 (*(volatile byte xdata *) 0xF603)
+#define p_reg_cdpf_fdiw3 0xF603
+#define reg_cdpf_fdiw3_pos 0
+#define reg_cdpf_fdiw3_len 7
+#define reg_cdpf_fdiw3_lsb 0
+#define xd_p_reg_cdpf_fdiw4 (*(volatile byte xdata *) 0xF604)
+#define p_reg_cdpf_fdiw4 0xF604
+#define reg_cdpf_fdiw4_pos 0
+#define reg_cdpf_fdiw4_len 7
+#define reg_cdpf_fdiw4_lsb 0
+#define xd_p_reg_cdpf_fdiw5 (*(volatile byte xdata *) 0xF605)
+#define p_reg_cdpf_fdiw5 0xF605
+#define reg_cdpf_fdiw5_pos 0
+#define reg_cdpf_fdiw5_len 7
+#define reg_cdpf_fdiw5_lsb 0
+#define xd_p_reg_cdpf_fdiw6 (*(volatile byte xdata *) 0xF606)
+#define p_reg_cdpf_fdiw6 0xF606
+#define reg_cdpf_fdiw6_pos 0
+#define reg_cdpf_fdiw6_len 7
+#define reg_cdpf_fdiw6_lsb 0
+#define xd_p_reg_cdpf_fdiw7 (*(volatile byte xdata *) 0xF607)
+#define p_reg_cdpf_fdiw7 0xF607
+#define reg_cdpf_fdiw7_pos 0
+#define reg_cdpf_fdiw7_len 7
+#define reg_cdpf_fdiw7_lsb 0
+#define xd_r_reg_cdpf_fdiwindowsize (*(volatile byte xdata *) 0xF608)
+#define r_reg_cdpf_fdiwindowsize 0xF608
+#define reg_cdpf_fdiwindowsize_pos 0
+#define reg_cdpf_fdiwindowsize_len 4
+#define reg_cdpf_fdiwindowsize_lsb 0
+#define xd_p_reg_stes_mode (*(volatile byte xdata *) 0xF609)
+#define p_reg_stes_mode 0xF609
+#define reg_stes_mode_pos 0
+#define reg_stes_mode_len 1
+#define reg_stes_mode_lsb 0
+#define xd_p_reg_stes_done_st (*(volatile byte xdata *) 0xF60A)
+#define p_reg_stes_done_st 0xF60A
+#define reg_stes_done_st_pos 0
+#define reg_stes_done_st_len 2
+#define reg_stes_done_st_lsb 0
+#define xd_p_reg_stes_done (*(volatile byte xdata *) 0xF60B)
+#define p_reg_stes_done 0xF60B
+#define reg_stes_done_pos 0
+#define reg_stes_done_len 1
+#define reg_stes_done_lsb 0
+#define xd_p_reg_stes_timing_7_0 (*(volatile byte xdata *) 0xF60C)
+#define p_reg_stes_timing_7_0 0xF60C
+#define reg_stes_timing_7_0_pos 0
+#define reg_stes_timing_7_0_len 8
+#define reg_stes_timing_7_0_lsb 0
+#define xd_p_reg_stes_timing_15_8 (*(volatile byte xdata *) 0xF60D)
+#define p_reg_stes_timing_15_8 0xF60D
+#define reg_stes_timing_15_8_pos 0
+#define reg_stes_timing_15_8_len 8
+#define reg_stes_timing_15_8_lsb 8
+#define xd_p_reg_stes_sym_tot_adj_thre_7_0 (*(volatile byte xdata *) 0xF60E)
+#define p_reg_stes_sym_tot_adj_thre_7_0 0xF60E
+#define reg_stes_sym_tot_adj_thre_7_0_pos 0
+#define reg_stes_sym_tot_adj_thre_7_0_len 8
+#define reg_stes_sym_tot_adj_thre_7_0_lsb 0
+#define xd_p_reg_stes_sym_tot_adj_thre_15_8 (*(volatile byte xdata *) 0xF60F)
+#define p_reg_stes_sym_tot_adj_thre_15_8 0xF60F
+#define reg_stes_sym_tot_adj_thre_15_8_pos 0
+#define reg_stes_sym_tot_adj_thre_15_8_len 8
+#define reg_stes_sym_tot_adj_thre_15_8_lsb 8
+#define xd_p_reg_stes_sym_thre_9_2 (*(volatile byte xdata *) 0xF610)
+#define p_reg_stes_sym_thre_9_2 0xF610
+#define reg_stes_sym_thre_9_2_pos 0
+#define reg_stes_sym_thre_9_2_len 8
+#define reg_stes_sym_thre_9_2_lsb 0
+#define xd_p_reg_stes_sym_wo_adj_thre_9_2 (*(volatile byte xdata *) 0xF611)
+#define p_reg_stes_sym_wo_adj_thre_9_2 0xF611
+#define reg_stes_sym_wo_adj_thre_9_2_pos 0
+#define reg_stes_sym_wo_adj_thre_9_2_len 8
+#define reg_stes_sym_wo_adj_thre_9_2_lsb 0
+#define xd_p_reg_fste_i_adj_7_0 (*(volatile byte xdata *) 0xF612)
+#define p_reg_fste_i_adj_7_0 0xF612
+#define reg_fste_i_adj_7_0_pos 0
+#define reg_fste_i_adj_7_0_len 8
+#define reg_fste_i_adj_7_0_lsb 0
+#define xd_p_reg_fste_i_adj_15_8 (*(volatile byte xdata *) 0xF613)
+#define p_reg_fste_i_adj_15_8 0xF613
+#define reg_fste_i_adj_15_8_pos 0
+#define reg_fste_i_adj_15_8_len 8
+#define reg_fste_i_adj_15_8_lsb 8
+#define xd_r_fd_stes_iadj_val_7_0 (*(volatile byte xdata *) 0xF614)
+#define r_fd_stes_iadj_val_7_0 0xF614
+#define fd_stes_iadj_val_7_0_pos 0
+#define fd_stes_iadj_val_7_0_len 8
+#define fd_stes_iadj_val_7_0_lsb 0
+#define xd_r_fd_stes_iadj_val_15_8 (*(volatile byte xdata *) 0xF615)
+#define r_fd_stes_iadj_val_15_8 0xF615
+#define fd_stes_iadj_val_15_8_pos 0
+#define fd_stes_iadj_val_15_8_len 8
+#define fd_stes_iadj_val_15_8_lsb 8
+#define xd_r_fd_stes_symb_cnt_9_2 (*(volatile byte xdata *) 0xF616)
+#define r_fd_stes_symb_cnt_9_2 0xF616
+#define fd_stes_symb_cnt_9_2_pos 0
+#define fd_stes_symb_cnt_9_2_len 8
+#define fd_stes_symb_cnt_9_2_lsb 0
+#define xd_r_fd_stes_snoi_cnt_9_2 (*(volatile byte xdata *) 0xF617)
+#define r_fd_stes_snoi_cnt_9_2 0xF617
+#define fd_stes_snoi_cnt_9_2_pos 0
+#define fd_stes_snoi_cnt_9_2_len 8
+#define fd_stes_snoi_cnt_9_2_lsb 0
+#define xd_r_fd_last_iadj_val_7_0 (*(volatile byte xdata *) 0xF618)
+#define r_fd_last_iadj_val_7_0 0xF618
+#define fd_last_iadj_val_7_0_pos 0
+#define fd_last_iadj_val_7_0_len 8
+#define fd_last_iadj_val_7_0_lsb 0
+#define xd_r_fd_last_iadj_val_15_8 (*(volatile byte xdata *) 0xF619)
+#define r_fd_last_iadj_val_15_8 0xF619
+#define fd_last_iadj_val_15_8_pos 0
+#define fd_last_iadj_val_15_8_len 8
+#define fd_last_iadj_val_15_8_lsb 8
+#define xd_p_reg_stes_bypass (*(volatile byte xdata *) 0xF61A)
+#define p_reg_stes_bypass 0xF61A
+#define reg_stes_bypass_pos 0
+#define reg_stes_bypass_len 1
+#define reg_stes_bypass_lsb 0
+#define xd_p_reg_stes_best_timing_idx (*(volatile byte xdata *) 0xF61B)
+#define p_reg_stes_best_timing_idx 0xF61B
+#define reg_stes_best_timing_idx_pos 0
+#define reg_stes_best_timing_idx_len 4
+#define reg_stes_best_timing_idx_lsb 0
+#define xd_p_reg_stes_iadj_val_7_0 (*(volatile byte xdata *) 0xF61C)
+#define p_reg_stes_iadj_val_7_0 0xF61C
+#define reg_stes_iadj_val_7_0_pos 0
+#define reg_stes_iadj_val_7_0_len 8
+#define reg_stes_iadj_val_7_0_lsb 0
+#define xd_p_reg_stes_iadj_val_15_8 (*(volatile byte xdata *) 0xF61D)
+#define p_reg_stes_iadj_val_15_8 0xF61D
+#define reg_stes_iadj_val_15_8_pos 0
+#define reg_stes_iadj_val_15_8_len 8
+#define reg_stes_iadj_val_15_8_lsb 8
+#define xd_p_reg_p_ste_start_guard_7_0 (*(volatile byte xdata *) 0xF620)
+#define p_reg_p_ste_start_guard_7_0 0xF620
+#define reg_p_ste_start_guard_7_0_pos 0
+#define reg_p_ste_start_guard_7_0_len 8
+#define reg_p_ste_start_guard_7_0_lsb 0
+#define xd_p_reg_p_ste_start_guard_9_8 (*(volatile byte xdata *) 0xF621)
+#define p_reg_p_ste_start_guard_9_8 0xF621
+#define reg_p_ste_start_guard_9_8_pos 0
+#define reg_p_ste_start_guard_9_8_len 2
+#define reg_p_ste_start_guard_9_8_lsb 8
+#define xd_p_reg_p_ste_end_guard_7_0 (*(volatile byte xdata *) 0xF622)
+#define p_reg_p_ste_end_guard_7_0 0xF622
+#define reg_p_ste_end_guard_7_0_pos 0
+#define reg_p_ste_end_guard_7_0_len 8
+#define reg_p_ste_end_guard_7_0_lsb 0
+#define xd_p_reg_p_ste_end_guard_9_8 (*(volatile byte xdata *) 0xF623)
+#define p_reg_p_ste_end_guard_9_8 0xF623
+#define reg_p_ste_end_guard_9_8_pos 0
+#define reg_p_ste_end_guard_9_8_len 2
+#define reg_p_ste_end_guard_9_8_lsb 8
+#define xd_r_reg_r_ste_wrong_beacon_count (*(volatile byte xdata *) 0xF624)
+#define r_reg_r_ste_wrong_beacon_count 0xF624
+#define reg_r_ste_wrong_beacon_count_pos 0
+#define reg_r_ste_wrong_beacon_count_len 7
+#define reg_r_ste_wrong_beacon_count_lsb 0
+#define xd_p_reg_p_fccid_en (*(volatile byte xdata *) 0xF625)
+#define p_reg_p_fccid_en 0xF625
+#define reg_p_fccid_en_pos 0
+#define reg_p_fccid_en_len 1
+#define reg_p_fccid_en_lsb 0
+#define xd_p_reg_p_fccid_fft_ave_symbol_num (*(volatile byte xdata *) 0xF626)
+#define p_reg_p_fccid_fft_ave_symbol_num 0xF626
+#define reg_p_fccid_fft_ave_symbol_num_pos 0
+#define reg_p_fccid_fft_ave_symbol_num_len 6
+#define reg_p_fccid_fft_ave_symbol_num_lsb 0
+#define xd_p_reg_p_fccid_fft_work_start_tone_7_0 (*(volatile byte xdata *) 0xF627)
+#define p_reg_p_fccid_fft_work_start_tone_7_0 0xF627
+#define reg_p_fccid_fft_work_start_tone_7_0_pos 0
+#define reg_p_fccid_fft_work_start_tone_7_0_len 8
+#define reg_p_fccid_fft_work_start_tone_7_0_lsb 0
+#define xd_p_reg_p_fccid_fft_work_start_tone_12_8 (*(volatile byte xdata *) 0xF628)
+#define p_reg_p_fccid_fft_work_start_tone_12_8 0xF628
+#define reg_p_fccid_fft_work_start_tone_12_8_pos 0
+#define reg_p_fccid_fft_work_start_tone_12_8_len 5
+#define reg_p_fccid_fft_work_start_tone_12_8_lsb 8
+#define xd_p_reg_p_fccid_fft_work_end_tone_7_0 (*(volatile byte xdata *) 0xF629)
+#define p_reg_p_fccid_fft_work_end_tone_7_0 0xF629
+#define reg_p_fccid_fft_work_end_tone_7_0_pos 0
+#define reg_p_fccid_fft_work_end_tone_7_0_len 8
+#define reg_p_fccid_fft_work_end_tone_7_0_lsb 0
+#define xd_p_reg_p_fccid_fft_work_end_tone_12_8 (*(volatile byte xdata *) 0xF62A)
+#define p_reg_p_fccid_fft_work_end_tone_12_8 0xF62A
+#define reg_p_fccid_fft_work_end_tone_12_8_pos 0
+#define reg_p_fccid_fft_work_end_tone_12_8_len 5
+#define reg_p_fccid_fft_work_end_tone_12_8_lsb 8
+#define xd_p_reg_p_fccid_peak_to_th_divider (*(volatile byte xdata *) 0xF62B)
+#define p_reg_p_fccid_peak_to_th_divider 0xF62B
+#define reg_p_fccid_peak_to_th_divider_pos 0
+#define reg_p_fccid_peak_to_th_divider_len 4
+#define reg_p_fccid_peak_to_th_divider_lsb 0
+#define xd_p_reg_p_fccid_peak_to_th_mode (*(volatile byte xdata *) 0xF62C)
+#define p_reg_p_fccid_peak_to_th_mode 0xF62C
+#define reg_p_fccid_peak_to_th_mode_pos 0
+#define reg_p_fccid_peak_to_th_mode_len 2
+#define reg_p_fccid_peak_to_th_mode_lsb 0
+#define xd_p_reg_p_fccid_search_mode (*(volatile byte xdata *) 0xF62D)
+#define p_reg_p_fccid_search_mode 0xF62D
+#define reg_p_fccid_search_mode_pos 0
+#define reg_p_fccid_search_mode_len 1
+#define reg_p_fccid_search_mode_lsb 0
+#define xd_p_reg_p_fccid_group_th (*(volatile byte xdata *) 0xF62E)
+#define p_reg_p_fccid_group_th 0xF62E
+#define reg_p_fccid_group_th_pos 0
+#define reg_p_fccid_group_th_len 7
+#define reg_p_fccid_group_th_lsb 0
+#define xd_p_reg_p_fccid_search_rdy (*(volatile byte xdata *) 0xF62F)
+#define p_reg_p_fccid_search_rdy 0xF62F
+#define reg_p_fccid_search_rdy_pos 0
+#define reg_p_fccid_search_rdy_len 1
+#define reg_p_fccid_search_rdy_lsb 0
+#define xd_r_reg_r_fccid_fft_ave_read_out_7_0 (*(volatile byte xdata *) 0xF630)
+#define r_reg_r_fccid_fft_ave_read_out_7_0 0xF630
+#define reg_r_fccid_fft_ave_read_out_7_0_pos 0
+#define reg_r_fccid_fft_ave_read_out_7_0_len 8
+#define reg_r_fccid_fft_ave_read_out_7_0_lsb 0
+#define xd_r_reg_r_fccid_fft_ave_read_out_15_8 (*(volatile byte xdata *) 0xF631)
+#define r_reg_r_fccid_fft_ave_read_out_15_8 0xF631
+#define reg_r_fccid_fft_ave_read_out_15_8_pos 0
+#define reg_r_fccid_fft_ave_read_out_15_8_len 8
+#define reg_r_fccid_fft_ave_read_out_15_8_lsb 8
+#define xd_r_reg_r_fccid_large_tone_num_7_0 (*(volatile byte xdata *) 0xF632)
+#define r_reg_r_fccid_large_tone_num_7_0 0xF632
+#define reg_r_fccid_large_tone_num_7_0_pos 0
+#define reg_r_fccid_large_tone_num_7_0_len 8
+#define reg_r_fccid_large_tone_num_7_0_lsb 0
+#define xd_r_reg_r_fccid_large_tone_num_12_8 (*(volatile byte xdata *) 0xF633)
+#define r_reg_r_fccid_large_tone_num_12_8 0xF633
+#define reg_r_fccid_large_tone_num_12_8_pos 0
+#define reg_r_fccid_large_tone_num_12_8_len 5
+#define reg_r_fccid_large_tone_num_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci1_start_tone_7_0 (*(volatile byte xdata *) 0xF634)
+#define r_reg_r_fccid_cci1_start_tone_7_0 0xF634
+#define reg_r_fccid_cci1_start_tone_7_0_pos 0
+#define reg_r_fccid_cci1_start_tone_7_0_len 8
+#define reg_r_fccid_cci1_start_tone_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci1_start_tone_12_8 (*(volatile byte xdata *) 0xF635)
+#define r_reg_r_fccid_cci1_start_tone_12_8 0xF635
+#define reg_r_fccid_cci1_start_tone_12_8_pos 0
+#define reg_r_fccid_cci1_start_tone_12_8_len 5
+#define reg_r_fccid_cci1_start_tone_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci1_end_tone_7_0 (*(volatile byte xdata *) 0xF636)
+#define r_reg_r_fccid_cci1_end_tone_7_0 0xF636
+#define reg_r_fccid_cci1_end_tone_7_0_pos 0
+#define reg_r_fccid_cci1_end_tone_7_0_len 8
+#define reg_r_fccid_cci1_end_tone_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci1_end_tone_12_8 (*(volatile byte xdata *) 0xF637)
+#define r_reg_r_fccid_cci1_end_tone_12_8 0xF637
+#define reg_r_fccid_cci1_end_tone_12_8_pos 0
+#define reg_r_fccid_cci1_end_tone_12_8_len 5
+#define reg_r_fccid_cci1_end_tone_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci1_peak_7_0 (*(volatile byte xdata *) 0xF638)
+#define r_reg_r_fccid_cci1_peak_7_0 0xF638
+#define reg_r_fccid_cci1_peak_7_0_pos 0
+#define reg_r_fccid_cci1_peak_7_0_len 8
+#define reg_r_fccid_cci1_peak_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci1_peak_15_8 (*(volatile byte xdata *) 0xF639)
+#define r_reg_r_fccid_cci1_peak_15_8 0xF639
+#define reg_r_fccid_cci1_peak_15_8_pos 0
+#define reg_r_fccid_cci1_peak_15_8_len 8
+#define reg_r_fccid_cci1_peak_15_8_lsb 8
+#define xd_r_reg_r_fccid_cci2_start_tone_7_0 (*(volatile byte xdata *) 0xF63A)
+#define r_reg_r_fccid_cci2_start_tone_7_0 0xF63A
+#define reg_r_fccid_cci2_start_tone_7_0_pos 0
+#define reg_r_fccid_cci2_start_tone_7_0_len 8
+#define reg_r_fccid_cci2_start_tone_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci2_start_tone_12_8 (*(volatile byte xdata *) 0xF63B)
+#define r_reg_r_fccid_cci2_start_tone_12_8 0xF63B
+#define reg_r_fccid_cci2_start_tone_12_8_pos 0
+#define reg_r_fccid_cci2_start_tone_12_8_len 5
+#define reg_r_fccid_cci2_start_tone_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci2_end_tone_7_0 (*(volatile byte xdata *) 0xF63C)
+#define r_reg_r_fccid_cci2_end_tone_7_0 0xF63C
+#define reg_r_fccid_cci2_end_tone_7_0_pos 0
+#define reg_r_fccid_cci2_end_tone_7_0_len 8
+#define reg_r_fccid_cci2_end_tone_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci2_end_tone_12_8 (*(volatile byte xdata *) 0xF63D)
+#define r_reg_r_fccid_cci2_end_tone_12_8 0xF63D
+#define reg_r_fccid_cci2_end_tone_12_8_pos 0
+#define reg_r_fccid_cci2_end_tone_12_8_len 5
+#define reg_r_fccid_cci2_end_tone_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci2_peak_7_0 (*(volatile byte xdata *) 0xF63E)
+#define r_reg_r_fccid_cci2_peak_7_0 0xF63E
+#define reg_r_fccid_cci2_peak_7_0_pos 0
+#define reg_r_fccid_cci2_peak_7_0_len 8
+#define reg_r_fccid_cci2_peak_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci2_peak_15_8 (*(volatile byte xdata *) 0xF63F)
+#define r_reg_r_fccid_cci2_peak_15_8 0xF63F
+#define reg_r_fccid_cci2_peak_15_8_pos 0
+#define reg_r_fccid_cci2_peak_15_8_len 8
+#define reg_r_fccid_cci2_peak_15_8_lsb 8
+#define xd_r_reg_r_fccid_cci3_start_tone_7_0 (*(volatile byte xdata *) 0xF640)
+#define r_reg_r_fccid_cci3_start_tone_7_0 0xF640
+#define reg_r_fccid_cci3_start_tone_7_0_pos 0
+#define reg_r_fccid_cci3_start_tone_7_0_len 8
+#define reg_r_fccid_cci3_start_tone_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci3_start_tone_12_8 (*(volatile byte xdata *) 0xF641)
+#define r_reg_r_fccid_cci3_start_tone_12_8 0xF641
+#define reg_r_fccid_cci3_start_tone_12_8_pos 0
+#define reg_r_fccid_cci3_start_tone_12_8_len 5
+#define reg_r_fccid_cci3_start_tone_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci3_end_tone_7_0 (*(volatile byte xdata *) 0xF642)
+#define r_reg_r_fccid_cci3_end_tone_7_0 0xF642
+#define reg_r_fccid_cci3_end_tone_7_0_pos 0
+#define reg_r_fccid_cci3_end_tone_7_0_len 8
+#define reg_r_fccid_cci3_end_tone_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci3_end_tone_12_8 (*(volatile byte xdata *) 0xF643)
+#define r_reg_r_fccid_cci3_end_tone_12_8 0xF643
+#define reg_r_fccid_cci3_end_tone_12_8_pos 0
+#define reg_r_fccid_cci3_end_tone_12_8_len 5
+#define reg_r_fccid_cci3_end_tone_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci3_peak_7_0 (*(volatile byte xdata *) 0xF644)
+#define r_reg_r_fccid_cci3_peak_7_0 0xF644
+#define reg_r_fccid_cci3_peak_7_0_pos 0
+#define reg_r_fccid_cci3_peak_7_0_len 8
+#define reg_r_fccid_cci3_peak_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci3_peak_15_8 (*(volatile byte xdata *) 0xF645)
+#define r_reg_r_fccid_cci3_peak_15_8 0xF645
+#define reg_r_fccid_cci3_peak_15_8_pos 0
+#define reg_r_fccid_cci3_peak_15_8_len 8
+#define reg_r_fccid_cci3_peak_15_8_lsb 8
+#define xd_r_reg_r_fccid_cci4_start_tone_7_0 (*(volatile byte xdata *) 0xF646)
+#define r_reg_r_fccid_cci4_start_tone_7_0 0xF646
+#define reg_r_fccid_cci4_start_tone_7_0_pos 0
+#define reg_r_fccid_cci4_start_tone_7_0_len 8
+#define reg_r_fccid_cci4_start_tone_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci4_start_tone_12_8 (*(volatile byte xdata *) 0xF647)
+#define r_reg_r_fccid_cci4_start_tone_12_8 0xF647
+#define reg_r_fccid_cci4_start_tone_12_8_pos 0
+#define reg_r_fccid_cci4_start_tone_12_8_len 5
+#define reg_r_fccid_cci4_start_tone_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci4_end_tone_7_0 (*(volatile byte xdata *) 0xF648)
+#define r_reg_r_fccid_cci4_end_tone_7_0 0xF648
+#define reg_r_fccid_cci4_end_tone_7_0_pos 0
+#define reg_r_fccid_cci4_end_tone_7_0_len 8
+#define reg_r_fccid_cci4_end_tone_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci4_end_tone_12_8 (*(volatile byte xdata *) 0xF649)
+#define r_reg_r_fccid_cci4_end_tone_12_8 0xF649
+#define reg_r_fccid_cci4_end_tone_12_8_pos 0
+#define reg_r_fccid_cci4_end_tone_12_8_len 5
+#define reg_r_fccid_cci4_end_tone_12_8_lsb 8
+#define xd_r_reg_r_fccid_cci4_peak_7_0 (*(volatile byte xdata *) 0xF64A)
+#define r_reg_r_fccid_cci4_peak_7_0 0xF64A
+#define reg_r_fccid_cci4_peak_7_0_pos 0
+#define reg_r_fccid_cci4_peak_7_0_len 8
+#define reg_r_fccid_cci4_peak_7_0_lsb 0
+#define xd_r_reg_r_fccid_cci4_peak_15_8 (*(volatile byte xdata *) 0xF64B)
+#define r_reg_r_fccid_cci4_peak_15_8 0xF64B
+#define reg_r_fccid_cci4_peak_15_8_pos 0
+#define reg_r_fccid_cci4_peak_15_8_len 8
+#define reg_r_fccid_cci4_peak_15_8_lsb 8
+#define xd_r_reg_r_fccid_cci1_rank (*(volatile byte xdata *) 0xF64C)
+#define r_reg_r_fccid_cci1_rank 0xF64C
+#define reg_r_fccid_cci1_rank_pos 0
+#define reg_r_fccid_cci1_rank_len 3
+#define reg_r_fccid_cci1_rank_lsb 0
+#define xd_r_reg_r_fccid_cci2_rank (*(volatile byte xdata *) 0xF64D)
+#define r_reg_r_fccid_cci2_rank 0xF64D
+#define reg_r_fccid_cci2_rank_pos 0
+#define reg_r_fccid_cci2_rank_len 3
+#define reg_r_fccid_cci2_rank_lsb 0
+#define xd_r_reg_r_fccid_cci3_rank (*(volatile byte xdata *) 0xF64E)
+#define r_reg_r_fccid_cci3_rank 0xF64E
+#define reg_r_fccid_cci3_rank_pos 0
+#define reg_r_fccid_cci3_rank_len 3
+#define reg_r_fccid_cci3_rank_lsb 0
+#define xd_r_reg_r_fccid_cci4_rank (*(volatile byte xdata *) 0xF64F)
+#define r_reg_r_fccid_cci4_rank 0xF64F
+#define reg_r_fccid_cci4_rank_pos 0
+#define reg_r_fccid_cci4_rank_len 3
+#define reg_r_fccid_cci4_rank_lsb 0
+#define xd_p_reg_p_csi_shift3 (*(volatile byte xdata *) 0xF650)
+#define p_reg_p_csi_shift3 0xF650
+#define reg_p_csi_shift3_pos 0
+#define reg_p_csi_shift3_len 4
+#define reg_p_csi_shift3_lsb 0
+#define xd_p_reg_p_csi_mul3 (*(volatile byte xdata *) 0xF651)
+#define p_reg_p_csi_mul3 0xF651
+#define reg_p_csi_mul3_pos 0
+#define reg_p_csi_mul3_len 8
+#define reg_p_csi_mul3_lsb 0
+#define xd_p_reg_p_csi_level3_7_0 (*(volatile byte xdata *) 0xF652)
+#define p_reg_p_csi_level3_7_0 0xF652
+#define reg_p_csi_level3_7_0_pos 0
+#define reg_p_csi_level3_7_0_len 8
+#define reg_p_csi_level3_7_0_lsb 0
+#define xd_p_reg_p_csi_level3_8 (*(volatile byte xdata *) 0xF653)
+#define p_reg_p_csi_level3_8 0xF653
+#define reg_p_csi_level3_8_pos 0
+#define reg_p_csi_level3_8_len 1
+#define reg_p_csi_level3_8_lsb 8
+#define xd_p_reg_p_csi_fftout_shift_fix_value (*(volatile byte xdata *) 0xF654)
+#define p_reg_p_csi_fftout_shift_fix_value 0xF654
+#define reg_p_csi_fftout_shift_fix_value_pos 0
+#define reg_p_csi_fftout_shift_fix_value_len 4
+#define reg_p_csi_fftout_shift_fix_value_lsb 0
+#define xd_p_reg_p_feq_scale_pow (*(volatile byte xdata *) 0xF655)
+#define p_reg_p_feq_scale_pow 0xF655
+#define reg_p_feq_scale_pow_pos 0
+#define reg_p_feq_scale_pow_len 6
+#define reg_p_feq_scale_pow_lsb 0
+#define xd_p_reg_p_csi_cp_idx (*(volatile byte xdata *) 0xF656)
+#define p_reg_p_csi_cp_idx 0xF656
+#define reg_p_csi_cp_idx_pos 0
+#define reg_p_csi_cp_idx_len 8
+#define reg_p_csi_cp_idx_lsb 0
+#define xd_p_reg_p_csi_outsh_zero_th_7_0 (*(volatile byte xdata *) 0xF657)
+#define p_reg_p_csi_outsh_zero_th_7_0 0xF657
+#define reg_p_csi_outsh_zero_th_7_0_pos 0
+#define reg_p_csi_outsh_zero_th_7_0_len 8
+#define reg_p_csi_outsh_zero_th_7_0_lsb 0
+#define xd_p_reg_p_csi_outsh_zero_th_10_8 (*(volatile byte xdata *) 0xF658)
+#define p_reg_p_csi_outsh_zero_th_10_8 0xF658
+#define reg_p_csi_outsh_zero_th_10_8_pos 0
+#define reg_p_csi_outsh_zero_th_10_8_len 3
+#define reg_p_csi_outsh_zero_th_10_8_lsb 8
+#define xd_p_reg_p_csi_ar_ratio (*(volatile byte xdata *) 0xF659)
+#define p_reg_p_csi_ar_ratio 0xF659
+#define reg_p_csi_ar_ratio_pos 0
+#define reg_p_csi_ar_ratio_len 8
+#define reg_p_csi_ar_ratio_lsb 0
+#define xd_p_reg_r_csi_cp_vld (*(volatile byte xdata *) 0xF65A)
+#define p_reg_r_csi_cp_vld 0xF65A
+#define reg_r_csi_cp_vld_pos 0
+#define reg_r_csi_cp_vld_len 1
+#define reg_r_csi_cp_vld_lsb 0
+#define xd_p_reg_r_csi_sp_vld (*(volatile byte xdata *) 0xF65B)
+#define p_reg_r_csi_sp_vld 0xF65B
+#define reg_r_csi_sp_vld_pos 0
+#define reg_r_csi_sp_vld_len 1
+#define reg_r_csi_sp_vld_lsb 0
+#define xd_p_reg_p_csi_fft_out_shift_en (*(volatile byte xdata *) 0xF65C)
+#define p_reg_p_csi_fft_out_shift_en 0xF65C
+#define reg_p_csi_fft_out_shift_en_pos 0
+#define reg_p_csi_fft_out_shift_en_len 1
+#define reg_p_csi_fft_out_shift_en_lsb 0
+#define xd_p_reg_p_csi_feq_out_shift_en (*(volatile byte xdata *) 0xF65D)
+#define p_reg_p_csi_feq_out_shift_en 0xF65D
+#define reg_p_csi_feq_out_shift_en_pos 0
+#define reg_p_csi_feq_out_shift_en_len 1
+#define reg_p_csi_feq_out_shift_en_lsb 0
+#define xd_p_reg_r_csi_cp_fft_out (*(volatile byte xdata *) 0xF65E)
+#define p_reg_r_csi_cp_fft_out 0xF65E
+#define reg_r_csi_cp_fft_out_pos 0
+#define reg_r_csi_cp_fft_out_len 1
+#define reg_r_csi_cp_fft_out_lsb 0
+#define xd_p_reg_r_csi_sp_feq_log2_out (*(volatile byte xdata *) 0xF65F)
+#define p_reg_r_csi_sp_feq_log2_out 0xF65F
+#define reg_r_csi_sp_feq_log2_out_pos 0
+#define reg_r_csi_sp_feq_log2_out_len 8
+#define reg_r_csi_sp_feq_log2_out_lsb 0
+#define xd_p_reg_r_csi_sp_fft_out (*(volatile byte xdata *) 0xF660)
+#define p_reg_r_csi_sp_fft_out 0xF660
+#define reg_r_csi_sp_fft_out_pos 0
+#define reg_r_csi_sp_fft_out_len 1
+#define reg_r_csi_sp_fft_out_lsb 0
+#define xd_p_reg_p_feq_eh2_from_fpcc_en (*(volatile byte xdata *) 0xF661)
+#define p_reg_p_feq_eh2_from_fpcc_en 0xF661
+#define reg_p_feq_eh2_from_fpcc_en_pos 0
+#define reg_p_feq_eh2_from_fpcc_en_len 1
+#define reg_p_feq_eh2_from_fpcc_en_lsb 0
+#define xd_r_reg_r_fccid_fft_ave_peak_7_0 (*(volatile byte xdata *) 0xF662)
+#define r_reg_r_fccid_fft_ave_peak_7_0 0xF662
+#define reg_r_fccid_fft_ave_peak_7_0_pos 0
+#define reg_r_fccid_fft_ave_peak_7_0_len 8
+#define reg_r_fccid_fft_ave_peak_7_0_lsb 0
+#define xd_r_reg_r_fccid_fft_ave_peak_15_8 (*(volatile byte xdata *) 0xF663)
+#define r_reg_r_fccid_fft_ave_peak_15_8 0xF663
+#define reg_r_fccid_fft_ave_peak_15_8_pos 0
+#define reg_r_fccid_fft_ave_peak_15_8_len 8
+#define reg_r_fccid_fft_ave_peak_15_8_lsb 8
+#define xd_r_reg_r_fccid_fft_ave_peak_23_16 (*(volatile byte xdata *) 0xF664)
+#define r_reg_r_fccid_fft_ave_peak_23_16 0xF664
+#define reg_r_fccid_fft_ave_peak_23_16_pos 0
+#define reg_r_fccid_fft_ave_peak_23_16_len 8
+#define reg_r_fccid_fft_ave_peak_23_16_lsb 16
+#define xd_r_reg_r_fccid_fft_ave_peak_26_24 (*(volatile byte xdata *) 0xF665)
+#define r_reg_r_fccid_fft_ave_peak_26_24 0xF665
+#define reg_r_fccid_fft_ave_peak_26_24_pos 0
+#define reg_r_fccid_fft_ave_peak_26_24_len 3
+#define reg_r_fccid_fft_ave_peak_26_24_lsb 24
+#define xd_p_reg_p_fccid_fft_ave_read_rdy (*(volatile byte xdata *) 0xF666)
+#define p_reg_p_fccid_fft_ave_read_rdy 0xF666
+#define reg_p_fccid_fft_ave_read_rdy_pos 0
+#define reg_p_fccid_fft_ave_read_rdy_len 1
+#define reg_p_fccid_fft_ave_read_rdy_lsb 0
+#define xd_p_reg_p_fccid_fft_ave_read_index_7_0 (*(volatile byte xdata *) 0xF667)
+#define p_reg_p_fccid_fft_ave_read_index_7_0 0xF667
+#define reg_p_fccid_fft_ave_read_index_7_0_pos 0
+#define reg_p_fccid_fft_ave_read_index_7_0_len 8
+#define reg_p_fccid_fft_ave_read_index_7_0_lsb 0
+#define xd_p_reg_p_fccid_fft_ave_read_index_12_8 (*(volatile byte xdata *) 0xF668)
+#define p_reg_p_fccid_fft_ave_read_index_12_8 0xF668
+#define reg_p_fccid_fft_ave_read_index_12_8_pos 0
+#define reg_p_fccid_fft_ave_read_index_12_8_len 5
+#define reg_p_fccid_fft_ave_read_index_12_8_lsb 8
+#define xd_p_reg_cdpf_candidate_rw (*(volatile byte xdata *) 0xF669)
+#define p_reg_cdpf_candidate_rw 0xF669
+#define reg_cdpf_candidate_rw_pos 0
+#define reg_cdpf_candidate_rw_len 1
+#define reg_cdpf_candidate_rw_lsb 0
+#define xd_p_reg_cdpf_candidate_prog_7_0 (*(volatile byte xdata *) 0xF66A)
+#define p_reg_cdpf_candidate_prog_7_0 0xF66A
+#define reg_cdpf_candidate_prog_7_0_pos 0
+#define reg_cdpf_candidate_prog_7_0_len 8
+#define reg_cdpf_candidate_prog_7_0_lsb 0
+#define xd_p_reg_cdpf_candidate_prog_15_8 (*(volatile byte xdata *) 0xF66B)
+#define p_reg_cdpf_candidate_prog_15_8 0xF66B
+#define reg_cdpf_candidate_prog_15_8_pos 0
+#define reg_cdpf_candidate_prog_15_8_len 8
+#define reg_cdpf_candidate_prog_15_8_lsb 8
+#define xd_p_reg_cdpf_candidateno_prog (*(volatile byte xdata *) 0xF66C)
+#define p_reg_cdpf_candidateno_prog 0xF66C
+#define reg_cdpf_candidateno_prog_pos 0
+#define reg_cdpf_candidateno_prog_len 6
+#define reg_cdpf_candidateno_prog_lsb 0
+#define xd_p_reg_cdpf_candidateno_switch (*(volatile byte xdata *) 0xF66D)
+#define p_reg_cdpf_candidateno_switch 0xF66D
+#define reg_cdpf_candidateno_switch_pos 0
+#define reg_cdpf_candidateno_switch_len 1
+#define reg_cdpf_candidateno_switch_lsb 0
+#define xd_g_reg_tpsd_txmod (*(volatile byte xdata *) 0xF900)
+#define g_reg_tpsd_txmod 0xF900
+#define reg_tpsd_txmod_pos 0
+#define reg_tpsd_txmod_len 2
+#define reg_tpsd_txmod_lsb 0
+#define xd_g_reg_tpsd_gi (*(volatile byte xdata *) 0xF901)
+#define g_reg_tpsd_gi 0xF901
+#define reg_tpsd_gi_pos 0
+#define reg_tpsd_gi_len 2
+#define reg_tpsd_gi_lsb 0
+#define xd_g_reg_tpsd_hier (*(volatile byte xdata *) 0xF902)
+#define g_reg_tpsd_hier 0xF902
+#define reg_tpsd_hier_pos 0
+#define reg_tpsd_hier_len 3
+#define reg_tpsd_hier_lsb 0
+#define xd_g_reg_tpsd_const (*(volatile byte xdata *) 0xF903)
+#define g_reg_tpsd_const 0xF903
+#define reg_tpsd_const_pos 0
+#define reg_tpsd_const_len 2
+#define reg_tpsd_const_lsb 0
+#define xd_g_reg_bw (*(volatile byte xdata *) 0xF904)
+#define g_reg_bw 0xF904
+#define reg_bw_pos 0
+#define reg_bw_len 2
+#define reg_bw_lsb 0
+#define xd_g_reg_dec_pri (*(volatile byte xdata *) 0xF905)
+#define g_reg_dec_pri 0xF905
+#define reg_dec_pri_pos 0
+#define reg_dec_pri_len 1
+#define reg_dec_pri_lsb 0
+#define xd_g_reg_tpsd_hpcr (*(volatile byte xdata *) 0xF906)
+#define g_reg_tpsd_hpcr 0xF906
+#define reg_tpsd_hpcr_pos 0
+#define reg_tpsd_hpcr_len 3
+#define reg_tpsd_hpcr_lsb 0
+#define xd_g_reg_tpsd_lpcr (*(volatile byte xdata *) 0xF907)
+#define g_reg_tpsd_lpcr 0xF907
+#define reg_tpsd_lpcr_pos 0
+#define reg_tpsd_lpcr_len 3
+#define reg_tpsd_lpcr_lsb 0
+#define xd_g_reg_tpsd_indep (*(volatile byte xdata *) 0xF908)
+#define g_reg_tpsd_indep 0xF908
+#define reg_tpsd_indep_pos 0
+#define reg_tpsd_indep_len 1
+#define reg_tpsd_indep_lsb 0
+#define xd_g_reg_tpsd_tslice (*(volatile byte xdata *) 0xF909)
+#define g_reg_tpsd_tslice 0xF909
+#define reg_tpsd_tslice_pos 0
+#define reg_tpsd_tslice_len 1
+#define reg_tpsd_tslice_lsb 0
+#define xd_g_reg_tpsd_mpefec (*(volatile byte xdata *) 0xF90A)
+#define g_reg_tpsd_mpefec 0xF90A
+#define reg_tpsd_mpefec_pos 0
+#define reg_tpsd_mpefec_len 1
+#define reg_tpsd_mpefec_lsb 0
+#define xd_g_reg_sntc_en (*(volatile byte xdata *) 0xF90B)
+#define g_reg_sntc_en 0xF90B
+#define reg_sntc_en_pos 0
+#define reg_sntc_en_len 1
+#define reg_sntc_en_lsb 0
+#define xd_g_reg_intp_sys_div (*(volatile byte xdata *) 0xF90C)
+#define g_reg_intp_sys_div 0xF90C
+#define reg_intp_sys_div_pos 0
+#define reg_intp_sys_div_len 1
+#define reg_intp_sys_div_lsb 0
+#define xd_g_reg_clk_sntc_sel (*(volatile byte xdata *) 0xF90D)
+#define g_reg_clk_sntc_sel 0xF90D
+#define reg_clk_sntc_sel_pos 0
+#define reg_clk_sntc_sel_len 3
+#define reg_clk_sntc_sel_lsb 0
+#define xd_p_reg_ce_gs_force (*(volatile byte xdata *) 0xFD00)
+#define p_reg_ce_gs_force 0xFD00
+#define reg_ce_gs_force_pos 0
+#define reg_ce_gs_force_len 1
+#define reg_ce_gs_force_lsb 0
+#define xd_p_reg_ce_dagcgain_delay (*(volatile byte xdata *) 0xFD01)
+#define p_reg_ce_dagcgain_delay 0xFD01
+#define reg_ce_dagcgain_delay_pos 0
+#define reg_ce_dagcgain_delay_len 2
+#define reg_ce_dagcgain_delay_lsb 0
+#define xd_p_reg_ce_derot_en (*(volatile byte xdata *) 0xFD02)
+#define p_reg_ce_derot_en 0xFD02
+#define reg_ce_derot_en_pos 0
+#define reg_ce_derot_en_len 1
+#define reg_ce_derot_en_lsb 0
+#define xd_p_reg_ce_fctrl_en (*(volatile byte xdata *) 0xFD05)
+#define p_reg_ce_fctrl_en 0xFD05
+#define reg_ce_fctrl_en_pos 0
+#define reg_ce_fctrl_en_len 1
+#define reg_ce_fctrl_en_lsb 0
+#define xd_p_reg_ce_en (*(volatile byte xdata *) 0xFD06)
+#define p_reg_ce_en 0xFD06
+#define reg_ce_en_pos 0
+#define reg_ce_en_len 1
+#define reg_ce_en_lsb 0
+#define xd_p_reg_ce_sat_wes (*(volatile byte xdata *) 0xFD07)
+#define p_reg_ce_sat_wes 0xFD07
+#define reg_ce_sat_wes_pos 0
+#define reg_ce_sat_wes_len 1
+#define reg_ce_sat_wes_lsb 0
+#define xd_p_reg_ce_sat_sigma2 (*(volatile byte xdata *) 0xFD08)
+#define p_reg_ce_sat_sigma2 0xFD08
+#define reg_ce_sat_sigma2_pos 0
+#define reg_ce_sat_sigma2_len 1
+#define reg_ce_sat_sigma2_lsb 0
+#define xd_p_reg_ce_sat_tdi_br_re (*(volatile byte xdata *) 0xFD09)
+#define p_reg_ce_sat_tdi_br_re 0xFD09
+#define reg_ce_sat_tdi_br_re_pos 0
+#define reg_ce_sat_tdi_br_re_len 1
+#define reg_ce_sat_tdi_br_re_lsb 0
+#define xd_p_reg_ce_sat_tdi_br_im (*(volatile byte xdata *) 0xFD0A)
+#define p_reg_ce_sat_tdi_br_im 0xFD0A
+#define reg_ce_sat_tdi_br_im_pos 0
+#define reg_ce_sat_tdi_br_im_len 1
+#define reg_ce_sat_tdi_br_im_lsb 0
+#define xd_p_reg_ce_sat_tdi_ar_re (*(volatile byte xdata *) 0xFD0B)
+#define p_reg_ce_sat_tdi_ar_re 0xFD0B
+#define reg_ce_sat_tdi_ar_re_pos 0
+#define reg_ce_sat_tdi_ar_re_len 1
+#define reg_ce_sat_tdi_ar_re_lsb 0
+#define xd_p_reg_ce_sat_tdi_ar_im (*(volatile byte xdata *) 0xFD0C)
+#define p_reg_ce_sat_tdi_ar_im 0xFD0C
+#define reg_ce_sat_tdi_ar_im_pos 0
+#define reg_ce_sat_tdi_ar_im_len 1
+#define reg_ce_sat_tdi_ar_im_lsb 0
+#define xd_p_reg_ce_sat_fdi_br_re (*(volatile byte xdata *) 0xFD0D)
+#define p_reg_ce_sat_fdi_br_re 0xFD0D
+#define reg_ce_sat_fdi_br_re_pos 0
+#define reg_ce_sat_fdi_br_re_len 1
+#define reg_ce_sat_fdi_br_re_lsb 0
+#define xd_p_reg_ce_sat_fdi_br_im (*(volatile byte xdata *) 0xFD0E)
+#define p_reg_ce_sat_fdi_br_im 0xFD0E
+#define reg_ce_sat_fdi_br_im_pos 0
+#define reg_ce_sat_fdi_br_im_len 1
+#define reg_ce_sat_fdi_br_im_lsb 0
+#define xd_p_reg_ce_var_forced_value (*(volatile byte xdata *) 0xFD0F)
+#define p_reg_ce_var_forced_value 0xFD0F
+#define reg_ce_var_forced_value_pos 0
+#define reg_ce_var_forced_value_len 3
+#define reg_ce_var_forced_value_lsb 0
+#define xd_p_reg_ce_s1 (*(volatile byte xdata *) 0xFD10)
+#define p_reg_ce_s1 0xFD10
+#define reg_ce_s1_pos 0
+#define reg_ce_s1_len 5
+#define reg_ce_s1_lsb 0
+#define xd_r_reg_ce_tdi_flatness_7_0 (*(volatile byte xdata *) 0xFD11)
+#define r_reg_ce_tdi_flatness_7_0 0xFD11
+#define reg_ce_tdi_flatness_7_0_pos 0
+#define reg_ce_tdi_flatness_7_0_len 8
+#define reg_ce_tdi_flatness_7_0_lsb 0
+#define xd_r_reg_ce_tdi_flatness_8 (*(volatile byte xdata *) 0xFD12)
+#define r_reg_ce_tdi_flatness_8 0xFD12
+#define reg_ce_tdi_flatness_8_pos 0
+#define reg_ce_tdi_flatness_8_len 1
+#define reg_ce_tdi_flatness_8_lsb 8
+#define xd_r_reg_ce_tone_7_0 (*(volatile byte xdata *) 0xFD13)
+#define r_reg_ce_tone_7_0 0xFD13
+#define reg_ce_tone_7_0_pos 0
+#define reg_ce_tone_7_0_len 8
+#define reg_ce_tone_7_0_lsb 0
+#define xd_r_reg_ce_tone_12_8 (*(volatile byte xdata *) 0xFD14)
+#define r_reg_ce_tone_12_8 0xFD14
+#define reg_ce_tone_12_8_pos 0
+#define reg_ce_tone_12_8_len 5
+#define reg_ce_tone_12_8_lsb 8
+#define xd_p_reg_ce_centroid_drift_th (*(volatile byte xdata *) 0xFD15)
+#define p_reg_ce_centroid_drift_th 0xFD15
+#define reg_ce_centroid_drift_th_pos 0
+#define reg_ce_centroid_drift_th_len 8
+#define reg_ce_centroid_drift_th_lsb 0
+#define xd_p_reg_ce_centroid_bias_inc_7_0 (*(volatile byte xdata *) 0xFD16)
+#define p_reg_ce_centroid_bias_inc_7_0 0xFD16
+#define reg_ce_centroid_bias_inc_7_0_pos 0
+#define reg_ce_centroid_bias_inc_7_0_len 8
+#define reg_ce_centroid_bias_inc_7_0_lsb 0
+#define xd_p_reg_ce_centroid_bias_inc_8 (*(volatile byte xdata *) 0xFD17)
+#define p_reg_ce_centroid_bias_inc_8 0xFD17
+#define reg_ce_centroid_bias_inc_8_pos 0
+#define reg_ce_centroid_bias_inc_8_len 1
+#define reg_ce_centroid_bias_inc_8_lsb 8
+#define xd_p_reg_ce_centroid_count_max (*(volatile byte xdata *) 0xFD18)
+#define p_reg_ce_centroid_count_max 0xFD18
+#define reg_ce_centroid_count_max_pos 0
+#define reg_ce_centroid_count_max_len 4
+#define reg_ce_centroid_count_max_lsb 0
+#define xd_p_reg_ce_var_th0_7_0 (*(volatile byte xdata *) 0xFD19)
+#define p_reg_ce_var_th0_7_0 0xFD19
+#define reg_ce_var_th0_7_0_pos 0
+#define reg_ce_var_th0_7_0_len 8
+#define reg_ce_var_th0_7_0_lsb 0
+#define xd_p_reg_ce_var_th0_15_8 (*(volatile byte xdata *) 0xFD1A)
+#define p_reg_ce_var_th0_15_8 0xFD1A
+#define reg_ce_var_th0_15_8_pos 0
+#define reg_ce_var_th0_15_8_len 8
+#define reg_ce_var_th0_15_8_lsb 8
+#define xd_p_reg_ce_var_th1_7_0 (*(volatile byte xdata *) 0xFD1B)
+#define p_reg_ce_var_th1_7_0 0xFD1B
+#define reg_ce_var_th1_7_0_pos 0
+#define reg_ce_var_th1_7_0_len 8
+#define reg_ce_var_th1_7_0_lsb 0
+#define xd_p_reg_ce_var_th1_15_8 (*(volatile byte xdata *) 0xFD1C)
+#define p_reg_ce_var_th1_15_8 0xFD1C
+#define reg_ce_var_th1_15_8_pos 0
+#define reg_ce_var_th1_15_8_len 8
+#define reg_ce_var_th1_15_8_lsb 8
+#define xd_p_reg_ce_var_th2_7_0 (*(volatile byte xdata *) 0xFD1D)
+#define p_reg_ce_var_th2_7_0 0xFD1D
+#define reg_ce_var_th2_7_0_pos 0
+#define reg_ce_var_th2_7_0_len 8
+#define reg_ce_var_th2_7_0_lsb 0
+#define xd_p_reg_ce_var_th2_15_8 (*(volatile byte xdata *) 0xFD1E)
+#define p_reg_ce_var_th2_15_8 0xFD1E
+#define reg_ce_var_th2_15_8_pos 0
+#define reg_ce_var_th2_15_8_len 8
+#define reg_ce_var_th2_15_8_lsb 8
+#define xd_p_reg_ce_var_th3_7_0 (*(volatile byte xdata *) 0xFD1F)
+#define p_reg_ce_var_th3_7_0 0xFD1F
+#define reg_ce_var_th3_7_0_pos 0
+#define reg_ce_var_th3_7_0_len 8
+#define reg_ce_var_th3_7_0_lsb 0
+#define xd_p_reg_ce_var_th3_15_8 (*(volatile byte xdata *) 0xFD20)
+#define p_reg_ce_var_th3_15_8 0xFD20
+#define reg_ce_var_th3_15_8_pos 0
+#define reg_ce_var_th3_15_8_len 8
+#define reg_ce_var_th3_15_8_lsb 8
+#define xd_p_reg_ce_var_th4_7_0 (*(volatile byte xdata *) 0xFD21)
+#define p_reg_ce_var_th4_7_0 0xFD21
+#define reg_ce_var_th4_7_0_pos 0
+#define reg_ce_var_th4_7_0_len 8
+#define reg_ce_var_th4_7_0_lsb 0
+#define xd_p_reg_ce_var_th4_15_8 (*(volatile byte xdata *) 0xFD22)
+#define p_reg_ce_var_th4_15_8 0xFD22
+#define reg_ce_var_th4_15_8_pos 0
+#define reg_ce_var_th4_15_8_len 8
+#define reg_ce_var_th4_15_8_lsb 8
+#define xd_p_reg_ce_var_th5_7_0 (*(volatile byte xdata *) 0xFD23)
+#define p_reg_ce_var_th5_7_0 0xFD23
+#define reg_ce_var_th5_7_0_pos 0
+#define reg_ce_var_th5_7_0_len 8
+#define reg_ce_var_th5_7_0_lsb 0
+#define xd_p_reg_ce_var_th5_15_8 (*(volatile byte xdata *) 0xFD24)
+#define p_reg_ce_var_th5_15_8 0xFD24
+#define reg_ce_var_th5_15_8_pos 0
+#define reg_ce_var_th5_15_8_len 8
+#define reg_ce_var_th5_15_8_lsb 8
+#define xd_p_reg_ce_var_th6_7_0 (*(volatile byte xdata *) 0xFD25)
+#define p_reg_ce_var_th6_7_0 0xFD25
+#define reg_ce_var_th6_7_0_pos 0
+#define reg_ce_var_th6_7_0_len 8
+#define reg_ce_var_th6_7_0_lsb 0
+#define xd_p_reg_ce_var_th6_15_8 (*(volatile byte xdata *) 0xFD26)
+#define p_reg_ce_var_th6_15_8 0xFD26
+#define reg_ce_var_th6_15_8_pos 0
+#define reg_ce_var_th6_15_8_len 8
+#define reg_ce_var_th6_15_8_lsb 8
+#define xd_p_reg_ce_var_max (*(volatile byte xdata *) 0xFD27)
+#define p_reg_ce_var_max 0xFD27
+#define reg_ce_var_max_pos 0
+#define reg_ce_var_max_len 3
+#define reg_ce_var_max_lsb 0
+#define xd_p_reg_ce_cent_forced_en (*(volatile byte xdata *) 0xFD28)
+#define p_reg_ce_cent_forced_en 0xFD28
+#define reg_ce_cent_forced_en_pos 0
+#define reg_ce_cent_forced_en_len 1
+#define reg_ce_cent_forced_en_lsb 0
+#define xd_p_reg_ce_var_forced_en (*(volatile byte xdata *) 0xFD29)
+#define p_reg_ce_var_forced_en 0xFD29
+#define reg_ce_var_forced_en_pos 0
+#define reg_ce_var_forced_en_len 1
+#define reg_ce_var_forced_en_lsb 0
+#define xd_p_reg_ce_fctrl_auto_reset_en (*(volatile byte xdata *) 0xFD2A)
+#define p_reg_ce_fctrl_auto_reset_en 0xFD2A
+#define reg_ce_fctrl_auto_reset_en_pos 0
+#define reg_ce_fctrl_auto_reset_en_len 1
+#define reg_ce_fctrl_auto_reset_en_lsb 0
+#define xd_p_reg_ce_cent_auto_clr_en (*(volatile byte xdata *) 0xFD2B)
+#define p_reg_ce_cent_auto_clr_en 0xFD2B
+#define reg_ce_cent_auto_clr_en_pos 0
+#define reg_ce_cent_auto_clr_en_len 1
+#define reg_ce_cent_auto_clr_en_lsb 0
+#define xd_p_reg_ce_fctrl_reset (*(volatile byte xdata *) 0xFD2C)
+#define p_reg_ce_fctrl_reset 0xFD2C
+#define reg_ce_fctrl_reset_pos 0
+#define reg_ce_fctrl_reset_len 1
+#define reg_ce_fctrl_reset_lsb 0
+#define xd_p_reg_ce_cent_forced_value_7_0 (*(volatile byte xdata *) 0xFD2D)
+#define p_reg_ce_cent_forced_value_7_0 0xFD2D
+#define reg_ce_cent_forced_value_7_0_pos 0
+#define reg_ce_cent_forced_value_7_0_len 8
+#define reg_ce_cent_forced_value_7_0_lsb 0
+#define xd_p_reg_ce_cent_forced_value_11_8 (*(volatile byte xdata *) 0xFD2E)
+#define p_reg_ce_cent_forced_value_11_8 0xFD2E
+#define reg_ce_cent_forced_value_11_8_pos 0
+#define reg_ce_cent_forced_value_11_8_len 4
+#define reg_ce_cent_forced_value_11_8_lsb 8
+#define xd_p_reg_ce_cent_auto_clr_value_7_0 (*(volatile byte xdata *) 0xFD2F)
+#define p_reg_ce_cent_auto_clr_value_7_0 0xFD2F
+#define reg_ce_cent_auto_clr_value_7_0_pos 0
+#define reg_ce_cent_auto_clr_value_7_0_len 8
+#define reg_ce_cent_auto_clr_value_7_0_lsb 0
+#define xd_p_reg_ce_cent_auto_clr_value_11_8 (*(volatile byte xdata *) 0xFD30)
+#define p_reg_ce_cent_auto_clr_value_11_8 0xFD30
+#define reg_ce_cent_auto_clr_value_11_8_pos 0
+#define reg_ce_cent_auto_clr_value_11_8_len 4
+#define reg_ce_cent_auto_clr_value_11_8_lsb 8
+#define xd_p_reg_ce_centroid_max_7_0 (*(volatile byte xdata *) 0xFD31)
+#define p_reg_ce_centroid_max_7_0 0xFD31
+#define reg_ce_centroid_max_7_0_pos 0
+#define reg_ce_centroid_max_7_0_len 8
+#define reg_ce_centroid_max_7_0_lsb 0
+#define xd_p_reg_ce_centroid_max_11_8 (*(volatile byte xdata *) 0xFD32)
+#define p_reg_ce_centroid_max_11_8 0xFD32
+#define reg_ce_centroid_max_11_8_pos 0
+#define reg_ce_centroid_max_11_8_len 4
+#define reg_ce_centroid_max_11_8_lsb 8
+#define xd_p_reg_ce_fctrl_rd (*(volatile byte xdata *) 0xFD33)
+#define p_reg_ce_fctrl_rd 0xFD33
+#define reg_ce_fctrl_rd_pos 0
+#define reg_ce_fctrl_rd_len 1
+#define reg_ce_fctrl_rd_lsb 0
+#define xd_r_reg_ce_centroid_out_7_0 (*(volatile byte xdata *) 0xFD34)
+#define r_reg_ce_centroid_out_7_0 0xFD34
+#define reg_ce_centroid_out_7_0_pos 0
+#define reg_ce_centroid_out_7_0_len 8
+#define reg_ce_centroid_out_7_0_lsb 0
+#define xd_r_reg_ce_centroid_out_11_8 (*(volatile byte xdata *) 0xFD35)
+#define r_reg_ce_centroid_out_11_8 0xFD35
+#define reg_ce_centroid_out_11_8_pos 0
+#define reg_ce_centroid_out_11_8_len 4
+#define reg_ce_centroid_out_11_8_lsb 8
+#define xd_r_reg_ce_fctrl_rdy (*(volatile byte xdata *) 0xFD36)
+#define r_reg_ce_fctrl_rdy 0xFD36
+#define reg_ce_fctrl_rdy_pos 0
+#define reg_ce_fctrl_rdy_len 1
+#define reg_ce_fctrl_rdy_lsb 0
+#define xd_r_reg_ce_var (*(volatile byte xdata *) 0xFD37)
+#define r_reg_ce_var 0xFD37
+#define reg_ce_var_pos 0
+#define reg_ce_var_len 3
+#define reg_ce_var_lsb 0
+#define xd_r_reg_ce_bias_7_0 (*(volatile byte xdata *) 0xFD38)
+#define r_reg_ce_bias_7_0 0xFD38
+#define reg_ce_bias_7_0_pos 0
+#define reg_ce_bias_7_0_len 8
+#define reg_ce_bias_7_0_lsb 0
+#define xd_r_reg_ce_bias_11_8 (*(volatile byte xdata *) 0xFD39)
+#define r_reg_ce_bias_11_8 0xFD39
+#define reg_ce_bias_11_8_pos 0
+#define reg_ce_bias_11_8_len 4
+#define reg_ce_bias_11_8_lsb 8
+#define xd_r_reg_ce_m1_7_0 (*(volatile byte xdata *) 0xFD3A)
+#define r_reg_ce_m1_7_0 0xFD3A
+#define reg_ce_m1_7_0_pos 0
+#define reg_ce_m1_7_0_len 8
+#define reg_ce_m1_7_0_lsb 0
+#define xd_r_reg_ce_m1_11_8 (*(volatile byte xdata *) 0xFD3B)
+#define r_reg_ce_m1_11_8 0xFD3B
+#define reg_ce_m1_11_8_pos 0
+#define reg_ce_m1_11_8_len 4
+#define reg_ce_m1_11_8_lsb 8
+#define xd_r_reg_ce_rh0_7_0 (*(volatile byte xdata *) 0xFD3C)
+#define r_reg_ce_rh0_7_0 0xFD3C
+#define reg_ce_rh0_7_0_pos 0
+#define reg_ce_rh0_7_0_len 8
+#define reg_ce_rh0_7_0_lsb 0
+#define xd_r_reg_ce_rh0_15_8 (*(volatile byte xdata *) 0xFD3D)
+#define r_reg_ce_rh0_15_8 0xFD3D
+#define reg_ce_rh0_15_8_pos 0
+#define reg_ce_rh0_15_8_len 8
+#define reg_ce_rh0_15_8_lsb 8
+#define xd_r_reg_ce_rh0_23_16 (*(volatile byte xdata *) 0xFD3E)
+#define r_reg_ce_rh0_23_16 0xFD3E
+#define reg_ce_rh0_23_16_pos 0
+#define reg_ce_rh0_23_16_len 8
+#define reg_ce_rh0_23_16_lsb 16
+#define xd_r_reg_ce_rh0_31_24 (*(volatile byte xdata *) 0xFD3F)
+#define r_reg_ce_rh0_31_24 0xFD3F
+#define reg_ce_rh0_31_24_pos 0
+#define reg_ce_rh0_31_24_len 8
+#define reg_ce_rh0_31_24_lsb 24
+#define xd_p_reg_ce_tdi_delta (*(volatile byte xdata *) 0xFD40)
+#define p_reg_ce_tdi_delta 0xFD40
+#define reg_ce_tdi_delta_pos 0
+#define reg_ce_tdi_delta_len 3
+#define reg_ce_tdi_delta_lsb 0
+#define xd_p_reg_ce_fdi_delta (*(volatile byte xdata *) 0xFD41)
+#define p_reg_ce_fdi_delta 0xFD41
+#define reg_ce_fdi_delta_pos 0
+#define reg_ce_fdi_delta_len 3
+#define reg_ce_fdi_delta_lsb 0
+#define xd_p_reg_ce_fste_delta (*(volatile byte xdata *) 0xFD42)
+#define p_reg_ce_fste_delta 0xFD42
+#define reg_ce_fste_delta_pos 0
+#define reg_ce_fste_delta_len 3
+#define reg_ce_fste_delta_lsb 0
+#define xd_r_reg_ce_fft_s1 (*(volatile byte xdata *) 0xFD43)
+#define r_reg_ce_fft_s1 0xFD43
+#define reg_ce_fft_s1_pos 0
+#define reg_ce_fft_s1_len 4
+#define reg_ce_fft_s1_lsb 0
+#define xd_r_reg_feq_fix_eh2_7_0 (*(volatile byte xdata *) 0xFD44)
+#define r_reg_feq_fix_eh2_7_0 0xFD44
+#define reg_feq_fix_eh2_7_0_pos 0
+#define reg_feq_fix_eh2_7_0_len 8
+#define reg_feq_fix_eh2_7_0_lsb 0
+#define xd_r_reg_feq_fix_eh2_15_8 (*(volatile byte xdata *) 0xFD45)
+#define r_reg_feq_fix_eh2_15_8 0xFD45
+#define reg_feq_fix_eh2_15_8_pos 0
+#define reg_feq_fix_eh2_15_8_len 8
+#define reg_feq_fix_eh2_15_8_lsb 8
+#define xd_r_reg_feq_fix_eh2_23_16 (*(volatile byte xdata *) 0xFD46)
+#define r_reg_feq_fix_eh2_23_16 0xFD46
+#define reg_feq_fix_eh2_23_16_pos 0
+#define reg_feq_fix_eh2_23_16_len 8
+#define reg_feq_fix_eh2_23_16_lsb 16
+#define xd_r_reg_feq_fix_eh2_31_24 (*(volatile byte xdata *) 0xFD47)
+#define r_reg_feq_fix_eh2_31_24 0xFD47
+#define reg_feq_fix_eh2_31_24_pos 0
+#define reg_feq_fix_eh2_31_24_len 8
+#define reg_feq_fix_eh2_31_24_lsb 24
+#define xd_r_reg_ce_m2_central_7_0 (*(volatile byte xdata *) 0xFD48)
+#define r_reg_ce_m2_central_7_0 0xFD48
+#define reg_ce_m2_central_7_0_pos 0
+#define reg_ce_m2_central_7_0_len 8
+#define reg_ce_m2_central_7_0_lsb 0
+#define xd_r_reg_ce_m2_central_15_8 (*(volatile byte xdata *) 0xFD49)
+#define r_reg_ce_m2_central_15_8 0xFD49
+#define reg_ce_m2_central_15_8_pos 0
+#define reg_ce_m2_central_15_8_len 8
+#define reg_ce_m2_central_15_8_lsb 8
+#define xd_r_reg_ce_sigma2_7_0 (*(volatile byte xdata *) 0xFD4A)
+#define r_reg_ce_sigma2_7_0 0xFD4A
+#define reg_ce_sigma2_7_0_pos 0
+#define reg_ce_sigma2_7_0_len 8
+#define reg_ce_sigma2_7_0_lsb 0
+#define xd_r_reg_ce_sigma2_15_8 (*(volatile byte xdata *) 0xFD4B)
+#define r_reg_ce_sigma2_15_8 0xFD4B
+#define reg_ce_sigma2_15_8_pos 0
+#define reg_ce_sigma2_15_8_len 8
+#define reg_ce_sigma2_15_8_lsb 8
+#define xd_r_reg_ce_sigma2_19_16 (*(volatile byte xdata *) 0xFD4C)
+#define r_reg_ce_sigma2_19_16 0xFD4C
+#define reg_ce_sigma2_19_16_pos 0
+#define reg_ce_sigma2_19_16_len 4
+#define reg_ce_sigma2_19_16_lsb 16
+#define xd_r_reg_ce_data_im_7_0 (*(volatile byte xdata *) 0xFD4D)
+#define r_reg_ce_data_im_7_0 0xFD4D
+#define reg_ce_data_im_7_0_pos 0
+#define reg_ce_data_im_7_0_len 8
+#define reg_ce_data_im_7_0_lsb 0
+#define xd_r_reg_ce_data_im_14_8 (*(volatile byte xdata *) 0xFD4E)
+#define r_reg_ce_data_im_14_8 0xFD4E
+#define reg_ce_data_im_14_8_pos 0
+#define reg_ce_data_im_14_8_len 7
+#define reg_ce_data_im_14_8_lsb 8
+#define xd_r_reg_ce_data_re_7_0 (*(volatile byte xdata *) 0xFD4F)
+#define r_reg_ce_data_re_7_0 0xFD4F
+#define reg_ce_data_re_7_0_pos 0
+#define reg_ce_data_re_7_0_len 8
+#define reg_ce_data_re_7_0_lsb 0
+#define xd_r_reg_ce_data_re_14_8 (*(volatile byte xdata *) 0xFD50)
+#define r_reg_ce_data_re_14_8 0xFD50
+#define reg_ce_data_re_14_8_pos 0
+#define reg_ce_data_re_14_8_len 7
+#define reg_ce_data_re_14_8_lsb 8
+#define xd_p_reg_ce_var_default_value (*(volatile byte xdata *) 0xFD51)
+#define p_reg_ce_var_default_value 0xFD51
+#define reg_ce_var_default_value_pos 0
+#define reg_ce_var_default_value_len 3
+#define reg_ce_var_default_value_lsb 0
+#define xd_p_reg_ce_cent_default_value_7_0 (*(volatile byte xdata *) 0xFD52)
+#define p_reg_ce_cent_default_value_7_0 0xFD52
+#define reg_ce_cent_default_value_7_0_pos 0
+#define reg_ce_cent_default_value_7_0_len 8
+#define reg_ce_cent_default_value_7_0_lsb 0
+#define xd_p_reg_ce_cent_default_value_11_8 (*(volatile byte xdata *) 0xFD53)
+#define p_reg_ce_cent_default_value_11_8 0xFD53
+#define reg_ce_cent_default_value_11_8_pos 0
+#define reg_ce_cent_default_value_11_8_len 4
+#define reg_ce_cent_default_value_11_8_lsb 8
+#define xd_r_reg_ce_var_hw (*(volatile byte xdata *) 0xFD54)
+#define r_reg_ce_var_hw 0xFD54
+#define reg_ce_var_hw_pos 0
+#define reg_ce_var_hw_len 3
+#define reg_ce_var_hw_lsb 0
+#define xd_r_reg_ce_cent_hw_7_0 (*(volatile byte xdata *) 0xFD55)
+#define r_reg_ce_cent_hw_7_0 0xFD55
+#define reg_ce_cent_hw_7_0_pos 0
+#define reg_ce_cent_hw_7_0_len 8
+#define reg_ce_cent_hw_7_0_lsb 0
+#define xd_r_reg_ce_cent_hw_11_8 (*(volatile byte xdata *) 0xFD56)
+#define r_reg_ce_cent_hw_11_8 0xFD56
+#define reg_ce_cent_hw_11_8_pos 0
+#define reg_ce_cent_hw_11_8_len 4
+#define reg_ce_cent_hw_11_8_lsb 8
+#define xd_p_reg_ce_fdi_cp_test_en (*(volatile byte xdata *) 0xFD57)
+#define p_reg_ce_fdi_cp_test_en 0xFD57
+#define reg_ce_fdi_cp_test_en_pos 0
+#define reg_ce_fdi_cp_test_en_len 1
+#define reg_ce_fdi_cp_test_en_lsb 0
+#define xd_p_reg_ce_cptestindex0_7_0 (*(volatile byte xdata *) 0xFD58)
+#define p_reg_ce_cptestindex0_7_0 0xFD58
+#define reg_ce_cptestindex0_7_0_pos 0
+#define reg_ce_cptestindex0_7_0_len 8
+#define reg_ce_cptestindex0_7_0_lsb 0
+#define xd_p_reg_ce_cptestindex0_12_8 (*(volatile byte xdata *) 0xFD59)
+#define p_reg_ce_cptestindex0_12_8 0xFD59
+#define reg_ce_cptestindex0_12_8_pos 0
+#define reg_ce_cptestindex0_12_8_len 5
+#define reg_ce_cptestindex0_12_8_lsb 8
+#define xd_p_reg_ce_cptestfdi0 (*(volatile byte xdata *) 0xFD5A)
+#define p_reg_ce_cptestfdi0 0xFD5A
+#define reg_ce_cptestfdi0_pos 0
+#define reg_ce_cptestfdi0_len 3
+#define reg_ce_cptestfdi0_lsb 0
+#define xd_p_reg_ce_cptestindex1_7_0 (*(volatile byte xdata *) 0xFD5B)
+#define p_reg_ce_cptestindex1_7_0 0xFD5B
+#define reg_ce_cptestindex1_7_0_pos 0
+#define reg_ce_cptestindex1_7_0_len 8
+#define reg_ce_cptestindex1_7_0_lsb 0
+#define xd_p_reg_ce_cptestindex1_12_8 (*(volatile byte xdata *) 0xFD5C)
+#define p_reg_ce_cptestindex1_12_8 0xFD5C
+#define reg_ce_cptestindex1_12_8_pos 0
+#define reg_ce_cptestindex1_12_8_len 5
+#define reg_ce_cptestindex1_12_8_lsb 8
+#define xd_p_reg_ce_cptestfdi1 (*(volatile byte xdata *) 0xFD5D)
+#define p_reg_ce_cptestfdi1 0xFD5D
+#define reg_ce_cptestfdi1_pos 0
+#define reg_ce_cptestfdi1_len 3
+#define reg_ce_cptestfdi1_lsb 0
+#define xd_p_reg_ce_cptestindex2_7_0 (*(volatile byte xdata *) 0xFD5E)
+#define p_reg_ce_cptestindex2_7_0 0xFD5E
+#define reg_ce_cptestindex2_7_0_pos 0
+#define reg_ce_cptestindex2_7_0_len 8
+#define reg_ce_cptestindex2_7_0_lsb 0
+#define xd_p_reg_ce_cptestindex2_12_8 (*(volatile byte xdata *) 0xFD5F)
+#define p_reg_ce_cptestindex2_12_8 0xFD5F
+#define reg_ce_cptestindex2_12_8_pos 0
+#define reg_ce_cptestindex2_12_8_len 5
+#define reg_ce_cptestindex2_12_8_lsb 8
+#define xd_p_reg_ce_cptestfdi2 (*(volatile byte xdata *) 0xFD60)
+#define p_reg_ce_cptestfdi2 0xFD60
+#define reg_ce_cptestfdi2_pos 0
+#define reg_ce_cptestfdi2_len 3
+#define reg_ce_cptestfdi2_lsb 0
+#define xd_p_reg_ce_cptestindex3_7_0 (*(volatile byte xdata *) 0xFD61)
+#define p_reg_ce_cptestindex3_7_0 0xFD61
+#define reg_ce_cptestindex3_7_0_pos 0
+#define reg_ce_cptestindex3_7_0_len 8
+#define reg_ce_cptestindex3_7_0_lsb 0
+#define xd_p_reg_ce_cptestindex3_12_8 (*(volatile byte xdata *) 0xFD62)
+#define p_reg_ce_cptestindex3_12_8 0xFD62
+#define reg_ce_cptestindex3_12_8_pos 0
+#define reg_ce_cptestindex3_12_8_len 5
+#define reg_ce_cptestindex3_12_8_lsb 8
+#define xd_p_reg_ce_cptestfdi3 (*(volatile byte xdata *) 0xFD63)
+#define p_reg_ce_cptestfdi3 0xFD63
+#define reg_ce_cptestfdi3_pos 0
+#define reg_ce_cptestfdi3_len 3
+#define reg_ce_cptestfdi3_lsb 0
+#define xd_p_reg_ce_cptestindex4_7_0 (*(volatile byte xdata *) 0xFD64)
+#define p_reg_ce_cptestindex4_7_0 0xFD64
+#define reg_ce_cptestindex4_7_0_pos 0
+#define reg_ce_cptestindex4_7_0_len 8
+#define reg_ce_cptestindex4_7_0_lsb 0
+#define xd_p_reg_ce_cptestindex4_12_8 (*(volatile byte xdata *) 0xFD65)
+#define p_reg_ce_cptestindex4_12_8 0xFD65
+#define reg_ce_cptestindex4_12_8_pos 0
+#define reg_ce_cptestindex4_12_8_len 5
+#define reg_ce_cptestindex4_12_8_lsb 8
+#define xd_p_reg_ce_cptestfdi4 (*(volatile byte xdata *) 0xFD66)
+#define p_reg_ce_cptestfdi4 0xFD66
+#define reg_ce_cptestfdi4_pos 0
+#define reg_ce_cptestfdi4_len 3
+#define reg_ce_cptestfdi4_lsb 0
+#define xd_p_reg_ce_cptestindex5_7_0 (*(volatile byte xdata *) 0xFD67)
+#define p_reg_ce_cptestindex5_7_0 0xFD67
+#define reg_ce_cptestindex5_7_0_pos 0
+#define reg_ce_cptestindex5_7_0_len 8
+#define reg_ce_cptestindex5_7_0_lsb 0
+#define xd_p_reg_ce_cptestindex5_12_8 (*(volatile byte xdata *) 0xFD68)
+#define p_reg_ce_cptestindex5_12_8 0xFD68
+#define reg_ce_cptestindex5_12_8_pos 0
+#define reg_ce_cptestindex5_12_8_len 5
+#define reg_ce_cptestindex5_12_8_lsb 8
+#define xd_p_reg_ce_cptestfdi5 (*(volatile byte xdata *) 0xFD69)
+#define p_reg_ce_cptestfdi5 0xFD69
+#define reg_ce_cptestfdi5_pos 0
+#define reg_ce_cptestfdi5_len 3
+#define reg_ce_cptestfdi5_lsb 0
+#define xd_p_reg_ce_cptestindex6_7_0 (*(volatile byte xdata *) 0xFD6A)
+#define p_reg_ce_cptestindex6_7_0 0xFD6A
+#define reg_ce_cptestindex6_7_0_pos 0
+#define reg_ce_cptestindex6_7_0_len 8
+#define reg_ce_cptestindex6_7_0_lsb 0
+#define xd_p_reg_ce_cptestindex6_12_8 (*(volatile byte xdata *) 0xFD6B)
+#define p_reg_ce_cptestindex6_12_8 0xFD6B
+#define reg_ce_cptestindex6_12_8_pos 0
+#define reg_ce_cptestindex6_12_8_len 5
+#define reg_ce_cptestindex6_12_8_lsb 8
+#define xd_p_reg_ce_cptestfdi6 (*(volatile byte xdata *) 0xFD6C)
+#define p_reg_ce_cptestfdi6 0xFD6C
+#define reg_ce_cptestfdi6_pos 0
+#define reg_ce_cptestfdi6_len 3
+#define reg_ce_cptestfdi6_lsb 0
+#define xd_p_reg_ce_cptestindex7_7_0 (*(volatile byte xdata *) 0xFD6D)
+#define p_reg_ce_cptestindex7_7_0 0xFD6D
+#define reg_ce_cptestindex7_7_0_pos 0
+#define reg_ce_cptestindex7_7_0_len 8
+#define reg_ce_cptestindex7_7_0_lsb 0
+#define xd_p_reg_ce_cptestindex7_12_8 (*(volatile byte xdata *) 0xFD6E)
+#define p_reg_ce_cptestindex7_12_8 0xFD6E
+#define reg_ce_cptestindex7_12_8_pos 0
+#define reg_ce_cptestindex7_12_8_len 5
+#define reg_ce_cptestindex7_12_8_lsb 8
+#define xd_p_reg_ce_cptestfdi7 (*(volatile byte xdata *) 0xFD6F)
+#define p_reg_ce_cptestfdi7 0xFD6F
+#define reg_ce_cptestfdi7_pos 0
+#define reg_ce_cptestfdi7_len 3
+#define reg_ce_cptestfdi7_lsb 0
+#define xd_p_reg_ce_cp_replace_tdiout_en (*(volatile byte xdata *) 0xFD74)
+#define p_reg_ce_cp_replace_tdiout_en 0xFD74
+#define reg_ce_cp_replace_tdiout_en_pos 0
+#define reg_ce_cp_replace_tdiout_en_len 1
+#define reg_ce_cp_replace_tdiout_en_lsb 0
+#define xd_p_reg_ce_tdi_mask0_en (*(volatile byte xdata *) 0xFD7D)
+#define p_reg_ce_tdi_mask0_en 0xFD7D
+#define reg_ce_tdi_mask0_en_pos 0
+#define reg_ce_tdi_mask0_en_len 1
+#define reg_ce_tdi_mask0_en_lsb 0
+#define xd_p_reg_ce_tdi_mask_from0_7_0 (*(volatile byte xdata *) 0xFD7E)
+#define p_reg_ce_tdi_mask_from0_7_0 0xFD7E
+#define reg_ce_tdi_mask_from0_7_0_pos 0
+#define reg_ce_tdi_mask_from0_7_0_len 8
+#define reg_ce_tdi_mask_from0_7_0_lsb 0
+#define xd_p_reg_ce_tdi_mask_from0_12_8 (*(volatile byte xdata *) 0xFD7F)
+#define p_reg_ce_tdi_mask_from0_12_8 0xFD7F
+#define reg_ce_tdi_mask_from0_12_8_pos 0
+#define reg_ce_tdi_mask_from0_12_8_len 5
+#define reg_ce_tdi_mask_from0_12_8_lsb 8
+#define xd_p_reg_ce_tdi_mask_to0_7_0 (*(volatile byte xdata *) 0xFD80)
+#define p_reg_ce_tdi_mask_to0_7_0 0xFD80
+#define reg_ce_tdi_mask_to0_7_0_pos 0
+#define reg_ce_tdi_mask_to0_7_0_len 8
+#define reg_ce_tdi_mask_to0_7_0_lsb 0
+#define xd_p_reg_ce_tdi_mask_to0_12_8 (*(volatile byte xdata *) 0xFD81)
+#define p_reg_ce_tdi_mask_to0_12_8 0xFD81
+#define reg_ce_tdi_mask_to0_12_8_pos 0
+#define reg_ce_tdi_mask_to0_12_8_len 5
+#define reg_ce_tdi_mask_to0_12_8_lsb 8
+#define xd_p_reg_ce_tdi_mask1_en (*(volatile byte xdata *) 0xFD82)
+#define p_reg_ce_tdi_mask1_en 0xFD82
+#define reg_ce_tdi_mask1_en_pos 0
+#define reg_ce_tdi_mask1_en_len 1
+#define reg_ce_tdi_mask1_en_lsb 0
+#define xd_p_reg_ce_tdi_mask_from1_7_0 (*(volatile byte xdata *) 0xFD83)
+#define p_reg_ce_tdi_mask_from1_7_0 0xFD83
+#define reg_ce_tdi_mask_from1_7_0_pos 0
+#define reg_ce_tdi_mask_from1_7_0_len 8
+#define reg_ce_tdi_mask_from1_7_0_lsb 0
+#define xd_p_reg_ce_tdi_mask_from1_12_8 (*(volatile byte xdata *) 0xFD84)
+#define p_reg_ce_tdi_mask_from1_12_8 0xFD84
+#define reg_ce_tdi_mask_from1_12_8_pos 0
+#define reg_ce_tdi_mask_from1_12_8_len 5
+#define reg_ce_tdi_mask_from1_12_8_lsb 8
+#define xd_p_reg_ce_tdi_mask_to1_7_0 (*(volatile byte xdata *) 0xFD85)
+#define p_reg_ce_tdi_mask_to1_7_0 0xFD85
+#define reg_ce_tdi_mask_to1_7_0_pos 0
+#define reg_ce_tdi_mask_to1_7_0_len 8
+#define reg_ce_tdi_mask_to1_7_0_lsb 0
+#define xd_p_reg_ce_tdi_mask_to1_12_8 (*(volatile byte xdata *) 0xFD86)
+#define p_reg_ce_tdi_mask_to1_12_8 0xFD86
+#define reg_ce_tdi_mask_to1_12_8_pos 0
+#define reg_ce_tdi_mask_to1_12_8_len 5
+#define reg_ce_tdi_mask_to1_12_8_lsb 8
+#define xd_p_reg_ce_2nd_var_max (*(volatile byte xdata *) 0xFD87)
+#define p_reg_ce_2nd_var_max 0xFD87
+#define reg_ce_2nd_var_max_pos 0
+#define reg_ce_2nd_var_max_len 3
+#define reg_ce_2nd_var_max_lsb 0
+#define xd_p_reg_ce_2nd_cent_forced_en (*(volatile byte xdata *) 0xFD88)
+#define p_reg_ce_2nd_cent_forced_en 0xFD88
+#define reg_ce_2nd_cent_forced_en_pos 0
+#define reg_ce_2nd_cent_forced_en_len 1
+#define reg_ce_2nd_cent_forced_en_lsb 0
+#define xd_p_reg_ce_2nd_var_forced_en (*(volatile byte xdata *) 0xFD89)
+#define p_reg_ce_2nd_var_forced_en 0xFD89
+#define reg_ce_2nd_var_forced_en_pos 0
+#define reg_ce_2nd_var_forced_en_len 1
+#define reg_ce_2nd_var_forced_en_lsb 0
+#define xd_p_reg_ce_2nd_fctrl_auto_reset_en (*(volatile byte xdata *) 0xFD8A)
+#define p_reg_ce_2nd_fctrl_auto_reset_en 0xFD8A
+#define reg_ce_2nd_fctrl_auto_reset_en_pos 0
+#define reg_ce_2nd_fctrl_auto_reset_en_len 1
+#define reg_ce_2nd_fctrl_auto_reset_en_lsb 0
+#define xd_p_reg_ce_2nd_cent_auto_clr_en (*(volatile byte xdata *) 0xFD8B)
+#define p_reg_ce_2nd_cent_auto_clr_en 0xFD8B
+#define reg_ce_2nd_cent_auto_clr_en_pos 0
+#define reg_ce_2nd_cent_auto_clr_en_len 1
+#define reg_ce_2nd_cent_auto_clr_en_lsb 0
+#define xd_p_reg_ce_2nd_cent_forced_value_7_0 (*(volatile byte xdata *) 0xFD8C)
+#define p_reg_ce_2nd_cent_forced_value_7_0 0xFD8C
+#define reg_ce_2nd_cent_forced_value_7_0_pos 0
+#define reg_ce_2nd_cent_forced_value_7_0_len 8
+#define reg_ce_2nd_cent_forced_value_7_0_lsb 0
+#define xd_p_reg_ce_2nd_cent_forced_value_11_8 (*(volatile byte xdata *) 0xFD8D)
+#define p_reg_ce_2nd_cent_forced_value_11_8 0xFD8D
+#define reg_ce_2nd_cent_forced_value_11_8_pos 0
+#define reg_ce_2nd_cent_forced_value_11_8_len 4
+#define reg_ce_2nd_cent_forced_value_11_8_lsb 8
+#define xd_p_reg_ce_2nd_cent_auto_clr_value_7_0 (*(volatile byte xdata *) 0xFD8E)
+#define p_reg_ce_2nd_cent_auto_clr_value_7_0 0xFD8E
+#define reg_ce_2nd_cent_auto_clr_value_7_0_pos 0
+#define reg_ce_2nd_cent_auto_clr_value_7_0_len 8
+#define reg_ce_2nd_cent_auto_clr_value_7_0_lsb 0
+#define xd_p_reg_ce_2nd_cent_auto_clr_value_11_8 (*(volatile byte xdata *) 0xFD8F)
+#define p_reg_ce_2nd_cent_auto_clr_value_11_8 0xFD8F
+#define reg_ce_2nd_cent_auto_clr_value_11_8_pos 0
+#define reg_ce_2nd_cent_auto_clr_value_11_8_len 4
+#define reg_ce_2nd_cent_auto_clr_value_11_8_lsb 8
+#define xd_p_reg_ce_gs_s1_var (*(volatile byte xdata *) 0xFD90)
+#define p_reg_ce_gs_s1_var 0xFD90
+#define reg_ce_gs_s1_var_pos 0
+#define reg_ce_gs_s1_var_len 4
+#define reg_ce_gs_s1_var_lsb 0
+#define xd_p_reg_ce_2nd_centroid_max_7_0 (*(volatile byte xdata *) 0xFD91)
+#define p_reg_ce_2nd_centroid_max_7_0 0xFD91
+#define reg_ce_2nd_centroid_max_7_0_pos 0
+#define reg_ce_2nd_centroid_max_7_0_len 8
+#define reg_ce_2nd_centroid_max_7_0_lsb 0
+#define xd_p_reg_ce_2nd_centroid_max_11_8 (*(volatile byte xdata *) 0xFD92)
+#define p_reg_ce_2nd_centroid_max_11_8 0xFD92
+#define reg_ce_2nd_centroid_max_11_8_pos 0
+#define reg_ce_2nd_centroid_max_11_8_len 4
+#define reg_ce_2nd_centroid_max_11_8_lsb 8
+#define xd_r_reg_ce_2nd_centroid_out_7_0 (*(volatile byte xdata *) 0xFD93)
+#define r_reg_ce_2nd_centroid_out_7_0 0xFD93
+#define reg_ce_2nd_centroid_out_7_0_pos 0
+#define reg_ce_2nd_centroid_out_7_0_len 8
+#define reg_ce_2nd_centroid_out_7_0_lsb 0
+#define xd_r_reg_ce_2nd_centroid_out_11_8 (*(volatile byte xdata *) 0xFD94)
+#define r_reg_ce_2nd_centroid_out_11_8 0xFD94
+#define reg_ce_2nd_centroid_out_11_8_pos 0
+#define reg_ce_2nd_centroid_out_11_8_len 4
+#define reg_ce_2nd_centroid_out_11_8_lsb 8
+#define xd_r_reg_ce_2nd_fctrl_rdy (*(volatile byte xdata *) 0xFD95)
+#define r_reg_ce_2nd_fctrl_rdy 0xFD95
+#define reg_ce_2nd_fctrl_rdy_pos 0
+#define reg_ce_2nd_fctrl_rdy_len 1
+#define reg_ce_2nd_fctrl_rdy_lsb 0
+#define xd_r_reg_ce_2nd_var (*(volatile byte xdata *) 0xFD96)
+#define r_reg_ce_2nd_var 0xFD96
+#define reg_ce_2nd_var_pos 0
+#define reg_ce_2nd_var_len 3
+#define reg_ce_2nd_var_lsb 0
+#define xd_r_reg_ce_2nd_bias_7_0 (*(volatile byte xdata *) 0xFD97)
+#define r_reg_ce_2nd_bias_7_0 0xFD97
+#define reg_ce_2nd_bias_7_0_pos 0
+#define reg_ce_2nd_bias_7_0_len 8
+#define reg_ce_2nd_bias_7_0_lsb 0
+#define xd_r_reg_ce_2nd_bias_11_8 (*(volatile byte xdata *) 0xFD98)
+#define r_reg_ce_2nd_bias_11_8 0xFD98
+#define reg_ce_2nd_bias_11_8_pos 0
+#define reg_ce_2nd_bias_11_8_len 4
+#define reg_ce_2nd_bias_11_8_lsb 8
+#define xd_r_reg_ce_2nd_m1_7_0 (*(volatile byte xdata *) 0xFD99)
+#define r_reg_ce_2nd_m1_7_0 0xFD99
+#define reg_ce_2nd_m1_7_0_pos 0
+#define reg_ce_2nd_m1_7_0_len 8
+#define reg_ce_2nd_m1_7_0_lsb 0
+#define xd_r_reg_ce_2nd_m1_11_8 (*(volatile byte xdata *) 0xFD9A)
+#define r_reg_ce_2nd_m1_11_8 0xFD9A
+#define reg_ce_2nd_m1_11_8_pos 0
+#define reg_ce_2nd_m1_11_8_len 4
+#define reg_ce_2nd_m1_11_8_lsb 8
+#define xd_p_reg_ce_2nd_var_forced_value (*(volatile byte xdata *) 0xFD9B)
+#define p_reg_ce_2nd_var_forced_value 0xFD9B
+#define reg_ce_2nd_var_forced_value_pos 0
+#define reg_ce_2nd_var_forced_value_len 3
+#define reg_ce_2nd_var_forced_value_lsb 0
+#define xd_r_reg_ce_2nd_m2_central_7_0 (*(volatile byte xdata *) 0xFD9C)
+#define r_reg_ce_2nd_m2_central_7_0 0xFD9C
+#define reg_ce_2nd_m2_central_7_0_pos 0
+#define reg_ce_2nd_m2_central_7_0_len 8
+#define reg_ce_2nd_m2_central_7_0_lsb 0
+#define xd_r_reg_ce_2nd_m2_central_15_8 (*(volatile byte xdata *) 0xFD9D)
+#define r_reg_ce_2nd_m2_central_15_8 0xFD9D
+#define reg_ce_2nd_m2_central_15_8_pos 0
+#define reg_ce_2nd_m2_central_15_8_len 8
+#define reg_ce_2nd_m2_central_15_8_lsb 8
+#define xd_p_reg_ce_2nd_var_default_value (*(volatile byte xdata *) 0xFD9E)
+#define p_reg_ce_2nd_var_default_value 0xFD9E
+#define reg_ce_2nd_var_default_value_pos 0
+#define reg_ce_2nd_var_default_value_len 3
+#define reg_ce_2nd_var_default_value_lsb 0
+#define xd_p_reg_ce_2nd_cent_default_value_7_0 (*(volatile byte xdata *) 0xFD9F)
+#define p_reg_ce_2nd_cent_default_value_7_0 0xFD9F
+#define reg_ce_2nd_cent_default_value_7_0_pos 0
+#define reg_ce_2nd_cent_default_value_7_0_len 8
+#define reg_ce_2nd_cent_default_value_7_0_lsb 0
+#define xd_p_reg_ce_2nd_cent_default_value_11_8 (*(volatile byte xdata *) 0xFDA0)
+#define p_reg_ce_2nd_cent_default_value_11_8 0xFDA0
+#define reg_ce_2nd_cent_default_value_11_8_pos 0
+#define reg_ce_2nd_cent_default_value_11_8_len 4
+#define reg_ce_2nd_cent_default_value_11_8_lsb 8
+#define xd_p_reg_ce_use_fdi_long (*(volatile byte xdata *) 0xFDA1)
+#define p_reg_ce_use_fdi_long 0xFDA1
+#define reg_ce_use_fdi_long_pos 0
+#define reg_ce_use_fdi_long_len 1
+#define reg_ce_use_fdi_long_lsb 0
+#define xd_p_reg_p_ce_tdi_lms_en (*(volatile byte xdata *) 0xFDA2)
+#define p_reg_p_ce_tdi_lms_en 0xFDA2
+#define reg_p_ce_tdi_lms_en_pos 0
+#define reg_p_ce_tdi_lms_en_len 1
+#define reg_p_ce_tdi_lms_en_lsb 0
+#define xd_p_reg_p_ce_tdi_lms_bufshift (*(volatile byte xdata *) 0xFDA3)
+#define p_reg_p_ce_tdi_lms_bufshift 0xFDA3
+#define reg_p_ce_tdi_lms_bufshift_pos 0
+#define reg_p_ce_tdi_lms_bufshift_len 2
+#define reg_p_ce_tdi_lms_bufshift_lsb 0
+#define xd_p_reg_p_ce_tdi_lms_ave_ratio (*(volatile byte xdata *) 0xFDA4)
+#define p_reg_p_ce_tdi_lms_ave_ratio 0xFDA4
+#define reg_p_ce_tdi_lms_ave_ratio_pos 0
+#define reg_p_ce_tdi_lms_ave_ratio_len 5
+#define reg_p_ce_tdi_lms_ave_ratio_lsb 0
+#define xd_p_reg_p_ce_conf2_in_con0_en (*(volatile byte xdata *) 0xFDA5)
+#define p_reg_p_ce_conf2_in_con0_en 0xFDA5
+#define reg_p_ce_conf2_in_con0_en_pos 0
+#define reg_p_ce_conf2_in_con0_en_len 1
+#define reg_p_ce_conf2_in_con0_en_lsb 0
+// biu_reg.h 7-6-2007
+// gen_biu Ver 1.0 generated by
+#define xd_p_fec_rsd_packet_unit_7_0 (*(volatile byte xdata *) 0xF700)
+#define p_fec_rsd_packet_unit_7_0 0xF700
+#define fec_rsd_packet_unit_7_0_pos 0
+#define fec_rsd_packet_unit_7_0_len 8
+#define fec_rsd_packet_unit_7_0_lsb 0
+#define xd_p_fec_rsd_packet_unit_15_8 (*(volatile byte xdata *) 0xF701)
+#define p_fec_rsd_packet_unit_15_8 0xF701
+#define fec_rsd_packet_unit_15_8_pos 0
+#define fec_rsd_packet_unit_15_8_len 8
+#define fec_rsd_packet_unit_15_8_lsb 8
+#define xd_r_reg_rsd_bit_err_cnt_7_0 (*(volatile byte xdata *) 0xF702)
+#define r_reg_rsd_bit_err_cnt_7_0 0xF702
+#define reg_rsd_bit_err_cnt_7_0_pos 0
+#define reg_rsd_bit_err_cnt_7_0_len 8
+#define reg_rsd_bit_err_cnt_7_0_lsb 0
+#define xd_r_reg_rsd_bit_err_cnt_15_8 (*(volatile byte xdata *) 0xF703)
+#define r_reg_rsd_bit_err_cnt_15_8 0xF703
+#define reg_rsd_bit_err_cnt_15_8_pos 0
+#define reg_rsd_bit_err_cnt_15_8_len 8
+#define reg_rsd_bit_err_cnt_15_8_lsb 8
+#define xd_r_reg_rsd_bit_err_cnt_23_16 (*(volatile byte xdata *) 0xF704)
+#define r_reg_rsd_bit_err_cnt_23_16 0xF704
+#define reg_rsd_bit_err_cnt_23_16_pos 0
+#define reg_rsd_bit_err_cnt_23_16_len 8
+#define reg_rsd_bit_err_cnt_23_16_lsb 16
+#define xd_r_reg_rsd_abort_packet_cnt_7_0 (*(volatile byte xdata *) 0xF705)
+#define r_reg_rsd_abort_packet_cnt_7_0 0xF705
+#define reg_rsd_abort_packet_cnt_7_0_pos 0
+#define reg_rsd_abort_packet_cnt_7_0_len 8
+#define reg_rsd_abort_packet_cnt_7_0_lsb 0
+#define xd_r_reg_rsd_abort_packet_cnt_15_8 (*(volatile byte xdata *) 0xF706)
+#define r_reg_rsd_abort_packet_cnt_15_8 0xF706
+#define reg_rsd_abort_packet_cnt_15_8_pos 0
+#define reg_rsd_abort_packet_cnt_15_8_len 8
+#define reg_rsd_abort_packet_cnt_15_8_lsb 8
+#define xd_p_fec_RSD_PKT_NUM_PER_UNIT_7_0 (*(volatile byte xdata *) 0xF707)
+#define p_fec_RSD_PKT_NUM_PER_UNIT_7_0 0xF707
+#define fec_RSD_PKT_NUM_PER_UNIT_7_0_pos 0
+#define fec_RSD_PKT_NUM_PER_UNIT_7_0_len 8
+#define fec_RSD_PKT_NUM_PER_UNIT_7_0_lsb 0
+#define xd_p_fec_RSD_PKT_NUM_PER_UNIT_15_8 (*(volatile byte xdata *) 0xF708)
+#define p_fec_RSD_PKT_NUM_PER_UNIT_15_8 0xF708
+#define fec_RSD_PKT_NUM_PER_UNIT_15_8_pos 0
+#define fec_RSD_PKT_NUM_PER_UNIT_15_8_len 8
+#define fec_RSD_PKT_NUM_PER_UNIT_15_8_lsb 8
+#define xd_p_fec_RS_TH_1_7_0 (*(volatile byte xdata *) 0xF709)
+#define p_fec_RS_TH_1_7_0 0xF709
+#define fec_RS_TH_1_7_0_pos 0
+#define fec_RS_TH_1_7_0_len 8
+#define fec_RS_TH_1_7_0_lsb 0
+#define xd_p_fec_RS_TH_1_15_8 (*(volatile byte xdata *) 0xF70A)
+#define p_fec_RS_TH_1_15_8 0xF70A
+#define fec_RS_TH_1_15_8_pos 0
+#define fec_RS_TH_1_15_8_len 8
+#define fec_RS_TH_1_15_8_lsb 8
+#define xd_p_fec_RS_TH_2 (*(volatile byte xdata *) 0xF70B)
+#define p_fec_RS_TH_2 0xF70B
+#define fec_RS_TH_2_pos 0
+#define fec_RS_TH_2_len 8
+#define fec_RS_TH_2_lsb 0
+#define xd_p_fec_rsd_ber_rst (*(volatile byte xdata *) 0xF70C)
+#define p_fec_rsd_ber_rst 0xF70C
+#define fec_rsd_ber_rst_pos 0
+#define fec_rsd_ber_rst_len 1
+#define fec_rsd_ber_rst_lsb 0
+#define xd_p_reg_rsd_ber_rdy (*(volatile byte xdata *) 0xF70D)
+#define p_reg_rsd_ber_rdy 0xF70D
+#define reg_rsd_ber_rdy_pos 0
+#define reg_rsd_ber_rdy_len 1
+#define reg_rsd_ber_rdy_lsb 0
+#define xd_p_reg_rsd_trigger_retrain (*(volatile byte xdata *) 0xF70E)
+#define p_reg_rsd_trigger_retrain 0xF70E
+#define reg_rsd_trigger_retrain_pos 0
+#define reg_rsd_trigger_retrain_len 1
+#define reg_rsd_trigger_retrain_lsb 0
+#define xd_p_reg_sync_recover (*(volatile byte xdata *) 0xF70F)
+#define p_reg_sync_recover 0xF70F
+#define reg_sync_recover_pos 0
+#define reg_sync_recover_len 1
+#define reg_sync_recover_lsb 0
+#define xd_p_fec_crc_en (*(volatile byte xdata *) 0xF710)
+#define p_fec_crc_en 0xF710
+#define fec_crc_en_pos 0
+#define fec_crc_en_len 1
+#define fec_crc_en_lsb 0
+#define xd_p_fec_mon_en (*(volatile byte xdata *) 0xF711)
+#define p_fec_mon_en 0xF711
+#define fec_mon_en_pos 0
+#define fec_mon_en_len 1
+#define fec_mon_en_lsb 0
+#define xd_p_reg_sync_chk (*(volatile byte xdata *) 0xF712)
+#define p_reg_sync_chk 0xF712
+#define reg_sync_chk_pos 0
+#define reg_sync_chk_len 1
+#define reg_sync_chk_lsb 0
+#define xd_p_fec_dummy_reg_2 (*(volatile byte xdata *) 0xF713)
+#define p_fec_dummy_reg_2 0xF713
+#define fec_dummy_reg_2_pos 0
+#define fec_dummy_reg_2_len 3
+#define fec_dummy_reg_2_lsb 0
+#define xd_p_reg_fec_data_en (*(volatile byte xdata *) 0xF714)
+#define p_reg_fec_data_en 0xF714
+#define reg_fec_data_en_pos 0
+#define reg_fec_data_en_len 1
+#define reg_fec_data_en_lsb 0
+#define xd_p_fec_vtb_rsd_mon_en (*(volatile byte xdata *) 0xF715)
+#define p_fec_vtb_rsd_mon_en 0xF715
+#define fec_vtb_rsd_mon_en_pos 0
+#define fec_vtb_rsd_mon_en_len 1
+#define fec_vtb_rsd_mon_en_lsb 0
+#define xd_p_reg_fec_sw_rst (*(volatile byte xdata *) 0xF716)
+#define p_reg_fec_sw_rst 0xF716
+#define reg_fec_sw_rst_pos 0
+#define reg_fec_sw_rst_len 1
+#define reg_fec_sw_rst_lsb 0
+#define xd_r_fec_vtb_pm_crc (*(volatile byte xdata *) 0xF717)
+#define r_fec_vtb_pm_crc 0xF717
+#define fec_vtb_pm_crc_pos 0
+#define fec_vtb_pm_crc_len 8
+#define fec_vtb_pm_crc_lsb 0
+#define xd_r_fec_vtb_tb_7_crc (*(volatile byte xdata *) 0xF718)
+#define r_fec_vtb_tb_7_crc 0xF718
+#define fec_vtb_tb_7_crc_pos 0
+#define fec_vtb_tb_7_crc_len 8
+#define fec_vtb_tb_7_crc_lsb 0
+#define xd_r_fec_vtb_tb_6_crc (*(volatile byte xdata *) 0xF719)
+#define r_fec_vtb_tb_6_crc 0xF719
+#define fec_vtb_tb_6_crc_pos 0
+#define fec_vtb_tb_6_crc_len 8
+#define fec_vtb_tb_6_crc_lsb 0
+#define xd_r_fec_vtb_tb_5_crc (*(volatile byte xdata *) 0xF71A)
+#define r_fec_vtb_tb_5_crc 0xF71A
+#define fec_vtb_tb_5_crc_pos 0
+#define fec_vtb_tb_5_crc_len 8
+#define fec_vtb_tb_5_crc_lsb 0
+#define xd_r_fec_vtb_tb_4_crc (*(volatile byte xdata *) 0xF71B)
+#define r_fec_vtb_tb_4_crc 0xF71B
+#define fec_vtb_tb_4_crc_pos 0
+#define fec_vtb_tb_4_crc_len 8
+#define fec_vtb_tb_4_crc_lsb 0
+#define xd_r_fec_vtb_tb_3_crc (*(volatile byte xdata *) 0xF71C)
+#define r_fec_vtb_tb_3_crc 0xF71C
+#define fec_vtb_tb_3_crc_pos 0
+#define fec_vtb_tb_3_crc_len 8
+#define fec_vtb_tb_3_crc_lsb 0
+#define xd_r_fec_vtb_tb_2_crc (*(volatile byte xdata *) 0xF71D)
+#define r_fec_vtb_tb_2_crc 0xF71D
+#define fec_vtb_tb_2_crc_pos 0
+#define fec_vtb_tb_2_crc_len 8
+#define fec_vtb_tb_2_crc_lsb 0
+#define xd_r_fec_vtb_tb_1_crc (*(volatile byte xdata *) 0xF71E)
+#define r_fec_vtb_tb_1_crc 0xF71E
+#define fec_vtb_tb_1_crc_pos 0
+#define fec_vtb_tb_1_crc_len 8
+#define fec_vtb_tb_1_crc_lsb 0
+#define xd_r_fec_vtb_tb_0_crc (*(volatile byte xdata *) 0xF71F)
+#define r_fec_vtb_tb_0_crc 0xF71F
+#define fec_vtb_tb_0_crc_pos 0
+#define fec_vtb_tb_0_crc_len 8
+#define fec_vtb_tb_0_crc_lsb 0
+#define xd_r_fec_rsd_bank0_crc (*(volatile byte xdata *) 0xF720)
+#define r_fec_rsd_bank0_crc 0xF720
+#define fec_rsd_bank0_crc_pos 0
+#define fec_rsd_bank0_crc_len 8
+#define fec_rsd_bank0_crc_lsb 0
+#define xd_r_fec_rsd_bank1_crc (*(volatile byte xdata *) 0xF721)
+#define r_fec_rsd_bank1_crc 0xF721
+#define fec_rsd_bank1_crc_pos 0
+#define fec_rsd_bank1_crc_len 8
+#define fec_rsd_bank1_crc_lsb 0
+#define xd_r_fec_idi_vtb_crc (*(volatile byte xdata *) 0xF722)
+#define r_fec_idi_vtb_crc 0xF722
+#define fec_idi_vtb_crc_pos 0
+#define fec_idi_vtb_crc_len 8
+#define fec_idi_vtb_crc_lsb 0
+#define xd_p_reg_fec_rsd_packet_unit_exp (*(volatile byte xdata *) 0xF723)
+#define p_reg_fec_rsd_packet_unit_exp 0xF723
+#define reg_fec_rsd_packet_unit_exp_pos 0
+#define reg_fec_rsd_packet_unit_exp_len 4
+#define reg_fec_rsd_packet_unit_exp_lsb 0
+#define xd_p_reg_rsd_bit_err_exp_rdy (*(volatile byte xdata *) 0xF724)
+#define p_reg_rsd_bit_err_exp_rdy 0xF724
+#define reg_rsd_bit_err_exp_rdy_pos 0
+#define reg_rsd_bit_err_exp_rdy_len 1
+#define reg_rsd_bit_err_exp_rdy_lsb 0
+#define xd_r_reg_rsd_bit_err_exp (*(volatile byte xdata *) 0xF725)
+#define r_reg_rsd_bit_err_exp 0xF725
+#define reg_rsd_bit_err_exp_pos 0
+#define reg_rsd_bit_err_exp_len 5
+#define reg_rsd_bit_err_exp_lsb 0
+#define xd_p_fec_rsd_packet_unit1_7_0 (*(volatile byte xdata *) 0xF726)
+#define p_fec_rsd_packet_unit1_7_0 0xF726
+#define fec_rsd_packet_unit1_7_0_pos 0
+#define fec_rsd_packet_unit1_7_0_len 8
+#define fec_rsd_packet_unit1_7_0_lsb 0
+#define xd_p_fec_rsd_packet_unit1_15_8 (*(volatile byte xdata *) 0xF727)
+#define p_fec_rsd_packet_unit1_15_8 0xF727
+#define fec_rsd_packet_unit1_15_8_pos 0
+#define fec_rsd_packet_unit1_15_8_len 8
+#define fec_rsd_packet_unit1_15_8_lsb 8
+#define xd_r_reg_rsd_bit_err_cnt1_7_0 (*(volatile byte xdata *) 0xF728)
+#define r_reg_rsd_bit_err_cnt1_7_0 0xF728
+#define reg_rsd_bit_err_cnt1_7_0_pos 0
+#define reg_rsd_bit_err_cnt1_7_0_len 8
+#define reg_rsd_bit_err_cnt1_7_0_lsb 0
+#define xd_r_reg_rsd_bit_err_cnt1_15_8 (*(volatile byte xdata *) 0xF729)
+#define r_reg_rsd_bit_err_cnt1_15_8 0xF729
+#define reg_rsd_bit_err_cnt1_15_8_pos 0
+#define reg_rsd_bit_err_cnt1_15_8_len 8
+#define reg_rsd_bit_err_cnt1_15_8_lsb 8
+#define xd_r_reg_rsd_bit_err_cnt1_23_16 (*(volatile byte xdata *) 0xF72A)
+#define r_reg_rsd_bit_err_cnt1_23_16 0xF72A
+#define reg_rsd_bit_err_cnt1_23_16_pos 0
+#define reg_rsd_bit_err_cnt1_23_16_len 8
+#define reg_rsd_bit_err_cnt1_23_16_lsb 16
+#define xd_r_reg_rsd_abort_packet_cnt1_7_0 (*(volatile byte xdata *) 0xF72B)
+#define r_reg_rsd_abort_packet_cnt1_7_0 0xF72B
+#define reg_rsd_abort_packet_cnt1_7_0_pos 0
+#define reg_rsd_abort_packet_cnt1_7_0_len 8
+#define reg_rsd_abort_packet_cnt1_7_0_lsb 0
+#define xd_r_reg_rsd_abort_packet_cnt1_15_8 (*(volatile byte xdata *) 0xF72C)
+#define r_reg_rsd_abort_packet_cnt1_15_8 0xF72C
+#define reg_rsd_abort_packet_cnt1_15_8_pos 0
+#define reg_rsd_abort_packet_cnt1_15_8_len 8
+#define reg_rsd_abort_packet_cnt1_15_8_lsb 8
+#define xd_p_fec_rsd_ber_rst1 (*(volatile byte xdata *) 0xF72D)
+#define p_fec_rsd_ber_rst1 0xF72D
+#define fec_rsd_ber_rst1_pos 0
+#define fec_rsd_ber_rst1_len 1
+#define fec_rsd_ber_rst1_lsb 0
+#define xd_p_reg_rsd_ber_rdy1 (*(volatile byte xdata *) 0xF72E)
+#define p_reg_rsd_ber_rdy1 0xF72E
+#define reg_rsd_ber_rdy1_pos 0
+#define reg_rsd_ber_rdy1_len 1
+#define reg_rsd_ber_rdy1_lsb 0
+#define xd_p_reg_dca_txmod_sel (*(volatile byte xdata *) 0xF72F)
+#define p_reg_dca_txmod_sel 0xF72F
+#define reg_dca_txmod_sel_pos 0
+#define reg_dca_txmod_sel_len 1
+#define reg_dca_txmod_sel_lsb 0
+#define xd_p_reg_dca_platch (*(volatile byte xdata *) 0xF730)
+#define p_reg_dca_platch 0xF730
+#define reg_dca_platch_pos 0
+#define reg_dca_platch_len 1
+#define reg_dca_platch_lsb 0
+#define xd_p_reg_dca_upper_chip (*(volatile byte xdata *) 0xF731)
+#define p_reg_dca_upper_chip 0xF731
+#define reg_dca_upper_chip_pos 0
+#define reg_dca_upper_chip_len 1
+#define reg_dca_upper_chip_lsb 0
+#define xd_p_reg_dca_lower_chip (*(volatile byte xdata *) 0xF732)
+#define p_reg_dca_lower_chip 0xF732
+#define reg_dca_lower_chip_pos 0
+#define reg_dca_lower_chip_len 1
+#define reg_dca_lower_chip_lsb 0
+#define xd_p_reg_dca_enl (*(volatile byte xdata *) 0xF733)
+#define p_reg_dca_enl 0xF733
+#define reg_dca_enl_pos 0
+#define reg_dca_enl_len 1
+#define reg_dca_enl_lsb 0
+#define xd_p_reg_dca_enu (*(volatile byte xdata *) 0xF734)
+#define p_reg_dca_enu 0xF734
+#define reg_dca_enu_pos 0
+#define reg_dca_enu_len 1
+#define reg_dca_enu_lsb 0
+#define xd_p_reg_dca_th (*(volatile byte xdata *) 0xF735)
+#define p_reg_dca_th 0xF735
+#define reg_dca_th_pos 0
+#define reg_dca_th_len 5
+#define reg_dca_th_lsb 0
+#define xd_p_reg_dca_scale (*(volatile byte xdata *) 0xF736)
+#define p_reg_dca_scale 0xF736
+#define reg_dca_scale_pos 0
+#define reg_dca_scale_len 4
+#define reg_dca_scale_lsb 0
+#define xd_p_reg_dca_tone_7_0 (*(volatile byte xdata *) 0xF737)
+#define p_reg_dca_tone_7_0 0xF737
+#define reg_dca_tone_7_0_pos 0
+#define reg_dca_tone_7_0_len 8
+#define reg_dca_tone_7_0_lsb 0
+#define xd_p_reg_dca_tone_12_8 (*(volatile byte xdata *) 0xF738)
+#define p_reg_dca_tone_12_8 0xF738
+#define reg_dca_tone_12_8_pos 0
+#define reg_dca_tone_12_8_len 5
+#define reg_dca_tone_12_8_lsb 8
+#define xd_p_reg_dca_time_7_0 (*(volatile byte xdata *) 0xF739)
+#define p_reg_dca_time_7_0 0xF739
+#define reg_dca_time_7_0_pos 0
+#define reg_dca_time_7_0_len 8
+#define reg_dca_time_7_0_lsb 0
+#define xd_p_reg_dca_time_15_8 (*(volatile byte xdata *) 0xF73A)
+#define p_reg_dca_time_15_8 0xF73A
+#define reg_dca_time_15_8_pos 0
+#define reg_dca_time_15_8_len 8
+#define reg_dca_time_15_8_lsb 8
+#define xd_r_fec_dcasm (*(volatile byte xdata *) 0xF73B)
+#define r_fec_dcasm 0xF73B
+#define fec_dcasm_pos 0
+#define fec_dcasm_len 3
+#define fec_dcasm_lsb 0
+#define xd_p_reg_dca_stand_alone (*(volatile byte xdata *) 0xF73C)
+#define p_reg_dca_stand_alone 0xF73C
+#define reg_dca_stand_alone_pos 0
+#define reg_dca_stand_alone_len 1
+#define reg_dca_stand_alone_lsb 0
+#define xd_p_reg_dca_upper_out_en (*(volatile byte xdata *) 0xF73D)
+#define p_reg_dca_upper_out_en 0xF73D
+#define reg_dca_upper_out_en_pos 0
+#define reg_dca_upper_out_en_len 1
+#define reg_dca_upper_out_en_lsb 0
+#define xd_p_reg_dca_rc_en (*(volatile byte xdata *) 0xF73E)
+#define p_reg_dca_rc_en 0xF73E
+#define reg_dca_rc_en_pos 0
+#define reg_dca_rc_en_len 1
+#define reg_dca_rc_en_lsb 0
+#define xd_p_reg_dca_retrain_send (*(volatile byte xdata *) 0xF73F)
+#define p_reg_dca_retrain_send 0xF73F
+#define reg_dca_retrain_send_pos 0
+#define reg_dca_retrain_send_len 1
+#define reg_dca_retrain_send_lsb 0
+#define xd_p_reg_dca_retrain_rec (*(volatile byte xdata *) 0xF740)
+#define p_reg_dca_retrain_rec 0xF740
+#define reg_dca_retrain_rec_pos 0
+#define reg_dca_retrain_rec_len 1
+#define reg_dca_retrain_rec_lsb 0
+#define xd_p_reg_dca_gi_gap (*(volatile byte xdata *) 0xF741)
+#define p_reg_dca_gi_gap 0xF741
+#define reg_dca_gi_gap_pos 0
+#define reg_dca_gi_gap_len 8
+#define reg_dca_gi_gap_lsb 0
+#define xd_r_reg_dca_rec_up_tpsd_txmod (*(volatile byte xdata *) 0xF742)
+#define r_reg_dca_rec_up_tpsd_txmod 0xF742
+#define reg_dca_rec_up_tpsd_txmod_pos 0
+#define reg_dca_rec_up_tpsd_txmod_len 2
+#define reg_dca_rec_up_tpsd_txmod_lsb 0
+#define xd_r_reg_dca_rec_up_tpsd_const (*(volatile byte xdata *) 0xF743)
+#define r_reg_dca_rec_up_tpsd_const 0xF743
+#define reg_dca_rec_up_tpsd_const_pos 0
+#define reg_dca_rec_up_tpsd_const_len 2
+#define reg_dca_rec_up_tpsd_const_lsb 0
+#define xd_r_reg_dca_rec_up_tpsd_indep (*(volatile byte xdata *) 0xF744)
+#define r_reg_dca_rec_up_tpsd_indep 0xF744
+#define reg_dca_rec_up_tpsd_indep_pos 0
+#define reg_dca_rec_up_tpsd_indep_len 1
+#define reg_dca_rec_up_tpsd_indep_lsb 0
+#define xd_r_reg_dca_rec_up_tpsd_hier (*(volatile byte xdata *) 0xF745)
+#define r_reg_dca_rec_up_tpsd_hier 0xF745
+#define reg_dca_rec_up_tpsd_hier_pos 0
+#define reg_dca_rec_up_tpsd_hier_len 2
+#define reg_dca_rec_up_tpsd_hier_lsb 0
+#define xd_r_reg_dca_rec_up_tpsd_hpcr (*(volatile byte xdata *) 0xF746)
+#define r_reg_dca_rec_up_tpsd_hpcr 0xF746
+#define reg_dca_rec_up_tpsd_hpcr_pos 0
+#define reg_dca_rec_up_tpsd_hpcr_len 3
+#define reg_dca_rec_up_tpsd_hpcr_lsb 0
+#define xd_r_reg_dca_rec_up_tpsd_lpcr (*(volatile byte xdata *) 0xF747)
+#define r_reg_dca_rec_up_tpsd_lpcr 0xF747
+#define reg_dca_rec_up_tpsd_lpcr_pos 0
+#define reg_dca_rec_up_tpsd_lpcr_len 3
+#define reg_dca_rec_up_tpsd_lpcr_lsb 0
+#define xd_r_reg_dca_rec_up_tpsd_lock (*(volatile byte xdata *) 0xF748)
+#define r_reg_dca_rec_up_tpsd_lock 0xF748
+#define reg_dca_rec_up_tpsd_lock_pos 0
+#define reg_dca_rec_up_tpsd_lock_len 1
+#define reg_dca_rec_up_tpsd_lock_lsb 0
+#define xd_r_reg_dca_rec_lo_tpsd_txmod (*(volatile byte xdata *) 0xF749)
+#define r_reg_dca_rec_lo_tpsd_txmod 0xF749
+#define reg_dca_rec_lo_tpsd_txmod_pos 0
+#define reg_dca_rec_lo_tpsd_txmod_len 2
+#define reg_dca_rec_lo_tpsd_txmod_lsb 0
+#define xd_r_reg_dca_rec_lo_tpsd_const (*(volatile byte xdata *) 0xF74A)
+#define r_reg_dca_rec_lo_tpsd_const 0xF74A
+#define reg_dca_rec_lo_tpsd_const_pos 0
+#define reg_dca_rec_lo_tpsd_const_len 2
+#define reg_dca_rec_lo_tpsd_const_lsb 0
+#define xd_r_reg_dca_rec_lo_tpsd_indep (*(volatile byte xdata *) 0xF74B)
+#define r_reg_dca_rec_lo_tpsd_indep 0xF74B
+#define reg_dca_rec_lo_tpsd_indep_pos 0
+#define reg_dca_rec_lo_tpsd_indep_len 1
+#define reg_dca_rec_lo_tpsd_indep_lsb 0
+#define xd_r_reg_dca_rec_lo_tpsd_hier (*(volatile byte xdata *) 0xF74C)
+#define r_reg_dca_rec_lo_tpsd_hier 0xF74C
+#define reg_dca_rec_lo_tpsd_hier_pos 0
+#define reg_dca_rec_lo_tpsd_hier_len 2
+#define reg_dca_rec_lo_tpsd_hier_lsb 0
+#define xd_r_reg_dca_rec_lo_tpsd_hpcr (*(volatile byte xdata *) 0xF74D)
+#define r_reg_dca_rec_lo_tpsd_hpcr 0xF74D
+#define reg_dca_rec_lo_tpsd_hpcr_pos 0
+#define reg_dca_rec_lo_tpsd_hpcr_len 3
+#define reg_dca_rec_lo_tpsd_hpcr_lsb 0
+#define xd_r_reg_dca_rec_lo_tpsd_lpcr (*(volatile byte xdata *) 0xF74E)
+#define r_reg_dca_rec_lo_tpsd_lpcr 0xF74E
+#define reg_dca_rec_lo_tpsd_lpcr_pos 0
+#define reg_dca_rec_lo_tpsd_lpcr_len 3
+#define reg_dca_rec_lo_tpsd_lpcr_lsb 0
+#define xd_r_reg_dca_rec_lo_tpsd_lock (*(volatile byte xdata *) 0xF74F)
+#define r_reg_dca_rec_lo_tpsd_lock 0xF74F
+#define reg_dca_rec_lo_tpsd_lock_pos 0
+#define reg_dca_rec_lo_tpsd_lock_len 1
+#define reg_dca_rec_lo_tpsd_lock_lsb 0
+#define xd_p_reg_dca_gpr_ctr_up_send (*(volatile byte xdata *) 0xF750)
+#define p_reg_dca_gpr_ctr_up_send 0xF750
+#define reg_dca_gpr_ctr_up_send_pos 0
+#define reg_dca_gpr_ctr_up_send_len 8
+#define reg_dca_gpr_ctr_up_send_lsb 0
+#define xd_p_reg_dca_gpr_dat_up_send_0 (*(volatile byte xdata *) 0xF751)
+#define p_reg_dca_gpr_dat_up_send_0 0xF751
+#define reg_dca_gpr_dat_up_send_0_pos 0
+#define reg_dca_gpr_dat_up_send_0_len 8
+#define reg_dca_gpr_dat_up_send_0_lsb 0
+#define xd_p_reg_dca_gpr_dat_up_send_1 (*(volatile byte xdata *) 0xF752)
+#define p_reg_dca_gpr_dat_up_send_1 0xF752
+#define reg_dca_gpr_dat_up_send_1_pos 0
+#define reg_dca_gpr_dat_up_send_1_len 8
+#define reg_dca_gpr_dat_up_send_1_lsb 0
+#define xd_p_reg_dca_gpr_dat_up_send_2 (*(volatile byte xdata *) 0xF753)
+#define p_reg_dca_gpr_dat_up_send_2 0xF753
+#define reg_dca_gpr_dat_up_send_2_pos 0
+#define reg_dca_gpr_dat_up_send_2_len 8
+#define reg_dca_gpr_dat_up_send_2_lsb 0
+#define xd_p_reg_dca_gpr_dat_up_send_3 (*(volatile byte xdata *) 0xF754)
+#define p_reg_dca_gpr_dat_up_send_3 0xF754
+#define reg_dca_gpr_dat_up_send_3_pos 0
+#define reg_dca_gpr_dat_up_send_3_len 8
+#define reg_dca_gpr_dat_up_send_3_lsb 0
+#define xd_p_reg_dca_gpr_dat_up_send_4 (*(volatile byte xdata *) 0xF755)
+#define p_reg_dca_gpr_dat_up_send_4 0xF755
+#define reg_dca_gpr_dat_up_send_4_pos 0
+#define reg_dca_gpr_dat_up_send_4_len 8
+#define reg_dca_gpr_dat_up_send_4_lsb 0
+#define xd_p_reg_dca_gpr_dat_up_send_5 (*(volatile byte xdata *) 0xF756)
+#define p_reg_dca_gpr_dat_up_send_5 0xF756
+#define reg_dca_gpr_dat_up_send_5_pos 0
+#define reg_dca_gpr_dat_up_send_5_len 8
+#define reg_dca_gpr_dat_up_send_5_lsb 0
+#define xd_p_reg_dca_over_wr_up_send (*(volatile byte xdata *) 0xF757)
+#define p_reg_dca_over_wr_up_send 0xF757
+#define reg_dca_over_wr_up_send_pos 0
+#define reg_dca_over_wr_up_send_len 1
+#define reg_dca_over_wr_up_send_lsb 0
+#define xd_p_reg_dca_int_up_send (*(volatile byte xdata *) 0xF758)
+#define p_reg_dca_int_up_send 0xF758
+#define reg_dca_int_up_send_pos 0
+#define reg_dca_int_up_send_len 1
+#define reg_dca_int_up_send_lsb 0
+#define xd_p_reg_dca_gpr_ctr_lo_send (*(volatile byte xdata *) 0xF759)
+#define p_reg_dca_gpr_ctr_lo_send 0xF759
+#define reg_dca_gpr_ctr_lo_send_pos 0
+#define reg_dca_gpr_ctr_lo_send_len 8
+#define reg_dca_gpr_ctr_lo_send_lsb 0
+#define xd_p_reg_dca_gpr_dat_lo_send_0 (*(volatile byte xdata *) 0xF75A)
+#define p_reg_dca_gpr_dat_lo_send_0 0xF75A
+#define reg_dca_gpr_dat_lo_send_0_pos 0
+#define reg_dca_gpr_dat_lo_send_0_len 8
+#define reg_dca_gpr_dat_lo_send_0_lsb 0
+#define xd_p_reg_dca_gpr_dat_lo_send_1 (*(volatile byte xdata *) 0xF75B)
+#define p_reg_dca_gpr_dat_lo_send_1 0xF75B
+#define reg_dca_gpr_dat_lo_send_1_pos 0
+#define reg_dca_gpr_dat_lo_send_1_len 8
+#define reg_dca_gpr_dat_lo_send_1_lsb 0
+#define xd_p_reg_dca_gpr_dat_lo_send_2 (*(volatile byte xdata *) 0xF75C)
+#define p_reg_dca_gpr_dat_lo_send_2 0xF75C
+#define reg_dca_gpr_dat_lo_send_2_pos 0
+#define reg_dca_gpr_dat_lo_send_2_len 8
+#define reg_dca_gpr_dat_lo_send_2_lsb 0
+#define xd_p_reg_dca_gpr_dat_lo_send_3 (*(volatile byte xdata *) 0xF75D)
+#define p_reg_dca_gpr_dat_lo_send_3 0xF75D
+#define reg_dca_gpr_dat_lo_send_3_pos 0
+#define reg_dca_gpr_dat_lo_send_3_len 8
+#define reg_dca_gpr_dat_lo_send_3_lsb 0
+#define xd_p_reg_dca_gpr_dat_lo_send_4 (*(volatile byte xdata *) 0xF75E)
+#define p_reg_dca_gpr_dat_lo_send_4 0xF75E
+#define reg_dca_gpr_dat_lo_send_4_pos 0
+#define reg_dca_gpr_dat_lo_send_4_len 8
+#define reg_dca_gpr_dat_lo_send_4_lsb 0
+#define xd_p_reg_dca_gpr_dat_lo_send_5 (*(volatile byte xdata *) 0xF75F)
+#define p_reg_dca_gpr_dat_lo_send_5 0xF75F
+#define reg_dca_gpr_dat_lo_send_5_pos 0
+#define reg_dca_gpr_dat_lo_send_5_len 8
+#define reg_dca_gpr_dat_lo_send_5_lsb 0
+#define xd_p_reg_dca_over_wr_lo_send (*(volatile byte xdata *) 0xF760)
+#define p_reg_dca_over_wr_lo_send 0xF760
+#define reg_dca_over_wr_lo_send_pos 0
+#define reg_dca_over_wr_lo_send_len 1
+#define reg_dca_over_wr_lo_send_lsb 0
+#define xd_p_reg_dca_int_lo_send (*(volatile byte xdata *) 0xF761)
+#define p_reg_dca_int_lo_send 0xF761
+#define reg_dca_int_lo_send_pos 0
+#define reg_dca_int_lo_send_len 1
+#define reg_dca_int_lo_send_lsb 0
+#define xd_r_reg_dca_gpr_ctr_up_rec (*(volatile byte xdata *) 0xF762)
+#define r_reg_dca_gpr_ctr_up_rec 0xF762
+#define reg_dca_gpr_ctr_up_rec_pos 0
+#define reg_dca_gpr_ctr_up_rec_len 8
+#define reg_dca_gpr_ctr_up_rec_lsb 0
+#define xd_r_reg_dca_gpr_dat_up_rec_0 (*(volatile byte xdata *) 0xF763)
+#define r_reg_dca_gpr_dat_up_rec_0 0xF763
+#define reg_dca_gpr_dat_up_rec_0_pos 0
+#define reg_dca_gpr_dat_up_rec_0_len 8
+#define reg_dca_gpr_dat_up_rec_0_lsb 0
+#define xd_r_reg_dca_gpr_dat_up_rec_1 (*(volatile byte xdata *) 0xF764)
+#define r_reg_dca_gpr_dat_up_rec_1 0xF764
+#define reg_dca_gpr_dat_up_rec_1_pos 0
+#define reg_dca_gpr_dat_up_rec_1_len 8
+#define reg_dca_gpr_dat_up_rec_1_lsb 0
+#define xd_r_reg_dca_gpr_dat_up_rec_2 (*(volatile byte xdata *) 0xF765)
+#define r_reg_dca_gpr_dat_up_rec_2 0xF765
+#define reg_dca_gpr_dat_up_rec_2_pos 0
+#define reg_dca_gpr_dat_up_rec_2_len 8
+#define reg_dca_gpr_dat_up_rec_2_lsb 0
+#define xd_r_reg_dca_gpr_dat_up_rec_3 (*(volatile byte xdata *) 0xF766)
+#define r_reg_dca_gpr_dat_up_rec_3 0xF766
+#define reg_dca_gpr_dat_up_rec_3_pos 0
+#define reg_dca_gpr_dat_up_rec_3_len 8
+#define reg_dca_gpr_dat_up_rec_3_lsb 0
+#define xd_r_reg_dca_gpr_dat_up_rec_4 (*(volatile byte xdata *) 0xF767)
+#define r_reg_dca_gpr_dat_up_rec_4 0xF767
+#define reg_dca_gpr_dat_up_rec_4_pos 0
+#define reg_dca_gpr_dat_up_rec_4_len 8
+#define reg_dca_gpr_dat_up_rec_4_lsb 0
+#define xd_r_reg_dca_gpr_dat_up_rec_5 (*(volatile byte xdata *) 0xF768)
+#define r_reg_dca_gpr_dat_up_rec_5 0xF768
+#define reg_dca_gpr_dat_up_rec_5_pos 0
+#define reg_dca_gpr_dat_up_rec_5_len 8
+#define reg_dca_gpr_dat_up_rec_5_lsb 0
+#define xd_r_reg_dca_over_wr_up_rec (*(volatile byte xdata *) 0xF769)
+#define r_reg_dca_over_wr_up_rec 0xF769
+#define reg_dca_over_wr_up_rec_pos 0
+#define reg_dca_over_wr_up_rec_len 1
+#define reg_dca_over_wr_up_rec_lsb 0
+#define xd_p_reg_dca_int_up_rec (*(volatile byte xdata *) 0xF76A)
+#define p_reg_dca_int_up_rec 0xF76A
+#define reg_dca_int_up_rec_pos 0
+#define reg_dca_int_up_rec_len 1
+#define reg_dca_int_up_rec_lsb 0
+#define xd_p_reg_dca_fw_read_yet_up (*(volatile byte xdata *) 0xF76B)
+#define p_reg_dca_fw_read_yet_up 0xF76B
+#define reg_dca_fw_read_yet_up_pos 0
+#define reg_dca_fw_read_yet_up_len 1
+#define reg_dca_fw_read_yet_up_lsb 0
+#define xd_r_reg_dca_gpr_ctr_lo_rec (*(volatile byte xdata *) 0xF76C)
+#define r_reg_dca_gpr_ctr_lo_rec 0xF76C
+#define reg_dca_gpr_ctr_lo_rec_pos 0
+#define reg_dca_gpr_ctr_lo_rec_len 8
+#define reg_dca_gpr_ctr_lo_rec_lsb 0
+#define xd_r_reg_dca_gpr_dat_lo_rec_0 (*(volatile byte xdata *) 0xF76D)
+#define r_reg_dca_gpr_dat_lo_rec_0 0xF76D
+#define reg_dca_gpr_dat_lo_rec_0_pos 0
+#define reg_dca_gpr_dat_lo_rec_0_len 8
+#define reg_dca_gpr_dat_lo_rec_0_lsb 0
+#define xd_r_reg_dca_gpr_dat_lo_rec_1 (*(volatile byte xdata *) 0xF76E)
+#define r_reg_dca_gpr_dat_lo_rec_1 0xF76E
+#define reg_dca_gpr_dat_lo_rec_1_pos 0
+#define reg_dca_gpr_dat_lo_rec_1_len 8
+#define reg_dca_gpr_dat_lo_rec_1_lsb 0
+#define xd_r_reg_dca_gpr_dat_lo_rec_2 (*(volatile byte xdata *) 0xF76F)
+#define r_reg_dca_gpr_dat_lo_rec_2 0xF76F
+#define reg_dca_gpr_dat_lo_rec_2_pos 0
+#define reg_dca_gpr_dat_lo_rec_2_len 8
+#define reg_dca_gpr_dat_lo_rec_2_lsb 0
+#define xd_r_reg_dca_gpr_dat_lo_rec_3 (*(volatile byte xdata *) 0xF770)
+#define r_reg_dca_gpr_dat_lo_rec_3 0xF770
+#define reg_dca_gpr_dat_lo_rec_3_pos 0
+#define reg_dca_gpr_dat_lo_rec_3_len 8
+#define reg_dca_gpr_dat_lo_rec_3_lsb 0
+#define xd_r_reg_dca_gpr_dat_lo_rec_4 (*(volatile byte xdata *) 0xF771)
+#define r_reg_dca_gpr_dat_lo_rec_4 0xF771
+#define reg_dca_gpr_dat_lo_rec_4_pos 0
+#define reg_dca_gpr_dat_lo_rec_4_len 8
+#define reg_dca_gpr_dat_lo_rec_4_lsb 0
+#define xd_r_reg_dca_gpr_dat_lo_rec_5 (*(volatile byte xdata *) 0xF772)
+#define r_reg_dca_gpr_dat_lo_rec_5 0xF772
+#define reg_dca_gpr_dat_lo_rec_5_pos 0
+#define reg_dca_gpr_dat_lo_rec_5_len 8
+#define reg_dca_gpr_dat_lo_rec_5_lsb 0
+#define xd_r_reg_dca_over_wr_lo_rec (*(volatile byte xdata *) 0xF773)
+#define r_reg_dca_over_wr_lo_rec 0xF773
+#define reg_dca_over_wr_lo_rec_pos 0
+#define reg_dca_over_wr_lo_rec_len 1
+#define reg_dca_over_wr_lo_rec_lsb 0
+#define xd_p_reg_dca_int_lo_rec (*(volatile byte xdata *) 0xF774)
+#define p_reg_dca_int_lo_rec 0xF774
+#define reg_dca_int_lo_rec_pos 0
+#define reg_dca_int_lo_rec_len 1
+#define reg_dca_int_lo_rec_lsb 0
+#define xd_p_reg_dca_fw_read_yet_lo (*(volatile byte xdata *) 0xF775)
+#define p_reg_dca_fw_read_yet_lo 0xF775
+#define reg_dca_fw_read_yet_lo_pos 0
+#define reg_dca_fw_read_yet_lo_len 1
+#define reg_dca_fw_read_yet_lo_lsb 0
+#define xd_p_reg_dca_en (*(volatile byte xdata *) 0xF776)
+#define p_reg_dca_en 0xF776
+#define reg_dca_en_pos 0
+#define reg_dca_en_len 1
+#define reg_dca_en_lsb 0
+#define xd_p_reg_dca_ulrdy_delay (*(volatile byte xdata *) 0xF777)
+#define p_reg_dca_ulrdy_delay 0xF777
+#define reg_dca_ulrdy_delay_pos 0
+#define reg_dca_ulrdy_delay_len 8
+#define reg_dca_ulrdy_delay_lsb 0
+#define xd_p_reg_dca_fpga_latch (*(volatile byte xdata *) 0xF778)
+#define p_reg_dca_fpga_latch 0xF778
+#define reg_dca_fpga_latch_pos 0
+#define reg_dca_fpga_latch_len 8
+#define reg_dca_fpga_latch_lsb 0
+#define xd_p_reg_dca_vldld_err (*(volatile byte xdata *) 0xF779)
+#define p_reg_dca_vldld_err 0xF779
+#define reg_dca_vldld_err_pos 0
+#define reg_dca_vldld_err_len 1
+#define reg_dca_vldld_err_lsb 0
+#define xd_p_reg_dca_vldud_err (*(volatile byte xdata *) 0xF77A)
+#define p_reg_dca_vldud_err 0xF77A
+#define reg_dca_vldud_err_pos 0
+#define reg_dca_vldud_err_len 1
+#define reg_dca_vldud_err_lsb 0
+#define xd_p_reg_dca_modeu_err (*(volatile byte xdata *) 0xF77B)
+#define p_reg_dca_modeu_err 0xF77B
+#define reg_dca_modeu_err_pos 0
+#define reg_dca_modeu_err_len 1
+#define reg_dca_modeu_err_lsb 0
+#define xd_p_reg_dca_model_err (*(volatile byte xdata *) 0xF77C)
+#define p_reg_dca_model_err 0xF77C
+#define reg_dca_model_err_pos 0
+#define reg_dca_model_err_len 1
+#define reg_dca_model_err_lsb 0
+#define xd_p_reg_dca_interrupt (*(volatile byte xdata *) 0xF77D)
+#define p_reg_dca_interrupt 0xF77D
+#define reg_dca_interrupt_pos 0
+#define reg_dca_interrupt_len 1
+#define reg_dca_interrupt_lsb 0
+#define xd_p_reg_dca_auto_reset_en (*(volatile byte xdata *) 0xF77E)
+#define p_reg_dca_auto_reset_en 0xF77E
+#define reg_dca_auto_reset_en_pos 0
+#define reg_dca_auto_reset_en_len 1
+#define reg_dca_auto_reset_en_lsb 0
+#define xd_p_reg_qnt_valuew_7_0 (*(volatile byte xdata *) 0xF77F)
+#define p_reg_qnt_valuew_7_0 0xF77F
+#define reg_qnt_valuew_7_0_pos 0
+#define reg_qnt_valuew_7_0_len 8
+#define reg_qnt_valuew_7_0_lsb 0
+#define xd_p_reg_qnt_valuew_10_8 (*(volatile byte xdata *) 0xF780)
+#define p_reg_qnt_valuew_10_8 0xF780
+#define reg_qnt_valuew_10_8_pos 0
+#define reg_qnt_valuew_10_8_len 3
+#define reg_qnt_valuew_10_8_lsb 8
+#define xd_p_reg_qnt_nfvaluew_7_0 (*(volatile byte xdata *) 0xF781)
+#define p_reg_qnt_nfvaluew_7_0 0xF781
+#define reg_qnt_nfvaluew_7_0_pos 0
+#define reg_qnt_nfvaluew_7_0_len 8
+#define reg_qnt_nfvaluew_7_0_lsb 0
+#define xd_p_reg_qnt_nfvaluew_10_8 (*(volatile byte xdata *) 0xF782)
+#define p_reg_qnt_nfvaluew_10_8 0xF782
+#define reg_qnt_nfvaluew_10_8_pos 0
+#define reg_qnt_nfvaluew_10_8_len 3
+#define reg_qnt_nfvaluew_10_8_lsb 8
+#define xd_p_reg_qnt_flatness_thr_7_0 (*(volatile byte xdata *) 0xF783)
+#define p_reg_qnt_flatness_thr_7_0 0xF783
+#define reg_qnt_flatness_thr_7_0_pos 0
+#define reg_qnt_flatness_thr_7_0_len 8
+#define reg_qnt_flatness_thr_7_0_lsb 0
+#define xd_p_reg_qnt_flatness_thr_8 (*(volatile byte xdata *) 0xF784)
+#define p_reg_qnt_flatness_thr_8 0xF784
+#define reg_qnt_flatness_thr_8_pos 0
+#define reg_qnt_flatness_thr_8_len 1
+#define reg_qnt_flatness_thr_8_lsb 8
+#define xd_p_reg_llr_to_be_monitor (*(volatile byte xdata *) 0xF785)
+#define p_reg_llr_to_be_monitor 0xF785
+#define reg_llr_to_be_monitor_pos 0
+#define reg_llr_to_be_monitor_len 1
+#define reg_llr_to_be_monitor_lsb 0
+#define xd_p_reg_qnt_vbc_rdy (*(volatile byte xdata *) 0xF786)
+#define p_reg_qnt_vbc_rdy 0xF786
+#define reg_qnt_vbc_rdy_pos 0
+#define reg_qnt_vbc_rdy_len 1
+#define reg_qnt_vbc_rdy_lsb 0
+#define xd_p_reg_qnt_noncmb_vbc_rdy (*(volatile byte xdata *) 0xF787)
+#define p_reg_qnt_noncmb_vbc_rdy 0xF787
+#define reg_qnt_noncmb_vbc_rdy_pos 0
+#define reg_qnt_noncmb_vbc_rdy_len 1
+#define reg_qnt_noncmb_vbc_rdy_lsb 0
+#define xd_p_reg_use_eh2_mean (*(volatile byte xdata *) 0xF788)
+#define p_reg_use_eh2_mean 0xF788
+#define reg_use_eh2_mean_pos 0
+#define reg_use_eh2_mean_len 1
+#define reg_use_eh2_mean_lsb 0
+#define xd_p_reg_qnt_vbc_ccid_mode (*(volatile byte xdata *) 0xF789)
+#define p_reg_qnt_vbc_ccid_mode 0xF789
+#define reg_qnt_vbc_ccid_mode_pos 0
+#define reg_qnt_vbc_ccid_mode_len 1
+#define reg_qnt_vbc_ccid_mode_lsb 0
+#define xd_p_reg_qnt_cci_bandsize (*(volatile byte xdata *) 0xF78A)
+#define p_reg_qnt_cci_bandsize 0xF78A
+#define reg_qnt_cci_bandsize_pos 0
+#define reg_qnt_cci_bandsize_len 4
+#define reg_qnt_cci_bandsize_lsb 0
+#define xd_p_reg_qnt_vbc_sframe_num (*(volatile byte xdata *) 0xF78B)
+#define p_reg_qnt_vbc_sframe_num 0xF78B
+#define reg_qnt_vbc_sframe_num_pos 0
+#define reg_qnt_vbc_sframe_num_len 8
+#define reg_qnt_vbc_sframe_num_lsb 0
+#define xd_p_reg_sbx_gain_diff_7_0 (*(volatile byte xdata *) 0xF78C)
+#define p_reg_sbx_gain_diff_7_0 0xF78C
+#define reg_sbx_gain_diff_7_0_pos 0
+#define reg_sbx_gain_diff_7_0_len 8
+#define reg_sbx_gain_diff_7_0_lsb 0
+#define xd_p_reg_sbx_gain_diff_8 (*(volatile byte xdata *) 0xF78D)
+#define p_reg_sbx_gain_diff_8 0xF78D
+#define reg_sbx_gain_diff_8_pos 0
+#define reg_sbx_gain_diff_8_len 1
+#define reg_sbx_gain_diff_8_lsb 8
+#define xd_p_reg_sbx_gain_diff_rdy (*(volatile byte xdata *) 0xF78E)
+#define p_reg_sbx_gain_diff_rdy 0xF78E
+#define reg_sbx_gain_diff_rdy_pos 0
+#define reg_sbx_gain_diff_rdy_len 1
+#define reg_sbx_gain_diff_rdy_lsb 0
+#define xd_p_reg_sbx_noncmb_gain_diff_7_0 (*(volatile byte xdata *) 0xF78F)
+#define p_reg_sbx_noncmb_gain_diff_7_0 0xF78F
+#define reg_sbx_noncmb_gain_diff_7_0_pos 0
+#define reg_sbx_noncmb_gain_diff_7_0_len 8
+#define reg_sbx_noncmb_gain_diff_7_0_lsb 0
+#define xd_p_reg_sbx_noncmb_gain_diff_8 (*(volatile byte xdata *) 0xF790)
+#define p_reg_sbx_noncmb_gain_diff_8 0xF790
+#define reg_sbx_noncmb_gain_diff_8_pos 0
+#define reg_sbx_noncmb_gain_diff_8_len 1
+#define reg_sbx_noncmb_gain_diff_8_lsb 8
+#define xd_p_reg_sbx_noncmb_gain_diff_rdy (*(volatile byte xdata *) 0xF791)
+#define p_reg_sbx_noncmb_gain_diff_rdy 0xF791
+#define reg_sbx_noncmb_gain_diff_rdy_pos 0
+#define reg_sbx_noncmb_gain_diff_rdy_len 1
+#define reg_sbx_noncmb_gain_diff_rdy_lsb 0
+#define xd_r_reg_qnt_vbc_err_7_0 (*(volatile byte xdata *) 0xF792)
+#define r_reg_qnt_vbc_err_7_0 0xF792
+#define reg_qnt_vbc_err_7_0_pos 0
+#define reg_qnt_vbc_err_7_0_len 8
+#define reg_qnt_vbc_err_7_0_lsb 0
+#define xd_r_reg_qnt_vbc_err_15_8 (*(volatile byte xdata *) 0xF793)
+#define r_reg_qnt_vbc_err_15_8 0xF793
+#define reg_qnt_vbc_err_15_8_pos 0
+#define reg_qnt_vbc_err_15_8_len 8
+#define reg_qnt_vbc_err_15_8_lsb 8
+#define xd_r_reg_qnt_vbc_err_23_16 (*(volatile byte xdata *) 0xF794)
+#define r_reg_qnt_vbc_err_23_16 0xF794
+#define reg_qnt_vbc_err_23_16_pos 0
+#define reg_qnt_vbc_err_23_16_len 8
+#define reg_qnt_vbc_err_23_16_lsb 16
+#define xd_r_reg_qnt_noncmb_vbc_err_7_0 (*(volatile byte xdata *) 0xF795)
+#define r_reg_qnt_noncmb_vbc_err_7_0 0xF795
+#define reg_qnt_noncmb_vbc_err_7_0_pos 0
+#define reg_qnt_noncmb_vbc_err_7_0_len 8
+#define reg_qnt_noncmb_vbc_err_7_0_lsb 0
+#define xd_r_reg_qnt_noncmb_vbc_err_15_8 (*(volatile byte xdata *) 0xF796)
+#define r_reg_qnt_noncmb_vbc_err_15_8 0xF796
+#define reg_qnt_noncmb_vbc_err_15_8_pos 0
+#define reg_qnt_noncmb_vbc_err_15_8_len 8
+#define reg_qnt_noncmb_vbc_err_15_8_lsb 8
+#define xd_r_reg_qnt_noncmb_vbc_err_23_16 (*(volatile byte xdata *) 0xF797)
+#define r_reg_qnt_noncmb_vbc_err_23_16 0xF797
+#define reg_qnt_noncmb_vbc_err_23_16_pos 0
+#define reg_qnt_noncmb_vbc_err_23_16_len 8
+#define reg_qnt_noncmb_vbc_err_23_16_lsb 16
+#define xd_p_reg_sbx_signalquality_threshold (*(volatile byte xdata *) 0xF798)
+#define p_reg_sbx_signalquality_threshold 0xF798
+#define reg_sbx_signalquality_threshold_pos 0
+#define reg_sbx_signalquality_threshold_len 4
+#define reg_sbx_signalquality_threshold_lsb 0
+#define xd_r_reg_sbx_signalquality_ind (*(volatile byte xdata *) 0xF799)
+#define r_reg_sbx_signalquality_ind 0xF799
+#define reg_sbx_signalquality_ind_pos 0
+#define reg_sbx_signalquality_ind_len 1
+#define reg_sbx_signalquality_ind_lsb 0
+#define xd_p_reg_p_sbxqnt_th1 (*(volatile byte xdata *) 0xF79A)
+#define p_reg_p_sbxqnt_th1 0xF79A
+#define reg_p_sbxqnt_th1_pos 0
+#define reg_p_sbxqnt_th1_len 8
+#define reg_p_sbxqnt_th1_lsb 0
+#define xd_p_reg_p_sbxqnt_th2 (*(volatile byte xdata *) 0xF79B)
+#define p_reg_p_sbxqnt_th2 0xF79B
+#define reg_p_sbxqnt_th2_pos 0
+#define reg_p_sbxqnt_th2_len 8
+#define reg_p_sbxqnt_th2_lsb 0
+#define xd_p_reg_p_sbxqnt_th3 (*(volatile byte xdata *) 0xF79C)
+#define p_reg_p_sbxqnt_th3 0xF79C
+#define reg_p_sbxqnt_th3_pos 0
+#define reg_p_sbxqnt_th3_len 8
+#define reg_p_sbxqnt_th3_lsb 0
+#define xd_p_reg_p_sbxqnt_th4 (*(volatile byte xdata *) 0xF79D)
+#define p_reg_p_sbxqnt_th4 0xF79D
+#define reg_p_sbxqnt_th4_pos 0
+#define reg_p_sbxqnt_th4_len 8
+#define reg_p_sbxqnt_th4_lsb 0
+#define xd_p_reg_p_sbxqnt_th5 (*(volatile byte xdata *) 0xF79E)
+#define p_reg_p_sbxqnt_th5 0xF79E
+#define reg_p_sbxqnt_th5_pos 0
+#define reg_p_sbxqnt_th5_len 8
+#define reg_p_sbxqnt_th5_lsb 0
+#define xd_p_reg_p_sbxqnt_th6 (*(volatile byte xdata *) 0xF79F)
+#define p_reg_p_sbxqnt_th6 0xF79F
+#define reg_p_sbxqnt_th6_pos 0
+#define reg_p_sbxqnt_th6_len 8
+#define reg_p_sbxqnt_th6_lsb 0
+#define xd_p_reg_p_sbxqnt_th7 (*(volatile byte xdata *) 0xF800)
+#define p_reg_p_sbxqnt_th7 0xF800
+#define reg_p_sbxqnt_th7_pos 0
+#define reg_p_sbxqnt_th7_len 8
+#define reg_p_sbxqnt_th7_lsb 0
+#define xd_p_reg_p_sbxqnt_th8 (*(volatile byte xdata *) 0xF801)
+#define p_reg_p_sbxqnt_th8 0xF801
+#define reg_p_sbxqnt_th8_pos 0
+#define reg_p_sbxqnt_th8_len 8
+#define reg_p_sbxqnt_th8_lsb 0
+#define xd_p_reg_p_sbxqnt_th9 (*(volatile byte xdata *) 0xF802)
+#define p_reg_p_sbxqnt_th9 0xF802
+#define reg_p_sbxqnt_th9_pos 0
+#define reg_p_sbxqnt_th9_len 8
+#define reg_p_sbxqnt_th9_lsb 0
+#define xd_p_reg_p_sbxqnt_th10 (*(volatile byte xdata *) 0xF803)
+#define p_reg_p_sbxqnt_th10 0xF803
+#define reg_p_sbxqnt_th10_pos 0
+#define reg_p_sbxqnt_th10_len 8
+#define reg_p_sbxqnt_th10_lsb 0
+#define xd_p_reg_p_sbxqnt_th11 (*(volatile byte xdata *) 0xF804)
+#define p_reg_p_sbxqnt_th11 0xF804
+#define reg_p_sbxqnt_th11_pos 0
+#define reg_p_sbxqnt_th11_len 8
+#define reg_p_sbxqnt_th11_lsb 0
+#define xd_p_reg_p_sbxqnt_th12 (*(volatile byte xdata *) 0xF805)
+#define p_reg_p_sbxqnt_th12 0xF805
+#define reg_p_sbxqnt_th12_pos 0
+#define reg_p_sbxqnt_th12_len 8
+#define reg_p_sbxqnt_th12_lsb 0
+#define xd_p_reg_p_sbxqnt_th13_7_0 (*(volatile byte xdata *) 0xF806)
+#define p_reg_p_sbxqnt_th13_7_0 0xF806
+#define reg_p_sbxqnt_th13_7_0_pos 0
+#define reg_p_sbxqnt_th13_7_0_len 8
+#define reg_p_sbxqnt_th13_7_0_lsb 0
+#define xd_p_reg_p_sbxqnt_th13_9_8 (*(volatile byte xdata *) 0xF807)
+#define p_reg_p_sbxqnt_th13_9_8 0xF807
+#define reg_p_sbxqnt_th13_9_8_pos 0
+#define reg_p_sbxqnt_th13_9_8_len 2
+#define reg_p_sbxqnt_th13_9_8_lsb 8
+#define xd_p_reg_p_sbxqnt_th14_7_0 (*(volatile byte xdata *) 0xF808)
+#define p_reg_p_sbxqnt_th14_7_0 0xF808
+#define reg_p_sbxqnt_th14_7_0_pos 0
+#define reg_p_sbxqnt_th14_7_0_len 8
+#define reg_p_sbxqnt_th14_7_0_lsb 0
+#define xd_p_reg_p_sbxqnt_th14_9_8 (*(volatile byte xdata *) 0xF809)
+#define p_reg_p_sbxqnt_th14_9_8 0xF809
+#define reg_p_sbxqnt_th14_9_8_pos 0
+#define reg_p_sbxqnt_th14_9_8_len 2
+#define reg_p_sbxqnt_th14_9_8_lsb 8
+#define xd_p_reg_p_sbxqnt_th15_7_0 (*(volatile byte xdata *) 0xF80A)
+#define p_reg_p_sbxqnt_th15_7_0 0xF80A
+#define reg_p_sbxqnt_th15_7_0_pos 0
+#define reg_p_sbxqnt_th15_7_0_len 8
+#define reg_p_sbxqnt_th15_7_0_lsb 0
+#define xd_p_reg_p_sbxqnt_th15_9_8 (*(volatile byte xdata *) 0xF80B)
+#define p_reg_p_sbxqnt_th15_9_8 0xF80B
+#define reg_p_sbxqnt_th15_9_8_pos 0
+#define reg_p_sbxqnt_th15_9_8_len 2
+#define reg_p_sbxqnt_th15_9_8_lsb 8
+#define xd_p_reg_p_sbxqnt_vzh2_th0 (*(volatile byte xdata *) 0xF80C)
+#define p_reg_p_sbxqnt_vzh2_th0 0xF80C
+#define reg_p_sbxqnt_vzh2_th0_pos 0
+#define reg_p_sbxqnt_vzh2_th0_len 8
+#define reg_p_sbxqnt_vzh2_th0_lsb 0
+#define xd_p_reg_p_sbxqnt_vzh2_th1 (*(volatile byte xdata *) 0xF80D)
+#define p_reg_p_sbxqnt_vzh2_th1 0xF80D
+#define reg_p_sbxqnt_vzh2_th1_pos 0
+#define reg_p_sbxqnt_vzh2_th1_len 8
+#define reg_p_sbxqnt_vzh2_th1_lsb 0
+#define xd_p_reg_p_sbxqnt_vzh2_th2 (*(volatile byte xdata *) 0xF80E)
+#define p_reg_p_sbxqnt_vzh2_th2 0xF80E
+#define reg_p_sbxqnt_vzh2_th2_pos 0
+#define reg_p_sbxqnt_vzh2_th2_len 8
+#define reg_p_sbxqnt_vzh2_th2_lsb 0
+#define xd_p_reg_p_qnt_w_comp1 (*(volatile byte xdata *) 0xF80F)
+#define p_reg_p_qnt_w_comp1 0xF80F
+#define reg_p_qnt_w_comp1_pos 0
+#define reg_p_qnt_w_comp1_len 8
+#define reg_p_qnt_w_comp1_lsb 0
+#define xd_p_reg_p_qnt_w_comp2 (*(volatile byte xdata *) 0xF810)
+#define p_reg_p_qnt_w_comp2 0xF810
+#define reg_p_qnt_w_comp2_pos 0
+#define reg_p_qnt_w_comp2_len 8
+#define reg_p_qnt_w_comp2_lsb 0
+#define xd_p_reg_p_qnt_w_comp3 (*(volatile byte xdata *) 0xF811)
+#define p_reg_p_qnt_w_comp3 0xF811
+#define reg_p_qnt_w_comp3_pos 0
+#define reg_p_qnt_w_comp3_len 8
+#define reg_p_qnt_w_comp3_lsb 0
+#define xd_p_reg_p_vtb_in_0 (*(volatile byte xdata *) 0xF821)
+#define p_reg_p_vtb_in_0 0xF821
+#define reg_p_vtb_in_0_pos 0
+#define reg_p_vtb_in_0_len 6
+#define reg_p_vtb_in_0_lsb 0
+#define xd_p_reg_p_vtb_in_1 (*(volatile byte xdata *) 0xF822)
+#define p_reg_p_vtb_in_1 0xF822
+#define reg_p_vtb_in_1_pos 0
+#define reg_p_vtb_in_1_len 6
+#define reg_p_vtb_in_1_lsb 0
+#define xd_p_reg_p_vtb_in_2 (*(volatile byte xdata *) 0xF823)
+#define p_reg_p_vtb_in_2 0xF823
+#define reg_p_vtb_in_2_pos 0
+#define reg_p_vtb_in_2_len 6
+#define reg_p_vtb_in_2_lsb 0
+#define xd_p_reg_p_vtb_in_3 (*(volatile byte xdata *) 0xF824)
+#define p_reg_p_vtb_in_3 0xF824
+#define reg_p_vtb_in_3_pos 0
+#define reg_p_vtb_in_3_len 6
+#define reg_p_vtb_in_3_lsb 0
+#define xd_p_reg_p_vtb_in_4 (*(volatile byte xdata *) 0xF825)
+#define p_reg_p_vtb_in_4 0xF825
+#define reg_p_vtb_in_4_pos 0
+#define reg_p_vtb_in_4_len 6
+#define reg_p_vtb_in_4_lsb 0
+#define xd_p_reg_p_vtb_in_5 (*(volatile byte xdata *) 0xF826)
+#define p_reg_p_vtb_in_5 0xF826
+#define reg_p_vtb_in_5_pos 0
+#define reg_p_vtb_in_5_len 6
+#define reg_p_vtb_in_5_lsb 0
+#define xd_p_reg_p_vtb_in_6 (*(volatile byte xdata *) 0xF827)
+#define p_reg_p_vtb_in_6 0xF827
+#define reg_p_vtb_in_6_pos 0
+#define reg_p_vtb_in_6_len 6
+#define reg_p_vtb_in_6_lsb 0
+#define xd_p_reg_p_vtb_in_7 (*(volatile byte xdata *) 0xF828)
+#define p_reg_p_vtb_in_7 0xF828
+#define reg_p_vtb_in_7_pos 0
+#define reg_p_vtb_in_7_len 6
+#define reg_p_vtb_in_7_lsb 0
+#define xd_p_reg_p_vtb_in_8 (*(volatile byte xdata *) 0xF829)
+#define p_reg_p_vtb_in_8 0xF829
+#define reg_p_vtb_in_8_pos 0
+#define reg_p_vtb_in_8_len 6
+#define reg_p_vtb_in_8_lsb 0
+#define xd_p_reg_p_vtb_in_9 (*(volatile byte xdata *) 0xF82A)
+#define p_reg_p_vtb_in_9 0xF82A
+#define reg_p_vtb_in_9_pos 0
+#define reg_p_vtb_in_9_len 6
+#define reg_p_vtb_in_9_lsb 0
+#define xd_p_reg_p_vtb_in_10 (*(volatile byte xdata *) 0xF82B)
+#define p_reg_p_vtb_in_10 0xF82B
+#define reg_p_vtb_in_10_pos 0
+#define reg_p_vtb_in_10_len 6
+#define reg_p_vtb_in_10_lsb 0
+#define xd_p_reg_p_vtb_in_11 (*(volatile byte xdata *) 0xF82C)
+#define p_reg_p_vtb_in_11 0xF82C
+#define reg_p_vtb_in_11_pos 0
+#define reg_p_vtb_in_11_len 6
+#define reg_p_vtb_in_11_lsb 0
+#define xd_p_reg_p_vtb_in_12 (*(volatile byte xdata *) 0xF82D)
+#define p_reg_p_vtb_in_12 0xF82D
+#define reg_p_vtb_in_12_pos 0
+#define reg_p_vtb_in_12_len 6
+#define reg_p_vtb_in_12_lsb 0
+#define xd_p_reg_p_vtb_in_13 (*(volatile byte xdata *) 0xF82E)
+#define p_reg_p_vtb_in_13 0xF82E
+#define reg_p_vtb_in_13_pos 0
+#define reg_p_vtb_in_13_len 6
+#define reg_p_vtb_in_13_lsb 0
+#define xd_p_reg_p_vtb_in_14 (*(volatile byte xdata *) 0xF82F)
+#define p_reg_p_vtb_in_14 0xF82F
+#define reg_p_vtb_in_14_pos 0
+#define reg_p_vtb_in_14_len 6
+#define reg_p_vtb_in_14_lsb 0
+#define xd_p_reg_p_vtb_in_15 (*(volatile byte xdata *) 0xF830)
+#define p_reg_p_vtb_in_15 0xF830
+#define reg_p_vtb_in_15_pos 0
+#define reg_p_vtb_in_15_len 6
+#define reg_p_vtb_in_15_lsb 0
+#define xd_I2C_i2c_m_slave_addr (*(volatile byte xdata *) 0xF940)
+#define I2C_i2c_m_slave_addr 0xF940
+#define i2c_m_slave_addr_pos 0
+#define i2c_m_slave_addr_len 8
+#define i2c_m_slave_addr_lsb 0
+#define xd_I2C_i2c_m_data1 (*(volatile byte xdata *) 0xF941)
+#define I2C_i2c_m_data1 0xF941
+#define i2c_m_data1_pos 0
+#define i2c_m_data1_len 8
+#define i2c_m_data1_lsb 0
+#define xd_I2C_i2c_m_data2 (*(volatile byte xdata *) 0xF942)
+#define I2C_i2c_m_data2 0xF942
+#define i2c_m_data2_pos 0
+#define i2c_m_data2_len 8
+#define i2c_m_data2_lsb 0
+#define xd_I2C_i2c_m_data3 (*(volatile byte xdata *) 0xF943)
+#define I2C_i2c_m_data3 0xF943
+#define i2c_m_data3_pos 0
+#define i2c_m_data3_len 8
+#define i2c_m_data3_lsb 0
+#define xd_I2C_i2c_m_data4 (*(volatile byte xdata *) 0xF944)
+#define I2C_i2c_m_data4 0xF944
+#define i2c_m_data4_pos 0
+#define i2c_m_data4_len 8
+#define i2c_m_data4_lsb 0
+#define xd_I2C_i2c_m_data5 (*(volatile byte xdata *) 0xF945)
+#define I2C_i2c_m_data5 0xF945
+#define i2c_m_data5_pos 0
+#define i2c_m_data5_len 8
+#define i2c_m_data5_lsb 0
+#define xd_I2C_i2c_m_data6 (*(volatile byte xdata *) 0xF946)
+#define I2C_i2c_m_data6 0xF946
+#define i2c_m_data6_pos 0
+#define i2c_m_data6_len 8
+#define i2c_m_data6_lsb 0
+#define xd_I2C_i2c_m_data7 (*(volatile byte xdata *) 0xF947)
+#define I2C_i2c_m_data7 0xF947
+#define i2c_m_data7_pos 0
+#define i2c_m_data7_len 8
+#define i2c_m_data7_lsb 0
+#define xd_I2C_i2c_m_data8 (*(volatile byte xdata *) 0xF948)
+#define I2C_i2c_m_data8 0xF948
+#define i2c_m_data8_pos 0
+#define i2c_m_data8_len 8
+#define i2c_m_data8_lsb 0
+#define xd_I2C_i2c_m_data9 (*(volatile byte xdata *) 0xF949)
+#define I2C_i2c_m_data9 0xF949
+#define i2c_m_data9_pos 0
+#define i2c_m_data9_len 8
+#define i2c_m_data9_lsb 0
+#define xd_I2C_i2c_m_data10 (*(volatile byte xdata *) 0xF94A)
+#define I2C_i2c_m_data10 0xF94A
+#define i2c_m_data10_pos 0
+#define i2c_m_data10_len 8
+#define i2c_m_data10_lsb 0
+#define xd_I2C_i2c_m_data11 (*(volatile byte xdata *) 0xF94B)
+#define I2C_i2c_m_data11 0xF94B
+#define i2c_m_data11_pos 0
+#define i2c_m_data11_len 8
+#define i2c_m_data11_lsb 0
+#define xd_I2C_i2c_m_data12 (*(volatile byte xdata *) 0xF94C)
+#define I2C_i2c_m_data12 0xF94C
+#define i2c_m_data12_pos 0
+#define i2c_m_data12_len 8
+#define i2c_m_data12_lsb 0
+#define xd_I2C_i2c_m_data13 (*(volatile byte xdata *) 0xF94D)
+#define I2C_i2c_m_data13 0xF94D
+#define i2c_m_data13_pos 0
+#define i2c_m_data13_len 8
+#define i2c_m_data13_lsb 0
+#define xd_I2C_i2c_m_data14 (*(volatile byte xdata *) 0xF94E)
+#define I2C_i2c_m_data14 0xF94E
+#define i2c_m_data14_pos 0
+#define i2c_m_data14_len 8
+#define i2c_m_data14_lsb 0
+#define xd_I2C_i2c_m_data15 (*(volatile byte xdata *) 0xF94F)
+#define I2C_i2c_m_data15 0xF94F
+#define i2c_m_data15_pos 0
+#define i2c_m_data15_len 8
+#define i2c_m_data15_lsb 0
+#define xd_I2C_i2c_m_data16 (*(volatile byte xdata *) 0xF950)
+#define I2C_i2c_m_data16 0xF950
+#define i2c_m_data16_pos 0
+#define i2c_m_data16_len 8
+#define i2c_m_data16_lsb 0
+#define xd_I2C_i2c_m_data17 (*(volatile byte xdata *) 0xF951)
+#define I2C_i2c_m_data17 0xF951
+#define i2c_m_data17_pos 0
+#define i2c_m_data17_len 8
+#define i2c_m_data17_lsb 0
+#define xd_I2C_i2c_m_data18 (*(volatile byte xdata *) 0xF952)
+#define I2C_i2c_m_data18 0xF952
+#define i2c_m_data18_pos 0
+#define i2c_m_data18_len 8
+#define i2c_m_data18_lsb 0
+#define xd_I2C_i2c_m_data19 (*(volatile byte xdata *) 0xF953)
+#define I2C_i2c_m_data19 0xF953
+#define i2c_m_data19_pos 0
+#define i2c_m_data19_len 8
+#define i2c_m_data19_lsb 0
+#define xd_I2C_i2c_m_cmd_rw (*(volatile byte xdata *) 0xF954)
+#define I2C_i2c_m_cmd_rw 0xF954
+#define i2c_m_cmd_rw_pos 0
+#define i2c_m_cmd_rw_len 1
+#define i2c_m_cmd_rw_lsb 0
+#define xd_I2C_i2c_m_cmd_rwlen (*(volatile byte xdata *) 0xF954)
+#define I2C_i2c_m_cmd_rwlen 0xF954
+#define i2c_m_cmd_rwlen_pos 3
+#define i2c_m_cmd_rwlen_len 4
+#define i2c_m_cmd_rwlen_lsb 0
+#define xd_I2C_i2c_m_status_cmd_exe (*(volatile byte xdata *) 0xF955)
+#define I2C_i2c_m_status_cmd_exe 0xF955
+#define i2c_m_status_cmd_exe_pos 0
+#define i2c_m_status_cmd_exe_len 1
+#define i2c_m_status_cmd_exe_lsb 0
+#define xd_I2C_i2c_m_status_wdat_done (*(volatile byte xdata *) 0xF955)
+#define I2C_i2c_m_status_wdat_done 0xF955
+#define i2c_m_status_wdat_done_pos 1
+#define i2c_m_status_wdat_done_len 1
+#define i2c_m_status_wdat_done_lsb 0
+#define xd_I2C_i2c_m_status_wdat_fail (*(volatile byte xdata *) 0xF955)
+#define I2C_i2c_m_status_wdat_fail 0xF955
+#define i2c_m_status_wdat_fail_pos 2
+#define i2c_m_status_wdat_fail_len 1
+#define i2c_m_status_wdat_fail_lsb 0
+#define xd_I2C_i2c_m_status_rdat_rdy (*(volatile byte xdata *) 0xF955)
+#define I2C_i2c_m_status_rdat_rdy 0xF955
+#define i2c_m_status_rdat_rdy_pos 3
+#define i2c_m_status_rdat_rdy_len 1
+#define i2c_m_status_rdat_rdy_lsb 0
+#define xd_I2C_i2c_m_period (*(volatile byte xdata *) 0xF956)
+#define I2C_i2c_m_period 0xF956
+#define i2c_m_period_pos 0
+#define i2c_m_period_len 8
+#define i2c_m_period_lsb 0
+#define xd_I2C_i2c_m_reg_msb_lsb (*(volatile byte xdata *) 0xF957)
+#define I2C_i2c_m_reg_msb_lsb 0xF957
+#define i2c_m_reg_msb_lsb_pos 0
+#define i2c_m_reg_msb_lsb_len 1
+#define i2c_m_reg_msb_lsb_lsb 0
+#define xd_I2C_reg_ofdm_rst (*(volatile byte xdata *) 0xF957)
+#define I2C_reg_ofdm_rst 0xF957
+#define reg_ofdm_rst_pos 1
+#define reg_ofdm_rst_len 1
+#define reg_ofdm_rst_lsb 0
+#define xd_I2C_reg_sample_period_on_tuner (*(volatile byte xdata *) 0xF957)
+#define I2C_reg_sample_period_on_tuner 0xF957
+#define reg_sample_period_on_tuner_pos 2
+#define reg_sample_period_on_tuner_len 1
+#define reg_sample_period_on_tuner_lsb 0
+#define xd_I2C_reg_sel_tuner (*(volatile byte xdata *) 0xF957)
+#define I2C_reg_sel_tuner 0xF957
+#define reg_sel_tuner_pos 3
+#define reg_sel_tuner_len 1
+#define reg_sel_tuner_lsb 0
+#define xd_I2C_reg_ofdm_rst_en (*(volatile byte xdata *) 0xF957)
+#define I2C_reg_ofdm_rst_en 0xF957
+#define reg_ofdm_rst_en_pos 4
+#define reg_ofdm_rst_en_len 1
+#define reg_ofdm_rst_en_lsb 0
+#define xd_p_mp2if_psb_overflow (*(volatile byte xdata *) 0xF980)
+#define p_mp2if_psb_overflow 0xF980
+#define mp2if_psb_overflow_pos 0
+#define mp2if_psb_overflow_len 1
+#define mp2if_psb_overflow_lsb 0
+#define xd_p_mp2if_no_modify_tei_bit (*(volatile byte xdata *) 0xF981)
+#define p_mp2if_no_modify_tei_bit 0xF981
+#define mp2if_no_modify_tei_bit_pos 0
+#define mp2if_no_modify_tei_bit_len 1
+#define mp2if_no_modify_tei_bit_lsb 0
+#define xd_p_mp2if_keep_sf_sync_byte (*(volatile byte xdata *) 0xF982)
+#define p_mp2if_keep_sf_sync_byte 0xF982
+#define mp2if_keep_sf_sync_byte_pos 0
+#define mp2if_keep_sf_sync_byte_len 1
+#define mp2if_keep_sf_sync_byte_lsb 0
+#define xd_p_mp2if_data_access_disable (*(volatile byte xdata *) 0xF983)
+#define p_mp2if_data_access_disable 0xF983
+#define mp2if_data_access_disable_pos 0
+#define mp2if_data_access_disable_len 1
+#define mp2if_data_access_disable_lsb 0
+#define xd_p_mp2if_mpeg_ser_do7 (*(volatile byte xdata *) 0xF984)
+#define p_mp2if_mpeg_ser_do7 0xF984
+#define mp2if_mpeg_ser_do7_pos 0
+#define mp2if_mpeg_ser_do7_len 1
+#define mp2if_mpeg_ser_do7_lsb 0
+#define xd_p_mp2if_mpeg_ser_mode (*(volatile byte xdata *) 0xF985)
+#define p_mp2if_mpeg_ser_mode 0xF985
+#define mp2if_mpeg_ser_mode_pos 0
+#define mp2if_mpeg_ser_mode_len 1
+#define mp2if_mpeg_ser_mode_lsb 0
+#define xd_p_mp2if_mpeg_par_mode (*(volatile byte xdata *) 0xF986)
+#define p_mp2if_mpeg_par_mode 0xF986
+#define mp2if_mpeg_par_mode_pos 0
+#define mp2if_mpeg_par_mode_len 1
+#define mp2if_mpeg_par_mode_lsb 0
+#define xd_r_mp2if_psb_empty (*(volatile byte xdata *) 0xF987)
+#define r_mp2if_psb_empty 0xF987
+#define mp2if_psb_empty_pos 0
+#define mp2if_psb_empty_len 1
+#define mp2if_psb_empty_lsb 0
+#define xd_r_mp2if_ts_not_188 (*(volatile byte xdata *) 0xF988)
+#define r_mp2if_ts_not_188 0xF988
+#define mp2if_ts_not_188_pos 0
+#define mp2if_ts_not_188_len 1
+#define mp2if_ts_not_188_lsb 0
+#define xd_p_mp2if_mssync_len (*(volatile byte xdata *) 0xF989)
+#define p_mp2if_mssync_len 0xF989
+#define mp2if_mssync_len_pos 0
+#define mp2if_mssync_len_len 1
+#define mp2if_mssync_len_lsb 0
+#define xd_p_mp2if_msdo_msb (*(volatile byte xdata *) 0xF98A)
+#define p_mp2if_msdo_msb 0xF98A
+#define mp2if_msdo_msb_pos 0
+#define mp2if_msdo_msb_len 1
+#define mp2if_msdo_msb_lsb 0
+#define xd_p_mp2if_mpeg_clk_gated (*(volatile byte xdata *) 0xF98B)
+#define p_mp2if_mpeg_clk_gated 0xF98B
+#define mp2if_mpeg_clk_gated_pos 0
+#define mp2if_mpeg_clk_gated_len 1
+#define mp2if_mpeg_clk_gated_lsb 0
+#define xd_p_mp2if_mpeg_err_pol (*(volatile byte xdata *) 0xF98C)
+#define p_mp2if_mpeg_err_pol 0xF98C
+#define mp2if_mpeg_err_pol_pos 0
+#define mp2if_mpeg_err_pol_len 1
+#define mp2if_mpeg_err_pol_lsb 0
+#define xd_p_mp2if_mpeg_sync_pol (*(volatile byte xdata *) 0xF98D)
+#define p_mp2if_mpeg_sync_pol 0xF98D
+#define mp2if_mpeg_sync_pol_pos 0
+#define mp2if_mpeg_sync_pol_len 1
+#define mp2if_mpeg_sync_pol_lsb 0
+#define xd_p_mp2if_mpeg_vld_pol (*(volatile byte xdata *) 0xF98E)
+#define p_mp2if_mpeg_vld_pol 0xF98E
+#define mp2if_mpeg_vld_pol_pos 0
+#define mp2if_mpeg_vld_pol_len 1
+#define mp2if_mpeg_vld_pol_lsb 0
+#define xd_p_mp2if_mpeg_clk_pol (*(volatile byte xdata *) 0xF98F)
+#define p_mp2if_mpeg_clk_pol 0xF98F
+#define mp2if_mpeg_clk_pol_pos 0
+#define mp2if_mpeg_clk_pol_len 1
+#define mp2if_mpeg_clk_pol_lsb 0
+#define xd_p_reg_mpeg_full_speed (*(volatile byte xdata *) 0xF990)
+#define p_reg_mpeg_full_speed 0xF990
+#define reg_mpeg_full_speed_pos 0
+#define reg_mpeg_full_speed_len 1
+#define reg_mpeg_full_speed_lsb 0
+#define xd_p_mp2if_pid_complement (*(volatile byte xdata *) 0xF991)
+#define p_mp2if_pid_complement 0xF991
+#define mp2if_pid_complement_pos 0
+#define mp2if_pid_complement_len 1
+#define mp2if_pid_complement_lsb 0
+#define xd_p_mp2if_pid_rst (*(volatile byte xdata *) 0xF992)
+#define p_mp2if_pid_rst 0xF992
+#define mp2if_pid_rst_pos 0
+#define mp2if_pid_rst_len 1
+#define mp2if_pid_rst_lsb 0
+#define xd_p_mp2if_pid_en (*(volatile byte xdata *) 0xF993)
+#define p_mp2if_pid_en 0xF993
+#define mp2if_pid_en_pos 0
+#define mp2if_pid_en_len 1
+#define mp2if_pid_en_lsb 0
+#define xd_p_mp2if_pid_index_en (*(volatile byte xdata *) 0xF994)
+#define p_mp2if_pid_index_en 0xF994
+#define mp2if_pid_index_en_pos 0
+#define mp2if_pid_index_en_len 1
+#define mp2if_pid_index_en_lsb 0
+#define xd_p_mp2if_pid_index (*(volatile byte xdata *) 0xF995)
+#define p_mp2if_pid_index 0xF995
+#define mp2if_pid_index_pos 0
+#define mp2if_pid_index_len 5
+#define mp2if_pid_index_lsb 0
+#define xd_p_mp2if_pid_dat_l (*(volatile byte xdata *) 0xF996)
+#define p_mp2if_pid_dat_l 0xF996
+#define mp2if_pid_dat_l_pos 0
+#define mp2if_pid_dat_l_len 8
+#define mp2if_pid_dat_l_lsb 0
+#define xd_p_mp2if_pid_dat_h (*(volatile byte xdata *) 0xF997)
+#define p_mp2if_pid_dat_h 0xF997
+#define mp2if_pid_dat_h_pos 0
+#define mp2if_pid_dat_h_len 5
+#define mp2if_pid_dat_h_lsb 0
+#define xd_p_reg_latch_clk (*(volatile byte xdata *) 0xF998)
+#define p_reg_latch_clk 0xF998
+#define reg_latch_clk_pos 0
+#define reg_latch_clk_len 1
+#define reg_latch_clk_lsb 0
+#define xd_r_mp2if_sync_byte_locked (*(volatile byte xdata *) 0xF999)
+#define r_mp2if_sync_byte_locked 0xF999
+#define mp2if_sync_byte_locked_pos 0
+#define mp2if_sync_byte_locked_len 1
+#define mp2if_sync_byte_locked_lsb 0
+#define xd_p_mp2if_ignore_sync_byte (*(volatile byte xdata *) 0xF99A)
+#define p_mp2if_ignore_sync_byte 0xF99A
+#define mp2if_ignore_sync_byte_pos 0
+#define mp2if_ignore_sync_byte_len 1
+#define mp2if_ignore_sync_byte_lsb 0
+#define xd_p_reg_mp2if_clk_en (*(volatile byte xdata *) 0xF99B)
+#define p_reg_mp2if_clk_en 0xF99B
+#define reg_mp2if_clk_en_pos 0
+#define reg_mp2if_clk_en_len 1
+#define reg_mp2if_clk_en_lsb 0
+#define xd_p_reg_mpeg_vld_tgl (*(volatile byte xdata *) 0xF99C)
+#define p_reg_mpeg_vld_tgl 0xF99C
+#define reg_mpeg_vld_tgl_pos 0
+#define reg_mpeg_vld_tgl_len 1
+#define reg_mpeg_vld_tgl_lsb 0
+#define xd_p_reg_mp2_sw_rst (*(volatile byte xdata *) 0xF99D)
+#define p_reg_mp2_sw_rst 0xF99D
+#define reg_mp2_sw_rst_pos 0
+#define reg_mp2_sw_rst_len 1
+#define reg_mp2_sw_rst_lsb 0
+#define xd_p_mp2if_psb_en (*(volatile byte xdata *) 0xF99E)
+#define p_mp2if_psb_en 0xF99E
+#define mp2if_psb_en_pos 0
+#define mp2if_psb_en_len 1
+#define mp2if_psb_en_lsb 0
+#define xd_r_mp2if_usb20_mode (*(volatile byte xdata *) 0xF99F)
+#define r_mp2if_usb20_mode 0xF99F
+#define mp2if_usb20_mode_pos 0
+#define mp2if_usb20_mode_len 1
+#define mp2if_usb20_mode_lsb 0
+#define xd_r_mp2if_strap_usb20_mode (*(volatile byte xdata *) 0xF9A0)
+#define r_mp2if_strap_usb20_mode 0xF9A0
+#define mp2if_strap_usb20_mode_pos 0
+#define mp2if_strap_usb20_mode_len 1
+#define mp2if_strap_usb20_mode_lsb 0
+#define xd_r_mp2if_lost_pkt_cnt_l (*(volatile byte xdata *) 0xF9A1)
+#define r_mp2if_lost_pkt_cnt_l 0xF9A1
+#define mp2if_lost_pkt_cnt_l_pos 0
+#define mp2if_lost_pkt_cnt_l_len 8
+#define mp2if_lost_pkt_cnt_l_lsb 0
+#define xd_r_mp2if_lost_pkt_cnt_h (*(volatile byte xdata *) 0xF9A2)
+#define r_mp2if_lost_pkt_cnt_h 0xF9A2
+#define mp2if_lost_pkt_cnt_h_pos 0
+#define mp2if_lost_pkt_cnt_h_len 8
+#define mp2if_lost_pkt_cnt_h_lsb 0
+#define xd_p_reg_mp2if2_en (*(volatile byte xdata *) 0xF9A3)
+#define p_reg_mp2if2_en 0xF9A3
+#define reg_mp2if2_en_pos 0
+#define reg_mp2if2_en_len 1
+#define reg_mp2if2_en_lsb 0
+#define xd_p_reg_mp2if2_sw_rst (*(volatile byte xdata *) 0xF9A4)
+#define p_reg_mp2if2_sw_rst 0xF9A4
+#define reg_mp2if2_sw_rst_pos 0
+#define reg_mp2if2_sw_rst_len 1
+#define reg_mp2if2_sw_rst_lsb 0
+#define xd_p_reg_mp2if2_half_psb (*(volatile byte xdata *) 0xF9A5)
+#define p_reg_mp2if2_half_psb 0xF9A5
+#define reg_mp2if2_half_psb_pos 0
+#define reg_mp2if2_half_psb_len 1
+#define reg_mp2if2_half_psb_lsb 0
+#define xd_p_reg_ts_byte_endian (*(volatile byte xdata *) 0xF9A6)
+#define p_reg_ts_byte_endian 0xF9A6
+#define reg_ts_byte_endian_pos 0
+#define reg_ts_byte_endian_len 1
+#define reg_ts_byte_endian_lsb 0
+#define xd_p_reg_mp2_dioif (*(volatile byte xdata *) 0xF9A7)
+#define p_reg_mp2_dioif 0xF9A7
+#define reg_mp2_dioif_pos 0
+#define reg_mp2_dioif_len 1
+#define reg_mp2_dioif_lsb 0
+#define xd_p_reg_mp2_dioif_fast (*(volatile byte xdata *) 0xF9A8)
+#define p_reg_mp2_dioif_fast 0xF9A8
+#define reg_mp2_dioif_fast_pos 0
+#define reg_mp2_dioif_fast_len 1
+#define reg_mp2_dioif_fast_lsb 0
+#define xd_p_reg_tpsd_bw_mp2if (*(volatile byte xdata *) 0xF9A9)
+#define p_reg_tpsd_bw_mp2if 0xF9A9
+#define reg_tpsd_bw_mp2if_pos 0
+#define reg_tpsd_bw_mp2if_len 2
+#define reg_tpsd_bw_mp2if_lsb 0
+#define xd_p_reg_tpsd_gi_mp2if (*(volatile byte xdata *) 0xF9AA)
+#define p_reg_tpsd_gi_mp2if 0xF9AA
+#define reg_tpsd_gi_mp2if_pos 0
+#define reg_tpsd_gi_mp2if_len 2
+#define reg_tpsd_gi_mp2if_lsb 0
+#define xd_p_reg_tpsd_cr_mp2if (*(volatile byte xdata *) 0xF9AB)
+#define p_reg_tpsd_cr_mp2if 0xF9AB
+#define reg_tpsd_cr_mp2if_pos 0
+#define reg_tpsd_cr_mp2if_len 3
+#define reg_tpsd_cr_mp2if_lsb 0
+#define xd_p_reg_tpsd_cons_mp2if (*(volatile byte xdata *) 0xF9AC)
+#define p_reg_tpsd_cons_mp2if 0xF9AC
+#define reg_tpsd_cons_mp2if_pos 0
+#define reg_tpsd_cons_mp2if_len 2
+#define reg_tpsd_cons_mp2if_lsb 0
+#define xd_p_reg_fw_table_en (*(volatile byte xdata *) 0xF9AD)
+#define p_reg_fw_table_en 0xF9AD
+#define reg_fw_table_en_pos 0
+#define reg_fw_table_en_len 1
+#define reg_fw_table_en_lsb 0
+#define xd_p_reg_p_aud_pk_gen_aud_pk_size (*(volatile byte xdata *) 0xF9AD)
+#define p_reg_p_aud_pk_gen_aud_pk_size 0xF9AD
+#define reg_p_aud_pk_gen_aud_pk_size_pos 1
+#define reg_p_aud_pk_gen_aud_pk_size_len 6
+#define reg_p_aud_pk_gen_aud_pk_size_lsb 0
+#define xd_p_mp2if_psb_num_blk (*(volatile byte xdata *) 0xF9AE)
+#define p_mp2if_psb_num_blk 0xF9AE
+#define mp2if_psb_num_blk_pos 0
+#define mp2if_psb_num_blk_len 6
+#define mp2if_psb_num_blk_lsb 0
+#define xd_p_reg_fec_fake (*(volatile byte xdata *) 0xF9AF)
+#define p_reg_fec_fake 0xF9AF
+#define reg_fec_fake_pos 0
+#define reg_fec_fake_len 1
+#define reg_fec_fake_lsb 0
+#define xd_p_reg_p_ccir_atv_en (*(volatile byte xdata *) 0xF9AF)
+#define p_reg_p_ccir_atv_en 0xF9AF
+#define reg_p_ccir_atv_en_pos 1
+#define reg_p_ccir_atv_en_len 1
+#define reg_p_ccir_atv_en_lsb 0
+#define xd_p_reg_video_stop_n (*(volatile byte xdata *) 0xF9AF)
+#define p_reg_video_stop_n 0xF9AF
+#define reg_video_stop_n_pos 2
+#define reg_video_stop_n_len 1
+#define reg_video_stop_n_lsb 0
+#define xd_p_reg_audio_stop_n (*(volatile byte xdata *) 0xF9AF)
+#define p_reg_audio_stop_n 0xF9AF
+#define reg_audio_stop_n_pos 3
+#define reg_audio_stop_n_len 1
+#define reg_audio_stop_n_lsb 0
+#define xd_p_mp2if_i2smode (*(volatile byte xdata *) 0xF9AF)
+#define p_mp2if_i2smode 0xF9AF
+#define mp2if_i2smode_pos 4
+#define mp2if_i2smode_len 2
+#define mp2if_i2smode_lsb 0
+#define xd_p_mp2if_word_size (*(volatile byte xdata *) 0xF9AF)
+#define p_mp2if_word_size 0xF9AF
+#define mp2if_word_size_pos 6
+#define mp2if_word_size_len 2
+#define mp2if_word_size_lsb 0
+#define xd_p_reg_packet_gap (*(volatile byte xdata *) 0xF9B0)
+#define p_reg_packet_gap 0xF9B0
+#define reg_packet_gap_pos 0
+#define reg_packet_gap_len 8
+#define reg_packet_gap_lsb 0
+#define xd_p_reg_ts_dat_inv (*(volatile byte xdata *) 0xF9B2)
+#define p_reg_ts_dat_inv 0xF9B2
+#define reg_ts_dat_inv_pos 0
+#define reg_ts_dat_inv_len 1
+#define reg_ts_dat_inv_lsb 0
+#define xd_p_reg_ts_lsb_1st (*(volatile byte xdata *) 0xF9B3)
+#define p_reg_ts_lsb_1st 0xF9B3
+#define reg_ts_lsb_1st_pos 0
+#define reg_ts_lsb_1st_len 1
+#define reg_ts_lsb_1st_lsb 0
+#define xd_p_reg_ts_capt_bg_sel (*(volatile byte xdata *) 0xF9B4)
+#define p_reg_ts_capt_bg_sel 0xF9B4
+#define reg_ts_capt_bg_sel_pos 0
+#define reg_ts_capt_bg_sel_len 1
+#define reg_ts_capt_bg_sel_lsb 0
+#define xd_p_reg_mp2if_stop_en (*(volatile byte xdata *) 0xF9B5)
+#define p_reg_mp2if_stop_en 0xF9B5
+#define reg_mp2if_stop_en_pos 0
+#define reg_mp2if_stop_en_len 1
+#define reg_mp2if_stop_en_lsb 0
+#define xd_p_reg_mp2if2_pes_base (*(volatile byte xdata *) 0xF9B6)
+#define p_reg_mp2if2_pes_base 0xF9B6
+#define reg_mp2if2_pes_base_pos 0
+#define reg_mp2if2_pes_base_len 1
+#define reg_mp2if2_pes_base_lsb 0
+#define xd_p_reg_ts_sync_inv (*(volatile byte xdata *) 0xF9B7)
+#define p_reg_ts_sync_inv 0xF9B7
+#define reg_ts_sync_inv_pos 0
+#define reg_ts_sync_inv_len 1
+#define reg_ts_sync_inv_lsb 0
+#define xd_p_reg_ts_vld_inv (*(volatile byte xdata *) 0xF9B8)
+#define p_reg_ts_vld_inv 0xF9B8
+#define reg_ts_vld_inv_pos 0
+#define reg_ts_vld_inv_len 1
+#define reg_ts_vld_inv_lsb 0
+#define xd_p_reg_sys_buf_overflow (*(volatile byte xdata *) 0xF9B9)
+#define p_reg_sys_buf_overflow 0xF9B9
+#define reg_sys_buf_overflow_pos 0
+#define reg_sys_buf_overflow_len 1
+#define reg_sys_buf_overflow_lsb 0
+#define xd_p_reg_top_dummy0 (*(volatile byte xdata *) 0xF9BB)
+#define p_reg_top_dummy0 0xF9BB
+#define reg_top_dummy0_pos 0
+#define reg_top_dummy0_len 8
+#define reg_top_dummy0_lsb 0
+#define xd_p_reg_top_dummy1 (*(volatile byte xdata *) 0xF9BC)
+#define p_reg_top_dummy1 0xF9BC
+#define reg_top_dummy1_pos 0
+#define reg_top_dummy1_len 8
+#define reg_top_dummy1_lsb 0
+#define xd_p_reg_top_dummy2 (*(volatile byte xdata *) 0xF9BD)
+#define p_reg_top_dummy2 0xF9BD
+#define reg_top_dummy2_pos 0
+#define reg_top_dummy2_len 8
+#define reg_top_dummy2_lsb 0
+#define xd_p_reg_top_dummy3 (*(volatile byte xdata *) 0xF9BE)
+#define p_reg_top_dummy3 0xF9BE
+#define reg_top_dummy3_pos 0
+#define reg_top_dummy3_len 8
+#define reg_top_dummy3_lsb 0
+#define xd_p_reg_top_dummy4 (*(volatile byte xdata *) 0xF9BF)
+#define p_reg_top_dummy4 0xF9BF
+#define reg_top_dummy4_pos 0
+#define reg_top_dummy4_len 8
+#define reg_top_dummy4_lsb 0
+#define xd_p_reg_top_dummy5 (*(volatile byte xdata *) 0xF9C0)
+#define p_reg_top_dummy5 0xF9C0
+#define reg_top_dummy5_pos 0
+#define reg_top_dummy5_len 8
+#define reg_top_dummy5_lsb 0
+#define xd_p_reg_top_dummy6 (*(volatile byte xdata *) 0xF9C1)
+#define p_reg_top_dummy6 0xF9C1
+#define reg_top_dummy6_pos 0
+#define reg_top_dummy6_len 8
+#define reg_top_dummy6_lsb 0
+#define xd_p_reg_top_dummy7 (*(volatile byte xdata *) 0xF9C2)
+#define p_reg_top_dummy7 0xF9C2
+#define reg_top_dummy7_pos 0
+#define reg_top_dummy7_len 8
+#define reg_top_dummy7_lsb 0
+#define xd_p_reg_top_dummy8 (*(volatile byte xdata *) 0xF9C3)
+#define p_reg_top_dummy8 0xF9C3
+#define reg_top_dummy8_pos 0
+#define reg_top_dummy8_len 8
+#define reg_top_dummy8_lsb 0
+#define xd_p_reg_top_dummy9 (*(volatile byte xdata *) 0xF9C4)
+#define p_reg_top_dummy9 0xF9C4
+#define reg_top_dummy9_pos 0
+#define reg_top_dummy9_len 8
+#define reg_top_dummy9_lsb 0
+#define xd_p_reg_top_dummyA (*(volatile byte xdata *) 0xF9C5)
+#define p_reg_top_dummyA 0xF9C5
+#define reg_top_dummyA_pos 0
+#define reg_top_dummyA_len 8
+#define reg_top_dummyA_lsb 0
+#define xd_p_reg_top_dummyB (*(volatile byte xdata *) 0xF9C6)
+#define p_reg_top_dummyB 0xF9C6
+#define reg_top_dummyB_pos 0
+#define reg_top_dummyB_len 8
+#define reg_top_dummyB_lsb 0
+#define xd_p_reg_top_dummyC (*(volatile byte xdata *) 0xF9C7)
+#define p_reg_top_dummyC 0xF9C7
+#define reg_top_dummyC_pos 0
+#define reg_top_dummyC_len 8
+#define reg_top_dummyC_lsb 0
+#define xd_p_reg_top_dummyD (*(volatile byte xdata *) 0xF9C8)
+#define p_reg_top_dummyD 0xF9C8
+#define reg_top_dummyD_pos 0
+#define reg_top_dummyD_len 8
+#define reg_top_dummyD_lsb 0
+#define xd_p_reg_top_dummyE (*(volatile byte xdata *) 0xF9C9)
+#define p_reg_top_dummyE 0xF9C9
+#define reg_top_dummyE_pos 0
+#define reg_top_dummyE_len 8
+#define reg_top_dummyE_lsb 0
+#define xd_p_reg_top_dummyF (*(volatile byte xdata *) 0xF9CA)
+#define p_reg_top_dummyF 0xF9CA
+#define reg_top_dummyF_pos 0
+#define reg_top_dummyF_len 8
+#define reg_top_dummyF_lsb 0
+#define xd_p_reg_mp2if_clk_coeff (*(volatile byte xdata *) 0xF9CB)
+#define p_reg_mp2if_clk_coeff 0xF9CB
+#define reg_mp2if_clk_coeff_pos 0
+#define reg_mp2if_clk_coeff_len 7
+#define reg_mp2if_clk_coeff_lsb 0
+#define xd_p_reg_tsip_en (*(volatile byte xdata *) 0xF9CC)
+#define p_reg_tsip_en 0xF9CC
+#define reg_tsip_en_pos 0
+#define reg_tsip_en_len 1
+#define reg_tsip_en_lsb 0
+#define xd_p_reg_tsis_en (*(volatile byte xdata *) 0xF9CD)
+#define p_reg_tsis_en 0xF9CD
+#define reg_tsis_en_pos 0
+#define reg_tsis_en_len 1
+#define reg_tsis_en_lsb 0
+#define xd_p_reg_tsip_br (*(volatile byte xdata *) 0xF9CE)
+#define p_reg_tsip_br 0xF9CE
+#define reg_tsip_br_pos 0
+#define reg_tsip_br_len 1
+#define reg_tsip_br_lsb 0
+#define xd_p_reg_tsip_frm_inv (*(volatile byte xdata *) 0xF9D0)
+#define p_reg_tsip_frm_inv 0xF9D0
+#define reg_tsip_frm_inv_pos 0
+#define reg_tsip_frm_inv_len 1
+#define reg_tsip_frm_inv_lsb 0
+#define xd_p_reg_tsip_str_inv (*(volatile byte xdata *) 0xF9D1)
+#define p_reg_tsip_str_inv 0xF9D1
+#define reg_tsip_str_inv_pos 0
+#define reg_tsip_str_inv_len 1
+#define reg_tsip_str_inv_lsb 0
+#define xd_p_reg_tsip_fail_inv (*(volatile byte xdata *) 0xF9D2)
+#define p_reg_tsip_fail_inv 0xF9D2
+#define reg_tsip_fail_inv_pos 0
+#define reg_tsip_fail_inv_len 1
+#define reg_tsip_fail_inv_lsb 0
+#define xd_p_reg_tsip_frm_ignore (*(volatile byte xdata *) 0xF9D3)
+#define p_reg_tsip_frm_ignore 0xF9D3
+#define reg_tsip_frm_ignore_pos 0
+#define reg_tsip_frm_ignore_len 1
+#define reg_tsip_frm_ignore_lsb 0
+#define xd_p_reg_tsip_str_ignore (*(volatile byte xdata *) 0xF9D4)
+#define p_reg_tsip_str_ignore 0xF9D4
+#define reg_tsip_str_ignore_pos 0
+#define reg_tsip_str_ignore_len 1
+#define reg_tsip_str_ignore_lsb 0
+#define xd_p_reg_tsip_fail_ignore (*(volatile byte xdata *) 0xF9D5)
+#define p_reg_tsip_fail_ignore 0xF9D5
+#define reg_tsip_fail_ignore_pos 0
+#define reg_tsip_fail_ignore_len 1
+#define reg_tsip_fail_ignore_lsb 0
+#define xd_p_reg_tsip_endian (*(volatile byte xdata *) 0xF9D6)
+#define p_reg_tsip_endian 0xF9D6
+#define reg_tsip_endian_pos 0
+#define reg_tsip_endian_len 1
+#define reg_tsip_endian_lsb 0
+#define xd_p_reg_tsip_overflow (*(volatile byte xdata *) 0xF9D7)
+#define p_reg_tsip_overflow 0xF9D7
+#define reg_tsip_overflow_pos 0
+#define reg_tsip_overflow_len 1
+#define reg_tsip_overflow_lsb 0
+#define xd_p_reg_ts_in_src (*(volatile byte xdata *) 0xF9D8)
+#define p_reg_ts_in_src 0xF9D8
+#define reg_ts_in_src_pos 0
+#define reg_ts_in_src_len 1
+#define reg_ts_in_src_lsb 0
+#define xd_r_reg_clk_sel (*(volatile byte xdata *) 0xF9D9)
+#define r_reg_clk_sel 0xF9D9
+#define reg_clk_sel_pos 0
+#define reg_clk_sel_len 2
+#define reg_clk_sel_lsb 0
+#define xd_r_reg_tog_sel (*(volatile byte xdata *) 0xF9DA)
+#define r_reg_tog_sel 0xF9DA
+#define reg_tog_sel_pos 0
+#define reg_tog_sel_len 2
+#define reg_tog_sel_lsb 0
+#define xd_p_reg_ts_str_ignore (*(volatile byte xdata *) 0xF9DB)
+#define p_reg_ts_str_ignore 0xF9DB
+#define reg_ts_str_ignore_pos 0
+#define reg_ts_str_ignore_len 1
+#define reg_ts_str_ignore_lsb 0
+#define xd_p_reg_ts_frm_ignore (*(volatile byte xdata *) 0xF9DC)
+#define p_reg_ts_frm_ignore 0xF9DC
+#define reg_ts_frm_ignore_pos 0
+#define reg_ts_frm_ignore_len 1
+#define reg_ts_frm_ignore_lsb 0
+#define xd_p_reg_clk_sel_fix (*(volatile byte xdata *) 0xF9DD)
+#define p_reg_clk_sel_fix 0xF9DD
+#define reg_clk_sel_fix_pos 0
+#define reg_clk_sel_fix_len 2
+#define reg_clk_sel_fix_lsb 0
+#define xd_p_reg_tog_sel_fix (*(volatile byte xdata *) 0xF9DE)
+#define p_reg_tog_sel_fix 0xF9DE
+#define reg_tog_sel_fix_pos 0
+#define reg_tog_sel_fix_len 2
+#define reg_tog_sel_fix_lsb 0
+#define xd_p_reg_en_fix (*(volatile byte xdata *) 0xF9DF)
+#define p_reg_en_fix 0xF9DF
+#define reg_en_fix_pos 0
+#define reg_en_fix_len 1
+#define reg_en_fix_lsb 0
+#define xd_p_reg_check_tpsd_hier (*(volatile byte xdata *) 0xF9E0)
+#define p_reg_check_tpsd_hier 0xF9E0
+#define reg_check_tpsd_hier_pos 0
+#define reg_check_tpsd_hier_len 1
+#define reg_check_tpsd_hier_lsb 0
+#define xd_p_reg_p_i2s_master_mode (*(volatile byte xdata *) 0xF9E1)
+#define p_reg_p_i2s_master_mode 0xF9E1
+#define reg_p_i2s_master_mode_pos 0
+#define reg_p_i2s_master_mode_len 1
+#define reg_p_i2s_master_mode_lsb 0
+#define xd_p_reg_p_sc_lr_ratio (*(volatile byte xdata *) 0xF9E2)
+#define p_reg_p_sc_lr_ratio 0xF9E2
+#define reg_p_sc_lr_ratio_pos 0
+#define reg_p_sc_lr_ratio_len 2
+#define reg_p_sc_lr_ratio_lsb 0
+#define xd_p_reg_p_i2s_fs_type (*(volatile byte xdata *) 0xF9E2)
+#define p_reg_p_i2s_fs_type 0xF9E2
+#define reg_p_i2s_fs_type_pos 2
+#define reg_p_i2s_fs_type_len 2
+#define reg_p_i2s_fs_type_lsb 0
+#define xd_r_reg_r_pp_fullq (*(volatile byte xdata *) 0xF9E3)
+#define r_reg_r_pp_fullq 0xF9E3
+#define reg_r_pp_fullq_pos 0
+#define reg_r_pp_fullq_len 1
+#define reg_r_pp_fullq_lsb 0
+#define xd_p_reg_r_ccir_rst (*(volatile byte xdata *) 0xF9E3)
+#define p_reg_r_ccir_rst 0xF9E3
+#define reg_r_ccir_rst_pos 1
+#define reg_r_ccir_rst_len 1
+#define reg_r_ccir_rst_lsb 0
+#define xd_p_reg_p_full_en (*(volatile byte xdata *) 0xF9E3)
+#define p_reg_p_full_en 0xF9E3
+#define reg_p_full_en_pos 2
+#define reg_p_full_en_len 1
+#define reg_p_full_en_lsb 0
+#define xd_p_reg_p_vbi_dis (*(volatile byte xdata *) 0xF9E3)
+#define p_reg_p_vbi_dis 0xF9E3
+#define reg_p_vbi_dis_pos 3
+#define reg_p_vbi_dis_len 1
+#define reg_p_vbi_dis_lsb 0
+#define xd_p_reg_p_ccir_all (*(volatile byte xdata *) 0xF9E3)
+#define p_reg_p_ccir_all 0xF9E3
+#define reg_p_ccir_all_pos 4
+#define reg_p_ccir_all_len 1
+#define reg_p_ccir_all_lsb 0
+#define xd_p_reg_p_ccir_vbi_raw_en (*(volatile byte xdata *) 0xF9E3)
+#define p_reg_p_ccir_vbi_raw_en 0xF9E3
+#define reg_p_ccir_vbi_raw_en_pos 5
+#define reg_p_ccir_vbi_raw_en_len 1
+#define reg_p_ccir_vbi_raw_en_lsb 0
+#define xd_p_reg_err_byte_en (*(volatile byte xdata *) 0xF9E4)
+#define p_reg_err_byte_en 0xF9E4
+#define reg_err_byte_en_pos 0
+#define reg_err_byte_en_len 1
+#define reg_err_byte_en_lsb 0
+#define xd_p_reg_mp2_f_adc_7_0 (*(volatile byte xdata *) 0xF9E5)
+#define p_reg_mp2_f_adc_7_0 0xF9E5
+#define reg_mp2_f_adc_7_0_pos 0
+#define reg_mp2_f_adc_7_0_len 8
+#define reg_mp2_f_adc_7_0_lsb 0
+#define xd_p_reg_mp2_f_adc_15_8 (*(volatile byte xdata *) 0xF9E6)
+#define p_reg_mp2_f_adc_15_8 0xF9E6
+#define reg_mp2_f_adc_15_8_pos 0
+#define reg_mp2_f_adc_15_8_len 8
+#define reg_mp2_f_adc_15_8_lsb 8
+#define xd_p_reg_mp2_f_adc_23_16 (*(volatile byte xdata *) 0xF9E7)
+#define p_reg_mp2_f_adc_23_16 0xF9E7
+#define reg_mp2_f_adc_23_16_pos 0
+#define reg_mp2_f_adc_23_16_len 8
+#define reg_mp2_f_adc_23_16_lsb 16
+#define xd_p_reg_set_util (*(volatile byte xdata *) 0xF9E8)
+#define p_reg_set_util 0xF9E8
+#define reg_set_util_pos 0
+#define reg_set_util_len 8
+#define reg_set_util_lsb 0
+#define xd_r_reg_err_byte (*(volatile byte xdata *) 0xF9E9)
+#define r_reg_err_byte 0xF9E9
+#define reg_err_byte_pos 0
+#define reg_err_byte_len 8
+#define reg_err_byte_lsb 0
+#define xd_p_reg_p_ln_num1 (*(volatile byte xdata *) 0xF9EA)
+#define p_reg_p_ln_num1 0xF9EA
+#define reg_p_ln_num1_pos 0
+#define reg_p_ln_num1_len 5
+#define reg_p_ln_num1_lsb 0
+#define xd_p_reg_p_ln_num2_2_0 (*(volatile byte xdata *) 0xF9EA)
+#define p_reg_p_ln_num2_2_0 0xF9EA
+#define reg_p_ln_num2_2_0_pos 5
+#define reg_p_ln_num2_2_0_len 3
+#define reg_p_ln_num2_2_0_lsb 0
+#define xd_p_reg_p_ln_num2_4_3 (*(volatile byte xdata *) 0xF9EB)
+#define p_reg_p_ln_num2_4_3 0xF9EB
+#define reg_p_ln_num2_4_3_pos 0
+#define reg_p_ln_num2_4_3_len 2
+#define reg_p_ln_num2_4_3_lsb 3
+#define xd_p_reg_p_ln_num3_5_0 (*(volatile byte xdata *) 0xF9EB)
+#define p_reg_p_ln_num3_5_0 0xF9EB
+#define reg_p_ln_num3_5_0_pos 2
+#define reg_p_ln_num3_5_0_len 6
+#define reg_p_ln_num3_5_0_lsb 0
+#define xd_p_reg_p_ln_num3_8_6 (*(volatile byte xdata *) 0xF9EC)
+#define p_reg_p_ln_num3_8_6 0xF9EC
+#define reg_p_ln_num3_8_6_pos 0
+#define reg_p_ln_num3_8_6_len 3
+#define reg_p_ln_num3_8_6_lsb 6
+#define xd_p_reg_p_ln_num4_4_0 (*(volatile byte xdata *) 0xF9EC)
+#define p_reg_p_ln_num4_4_0 0xF9EC
+#define reg_p_ln_num4_4_0_pos 3
+#define reg_p_ln_num4_4_0_len 5
+#define reg_p_ln_num4_4_0_lsb 0
+#define xd_p_reg_p_ln_num4_8_5 (*(volatile byte xdata *) 0xF9ED)
+#define p_reg_p_ln_num4_8_5 0xF9ED
+#define reg_p_ln_num4_8_5_pos 0
+#define reg_p_ln_num4_8_5_len 4
+#define reg_p_ln_num4_8_5_lsb 5
+#define xd_p_reg_p_ln_num5_3_0 (*(volatile byte xdata *) 0xF9ED)
+#define p_reg_p_ln_num5_3_0 0xF9ED
+#define reg_p_ln_num5_3_0_pos 4
+#define reg_p_ln_num5_3_0_len 4
+#define reg_p_ln_num5_3_0_lsb 0
+#define xd_p_reg_p_ln_num5_8_4 (*(volatile byte xdata *) 0xF9EE)
+#define p_reg_p_ln_num5_8_4 0xF9EE
+#define reg_p_ln_num5_8_4_pos 0
+#define reg_p_ln_num5_8_4_len 5
+#define reg_p_ln_num5_8_4_lsb 4
+#define xd_p_reg_p_ln_num6_2_0 (*(volatile byte xdata *) 0xF9EE)
+#define p_reg_p_ln_num6_2_0 0xF9EE
+#define reg_p_ln_num6_2_0_pos 5
+#define reg_p_ln_num6_2_0_len 3
+#define reg_p_ln_num6_2_0_lsb 0
+#define xd_p_reg_p_ln_num6_8_3 (*(volatile byte xdata *) 0xF9EF)
+#define p_reg_p_ln_num6_8_3 0xF9EF
+#define reg_p_ln_num6_8_3_pos 0
+#define reg_p_ln_num6_8_3_len 6
+#define reg_p_ln_num6_8_3_lsb 3
+#define xd_p_reg_p_pixel_num_7_0 (*(volatile byte xdata *) 0xF9F0)
+#define p_reg_p_pixel_num_7_0 0xF9F0
+#define reg_p_pixel_num_7_0_pos 0
+#define reg_p_pixel_num_7_0_len 8
+#define reg_p_pixel_num_7_0_lsb 0
+#define xd_p_reg_p_pixel_num_10_8 (*(volatile byte xdata *) 0xF9F1)
+#define p_reg_p_pixel_num_10_8 0xF9F1
+#define reg_p_pixel_num_10_8_pos 0
+#define reg_p_pixel_num_10_8_len 3
+#define reg_p_pixel_num_10_8_lsb 8
+#define xd_p_reg_p_ccir_yuv_en (*(volatile byte xdata *) 0xF9F1)
+#define p_reg_p_ccir_yuv_en 0xF9F1
+#define reg_p_ccir_yuv_en_pos 3
+#define reg_p_ccir_yuv_en_len 1
+#define reg_p_ccir_yuv_en_lsb 0
+#define xd_p_reg_p_ccir_size_sft (*(volatile byte xdata *) 0xF9F1)
+#define p_reg_p_ccir_size_sft 0xF9F1
+#define reg_p_ccir_size_sft_pos 4
+#define reg_p_ccir_size_sft_len 2
+#define reg_p_ccir_size_sft_lsb 0
+#define xd_p_reg_p_psb_cnt_sft (*(volatile byte xdata *) 0xF9F1)
+#define p_reg_p_psb_cnt_sft 0xF9F1
+#define reg_p_psb_cnt_sft_pos 6
+#define reg_p_psb_cnt_sft_len 2
+#define reg_p_psb_cnt_sft_lsb 0
+#define xd_p_reg_p_tpsd_lock_trigger (*(volatile byte xdata *) 0xF9F2)
+#define p_reg_p_tpsd_lock_trigger 0xF9F2
+#define reg_p_tpsd_lock_trigger_pos 0
+#define reg_p_tpsd_lock_trigger_len 1
+#define reg_p_tpsd_lock_trigger_lsb 0
+#define xd_p_reg_p_ccir_clk_sel (*(volatile byte xdata *) 0xF9F3)
+#define p_reg_p_ccir_clk_sel 0xF9F3
+#define reg_p_ccir_clk_sel_pos 0
+#define reg_p_ccir_clk_sel_len 1
+#define reg_p_ccir_clk_sel_lsb 0
+#define xd_p_reg_i2c_16_8_data_sel (*(volatile byte xdata *) 0xFB00)
+#define p_reg_i2c_16_8_data_sel 0xFB00
+#define reg_i2c_16_8_data_sel_pos 0
+#define reg_i2c_16_8_data_sel_len 1
+#define reg_i2c_16_8_data_sel_lsb 0
+#define xd_p_reg_i2c_slave_trigger_byte (*(volatile byte xdata *) 0xFB01)
+#define p_reg_i2c_slave_trigger_byte 0xFB01
+#define reg_i2c_slave_trigger_byte_pos 0
+#define reg_i2c_slave_trigger_byte_len 1
+#define reg_i2c_slave_trigger_byte_lsb 0
+#define xd_p_reg_wdti_level (*(volatile byte xdata *) 0xFB05)
+#define p_reg_wdti_level 0xFB05
+#define reg_wdti_level_pos 0
+#define reg_wdti_level_len 1
+#define reg_wdti_level_lsb 0
+#define xd_p_reg_rssi_avg_sel_lat (*(volatile byte xdata *) 0xFB06)
+#define p_reg_rssi_avg_sel_lat 0xFB06
+#define reg_rssi_avg_sel_lat_pos 0
+#define reg_rssi_avg_sel_lat_len 2
+#define reg_rssi_avg_sel_lat_lsb 0
+#define xd_r_ofsm_rssi_avg_7_0 (*(volatile byte xdata *) 0xFB07)
+#define r_ofsm_rssi_avg_7_0 0xFB07
+#define ofsm_rssi_avg_7_0_pos 0
+#define ofsm_rssi_avg_7_0_len 8
+#define ofsm_rssi_avg_7_0_lsb 0
+#define xd_r_ofsm_rssi_avg_9_8 (*(volatile byte xdata *) 0xFB08)
+#define r_ofsm_rssi_avg_9_8 0xFB08
+#define ofsm_rssi_avg_9_8_pos 0
+#define ofsm_rssi_avg_9_8_len 2
+#define ofsm_rssi_avg_9_8_lsb 8
+#define xd_r_ofsm_mbist_fail_mon51 (*(volatile byte xdata *) 0xFB09)
+#define r_ofsm_mbist_fail_mon51 0xFB09
+#define ofsm_mbist_fail_mon51_pos 0
+#define ofsm_mbist_fail_mon51_len 1
+#define ofsm_mbist_fail_mon51_lsb 0
+#define xd_r_ofsm_mbist_fail_com (*(volatile byte xdata *) 0xFB0A)
+#define r_ofsm_mbist_fail_com 0xFB0A
+#define ofsm_mbist_fail_com_pos 0
+#define ofsm_mbist_fail_com_len 1
+#define ofsm_mbist_fail_com_lsb 0
+#define xd_r_ofsm_mbist_fail_fft (*(volatile byte xdata *) 0xFB0B)
+#define r_ofsm_mbist_fail_fft 0xFB0B
+#define ofsm_mbist_fail_fft_pos 0
+#define ofsm_mbist_fail_fft_len 1
+#define ofsm_mbist_fail_fft_lsb 0
+#define xd_r_ofsm_mbist_fail_fd (*(volatile byte xdata *) 0xFB0C)
+#define r_ofsm_mbist_fail_fd 0xFB0C
+#define ofsm_mbist_fail_fd_pos 0
+#define ofsm_mbist_fail_fd_len 1
+#define ofsm_mbist_fail_fd_lsb 0
+#define xd_r_ofsm_mbist_fail_link (*(volatile byte xdata *) 0xFB0D)
+#define r_ofsm_mbist_fail_link 0xFB0D
+#define ofsm_mbist_fail_link_pos 0
+#define ofsm_mbist_fail_link_len 1
+#define ofsm_mbist_fail_link_lsb 0
+#define xd_r_ofsm_mbist_fail_mpe (*(volatile byte xdata *) 0xFB0E)
+#define r_ofsm_mbist_fail_mpe 0xFB0E
+#define ofsm_mbist_fail_mpe_pos 0
+#define ofsm_mbist_fail_mpe_len 1
+#define ofsm_mbist_fail_mpe_lsb 0
+#define xd_r_ofsm_mbist_done_mpe (*(volatile byte xdata *) 0xFB0F)
+#define r_ofsm_mbist_done_mpe 0xFB0F
+#define ofsm_mbist_done_mpe_pos 0
+#define ofsm_mbist_done_mpe_len 1
+#define ofsm_mbist_done_mpe_lsb 0
+#define xd_r_ofsm_mbist_mode_mpe (*(volatile byte xdata *) 0xFB10)
+#define r_ofsm_mbist_mode_mpe 0xFB10
+#define ofsm_mbist_mode_mpe_pos 0
+#define ofsm_mbist_mode_mpe_len 1
+#define ofsm_mbist_mode_mpe_lsb 0
+#define xd_p_ofsm_cmd_reg (*(volatile byte xdata *) 0xFB11)
+#define p_ofsm_cmd_reg 0xFB11
+#define ofsm_cmd_reg_pos 0
+#define ofsm_cmd_reg_len 8
+#define ofsm_cmd_reg_lsb 0
+#define xd_p_ofsm_addr_reg_h (*(volatile byte xdata *) 0xFB12)
+#define p_ofsm_addr_reg_h 0xFB12
+#define ofsm_addr_reg_h_pos 0
+#define ofsm_addr_reg_h_len 8
+#define ofsm_addr_reg_h_lsb 0
+#define xd_p_ofsm_addr_reg_l (*(volatile byte xdata *) 0xFB13)
+#define p_ofsm_addr_reg_l 0xFB13
+#define ofsm_addr_reg_l_pos 0
+#define ofsm_addr_reg_l_len 8
+#define ofsm_addr_reg_l_lsb 0
+#define xd_p_ofsm_data_reg_0 (*(volatile byte xdata *) 0xFB14)
+#define p_ofsm_data_reg_0 0xFB14
+#define ofsm_data_reg_0_pos 0
+#define ofsm_data_reg_0_len 8
+#define ofsm_data_reg_0_lsb 0
+#define xd_p_ofsm_data_reg_1 (*(volatile byte xdata *) 0xFB15)
+#define p_ofsm_data_reg_1 0xFB15
+#define ofsm_data_reg_1_pos 0
+#define ofsm_data_reg_1_len 8
+#define ofsm_data_reg_1_lsb 0
+#define xd_p_ofsm_data_reg_2 (*(volatile byte xdata *) 0xFB16)
+#define p_ofsm_data_reg_2 0xFB16
+#define ofsm_data_reg_2_pos 0
+#define ofsm_data_reg_2_len 8
+#define ofsm_data_reg_2_lsb 0
+#define xd_p_ofsm_data_reg_3 (*(volatile byte xdata *) 0xFB17)
+#define p_ofsm_data_reg_3 0xFB17
+#define ofsm_data_reg_3_pos 0
+#define ofsm_data_reg_3_len 8
+#define ofsm_data_reg_3_lsb 0
+#define xd_p_ofsm_data_reg_4 (*(volatile byte xdata *) 0xFB18)
+#define p_ofsm_data_reg_4 0xFB18
+#define ofsm_data_reg_4_pos 0
+#define ofsm_data_reg_4_len 8
+#define ofsm_data_reg_4_lsb 0
+#define xd_p_ofsm_data_reg_5 (*(volatile byte xdata *) 0xFB19)
+#define p_ofsm_data_reg_5 0xFB19
+#define ofsm_data_reg_5_pos 0
+#define ofsm_data_reg_5_len 8
+#define ofsm_data_reg_5_lsb 0
+#define xd_p_ofsm_data_reg_6 (*(volatile byte xdata *) 0xFB1A)
+#define p_ofsm_data_reg_6 0xFB1A
+#define ofsm_data_reg_6_pos 0
+#define ofsm_data_reg_6_len 8
+#define ofsm_data_reg_6_lsb 0
+#define xd_p_ofsm_data_reg_7 (*(volatile byte xdata *) 0xFB1B)
+#define p_ofsm_data_reg_7 0xFB1B
+#define ofsm_data_reg_7_pos 0
+#define ofsm_data_reg_7_len 8
+#define ofsm_data_reg_7_lsb 0
+#define xd_p_ofsm_data_reg_8 (*(volatile byte xdata *) 0xFB1C)
+#define p_ofsm_data_reg_8 0xFB1C
+#define ofsm_data_reg_8_pos 0
+#define ofsm_data_reg_8_len 8
+#define ofsm_data_reg_8_lsb 0
+#define xd_p_ofsm_data_reg_9 (*(volatile byte xdata *) 0xFB1D)
+#define p_ofsm_data_reg_9 0xFB1D
+#define ofsm_data_reg_9_pos 0
+#define ofsm_data_reg_9_len 8
+#define ofsm_data_reg_9_lsb 0
+#define xd_p_ofsm_data_reg_10 (*(volatile byte xdata *) 0xFB1E)
+#define p_ofsm_data_reg_10 0xFB1E
+#define ofsm_data_reg_10_pos 0
+#define ofsm_data_reg_10_len 8
+#define ofsm_data_reg_10_lsb 0
+#define xd_p_ofsm_data_reg_11 (*(volatile byte xdata *) 0xFB1F)
+#define p_ofsm_data_reg_11 0xFB1F
+#define ofsm_data_reg_11_pos 0
+#define ofsm_data_reg_11_len 8
+#define ofsm_data_reg_11_lsb 0
+#define xd_p_ofsm_data_reg_12 (*(volatile byte xdata *) 0xFB20)
+#define p_ofsm_data_reg_12 0xFB20
+#define ofsm_data_reg_12_pos 0
+#define ofsm_data_reg_12_len 8
+#define ofsm_data_reg_12_lsb 0
+#define xd_p_ofsm_data_reg_13 (*(volatile byte xdata *) 0xFB21)
+#define p_ofsm_data_reg_13 0xFB21
+#define ofsm_data_reg_13_pos 0
+#define ofsm_data_reg_13_len 8
+#define ofsm_data_reg_13_lsb 0
+#define xd_p_ofsm_data_reg_14 (*(volatile byte xdata *) 0xFB22)
+#define p_ofsm_data_reg_14 0xFB22
+#define ofsm_data_reg_14_pos 0
+#define ofsm_data_reg_14_len 8
+#define ofsm_data_reg_14_lsb 0
+#define xd_p_ofsm_data_reg_15 (*(volatile byte xdata *) 0xFB23)
+#define p_ofsm_data_reg_15 0xFB23
+#define ofsm_data_reg_15_pos 0
+#define ofsm_data_reg_15_len 8
+#define ofsm_data_reg_15_lsb 0
+#define xd_p_reg_afe_mem0 (*(volatile byte xdata *) 0xFB24)
+#define p_reg_afe_mem0 0xFB24
+#define reg_afe_mem0_pos 0
+#define reg_afe_mem0_len 8
+#define reg_afe_mem0_lsb 0
+#define xd_p_reg_afe_mem1 (*(volatile byte xdata *) 0xFB25)
+#define p_reg_afe_mem1 0xFB25
+#define reg_afe_mem1_pos 0
+#define reg_afe_mem1_len 8
+#define reg_afe_mem1_lsb 0
+#define xd_p_reg_afe_mem2 (*(volatile byte xdata *) 0xFB26)
+#define p_reg_afe_mem2 0xFB26
+#define reg_afe_mem2_pos 0
+#define reg_afe_mem2_len 8
+#define reg_afe_mem2_lsb 0
+#define xd_p_reg_afe_mem3 (*(volatile byte xdata *) 0xFB27)
+#define p_reg_afe_mem3 0xFB27
+#define reg_afe_mem3_pos 0
+#define reg_afe_mem3_len 8
+#define reg_afe_mem3_lsb 0
+#define xd_p_reg_afe_mem4 (*(volatile byte xdata *) 0xFB28)
+#define p_reg_afe_mem4 0xFB28
+#define reg_afe_mem4_pos 0
+#define reg_afe_mem4_len 8
+#define reg_afe_mem4_lsb 0
+#define xd_p_reg_afe_mem5 (*(volatile byte xdata *) 0xFB29)
+#define p_reg_afe_mem5 0xFB29
+#define reg_afe_mem5_pos 0
+#define reg_afe_mem5_len 8
+#define reg_afe_mem5_lsb 0
+#define xd_p_reg_afe_mem6 (*(volatile byte xdata *) 0xFB2A)
+#define p_reg_afe_mem6 0xFB2A
+#define reg_afe_mem6_pos 0
+#define reg_afe_mem6_len 8
+#define reg_afe_mem6_lsb 0
+#define xd_p_reg_afe_mem7 (*(volatile byte xdata *) 0xFB2B)
+#define p_reg_afe_mem7 0xFB2B
+#define reg_afe_mem7_pos 0
+#define reg_afe_mem7_len 8
+#define reg_afe_mem7_lsb 0
+#define xd_p_reg_i2cbootreq (*(volatile byte xdata *) 0xFB2C)
+#define p_reg_i2cbootreq 0xFB2C
+#define reg_i2cbootreq_pos 0
+#define reg_i2cbootreq_len 1
+#define reg_i2cbootreq_lsb 0
+#define xd_p_reg_rst_i2cm (*(volatile byte xdata *) 0xFB30)
+#define p_reg_rst_i2cm 0xFB30
+#define reg_rst_i2cm_pos 0
+#define reg_rst_i2cm_len 1
+#define reg_rst_i2cm_lsb 0
+#define xd_p_reg_rst_i2cs (*(volatile byte xdata *) 0xFB31)
+#define p_reg_rst_i2cs 0xFB31
+#define reg_rst_i2cs_pos 0
+#define reg_rst_i2cs_len 1
+#define reg_rst_i2cs_lsb 0
+#define xd_r_reg_top_gpioscli (*(volatile byte xdata *) 0xFB32)
+#define r_reg_top_gpioscli 0xFB32
+#define reg_top_gpioscli_pos 0
+#define reg_top_gpioscli_len 1
+#define reg_top_gpioscli_lsb 0
+#define xd_p_reg_top_gpiosclo (*(volatile byte xdata *) 0xFB33)
+#define p_reg_top_gpiosclo 0xFB33
+#define reg_top_gpiosclo_pos 0
+#define reg_top_gpiosclo_len 1
+#define reg_top_gpiosclo_lsb 0
+#define xd_p_reg_top_gpiosclen (*(volatile byte xdata *) 0xFB34)
+#define p_reg_top_gpiosclen 0xFB34
+#define reg_top_gpiosclen_pos 0
+#define reg_top_gpiosclen_len 1
+#define reg_top_gpiosclen_lsb 0
+#define xd_p_reg_top_gpiosclon (*(volatile byte xdata *) 0xFB35)
+#define p_reg_top_gpiosclon 0xFB35
+#define reg_top_gpiosclon_pos 0
+#define reg_top_gpiosclon_len 1
+#define reg_top_gpiosclon_lsb 0
+#define xd_r_reg_top_gpiosdai (*(volatile byte xdata *) 0xFB36)
+#define r_reg_top_gpiosdai 0xFB36
+#define reg_top_gpiosdai_pos 0
+#define reg_top_gpiosdai_len 1
+#define reg_top_gpiosdai_lsb 0
+#define xd_p_reg_top_gpiosdao (*(volatile byte xdata *) 0xFB37)
+#define p_reg_top_gpiosdao 0xFB37
+#define reg_top_gpiosdao_pos 0
+#define reg_top_gpiosdao_len 1
+#define reg_top_gpiosdao_lsb 0
+#define xd_p_reg_top_gpiosdaen (*(volatile byte xdata *) 0xFB38)
+#define p_reg_top_gpiosdaen 0xFB38
+#define reg_top_gpiosdaen_pos 0
+#define reg_top_gpiosdaen_len 1
+#define reg_top_gpiosdaen_lsb 0
+#define xd_p_reg_top_gpiosdaon (*(volatile byte xdata *) 0xFB39)
+#define p_reg_top_gpiosdaon 0xFB39
+#define reg_top_gpiosdaon_pos 0
+#define reg_top_gpiosdaon_len 1
+#define reg_top_gpiosdaon_lsb 0
+#define xd_p_reg_fix_rom_en (*(volatile byte xdata *) 0xFB3A)
+#define p_reg_fix_rom_en 0xFB3A
+#define reg_fix_rom_en_pos 0
+#define reg_fix_rom_en_len 1
+#define reg_fix_rom_en_lsb 0
+#define xd_p_reg_ofsm_bug_addh_0 (*(volatile byte xdata *) 0xFB3B)
+#define p_reg_ofsm_bug_addh_0 0xFB3B
+#define reg_ofsm_bug_addh_0_pos 0
+#define reg_ofsm_bug_addh_0_len 8
+#define reg_ofsm_bug_addh_0_lsb 0
+#define xd_p_reg_ofsm_bug_addl_0 (*(volatile byte xdata *) 0xFB3C)
+#define p_reg_ofsm_bug_addl_0 0xFB3C
+#define reg_ofsm_bug_addl_0_pos 0
+#define reg_ofsm_bug_addl_0_len 8
+#define reg_ofsm_bug_addl_0_lsb 0
+#define xd_p_reg_ofsm_bug_addh_1 (*(volatile byte xdata *) 0xFB3D)
+#define p_reg_ofsm_bug_addh_1 0xFB3D
+#define reg_ofsm_bug_addh_1_pos 0
+#define reg_ofsm_bug_addh_1_len 8
+#define reg_ofsm_bug_addh_1_lsb 0
+#define xd_p_reg_ofsm_bug_addl_1 (*(volatile byte xdata *) 0xFB3E)
+#define p_reg_ofsm_bug_addl_1 0xFB3E
+#define reg_ofsm_bug_addl_1_pos 0
+#define reg_ofsm_bug_addl_1_len 8
+#define reg_ofsm_bug_addl_1_lsb 0
+#define xd_p_reg_ofsm_bug_addh_2 (*(volatile byte xdata *) 0xFB3F)
+#define p_reg_ofsm_bug_addh_2 0xFB3F
+#define reg_ofsm_bug_addh_2_pos 0
+#define reg_ofsm_bug_addh_2_len 8
+#define reg_ofsm_bug_addh_2_lsb 0
+#define xd_p_reg_ofsm_bug_addl_2 (*(volatile byte xdata *) 0xFB40)
+#define p_reg_ofsm_bug_addl_2 0xFB40
+#define reg_ofsm_bug_addl_2_pos 0
+#define reg_ofsm_bug_addl_2_len 8
+#define reg_ofsm_bug_addl_2_lsb 0
+#define xd_p_reg_ofsm_bug_addh_3 (*(volatile byte xdata *) 0xFB41)
+#define p_reg_ofsm_bug_addh_3 0xFB41
+#define reg_ofsm_bug_addh_3_pos 0
+#define reg_ofsm_bug_addh_3_len 8
+#define reg_ofsm_bug_addh_3_lsb 0
+#define xd_p_reg_ofsm_bug_addl_3 (*(volatile byte xdata *) 0xFB42)
+#define p_reg_ofsm_bug_addl_3 0xFB42
+#define reg_ofsm_bug_addl_3_pos 0
+#define reg_ofsm_bug_addl_3_len 8
+#define reg_ofsm_bug_addl_3_lsb 0
+#define xd_p_reg_ofsm_bug_addh_4 (*(volatile byte xdata *) 0xFB43)
+#define p_reg_ofsm_bug_addh_4 0xFB43
+#define reg_ofsm_bug_addh_4_pos 0
+#define reg_ofsm_bug_addh_4_len 8
+#define reg_ofsm_bug_addh_4_lsb 0
+#define xd_p_reg_ofsm_bug_addl_4 (*(volatile byte xdata *) 0xFB44)
+#define p_reg_ofsm_bug_addl_4 0xFB44
+#define reg_ofsm_bug_addl_4_pos 0
+#define reg_ofsm_bug_addl_4_len 8
+#define reg_ofsm_bug_addl_4_lsb 0
+#define xd_p_reg_ofsm_bug_addh_5 (*(volatile byte xdata *) 0xFB45)
+#define p_reg_ofsm_bug_addh_5 0xFB45
+#define reg_ofsm_bug_addh_5_pos 0
+#define reg_ofsm_bug_addh_5_len 8
+#define reg_ofsm_bug_addh_5_lsb 0
+#define xd_p_reg_ofsm_bug_addl_5 (*(volatile byte xdata *) 0xFB46)
+#define p_reg_ofsm_bug_addl_5 0xFB46
+#define reg_ofsm_bug_addl_5_pos 0
+#define reg_ofsm_bug_addl_5_len 8
+#define reg_ofsm_bug_addl_5_lsb 0
+#define xd_p_reg_ofsm_bug_addh_6 (*(volatile byte xdata *) 0xFB47)
+#define p_reg_ofsm_bug_addh_6 0xFB47
+#define reg_ofsm_bug_addh_6_pos 0
+#define reg_ofsm_bug_addh_6_len 8
+#define reg_ofsm_bug_addh_6_lsb 0
+#define xd_p_reg_ofsm_bug_addl_6 (*(volatile byte xdata *) 0xFB48)
+#define p_reg_ofsm_bug_addl_6 0xFB48
+#define reg_ofsm_bug_addl_6_pos 0
+#define reg_ofsm_bug_addl_6_len 8
+#define reg_ofsm_bug_addl_6_lsb 0
+#define xd_p_reg_ofsm_bug_addh_7 (*(volatile byte xdata *) 0xFB49)
+#define p_reg_ofsm_bug_addh_7 0xFB49
+#define reg_ofsm_bug_addh_7_pos 0
+#define reg_ofsm_bug_addh_7_len 8
+#define reg_ofsm_bug_addh_7_lsb 0
+#define xd_p_reg_ofsm_bug_addl_7 (*(volatile byte xdata *) 0xFB4A)
+#define p_reg_ofsm_bug_addl_7 0xFB4A
+#define reg_ofsm_bug_addl_7_pos 0
+#define reg_ofsm_bug_addl_7_len 8
+#define reg_ofsm_bug_addl_7_lsb 0
+#define xd_p_reg_ofsm_bug_addh_8 (*(volatile byte xdata *) 0xFB4B)
+#define p_reg_ofsm_bug_addh_8 0xFB4B
+#define reg_ofsm_bug_addh_8_pos 0
+#define reg_ofsm_bug_addh_8_len 8
+#define reg_ofsm_bug_addh_8_lsb 0
+#define xd_p_reg_ofsm_bug_addl_8 (*(volatile byte xdata *) 0xFB4C)
+#define p_reg_ofsm_bug_addl_8 0xFB4C
+#define reg_ofsm_bug_addl_8_pos 0
+#define reg_ofsm_bug_addl_8_len 8
+#define reg_ofsm_bug_addl_8_lsb 0
+#define xd_p_reg_ofsm_bug_addh_9 (*(volatile byte xdata *) 0xFB4D)
+#define p_reg_ofsm_bug_addh_9 0xFB4D
+#define reg_ofsm_bug_addh_9_pos 0
+#define reg_ofsm_bug_addh_9_len 8
+#define reg_ofsm_bug_addh_9_lsb 0
+#define xd_p_reg_ofsm_bug_addl_9 (*(volatile byte xdata *) 0xFB4E)
+#define p_reg_ofsm_bug_addl_9 0xFB4E
+#define reg_ofsm_bug_addl_9_pos 0
+#define reg_ofsm_bug_addl_9_len 8
+#define reg_ofsm_bug_addl_9_lsb 0
+#define xd_p_reg_ofsm_bug_addh_10 (*(volatile byte xdata *) 0xFB4F)
+#define p_reg_ofsm_bug_addh_10 0xFB4F
+#define reg_ofsm_bug_addh_10_pos 0
+#define reg_ofsm_bug_addh_10_len 8
+#define reg_ofsm_bug_addh_10_lsb 0
+#define xd_p_reg_ofsm_bug_addl_10 (*(volatile byte xdata *) 0xFB50)
+#define p_reg_ofsm_bug_addl_10 0xFB50
+#define reg_ofsm_bug_addl_10_pos 0
+#define reg_ofsm_bug_addl_10_len 8
+#define reg_ofsm_bug_addl_10_lsb 0
+#define xd_p_reg_ofsm_bug_addh_11 (*(volatile byte xdata *) 0xFB51)
+#define p_reg_ofsm_bug_addh_11 0xFB51
+#define reg_ofsm_bug_addh_11_pos 0
+#define reg_ofsm_bug_addh_11_len 8
+#define reg_ofsm_bug_addh_11_lsb 0
+#define xd_p_reg_ofsm_bug_addl_11 (*(volatile byte xdata *) 0xFB52)
+#define p_reg_ofsm_bug_addl_11 0xFB52
+#define reg_ofsm_bug_addl_11_pos 0
+#define reg_ofsm_bug_addl_11_len 8
+#define reg_ofsm_bug_addl_11_lsb 0
+#define xd_p_reg_ofsm_bug_addh_12 (*(volatile byte xdata *) 0xFB53)
+#define p_reg_ofsm_bug_addh_12 0xFB53
+#define reg_ofsm_bug_addh_12_pos 0
+#define reg_ofsm_bug_addh_12_len 8
+#define reg_ofsm_bug_addh_12_lsb 0
+#define xd_p_reg_ofsm_bug_addl_12 (*(volatile byte xdata *) 0xFB54)
+#define p_reg_ofsm_bug_addl_12 0xFB54
+#define reg_ofsm_bug_addl_12_pos 0
+#define reg_ofsm_bug_addl_12_len 8
+#define reg_ofsm_bug_addl_12_lsb 0
+#define xd_p_reg_ofsm_bug_addh_13 (*(volatile byte xdata *) 0xFB55)
+#define p_reg_ofsm_bug_addh_13 0xFB55
+#define reg_ofsm_bug_addh_13_pos 0
+#define reg_ofsm_bug_addh_13_len 8
+#define reg_ofsm_bug_addh_13_lsb 0
+#define xd_p_reg_ofsm_bug_addl_13 (*(volatile byte xdata *) 0xFB56)
+#define p_reg_ofsm_bug_addl_13 0xFB56
+#define reg_ofsm_bug_addl_13_pos 0
+#define reg_ofsm_bug_addl_13_len 8
+#define reg_ofsm_bug_addl_13_lsb 0
+#define xd_p_reg_ofsm_bug_addh_14 (*(volatile byte xdata *) 0xFB57)
+#define p_reg_ofsm_bug_addh_14 0xFB57
+#define reg_ofsm_bug_addh_14_pos 0
+#define reg_ofsm_bug_addh_14_len 8
+#define reg_ofsm_bug_addh_14_lsb 0
+#define xd_p_reg_ofsm_bug_addl_14 (*(volatile byte xdata *) 0xFB58)
+#define p_reg_ofsm_bug_addl_14 0xFB58
+#define reg_ofsm_bug_addl_14_pos 0
+#define reg_ofsm_bug_addl_14_len 8
+#define reg_ofsm_bug_addl_14_lsb 0
+#define xd_p_reg_ofsm_bug_addh_15 (*(volatile byte xdata *) 0xFB59)
+#define p_reg_ofsm_bug_addh_15 0xFB59
+#define reg_ofsm_bug_addh_15_pos 0
+#define reg_ofsm_bug_addh_15_len 8
+#define reg_ofsm_bug_addh_15_lsb 0
+#define xd_p_reg_ofsm_bug_addl_15 (*(volatile byte xdata *) 0xFB5A)
+#define p_reg_ofsm_bug_addl_15 0xFB5A
+#define reg_ofsm_bug_addl_15_pos 0
+#define reg_ofsm_bug_addl_15_len 8
+#define reg_ofsm_bug_addl_15_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_0 (*(volatile byte xdata *) 0xFB5B)
+#define p_reg_ofsm_jmp_addh_0 0xFB5B
+#define reg_ofsm_jmp_addh_0_pos 0
+#define reg_ofsm_jmp_addh_0_len 8
+#define reg_ofsm_jmp_addh_0_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_0 (*(volatile byte xdata *) 0xFB5C)
+#define p_reg_ofsm_jmp_addl_0 0xFB5C
+#define reg_ofsm_jmp_addl_0_pos 0
+#define reg_ofsm_jmp_addl_0_len 8
+#define reg_ofsm_jmp_addl_0_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_1 (*(volatile byte xdata *) 0xFB5D)
+#define p_reg_ofsm_jmp_addh_1 0xFB5D
+#define reg_ofsm_jmp_addh_1_pos 0
+#define reg_ofsm_jmp_addh_1_len 8
+#define reg_ofsm_jmp_addh_1_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_1 (*(volatile byte xdata *) 0xFB5E)
+#define p_reg_ofsm_jmp_addl_1 0xFB5E
+#define reg_ofsm_jmp_addl_1_pos 0
+#define reg_ofsm_jmp_addl_1_len 8
+#define reg_ofsm_jmp_addl_1_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_2 (*(volatile byte xdata *) 0xFB5F)
+#define p_reg_ofsm_jmp_addh_2 0xFB5F
+#define reg_ofsm_jmp_addh_2_pos 0
+#define reg_ofsm_jmp_addh_2_len 8
+#define reg_ofsm_jmp_addh_2_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_2 (*(volatile byte xdata *) 0xFB60)
+#define p_reg_ofsm_jmp_addl_2 0xFB60
+#define reg_ofsm_jmp_addl_2_pos 0
+#define reg_ofsm_jmp_addl_2_len 8
+#define reg_ofsm_jmp_addl_2_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_3 (*(volatile byte xdata *) 0xFB61)
+#define p_reg_ofsm_jmp_addh_3 0xFB61
+#define reg_ofsm_jmp_addh_3_pos 0
+#define reg_ofsm_jmp_addh_3_len 8
+#define reg_ofsm_jmp_addh_3_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_3 (*(volatile byte xdata *) 0xFB62)
+#define p_reg_ofsm_jmp_addl_3 0xFB62
+#define reg_ofsm_jmp_addl_3_pos 0
+#define reg_ofsm_jmp_addl_3_len 8
+#define reg_ofsm_jmp_addl_3_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_4 (*(volatile byte xdata *) 0xFB63)
+#define p_reg_ofsm_jmp_addh_4 0xFB63
+#define reg_ofsm_jmp_addh_4_pos 0
+#define reg_ofsm_jmp_addh_4_len 8
+#define reg_ofsm_jmp_addh_4_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_4 (*(volatile byte xdata *) 0xFB64)
+#define p_reg_ofsm_jmp_addl_4 0xFB64
+#define reg_ofsm_jmp_addl_4_pos 0
+#define reg_ofsm_jmp_addl_4_len 8
+#define reg_ofsm_jmp_addl_4_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_5 (*(volatile byte xdata *) 0xFB65)
+#define p_reg_ofsm_jmp_addh_5 0xFB65
+#define reg_ofsm_jmp_addh_5_pos 0
+#define reg_ofsm_jmp_addh_5_len 8
+#define reg_ofsm_jmp_addh_5_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_5 (*(volatile byte xdata *) 0xFB66)
+#define p_reg_ofsm_jmp_addl_5 0xFB66
+#define reg_ofsm_jmp_addl_5_pos 0
+#define reg_ofsm_jmp_addl_5_len 8
+#define reg_ofsm_jmp_addl_5_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_6 (*(volatile byte xdata *) 0xFB67)
+#define p_reg_ofsm_jmp_addh_6 0xFB67
+#define reg_ofsm_jmp_addh_6_pos 0
+#define reg_ofsm_jmp_addh_6_len 8
+#define reg_ofsm_jmp_addh_6_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_6 (*(volatile byte xdata *) 0xFB68)
+#define p_reg_ofsm_jmp_addl_6 0xFB68
+#define reg_ofsm_jmp_addl_6_pos 0
+#define reg_ofsm_jmp_addl_6_len 8
+#define reg_ofsm_jmp_addl_6_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_7 (*(volatile byte xdata *) 0xFB69)
+#define p_reg_ofsm_jmp_addh_7 0xFB69
+#define reg_ofsm_jmp_addh_7_pos 0
+#define reg_ofsm_jmp_addh_7_len 8
+#define reg_ofsm_jmp_addh_7_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_7 (*(volatile byte xdata *) 0xFB6A)
+#define p_reg_ofsm_jmp_addl_7 0xFB6A
+#define reg_ofsm_jmp_addl_7_pos 0
+#define reg_ofsm_jmp_addl_7_len 8
+#define reg_ofsm_jmp_addl_7_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_8 (*(volatile byte xdata *) 0xFB6B)
+#define p_reg_ofsm_jmp_addh_8 0xFB6B
+#define reg_ofsm_jmp_addh_8_pos 0
+#define reg_ofsm_jmp_addh_8_len 8
+#define reg_ofsm_jmp_addh_8_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_8 (*(volatile byte xdata *) 0xFB6C)
+#define p_reg_ofsm_jmp_addl_8 0xFB6C
+#define reg_ofsm_jmp_addl_8_pos 0
+#define reg_ofsm_jmp_addl_8_len 8
+#define reg_ofsm_jmp_addl_8_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_9 (*(volatile byte xdata *) 0xFB6D)
+#define p_reg_ofsm_jmp_addh_9 0xFB6D
+#define reg_ofsm_jmp_addh_9_pos 0
+#define reg_ofsm_jmp_addh_9_len 8
+#define reg_ofsm_jmp_addh_9_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_9 (*(volatile byte xdata *) 0xFB6E)
+#define p_reg_ofsm_jmp_addl_9 0xFB6E
+#define reg_ofsm_jmp_addl_9_pos 0
+#define reg_ofsm_jmp_addl_9_len 8
+#define reg_ofsm_jmp_addl_9_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_10 (*(volatile byte xdata *) 0xFB6F)
+#define p_reg_ofsm_jmp_addh_10 0xFB6F
+#define reg_ofsm_jmp_addh_10_pos 0
+#define reg_ofsm_jmp_addh_10_len 8
+#define reg_ofsm_jmp_addh_10_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_10 (*(volatile byte xdata *) 0xFB70)
+#define p_reg_ofsm_jmp_addl_10 0xFB70
+#define reg_ofsm_jmp_addl_10_pos 0
+#define reg_ofsm_jmp_addl_10_len 8
+#define reg_ofsm_jmp_addl_10_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_11 (*(volatile byte xdata *) 0xFB71)
+#define p_reg_ofsm_jmp_addh_11 0xFB71
+#define reg_ofsm_jmp_addh_11_pos 0
+#define reg_ofsm_jmp_addh_11_len 8
+#define reg_ofsm_jmp_addh_11_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_11 (*(volatile byte xdata *) 0xFB72)
+#define p_reg_ofsm_jmp_addl_11 0xFB72
+#define reg_ofsm_jmp_addl_11_pos 0
+#define reg_ofsm_jmp_addl_11_len 8
+#define reg_ofsm_jmp_addl_11_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_12 (*(volatile byte xdata *) 0xFB73)
+#define p_reg_ofsm_jmp_addh_12 0xFB73
+#define reg_ofsm_jmp_addh_12_pos 0
+#define reg_ofsm_jmp_addh_12_len 8
+#define reg_ofsm_jmp_addh_12_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_12 (*(volatile byte xdata *) 0xFB74)
+#define p_reg_ofsm_jmp_addl_12 0xFB74
+#define reg_ofsm_jmp_addl_12_pos 0
+#define reg_ofsm_jmp_addl_12_len 8
+#define reg_ofsm_jmp_addl_12_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_13 (*(volatile byte xdata *) 0xFB75)
+#define p_reg_ofsm_jmp_addh_13 0xFB75
+#define reg_ofsm_jmp_addh_13_pos 0
+#define reg_ofsm_jmp_addh_13_len 8
+#define reg_ofsm_jmp_addh_13_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_13 (*(volatile byte xdata *) 0xFB76)
+#define p_reg_ofsm_jmp_addl_13 0xFB76
+#define reg_ofsm_jmp_addl_13_pos 0
+#define reg_ofsm_jmp_addl_13_len 8
+#define reg_ofsm_jmp_addl_13_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_14 (*(volatile byte xdata *) 0xFB77)
+#define p_reg_ofsm_jmp_addh_14 0xFB77
+#define reg_ofsm_jmp_addh_14_pos 0
+#define reg_ofsm_jmp_addh_14_len 8
+#define reg_ofsm_jmp_addh_14_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_14 (*(volatile byte xdata *) 0xFB78)
+#define p_reg_ofsm_jmp_addl_14 0xFB78
+#define reg_ofsm_jmp_addl_14_pos 0
+#define reg_ofsm_jmp_addl_14_len 8
+#define reg_ofsm_jmp_addl_14_lsb 0
+#define xd_p_reg_ofsm_jmp_addh_15 (*(volatile byte xdata *) 0xFB79)
+#define p_reg_ofsm_jmp_addh_15 0xFB79
+#define reg_ofsm_jmp_addh_15_pos 0
+#define reg_ofsm_jmp_addh_15_len 8
+#define reg_ofsm_jmp_addh_15_lsb 0
+#define xd_p_reg_ofsm_jmp_addl_15 (*(volatile byte xdata *) 0xFB7A)
+#define p_reg_ofsm_jmp_addl_15 0xFB7A
+#define reg_ofsm_jmp_addl_15_pos 0
+#define reg_ofsm_jmp_addl_15_len 8
+#define reg_ofsm_jmp_addl_15_lsb 0
+#define xd_p_reg_sw_mon51 (*(volatile byte xdata *) 0xFB7B)
+#define p_reg_sw_mon51 0xFB7B
+#define reg_sw_mon51_pos 0
+#define reg_sw_mon51_len 7
+#define reg_sw_mon51_lsb 0
+#define xd_p_reg_ofdm_mon51_flag (*(volatile byte xdata *) 0xFB7C)
+#define p_reg_ofdm_mon51_flag 0xFB7C
+#define reg_ofdm_mon51_flag_pos 0
+#define reg_ofdm_mon51_flag_len 1
+#define reg_ofdm_mon51_flag_lsb 0
+#define xd_p_reg_ofdm_force_mon51 (*(volatile byte xdata *) 0xFB7D)
+#define p_reg_ofdm_force_mon51 0xFB7D
+#define reg_ofdm_force_mon51_pos 0
+#define reg_ofdm_force_mon51_len 1
+#define reg_ofdm_force_mon51_lsb 0
+#define xd_p_reg_ofdm_which_cpu (*(volatile byte xdata *) 0xFB7E)
+#define p_reg_ofdm_which_cpu 0xFB7E
+#define reg_ofdm_which_cpu_pos 0
+#define reg_ofdm_which_cpu_len 1
+#define reg_ofdm_which_cpu_lsb 0
+#define xd_p_reg_ofdm_code_ready (*(volatile byte xdata *) 0xFB7F)
+#define p_reg_ofdm_code_ready 0xFB7F
+#define reg_ofdm_code_ready_pos 0
+#define reg_ofdm_code_ready_len 1
+#define reg_ofdm_code_ready_lsb 0
+#define xd_p_reg_ofdm_mailbox_wend (*(volatile byte xdata *) 0xFB80)
+#define p_reg_ofdm_mailbox_wend 0xFB80
+#define reg_ofdm_mailbox_wend_pos 0
+#define reg_ofdm_mailbox_wend_len 1
+#define reg_ofdm_mailbox_wend_lsb 0
+#define xd_r_reg_fast_slow_train (*(volatile byte xdata *) 0xFB81)
+#define r_reg_fast_slow_train 0xFB81
+#define reg_fast_slow_train_pos 0
+#define reg_fast_slow_train_len 1
+#define reg_fast_slow_train_lsb 0
+#define xd_p_reg_ofdm_mailbox_wptr (*(volatile byte xdata *) 0xFB82)
+#define p_reg_ofdm_mailbox_wptr 0xFB82
+#define reg_ofdm_mailbox_wptr_pos 0
+#define reg_ofdm_mailbox_wptr_len 8
+#define reg_ofdm_mailbox_wptr_lsb 0
+#define xd_p_reg_ofdm_mailbox_int (*(volatile byte xdata *) 0xFB86)
+#define p_reg_ofdm_mailbox_int 0xFB86
+#define reg_ofdm_mailbox_int_pos 0
+#define reg_ofdm_mailbox_int_len 1
+#define reg_ofdm_mailbox_int_lsb 0
+#define xd_p_reg_ofdm_lnk2ofdm_int (*(volatile byte xdata *) 0xFB87)
+#define p_reg_ofdm_lnk2ofdm_int 0xFB87
+#define reg_ofdm_lnk2ofdm_int_pos 0
+#define reg_ofdm_lnk2ofdm_int_len 1
+#define reg_ofdm_lnk2ofdm_int_lsb 0
+#define xd_p_reg_ofdm_ofdm2lnk_int (*(volatile byte xdata *) 0xFB88)
+#define p_reg_ofdm_ofdm2lnk_int 0xFB88
+#define reg_ofdm_ofdm2lnk_int_pos 0
+#define reg_ofdm_ofdm2lnk_int_len 1
+#define reg_ofdm_ofdm2lnk_int_lsb 0
+#define xd_r_reg_load_ofdm_reg (*(volatile byte xdata *) 0xFB8F)
+#define r_reg_load_ofdm_reg 0xFB8F
+#define reg_load_ofdm_reg_pos 0
+#define reg_load_ofdm_reg_len 1
+#define reg_load_ofdm_reg_lsb 0
+#define xd_p_reg_lnk_mbx_rd_length_7_0 (*(volatile byte xdata *) 0xFB90)
+#define p_reg_lnk_mbx_rd_length_7_0 0xFB90
+#define reg_lnk_mbx_rd_length_7_0_pos 0
+#define reg_lnk_mbx_rd_length_7_0_len 8
+#define reg_lnk_mbx_rd_length_7_0_lsb 0
+#define xd_p_reg_lnk_mbx_rd_length_15_8 (*(volatile byte xdata *) 0xFB91)
+#define p_reg_lnk_mbx_rd_length_15_8 0xFB91
+#define reg_lnk_mbx_rd_length_15_8_pos 0
+#define reg_lnk_mbx_rd_length_15_8_len 8
+#define reg_lnk_mbx_rd_length_15_8_lsb 8
+#define xd_p_reg_lnk_mbx_rd_length_17_16 (*(volatile byte xdata *) 0xFB92)
+#define p_reg_lnk_mbx_rd_length_17_16 0xFB92
+#define reg_lnk_mbx_rd_length_17_16_pos 0
+#define reg_lnk_mbx_rd_length_17_16_len 2
+#define reg_lnk_mbx_rd_length_17_16_lsb 16
+#define xd_p_reg_lnk_rd_data_sel (*(volatile byte xdata *) 0xFB93)
+#define p_reg_lnk_rd_data_sel 0xFB93
+#define reg_lnk_rd_data_sel_pos 0
+#define reg_lnk_rd_data_sel_len 2
+#define reg_lnk_rd_data_sel_lsb 0
+#define xd_p_reg_ofdm2lnk_data_7_0 (*(volatile byte xdata *) 0xFB96)
+#define p_reg_ofdm2lnk_data_7_0 0xFB96
+#define reg_ofdm2lnk_data_7_0_pos 0
+#define reg_ofdm2lnk_data_7_0_len 8
+#define reg_ofdm2lnk_data_7_0_lsb 0
+#define xd_p_reg_ofdm2lnk_data_15_8 (*(volatile byte xdata *) 0xFB97)
+#define p_reg_ofdm2lnk_data_15_8 0xFB97
+#define reg_ofdm2lnk_data_15_8_pos 0
+#define reg_ofdm2lnk_data_15_8_len 8
+#define reg_ofdm2lnk_data_15_8_lsb 8
+#define xd_p_reg_ofdm2lnk_data_23_16 (*(volatile byte xdata *) 0xFB98)
+#define p_reg_ofdm2lnk_data_23_16 0xFB98
+#define reg_ofdm2lnk_data_23_16_pos 0
+#define reg_ofdm2lnk_data_23_16_len 8
+#define reg_ofdm2lnk_data_23_16_lsb 16
+#define xd_p_reg_ofdm2lnk_data_31_24 (*(volatile byte xdata *) 0xFB99)
+#define p_reg_ofdm2lnk_data_31_24 0xFB99
+#define reg_ofdm2lnk_data_31_24_pos 0
+#define reg_ofdm2lnk_data_31_24_len 8
+#define reg_ofdm2lnk_data_31_24_lsb 24
+#define xd_p_reg_ofdm2lnk_data_39_32 (*(volatile byte xdata *) 0xFB9A)
+#define p_reg_ofdm2lnk_data_39_32 0xFB9A
+#define reg_ofdm2lnk_data_39_32_pos 0
+#define reg_ofdm2lnk_data_39_32_len 8
+#define reg_ofdm2lnk_data_39_32_lsb 32
+#define xd_p_reg_ofdm2lnk_data_47_40 (*(volatile byte xdata *) 0xFB9B)
+#define p_reg_ofdm2lnk_data_47_40 0xFB9B
+#define reg_ofdm2lnk_data_47_40_pos 0
+#define reg_ofdm2lnk_data_47_40_len 8
+#define reg_ofdm2lnk_data_47_40_lsb 40
+#define xd_p_reg_ofdm2lnk_data_55_48 (*(volatile byte xdata *) 0xFB9C)
+#define p_reg_ofdm2lnk_data_55_48 0xFB9C
+#define reg_ofdm2lnk_data_55_48_pos 0
+#define reg_ofdm2lnk_data_55_48_len 8
+#define reg_ofdm2lnk_data_55_48_lsb 48
+#define xd_p_reg_ofdm2lnk_data_63_56 (*(volatile byte xdata *) 0xFB9D)
+#define p_reg_ofdm2lnk_data_63_56 0xFB9D
+#define reg_ofdm2lnk_data_63_56_pos 0
+#define reg_ofdm2lnk_data_63_56_len 8
+#define reg_ofdm2lnk_data_63_56_lsb 56
+#define xd_p_reg_lnktoofdm_data_7_0 (*(volatile byte xdata *) 0xFB9E)
+#define p_reg_lnktoofdm_data_7_0 0xFB9E
+#define reg_lnktoofdm_data_7_0_pos 0
+#define reg_lnktoofdm_data_7_0_len 8
+#define reg_lnktoofdm_data_7_0_lsb 0
+#define xd_p_reg_lnktoofdm_data_15_8 (*(volatile byte xdata *) 0xFB9F)
+#define p_reg_lnktoofdm_data_15_8 0xFB9F
+#define reg_lnktoofdm_data_15_8_pos 0
+#define reg_lnktoofdm_data_15_8_len 8
+#define reg_lnktoofdm_data_15_8_lsb 8
+#define xd_p_reg_lnktoofdm_data_23_16 (*(volatile byte xdata *) 0xFBA0)
+#define p_reg_lnktoofdm_data_23_16 0xFBA0
+#define reg_lnktoofdm_data_23_16_pos 0
+#define reg_lnktoofdm_data_23_16_len 8
+#define reg_lnktoofdm_data_23_16_lsb 16
+#define xd_p_reg_lnktoofdm_data_31_24 (*(volatile byte xdata *) 0xFBA1)
+#define p_reg_lnktoofdm_data_31_24 0xFBA1
+#define reg_lnktoofdm_data_31_24_pos 0
+#define reg_lnktoofdm_data_31_24_len 8
+#define reg_lnktoofdm_data_31_24_lsb 24
+#define xd_p_reg_lnktoofdm_data_39_32 (*(volatile byte xdata *) 0xFBA2)
+#define p_reg_lnktoofdm_data_39_32 0xFBA2
+#define reg_lnktoofdm_data_39_32_pos 0
+#define reg_lnktoofdm_data_39_32_len 8
+#define reg_lnktoofdm_data_39_32_lsb 32
+#define xd_p_reg_lnktoofdm_data_47_40 (*(volatile byte xdata *) 0xFBA3)
+#define p_reg_lnktoofdm_data_47_40 0xFBA3
+#define reg_lnktoofdm_data_47_40_pos 0
+#define reg_lnktoofdm_data_47_40_len 8
+#define reg_lnktoofdm_data_47_40_lsb 40
+#define xd_p_reg_lnktoofdm_data_55_48 (*(volatile byte xdata *) 0xFBA4)
+#define p_reg_lnktoofdm_data_55_48 0xFBA4
+#define reg_lnktoofdm_data_55_48_pos 0
+#define reg_lnktoofdm_data_55_48_len 8
+#define reg_lnktoofdm_data_55_48_lsb 48
+#define xd_p_reg_lnktoofdm_data_63_56 (*(volatile byte xdata *) 0xFBA5)
+#define p_reg_lnktoofdm_data_63_56 0xFBA5
+#define reg_lnktoofdm_data_63_56_pos 0
+#define reg_lnktoofdm_data_63_56_len 8
+#define reg_lnktoofdm_data_63_56_lsb 56
+#define xd_p_reg_dbgif32_sel (*(volatile byte xdata *) 0xFBA6)
+#define p_reg_dbgif32_sel 0xFBA6
+#define reg_dbgif32_sel_pos 0
+#define reg_dbgif32_sel_len 2
+#define reg_dbgif32_sel_lsb 0
+#define xd_p_reg_dyn1_clk (*(volatile byte xdata *) 0xFBA7)
+#define p_reg_dyn1_clk 0xFBA7
+#define reg_dyn1_clk_pos 0
+#define reg_dyn1_clk_len 1
+#define reg_dyn1_clk_lsb 0
+#define xd_p_reg_dyn0_clk (*(volatile byte xdata *) 0xFBA8)
+#define p_reg_dyn0_clk 0xFBA8
+#define reg_dyn0_clk_pos 0
+#define reg_dyn0_clk_len 1
+#define reg_dyn0_clk_lsb 0
+#define xd_p_reg_free_clk (*(volatile byte xdata *) 0xFBA9)
+#define p_reg_free_clk 0xFBA9
+#define reg_free_clk_pos 0
+#define reg_free_clk_len 1
+#define reg_free_clk_lsb 0
+#define xd_p_reg_ofdm_stick_mem_end_7_0 (*(volatile byte xdata *) 0xFBAD)
+#define p_reg_ofdm_stick_mem_end_7_0 0xFBAD
+#define reg_ofdm_stick_mem_end_7_0_pos 0
+#define reg_ofdm_stick_mem_end_7_0_len 8
+#define reg_ofdm_stick_mem_end_7_0_lsb 0
+#define xd_p_reg_ofdm_stick_mem_end_15_8 (*(volatile byte xdata *) 0xFBAE)
+#define p_reg_ofdm_stick_mem_end_15_8 0xFBAE
+#define reg_ofdm_stick_mem_end_15_8_pos 0
+#define reg_ofdm_stick_mem_end_15_8_len 8
+#define reg_ofdm_stick_mem_end_15_8_lsb 8
+#define xd_p_reg_ofdm_cpu_reset (*(volatile byte xdata *) 0xFBAF)
+#define p_reg_ofdm_cpu_reset 0xFBAF
+#define reg_ofdm_cpu_reset_pos 0
+#define reg_ofdm_cpu_reset_len 1
+#define reg_ofdm_cpu_reset_lsb 0
+#define xd_p_reg_ofdm_bank_float_en (*(volatile byte xdata *) 0xFBB0)
+#define p_reg_ofdm_bank_float_en 0xFBB0
+#define reg_ofdm_bank_float_en_pos 0
+#define reg_ofdm_bank_float_en_len 1
+#define reg_ofdm_bank_float_en_lsb 0
+#define xd_p_reg_ofdm_bank_float_start (*(volatile byte xdata *) 0xFBB1)
+#define p_reg_ofdm_bank_float_start 0xFBB1
+#define reg_ofdm_bank_float_start_pos 0
+#define reg_ofdm_bank_float_start_len 8
+#define reg_ofdm_bank_float_start_lsb 0
+#define xd_p_reg_ofdm_bank_float_stop (*(volatile byte xdata *) 0xFBB2)
+#define p_reg_ofdm_bank_float_stop 0xFBB2
+#define reg_ofdm_bank_float_stop_pos 0
+#define reg_ofdm_bank_float_stop_len 8
+#define reg_ofdm_bank_float_stop_lsb 0
+#define xd_r_ofsm_bond0_i (*(volatile byte xdata *) 0xFBB3)
+#define r_ofsm_bond0_i 0xFBB3
+#define ofsm_bond0_i_pos 0
+#define ofsm_bond0_i_len 1
+#define ofsm_bond0_i_lsb 0
+#define xd_r_ofsm_bond1_i (*(volatile byte xdata *) 0xFBB4)
+#define r_ofsm_bond1_i 0xFBB4
+#define ofsm_bond1_i_pos 0
+#define ofsm_bond1_i_len 1
+#define ofsm_bond1_i_lsb 0
+#define xd_r_io_mux_pwron_clk_strap (*(volatile byte xdata *) 0xD800)
+#define r_io_mux_pwron_clk_strap 0xD800
+#define io_mux_pwron_clk_strap_pos 0
+#define io_mux_pwron_clk_strap_len 4
+#define io_mux_pwron_clk_strap_lsb 0
+#define xd_r_io_mux_pwron_mode_strap (*(volatile byte xdata *) 0xD801)
+#define r_io_mux_pwron_mode_strap 0xD801
+#define io_mux_pwron_mode_strap_pos 0
+#define io_mux_pwron_mode_strap_len 4
+#define io_mux_pwron_mode_strap_lsb 0
+#define xd_r_io_mux_pwron_hosta (*(volatile byte xdata *) 0xD802)
+#define r_io_mux_pwron_hosta 0xD802
+#define io_mux_pwron_hosta_pos 0
+#define io_mux_pwron_hosta_len 1
+#define io_mux_pwron_hosta_lsb 0
+#define xd_r_reg_top_revid (*(volatile byte xdata *) 0xD803)
+#define r_reg_top_revid 0xD803
+#define reg_top_revid_pos 0
+#define reg_top_revid_len 4
+#define reg_top_revid_lsb 0
+#define xd_r_io_mux_bond0_i (*(volatile byte xdata *) 0xD804)
+#define r_io_mux_bond0_i 0xD804
+#define io_mux_bond0_i_pos 0
+#define io_mux_bond0_i_len 1
+#define io_mux_bond0_i_lsb 0
+#define xd_r_io_mux_bondu0_i (*(volatile byte xdata *) 0xD805)
+#define r_io_mux_bondu0_i 0xD805
+#define io_mux_bondu0_i_pos 0
+#define io_mux_bondu0_i_len 1
+#define io_mux_bondu0_i_lsb 0
+#define xd_p_reg_ofsm_suspend (*(volatile byte xdata *) 0xD806)
+#define p_reg_ofsm_suspend 0xD806
+#define reg_ofsm_suspend_pos 0
+#define reg_ofsm_suspend_len 1
+#define reg_ofsm_suspend_lsb 0
+#define xd_p_reg_tslice_off (*(volatile byte xdata *) 0xD807)
+#define p_reg_tslice_off 0xD807
+#define reg_tslice_off_pos 0
+#define reg_tslice_off_len 1
+#define reg_tslice_off_lsb 0
+#define xd_p_io_mux_wake_int (*(volatile byte xdata *) 0xD808)
+#define p_io_mux_wake_int 0xD808
+#define io_mux_wake_int_pos 0
+#define io_mux_wake_int_len 1
+#define io_mux_wake_int_lsb 0
+#define xd_p_reg_top_pwrdw_hwen (*(volatile byte xdata *) 0xD809)
+#define p_reg_top_pwrdw_hwen 0xD809
+#define reg_top_pwrdw_hwen_pos 0
+#define reg_top_pwrdw_hwen_len 1
+#define reg_top_pwrdw_hwen_lsb 0
+#define xd_p_reg_top_pwrdw_inv (*(volatile byte xdata *) 0xD80A)
+#define p_reg_top_pwrdw_inv 0xD80A
+#define reg_top_pwrdw_inv_pos 0
+#define reg_top_pwrdw_inv_len 1
+#define reg_top_pwrdw_inv_lsb 0
+#define xd_p_reg_top_pwrdw (*(volatile byte xdata *) 0xD80B)
+#define p_reg_top_pwrdw 0xD80B
+#define reg_top_pwrdw_pos 0
+#define reg_top_pwrdw_len 1
+#define reg_top_pwrdw_lsb 0
+#define xd_p_io_mux_wake_int_en (*(volatile byte xdata *) 0xD80C)
+#define p_io_mux_wake_int_en 0xD80C
+#define io_mux_wake_int_en_pos 0
+#define io_mux_wake_int_en_len 1
+#define io_mux_wake_int_en_lsb 0
+#define xd_p_io_mux_pwrdw_int (*(volatile byte xdata *) 0xD80D)
+#define p_io_mux_pwrdw_int 0xD80D
+#define io_mux_pwrdw_int_pos 0
+#define io_mux_pwrdw_int_len 1
+#define io_mux_pwrdw_int_lsb 0
+#define xd_p_reg_top_adcdly (*(volatile byte xdata *) 0xD80E)
+#define p_reg_top_adcdly 0xD80E
+#define reg_top_adcdly_pos 0
+#define reg_top_adcdly_len 2
+#define reg_top_adcdly_lsb 0
+#define xd_p_reg_top_debug (*(volatile byte xdata *) 0xD80F)
+#define p_reg_top_debug 0xD80F
+#define reg_top_debug_pos 0
+#define reg_top_debug_len 1
+#define reg_top_debug_lsb 0
+#define xd_p_reg_top_pcout (*(volatile byte xdata *) 0xD810)
+#define p_reg_top_pcout 0xD810
+#define reg_top_pcout_pos 0
+#define reg_top_pcout_len 1
+#define reg_top_pcout_lsb 0
+#define xd_p_reg_top_rs232 (*(volatile byte xdata *) 0xD811)
+#define p_reg_top_rs232 0xD811
+#define reg_top_rs232_pos 0
+#define reg_top_rs232_len 1
+#define reg_top_rs232_lsb 0
+#define xd_p_reg_iqmode (*(volatile byte xdata *) 0xD812)
+#define p_reg_iqmode 0xD812
+#define reg_iqmode_pos 0
+#define reg_iqmode_len 1
+#define reg_iqmode_lsb 0
+#define xd_p_reg_top_rstfd (*(volatile byte xdata *) 0xD813)
+#define p_reg_top_rstfd 0xD813
+#define reg_top_rstfd_pos 0
+#define reg_top_rstfd_len 1
+#define reg_top_rstfd_lsb 0
+#define xd_p_reg_sdio_clksel (*(volatile byte xdata *) 0xD814)
+#define p_reg_sdio_clksel 0xD814
+#define reg_sdio_clksel_pos 0
+#define reg_sdio_clksel_len 1
+#define reg_sdio_clksel_lsb 0
+#define xd_p_reg_utmi_clksel (*(volatile byte xdata *) 0xD815)
+#define p_reg_utmi_clksel 0xD815
+#define reg_utmi_clksel_pos 0
+#define reg_utmi_clksel_len 8
+#define reg_utmi_clksel_lsb 0
+#define xd_p_reg_top_suscnt (*(volatile byte xdata *) 0xD816)
+#define p_reg_top_suscnt 0xD816
+#define reg_top_suscnt_pos 0
+#define reg_top_suscnt_len 2
+#define reg_top_suscnt_lsb 0
+#define xd_p_reg_top_dist2f (*(volatile byte xdata *) 0xD817)
+#define p_reg_top_dist2f 0xD817
+#define reg_top_dist2f_pos 0
+#define reg_top_dist2f_len 1
+#define reg_top_dist2f_lsb 0
+#define xd_p_reg_top_extusb (*(volatile byte xdata *) 0xD818)
+#define p_reg_top_extusb 0xD818
+#define reg_top_extusb_pos 0
+#define reg_top_extusb_len 1
+#define reg_top_extusb_lsb 0
+#define xd_p_reg_top_adcfifo (*(volatile byte xdata *) 0xD819)
+#define p_reg_top_adcfifo 0xD819
+#define reg_top_adcfifo_pos 0
+#define reg_top_adcfifo_len 1
+#define reg_top_adcfifo_lsb 0
+#define xd_p_reg_top_clkoen (*(volatile byte xdata *) 0xD81A)
+#define p_reg_top_clkoen 0xD81A
+#define reg_top_clkoen_pos 0
+#define reg_top_clkoen_len 1
+#define reg_top_clkoen_lsb 0
+#define xd_p_reg_top_stpck (*(volatile byte xdata *) 0xD81B)
+#define p_reg_top_stpck 0xD81B
+#define reg_top_stpck_pos 0
+#define reg_top_stpck_len 1
+#define reg_top_stpck_lsb 0
+#define xd_p_reg_top_freeck (*(volatile byte xdata *) 0xD81C)
+#define p_reg_top_freeck 0xD81C
+#define reg_top_freeck_pos 0
+#define reg_top_freeck_len 1
+#define reg_top_freeck_lsb 0
+#define xd_p_reg_top_dio_sel (*(volatile byte xdata *) 0xD81D)
+#define p_reg_top_dio_sel 0xD81D
+#define reg_top_dio_sel_pos 0
+#define reg_top_dio_sel_len 1
+#define reg_top_dio_sel_lsb 0
+#define xd_p_reg_top_int_en (*(volatile byte xdata *) 0xD81E)
+#define p_reg_top_int_en 0xD81E
+#define reg_top_int_en_pos 0
+#define reg_top_int_en_len 1
+#define reg_top_int_en_lsb 0
+#define xd_p_reg_top_int_inv (*(volatile byte xdata *) 0xD81F)
+#define p_reg_top_int_inv 0xD81F
+#define reg_top_int_inv_pos 0
+#define reg_top_int_inv_len 1
+#define reg_top_int_inv_lsb 0
+#define xd_p_reg_tsip_clk_inv (*(volatile byte xdata *) 0xD820)
+#define p_reg_tsip_clk_inv 0xD820
+#define reg_tsip_clk_inv_pos 0
+#define reg_tsip_clk_inv_len 1
+#define reg_tsip_clk_inv_lsb 0
+#define xd_p_reg_ts_clk_inv (*(volatile byte xdata *) 0xD821)
+#define p_reg_ts_clk_inv 0xD821
+#define reg_ts_clk_inv_pos 0
+#define reg_ts_clk_inv_len 1
+#define reg_ts_clk_inv_lsb 0
+#define xd_p_reg_ts_hybrid (*(volatile byte xdata *) 0xD822)
+#define p_reg_ts_hybrid 0xD822
+#define reg_ts_hybrid_pos 0
+#define reg_ts_hybrid_len 1
+#define reg_ts_hybrid_lsb 0
+#define xd_p_reg_ccir_sel (*(volatile byte xdata *) 0xD823)
+#define p_reg_ccir_sel 0xD823
+#define reg_ccir_sel_pos 0
+#define reg_ccir_sel_len 4
+#define reg_ccir_sel_lsb 0
+#define xd_p_reg_top_sys_gate (*(volatile byte xdata *) 0xD824)
+#define p_reg_top_sys_gate 0xD824
+#define reg_top_sys_gate_pos 0
+#define reg_top_sys_gate_len 1
+#define reg_top_sys_gate_lsb 0
+#define xd_p_reg_top_padpu (*(volatile byte xdata *) 0xD825)
+#define p_reg_top_padpu 0xD825
+#define reg_top_padpu_pos 0
+#define reg_top_padpu_len 1
+#define reg_top_padpu_lsb 0
+#define xd_p_reg_top_padpd (*(volatile byte xdata *) 0xD826)
+#define p_reg_top_padpd 0xD826
+#define reg_top_padpd_pos 0
+#define reg_top_padpd_len 1
+#define reg_top_padpd_lsb 0
+#define xd_p_reg_top_padodpu (*(volatile byte xdata *) 0xD827)
+#define p_reg_top_padodpu 0xD827
+#define reg_top_padodpu_pos 0
+#define reg_top_padodpu_len 1
+#define reg_top_padodpu_lsb 0
+#define xd_p_reg_top_thirdodpu (*(volatile byte xdata *) 0xD828)
+#define p_reg_top_thirdodpu 0xD828
+#define reg_top_thirdodpu_pos 0
+#define reg_top_thirdodpu_len 1
+#define reg_top_thirdodpu_lsb 0
+#define xd_p_reg_top_agc_od (*(volatile byte xdata *) 0xD829)
+#define p_reg_top_agc_od 0xD829
+#define reg_top_agc_od_pos 0
+#define reg_top_agc_od_len 1
+#define reg_top_agc_od_lsb 0
+#define xd_p_reg_top_padmpdr2 (*(volatile byte xdata *) 0xD82A)
+#define p_reg_top_padmpdr2 0xD82A
+#define reg_top_padmpdr2_pos 0
+#define reg_top_padmpdr2_len 1
+#define reg_top_padmpdr2_lsb 0
+#define xd_p_reg_top_padmpdr4 (*(volatile byte xdata *) 0xD82B)
+#define p_reg_top_padmpdr4 0xD82B
+#define reg_top_padmpdr4_pos 0
+#define reg_top_padmpdr4_len 1
+#define reg_top_padmpdr4_lsb 0
+#define xd_p_reg_top_padmpdr8 (*(volatile byte xdata *) 0xD82C)
+#define p_reg_top_padmpdr8 0xD82C
+#define reg_top_padmpdr8_pos 0
+#define reg_top_padmpdr8_len 1
+#define reg_top_padmpdr8_lsb 0
+#define xd_p_reg_top_padmpdrsr (*(volatile byte xdata *) 0xD82D)
+#define p_reg_top_padmpdrsr 0xD82D
+#define reg_top_padmpdrsr_pos 0
+#define reg_top_padmpdrsr_len 1
+#define reg_top_padmpdrsr_lsb 0
+#define xd_p_reg_top_padmppu (*(volatile byte xdata *) 0xD82E)
+#define p_reg_top_padmppu 0xD82E
+#define reg_top_padmppu_pos 0
+#define reg_top_padmppu_len 1
+#define reg_top_padmppu_lsb 0
+#define xd_p_reg_top_padmppd (*(volatile byte xdata *) 0xD82F)
+#define p_reg_top_padmppd 0xD82F
+#define reg_top_padmppd_pos 0
+#define reg_top_padmppd_len 1
+#define reg_top_padmppd_lsb 0
+#define xd_p_reg_top_padmiscdr2 (*(volatile byte xdata *) 0xD830)
+#define p_reg_top_padmiscdr2 0xD830
+#define reg_top_padmiscdr2_pos 0
+#define reg_top_padmiscdr2_len 1
+#define reg_top_padmiscdr2_lsb 0
+#define xd_p_reg_top_padmiscdr4 (*(volatile byte xdata *) 0xD831)
+#define p_reg_top_padmiscdr4 0xD831
+#define reg_top_padmiscdr4_pos 0
+#define reg_top_padmiscdr4_len 1
+#define reg_top_padmiscdr4_lsb 0
+#define xd_p_reg_top_padmiscdr8 (*(volatile byte xdata *) 0xD832)
+#define p_reg_top_padmiscdr8 0xD832
+#define reg_top_padmiscdr8_pos 0
+#define reg_top_padmiscdr8_len 1
+#define reg_top_padmiscdr8_lsb 0
+#define xd_p_reg_top_padmiscdrsr (*(volatile byte xdata *) 0xD833)
+#define p_reg_top_padmiscdrsr 0xD833
+#define reg_top_padmiscdrsr_pos 0
+#define reg_top_padmiscdrsr_len 1
+#define reg_top_padmiscdrsr_lsb 0
+#define xd_p_reg_top_padmiscpu (*(volatile byte xdata *) 0xD834)
+#define p_reg_top_padmiscpu 0xD834
+#define reg_top_padmiscpu_pos 0
+#define reg_top_padmiscpu_len 1
+#define reg_top_padmiscpu_lsb 0
+#define xd_p_reg_top_padmiscpd (*(volatile byte xdata *) 0xD835)
+#define p_reg_top_padmiscpd 0xD835
+#define reg_top_padmiscpd_pos 0
+#define reg_top_padmiscpd_len 1
+#define reg_top_padmiscpd_lsb 0
+#define xd_p_reg_host_b0_smt (*(volatile byte xdata *) 0xD836)
+#define p_reg_host_b0_smt 0xD836
+#define reg_host_b0_smt_pos 0
+#define reg_host_b0_smt_len 1
+#define reg_host_b0_smt_lsb 0
+#define xd_p_reg_host_b1_smt (*(volatile byte xdata *) 0xD837)
+#define p_reg_host_b1_smt 0xD837
+#define reg_host_b1_smt_pos 0
+#define reg_host_b1_smt_len 1
+#define reg_host_b1_smt_lsb 0
+#define xd_p_reg_host_b2_smt (*(volatile byte xdata *) 0xD838)
+#define p_reg_host_b2_smt 0xD838
+#define reg_host_b2_smt_pos 0
+#define reg_host_b2_smt_len 1
+#define reg_host_b2_smt_lsb 0
+#define xd_p_reg_host_b3_smt (*(volatile byte xdata *) 0xD839)
+#define p_reg_host_b3_smt 0xD839
+#define reg_host_b3_smt_pos 0
+#define reg_host_b3_smt_len 1
+#define reg_host_b3_smt_lsb 0
+#define xd_p_reg_host_b4_smt (*(volatile byte xdata *) 0xD83A)
+#define p_reg_host_b4_smt 0xD83A
+#define reg_host_b4_smt_pos 0
+#define reg_host_b4_smt_len 1
+#define reg_host_b4_smt_lsb 0
+#define xd_p_reg_host_b5_smt (*(volatile byte xdata *) 0xD83B)
+#define p_reg_host_b5_smt 0xD83B
+#define reg_host_b5_smt_pos 0
+#define reg_host_b5_smt_len 1
+#define reg_host_b5_smt_lsb 0
+#define xd_p_reg_host_b6_smt (*(volatile byte xdata *) 0xD83C)
+#define p_reg_host_b6_smt 0xD83C
+#define reg_host_b6_smt_pos 0
+#define reg_host_b6_smt_len 1
+#define reg_host_b6_smt_lsb 0
+#define xd_p_reg_host_b7_smt (*(volatile byte xdata *) 0xD83D)
+#define p_reg_host_b7_smt 0xD83D
+#define reg_host_b7_smt_pos 0
+#define reg_host_b7_smt_len 1
+#define reg_host_b7_smt_lsb 0
+#define xd_p_reg_host_b8_smt (*(volatile byte xdata *) 0xD83E)
+#define p_reg_host_b8_smt 0xD83E
+#define reg_host_b8_smt_pos 0
+#define reg_host_b8_smt_len 1
+#define reg_host_b8_smt_lsb 0
+#define xd_p_reg_host_b9_smt (*(volatile byte xdata *) 0xD83F)
+#define p_reg_host_b9_smt 0xD83F
+#define reg_host_b9_smt_pos 0
+#define reg_host_b9_smt_len 1
+#define reg_host_b9_smt_lsb 0
+#define xd_p_reg_host_b10_smt (*(volatile byte xdata *) 0xD840)
+#define p_reg_host_b10_smt 0xD840
+#define reg_host_b10_smt_pos 0
+#define reg_host_b10_smt_len 1
+#define reg_host_b10_smt_lsb 0
+#define xd_p_reg_host_b11_smt (*(volatile byte xdata *) 0xD841)
+#define p_reg_host_b11_smt 0xD841
+#define reg_host_b11_smt_pos 0
+#define reg_host_b11_smt_len 1
+#define reg_host_b11_smt_lsb 0
+#define xd_p_reg_host_a0_smt (*(volatile byte xdata *) 0xD842)
+#define p_reg_host_a0_smt 0xD842
+#define reg_host_a0_smt_pos 0
+#define reg_host_a0_smt_len 1
+#define reg_host_a0_smt_lsb 0
+#define xd_p_reg_host_a1_smt (*(volatile byte xdata *) 0xD843)
+#define p_reg_host_a1_smt 0xD843
+#define reg_host_a1_smt_pos 0
+#define reg_host_a1_smt_len 1
+#define reg_host_a1_smt_lsb 0
+#define xd_p_reg_host_a2_smt (*(volatile byte xdata *) 0xD844)
+#define p_reg_host_a2_smt 0xD844
+#define reg_host_a2_smt_pos 0
+#define reg_host_a2_smt_len 1
+#define reg_host_a2_smt_lsb 0
+#define xd_p_reg_host_a3_smt (*(volatile byte xdata *) 0xD845)
+#define p_reg_host_a3_smt 0xD845
+#define reg_host_a3_smt_pos 0
+#define reg_host_a3_smt_len 1
+#define reg_host_a3_smt_lsb 0
+#define xd_p_reg_host_a4_smt (*(volatile byte xdata *) 0xD846)
+#define p_reg_host_a4_smt 0xD846
+#define reg_host_a4_smt_pos 0
+#define reg_host_a4_smt_len 1
+#define reg_host_a4_smt_lsb 0
+#define xd_p_reg_host_a5_smt (*(volatile byte xdata *) 0xD847)
+#define p_reg_host_a5_smt 0xD847
+#define reg_host_a5_smt_pos 0
+#define reg_host_a5_smt_len 1
+#define reg_host_a5_smt_lsb 0
+#define xd_p_reg_host_a6_smt (*(volatile byte xdata *) 0xD848)
+#define p_reg_host_a6_smt 0xD848
+#define reg_host_a6_smt_pos 0
+#define reg_host_a6_smt_len 1
+#define reg_host_a6_smt_lsb 0
+#define xd_p_reg_host_a7_smt (*(volatile byte xdata *) 0xD849)
+#define p_reg_host_a7_smt 0xD849
+#define reg_host_a7_smt_pos 0
+#define reg_host_a7_smt_len 1
+#define reg_host_a7_smt_lsb 0
+#define xd_p_reg_host_a8_smt (*(volatile byte xdata *) 0xD84A)
+#define p_reg_host_a8_smt 0xD84A
+#define reg_host_a8_smt_pos 0
+#define reg_host_a8_smt_len 1
+#define reg_host_a8_smt_lsb 0
+#define xd_p_reg_host_a9_smt (*(volatile byte xdata *) 0xD84B)
+#define p_reg_host_a9_smt 0xD84B
+#define reg_host_a9_smt_pos 0
+#define reg_host_a9_smt_len 1
+#define reg_host_a9_smt_lsb 0
+#define xd_p_reg_host_a10_smt (*(volatile byte xdata *) 0xD84C)
+#define p_reg_host_a10_smt 0xD84C
+#define reg_host_a10_smt_pos 0
+#define reg_host_a10_smt_len 1
+#define reg_host_a10_smt_lsb 0
+#define xd_p_reg_host_a11_smt (*(volatile byte xdata *) 0xD84D)
+#define p_reg_host_a11_smt 0xD84D
+#define reg_host_a11_smt_pos 0
+#define reg_host_a11_smt_len 1
+#define reg_host_a11_smt_lsb 0
+#define xd_p_reg_testmode_pds (*(volatile byte xdata *) 0xD84E)
+#define p_reg_testmode_pds 0xD84E
+#define reg_testmode_pds_pos 0
+#define reg_testmode_pds_len 3
+#define reg_testmode_pds_lsb 0
+#define xd_p_reg_debug31_pds (*(volatile byte xdata *) 0xD84F)
+#define p_reg_debug31_pds 0xD84F
+#define reg_debug31_pds_pos 0
+#define reg_debug31_pds_len 3
+#define reg_debug31_pds_lsb 0
+#define xd_p_reg_debug30_pds (*(volatile byte xdata *) 0xD850)
+#define p_reg_debug30_pds 0xD850
+#define reg_debug30_pds_pos 0
+#define reg_debug30_pds_len 3
+#define reg_debug30_pds_lsb 0
+#define xd_p_reg_debug29_pds (*(volatile byte xdata *) 0xD851)
+#define p_reg_debug29_pds 0xD851
+#define reg_debug29_pds_pos 0
+#define reg_debug29_pds_len 3
+#define reg_debug29_pds_lsb 0
+#define xd_p_reg_debug28_pds (*(volatile byte xdata *) 0xD852)
+#define p_reg_debug28_pds 0xD852
+#define reg_debug28_pds_pos 0
+#define reg_debug28_pds_len 3
+#define reg_debug28_pds_lsb 0
+#define xd_p_reg_debug27_pds (*(volatile byte xdata *) 0xD853)
+#define p_reg_debug27_pds 0xD853
+#define reg_debug27_pds_pos 0
+#define reg_debug27_pds_len 3
+#define reg_debug27_pds_lsb 0
+#define xd_p_reg_debug26_pds (*(volatile byte xdata *) 0xD854)
+#define p_reg_debug26_pds 0xD854
+#define reg_debug26_pds_pos 0
+#define reg_debug26_pds_len 3
+#define reg_debug26_pds_lsb 0
+#define xd_p_reg_debug25_pds (*(volatile byte xdata *) 0xD855)
+#define p_reg_debug25_pds 0xD855
+#define reg_debug25_pds_pos 0
+#define reg_debug25_pds_len 3
+#define reg_debug25_pds_lsb 0
+#define xd_p_reg_debug24_pds (*(volatile byte xdata *) 0xD856)
+#define p_reg_debug24_pds 0xD856
+#define reg_debug24_pds_pos 0
+#define reg_debug24_pds_len 3
+#define reg_debug24_pds_lsb 0
+#define xd_p_reg_debug23_pds (*(volatile byte xdata *) 0xD857)
+#define p_reg_debug23_pds 0xD857
+#define reg_debug23_pds_pos 0
+#define reg_debug23_pds_len 3
+#define reg_debug23_pds_lsb 0
+#define xd_p_reg_debug22_pds (*(volatile byte xdata *) 0xD858)
+#define p_reg_debug22_pds 0xD858
+#define reg_debug22_pds_pos 0
+#define reg_debug22_pds_len 3
+#define reg_debug22_pds_lsb 0
+#define xd_p_reg_gpioh1_pds (*(volatile byte xdata *) 0xD859)
+#define p_reg_gpioh1_pds 0xD859
+#define reg_gpioh1_pds_pos 0
+#define reg_gpioh1_pds_len 3
+#define reg_gpioh1_pds_lsb 0
+#define xd_p_reg_gpioh2_pds (*(volatile byte xdata *) 0xD85A)
+#define p_reg_gpioh2_pds 0xD85A
+#define reg_gpioh2_pds_pos 0
+#define reg_gpioh2_pds_len 3
+#define reg_gpioh2_pds_lsb 0
+#define xd_p_reg_gpioh3_pds (*(volatile byte xdata *) 0xD85B)
+#define p_reg_gpioh3_pds 0xD85B
+#define reg_gpioh3_pds_pos 0
+#define reg_gpioh3_pds_len 3
+#define reg_gpioh3_pds_lsb 0
+#define xd_p_reg_gpioh4_pds (*(volatile byte xdata *) 0xD85C)
+#define p_reg_gpioh4_pds 0xD85C
+#define reg_gpioh4_pds_pos 0
+#define reg_gpioh4_pds_len 3
+#define reg_gpioh4_pds_lsb 0
+#define xd_p_reg_iosda_pds (*(volatile byte xdata *) 0xD85D)
+#define p_reg_iosda_pds 0xD85D
+#define reg_iosda_pds_pos 0
+#define reg_iosda_pds_len 3
+#define reg_iosda_pds_lsb 0
+#define xd_p_reg_ioscl_pds (*(volatile byte xdata *) 0xD85E)
+#define p_reg_ioscl_pds 0xD85E
+#define reg_ioscl_pds_pos 0
+#define reg_ioscl_pds_len 3
+#define reg_ioscl_pds_lsb 0
+#define xd_p_reg_gpioh5_pds (*(volatile byte xdata *) 0xD85F)
+#define p_reg_gpioh5_pds 0xD85F
+#define reg_gpioh5_pds_pos 0
+#define reg_gpioh5_pds_len 3
+#define reg_gpioh5_pds_lsb 0
+#define xd_p_reg_bond0_pds (*(volatile byte xdata *) 0xD860)
+#define p_reg_bond0_pds 0xD860
+#define reg_bond0_pds_pos 0
+#define reg_bond0_pds_len 3
+#define reg_bond0_pds_lsb 0
+#define xd_p_reg_i2caddr6_pds (*(volatile byte xdata *) 0xD861)
+#define p_reg_i2caddr6_pds 0xD861
+#define reg_i2caddr6_pds_pos 0
+#define reg_i2caddr6_pds_len 3
+#define reg_i2caddr6_pds_lsb 0
+#define xd_p_reg_i2caddr5_pds (*(volatile byte xdata *) 0xD862)
+#define p_reg_i2caddr5_pds 0xD862
+#define reg_i2caddr5_pds_pos 0
+#define reg_i2caddr5_pds_len 3
+#define reg_i2caddr5_pds_lsb 0
+#define xd_p_reg_i2caddr4_pds (*(volatile byte xdata *) 0xD863)
+#define p_reg_i2caddr4_pds 0xD863
+#define reg_i2caddr4_pds_pos 0
+#define reg_i2caddr4_pds_len 3
+#define reg_i2caddr4_pds_lsb 0
+#define xd_p_reg_host_a0_pds (*(volatile byte xdata *) 0xD864)
+#define p_reg_host_a0_pds 0xD864
+#define reg_host_a0_pds_pos 0
+#define reg_host_a0_pds_len 3
+#define reg_host_a0_pds_lsb 0
+#define xd_p_reg_host_a1_pds (*(volatile byte xdata *) 0xD865)
+#define p_reg_host_a1_pds 0xD865
+#define reg_host_a1_pds_pos 0
+#define reg_host_a1_pds_len 3
+#define reg_host_a1_pds_lsb 0
+#define xd_p_reg_debug21_pds (*(volatile byte xdata *) 0xD866)
+#define p_reg_debug21_pds 0xD866
+#define reg_debug21_pds_pos 0
+#define reg_debug21_pds_len 3
+#define reg_debug21_pds_lsb 0
+#define xd_p_reg_debug20_pds (*(volatile byte xdata *) 0xD867)
+#define p_reg_debug20_pds 0xD867
+#define reg_debug20_pds_pos 0
+#define reg_debug20_pds_len 3
+#define reg_debug20_pds_lsb 0
+#define xd_p_reg_debug19_pds (*(volatile byte xdata *) 0xD868)
+#define p_reg_debug19_pds 0xD868
+#define reg_debug19_pds_pos 0
+#define reg_debug19_pds_len 3
+#define reg_debug19_pds_lsb 0
+#define xd_p_reg_debug18_pds (*(volatile byte xdata *) 0xD869)
+#define p_reg_debug18_pds 0xD869
+#define reg_debug18_pds_pos 0
+#define reg_debug18_pds_len 3
+#define reg_debug18_pds_lsb 0
+#define xd_p_reg_debug17_pds (*(volatile byte xdata *) 0xD86A)
+#define p_reg_debug17_pds 0xD86A
+#define reg_debug17_pds_pos 0
+#define reg_debug17_pds_len 3
+#define reg_debug17_pds_lsb 0
+#define xd_p_reg_host_a2_pds (*(volatile byte xdata *) 0xD86B)
+#define p_reg_host_a2_pds 0xD86B
+#define reg_host_a2_pds_pos 0
+#define reg_host_a2_pds_len 3
+#define reg_host_a2_pds_lsb 0
+#define xd_p_reg_host_a3_pds (*(volatile byte xdata *) 0xD86C)
+#define p_reg_host_a3_pds 0xD86C
+#define reg_host_a3_pds_pos 0
+#define reg_host_a3_pds_len 3
+#define reg_host_a3_pds_lsb 0
+#define xd_p_reg_host_a4_pds (*(volatile byte xdata *) 0xD86D)
+#define p_reg_host_a4_pds 0xD86D
+#define reg_host_a4_pds_pos 0
+#define reg_host_a4_pds_len 3
+#define reg_host_a4_pds_lsb 0
+#define xd_p_reg_host_a5_pds (*(volatile byte xdata *) 0xD86E)
+#define p_reg_host_a5_pds 0xD86E
+#define reg_host_a5_pds_pos 0
+#define reg_host_a5_pds_len 3
+#define reg_host_a5_pds_lsb 0
+#define xd_p_reg_host_a6_pds (*(volatile byte xdata *) 0xD86F)
+#define p_reg_host_a6_pds 0xD86F
+#define reg_host_a6_pds_pos 0
+#define reg_host_a6_pds_len 3
+#define reg_host_a6_pds_lsb 0
+#define xd_p_reg_p160sel_pds (*(volatile byte xdata *) 0xD870)
+#define p_reg_p160sel_pds 0xD870
+#define reg_p160sel_pds_pos 0
+#define reg_p160sel_pds_len 3
+#define reg_p160sel_pds_lsb 0
+#define xd_p_reg_gpioh13_pds (*(volatile byte xdata *) 0xD871)
+#define p_reg_gpioh13_pds 0xD871
+#define reg_gpioh13_pds_pos 0
+#define reg_gpioh13_pds_len 3
+#define reg_gpioh13_pds_lsb 0
+#define xd_p_reg_gpioh12_pds (*(volatile byte xdata *) 0xD872)
+#define p_reg_gpioh12_pds 0xD872
+#define reg_gpioh12_pds_pos 0
+#define reg_gpioh12_pds_len 3
+#define reg_gpioh12_pds_lsb 0
+#define xd_p_reg_gpioh11_pds (*(volatile byte xdata *) 0xD873)
+#define p_reg_gpioh11_pds 0xD873
+#define reg_gpioh11_pds_pos 0
+#define reg_gpioh11_pds_len 3
+#define reg_gpioh11_pds_lsb 0
+#define xd_p_reg_host_a7_pds (*(volatile byte xdata *) 0xD874)
+#define p_reg_host_a7_pds 0xD874
+#define reg_host_a7_pds_pos 0
+#define reg_host_a7_pds_len 3
+#define reg_host_a7_pds_lsb 0
+#define xd_p_reg_host_a8_pds (*(volatile byte xdata *) 0xD875)
+#define p_reg_host_a8_pds 0xD875
+#define reg_host_a8_pds_pos 0
+#define reg_host_a8_pds_len 3
+#define reg_host_a8_pds_lsb 0
+#define xd_p_reg_host_a9_pds (*(volatile byte xdata *) 0xD876)
+#define p_reg_host_a9_pds 0xD876
+#define reg_host_a9_pds_pos 0
+#define reg_host_a9_pds_len 3
+#define reg_host_a9_pds_lsb 0
+#define xd_p_reg_host_a10_pds (*(volatile byte xdata *) 0xD877)
+#define p_reg_host_a10_pds 0xD877
+#define reg_host_a10_pds_pos 0
+#define reg_host_a10_pds_len 3
+#define reg_host_a10_pds_lsb 0
+#define xd_p_reg_host_a11_pds (*(volatile byte xdata *) 0xD878)
+#define p_reg_host_a11_pds 0xD878
+#define reg_host_a11_pds_pos 0
+#define reg_host_a11_pds_len 3
+#define reg_host_a11_pds_lsb 0
+#define xd_p_reg_bondu0_pds (*(volatile byte xdata *) 0xD879)
+#define p_reg_bondu0_pds 0xD879
+#define reg_bondu0_pds_pos 0
+#define reg_bondu0_pds_len 3
+#define reg_bondu0_pds_lsb 0
+#define xd_p_reg_host_b0_pds (*(volatile byte xdata *) 0xD87A)
+#define p_reg_host_b0_pds 0xD87A
+#define reg_host_b0_pds_pos 0
+#define reg_host_b0_pds_len 3
+#define reg_host_b0_pds_lsb 0
+#define xd_p_reg_host_b1_pds (*(volatile byte xdata *) 0xD87B)
+#define p_reg_host_b1_pds 0xD87B
+#define reg_host_b1_pds_pos 0
+#define reg_host_b1_pds_len 3
+#define reg_host_b1_pds_lsb 0
+#define xd_p_reg_host_b2_pds (*(volatile byte xdata *) 0xD87C)
+#define p_reg_host_b2_pds 0xD87C
+#define reg_host_b2_pds_pos 0
+#define reg_host_b2_pds_len 3
+#define reg_host_b2_pds_lsb 0
+#define xd_p_reg_host_b3_pds (*(volatile byte xdata *) 0xD87D)
+#define p_reg_host_b3_pds 0xD87D
+#define reg_host_b3_pds_pos 0
+#define reg_host_b3_pds_len 3
+#define reg_host_b3_pds_lsb 0
+#define xd_p_reg_host_b4_pds (*(volatile byte xdata *) 0xD87E)
+#define p_reg_host_b4_pds 0xD87E
+#define reg_host_b4_pds_pos 0
+#define reg_host_b4_pds_len 3
+#define reg_host_b4_pds_lsb 0
+#define xd_p_reg_host_b5_pds (*(volatile byte xdata *) 0xD87F)
+#define p_reg_host_b5_pds 0xD87F
+#define reg_host_b5_pds_pos 0
+#define reg_host_b5_pds_len 3
+#define reg_host_b5_pds_lsb 0
+#define xd_p_reg_host_b6_pds (*(volatile byte xdata *) 0xD880)
+#define p_reg_host_b6_pds 0xD880
+#define reg_host_b6_pds_pos 0
+#define reg_host_b6_pds_len 3
+#define reg_host_b6_pds_lsb 0
+#define xd_p_reg_host_b7_pds (*(volatile byte xdata *) 0xD881)
+#define p_reg_host_b7_pds 0xD881
+#define reg_host_b7_pds_pos 0
+#define reg_host_b7_pds_len 3
+#define reg_host_b7_pds_lsb 0
+#define xd_p_reg_afe_f12_pds (*(volatile byte xdata *) 0xD882)
+#define p_reg_afe_f12_pds 0xD882
+#define reg_afe_f12_pds_pos 0
+#define reg_afe_f12_pds_len 3
+#define reg_afe_f12_pds_lsb 0
+#define xd_p_reg_host_b8_pds (*(volatile byte xdata *) 0xD883)
+#define p_reg_host_b8_pds 0xD883
+#define reg_host_b8_pds_pos 0
+#define reg_host_b8_pds_len 3
+#define reg_host_b8_pds_lsb 0
+#define xd_p_reg_host_b9_pds (*(volatile byte xdata *) 0xD884)
+#define p_reg_host_b9_pds 0xD884
+#define reg_host_b9_pds_pos 0
+#define reg_host_b9_pds_len 3
+#define reg_host_b9_pds_lsb 0
+#define xd_p_reg_host_b10_pds (*(volatile byte xdata *) 0xD885)
+#define p_reg_host_b10_pds 0xD885
+#define reg_host_b10_pds_pos 0
+#define reg_host_b10_pds_len 3
+#define reg_host_b10_pds_lsb 0
+#define xd_p_reg_host_b11_pds (*(volatile byte xdata *) 0xD886)
+#define p_reg_host_b11_pds 0xD886
+#define reg_host_b11_pds_pos 0
+#define reg_host_b11_pds_len 3
+#define reg_host_b11_pds_lsb 0
+#define xd_p_reg_debug16_pds (*(volatile byte xdata *) 0xD887)
+#define p_reg_debug16_pds 0xD887
+#define reg_debug16_pds_pos 0
+#define reg_debug16_pds_len 3
+#define reg_debug16_pds_lsb 0
+#define xd_p_reg_debug15_pds (*(volatile byte xdata *) 0xD888)
+#define p_reg_debug15_pds 0xD888
+#define reg_debug15_pds_pos 0
+#define reg_debug15_pds_len 3
+#define reg_debug15_pds_lsb 0
+#define xd_p_reg_debug14_pds (*(volatile byte xdata *) 0xD889)
+#define p_reg_debug14_pds 0xD889
+#define reg_debug14_pds_pos 0
+#define reg_debug14_pds_len 3
+#define reg_debug14_pds_lsb 0
+#define xd_p_reg_debug13_pds (*(volatile byte xdata *) 0xD88A)
+#define p_reg_debug13_pds 0xD88A
+#define reg_debug13_pds_pos 0
+#define reg_debug13_pds_len 3
+#define reg_debug13_pds_lsb 0
+#define xd_p_reg_debug12_pds (*(volatile byte xdata *) 0xD88B)
+#define p_reg_debug12_pds 0xD88B
+#define reg_debug12_pds_pos 0
+#define reg_debug12_pds_len 3
+#define reg_debug12_pds_lsb 0
+#define xd_p_reg_debug11_pds (*(volatile byte xdata *) 0xD88C)
+#define p_reg_debug11_pds 0xD88C
+#define reg_debug11_pds_pos 0
+#define reg_debug11_pds_len 3
+#define reg_debug11_pds_lsb 0
+#define xd_p_reg_debug10_pds (*(volatile byte xdata *) 0xD88D)
+#define p_reg_debug10_pds 0xD88D
+#define reg_debug10_pds_pos 0
+#define reg_debug10_pds_len 3
+#define reg_debug10_pds_lsb 0
+#define xd_p_reg_debug9_pds (*(volatile byte xdata *) 0xD88E)
+#define p_reg_debug9_pds 0xD88E
+#define reg_debug9_pds_pos 0
+#define reg_debug9_pds_len 3
+#define reg_debug9_pds_lsb 0
+#define xd_p_reg_debug8_pds (*(volatile byte xdata *) 0xD88F)
+#define p_reg_debug8_pds 0xD88F
+#define reg_debug8_pds_pos 0
+#define reg_debug8_pds_len 3
+#define reg_debug8_pds_lsb 0
+#define xd_p_reg_debug7_pds (*(volatile byte xdata *) 0xD890)
+#define p_reg_debug7_pds 0xD890
+#define reg_debug7_pds_pos 0
+#define reg_debug7_pds_len 3
+#define reg_debug7_pds_lsb 0
+#define xd_p_reg_debug6_pds (*(volatile byte xdata *) 0xD891)
+#define p_reg_debug6_pds 0xD891
+#define reg_debug6_pds_pos 0
+#define reg_debug6_pds_len 3
+#define reg_debug6_pds_lsb 0
+#define xd_p_reg_debug5_pds (*(volatile byte xdata *) 0xD892)
+#define p_reg_debug5_pds 0xD892
+#define reg_debug5_pds_pos 0
+#define reg_debug5_pds_len 3
+#define reg_debug5_pds_lsb 0
+#define xd_p_reg_debug4_pds (*(volatile byte xdata *) 0xD893)
+#define p_reg_debug4_pds 0xD893
+#define reg_debug4_pds_pos 0
+#define reg_debug4_pds_len 3
+#define reg_debug4_pds_lsb 0
+#define xd_p_reg_clko_pds (*(volatile byte xdata *) 0xD894)
+#define p_reg_clko_pds 0xD894
+#define reg_clko_pds_pos 0
+#define reg_clko_pds_len 3
+#define reg_clko_pds_lsb 0
+#define xd_p_reg_gpioh6_pds (*(volatile byte xdata *) 0xD895)
+#define p_reg_gpioh6_pds 0xD895
+#define reg_gpioh6_pds_pos 0
+#define reg_gpioh6_pds_len 3
+#define reg_gpioh6_pds_lsb 0
+#define xd_p_reg_gpioh7_pds (*(volatile byte xdata *) 0xD896)
+#define p_reg_gpioh7_pds 0xD896
+#define reg_gpioh7_pds_pos 0
+#define reg_gpioh7_pds_len 3
+#define reg_gpioh7_pds_lsb 0
+#define xd_p_reg_gpioh8_pds (*(volatile byte xdata *) 0xD897)
+#define p_reg_gpioh8_pds 0xD897
+#define reg_gpioh8_pds_pos 0
+#define reg_gpioh8_pds_len 3
+#define reg_gpioh8_pds_lsb 0
+#define xd_p_reg_gpioh9_pds (*(volatile byte xdata *) 0xD898)
+#define p_reg_gpioh9_pds 0xD898
+#define reg_gpioh9_pds_pos 0
+#define reg_gpioh9_pds_len 3
+#define reg_gpioh9_pds_lsb 0
+#define xd_p_reg_gpioh10_pds (*(volatile byte xdata *) 0xD899)
+#define p_reg_gpioh10_pds 0xD899
+#define reg_gpioh10_pds_pos 0
+#define reg_gpioh10_pds_len 3
+#define reg_gpioh10_pds_lsb 0
+#define xd_p_reg_debug3_pds (*(volatile byte xdata *) 0xD89A)
+#define p_reg_debug3_pds 0xD89A
+#define reg_debug3_pds_pos 0
+#define reg_debug3_pds_len 3
+#define reg_debug3_pds_lsb 0
+#define xd_p_reg_debug2_pds (*(volatile byte xdata *) 0xD89B)
+#define p_reg_debug2_pds 0xD89B
+#define reg_debug2_pds_pos 0
+#define reg_debug2_pds_len 3
+#define reg_debug2_pds_lsb 0
+#define xd_p_reg_debug1_pds (*(volatile byte xdata *) 0xD89C)
+#define p_reg_debug1_pds 0xD89C
+#define reg_debug1_pds_pos 0
+#define reg_debug1_pds_len 3
+#define reg_debug1_pds_lsb 0
+#define xd_p_reg_debug0_pds (*(volatile byte xdata *) 0xD89D)
+#define p_reg_debug0_pds 0xD89D
+#define reg_debug0_pds_pos 0
+#define reg_debug0_pds_len 3
+#define reg_debug0_pds_lsb 0
+#define xd_p_reg_gpiot1_pds (*(volatile byte xdata *) 0xD89E)
+#define p_reg_gpiot1_pds 0xD89E
+#define reg_gpiot1_pds_pos 0
+#define reg_gpiot1_pds_len 3
+#define reg_gpiot1_pds_lsb 0
+#define xd_p_reg_gpiot2_pds (*(volatile byte xdata *) 0xD89F)
+#define p_reg_gpiot2_pds 0xD89F
+#define reg_gpiot2_pds_pos 0
+#define reg_gpiot2_pds_len 3
+#define reg_gpiot2_pds_lsb 0
+#define xd_p_reg_rfagc_pds (*(volatile byte xdata *) 0xD8A0)
+#define p_reg_rfagc_pds 0xD8A0
+#define reg_rfagc_pds_pos 0
+#define reg_rfagc_pds_len 3
+#define reg_rfagc_pds_lsb 0
+#define xd_p_reg_ifagc_pds (*(volatile byte xdata *) 0xD8A1)
+#define p_reg_ifagc_pds 0xD8A1
+#define reg_ifagc_pds_pos 0
+#define reg_ifagc_pds_len 3
+#define reg_ifagc_pds_lsb 0
+#define xd_p_reg_gpiot3_pds (*(volatile byte xdata *) 0xD8A2)
+#define p_reg_gpiot3_pds 0xD8A2
+#define reg_gpiot3_pds_pos 0
+#define reg_gpiot3_pds_len 3
+#define reg_gpiot3_pds_lsb 0
+#define xd_p_reg_i2caddr3_pds (*(volatile byte xdata *) 0xD8A3)
+#define p_reg_i2caddr3_pds 0xD8A3
+#define reg_i2caddr3_pds_pos 0
+#define reg_i2caddr3_pds_len 3
+#define reg_i2caddr3_pds_lsb 0
+#define xd_p_reg_i2caddr2_pds (*(volatile byte xdata *) 0xD8A4)
+#define p_reg_i2caddr2_pds 0xD8A4
+#define reg_i2caddr2_pds_pos 0
+#define reg_i2caddr2_pds_len 3
+#define reg_i2caddr2_pds_lsb 0
+#define xd_p_reg_i2caddr1_pds (*(volatile byte xdata *) 0xD8A5)
+#define p_reg_i2caddr1_pds 0xD8A5
+#define reg_i2caddr1_pds_pos 0
+#define reg_i2caddr1_pds_len 3
+#define reg_i2caddr1_pds_lsb 0
+#define xd_p_reg_afe_sel33_pds (*(volatile byte xdata *) 0xD8A6)
+#define p_reg_afe_sel33_pds 0xD8A6
+#define reg_afe_sel33_pds_pos 0
+#define reg_afe_sel33_pds_len 3
+#define reg_afe_sel33_pds_lsb 0
+#define xd_p_reg_iotunscl_pds (*(volatile byte xdata *) 0xD8A7)
+#define p_reg_iotunscl_pds 0xD8A7
+#define reg_iotunscl_pds_pos 0
+#define reg_iotunscl_pds_len 3
+#define reg_iotunscl_pds_lsb 0
+#define xd_p_reg_iotunsda_pds (*(volatile byte xdata *) 0xD8A8)
+#define p_reg_iotunsda_pds 0xD8A8
+#define reg_iotunsda_pds_pos 0
+#define reg_iotunsda_pds_len 3
+#define reg_iotunsda_pds_lsb 0
+#define xd_p_reg_rxdofsm_pds (*(volatile byte xdata *) 0xD8A9)
+#define p_reg_rxdofsm_pds 0xD8A9
+#define reg_rxdofsm_pds_pos 0
+#define reg_rxdofsm_pds_len 3
+#define reg_rxdofsm_pds_lsb 0
+#define xd_p_reg_txdofsm_pds (*(volatile byte xdata *) 0xD8AA)
+#define p_reg_txdofsm_pds 0xD8AA
+#define reg_txdofsm_pds_pos 0
+#define reg_txdofsm_pds_len 3
+#define reg_txdofsm_pds_lsb 0
+#define xd_p_reg_rxdlink_pds (*(volatile byte xdata *) 0xD8AB)
+#define p_reg_rxdlink_pds 0xD8AB
+#define reg_rxdlink_pds_pos 0
+#define reg_rxdlink_pds_len 3
+#define reg_rxdlink_pds_lsb 0
+#define xd_p_reg_txdlink_pds (*(volatile byte xdata *) 0xD8AC)
+#define p_reg_txdlink_pds 0xD8AC
+#define reg_txdlink_pds_pos 0
+#define reg_txdlink_pds_len 3
+#define reg_txdlink_pds_lsb 0
+#define xd_p_reg_ck_test_pds (*(volatile byte xdata *) 0xD8AD)
+#define p_reg_ck_test_pds 0xD8AD
+#define reg_ck_test_pds_pos 0
+#define reg_ck_test_pds_len 3
+#define reg_ck_test_pds_lsb 0
+#define xd_r_reg_top_gpioh1_i (*(volatile byte xdata *) 0xD8AE)
+#define r_reg_top_gpioh1_i 0xD8AE
+#define reg_top_gpioh1_i_pos 0
+#define reg_top_gpioh1_i_len 1
+#define reg_top_gpioh1_i_lsb 0
+#define xd_p_reg_top_gpioh1_o (*(volatile byte xdata *) 0xD8AF)
+#define p_reg_top_gpioh1_o 0xD8AF
+#define reg_top_gpioh1_o_pos 0
+#define reg_top_gpioh1_o_len 1
+#define reg_top_gpioh1_o_lsb 0
+#define xd_p_reg_top_gpioh1_en (*(volatile byte xdata *) 0xD8B0)
+#define p_reg_top_gpioh1_en 0xD8B0
+#define reg_top_gpioh1_en_pos 0
+#define reg_top_gpioh1_en_len 1
+#define reg_top_gpioh1_en_lsb 0
+#define xd_p_reg_top_gpioh1_on (*(volatile byte xdata *) 0xD8B1)
+#define p_reg_top_gpioh1_on 0xD8B1
+#define reg_top_gpioh1_on_pos 0
+#define reg_top_gpioh1_on_len 1
+#define reg_top_gpioh1_on_lsb 0
+#define xd_r_reg_top_gpioh3_i (*(volatile byte xdata *) 0xD8B2)
+#define r_reg_top_gpioh3_i 0xD8B2
+#define reg_top_gpioh3_i_pos 0
+#define reg_top_gpioh3_i_len 1
+#define reg_top_gpioh3_i_lsb 0
+#define xd_p_reg_top_gpioh3_o (*(volatile byte xdata *) 0xD8B3)
+#define p_reg_top_gpioh3_o 0xD8B3
+#define reg_top_gpioh3_o_pos 0
+#define reg_top_gpioh3_o_len 1
+#define reg_top_gpioh3_o_lsb 0
+#define xd_p_reg_top_gpioh3_en (*(volatile byte xdata *) 0xD8B4)
+#define p_reg_top_gpioh3_en 0xD8B4
+#define reg_top_gpioh3_en_pos 0
+#define reg_top_gpioh3_en_len 1
+#define reg_top_gpioh3_en_lsb 0
+#define xd_p_reg_top_gpioh3_on (*(volatile byte xdata *) 0xD8B5)
+#define p_reg_top_gpioh3_on 0xD8B5
+#define reg_top_gpioh3_on_pos 0
+#define reg_top_gpioh3_on_len 1
+#define reg_top_gpioh3_on_lsb 0
+#define xd_r_reg_top_gpioh2_i (*(volatile byte xdata *) 0xD8B6)
+#define r_reg_top_gpioh2_i 0xD8B6
+#define reg_top_gpioh2_i_pos 0
+#define reg_top_gpioh2_i_len 1
+#define reg_top_gpioh2_i_lsb 0
+#define xd_p_reg_top_gpioh2_o (*(volatile byte xdata *) 0xD8B7)
+#define p_reg_top_gpioh2_o 0xD8B7
+#define reg_top_gpioh2_o_pos 0
+#define reg_top_gpioh2_o_len 1
+#define reg_top_gpioh2_o_lsb 0
+#define xd_p_reg_top_gpioh2_en (*(volatile byte xdata *) 0xD8B8)
+#define p_reg_top_gpioh2_en 0xD8B8
+#define reg_top_gpioh2_en_pos 0
+#define reg_top_gpioh2_en_len 1
+#define reg_top_gpioh2_en_lsb 0
+#define xd_p_reg_top_gpioh2_on (*(volatile byte xdata *) 0xD8B9)
+#define p_reg_top_gpioh2_on 0xD8B9
+#define reg_top_gpioh2_on_pos 0
+#define reg_top_gpioh2_on_len 1
+#define reg_top_gpioh2_on_lsb 0
+#define xd_r_reg_top_gpioh5_i (*(volatile byte xdata *) 0xD8BA)
+#define r_reg_top_gpioh5_i 0xD8BA
+#define reg_top_gpioh5_i_pos 0
+#define reg_top_gpioh5_i_len 1
+#define reg_top_gpioh5_i_lsb 0
+#define xd_p_reg_top_gpioh5_o (*(volatile byte xdata *) 0xD8BB)
+#define p_reg_top_gpioh5_o 0xD8BB
+#define reg_top_gpioh5_o_pos 0
+#define reg_top_gpioh5_o_len 1
+#define reg_top_gpioh5_o_lsb 0
+#define xd_p_reg_top_gpioh5_en (*(volatile byte xdata *) 0xD8BC)
+#define p_reg_top_gpioh5_en 0xD8BC
+#define reg_top_gpioh5_en_pos 0
+#define reg_top_gpioh5_en_len 1
+#define reg_top_gpioh5_en_lsb 0
+#define xd_p_reg_top_gpioh5_on (*(volatile byte xdata *) 0xD8BD)
+#define p_reg_top_gpioh5_on 0xD8BD
+#define reg_top_gpioh5_on_pos 0
+#define reg_top_gpioh5_on_len 1
+#define reg_top_gpioh5_on_lsb 0
+#define xd_r_reg_top_gpioh4_i (*(volatile byte xdata *) 0xD8BE)
+#define r_reg_top_gpioh4_i 0xD8BE
+#define reg_top_gpioh4_i_pos 0
+#define reg_top_gpioh4_i_len 1
+#define reg_top_gpioh4_i_lsb 0
+#define xd_p_reg_top_gpioh4_o (*(volatile byte xdata *) 0xD8BF)
+#define p_reg_top_gpioh4_o 0xD8BF
+#define reg_top_gpioh4_o_pos 0
+#define reg_top_gpioh4_o_len 1
+#define reg_top_gpioh4_o_lsb 0
+#define xd_p_reg_top_gpioh4_en (*(volatile byte xdata *) 0xD8C0)
+#define p_reg_top_gpioh4_en 0xD8C0
+#define reg_top_gpioh4_en_pos 0
+#define reg_top_gpioh4_en_len 1
+#define reg_top_gpioh4_en_lsb 0
+#define xd_p_reg_top_gpioh4_on (*(volatile byte xdata *) 0xD8C1)
+#define p_reg_top_gpioh4_on 0xD8C1
+#define reg_top_gpioh4_on_pos 0
+#define reg_top_gpioh4_on_len 1
+#define reg_top_gpioh4_on_lsb 0
+#define xd_r_reg_top_gpioh7_i (*(volatile byte xdata *) 0xD8C2)
+#define r_reg_top_gpioh7_i 0xD8C2
+#define reg_top_gpioh7_i_pos 0
+#define reg_top_gpioh7_i_len 1
+#define reg_top_gpioh7_i_lsb 0
+#define xd_p_reg_top_gpioh7_o (*(volatile byte xdata *) 0xD8C3)
+#define p_reg_top_gpioh7_o 0xD8C3
+#define reg_top_gpioh7_o_pos 0
+#define reg_top_gpioh7_o_len 1
+#define reg_top_gpioh7_o_lsb 0
+#define xd_p_reg_top_gpioh7_en (*(volatile byte xdata *) 0xD8C4)
+#define p_reg_top_gpioh7_en 0xD8C4
+#define reg_top_gpioh7_en_pos 0
+#define reg_top_gpioh7_en_len 1
+#define reg_top_gpioh7_en_lsb 0
+#define xd_p_reg_top_gpioh7_on (*(volatile byte xdata *) 0xD8C5)
+#define p_reg_top_gpioh7_on 0xD8C5
+#define reg_top_gpioh7_on_pos 0
+#define reg_top_gpioh7_on_len 1
+#define reg_top_gpioh7_on_lsb 0
+#define xd_r_reg_top_gpioh6_i (*(volatile byte xdata *) 0xD8C6)
+#define r_reg_top_gpioh6_i 0xD8C6
+#define reg_top_gpioh6_i_pos 0
+#define reg_top_gpioh6_i_len 1
+#define reg_top_gpioh6_i_lsb 0
+#define xd_p_reg_top_gpioh6_o (*(volatile byte xdata *) 0xD8C7)
+#define p_reg_top_gpioh6_o 0xD8C7
+#define reg_top_gpioh6_o_pos 0
+#define reg_top_gpioh6_o_len 1
+#define reg_top_gpioh6_o_lsb 0
+#define xd_p_reg_top_gpioh6_en (*(volatile byte xdata *) 0xD8C8)
+#define p_reg_top_gpioh6_en 0xD8C8
+#define reg_top_gpioh6_en_pos 0
+#define reg_top_gpioh6_en_len 1
+#define reg_top_gpioh6_en_lsb 0
+#define xd_p_reg_top_gpioh6_on (*(volatile byte xdata *) 0xD8C9)
+#define p_reg_top_gpioh6_on 0xD8C9
+#define reg_top_gpioh6_on_pos 0
+#define reg_top_gpioh6_on_len 1
+#define reg_top_gpioh6_on_lsb 0
+#define xd_r_reg_top_gpioh9_i (*(volatile byte xdata *) 0xD8CA)
+#define r_reg_top_gpioh9_i 0xD8CA
+#define reg_top_gpioh9_i_pos 0
+#define reg_top_gpioh9_i_len 1
+#define reg_top_gpioh9_i_lsb 0
+#define xd_p_reg_top_gpioh9_o (*(volatile byte xdata *) 0xD8CB)
+#define p_reg_top_gpioh9_o 0xD8CB
+#define reg_top_gpioh9_o_pos 0
+#define reg_top_gpioh9_o_len 1
+#define reg_top_gpioh9_o_lsb 0
+#define xd_p_reg_top_gpioh9_en (*(volatile byte xdata *) 0xD8CC)
+#define p_reg_top_gpioh9_en 0xD8CC
+#define reg_top_gpioh9_en_pos 0
+#define reg_top_gpioh9_en_len 1
+#define reg_top_gpioh9_en_lsb 0
+#define xd_p_reg_top_gpioh9_on (*(volatile byte xdata *) 0xD8CD)
+#define p_reg_top_gpioh9_on 0xD8CD
+#define reg_top_gpioh9_on_pos 0
+#define reg_top_gpioh9_on_len 1
+#define reg_top_gpioh9_on_lsb 0
+#define xd_r_reg_top_gpioh8_i (*(volatile byte xdata *) 0xD8CE)
+#define r_reg_top_gpioh8_i 0xD8CE
+#define reg_top_gpioh8_i_pos 0
+#define reg_top_gpioh8_i_len 1
+#define reg_top_gpioh8_i_lsb 0
+#define xd_p_reg_top_gpioh8_o (*(volatile byte xdata *) 0xD8CF)
+#define p_reg_top_gpioh8_o 0xD8CF
+#define reg_top_gpioh8_o_pos 0
+#define reg_top_gpioh8_o_len 1
+#define reg_top_gpioh8_o_lsb 0
+#define xd_p_reg_top_gpioh8_en (*(volatile byte xdata *) 0xD8D0)
+#define p_reg_top_gpioh8_en 0xD8D0
+#define reg_top_gpioh8_en_pos 0
+#define reg_top_gpioh8_en_len 1
+#define reg_top_gpioh8_en_lsb 0
+#define xd_p_reg_top_gpioh8_on (*(volatile byte xdata *) 0xD8D1)
+#define p_reg_top_gpioh8_on 0xD8D1
+#define reg_top_gpioh8_on_pos 0
+#define reg_top_gpioh8_on_len 1
+#define reg_top_gpioh8_on_lsb 0
+#define xd_r_reg_top_gpioh11_i (*(volatile byte xdata *) 0xD8D2)
+#define r_reg_top_gpioh11_i 0xD8D2
+#define reg_top_gpioh11_i_pos 0
+#define reg_top_gpioh11_i_len 1
+#define reg_top_gpioh11_i_lsb 0
+#define xd_p_reg_top_gpioh11_o (*(volatile byte xdata *) 0xD8D3)
+#define p_reg_top_gpioh11_o 0xD8D3
+#define reg_top_gpioh11_o_pos 0
+#define reg_top_gpioh11_o_len 1
+#define reg_top_gpioh11_o_lsb 0
+#define xd_p_reg_top_gpioh11_en (*(volatile byte xdata *) 0xD8D4)
+#define p_reg_top_gpioh11_en 0xD8D4
+#define reg_top_gpioh11_en_pos 0
+#define reg_top_gpioh11_en_len 1
+#define reg_top_gpioh11_en_lsb 0
+#define xd_p_reg_top_gpioh11_on (*(volatile byte xdata *) 0xD8D5)
+#define p_reg_top_gpioh11_on 0xD8D5
+#define reg_top_gpioh11_on_pos 0
+#define reg_top_gpioh11_on_len 1
+#define reg_top_gpioh11_on_lsb 0
+#define xd_r_reg_top_gpioh10_i (*(volatile byte xdata *) 0xD8D6)
+#define r_reg_top_gpioh10_i 0xD8D6
+#define reg_top_gpioh10_i_pos 0
+#define reg_top_gpioh10_i_len 1
+#define reg_top_gpioh10_i_lsb 0
+#define xd_p_reg_top_gpioh10_o (*(volatile byte xdata *) 0xD8D7)
+#define p_reg_top_gpioh10_o 0xD8D7
+#define reg_top_gpioh10_o_pos 0
+#define reg_top_gpioh10_o_len 1
+#define reg_top_gpioh10_o_lsb 0
+#define xd_p_reg_top_gpioh10_en (*(volatile byte xdata *) 0xD8D8)
+#define p_reg_top_gpioh10_en 0xD8D8
+#define reg_top_gpioh10_en_pos 0
+#define reg_top_gpioh10_en_len 1
+#define reg_top_gpioh10_en_lsb 0
+#define xd_p_reg_top_gpioh10_on (*(volatile byte xdata *) 0xD8D9)
+#define p_reg_top_gpioh10_on 0xD8D9
+#define reg_top_gpioh10_on_pos 0
+#define reg_top_gpioh10_on_len 1
+#define reg_top_gpioh10_on_lsb 0
+#define xd_r_reg_top_gpioh13_i (*(volatile byte xdata *) 0xD8DA)
+#define r_reg_top_gpioh13_i 0xD8DA
+#define reg_top_gpioh13_i_pos 0
+#define reg_top_gpioh13_i_len 1
+#define reg_top_gpioh13_i_lsb 0
+#define xd_p_reg_top_gpioh13_o (*(volatile byte xdata *) 0xD8DB)
+#define p_reg_top_gpioh13_o 0xD8DB
+#define reg_top_gpioh13_o_pos 0
+#define reg_top_gpioh13_o_len 1
+#define reg_top_gpioh13_o_lsb 0
+#define xd_p_reg_top_gpioh13_en (*(volatile byte xdata *) 0xD8DC)
+#define p_reg_top_gpioh13_en 0xD8DC
+#define reg_top_gpioh13_en_pos 0
+#define reg_top_gpioh13_en_len 1
+#define reg_top_gpioh13_en_lsb 0
+#define xd_p_reg_top_gpioh13_on (*(volatile byte xdata *) 0xD8DD)
+#define p_reg_top_gpioh13_on 0xD8DD
+#define reg_top_gpioh13_on_pos 0
+#define reg_top_gpioh13_on_len 1
+#define reg_top_gpioh13_on_lsb 0
+#define xd_r_reg_top_gpioh12_i (*(volatile byte xdata *) 0xD8DE)
+#define r_reg_top_gpioh12_i 0xD8DE
+#define reg_top_gpioh12_i_pos 0
+#define reg_top_gpioh12_i_len 1
+#define reg_top_gpioh12_i_lsb 0
+#define xd_p_reg_top_gpioh12_o (*(volatile byte xdata *) 0xD8DF)
+#define p_reg_top_gpioh12_o 0xD8DF
+#define reg_top_gpioh12_o_pos 0
+#define reg_top_gpioh12_o_len 1
+#define reg_top_gpioh12_o_lsb 0
+#define xd_p_reg_top_gpioh12_en (*(volatile byte xdata *) 0xD8E0)
+#define p_reg_top_gpioh12_en 0xD8E0
+#define reg_top_gpioh12_en_pos 0
+#define reg_top_gpioh12_en_len 1
+#define reg_top_gpioh12_en_lsb 0
+#define xd_p_reg_top_gpioh12_on (*(volatile byte xdata *) 0xD8E1)
+#define p_reg_top_gpioh12_on 0xD8E1
+#define reg_top_gpioh12_on_pos 0
+#define reg_top_gpioh12_on_len 1
+#define reg_top_gpioh12_on_lsb 0
+#define xd_r_reg_top_gpiot1_i (*(volatile byte xdata *) 0xD8E2)
+#define r_reg_top_gpiot1_i 0xD8E2
+#define reg_top_gpiot1_i_pos 0
+#define reg_top_gpiot1_i_len 1
+#define reg_top_gpiot1_i_lsb 0
+#define xd_p_reg_top_gpiot1_o (*(volatile byte xdata *) 0xD8E3)
+#define p_reg_top_gpiot1_o 0xD8E3
+#define reg_top_gpiot1_o_pos 0
+#define reg_top_gpiot1_o_len 1
+#define reg_top_gpiot1_o_lsb 0
+#define xd_p_reg_top_gpiot1_en (*(volatile byte xdata *) 0xD8E4)
+#define p_reg_top_gpiot1_en 0xD8E4
+#define reg_top_gpiot1_en_pos 0
+#define reg_top_gpiot1_en_len 1
+#define reg_top_gpiot1_en_lsb 0
+#define xd_p_reg_top_gpiot1_on (*(volatile byte xdata *) 0xD8E5)
+#define p_reg_top_gpiot1_on 0xD8E5
+#define reg_top_gpiot1_on_pos 0
+#define reg_top_gpiot1_on_len 1
+#define reg_top_gpiot1_on_lsb 0
+#define xd_r_reg_top_gpiot3_i (*(volatile byte xdata *) 0xD8E6)
+#define r_reg_top_gpiot3_i 0xD8E6
+#define reg_top_gpiot3_i_pos 0
+#define reg_top_gpiot3_i_len 1
+#define reg_top_gpiot3_i_lsb 0
+#define xd_p_reg_top_gpiot3_o (*(volatile byte xdata *) 0xD8E7)
+#define p_reg_top_gpiot3_o 0xD8E7
+#define reg_top_gpiot3_o_pos 0
+#define reg_top_gpiot3_o_len 1
+#define reg_top_gpiot3_o_lsb 0
+#define xd_p_reg_top_gpiot3_en (*(volatile byte xdata *) 0xD8E8)
+#define p_reg_top_gpiot3_en 0xD8E8
+#define reg_top_gpiot3_en_pos 0
+#define reg_top_gpiot3_en_len 1
+#define reg_top_gpiot3_en_lsb 0
+#define xd_p_reg_top_gpiot3_on (*(volatile byte xdata *) 0xD8E9)
+#define p_reg_top_gpiot3_on 0xD8E9
+#define reg_top_gpiot3_on_pos 0
+#define reg_top_gpiot3_on_len 1
+#define reg_top_gpiot3_on_lsb 0
+#define xd_r_reg_top_gpiot2_i (*(volatile byte xdata *) 0xD8EA)
+#define r_reg_top_gpiot2_i 0xD8EA
+#define reg_top_gpiot2_i_pos 0
+#define reg_top_gpiot2_i_len 1
+#define reg_top_gpiot2_i_lsb 0
+#define xd_p_reg_top_gpiot2_o (*(volatile byte xdata *) 0xD8EB)
+#define p_reg_top_gpiot2_o 0xD8EB
+#define reg_top_gpiot2_o_pos 0
+#define reg_top_gpiot2_o_len 1
+#define reg_top_gpiot2_o_lsb 0
+#define xd_p_reg_top_gpiot2_en (*(volatile byte xdata *) 0xD8EC)
+#define p_reg_top_gpiot2_en 0xD8EC
+#define reg_top_gpiot2_en_pos 0
+#define reg_top_gpiot2_en_len 1
+#define reg_top_gpiot2_en_lsb 0
+#define xd_p_reg_top_gpiot2_on (*(volatile byte xdata *) 0xD8ED)
+#define p_reg_top_gpiot2_on 0xD8ED
+#define reg_top_gpiot2_on_pos 0
+#define reg_top_gpiot2_on_len 1
+#define reg_top_gpiot2_on_lsb 0
+#define xd_p_reg_top_lock2_out (*(volatile byte xdata *) 0xD8EE)
+#define p_reg_top_lock2_out 0xD8EE
+#define reg_top_lock2_out_pos 0
+#define reg_top_lock2_out_len 1
+#define reg_top_lock2_out_lsb 0
+#define xd_p_reg_top_lock2_tpsd (*(volatile byte xdata *) 0xD8EF)
+#define p_reg_top_lock2_tpsd 0xD8EF
+#define reg_top_lock2_tpsd_pos 0
+#define reg_top_lock2_tpsd_len 1
+#define reg_top_lock2_tpsd_lsb 0
+#define xd_p_reg_top_lock2_o (*(volatile byte xdata *) 0xD8F0)
+#define p_reg_top_lock2_o 0xD8F0
+#define reg_top_lock2_o_pos 0
+#define reg_top_lock2_o_len 1
+#define reg_top_lock2_o_lsb 0
+#define xd_p_reg_top_lock2_en (*(volatile byte xdata *) 0xD8F1)
+#define p_reg_top_lock2_en 0xD8F1
+#define reg_top_lock2_en_pos 0
+#define reg_top_lock2_en_len 1
+#define reg_top_lock2_en_lsb 0
+#define xd_p_reg_top_lock2_on (*(volatile byte xdata *) 0xD8F2)
+#define p_reg_top_lock2_on 0xD8F2
+#define reg_top_lock2_on_pos 0
+#define reg_top_lock2_on_len 1
+#define reg_top_lock2_on_lsb 0
+#define xd_p_reg_top_lock1_out (*(volatile byte xdata *) 0xD8F3)
+#define p_reg_top_lock1_out 0xD8F3
+#define reg_top_lock1_out_pos 0
+#define reg_top_lock1_out_len 1
+#define reg_top_lock1_out_lsb 0
+#define xd_p_reg_top_lock1_tpsd (*(volatile byte xdata *) 0xD8F4)
+#define p_reg_top_lock1_tpsd 0xD8F4
+#define reg_top_lock1_tpsd_pos 0
+#define reg_top_lock1_tpsd_len 1
+#define reg_top_lock1_tpsd_lsb 0
+#define xd_p_reg_top_lock1_o (*(volatile byte xdata *) 0xD8F5)
+#define p_reg_top_lock1_o 0xD8F5
+#define reg_top_lock1_o_pos 0
+#define reg_top_lock1_o_len 1
+#define reg_top_lock1_o_lsb 0
+#define xd_p_reg_top_lock1_en (*(volatile byte xdata *) 0xD8F6)
+#define p_reg_top_lock1_en 0xD8F6
+#define reg_top_lock1_en_pos 0
+#define reg_top_lock1_en_len 1
+#define reg_top_lock1_en_lsb 0
+#define xd_p_reg_top_lock1_on (*(volatile byte xdata *) 0xD8F7)
+#define p_reg_top_lock1_on 0xD8F7
+#define reg_top_lock1_on_pos 0
+#define reg_top_lock1_on_len 1
+#define reg_top_lock1_on_lsb 0
+#define xd_p_reg_top_lock4_out (*(volatile byte xdata *) 0xD8F8)
+#define p_reg_top_lock4_out 0xD8F8
+#define reg_top_lock4_out_pos 0
+#define reg_top_lock4_out_len 1
+#define reg_top_lock4_out_lsb 0
+#define xd_p_reg_top_lock4_tpsd (*(volatile byte xdata *) 0xD8F9)
+#define p_reg_top_lock4_tpsd 0xD8F9
+#define reg_top_lock4_tpsd_pos 0
+#define reg_top_lock4_tpsd_len 1
+#define reg_top_lock4_tpsd_lsb 0
+#define xd_p_reg_top_lock4_o (*(volatile byte xdata *) 0xD8FA)
+#define p_reg_top_lock4_o 0xD8FA
+#define reg_top_lock4_o_pos 0
+#define reg_top_lock4_o_len 1
+#define reg_top_lock4_o_lsb 0
+#define xd_p_reg_top_lock4_en (*(volatile byte xdata *) 0xD8FB)
+#define p_reg_top_lock4_en 0xD8FB
+#define reg_top_lock4_en_pos 0
+#define reg_top_lock4_en_len 1
+#define reg_top_lock4_en_lsb 0
+#define xd_p_reg_top_lock4_on (*(volatile byte xdata *) 0xD8FC)
+#define p_reg_top_lock4_on 0xD8FC
+#define reg_top_lock4_on_pos 0
+#define reg_top_lock4_on_len 1
+#define reg_top_lock4_on_lsb 0
+#define xd_p_reg_top_lock3_out (*(volatile byte xdata *) 0xD8FD)
+#define p_reg_top_lock3_out 0xD8FD
+#define reg_top_lock3_out_pos 0
+#define reg_top_lock3_out_len 1
+#define reg_top_lock3_out_lsb 0
+#define xd_p_reg_top_lock3_tpsd (*(volatile byte xdata *) 0xD8FE)
+#define p_reg_top_lock3_tpsd 0xD8FE
+#define reg_top_lock3_tpsd_pos 0
+#define reg_top_lock3_tpsd_len 1
+#define reg_top_lock3_tpsd_lsb 0
+#define xd_p_reg_top_lock3_o (*(volatile byte xdata *) 0xD8FF)
+#define p_reg_top_lock3_o 0xD8FF
+#define reg_top_lock3_o_pos 0
+#define reg_top_lock3_o_len 1
+#define reg_top_lock3_o_lsb 0
+#define xd_p_reg_top_lock3_en (*(volatile byte xdata *) 0xD900)
+#define p_reg_top_lock3_en 0xD900
+#define reg_top_lock3_en_pos 0
+#define reg_top_lock3_en_len 1
+#define reg_top_lock3_en_lsb 0
+#define xd_p_reg_top_lock3_on (*(volatile byte xdata *) 0xD901)
+#define p_reg_top_lock3_on 0xD901
+#define reg_top_lock3_on_pos 0
+#define reg_top_lock3_on_len 1
+#define reg_top_lock3_on_lsb 0
+#define xd_p_reg_top_pwm0_en (*(volatile byte xdata *) 0xD902)
+#define p_reg_top_pwm0_en 0xD902
+#define reg_top_pwm0_en_pos 0
+#define reg_top_pwm0_en_len 1
+#define reg_top_pwm0_en_lsb 0
+#define xd_p_reg_top_pwm1_en (*(volatile byte xdata *) 0xD903)
+#define p_reg_top_pwm1_en 0xD903
+#define reg_top_pwm1_en_pos 0
+#define reg_top_pwm1_en_len 1
+#define reg_top_pwm1_en_lsb 0
+#define xd_p_reg_top_pwm2_en (*(volatile byte xdata *) 0xD904)
+#define p_reg_top_pwm2_en 0xD904
+#define reg_top_pwm2_en_pos 0
+#define reg_top_pwm2_en_len 1
+#define reg_top_pwm2_en_lsb 0
+#define xd_p_reg_top_pwm3_en (*(volatile byte xdata *) 0xD905)
+#define p_reg_top_pwm3_en 0xD905
+#define reg_top_pwm3_en_pos 0
+#define reg_top_pwm3_en_len 1
+#define reg_top_pwm3_en_lsb 0
+#define xd_p_reg_top_pwm0_gpio (*(volatile byte xdata *) 0xD906)
+#define p_reg_top_pwm0_gpio 0xD906
+#define reg_top_pwm0_gpio_pos 0
+#define reg_top_pwm0_gpio_len 1
+#define reg_top_pwm0_gpio_lsb 0
+#define xd_p_reg_top_pwm0_pos (*(volatile byte xdata *) 0xD907)
+#define p_reg_top_pwm0_pos 0xD907
+#define reg_top_pwm0_pos_pos 0
+#define reg_top_pwm0_pos_len 3
+#define reg_top_pwm0_pos_lsb 0
+#define xd_p_reg_top_pwm0_width (*(volatile byte xdata *) 0xD908)
+#define p_reg_top_pwm0_width 0xD908
+#define reg_top_pwm0_width_pos 0
+#define reg_top_pwm0_width_len 2
+#define reg_top_pwm0_width_lsb 0
+#define xd_p_reg_top_pwm0_duration (*(volatile byte xdata *) 0xD909)
+#define p_reg_top_pwm0_duration 0xD909
+#define reg_top_pwm0_duration_pos 0
+#define reg_top_pwm0_duration_len 8
+#define reg_top_pwm0_duration_lsb 0
+#define xd_p_reg_top_pwm1_gpio (*(volatile byte xdata *) 0xD90A)
+#define p_reg_top_pwm1_gpio 0xD90A
+#define reg_top_pwm1_gpio_pos 0
+#define reg_top_pwm1_gpio_len 1
+#define reg_top_pwm1_gpio_lsb 0
+#define xd_p_reg_top_pwm1_pos (*(volatile byte xdata *) 0xD90B)
+#define p_reg_top_pwm1_pos 0xD90B
+#define reg_top_pwm1_pos_pos 0
+#define reg_top_pwm1_pos_len 3
+#define reg_top_pwm1_pos_lsb 0
+#define xd_p_reg_top_pwm1_width (*(volatile byte xdata *) 0xD90C)
+#define p_reg_top_pwm1_width 0xD90C
+#define reg_top_pwm1_width_pos 0
+#define reg_top_pwm1_width_len 2
+#define reg_top_pwm1_width_lsb 0
+#define xd_p_reg_top_pwm1_duration (*(volatile byte xdata *) 0xD90D)
+#define p_reg_top_pwm1_duration 0xD90D
+#define reg_top_pwm1_duration_pos 0
+#define reg_top_pwm1_duration_len 8
+#define reg_top_pwm1_duration_lsb 0
+#define xd_p_reg_top_pwm2_gpio (*(volatile byte xdata *) 0xD90E)
+#define p_reg_top_pwm2_gpio 0xD90E
+#define reg_top_pwm2_gpio_pos 0
+#define reg_top_pwm2_gpio_len 1
+#define reg_top_pwm2_gpio_lsb 0
+#define xd_p_reg_top_pwm2_pos (*(volatile byte xdata *) 0xD90F)
+#define p_reg_top_pwm2_pos 0xD90F
+#define reg_top_pwm2_pos_pos 0
+#define reg_top_pwm2_pos_len 3
+#define reg_top_pwm2_pos_lsb 0
+#define xd_p_reg_top_pwm2_width (*(volatile byte xdata *) 0xD910)
+#define p_reg_top_pwm2_width 0xD910
+#define reg_top_pwm2_width_pos 0
+#define reg_top_pwm2_width_len 2
+#define reg_top_pwm2_width_lsb 0
+#define xd_p_reg_top_pwm2_duration (*(volatile byte xdata *) 0xD911)
+#define p_reg_top_pwm2_duration 0xD911
+#define reg_top_pwm2_duration_pos 0
+#define reg_top_pwm2_duration_len 8
+#define reg_top_pwm2_duration_lsb 0
+#define xd_p_reg_top_pwm3_gpio (*(volatile byte xdata *) 0xD912)
+#define p_reg_top_pwm3_gpio 0xD912
+#define reg_top_pwm3_gpio_pos 0
+#define reg_top_pwm3_gpio_len 1
+#define reg_top_pwm3_gpio_lsb 0
+#define xd_p_reg_top_pwm3_pos (*(volatile byte xdata *) 0xD913)
+#define p_reg_top_pwm3_pos 0xD913
+#define reg_top_pwm3_pos_pos 0
+#define reg_top_pwm3_pos_len 3
+#define reg_top_pwm3_pos_lsb 0
+#define xd_p_reg_top_pwm3_width (*(volatile byte xdata *) 0xD914)
+#define p_reg_top_pwm3_width 0xD914
+#define reg_top_pwm3_width_pos 0
+#define reg_top_pwm3_width_len 2
+#define reg_top_pwm3_width_lsb 0
+#define xd_p_reg_top_pwm3_duration (*(volatile byte xdata *) 0xD915)
+#define p_reg_top_pwm3_duration 0xD915
+#define reg_top_pwm3_duration_pos 0
+#define reg_top_pwm3_duration_len 8
+#define reg_top_pwm3_duration_lsb 0
+#define xd_p_reg_top_hosta_mpeg_par_mode (*(volatile byte xdata *) 0xD916)
+#define p_reg_top_hosta_mpeg_par_mode 0xD916
+#define reg_top_hosta_mpeg_par_mode_pos 0
+#define reg_top_hosta_mpeg_par_mode_len 1
+#define reg_top_hosta_mpeg_par_mode_lsb 0
+#define xd_p_reg_top_hosta_mpeg_ser_mode (*(volatile byte xdata *) 0xD917)
+#define p_reg_top_hosta_mpeg_ser_mode 0xD917
+#define reg_top_hosta_mpeg_ser_mode_pos 0
+#define reg_top_hosta_mpeg_ser_mode_len 1
+#define reg_top_hosta_mpeg_ser_mode_lsb 0
+#define xd_p_reg_top_hosta_mpeg_ser_do7 (*(volatile byte xdata *) 0xD918)
+#define p_reg_top_hosta_mpeg_ser_do7 0xD918
+#define reg_top_hosta_mpeg_ser_do7_pos 0
+#define reg_top_hosta_mpeg_ser_do7_len 1
+#define reg_top_hosta_mpeg_ser_do7_lsb 0
+#define xd_p_reg_top_hosta_dca_upper (*(volatile byte xdata *) 0xD919)
+#define p_reg_top_hosta_dca_upper 0xD919
+#define reg_top_hosta_dca_upper_pos 0
+#define reg_top_hosta_dca_upper_len 1
+#define reg_top_hosta_dca_upper_lsb 0
+#define xd_p_reg_top_hosta_dca_lower (*(volatile byte xdata *) 0xD91A)
+#define p_reg_top_hosta_dca_lower 0xD91A
+#define reg_top_hosta_dca_lower_pos 0
+#define reg_top_hosta_dca_lower_len 1
+#define reg_top_hosta_dca_lower_lsb 0
+#define xd_p_reg_top_hostb_mpeg_par_mode (*(volatile byte xdata *) 0xD91B)
+#define p_reg_top_hostb_mpeg_par_mode 0xD91B
+#define reg_top_hostb_mpeg_par_mode_pos 0
+#define reg_top_hostb_mpeg_par_mode_len 1
+#define reg_top_hostb_mpeg_par_mode_lsb 0
+#define xd_p_reg_top_hostb_mpeg_ser_mode (*(volatile byte xdata *) 0xD91C)
+#define p_reg_top_hostb_mpeg_ser_mode 0xD91C
+#define reg_top_hostb_mpeg_ser_mode_pos 0
+#define reg_top_hostb_mpeg_ser_mode_len 1
+#define reg_top_hostb_mpeg_ser_mode_lsb 0
+#define xd_p_reg_top_hostb_mpeg_ser_do7 (*(volatile byte xdata *) 0xD91D)
+#define p_reg_top_hostb_mpeg_ser_do7 0xD91D
+#define reg_top_hostb_mpeg_ser_do7_pos 0
+#define reg_top_hostb_mpeg_ser_do7_len 1
+#define reg_top_hostb_mpeg_ser_do7_lsb 0
+#define xd_p_reg_top_hostb_dca_upper (*(volatile byte xdata *) 0xD91E)
+#define p_reg_top_hostb_dca_upper 0xD91E
+#define reg_top_hostb_dca_upper_pos 0
+#define reg_top_hostb_dca_upper_len 1
+#define reg_top_hostb_dca_upper_lsb 0
+#define xd_p_reg_top_hostb_dca_lower (*(volatile byte xdata *) 0xD91F)
+#define p_reg_top_hostb_dca_lower 0xD91F
+#define reg_top_hostb_dca_lower_pos 0
+#define reg_top_hostb_dca_lower_len 1
+#define reg_top_hostb_dca_lower_lsb 0
+#define xd_p_reg_top_host_reverse (*(volatile byte xdata *) 0xD920)
+#define p_reg_top_host_reverse 0xD920
+#define reg_top_host_reverse_pos 0
+#define reg_top_host_reverse_len 1
+#define reg_top_host_reverse_lsb 0
+#define xd_p_reg_top_hosta_ccir (*(volatile byte xdata *) 0xD921)
+#define p_reg_top_hosta_ccir 0xD921
+#define reg_top_hosta_ccir_pos 0
+#define reg_top_hosta_ccir_len 1
+#define reg_top_hosta_ccir_lsb 0
+#define xd_p_reg_top_hostb_ccir (*(volatile byte xdata *) 0xD922)
+#define p_reg_top_hostb_ccir 0xD922
+#define reg_top_hostb_ccir_pos 0
+#define reg_top_hostb_ccir_len 1
+#define reg_top_hostb_ccir_lsb 0
+#define xd_p_reg_top_i2s_master_mode (*(volatile byte xdata *) 0xD923)
+#define p_reg_top_i2s_master_mode 0xD923
+#define reg_top_i2s_master_mode_pos 0
+#define reg_top_i2s_master_mode_len 1
+#define reg_top_i2s_master_mode_lsb 0
+#define xd_p_reg_usb_cfg_speed (*(volatile byte xdata *) 0xDD00)
+#define p_reg_usb_cfg_speed 0xDD00
+#define reg_usb_cfg_speed_pos 0
+#define reg_usb_cfg_speed_len 1
+#define reg_usb_cfg_speed_lsb 0
+#define xd_p_reg_usb_cfg_utmi16 (*(volatile byte xdata *) 0xDD00)
+#define p_reg_usb_cfg_utmi16 0xDD00
+#define reg_usb_cfg_utmi16_pos 1
+#define reg_usb_cfg_utmi16_len 1
+#define reg_usb_cfg_utmi16_lsb 0
+#define xd_p_reg_usb_cfg_test (*(volatile byte xdata *) 0xDD00)
+#define p_reg_usb_cfg_test 0xDD00
+#define reg_usb_cfg_test_pos 3
+#define reg_usb_cfg_test_len 3
+#define reg_usb_cfg_test_lsb 0
+#define xd_p_reg_usb_port_sim_reset (*(volatile byte xdata *) 0xDD00)
+#define p_reg_usb_port_sim_reset 0xDD00
+#define reg_usb_port_sim_reset_pos 6
+#define reg_usb_port_sim_reset_len 1
+#define reg_usb_port_sim_reset_lsb 0
+#define xd_p_reg_usb_port_run (*(volatile byte xdata *) 0xDD00)
+#define p_reg_usb_port_run 0xDD00
+#define reg_usb_port_run_pos 7
+#define reg_usb_port_run_len 1
+#define reg_usb_port_run_lsb 0
+#define xd_r_usb_line_state_0 (*(volatile byte xdata *) 0xDD01)
+#define r_usb_line_state_0 0xDD01
+#define usb_line_state_0_pos 0
+#define usb_line_state_0_len 1
+#define usb_line_state_0_lsb 0
+#define xd_r_usb_line_state_1 (*(volatile byte xdata *) 0xDD01)
+#define r_usb_line_state_1 0xDD01
+#define usb_line_state_1_pos 1
+#define usb_line_state_1_len 1
+#define usb_line_state_1_lsb 0
+#define xd_r_reg_usb_status_speed (*(volatile byte xdata *) 0xDD01)
+#define r_reg_usb_status_speed 0xDD01
+#define reg_usb_status_speed_pos 2
+#define reg_usb_status_speed_len 1
+#define reg_usb_status_speed_lsb 0
+#define xd_r_reg_usb_status_connect (*(volatile byte xdata *) 0xDD01)
+#define r_reg_usb_status_connect 0xDD01
+#define reg_usb_status_connect_pos 3
+#define reg_usb_status_connect_len 1
+#define reg_usb_status_connect_lsb 0
+#define xd_r_reg_usb_rx_buf (*(volatile byte xdata *) 0xDD01)
+#define r_reg_usb_rx_buf 0xDD01
+#define reg_usb_rx_buf_pos 4
+#define reg_usb_rx_buf_len 1
+#define reg_usb_rx_buf_lsb 0
+#define xd_r_reg_usb_port_reset (*(volatile byte xdata *) 0xDD01)
+#define r_reg_usb_port_reset 0xDD01
+#define reg_usb_port_reset_pos 5
+#define reg_usb_port_reset_len 1
+#define reg_usb_port_reset_lsb 0
+#define xd_r_reg_usb_port_suspend (*(volatile byte xdata *) 0xDD01)
+#define r_reg_usb_port_suspend 0xDD01
+#define reg_usb_port_suspend_pos 6
+#define reg_usb_port_suspend_len 1
+#define reg_usb_port_suspend_lsb 0
+#define xd_p_reg_ep1_tx_type (*(volatile byte xdata *) 0xDD07)
+#define p_reg_ep1_tx_type 0xDD07
+#define reg_ep1_tx_type_pos 2
+#define reg_ep1_tx_type_len 1
+#define reg_ep1_tx_type_lsb 0
+#define xd_p_reg_ep2_rx_type (*(volatile byte xdata *) 0xDD07)
+#define p_reg_ep2_rx_type 0xDD07
+#define reg_ep2_rx_type_pos 3
+#define reg_ep2_rx_type_len 1
+#define reg_ep2_rx_type_lsb 0
+#define xd_p_reg_ep3_tx_type (*(volatile byte xdata *) 0xDD07)
+#define p_reg_ep3_tx_type 0xDD07
+#define reg_ep3_tx_type_pos 4
+#define reg_ep3_tx_type_len 1
+#define reg_ep3_tx_type_lsb 0
+#define xd_p_reg_ep4_tx_type (*(volatile byte xdata *) 0xDD07)
+#define p_reg_ep4_tx_type 0xDD07
+#define reg_ep4_tx_type_pos 5
+#define reg_ep4_tx_type_len 1
+#define reg_ep4_tx_type_lsb 0
+#define xd_p_reg_ep5_tx_type (*(volatile byte xdata *) 0xDD07)
+#define p_reg_ep5_tx_type 0xDD07
+#define reg_ep5_tx_type_pos 6
+#define reg_ep5_tx_type_len 1
+#define reg_ep5_tx_type_lsb 0
+#define xd_p_reg_ep6_tx_type (*(volatile byte xdata *) 0xDD07)
+#define p_reg_ep6_tx_type 0xDD07
+#define reg_ep6_tx_type_pos 7
+#define reg_ep6_tx_type_len 1
+#define reg_ep6_tx_type_lsb 0
+#define xd_p_reg_ep0_max_pkt (*(volatile byte xdata *) 0xDD08)
+#define p_reg_ep0_max_pkt 0xDD08
+#define reg_ep0_max_pkt_pos 0
+#define reg_ep0_max_pkt_len 8
+#define reg_ep0_max_pkt_lsb 0
+#define xd_p_reg_ep2_max_pkt (*(volatile byte xdata *) 0xDD0A)
+#define p_reg_ep2_max_pkt 0xDD0A
+#define reg_ep2_max_pkt_pos 0
+#define reg_ep2_max_pkt_len 8
+#define reg_ep2_max_pkt_lsb 0
+#define xd_p_reg_ep4_max_pkt (*(volatile byte xdata *) 0xDD0C)
+#define p_reg_ep4_max_pkt 0xDD0C
+#define reg_ep4_max_pkt_pos 0
+#define reg_ep4_max_pkt_len 8
+#define reg_ep4_max_pkt_lsb 0
+#define xd_p_reg_ep5_max_pkt (*(volatile byte xdata *) 0xDD0D)
+#define p_reg_ep5_max_pkt 0xDD0D
+#define reg_ep5_max_pkt_pos 0
+#define reg_ep5_max_pkt_len 8
+#define reg_ep5_max_pkt_lsb 0
+#define xd_p_reg_ep6_max_pkt_7_0 (*(volatile byte xdata *) 0xDD0E)
+#define p_reg_ep6_max_pkt_7_0 0xDD0E
+#define reg_ep6_max_pkt_7_0_pos 0
+#define reg_ep6_max_pkt_7_0_len 8
+#define reg_ep6_max_pkt_7_0_lsb 0
+#define xd_p_reg_ep6_max_pkt_15_8 (*(volatile byte xdata *) 0xDD0F)
+#define p_reg_ep6_max_pkt_15_8 0xDD0F
+#define reg_ep6_max_pkt_15_8_pos 0
+#define reg_ep6_max_pkt_15_8_len 8
+#define reg_ep6_max_pkt_15_8_lsb 8
+#define xd_p_reg_usb_addr (*(volatile byte xdata *) 0xDD10)
+#define p_reg_usb_addr 0xDD10
+#define reg_usb_addr_pos 0
+#define reg_usb_addr_len 7
+#define reg_usb_addr_lsb 0
+#define xd_p_reg_usb_addr_now (*(volatile byte xdata *) 0xDD10)
+#define p_reg_usb_addr_now 0xDD10
+#define reg_usb_addr_now_pos 7
+#define reg_usb_addr_now_len 1
+#define reg_usb_addr_now_lsb 0
+#define xd_p_reg_ep0_tx_en (*(volatile byte xdata *) 0xDD11)
+#define p_reg_ep0_tx_en 0xDD11
+#define reg_ep0_tx_en_pos 0
+#define reg_ep0_tx_en_len 1
+#define reg_ep0_tx_en_lsb 0
+#define xd_p_reg_ep0_rx_en (*(volatile byte xdata *) 0xDD11)
+#define p_reg_ep0_rx_en 0xDD11
+#define reg_ep0_rx_en_pos 1
+#define reg_ep0_rx_en_len 1
+#define reg_ep0_rx_en_lsb 0
+#define xd_p_reg_ep1_tx_en (*(volatile byte xdata *) 0xDD11)
+#define p_reg_ep1_tx_en 0xDD11
+#define reg_ep1_tx_en_pos 2
+#define reg_ep1_tx_en_len 1
+#define reg_ep1_tx_en_lsb 0
+#define xd_p_reg_ep2_rx_en (*(volatile byte xdata *) 0xDD11)
+#define p_reg_ep2_rx_en 0xDD11
+#define reg_ep2_rx_en_pos 3
+#define reg_ep2_rx_en_len 1
+#define reg_ep2_rx_en_lsb 0
+#define xd_p_reg_ep3_tx_en (*(volatile byte xdata *) 0xDD11)
+#define p_reg_ep3_tx_en 0xDD11
+#define reg_ep3_tx_en_pos 4
+#define reg_ep3_tx_en_len 1
+#define reg_ep3_tx_en_lsb 0
+#define xd_p_reg_ep4_tx_en (*(volatile byte xdata *) 0xDD11)
+#define p_reg_ep4_tx_en 0xDD11
+#define reg_ep4_tx_en_pos 5
+#define reg_ep4_tx_en_len 1
+#define reg_ep4_tx_en_lsb 0
+#define xd_p_reg_ep5_tx_en (*(volatile byte xdata *) 0xDD11)
+#define p_reg_ep5_tx_en 0xDD11
+#define reg_ep5_tx_en_pos 6
+#define reg_ep5_tx_en_len 1
+#define reg_ep5_tx_en_lsb 0
+#define xd_p_reg_ep6_tx_en (*(volatile byte xdata *) 0xDD11)
+#define p_reg_ep6_tx_en 0xDD11
+#define reg_ep6_tx_en_pos 7
+#define reg_ep6_tx_en_len 1
+#define reg_ep6_tx_en_lsb 0
+#define xd_p_reg_ep0_tx_stall (*(volatile byte xdata *) 0xDD12)
+#define p_reg_ep0_tx_stall 0xDD12
+#define reg_ep0_tx_stall_pos 0
+#define reg_ep0_tx_stall_len 1
+#define reg_ep0_tx_stall_lsb 0
+#define xd_p_reg_ep0_rx_stall (*(volatile byte xdata *) 0xDD12)
+#define p_reg_ep0_rx_stall 0xDD12
+#define reg_ep0_rx_stall_pos 1
+#define reg_ep0_rx_stall_len 1
+#define reg_ep0_rx_stall_lsb 0
+#define xd_p_reg_ep1_tx_stall (*(volatile byte xdata *) 0xDD12)
+#define p_reg_ep1_tx_stall 0xDD12
+#define reg_ep1_tx_stall_pos 2
+#define reg_ep1_tx_stall_len 1
+#define reg_ep1_tx_stall_lsb 0
+#define xd_p_reg_ep2_rx_stall (*(volatile byte xdata *) 0xDD12)
+#define p_reg_ep2_rx_stall 0xDD12
+#define reg_ep2_rx_stall_pos 3
+#define reg_ep2_rx_stall_len 1
+#define reg_ep2_rx_stall_lsb 0
+#define xd_p_reg_ep3_tx_stall (*(volatile byte xdata *) 0xDD12)
+#define p_reg_ep3_tx_stall 0xDD12
+#define reg_ep3_tx_stall_pos 4
+#define reg_ep3_tx_stall_len 1
+#define reg_ep3_tx_stall_lsb 0
+#define xd_p_reg_ep4_tx_stall (*(volatile byte xdata *) 0xDD12)
+#define p_reg_ep4_tx_stall 0xDD12
+#define reg_ep4_tx_stall_pos 5
+#define reg_ep4_tx_stall_len 1
+#define reg_ep4_tx_stall_lsb 0
+#define xd_p_reg_ep5_tx_stall (*(volatile byte xdata *) 0xDD12)
+#define p_reg_ep5_tx_stall 0xDD12
+#define reg_ep5_tx_stall_pos 6
+#define reg_ep5_tx_stall_len 1
+#define reg_ep5_tx_stall_lsb 0
+#define xd_p_reg_ep6_tx_stall (*(volatile byte xdata *) 0xDD12)
+#define p_reg_ep6_tx_stall 0xDD12
+#define reg_ep6_tx_stall_pos 7
+#define reg_ep6_tx_stall_len 1
+#define reg_ep6_tx_stall_lsb 0
+#define xd_p_reg_ep0_tx_nak (*(volatile byte xdata *) 0xDD13)
+#define p_reg_ep0_tx_nak 0xDD13
+#define reg_ep0_tx_nak_pos 0
+#define reg_ep0_tx_nak_len 1
+#define reg_ep0_tx_nak_lsb 0
+#define xd_p_reg_ep0_rx_nak (*(volatile byte xdata *) 0xDD13)
+#define p_reg_ep0_rx_nak 0xDD13
+#define reg_ep0_rx_nak_pos 1
+#define reg_ep0_rx_nak_len 1
+#define reg_ep0_rx_nak_lsb 0
+#define xd_p_reg_ep1_tx_nak (*(volatile byte xdata *) 0xDD13)
+#define p_reg_ep1_tx_nak 0xDD13
+#define reg_ep1_tx_nak_pos 2
+#define reg_ep1_tx_nak_len 1
+#define reg_ep1_tx_nak_lsb 0
+#define xd_p_reg_ep2_rx_nak (*(volatile byte xdata *) 0xDD13)
+#define p_reg_ep2_rx_nak 0xDD13
+#define reg_ep2_rx_nak_pos 3
+#define reg_ep2_rx_nak_len 1
+#define reg_ep2_rx_nak_lsb 0
+#define xd_p_reg_ep3_tx_nak (*(volatile byte xdata *) 0xDD13)
+#define p_reg_ep3_tx_nak 0xDD13
+#define reg_ep3_tx_nak_pos 4
+#define reg_ep3_tx_nak_len 1
+#define reg_ep3_tx_nak_lsb 0
+#define xd_p_reg_ep4_tx_nak (*(volatile byte xdata *) 0xDD13)
+#define p_reg_ep4_tx_nak 0xDD13
+#define reg_ep4_tx_nak_pos 5
+#define reg_ep4_tx_nak_len 1
+#define reg_ep4_tx_nak_lsb 0
+#define xd_p_reg_ep5_tx_nak (*(volatile byte xdata *) 0xDD13)
+#define p_reg_ep5_tx_nak 0xDD13
+#define reg_ep5_tx_nak_pos 6
+#define reg_ep5_tx_nak_len 1
+#define reg_ep5_tx_nak_lsb 0
+#define xd_p_reg_ep6_tx_nak (*(volatile byte xdata *) 0xDD13)
+#define p_reg_ep6_tx_nak 0xDD13
+#define reg_ep6_tx_nak_pos 7
+#define reg_ep6_tx_nak_len 1
+#define reg_ep6_tx_nak_lsb 0
+#define xd_p_reg_ep0_tx_nak_int_en (*(volatile byte xdata *) 0xDD14)
+#define p_reg_ep0_tx_nak_int_en 0xDD14
+#define reg_ep0_tx_nak_int_en_pos 0
+#define reg_ep0_tx_nak_int_en_len 1
+#define reg_ep0_tx_nak_int_en_lsb 0
+#define xd_p_reg_ep0_rx_nak_int_en (*(volatile byte xdata *) 0xDD14)
+#define p_reg_ep0_rx_nak_int_en 0xDD14
+#define reg_ep0_rx_nak_int_en_pos 1
+#define reg_ep0_rx_nak_int_en_len 1
+#define reg_ep0_rx_nak_int_en_lsb 0
+#define xd_p_reg_ep1_tx_nak_int_en (*(volatile byte xdata *) 0xDD14)
+#define p_reg_ep1_tx_nak_int_en 0xDD14
+#define reg_ep1_tx_nak_int_en_pos 2
+#define reg_ep1_tx_nak_int_en_len 1
+#define reg_ep1_tx_nak_int_en_lsb 0
+#define xd_p_reg_ep2_rx_nak_int_en (*(volatile byte xdata *) 0xDD14)
+#define p_reg_ep2_rx_nak_int_en 0xDD14
+#define reg_ep2_rx_nak_int_en_pos 3
+#define reg_ep2_rx_nak_int_en_len 1
+#define reg_ep2_rx_nak_int_en_lsb 0
+#define xd_p_reg_ep3_tx_nak_int_en (*(volatile byte xdata *) 0xDD14)
+#define p_reg_ep3_tx_nak_int_en 0xDD14
+#define reg_ep3_tx_nak_int_en_pos 4
+#define reg_ep3_tx_nak_int_en_len 1
+#define reg_ep3_tx_nak_int_en_lsb 0
+#define xd_p_reg_ep4_tx_nak_int_en (*(volatile byte xdata *) 0xDD14)
+#define p_reg_ep4_tx_nak_int_en 0xDD14
+#define reg_ep4_tx_nak_int_en_pos 5
+#define reg_ep4_tx_nak_int_en_len 1
+#define reg_ep4_tx_nak_int_en_lsb 0
+#define xd_p_reg_ep5_tx_nak_int_en (*(volatile byte xdata *) 0xDD14)
+#define p_reg_ep5_tx_nak_int_en 0xDD14
+#define reg_ep5_tx_nak_int_en_pos 6
+#define reg_ep5_tx_nak_int_en_len 1
+#define reg_ep5_tx_nak_int_en_lsb 0
+#define xd_p_reg_ep6_tx_nak_int_en (*(volatile byte xdata *) 0xDD14)
+#define p_reg_ep6_tx_nak_int_en 0xDD14
+#define reg_ep6_tx_nak_int_en_pos 7
+#define reg_ep6_tx_nak_int_en_len 1
+#define reg_ep6_tx_nak_int_en_lsb 0
+#define xd_p_reg_ep0_tx_done_int_en (*(volatile byte xdata *) 0xDD15)
+#define p_reg_ep0_tx_done_int_en 0xDD15
+#define reg_ep0_tx_done_int_en_pos 0
+#define reg_ep0_tx_done_int_en_len 1
+#define reg_ep0_tx_done_int_en_lsb 0
+#define xd_p_reg_ep0_rx_done_int_en (*(volatile byte xdata *) 0xDD15)
+#define p_reg_ep0_rx_done_int_en 0xDD15
+#define reg_ep0_rx_done_int_en_pos 1
+#define reg_ep0_rx_done_int_en_len 1
+#define reg_ep0_rx_done_int_en_lsb 0
+#define xd_p_reg_ep1_tx_done_int_en (*(volatile byte xdata *) 0xDD15)
+#define p_reg_ep1_tx_done_int_en 0xDD15
+#define reg_ep1_tx_done_int_en_pos 2
+#define reg_ep1_tx_done_int_en_len 1
+#define reg_ep1_tx_done_int_en_lsb 0
+#define xd_p_reg_ep2_rx_done_int_en (*(volatile byte xdata *) 0xDD15)
+#define p_reg_ep2_rx_done_int_en 0xDD15
+#define reg_ep2_rx_done_int_en_pos 3
+#define reg_ep2_rx_done_int_en_len 1
+#define reg_ep2_rx_done_int_en_lsb 0
+#define xd_p_reg_ep3_tx_done_int_en (*(volatile byte xdata *) 0xDD15)
+#define p_reg_ep3_tx_done_int_en 0xDD15
+#define reg_ep3_tx_done_int_en_pos 4
+#define reg_ep3_tx_done_int_en_len 1
+#define reg_ep3_tx_done_int_en_lsb 0
+#define xd_p_reg_ep4_tx_done_int_en (*(volatile byte xdata *) 0xDD15)
+#define p_reg_ep4_tx_done_int_en 0xDD15
+#define reg_ep4_tx_done_int_en_pos 5
+#define reg_ep4_tx_done_int_en_len 1
+#define reg_ep4_tx_done_int_en_lsb 0
+#define xd_p_reg_ep5_tx_done_int_en (*(volatile byte xdata *) 0xDD15)
+#define p_reg_ep5_tx_done_int_en 0xDD15
+#define reg_ep5_tx_done_int_en_pos 6
+#define reg_ep5_tx_done_int_en_len 1
+#define reg_ep5_tx_done_int_en_lsb 0
+#define xd_p_reg_ep6_tx_done_int_en (*(volatile byte xdata *) 0xDD15)
+#define p_reg_ep6_tx_done_int_en 0xDD15
+#define reg_ep6_tx_done_int_en_pos 7
+#define reg_ep6_tx_done_int_en_len 1
+#define reg_ep6_tx_done_int_en_lsb 0
+#define xd_p_reg_ep0_tx_fail_int_en (*(volatile byte xdata *) 0xDD16)
+#define p_reg_ep0_tx_fail_int_en 0xDD16
+#define reg_ep0_tx_fail_int_en_pos 0
+#define reg_ep0_tx_fail_int_en_len 1
+#define reg_ep0_tx_fail_int_en_lsb 0
+#define xd_p_reg_ep0_rx_fail_int_en (*(volatile byte xdata *) 0xDD16)
+#define p_reg_ep0_rx_fail_int_en 0xDD16
+#define reg_ep0_rx_fail_int_en_pos 1
+#define reg_ep0_rx_fail_int_en_len 1
+#define reg_ep0_rx_fail_int_en_lsb 0
+#define xd_p_reg_ep1_tx_fail_int_en (*(volatile byte xdata *) 0xDD16)
+#define p_reg_ep1_tx_fail_int_en 0xDD16
+#define reg_ep1_tx_fail_int_en_pos 2
+#define reg_ep1_tx_fail_int_en_len 1
+#define reg_ep1_tx_fail_int_en_lsb 0
+#define xd_p_reg_ep2_rx_fail_int_en (*(volatile byte xdata *) 0xDD16)
+#define p_reg_ep2_rx_fail_int_en 0xDD16
+#define reg_ep2_rx_fail_int_en_pos 3
+#define reg_ep2_rx_fail_int_en_len 1
+#define reg_ep2_rx_fail_int_en_lsb 0
+#define xd_p_reg_ep3_tx_fail_int_en (*(volatile byte xdata *) 0xDD16)
+#define p_reg_ep3_tx_fail_int_en 0xDD16
+#define reg_ep3_tx_fail_int_en_pos 4
+#define reg_ep3_tx_fail_int_en_len 1
+#define reg_ep3_tx_fail_int_en_lsb 0
+#define xd_p_reg_ep4_tx_fail_int_en (*(volatile byte xdata *) 0xDD16)
+#define p_reg_ep4_tx_fail_int_en 0xDD16
+#define reg_ep4_tx_fail_int_en_pos 5
+#define reg_ep4_tx_fail_int_en_len 1
+#define reg_ep4_tx_fail_int_en_lsb 0
+#define xd_p_reg_ep5_tx_fail_int_en (*(volatile byte xdata *) 0xDD16)
+#define p_reg_ep5_tx_fail_int_en 0xDD16
+#define reg_ep5_tx_fail_int_en_pos 6
+#define reg_ep5_tx_fail_int_en_len 1
+#define reg_ep5_tx_fail_int_en_lsb 0
+#define xd_p_reg_ep6_tx_fail_int_en (*(volatile byte xdata *) 0xDD16)
+#define p_reg_ep6_tx_fail_int_en 0xDD16
+#define reg_ep6_tx_fail_int_en_pos 7
+#define reg_ep6_tx_fail_int_en_len 1
+#define reg_ep6_tx_fail_int_en_lsb 0
+#define xd_p_reg_suspend_int_en (*(volatile byte xdata *) 0xDD17)
+#define p_reg_suspend_int_en 0xDD17
+#define reg_suspend_int_en_pos 0
+#define reg_suspend_int_en_len 1
+#define reg_suspend_int_en_lsb 0
+#define xd_p_reg_bus_reset_int_en (*(volatile byte xdata *) 0xDD17)
+#define p_reg_bus_reset_int_en 0xDD17
+#define reg_bus_reset_int_en_pos 1
+#define reg_bus_reset_int_en_len 1
+#define reg_bus_reset_int_en_lsb 0
+#define xd_p_reg_ep0_setup_int_en (*(volatile byte xdata *) 0xDD17)
+#define p_reg_ep0_setup_int_en 0xDD17
+#define reg_ep0_setup_int_en_pos 2
+#define reg_ep0_setup_int_en_len 1
+#define reg_ep0_setup_int_en_lsb 0
+#define xd_p_reg_ep0_tx_nak_int (*(volatile byte xdata *) 0xDD18)
+#define p_reg_ep0_tx_nak_int 0xDD18
+#define reg_ep0_tx_nak_int_pos 0
+#define reg_ep0_tx_nak_int_len 1
+#define reg_ep0_tx_nak_int_lsb 0
+#define xd_p_reg_ep0_rx_nak_int (*(volatile byte xdata *) 0xDD18)
+#define p_reg_ep0_rx_nak_int 0xDD18
+#define reg_ep0_rx_nak_int_pos 1
+#define reg_ep0_rx_nak_int_len 1
+#define reg_ep0_rx_nak_int_lsb 0
+#define xd_p_reg_ep1_tx_nak_int (*(volatile byte xdata *) 0xDD18)
+#define p_reg_ep1_tx_nak_int 0xDD18
+#define reg_ep1_tx_nak_int_pos 2
+#define reg_ep1_tx_nak_int_len 1
+#define reg_ep1_tx_nak_int_lsb 0
+#define xd_p_reg_ep2_rx_nak_int (*(volatile byte xdata *) 0xDD18)
+#define p_reg_ep2_rx_nak_int 0xDD18
+#define reg_ep2_rx_nak_int_pos 3
+#define reg_ep2_rx_nak_int_len 1
+#define reg_ep2_rx_nak_int_lsb 0
+#define xd_p_reg_ep3_tx_nak_int (*(volatile byte xdata *) 0xDD18)
+#define p_reg_ep3_tx_nak_int 0xDD18
+#define reg_ep3_tx_nak_int_pos 4
+#define reg_ep3_tx_nak_int_len 1
+#define reg_ep3_tx_nak_int_lsb 0
+#define xd_p_reg_ep4_tx_nak_int (*(volatile byte xdata *) 0xDD18)
+#define p_reg_ep4_tx_nak_int 0xDD18
+#define reg_ep4_tx_nak_int_pos 5
+#define reg_ep4_tx_nak_int_len 1
+#define reg_ep4_tx_nak_int_lsb 0
+#define xd_p_reg_ep5_tx_nak_int (*(volatile byte xdata *) 0xDD18)
+#define p_reg_ep5_tx_nak_int 0xDD18
+#define reg_ep5_tx_nak_int_pos 6
+#define reg_ep5_tx_nak_int_len 1
+#define reg_ep5_tx_nak_int_lsb 0
+#define xd_p_reg_ep6_tx_nak_int (*(volatile byte xdata *) 0xDD18)
+#define p_reg_ep6_tx_nak_int 0xDD18
+#define reg_ep6_tx_nak_int_pos 7
+#define reg_ep6_tx_nak_int_len 1
+#define reg_ep6_tx_nak_int_lsb 0
+#define xd_p_reg_ep0_tx_done_int (*(volatile byte xdata *) 0xDD19)
+#define p_reg_ep0_tx_done_int 0xDD19
+#define reg_ep0_tx_done_int_pos 0
+#define reg_ep0_tx_done_int_len 1
+#define reg_ep0_tx_done_int_lsb 0
+#define xd_p_reg_ep0_rx_done_int (*(volatile byte xdata *) 0xDD19)
+#define p_reg_ep0_rx_done_int 0xDD19
+#define reg_ep0_rx_done_int_pos 1
+#define reg_ep0_rx_done_int_len 1
+#define reg_ep0_rx_done_int_lsb 0
+#define xd_p_reg_ep1_tx_done_int (*(volatile byte xdata *) 0xDD19)
+#define p_reg_ep1_tx_done_int 0xDD19
+#define reg_ep1_tx_done_int_pos 2
+#define reg_ep1_tx_done_int_len 1
+#define reg_ep1_tx_done_int_lsb 0
+#define xd_p_reg_ep2_rx_done_int (*(volatile byte xdata *) 0xDD19)
+#define p_reg_ep2_rx_done_int 0xDD19
+#define reg_ep2_rx_done_int_pos 3
+#define reg_ep2_rx_done_int_len 1
+#define reg_ep2_rx_done_int_lsb 0
+#define xd_p_reg_ep3_tx_done_int (*(volatile byte xdata *) 0xDD19)
+#define p_reg_ep3_tx_done_int 0xDD19
+#define reg_ep3_tx_done_int_pos 4
+#define reg_ep3_tx_done_int_len 1
+#define reg_ep3_tx_done_int_lsb 0
+#define xd_p_reg_ep4_tx_done_int (*(volatile byte xdata *) 0xDD19)
+#define p_reg_ep4_tx_done_int 0xDD19
+#define reg_ep4_tx_done_int_pos 5
+#define reg_ep4_tx_done_int_len 1
+#define reg_ep4_tx_done_int_lsb 0
+#define xd_p_reg_ep5_tx_done_int (*(volatile byte xdata *) 0xDD19)
+#define p_reg_ep5_tx_done_int 0xDD19
+#define reg_ep5_tx_done_int_pos 6
+#define reg_ep5_tx_done_int_len 1
+#define reg_ep5_tx_done_int_lsb 0
+#define xd_p_reg_ep6_tx_done_int (*(volatile byte xdata *) 0xDD19)
+#define p_reg_ep6_tx_done_int 0xDD19
+#define reg_ep6_tx_done_int_pos 7
+#define reg_ep6_tx_done_int_len 1
+#define reg_ep6_tx_done_int_lsb 0
+#define xd_p_reg_ep0_tx_fail_int (*(volatile byte xdata *) 0xDD1A)
+#define p_reg_ep0_tx_fail_int 0xDD1A
+#define reg_ep0_tx_fail_int_pos 0
+#define reg_ep0_tx_fail_int_len 1
+#define reg_ep0_tx_fail_int_lsb 0
+#define xd_p_reg_ep0_rx_fail_int (*(volatile byte xdata *) 0xDD1A)
+#define p_reg_ep0_rx_fail_int 0xDD1A
+#define reg_ep0_rx_fail_int_pos 1
+#define reg_ep0_rx_fail_int_len 1
+#define reg_ep0_rx_fail_int_lsb 0
+#define xd_p_reg_ep1_tx_fail_int (*(volatile byte xdata *) 0xDD1A)
+#define p_reg_ep1_tx_fail_int 0xDD1A
+#define reg_ep1_tx_fail_int_pos 2
+#define reg_ep1_tx_fail_int_len 1
+#define reg_ep1_tx_fail_int_lsb 0
+#define xd_p_reg_ep2_rx_fail_int (*(volatile byte xdata *) 0xDD1A)
+#define p_reg_ep2_rx_fail_int 0xDD1A
+#define reg_ep2_rx_fail_int_pos 3
+#define reg_ep2_rx_fail_int_len 1
+#define reg_ep2_rx_fail_int_lsb 0
+#define xd_p_reg_ep3_tx_fail_int (*(volatile byte xdata *) 0xDD1A)
+#define p_reg_ep3_tx_fail_int 0xDD1A
+#define reg_ep3_tx_fail_int_pos 4
+#define reg_ep3_tx_fail_int_len 1
+#define reg_ep3_tx_fail_int_lsb 0
+#define xd_p_reg_ep4_tx_fail_int (*(volatile byte xdata *) 0xDD1A)
+#define p_reg_ep4_tx_fail_int 0xDD1A
+#define reg_ep4_tx_fail_int_pos 5
+#define reg_ep4_tx_fail_int_len 1
+#define reg_ep4_tx_fail_int_lsb 0
+#define xd_p_reg_ep5_tx_fail_int (*(volatile byte xdata *) 0xDD1A)
+#define p_reg_ep5_tx_fail_int 0xDD1A
+#define reg_ep5_tx_fail_int_pos 6
+#define reg_ep5_tx_fail_int_len 1
+#define reg_ep5_tx_fail_int_lsb 0
+#define xd_p_reg_ep6_tx_fail_int (*(volatile byte xdata *) 0xDD1A)
+#define p_reg_ep6_tx_fail_int 0xDD1A
+#define reg_ep6_tx_fail_int_pos 7
+#define reg_ep6_tx_fail_int_len 1
+#define reg_ep6_tx_fail_int_lsb 0
+#define xd_p_reg_suspend_int (*(volatile byte xdata *) 0xDD1B)
+#define p_reg_suspend_int 0xDD1B
+#define reg_suspend_int_pos 0
+#define reg_suspend_int_len 1
+#define reg_suspend_int_lsb 0
+#define xd_p_reg_bus_reset_int (*(volatile byte xdata *) 0xDD1B)
+#define p_reg_bus_reset_int 0xDD1B
+#define reg_bus_reset_int_pos 1
+#define reg_bus_reset_int_len 1
+#define reg_bus_reset_int_lsb 0
+#define xd_p_reg_ep0_setup_int (*(volatile byte xdata *) 0xDD1B)
+#define p_reg_ep0_setup_int 0xDD1B
+#define reg_ep0_setup_int_pos 2
+#define reg_ep0_setup_int_len 1
+#define reg_ep0_setup_int_lsb 0
+#define xd_r_usbc_int (*(volatile byte xdata *) 0xDD1B)
+#define r_usbc_int 0xDD1B
+#define usbc_int_pos 3
+#define usbc_int_len 1
+#define usbc_int_lsb 0
+#define xd_r_usb_ir_int (*(volatile byte xdata *) 0xDD1B)
+#define r_usb_ir_int 0xDD1B
+#define usb_ir_int_pos 4
+#define usb_ir_int_len 1
+#define usb_ir_int_lsb 0
+#define xd_p_reg_ep0_tx_rst (*(volatile byte xdata *) 0xDD1D)
+#define p_reg_ep0_tx_rst 0xDD1D
+#define reg_ep0_tx_rst_pos 0
+#define reg_ep0_tx_rst_len 1
+#define reg_ep0_tx_rst_lsb 0
+#define xd_p_reg_ep0_rx_rst (*(volatile byte xdata *) 0xDD1D)
+#define p_reg_ep0_rx_rst 0xDD1D
+#define reg_ep0_rx_rst_pos 1
+#define reg_ep0_rx_rst_len 1
+#define reg_ep0_rx_rst_lsb 0
+#define xd_p_reg_ep1_tx_rst (*(volatile byte xdata *) 0xDD1D)
+#define p_reg_ep1_tx_rst 0xDD1D
+#define reg_ep1_tx_rst_pos 2
+#define reg_ep1_tx_rst_len 1
+#define reg_ep1_tx_rst_lsb 0
+#define xd_p_reg_ep2_rx_rst (*(volatile byte xdata *) 0xDD1D)
+#define p_reg_ep2_rx_rst 0xDD1D
+#define reg_ep2_rx_rst_pos 3
+#define reg_ep2_rx_rst_len 1
+#define reg_ep2_rx_rst_lsb 0
+#define xd_p_reg_ep3_tx_rst (*(volatile byte xdata *) 0xDD1D)
+#define p_reg_ep3_tx_rst 0xDD1D
+#define reg_ep3_tx_rst_pos 4
+#define reg_ep3_tx_rst_len 1
+#define reg_ep3_tx_rst_lsb 0
+#define xd_p_reg_ep4_tx_rst (*(volatile byte xdata *) 0xDD1D)
+#define p_reg_ep4_tx_rst 0xDD1D
+#define reg_ep4_tx_rst_pos 5
+#define reg_ep4_tx_rst_len 1
+#define reg_ep4_tx_rst_lsb 0
+#define xd_p_reg_ep5_tx_rst (*(volatile byte xdata *) 0xDD1D)
+#define p_reg_ep5_tx_rst 0xDD1D
+#define reg_ep5_tx_rst_pos 6
+#define reg_ep5_tx_rst_len 1
+#define reg_ep5_tx_rst_lsb 0
+#define xd_p_reg_ep6_tx_rst (*(volatile byte xdata *) 0xDD1D)
+#define p_reg_ep6_tx_rst 0xDD1D
+#define reg_ep6_tx_rst_pos 7
+#define reg_ep6_tx_rst_len 1
+#define reg_ep6_tx_rst_lsb 0
+#define xd_r_reg_ep0_tx_active (*(volatile byte xdata *) 0xDD1E)
+#define r_reg_ep0_tx_active 0xDD1E
+#define reg_ep0_tx_active_pos 0
+#define reg_ep0_tx_active_len 1
+#define reg_ep0_tx_active_lsb 0
+#define xd_r_reg_ep0_rx_active (*(volatile byte xdata *) 0xDD1E)
+#define r_reg_ep0_rx_active 0xDD1E
+#define reg_ep0_rx_active_pos 1
+#define reg_ep0_rx_active_len 1
+#define reg_ep0_rx_active_lsb 0
+#define xd_r_reg_ep1_tx_active (*(volatile byte xdata *) 0xDD1E)
+#define r_reg_ep1_tx_active 0xDD1E
+#define reg_ep1_tx_active_pos 2
+#define reg_ep1_tx_active_len 1
+#define reg_ep1_tx_active_lsb 0
+#define xd_r_reg_ep2_rx_active (*(volatile byte xdata *) 0xDD1E)
+#define r_reg_ep2_rx_active 0xDD1E
+#define reg_ep2_rx_active_pos 3
+#define reg_ep2_rx_active_len 1
+#define reg_ep2_rx_active_lsb 0
+#define xd_r_reg_ep3_tx_active (*(volatile byte xdata *) 0xDD1E)
+#define r_reg_ep3_tx_active 0xDD1E
+#define reg_ep3_tx_active_pos 4
+#define reg_ep3_tx_active_len 1
+#define reg_ep3_tx_active_lsb 0
+#define xd_r_reg_ep4_tx_active (*(volatile byte xdata *) 0xDD1E)
+#define r_reg_ep4_tx_active 0xDD1E
+#define reg_ep4_tx_active_pos 5
+#define reg_ep4_tx_active_len 1
+#define reg_ep4_tx_active_lsb 0
+#define xd_r_reg_ep5_tx_active (*(volatile byte xdata *) 0xDD1E)
+#define r_reg_ep5_tx_active 0xDD1E
+#define reg_ep5_tx_active_pos 6
+#define reg_ep5_tx_active_len 1
+#define reg_ep5_tx_active_lsb 0
+#define xd_r_reg_ep6_tx_active (*(volatile byte xdata *) 0xDD1E)
+#define r_reg_ep6_tx_active 0xDD1E
+#define reg_ep6_tx_active_pos 7
+#define reg_ep6_tx_active_len 1
+#define reg_ep6_tx_active_lsb 0
+#define xd_p_reg_usb_setup_reset (*(volatile byte xdata *) 0xDD1F)
+#define p_reg_usb_setup_reset 0xDD1F
+#define reg_usb_setup_reset_pos 0
+#define reg_usb_setup_reset_len 1
+#define reg_usb_setup_reset_lsb 0
+#define xd_p_reg_usb_ep4_retry_new (*(volatile byte xdata *) 0xDD1F)
+#define p_reg_usb_ep4_retry_new 0xDD1F
+#define reg_usb_ep4_retry_new_pos 1
+#define reg_usb_ep4_retry_new_len 1
+#define reg_usb_ep4_retry_new_lsb 0
+#define xd_p_reg_usb_ep5_retry_new (*(volatile byte xdata *) 0xDD1F)
+#define p_reg_usb_ep5_retry_new 0xDD1F
+#define reg_usb_ep5_retry_new_pos 2
+#define reg_usb_ep5_retry_new_len 1
+#define reg_usb_ep5_retry_new_lsb 0
+#define xd_p_reg_usb_ep6_retry_new (*(volatile byte xdata *) 0xDD1F)
+#define p_reg_usb_ep6_retry_new 0xDD1F
+#define reg_usb_ep6_retry_new_pos 3
+#define reg_usb_ep6_retry_new_len 1
+#define reg_usb_ep6_retry_new_lsb 0
+#define xd_p_reg_usb_iso_mult_cnt (*(volatile byte xdata *) 0xDD20)
+#define p_reg_usb_iso_mult_cnt 0xDD20
+#define reg_usb_iso_mult_cnt_pos 0
+#define reg_usb_iso_mult_cnt_len 2
+#define reg_usb_iso_mult_cnt_lsb 0
+#define xd_p_reg_p_iso_fix_en (*(volatile byte xdata *) 0xDD21)
+#define p_reg_p_iso_fix_en 0xDD21
+#define reg_p_iso_fix_en_pos 0
+#define reg_p_iso_fix_en_len 1
+#define reg_p_iso_fix_en_lsb 0
+#define xd_p_reg_p_iso_fix_rst (*(volatile byte xdata *) 0xDD22)
+#define p_reg_p_iso_fix_rst 0xDD22
+#define reg_p_iso_fix_rst_pos 0
+#define reg_p_iso_fix_rst_len 1
+#define reg_p_iso_fix_rst_lsb 0
+#define xd_p_reg_p_read_point_7_0 (*(volatile byte xdata *) 0xDD23)
+#define p_reg_p_read_point_7_0 0xDD23
+#define reg_p_read_point_7_0_pos 0
+#define reg_p_read_point_7_0_len 8
+#define reg_p_read_point_7_0_lsb 0
+#define xd_p_reg_p_read_point_11_8 (*(volatile byte xdata *) 0xDD24)
+#define p_reg_p_read_point_11_8 0xDD24
+#define reg_p_read_point_11_8_pos 0
+#define reg_p_read_point_11_8_len 4
+#define reg_p_read_point_11_8_lsb 8
+#define xd_p_reg_p_dbg_ctrl (*(volatile byte xdata *) 0xDD25)
+#define p_reg_p_dbg_ctrl 0xDD25
+#define reg_p_dbg_ctrl_pos 0
+#define reg_p_dbg_ctrl_len 3
+#define reg_p_dbg_ctrl_lsb 0
+#define xd_p_reg_p_data_swap (*(volatile byte xdata *) 0xDD26)
+#define p_reg_p_data_swap 0xDD26
+#define reg_p_data_swap_pos 0
+#define reg_p_data_swap_len 2
+#define reg_p_data_swap_lsb 0
+#define xd_p_reg_ep_rx_addr (*(volatile byte xdata *) 0xDD80)
+#define p_reg_ep_rx_addr 0xDD80
+#define reg_ep_rx_addr_pos 2
+#define reg_ep_rx_addr_len 6
+#define reg_ep_rx_addr_lsb 0
+#define xd_p_reg_ep0_tx_addr (*(volatile byte xdata *) 0xDD81)
+#define p_reg_ep0_tx_addr 0xDD81
+#define reg_ep0_tx_addr_pos 2
+#define reg_ep0_tx_addr_len 6
+#define reg_ep0_tx_addr_lsb 0
+#define xd_p_reg_ep1_tx_addr (*(volatile byte xdata *) 0xDD82)
+#define p_reg_ep1_tx_addr 0xDD82
+#define reg_ep1_tx_addr_pos 2
+#define reg_ep1_tx_addr_len 6
+#define reg_ep1_tx_addr_lsb 0
+#define xd_p_reg_ep3_tx_addr (*(volatile byte xdata *) 0xDD83)
+#define p_reg_ep3_tx_addr 0xDD83
+#define reg_ep3_tx_addr_pos 2
+#define reg_ep3_tx_addr_len 6
+#define reg_ep3_tx_addr_lsb 0
+#define xd_p_reg_ep_rx_len (*(volatile byte xdata *) 0xDD84)
+#define p_reg_ep_rx_len 0xDD84
+#define reg_ep_rx_len_pos 0
+#define reg_ep_rx_len_len 8
+#define reg_ep_rx_len_lsb 0
+#define xd_p_reg_ep0_tx_len (*(volatile byte xdata *) 0xDD85)
+#define p_reg_ep0_tx_len 0xDD85
+#define reg_ep0_tx_len_pos 0
+#define reg_ep0_tx_len_len 8
+#define reg_ep0_tx_len_lsb 0
+#define xd_p_reg_ep1_tx_len (*(volatile byte xdata *) 0xDD86)
+#define p_reg_ep1_tx_len 0xDD86
+#define reg_ep1_tx_len_pos 0
+#define reg_ep1_tx_len_len 8
+#define reg_ep1_tx_len_lsb 0
+#define xd_p_reg_ep3_tx_len (*(volatile byte xdata *) 0xDD87)
+#define p_reg_ep3_tx_len 0xDD87
+#define reg_ep3_tx_len_pos 0
+#define reg_ep3_tx_len_len 8
+#define reg_ep3_tx_len_lsb 0
+#define xd_p_reg_ep4_tx_len_7_0 (*(volatile byte xdata *) 0xDD88)
+#define p_reg_ep4_tx_len_7_0 0xDD88
+#define reg_ep4_tx_len_7_0_pos 0
+#define reg_ep4_tx_len_7_0_len 8
+#define reg_ep4_tx_len_7_0_lsb 0
+#define xd_p_reg_ep4_tx_len_15_8 (*(volatile byte xdata *) 0xDD89)
+#define p_reg_ep4_tx_len_15_8 0xDD89
+#define reg_ep4_tx_len_15_8_pos 0
+#define reg_ep4_tx_len_15_8_len 8
+#define reg_ep4_tx_len_15_8_lsb 8
+#define xd_p_reg_ep5_tx_len_7_0 (*(volatile byte xdata *) 0xDD8A)
+#define p_reg_ep5_tx_len_7_0 0xDD8A
+#define reg_ep5_tx_len_7_0_pos 0
+#define reg_ep5_tx_len_7_0_len 8
+#define reg_ep5_tx_len_7_0_lsb 0
+#define xd_p_reg_ep5_tx_len_15_8 (*(volatile byte xdata *) 0xDD8B)
+#define p_reg_ep5_tx_len_15_8 0xDD8B
+#define reg_ep5_tx_len_15_8_pos 0
+#define reg_ep5_tx_len_15_8_len 8
+#define reg_ep5_tx_len_15_8_lsb 8
+#define xd_p_reg_usb_reset_addr (*(volatile byte xdata *) 0xDD8C)
+#define p_reg_usb_reset_addr 0xDD8C
+#define reg_usb_reset_addr_pos 0
+#define reg_usb_reset_addr_len 7
+#define reg_usb_reset_addr_lsb 0
+#define xd_p_reg_usb_reset (*(volatile byte xdata *) 0xDD8C)
+#define p_reg_usb_reset 0xDD8C
+#define reg_usb_reset_pos 7
+#define reg_usb_reset_len 1
+#define reg_usb_reset_lsb 0
+#define xd_p_reg_usb_sync_in (*(volatile byte xdata *) 0xDD8D)
+#define p_reg_usb_sync_in 0xDD8D
+#define reg_usb_sync_in_pos 0
+#define reg_usb_sync_in_len 1
+#define reg_usb_sync_in_lsb 0
+#define xd_p_reg_usb_sync_txready (*(volatile byte xdata *) 0xDD8D)
+#define p_reg_usb_sync_txready 0xDD8D
+#define reg_usb_sync_txready_pos 1
+#define reg_usb_sync_txready_len 1
+#define reg_usb_sync_txready_lsb 0
+#define xd_p_reg_utmi_phy_suspend (*(volatile byte xdata *) 0xDD8D)
+#define p_reg_utmi_phy_suspend 0xDD8D
+#define reg_utmi_phy_suspend_pos 2
+#define reg_utmi_phy_suspend_len 1
+#define reg_utmi_phy_suspend_lsb 0
+#define xd_p_reg_usb_min_len (*(volatile byte xdata *) 0xDD8D)
+#define p_reg_usb_min_len 0xDD8D
+#define reg_usb_min_len_pos 3
+#define reg_usb_min_len_len 1
+#define reg_usb_min_len_lsb 0
+#define xd_p_reg_usb_phy_clksel (*(volatile byte xdata *) 0xDD8D)
+#define p_reg_usb_phy_clksel 0xDD8D
+#define reg_usb_phy_clksel_pos 4
+#define reg_usb_phy_clksel_len 1
+#define reg_usb_phy_clksel_lsb 0
+#define xd_p_reg_ep6_tx_len_7_0 (*(volatile byte xdata *) 0xDD8E)
+#define p_reg_ep6_tx_len_7_0 0xDD8E
+#define reg_ep6_tx_len_7_0_pos 0
+#define reg_ep6_tx_len_7_0_len 8
+#define reg_ep6_tx_len_7_0_lsb 0
+#define xd_p_reg_ep6_tx_len_15_8 (*(volatile byte xdata *) 0xDD8F)
+#define p_reg_ep6_tx_len_15_8 0xDD8F
+#define reg_ep6_tx_len_15_8_pos 0
+#define reg_ep6_tx_len_15_8_len 8
+#define reg_ep6_tx_len_15_8_lsb 8
+#define xd_p_reg_usb_clk_phase (*(volatile byte xdata *) 0xDD93)
+#define p_reg_usb_clk_phase 0xDD93
+#define reg_usb_clk_phase_pos 0
+#define reg_usb_clk_phase_len 2
+#define reg_usb_clk_phase_lsb 0
+#define xd_p_reg_usb_clk_sel (*(volatile byte xdata *) 0xDD93)
+#define p_reg_usb_clk_sel 0xDD93
+#define reg_usb_clk_sel_pos 4
+#define reg_usb_clk_sel_len 4
+#define reg_usb_clk_sel_lsb 0
+#define xd_p_reg_usb_fifo_ptr (*(volatile byte xdata *) 0xDD94)
+#define p_reg_usb_fifo_ptr 0xDD94
+#define reg_usb_fifo_ptr_pos 0
+#define reg_usb_fifo_ptr_len 3
+#define reg_usb_fifo_ptr_lsb 0
+#define xd_p_reg_usb_fifo_byte (*(volatile byte xdata *) 0xDD94)
+#define p_reg_usb_fifo_byte 0xDD94
+#define reg_usb_fifo_byte_pos 3
+#define reg_usb_fifo_byte_len 2
+#define reg_usb_fifo_byte_lsb 0
+#define xd_p_reg_usb_fifo_sys (*(volatile byte xdata *) 0xDD94)
+#define p_reg_usb_fifo_sys 0xDD94
+#define reg_usb_fifo_sys_pos 5
+#define reg_usb_fifo_sys_len 1
+#define reg_usb_fifo_sys_lsb 0
+#define xd_p_usbdma_utmi_d_ctl_7_0 (*(volatile byte xdata *) 0xDD9E)
+#define p_usbdma_utmi_d_ctl_7_0 0xDD9E
+#define usbdma_utmi_d_ctl_7_0_pos 0
+#define usbdma_utmi_d_ctl_7_0_len 8
+#define usbdma_utmi_d_ctl_7_0_lsb 0
+#define xd_p_usbdma_utmi_d_ctl_13_8 (*(volatile byte xdata *) 0xDD9F)
+#define p_usbdma_utmi_d_ctl_13_8 0xDD9F
+#define usbdma_utmi_d_ctl_13_8_pos 0
+#define usbdma_utmi_d_ctl_13_8_len 6
+#define usbdma_utmi_d_ctl_13_8_lsb 8
+#define xd_p_usbdma_utmi_a_ctl_7_0 (*(volatile byte xdata *) 0xDDA0)
+#define p_usbdma_utmi_a_ctl_7_0 0xDDA0
+#define usbdma_utmi_a_ctl_7_0_pos 0
+#define usbdma_utmi_a_ctl_7_0_len 8
+#define usbdma_utmi_a_ctl_7_0_lsb 0
+#define xd_p_usbdma_utmi_a_ctl_15_8 (*(volatile byte xdata *) 0xDDA1)
+#define p_usbdma_utmi_a_ctl_15_8 0xDDA1
+#define usbdma_utmi_a_ctl_15_8_pos 0
+#define usbdma_utmi_a_ctl_15_8_len 8
+#define usbdma_utmi_a_ctl_15_8_lsb 8
+#define xd_p_usbdma_utmi_a_ctl_23_16 (*(volatile byte xdata *) 0xDDA2)
+#define p_usbdma_utmi_a_ctl_23_16 0xDDA2
+#define usbdma_utmi_a_ctl_23_16_pos 0
+#define usbdma_utmi_a_ctl_23_16_len 8
+#define usbdma_utmi_a_ctl_23_16_lsb 16
+#define xd_p_usbdma_utmi_a_ctl_31_24 (*(volatile byte xdata *) 0xDDA3)
+#define p_usbdma_utmi_a_ctl_31_24 0xDDA3
+#define usbdma_utmi_a_ctl_31_24_pos 0
+#define usbdma_utmi_a_ctl_31_24_len 8
+#define usbdma_utmi_a_ctl_31_24_lsb 24
+#define xd_p_usbdma_utmi_a_ctl_39_32 (*(volatile byte xdata *) 0xDDA4)
+#define p_usbdma_utmi_a_ctl_39_32 0xDDA4
+#define usbdma_utmi_a_ctl_39_32_pos 0
+#define usbdma_utmi_a_ctl_39_32_len 8
+#define usbdma_utmi_a_ctl_39_32_lsb 32
+#define xd_p_usbdma_utmi_a_ctl_47_40 (*(volatile byte xdata *) 0xDDA5)
+#define p_usbdma_utmi_a_ctl_47_40 0xDDA5
+#define usbdma_utmi_a_ctl_47_40_pos 0
+#define usbdma_utmi_a_ctl_47_40_len 8
+#define usbdma_utmi_a_ctl_47_40_lsb 40
+#define xd_p_usbdma_utmi_pwrmode (*(volatile byte xdata *) 0xDDA6)
+#define p_usbdma_utmi_pwrmode 0xDDA6
+#define usbdma_utmi_pwrmode_pos 3
+#define usbdma_utmi_pwrmode_len 1
+#define usbdma_utmi_pwrmode_lsb 0
+#define xd_p_usbdma_utmi_test_out (*(volatile byte xdata *) 0xDDA6)
+#define p_usbdma_utmi_test_out 0xDDA6
+#define usbdma_utmi_test_out_pos 4
+#define usbdma_utmi_test_out_len 1
+#define usbdma_utmi_test_out_lsb 0
+#define xd_p_usbdma_utmi_vbus_int_en (*(volatile byte xdata *) 0xDDA7)
+#define p_usbdma_utmi_vbus_int_en 0xDDA7
+#define usbdma_utmi_vbus_int_en_pos 0
+#define usbdma_utmi_vbus_int_en_len 1
+#define usbdma_utmi_vbus_int_en_lsb 0
+#define xd_p_usbdma_utmi_vbus_int_pol (*(volatile byte xdata *) 0xDDA7)
+#define p_usbdma_utmi_vbus_int_pol 0xDDA7
+#define usbdma_utmi_vbus_int_pol_pos 1
+#define usbdma_utmi_vbus_int_pol_len 1
+#define usbdma_utmi_vbus_int_pol_lsb 0
+#define xd_r_usbdma_utmi_vbus_int (*(volatile byte xdata *) 0xDDA8)
+#define r_usbdma_utmi_vbus_int 0xDDA8
+#define usbdma_utmi_vbus_int_pos 0
+#define usbdma_utmi_vbus_int_len 1
+#define usbdma_utmi_vbus_int_lsb 0
+#define xd_r_usbdma_utmi_vbus_status (*(volatile byte xdata *) 0xDDA8)
+#define r_usbdma_utmi_vbus_status 0xDDA8
+#define usbdma_utmi_vbus_status_pos 1
+#define usbdma_utmi_vbus_status_len 1
+#define usbdma_utmi_vbus_status_lsb 0
+#define xd_r_usbdma_utmi_clkrdy (*(volatile byte xdata *) 0xDDA8)
+#define r_usbdma_utmi_clkrdy 0xDDA8
+#define usbdma_utmi_clkrdy_pos 2
+#define usbdma_utmi_clkrdy_len 1
+#define usbdma_utmi_clkrdy_lsb 0
+#define xd_p_reg_p_usb_iso_ccir_rst (*(volatile byte xdata *) 0xDDA9)
+#define p_reg_p_usb_iso_ccir_rst 0xDDA9
+#define reg_p_usb_iso_ccir_rst_pos 0
+#define reg_p_usb_iso_ccir_rst_len 1
+#define reg_p_usb_iso_ccir_rst_lsb 0
+#define xd_p_reg_p_usb_iso_ccir (*(volatile byte xdata *) 0xDDA9)
+#define p_reg_p_usb_iso_ccir 0xDDA9
+#define reg_p_usb_iso_ccir_pos 1
+#define reg_p_usb_iso_ccir_len 1
+#define reg_p_usb_iso_ccir_lsb 0
+#define xd_p_reg_p_ccir_fix_en (*(volatile byte xdata *) 0xDDAA)
+#define p_reg_p_ccir_fix_en 0xDDAA
+#define reg_p_ccir_fix_en_pos 0
+#define reg_p_ccir_fix_en_len 1
+#define reg_p_ccir_fix_en_lsb 0
+#define xd_p_ir_sys_clk (*(volatile byte xdata *) 0xDF80)
+#define p_ir_sys_clk 0xDF80
+#define ir_sys_clk_pos 0
+#define ir_sys_clk_len 8
+#define ir_sys_clk_lsb 0
+#define xd_p_ir_sample_clk (*(volatile byte xdata *) 0xDF81)
+#define p_ir_sample_clk 0xDF81
+#define ir_sample_clk_pos 0
+#define ir_sample_clk_len 2
+#define ir_sample_clk_lsb 0
+#define xd_p_ir_idle_polarity (*(volatile byte xdata *) 0xDF81)
+#define p_ir_idle_polarity 0xDF81
+#define ir_idle_polarity_pos 2
+#define ir_idle_polarity_len 1
+#define ir_idle_polarity_lsb 0
+#define xd_p_ir_fifo_ovfl (*(volatile byte xdata *) 0xDF82)
+#define p_ir_fifo_ovfl 0xDF82
+#define ir_fifo_ovfl_pos 0
+#define ir_fifo_ovfl_len 1
+#define ir_fifo_ovfl_lsb 0
+#define xd_r_ir_fifo_empty (*(volatile byte xdata *) 0xDF82)
+#define r_ir_fifo_empty 0xDF82
+#define ir_fifo_empty_pos 1
+#define ir_fifo_empty_len 1
+#define ir_fifo_empty_lsb 0
+#define xd_r_ir_fifo_cnt (*(volatile byte xdata *) 0xDF82)
+#define r_ir_fifo_cnt 0xDF82
+#define ir_fifo_cnt_pos 2
+#define ir_fifo_cnt_len 3
+#define ir_fifo_cnt_lsb 0
+#define xd_p_ir_fifo_rst (*(volatile byte xdata *) 0xDF82)
+#define p_ir_fifo_rst 0xDF82
+#define ir_fifo_rst_pos 5
+#define ir_fifo_rst_len 1
+#define ir_fifo_rst_lsb 0
+#define xd_p_reg_ir_out_th0_7_0 (*(volatile byte xdata *) 0xDF84)
+#define p_reg_ir_out_th0_7_0 0xDF84
+#define reg_ir_out_th0_7_0_pos 0
+#define reg_ir_out_th0_7_0_len 8
+#define reg_ir_out_th0_7_0_lsb 0
+#define xd_p_reg_ir_out_th0_14_8 (*(volatile byte xdata *) 0xDF85)
+#define p_reg_ir_out_th0_14_8 0xDF85
+#define reg_ir_out_th0_14_8_pos 0
+#define reg_ir_out_th0_14_8_len 7
+#define reg_ir_out_th0_14_8_lsb 8
+#define xd_p_reg_ir_out_th1_7_0 (*(volatile byte xdata *) 0xDF86)
+#define p_reg_ir_out_th1_7_0 0xDF86
+#define reg_ir_out_th1_7_0_pos 0
+#define reg_ir_out_th1_7_0_len 8
+#define reg_ir_out_th1_7_0_lsb 0
+#define xd_p_reg_ir_out_th1_14_8 (*(volatile byte xdata *) 0xDF87)
+#define p_reg_ir_out_th1_14_8 0xDF87
+#define reg_ir_out_th1_14_8_pos 0
+#define reg_ir_out_th1_14_8_len 7
+#define reg_ir_out_th1_14_8_lsb 8
+#define xd_p_reg_ir_out_th2_7_0 (*(volatile byte xdata *) 0xDF88)
+#define p_reg_ir_out_th2_7_0 0xDF88
+#define reg_ir_out_th2_7_0_pos 0
+#define reg_ir_out_th2_7_0_len 8
+#define reg_ir_out_th2_7_0_lsb 0
+#define xd_p_reg_ir_out_th2_14_8 (*(volatile byte xdata *) 0xDF89)
+#define p_reg_ir_out_th2_14_8 0xDF89
+#define reg_ir_out_th2_14_8_pos 0
+#define reg_ir_out_th2_14_8_len 7
+#define reg_ir_out_th2_14_8_lsb 8
+#define xd_p_reg_ir_out_th3_7_0 (*(volatile byte xdata *) 0xDF8A)
+#define p_reg_ir_out_th3_7_0 0xDF8A
+#define reg_ir_out_th3_7_0_pos 0
+#define reg_ir_out_th3_7_0_len 8
+#define reg_ir_out_th3_7_0_lsb 0
+#define xd_p_reg_ir_out_th3_14_8 (*(volatile byte xdata *) 0xDF8B)
+#define p_reg_ir_out_th3_14_8 0xDF8B
+#define reg_ir_out_th3_14_8_pos 0
+#define reg_ir_out_th3_14_8_len 7
+#define reg_ir_out_th3_14_8_lsb 8
+#define xd_p_reg_ir_out_th4_7_0 (*(volatile byte xdata *) 0xDF8C)
+#define p_reg_ir_out_th4_7_0 0xDF8C
+#define reg_ir_out_th4_7_0_pos 0
+#define reg_ir_out_th4_7_0_len 8
+#define reg_ir_out_th4_7_0_lsb 0
+#define xd_p_reg_ir_out_th4_14_8 (*(volatile byte xdata *) 0xDF8D)
+#define p_reg_ir_out_th4_14_8 0xDF8D
+#define reg_ir_out_th4_14_8_pos 0
+#define reg_ir_out_th4_14_8_len 7
+#define reg_ir_out_th4_14_8_lsb 8
+#define xd_p_reg_ir_out_th5_7_0 (*(volatile byte xdata *) 0xDF8E)
+#define p_reg_ir_out_th5_7_0 0xDF8E
+#define reg_ir_out_th5_7_0_pos 0
+#define reg_ir_out_th5_7_0_len 8
+#define reg_ir_out_th5_7_0_lsb 0
+#define xd_p_reg_ir_out_th5_14_8 (*(volatile byte xdata *) 0xDF8F)
+#define p_reg_ir_out_th5_14_8 0xDF8F
+#define reg_ir_out_th5_14_8_pos 0
+#define reg_ir_out_th5_14_8_len 7
+#define reg_ir_out_th5_14_8_lsb 8
+#define xd_p_reg_ir_out_th6_7_0 (*(volatile byte xdata *) 0xDF90)
+#define p_reg_ir_out_th6_7_0 0xDF90
+#define reg_ir_out_th6_7_0_pos 0
+#define reg_ir_out_th6_7_0_len 8
+#define reg_ir_out_th6_7_0_lsb 0
+#define xd_p_reg_ir_out_th6_14_8 (*(volatile byte xdata *) 0xDF91)
+#define p_reg_ir_out_th6_14_8 0xDF91
+#define reg_ir_out_th6_14_8_pos 0
+#define reg_ir_out_th6_14_8_len 7
+#define reg_ir_out_th6_14_8_lsb 8
+#define xd_p_reg_ir_out_th7_7_0 (*(volatile byte xdata *) 0xDF92)
+#define p_reg_ir_out_th7_7_0 0xDF92
+#define reg_ir_out_th7_7_0_pos 0
+#define reg_ir_out_th7_7_0_len 8
+#define reg_ir_out_th7_7_0_lsb 0
+#define xd_p_reg_ir_out_th7_14_8 (*(volatile byte xdata *) 0xDF93)
+#define p_reg_ir_out_th7_14_8 0xDF93
+#define reg_ir_out_th7_14_8_pos 0
+#define reg_ir_out_th7_14_8_len 7
+#define reg_ir_out_th7_14_8_lsb 8
+#define xd_p_reg_ir_out_th8_7_0 (*(volatile byte xdata *) 0xDF94)
+#define p_reg_ir_out_th8_7_0 0xDF94
+#define reg_ir_out_th8_7_0_pos 0
+#define reg_ir_out_th8_7_0_len 8
+#define reg_ir_out_th8_7_0_lsb 0
+#define xd_p_reg_ir_out_th8_14_8 (*(volatile byte xdata *) 0xDF95)
+#define p_reg_ir_out_th8_14_8 0xDF95
+#define reg_ir_out_th8_14_8_pos 0
+#define reg_ir_out_th8_14_8_len 7
+#define reg_ir_out_th8_14_8_lsb 8
+#define xd_p_reg_ir_out_th9_7_0 (*(volatile byte xdata *) 0xDF96)
+#define p_reg_ir_out_th9_7_0 0xDF96
+#define reg_ir_out_th9_7_0_pos 0
+#define reg_ir_out_th9_7_0_len 8
+#define reg_ir_out_th9_7_0_lsb 0
+#define xd_p_reg_ir_out_th9_14_8 (*(volatile byte xdata *) 0xDF97)
+#define p_reg_ir_out_th9_14_8 0xDF97
+#define reg_ir_out_th9_14_8_pos 0
+#define reg_ir_out_th9_14_8_len 7
+#define reg_ir_out_th9_14_8_lsb 8
+#define xd_p_reg_ir_out_th10_7_0 (*(volatile byte xdata *) 0xDF98)
+#define p_reg_ir_out_th10_7_0 0xDF98
+#define reg_ir_out_th10_7_0_pos 0
+#define reg_ir_out_th10_7_0_len 8
+#define reg_ir_out_th10_7_0_lsb 0
+#define xd_p_reg_ir_out_th10_14_8 (*(volatile byte xdata *) 0xDF99)
+#define p_reg_ir_out_th10_14_8 0xDF99
+#define reg_ir_out_th10_14_8_pos 0
+#define reg_ir_out_th10_14_8_len 7
+#define reg_ir_out_th10_14_8_lsb 8
+#define xd_p_reg_ir_out_th11_7_0 (*(volatile byte xdata *) 0xDF9A)
+#define p_reg_ir_out_th11_7_0 0xDF9A
+#define reg_ir_out_th11_7_0_pos 0
+#define reg_ir_out_th11_7_0_len 8
+#define reg_ir_out_th11_7_0_lsb 0
+#define xd_p_reg_ir_out_th11_14_8 (*(volatile byte xdata *) 0xDF9B)
+#define p_reg_ir_out_th11_14_8 0xDF9B
+#define reg_ir_out_th11_14_8_pos 0
+#define reg_ir_out_th11_14_8_len 7
+#define reg_ir_out_th11_14_8_lsb 8
+#define xd_p_reg_ir_out_th12_7_0 (*(volatile byte xdata *) 0xDF9C)
+#define p_reg_ir_out_th12_7_0 0xDF9C
+#define reg_ir_out_th12_7_0_pos 0
+#define reg_ir_out_th12_7_0_len 8
+#define reg_ir_out_th12_7_0_lsb 0
+#define xd_p_reg_ir_out_th12_14_8 (*(volatile byte xdata *) 0xDF9D)
+#define p_reg_ir_out_th12_14_8 0xDF9D
+#define reg_ir_out_th12_14_8_pos 0
+#define reg_ir_out_th12_14_8_len 7
+#define reg_ir_out_th12_14_8_lsb 8
+#define xd_p_reg_ir_out_th13_7_0 (*(volatile byte xdata *) 0xDF9E)
+#define p_reg_ir_out_th13_7_0 0xDF9E
+#define reg_ir_out_th13_7_0_pos 0
+#define reg_ir_out_th13_7_0_len 8
+#define reg_ir_out_th13_7_0_lsb 0
+#define xd_p_reg_ir_out_th13_14_8 (*(volatile byte xdata *) 0xDF9F)
+#define p_reg_ir_out_th13_14_8 0xDF9F
+#define reg_ir_out_th13_14_8_pos 0
+#define reg_ir_out_th13_14_8_len 7
+#define reg_ir_out_th13_14_8_lsb 8
+#define xd_p_reg_ir_out_th14_7_0 (*(volatile byte xdata *) 0xDFA0)
+#define p_reg_ir_out_th14_7_0 0xDFA0
+#define reg_ir_out_th14_7_0_pos 0
+#define reg_ir_out_th14_7_0_len 8
+#define reg_ir_out_th14_7_0_lsb 0
+#define xd_p_reg_ir_out_th14_14_8 (*(volatile byte xdata *) 0xDFA1)
+#define p_reg_ir_out_th14_14_8 0xDFA1
+#define reg_ir_out_th14_14_8_pos 0
+#define reg_ir_out_th14_14_8_len 7
+#define reg_ir_out_th14_14_8_lsb 8
+#define xd_p_reg_tuner_data_7_0 (*(volatile byte xdata *) 0xF000)
+#define p_reg_tuner_data_7_0 0xF000
+#define reg_tuner_data_7_0_pos 0
+#define reg_tuner_data_7_0_len 8
+#define reg_tuner_data_7_0_lsb 0
+#define xd_p_reg_tuner_data_15_8 (*(volatile byte xdata *) 0xF001)
+#define p_reg_tuner_data_15_8 0xF001
+#define reg_tuner_data_15_8_pos 0
+#define reg_tuner_data_15_8_len 8
+#define reg_tuner_data_15_8_lsb 8
+#define xd_p_reg_tuner_data_23_16 (*(volatile byte xdata *) 0xF002)
+#define p_reg_tuner_data_23_16 0xF002
+#define reg_tuner_data_23_16_pos 0
+#define reg_tuner_data_23_16_len 8
+#define reg_tuner_data_23_16_lsb 16
+#define xd_p_reg_tuner_data_31_24 (*(volatile byte xdata *) 0xF003)
+#define p_reg_tuner_data_31_24 0xF003
+#define reg_tuner_data_31_24_pos 0
+#define reg_tuner_data_31_24_len 8
+#define reg_tuner_data_31_24_lsb 24
+#define xd_p_reg_tuner_data_39_32 (*(volatile byte xdata *) 0xF004)
+#define p_reg_tuner_data_39_32 0xF004
+#define reg_tuner_data_39_32_pos 0
+#define reg_tuner_data_39_32_len 8
+#define reg_tuner_data_39_32_lsb 32
+#define xd_p_reg_tuner_data_47_40 (*(volatile byte xdata *) 0xF005)
+#define p_reg_tuner_data_47_40 0xF005
+#define reg_tuner_data_47_40_pos 0
+#define reg_tuner_data_47_40_len 8
+#define reg_tuner_data_47_40_lsb 40
+#define xd_p_reg_tuner_data_55_48 (*(volatile byte xdata *) 0xF006)
+#define p_reg_tuner_data_55_48 0xF006
+#define reg_tuner_data_55_48_pos 0
+#define reg_tuner_data_55_48_len 8
+#define reg_tuner_data_55_48_lsb 48
+#define xd_p_reg_tuner_data_63_56 (*(volatile byte xdata *) 0xF007)
+#define p_reg_tuner_data_63_56 0xF007
+#define reg_tuner_data_63_56_pos 0
+#define reg_tuner_data_63_56_len 8
+#define reg_tuner_data_63_56_lsb 56
+#define xd_p_reg_tuner_data_71_64 (*(volatile byte xdata *) 0xF008)
+#define p_reg_tuner_data_71_64 0xF008
+#define reg_tuner_data_71_64_pos 0
+#define reg_tuner_data_71_64_len 8
+#define reg_tuner_data_71_64_lsb 64
+#define xd_p_reg_tuner_data_79_72 (*(volatile byte xdata *) 0xF009)
+#define p_reg_tuner_data_79_72 0xF009
+#define reg_tuner_data_79_72_pos 0
+#define reg_tuner_data_79_72_len 8
+#define reg_tuner_data_79_72_lsb 72
+#define xd_p_reg_tuner_data_87_80 (*(volatile byte xdata *) 0xF00A)
+#define p_reg_tuner_data_87_80 0xF00A
+#define reg_tuner_data_87_80_pos 0
+#define reg_tuner_data_87_80_len 8
+#define reg_tuner_data_87_80_lsb 80
+#define xd_p_reg_tuner_data_95_88 (*(volatile byte xdata *) 0xF00B)
+#define p_reg_tuner_data_95_88 0xF00B
+#define reg_tuner_data_95_88_pos 0
+#define reg_tuner_data_95_88_len 8
+#define reg_tuner_data_95_88_lsb 88
+#define xd_p_reg_tuner_data_103_96 (*(volatile byte xdata *) 0xF00C)
+#define p_reg_tuner_data_103_96 0xF00C
+#define reg_tuner_data_103_96_pos 0
+#define reg_tuner_data_103_96_len 8
+#define reg_tuner_data_103_96_lsb 96
+#define xd_p_reg_tuner_data_111_104 (*(volatile byte xdata *) 0xF00D)
+#define p_reg_tuner_data_111_104 0xF00D
+#define reg_tuner_data_111_104_pos 0
+#define reg_tuner_data_111_104_len 8
+#define reg_tuner_data_111_104_lsb 104
+#define xd_p_reg_tuner_data_119_112 (*(volatile byte xdata *) 0xF00E)
+#define p_reg_tuner_data_119_112 0xF00E
+#define reg_tuner_data_119_112_pos 0
+#define reg_tuner_data_119_112_len 8
+#define reg_tuner_data_119_112_lsb 112
+#define xd_p_reg_tuner_data_127_120 (*(volatile byte xdata *) 0xF00F)
+#define p_reg_tuner_data_127_120 0xF00F
+#define reg_tuner_data_127_120_pos 0
+#define reg_tuner_data_127_120_len 8
+#define reg_tuner_data_127_120_lsb 120
+#define xd_p_reg_tuner_data_135_128 (*(volatile byte xdata *) 0xF010)
+#define p_reg_tuner_data_135_128 0xF010
+#define reg_tuner_data_135_128_pos 0
+#define reg_tuner_data_135_128_len 8
+#define reg_tuner_data_135_128_lsb 128
+#define xd_p_reg_tuner_data_143_136 (*(volatile byte xdata *) 0xF011)
+#define p_reg_tuner_data_143_136 0xF011
+#define reg_tuner_data_143_136_pos 0
+#define reg_tuner_data_143_136_len 8
+#define reg_tuner_data_143_136_lsb 136
+#define xd_p_reg_tuner_data_151_144 (*(volatile byte xdata *) 0xF012)
+#define p_reg_tuner_data_151_144 0xF012
+#define reg_tuner_data_151_144_pos 0
+#define reg_tuner_data_151_144_len 8
+#define reg_tuner_data_151_144_lsb 144
+#define xd_p_reg_tuner_data_159_152 (*(volatile byte xdata *) 0xF013)
+#define p_reg_tuner_data_159_152 0xF013
+#define reg_tuner_data_159_152_pos 0
+#define reg_tuner_data_159_152_len 8
+#define reg_tuner_data_159_152_lsb 152
+#define xd_p_reg_tuner_data_167_160 (*(volatile byte xdata *) 0xF014)
+#define p_reg_tuner_data_167_160 0xF014
+#define reg_tuner_data_167_160_pos 0
+#define reg_tuner_data_167_160_len 8
+#define reg_tuner_data_167_160_lsb 160
+#define xd_p_reg_tuner_data_175_168 (*(volatile byte xdata *) 0xF015)
+#define p_reg_tuner_data_175_168 0xF015
+#define reg_tuner_data_175_168_pos 0
+#define reg_tuner_data_175_168_len 8
+#define reg_tuner_data_175_168_lsb 168
+#define xd_p_reg_tuner_data_183_176 (*(volatile byte xdata *) 0xF016)
+#define p_reg_tuner_data_183_176 0xF016
+#define reg_tuner_data_183_176_pos 0
+#define reg_tuner_data_183_176_len 8
+#define reg_tuner_data_183_176_lsb 176
+#define xd_p_reg_tuner_data_191_184 (*(volatile byte xdata *) 0xF017)
+#define p_reg_tuner_data_191_184 0xF017
+#define reg_tuner_data_191_184_pos 0
+#define reg_tuner_data_191_184_len 8
+#define reg_tuner_data_191_184_lsb 184
+#define xd_p_reg_tuner_data_199_192 (*(volatile byte xdata *) 0xF018)
+#define p_reg_tuner_data_199_192 0xF018
+#define reg_tuner_data_199_192_pos 0
+#define reg_tuner_data_199_192_len 8
+#define reg_tuner_data_199_192_lsb 192
+#define xd_p_reg_tuner_data_207_200 (*(volatile byte xdata *) 0xF019)
+#define p_reg_tuner_data_207_200 0xF019
+#define reg_tuner_data_207_200_pos 0
+#define reg_tuner_data_207_200_len 8
+#define reg_tuner_data_207_200_lsb 200
+#define xd_p_reg_tuner_data_215_208 (*(volatile byte xdata *) 0xF01A)
+#define p_reg_tuner_data_215_208 0xF01A
+#define reg_tuner_data_215_208_pos 0
+#define reg_tuner_data_215_208_len 8
+#define reg_tuner_data_215_208_lsb 208
+#define xd_p_reg_tuner_data_223_216 (*(volatile byte xdata *) 0xF01B)
+#define p_reg_tuner_data_223_216 0xF01B
+#define reg_tuner_data_223_216_pos 0
+#define reg_tuner_data_223_216_len 8
+#define reg_tuner_data_223_216_lsb 216
+#define xd_p_reg_tuner_data_231_224 (*(volatile byte xdata *) 0xF01C)
+#define p_reg_tuner_data_231_224 0xF01C
+#define reg_tuner_data_231_224_pos 0
+#define reg_tuner_data_231_224_len 8
+#define reg_tuner_data_231_224_lsb 224
+#define xd_p_reg_tuner_data_239_232 (*(volatile byte xdata *) 0xF01D)
+#define p_reg_tuner_data_239_232 0xF01D
+#define reg_tuner_data_239_232_pos 0
+#define reg_tuner_data_239_232_len 8
+#define reg_tuner_data_239_232_lsb 232
+#define xd_p_reg_tuner_data_247_240 (*(volatile byte xdata *) 0xF01E)
+#define p_reg_tuner_data_247_240 0xF01E
+#define reg_tuner_data_247_240_pos 0
+#define reg_tuner_data_247_240_len 8
+#define reg_tuner_data_247_240_lsb 240
+#define xd_p_reg_tuner_data_255_248 (*(volatile byte xdata *) 0xF01F)
+#define p_reg_tuner_data_255_248 0xF01F
+#define reg_tuner_data_255_248_pos 0
+#define reg_tuner_data_255_248_len 8
+#define reg_tuner_data_255_248_lsb 248
+#define xd_p_reg_tuner_data_263_256 (*(volatile byte xdata *) 0xF020)
+#define p_reg_tuner_data_263_256 0xF020
+#define reg_tuner_data_263_256_pos 0
+#define reg_tuner_data_263_256_len 8
+#define reg_tuner_data_263_256_lsb 256
+#define xd_p_reg_tuner_data_271_264 (*(volatile byte xdata *) 0xF021)
+#define p_reg_tuner_data_271_264 0xF021
+#define reg_tuner_data_271_264_pos 0
+#define reg_tuner_data_271_264_len 8
+#define reg_tuner_data_271_264_lsb 264
+#define xd_p_reg_tuner_data_279_272 (*(volatile byte xdata *) 0xF022)
+#define p_reg_tuner_data_279_272 0xF022
+#define reg_tuner_data_279_272_pos 0
+#define reg_tuner_data_279_272_len 8
+#define reg_tuner_data_279_272_lsb 272
+#define xd_p_reg_tuner_data_287_280 (*(volatile byte xdata *) 0xF023)
+#define p_reg_tuner_data_287_280 0xF023
+#define reg_tuner_data_287_280_pos 0
+#define reg_tuner_data_287_280_len 8
+#define reg_tuner_data_287_280_lsb 280
+#define xd_p_reg_tuner_data_295_288 (*(volatile byte xdata *) 0xF024)
+#define p_reg_tuner_data_295_288 0xF024
+#define reg_tuner_data_295_288_pos 0
+#define reg_tuner_data_295_288_len 8
+#define reg_tuner_data_295_288_lsb 288
+#define xd_p_reg_tuner_data_303_296 (*(volatile byte xdata *) 0xF025)
+#define p_reg_tuner_data_303_296 0xF025
+#define reg_tuner_data_303_296_pos 0
+#define reg_tuner_data_303_296_len 8
+#define reg_tuner_data_303_296_lsb 296
+#define xd_p_reg_tuner_data_311_304 (*(volatile byte xdata *) 0xF026)
+#define p_reg_tuner_data_311_304 0xF026
+#define reg_tuner_data_311_304_pos 0
+#define reg_tuner_data_311_304_len 8
+#define reg_tuner_data_311_304_lsb 304
+#define xd_p_reg_tuner_data_319_312 (*(volatile byte xdata *) 0xF027)
+#define p_reg_tuner_data_319_312 0xF027
+#define reg_tuner_data_319_312_pos 0
+#define reg_tuner_data_319_312_len 8
+#define reg_tuner_data_319_312_lsb 312
+#define xd_p_reg_tuner_data_327_320 (*(volatile byte xdata *) 0xF028)
+#define p_reg_tuner_data_327_320 0xF028
+#define reg_tuner_data_327_320_pos 0
+#define reg_tuner_data_327_320_len 8
+#define reg_tuner_data_327_320_lsb 320
+#define xd_p_reg_tuner_data_335_328 (*(volatile byte xdata *) 0xF029)
+#define p_reg_tuner_data_335_328 0xF029
+#define reg_tuner_data_335_328_pos 0
+#define reg_tuner_data_335_328_len 8
+#define reg_tuner_data_335_328_lsb 328
+#define xd_p_reg_tuner_data_343_336 (*(volatile byte xdata *) 0xF02A)
+#define p_reg_tuner_data_343_336 0xF02A
+#define reg_tuner_data_343_336_pos 0
+#define reg_tuner_data_343_336_len 8
+#define reg_tuner_data_343_336_lsb 336
+#define xd_p_reg_tuner_data_351_344 (*(volatile byte xdata *) 0xF02B)
+#define p_reg_tuner_data_351_344 0xF02B
+#define reg_tuner_data_351_344_pos 0
+#define reg_tuner_data_351_344_len 8
+#define reg_tuner_data_351_344_lsb 344
+#define xd_p_reg_tuner_data_359_352 (*(volatile byte xdata *) 0xF02C)
+#define p_reg_tuner_data_359_352 0xF02C
+#define reg_tuner_data_359_352_pos 0
+#define reg_tuner_data_359_352_len 8
+#define reg_tuner_data_359_352_lsb 352
+#define xd_p_reg_tuner_data_367_360 (*(volatile byte xdata *) 0xF02D)
+#define p_reg_tuner_data_367_360 0xF02D
+#define reg_tuner_data_367_360_pos 0
+#define reg_tuner_data_367_360_len 8
+#define reg_tuner_data_367_360_lsb 360
+#define xd_p_reg_tuner_data_375_368 (*(volatile byte xdata *) 0xF02E)
+#define p_reg_tuner_data_375_368 0xF02E
+#define reg_tuner_data_375_368_pos 0
+#define reg_tuner_data_375_368_len 8
+#define reg_tuner_data_375_368_lsb 368
+#define xd_p_reg_tuner_data_383_376 (*(volatile byte xdata *) 0xF02F)
+#define p_reg_tuner_data_383_376 0xF02F
+#define reg_tuner_data_383_376_pos 0
+#define reg_tuner_data_383_376_len 8
+#define reg_tuner_data_383_376_lsb 376
+#define xd_p_reg_tuner_data_391_384 (*(volatile byte xdata *) 0xF030)
+#define p_reg_tuner_data_391_384 0xF030
+#define reg_tuner_data_391_384_pos 0
+#define reg_tuner_data_391_384_len 8
+#define reg_tuner_data_391_384_lsb 384
+#define xd_p_reg_tuner_data_399_392 (*(volatile byte xdata *) 0xF031)
+#define p_reg_tuner_data_399_392 0xF031
+#define reg_tuner_data_399_392_pos 0
+#define reg_tuner_data_399_392_len 8
+#define reg_tuner_data_399_392_lsb 392
+#define xd_p_reg_tuner_data_407_400 (*(volatile byte xdata *) 0xF032)
+#define p_reg_tuner_data_407_400 0xF032
+#define reg_tuner_data_407_400_pos 0
+#define reg_tuner_data_407_400_len 8
+#define reg_tuner_data_407_400_lsb 400
+#define xd_p_reg_tuner_data_415_408 (*(volatile byte xdata *) 0xF033)
+#define p_reg_tuner_data_415_408 0xF033
+#define reg_tuner_data_415_408_pos 0
+#define reg_tuner_data_415_408_len 8
+#define reg_tuner_data_415_408_lsb 408
+#define xd_p_reg_tuner_data_423_416 (*(volatile byte xdata *) 0xF034)
+#define p_reg_tuner_data_423_416 0xF034
+#define reg_tuner_data_423_416_pos 0
+#define reg_tuner_data_423_416_len 8
+#define reg_tuner_data_423_416_lsb 416
+#define xd_p_reg_tuner_data_431_424 (*(volatile byte xdata *) 0xF035)
+#define p_reg_tuner_data_431_424 0xF035
+#define reg_tuner_data_431_424_pos 0
+#define reg_tuner_data_431_424_len 8
+#define reg_tuner_data_431_424_lsb 424
+#define xd_p_reg_tuner_data_439_432 (*(volatile byte xdata *) 0xF036)
+#define p_reg_tuner_data_439_432 0xF036
+#define reg_tuner_data_439_432_pos 0
+#define reg_tuner_data_439_432_len 8
+#define reg_tuner_data_439_432_lsb 432
+#define xd_p_reg_tuner_data_447_440 (*(volatile byte xdata *) 0xF037)
+#define p_reg_tuner_data_447_440 0xF037
+#define reg_tuner_data_447_440_pos 0
+#define reg_tuner_data_447_440_len 8
+#define reg_tuner_data_447_440_lsb 440
+#define xd_p_reg_tuner_data_455_448 (*(volatile byte xdata *) 0xF038)
+#define p_reg_tuner_data_455_448 0xF038
+#define reg_tuner_data_455_448_pos 0
+#define reg_tuner_data_455_448_len 8
+#define reg_tuner_data_455_448_lsb 448
+#define xd_p_reg_tuner_data_463_456 (*(volatile byte xdata *) 0xF039)
+#define p_reg_tuner_data_463_456 0xF039
+#define reg_tuner_data_463_456_pos 0
+#define reg_tuner_data_463_456_len 8
+#define reg_tuner_data_463_456_lsb 456
+#define xd_p_reg_tuner_data_471_464 (*(volatile byte xdata *) 0xF03A)
+#define p_reg_tuner_data_471_464 0xF03A
+#define reg_tuner_data_471_464_pos 0
+#define reg_tuner_data_471_464_len 8
+#define reg_tuner_data_471_464_lsb 464
+#define xd_p_reg_tuner_data_479_472 (*(volatile byte xdata *) 0xF03B)
+#define p_reg_tuner_data_479_472 0xF03B
+#define reg_tuner_data_479_472_pos 0
+#define reg_tuner_data_479_472_len 8
+#define reg_tuner_data_479_472_lsb 472
+#define xd_p_reg_tuner_data_487_480 (*(volatile byte xdata *) 0xF03C)
+#define p_reg_tuner_data_487_480 0xF03C
+#define reg_tuner_data_487_480_pos 0
+#define reg_tuner_data_487_480_len 8
+#define reg_tuner_data_487_480_lsb 480
+#define xd_p_reg_tuner_data_495_488 (*(volatile byte xdata *) 0xF03D)
+#define p_reg_tuner_data_495_488 0xF03D
+#define reg_tuner_data_495_488_pos 0
+#define reg_tuner_data_495_488_len 8
+#define reg_tuner_data_495_488_lsb 488
+#define xd_p_reg_tuner_data_503_496 (*(volatile byte xdata *) 0xF03E)
+#define p_reg_tuner_data_503_496 0xF03E
+#define reg_tuner_data_503_496_pos 0
+#define reg_tuner_data_503_496_len 8
+#define reg_tuner_data_503_496_lsb 496
+#define xd_p_reg_tuner_data_511_504 (*(volatile byte xdata *) 0xF03F)
+#define p_reg_tuner_data_511_504 0xF03F
+#define reg_tuner_data_511_504_pos 0
+#define reg_tuner_data_511_504_len 8
+#define reg_tuner_data_511_504_lsb 504
+#define xd_p_reg_tuner_data_519_512 (*(volatile byte xdata *) 0xF040)
+#define p_reg_tuner_data_519_512 0xF040
+#define reg_tuner_data_519_512_pos 0
+#define reg_tuner_data_519_512_len 8
+#define reg_tuner_data_519_512_lsb 512
+#define xd_p_reg_tuner_data_527_520 (*(volatile byte xdata *) 0xF041)
+#define p_reg_tuner_data_527_520 0xF041
+#define reg_tuner_data_527_520_pos 0
+#define reg_tuner_data_527_520_len 8
+#define reg_tuner_data_527_520_lsb 520
+#define xd_p_reg_tuner_data_535_528 (*(volatile byte xdata *) 0xF042)
+#define p_reg_tuner_data_535_528 0xF042
+#define reg_tuner_data_535_528_pos 0
+#define reg_tuner_data_535_528_len 8
+#define reg_tuner_data_535_528_lsb 528
+#define xd_p_reg_tuner_data_543_536 (*(volatile byte xdata *) 0xF043)
+#define p_reg_tuner_data_543_536 0xF043
+#define reg_tuner_data_543_536_pos 0
+#define reg_tuner_data_543_536_len 8
+#define reg_tuner_data_543_536_lsb 536
+#define xd_p_reg_tuner_data_551_544 (*(volatile byte xdata *) 0xF044)
+#define p_reg_tuner_data_551_544 0xF044
+#define reg_tuner_data_551_544_pos 0
+#define reg_tuner_data_551_544_len 8
+#define reg_tuner_data_551_544_lsb 544
+#define xd_p_reg_tuner_data_559_552 (*(volatile byte xdata *) 0xF045)
+#define p_reg_tuner_data_559_552 0xF045
+#define reg_tuner_data_559_552_pos 0
+#define reg_tuner_data_559_552_len 8
+#define reg_tuner_data_559_552_lsb 552
+#define xd_p_reg_tuner_data_567_560 (*(volatile byte xdata *) 0xF046)
+#define p_reg_tuner_data_567_560 0xF046
+#define reg_tuner_data_567_560_pos 0
+#define reg_tuner_data_567_560_len 8
+#define reg_tuner_data_567_560_lsb 560
+#define xd_p_reg_tuner_data_575_568 (*(volatile byte xdata *) 0xF047)
+#define p_reg_tuner_data_575_568 0xF047
+#define reg_tuner_data_575_568_pos 0
+#define reg_tuner_data_575_568_len 8
+#define reg_tuner_data_575_568_lsb 568
+#define xd_p_reg_tuner_data_583_576 (*(volatile byte xdata *) 0xF048)
+#define p_reg_tuner_data_583_576 0xF048
+#define reg_tuner_data_583_576_pos 0
+#define reg_tuner_data_583_576_len 8
+#define reg_tuner_data_583_576_lsb 576
+#define xd_p_reg_tuner_data_591_584 (*(volatile byte xdata *) 0xF049)
+#define p_reg_tuner_data_591_584 0xF049
+#define reg_tuner_data_591_584_pos 0
+#define reg_tuner_data_591_584_len 8
+#define reg_tuner_data_591_584_lsb 584
+#define xd_p_reg_tuner_data_599_592 (*(volatile byte xdata *) 0xF04A)
+#define p_reg_tuner_data_599_592 0xF04A
+#define reg_tuner_data_599_592_pos 0
+#define reg_tuner_data_599_592_len 8
+#define reg_tuner_data_599_592_lsb 592
+#define xd_p_reg_tuner_data_607_600 (*(volatile byte xdata *) 0xF04B)
+#define p_reg_tuner_data_607_600 0xF04B
+#define reg_tuner_data_607_600_pos 0
+#define reg_tuner_data_607_600_len 8
+#define reg_tuner_data_607_600_lsb 600
+#define xd_p_reg_tuner_data_615_608 (*(volatile byte xdata *) 0xF04C)
+#define p_reg_tuner_data_615_608 0xF04C
+#define reg_tuner_data_615_608_pos 0
+#define reg_tuner_data_615_608_len 8
+#define reg_tuner_data_615_608_lsb 608
+#define xd_p_reg_tuner_data_623_616 (*(volatile byte xdata *) 0xF04D)
+#define p_reg_tuner_data_623_616 0xF04D
+#define reg_tuner_data_623_616_pos 0
+#define reg_tuner_data_623_616_len 8
+#define reg_tuner_data_623_616_lsb 616
+#define xd_p_reg_tuner_data_631_624 (*(volatile byte xdata *) 0xF04E)
+#define p_reg_tuner_data_631_624 0xF04E
+#define reg_tuner_data_631_624_pos 0
+#define reg_tuner_data_631_624_len 8
+#define reg_tuner_data_631_624_lsb 624
+#define xd_p_reg_tuner_data_639_632 (*(volatile byte xdata *) 0xF04F)
+#define p_reg_tuner_data_639_632 0xF04F
+#define reg_tuner_data_639_632_pos 0
+#define reg_tuner_data_639_632_len 8
+#define reg_tuner_data_639_632_lsb 632
+#define xd_p_reg_tuner_data_647_640 (*(volatile byte xdata *) 0xF050)
+#define p_reg_tuner_data_647_640 0xF050
+#define reg_tuner_data_647_640_pos 0
+#define reg_tuner_data_647_640_len 8
+#define reg_tuner_data_647_640_lsb 640
+#define xd_p_reg_tuner_data_655_648 (*(volatile byte xdata *) 0xF051)
+#define p_reg_tuner_data_655_648 0xF051
+#define reg_tuner_data_655_648_pos 0
+#define reg_tuner_data_655_648_len 8
+#define reg_tuner_data_655_648_lsb 648
+#define xd_p_reg_tuner_data_663_656 (*(volatile byte xdata *) 0xF052)
+#define p_reg_tuner_data_663_656 0xF052
+#define reg_tuner_data_663_656_pos 0
+#define reg_tuner_data_663_656_len 8
+#define reg_tuner_data_663_656_lsb 656
+#define xd_p_reg_tuner_data_671_664 (*(volatile byte xdata *) 0xF053)
+#define p_reg_tuner_data_671_664 0xF053
+#define reg_tuner_data_671_664_pos 0
+#define reg_tuner_data_671_664_len 8
+#define reg_tuner_data_671_664_lsb 664
+#define xd_p_reg_tuner_data_679_672 (*(volatile byte xdata *) 0xF054)
+#define p_reg_tuner_data_679_672 0xF054
+#define reg_tuner_data_679_672_pos 0
+#define reg_tuner_data_679_672_len 8
+#define reg_tuner_data_679_672_lsb 672
+#define xd_p_reg_tuner_data_687_680 (*(volatile byte xdata *) 0xF055)
+#define p_reg_tuner_data_687_680 0xF055
+#define reg_tuner_data_687_680_pos 0
+#define reg_tuner_data_687_680_len 8
+#define reg_tuner_data_687_680_lsb 680
+#define xd_p_reg_tuner_data_695_688 (*(volatile byte xdata *) 0xF056)
+#define p_reg_tuner_data_695_688 0xF056
+#define reg_tuner_data_695_688_pos 0
+#define reg_tuner_data_695_688_len 8
+#define reg_tuner_data_695_688_lsb 688
+#define xd_p_reg_tuner_data_703_696 (*(volatile byte xdata *) 0xF057)
+#define p_reg_tuner_data_703_696 0xF057
+#define reg_tuner_data_703_696_pos 0
+#define reg_tuner_data_703_696_len 8
+#define reg_tuner_data_703_696_lsb 696
+#define xd_p_reg_tuner_data_711_704 (*(volatile byte xdata *) 0xF058)
+#define p_reg_tuner_data_711_704 0xF058
+#define reg_tuner_data_711_704_pos 0
+#define reg_tuner_data_711_704_len 8
+#define reg_tuner_data_711_704_lsb 704
+#define xd_p_reg_tuner_data_719_712 (*(volatile byte xdata *) 0xF059)
+#define p_reg_tuner_data_719_712 0xF059
+#define reg_tuner_data_719_712_pos 0
+#define reg_tuner_data_719_712_len 8
+#define reg_tuner_data_719_712_lsb 712
+#define xd_p_reg_tuner_data_727_720 (*(volatile byte xdata *) 0xF05A)
+#define p_reg_tuner_data_727_720 0xF05A
+#define reg_tuner_data_727_720_pos 0
+#define reg_tuner_data_727_720_len 8
+#define reg_tuner_data_727_720_lsb 720
+#define xd_p_reg_tuner_data_735_728 (*(volatile byte xdata *) 0xF05B)
+#define p_reg_tuner_data_735_728 0xF05B
+#define reg_tuner_data_735_728_pos 0
+#define reg_tuner_data_735_728_len 8
+#define reg_tuner_data_735_728_lsb 728
+#define xd_p_reg_tuner_data_743_736 (*(volatile byte xdata *) 0xF05C)
+#define p_reg_tuner_data_743_736 0xF05C
+#define reg_tuner_data_743_736_pos 0
+#define reg_tuner_data_743_736_len 8
+#define reg_tuner_data_743_736_lsb 736
+#define xd_p_reg_tuner_data_751_744 (*(volatile byte xdata *) 0xF05D)
+#define p_reg_tuner_data_751_744 0xF05D
+#define reg_tuner_data_751_744_pos 0
+#define reg_tuner_data_751_744_len 8
+#define reg_tuner_data_751_744_lsb 744
+#define xd_p_reg_tuner_data_759_752 (*(volatile byte xdata *) 0xF05E)
+#define p_reg_tuner_data_759_752 0xF05E
+#define reg_tuner_data_759_752_pos 0
+#define reg_tuner_data_759_752_len 8
+#define reg_tuner_data_759_752_lsb 752
+#define xd_p_reg_tuner_data_767_760 (*(volatile byte xdata *) 0xF05F)
+#define p_reg_tuner_data_767_760 0xF05F
+#define reg_tuner_data_767_760_pos 0
+#define reg_tuner_data_767_760_len 8
+#define reg_tuner_data_767_760_lsb 760
+#define xd_p_reg_tuner_data_775_768 (*(volatile byte xdata *) 0xF060)
+#define p_reg_tuner_data_775_768 0xF060
+#define reg_tuner_data_775_768_pos 0
+#define reg_tuner_data_775_768_len 8
+#define reg_tuner_data_775_768_lsb 768
+#define xd_p_reg_tuner_data_783_776 (*(volatile byte xdata *) 0xF061)
+#define p_reg_tuner_data_783_776 0xF061
+#define reg_tuner_data_783_776_pos 0
+#define reg_tuner_data_783_776_len 8
+#define reg_tuner_data_783_776_lsb 776
+#define xd_p_reg_tuner_data_791_784 (*(volatile byte xdata *) 0xF062)
+#define p_reg_tuner_data_791_784 0xF062
+#define reg_tuner_data_791_784_pos 0
+#define reg_tuner_data_791_784_len 8
+#define reg_tuner_data_791_784_lsb 784
+#define xd_p_reg_tuner_data_799_792 (*(volatile byte xdata *) 0xF063)
+#define p_reg_tuner_data_799_792 0xF063
+#define reg_tuner_data_799_792_pos 0
+#define reg_tuner_data_799_792_len 8
+#define reg_tuner_data_799_792_lsb 792
+#define xd_p_reg_tuner_data_807_800 (*(volatile byte xdata *) 0xF064)
+#define p_reg_tuner_data_807_800 0xF064
+#define reg_tuner_data_807_800_pos 0
+#define reg_tuner_data_807_800_len 8
+#define reg_tuner_data_807_800_lsb 800
+#define xd_p_reg_tuner_data_815_808 (*(volatile byte xdata *) 0xF065)
+#define p_reg_tuner_data_815_808 0xF065
+#define reg_tuner_data_815_808_pos 0
+#define reg_tuner_data_815_808_len 8
+#define reg_tuner_data_815_808_lsb 808
+#define xd_p_reg_tuner_data_823_816 (*(volatile byte xdata *) 0xF066)
+#define p_reg_tuner_data_823_816 0xF066
+#define reg_tuner_data_823_816_pos 0
+#define reg_tuner_data_823_816_len 8
+#define reg_tuner_data_823_816_lsb 816
+#define xd_p_reg_tuner_data_831_824 (*(volatile byte xdata *) 0xF067)
+#define p_reg_tuner_data_831_824 0xF067
+#define reg_tuner_data_831_824_pos 0
+#define reg_tuner_data_831_824_len 8
+#define reg_tuner_data_831_824_lsb 824
+#define xd_p_reg_tuner_data_839_832 (*(volatile byte xdata *) 0xF068)
+#define p_reg_tuner_data_839_832 0xF068
+#define reg_tuner_data_839_832_pos 0
+#define reg_tuner_data_839_832_len 8
+#define reg_tuner_data_839_832_lsb 832
+#define xd_p_reg_tuner_data_847_840 (*(volatile byte xdata *) 0xF069)
+#define p_reg_tuner_data_847_840 0xF069
+#define reg_tuner_data_847_840_pos 0
+#define reg_tuner_data_847_840_len 8
+#define reg_tuner_data_847_840_lsb 840
+#define xd_p_reg_tuner_data_855_848 (*(volatile byte xdata *) 0xF06A)
+#define p_reg_tuner_data_855_848 0xF06A
+#define reg_tuner_data_855_848_pos 0
+#define reg_tuner_data_855_848_len 8
+#define reg_tuner_data_855_848_lsb 848
+#define xd_p_reg_tuner_data_863_856 (*(volatile byte xdata *) 0xF06B)
+#define p_reg_tuner_data_863_856 0xF06B
+#define reg_tuner_data_863_856_pos 0
+#define reg_tuner_data_863_856_len 8
+#define reg_tuner_data_863_856_lsb 856
+#define xd_p_reg_tuner_data_871_864 (*(volatile byte xdata *) 0xF06C)
+#define p_reg_tuner_data_871_864 0xF06C
+#define reg_tuner_data_871_864_pos 0
+#define reg_tuner_data_871_864_len 8
+#define reg_tuner_data_871_864_lsb 864
+#define xd_p_reg_tuner_data_879_872 (*(volatile byte xdata *) 0xF06D)
+#define p_reg_tuner_data_879_872 0xF06D
+#define reg_tuner_data_879_872_pos 0
+#define reg_tuner_data_879_872_len 8
+#define reg_tuner_data_879_872_lsb 872
+#define xd_p_reg_tuner_data_887_880 (*(volatile byte xdata *) 0xF06E)
+#define p_reg_tuner_data_887_880 0xF06E
+#define reg_tuner_data_887_880_pos 0
+#define reg_tuner_data_887_880_len 8
+#define reg_tuner_data_887_880_lsb 880
+#define xd_p_reg_tuner_data_895_888 (*(volatile byte xdata *) 0xF06F)
+#define p_reg_tuner_data_895_888 0xF06F
+#define reg_tuner_data_895_888_pos 0
+#define reg_tuner_data_895_888_len 8
+#define reg_tuner_data_895_888_lsb 888
+#define xd_p_reg_tuner_data_903_896 (*(volatile byte xdata *) 0xF070)
+#define p_reg_tuner_data_903_896 0xF070
+#define reg_tuner_data_903_896_pos 0
+#define reg_tuner_data_903_896_len 8
+#define reg_tuner_data_903_896_lsb 896
+#define xd_p_reg_tuner_data_911_904 (*(volatile byte xdata *) 0xF071)
+#define p_reg_tuner_data_911_904 0xF071
+#define reg_tuner_data_911_904_pos 0
+#define reg_tuner_data_911_904_len 8
+#define reg_tuner_data_911_904_lsb 904
+#define xd_p_reg_tuner_data_919_912 (*(volatile byte xdata *) 0xF072)
+#define p_reg_tuner_data_919_912 0xF072
+#define reg_tuner_data_919_912_pos 0
+#define reg_tuner_data_919_912_len 8
+#define reg_tuner_data_919_912_lsb 912
+#define xd_p_reg_tuner_data_927_920 (*(volatile byte xdata *) 0xF073)
+#define p_reg_tuner_data_927_920 0xF073
+#define reg_tuner_data_927_920_pos 0
+#define reg_tuner_data_927_920_len 8
+#define reg_tuner_data_927_920_lsb 920
+#define xd_p_reg_tuner_data_935_928 (*(volatile byte xdata *) 0xF074)
+#define p_reg_tuner_data_935_928 0xF074
+#define reg_tuner_data_935_928_pos 0
+#define reg_tuner_data_935_928_len 8
+#define reg_tuner_data_935_928_lsb 928
+#define xd_p_reg_tuner_data_943_936 (*(volatile byte xdata *) 0xF075)
+#define p_reg_tuner_data_943_936 0xF075
+#define reg_tuner_data_943_936_pos 0
+#define reg_tuner_data_943_936_len 8
+#define reg_tuner_data_943_936_lsb 936
+#define xd_p_reg_tuner_data_951_944 (*(volatile byte xdata *) 0xF076)
+#define p_reg_tuner_data_951_944 0xF076
+#define reg_tuner_data_951_944_pos 0
+#define reg_tuner_data_951_944_len 8
+#define reg_tuner_data_951_944_lsb 944
+#define xd_p_reg_tuner_data_959_952 (*(volatile byte xdata *) 0xF077)
+#define p_reg_tuner_data_959_952 0xF077
+#define reg_tuner_data_959_952_pos 0
+#define reg_tuner_data_959_952_len 8
+#define reg_tuner_data_959_952_lsb 952
+#define xd_p_reg_tuner_data_967_960 (*(volatile byte xdata *) 0xF078)
+#define p_reg_tuner_data_967_960 0xF078
+#define reg_tuner_data_967_960_pos 0
+#define reg_tuner_data_967_960_len 8
+#define reg_tuner_data_967_960_lsb 960
+#define xd_p_reg_tuner_data_975_968 (*(volatile byte xdata *) 0xF079)
+#define p_reg_tuner_data_975_968 0xF079
+#define reg_tuner_data_975_968_pos 0
+#define reg_tuner_data_975_968_len 8
+#define reg_tuner_data_975_968_lsb 968
+#define xd_p_reg_tuner_data_983_976 (*(volatile byte xdata *) 0xF07A)
+#define p_reg_tuner_data_983_976 0xF07A
+#define reg_tuner_data_983_976_pos 0
+#define reg_tuner_data_983_976_len 8
+#define reg_tuner_data_983_976_lsb 976
+#define xd_p_reg_tuner_data_991_984 (*(volatile byte xdata *) 0xF07B)
+#define p_reg_tuner_data_991_984 0xF07B
+#define reg_tuner_data_991_984_pos 0
+#define reg_tuner_data_991_984_len 8
+#define reg_tuner_data_991_984_lsb 984
+#define xd_p_reg_tuner_data_999_992 (*(volatile byte xdata *) 0xF07C)
+#define p_reg_tuner_data_999_992 0xF07C
+#define reg_tuner_data_999_992_pos 0
+#define reg_tuner_data_999_992_len 8
+#define reg_tuner_data_999_992_lsb 992
+#define xd_p_reg_tuner_data_1007_1000 (*(volatile byte xdata *) 0xF07D)
+#define p_reg_tuner_data_1007_1000 0xF07D
+#define reg_tuner_data_1007_1000_pos 0
+#define reg_tuner_data_1007_1000_len 8
+#define reg_tuner_data_1007_1000_lsb 1000
+#define xd_p_reg_tuner_data_1015_1008 (*(volatile byte xdata *) 0xF07E)
+#define p_reg_tuner_data_1015_1008 0xF07E
+#define reg_tuner_data_1015_1008_pos 0
+#define reg_tuner_data_1015_1008_len 8
+#define reg_tuner_data_1015_1008_lsb 1008
+#define xd_p_reg_tuner_data_1023_1016 (*(volatile byte xdata *) 0xF07F)
+#define p_reg_tuner_data_1023_1016 0xF07F
+#define reg_tuner_data_1023_1016_pos 0
+#define reg_tuner_data_1023_1016_len 8
+#define reg_tuner_data_1023_1016_lsb 1016
+#define xd_p_reg_tuner_data_1031_1024 (*(volatile byte xdata *) 0xF080)
+#define p_reg_tuner_data_1031_1024 0xF080
+#define reg_tuner_data_1031_1024_pos 0
+#define reg_tuner_data_1031_1024_len 8
+#define reg_tuner_data_1031_1024_lsb 1024
+#define xd_p_reg_tuner_data_1039_1032 (*(volatile byte xdata *) 0xF081)
+#define p_reg_tuner_data_1039_1032 0xF081
+#define reg_tuner_data_1039_1032_pos 0
+#define reg_tuner_data_1039_1032_len 8
+#define reg_tuner_data_1039_1032_lsb 1032
+#define xd_p_reg_tuner_data_1047_1040 (*(volatile byte xdata *) 0xF082)
+#define p_reg_tuner_data_1047_1040 0xF082
+#define reg_tuner_data_1047_1040_pos 0
+#define reg_tuner_data_1047_1040_len 8
+#define reg_tuner_data_1047_1040_lsb 1040
+#define xd_p_reg_tuner_data_1055_1048 (*(volatile byte xdata *) 0xF083)
+#define p_reg_tuner_data_1055_1048 0xF083
+#define reg_tuner_data_1055_1048_pos 0
+#define reg_tuner_data_1055_1048_len 8
+#define reg_tuner_data_1055_1048_lsb 1048
+#define xd_p_reg_tuner_data_1063_1056 (*(volatile byte xdata *) 0xF084)
+#define p_reg_tuner_data_1063_1056 0xF084
+#define reg_tuner_data_1063_1056_pos 0
+#define reg_tuner_data_1063_1056_len 8
+#define reg_tuner_data_1063_1056_lsb 1056
+#define xd_p_reg_tuner_data_1071_1064 (*(volatile byte xdata *) 0xF085)
+#define p_reg_tuner_data_1071_1064 0xF085
+#define reg_tuner_data_1071_1064_pos 0
+#define reg_tuner_data_1071_1064_len 8
+#define reg_tuner_data_1071_1064_lsb 1064
+#define xd_p_reg_tuner_data_1079_1072 (*(volatile byte xdata *) 0xF086)
+#define p_reg_tuner_data_1079_1072 0xF086
+#define reg_tuner_data_1079_1072_pos 0
+#define reg_tuner_data_1079_1072_len 8
+#define reg_tuner_data_1079_1072_lsb 1072
+#define xd_p_reg_tuner_data_1087_1080 (*(volatile byte xdata *) 0xF087)
+#define p_reg_tuner_data_1087_1080 0xF087
+#define reg_tuner_data_1087_1080_pos 0
+#define reg_tuner_data_1087_1080_len 8
+#define reg_tuner_data_1087_1080_lsb 1080
+#define xd_p_reg_tuner_data_1095_1088 (*(volatile byte xdata *) 0xF088)
+#define p_reg_tuner_data_1095_1088 0xF088
+#define reg_tuner_data_1095_1088_pos 0
+#define reg_tuner_data_1095_1088_len 8
+#define reg_tuner_data_1095_1088_lsb 1088
+#define xd_p_reg_tuner_data_1103_1096 (*(volatile byte xdata *) 0xF089)
+#define p_reg_tuner_data_1103_1096 0xF089
+#define reg_tuner_data_1103_1096_pos 0
+#define reg_tuner_data_1103_1096_len 8
+#define reg_tuner_data_1103_1096_lsb 1096
+#define xd_p_reg_tuner_data_1111_1104 (*(volatile byte xdata *) 0xF08A)
+#define p_reg_tuner_data_1111_1104 0xF08A
+#define reg_tuner_data_1111_1104_pos 0
+#define reg_tuner_data_1111_1104_len 8
+#define reg_tuner_data_1111_1104_lsb 1104
+#define xd_p_reg_tuner_data_1119_1112 (*(volatile byte xdata *) 0xF08B)
+#define p_reg_tuner_data_1119_1112 0xF08B
+#define reg_tuner_data_1119_1112_pos 0
+#define reg_tuner_data_1119_1112_len 8
+#define reg_tuner_data_1119_1112_lsb 1112
+#define xd_p_reg_tuner_data_1127_1120 (*(volatile byte xdata *) 0xF08C)
+#define p_reg_tuner_data_1127_1120 0xF08C
+#define reg_tuner_data_1127_1120_pos 0
+#define reg_tuner_data_1127_1120_len 8
+#define reg_tuner_data_1127_1120_lsb 1120
+#define xd_p_reg_tuner_data_1135_1128 (*(volatile byte xdata *) 0xF08D)
+#define p_reg_tuner_data_1135_1128 0xF08D
+#define reg_tuner_data_1135_1128_pos 0
+#define reg_tuner_data_1135_1128_len 8
+#define reg_tuner_data_1135_1128_lsb 1128
+#define xd_p_reg_tuner_data_1143_1136 (*(volatile byte xdata *) 0xF08E)
+#define p_reg_tuner_data_1143_1136 0xF08E
+#define reg_tuner_data_1143_1136_pos 0
+#define reg_tuner_data_1143_1136_len 8
+#define reg_tuner_data_1143_1136_lsb 1136
+#define xd_p_reg_tuner_data_1151_1144 (*(volatile byte xdata *) 0xF08F)
+#define p_reg_tuner_data_1151_1144 0xF08F
+#define reg_tuner_data_1151_1144_pos 0
+#define reg_tuner_data_1151_1144_len 8
+#define reg_tuner_data_1151_1144_lsb 1144
+#define xd_p_reg_tuner_data_1159_1152 (*(volatile byte xdata *) 0xF090)
+#define p_reg_tuner_data_1159_1152 0xF090
+#define reg_tuner_data_1159_1152_pos 0
+#define reg_tuner_data_1159_1152_len 8
+#define reg_tuner_data_1159_1152_lsb 1152
+#define xd_p_reg_tuner_data_1167_1160 (*(volatile byte xdata *) 0xF091)
+#define p_reg_tuner_data_1167_1160 0xF091
+#define reg_tuner_data_1167_1160_pos 0
+#define reg_tuner_data_1167_1160_len 8
+#define reg_tuner_data_1167_1160_lsb 1160
+#define xd_p_reg_tuner_data_1175_1168 (*(volatile byte xdata *) 0xF092)
+#define p_reg_tuner_data_1175_1168 0xF092
+#define reg_tuner_data_1175_1168_pos 0
+#define reg_tuner_data_1175_1168_len 8
+#define reg_tuner_data_1175_1168_lsb 1168
+#define xd_p_reg_tuner_data_1183_1176 (*(volatile byte xdata *) 0xF093)
+#define p_reg_tuner_data_1183_1176 0xF093
+#define reg_tuner_data_1183_1176_pos 0
+#define reg_tuner_data_1183_1176_len 8
+#define reg_tuner_data_1183_1176_lsb 1176
+#define xd_p_reg_tuner_data_1191_1184 (*(volatile byte xdata *) 0xF094)
+#define p_reg_tuner_data_1191_1184 0xF094
+#define reg_tuner_data_1191_1184_pos 0
+#define reg_tuner_data_1191_1184_len 8
+#define reg_tuner_data_1191_1184_lsb 1184
+#define xd_p_reg_tuner_data_1199_1192 (*(volatile byte xdata *) 0xF095)
+#define p_reg_tuner_data_1199_1192 0xF095
+#define reg_tuner_data_1199_1192_pos 0
+#define reg_tuner_data_1199_1192_len 8
+#define reg_tuner_data_1199_1192_lsb 1192
+#define xd_p_reg_tuner_data_1207_1200 (*(volatile byte xdata *) 0xF096)
+#define p_reg_tuner_data_1207_1200 0xF096
+#define reg_tuner_data_1207_1200_pos 0
+#define reg_tuner_data_1207_1200_len 8
+#define reg_tuner_data_1207_1200_lsb 1200
+#define xd_p_reg_tuner_data_1215_1208 (*(volatile byte xdata *) 0xF097)
+#define p_reg_tuner_data_1215_1208 0xF097
+#define reg_tuner_data_1215_1208_pos 0
+#define reg_tuner_data_1215_1208_len 8
+#define reg_tuner_data_1215_1208_lsb 1208
+#define xd_p_reg_tuner_data_1223_1216 (*(volatile byte xdata *) 0xF098)
+#define p_reg_tuner_data_1223_1216 0xF098
+#define reg_tuner_data_1223_1216_pos 0
+#define reg_tuner_data_1223_1216_len 8
+#define reg_tuner_data_1223_1216_lsb 1216
+#define xd_p_reg_tuner_data_1231_1224 (*(volatile byte xdata *) 0xF099)
+#define p_reg_tuner_data_1231_1224 0xF099
+#define reg_tuner_data_1231_1224_pos 0
+#define reg_tuner_data_1231_1224_len 8
+#define reg_tuner_data_1231_1224_lsb 1224
+#define xd_p_reg_tuner_data_1239_1232 (*(volatile byte xdata *) 0xF09A)
+#define p_reg_tuner_data_1239_1232 0xF09A
+#define reg_tuner_data_1239_1232_pos 0
+#define reg_tuner_data_1239_1232_len 8
+#define reg_tuner_data_1239_1232_lsb 1232
+#define xd_p_reg_tuner_data_1247_1240 (*(volatile byte xdata *) 0xF09B)
+#define p_reg_tuner_data_1247_1240 0xF09B
+#define reg_tuner_data_1247_1240_pos 0
+#define reg_tuner_data_1247_1240_len 8
+#define reg_tuner_data_1247_1240_lsb 1240
+#define xd_p_reg_tuner_data_1255_1248 (*(volatile byte xdata *) 0xF09C)
+#define p_reg_tuner_data_1255_1248 0xF09C
+#define reg_tuner_data_1255_1248_pos 0
+#define reg_tuner_data_1255_1248_len 8
+#define reg_tuner_data_1255_1248_lsb 1248
+#define xd_p_reg_tuner_data_1263_1256 (*(volatile byte xdata *) 0xF09D)
+#define p_reg_tuner_data_1263_1256 0xF09D
+#define reg_tuner_data_1263_1256_pos 0
+#define reg_tuner_data_1263_1256_len 8
+#define reg_tuner_data_1263_1256_lsb 1256
+#define xd_p_reg_tuner_data_1271_1264 (*(volatile byte xdata *) 0xF09E)
+#define p_reg_tuner_data_1271_1264 0xF09E
+#define reg_tuner_data_1271_1264_pos 0
+#define reg_tuner_data_1271_1264_len 8
+#define reg_tuner_data_1271_1264_lsb 1264
+#define xd_p_reg_tuner_data_1279_1272 (*(volatile byte xdata *) 0xF09F)
+#define p_reg_tuner_data_1279_1272 0xF09F
+#define reg_tuner_data_1279_1272_pos 0
+#define reg_tuner_data_1279_1272_len 8
+#define reg_tuner_data_1279_1272_lsb 1272
+#define xd_p_reg_tuner_data_1287_1280 (*(volatile byte xdata *) 0xF0A0)
+#define p_reg_tuner_data_1287_1280 0xF0A0
+#define reg_tuner_data_1287_1280_pos 0
+#define reg_tuner_data_1287_1280_len 8
+#define reg_tuner_data_1287_1280_lsb 1280
+#define xd_p_reg_tuner_data_1295_1288 (*(volatile byte xdata *) 0xF0A1)
+#define p_reg_tuner_data_1295_1288 0xF0A1
+#define reg_tuner_data_1295_1288_pos 0
+#define reg_tuner_data_1295_1288_len 8
+#define reg_tuner_data_1295_1288_lsb 1288
+#define xd_p_reg_tuner_data_1303_1296 (*(volatile byte xdata *) 0xF0A2)
+#define p_reg_tuner_data_1303_1296 0xF0A2
+#define reg_tuner_data_1303_1296_pos 0
+#define reg_tuner_data_1303_1296_len 8
+#define reg_tuner_data_1303_1296_lsb 1296
+#define xd_p_reg_tuner_data_1311_1304 (*(volatile byte xdata *) 0xF0A3)
+#define p_reg_tuner_data_1311_1304 0xF0A3
+#define reg_tuner_data_1311_1304_pos 0
+#define reg_tuner_data_1311_1304_len 8
+#define reg_tuner_data_1311_1304_lsb 1304
+#define xd_p_reg_tuner_data_1319_1312 (*(volatile byte xdata *) 0xF0A4)
+#define p_reg_tuner_data_1319_1312 0xF0A4
+#define reg_tuner_data_1319_1312_pos 0
+#define reg_tuner_data_1319_1312_len 8
+#define reg_tuner_data_1319_1312_lsb 1312
+#define xd_p_reg_tuner_data_1327_1320 (*(volatile byte xdata *) 0xF0A5)
+#define p_reg_tuner_data_1327_1320 0xF0A5
+#define reg_tuner_data_1327_1320_pos 0
+#define reg_tuner_data_1327_1320_len 8
+#define reg_tuner_data_1327_1320_lsb 1320
+#define xd_p_reg_tuner_data_1335_1328 (*(volatile byte xdata *) 0xF0A6)
+#define p_reg_tuner_data_1335_1328 0xF0A6
+#define reg_tuner_data_1335_1328_pos 0
+#define reg_tuner_data_1335_1328_len 8
+#define reg_tuner_data_1335_1328_lsb 1328
+#define xd_p_reg_tuner_data_1343_1336 (*(volatile byte xdata *) 0xF0A7)
+#define p_reg_tuner_data_1343_1336 0xF0A7
+#define reg_tuner_data_1343_1336_pos 0
+#define reg_tuner_data_1343_1336_len 8
+#define reg_tuner_data_1343_1336_lsb 1336
+#define xd_p_reg_tuner_data_1351_1344 (*(volatile byte xdata *) 0xF0A8)
+#define p_reg_tuner_data_1351_1344 0xF0A8
+#define reg_tuner_data_1351_1344_pos 0
+#define reg_tuner_data_1351_1344_len 8
+#define reg_tuner_data_1351_1344_lsb 1344
+#define xd_p_reg_tuner_data_1359_1352 (*(volatile byte xdata *) 0xF0A9)
+#define p_reg_tuner_data_1359_1352 0xF0A9
+#define reg_tuner_data_1359_1352_pos 0
+#define reg_tuner_data_1359_1352_len 8
+#define reg_tuner_data_1359_1352_lsb 1352
+#define xd_p_reg_tuner_data_1367_1360 (*(volatile byte xdata *) 0xF0AA)
+#define p_reg_tuner_data_1367_1360 0xF0AA
+#define reg_tuner_data_1367_1360_pos 0
+#define reg_tuner_data_1367_1360_len 8
+#define reg_tuner_data_1367_1360_lsb 1360
+#define xd_p_reg_tuner_data_1375_1368 (*(volatile byte xdata *) 0xF0AB)
+#define p_reg_tuner_data_1375_1368 0xF0AB
+#define reg_tuner_data_1375_1368_pos 0
+#define reg_tuner_data_1375_1368_len 8
+#define reg_tuner_data_1375_1368_lsb 1368
+#define xd_p_reg_tuner_data_1383_1376 (*(volatile byte xdata *) 0xF0AC)
+#define p_reg_tuner_data_1383_1376 0xF0AC
+#define reg_tuner_data_1383_1376_pos 0
+#define reg_tuner_data_1383_1376_len 8
+#define reg_tuner_data_1383_1376_lsb 1376
+#define xd_p_reg_tuner_data_1391_1384 (*(volatile byte xdata *) 0xF0AD)
+#define p_reg_tuner_data_1391_1384 0xF0AD
+#define reg_tuner_data_1391_1384_pos 0
+#define reg_tuner_data_1391_1384_len 8
+#define reg_tuner_data_1391_1384_lsb 1384
+#define xd_p_reg_tuner_data_1399_1392 (*(volatile byte xdata *) 0xF0AE)
+#define p_reg_tuner_data_1399_1392 0xF0AE
+#define reg_tuner_data_1399_1392_pos 0
+#define reg_tuner_data_1399_1392_len 8
+#define reg_tuner_data_1399_1392_lsb 1392
+#define xd_p_reg_tuner_data_1407_1400 (*(volatile byte xdata *) 0xF0AF)
+#define p_reg_tuner_data_1407_1400 0xF0AF
+#define reg_tuner_data_1407_1400_pos 0
+#define reg_tuner_data_1407_1400_len 8
+#define reg_tuner_data_1407_1400_lsb 1400
+#define xd_p_reg_tuner_data_1415_1408 (*(volatile byte xdata *) 0xF0B0)
+#define p_reg_tuner_data_1415_1408 0xF0B0
+#define reg_tuner_data_1415_1408_pos 0
+#define reg_tuner_data_1415_1408_len 8
+#define reg_tuner_data_1415_1408_lsb 1408
+#define xd_p_reg_tuner_data_1423_1416 (*(volatile byte xdata *) 0xF0B1)
+#define p_reg_tuner_data_1423_1416 0xF0B1
+#define reg_tuner_data_1423_1416_pos 0
+#define reg_tuner_data_1423_1416_len 8
+#define reg_tuner_data_1423_1416_lsb 1416
+#define xd_p_reg_tuner_data_1431_1424 (*(volatile byte xdata *) 0xF0B2)
+#define p_reg_tuner_data_1431_1424 0xF0B2
+#define reg_tuner_data_1431_1424_pos 0
+#define reg_tuner_data_1431_1424_len 8
+#define reg_tuner_data_1431_1424_lsb 1424
+#define xd_p_reg_tuner_data_1439_1432 (*(volatile byte xdata *) 0xF0B3)
+#define p_reg_tuner_data_1439_1432 0xF0B3
+#define reg_tuner_data_1439_1432_pos 0
+#define reg_tuner_data_1439_1432_len 8
+#define reg_tuner_data_1439_1432_lsb 1432
+#define xd_p_reg_tuner_data_1447_1440 (*(volatile byte xdata *) 0xF0B4)
+#define p_reg_tuner_data_1447_1440 0xF0B4
+#define reg_tuner_data_1447_1440_pos 0
+#define reg_tuner_data_1447_1440_len 8
+#define reg_tuner_data_1447_1440_lsb 1440
+#define xd_p_reg_tuner_data_1455_1448 (*(volatile byte xdata *) 0xF0B5)
+#define p_reg_tuner_data_1455_1448 0xF0B5
+#define reg_tuner_data_1455_1448_pos 0
+#define reg_tuner_data_1455_1448_len 8
+#define reg_tuner_data_1455_1448_lsb 1448
+#define xd_p_reg_tuner_data_1463_1456 (*(volatile byte xdata *) 0xF0B6)
+#define p_reg_tuner_data_1463_1456 0xF0B6
+#define reg_tuner_data_1463_1456_pos 0
+#define reg_tuner_data_1463_1456_len 8
+#define reg_tuner_data_1463_1456_lsb 1456
+#define xd_p_reg_tuner_data_1471_1464 (*(volatile byte xdata *) 0xF0B7)
+#define p_reg_tuner_data_1471_1464 0xF0B7
+#define reg_tuner_data_1471_1464_pos 0
+#define reg_tuner_data_1471_1464_len 8
+#define reg_tuner_data_1471_1464_lsb 1464
+#define xd_p_reg_tuner_data_1479_1472 (*(volatile byte xdata *) 0xF0B8)
+#define p_reg_tuner_data_1479_1472 0xF0B8
+#define reg_tuner_data_1479_1472_pos 0
+#define reg_tuner_data_1479_1472_len 8
+#define reg_tuner_data_1479_1472_lsb 1472
+#define xd_p_reg_tuner_data_1487_1480 (*(volatile byte xdata *) 0xF0B9)
+#define p_reg_tuner_data_1487_1480 0xF0B9
+#define reg_tuner_data_1487_1480_pos 0
+#define reg_tuner_data_1487_1480_len 8
+#define reg_tuner_data_1487_1480_lsb 1480
+#define xd_p_reg_tuner_data_1495_1488 (*(volatile byte xdata *) 0xF0BA)
+#define p_reg_tuner_data_1495_1488 0xF0BA
+#define reg_tuner_data_1495_1488_pos 0
+#define reg_tuner_data_1495_1488_len 8
+#define reg_tuner_data_1495_1488_lsb 1488
+#define xd_p_reg_tuner_data_1503_1496 (*(volatile byte xdata *) 0xF0BB)
+#define p_reg_tuner_data_1503_1496 0xF0BB
+#define reg_tuner_data_1503_1496_pos 0
+#define reg_tuner_data_1503_1496_len 8
+#define reg_tuner_data_1503_1496_lsb 1496
+#define xd_p_reg_tuner_data_1511_1504 (*(volatile byte xdata *) 0xF0BC)
+#define p_reg_tuner_data_1511_1504 0xF0BC
+#define reg_tuner_data_1511_1504_pos 0
+#define reg_tuner_data_1511_1504_len 8
+#define reg_tuner_data_1511_1504_lsb 1504
+#define xd_p_reg_tuner_data_1519_1512 (*(volatile byte xdata *) 0xF0BD)
+#define p_reg_tuner_data_1519_1512 0xF0BD
+#define reg_tuner_data_1519_1512_pos 0
+#define reg_tuner_data_1519_1512_len 8
+#define reg_tuner_data_1519_1512_lsb 1512
+#define xd_p_reg_tuner_data_1527_1520 (*(volatile byte xdata *) 0xF0BE)
+#define p_reg_tuner_data_1527_1520 0xF0BE
+#define reg_tuner_data_1527_1520_pos 0
+#define reg_tuner_data_1527_1520_len 8
+#define reg_tuner_data_1527_1520_lsb 1520
+#define xd_p_reg_tuner_data_1535_1528 (*(volatile byte xdata *) 0xF0BF)
+#define p_reg_tuner_data_1535_1528 0xF0BF
+#define reg_tuner_data_1535_1528_pos 0
+#define reg_tuner_data_1535_1528_len 8
+#define reg_tuner_data_1535_1528_lsb 1528
+#define xd_p_reg_tuner_data_1543_1536 (*(volatile byte xdata *) 0xF0C0)
+#define p_reg_tuner_data_1543_1536 0xF0C0
+#define reg_tuner_data_1543_1536_pos 0
+#define reg_tuner_data_1543_1536_len 8
+#define reg_tuner_data_1543_1536_lsb 1536
+#define xd_p_reg_tuner_data_1551_1544 (*(volatile byte xdata *) 0xF0C1)
+#define p_reg_tuner_data_1551_1544 0xF0C1
+#define reg_tuner_data_1551_1544_pos 0
+#define reg_tuner_data_1551_1544_len 8
+#define reg_tuner_data_1551_1544_lsb 1544
+#define xd_p_reg_tuner_data_1559_1552 (*(volatile byte xdata *) 0xF0C2)
+#define p_reg_tuner_data_1559_1552 0xF0C2
+#define reg_tuner_data_1559_1552_pos 0
+#define reg_tuner_data_1559_1552_len 8
+#define reg_tuner_data_1559_1552_lsb 1552
+#define xd_p_reg_tuner_data_1567_1560 (*(volatile byte xdata *) 0xF0C3)
+#define p_reg_tuner_data_1567_1560 0xF0C3
+#define reg_tuner_data_1567_1560_pos 0
+#define reg_tuner_data_1567_1560_len 8
+#define reg_tuner_data_1567_1560_lsb 1560
+#define xd_p_reg_tuner_data_1575_1568 (*(volatile byte xdata *) 0xF0C4)
+#define p_reg_tuner_data_1575_1568 0xF0C4
+#define reg_tuner_data_1575_1568_pos 0
+#define reg_tuner_data_1575_1568_len 8
+#define reg_tuner_data_1575_1568_lsb 1568
+#define xd_p_reg_tuner_data_1583_1576 (*(volatile byte xdata *) 0xF0C5)
+#define p_reg_tuner_data_1583_1576 0xF0C5
+#define reg_tuner_data_1583_1576_pos 0
+#define reg_tuner_data_1583_1576_len 8
+#define reg_tuner_data_1583_1576_lsb 1576
+#define xd_p_reg_tuner_data_1591_1584 (*(volatile byte xdata *) 0xF0C6)
+#define p_reg_tuner_data_1591_1584 0xF0C6
+#define reg_tuner_data_1591_1584_pos 0
+#define reg_tuner_data_1591_1584_len 8
+#define reg_tuner_data_1591_1584_lsb 1584
+#define xd_p_reg_tuner_data_1599_1592 (*(volatile byte xdata *) 0xF0C7)
+#define p_reg_tuner_data_1599_1592 0xF0C7
+#define reg_tuner_data_1599_1592_pos 0
+#define reg_tuner_data_1599_1592_len 8
+#define reg_tuner_data_1599_1592_lsb 1592
+#define xd_p_reg_tuner_data_1607_1600 (*(volatile byte xdata *) 0xF0C8)
+#define p_reg_tuner_data_1607_1600 0xF0C8
+#define reg_tuner_data_1607_1600_pos 0
+#define reg_tuner_data_1607_1600_len 8
+#define reg_tuner_data_1607_1600_lsb 1600
+#define xd_p_reg_tuner_data_1615_1608 (*(volatile byte xdata *) 0xF0C9)
+#define p_reg_tuner_data_1615_1608 0xF0C9
+#define reg_tuner_data_1615_1608_pos 0
+#define reg_tuner_data_1615_1608_len 8
+#define reg_tuner_data_1615_1608_lsb 1608
+#define xd_p_reg_tuner_data_1623_1616 (*(volatile byte xdata *) 0xF0CA)
+#define p_reg_tuner_data_1623_1616 0xF0CA
+#define reg_tuner_data_1623_1616_pos 0
+#define reg_tuner_data_1623_1616_len 8
+#define reg_tuner_data_1623_1616_lsb 1616
+#define xd_p_reg_tuner_data_1631_1624 (*(volatile byte xdata *) 0xF0CB)
+#define p_reg_tuner_data_1631_1624 0xF0CB
+#define reg_tuner_data_1631_1624_pos 0
+#define reg_tuner_data_1631_1624_len 8
+#define reg_tuner_data_1631_1624_lsb 1624
+#define xd_p_reg_tuner_data_1639_1632 (*(volatile byte xdata *) 0xF0CC)
+#define p_reg_tuner_data_1639_1632 0xF0CC
+#define reg_tuner_data_1639_1632_pos 0
+#define reg_tuner_data_1639_1632_len 8
+#define reg_tuner_data_1639_1632_lsb 1632
+#define xd_p_reg_tuner_data_1647_1640 (*(volatile byte xdata *) 0xF0CD)
+#define p_reg_tuner_data_1647_1640 0xF0CD
+#define reg_tuner_data_1647_1640_pos 0
+#define reg_tuner_data_1647_1640_len 8
+#define reg_tuner_data_1647_1640_lsb 1640
+#define xd_p_reg_tuner_data_1655_1648 (*(volatile byte xdata *) 0xF0CE)
+#define p_reg_tuner_data_1655_1648 0xF0CE
+#define reg_tuner_data_1655_1648_pos 0
+#define reg_tuner_data_1655_1648_len 8
+#define reg_tuner_data_1655_1648_lsb 1648
+#define xd_p_reg_tuner_data_1663_1656 (*(volatile byte xdata *) 0xF0CF)
+#define p_reg_tuner_data_1663_1656 0xF0CF
+#define reg_tuner_data_1663_1656_pos 0
+#define reg_tuner_data_1663_1656_len 8
+#define reg_tuner_data_1663_1656_lsb 1656
+#define xd_p_reg_tuner_data_1671_1664 (*(volatile byte xdata *) 0xF0D0)
+#define p_reg_tuner_data_1671_1664 0xF0D0
+#define reg_tuner_data_1671_1664_pos 0
+#define reg_tuner_data_1671_1664_len 8
+#define reg_tuner_data_1671_1664_lsb 1664
+#define xd_p_reg_tuner_data_1679_1672 (*(volatile byte xdata *) 0xF0D1)
+#define p_reg_tuner_data_1679_1672 0xF0D1
+#define reg_tuner_data_1679_1672_pos 0
+#define reg_tuner_data_1679_1672_len 8
+#define reg_tuner_data_1679_1672_lsb 1672
+#define xd_p_reg_tuner_data_1687_1680 (*(volatile byte xdata *) 0xF0D2)
+#define p_reg_tuner_data_1687_1680 0xF0D2
+#define reg_tuner_data_1687_1680_pos 0
+#define reg_tuner_data_1687_1680_len 8
+#define reg_tuner_data_1687_1680_lsb 1680
+#define xd_p_reg_tuner_data_1695_1688 (*(volatile byte xdata *) 0xF0D3)
+#define p_reg_tuner_data_1695_1688 0xF0D3
+#define reg_tuner_data_1695_1688_pos 0
+#define reg_tuner_data_1695_1688_len 8
+#define reg_tuner_data_1695_1688_lsb 1688
+#define xd_p_reg_tuner_data_1703_1696 (*(volatile byte xdata *) 0xF0D4)
+#define p_reg_tuner_data_1703_1696 0xF0D4
+#define reg_tuner_data_1703_1696_pos 0
+#define reg_tuner_data_1703_1696_len 8
+#define reg_tuner_data_1703_1696_lsb 1696
+#define xd_p_reg_tuner_data_1711_1704 (*(volatile byte xdata *) 0xF0D5)
+#define p_reg_tuner_data_1711_1704 0xF0D5
+#define reg_tuner_data_1711_1704_pos 0
+#define reg_tuner_data_1711_1704_len 8
+#define reg_tuner_data_1711_1704_lsb 1704
+#define xd_p_reg_tuner_data_1719_1712 (*(volatile byte xdata *) 0xF0D6)
+#define p_reg_tuner_data_1719_1712 0xF0D6
+#define reg_tuner_data_1719_1712_pos 0
+#define reg_tuner_data_1719_1712_len 8
+#define reg_tuner_data_1719_1712_lsb 1712
+#define xd_p_reg_tuner_data_1727_1720 (*(volatile byte xdata *) 0xF0D7)
+#define p_reg_tuner_data_1727_1720 0xF0D7
+#define reg_tuner_data_1727_1720_pos 0
+#define reg_tuner_data_1727_1720_len 8
+#define reg_tuner_data_1727_1720_lsb 1720
+#define xd_p_reg_tuner_data_1735_1728 (*(volatile byte xdata *) 0xF0D8)
+#define p_reg_tuner_data_1735_1728 0xF0D8
+#define reg_tuner_data_1735_1728_pos 0
+#define reg_tuner_data_1735_1728_len 8
+#define reg_tuner_data_1735_1728_lsb 1728
+#define xd_p_reg_tuner_data_1743_1736 (*(volatile byte xdata *) 0xF0D9)
+#define p_reg_tuner_data_1743_1736 0xF0D9
+#define reg_tuner_data_1743_1736_pos 0
+#define reg_tuner_data_1743_1736_len 8
+#define reg_tuner_data_1743_1736_lsb 1736
+#define xd_p_reg_tuner_data_1751_1744 (*(volatile byte xdata *) 0xF0DA)
+#define p_reg_tuner_data_1751_1744 0xF0DA
+#define reg_tuner_data_1751_1744_pos 0
+#define reg_tuner_data_1751_1744_len 8
+#define reg_tuner_data_1751_1744_lsb 1744
+#define xd_p_reg_tuner_data_1759_1752 (*(volatile byte xdata *) 0xF0DB)
+#define p_reg_tuner_data_1759_1752 0xF0DB
+#define reg_tuner_data_1759_1752_pos 0
+#define reg_tuner_data_1759_1752_len 8
+#define reg_tuner_data_1759_1752_lsb 1752
+#define xd_p_reg_tuner_data_1767_1760 (*(volatile byte xdata *) 0xF0DC)
+#define p_reg_tuner_data_1767_1760 0xF0DC
+#define reg_tuner_data_1767_1760_pos 0
+#define reg_tuner_data_1767_1760_len 8
+#define reg_tuner_data_1767_1760_lsb 1760
+#define xd_p_reg_tuner_data_1775_1768 (*(volatile byte xdata *) 0xF0DD)
+#define p_reg_tuner_data_1775_1768 0xF0DD
+#define reg_tuner_data_1775_1768_pos 0
+#define reg_tuner_data_1775_1768_len 8
+#define reg_tuner_data_1775_1768_lsb 1768
+#define xd_p_reg_tuner_data_1783_1776 (*(volatile byte xdata *) 0xF0DE)
+#define p_reg_tuner_data_1783_1776 0xF0DE
+#define reg_tuner_data_1783_1776_pos 0
+#define reg_tuner_data_1783_1776_len 8
+#define reg_tuner_data_1783_1776_lsb 1776
+#define xd_p_reg_tuner_data_1791_1784 (*(volatile byte xdata *) 0xF0DF)
+#define p_reg_tuner_data_1791_1784 0xF0DF
+#define reg_tuner_data_1791_1784_pos 0
+#define reg_tuner_data_1791_1784_len 8
+#define reg_tuner_data_1791_1784_lsb 1784
+#define xd_p_reg_tuner_data_1799_1792 (*(volatile byte xdata *) 0xF0E0)
+#define p_reg_tuner_data_1799_1792 0xF0E0
+#define reg_tuner_data_1799_1792_pos 0
+#define reg_tuner_data_1799_1792_len 8
+#define reg_tuner_data_1799_1792_lsb 1792
+#define xd_p_reg_tuner_data_1807_1800 (*(volatile byte xdata *) 0xF0E1)
+#define p_reg_tuner_data_1807_1800 0xF0E1
+#define reg_tuner_data_1807_1800_pos 0
+#define reg_tuner_data_1807_1800_len 8
+#define reg_tuner_data_1807_1800_lsb 1800
+#define xd_p_reg_tuner_data_1815_1808 (*(volatile byte xdata *) 0xF0E2)
+#define p_reg_tuner_data_1815_1808 0xF0E2
+#define reg_tuner_data_1815_1808_pos 0
+#define reg_tuner_data_1815_1808_len 8
+#define reg_tuner_data_1815_1808_lsb 1808
+#define xd_p_reg_tuner_data_1823_1816 (*(volatile byte xdata *) 0xF0E3)
+#define p_reg_tuner_data_1823_1816 0xF0E3
+#define reg_tuner_data_1823_1816_pos 0
+#define reg_tuner_data_1823_1816_len 8
+#define reg_tuner_data_1823_1816_lsb 1816
+#define xd_p_reg_tuner_data_1831_1824 (*(volatile byte xdata *) 0xF0E4)
+#define p_reg_tuner_data_1831_1824 0xF0E4
+#define reg_tuner_data_1831_1824_pos 0
+#define reg_tuner_data_1831_1824_len 8
+#define reg_tuner_data_1831_1824_lsb 1824
+#define xd_p_reg_tuner_data_1839_1832 (*(volatile byte xdata *) 0xF0E5)
+#define p_reg_tuner_data_1839_1832 0xF0E5
+#define reg_tuner_data_1839_1832_pos 0
+#define reg_tuner_data_1839_1832_len 8
+#define reg_tuner_data_1839_1832_lsb 1832
+#define xd_p_reg_tuner_data_1847_1840 (*(volatile byte xdata *) 0xF0E6)
+#define p_reg_tuner_data_1847_1840 0xF0E6
+#define reg_tuner_data_1847_1840_pos 0
+#define reg_tuner_data_1847_1840_len 8
+#define reg_tuner_data_1847_1840_lsb 1840
+#define xd_p_reg_tuner_data_1855_1848 (*(volatile byte xdata *) 0xF0E7)
+#define p_reg_tuner_data_1855_1848 0xF0E7
+#define reg_tuner_data_1855_1848_pos 0
+#define reg_tuner_data_1855_1848_len 8
+#define reg_tuner_data_1855_1848_lsb 1848
+#define xd_p_reg_tuner_data_1863_1856 (*(volatile byte xdata *) 0xF0E8)
+#define p_reg_tuner_data_1863_1856 0xF0E8
+#define reg_tuner_data_1863_1856_pos 0
+#define reg_tuner_data_1863_1856_len 8
+#define reg_tuner_data_1863_1856_lsb 1856
+#define xd_p_reg_tuner_data_1871_1864 (*(volatile byte xdata *) 0xF0E9)
+#define p_reg_tuner_data_1871_1864 0xF0E9
+#define reg_tuner_data_1871_1864_pos 0
+#define reg_tuner_data_1871_1864_len 8
+#define reg_tuner_data_1871_1864_lsb 1864
+#define xd_p_reg_tuner_data_1879_1872 (*(volatile byte xdata *) 0xF0EA)
+#define p_reg_tuner_data_1879_1872 0xF0EA
+#define reg_tuner_data_1879_1872_pos 0
+#define reg_tuner_data_1879_1872_len 8
+#define reg_tuner_data_1879_1872_lsb 1872
+#define xd_p_reg_tuner_data_1887_1880 (*(volatile byte xdata *) 0xF0EB)
+#define p_reg_tuner_data_1887_1880 0xF0EB
+#define reg_tuner_data_1887_1880_pos 0
+#define reg_tuner_data_1887_1880_len 8
+#define reg_tuner_data_1887_1880_lsb 1880
+#define xd_p_reg_tuner_data_1895_1888 (*(volatile byte xdata *) 0xF0EC)
+#define p_reg_tuner_data_1895_1888 0xF0EC
+#define reg_tuner_data_1895_1888_pos 0
+#define reg_tuner_data_1895_1888_len 8
+#define reg_tuner_data_1895_1888_lsb 1888
+#define xd_p_reg_tuner_data_1903_1896 (*(volatile byte xdata *) 0xF0ED)
+#define p_reg_tuner_data_1903_1896 0xF0ED
+#define reg_tuner_data_1903_1896_pos 0
+#define reg_tuner_data_1903_1896_len 8
+#define reg_tuner_data_1903_1896_lsb 1896
+#define xd_p_reg_tuner_data_1911_1904 (*(volatile byte xdata *) 0xF0EE)
+#define p_reg_tuner_data_1911_1904 0xF0EE
+#define reg_tuner_data_1911_1904_pos 0
+#define reg_tuner_data_1911_1904_len 8
+#define reg_tuner_data_1911_1904_lsb 1904
+#define xd_p_reg_tuner_data_1919_1912 (*(volatile byte xdata *) 0xF0EF)
+#define p_reg_tuner_data_1919_1912 0xF0EF
+#define reg_tuner_data_1919_1912_pos 0
+#define reg_tuner_data_1919_1912_len 8
+#define reg_tuner_data_1919_1912_lsb 1912
+#define xd_p_reg_tuner_data_1927_1920 (*(volatile byte xdata *) 0xF0F0)
+#define p_reg_tuner_data_1927_1920 0xF0F0
+#define reg_tuner_data_1927_1920_pos 0
+#define reg_tuner_data_1927_1920_len 8
+#define reg_tuner_data_1927_1920_lsb 1920
+#define xd_p_reg_tuner_data_1935_1928 (*(volatile byte xdata *) 0xF0F1)
+#define p_reg_tuner_data_1935_1928 0xF0F1
+#define reg_tuner_data_1935_1928_pos 0
+#define reg_tuner_data_1935_1928_len 8
+#define reg_tuner_data_1935_1928_lsb 1928
+#define xd_p_reg_tuner_data_1943_1936 (*(volatile byte xdata *) 0xF0F2)
+#define p_reg_tuner_data_1943_1936 0xF0F2
+#define reg_tuner_data_1943_1936_pos 0
+#define reg_tuner_data_1943_1936_len 8
+#define reg_tuner_data_1943_1936_lsb 1936
+#define xd_p_reg_tuner_data_1951_1944 (*(volatile byte xdata *) 0xF0F3)
+#define p_reg_tuner_data_1951_1944 0xF0F3
+#define reg_tuner_data_1951_1944_pos 0
+#define reg_tuner_data_1951_1944_len 8
+#define reg_tuner_data_1951_1944_lsb 1944
+#define xd_p_reg_tuner_data_1959_1952 (*(volatile byte xdata *) 0xF0F4)
+#define p_reg_tuner_data_1959_1952 0xF0F4
+#define reg_tuner_data_1959_1952_pos 0
+#define reg_tuner_data_1959_1952_len 8
+#define reg_tuner_data_1959_1952_lsb 1952
+#define xd_p_reg_tuner_data_1967_1960 (*(volatile byte xdata *) 0xF0F5)
+#define p_reg_tuner_data_1967_1960 0xF0F5
+#define reg_tuner_data_1967_1960_pos 0
+#define reg_tuner_data_1967_1960_len 8
+#define reg_tuner_data_1967_1960_lsb 1960
+#define xd_p_reg_tuner_data_1975_1968 (*(volatile byte xdata *) 0xF0F6)
+#define p_reg_tuner_data_1975_1968 0xF0F6
+#define reg_tuner_data_1975_1968_pos 0
+#define reg_tuner_data_1975_1968_len 8
+#define reg_tuner_data_1975_1968_lsb 1968
+#define xd_p_reg_tuner_data_1983_1976 (*(volatile byte xdata *) 0xF0F7)
+#define p_reg_tuner_data_1983_1976 0xF0F7
+#define reg_tuner_data_1983_1976_pos 0
+#define reg_tuner_data_1983_1976_len 8
+#define reg_tuner_data_1983_1976_lsb 1976
+#define xd_p_reg_tuner_data_1991_1984 (*(volatile byte xdata *) 0xF0F8)
+#define p_reg_tuner_data_1991_1984 0xF0F8
+#define reg_tuner_data_1991_1984_pos 0
+#define reg_tuner_data_1991_1984_len 8
+#define reg_tuner_data_1991_1984_lsb 1984
+#define xd_p_reg_tuner_data_1999_1992 (*(volatile byte xdata *) 0xF0F9)
+#define p_reg_tuner_data_1999_1992 0xF0F9
+#define reg_tuner_data_1999_1992_pos 0
+#define reg_tuner_data_1999_1992_len 8
+#define reg_tuner_data_1999_1992_lsb 1992
+#define xd_p_reg_tuner_data_2007_2000 (*(volatile byte xdata *) 0xF0FA)
+#define p_reg_tuner_data_2007_2000 0xF0FA
+#define reg_tuner_data_2007_2000_pos 0
+#define reg_tuner_data_2007_2000_len 8
+#define reg_tuner_data_2007_2000_lsb 2000
+#define xd_p_reg_tuner_data_2015_2008 (*(volatile byte xdata *) 0xF0FB)
+#define p_reg_tuner_data_2015_2008 0xF0FB
+#define reg_tuner_data_2015_2008_pos 0
+#define reg_tuner_data_2015_2008_len 8
+#define reg_tuner_data_2015_2008_lsb 2008
+#define xd_p_reg_tuner_data_2023_2016 (*(volatile byte xdata *) 0xF0FC)
+#define p_reg_tuner_data_2023_2016 0xF0FC
+#define reg_tuner_data_2023_2016_pos 0
+#define reg_tuner_data_2023_2016_len 8
+#define reg_tuner_data_2023_2016_lsb 2016
+#define xd_p_reg_tuner_data_2031_2024 (*(volatile byte xdata *) 0xF0FD)
+#define p_reg_tuner_data_2031_2024 0xF0FD
+#define reg_tuner_data_2031_2024_pos 0
+#define reg_tuner_data_2031_2024_len 8
+#define reg_tuner_data_2031_2024_lsb 2024
+#define xd_p_reg_tuner_data_2039_2032 (*(volatile byte xdata *) 0xF0FE)
+#define p_reg_tuner_data_2039_2032 0xF0FE
+#define reg_tuner_data_2039_2032_pos 0
+#define reg_tuner_data_2039_2032_len 8
+#define reg_tuner_data_2039_2032_lsb 2032
+#define xd_p_reg_tuner_data_2047_2040 (*(volatile byte xdata *) 0xF0FF)
+#define p_reg_tuner_data_2047_2040 0xF0FF
+#define reg_tuner_data_2047_2040_pos 0
+#define reg_tuner_data_2047_2040_len 8
+#define reg_tuner_data_2047_2040_lsb 2040
+#define xd_p_reg_tuner_master_rd_wr (*(volatile byte xdata *) 0xF100)
+#define p_reg_tuner_master_rd_wr 0xF100
+#define reg_tuner_master_rd_wr_pos 0
+#define reg_tuner_master_rd_wr_len 1
+#define reg_tuner_master_rd_wr_lsb 0
+#define xd_p_reg_tuner_master_length (*(volatile byte xdata *) 0xF101)
+#define p_reg_tuner_master_length 0xF101
+#define reg_tuner_master_length_pos 0
+#define reg_tuner_master_length_len 8
+#define reg_tuner_master_length_lsb 0
+#define xd_p_reg_tuner_cmd_exe (*(volatile byte xdata *) 0xF102)
+#define p_reg_tuner_cmd_exe 0xF102
+#define reg_tuner_cmd_exe_pos 0
+#define reg_tuner_cmd_exe_len 1
+#define reg_tuner_cmd_exe_lsb 0
+#define xd_p_reg_tuner_wdat_done (*(volatile byte xdata *) 0xF102)
+#define p_reg_tuner_wdat_done 0xF102
+#define reg_tuner_wdat_done_pos 1
+#define reg_tuner_wdat_done_len 1
+#define reg_tuner_wdat_done_lsb 0
+#define xd_p_reg_tuner_wdat_fail (*(volatile byte xdata *) 0xF102)
+#define p_reg_tuner_wdat_fail 0xF102
+#define reg_tuner_wdat_fail_pos 2
+#define reg_tuner_wdat_fail_len 1
+#define reg_tuner_wdat_fail_lsb 0
+#define xd_p_reg_tuner_ofsm_i2cm_rdat_rdy (*(volatile byte xdata *) 0xF102)
+#define p_reg_tuner_ofsm_i2cm_rdat_rdy 0xF102
+#define reg_tuner_ofsm_i2cm_rdat_rdy_pos 3
+#define reg_tuner_ofsm_i2cm_rdat_rdy_len 1
+#define reg_tuner_ofsm_i2cm_rdat_rdy_lsb 0
+#define xd_p_reg_tuner_current_state (*(volatile byte xdata *) 0xF102)
+#define p_reg_tuner_current_state 0xF102
+#define reg_tuner_current_state_pos 4
+#define reg_tuner_current_state_len 3
+#define reg_tuner_current_state_lsb 0
+#define xd_p_reg_one_cycle_counter_tuner (*(volatile byte xdata *) 0xF103)
+#define p_reg_one_cycle_counter_tuner 0xF103
+#define reg_one_cycle_counter_tuner_pos 0
+#define reg_one_cycle_counter_tuner_len 8
+#define reg_one_cycle_counter_tuner_lsb 0
+#define xd_p_reg_msb_lsb (*(volatile byte xdata *) 0xF104)
+#define p_reg_msb_lsb 0xF104
+#define reg_msb_lsb_pos 0
+#define reg_msb_lsb_len 1
+#define reg_msb_lsb_lsb 0
+#define xd_p_reg_ofdm_rst (*(volatile byte xdata *) 0xF104)
+#define p_reg_ofdm_rst 0xF104
+#define xd_p_reg_sel_thirdi2c (*(volatile byte xdata *) 0xF104)
+#define p_reg_sel_thirdi2c 0xF104
+#define reg_sel_thirdi2c_pos 2
+#define reg_sel_thirdi2c_len 1
+#define reg_sel_thirdi2c_lsb 0
+#define xd_p_reg_sel_tuner (*(volatile byte xdata *) 0xF104)
+#define p_reg_sel_tuner 0xF104
+#define xd_p_reg_ofdm_rst_en (*(volatile byte xdata *) 0xF104)
+#define p_reg_ofdm_rst_en 0xF104
+#define xd_p_reg_sdio_cccr_v (*(volatile byte xdata *) 0xF140)
+#define p_reg_sdio_cccr_v 0xF140
+#define reg_sdio_cccr_v_pos 0
+#define reg_sdio_cccr_v_len 4
+#define reg_sdio_cccr_v_lsb 0
+#define xd_p_reg_sdio_sdio_v (*(volatile byte xdata *) 0xF140)
+#define p_reg_sdio_sdio_v 0xF140
+#define reg_sdio_sdio_v_pos 4
+#define reg_sdio_sdio_v_len 4
+#define reg_sdio_sdio_v_lsb 0
+#define xd_p_reg_sdioc_sd_v (*(volatile byte xdata *) 0xF141)
+#define p_reg_sdioc_sd_v 0xF141
+#define reg_sdioc_sd_v_pos 0
+#define reg_sdioc_sd_v_len 4
+#define reg_sdioc_sd_v_lsb 0
+#define xd_p_reg_sdioc_ior1 (*(volatile byte xdata *) 0xF143)
+#define p_reg_sdioc_ior1 0xF143
+#define reg_sdioc_ior1_pos 1
+#define reg_sdioc_ior1_len 1
+#define reg_sdioc_ior1_lsb 0
+#define xd_p_reg_sdioc_int1 (*(volatile byte xdata *) 0xF145)
+#define p_reg_sdioc_int1 0xF145
+#define reg_sdioc_int1_pos 1
+#define reg_sdioc_int1_len 1
+#define reg_sdioc_int1_lsb 0
+#define xd_p_reg_sdioc_scsi (*(volatile byte xdata *) 0xF147)
+#define p_reg_sdioc_scsi 0xF147
+#define reg_sdioc_scsi_pos 6
+#define reg_sdioc_scsi_len 1
+#define reg_sdioc_scsi_lsb 0
+#define xd_p_reg_sdioc_sdc (*(volatile byte xdata *) 0xF148)
+#define p_reg_sdioc_sdc 0xF148
+#define reg_sdioc_sdc_pos 0
+#define reg_sdioc_sdc_len 1
+#define reg_sdioc_sdc_lsb 0
+#define xd_p_reg_sdioc_smb (*(volatile byte xdata *) 0xF148)
+#define p_reg_sdioc_smb 0xF148
+#define reg_sdioc_smb_pos 1
+#define reg_sdioc_smb_len 1
+#define reg_sdioc_smb_lsb 0
+#define xd_p_reg_sdioc_srw (*(volatile byte xdata *) 0xF148)
+#define p_reg_sdioc_srw 0xF148
+#define reg_sdioc_srw_pos 2
+#define reg_sdioc_srw_len 1
+#define reg_sdioc_srw_lsb 0
+#define xd_p_reg_sdioc_sbs (*(volatile byte xdata *) 0xF148)
+#define p_reg_sdioc_sbs 0xF148
+#define reg_sdioc_sbs_pos 3
+#define reg_sdioc_sbs_len 1
+#define reg_sdioc_sbs_lsb 0
+#define xd_p_reg_sdioc_s4mi (*(volatile byte xdata *) 0xF148)
+#define p_reg_sdioc_s4mi 0xF148
+#define reg_sdioc_s4mi_pos 4
+#define reg_sdioc_s4mi_len 1
+#define reg_sdioc_s4mi_lsb 0
+#define xd_p_reg_sdioc_lsc (*(volatile byte xdata *) 0xF148)
+#define p_reg_sdioc_lsc 0xF148
+#define reg_sdioc_lsc_pos 6
+#define reg_sdioc_lsc_len 1
+#define reg_sdioc_lsc_lsb 0
+#define xd_p_reg_sdioc_4bls (*(volatile byte xdata *) 0xF148)
+#define p_reg_sdioc_4bls 0xF148
+#define reg_sdioc_4bls_pos 7
+#define reg_sdioc_4bls_len 1
+#define reg_sdioc_4bls_lsb 0
+#define xd_p_reg_sdioc_cis_7_0 (*(volatile byte xdata *) 0xF149)
+#define p_reg_sdioc_cis_7_0 0xF149
+#define reg_sdioc_cis_7_0_pos 0
+#define reg_sdioc_cis_7_0_len 8
+#define reg_sdioc_cis_7_0_lsb 0
+#define xd_p_reg_sdioc_cis_15_8 (*(volatile byte xdata *) 0xF14A)
+#define p_reg_sdioc_cis_15_8 0xF14A
+#define reg_sdioc_cis_15_8_pos 0
+#define reg_sdioc_cis_15_8_len 8
+#define reg_sdioc_cis_15_8_lsb 8
+#define xd_p_reg_sdioc_cis_23_16 (*(volatile byte xdata *) 0xF14B)
+#define p_reg_sdioc_cis_23_16 0xF14B
+#define reg_sdioc_cis_23_16_pos 0
+#define reg_sdioc_cis_23_16_len 8
+#define reg_sdioc_cis_23_16_lsb 16
+#define xd_p_reg_sdioc_fs (*(volatile byte xdata *) 0xF14D)
+#define p_reg_sdioc_fs 0xF14D
+#define reg_sdioc_fs_pos 0
+#define reg_sdioc_fs_len 4
+#define reg_sdioc_fs_lsb 0
+#define xd_p_reg_sdioc_df (*(volatile byte xdata *) 0xF14D)
+#define p_reg_sdioc_df 0xF14D
+#define reg_sdioc_df_pos 7
+#define reg_sdioc_df_len 1
+#define reg_sdioc_df_lsb 0
+#define xd_p_reg_sdioc_ex1 (*(volatile byte xdata *) 0xF14E)
+#define p_reg_sdioc_ex1 0xF14E
+#define reg_sdioc_ex1_pos 1
+#define reg_sdioc_ex1_len 1
+#define reg_sdioc_ex1_lsb 0
+#define xd_p_reg_sdioc_rf1 (*(volatile byte xdata *) 0xF14F)
+#define p_reg_sdioc_rf1 0xF14F
+#define reg_sdioc_rf1_pos 1
+#define reg_sdioc_rf1_len 1
+#define reg_sdioc_rf1_lsb 0
+#define xd_p_reg_sdioc_smpc (*(volatile byte xdata *) 0xF152)
+#define p_reg_sdioc_smpc 0xF152
+#define reg_sdioc_smpc_pos 0
+#define reg_sdioc_smpc_len 1
+#define reg_sdioc_smpc_lsb 0
+#define xd_p_reg_sdioc_f1_code (*(volatile byte xdata *) 0xF160)
+#define p_reg_sdioc_f1_code 0xF160
+#define reg_sdioc_f1_code_pos 0
+#define reg_sdioc_f1_code_len 4
+#define reg_sdioc_f1_code_lsb 0
+#define xd_p_reg_sdioc_scsa (*(volatile byte xdata *) 0xF160)
+#define p_reg_sdioc_scsa 0xF160
+#define reg_sdioc_scsa_pos 6
+#define reg_sdioc_scsa_len 1
+#define reg_sdioc_scsa_lsb 0
+#define xd_p_reg_sdioc_csa_en (*(volatile byte xdata *) 0xF160)
+#define p_reg_sdioc_csa_en 0xF160
+#define reg_sdioc_csa_en_pos 7
+#define reg_sdioc_csa_en_len 1
+#define reg_sdioc_csa_en_lsb 0
+#define xd_p_reg_sdioc_f1_ext_code (*(volatile byte xdata *) 0xF161)
+#define p_reg_sdioc_f1_ext_code 0xF161
+#define reg_sdioc_f1_ext_code_pos 0
+#define reg_sdioc_f1_ext_code_len 8
+#define reg_sdioc_f1_ext_code_lsb 0
+#define xd_p_reg_sdioc_sps (*(volatile byte xdata *) 0xF162)
+#define p_reg_sdioc_sps 0xF162
+#define reg_sdioc_sps_pos 0
+#define reg_sdioc_sps_len 1
+#define reg_sdioc_sps_lsb 0
+#define xd_p_reg_sdioc_func1_cis_ptr_7_0 (*(volatile byte xdata *) 0xF169)
+#define p_reg_sdioc_func1_cis_ptr_7_0 0xF169
+#define reg_sdioc_func1_cis_ptr_7_0_pos 0
+#define reg_sdioc_func1_cis_ptr_7_0_len 8
+#define reg_sdioc_func1_cis_ptr_7_0_lsb 0
+#define xd_p_reg_sdioc_func1_cis_ptr_15_8 (*(volatile byte xdata *) 0xF16A)
+#define p_reg_sdioc_func1_cis_ptr_15_8 0xF16A
+#define reg_sdioc_func1_cis_ptr_15_8_pos 0
+#define reg_sdioc_func1_cis_ptr_15_8_len 8
+#define reg_sdioc_func1_cis_ptr_15_8_lsb 8
+#define xd_p_reg_sdioc_func1_cis_ptr_23_16 (*(volatile byte xdata *) 0xF16B)
+#define p_reg_sdioc_func1_cis_ptr_23_16 0xF16B
+#define reg_sdioc_func1_cis_ptr_23_16_pos 0
+#define reg_sdioc_func1_cis_ptr_23_16_len 8
+#define reg_sdioc_func1_cis_ptr_23_16_lsb 16
+#define xd_p_reg_sdio_FUNCID0_0 (*(volatile byte xdata *) 0xF180)
+#define p_reg_sdio_FUNCID0_0 0xF180
+#define reg_sdio_FUNCID0_0_pos 0
+#define reg_sdio_FUNCID0_0_len 8
+#define reg_sdio_FUNCID0_0_lsb 0
+#define xd_p_reg_sdio_FUNCID0_1 (*(volatile byte xdata *) 0xF181)
+#define p_reg_sdio_FUNCID0_1 0xF181
+#define reg_sdio_FUNCID0_1_pos 0
+#define reg_sdio_FUNCID0_1_len 8
+#define reg_sdio_FUNCID0_1_lsb 0
+#define xd_p_reg_sdio_FUNCID0_2 (*(volatile byte xdata *) 0xF182)
+#define p_reg_sdio_FUNCID0_2 0xF182
+#define reg_sdio_FUNCID0_2_pos 0
+#define reg_sdio_FUNCID0_2_len 8
+#define reg_sdio_FUNCID0_2_lsb 0
+#define xd_p_reg_sdio_FUNCID0_3 (*(volatile byte xdata *) 0xF183)
+#define p_reg_sdio_FUNCID0_3 0xF183
+#define reg_sdio_FUNCID0_3_pos 0
+#define reg_sdio_FUNCID0_3_len 8
+#define reg_sdio_FUNCID0_3_lsb 0
+#define xd_p_reg_sdio_MANFID0_0 (*(volatile byte xdata *) 0xF184)
+#define p_reg_sdio_MANFID0_0 0xF184
+#define reg_sdio_MANFID0_0_pos 0
+#define reg_sdio_MANFID0_0_len 8
+#define reg_sdio_MANFID0_0_lsb 0
+#define xd_p_reg_sdio_MANFID0_1 (*(volatile byte xdata *) 0xF185)
+#define p_reg_sdio_MANFID0_1 0xF185
+#define reg_sdio_MANFID0_1_pos 0
+#define reg_sdio_MANFID0_1_len 8
+#define reg_sdio_MANFID0_1_lsb 0
+#define xd_p_reg_sdio_MANFID0_2_7_0 (*(volatile byte xdata *) 0xF186)
+#define p_reg_sdio_MANFID0_2_7_0 0xF186
+#define reg_sdio_MANFID0_2_7_0_pos 0
+#define reg_sdio_MANFID0_2_7_0_len 8
+#define reg_sdio_MANFID0_2_7_0_lsb 0
+#define xd_p_reg_sdio_MANFID0_2_15_8 (*(volatile byte xdata *) 0xF187)
+#define p_reg_sdio_MANFID0_2_15_8 0xF187
+#define reg_sdio_MANFID0_2_15_8_pos 0
+#define reg_sdio_MANFID0_2_15_8_len 8
+#define reg_sdio_MANFID0_2_15_8_lsb 8
+#define xd_p_reg_sdio_MANFID0_4_7_0 (*(volatile byte xdata *) 0xF188)
+#define p_reg_sdio_MANFID0_4_7_0 0xF188
+#define reg_sdio_MANFID0_4_7_0_pos 0
+#define reg_sdio_MANFID0_4_7_0_len 8
+#define reg_sdio_MANFID0_4_7_0_lsb 0
+#define xd_p_reg_sdio_MANFID0_4_15_8 (*(volatile byte xdata *) 0xF189)
+#define p_reg_sdio_MANFID0_4_15_8 0xF189
+#define reg_sdio_MANFID0_4_15_8_pos 0
+#define reg_sdio_MANFID0_4_15_8_len 8
+#define reg_sdio_MANFID0_4_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE0_0 (*(volatile byte xdata *) 0xF18A)
+#define p_reg_sdio_FUNCE0_0 0xF18A
+#define reg_sdio_FUNCE0_0_pos 0
+#define reg_sdio_FUNCE0_0_len 8
+#define reg_sdio_FUNCE0_0_lsb 0
+#define xd_p_reg_sdio_FUNCE0_1 (*(volatile byte xdata *) 0xF18B)
+#define p_reg_sdio_FUNCE0_1 0xF18B
+#define reg_sdio_FUNCE0_1_pos 0
+#define reg_sdio_FUNCE0_1_len 8
+#define reg_sdio_FUNCE0_1_lsb 0
+#define xd_p_reg_sdio_FUNCE0_2 (*(volatile byte xdata *) 0xF18C)
+#define p_reg_sdio_FUNCE0_2 0xF18C
+#define reg_sdio_FUNCE0_2_pos 0
+#define reg_sdio_FUNCE0_2_len 8
+#define reg_sdio_FUNCE0_2_lsb 0
+#define xd_p_reg_sdio_FUNCE0_3_7_0 (*(volatile byte xdata *) 0xF18D)
+#define p_reg_sdio_FUNCE0_3_7_0 0xF18D
+#define reg_sdio_FUNCE0_3_7_0_pos 0
+#define reg_sdio_FUNCE0_3_7_0_len 8
+#define reg_sdio_FUNCE0_3_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE0_3_15_8 (*(volatile byte xdata *) 0xF18E)
+#define p_reg_sdio_FUNCE0_3_15_8 0xF18E
+#define reg_sdio_FUNCE0_3_15_8_pos 0
+#define reg_sdio_FUNCE0_3_15_8_len 8
+#define reg_sdio_FUNCE0_3_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE0_5 (*(volatile byte xdata *) 0xF18F)
+#define p_reg_sdio_FUNCE0_5 0xF18F
+#define reg_sdio_FUNCE0_5_pos 0
+#define reg_sdio_FUNCE0_5_len 8
+#define reg_sdio_FUNCE0_5_lsb 0
+#define xd_p_reg_sdio_VERS_10_0 (*(volatile byte xdata *) 0xF190)
+#define p_reg_sdio_VERS_10_0 0xF190
+#define reg_sdio_VERS_10_0_pos 0
+#define reg_sdio_VERS_10_0_len 8
+#define reg_sdio_VERS_10_0_lsb 0
+#define xd_p_reg_sdio_VERS_10_1 (*(volatile byte xdata *) 0xF191)
+#define p_reg_sdio_VERS_10_1 0xF191
+#define reg_sdio_VERS_10_1_pos 0
+#define reg_sdio_VERS_10_1_len 8
+#define reg_sdio_VERS_10_1_lsb 0
+#define xd_p_reg_sdio_VERS_10_2 (*(volatile byte xdata *) 0xF192)
+#define p_reg_sdio_VERS_10_2 0xF192
+#define reg_sdio_VERS_10_2_pos 0
+#define reg_sdio_VERS_10_2_len 8
+#define reg_sdio_VERS_10_2_lsb 0
+#define xd_p_reg_sdio_VERS_10_3 (*(volatile byte xdata *) 0xF193)
+#define p_reg_sdio_VERS_10_3 0xF193
+#define reg_sdio_VERS_10_3_pos 0
+#define reg_sdio_VERS_10_3_len 8
+#define reg_sdio_VERS_10_3_lsb 0
+#define xd_p_reg_sdio_VERS_10_4 (*(volatile byte xdata *) 0xF194)
+#define p_reg_sdio_VERS_10_4 0xF194
+#define reg_sdio_VERS_10_4_pos 0
+#define reg_sdio_VERS_10_4_len 8
+#define reg_sdio_VERS_10_4_lsb 0
+#define xd_p_reg_sdio_VERS_10_5 (*(volatile byte xdata *) 0xF195)
+#define p_reg_sdio_VERS_10_5 0xF195
+#define reg_sdio_VERS_10_5_pos 0
+#define reg_sdio_VERS_10_5_len 8
+#define reg_sdio_VERS_10_5_lsb 0
+#define xd_p_reg_sdio_VERS_10_6 (*(volatile byte xdata *) 0xF196)
+#define p_reg_sdio_VERS_10_6 0xF196
+#define reg_sdio_VERS_10_6_pos 0
+#define reg_sdio_VERS_10_6_len 8
+#define reg_sdio_VERS_10_6_lsb 0
+#define xd_p_reg_sdio_VERS_10_7 (*(volatile byte xdata *) 0xF197)
+#define p_reg_sdio_VERS_10_7 0xF197
+#define reg_sdio_VERS_10_7_pos 0
+#define reg_sdio_VERS_10_7_len 8
+#define reg_sdio_VERS_10_7_lsb 0
+#define xd_p_reg_sdio_VERS_10_8 (*(volatile byte xdata *) 0xF198)
+#define p_reg_sdio_VERS_10_8 0xF198
+#define reg_sdio_VERS_10_8_pos 0
+#define reg_sdio_VERS_10_8_len 8
+#define reg_sdio_VERS_10_8_lsb 0
+#define xd_p_reg_sdio_VERS_10_9 (*(volatile byte xdata *) 0xF199)
+#define p_reg_sdio_VERS_10_9 0xF199
+#define reg_sdio_VERS_10_9_pos 0
+#define reg_sdio_VERS_10_9_len 8
+#define reg_sdio_VERS_10_9_lsb 0
+#define xd_p_reg_sdio_VERS_10_A (*(volatile byte xdata *) 0xF19A)
+#define p_reg_sdio_VERS_10_A 0xF19A
+#define reg_sdio_VERS_10_A_pos 0
+#define reg_sdio_VERS_10_A_len 8
+#define reg_sdio_VERS_10_A_lsb 0
+#define xd_p_reg_sdio_VERS_10_B (*(volatile byte xdata *) 0xF19B)
+#define p_reg_sdio_VERS_10_B 0xF19B
+#define reg_sdio_VERS_10_B_pos 0
+#define reg_sdio_VERS_10_B_len 8
+#define reg_sdio_VERS_10_B_lsb 0
+#define xd_p_reg_sdio_VERS_10_C (*(volatile byte xdata *) 0xF19C)
+#define p_reg_sdio_VERS_10_C 0xF19C
+#define reg_sdio_VERS_10_C_pos 0
+#define reg_sdio_VERS_10_C_len 8
+#define reg_sdio_VERS_10_C_lsb 0
+#define xd_p_reg_sdio_VERS_10_D (*(volatile byte xdata *) 0xF19D)
+#define p_reg_sdio_VERS_10_D 0xF19D
+#define reg_sdio_VERS_10_D_pos 0
+#define reg_sdio_VERS_10_D_len 8
+#define reg_sdio_VERS_10_D_lsb 0
+#define xd_p_reg_sdio_VERS_10_E (*(volatile byte xdata *) 0xF19E)
+#define p_reg_sdio_VERS_10_E 0xF19E
+#define reg_sdio_VERS_10_E_pos 0
+#define reg_sdio_VERS_10_E_len 8
+#define reg_sdio_VERS_10_E_lsb 0
+#define xd_p_reg_sdio_VERS_10_F (*(volatile byte xdata *) 0xF19F)
+#define p_reg_sdio_VERS_10_F 0xF19F
+#define reg_sdio_VERS_10_F_pos 0
+#define reg_sdio_VERS_10_F_len 8
+#define reg_sdio_VERS_10_F_lsb 0
+#define xd_p_reg_sdio_VERS_10_10 (*(volatile byte xdata *) 0xF1A0)
+#define p_reg_sdio_VERS_10_10 0xF1A0
+#define reg_sdio_VERS_10_10_pos 0
+#define reg_sdio_VERS_10_10_len 8
+#define reg_sdio_VERS_10_10_lsb 0
+#define xd_p_reg_sdio_VERS_10_11 (*(volatile byte xdata *) 0xF1A1)
+#define p_reg_sdio_VERS_10_11 0xF1A1
+#define reg_sdio_VERS_10_11_pos 0
+#define reg_sdio_VERS_10_11_len 8
+#define reg_sdio_VERS_10_11_lsb 0
+#define xd_p_reg_sdio_VERS_10_12 (*(volatile byte xdata *) 0xF1A2)
+#define p_reg_sdio_VERS_10_12 0xF1A2
+#define reg_sdio_VERS_10_12_pos 0
+#define reg_sdio_VERS_10_12_len 8
+#define reg_sdio_VERS_10_12_lsb 0
+#define xd_p_reg_sdio_VERS_10_13 (*(volatile byte xdata *) 0xF1A3)
+#define p_reg_sdio_VERS_10_13 0xF1A3
+#define reg_sdio_VERS_10_13_pos 0
+#define reg_sdio_VERS_10_13_len 8
+#define reg_sdio_VERS_10_13_lsb 0
+#define xd_p_reg_sdio_VERS_10_14 (*(volatile byte xdata *) 0xF1A4)
+#define p_reg_sdio_VERS_10_14 0xF1A4
+#define reg_sdio_VERS_10_14_pos 0
+#define reg_sdio_VERS_10_14_len 8
+#define reg_sdio_VERS_10_14_lsb 0
+#define xd_p_reg_sdio_VERS_10_15 (*(volatile byte xdata *) 0xF1A5)
+#define p_reg_sdio_VERS_10_15 0xF1A5
+#define reg_sdio_VERS_10_15_pos 0
+#define reg_sdio_VERS_10_15_len 8
+#define reg_sdio_VERS_10_15_lsb 0
+#define xd_p_reg_sdio_VERS_10_16 (*(volatile byte xdata *) 0xF1A6)
+#define p_reg_sdio_VERS_10_16 0xF1A6
+#define reg_sdio_VERS_10_16_pos 0
+#define reg_sdio_VERS_10_16_len 8
+#define reg_sdio_VERS_10_16_lsb 0
+#define xd_p_reg_sdio_VERS_10_17 (*(volatile byte xdata *) 0xF1A7)
+#define p_reg_sdio_VERS_10_17 0xF1A7
+#define reg_sdio_VERS_10_17_pos 0
+#define reg_sdio_VERS_10_17_len 8
+#define reg_sdio_VERS_10_17_lsb 0
+#define xd_p_reg_sdio_VERS_10_18 (*(volatile byte xdata *) 0xF1A8)
+#define p_reg_sdio_VERS_10_18 0xF1A8
+#define reg_sdio_VERS_10_18_pos 0
+#define reg_sdio_VERS_10_18_len 8
+#define reg_sdio_VERS_10_18_lsb 0
+#define xd_p_reg_sdio_VERS_10_19 (*(volatile byte xdata *) 0xF1A9)
+#define p_reg_sdio_VERS_10_19 0xF1A9
+#define reg_sdio_VERS_10_19_pos 0
+#define reg_sdio_VERS_10_19_len 8
+#define reg_sdio_VERS_10_19_lsb 0
+#define xd_p_reg_sdio_VERS_10_1A (*(volatile byte xdata *) 0xF1AA)
+#define p_reg_sdio_VERS_10_1A 0xF1AA
+#define reg_sdio_VERS_10_1A_pos 0
+#define reg_sdio_VERS_10_1A_len 8
+#define reg_sdio_VERS_10_1A_lsb 0
+#define xd_p_reg_sdio_VERS_10_1B (*(volatile byte xdata *) 0xF1AB)
+#define p_reg_sdio_VERS_10_1B 0xF1AB
+#define reg_sdio_VERS_10_1B_pos 0
+#define reg_sdio_VERS_10_1B_len 8
+#define reg_sdio_VERS_10_1B_lsb 0
+#define xd_p_reg_sdio_VERS_10_1C (*(volatile byte xdata *) 0xF1AC)
+#define p_reg_sdio_VERS_10_1C 0xF1AC
+#define reg_sdio_VERS_10_1C_pos 0
+#define reg_sdio_VERS_10_1C_len 8
+#define reg_sdio_VERS_10_1C_lsb 0
+#define xd_p_reg_sdio_VERS_10_1D (*(volatile byte xdata *) 0xF1AD)
+#define p_reg_sdio_VERS_10_1D 0xF1AD
+#define reg_sdio_VERS_10_1D_pos 0
+#define reg_sdio_VERS_10_1D_len 8
+#define reg_sdio_VERS_10_1D_lsb 0
+#define xd_p_reg_sdio_VERS_10_1E (*(volatile byte xdata *) 0xF1AE)
+#define p_reg_sdio_VERS_10_1E 0xF1AE
+#define reg_sdio_VERS_10_1E_pos 0
+#define reg_sdio_VERS_10_1E_len 8
+#define reg_sdio_VERS_10_1E_lsb 0
+#define xd_p_reg_sdio_VERS_10_1F (*(volatile byte xdata *) 0xF1AF)
+#define p_reg_sdio_VERS_10_1F 0xF1AF
+#define reg_sdio_VERS_10_1F_pos 0
+#define reg_sdio_VERS_10_1F_len 8
+#define reg_sdio_VERS_10_1F_lsb 0
+#define xd_p_reg_sdio_VERS_10_20 (*(volatile byte xdata *) 0xF1B0)
+#define p_reg_sdio_VERS_10_20 0xF1B0
+#define reg_sdio_VERS_10_20_pos 0
+#define reg_sdio_VERS_10_20_len 8
+#define reg_sdio_VERS_10_20_lsb 0
+#define xd_p_reg_sdio_VERS_10_21 (*(volatile byte xdata *) 0xF1B1)
+#define p_reg_sdio_VERS_10_21 0xF1B1
+#define reg_sdio_VERS_10_21_pos 0
+#define reg_sdio_VERS_10_21_len 8
+#define reg_sdio_VERS_10_21_lsb 0
+#define xd_p_reg_sdio_VERS_10_22 (*(volatile byte xdata *) 0xF1B2)
+#define p_reg_sdio_VERS_10_22 0xF1B2
+#define reg_sdio_VERS_10_22_pos 0
+#define reg_sdio_VERS_10_22_len 8
+#define reg_sdio_VERS_10_22_lsb 0
+#define xd_p_reg_sdio_VERS_10_23 (*(volatile byte xdata *) 0xF1B3)
+#define p_reg_sdio_VERS_10_23 0xF1B3
+#define reg_sdio_VERS_10_23_pos 0
+#define reg_sdio_VERS_10_23_len 8
+#define reg_sdio_VERS_10_23_lsb 0
+#define xd_p_reg_sdio_VERS_10_24 (*(volatile byte xdata *) 0xF1B4)
+#define p_reg_sdio_VERS_10_24 0xF1B4
+#define reg_sdio_VERS_10_24_pos 0
+#define reg_sdio_VERS_10_24_len 8
+#define reg_sdio_VERS_10_24_lsb 0
+#define xd_p_reg_sdio_VERS_10_25 (*(volatile byte xdata *) 0xF1B5)
+#define p_reg_sdio_VERS_10_25 0xF1B5
+#define reg_sdio_VERS_10_25_pos 0
+#define reg_sdio_VERS_10_25_len 8
+#define reg_sdio_VERS_10_25_lsb 0
+#define xd_p_reg_sdio_VERS_10_26 (*(volatile byte xdata *) 0xF1B6)
+#define p_reg_sdio_VERS_10_26 0xF1B6
+#define reg_sdio_VERS_10_26_pos 0
+#define reg_sdio_VERS_10_26_len 8
+#define reg_sdio_VERS_10_26_lsb 0
+#define xd_p_reg_sdio_VERS_10_27 (*(volatile byte xdata *) 0xF1B7)
+#define p_reg_sdio_VERS_10_27 0xF1B7
+#define reg_sdio_VERS_10_27_pos 0
+#define reg_sdio_VERS_10_27_len 8
+#define reg_sdio_VERS_10_27_lsb 0
+#define xd_p_reg_sdio_END0 (*(volatile byte xdata *) 0xF1B8)
+#define p_reg_sdio_END0 0xF1B8
+#define reg_sdio_END0_pos 0
+#define reg_sdio_END0_len 8
+#define reg_sdio_END0_lsb 0
+#define xd_p_reg_sdio_FUNCID1_0 (*(volatile byte xdata *) 0xF1C0)
+#define p_reg_sdio_FUNCID1_0 0xF1C0
+#define reg_sdio_FUNCID1_0_pos 0
+#define reg_sdio_FUNCID1_0_len 8
+#define reg_sdio_FUNCID1_0_lsb 0
+#define xd_p_reg_sdio_FUNCID1_1 (*(volatile byte xdata *) 0xF1C1)
+#define p_reg_sdio_FUNCID1_1 0xF1C1
+#define reg_sdio_FUNCID1_1_pos 0
+#define reg_sdio_FUNCID1_1_len 8
+#define reg_sdio_FUNCID1_1_lsb 0
+#define xd_p_reg_sdio_FUNCID1_2 (*(volatile byte xdata *) 0xF1C2)
+#define p_reg_sdio_FUNCID1_2 0xF1C2
+#define reg_sdio_FUNCID1_2_pos 0
+#define reg_sdio_FUNCID1_2_len 8
+#define reg_sdio_FUNCID1_2_lsb 0
+#define xd_p_reg_sdio_FUNCID1_3 (*(volatile byte xdata *) 0xF1C3)
+#define p_reg_sdio_FUNCID1_3 0xF1C3
+#define reg_sdio_FUNCID1_3_pos 0
+#define reg_sdio_FUNCID1_3_len 8
+#define reg_sdio_FUNCID1_3_lsb 0
+#define xd_p_reg_sdio_FUNCE1_0 (*(volatile byte xdata *) 0xF1C4)
+#define p_reg_sdio_FUNCE1_0 0xF1C4
+#define reg_sdio_FUNCE1_0_pos 0
+#define reg_sdio_FUNCE1_0_len 8
+#define reg_sdio_FUNCE1_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_1 (*(volatile byte xdata *) 0xF1C5)
+#define p_reg_sdio_FUNCE1_1 0xF1C5
+#define reg_sdio_FUNCE1_1_pos 0
+#define reg_sdio_FUNCE1_1_len 8
+#define reg_sdio_FUNCE1_1_lsb 0
+#define xd_p_reg_sdio_FUNCE1_2 (*(volatile byte xdata *) 0xF1C6)
+#define p_reg_sdio_FUNCE1_2 0xF1C6
+#define reg_sdio_FUNCE1_2_pos 0
+#define reg_sdio_FUNCE1_2_len 8
+#define reg_sdio_FUNCE1_2_lsb 0
+#define xd_p_reg_sdio_FUNCE1_3 (*(volatile byte xdata *) 0xF1C7)
+#define p_reg_sdio_FUNCE1_3 0xF1C7
+#define reg_sdio_FUNCE1_3_pos 0
+#define reg_sdio_FUNCE1_3_len 8
+#define reg_sdio_FUNCE1_3_lsb 0
+#define xd_p_reg_sdio_FUNCE1_4 (*(volatile byte xdata *) 0xF1C8)
+#define p_reg_sdio_FUNCE1_4 0xF1C8
+#define reg_sdio_FUNCE1_4_pos 0
+#define reg_sdio_FUNCE1_4_len 8
+#define reg_sdio_FUNCE1_4_lsb 0
+#define xd_p_reg_sdio_FUNCE1_5_7_0 (*(volatile byte xdata *) 0xF1C9)
+#define p_reg_sdio_FUNCE1_5_7_0 0xF1C9
+#define reg_sdio_FUNCE1_5_7_0_pos 0
+#define reg_sdio_FUNCE1_5_7_0_len 8
+#define reg_sdio_FUNCE1_5_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_5_15_8 (*(volatile byte xdata *) 0xF1CA)
+#define p_reg_sdio_FUNCE1_5_15_8 0xF1CA
+#define reg_sdio_FUNCE1_5_15_8_pos 0
+#define reg_sdio_FUNCE1_5_15_8_len 8
+#define reg_sdio_FUNCE1_5_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_5_23_16 (*(volatile byte xdata *) 0xF1CB)
+#define p_reg_sdio_FUNCE1_5_23_16 0xF1CB
+#define reg_sdio_FUNCE1_5_23_16_pos 0
+#define reg_sdio_FUNCE1_5_23_16_len 8
+#define reg_sdio_FUNCE1_5_23_16_lsb 16
+#define xd_p_reg_sdio_FUNCE1_5_31_24 (*(volatile byte xdata *) 0xF1CC)
+#define p_reg_sdio_FUNCE1_5_31_24 0xF1CC
+#define reg_sdio_FUNCE1_5_31_24_pos 0
+#define reg_sdio_FUNCE1_5_31_24_len 8
+#define reg_sdio_FUNCE1_5_31_24_lsb 24
+#define xd_p_reg_sdio_FUNCE1_9_7_0 (*(volatile byte xdata *) 0xF1CD)
+#define p_reg_sdio_FUNCE1_9_7_0 0xF1CD
+#define reg_sdio_FUNCE1_9_7_0_pos 0
+#define reg_sdio_FUNCE1_9_7_0_len 8
+#define reg_sdio_FUNCE1_9_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_9_15_8 (*(volatile byte xdata *) 0xF1CE)
+#define p_reg_sdio_FUNCE1_9_15_8 0xF1CE
+#define reg_sdio_FUNCE1_9_15_8_pos 0
+#define reg_sdio_FUNCE1_9_15_8_len 8
+#define reg_sdio_FUNCE1_9_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_9_23_16 (*(volatile byte xdata *) 0xF1CF)
+#define p_reg_sdio_FUNCE1_9_23_16 0xF1CF
+#define reg_sdio_FUNCE1_9_23_16_pos 0
+#define reg_sdio_FUNCE1_9_23_16_len 8
+#define reg_sdio_FUNCE1_9_23_16_lsb 16
+#define xd_p_reg_sdio_FUNCE1_9_31_24 (*(volatile byte xdata *) 0xF1D0)
+#define p_reg_sdio_FUNCE1_9_31_24 0xF1D0
+#define reg_sdio_FUNCE1_9_31_24_pos 0
+#define reg_sdio_FUNCE1_9_31_24_len 8
+#define reg_sdio_FUNCE1_9_31_24_lsb 24
+#define xd_p_reg_sdio_FUNCE1_D (*(volatile byte xdata *) 0xF1D1)
+#define p_reg_sdio_FUNCE1_D 0xF1D1
+#define reg_sdio_FUNCE1_D_pos 0
+#define reg_sdio_FUNCE1_D_len 8
+#define reg_sdio_FUNCE1_D_lsb 0
+#define xd_p_reg_sdio_FUNCE1_E_7_0 (*(volatile byte xdata *) 0xF1D2)
+#define p_reg_sdio_FUNCE1_E_7_0 0xF1D2
+#define reg_sdio_FUNCE1_E_7_0_pos 0
+#define reg_sdio_FUNCE1_E_7_0_len 8
+#define reg_sdio_FUNCE1_E_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_E_15_8 (*(volatile byte xdata *) 0xF1D3)
+#define p_reg_sdio_FUNCE1_E_15_8 0xF1D3
+#define reg_sdio_FUNCE1_E_15_8_pos 0
+#define reg_sdio_FUNCE1_E_15_8_len 8
+#define reg_sdio_FUNCE1_E_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_10_7_0 (*(volatile byte xdata *) 0xF1D4)
+#define p_reg_sdio_FUNCE1_10_7_0 0xF1D4
+#define reg_sdio_FUNCE1_10_7_0_pos 0
+#define reg_sdio_FUNCE1_10_7_0_len 8
+#define reg_sdio_FUNCE1_10_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_10_15_8 (*(volatile byte xdata *) 0xF1D5)
+#define p_reg_sdio_FUNCE1_10_15_8 0xF1D5
+#define reg_sdio_FUNCE1_10_15_8_pos 0
+#define reg_sdio_FUNCE1_10_15_8_len 8
+#define reg_sdio_FUNCE1_10_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_10_23_16 (*(volatile byte xdata *) 0xF1D6)
+#define p_reg_sdio_FUNCE1_10_23_16 0xF1D6
+#define reg_sdio_FUNCE1_10_23_16_pos 0
+#define reg_sdio_FUNCE1_10_23_16_len 8
+#define reg_sdio_FUNCE1_10_23_16_lsb 16
+#define xd_p_reg_sdio_FUNCE1_10_31_24 (*(volatile byte xdata *) 0xF1D7)
+#define p_reg_sdio_FUNCE1_10_31_24 0xF1D7
+#define reg_sdio_FUNCE1_10_31_24_pos 0
+#define reg_sdio_FUNCE1_10_31_24_len 8
+#define reg_sdio_FUNCE1_10_31_24_lsb 24
+#define xd_p_reg_sdio_FUNCE1_14 (*(volatile byte xdata *) 0xF1D8)
+#define p_reg_sdio_FUNCE1_14 0xF1D8
+#define reg_sdio_FUNCE1_14_pos 0
+#define reg_sdio_FUNCE1_14_len 8
+#define reg_sdio_FUNCE1_14_lsb 0
+#define xd_p_reg_sdio_FUNCE1_15 (*(volatile byte xdata *) 0xF1D9)
+#define p_reg_sdio_FUNCE1_15 0xF1D9
+#define reg_sdio_FUNCE1_15_pos 0
+#define reg_sdio_FUNCE1_15_len 8
+#define reg_sdio_FUNCE1_15_lsb 0
+#define xd_p_reg_sdio_FUNCE1_16 (*(volatile byte xdata *) 0xF1DA)
+#define p_reg_sdio_FUNCE1_16 0xF1DA
+#define reg_sdio_FUNCE1_16_pos 0
+#define reg_sdio_FUNCE1_16_len 8
+#define reg_sdio_FUNCE1_16_lsb 0
+#define xd_p_reg_sdio_FUNCE1_17 (*(volatile byte xdata *) 0xF1DB)
+#define p_reg_sdio_FUNCE1_17 0xF1DB
+#define reg_sdio_FUNCE1_17_pos 0
+#define reg_sdio_FUNCE1_17_len 8
+#define reg_sdio_FUNCE1_17_lsb 0
+#define xd_p_reg_sdio_FUNCE1_18 (*(volatile byte xdata *) 0xF1DC)
+#define p_reg_sdio_FUNCE1_18 0xF1DC
+#define reg_sdio_FUNCE1_18_pos 0
+#define reg_sdio_FUNCE1_18_len 8
+#define reg_sdio_FUNCE1_18_lsb 0
+#define xd_p_reg_sdio_FUNCE1_19 (*(volatile byte xdata *) 0xF1DD)
+#define p_reg_sdio_FUNCE1_19 0xF1DD
+#define reg_sdio_FUNCE1_19_pos 0
+#define reg_sdio_FUNCE1_19_len 8
+#define reg_sdio_FUNCE1_19_lsb 0
+#define xd_p_reg_sdio_FUNCE1_1A_7_0 (*(volatile byte xdata *) 0xF1DE)
+#define p_reg_sdio_FUNCE1_1A_7_0 0xF1DE
+#define reg_sdio_FUNCE1_1A_7_0_pos 0
+#define reg_sdio_FUNCE1_1A_7_0_len 8
+#define reg_sdio_FUNCE1_1A_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_1A_15_8 (*(volatile byte xdata *) 0xF1DF)
+#define p_reg_sdio_FUNCE1_1A_15_8 0xF1DF
+#define reg_sdio_FUNCE1_1A_15_8_pos 0
+#define reg_sdio_FUNCE1_1A_15_8_len 8
+#define reg_sdio_FUNCE1_1A_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_1C_7_0 (*(volatile byte xdata *) 0xF1E0)
+#define p_reg_sdio_FUNCE1_1C_7_0 0xF1E0
+#define reg_sdio_FUNCE1_1C_7_0_pos 0
+#define reg_sdio_FUNCE1_1C_7_0_len 8
+#define reg_sdio_FUNCE1_1C_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_1C_15_8 (*(volatile byte xdata *) 0xF1E1)
+#define p_reg_sdio_FUNCE1_1C_15_8 0xF1E1
+#define reg_sdio_FUNCE1_1C_15_8_pos 0
+#define reg_sdio_FUNCE1_1C_15_8_len 8
+#define reg_sdio_FUNCE1_1C_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_1E_7_0 (*(volatile byte xdata *) 0xF1E2)
+#define p_reg_sdio_FUNCE1_1E_7_0 0xF1E2
+#define reg_sdio_FUNCE1_1E_7_0_pos 0
+#define reg_sdio_FUNCE1_1E_7_0_len 8
+#define reg_sdio_FUNCE1_1E_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_1E_15_8 (*(volatile byte xdata *) 0xF1E3)
+#define p_reg_sdio_FUNCE1_1E_15_8 0xF1E3
+#define reg_sdio_FUNCE1_1E_15_8_pos 0
+#define reg_sdio_FUNCE1_1E_15_8_len 8
+#define reg_sdio_FUNCE1_1E_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_20_7_0 (*(volatile byte xdata *) 0xF1E4)
+#define p_reg_sdio_FUNCE1_20_7_0 0xF1E4
+#define reg_sdio_FUNCE1_20_7_0_pos 0
+#define reg_sdio_FUNCE1_20_7_0_len 8
+#define reg_sdio_FUNCE1_20_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_20_15_8 (*(volatile byte xdata *) 0xF1E5)
+#define p_reg_sdio_FUNCE1_20_15_8 0xF1E5
+#define reg_sdio_FUNCE1_20_15_8_pos 0
+#define reg_sdio_FUNCE1_20_15_8_len 8
+#define reg_sdio_FUNCE1_20_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_22_7_0 (*(volatile byte xdata *) 0xF1E6)
+#define p_reg_sdio_FUNCE1_22_7_0 0xF1E6
+#define reg_sdio_FUNCE1_22_7_0_pos 0
+#define reg_sdio_FUNCE1_22_7_0_len 8
+#define reg_sdio_FUNCE1_22_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_22_15_8 (*(volatile byte xdata *) 0xF1E7)
+#define p_reg_sdio_FUNCE1_22_15_8 0xF1E7
+#define reg_sdio_FUNCE1_22_15_8_pos 0
+#define reg_sdio_FUNCE1_22_15_8_len 8
+#define reg_sdio_FUNCE1_22_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_24_7_0 (*(volatile byte xdata *) 0xF1E8)
+#define p_reg_sdio_FUNCE1_24_7_0 0xF1E8
+#define reg_sdio_FUNCE1_24_7_0_pos 0
+#define reg_sdio_FUNCE1_24_7_0_len 8
+#define reg_sdio_FUNCE1_24_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_24_15_8 (*(volatile byte xdata *) 0xF1E9)
+#define p_reg_sdio_FUNCE1_24_15_8 0xF1E9
+#define reg_sdio_FUNCE1_24_15_8_pos 0
+#define reg_sdio_FUNCE1_24_15_8_len 8
+#define reg_sdio_FUNCE1_24_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_26_7_0 (*(volatile byte xdata *) 0xF1EA)
+#define p_reg_sdio_FUNCE1_26_7_0 0xF1EA
+#define reg_sdio_FUNCE1_26_7_0_pos 0
+#define reg_sdio_FUNCE1_26_7_0_len 8
+#define reg_sdio_FUNCE1_26_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_26_15_8 (*(volatile byte xdata *) 0xF1EB)
+#define p_reg_sdio_FUNCE1_26_15_8 0xF1EB
+#define reg_sdio_FUNCE1_26_15_8_pos 0
+#define reg_sdio_FUNCE1_26_15_8_len 8
+#define reg_sdio_FUNCE1_26_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_28_7_0 (*(volatile byte xdata *) 0xF1EC)
+#define p_reg_sdio_FUNCE1_28_7_0 0xF1EC
+#define reg_sdio_FUNCE1_28_7_0_pos 0
+#define reg_sdio_FUNCE1_28_7_0_len 8
+#define reg_sdio_FUNCE1_28_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_28_15_8 (*(volatile byte xdata *) 0xF1ED)
+#define p_reg_sdio_FUNCE1_28_15_8 0xF1ED
+#define reg_sdio_FUNCE1_28_15_8_pos 0
+#define reg_sdio_FUNCE1_28_15_8_len 8
+#define reg_sdio_FUNCE1_28_15_8_lsb 8
+#define xd_p_reg_sdio_FUNCE1_2A_7_0 (*(volatile byte xdata *) 0xF1EE)
+#define p_reg_sdio_FUNCE1_2A_7_0 0xF1EE
+#define reg_sdio_FUNCE1_2A_7_0_pos 0
+#define reg_sdio_FUNCE1_2A_7_0_len 8
+#define reg_sdio_FUNCE1_2A_7_0_lsb 0
+#define xd_p_reg_sdio_FUNCE1_2A_15_8 (*(volatile byte xdata *) 0xF1EF)
+#define p_reg_sdio_FUNCE1_2A_15_8 0xF1EF
+#define reg_sdio_FUNCE1_2A_15_8_pos 0
+#define reg_sdio_FUNCE1_2A_15_8_len 8
+#define reg_sdio_FUNCE1_2A_15_8_lsb 8
+#define xd_p_reg_sdio_END1 (*(volatile byte xdata *) 0xF1F0)
+#define p_reg_sdio_END1 0xF1F0
+#define reg_sdio_END1_pos 0
+#define reg_sdio_END1_len 8
+#define reg_sdio_END1_lsb 0
+#define xd_r_sdioc_tx_fifo_empty (*(volatile byte xdata *) 0xF210)
+#define r_sdioc_tx_fifo_empty 0xF210
+#define sdioc_tx_fifo_empty_pos 0
+#define sdioc_tx_fifo_empty_len 1
+#define sdioc_tx_fifo_empty_lsb 0
+#define xd_p_reg_sdio_53ra (*(volatile byte xdata *) 0xF210)
+#define p_reg_sdio_53ra 0xF210
+#define reg_sdio_53ra_pos 1
+#define reg_sdio_53ra_len 1
+#define reg_sdio_53ra_lsb 0
+#define xd_p_reg_sdioc_rd_wait_dly (*(volatile byte xdata *) 0xF210)
+#define p_reg_sdioc_rd_wait_dly 0xF210
+#define reg_sdioc_rd_wait_dly_pos 4
+#define reg_sdioc_rd_wait_dly_len 2
+#define reg_sdioc_rd_wait_dly_lsb 0
+#define xd_p_reg_write_mbx_complete (*(volatile byte xdata *) 0xF211)
+#define p_reg_write_mbx_complete 0xF211
+#define reg_write_mbx_complete_pos 0
+#define reg_write_mbx_complete_len 1
+#define reg_write_mbx_complete_lsb 0
+#define xd_p_reg_sdioc_sw_err (*(volatile byte xdata *) 0xF211)
+#define p_reg_sdioc_sw_err 0xF211
+#define reg_sdioc_sw_err_pos 1
+#define reg_sdioc_sw_err_len 1
+#define reg_sdioc_sw_err_lsb 0
+#define xd_p_reg_sdioc_tran_dat_dly (*(volatile byte xdata *) 0xF211)
+#define p_reg_sdioc_tran_dat_dly 0xF211
+#define reg_sdioc_tran_dat_dly_pos 4
+#define reg_sdioc_tran_dat_dly_len 3
+#define reg_sdioc_tran_dat_dly_lsb 0
+#define xd_p_reg_sdioc_external_int_en (*(volatile byte xdata *) 0xF212)
+#define p_reg_sdioc_external_int_en 0xF212
+#define reg_sdioc_external_int_en_pos 1
+#define reg_sdioc_external_int_en_len 1
+#define reg_sdioc_external_int_en_lsb 0
+#define xd_r_reg_sdioc_external_int (*(volatile byte xdata *) 0xF212)
+#define r_reg_sdioc_external_int 0xF212
+#define reg_sdioc_external_int_pos 2
+#define reg_sdioc_external_int_len 1
+#define reg_sdioc_external_int_lsb 0
+#define xd_p_reg_auto_clrWB_en (*(volatile byte xdata *) 0xF213)
+#define p_reg_auto_clrWB_en 0xF213
+#define reg_auto_clrWB_en_pos 0
+#define reg_auto_clrWB_en_len 1
+#define reg_auto_clrWB_en_lsb 0
+#define xd_p_reg_sdioc_crc_s_dly (*(volatile byte xdata *) 0xF213)
+#define p_reg_sdioc_crc_s_dly 0xF213
+#define reg_sdioc_crc_s_dly_pos 1
+#define reg_sdioc_crc_s_dly_len 1
+#define reg_sdioc_crc_s_dly_lsb 0
+#define xd_p_reg_sdioc_neg_out_sel (*(volatile byte xdata *) 0xF213)
+#define p_reg_sdioc_neg_out_sel 0xF213
+#define reg_sdioc_neg_out_sel_pos 2
+#define reg_sdioc_neg_out_sel_len 1
+#define reg_sdioc_neg_out_sel_lsb 0
+#define xd_p_reg_sdioc_tx_fifo_rst (*(volatile byte xdata *) 0xF213)
+#define p_reg_sdioc_tx_fifo_rst 0xF213
+#define reg_sdioc_tx_fifo_rst_pos 4
+#define reg_sdioc_tx_fifo_rst_len 1
+#define reg_sdioc_tx_fifo_rst_lsb 0
+#define xd_p_reg_sdioc_rx_fifo_rst (*(volatile byte xdata *) 0xF213)
+#define p_reg_sdioc_rx_fifo_rst 0xF213
+#define reg_sdioc_rx_fifo_rst_pos 5
+#define reg_sdioc_rx_fifo_rst_len 1
+#define reg_sdioc_rx_fifo_rst_lsb 0
+#define xd_p_reg_sdioc_auto_rst_sm_en (*(volatile byte xdata *) 0xF213)
+#define p_reg_sdioc_auto_rst_sm_en 0xF213
+#define reg_sdioc_auto_rst_sm_en_pos 6
+#define reg_sdioc_auto_rst_sm_en_len 1
+#define reg_sdioc_auto_rst_sm_en_lsb 0
+#define xd_p_sdio_link_clr_Wbusy_en (*(volatile byte xdata *) 0xF214)
+#define p_sdio_link_clr_Wbusy_en 0xF214
+#define sdio_link_clr_Wbusy_en_pos 0
+#define sdio_link_clr_Wbusy_en_len 1
+#define sdio_link_clr_Wbusy_en_lsb 0
+#define xd_p_sdio_link_clr_Wbusy (*(volatile byte xdata *) 0xF214)
+#define p_sdio_link_clr_Wbusy 0xF214
+#define sdio_link_clr_Wbusy_pos 1
+#define sdio_link_clr_Wbusy_len 1
+#define sdio_link_clr_Wbusy_lsb 0
+#define xd_p_reg_sdioc_dbg_sel (*(volatile byte xdata *) 0xF214)
+#define p_reg_sdioc_dbg_sel 0xF214
+#define reg_sdioc_dbg_sel_pos 4
+#define reg_sdioc_dbg_sel_len 4
+#define reg_sdioc_dbg_sel_lsb 0
+#define xd_p_reg_sdioc_skip_ocr (*(volatile byte xdata *) 0xF215)
+#define p_reg_sdioc_skip_ocr 0xF215
+#define reg_sdioc_skip_ocr_pos 0
+#define reg_sdioc_skip_ocr_len 1
+#define reg_sdioc_skip_ocr_lsb 0
+#define xd_p_reg_sdioc_spi_ns (*(volatile byte xdata *) 0xF215)
+#define p_reg_sdioc_spi_ns 0xF215
+#define reg_sdioc_spi_ns_pos 1
+#define reg_sdioc_spi_ns_len 1
+#define reg_sdioc_spi_ns_lsb 0
+#define xd_r_sdio_spi_mode (*(volatile byte xdata *) 0xF215)
+#define r_sdio_spi_mode 0xF215
+#define sdio_spi_mode_pos 7
+#define sdio_spi_mode_len 1
+#define sdio_spi_mode_lsb 0
+#define xd_r_link_ofsm_mailbox_int (*(volatile byte xdata *) 0xF402)
+#define r_link_ofsm_mailbox_int 0xF402
+#define link_ofsm_mailbox_int_pos 4
+#define link_ofsm_mailbox_int_len 1
+#define link_ofsm_mailbox_int_lsb 0
+#define xd_r_link_ofsm_dvbt_int (*(volatile byte xdata *) 0xF403)
+#define r_link_ofsm_dvbt_int 0xF403
+#define link_ofsm_dvbt_int_pos 2
+#define link_ofsm_dvbt_int_len 1
+#define link_ofsm_dvbt_int_lsb 0
+#define xd_p_reg_dvbt_intsts (*(volatile byte xdata *) 0xF404)
+#define p_reg_dvbt_intsts 0xF404
+#define reg_dvbt_intsts_pos 2
+#define reg_dvbt_intsts_len 1
+#define reg_dvbt_intsts_lsb 0
+#define xd_p_reg_link_mailbox_int (*(volatile byte xdata *) 0xF405)
+#define p_reg_link_mailbox_int 0xF405
+#define reg_link_mailbox_int_pos 5
+#define reg_link_mailbox_int_len 1
+#define reg_link_mailbox_int_lsb 0
+#define xd_p_reg_mailbox_wptr_rst (*(volatile byte xdata *) 0xF408)
+#define p_reg_mailbox_wptr_rst 0xF408
+#define reg_mailbox_wptr_rst_pos 0
+#define reg_mailbox_wptr_rst_len 1
+#define reg_mailbox_wptr_rst_lsb 0
+#define xd_p_reg_link_mailbox_wptr (*(volatile byte xdata *) 0xF409)
+#define p_reg_link_mailbox_wptr 0xF409
+#define reg_link_mailbox_wptr_pos 0
+#define reg_link_mailbox_wptr_len 8
+#define reg_link_mailbox_wptr_lsb 0
+#define xd_p_reg_link_mailbox_wend (*(volatile byte xdata *) 0xF410)
+#define p_reg_link_mailbox_wend 0xF410
+#define reg_link_mailbox_wend_pos 0
+#define reg_link_mailbox_wend_len 1
+#define reg_link_mailbox_wend_lsb 0
+#define xd_p_reg_rd_data_sel (*(volatile byte xdata *) 0xF411)
+#define p_reg_rd_data_sel 0xF411
+#define reg_rd_data_sel_pos 0
+#define reg_rd_data_sel_len 2
+#define reg_rd_data_sel_lsb 0
+#define xd_p_reg_fifo_rd_length_7_0 (*(volatile byte xdata *) 0xF412)
+#define p_reg_fifo_rd_length_7_0 0xF412
+#define reg_fifo_rd_length_7_0_pos 0
+#define reg_fifo_rd_length_7_0_len 8
+#define reg_fifo_rd_length_7_0_lsb 0
+#define xd_p_reg_fifo_rd_length_15_8 (*(volatile byte xdata *) 0xF413)
+#define p_reg_fifo_rd_length_15_8 0xF413
+#define reg_fifo_rd_length_15_8_pos 0
+#define reg_fifo_rd_length_15_8_len 8
+#define reg_fifo_rd_length_15_8_lsb 8
+#define xd_p_reg_fifo_rd_length_17_16 (*(volatile byte xdata *) 0xF414)
+#define p_reg_fifo_rd_length_17_16 0xF414
+#define reg_fifo_rd_length_17_16_pos 0
+#define reg_fifo_rd_length_17_16_len 2
+#define reg_fifo_rd_length_17_16_lsb 16
+#define xd_p_reg_rst_fifo_rptr (*(volatile byte xdata *) 0xF414)
+#define p_reg_rst_fifo_rptr 0xF414
+#define reg_rst_fifo_rptr_pos 6
+#define reg_rst_fifo_rptr_len 1
+#define reg_rst_fifo_rptr_lsb 0
+#define xd_p_reg_force_sel (*(volatile byte xdata *) 0xF414)
+#define p_reg_force_sel 0xF414
+#define reg_force_sel_pos 7
+#define reg_force_sel_len 1
+#define reg_force_sel_lsb 0
+#define xd_p_reg_fifo_rptr_7_0 (*(volatile byte xdata *) 0xF415)
+#define p_reg_fifo_rptr_7_0 0xF415
+#define reg_fifo_rptr_7_0_pos 0
+#define reg_fifo_rptr_7_0_len 8
+#define reg_fifo_rptr_7_0_lsb 0
+#define xd_p_reg_fifo_rptr_15_8 (*(volatile byte xdata *) 0xF416)
+#define p_reg_fifo_rptr_15_8 0xF416
+#define reg_fifo_rptr_15_8_pos 0
+#define reg_fifo_rptr_15_8_len 8
+#define reg_fifo_rptr_15_8_lsb 8
+#define xd_p_reg_fifo_rptr_17_16 (*(volatile byte xdata *) 0xF417)
+#define p_reg_fifo_rptr_17_16 0xF417
+#define reg_fifo_rptr_17_16_pos 0
+#define reg_fifo_rptr_17_16_len 2
+#define reg_fifo_rptr_17_16_lsb 16
+#define xd_p_reg_max_package_size_7_0 (*(volatile byte xdata *) 0xF418)
+#define p_reg_max_package_size_7_0 0xF418
+#define reg_max_package_size_7_0_pos 0
+#define reg_max_package_size_7_0_len 8
+#define reg_max_package_size_7_0_lsb 0
+#define xd_p_reg_max_package_size_11_8 (*(volatile byte xdata *) 0xF419)
+#define p_reg_max_package_size_11_8 0xF419
+#define reg_max_package_size_11_8_pos 0
+#define reg_max_package_size_11_8_len 4
+#define reg_max_package_size_11_8_lsb 8
+#define xd_p_reg_dvbt_en (*(volatile byte xdata *) 0xF41A)
+#define p_reg_dvbt_en 0xF41A
+#define reg_dvbt_en_pos 0
+#define reg_dvbt_en_len 1
+#define reg_dvbt_en_lsb 0
+#define xd_p_reg_dvbt_bufsize (*(volatile byte xdata *) 0xF41A)
+#define p_reg_dvbt_bufsize 0xF41A
+#define reg_dvbt_bufsize_pos 1
+#define reg_dvbt_bufsize_len 1
+#define reg_dvbt_bufsize_lsb 0
+#define xd_p_reg_dvbt_path (*(volatile byte xdata *) 0xF41A)
+#define p_reg_dvbt_path 0xF41A
+#define reg_dvbt_path_pos 2
+#define reg_dvbt_path_len 1
+#define reg_dvbt_path_lsb 0
+#define xd_p_reg_dvbt_r5 (*(volatile byte xdata *) 0xF41A)
+#define p_reg_dvbt_r5 0xF41A
+#define reg_dvbt_r5_pos 3
+#define reg_dvbt_r5_len 1
+#define reg_dvbt_r5_lsb 0
+#define xd_p_reg_mailbox_inten (*(volatile byte xdata *) 0xF41E)
+#define p_reg_mailbox_inten 0xF41E
+#define reg_mailbox_inten_pos 4
+#define reg_mailbox_inten_len 1
+#define reg_mailbox_inten_lsb 0
+#define xd_p_reg_dvbt_inten (*(volatile byte xdata *) 0xF41F)
+#define p_reg_dvbt_inten 0xF41F
+#define reg_dvbt_inten_pos 2
+#define reg_dvbt_inten_len 1
+#define reg_dvbt_inten_lsb 0
+#define xd_r_link_ofsm_ip_length_7_0 (*(volatile byte xdata *) 0xF447)
+#define r_link_ofsm_ip_length_7_0 0xF447
+#define link_ofsm_ip_length_7_0_pos 0
+#define link_ofsm_ip_length_7_0_len 8
+#define link_ofsm_ip_length_7_0_lsb 0
+#define xd_r_link_ofsm_ip_length_11_8 (*(volatile byte xdata *) 0xF448)
+#define r_link_ofsm_ip_length_11_8 0xF448
+#define link_ofsm_ip_length_11_8_pos 0
+#define link_ofsm_ip_length_11_8_len 4
+#define link_ofsm_ip_length_11_8_lsb 8
+#define xd_r_link_ofsm_ip_valid (*(volatile byte xdata *) 0xF448)
+#define r_link_ofsm_ip_valid 0xF448
+#define link_ofsm_ip_valid_pos 7
+#define link_ofsm_ip_valid_len 1
+#define link_ofsm_ip_valid_lsb 0
+#define xd_p_reg_spi_master (*(volatile byte xdata *) 0xF600)
+#define p_reg_spi_master 0xF600
+#define reg_spi_master_pos 0
+#define reg_spi_master_len 1
+#define reg_spi_master_lsb 0
+#define xd_p_reg_spi_bit (*(volatile byte xdata *) 0xF601)
+#define p_reg_spi_bit 0xF601
+#define reg_spi_bit_pos 0
+#define reg_spi_bit_len 2
+#define reg_spi_bit_lsb 0
+#define xd_p_reg_spi_cs (*(volatile byte xdata *) 0xF602)
+#define p_reg_spi_cs 0xF602
+#define reg_spi_cs_pos 0
+#define reg_spi_cs_len 1
+#define reg_spi_cs_lsb 0
+#define xd_p_reg_spi_polarity (*(volatile byte xdata *) 0xF602)
+#define p_reg_spi_polarity 0xF602
+#define reg_spi_polarity_pos 1
+#define reg_spi_polarity_len 1
+#define reg_spi_polarity_lsb 0
+#define xd_p_reg_spi_phase (*(volatile byte xdata *) 0xF602)
+#define p_reg_spi_phase 0xF602
+#define reg_spi_phase_pos 2
+#define reg_spi_phase_len 1
+#define reg_spi_phase_lsb 0
+#define xd_p_reg_spi_1st_byte (*(volatile byte xdata *) 0xF603)
+#define p_reg_spi_1st_byte 0xF603
+#define reg_spi_1st_byte_pos 0
+#define reg_spi_1st_byte_len 4
+#define reg_spi_1st_byte_lsb 0
+#define xd_p_reg_spi_clk_div (*(volatile byte xdata *) 0xF603)
+#define p_reg_spi_clk_div 0xF603
+#define reg_spi_clk_div_pos 4
+#define reg_spi_clk_div_len 4
+#define reg_spi_clk_div_lsb 0
+#define xd_p_reg_spi_rst (*(volatile byte xdata *) 0xF604)
+#define p_reg_spi_rst 0xF604
+#define reg_spi_rst_pos 0
+#define reg_spi_rst_len 1
+#define reg_spi_rst_lsb 0
+#define xd_r_reg_spi_tx_done (*(volatile byte xdata *) 0xF604)
+#define r_reg_spi_tx_done 0xF604
+#define reg_spi_tx_done_pos 1
+#define reg_spi_tx_done_len 1
+#define reg_spi_tx_done_lsb 0
+#define xd_r_reg_spi_rx_done (*(volatile byte xdata *) 0xF604)
+#define r_reg_spi_rx_done 0xF604
+#define reg_spi_rx_done_pos 2
+#define reg_spi_rx_done_len 1
+#define reg_spi_rx_done_lsb 0
+#define xd_p_reg_spi_dbg_sel (*(volatile byte xdata *) 0xF604)
+#define p_reg_spi_dbg_sel 0xF604
+#define reg_spi_dbg_sel_pos 3
+#define reg_spi_dbg_sel_len 1
+#define reg_spi_dbg_sel_lsb 0
+#define xd_r_reg_spi_crc_err (*(volatile byte xdata *) 0xF604)
+#define r_reg_spi_crc_err 0xF604
+#define reg_spi_crc_err_pos 4
+#define reg_spi_crc_err_len 4
+#define reg_spi_crc_err_lsb 0
+#define xd_r_link_ofsm_usb20_mode (*(volatile byte xdata *) 0xF613)
+#define r_link_ofsm_usb20_mode 0xF613
+#define link_ofsm_usb20_mode_pos 0
+#define link_ofsm_usb20_mode_len 1
+#define link_ofsm_usb20_mode_lsb 0
+#define xd_r_link_ofsm_strap_usb20_mode (*(volatile byte xdata *) 0xF613)
+#define r_link_ofsm_strap_usb20_mode 0xF613
+#define link_ofsm_strap_usb20_mode_pos 1
+#define link_ofsm_strap_usb20_mode_len 1
+#define link_ofsm_strap_usb20_mode_lsb 0
+#define xd_p_reg_link_stick_mem_end_7_0 (*(volatile byte xdata *) 0xF618)
+#define p_reg_link_stick_mem_end_7_0 0xF618
+#define reg_link_stick_mem_end_7_0_pos 0
+#define reg_link_stick_mem_end_7_0_len 8
+#define reg_link_stick_mem_end_7_0_lsb 0
+#define xd_p_reg_link_stick_mem_end_15_8 (*(volatile byte xdata *) 0xF619)
+#define p_reg_link_stick_mem_end_15_8 0xF619
+#define reg_link_stick_mem_end_15_8_pos 0
+#define reg_link_stick_mem_end_15_8_len 8
+#define reg_link_stick_mem_end_15_8_lsb 8
+#define xd_p_reg_ofdm_auto_write_addr_l (*(volatile byte xdata *) 0xF61A)
+#define p_reg_ofdm_auto_write_addr_l 0xF61A
+#define reg_ofdm_auto_write_addr_l_pos 0
+#define reg_ofdm_auto_write_addr_l_len 8
+#define reg_ofdm_auto_write_addr_l_lsb 0
+#define xd_p_reg_ofdm_auto_write_addr_h (*(volatile byte xdata *) 0xF61B)
+#define p_reg_ofdm_auto_write_addr_h 0xF61B
+#define reg_ofdm_auto_write_addr_h_pos 0
+#define reg_ofdm_auto_write_addr_h_len 8
+#define reg_ofdm_auto_write_addr_h_lsb 0
+#define xd_p_reg_link_auto_write_addr_l (*(volatile byte xdata *) 0xF61C)
+#define p_reg_link_auto_write_addr_l 0xF61C
+#define reg_link_auto_write_addr_l_pos 0
+#define reg_link_auto_write_addr_l_len 8
+#define reg_link_auto_write_addr_l_lsb 0
+#define xd_p_reg_link_auto_write_addr_h (*(volatile byte xdata *) 0xF61D)
+#define p_reg_link_auto_write_addr_h 0xF61D
+#define reg_link_auto_write_addr_h_pos 0
+#define reg_link_auto_write_addr_h_len 8
+#define reg_link_auto_write_addr_h_lsb 0
+#define xd_p_reg_mailbox_auto_write_addr (*(volatile byte xdata *) 0xF61E)
+#define p_reg_mailbox_auto_write_addr 0xF61E
+#define reg_mailbox_auto_write_addr_pos 0
+#define reg_mailbox_auto_write_addr_len 8
+#define reg_mailbox_auto_write_addr_lsb 0
+#define xd_p_reg_usbmem_auto_write_addr (*(volatile byte xdata *) 0xF61F)
+#define p_reg_usbmem_auto_write_addr 0xF61F
+#define reg_usbmem_auto_write_addr_pos 0
+#define reg_usbmem_auto_write_addr_len 8
+#define reg_usbmem_auto_write_addr_lsb 0
+#define xd_p_reg_mailbox_auto_read_addr (*(volatile byte xdata *) 0xF620)
+#define p_reg_mailbox_auto_read_addr 0xF620
+#define reg_mailbox_auto_read_addr_pos 0
+#define reg_mailbox_auto_read_addr_len 8
+#define reg_mailbox_auto_read_addr_lsb 0
+#define xd_p_reg_usbmem_auto_read_addr (*(volatile byte xdata *) 0xF621)
+#define p_reg_usbmem_auto_read_addr 0xF621
+#define reg_usbmem_auto_read_addr_pos 0
+#define reg_usbmem_auto_read_addr_len 8
+#define reg_usbmem_auto_read_addr_lsb 0
+#define xd_p_reg_auto_write_ofdm (*(volatile byte xdata *) 0xF622)
+#define p_reg_auto_write_ofdm 0xF622
+#define reg_auto_write_ofdm_pos 0
+#define reg_auto_write_ofdm_len 1
+#define reg_auto_write_ofdm_lsb 0
+#define xd_p_reg_auto_write_link (*(volatile byte xdata *) 0xF622)
+#define p_reg_auto_write_link 0xF622
+#define reg_auto_write_link_pos 1
+#define reg_auto_write_link_len 1
+#define reg_auto_write_link_lsb 0
+#define xd_p_reg_auto_write_mailbox (*(volatile byte xdata *) 0xF622)
+#define p_reg_auto_write_mailbox 0xF622
+#define reg_auto_write_mailbox_pos 2
+#define reg_auto_write_mailbox_len 1
+#define reg_auto_write_mailbox_lsb 0
+#define xd_p_reg_auto_write_usbmem (*(volatile byte xdata *) 0xF622)
+#define p_reg_auto_write_usbmem 0xF622
+#define reg_auto_write_usbmem_pos 3
+#define reg_auto_write_usbmem_len 1
+#define reg_auto_write_usbmem_lsb 0
+#define xd_p_reg_auto_write_i2cm (*(volatile byte xdata *) 0xF622)
+#define p_reg_auto_write_i2cm 0xF622
+#define reg_auto_write_i2cm_pos 4
+#define reg_auto_write_i2cm_len 1
+#define reg_auto_write_i2cm_lsb 0
+#define xd_p_reg_auto_read_mailbox (*(volatile byte xdata *) 0xF623)
+#define p_reg_auto_read_mailbox 0xF623
+#define reg_auto_read_mailbox_pos 0
+#define reg_auto_read_mailbox_len 1
+#define reg_auto_read_mailbox_lsb 0
+#define xd_p_reg_auto_read_rom (*(volatile byte xdata *) 0xF623)
+#define p_reg_auto_read_rom 0xF623
+#define reg_auto_read_rom_pos 1
+#define reg_auto_read_rom_len 1
+#define reg_auto_read_rom_lsb 0
+#define xd_p_reg_auto_sum_l (*(volatile byte xdata *) 0xF624)
+#define p_reg_auto_sum_l 0xF624
+#define reg_auto_sum_l_pos 0
+#define reg_auto_sum_l_len 8
+#define reg_auto_sum_l_lsb 0
+#define xd_p_reg_auto_sum_h (*(volatile byte xdata *) 0xF625)
+#define p_reg_auto_sum_h 0xF625
+#define reg_auto_sum_h_pos 0
+#define reg_auto_sum_h_len 8
+#define reg_auto_sum_h_lsb 0
+#define xd_p_reg_auto_sum_to_h (*(volatile byte xdata *) 0xF626)
+#define p_reg_auto_sum_to_h 0xF626
+#define reg_auto_sum_to_h_pos 0
+#define reg_auto_sum_to_h_len 1
+#define reg_auto_sum_to_h_lsb 0
+#define xd_p_reg_auto_sum_en (*(volatile byte xdata *) 0xF627)
+#define p_reg_auto_sum_en 0xF627
+#define reg_auto_sum_en_pos 0
+#define reg_auto_sum_en_len 1
+#define reg_auto_sum_en_lsb 0
+#define xd_p_reg_rom_remap_begin_7_0 (*(volatile byte xdata *) 0xF628)
+#define p_reg_rom_remap_begin_7_0 0xF628
+#define reg_rom_remap_begin_7_0_pos 0
+#define reg_rom_remap_begin_7_0_len 8
+#define reg_rom_remap_begin_7_0_lsb 0
+#define xd_p_reg_rom_remap_begin_15_8 (*(volatile byte xdata *) 0xF629)
+#define p_reg_rom_remap_begin_15_8 0xF629
+#define reg_rom_remap_begin_15_8_pos 0
+#define reg_rom_remap_begin_15_8_len 8
+#define reg_rom_remap_begin_15_8_lsb 8
+#define xd_p_reg_rom_remap_end_7_0 (*(volatile byte xdata *) 0xF62A)
+#define p_reg_rom_remap_end_7_0 0xF62A
+#define reg_rom_remap_end_7_0_pos 0
+#define reg_rom_remap_end_7_0_len 8
+#define reg_rom_remap_end_7_0_lsb 0
+#define xd_p_reg_rom_remap_end_15_8 (*(volatile byte xdata *) 0xF62B)
+#define p_reg_rom_remap_end_15_8 0xF62B
+#define reg_rom_remap_end_15_8_pos 0
+#define reg_rom_remap_end_15_8_len 8
+#define reg_rom_remap_end_15_8_lsb 8
+#define xd_p_reg_rom_remap_delta_7_0 (*(volatile byte xdata *) 0xF62C)
+#define p_reg_rom_remap_delta_7_0 0xF62C
+#define reg_rom_remap_delta_7_0_pos 0
+#define reg_rom_remap_delta_7_0_len 8
+#define reg_rom_remap_delta_7_0_lsb 0
+#define xd_p_reg_rom_remap_delta_15_8 (*(volatile byte xdata *) 0xF62D)
+#define p_reg_rom_remap_delta_15_8 0xF62D
+#define reg_rom_remap_delta_15_8_pos 0
+#define reg_rom_remap_delta_15_8_len 8
+#define reg_rom_remap_delta_15_8_lsb 8
+#define xd_p_reg_rom_remap_en (*(volatile byte xdata *) 0xF62E)
+#define p_reg_rom_remap_en 0xF62E
+#define reg_rom_remap_en_pos 0
+#define reg_rom_remap_en_len 1
+#define reg_rom_remap_en_lsb 0
+#define xd_p_reg_rom_remap_ofdm (*(volatile byte xdata *) 0xF62E)
+#define p_reg_rom_remap_ofdm 0xF62E
+#define reg_rom_remap_ofdm_pos 1
+#define reg_rom_remap_ofdm_len 1
+#define reg_rom_remap_ofdm_lsb 0
+#define xd_p_reg_link_cpu_reset (*(volatile byte xdata *) 0xF62F)
+#define p_reg_link_cpu_reset 0xF62F
+#define reg_link_cpu_reset_pos 0
+#define reg_link_cpu_reset_len 1
+#define reg_link_cpu_reset_lsb 0
+#define xd_p_reg_i2cm_auto_write_addr (*(volatile byte xdata *) 0xF630)
+#define p_reg_i2cm_auto_write_addr 0xF630
+#define reg_i2cm_auto_write_addr_pos 0
+#define reg_i2cm_auto_write_addr_len 8
+#define reg_i2cm_auto_write_addr_lsb 0
+#define xd_p_reg_link_bank_float_en (*(volatile byte xdata *) 0xF631)
+#define p_reg_link_bank_float_en 0xF631
+#define reg_link_bank_float_en_pos 0
+#define reg_link_bank_float_en_len 1
+#define reg_link_bank_float_en_lsb 0
+#define xd_p_reg_link_bank_float_start (*(volatile byte xdata *) 0xF632)
+#define p_reg_link_bank_float_start 0xF632
+#define reg_link_bank_float_start_pos 0
+#define reg_link_bank_float_start_len 8
+#define reg_link_bank_float_start_lsb 0
+#define xd_p_reg_link_bank_float_stop (*(volatile byte xdata *) 0xF633)
+#define p_reg_link_bank_float_stop 0xF633
+#define reg_link_bank_float_stop_pos 0
+#define reg_link_bank_float_stop_len 8
+#define reg_link_bank_float_stop_lsb 0
+#define xd_p_reg_rom_auto_read_addr_7_0 (*(volatile byte xdata *) 0xF638)
+#define p_reg_rom_auto_read_addr_7_0 0xF638
+#define reg_rom_auto_read_addr_7_0_pos 0
+#define reg_rom_auto_read_addr_7_0_len 8
+#define reg_rom_auto_read_addr_7_0_lsb 0
+#define xd_p_reg_rom_auto_read_addr_15_8 (*(volatile byte xdata *) 0xF639)
+#define p_reg_rom_auto_read_addr_15_8 0xF639
+#define reg_rom_auto_read_addr_15_8_pos 0
+#define reg_rom_auto_read_addr_15_8_len 8
+#define reg_rom_auto_read_addr_15_8_lsb 8
+#define xd_p_reg_link_ofsm_dummy_7_0 (*(volatile byte xdata *) 0xF640)
+#define p_reg_link_ofsm_dummy_7_0 0xF640
+#define reg_link_ofsm_dummy_7_0_pos 0
+#define reg_link_ofsm_dummy_7_0_len 8
+#define reg_link_ofsm_dummy_7_0_lsb 0
+#define xd_p_reg_link_ofsm_dummy_15_8 (*(volatile byte xdata *) 0xF641)
+#define p_reg_link_ofsm_dummy_15_8 0xF641
+#define reg_link_ofsm_dummy_15_8_pos 0
+#define reg_link_ofsm_dummy_15_8_len 8
+#define reg_link_ofsm_dummy_15_8_lsb 8
+#define xd_p_reg_link_ofsm_dummy_23_16 (*(volatile byte xdata *) 0xF642)
+#define p_reg_link_ofsm_dummy_23_16 0xF642
+#define reg_link_ofsm_dummy_23_16_pos 0
+#define reg_link_ofsm_dummy_23_16_len 8
+#define reg_link_ofsm_dummy_23_16_lsb 16
+#define xd_p_reg_link_ofsm_dummy_31_24 (*(volatile byte xdata *) 0xF643)
+#define p_reg_link_ofsm_dummy_31_24 0xF643
+#define reg_link_ofsm_dummy_31_24_pos 0
+#define reg_link_ofsm_dummy_31_24_len 8
+#define reg_link_ofsm_dummy_31_24_lsb 24
+#define xd_p_reg_link_ofsm_dummy_39_32 (*(volatile byte xdata *) 0xF644)
+#define p_reg_link_ofsm_dummy_39_32 0xF644
+#define reg_link_ofsm_dummy_39_32_pos 0
+#define reg_link_ofsm_dummy_39_32_len 8
+#define reg_link_ofsm_dummy_39_32_lsb 32
+#define xd_p_reg_link_ofsm_dummy_47_40 (*(volatile byte xdata *) 0xF645)
+#define p_reg_link_ofsm_dummy_47_40 0xF645
+#define reg_link_ofsm_dummy_47_40_pos 0
+#define reg_link_ofsm_dummy_47_40_len 8
+#define reg_link_ofsm_dummy_47_40_lsb 40
+#define xd_p_reg_link_ofsm_dummy_55_48 (*(volatile byte xdata *) 0xF646)
+#define p_reg_link_ofsm_dummy_55_48 0xF646
+#define reg_link_ofsm_dummy_55_48_pos 0
+#define reg_link_ofsm_dummy_55_48_len 8
+#define reg_link_ofsm_dummy_55_48_lsb 48
+#define xd_p_reg_link_ofsm_dummy_63_56 (*(volatile byte xdata *) 0xF647)
+#define p_reg_link_ofsm_dummy_63_56 0xF647
+#define reg_link_ofsm_dummy_63_56_pos 0
+#define reg_link_ofsm_dummy_63_56_len 8
+#define reg_link_ofsm_dummy_63_56_lsb 56
+#define xd_p_reg_link_ofsm_dummy_71_64 (*(volatile byte xdata *) 0xF648)
+#define p_reg_link_ofsm_dummy_71_64 0xF648
+#define reg_link_ofsm_dummy_71_64_pos 0
+#define reg_link_ofsm_dummy_71_64_len 8
+#define reg_link_ofsm_dummy_71_64_lsb 64
+#define xd_p_reg_link_ofsm_dummy_79_72 (*(volatile byte xdata *) 0xF649)
+#define p_reg_link_ofsm_dummy_79_72 0xF649
+#define reg_link_ofsm_dummy_79_72_pos 0
+#define reg_link_ofsm_dummy_79_72_len 8
+#define reg_link_ofsm_dummy_79_72_lsb 72
+#define xd_p_reg_sdio_mode (*(volatile byte xdata *) 0xF66F)
+#define p_reg_sdio_mode 0xF66F
+#define reg_sdio_mode_pos 0
+#define reg_sdio_mode_len 1
+#define reg_sdio_mode_lsb 0
+#define xd_p_reg_lnk2ofdm_data_7_0 (*(volatile byte xdata *) 0xF6A0)
+#define p_reg_lnk2ofdm_data_7_0 0xF6A0
+#define reg_lnk2ofdm_data_7_0_pos 0
+#define reg_lnk2ofdm_data_7_0_len 8
+#define reg_lnk2ofdm_data_7_0_lsb 0
+#define xd_p_reg_lnk2ofdm_data_15_8 (*(volatile byte xdata *) 0xF6A1)
+#define p_reg_lnk2ofdm_data_15_8 0xF6A1
+#define reg_lnk2ofdm_data_15_8_pos 0
+#define reg_lnk2ofdm_data_15_8_len 8
+#define reg_lnk2ofdm_data_15_8_lsb 8
+#define xd_p_reg_lnk2ofdm_data_23_16 (*(volatile byte xdata *) 0xF6A2)
+#define p_reg_lnk2ofdm_data_23_16 0xF6A2
+#define reg_lnk2ofdm_data_23_16_pos 0
+#define reg_lnk2ofdm_data_23_16_len 8
+#define reg_lnk2ofdm_data_23_16_lsb 16
+#define xd_p_reg_lnk2ofdm_data_31_24 (*(volatile byte xdata *) 0xF6A3)
+#define p_reg_lnk2ofdm_data_31_24 0xF6A3
+#define reg_lnk2ofdm_data_31_24_pos 0
+#define reg_lnk2ofdm_data_31_24_len 8
+#define reg_lnk2ofdm_data_31_24_lsb 24
+#define xd_p_reg_lnk2ofdm_data_39_32 (*(volatile byte xdata *) 0xF6A4)
+#define p_reg_lnk2ofdm_data_39_32 0xF6A4
+#define reg_lnk2ofdm_data_39_32_pos 0
+#define reg_lnk2ofdm_data_39_32_len 8
+#define reg_lnk2ofdm_data_39_32_lsb 32
+#define xd_p_reg_lnk2ofdm_data_47_40 (*(volatile byte xdata *) 0xF6A5)
+#define p_reg_lnk2ofdm_data_47_40 0xF6A5
+#define reg_lnk2ofdm_data_47_40_pos 0
+#define reg_lnk2ofdm_data_47_40_len 8
+#define reg_lnk2ofdm_data_47_40_lsb 40
+#define xd_p_reg_lnk2ofdm_data_55_48 (*(volatile byte xdata *) 0xF6A6)
+#define p_reg_lnk2ofdm_data_55_48 0xF6A6
+#define reg_lnk2ofdm_data_55_48_pos 0
+#define reg_lnk2ofdm_data_55_48_len 8
+#define reg_lnk2ofdm_data_55_48_lsb 48
+#define xd_p_reg_lnk2ofdm_data_63_56 (*(volatile byte xdata *) 0xF6A7)
+#define p_reg_lnk2ofdm_data_63_56 0xF6A7
+#define reg_lnk2ofdm_data_63_56_pos 0
+#define reg_lnk2ofdm_data_63_56_len 8
+#define reg_lnk2ofdm_data_63_56_lsb 56
+#define xd_p_reg_ofdmtolnk_data_7_0 (*(volatile byte xdata *) 0xF6A8)
+#define p_reg_ofdmtolnk_data_7_0 0xF6A8
+#define reg_ofdmtolnk_data_7_0_pos 0
+#define reg_ofdmtolnk_data_7_0_len 8
+#define reg_ofdmtolnk_data_7_0_lsb 0
+#define xd_p_reg_ofdmtolnk_data_15_8 (*(volatile byte xdata *) 0xF6A9)
+#define p_reg_ofdmtolnk_data_15_8 0xF6A9
+#define reg_ofdmtolnk_data_15_8_pos 0
+#define reg_ofdmtolnk_data_15_8_len 8
+#define reg_ofdmtolnk_data_15_8_lsb 8
+#define xd_p_reg_ofdmtolnk_data_23_16 (*(volatile byte xdata *) 0xF6AA)
+#define p_reg_ofdmtolnk_data_23_16 0xF6AA
+#define reg_ofdmtolnk_data_23_16_pos 0
+#define reg_ofdmtolnk_data_23_16_len 8
+#define reg_ofdmtolnk_data_23_16_lsb 16
+#define xd_p_reg_ofdmtolnk_data_31_24 (*(volatile byte xdata *) 0xF6AB)
+#define p_reg_ofdmtolnk_data_31_24 0xF6AB
+#define reg_ofdmtolnk_data_31_24_pos 0
+#define reg_ofdmtolnk_data_31_24_len 8
+#define reg_ofdmtolnk_data_31_24_lsb 24
+#define xd_p_reg_ofdmtolnk_data_39_32 (*(volatile byte xdata *) 0xF6AC)
+#define p_reg_ofdmtolnk_data_39_32 0xF6AC
+#define reg_ofdmtolnk_data_39_32_pos 0
+#define reg_ofdmtolnk_data_39_32_len 8
+#define reg_ofdmtolnk_data_39_32_lsb 32
+#define xd_p_reg_ofdmtolnk_data_47_40 (*(volatile byte xdata *) 0xF6AD)
+#define p_reg_ofdmtolnk_data_47_40 0xF6AD
+#define reg_ofdmtolnk_data_47_40_pos 0
+#define reg_ofdmtolnk_data_47_40_len 8
+#define reg_ofdmtolnk_data_47_40_lsb 40
+#define xd_p_reg_ofdmtolnk_data_55_48 (*(volatile byte xdata *) 0xF6AE)
+#define p_reg_ofdmtolnk_data_55_48 0xF6AE
+#define reg_ofdmtolnk_data_55_48_pos 0
+#define reg_ofdmtolnk_data_55_48_len 8
+#define reg_ofdmtolnk_data_55_48_lsb 48
+#define xd_p_reg_ofdmtolnk_data_63_56 (*(volatile byte xdata *) 0xF6AF)
+#define p_reg_ofdmtolnk_data_63_56 0xF6AF
+#define reg_ofdmtolnk_data_63_56_pos 0
+#define reg_ofdmtolnk_data_63_56_len 8
+#define reg_ofdmtolnk_data_63_56_lsb 56
+#define xd_p_reg_mon51_flag (*(volatile byte xdata *) 0xF6B0)
+#define p_reg_mon51_flag 0xF6B0
+#define reg_mon51_flag_pos 0
+#define reg_mon51_flag_len 1
+#define reg_mon51_flag_lsb 0
+#define xd_p_reg_force_mon51 (*(volatile byte xdata *) 0xF6B1)
+#define p_reg_force_mon51 0xF6B1
+#define reg_force_mon51_pos 0
+#define reg_force_mon51_len 1
+#define reg_force_mon51_lsb 0
+#define xd_p_reg_which_cpu (*(volatile byte xdata *) 0xF6B2)
+#define p_reg_which_cpu 0xF6B2
+#define reg_which_cpu_pos 0
+#define reg_which_cpu_len 1
+#define reg_which_cpu_lsb 0
+#define xd_p_reg_program_ofdm_code_ready (*(volatile byte xdata *) 0xF6B3)
+#define p_reg_program_ofdm_code_ready 0xF6B3
+#define reg_program_ofdm_code_ready_pos 0
+#define reg_program_ofdm_code_ready_len 1
+#define reg_program_ofdm_code_ready_lsb 0
+#define xd_p_reg_link_wr_ofdm_en (*(volatile byte xdata *) 0xF6B3)
+#define p_reg_link_wr_ofdm_en 0xF6B3
+#define reg_link_wr_ofdm_en_pos 1
+#define reg_link_wr_ofdm_en_len 1
+#define reg_link_wr_ofdm_en_lsb 0
+#define xd_p_reg_i2c_mode (*(volatile byte xdata *) 0xF6B4)
+#define p_reg_i2c_mode 0xF6B4
+#define reg_i2c_mode_pos 0
+#define reg_i2c_mode_len 1
+#define reg_i2c_mode_lsb 0
+#define xd_p_reg_sw_reset_sdio (*(volatile byte xdata *) 0xF6B4)
+#define p_reg_sw_reset_sdio 0xF6B4
+#define reg_sw_reset_sdio_pos 1
+#define reg_sw_reset_sdio_len 1
+#define reg_sw_reset_sdio_lsb 0
+#define xd_p_reg_debug_mpefec_sel (*(volatile byte xdata *) 0xF6B4)
+#define p_reg_debug_mpefec_sel 0xF6B4
+#define reg_debug_mpefec_sel_pos 2
+#define reg_debug_mpefec_sel_len 1
+#define reg_debug_mpefec_sel_lsb 0
+#define xd_p_reg_lnk_dynamic_clk (*(volatile byte xdata *) 0xF6B4)
+#define p_reg_lnk_dynamic_clk 0xF6B4
+#define reg_lnk_dynamic_clk_pos 3
+#define reg_lnk_dynamic_clk_len 1
+#define reg_lnk_dynamic_clk_lsb 0
+#define xd_p_reg_lnk_free_clk (*(volatile byte xdata *) 0xF6B4)
+#define p_reg_lnk_free_clk 0xF6B4
+#define reg_lnk_free_clk_pos 4
+#define reg_lnk_free_clk_len 1
+#define reg_lnk_free_clk_lsb 0
+#define xd_p_reg_i2c_sample_rate_up_en (*(volatile byte xdata *) 0xF6B4)
+#define p_reg_i2c_sample_rate_up_en 0xF6B4
+#define reg_i2c_sample_rate_up_en_pos 5
+#define reg_i2c_sample_rate_up_en_len 1
+#define reg_i2c_sample_rate_up_en_lsb 0
+#define xd_p_reg_i2c_start_patch (*(volatile byte xdata *) 0xF6B4)
+#define p_reg_i2c_start_patch 0xF6B4
+#define reg_i2c_start_patch_pos 6
+#define reg_i2c_start_patch_len 1
+#define reg_i2c_start_patch_lsb 0
+#define xd_p_reg_link_i2cs_msb (*(volatile byte xdata *) 0xF6B5)
+#define p_reg_link_i2cs_msb 0xF6B5
+#define reg_link_i2cs_msb_pos 1
+#define reg_link_i2cs_msb_len 1
+#define reg_link_i2cs_msb_lsb 0
+#define xd_p_reg_link_ofsm_dbg_en (*(volatile byte xdata *) 0xF6B5)
+#define p_reg_link_ofsm_dbg_en 0xF6B5
+#define reg_link_ofsm_dbg_en_pos 4
+#define reg_link_ofsm_dbg_en_len 1
+#define reg_link_ofsm_dbg_en_lsb 0
+#define xd_p_reg_link_i2c_dbg_sel (*(volatile byte xdata *) 0xF6B5)
+#define p_reg_link_i2c_dbg_sel 0xF6B5
+#define reg_link_i2c_dbg_sel_pos 5
+#define reg_link_i2c_dbg_sel_len 1
+#define reg_link_i2c_dbg_sel_lsb 0
+#define xd_p_reg_fast_slow_train (*(volatile byte xdata *) 0xF6DD)
+#define p_reg_fast_slow_train 0xF6DD
+#define xd_p_reg_lnk2ofdm_int (*(volatile byte xdata *) 0xF6DE)
+#define p_reg_lnk2ofdm_int 0xF6DE
+#define reg_lnk2ofdm_int_pos 0
+#define reg_lnk2ofdm_int_len 1
+#define reg_lnk2ofdm_int_lsb 0
+#define xd_p_reg_ofdm2lnk_int (*(volatile byte xdata *) 0xF6DF)
+#define p_reg_ofdm2lnk_int 0xF6DF
+#define reg_ofdm2lnk_int_pos 0
+#define reg_ofdm2lnk_int_len 1
+#define reg_ofdm2lnk_int_lsb 0
+#define xd_p_reg_load_ofdm_reg (*(volatile byte xdata *) 0xF6E4)
+#define p_reg_load_ofdm_reg 0xF6E4
+#define xd_p_link_ofsm_cmd_reg (*(volatile byte xdata *) 0xF6EA)
+#define p_link_ofsm_cmd_reg 0xF6EA
+#define link_ofsm_cmd_reg_pos 0
+#define link_ofsm_cmd_reg_len 8
+#define link_ofsm_cmd_reg_lsb 0
+#define xd_p_link_ofsm_addr_reg_h (*(volatile byte xdata *) 0xF6EB)
+#define p_link_ofsm_addr_reg_h 0xF6EB
+#define link_ofsm_addr_reg_h_pos 0
+#define link_ofsm_addr_reg_h_len 8
+#define link_ofsm_addr_reg_h_lsb 0
+#define xd_p_link_ofsm_addr_reg_l (*(volatile byte xdata *) 0xF6EC)
+#define p_link_ofsm_addr_reg_l 0xF6EC
+#define link_ofsm_addr_reg_l_pos 0
+#define link_ofsm_addr_reg_l_len 8
+#define link_ofsm_addr_reg_l_lsb 0
+#define xd_p_link_ofsm_data_reg_0 (*(volatile byte xdata *) 0xF6ED)
+#define p_link_ofsm_data_reg_0 0xF6ED
+#define link_ofsm_data_reg_0_pos 0
+#define link_ofsm_data_reg_0_len 8
+#define link_ofsm_data_reg_0_lsb 0
+#define xd_p_link_ofsm_data_reg_1 (*(volatile byte xdata *) 0xF6EE)
+#define p_link_ofsm_data_reg_1 0xF6EE
+#define link_ofsm_data_reg_1_pos 0
+#define link_ofsm_data_reg_1_len 8
+#define link_ofsm_data_reg_1_lsb 0
+#define xd_p_link_ofsm_data_reg_2 (*(volatile byte xdata *) 0xF6EF)
+#define p_link_ofsm_data_reg_2 0xF6EF
+#define link_ofsm_data_reg_2_pos 0
+#define link_ofsm_data_reg_2_len 8
+#define link_ofsm_data_reg_2_lsb 0
+#define xd_p_link_ofsm_data_reg_3 (*(volatile byte xdata *) 0xF6F0)
+#define p_link_ofsm_data_reg_3 0xF6F0
+#define link_ofsm_data_reg_3_pos 0
+#define link_ofsm_data_reg_3_len 8
+#define link_ofsm_data_reg_3_lsb 0
+#define xd_p_link_ofsm_data_reg_4 (*(volatile byte xdata *) 0xF6F1)
+#define p_link_ofsm_data_reg_4 0xF6F1
+#define link_ofsm_data_reg_4_pos 0
+#define link_ofsm_data_reg_4_len 8
+#define link_ofsm_data_reg_4_lsb 0
+#define xd_p_link_ofsm_data_reg_5 (*(volatile byte xdata *) 0xF6F2)
+#define p_link_ofsm_data_reg_5 0xF6F2
+#define link_ofsm_data_reg_5_pos 0
+#define link_ofsm_data_reg_5_len 8
+#define link_ofsm_data_reg_5_lsb 0
+#define xd_p_link_ofsm_data_reg_6 (*(volatile byte xdata *) 0xF6F3)
+#define p_link_ofsm_data_reg_6 0xF6F3
+#define link_ofsm_data_reg_6_pos 0
+#define link_ofsm_data_reg_6_len 8
+#define link_ofsm_data_reg_6_lsb 0
+#define xd_p_link_ofsm_data_reg_7 (*(volatile byte xdata *) 0xF6F4)
+#define p_link_ofsm_data_reg_7 0xF6F4
+#define link_ofsm_data_reg_7_pos 0
+#define link_ofsm_data_reg_7_len 8
+#define link_ofsm_data_reg_7_lsb 0
+#define xd_p_link_ofsm_data_reg_8 (*(volatile byte xdata *) 0xF6F5)
+#define p_link_ofsm_data_reg_8 0xF6F5
+#define link_ofsm_data_reg_8_pos 0
+#define link_ofsm_data_reg_8_len 8
+#define link_ofsm_data_reg_8_lsb 0
+#define xd_p_link_ofsm_data_reg_9 (*(volatile byte xdata *) 0xF6F6)
+#define p_link_ofsm_data_reg_9 0xF6F6
+#define link_ofsm_data_reg_9_pos 0
+#define link_ofsm_data_reg_9_len 8
+#define link_ofsm_data_reg_9_lsb 0
+#define xd_p_link_ofsm_data_reg_10 (*(volatile byte xdata *) 0xF6F7)
+#define p_link_ofsm_data_reg_10 0xF6F7
+#define link_ofsm_data_reg_10_pos 0
+#define link_ofsm_data_reg_10_len 8
+#define link_ofsm_data_reg_10_lsb 0
+#define xd_p_link_ofsm_data_reg_11 (*(volatile byte xdata *) 0xF6F8)
+#define p_link_ofsm_data_reg_11 0xF6F8
+#define link_ofsm_data_reg_11_pos 0
+#define link_ofsm_data_reg_11_len 8
+#define link_ofsm_data_reg_11_lsb 0
+#define xd_p_link_ofsm_data_reg_12 (*(volatile byte xdata *) 0xF6F9)
+#define p_link_ofsm_data_reg_12 0xF6F9
+#define link_ofsm_data_reg_12_pos 0
+#define link_ofsm_data_reg_12_len 8
+#define link_ofsm_data_reg_12_lsb 0
+#define xd_p_link_ofsm_data_reg_13 (*(volatile byte xdata *) 0xF6FA)
+#define p_link_ofsm_data_reg_13 0xF6FA
+#define link_ofsm_data_reg_13_pos 0
+#define link_ofsm_data_reg_13_len 8
+#define link_ofsm_data_reg_13_lsb 0
+#define xd_p_link_ofsm_data_reg_14 (*(volatile byte xdata *) 0xF6FB)
+#define p_link_ofsm_data_reg_14 0xF6FB
+#define link_ofsm_data_reg_14_pos 0
+#define link_ofsm_data_reg_14_len 8
+#define link_ofsm_data_reg_14_lsb 0
+#define xd_p_link_ofsm_data_reg_15 (*(volatile byte xdata *) 0xF6FC)
+#define p_link_ofsm_data_reg_15 0xF6FC
+#define link_ofsm_data_reg_15_pos 0
+#define link_ofsm_data_reg_15_len 8
+#define link_ofsm_data_reg_15_lsb 0
+#define xd_p_reg_debug_mux (*(volatile byte xdata *) 0xF6FE)
+#define p_reg_debug_mux 0xF6FE
+#define reg_debug_mux_pos 3
+#define reg_debug_mux_len 1
+#define reg_debug_mux_lsb 0
+#define xd_p_reg_top_gpioon0 (*(volatile byte xdata *) 0xF6FF)
+#define p_reg_top_gpioon0 0xF6FF
+#define reg_top_gpioon0_pos 0
+#define reg_top_gpioon0_len 1
+#define reg_top_gpioon0_lsb 0
+#define xd_p_reg_p_dmb_phy_is_dvb (*(volatile byte xdata *) 0xDC31)
+#define p_reg_p_dmb_phy_is_dvb 0xDC31
+#define reg_p_dmb_phy_is_dvb_pos 0
+#define reg_p_dmb_phy_is_dvb_len 1
+#define reg_p_dmb_phy_is_dvb_lsb 0
+#define xd_p_reg_p_dmb_xt_reset (*(volatile byte xdata *) 0xDC32)
+#define p_reg_p_dmb_xt_reset 0xDC32
+#define reg_p_dmb_xt_reset_pos 0
+#define reg_p_dmb_xt_reset_len 1
+#define reg_p_dmb_xt_reset_lsb 0
+#define xd_p_reg_p_dmb_sw_reset (*(volatile byte xdata *) 0xDC33)
+#define p_reg_p_dmb_sw_reset 0xDC33
+#define reg_p_dmb_sw_reset_pos 0
+#define reg_p_dmb_sw_reset_len 1
+#define reg_p_dmb_sw_reset_lsb 0
diff --git a/api/standard.c b/api/standard.c
new file mode 100644
index 0000000..bcbe2fc
--- /dev/null
+++ b/api/standard.c
@@ -0,0 +1,4093 @@
+#include "standard.h"
+#include "cmd.h"
+#include "user.h"
+
+
+#include "firmware.h"
+
+#ifndef Firmware_FORMAT_VER1
+#define Firmware_FORMAT_VER1 1
+#define Firmware_FORMAT_VER2 0
+#endif
+
+#if (Firmware_FORMAT_VER1 == 2) && (Firmware_FORMAT_VER2 == 0)
+static Byte* Firmware_partitions = Firmware_new_partitions;
+#endif
+
+#if (Firmware_FORMAT_VER1 > 2) || ((Firmware_FORMAT_VER1 == 2) && (Firmware_FORMAT_VER2 > 0))
+#error API version too old. Please update API version.
+#endif
+
+#define Standard_MAX_BIT 8
+#define Standard_MAX_CLOCK 12
+#define Standard_MAX_BAND 3
+
+
+Byte Chip2_I2c_address = User_I2C_ADDRESS;
+
+const Byte Standard_bitMask[Standard_MAX_BIT] = {
+ 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF
+};
+
+const ClockTable Standard_clockTable[Standard_MAX_CLOCK] =
+{
+ { 20480, 20480000 }, /** FPGA */
+ { 16384, 20480000 }, /** 16.38MHz */
+ { 20480, 20480000 }, /** 20.48MHz */
+ { 36000, 20250000 }, /** 36.00MHz */
+ { 30000, 20156250 }, /** 30.00MHz */
+ { 26000, 20583333 }, /** 26.00MHz */
+ { 28000, 20416667 }, /** 28.00MHz */
+ { 32000, 20500000 }, /** 32.00MHz */
+ { 34000, 20187500 }, /** 34.00MHz */
+ { 24000, 20500000 }, /** 24.00MHz */
+ { 22000, 20625000 }, /** 22.00MHz */
+ { 12000, 20250000 } /** 12.00MHz */
+};
+
+const BandTable Standard_bandTable[Standard_MAX_BAND] =
+{
+ { 174000, 230000 }, /** VHF */
+ { 350000, 900000 }, /** UHF */
+ { 1670000, 1680000 } /** L-BAND */
+};
+
+/** local functions */
+
+#if User_USE_DRIVER
+Dword Standard_getDriver (
+ IN Demodulator* demodulator,
+ OUT Handle* handle
+) {
+ Dword error = Error_NO_ERROR;
+ TCHAR registry1[100] = TEXT("\\Drivers\\SDCARD\\ClientDrivers\\Custom\\MANF-0296-CARDID-5347-FUNC-1");
+ TCHAR registry2[100] = TEXT("\\Drivers\\SDCARD\\ClientDrivers\\Custom\\MANF-03BE-CARDID-0001-FUNC-1");
+ TCHAR name[256];
+ TCHAR shortBuffer[32];
+ DWORD len = 16;
+ DWORD i;
+ HKEY hKey, hSubKey;
+ DWORD size;
+
+ /** Open the HKLM\Drivers\Active key in registry */
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("Drivers\\Active"), 0, 0, &hKey) == ERROR_SUCCESS) {
+ /** Get subkeys count */
+ if (RegQueryInfoKey(hKey, NULL, NULL, NULL, &i, NULL, NULL, NULL, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) {
+ /** Browse subkeys in reverse order (pluggable cards are not at the beginning of the list !) */
+ while (i) {
+ i--;
+ /** Select the subkey */
+ size = sizeof(shortBuffer);
+ if (RegEnumKeyEx(hKey, i, shortBuffer, &size, NULL, NULL, NULL, NULL) == ERROR_SUCCESS) {
+ /** Open the subkey */
+ shortBuffer[sizeof(shortBuffer)-1] = '\0';
+ _stprintf(name, TEXT("Drivers\\Active\\%s"), shortBuffer);
+ if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, name, 0, 0, &hSubKey) == ERROR_SUCCESS) {
+ size = sizeof(name);
+ if (RegQueryValueEx(hSubKey, TEXT("Key"), NULL, NULL, (LPBYTE) name, &size) == ERROR_SUCCESS) {
+ if ((_tcsncmp(name, registry1, _tcsclen(registry1)) == 0) || (_tcsncmp(name, registry2, _tcsclen(registry2)) == 0)) {
+ /** This is the good PnPID, now get the serial com in the "Name" value */
+ size = len;
+ if (RegQueryValueEx(hSubKey, TEXT("Name"), NULL, NULL, (LPBYTE) name, &size) == ERROR_SUCCESS) {
+ /** Found ! */
+ RegCloseKey(hSubKey);
+ RegCloseKey(hKey);
+ /** OK */
+ goto exit;
+ }
+ }
+ }
+
+ /** Close the subkey */
+ RegCloseKey(hSubKey);
+ }
+ }
+ }
+ }
+ }
+ /** Close the key */
+ RegCloseKey(hKey);
+
+exit :
+ *handle = CreateFile (name, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
+
+ return (error);
+}
+#endif
+
+Dword Standard_divider (
+ IN Demodulator* demodulator,
+ IN Dword a,
+ IN Dword b,
+ IN Dword x
+) {
+ Dword answer = 0;
+ Dword c = 0;
+ Dword i = 0;
+
+ if (a > b) {
+ c = a / b;
+ a = a - c * b;
+ }
+
+ for (i = 0; i < x; i++) {
+ if (a >= b) {
+ answer += 1;
+ a-=b;
+ }
+ a <<= 1;
+ answer <<= 1;
+ }
+
+ answer = (c << (Long) x) + answer;
+
+ return (answer);
+}
+
+
+Dword Standard_computeCrystal (
+ IN Demodulator* demodulator,
+ IN Long crystalFrequency, /** Crystal frequency (Hz) */
+ OUT Dword* crystal
+) {
+ Dword error = Error_NO_ERROR;
+
+ *crystal = (Long) Standard_divider (demodulator, (Dword) crystalFrequency, 1000000ul, 19ul);
+
+ return (error);
+}
+
+
+Dword Standard_computeAdc (
+ IN Demodulator* demodulator,
+ IN Long adcFrequency, /** ADC frequency (Hz) */
+ OUT Dword* adc
+)
+{
+ Dword error = Error_NO_ERROR;
+
+ *adc = (Long) Standard_divider (demodulator, (Dword) adcFrequency, 1000000ul, 19ul);
+
+ return (error);
+}
+
+
+Dword Standard_computeFcw (
+ IN Demodulator* demodulator,
+ IN Long adcFrequency, /** ADC frequency (Hz) */
+ IN Long ifFrequency, /** IF frequency (Hz) */
+ IN Bool inversion, /** RF spectrum inversion */
+ OUT Dword* fcw
+) {
+ Dword error = Error_NO_ERROR;
+ Long ifFreq;
+ Long adcFreq;
+ Long adcFreqHalf;
+ Long adcFreqSample;
+ Long invBfs;
+ Long controlWord;
+ Byte adcMultiplier;
+
+ adcFreq = adcFrequency;
+ ifFreq = ifFrequency;
+ adcFreqHalf = adcFreq / 2;
+
+ if (inversion == True)
+ ifFreq = -1 * ifFreq;
+
+ adcFreqSample = ifFreq;
+
+ if (adcFreqSample >= 0)
+ invBfs = 1;
+ else {
+ invBfs = -1;
+ adcFreqSample = adcFreqSample * -1;
+ }
+
+ while (adcFreqSample > adcFreqHalf)
+ adcFreqSample = adcFreqSample - adcFreq;
+
+ /** Sample, spectrum at positive frequency */
+ if(adcFreqSample >= 0)
+ invBfs = invBfs * -1;
+ else {
+ invBfs = invBfs * 1;
+ adcFreqSample = adcFreqSample * (-1); /** Absolute value */
+ }
+
+ controlWord = (Long) Standard_divider (demodulator, (Dword) adcFreqSample, (Dword) adcFreq, 23ul);
+
+ if (invBfs == -1) {
+ controlWord *= -1;
+ }
+
+ /** Get ADC multiplier */
+ error = Standard_readRegister (demodulator, 0, Processor_OFDM, adcx2, &adcMultiplier);
+ if (error) goto exit;
+
+ if (adcMultiplier == 1) {
+ controlWord /= 2;
+ }
+
+ *fcw = controlWord & 0x7FFFFF;
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_programFcw (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Long shift, /** Hz */
+ IN Dword adcFrequency /** Hz */
+)
+{
+ Dword error = Error_NO_ERROR;
+ Dword fcw;
+ Long fcwShift;
+ Byte temp0;
+ Byte temp1;
+ Byte temp2;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Get shift freq */
+ fcwShift = (shift * 8 * 1024 + (Long) adcFrequency / (2 * 1024)) / (Long) adcFrequency * 1024;
+
+ fcw = (Dword) ((Long) ganymede->fcw + fcwShift);
+
+ temp0 = (Byte) (fcw & 0x000000FF);
+ temp1 = (Byte) ((fcw & 0x0000FF00) >> 8);
+ temp2 = (Byte) ((fcw & 0x007F0000) >> 16);
+
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, p_reg_bfs_fcw_7_0, temp0);
+ if (error) goto exit;
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, p_reg_bfs_fcw_15_8, temp1);
+ if (error) goto exit;
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, p_reg_bfs_fcw_22_16, temp2);
+ if (error) goto exit;
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_maskDcaOutput (
+ IN Demodulator* demodulator
+) {
+ Dword error = Error_NO_ERROR;
+ Byte i;
+ Bool dcaValid = False;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if ((ganymede->chipNumber > 1) && (ganymede->architecture == Architecture_DCA))
+ dcaValid = True;
+
+ if (dcaValid == True) {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_dca_upper_out_en, reg_dca_upper_out_en_pos, reg_dca_upper_out_en_len, 0);
+ if (error) goto exit;
+ }
+ User_delay (demodulator, 5);
+ }
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_sendCommand (
+ IN Demodulator* demodulator,
+ OUT Word command,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword writeBufferLength,
+ IN Byte* writeBuffer,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->cmdDescription->sendCommand != NULL) {
+ error = ganymede->cmdDescription->sendCommand (demodulator, command, chip, processor, writeBufferLength, writeBuffer, readBufferLength, readBuffer);
+ }
+#endif
+ return (error);
+}
+
+
+Dword Standard_selectBandwidth (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth, /** KHz */
+ IN Dword adcFrequency /** Hz, ex: 20480000 */
+) {
+ Dword error = Error_NO_ERROR;
+ Dword coeff1_2048Nu;
+ Dword coeff1_4096Nu;
+ Dword coeff1_8191Nu;
+ Dword coeff1_8192Nu;
+ Dword coeff1_8193Nu;
+ Dword coeff2_2k;
+ Dword coeff2_4k;
+ Dword coeff2_8k;
+ Word bfsfcw_fftindex_ratio;
+ Word fftindex_bfsfcw_ratio;
+
+ Byte temp0;
+ Byte temp1;
+ Byte temp2;
+ Byte temp3;
+ Byte buffer[36];
+ Byte bw;
+ Byte adcMultiplier;
+ Ganymede* ganymede;
+
+ if (bandwidth == 5000)
+ bw = 3;
+ else if (bandwidth == 6000)
+ bw = 0;
+ else if (bandwidth == 7000)
+ bw = 1;
+ else if (bandwidth == 8000)
+ bw = 2;
+ else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+
+ ganymede = (Ganymede*) demodulator;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, g_reg_bw, reg_bw_pos, reg_bw_len, bw);
+ if (error) goto exit;
+
+ /** Program CFOE */
+ if (adcFrequency == 20156250) {
+ if (bandwidth == 5000) {
+ coeff1_2048Nu = 0x02449b5c;
+ coeff1_4096Nu = 0x01224dae;
+ coeff1_8191Nu = 0x00912b60;
+ coeff1_8192Nu = 0x009126d7;
+ coeff1_8193Nu = 0x0091224e;
+ coeff2_2k = 0x01224dae;
+ coeff2_4k = 0x009126d7;
+ coeff2_8k = 0x0048936b;
+ bfsfcw_fftindex_ratio = 0x0387;
+ fftindex_bfsfcw_ratio = 0x0122;
+ } else if (bandwidth == 6000) {
+ coeff1_2048Nu = 0x02b8ba6e;
+ coeff1_4096Nu = 0x015c5d37;
+ coeff1_8191Nu = 0x00ae340d;
+ coeff1_8192Nu = 0x00ae2e9b;
+ coeff1_8193Nu = 0x00ae292a;
+ coeff2_2k = 0x015c5d37;
+ coeff2_4k = 0x00ae2e9b;
+ coeff2_8k = 0x0057174e;
+ bfsfcw_fftindex_ratio = 0x02f1;
+ fftindex_bfsfcw_ratio = 0x015c;
+ } else if (bandwidth == 7000) {
+ coeff1_2048Nu = 0x032cd980;
+ coeff1_4096Nu = 0x01966cc0;
+ coeff1_8191Nu = 0x00cb3cba;
+ coeff1_8192Nu = 0x00cb3660;
+ coeff1_8193Nu = 0x00cb3007;
+ coeff2_2k = 0x01966cc0;
+ coeff2_4k = 0x00cb3660;
+ coeff2_8k = 0x00659b30;
+ bfsfcw_fftindex_ratio = 0x0285;
+ fftindex_bfsfcw_ratio = 0x0196;
+ } else if (bandwidth == 8000) {
+ coeff1_2048Nu = 0x03a0f893;
+ coeff1_4096Nu = 0x01d07c49;
+ coeff1_8191Nu = 0x00e84567;
+ coeff1_8192Nu = 0x00e83e25;
+ coeff1_8193Nu = 0x00e836e3;
+ coeff2_2k = 0x01d07c49;
+ coeff2_4k = 0x00e83e25;
+ coeff2_8k = 0x00741f12;
+ bfsfcw_fftindex_ratio = 0x0234;
+ fftindex_bfsfcw_ratio = 0x01d0;
+ } else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+ } else if (adcFrequency == 20187500) {
+ if (bandwidth == 5000) {
+ coeff1_2048Nu = 0x0243b546;
+ coeff1_4096Nu = 0x0121daa3;
+ coeff1_8191Nu = 0x0090f1d9;
+ coeff1_8192Nu = 0x0090ed51;
+ coeff1_8193Nu = 0x0090e8ca;
+ coeff2_2k = 0x0121daa3;
+ coeff2_4k = 0x0090ed51;
+ coeff2_8k = 0x004876a9;
+ bfsfcw_fftindex_ratio = 0x0388;
+ fftindex_bfsfcw_ratio = 0x0122;
+ } else if (bandwidth == 6000) {
+ coeff1_2048Nu = 0x02b7a654;
+ coeff1_4096Nu = 0x015bd32a;
+ coeff1_8191Nu = 0x00adef04;
+ coeff1_8192Nu = 0x00ade995;
+ coeff1_8193Nu = 0x00ade426;
+ coeff2_2k = 0x015bd32a;
+ coeff2_4k = 0x00ade995;
+ coeff2_8k = 0x0056f4ca;
+ bfsfcw_fftindex_ratio = 0x02f2;
+ fftindex_bfsfcw_ratio = 0x015c;
+ } else if (bandwidth == 7000) {
+ coeff1_2048Nu = 0x032b9761;
+ coeff1_4096Nu = 0x0195cbb1;
+ coeff1_8191Nu = 0x00caec30;
+ coeff1_8192Nu = 0x00cae5d8;
+ coeff1_8193Nu = 0x00cadf81;
+ coeff2_2k = 0x0195cbb1;
+ coeff2_4k = 0x00cae5d8;
+ coeff2_8k = 0x006572ec;
+ bfsfcw_fftindex_ratio = 0x0286;
+ fftindex_bfsfcw_ratio = 0x0196;
+ } else if (bandwidth == 8000) {
+ coeff1_2048Nu = 0x039f886f;
+ coeff1_4096Nu = 0x01cfc438;
+ coeff1_8191Nu = 0x00e7e95b;
+ coeff1_8192Nu = 0x00e7e21c;
+ coeff1_8193Nu = 0x00e7dadd;
+ coeff2_2k = 0x01cfc438;
+ coeff2_4k = 0x00e7e21c;
+ coeff2_8k = 0x0073f10e;
+ bfsfcw_fftindex_ratio = 0x0235;
+ fftindex_bfsfcw_ratio = 0x01d0;
+ } else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+ } else if (adcFrequency == 20250000) {
+ if (bandwidth == 5000) {
+ coeff1_2048Nu = 0x0241eb3b;
+ coeff1_4096Nu = 0x0120f59e;
+ coeff1_8191Nu = 0x00907f53;
+ coeff1_8192Nu = 0x00907acf;
+ coeff1_8193Nu = 0x0090764b;
+ coeff2_2k = 0x0120f59e;
+ coeff2_4k = 0x00907acf;
+ coeff2_8k = 0x00483d67;
+ bfsfcw_fftindex_ratio = 0x038b;
+ fftindex_bfsfcw_ratio = 0x0121;
+ } else if (bandwidth == 6000) {
+ coeff1_2048Nu = 0x02b580ad;
+ coeff1_4096Nu = 0x015ac057;
+ coeff1_8191Nu = 0x00ad6597;
+ coeff1_8192Nu = 0x00ad602b;
+ coeff1_8193Nu = 0x00ad5ac1;
+ coeff2_2k = 0x015ac057;
+ coeff2_4k = 0x00ad602b;
+ coeff2_8k = 0x0056b016;
+ bfsfcw_fftindex_ratio = 0x02f4;
+ fftindex_bfsfcw_ratio = 0x015b;
+ } else if (bandwidth == 7000) {
+ coeff1_2048Nu = 0x03291620;
+ coeff1_4096Nu = 0x01948b10;
+ coeff1_8191Nu = 0x00ca4bda;
+ coeff1_8192Nu = 0x00ca4588;
+ coeff1_8193Nu = 0x00ca3f36;
+ coeff2_2k = 0x01948b10;
+ coeff2_4k = 0x00ca4588;
+ coeff2_8k = 0x006522c4;
+ bfsfcw_fftindex_ratio = 0x0288;
+ fftindex_bfsfcw_ratio = 0x0195;
+ } else if (bandwidth == 8000) {
+ coeff1_2048Nu = 0x039cab92;
+ coeff1_4096Nu = 0x01ce55c9;
+ coeff1_8191Nu = 0x00e7321e;
+ coeff1_8192Nu = 0x00e72ae4;
+ coeff1_8193Nu = 0x00e723ab;
+ coeff2_2k = 0x01ce55c9;
+ coeff2_4k = 0x00e72ae4;
+ coeff2_8k = 0x00739572;
+ bfsfcw_fftindex_ratio = 0x0237;
+ fftindex_bfsfcw_ratio = 0x01ce;
+ } else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+ } else if (adcFrequency == 20583333) {
+ if (bandwidth == 5000) {
+ coeff1_2048Nu = 0x02388f54;
+ coeff1_4096Nu = 0x011c47aa;
+ coeff1_8191Nu = 0x008e2846;
+ coeff1_8192Nu = 0x008e23d5;
+ coeff1_8193Nu = 0x008e1f64;
+ coeff2_2k = 0x011c47aa;
+ coeff2_4k = 0x008e23d5;
+ coeff2_8k = 0x004711ea;
+ bfsfcw_fftindex_ratio = 0x039a;
+ fftindex_bfsfcw_ratio = 0x011c;
+ } else if (bandwidth == 6000) {
+ coeff1_2048Nu = 0x02aa4598;
+ coeff1_4096Nu = 0x015522cc;
+ coeff1_8191Nu = 0x00aa96bb;
+ coeff1_8192Nu = 0x00aa9166;
+ coeff1_8193Nu = 0x00aa8c12;
+ coeff2_2k = 0x015522cc;
+ coeff2_4k = 0x00aa9166;
+ coeff2_8k = 0x005548b3;
+ bfsfcw_fftindex_ratio = 0x0300;
+ fftindex_bfsfcw_ratio = 0x0155;
+ } else if (bandwidth == 7000) {
+ coeff1_2048Nu = 0x031bfbdc;
+ coeff1_4096Nu = 0x018dfdee;
+ coeff1_8191Nu = 0x00c7052f;
+ coeff1_8192Nu = 0x00c6fef7;
+ coeff1_8193Nu = 0x00c6f8bf;
+ coeff2_2k = 0x018dfdee;
+ coeff2_4k = 0x00c6fef7;
+ coeff2_8k = 0x00637f7b;
+ bfsfcw_fftindex_ratio = 0x0293;
+ fftindex_bfsfcw_ratio = 0x018e;
+ } else if (bandwidth == 8000) {
+ coeff1_2048Nu = 0x038db21f;
+ coeff1_4096Nu = 0x01c6d910;
+ coeff1_8191Nu = 0x00e373a3;
+ coeff1_8192Nu = 0x00e36c88;
+ coeff1_8193Nu = 0x00e3656d;
+ coeff2_2k = 0x01c6d910;
+ coeff2_4k = 0x00e36c88;
+ coeff2_8k = 0x0071b644;
+ bfsfcw_fftindex_ratio = 0x0240;
+ fftindex_bfsfcw_ratio = 0x01c7;
+ } else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+ } else if (adcFrequency == 20416667) {
+ if (bandwidth == 5000) {
+ coeff1_2048Nu = 0x023d337f;
+ coeff1_4096Nu = 0x011e99c0;
+ coeff1_8191Nu = 0x008f515a;
+ coeff1_8192Nu = 0x008f4ce0;
+ coeff1_8193Nu = 0x008f4865;
+ coeff2_2k = 0x011e99c0;
+ coeff2_4k = 0x008f4ce0;
+ coeff2_8k = 0x0047a670;
+ bfsfcw_fftindex_ratio = 0x0393;
+ fftindex_bfsfcw_ratio = 0x011f;
+ } else if (bandwidth == 6000) {
+ coeff1_2048Nu = 0x02afd765;
+ coeff1_4096Nu = 0x0157ebb3;
+ coeff1_8191Nu = 0x00abfb39;
+ coeff1_8192Nu = 0x00abf5d9;
+ coeff1_8193Nu = 0x00abf07a;
+ coeff2_2k = 0x0157ebb3;
+ coeff2_4k = 0x00abf5d9;
+ coeff2_8k = 0x0055faed;
+ bfsfcw_fftindex_ratio = 0x02fa;
+ fftindex_bfsfcw_ratio = 0x0158;
+ } else if (bandwidth == 7000) {
+ coeff1_2048Nu = 0x03227b4b;
+ coeff1_4096Nu = 0x01913da6;
+ coeff1_8191Nu = 0x00c8a518;
+ coeff1_8192Nu = 0x00c89ed3;
+ coeff1_8193Nu = 0x00c8988e;
+ coeff2_2k = 0x01913da6;
+ coeff2_4k = 0x00c89ed3;
+ coeff2_8k = 0x00644f69;
+ bfsfcw_fftindex_ratio = 0x028d;
+ fftindex_bfsfcw_ratio = 0x0191;
+ } else if (bandwidth == 8000) {
+ coeff1_2048Nu = 0x03951f32;
+ coeff1_4096Nu = 0x01ca8f99;
+ coeff1_8191Nu = 0x00e54ef7;
+ coeff1_8192Nu = 0x00e547cc;
+ coeff1_8193Nu = 0x00e540a2;
+ coeff2_2k = 0x01ca8f99;
+ coeff2_4k = 0x00e547cc;
+ coeff2_8k = 0x0072a3e6;
+ bfsfcw_fftindex_ratio = 0x023c;
+ fftindex_bfsfcw_ratio = 0x01cb;
+ } else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+ } else if (adcFrequency == 20480000) {
+ if (bandwidth == 5000) {
+ coeff1_2048Nu = 0x023b6db7;
+ coeff1_4096Nu = 0x011db6db;
+ coeff1_8191Nu = 0x008edfe5;
+ coeff1_8192Nu = 0x008edb6e;
+ coeff1_8193Nu = 0x008ed6f7;
+ coeff2_2k = 0x011db6db;
+ coeff2_4k = 0x008edb6e;
+ coeff2_8k = 0x00476db7;
+ bfsfcw_fftindex_ratio = 0x0396;
+ fftindex_bfsfcw_ratio = 0x011e;
+ } else if (bandwidth == 6000) {
+ coeff1_2048Nu = 0x02adb6db;
+ coeff1_4096Nu = 0x0156db6e;
+ coeff1_8191Nu = 0x00ab7312;
+ coeff1_8192Nu = 0x00ab6db7;
+ coeff1_8193Nu = 0x00ab685c;
+ coeff2_2k = 0x0156db6e;
+ coeff2_4k = 0x00ab6db7;
+ coeff2_8k = 0x0055b6db;
+ bfsfcw_fftindex_ratio = 0x02fd;
+ fftindex_bfsfcw_ratio = 0x0157;
+ } else if (bandwidth == 7000) {
+ coeff1_2048Nu = 0x03200000;
+ coeff1_4096Nu = 0x01900000;
+ coeff1_8191Nu = 0x00c80640;
+ coeff1_8192Nu = 0x00c80000;
+ coeff1_8193Nu = 0x00c7f9c0;
+ coeff2_2k = 0x01900000;
+ coeff2_4k = 0x00c80000;
+ coeff2_8k = 0x00640000;
+ bfsfcw_fftindex_ratio = 0x028f;
+ fftindex_bfsfcw_ratio = 0x0190;
+ } else if (bandwidth == 8000) {
+ coeff1_2048Nu = 0x03924925;
+ coeff1_4096Nu = 0x01c92492;
+ coeff1_8191Nu = 0x00e4996e;
+ coeff1_8192Nu = 0x00e49249;
+ coeff1_8193Nu = 0x00e48b25;
+ coeff2_2k = 0x01c92492;
+ coeff2_4k = 0x00e49249;
+ coeff2_8k = 0x00724925;
+ bfsfcw_fftindex_ratio = 0x023d;
+ fftindex_bfsfcw_ratio = 0x01c9;
+ } else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+ } else if (adcFrequency == 20500000) {
+ if (bandwidth == 5000) {
+ coeff1_2048Nu = 0x023adeff;
+ coeff1_4096Nu = 0x011d6f80;
+ coeff1_8191Nu = 0x008ebc36;
+ coeff1_8192Nu = 0x008eb7c0;
+ coeff1_8193Nu = 0x008eb34a;
+ coeff2_2k = 0x011d6f80;
+ coeff2_4k = 0x008eb7c0;
+ coeff2_8k = 0x00475be0;
+ bfsfcw_fftindex_ratio = 0x0396;
+ fftindex_bfsfcw_ratio = 0x011d;
+ } else if (bandwidth == 6000) {
+ coeff1_2048Nu = 0x02ad0b99;
+ coeff1_4096Nu = 0x015685cc;
+ coeff1_8191Nu = 0x00ab4840;
+ coeff1_8192Nu = 0x00ab42e6;
+ coeff1_8193Nu = 0x00ab3d8c;
+ coeff2_2k = 0x015685cc;
+ coeff2_4k = 0x00ab42e6;
+ coeff2_8k = 0x0055a173;
+ bfsfcw_fftindex_ratio = 0x02fd;
+ fftindex_bfsfcw_ratio = 0x0157;
+ } else if (bandwidth == 7000) {
+ coeff1_2048Nu = 0x031f3832;
+ coeff1_4096Nu = 0x018f9c19;
+ coeff1_8191Nu = 0x00c7d44b;
+ coeff1_8192Nu = 0x00c7ce0c;
+ coeff1_8193Nu = 0x00c7c7ce;
+ coeff2_2k = 0x018f9c19;
+ coeff2_4k = 0x00c7ce0c;
+ coeff2_8k = 0x0063e706;
+ bfsfcw_fftindex_ratio = 0x0290;
+ fftindex_bfsfcw_ratio = 0x0190;
+ } else if (bandwidth == 8000) {
+ coeff1_2048Nu = 0x039164cb;
+ coeff1_4096Nu = 0x01c8b266;
+ coeff1_8191Nu = 0x00e46056;
+ coeff1_8192Nu = 0x00e45933;
+ coeff1_8193Nu = 0x00e45210;
+ coeff2_2k = 0x01c8b266;
+ coeff2_4k = 0x00e45933;
+ coeff2_8k = 0x00722c99;
+ bfsfcw_fftindex_ratio = 0x023e;
+ fftindex_bfsfcw_ratio = 0x01c9;
+ } else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+ } else if (adcFrequency == 20625000) {
+ if (bandwidth == 5000) {
+ coeff1_2048Nu = 0x02376948;
+ coeff1_4096Nu = 0x011bb4a4;
+ coeff1_8191Nu = 0x008ddec1;
+ coeff1_8192Nu = 0x008dda52;
+ coeff1_8193Nu = 0x008dd5e3;
+ coeff2_2k = 0x011bb4a4;
+ coeff2_4k = 0x008dda52;
+ coeff2_8k = 0x0046ed29;
+ bfsfcw_fftindex_ratio = 0x039c;
+ fftindex_bfsfcw_ratio = 0x011c;
+ } else if (bandwidth == 6000) {
+ coeff1_2048Nu = 0x02a8e4bd;
+ coeff1_4096Nu = 0x0154725e;
+ coeff1_8191Nu = 0x00aa3e81;
+ coeff1_8192Nu = 0x00aa392f;
+ coeff1_8193Nu = 0x00aa33de;
+ coeff2_2k = 0x0154725e;
+ coeff2_4k = 0x00aa392f;
+ coeff2_8k = 0x00551c98;
+ bfsfcw_fftindex_ratio = 0x0302;
+ fftindex_bfsfcw_ratio = 0x0154;
+ } else if (bandwidth == 7000) {
+ coeff1_2048Nu = 0x031a6032;
+ coeff1_4096Nu = 0x018d3019;
+ coeff1_8191Nu = 0x00c69e41;
+ coeff1_8192Nu = 0x00c6980c;
+ coeff1_8193Nu = 0x00c691d8;
+ coeff2_2k = 0x018d3019;
+ coeff2_4k = 0x00c6980c;
+ coeff2_8k = 0x00634c06;
+ bfsfcw_fftindex_ratio = 0x0294;
+ fftindex_bfsfcw_ratio = 0x018d;
+ } else if (bandwidth == 8000) {
+ coeff1_2048Nu = 0x038bdba6;
+ coeff1_4096Nu = 0x01c5edd3;
+ coeff1_8191Nu = 0x00e2fe02;
+ coeff1_8192Nu = 0x00e2f6ea;
+ coeff1_8193Nu = 0x00e2efd2;
+ coeff2_2k = 0x01c5edd3;
+ coeff2_4k = 0x00e2f6ea;
+ coeff2_8k = 0x00717b75;
+ bfsfcw_fftindex_ratio = 0x0242;
+ fftindex_bfsfcw_ratio = 0x01c6;
+ } else {
+ error = Error_INVALID_BW;
+ goto exit;
+ }
+ } else {
+ error = Error_INVALID_XTAL_FREQ;
+ goto exit;
+ }
+
+
+ /** Get ADC multiplier */
+ error = Standard_readRegister (demodulator, 0, Processor_OFDM, adcx2, &adcMultiplier);
+ if (error) goto exit;
+
+ if (adcMultiplier == 1) {
+ coeff1_2048Nu /= 2;
+ coeff1_4096Nu /= 2;
+ coeff1_8191Nu /= 2;
+ coeff1_8192Nu /= 2;
+ coeff1_8193Nu /= 2 ;
+ coeff2_2k /= 2;
+ coeff2_4k /= 2;
+ coeff2_8k /= 2;
+ }
+
+ /** Write coeff1_2048Nu */
+ /** Get Byte0 */
+ temp0 = (Byte) (coeff1_2048Nu & 0x000000FF);
+ /** Get Byte1 */
+ temp1 = (Byte) ((coeff1_2048Nu & 0x0000FF00) >> 8);
+ /** Get Byte2 */
+ temp2 = (Byte) ((coeff1_2048Nu & 0x00FF0000) >> 16);
+ /** Get Byte3 */
+ temp3 = (Byte) ((coeff1_2048Nu & 0x03000000) >> 24);
+
+ /** Gig endian to make 8051 happy */
+ buffer[cfoe_NS_2048_coeff1_25_24 - cfoe_NS_2048_coeff1_25_24] = temp3;
+ buffer[cfoe_NS_2048_coeff1_23_16 - cfoe_NS_2048_coeff1_25_24] = temp2;
+ buffer[cfoe_NS_2048_coeff1_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[cfoe_NS_2048_coeff1_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Write coeff2_2k */
+ /** Get Byte0 */
+ temp0 = (Byte) ((coeff2_2k & 0x000000FF));
+ /** Get Byte1 */
+ temp1 = (Byte) ((coeff2_2k & 0x0000FF00) >> 8);
+ /** Get Byte2 */
+ temp2 = (Byte) ((coeff2_2k & 0x00FF0000) >> 16);
+ /** Get Byte3 */
+ temp3 = (Byte) ((coeff2_2k & 0x01000000) >> 24);
+
+ /** Gig endian to make 8051 happy */
+ buffer[cfoe_NS_2k_coeff2_24 - cfoe_NS_2048_coeff1_25_24] = temp3;
+ buffer[cfoe_NS_2k_coeff2_23_16 - cfoe_NS_2048_coeff1_25_24] = temp2;
+ buffer[cfoe_NS_2k_coeff2_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[cfoe_NS_2k_coeff2_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Write coeff1_8191Nu */
+ /** Get Byte0 */
+ temp0 = (Byte) ((coeff1_8191Nu & 0x000000FF));
+ /** Get Byte1 */
+ temp1 = (Byte) ((coeff1_8191Nu & 0x0000FF00) >> 8);
+ /** Get Byte2 */
+ temp2 = (Byte) ((coeff1_8191Nu & 0x00FFC000) >> 16);
+ /** Get Byte3 */
+ temp3 = (Byte) ((coeff1_8191Nu & 0x03000000) >> 24);
+
+ /** Big endian to make 8051 happy */
+ buffer[cfoe_NS_8191_coeff1_25_24 - cfoe_NS_2048_coeff1_25_24] = temp3;
+ buffer[cfoe_NS_8191_coeff1_23_16 - cfoe_NS_2048_coeff1_25_24] = temp2;
+ buffer[cfoe_NS_8191_coeff1_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[cfoe_NS_8191_coeff1_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Write coeff1_8192Nu */
+ /** Get Byte0 */
+ temp0 = (Byte) (coeff1_8192Nu & 0x000000FF);
+ /** Get Byte1 */
+ temp1 = (Byte) ((coeff1_8192Nu & 0x0000FF00) >> 8);
+ /** Get Byte2 */
+ temp2 = (Byte) ((coeff1_8192Nu & 0x00FFC000) >> 16);
+ /** Get Byte3 */
+ temp3 = (Byte) ((coeff1_8192Nu & 0x03000000) >> 24);
+
+ /** Gig endian to make 8051 happy */
+ buffer[cfoe_NS_8192_coeff1_25_24 - cfoe_NS_2048_coeff1_25_24] = temp3;
+ buffer[cfoe_NS_8192_coeff1_23_16 - cfoe_NS_2048_coeff1_25_24] = temp2;
+ buffer[cfoe_NS_8192_coeff1_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[cfoe_NS_8192_coeff1_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Write coeff1_8193Nu */
+ /** Get Byte0 */
+ temp0 = (Byte) ((coeff1_8193Nu & 0x000000FF));
+ /** Get Byte1 */
+ temp1 = (Byte) ((coeff1_8193Nu & 0x0000FF00) >> 8);
+ /** Get Byte2 */
+ temp2 = (Byte) ((coeff1_8193Nu & 0x00FFC000) >> 16);
+ /** Get Byte3 */
+ temp3 = (Byte) ((coeff1_8193Nu & 0x03000000) >> 24);
+
+ /** Big endian to make 8051 happy */
+ buffer[cfoe_NS_8193_coeff1_25_24 - cfoe_NS_2048_coeff1_25_24] = temp3;
+ buffer[cfoe_NS_8193_coeff1_23_16 - cfoe_NS_2048_coeff1_25_24] = temp2;
+ buffer[cfoe_NS_8193_coeff1_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[cfoe_NS_8193_coeff1_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Write coeff2_8k */
+ /** Get Byte0 */
+ temp0 = (Byte) ((coeff2_8k & 0x000000FF));
+ /** Get Byte1 */
+ temp1 = (Byte) ((coeff2_8k & 0x0000FF00) >> 8);
+ /** Get Byte2 */
+ temp2 = (Byte) ((coeff2_8k & 0x00FF0000) >> 16);
+ /** Get Byte3 */
+ temp3 = (Byte) ((coeff2_8k & 0x01000000) >> 24);
+
+ /** Big endian to make 8051 happy */
+ buffer[cfoe_NS_8k_coeff2_24 - cfoe_NS_2048_coeff1_25_24] = temp3;
+ buffer[cfoe_NS_8k_coeff2_23_16 - cfoe_NS_2048_coeff1_25_24] = temp2;
+ buffer[cfoe_NS_8k_coeff2_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[cfoe_NS_8k_coeff2_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Write coeff1_4096Nu */
+ /** Get Byte0 */
+ temp0 = (Byte) (coeff1_4096Nu & 0x000000FF);
+ /** Get Byte1 */
+ temp1 = (Byte) ((coeff1_4096Nu & 0x0000FF00) >> 8);
+ /** Get Byte2 */
+ temp2 = (Byte) ((coeff1_4096Nu & 0x00FF0000) >> 16);
+ /** Get Byte3[1:0] */
+ /** Bit[7:2] will be written soon and so don't have to care them */
+ temp3 = (Byte) ((coeff1_4096Nu & 0x03000000) >> 24);
+
+ /** Big endian to make 8051 happy */
+ buffer[cfoe_NS_4096_coeff1_25_24 - cfoe_NS_2048_coeff1_25_24] = temp3;
+ buffer[cfoe_NS_4096_coeff1_23_16 - cfoe_NS_2048_coeff1_25_24] = temp2;
+ buffer[cfoe_NS_4096_coeff1_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[cfoe_NS_4096_coeff1_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Write coeff2_4k */
+ /** Get Byte0 */
+ temp0 = (Byte) ((coeff2_4k & 0x000000FF));
+ /** Get Byte1 */
+ temp1 = (Byte) ((coeff2_4k & 0x0000FF00) >> 8);
+ /** Get Byte2 */
+ temp2 = (Byte) ((coeff2_4k & 0x00FF0000) >> 16);
+ /** Get Byte3 */
+ temp3 = (Byte) ((coeff2_4k & 0x01000000) >> 24);
+
+ /** Big endian to make 8051 happy */
+ buffer[cfoe_NS_4k_coeff2_24 - cfoe_NS_2048_coeff1_25_24] = temp3;
+ buffer[cfoe_NS_4k_coeff2_23_16 - cfoe_NS_2048_coeff1_25_24] = temp2;
+ buffer[cfoe_NS_4k_coeff2_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[cfoe_NS_4k_coeff2_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Get Byte0 */
+ temp0 = (Byte) (bfsfcw_fftindex_ratio & 0x00FF);
+ /** Get Byte1 */
+ temp1 = (Byte) ((bfsfcw_fftindex_ratio & 0xFF00) >> 8);
+
+ /** Big endian to make 8051 happy */
+ buffer[bfsfcw_fftindex_ratio_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[bfsfcw_fftindex_ratio_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ /** Get Byte0 */
+ temp0 = (Byte) (fftindex_bfsfcw_ratio & 0x00FF);
+ /** Get Byte1 */
+ temp1 = (Byte) ((fftindex_bfsfcw_ratio & 0xFF00) >> 8);
+
+ /** Big endian to make 8051 happy */
+ buffer[fftindex_bfsfcw_ratio_15_8 - cfoe_NS_2048_coeff1_25_24] = temp1;
+ buffer[fftindex_bfsfcw_ratio_7_0 - cfoe_NS_2048_coeff1_25_24] = temp0;
+
+ error = Standard_writeRegisters (demodulator, chip, Processor_OFDM, cfoe_NS_2048_coeff1_25_24, 36, buffer);
+ if (error) goto exit;
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_setFrequency (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ Byte band;
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Clear easy mode flag first */
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, Training_Mode, 0x00);
+ if (error) goto exit;
+
+ /** Clear empty_channel_status lock flag */
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, empty_channel_status, 0x00);
+ if (error) goto exit;
+
+ /** Clear MPEG2 lock flag */
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, r_mp2if_sync_byte_locked, mp2if_sync_byte_locked_pos, mp2if_sync_byte_locked_len, 0x00);
+ if (error) goto exit;
+
+ /** Determine frequency band */
+ band = 0xFF;
+ for (i = 0; i < Standard_MAX_BAND; i++) {
+ if ((frequency >= Standard_bandTable[i].minimum) && (frequency <= Standard_bandTable[i].maximum)) {
+ band = i;
+ break;
+ }
+ }
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, FreBand, band);
+ if (error) goto exit;
+
+ if (ganymede->tunerDescription->setTuner != NULL) {
+ if ((ganymede->busId != Bus_I2M) && (ganymede->busId != Bus_I2U)) {
+ if (ganymede->chipNumber > 1 && chip == 0) {
+ error = ganymede->tunerDescription->setTuner (demodulator, chip, ganymede->bandwidth[chip], frequency + 100);
+ if (error) goto exit;
+ } else if (ganymede->chipNumber > 1 && chip == 1) {
+ error = ganymede->tunerDescription->setTuner (demodulator, chip, ganymede->bandwidth[chip], frequency - 100);
+ if (error) goto exit;
+ } else {
+ error = ganymede->tunerDescription->setTuner (demodulator, chip, ganymede->bandwidth[chip], frequency);
+ if (error) goto exit;
+ }
+ }
+ }
+
+ /** Trigger ofsm */
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, trigger_ofsm, 0);
+ if (error) goto exit;
+
+ ganymede->frequency[chip] = frequency;
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_loadFirmware (
+ IN Demodulator* demodulator,
+ IN Byte* firmwareCodes,
+ IN Segment* firmwareSegments,
+ IN Byte* firmwarePartitions
+) {
+ Dword error = Error_NO_ERROR;
+ Dword beginPartition;
+ Dword endPartition;
+ Dword version;
+ Dword firmwareLength;
+ Byte* firmwareCodesPointer;
+ Word command;
+ Dword i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Set I2C master clock speed. */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_one_cycle_counter_tuner, User_I2C_SPEED);
+ if (error) goto exit;
+
+ firmwareCodesPointer = firmwareCodes;
+
+ if ((ganymede->tunerDescription->tunerId == 0x23 || ganymede->tunerDescription->tunerId == 0x2D) &&
+ firmwarePartitions[0] == firmwarePartitions[1]) {
+ beginPartition = firmwarePartitions[0];
+ endPartition = firmwarePartitions[0] + firmwarePartitions[1];
+
+ for (i = 0; i < beginPartition; i++) {
+ firmwareLength = firmwareSegments[i].segmentLength;
+ firmwareCodesPointer += firmwareLength;
+ }
+ } else {
+ beginPartition = 0;
+ endPartition = firmwarePartitions[0];
+ }
+
+ for (i = beginPartition; i < endPartition; i++) {
+ firmwareLength = firmwareSegments[i].segmentLength;
+ if (firmwareSegments[i].segmentType == 0) {
+ /** Dwonload firmware */
+ error = Standard_sendCommand (demodulator, Command_FW_DOWNLOAD_BEGIN, 0, Processor_LINK, 0, NULL, 0, NULL);
+ if (error) goto exit;
+ if (ganymede->cmdDescription->loadFirmware != NULL) {
+ error = ganymede->cmdDescription->loadFirmware (demodulator, firmwareLength, firmwareCodesPointer);
+ }
+ if (error) goto exit;
+ error = Standard_sendCommand (demodulator, Command_FW_DOWNLOAD_END, 0, Processor_LINK, 0, NULL, 0, NULL);
+ if (error) goto exit;
+ } else if (firmwareSegments[i].segmentType == 1) {
+ /** Copy firmware */
+ error = Standard_sendCommand (demodulator, Command_SCATTER_WRITE, 0, Processor_LINK, firmwareLength, firmwareCodesPointer, 0, NULL);
+ if (error) goto exit;
+ } else {
+ /** Direct write firmware */
+ command = (Word) (firmwareCodesPointer[0] << 8) + (Word) firmwareCodesPointer[1];
+ error = Standard_sendCommand (demodulator, command, 0, Processor_LINK, firmwareLength - 2, firmwareCodesPointer + 2, 0, NULL);
+ if (error) goto exit;
+ }
+ firmwareCodesPointer += firmwareLength;
+ }
+
+ /** Boot */
+ error = Standard_sendCommand (demodulator, Command_BOOT, 0, Processor_LINK, 0, NULL, 0, NULL);
+ if (error) goto exit;
+
+ User_delay (demodulator, 10);
+
+ /** Check if firmware is running */
+ version = 0;
+ error = Standard_getFirmwareVersion (demodulator, Processor_LINK, &version);
+ if (error) goto exit;
+ if (version == 0)
+ error = Error_BOOT_FAIL;
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_loadScript (
+ IN Demodulator* demodulator,
+ IN StreamType streamType,
+ IN Word* scriptSets,
+ IN ValueSet* scripts,
+ IN Word* tunerScriptSets,
+ IN ValueSet* tunerScripts
+) {
+ Dword error = Error_NO_ERROR;
+ Word beginScript;
+ Word endScript;
+ Byte i, value1 = 0, value2 = 0, supportRelay = 0, chipNumber = 0, bufferLens = 1;
+ Word j;
+ Byte buffer[20] = {0,};
+ Dword tunerAddr, tunerAddrTemp;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+
+ /** Querry SupportRelayCommandWrite **/
+ error = Standard_readRegister (demodulator, 0, Processor_OFDM, 0x004D, &supportRelay);
+ if (error) goto exit;
+
+ if (supportRelay && ganymede->chipNumber == 2)
+ chipNumber = 1;
+ else
+ chipNumber = ganymede->chipNumber;
+
+ /** Enable RelayCommandWrite **/
+ if (supportRelay) {
+ error = Standard_writeRegister (demodulator, 0, Processor_OFDM, 0x004E, 1);
+ if (error) goto exit;
+ }
+
+ if ((scriptSets[0] != 0) && (scripts != NULL)) {
+ beginScript = 0;
+ endScript = scriptSets[0];
+
+ for (i = 0; i < chipNumber; i++) {
+ /** Load OFSM init script */
+ for (j = beginScript; j < endScript; j++) {
+ tunerAddr = tunerAddrTemp = scripts[j].address;
+ buffer[0] = scripts[j].value;
+
+ while (j < endScript && bufferLens < 20) {
+ tunerAddrTemp += 1;
+ if (tunerAddrTemp != scripts[j+1].address)
+ break;
+
+ buffer[bufferLens] = scripts[j+1].value;
+ bufferLens ++;
+ j ++;
+ }
+
+ error = Standard_writeRegisters (demodulator, i, Processor_OFDM, tunerAddr, bufferLens, buffer);
+ if (error) goto exit;
+ bufferLens = 1;
+ }
+ }
+ }
+
+
+ /** Distinguish chip type */
+ error = Standard_readRegister (demodulator, 0, Processor_LINK, 0x1222, &value1);
+ if (error) goto exit;
+
+ error = Standard_readRegister (demodulator, 0, Processor_LINK, 0x384F, &value2);
+ if (error) goto exit;
+
+ if ((tunerScriptSets[0] != 0) && (tunerScripts != NULL)) {
+ if (tunerScriptSets[1] == tunerScriptSets[0] && !(value1 == 0xF8 && value2 == 0xEA)) {
+ beginScript = tunerScriptSets[0];
+ endScript = tunerScriptSets[0] + tunerScriptSets[1];
+ } else {
+ beginScript = 0;
+ endScript = tunerScriptSets[0];
+ }
+
+ for (i = 0; i < chipNumber; i++) {
+ /** Load tuner init script */
+ for (j = beginScript; j < endScript; j++) {
+ tunerAddr = tunerAddrTemp = tunerScripts[j].address;
+ buffer[0] = tunerScripts[j].value;
+
+ while (j < endScript && bufferLens < 20) {
+ tunerAddrTemp += 1;
+ if (tunerAddrTemp != tunerScripts[j+1].address)
+ break;
+
+ buffer[bufferLens] = tunerScripts[j+1].value;
+ bufferLens ++;
+ j ++;
+ }
+
+ error = Standard_writeRegisters (demodulator, i, Processor_OFDM, tunerAddr, bufferLens, buffer);
+ if (error) goto exit;
+ bufferLens = 1;
+ }
+ }
+ }
+
+ /** Disable RelayCommandWrite **/
+ if (supportRelay) {
+ error = Standard_writeRegister (demodulator, 0, Processor_OFDM, 0x004E, 0);
+ if (error) goto exit;
+ }
+
+exit :
+ return (error);
+}
+
+/** end of local functions */
+
+Dword Standard_writeRegister (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte value
+) {
+ return (Standard_writeRegisters (demodulator, chip, processor, registerAddress, 1, &value));
+}
+
+
+Dword Standard_writeRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ WriteRegistersRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.processor = processor;
+ request.registerAddress = registerAddress;
+ request.bufferLength = bufferLength;
+ User_memoryCopy (demodulator, request.buffer, buffer, bufferLength);
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_WRITEREGISTERS,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte registerAddressLength;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (processor == Processor_LINK) {
+ if (registerAddress > 0x000000FF) {
+ registerAddressLength = 2;
+ } else {
+ registerAddressLength = 1;
+ }
+ } else {
+ registerAddressLength = 2;
+ }
+ if (ganymede->cmdDescription->writeRegisters != NULL) {
+ error = ganymede->cmdDescription->writeRegisters (demodulator, chip, processor, registerAddress, registerAddressLength, bufferLength, buffer);
+ }
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_writeTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->cmdDescription->writeTunerRegisters != NULL) {
+ error = ganymede->cmdDescription->writeTunerRegisters (demodulator, chip, ganymede->tunerDescription->tunerAddress, registerAddress, ganymede->tunerDescription->registerAddressLength, bufferLength, buffer);
+ }
+ return (error);
+}
+
+
+Dword Standard_writeGenericRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte interfaceIndex,
+ IN Byte slaveAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ Byte writeBuffer[256];
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ writeBuffer[0] = bufferLength;
+ writeBuffer[1] = interfaceIndex;
+ writeBuffer[2] = slaveAddress;
+
+ for (i = 0; i < bufferLength; i++) {
+ writeBuffer[3 + i] = buffer[i];
+ }
+ return (Standard_sendCommand (demodulator, Command_GENERIC_WRITE, chip, Processor_LINK, bufferLength + 3, writeBuffer, 0, NULL));
+}
+
+
+Dword Standard_writeEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ WriteEepromValuesRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.registerAddress = registerAddress;
+ request.bufferLength = bufferLength;
+ User_memoryCopy (demodulator, request.buffer, buffer, bufferLength);
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_WRITEEEPROMVALUES,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte eepromAddress;
+ Byte registerAddressLength;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Read EEPROM address. */
+ /*error = ganymede->cmdDescription.readRegisters (demodulator, chip, Processor_LINK, 0xBFF0, 1, &eepromAddress);
+ if (error) goto exit;
+ */
+ eepromAddress = 0x01;
+
+ /** Read EEPROM valid length of register. */
+ /*error = ganymede->cmdDescription.readRegisters (demodulator, chip, Processor_LINK, 0xBFF1, 1, &registerAddressLength);
+ if (error) goto exit;
+ */
+ registerAddressLength = 0x01;
+
+ if (ganymede->cmdDescription->writeEepromValues != NULL) {
+ error = ganymede->cmdDescription->writeEepromValues (demodulator, chip, eepromAddress, registerAddress, registerAddressLength, bufferLength, buffer);
+ }
+
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_writeRegisterBits (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte position,
+ IN Byte length,
+ IN Byte value
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ WriteRegisterBitsRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.processor = processor;
+ request.registerAddress = registerAddress;
+ request.position = position;
+ request.length = length;
+ request.value = value;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_WRITEREGISTERBITS,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte registerAddressLength;
+ Ganymede* ganymede;
+ Byte temp;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (processor == Processor_LINK) {
+ if (registerAddress > 0x000000FF) {
+ registerAddressLength = 2;
+ } else {
+ registerAddressLength = 1;
+ }
+ } else {
+ registerAddressLength = 2;
+ }
+ if (length == 8) {
+ if (ganymede->cmdDescription->writeRegisters != NULL) {
+ error = ganymede->cmdDescription->writeRegisters (demodulator, chip, processor, registerAddress, registerAddressLength, 1, &value);
+ }
+ } else {
+ if (ganymede->cmdDescription->readRegisters != NULL) {
+ error = ganymede->cmdDescription->readRegisters (demodulator, chip, processor, registerAddress, registerAddressLength, 1, &temp);
+ if (error) goto exit;
+ }
+
+ temp = REG_CREATE (value, temp, position, length);
+
+ if (ganymede->cmdDescription->writeRegisters != NULL) {
+ error = ganymede->cmdDescription->writeRegisters (demodulator, chip, processor, registerAddress, registerAddressLength, 1, &temp);
+ if (error) goto exit;
+ }
+ }
+exit:
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_readRegister (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ OUT Byte* value
+) {
+ return (Standard_readRegisters (demodulator, chip, processor, registerAddress, 1, value));
+}
+
+
+Dword Standard_readRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ ReadRegistersRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.processor = processor;
+ request.registerAddress = registerAddress;
+ request.bufferLength = bufferLength;
+ request.buffer = buffer;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_READREGISTERS,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte registerAddressLength;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (processor == Processor_LINK) {
+ if (registerAddress > 0x000000FF) {
+ registerAddressLength = 2;
+ } else {
+ registerAddressLength = 1;
+ }
+ } else {
+ registerAddressLength = 2;
+ }
+ if (ganymede->cmdDescription->readRegisters != NULL) {
+ error = ganymede->cmdDescription->readRegisters (demodulator, chip, processor, registerAddress, registerAddressLength, bufferLength, buffer);
+ }
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_readTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ ReadTunerRegistersRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.registerAddress = registerAddress;
+ request.bufferLength = bufferLength;
+ request.buffer = buffer;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_READTUNERREGISTERS,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->cmdDescription->readTunerRegisters != NULL) {
+ error = ganymede->cmdDescription->readTunerRegisters (demodulator, chip, ganymede->tunerDescription->tunerAddress, registerAddress, ganymede->tunerDescription->registerAddressLength, bufferLength, buffer);
+ }
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_readGenericRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte interfaceIndex,
+ IN Byte slaveAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+) {
+ Byte writeBuffer[3];
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ writeBuffer[0] = bufferLength;
+ writeBuffer[1] = interfaceIndex;
+ writeBuffer[2] = slaveAddress;
+
+ return (Standard_sendCommand (demodulator, Command_GENERIC_READ, chip, Processor_LINK, 3, writeBuffer, bufferLength, buffer));
+}
+
+
+Dword Standard_readEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ ReadEepromValuesRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.registerAddress = registerAddress;
+ request.bufferLength = bufferLength;
+ request.buffer = buffer;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_READEEPROMVALUES,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte eepromAddress;
+ Byte registerAddressLength;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Read EEPROM address. */
+ /*error = ganymede->cmdDescription.readRegisters (demodulator, chip, Processor_LINK, 0xBFF0, 1, &eepromAddress);
+ if (error) goto exit;
+ */
+ eepromAddress = 0x01;
+
+ /** Read EEPROM valid length of register. */
+ /*error = ganymede->cmdDescription.readRegisters (demodulator, chip, Processor_LINK, 0xBFF1, 1, &registerAddressLength);
+ if (error) goto exit;
+ */
+ registerAddressLength = 0x01;
+
+ if (ganymede->cmdDescription->readEepromValues != NULL) {
+ error = ganymede->cmdDescription->readEepromValues (demodulator, chip, eepromAddress, registerAddress, registerAddressLength, bufferLength, buffer);
+ }
+
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_readRegisterBits (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte position,
+ IN Byte length,
+ OUT Byte* value
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ ReadRegisterBitsRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.processor = processor;
+ request.registerAddress = registerAddress;
+ request.position = position;
+ request.length = length;
+ request.value = value;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_READREGISTERBITS,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte temp = 0;
+ Byte registerAddressLength;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (processor == Processor_LINK) {
+ if (registerAddress > 0x000000FF) {
+ registerAddressLength = 2;
+ } else {
+ registerAddressLength = 1;
+ }
+ } else {
+ registerAddressLength = 2;
+ }
+ if (ganymede->cmdDescription->readRegisters != NULL) {
+ error = ganymede->cmdDescription->readRegisters (demodulator, chip, processor, registerAddress, registerAddressLength, 1, &temp);
+ }
+ if (error) goto exit;
+
+ if (length == 8) {
+ *value = temp;
+ } else {
+ temp = REG_GET (temp, position, length);
+ *value = temp;
+ }
+
+#endif
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_getHardwareVersion (
+ IN Demodulator* demodulator,
+ OUT Dword* version
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ Byte hwVer0;
+ Byte hwVer1;
+
+ error = Standard_readRegister (demodulator, 0, Processor_OFDM, 0xFFF0, &hwVer0);
+ if (error) goto exit;
+ error = Standard_readRegister (demodulator, 0, Processor_OFDM, 0xFFF1, &hwVer1);
+ if (error) goto exit;
+
+ /** HW Version = HWVer + Top_Ver */
+ *version = (Dword) (hwVer1 << 8) + (Dword) hwVer0;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_getFirmwareVersion (
+ IN Demodulator* demodulator,
+ IN Processor processor,
+ OUT Dword* version
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ GetFirmwareVersionRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.processor = processor;
+ request.version = version;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_GETFIRMWAREVERSION,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte writeBuffer[1] = {0,};
+ Byte readBuffer[4] = {0,};
+ Byte value = 0;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if ((ganymede->busId == Bus_I2M) || (ganymede->busId == Bus_I2U)) {
+ *version = 0xFFFFFFFF;
+ goto exit;
+ }
+
+ /** Check chip version */
+ error = Standard_readRegister (demodulator, 0, Processor_LINK, 0x1222, &value);
+ if (error) goto exit;
+
+ if (value == 0xF8 || User_MAX_PKT_SIZE > 9) {
+ writeBuffer[0] = 1;
+ error = Standard_sendCommand (demodulator, Command_QUERYINFO, 0, processor, 1, writeBuffer, 4, readBuffer);
+ if (error) goto exit;
+ } else {
+ error = Standard_sendCommand (demodulator, Command_FW_DOWNLOAD_END, 0, Processor_LINK, 0, NULL, 0, NULL);
+ if (error == 0x01000009) { /* Boot code*/
+ readBuffer[0] = readBuffer[1] = readBuffer[2] = readBuffer[3] = 0;
+ error = 0;
+ } else if (error = 0x010000FA) { /* Firmware code*/
+ if (processor == Processor_LINK)
+ {
+ error = Standard_readRegisters (demodulator, 0, Processor_LINK, 0x83E9, 1, readBuffer);
+ if (error) goto exit;
+
+ error = Standard_readRegisters (demodulator, 0, Processor_LINK, 0x83EA, 1, readBuffer + 1);
+ if (error) goto exit;
+
+ error = Standard_readRegisters (demodulator, 0, Processor_LINK, 0x83EB, 1, readBuffer + 2);
+ if (error) goto exit;
+
+ error = Standard_readRegisters (demodulator, 0, Processor_LINK, 0x83EC, 1, readBuffer + 3);
+ if (error) goto exit;
+ }
+ else
+ {
+ error = Standard_readRegisters (demodulator, 0, Processor_OFDM, 0x4191, 1, readBuffer);
+ if (error) goto exit;
+
+ error = Standard_readRegisters (demodulator, 0, Processor_OFDM, 0x4192, 1, readBuffer + 1);
+ if (error) goto exit;
+
+ error = Standard_readRegisters (demodulator, 0, Processor_OFDM, 0x4193, 1, readBuffer + 2);
+ if (error) goto exit;
+
+ error = Standard_readRegisters (demodulator, 0, Processor_OFDM, 0x4194, 1, readBuffer + 3);
+ if (error) goto exit;
+ }
+ } else /* error */
+ goto exit;
+ }
+
+ *version = (Dword) (((Dword) readBuffer[0] << 24) + ((Dword) readBuffer[1] << 16) + ((Dword) readBuffer[2] << 8) + (Dword) readBuffer[3]);
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_getPostVitBer (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Dword* postErrorCount, /** 24 bits */
+ OUT Dword* postBitCount, /** 16 bits */
+ OUT Word* abortCount
+) {
+ Dword error = Error_NO_ERROR;
+ Dword errorCount;
+ Dword bitCount;
+ Byte buffer[7];
+ Word abort;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ *postErrorCount = 0;
+ *postBitCount = 0;
+
+ error = Standard_readRegisters (demodulator, chip, Processor_OFDM, rsd_abort_packet_cnt_7_0, r_rsd_packet_unit_15_8 - rsd_abort_packet_cnt_7_0 + 1, buffer);
+ if (error) goto exit;
+
+ abort = ((Word) buffer[rsd_abort_packet_cnt_15_8 - rsd_abort_packet_cnt_7_0] << 8) + buffer[rsd_abort_packet_cnt_7_0 - rsd_abort_packet_cnt_7_0];
+ errorCount = ((Dword) buffer[rsd_bit_err_cnt_23_16 - rsd_abort_packet_cnt_7_0] << 16) + ((Dword) buffer[rsd_bit_err_cnt_15_8 - rsd_abort_packet_cnt_7_0] << 8) + buffer[rsd_bit_err_cnt_7_0 - rsd_abort_packet_cnt_7_0];
+ bitCount = ((Dword) buffer[r_rsd_packet_unit_15_8 - rsd_abort_packet_cnt_7_0] << 8) + buffer[r_rsd_packet_unit_7_0 - rsd_abort_packet_cnt_7_0];
+ if (bitCount == 0) {
+ /*error = Error_RSD_PKT_CNT_0;*/
+ *postErrorCount = 1;
+ *postBitCount = 2;
+ *abortCount = 1000;
+ goto exit;
+ }
+
+ *abortCount = abort;
+ bitCount = bitCount - (Dword)abort;
+ if (bitCount == 0) {
+ *postErrorCount = 1;
+ *postBitCount = 2;
+ } else {
+ *postErrorCount = errorCount - (Dword) abort * 8 * 8;
+ *postBitCount = bitCount * 204 * 8;
+ }
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_getRfAgcGain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* rfAgc
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ /** get rf_agc_control */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, r_reg_aagc_rf_gain, reg_aagc_rf_gain_pos, reg_aagc_rf_gain_len, rfAgc);
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_getIfAgcGain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* ifAgc
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ /** get if_agc_control */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, r_reg_aagc_if_gain, reg_aagc_if_gain_pos, reg_aagc_if_gain_len, ifAgc);
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_getSignalQuality (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* quality
+) {
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_readRegister (demodulator, chip, Processor_OFDM, signal_quality, quality);
+ return (error);
+}
+
+
+Dword Standard_getSignalStrength (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* strength
+) {
+ Dword error = Error_NO_ERROR;
+
+ error = Standard_readRegister (demodulator, chip, Processor_OFDM, signal_strength, strength);
+ return (error);
+}
+
+
+Dword Standard_getSignalStrengthDbm (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Long rfpullUpVolt_X10, /** RF pull up voltage multiplied by 10 */
+ IN Long ifpullUpVolt_X10, /** IF pull up voltage multiplied by 10 */
+ OUT Long* strengthDbm /** DBm */
+)
+{
+ Dword error = Error_NO_ERROR;
+ Byte temp;
+
+ if ((rfpullUpVolt_X10 == 0) || (ifpullUpVolt_X10 == 0)) {
+ error = Error_INV_PULLUP_VOLT;
+ goto exit;
+ }
+
+ error = Standard_readRegister (demodulator, chip, Processor_OFDM, est_rf_level_dbm, &temp);
+ if (error) goto exit;
+
+ *strengthDbm = (Long) (temp * -1);
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_loadIrTable (
+ IN Demodulator* demodulator,
+ IN Word tableLength,
+ IN Byte* table
+) {
+ Dword error = Error_NO_ERROR;
+ Byte baseHigh;
+ Byte baseLow;
+ Word registerBase;
+ Word i;
+
+ error = Standard_readRegister (demodulator, 0, Processor_LINK, 0x417F, &baseHigh);
+ if (error) goto exit;
+ error = Standard_readRegister (demodulator, 0, Processor_LINK, 0x4180, &baseLow);
+ if (error) goto exit;
+
+ registerBase = (Word) (baseHigh << 8) + (Word) baseLow;
+
+ if (registerBase) {
+ for (i = 0; i < tableLength; i++) {
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, registerBase + i, table[i]);
+ if (error) goto exit;
+ }
+ }
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_initialize (
+ IN Demodulator* demodulator,
+ IN Byte chipNumber,
+ IN Word sawBandwidth,
+ IN StreamType streamType,
+ IN Architecture architecture
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ InitializeRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ ganymede->driver = NULL;
+ error = Standard_getDriver (demodulator, &ganymede->driver);
+
+ if (ganymede->driver != NULL) {
+ request.chipNumber = chipNumber;
+ request.sawBandwidth = sawBandwidth;
+ request.streamType = streamType;
+ request.architecture = architecture;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_INITIALIZE,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Dword crystal = 0;
+ Dword adc = 0;
+ Dword fcw = 0;
+ Byte buffer[4];
+ Dword version = 0;
+ Word* tunerScriptSets = NULL;
+ ValueSet* tunerScripts = NULL;
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ ganymede->chipNumber = chipNumber;
+ ganymede->options = 0x0000;
+ ganymede->fcw = 0x00000000;
+ ganymede->frequency[0] = 642000;
+ ganymede->frequency[1] = 642000;
+ ganymede->initialized = False;
+
+
+ if (ganymede->busId == 0xFFFF) {
+ goto exit;
+ }
+
+ if (ganymede->tunerDescription->tunerId == 0xFFFF) {
+ goto exit;
+ }
+
+ error = Standard_getFirmwareVersion (demodulator, Processor_LINK, &version);
+ if (error) goto exit;
+ if (version != 0) {
+ ganymede->booted = True;
+ } else {
+ ganymede->booted = False;
+ }
+
+
+ ganymede->firmwareCodes = Firmware_codes;
+ ganymede->firmwareSegments = Firmware_segments;
+ ganymede->firmwarePartitions = Firmware_partitions;
+ ganymede->scriptSets = Firmware_scriptSets;
+ ganymede->scripts = Firmware_scripts;
+
+ /** Set up by default tunerDescription */ /** releaseExternalRemove */
+ tunerScriptSets = ganymede->tunerDescription->tunerScriptSets;
+ tunerScripts = ganymede->tunerDescription->tunerScript;
+
+
+ error = Standard_readRegisterBits (demodulator, 0, Processor_LINK, r_io_mux_pwron_clk_strap, io_mux_pwron_clk_strap_pos, io_mux_pwron_clk_strap_len, &i);
+ if (error) goto exit;
+
+ ganymede->crystalFrequency = Standard_clockTable[i].crystalFrequency;
+ ganymede->adcFrequency = Standard_clockTable[i].adcFrequency;
+
+ ganymede->dataReady = False;
+
+ /** Write secondary I2C address to device */
+ /** Enable or disable clock out for 2nd chip power saving */
+ if (ganymede->chipNumber > 1) {
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x417F, Chip2_I2c_address);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_top_clkoen, 1);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, 0x417F, 0x00);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_top_clkoen, 0);
+ if (error) goto exit;
+ }
+
+ /** Detect the HostA or HostB */
+ error = Standard_readRegisterBits (demodulator, 0, Processor_LINK, r_io_mux_pwron_hosta, io_mux_pwron_hosta_pos, io_mux_pwron_hosta_len, &ganymede->hostInterface[0]);
+ if (error) goto exit;
+
+ /** Load firmware */
+ if (ganymede->firmwareCodes != NULL) {
+ if (ganymede->booted == False) {
+ error = Standard_loadFirmware (demodulator, ganymede->firmwareCodes, ganymede->firmwareSegments, ganymede->firmwarePartitions);
+ if (error) goto exit;
+ ganymede->booted = True;
+ }
+ }
+
+ /** Set I2C master clock speed. */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_one_cycle_counter_tuner, User_I2C_SPEED);
+ if (error) goto exit;
+
+
+ /** Set I2C master clock 100k in order to support tuner I2C. */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_one_cycle_counter_tuner, 0x1a);
+ if (error) goto exit;
+
+ /** Open tuner */
+ for (i = 0; i < ganymede->chipNumber; i++) {
+
+ /** Set 0xD827 to 0 as open drain for tuner i2c */
+ error = Standard_writeRegister (demodulator, i , Processor_LINK, p_reg_top_padodpu, 0);
+ if (error) goto exit;
+
+ /** Set 0xD829 to 0 as push pull for tuner AGC */
+ error = Standard_writeRegister (demodulator, i , Processor_LINK, p_reg_top_agc_od, 0);
+ if (error) goto exit;
+ }
+ if (ganymede->tunerDescription->openTuner != NULL) {
+ if ((ganymede->busId != Bus_I2M) && (ganymede->busId != Bus_I2U)) {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = ganymede->tunerDescription->openTuner (demodulator, i);
+ if (error) goto exit;
+ }
+ }
+ }
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ /** Tell firmware the type of tuner. */
+ error = Standard_writeRegister (demodulator, i, Processor_LINK, p_reg_link_ofsm_dummy_15_8, (Byte) ganymede->tunerDescription->tunerId);
+ if (error) goto exit;
+ }
+
+ /** Initialize OFDM */
+ if (ganymede->booted == True) {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ /** Set read-update bit to 1 for constellation */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_feq_read_update, reg_feq_read_update_pos, reg_feq_read_update_len, 1);
+ if (error) goto exit;
+
+ /** Enable FEC Monitor */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_fec_vtb_rsd_mon_en, fec_vtb_rsd_mon_en_pos, fec_vtb_rsd_mon_en_len, 1);
+ if (error) goto exit;
+ }
+
+ /** Compute ADC and load them to device */
+ error = Standard_computeCrystal (demodulator, (Long) ganymede->crystalFrequency * 1000, &crystal);
+ if (error) goto exit;
+
+ buffer[0] = (Byte) (crystal & 0x000000FF);
+ buffer[1] = (Byte) ((crystal & 0x0000FF00) >> 8);
+ buffer[2] = (Byte) ((crystal & 0x00FF0000) >> 16);
+ buffer[3] = (Byte) ((crystal & 0xFF000000) >> 24);
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisters (demodulator, i, Processor_OFDM, crystal_clk_7_0, 4, buffer);
+ if (error) goto exit;
+ }
+
+ /** Compute ADC and load them to device */
+ error = Standard_computeAdc (demodulator, (Long) ganymede->adcFrequency, &adc);
+ if (error) goto exit;
+
+ buffer[0] = (Byte) (adc & 0x000000FF);
+ buffer[1] = (Byte) ((adc & 0x0000FF00) >> 8);
+ buffer[2] = (Byte) ((adc & 0x00FF0000) >> 16);
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisters (demodulator, i, Processor_OFDM, p_reg_f_adc_7_0, 3, buffer);
+ if (error) goto exit;
+ }
+
+ /** Compute FCW and load them to device */
+ error = Standard_computeFcw (demodulator, (Long) ganymede->adcFrequency, (Long) ganymede->tunerDescription->ifFrequency, ganymede->tunerDescription->inversion, &fcw);
+ if (error) goto exit;
+ ganymede->fcw = fcw;
+
+ buffer[0] = (Byte) (fcw & 0x000000FF);
+ buffer[1] = (Byte) ((fcw & 0x0000FF00) >> 8);
+ buffer[2] = (Byte) ((fcw & 0x007F0000) >> 16);
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisters (demodulator, i, Processor_OFDM, bfs_fcw_7_0, bfs_fcw_22_16 - bfs_fcw_7_0 + 1, buffer);
+ if (error) goto exit;
+ }
+ }
+
+ /** Load script */
+ if (ganymede->scripts != NULL) {
+ error = Standard_loadScript (demodulator, streamType, ganymede->scriptSets, ganymede->scripts, tunerScriptSets, tunerScripts);
+ if (error) goto exit;
+ }
+
+ /** Set the desired stream type */
+ error = Standard_setStreamType (demodulator, streamType);
+ if (error) goto exit;
+
+ /** Set the desired architecture type */
+ error = Standard_setArchitecture (demodulator, architecture);
+ if (error) goto exit;
+
+#if User_USE_INTERRUPT
+ if (ganymede->busId == Bus_SDIO) {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_sdioc_external_int_en, reg_sdioc_external_int_en_pos, reg_sdioc_external_int_en_len, 1);
+ if (error) goto exit;
+ }
+#endif
+
+ for (i = 0; i< ganymede->chipNumber; i++) {
+
+ /** Set H/W MPEG2 locked detection **/
+ error = Standard_writeRegister (demodulator, i, Processor_LINK, p_reg_top_lock3_out, 1);
+ if (error) goto exit;
+
+ /** Set registers for driving power 0xD830 **/
+ error = Standard_writeRegister (demodulator, i, Processor_LINK, p_reg_top_padmiscdr2, 1);
+ if (error) goto exit;
+
+ /** Set registers for driving power 0xD831 **/
+ error = Standard_writeRegister (demodulator, i, Processor_LINK, p_reg_top_padmiscdr4, 0);
+ if (error) goto exit;
+
+ /** Set registers for driving power 0xD832 **/
+ error = Standard_writeRegister (demodulator, i, Processor_LINK, p_reg_top_padmiscdr8, 0);
+ if (error) goto exit;
+ }
+
+ ganymede->initialized = True;
+
+#endif
+exit:
+
+ return (error);
+}
+
+
+Dword Standard_finalize (
+ IN Demodulator* demodulator
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ FinalizeRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_FINALIZE,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->tunerDescription->closeTuner != NULL) {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = ganymede->tunerDescription->closeTuner (demodulator, i);
+ }
+ }
+
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_isTpsLocked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ Byte temp;
+
+ *locked = False;
+
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, p_fd_tpsd_lock, fd_tpsd_lock_pos, fd_tpsd_lock_len, &temp);
+ if (error) goto exit;
+ if (temp) *locked = True;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_isMpeg2Locked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ Byte temp;
+
+ *locked = False;
+
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, r_mp2if_sync_byte_locked, mp2if_sync_byte_locked_pos, mp2if_sync_byte_locked_len, &temp);
+ if (error) goto exit;
+ if (temp) *locked = True;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_isLocked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+) {
+ Dword error = Error_NO_ERROR;
+
+ Word emptyLoop = 0;
+ Word tpsLoop = 0;
+ Word mpeg2Loop = 0;
+ Byte channels[2];
+ Byte begin;
+ Byte end;
+ Byte i;
+ Byte emptyChannel = 1;
+ Byte tpsLocked = 0;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ IsLockedRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.locked = locked;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_ISLOCKED,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+
+ *locked = False;
+
+ if (ganymede->architecture == Architecture_DCA) {
+ begin = 0;
+ end = ganymede->chipNumber;
+ } else {
+ begin = chip;
+ end = begin + 1;
+ }
+
+ for (i = begin; i < end; i++) {
+ ganymede->statistic[i].signalPresented = False;
+ ganymede->statistic[i].signalLocked = False;
+ ganymede->statistic[i].signalQuality = 0;
+ ganymede->statistic[i].signalStrength = 0;
+ }
+
+ channels[0] = 2;
+ channels[1] = 2;
+ while (emptyLoop < 40) {
+ for (i = begin; i < end; i++) {
+ error = Standard_readRegister (demodulator, i, Processor_OFDM, empty_channel_status, &channels[i]);
+ if (error) goto exit;
+ }
+ if ((channels[0] == 1) || (channels[1] == 1)) {
+ emptyChannel = 0;
+ break;
+ }
+ if ((channels[0] == 2) && (channels[1] == 2)) {
+ emptyChannel = 1;
+ goto exit;
+ }
+ User_delay (demodulator, 25);
+ emptyLoop++;
+ }
+
+ if (emptyChannel == 1) goto exit;
+
+ while (tpsLoop < 50) {
+ for (i = begin; i < end; i++) {
+ /** Empty channel */
+ error = Standard_isTpsLocked (demodulator, i, &ganymede->statistic[i].signalPresented);
+ if (error) goto exit;
+ if (ganymede->statistic[i].signalPresented == True) {
+ tpsLocked = 1;
+ break;
+ }
+ }
+
+ if (tpsLocked == 1) break;
+
+ User_delay (demodulator, 25);
+ tpsLoop++;
+ }
+
+ if (tpsLocked == 0) goto exit;
+
+ while (mpeg2Loop < 40) {
+ if (ganymede->architecture == Architecture_DCA) {
+ error = Standard_isMpeg2Locked (demodulator, 0, &ganymede->statistic[0].signalLocked);
+ if (error) goto exit;
+ if (ganymede->statistic[0].signalLocked == True) {
+ for (i = begin; i < end; i++) {
+ ganymede->statistic[i].signalQuality = 80;
+ ganymede->statistic[i].signalStrength = 80;
+ }
+ *locked = True;
+ break;
+ }
+ } else {
+ error = Standard_isMpeg2Locked (demodulator, chip, &ganymede->statistic[chip].signalLocked);
+ if (error) goto exit;
+ if (ganymede->statistic[chip].signalLocked == True) {
+ ganymede->statistic[chip].signalQuality = 80;
+ ganymede->statistic[chip].signalStrength = 80;
+ *locked = True;
+ break;
+ }
+ }
+ User_delay (demodulator, 25);
+ mpeg2Loop++;
+ }
+ for (i = begin; i < end; i++) {
+ ganymede->statistic[i].signalQuality = 0;
+ ganymede->statistic[i].signalStrength = 20;
+ }
+
+exit:
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_reset (
+ IN Demodulator* demodulator
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ Byte value;
+ Byte i;
+ Byte j;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ for (i = 0; i < ganymede->chipNumber; i++) {
+
+ /** Enable OFDM reset */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, I2C_reg_ofdm_rst_en, reg_ofdm_rst_en_pos, reg_ofdm_rst_en_len, 0x01);
+ if (error) goto exit;
+
+ /** Start reset mechanism */
+ value = 0x00;
+ error = Standard_writeRegisters (demodulator, i, Processor_OFDM, RESET_STATE, 1, &value);
+ if (error) goto exit;
+
+ /** Clear ofdm reset */
+ for (j = 0; j < 150; j++) {
+ error = Standard_readRegisterBits (demodulator, i, Processor_OFDM, I2C_reg_ofdm_rst, reg_ofdm_rst_pos, reg_ofdm_rst_len, &value);
+ if (error) goto exit;
+ if (value) break;
+ User_delay (demodulator, 10);
+ }
+
+ if (j == 150) {
+ error = Error_RESET_TIMEOUT;
+ goto exit;
+ }
+
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, I2C_reg_ofdm_rst, reg_ofdm_rst_pos, reg_ofdm_rst_len, 0);
+ if (error) goto exit;
+
+ /** Disable OFDM reset */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, I2C_reg_ofdm_rst_en, reg_ofdm_rst_en_pos, reg_ofdm_rst_en_len, 0x00);
+ if (error) goto exit;
+ }
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_getChannelModulation (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT ChannelModulation* channelModulation
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ GetChannelModulationRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.channelModulation = channelModulation;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_GETCHANNELMODULATION,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte temp;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Get constellation type */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, g_reg_tpsd_const, reg_tpsd_const_pos, reg_tpsd_const_len, &temp);
+ if (error) goto exit;
+ channelModulation->constellation = (Constellation) temp;
+
+ /** Get TPS hierachy and alpha value */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, g_reg_tpsd_hier, reg_tpsd_hier_pos, reg_tpsd_hier_len, &temp);
+ if (error) goto exit;
+ channelModulation->hierarchy = (Hierarchy)temp;
+
+ /** Get high/low priority */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, g_reg_dec_pri, reg_dec_pri_pos, reg_dec_pri_len, &temp);
+ if (error) goto exit;
+ if (temp)
+ channelModulation->priority = Priority_HIGH;
+ else
+ channelModulation->priority = Priority_LOW;
+
+ /** Get high code rate */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, g_reg_tpsd_hpcr, reg_tpsd_hpcr_pos, reg_tpsd_hpcr_len, &temp);
+ if (error) goto exit;
+ channelModulation->highCodeRate = (CodeRate) temp;
+
+ /** Get low code rate */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, g_reg_tpsd_lpcr, reg_tpsd_lpcr_pos, reg_tpsd_lpcr_len, &temp);
+ if (error) goto exit;
+ channelModulation->lowCodeRate = (CodeRate) temp;
+
+ /** Get guard interval */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, g_reg_tpsd_gi, reg_tpsd_gi_pos, reg_tpsd_gi_len, &temp);
+ if (error) goto exit;
+ channelModulation->interval = (Interval) temp;
+
+ /** Get FFT mode */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, g_reg_tpsd_txmod, reg_tpsd_txmod_pos, reg_tpsd_txmod_len, &temp);
+ if (error) goto exit;
+ channelModulation->transmissionMode = (TransmissionModes) temp;
+
+ /** Get bandwidth */
+ error = Standard_readRegisterBits (demodulator, chip, Processor_OFDM, g_reg_bw, reg_bw_pos, reg_bw_len, &temp);
+ if (error) goto exit;
+ channelModulation->bandwidth = (Bandwidth) temp;
+
+ /** Get frequency */
+ channelModulation->frequency = ganymede->frequency[chip];
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+
+Dword Standard_acquireChannel (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+
+ Byte begin;
+ Byte end;
+ Byte i;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ AcquireChannelRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.frequency = frequency;
+ request.bandwidth = bandwidth;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_ACQUIRECHANNEL,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->architecture == Architecture_DCA) {
+ begin = 0;
+ end = ganymede->chipNumber;
+ } else {
+ begin = chip;
+ end = begin + 1;
+ }
+
+
+ for (i = begin; i < end; i++) {
+ error = Standard_selectBandwidth (demodulator, i, bandwidth, ganymede->adcFrequency);
+ if (error) goto exit;
+ ganymede->bandwidth[i] = bandwidth;
+ }
+
+ error = Standard_maskDcaOutput (demodulator);
+ if (error) goto exit;
+
+ /** Set frequency */
+ for (i = begin; i < end; i++) {
+ error = Standard_setFrequency (demodulator, i, frequency);
+ if (error) goto exit;
+ }
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_setStreamType (
+ IN Demodulator* demodulator,
+ IN StreamType streamType
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ SetStreamTypeRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.streamType = streamType;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_SETSTREAMTYPE,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Dword warning = Error_NO_ERROR;
+ Ganymede* ganymede;
+ Byte i;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Enable DVB-T interrupt if next stream type is StreamType_DVBT_DATAGRAM */
+ if (streamType == StreamType_DVBT_DATAGRAM) {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_dvbt_inten, reg_dvbt_inten_pos, reg_dvbt_inten_len, 1);
+ if (error) goto exit;
+ if ((ganymede->busId == Bus_USB) || (ganymede->busId == Bus_USB11)) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_mpeg_full_speed, reg_mpeg_full_speed_pos, reg_mpeg_full_speed_len, 0);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_mpeg_full_speed, reg_mpeg_full_speed_pos, reg_mpeg_full_speed_len, 1);
+ if (error) goto exit;
+ }
+ }
+ }
+
+ /** Enable DVB-T mode */
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_dvbt_en, reg_dvbt_en_pos, reg_dvbt_en_len, 1);
+ if (error) goto exit;
+ }
+
+
+ /** Enter sub mode */
+ switch (streamType) {
+ case StreamType_DVBT_DATAGRAM :
+ if ((ganymede->busId == Bus_USB) || (ganymede->busId == Bus_USB11)) {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_mp2if_mpeg_ser_mode, mp2if_mpeg_ser_mode_pos, mp2if_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_mp2if_mpeg_par_mode, mp2if_mpeg_par_mode_pos, mp2if_mpeg_par_mode_len, 0);
+ if (error) goto exit;
+ /** Fix current leakage */
+ if (ganymede->chipNumber > 1) {
+ if (ganymede->hostInterface[0]) {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hostb_mpeg_ser_mode, reg_top_hostb_mpeg_ser_mode_pos, reg_top_hostb_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hostb_mpeg_par_mode, reg_top_hostb_mpeg_par_mode_pos, reg_top_hostb_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hosta_mpeg_par_mode, reg_top_hosta_mpeg_par_mode_pos, reg_top_hosta_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ }
+ } else {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hosta_mpeg_par_mode, reg_top_hosta_mpeg_par_mode_pos, reg_top_hosta_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hostb_mpeg_ser_mode, reg_top_hostb_mpeg_ser_mode_pos, reg_top_hostb_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hostb_mpeg_par_mode, reg_top_hostb_mpeg_par_mode_pos, reg_top_hostb_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ }
+ } else {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_mp2if_mpeg_ser_mode, mp2if_mpeg_ser_mode_pos, mp2if_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_mp2if_mpeg_par_mode, mp2if_mpeg_par_mode_pos, mp2if_mpeg_par_mode_len, 0);
+ if (error) goto exit;
+
+ /** Fix current leakage */
+ if (ganymede->chipNumber > 1) {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hosta_mpeg_par_mode, reg_top_hosta_mpeg_par_mode_pos, reg_top_hosta_mpeg_par_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hostb_mpeg_ser_mode, reg_top_hostb_mpeg_ser_mode_pos, reg_top_hostb_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hostb_mpeg_par_mode, reg_top_hostb_mpeg_par_mode_pos, reg_top_hostb_mpeg_par_mode_len, 0);
+ if (error) goto exit;
+ } else {
+ if (ganymede->hostInterface[0]) {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hostb_mpeg_ser_mode, reg_top_hostb_mpeg_ser_mode_pos, reg_top_hostb_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hostb_mpeg_par_mode, reg_top_hostb_mpeg_par_mode_pos, reg_top_hostb_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_top_hosta_mpeg_par_mode, reg_top_hosta_mpeg_par_mode_pos, reg_top_hosta_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ }
+ }
+ }
+ break;
+ case StreamType_DVBT_PARALLEL :
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_mp2if_mpeg_ser_mode, mp2if_mpeg_ser_mode_pos, mp2if_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_mp2if_mpeg_par_mode, mp2if_mpeg_par_mode_pos, mp2if_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+
+ if (i == 0) {
+ if (ganymede->hostInterface[0]) {
+ /** HostA interface is enabled */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_par_mode, reg_top_hosta_mpeg_par_mode_pos, reg_top_hosta_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ } else {
+ /** HostB interface is enabled */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hostb_mpeg_ser_mode, reg_top_hostb_mpeg_ser_mode_pos, reg_top_hostb_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hostb_mpeg_par_mode, reg_top_hostb_mpeg_par_mode_pos, reg_top_hostb_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ }
+ } else {
+ /** HostA interface is enabled */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_par_mode, reg_top_hosta_mpeg_par_mode_pos, reg_top_hosta_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ }
+ }
+ break;
+ case StreamType_DVBT_SERIAL :
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_mp2if_mpeg_ser_mode, mp2if_mpeg_ser_mode_pos, mp2if_mpeg_ser_mode_len, 1);
+ if (error) goto exit;
+
+ if (i == 0) {
+ if (ganymede->hostInterface[0]) {
+ /** HostA interface is enabled */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 1);
+ if (error) goto exit;
+ } else {
+ /** HostB interface is enabled */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hostb_mpeg_ser_mode, reg_top_hostb_mpeg_ser_mode_pos, reg_top_hostb_mpeg_ser_mode_len, 1);
+ if (error) goto exit;
+ }
+ } else {
+ /** HostA interface is enabled */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 1);
+ if (error) goto exit;
+ }
+ }
+ break;
+ }
+ error = User_mpegConfig (demodulator);
+
+ ganymede->streamType = streamType;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_setArchitecture (
+ IN Demodulator* demodulator,
+ IN Architecture architecture
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ SetArchitectureRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.architecture = architecture;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_SETARCHITECTURE,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Word frameSize;
+ Byte packetSize;
+ Byte buffer[2];
+ Byte standAlone[2];
+ Byte upperChip[2];
+ Byte upperHost[2];
+ Byte lowerChip[2];
+ Byte lowerHost[2];
+ Byte dcaEnable[2];
+ Byte phaseLatch[2];
+ Byte fpgaLatch[2];
+ Byte i;
+ Bool pipValid = False;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (architecture == Architecture_DCA) {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ standAlone[i] = 0;
+ upperChip[i] = 0;
+ upperHost[i] = 0;
+ lowerChip[i] = 0;
+ lowerHost[i] = 0;
+ dcaEnable[i] = 1;
+ phaseLatch[i] = 0;
+ fpgaLatch[i] = 0;
+ }
+ if (ganymede->chipNumber == 1) {
+ standAlone[0] = 1;
+ dcaEnable[0] = 0;
+ } else {
+ upperChip[ganymede->chipNumber - 1] = 1;
+ upperHost[0] = 1;
+ lowerChip[0] = 1;
+ lowerHost[ganymede->chipNumber - 1] = 1;
+ phaseLatch[0] = 1;
+ phaseLatch[ganymede->chipNumber - 1] = 1;
+ fpgaLatch[0] = 0x77;
+ fpgaLatch[ganymede->chipNumber - 1] = 0x77;
+ }
+ } else {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ standAlone[i] = 1;
+ upperChip[i] = 0;
+ upperHost[i] = 0;
+ lowerChip[i] = 0;
+ lowerHost[i] = 0;
+ dcaEnable[i] = 0;
+ phaseLatch[i] = 0;
+ fpgaLatch[i] = 0;
+ }
+ }
+
+ if (ganymede->initialized == True) {
+ error = Standard_maskDcaOutput (demodulator);
+ if (error) goto exit;
+ }
+
+ /** Set upper chip first in order to avoid I/O conflict */
+ for (i = ganymede->chipNumber; i > 0; i--) {
+ /** Set dca_upper_chip */
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_OFDM, p_reg_dca_upper_chip, reg_dca_upper_chip_pos, reg_dca_upper_chip_len, upperChip[i - 1]);
+ if (error) goto exit;
+ if (i == 1) {
+ if ((ganymede->busId == Bus_USB) || (ganymede->busId == Bus_USB11)) {
+ if (ganymede->hostInterface[0]) {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_upper, reg_top_hosta_dca_upper_pos, reg_top_hosta_dca_upper_len, upperHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_upper, reg_top_hostb_dca_upper_pos, reg_top_hostb_dca_upper_len, 0);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_upper, reg_top_hostb_dca_upper_pos, reg_top_hostb_dca_upper_len, upperHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_upper, reg_top_hosta_dca_upper_pos, reg_top_hosta_dca_upper_len, 0);
+ if (error) goto exit;
+ }
+ } else {
+ if (ganymede->hostInterface[0]) {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_upper, reg_top_hostb_dca_upper_pos, reg_top_hostb_dca_upper_len, upperHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_upper, reg_top_hosta_dca_upper_pos, reg_top_hosta_dca_upper_len, 0);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_upper, reg_top_hosta_dca_upper_pos, reg_top_hosta_dca_upper_len, upperHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_upper, reg_top_hostb_dca_upper_pos, reg_top_hostb_dca_upper_len, 0);
+ if (error) goto exit;
+ }
+ }
+ } else {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_upper, reg_top_hostb_dca_upper_pos, reg_top_hostb_dca_upper_len, upperHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_upper, reg_top_hosta_dca_upper_pos, reg_top_hosta_dca_upper_len, 0);
+ if (error) goto exit;
+ }
+
+ /** Set dca_lower_chip */
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_OFDM, p_reg_dca_lower_chip, reg_dca_lower_chip_pos, reg_dca_lower_chip_len, lowerChip[i - 1]);
+ if (error) goto exit;
+ if (i == 1) {
+ if ((ganymede->busId == Bus_USB) || (ganymede->busId == Bus_USB11)) {
+ if (ganymede->hostInterface[0]) {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_lower, reg_top_hosta_dca_lower_pos, reg_top_hosta_dca_lower_len, lowerHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_lower, reg_top_hostb_dca_lower_pos, reg_top_hostb_dca_lower_len, 0);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_lower, reg_top_hostb_dca_lower_pos, reg_top_hostb_dca_lower_len, lowerHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_lower, reg_top_hosta_dca_lower_pos, reg_top_hosta_dca_lower_len, 0);
+ if (error) goto exit;
+ }
+ } else {
+ if (ganymede->hostInterface[0]) {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_lower, reg_top_hostb_dca_lower_pos, reg_top_hostb_dca_lower_len, lowerHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_lower, reg_top_hosta_dca_lower_pos, reg_top_hosta_dca_lower_len, 0);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_lower, reg_top_hosta_dca_lower_pos, reg_top_hosta_dca_lower_len, lowerHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_lower, reg_top_hostb_dca_lower_pos, reg_top_hostb_dca_lower_len, 0);
+ if (error) goto exit;
+ }
+ }
+ } else {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hostb_dca_lower, reg_top_hostb_dca_lower_pos, reg_top_hostb_dca_lower_len, lowerHost[i - 1]);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_top_hosta_dca_lower, reg_top_hosta_dca_lower_pos, reg_top_hosta_dca_lower_len, 0);
+ if (error) goto exit;
+ }
+
+ /** Set phase latch */
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_OFDM, p_reg_dca_platch, reg_dca_platch_pos, reg_dca_platch_len, phaseLatch[i - 1]);
+ if (error) goto exit;
+
+ /** Set fpga latch */
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_OFDM, p_reg_dca_fpga_latch, reg_dca_fpga_latch_pos, reg_dca_fpga_latch_len, fpgaLatch[i - 1]);
+ if (error) goto exit;
+ }
+
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ /** Set stand alone */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_dca_stand_alone, reg_dca_stand_alone_pos, reg_dca_stand_alone_len, standAlone[i]);
+ if (error) goto exit;
+
+ /** Set DCA enable */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_dca_en, reg_dca_en_pos, reg_dca_en_len, dcaEnable[i]);
+ if (error) goto exit;
+ }
+
+ if (ganymede->initialized == True) {
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegister (demodulator, i, Processor_OFDM, trigger_ofsm, 0);
+ if (error) goto exit;
+ }
+ }
+
+
+ if ((ganymede->busId == Bus_USB) || (ganymede->busId == Bus_USB11)) {
+ frameSize = User_USB20_FRAME_SIZE_DW;
+ packetSize = (Byte) (User_USB20_MAX_PACKET_SIZE / 4);
+
+ if (ganymede->busId == Bus_USB11) {
+ frameSize = User_USB11_FRAME_SIZE_DW;
+ packetSize = (Byte) (User_USB11_MAX_PACKET_SIZE / 4);
+ }
+
+ if ((ganymede->chipNumber > 1) && (architecture == Architecture_PIP))
+ pipValid = True;
+
+ /** Reset EP4 */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_mp2_sw_rst, reg_mp2_sw_rst_pos, reg_mp2_sw_rst_len, 1);
+ if (error) goto exit;
+
+ /** Reset EP5 */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_mp2if2_sw_rst, reg_mp2if2_sw_rst_pos, reg_mp2if2_sw_rst_len, 1);
+ if (error) goto exit;
+
+ /** Disable EP4 */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_ep4_tx_en, reg_ep4_tx_en_pos, reg_ep4_tx_en_len, 0);
+ if (error) goto exit;
+
+ /** Disable EP5 */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_ep5_tx_en, reg_ep5_tx_en_pos, reg_ep5_tx_en_len, 0);
+ if (error) goto exit;
+
+ /** Disable EP4 NAK */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_ep4_tx_nak, reg_ep4_tx_nak_pos, reg_ep4_tx_nak_len, 0);
+ if (error) goto exit;
+
+ /** Disable EP5 NAK */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_ep5_tx_nak, reg_ep5_tx_nak_pos, reg_ep5_tx_nak_len, 0);
+ if (error) goto exit;
+
+ /** Enable EP4 */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_ep4_tx_en, reg_ep4_tx_en_pos, reg_ep4_tx_en_len, 1);
+ if (error) goto exit;
+
+ /** Set EP4 transfer length */
+ buffer[p_reg_ep4_tx_len_7_0 - p_reg_ep4_tx_len_7_0] = (Byte) frameSize;
+ buffer[p_reg_ep4_tx_len_15_8 - p_reg_ep4_tx_len_7_0] = (Byte) (frameSize >> 8);
+ error = Standard_writeRegisters (demodulator, 0, Processor_LINK, p_reg_ep4_tx_len_7_0, 2, buffer);
+
+ /** Set EP4 packet size */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_ep4_max_pkt, packetSize);
+ if (error) goto exit;
+
+ if (pipValid == True) {
+ /** Enable EP5 */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_LINK, p_reg_ep5_tx_en, reg_ep5_tx_en_pos, reg_ep5_tx_en_len, 1);
+ if (error) goto exit;
+
+ /** Set EP5 transfer length */
+ buffer[p_reg_ep5_tx_len_7_0 - p_reg_ep5_tx_len_7_0] = (Byte) frameSize;
+ buffer[p_reg_ep5_tx_len_15_8 - p_reg_ep5_tx_len_7_0] = (Byte) (frameSize >> 8);
+ error = Standard_writeRegisters (demodulator, 0, Processor_LINK, p_reg_ep5_tx_len_7_0, 2, buffer);
+
+ /** Set EP5 packet size */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_ep5_max_pkt, packetSize);
+ if (error) goto exit;
+ }
+
+
+ /** Disable 15 SER/PAR mode */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_mp2if_mpeg_ser_mode, mp2if_mpeg_ser_mode_pos, mp2if_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_mp2if_mpeg_par_mode, mp2if_mpeg_par_mode_pos, mp2if_mpeg_par_mode_len, 0);
+ if (error) goto exit;
+
+ if (pipValid == True) {
+ /** Enable mp2if2 */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_mp2if2_en, reg_mp2if2_en_pos, reg_mp2if2_en_len, 1);
+ if (error) goto exit;
+
+ for (i = 1; i < ganymede->chipNumber; i++) {
+ /** Enable serial mode */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_mp2if_mpeg_ser_mode, mp2if_mpeg_ser_mode_pos, mp2if_mpeg_ser_mode_len, 1);
+ if (error) goto exit;
+
+ /** Enable HostB serial */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hostb_mpeg_ser_mode, reg_top_hostb_mpeg_ser_mode_pos, reg_top_hostb_mpeg_ser_mode_len, 1);
+ if (error) goto exit;
+ }
+
+ /** Enable tsis */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_tsis_en, reg_tsis_en_pos, reg_tsis_en_len, 1);
+ if (error) goto exit;
+ } else {
+ /** Disable mp2if2 */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_mp2if2_en, reg_mp2if2_en_pos, reg_mp2if2_en_len, 0);
+ if (error) goto exit;
+
+ for (i = 1; i < ganymede->chipNumber; i++) {
+ /** Disable serial mode */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_mp2if_mpeg_ser_mode, mp2if_mpeg_ser_mode_pos, mp2if_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+
+ /** Disable HostB serial */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hostb_mpeg_ser_mode, reg_top_hostb_mpeg_ser_mode_pos, reg_top_hostb_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ }
+
+ /** Disable tsis */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_tsis_en, reg_tsis_en_pos, reg_tsis_en_len, 0);
+ if (error) goto exit;
+ }
+
+ /** Negate EP4 reset */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_mp2_sw_rst, reg_mp2_sw_rst_pos, reg_mp2_sw_rst_len, 0);
+ if (error) goto exit;
+
+ /** Negate EP5 reset */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_mp2if2_sw_rst, reg_mp2if2_sw_rst_pos, reg_mp2if2_sw_rst_len, 0);
+ if (error) goto exit;
+
+ if (pipValid == True) {
+ /** Split 15 PSB to 1K + 1K and enable flow control */
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_mp2if2_half_psb, reg_mp2if2_half_psb_pos, reg_mp2if2_half_psb_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, 0, Processor_OFDM, p_reg_mp2if_stop_en, reg_mp2if_stop_en_pos, reg_mp2if_stop_en_len, 1);
+ if (error) goto exit;
+
+ for (i = 1; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_mpeg_full_speed, reg_mpeg_full_speed_pos, reg_mpeg_full_speed_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_mp2if_stop_en, reg_mp2if_stop_en_pos, reg_mp2if_stop_en_len, 0);
+ if (error) goto exit;
+ }
+ }
+ }
+
+ ganymede->architecture = architecture;
+
+exit:
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_setViterbiRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte superFrameCount,
+ IN Word packetUnit
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ SetStatisticRangeRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.superFrameCount = superFrameCount;
+ request.packetUnit = packetUnit;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_SETSTATISTICRANGE,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte temp0;
+ Byte temp1;
+
+ /** Set super frame count */
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, qnt_vbc_sframe_num, superFrameCount);
+ if (error) goto exit;
+
+ /** Set packet unit. */
+ temp0 = (Byte) packetUnit;
+ temp1 = (Byte) (packetUnit >> 8);
+ error = Standard_writeRegisters (demodulator, chip, Processor_OFDM, rsd_packet_unit_7_0, 1, &temp0);
+ if (error) goto exit;
+ error = Standard_writeRegisters (demodulator, chip, Processor_OFDM, rsd_packet_unit_15_8, 1, &temp1);
+ if (error) goto exit;
+
+exit:
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_getViterbiRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte* frameCount,
+ IN Word* packetUnit
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ GetStatisticRangeRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.superFrameCount = superFrameCount;
+ request.packetUnit = packetUnit;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_GETSTATISTICRANGE,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte temp0;
+ Byte temp1;
+
+ /** Get super frame count */
+ error = Standard_readRegister (demodulator, chip, Processor_OFDM, qnt_vbc_sframe_num, frameCount);
+ if (error) goto exit;
+
+ /** Get packet unit. */
+ error = Standard_readRegisters (demodulator, chip, Processor_OFDM, r_rsd_packet_unit_7_0, 1, &temp0);
+ if (error) goto exit;
+ error = Standard_readRegisters (demodulator, chip, Processor_OFDM, r_rsd_packet_unit_15_8, 1, &temp1);
+ if (error) goto exit;
+ *packetUnit = (Word) (temp1 << 8) + (Word) temp0;
+
+exit:
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_getStatistic (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Statistic* statistic
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ GetStatisticRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.statistic = statistic;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_GETSTATISTIC,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Ganymede* ganymede;
+ Byte quality;
+ Byte strength;
+ Byte buffer[2];
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Get statistic by stream type */
+ error = Standard_readRegisters (demodulator, chip, Processor_OFDM, tpsd_lock, mpeg_lock - tpsd_lock + 1, buffer);
+ if (error) goto exit;
+
+ if (buffer[tpsd_lock - tpsd_lock])
+ ganymede->statistic[chip].signalPresented = True;
+ else
+ ganymede->statistic[chip].signalPresented = False;
+
+ if (buffer[mpeg_lock - tpsd_lock])
+ ganymede->statistic[chip].signalLocked = True;
+ else
+ ganymede->statistic[chip].signalLocked = False;
+
+ error = Standard_getSignalQuality (demodulator, chip, &quality);
+ if (error) goto exit;
+
+ ganymede->statistic[chip].signalQuality = quality;
+
+ error = Standard_getSignalStrength (demodulator, chip, &strength);
+ if (error) goto exit;
+
+ ganymede->statistic[chip].signalStrength = strength;
+
+ *statistic = ganymede->statistic[chip];
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_getInterrupts (
+ IN Demodulator* demodulator,
+ OUT Interrupts* interrupts
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+ Byte value = 0;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Get interrupts by stream type */
+
+
+ *interrupts = Interrupt_NONE;
+
+ /** Read the interrupts register to determine the type of interrupts. */
+ error = Standard_readRegister (demodulator, 0, Processor_LINK, r_link_ofsm_dvbt_int, &value);
+ if (error) goto exit;
+
+ if (value & 0x04) {
+ ganymede->dataReady = True;
+ *interrupts |= Interrupt_DVBT;
+ }
+
+exit:
+ return (error);
+}
+
+
+Dword Standard_clearInterrupt (
+ IN Demodulator* demodulator,
+ IN Interrupt interrupt
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+ Byte value = 0;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Clear interrupt by stream type */
+
+ //error = ganymede->dvbtStandardDescription.clearInterrupt (demodulator, interrupt);
+ value = (Byte) interrupt;
+
+ /** Clear the specific interrupt. */
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_dvbt_intsts, value);
+
+ return (error);
+}
+
+
+Dword Standard_getDataLength (
+ IN Demodulator* demodulator,
+ OUT Dword* dataLength,
+ OUT Bool* valid /** used in DVBH mode */
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Get data length by stream type */
+ switch (ganymede->burstSize) {
+ case BurstSize_1024 :
+ *dataLength = 1024;
+ break;
+ case BurstSize_2048 :
+ *dataLength = 2048;
+ break;
+ case BurstSize_4096 :
+ *dataLength = 4096;
+ break;
+ }
+ *valid = True;
+
+ return (error);
+}
+
+
+Dword Standard_getData (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Get data by stream type */
+
+ //error = ganymede->dvbtStandardDescription.getData (demodulator, bufferLength, buffer);
+
+ if (bufferLength == 0) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+
+ /** IP datagram is locate in a special register 0xF00000 */
+ error = ganymede->cmdDescription->receiveData (demodulator, 0xF00000, bufferLength, buffer);
+ if (error) goto exit;
+
+ ganymede->dataReady = False;
+
+exit:
+ return (error);
+}
+
+
+/** combine Standard_getLength and Standard_getData */
+Dword Standard_getDatagram (
+ IN Demodulator* demodulator,
+ OUT Dword* bufferLength,
+ OUT Byte* buffer
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ GetDatagramRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.bufferLength = bufferLength;
+ request.buffer = buffer;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_GETDATAGRAM,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Ganymede* ganymede;
+ Dword length = 0;
+ Byte value;
+ Bool ready = False;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Get datagram by stream type */
+
+ //error = ganymede->dvbtStandardDescription.getDatagram (demodulator, bufferLength, buffer);
+
+#if User_USE_INTERRUPT
+#else
+
+ error = Standard_readRegisterBits (demodulator, 0, Processor_LINK, r_link_ofsm_ip_valid, link_ofsm_ip_valid_pos, link_ofsm_ip_valid_len, &value);
+ if (error) goto exit;
+
+ if (value) {
+ ganymede->dataReady = True;
+ }
+ if (ganymede->dataReady == False) {
+ *bufferLength = 0;
+ error = Error_NOT_READY;
+ goto exit;
+ }
+#endif
+ switch (ganymede->burstSize) {
+ case BurstSize_1024 :
+ length = 1024;
+ break;
+ case BurstSize_2048 :
+ length = 2048;
+ break;
+ case BurstSize_4096 :
+ length = 4096;
+ break;
+ }
+ if (*bufferLength >= length) {
+ //error = Dvbt_getData (demodulator, length, (Byte*) buffer);
+ //if (error) goto exit;
+
+ if (bufferLength == 0) {
+ error = Error_INVALID_DATA_LENGTH;
+ goto exit;
+ }
+
+
+ /** IP datagram is locate in a special register 0xF00000 */
+ error = ganymede->cmdDescription->receiveData (demodulator, 0xF00000, length, buffer);
+ if (error) goto exit;
+
+ *bufferLength = length;
+
+ ganymede->dataReady = False;
+
+ *bufferLength = length;
+ } else {
+ error = Error_BUFFER_INSUFFICIENT;
+ }
+
+
+exit:
+#endif
+
+ return (error);
+}
+
+
+/** get ir raw code (4 bytes) */
+Dword Standard_getIrCode (
+ IN Demodulator* demodulator,
+ OUT Dword* code
+) {
+ Dword error = Error_NO_ERROR;
+ Byte readBuffer[4];
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ error = Standard_sendCommand (demodulator, Command_IR_GET, 0, Processor_LINK, 0, NULL, 4, readBuffer);
+ if (error) goto exit;
+
+ *code = (Dword) ((readBuffer[0] << 24) + (readBuffer[1] << 16) + (readBuffer[2] << 8) + readBuffer[3]);
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_reboot (
+ IN Demodulator* demodulator
+) {
+ Dword error = Error_NO_ERROR;
+ Dword version;
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ error = Standard_getFirmwareVersion (demodulator, Processor_LINK, &version);
+ if (error) goto exit;
+ if (version == 0xFFFFFFFF) goto exit; /** I2M and I2U */
+ if (version != 0) {
+ for (i = ganymede->chipNumber; i > 0; i--) {
+ error = ganymede->cmdDescription->reboot (demodulator, i - 1);
+ User_delay (demodulator, 1);
+ if (error) goto exit;
+ }
+
+ if ((ganymede->busId == Bus_USB) || (ganymede->busId == Bus_USB11)) goto exit;
+
+ User_delay (demodulator, 10);
+
+ version = 1;
+ for (i = 0; i < 30; i++) {
+ error = Standard_getFirmwareVersion (demodulator, Processor_LINK, &version);
+ if (error == Error_NO_ERROR) break;
+ User_delay (demodulator, 10);
+ }
+ if (error) goto exit;
+ if (version != 0)
+ error = Error_REBOOT_FAIL;
+ }
+ for (i = ganymede->chipNumber; i > 0; i--) {
+ error = Standard_writeRegisterBits (demodulator, i - 1, Processor_LINK, p_reg_p_dmb_sw_reset, reg_p_dmb_sw_reset_pos, reg_p_dmb_sw_reset_len, 1);
+ if (error) goto exit;
+ }
+
+ ganymede->booted = False;
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_controlPowerSaving (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ ControlPowerSavingRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.control = control;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_CONTROLPOWERSAVING,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte temp;
+ Byte begin;
+ Byte end;
+ Byte i;
+ Byte j;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->architecture == Architecture_DCA) {
+ begin = 0;
+ end = ganymede->chipNumber;
+ } else {
+ begin = chip;
+ end = begin + 1;
+ }
+
+ if (control) {
+ /** Power up case */
+ if ((ganymede->busId == Bus_USB) || (ganymede->busId == Bus_USB11)) {
+ for (i = begin; i < end; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_afe_mem0, 3, 1, 0);
+ if (error) goto exit;
+ }
+ } else { /** TS, SPI, and SDIO case */
+ /** not implemented yet */
+ }
+
+ /** Fixed current leakage */
+ switch (ganymede->busId) {
+ case Bus_SPI :
+ case Bus_SDIO :
+ case Bus_USB :
+ case Bus_USB11 :
+ if (ganymede->chipNumber > 1) {
+ for (i = 1; i < ganymede->chipNumber; i++) {
+ /** Disable HostA parallel */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_par_mode, reg_top_hosta_mpeg_par_mode_pos, reg_top_hosta_mpeg_par_mode_len, 0);
+ if (error) goto exit;
+ }
+ }
+ break;
+ }
+ } else {
+ /** Power down case */
+ if ((ganymede->busId == Bus_USB) || (ganymede->busId == Bus_USB11)) {
+ for (i = begin; i < end; i++) {
+ error = Standard_writeRegister (demodulator, i, Processor_OFDM, suspend_flag, 1);
+ if (error) goto exit;
+ error = Standard_writeRegister (demodulator, i, Processor_OFDM, trigger_ofsm, 0);
+ if (error) goto exit;
+
+ for (j = 0; j < 150; j++) {
+ error = Standard_readRegister (demodulator, i, Processor_OFDM, suspend_flag, &temp);
+ if (error) goto exit;
+ if (!temp) break;
+ User_delay (demodulator, 10);
+ }
+ error = Standard_writeRegisterBits (demodulator, i, Processor_OFDM, p_reg_afe_mem0, 3, 1, 1);
+ if (error) goto exit;
+ }
+ } else { /** TS SPI SDIO */
+ /** not implemented yet */
+ }
+
+ /** Fixed current leakage */
+ switch (ganymede->busId) {
+ case Bus_SPI :
+ case Bus_SDIO :
+ case Bus_USB :
+ case Bus_USB11 :
+ if (ganymede->chipNumber > 1) {
+ for (i = 1; i < ganymede->chipNumber; i++) {
+ /** Enable HostA parallel */
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_ser_mode, reg_top_hosta_mpeg_ser_mode_pos, reg_top_hosta_mpeg_ser_mode_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_top_hosta_mpeg_par_mode, reg_top_hosta_mpeg_par_mode_pos, reg_top_hosta_mpeg_par_mode_len, 1);
+ if (error) goto exit;
+ }
+ }
+ break;
+ }
+ }
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_controlTunerPowerSaving (
+ IN Demodulator* demodulator,
+ IN Byte control
+) {
+ Dword error = Error_NO_ERROR;
+
+ if (control) {
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_top_gpioh7_en, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_top_gpioh7_on, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_top_gpioh7_o, 1);
+ if (error) goto exit;
+ } else {
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_top_gpioh7_en, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_top_gpioh7_on, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, 0, Processor_LINK, p_reg_top_gpioh7_o, 0);
+ if (error) goto exit;
+ }
+
+exit:
+ return (error);
+}
+
+
+Dword Standard_controlPidFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ ControlPidFilterRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.control = control;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_CONTROLPIDFILTER,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_en, mp2if_pid_en_pos, mp2if_pid_en_len, control);
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_resetPidFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+#else
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_rst, mp2if_pid_rst_pos, mp2if_pid_rst_len, 1);
+ if (error) goto exit;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_addPidToFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte index,
+ IN Pid pid
+) {
+ Dword error = Error_NO_ERROR;
+
+#if User_USE_DRIVER
+ DWORD number;
+ BOOL result;
+ AddPidRequest request;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ if (ganymede->driver != NULL) {
+ request.chip = chip;
+ request.pid = pid;
+ result = DeviceIoControl (
+ ganymede->driver,
+ IOCTL_AFA_DEMOD_ADDPID,
+ &request,
+ sizeof (request),
+ NULL,
+ 0,
+ &number,
+ NULL
+ );
+ error = request.error;
+ } else {
+ error = Error_DRIVER_INVALID;
+ }
+#else
+ Byte writeBuffer[2];
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+ /** Enable pid filter */
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_en, mp2if_pid_en_pos, mp2if_pid_en_len, 1);
+ if (error) goto exit;
+
+ writeBuffer[0] = (Byte) pid.value;
+ writeBuffer[1] = (Byte) (pid.value >> 8);
+
+ error = Standard_writeRegisters (demodulator, chip, Processor_OFDM, p_mp2if_pid_dat_l, 2, writeBuffer);
+ if (error) goto exit;
+
+ error = Standard_writeRegisterBits (demodulator, chip, Processor_OFDM, p_mp2if_pid_index_en, mp2if_pid_index_en_pos, mp2if_pid_index_en_len, 1);
+ if (error) goto exit;
+
+ error = Standard_writeRegister (demodulator, chip, Processor_OFDM, p_mp2if_pid_index, index);
+ if (error) goto exit;
+
+exit :
+#endif
+
+ return (error);
+}
+
+
+Dword Standard_setBurstSize (
+ IN Demodulator* demodulator,
+ IN BurstSize burstSize
+) {
+ Dword error = Error_NO_ERROR;
+ Byte i;
+ Ganymede* ganymede;
+
+ ganymede = (Ganymede*) demodulator;
+
+
+ if (burstSize == BurstSize_4096) {
+ error = Error_NOT_SUPPORT;
+ goto exit;
+ }
+
+
+ switch (burstSize) {
+ case BurstSize_1024 :
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_dvbt_path, reg_dvbt_path_pos, reg_dvbt_path_len, 1);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_dvbt_bufsize, reg_dvbt_bufsize_pos, reg_dvbt_bufsize_len, 1);
+ if (error) goto exit;
+ }
+ ganymede->burstSize = BurstSize_1024;
+ break;
+ case BurstSize_2048 :
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_dvbt_path, reg_dvbt_path_pos, reg_dvbt_path_len, 1);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_dvbt_bufsize, reg_dvbt_bufsize_pos, reg_dvbt_bufsize_len, 0);
+ if (error) goto exit;
+ }
+ ganymede->burstSize = BurstSize_2048;
+
+ break;
+ case BurstSize_4096 :
+ for (i = 0; i < ganymede->chipNumber; i++) {
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_dvbt_path, reg_dvbt_path_pos, reg_dvbt_path_len, 0);
+ if (error) goto exit;
+ error = Standard_writeRegisterBits (demodulator, i, Processor_LINK, p_reg_dvbt_bufsize, reg_dvbt_bufsize_pos, reg_dvbt_bufsize_len, 1);
+ if (error) goto exit;
+ }
+ ganymede->burstSize = BurstSize_4096;
+ break;
+ }
+
+exit :
+ return (error);
+}
+
+
+Dword Standard_getBurstSize (
+ IN Demodulator* demodulator,
+ IN BurstSize* burstSize
+) {
+ Dword error = Error_NO_ERROR;
+ Byte path;
+ Byte size;
+
+ error = Standard_readRegisterBits (demodulator, 0, Processor_LINK, p_reg_dvbt_path, reg_dvbt_path_pos, reg_dvbt_path_len, &path);
+ if (error) goto exit;
+ error = Standard_readRegisterBits (demodulator, 0, Processor_LINK, p_reg_dvbt_bufsize, reg_dvbt_bufsize_pos, reg_dvbt_bufsize_len, &size);
+ if (error) goto exit;
+
+ if (path) {
+ if (size) {
+ *burstSize = BurstSize_1024;
+ } else {
+ *burstSize = BurstSize_2048;
+ }
+ } else {
+ if (size) {
+ *burstSize = BurstSize_4096;
+ } else {
+ *burstSize = BurstSize_2048;
+ }
+ }
+
+exit :
+ return (error);
+}
diff --git a/api/standard.h b/api/standard.h
new file mode 100644
index 0000000..fcefddc
--- /dev/null
+++ b/api/standard.h
@@ -0,0 +1,1013 @@
+#ifndef __STANDARD_H__
+#define __STANDARD_H__
+
+
+#include "type.h"
+#include "user.h"
+#include "error.h"
+#include "register.h"
+#include "variable.h"
+#include "version.h"
+
+#if User_USE_DRIVER
+#include <tchar.h>
+#include "iocontrol.h"
+#endif
+
+
+/**
+ * Send the command to device.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param command the command to be send.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param writeBufferLength the number of registers to be write.
+ * @param writeBuffer a byte array which is used to store values to be write.
+ * @param readBufferLength the number of registers to be read.
+ * @param readBuffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_sendCommand (
+ IN Demodulator* demodulator,
+ OUT Word command,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword writeBufferLength,
+ IN Byte* writeBuffer,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+/**
+ * Program the bandwidth related parameters to demodulator.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param bandwidth DVB channel bandwidth in MHz. The possible values
+ * are 5, 6, 7, and 8 (MHz).
+ * @param adcFrequency The value of desire internal ADC frequency (Hz).
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_selectBandwidth (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth, /** KHz */
+ IN Dword adcFrequency /** Hz, ex: 20480000 */
+);
+
+
+/**
+ * Set frequency.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param frequency The desired frequency.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ */
+Dword Standard_setFrequency (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Dword frequency
+);
+
+
+/**
+ * Load firmware to device
+ *
+ * @param demodulator the handle of demodulator.
+ * @firmwareCodes pointer to fw binary.
+ * @firmwareSegments pointer to fw segments.
+ * @firmwarePartitions pointer to fw partition.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_loadFirmware (
+ IN Demodulator* demodulator,
+ IN Byte* firmwareCodes,
+ IN Segment* firmwareSegments,
+ IN Byte* firmwarePartitions
+);
+
+
+/**
+ * Load initial script to device
+ *
+ * @param demodulator the handle of demodulator.
+ * @streamType current stream type (useless for Ganymede).
+ * @scriptSets pointer to scriptSets.
+ * @scripts pointer to fw scripts.
+ * @tunerScriptSets pointer to tunerScriptSets.
+ * @tunerScripts pointer to tunerScripts.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_loadScript (
+ IN Demodulator* demodulator,
+ IN StreamType streamType,
+ IN Word* scriptSets,
+ IN ValueSet* scripts,
+ IN Word* tunerScriptSets,
+ IN ValueSet* tunerScripts
+);
+
+
+/**
+ * Write one byte (8 bits) to a specific register in demodulator.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be written.
+ * @param value the value to be written.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_writeRegister (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte value
+);
+
+
+/**
+ * Write a sequence of bytes to the contiguous registers in demodulator.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 5.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the start address of the registers to be written.
+ * @param bufferLength the number of registers to be written.
+ * @param buffer a byte array which is used to store values to be written.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_writeRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Write a sequence of bytes to the contiguous registers in slave device.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 6 (one more byte to specify tuner address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param registerAddress the start address of the registers to be read.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_writeTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Write a sequence of bytes to the contiguous registers in slave device
+ * through specified interface (1, 2, 3).
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 6 (one more byte to specify tuner address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param interfaceIndex the index of interface. The possible values are
+ * 1~3.
+ * @param slaveAddress the I2c address of slave device.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_writeGenericRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte interfaceIndex,
+ IN Byte slaveAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Write a sequence of bytes to the contiguous cells in the EEPROM.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 5 (firmware will detect EEPROM address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param registerAddress the start address of the cells to be written.
+ * @param bufferLength the number of cells to be written.
+ * @param buffer a byte array which is used to store values to be written.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_writeEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Modify bits in the specific register.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be written.
+ * @param position the start position of bits to be modified (0 means the
+ * LSB of the specifyed register).
+ * @param length the length of bits.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_writeRegisterBits (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte position,
+ IN Byte length,
+ IN Byte value
+);
+
+
+/**
+ * Read one byte (8 bits) from a specific register in demodulator.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be read.
+ * @param value the pointer used to store the value read from demodulator
+ * register.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_readRegister (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ OUT Byte* value
+);
+
+
+/**
+ * Read a sequence of bytes from the contiguous registers in demodulator.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 5.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be read.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_readRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ * Read a sequence of bytes from the contiguous registers in tuner.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 6 (one more byte to specify tuner address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param registerAddress the start address of the registers to be read.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_readTunerRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Read a sequence of bytes from the contiguous registers in slave device
+ * through specified interface (1, 2, 3).
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 6 (one more byte to specify tuner address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param interfaceIndex the index of interface. The possible values are
+ * 1~3.
+ * @param slaveAddress the I2c address of slave device.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_readGenericRegisters (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte interfaceIndex,
+ IN Byte slaveAddress,
+ IN Byte bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Read a sequence of bytes from the contiguous cells in the EEPROM.
+ * The maximum burst size is restricted by the capacity of bus. If bus
+ * could transfer N bytes in one cycle, then the maximum value of
+ * bufferLength would be N - 5 (firmware will detect EEPROM address).
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param registerAddress the start address of the cells to be read.
+ * @param registerAddressLength the valid bytes of registerAddress.
+ * @param bufferLength the number of cells to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_readEepromValues (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word registerAddress,
+ IN Byte bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ * Read bits of the specified register.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param processor The processor of specified register. Because each chip
+ * has two processor so user have to specify the processor. The
+ * possible values are Processor_LINK and Processor_OFDM.
+ * @param registerAddress the address of the register to be read.
+ * @param position the start position of bits to be read (0 means the
+ * LSB of the specifyed register).
+ * @param length the length of bits.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_readRegisterBits (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte position,
+ IN Byte length,
+ OUT Byte* value
+);
+
+
+
+
+
+/**
+ * Get the version of hardware.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param version the version of hardware.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getHardwareVersion (
+ IN Demodulator* demodulator,
+ OUT Dword* version
+);
+
+
+/**
+ * Get the version of firmware.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param version the version of firmware.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getFirmwareVersion (
+ IN Demodulator* demodulator,
+ IN Processor processor,
+ OUT Dword* version
+);
+
+
+/**
+ * Set the counting range for Post-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param postErrorCount the number of super frame for Pre-Viterbi.
+ * @param postBitCount the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getPostVitBer (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Dword* postErrorCount, /** 24 bits */
+ OUT Dword* postBitCount, /** 16 bits */
+ OUT Word* abortCount
+);
+
+
+/**
+ * Get RF AGC gain.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param rfAgc the value of RF AGC.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getRfAgcGain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* rfAgc
+);
+
+
+/**
+ * Get IF AGC gain.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param ifAgc the value of IF AGC.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getIfAgcGain (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* ifAgc
+);
+
+
+/**
+ * Get siganl quality.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param quality The value of signal quality.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getSignalQuality (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* quality
+);
+
+
+/**
+ * Get siganl strength.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param strength The value of signal strength.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getSignalStrength (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Byte* strength
+);
+
+
+/**
+ * Get signal strength in dbm
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param rfpullUpVolt_X10 the pullup voltag of RF multiply 10.
+ * @param ifpullUpVolt_X10 the pullup voltag of IF multiply 10.
+ * @param strengthDbm The value of signal strength in DBm.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getSignalStrengthDbm (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Long rfpullUpVolt_X10, /** RF pull up voltage multiplied by 10 */
+ IN Long ifpullUpVolt_X10, /** IF pull up voltage multiplied by 10 */
+ OUT Long* strengthDbm /** DBm */
+);
+
+
+/**
+ * Load the IR table for USB device.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param tableLength The length of IR table.
+ * @param table The content of IR table.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_loadIrTable (
+ IN Demodulator* demodulator,
+ IN Word tableLength,
+ IN Byte* table
+);
+
+
+/**
+ * First, download firmware from host to demodulator. Actually, firmware is
+ * put in firmware.h as a part of source code. Therefore, in order to
+ * update firmware the host have to re-compile the source code.
+ * Second, setting all parameters which will be need at the beginning.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chipNumber The total number of demodulators.
+ * @param sawBandwidth SAW filter bandwidth in MHz. The possible values
+ * are 6000, 7000, and 8000 (KHz).
+ * @param streamType The format of output stream.
+ * @param architecture the architecture of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_initialize (
+ IN Demodulator* demodulator,
+ IN Byte chipNumber,
+ IN Word sawBandwidth,
+ IN StreamType streamType,
+ IN Architecture architecture
+);
+
+
+/**
+ * Power off the demodulators.
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_finalize (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Standard_isTpsLocked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Standard_isMpeg2Locked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param locked the result of frequency tuning. True if there is
+ * demodulator can lock signal, False otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Standard_isLocked (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Bool* locked
+);
+
+
+/**
+ * Reset demodulator.
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_reset (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ * Get channel modulation related information.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param channelModulation The modulation of channel.
+ * @return Error_NO_ERROR: successful, other non-zero error code otherwise.
+ */
+Dword Standard_getChannelModulation (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT ChannelModulation* channelModulation
+);
+
+
+/**
+ * Specify the bandwidth of channel and tune the channel to the specific
+ * frequency. Afterwards, host could use output parameter dvbH to determine
+ * if there is a DVB-H signal.
+ * In DVB-T mode, after calling this function the output parameter dvbH
+ * should return False and host could use output parameter "locked" to check
+ * if the channel has correct TS output.
+ * In DVB-H mode, after calling this function the output parameter dvbH should
+ * return True and host could start get platform thereafter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param bandwidth The channel bandwidth.
+ * DVB-T: 5000, 6000, 7000, and 8000 (KHz).
+ * DVB-H: 5000, 6000, 7000, and 8000 (KHz).
+ * T-DMB: 5000, 6000, 7000, and 8000 (KHz).
+ * FM: 100, and 200 (KHz).
+ * @param frequency the channel frequency in KHz.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_acquireChannel (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+
+
+/**
+ * Set the output stream type of chip. Because the device could output in
+ * many stream type, therefore host have to choose one type before receive
+ * data.
+ *
+ * Note: Please refer to the example of Standard_acquireChannel when host want
+ * to detect the available channels.
+ * Note: After host know all the available channels, and want to change to
+ * specific channel, host have to choose output mode before receive
+ * data. Please refer the example of Standard_setStreamType.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param streamType the possible values are
+ * DVB-H: StreamType_DVBH_DATAGRAM
+ * StreamType_DVBH_DATABURST
+ * DVB-T: StreamType_DVBT_DATAGRAM
+ * StreamType_DVBT_PARALLEL
+ * StreamType_DVBT_SERIAL
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_setStreamType (
+ IN Demodulator* demodulator,
+ IN StreamType streamType
+);
+
+
+/**
+ * Set the architecture of chip. When two of our device are using, they could
+ * be operated in Diversity Combine Architecture (DCA) or (PIP). Therefore,
+ * host could decide which mode to be operated.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param architecture the possible values are
+ * Architecture_DCA
+ * Architecture_PIP
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_setArchitecture (
+ IN Demodulator* demodulator,
+ IN Architecture architecture
+);
+
+
+/**
+ * Set the counting range for Pre-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7. NOTE: When the architecture is set to Architecture_DCA
+ * this parameter is regard as don't care.
+ * @param frameCount the number of super frame for Pre-Viterbi.
+ * @param packetUnit the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_setViterbiRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte superFrameCount,
+ IN Word packetUnit
+);
+
+
+/**
+ * Get the counting range for Pre-Viterbi and Post-Viterbi.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param frameCount the number of super frame for Pre-Viterbi.
+ * @param packetUnit the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getViterbiRange (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte* frameCount,
+ IN Word* packetUnit
+);
+
+
+/**
+ * Get the statistic values of demodulator, it includes Pre-Viterbi BER,
+ * Post-Viterbi BER, Abort Count, Signal Presented Flag, Signal Locked Flag,
+ * Signal Quality, Signal Strength, Delta-T for DVB-H time slicing.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param statistic the structure that store all statistic values.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getStatistic (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ OUT Statistic* statistic
+);
+
+
+/**
+ * Get interrupt status.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param interrupts the type of interrupts.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getInterrupts (
+ IN Demodulator* demodulator,
+ OUT Interrupts* interrupts
+);
+
+
+/**
+ * Clear interrupt status.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param interrupt interrupt name.
+ * @param packetUnit the number of packet unit for Post-Viterbi.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_clearInterrupt (
+ IN Demodulator* demodulator,
+ IN Interrupt interrupt
+);
+
+
+/**
+ * Get data length.
+ * In DVB-T mode, data length should always equals 2K,
+ * In DVB-H mode, data length would be the length of IP datagram.
+ * NOTE: data can't be transfer via I2C bus, in order to transfer data
+ * host must provide SPI bus.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param dataLength the length of data.
+ * @param valid True if the data length is valid.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getDataLength (
+ IN Demodulator* demodulator,
+ OUT Dword* dataLength,
+ OUT Bool* valid
+);
+
+
+/**
+ * Get DVB-T data.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param bufferLength the length of buffer.
+ * @param buffer buffer used to get Data.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_getData (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ * Get datagram from device.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param bufferLength the number of registers to be read.
+ * @param buffer a byte array which is used to store values to be read.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @return Error_BUFFER_INSUFFICIENT: if buffer is too small.
+ */
+Dword Standard_getDatagram (
+ IN Demodulator* demodulator,
+ OUT Dword* bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param code the value of IR raw code, the size should be 4 or 6,
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Standard_getIrCode (
+ IN Demodulator* demodulator,
+ OUT Dword* code
+);
+
+
+/**
+ * Return to boot code
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Standard_reboot (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param contorl 1: Power up, 0: Power down;
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Standard_controlPowerSaving (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control
+);
+
+
+/**
+ *
+ * @param demodulator the handle of demodulator.
+ * @param contorl 1: Power up, 0: Power down;
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Standard_controlTunerPowerSaving (
+ IN Demodulator* demodulator,
+ IN Byte control
+);
+
+
+/**
+ * Control PID fileter
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param contorl 0: Disable, 1: Enable.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @example <pre>
+ * </pre>
+ */
+Dword Standard_controlPidFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte control
+);
+
+
+/**
+ * Reset PID filter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_resetPidFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ * Add PID to PID filter.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param chip The index of demodulator. The possible values are
+ * 0~7.
+ * @param pid the PID that will be add to PID filter.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+Dword Standard_addPidToFilter (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte index,
+ IN Pid pid
+);
+
+
+/**
+ * Set datagram burst size.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param burstSize the burst size.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @return Error_NOT_SUPPORT: if the burst size is not support.
+ */
+Dword Standard_setBurstSize (
+ IN Demodulator* demodulator,
+ IN BurstSize burstSize
+);
+
+
+/**
+ * Get datagram burst size.
+ *
+ * @param demodulator the handle of demodulator.
+ * @param burstSize the burst size.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ * @return Error_NOT_SUPPORT: if the burst size is not support.
+ */
+Dword Standard_getBurstSize (
+ IN Demodulator* demodulator,
+ IN BurstSize* burstSize
+);
+#endif \ No newline at end of file
diff --git a/api/type.h b/api/type.h
new file mode 100644
index 0000000..df56aad
--- /dev/null
+++ b/api/type.h
@@ -0,0 +1,915 @@
+#ifndef __TYPE_H__
+#define __TYPE_H__
+
+#include "userdef.h"// for Linux
+
+#define IN
+#define OUT
+#define INOUT
+
+
+/**
+ * The type of handle.
+ */
+typedef void* Handle;
+
+
+/**
+ * The type defination of 8-bits unsigned type.
+ */
+typedef unsigned char Byte;
+
+
+/**
+ * The type defination of 16-bits unsigned type.
+ */
+typedef unsigned short Word;
+
+
+/**
+ * The type defination of 32-bits unsigned type.
+ */
+typedef unsigned long Dword;
+
+
+/**
+ * The type defination of 16-bits signed type.
+ */
+typedef short Short;
+
+
+/**
+ * The type defination of 32-bits signed type.
+ */
+typedef long Long;
+
+
+#include "inttype.h" /** releaseExternalRemove */
+
+/**
+ * The type defination of Bool
+ */
+typedef enum {
+ False = 0,
+ True = 1
+} Bool;
+
+
+/**
+ * The type defination of Segment
+ */
+typedef struct {
+ Byte segmentType; /** 0:Firmware download 1:Rom copy 2:Direct command */
+ Dword segmentLength;
+} Segment;
+
+
+/**
+ * The type defination of Bandwidth.
+ */
+typedef enum {
+ Bandwidth_6M = 0, /** Signal bandwidth is 6MHz */
+ Bandwidth_7M, /** Signal bandwidth is 7MHz */
+ Bandwidth_8M, /** Signal bandwidth is 8MHz */
+ Bandwidth_5M /** Signal bandwidth is 5MHz */
+} Bandwidth;
+
+
+/**
+ * The type defination of TransmissionMode.
+ */
+typedef enum {
+ TransmissionMode_2K = 0, /** OFDM frame consists of 2048 different carriers (2K FFT mode) */
+ TransmissionMode_8K = 1, /** OFDM frame consists of 8192 different carriers (8K FFT mode) */
+ TransmissionMode_4K = 2 /** OFDM frame consists of 4096 different carriers (4K FFT mode) */
+} TransmissionModes;
+
+
+/**
+ * The type defination of Constellation.
+ */
+typedef enum {
+ Constellation_QPSK = 0, /** Signal uses QPSK constellation */
+ Constellation_16QAM, /** Signal uses 16QAM constellation */
+ Constellation_64QAM /** Signal uses 64QAM constellation */
+} Constellation;
+
+
+/**
+ * The type defination of Interval.
+ */
+typedef enum {
+ Interval_1_OVER_32 = 0, /** Guard interval is 1/32 of symbol length */
+ Interval_1_OVER_16, /** Guard interval is 1/16 of symbol length */
+ Interval_1_OVER_8, /** Guard interval is 1/8 of symbol length */
+ Interval_1_OVER_4 /** Guard interval is 1/4 of symbol length */
+} Interval;
+
+
+/**
+ * The type defination of Priority.
+ */
+typedef enum {
+ Priority_HIGH = 0, /** DVB-T and DVB-H - identifies high-priority stream */
+ Priority_LOW /** DVB-T and DVB-H - identifies low-priority stream */
+} Priority;
+
+
+/**
+ * The type defination of CodeRate.
+ */
+typedef enum {
+ CodeRate_1_OVER_2 = 0, /** Signal uses FEC coding ratio of 1/2 */
+ CodeRate_2_OVER_3, /** Signal uses FEC coding ratio of 2/3 */
+ CodeRate_3_OVER_4, /** Signal uses FEC coding ratio of 3/4 */
+ CodeRate_5_OVER_6, /** Signal uses FEC coding ratio of 5/6 */
+ CodeRate_7_OVER_8, /** Signal uses FEC coding ratio of 7/8 */
+ CodeRate_NONE /** None, NXT doesn't have this one */
+} CodeRate;
+
+
+/**
+ * TPS Hierarchy and Alpha value.
+ */
+typedef enum {
+ Hierarchy_NONE = 0, /** Signal is non-hierarchical */
+ Hierarchy_ALPHA_1, /** Signalling format uses alpha of 1 */
+ Hierarchy_ALPHA_2, /** Signalling format uses alpha of 2 */
+ Hierarchy_ALPHA_4 /** Signalling format uses alpha of 4 */
+} Hierarchy;
+
+
+/**
+ * The defination of SubchannelType.
+ */
+typedef enum {
+ SubchannelType_AUDIO = 0, /** Signal in subchannel is audio format */
+ SubchannelType_VIDEO = 1, /** Signal in subchannel is video format */
+ SubchannelType_PACKET = 3, /** Signal in subchannel is packet format */
+ SubchannelType_ENHANCEPACKET = 4 /** Signal in subchannel is enhance packet format */
+} SubchannelType;
+
+
+/**
+ * The defination of ProtectionLevel.
+ */
+typedef enum {
+ ProtectionLevel_NONE = 0x00, /** The protection level of subchannel is none */
+ ProtectionLevel_PL1 = 0x01, /** The protection level of subchannel is level 1 */
+ ProtectionLevel_PL2 = 0x02, /** The protection level of subchannel is level 2 */
+ ProtectionLevel_PL3 = 0x03, /** The protection level of subchannel is level 3 */
+ ProtectionLevel_PL4 = 0x04, /** The protection level of subchannel is level 4 */
+ ProtectionLevel_PL5 = 0x05, /** The protection level of subchannel is level 5 */
+ ProtectionLevel_PL1A = 0x1A, /** The protection level of subchannel is level 1A */
+ ProtectionLevel_PL2A = 0x2A, /** The protection level of subchannel is level 2A */
+ ProtectionLevel_PL3A = 0x3A, /** The protection level of subchannel is level 3A */
+ ProtectionLevel_PL4A = 0x4A, /** The protection level of subchannel is level 4A */
+ ProtectionLevel_PL1B = 0x1B, /** The protection level of subchannel is level 1B */
+ ProtectionLevel_PL2B = 0x2B, /** The protection level of subchannel is level 2B */
+ ProtectionLevel_PL3B = 0x3B, /** The protection level of subchannel is level 3B */
+ ProtectionLevel_PL4B = 0x4B /** The protection level of subchannel is level 4B */
+} ProtectionLevel;
+
+
+/**
+ * The defination of ChannelInformation.
+ */
+typedef struct {
+ Dword frequency; /** Channel frequency in KHz. */
+ TransmissionModes transmissionMode; /** Number of carriers used for OFDM signal */
+ Constellation constellation; /** Constellation scheme (FFT mode) in use */
+ Interval interval; /** Fraction of symbol length used as guard (Guard Interval) */
+ Priority priority; /** The priority of stream */
+ CodeRate highCodeRate; /** FEC coding ratio of high-priority stream */
+ CodeRate lowCodeRate; /** FEC coding ratio of low-priority stream */
+ Hierarchy hierarchy; /** Hierarchy levels of OFDM signal */
+ Bandwidth bandwidth;
+} ChannelModulation;
+
+
+/**
+ * The defination of SubchannelModulation. This structure is used to
+ * represent subchannel modulation when device is operate in T-DMB/DAB mode.
+ *
+ */
+typedef struct {
+ Byte subchannelId; /** The ID of subchannel. */
+ Word subchannelSize; /** The size of subchannel. */
+ Word bitRate; /** The bit rate of subchannel. */
+ Byte transmissionMode; /** The transmission mode of subchannel, possible values are: 1, 2, 3, 4. */
+ ProtectionLevel protectionLevel; /** The protection level of subchannel. */
+ SubchannelType subchannelType; /** The type of subchannel */
+ Byte conditionalAccess; /** If a conditional access exist */
+ Byte tiiPrimary; /** TII primary */
+ Byte tiiCombination; /** TII combination */
+} SubchannelModulation;
+
+
+/**
+ * The type defination of IpVersion.
+ */
+typedef enum {
+ IpVersion_IPV4 = 0, /** The IP version if IPv4 */
+ IpVersion_IPV6 = 1 /** The IP version if IPv6 */
+} IpVersion;
+
+
+/**
+ * The type defination of Ip.
+ */
+typedef struct {
+ IpVersion version; /** The version of IP. See the defination of IpVersion. */
+ Priority priority; /** The priority of IP. See the defination of Priority. */
+ Bool cache; /** True: IP datagram will be cached in device's buffer. Fasle: IP datagram will be transfer to host. */
+ Byte address[16]; /** The byte array to store IP address. */
+} Ip;
+
+
+/**
+ * The type defination of Platform.
+ * Mostly used is in DVB-H standard
+ */
+typedef struct {
+ Dword platformId; /** The ID of platform. */
+ char iso639LanguageCode[3]; /** The ISO 639 language code for platform name. */
+ Byte platformNameLength; /** The length of platform name. */
+ char platformName[32]; /** The char array to store platform name. */
+ Word bandwidth; /** The operating channel bandwith of this platform. */
+ Dword frequency; /** The operating channel frequency of this platform. */
+ Byte* information; /** The extra information about this platform. */
+ Word informationLength; /** The length of information. */
+ Bool hasInformation; /** The flag to indicate if there exist extra information. */
+ IpVersion ipVersion; /** The IP version of this platform. */
+} Platform;
+
+
+/**
+ * The type defination of Label.
+ */
+typedef struct {
+ Byte charSet;
+ Word charFlag;
+ Byte string[16];
+} Label;
+
+
+/**
+ * The type defination of Ensemble.
+ */
+typedef struct {
+ Word ensembleId;
+ Label ensembleLabel;
+ Byte totalServices;
+} Ensemble;
+
+
+/**
+ * The type defination of Service.
+ * Mostly used is in T-DMB standard
+ */
+typedef struct {
+ Byte serviceType; /** Service Type(P/D): 0x00: Program, 0x80: Data */
+ Dword serviceId;
+ Dword frequency;
+ Label serviceLabel;
+ Byte totalComponents;
+} Service;
+
+
+/**
+ * The type defination of Service Component.
+ */
+typedef struct {
+ Byte serviceType; /** Service Type(P/D): 0x00: Program, 0x80: Data */
+ Dword serviceId; /** Service ID */
+ Word componentId; /** Stream audio/data is subchid, packet mode is SCId */
+ Byte componentIdService; /** Component ID within Service */
+ Label componentLabel; /** The label of component. See the defination of Label. */
+ Byte language; /** Language code */
+ Byte primary; /** Primary/Secondary */
+ Byte conditionalAccess; /** Conditional Access flag */
+ Byte componentType; /** Component Type (A/D) */
+ Byte transmissionId; /** Transmission Mechanism ID */
+} Component;
+
+
+/**
+ * The type defination of Target.
+ */
+typedef enum {
+ SectionType_MPE = 0, /** Stands for MPE data. */
+ SectionType_SIPSI, /** Stands for SI/PSI table, but don't have to specify table ID. */
+ SectionType_TABLE /** Stands for SI/PSI table. */
+} SectionType;
+
+
+/**
+ * The type defination of FrameRow.
+ */
+typedef enum {
+ FrameRow_256 = 0, /** There should be 256 rows for each column in MPE-FEC frame. */
+ FrameRow_512, /** There should be 512 rows for each column in MPE-FEC frame. */
+ FrameRow_768, /** There should be 768 rows for each column in MPE-FEC frame. */
+ FrameRow_1024 /** There should be 1024 rows for each column in MPE-FEC frame. */
+} FrameRow;
+
+
+/**
+ * The type defination of Pid.
+ *
+ * In DVB-T mode, only value is valid. In DVB-H mode,
+ * as sectionType = SectionType_SIPSI: only value is valid.
+ * as sectionType = SectionType_TABLE: both value and table is valid.
+ * as sectionType = SectionType_MPE: except table all other fields is valid.
+ */
+typedef struct {
+ Byte table; /** The table ID. Which is used to filter specific SI/PSI table. */
+ Byte duration; /** The maximum burst duration. It can be specify to 0xFF if user don't know the exact value. */
+ FrameRow frameRow; /** The frame row of MPE-FEC. It means the exact number of rows for each column in MPE-FEC frame. */
+ SectionType sectionType; /** The section type of pid. See the defination of SectionType. */
+ Priority priority; /** The priority of MPE data. Only valid when sectionType is set to SectionType_MPE. */
+ IpVersion version; /** The IP version of MPE data. Only valid when sectionType is set to SectionType_MPE. */
+ Bool cache; /** True: MPE data will be cached in device's buffer. Fasle: MPE will be transfer to host. */
+ Word value; /** The 13 bits Packet ID. */
+} Pid;
+
+
+/**
+ * The type defination of ValueSet.
+ */
+typedef struct {
+ Dword address; /** The address of target register */
+ Byte value; /** The value of target register */
+} ValueSet;
+
+
+/**
+ * The type defination of Datetime.
+ */
+typedef struct {
+ Dword mjd; /** The mjd of datetime */
+ Byte configuration; /** The configuration of datetime */
+ Byte hours; /** The hours of datetime */
+ Byte minutes; /** The minutes of datetime */
+ Byte seconds; /** The seconds of datetime */
+ Word milliseconds; /** The milli seconds of datetime */
+} Datetime;
+
+
+/**
+ * The type defination of Interrupts.
+ */
+typedef Word Interrupts;
+
+
+/**
+ * The type defination of Interrupt.
+ */
+typedef enum {
+ Interrupt_NONE = 0x0000, /** No interrupt. */
+ Interrupt_SIPSI = 0x0001,
+ Interrupt_DVBH = 0x0002,
+ Interrupt_DVBT = 0x0004,
+ Interrupt_PLATFORM = 0x0008,
+ Interrupt_VERSION = 0x0010,
+ Interrupt_FREQUENCY = 0x0020,
+ Interrupt_SOFTWARE1 = 0x0040,
+ Interrupt_SOFTWARE2 = 0x0080,
+ Interrupt_FIC = 0x0100,
+ Interrupt_MSC = 0x0200,
+ Interrupt_MCISI = 0x0400
+} Interrupt;
+
+
+/**
+ * The type defination of Multiplier.
+ */
+typedef enum {
+ Multiplier_1X = 0,
+ Multiplier_2X
+} Multiplier;
+
+
+/**
+ * The type defination of StreamType.
+ */
+typedef enum {
+ StreamType_NONE = 0, /** Invalid (Null) StreamType */
+ StreamType_DVBT_DATAGRAM = 3, /** DVB-T mode, store data in device buffer */
+ StreamType_DVBT_PARALLEL, /** DVB-T mode, output via paralle interface */
+ StreamType_DVBT_SERIAL, /** DVB-T mode, output via serial interface */
+} StreamType;
+
+
+/**
+ * The type defination of StreamType.
+ */
+typedef enum {
+ Architecture_NONE = 0, /** Inavalid (Null) Architecture. */
+ Architecture_DCA, /** Diversity combine architecture. Only valid when chip number > 1. */
+ Architecture_PIP /** Picture in picture. Only valid when chip number > 1. */
+} Architecture;
+
+
+/**
+ * The type defination of ClockTable.
+ */
+typedef struct {
+ Dword crystalFrequency; /** The frequency of crystal. */
+ Dword adcFrequency; /** The frequency of ADC. */
+} ClockTable;
+
+
+/**
+ * The type defination of BandTable.
+ */
+typedef struct {
+ Dword minimum; /** The minimum frequency of this band */
+ Dword maximum; /** The maximum frequency of this band */
+} BandTable;
+
+
+/**
+ * The type defination of MeanTable.
+ */
+typedef struct {
+ Dword mean;
+ Dword errorCount;
+} MeanTable;
+
+
+/**
+ * The type defination of Polarity.
+ */
+typedef enum {
+ Polarity_NORMAL = 0,
+ Polarity_INVERSE
+} Polarity;
+
+
+/**
+ * The type defination of Processor.
+ */
+typedef enum {
+ Processor_LINK = 0,
+ Processor_OFDM = 8
+} Processor;
+
+
+/**
+ * The type defination of BurstSize.
+ */
+typedef enum {
+ BurstSize_1024 = 0,
+ BurstSize_2048,
+ BurstSize_4096
+} BurstSize;
+
+
+/**
+ * The type defination of Demodulator.
+ */
+typedef struct {
+ Handle userData;
+ Handle driver;
+} Demodulator;
+
+
+#include "user.h"
+
+
+/**
+ * The type defination of Statistic.
+ */
+typedef struct {
+ Bool signalPresented; /** Signal is presented. */
+ Bool signalLocked; /** Signal is locked. */
+ Byte signalQuality; /** Signal quality, from 0 (poor) to 100 (good). */
+ Byte signalStrength; /** Signal strength from 0 (weak) to 100 (strong). */
+} Statistic;
+
+
+/**
+ * General demodulator register-write function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress address of register to be written.
+ * @param bufferLength number, 1-8, of registers to be written.
+ * @param buffer buffer used to store values to be written to specified
+ * registers.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*WriteRegisters) (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte registerAddressLength,
+ IN Dword writeBufferLength,
+ IN Byte* writeBuffer
+);
+
+
+/**
+ * General tuner register-write function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress address of register to be written.
+ * @param bufferLength number, 1-8, of registers to be written.
+ * @param buffer buffer used to store values to be written to specified
+ * registers.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*WriteTunerRegisters) (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte tunerAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte writeBufferLength,
+ IN Byte* writeBuffer
+);
+
+
+/**
+ * General write EEPROM function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress address of register to be read.
+ * @param bufferLength number, 1-8, of registers to be written.
+ * @param buffer buffer used to store values to be written to specified
+ * registers.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*WriteEepromValues) (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte eepromAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte writeBufferLength,
+ IN Byte* writeBuffer
+);
+
+
+/**
+ * General demodulator register-read function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress address of register to be read.
+ * @param bufferLength number, 1-8, of registers to be read.
+ * @param buffer buffer used to store values to be read to specified
+ * registers.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*ReadRegisters) (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte registerAddressLength,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+/**
+ * General tuner register-read function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress address of register to be read.
+ * @param bufferLength number, 1-8, of registers to be read.
+ * @param buffer buffer used to store values to be read to specified
+ * registers.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*ReadTunerRegisters) (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte tunerAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte readBufferLength,
+ IN Byte* readBuffer
+);
+
+
+/**
+ * General read EEPROM function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress address of register to be read.
+ * @param bufferLength number, 1-8, of registers to be read.
+ * @param buffer buffer used to store values to be read to specified
+ * registers.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*ReadEepromValues) (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Byte eepromAddress,
+ IN Word registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+/**
+ * General demodulator register-read function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress address of register to be read.
+ * @param bufferLength number, 1-8, of registers to be read.
+ * @param buffer buffer used to store values to be read to specified
+ * registers.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*ModifyRegister) (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword registerAddress,
+ IN Byte registerAddressLength,
+ IN Byte position,
+ IN Byte length,
+ IN Byte value
+);
+
+
+/**
+ * General load firmware function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param length The length of firmware.
+ * @param firmware The byte array of firmware.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*LoadFirmware) (
+ IN Demodulator* demodulator,
+ IN Dword firmwareLength,
+ IN Byte* firmware
+);
+
+
+/**
+ * General reboot function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param length The length of firmware.
+ * @param firmware The byte array of firmware.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*Reboot) (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ * Find and Get bus handle used to control bus
+ *
+ * @param demodulator the handle of demodulator.
+ * @param handle The bus handle.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*GetBus) (
+ IN Demodulator* demodulator,
+ OUT Handle* handle
+);
+
+
+/**
+ * Find and Get bus handle used to control bus
+ *
+ * @param demodulator the handle of demodulator.
+ * @param bufferLength The length to transmit.
+ * @param buffer The buffer which we store the data to send.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*BusTx) (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Find and Get bus handle used to control bus
+ *
+ * @param demodulator the handle of demodulator.
+ * @param bufferLength The length to transmit.
+ * @param buffer The buffer which we store the data to send.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*BusRx) (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Find and Get bus handle used to control bus
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress The starting address of memory to get.
+ * @param readBufferLength The length of buffer to receive data.
+ * @param readBuffer The buffer use to store received data
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*BusRxData) (
+ IN Demodulator* demodulator,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+);
+
+/**
+ * General send command function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param command The command which you wan.
+ * @param valueLength value length.
+ * @param valueBuffer value buffer.
+ * @param referenceLength reference length.
+ * @param referenceBuffer reference buffer.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*SendCommand) (
+ IN Demodulator* demodulator,
+ IN Word command,
+ IN Byte chip,
+ IN Processor processor,
+ IN Dword writeBufferLength,
+ IN Byte* writeBuffer,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+/**
+ * General read EEPROM function
+ *
+ * @param demodulator the handle of demodulator.
+ * @param registerAddress address of register to be read.
+ * @param bufferLength number, 1-8, of registers to be read.
+ * @param buffer buffer used to store values to be read to specified
+ * registers.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*ReceiveData) (
+ IN Demodulator* demodulator,
+ IN Dword registerAddress,
+ IN Dword readBufferLength,
+ OUT Byte* readBuffer
+);
+
+
+/**
+ * The type defination of BusDescription
+ */
+typedef struct {
+ GetBus getBus;
+ BusTx busTx;
+ BusRx busRx;
+ BusRxData busRxData;
+} BusDescription;
+
+
+/**
+ * The type defination of BusDescription
+ */
+typedef struct {
+ Dword mailBoxSize;
+ BusDescription* busDescription;
+ WriteRegisters writeRegisters;
+ WriteTunerRegisters writeTunerRegisters;
+ WriteEepromValues writeEepromValues;
+ ReadRegisters readRegisters;
+ ReadTunerRegisters readTunerRegisters;
+ ReadEepromValues readEepromValues;
+ ModifyRegister modifyRegister;
+ LoadFirmware loadFirmware;
+ Reboot reboot;
+ SendCommand sendCommand;
+ ReceiveData receiveData;
+} CmdDescription;
+
+
+/**
+ * General tuner opening function
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*OpenTuner) (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ * General tuner closing function
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*CloseTuner) (
+ IN Demodulator* demodulator,
+ IN Byte chip
+);
+
+
+/**
+ * General tuner setting function
+ *
+ * @param demodulator the handle of demodulator.
+ * @return Error_NO_ERROR: successful, non-zero error code otherwise.
+ */
+typedef Dword (*SetTuner) (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+);
+
+
+/**
+ * The type defination of TunerDescription
+ */
+typedef struct {
+ OpenTuner openTuner;
+ CloseTuner closeTuner;
+ SetTuner setTuner;
+ ValueSet* tunerScript;
+ Word* tunerScriptSets;
+ Byte tunerAddress;
+ Byte registerAddressLength;
+ Dword ifFrequency;
+ Bool inversion;
+ Word tunerId;
+} TunerDescription;
+
+
+/**
+ * The data structure of DefaultDemodulator
+ */
+typedef struct {
+ /** Basic structure */
+ Handle userData;
+ Handle driver;
+ Dword options;
+ Word busId;
+ CmdDescription* cmdDescription;
+ Word tunerId;
+ TunerDescription *tunerDescription;
+} DefaultDemodulator;
+
+
+/**
+ * The data structure of Ganymede
+ */
+typedef struct {
+ /** Basic structure */
+ Handle userData;
+ Handle driver;
+ Dword options;
+ Word busId;
+ CmdDescription* cmdDescription;
+ TunerDescription *tunerDescription;
+ Byte* firmwareCodes;
+ Segment* firmwareSegments;
+ Byte* firmwarePartitions;
+ Word* scriptSets;
+ ValueSet* scripts;
+ Word* tunerScriptSets;
+ ValueSet* tunerScripts;
+ Byte chipNumber;
+ Dword crystalFrequency;
+ Dword adcFrequency;
+ StreamType streamType;
+ Architecture architecture;
+ Word bandwidth[2];
+ Dword frequency[2];
+ Dword fcw;
+ Statistic statistic[2];
+ ChannelStatistic channelStatistic[2]; /** releaseExternalRemove */
+ Byte hostInterface[2];
+ Bool booted;
+ Bool initialized;
+
+ /** DVB-T structure */
+ Bool dataReady;
+ BurstSize burstSize;
+} Ganymede;
+
+
+extern const Byte Standard_bitMask[8];
+#define REG_MASK(pos, len) (Standard_bitMask[len-1] << pos)
+#define REG_CLEAR(temp, pos, len) (temp & (~REG_MASK(pos, len)))
+#define REG_CREATE(val, temp, pos, len) ((val << pos) | (REG_CLEAR(temp, pos, len)))
+#define REG_GET(value, pos, len) ((value & REG_MASK(pos, len)) >> pos)
+#define LOWBYTE(w) ((Byte)((w) & 0xff))
+#define HIGHBYTE(w) ((Byte)((w >> 8) & 0xff))
+
+#endif
diff --git a/api/usb2impl.c b/api/usb2impl.c
new file mode 100644
index 0000000..30e6265
--- /dev/null
+++ b/api/usb2impl.c
@@ -0,0 +1,177 @@
+// all for Linux
+#include <linux/autoconf.h>
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/kref.h>
+#include <linux/smp_lock.h>
+#include <linux/usb.h>
+#include <asm/uaccess.h>
+#include <linux/device.h>
+#include <linux/string.h>
+#include <linux/firmware.h>
+#include <linux/delay.h>
+#include <linux/vmalloc.h>
+
+#include "usb2impl.h"
+#include "af903x.h"
+
+#ifdef UNDER_CE
+
+Handle Usb2_handle = NULL;
+
+
+Dword Usb2_getDriver (
+ IN Demodulator* demodulator,
+ OUT Handle* handle
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword Usb2_writeControlBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ IN Byte* buffer
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword Usb2_readControlBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ return (Error_NO_ERROR);
+}
+
+
+Dword Usb2_readDataBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ return (Error_NO_ERROR);
+}
+
+#else
+
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0500
+#endif
+
+Handle Usb2_handle = 0;
+/*
+bool (__cdecl *Usb2_initialize) (
+);
+void (__cdecl *Usb2_finalize) (
+);
+bool (__cdecl *Usb2_writeControl) (
+ Byte* poutBuf,
+ unsigned long WriteLen,
+ unsigned long* pnBytesWrite
+);
+bool (__cdecl *Usb2_readControl) (
+ Byte* pinBuf,
+ unsigned long ReadLen,
+ unsigned long* pnBytesRead
+);
+bool (__cdecl *Usb2_readData) (
+ BYTE* pinBuf,
+ ULONG ReadLen
+);
+*/
+
+Dword Usb2_getDriver (
+ IN Demodulator* demodulator,
+ OUT Handle* handle
+) {
+ Dword error = Error_NO_ERROR;
+/*
+ HINSTANCE instance = NULL;
+
+ instance = LoadLibrary ("AF15BDAEX.dll");
+ Usb2_initialize = (bool (__cdecl *) (
+ )) GetProcAddress (instance, "af15_init");
+ Usb2_finalize = (void (__cdecl *) (
+ )) GetProcAddress (instance, "af15_exit");
+ Usb2_writeControl = (bool (__cdecl *) (
+ BYTE* poutBuf,
+ ULONG WriteLen,
+ ULONG* pnBytesWrite
+ )) GetProcAddress (instance, "af15_WriteBulkData");
+ Usb2_readControl = (bool (__cdecl *) (
+ BYTE* pinBuf,
+ ULONG ReadLen,
+ ULONG* pnBytesRead
+ )) GetProcAddress (instance, "af15_ReadBulkData");
+ Usb2_readData = (bool (__cdecl *) (
+ BYTE* pinBuf,
+ ULONG ReadLen
+ )) GetProcAddress (instance, "af15_GetTsData");
+
+ if (!Usb2_initialize ())
+ error = Error_DRIVER_INVALID;
+
+ *handle = (Handle) instance;
+*/
+ return (error);
+}
+
+
+Dword Usb2_writeControlBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ IN Byte* buffer
+) {
+
+// Ganymede *pGanymede = (Ganymede *)demodulator;
+ Dword ret,act_len;
+ ret = 0;
+ ret = usb_bulk_msg(usb_get_dev(udevs),
+ usb_sndbulkpipe(usb_get_dev(udevs), 0x02),
+ buffer,
+ bufferLength,
+ &act_len,
+ 100000);
+
+ if (ret) deb_data(" Usb2_writeControlBus fail : %d!\n", ret);
+
+ return (Error_NO_ERROR);
+}
+
+
+Dword Usb2_readControlBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+
+// Ganymede *pGanymede = (Ganymede *)demodulator;
+ Dword ret, nBytesRead;
+ ret = 0;
+ ret = usb_bulk_msg(usb_get_dev(udevs),
+ usb_rcvbulkpipe(usb_get_dev(udevs),129),
+ buffer,
+ 125,
+ &nBytesRead,
+ 100000);
+
+
+ if (ret) deb_data(" Usb2_readControlBus fail : %d!\n", ret);
+
+ return (Error_NO_ERROR);
+}
+
+
+Dword Usb2_readDataBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ return (Error_NO_ERROR);
+}
+#endif
diff --git a/api/usb2impl.h b/api/usb2impl.h
new file mode 100644
index 0000000..c41328d
--- /dev/null
+++ b/api/usb2impl.h
@@ -0,0 +1,38 @@
+#ifndef __USB2IMPL_H__
+#define __USB2IMPL_H__
+
+
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "cmd.h"
+
+
+Dword Usb2_getDriver (
+ IN Demodulator* demodulator,
+ OUT Handle* handle
+);
+
+
+Dword Usb2_writeControlBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ IN Byte* buffer
+);
+
+
+Dword Usb2_readControlBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+);
+
+
+Dword Usb2_readDataBus (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+);
+
+#endif
+
diff --git a/api/user.c b/api/user.c
new file mode 100644
index 0000000..e266f45
--- /dev/null
+++ b/api/user.c
@@ -0,0 +1,142 @@
+#include "user.h"
+#include <linux/delay.h> //for Linux mdelay
+//#include <unistd.h>
+
+
+/**
+ * Variable of critical section
+ */
+
+Dword User_memoryCopy (
+ IN Demodulator* demodulator,
+ IN void* dest,
+ IN void* src,
+ IN Dword count
+) {
+ /*
+ * ToDo: Add code here
+ *
+ * //Pseudo code
+ * memcpy(dest, src, (size_t)count);
+ * return (0);
+ */
+ return (Error_NO_ERROR);
+}
+
+Dword User_delay (
+ IN Demodulator* demodulator,
+ IN Dword dwMs
+) {
+ /*
+ * ToDo: Add code here
+ *
+ * //Pseudo code
+ * delay(dwMs);
+ * return (0);
+ */
+ mdelay(dwMs); // for Linux
+ //sleep(dwMs);
+ return (Error_NO_ERROR);
+}
+
+
+Dword User_enterCriticalSection (
+ IN Demodulator* demodulator
+) {
+ /*
+ * ToDo: Add code here
+ *
+ * //Pseudo code
+ * return (0);
+ */
+ return (Error_NO_ERROR);
+}
+
+
+Dword User_leaveCriticalSection (
+ IN Demodulator* demodulator
+) {
+ /*
+ * ToDo: Add code here
+ *
+ * //Pseudo code
+ * return (0);
+ */
+ return (Error_NO_ERROR);
+}
+
+
+Dword User_mpegConfig (
+ IN Demodulator* demodulator
+) {
+ /*
+ * ToDo: Add code here
+ *
+ */
+ return (Error_NO_ERROR);
+}
+
+
+Dword User_busTx (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ IN Byte* buffer
+) {
+ /*
+ * ToDo: Add code here
+ *
+ * //Pseudo code
+ * short i;
+ *
+ * start();
+ * write_i2c(uc2WireAddr);
+ * ack();
+ * for (i = 0; i < bufferLength; i++) {
+ * write_i2c(*(ucpBuffer + i));
+ * ack();
+ * }
+ * stop();
+ *
+ * // If no error happened return 0, else return error code.
+ * return (0);
+ */
+ return (Error_NO_ERROR);
+}
+
+
+Dword User_busRx (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ /*
+ * ToDo: Add code here
+ *
+ * //Pseudo code
+ * short i;
+ *
+ * start();
+ * write_i2c(uc2WireAddr | 0x01);
+ * ack();
+ * for (i = 0; i < bufferLength - 1; i++) {
+ * read_i2c(*(ucpBuffer + i));
+ * ack();
+ * }
+ * read_i2c(*(ucpBuffer + bufferLength - 1));
+ * nack();
+ * stop();
+ *
+ * // If no error happened return 0, else return error code.
+ * return (0);
+ */
+ return (Error_NO_ERROR);
+}
+
+
+Dword User_busRxData (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+) {
+ return (Error_NO_ERROR);
+}
diff --git a/api/user.h b/api/user.h
new file mode 100644
index 0000000..722dd59
--- /dev/null
+++ b/api/user.h
@@ -0,0 +1,122 @@
+#ifndef __USER_H__
+#define __USER_H__
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+
+
+
+
+#define User_USE_INTERRUPT 0
+#define User_USE_DRIVER 0
+
+#define User_MAX_PKT_SIZE 255
+#define User_USE_SHORT_CMD 0
+
+#define User_RETRY_MAX_LIMIT 10
+
+
+/** Define I2C master speed, the default value 0x07 means 366KHz (1000000000 / (24.4 * 16 * User_I2C_SPEED)). */
+#define User_I2C_SPEED 0x07
+
+/** Define I2C address of secondary chip when Diversity mode or PIP mode is active. */
+#define User_I2C_ADDRESS 0x38
+
+/** Define USB frame size */
+#define User_USB20_MAX_PACKET_SIZE 512
+#define User_USB20_FRAME_SIZE (188 * 348)
+#define User_USB20_FRAME_SIZE_DW (User_USB20_FRAME_SIZE / 4)
+#define User_USB11_MAX_PACKET_SIZE 64
+#define User_USB11_FRAME_SIZE (188 * 21)
+#define User_USB11_FRAME_SIZE_DW (User_USB11_FRAME_SIZE / 4)
+
+// for Linux
+typedef unsigned char tBYTE; // 1 byte
+typedef unsigned short tWORD; // 2 bytes
+typedef unsigned long tDWORD; // 4 bytes
+typedef int tINT; // 4 bytes
+typedef void * tHANDLE;
+
+
+
+/**
+ * Memory copy Function
+ */
+Dword User_memoryCopy (
+ IN Demodulator* demodulator,
+ IN void* dest,
+ IN void* src,
+ IN Dword count
+);
+
+
+/**
+ * Delay Function
+ */
+Dword User_delay (
+ IN Demodulator* demodulator,
+ IN Dword dwMs
+);
+
+
+/**
+ * Enter critical section
+ */
+Dword User_enterCriticalSection (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ * Leave critical section
+ */
+Dword User_leaveCriticalSection (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ * Config MPEG2 interface
+ */
+Dword User_mpegConfig (
+ IN Demodulator* demodulator
+);
+
+
+/**
+ * Write data via "Control Bus"
+ * I2C mode : uc2WireAddr mean demodulator chip address, the default value is 0x38
+ * USB mode : uc2WireAddr is useless, don't have to send this data
+ */
+Dword User_busTx (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ IN Byte* buffer
+);
+
+
+/**
+ * Read data via "Control Bus"
+ * I2C mode : uc2WireAddr mean demodulator chip address, the default value is 0x38
+ * USB mode : uc2WireAddr is useless, don't have to send this data
+ */
+Dword User_busRx (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+);
+
+
+/**
+ * Read data via "Data Bus"
+ * I2C mode : uc2WireAddr mean demodulator chip address, the default value is 0x38
+ * USB mode : uc2WireAddr is useless, don't have to send this data
+ */
+Dword User_busRxData (
+ IN Demodulator* demodulator,
+ IN Dword bufferLength,
+ OUT Byte* buffer
+);
+#endif
diff --git a/api/variable.h b/api/variable.h
new file mode 100644
index 0000000..eb4dace
--- /dev/null
+++ b/api/variable.h
@@ -0,0 +1,271 @@
+#ifndef __VARIABLE_H__
+#define __VARIABLE_H__
+//this file define variable which initialized by AP
+//CFOE------------------------------------------
+
+//These variables are initialized by API.
+//Don't change the order of the definition of these variables.
+
+
+//2k
+//BASE Address 0x418B
+#define var_addr_base 0x418b
+#define log_addr_base 0x418d
+#define log_data_base 0x418f
+#define LowerLocalRetrain 0x43bb
+//scmd _at_ 0x4496;
+// Do NOT touch the following line: used by script
+// --- @xx++ Start variable block
+//Initialization..
+//API relative
+//BASE Address 0x0000
+#define trigger_ofsm 0x0000
+#define cfoe_NS_2048_coeff1_25_24 0x0001
+#define cfoe_NS_2048_coeff1_23_16 0x0002
+#define cfoe_NS_2048_coeff1_15_8 0x0003
+#define cfoe_NS_2048_coeff1_7_0 0x0004
+#define cfoe_NS_2k_coeff2_24 0x0005
+#define cfoe_NS_2k_coeff2_23_16 0x0006
+#define cfoe_NS_2k_coeff2_15_8 0x0007
+#define cfoe_NS_2k_coeff2_7_0 0x0008
+
+//8k..
+
+#define cfoe_NS_8191_coeff1_25_24 0x0009
+#define cfoe_NS_8191_coeff1_23_16 0x000a
+#define cfoe_NS_8191_coeff1_15_8 0x000b
+#define cfoe_NS_8191_coeff1_7_0 0x000c
+#define cfoe_NS_8192_coeff1_25_24 0x000d
+#define cfoe_NS_8192_coeff1_23_16 0x000e
+#define cfoe_NS_8192_coeff1_15_8 0x000f
+#define cfoe_NS_8192_coeff1_7_0 0x0010
+#define cfoe_NS_8193_coeff1_25_24 0x0011
+#define cfoe_NS_8193_coeff1_23_16 0x0012
+#define cfoe_NS_8193_coeff1_15_8 0x0013
+#define cfoe_NS_8193_coeff1_7_0 0x0014
+
+#define cfoe_NS_8k_coeff2_24 0x0015
+#define cfoe_NS_8k_coeff2_23_16 0x0016
+#define cfoe_NS_8k_coeff2_15_8 0x0017
+#define cfoe_NS_8k_coeff2_7_0 0x0018
+
+//4k
+#define cfoe_NS_4096_coeff1_25_24 0x0019
+#define cfoe_NS_4096_coeff1_23_16 0x001a
+#define cfoe_NS_4096_coeff1_15_8 0x001b
+#define cfoe_NS_4096_coeff1_7_0 0x001c
+#define cfoe_NS_4k_coeff2_24 0x001d
+#define cfoe_NS_4k_coeff2_23_16 0x001e
+#define cfoe_NS_4k_coeff2_15_8 0x001f
+#define cfoe_NS_4k_coeff2_7_0 0x0020
+
+#define bfsfcw_fftindex_ratio_7_0 0x0021
+#define bfsfcw_fftindex_ratio_15_8 0x0022
+#define fftindex_bfsfcw_ratio_7_0 0x0023
+#define fftindex_bfsfcw_ratio_15_8 0x0024
+
+
+
+#define crystal_clk_7_0 0x0025
+#define crystal_clk_15_8 0x0026
+#define crystal_clk_23_16 0x0027
+#define crystal_clk_31_24 0x0028
+
+
+#define bfs_fcw_7_0 0x0029
+#define bfs_fcw_15_8 0x002a
+#define bfs_fcw_22_16 0x002b
+
+//----------------------------------------------
+//statistic performance..
+
+#define qnt_vbc_err_7_0 0x002c
+#define qnt_vbc_err_15_8 0x002d
+#define qnt_vbc_err_23_16 0x002e
+#define r_qnt_vbc_sframe_num 0x002f
+#define tpsd_const 0x0030
+#define tpsd_txmod 0x0031
+
+#define rsd_abort_packet_cnt_7_0 0x0032
+#define rsd_abort_packet_cnt_15_8 0x0033
+#define rsd_bit_err_cnt_7_0 0x0034
+#define rsd_bit_err_cnt_15_8 0x0035
+#define rsd_bit_err_cnt_23_16 0x0036
+#define r_rsd_packet_unit_7_0 0x0037
+#define r_rsd_packet_unit_15_8 0x0038
+
+#define qnt_vbc_sframe_num 0x0039
+#define rsd_packet_unit_7_0 0x003a
+#define rsd_packet_unit_15_8 0x003b
+
+#define tpsd_lock 0x003c
+#define mpeg_lock 0x003d
+#define RsdSequence 0x003e
+#define VtbSequence 0x003f
+
+#define Training_Mode 0x0040
+#define RESET_STATE 0x0041
+#define EXT_LNA_OFF 0x0042
+#define aci_0 0x0043
+#define aci_1 0x0044
+
+#define adcx2 0x0045
+#define tuner_ID 0x0046
+#define empty_channel_status 0x0047
+#define signal_strength 0x0048
+#define signal_quality 0x0049
+#define est_rf_level_dbm 0x004a
+#define FreBand 0x004b
+#define suspend_flag 0x004c
+#define SupportRelayCommandWrite 0x004d
+#define RelayCommandWrite 0x004e
+
+//GUI relative
+//Initial OFSM
+#define OfdmGuiRCN_H 0x004f
+#define OfdmGuiRCN_L 0x0050
+#define MaxTimingRecoveringNo 0x0051
+#define strong_signal_detected 0x0052
+#define channelFlatnessInd 0x0053
+#define Flatness_Ind_nonCmb 0x0054
+#define AutoDetectedSpectrumInv 0x0055
+#define IsSpectrumInv 0x0056
+#define strong_detect_bypass 0x0057
+#define ss_dtop_bypass 0x0058
+#define is_low_if 0x0059
+#define EnableTimeSlice 0x005a
+#define SynchronizationType 0x005b
+#define ApplyFastSynchronizationToEchoChannel 0x005c
+#define ApplyPwmToRfIf 0x005d
+#define ChannelNo 0x005e
+
+//release to AAGC document..
+#define csi_bypass 0x005f
+#define mobile_bypass 0x0060
+#define EnableSpeedLog 0x0061
+
+//regression used only..
+#define r_rsd_abort_total_packet_7_0 0x0062
+#define r_rsd_abort_total_packet_15_8 0x0063
+#define r_rsd_abort_total_packet_23_16 0x0064
+#define MaxRsdSequence 0x0065
+#define RsdFrameNo 0x0066
+#define MPESuperFrameNo 0x0067
+
+#define strong_pindiode_off_th 0x0068
+#define MinRfGain 0x0069
+#define MaxIfGain 0x006a
+#define RssiOffset 0x006b
+#define RssiResidual 0x006c
+//Dtop
+
+#define strong_weak_signal_default 0x006d
+#define PionDiodeDefaultResetInVHF 0x006e
+#define afe_mem4_rssi_comp 0x006f
+
+#define aagc_speed_detect_count 0x0070
+#define aagc_mobile_thr 0x0071
+#define aagc_nonmobile_thr 0x0072
+#define agc_counter 0x0073
+#define DisableAagcTop 0x0074
+#define AgcReset 0x0075
+#define AgcUp 0x0076
+#define AgcDown 0x0077
+#define AgcHold 0x0078
+#define PwmCtrlHw 0x0079
+#define MaxAgcGain 0x007a
+#define IniAgcGain 0x007b
+#define mccid_bypass 0x007c
+#define CdpfEnDefaultEchoRange 0x007d
+#define CdpfIniTestNoSteady 0x007e
+#define aci_thr_shift 0x007f
+#define timing_retrain_cnt 0x0080
+#define ChannelDiffThrSteady 0x0081
+
+#define adjacent_on 0x0082
+#define near_adjacent_on 0x0083
+#define adjacent_off 0x0084
+#define near_adjacent_off 0x0085
+#define max_rf_agc_7_0 0x0086
+#define max_rf_agc_9_8 0x0087
+#define rf_top_numerator_s_7_0 0x0088
+#define rf_top_numerator_s_9_8 0x0089
+
+#define gui_tdi_lms_en 0x008a
+#define fccid_strobe_scale 0x008b
+#define fccid_strobe_numerator 0x008c
+#define fccid_strobe_base 0x008d
+#define use_fccid 0x008e
+#define fft_ave_symbol_num 0x008f
+#define large_tone_num_th_7_0 0x0090
+#define large_tone_num_th_15_8 0x0091
+#define use_3m_lpf_th 0x0092
+#define ce_var_min_8k 0x0093
+#define ce_var_min_4k 0x0094
+#define ce_var_min_2k 0x0095
+#define ce_var_min_8k_non_flat 0x0096
+#define flatness_thr 0x0097
+#define non_mobile_signal_level_offset 0x0098
+#define gui_ar_csi_en 0x0099
+#define h2_echo_detected 0x009a
+#define gain_offset_O 0x009b
+#define gain_slope_O 0x009c
+#define pin_diode_gain_loss 0x009d
+#define signal_strength_if_low 0x009e
+//flatness
+#define flatness_thr_high 0x009f
+#define flatness_thr_low 0x00a0
+
+//softbit quality
+#define sbq1 0x00a1
+#define sbq2 0x00a2
+
+//DCA
+#define dyna_dca_offset_en 0x00a3
+#define strong_pindiode_on_th 0x00a4
+#define detect_timing_err_en 0x00a5
+#define flatness_from_h2_echo 0x00a6
+
+#define timging_error_detection 0x00a7
+#define ce_forced_by_rotate 0x00a8
+#define fccid_fft_mask_en 0x00a9
+#define second_fctrl_unforce_en 0x00aa
+#define patch_fccid_search_not_rdy 0x00ab
+#define high_mobile_detected 0x00ac
+#define aci_pindiode_on_th 0x00ad
+#define ChooseFsteCostFunctionFromCdpf 0x00ae
+#define signal_level 0x00af
+#define TryConf2En 0x00b0
+#define Lower_tpsd_lock 0x00b1
+#define Upper_tpsd_lock 0x00b2
+
+#define AgcCtrlType 0x00b3
+#define opt_LNA_Rssi_scale 0x00b4
+#define StopByTcl 0x00b5
+#define RssiCalibration 0x00b6
+#define aci_pindiode_off_th_U 0x00b7
+#define aci_pindiode_off_th_V 0x00b8
+#define ECO_ASIC 0x00b9
+#define NXP_USE_I2C 0x00ba
+
+//Pictor
+#define rf_freqency_23_16 0x00bb
+#define rf_freqency_15_8 0x00bc
+#define rf_freqency_7_0 0x00bd
+#define iqik_en 0x00be
+#define dcc_en 0x00bf
+#define fix_agc 0x00c0
+#define aci_2 0x00c1
+
+#define CdpfIniTestNoMobile 0x00c2
+#define ACIdetection 0x00c3
+#define PinDiode 0x00c4
+#define LNA_Gain 0x00c5
+#define ChannelDiffThrMobile 0x00c6
+
+#define gain_compensation_O 0x00c7
+
+#define var_end 0x00c8
+
+//BASE Address 0xFFFF
+#endif
diff --git a/api/version.h b/api/version.h
new file mode 100644
index 0000000..a14e771
--- /dev/null
+++ b/api/version.h
@@ -0,0 +1,3 @@
+#define Version_NUMBER 0x0200
+#define Version_DATE 0x20090402
+#define Version_BUILD 0x00
diff --git a/api/xc3028_channelmaps.h b/api/xc3028_channelmaps.h
new file mode 100644
index 0000000..99f1fc8
--- /dev/null
+++ b/api/xc3028_channelmaps.h
@@ -0,0 +1,2601 @@
+//
+// Automatically generated C header file for
+// control of the XC3028L via the i2c interface.
+//
+// Filename : xc3028_channelmaps.h
+// Generated : 7/3/2007 2:48:18 PM
+//
+// (c) 2007, Xceive Corporation
+//
+
+#ifndef __XC3028_CHANNELMAPS_H
+#define __XC3028_CHANNELMAPS_H
+
+#include "xc3028_control.h"
+
+
+// *************************************************************
+// *** LIST OF AVAILABLE CHANNELMAPS
+// *** CHANNELMAP is selected during call to xc3028_initialize()
+// ***
+// *** 1) XC3028_channel_map_usa_analog_air
+// *** 2) XC3028_channel_map_usa_analog_cable
+// *** 3) XC3028_channel_map_usa_digital_air
+// *** 4) XC3028_channel_map_usa_digital_cable
+// *** 5) XC3028_channel_map_taiwan_analog_air
+// *** 6) XC3028_channel_map_taiwan_analog_cable
+// *** 7) XC3028_channel_map_taiwan_digital_air
+// *** 8) XC3028_channel_map_taiwan_digital_cable
+// *** 9) XC3028_channel_map_japan_analog_air
+// *** 10) XC3028_channel_map_japan_analog_cable
+// *** 11) XC3028_channel_map_japan_digital_air
+// *** 12) XC3028_channel_map_japan_digital_cable
+// *** 13) XC3028_channel_map_ccir_analog_air
+// *** 14) XC3028_channel_map_ccir_analog_cable
+// *** 15) XC3028_channel_map_ccir_digital_air
+// *** 16) XC3028_channel_map_ccir_digital_cable
+// *** 17) XC3028_channel_map_france_analog_air
+// *** 18) XC3028_channel_map_france_analog_cable
+// *** 19) XC3028_channel_map_france_digital_air
+// *** 20) XC3028_channel_map_france_digital_cable
+// *** 21) XC3028_channel_map_uk_analog_air
+// *** 22) XC3028_channel_map_uk_analog_cable
+// *** 23) XC3028_channel_map_uk_digital_air
+// *** 24) XC3028_channel_map_uk_digital_cable
+// *** 25) XC3028_channel_map_china_analog_air
+// *** 26) XC3028_channel_map_china_analog_cable
+// *** 27) XC3028_channel_map_china_digital_air
+// *** 28) XC3028_channel_map_china_digital_cable
+// *** 29) XC3028_channel_map_australia_air
+// *** 30) XC3028_channel_map_australia_cable
+// *** 31) XC3028_channel_map_digital_air
+// *************************************************************
+
+
+XC3028_CHANNEL XC3028_channels_usa_analog_air[68] = {
+ {{' ',' ',' ','2'}, 0x0DD0, 0x6} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x6} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x2} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x4} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0x2} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0xE} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x3} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x1} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0xF} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0xF} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x4} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0x1} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x75D0, 0x2} /*471.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x7750, 0x1} /*477.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x78D0, 0x5} /*483.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x7A50, 0x5} /*489.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x7D50, 0x3} /*501.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x7ED0, 0x2} /*507.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x8050, 0x3} /*513.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x81D0, 0xD} /*519.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x8350, 0x1} /*525.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x84D0, 0x3} /*531.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x8650, 0x2} /*537.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x87D0, 0x5} /*543.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x8950, 0xD} /*549.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x8AD0, 0xE} /*555.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x8C50, 0x2} /*561.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x8DD0, 0x1} /*567.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x8F50, 0xD} /*573.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x90D0, 0xD} /*579.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x9250, 0xE} /*585.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x9550, 0x0} /*597.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x96D0, 0xD} /*603.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x9850, 0x5} /*609.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x99D0, 0xF} /*615.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x9B50, 0x0} /*621.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9CD0, 0x2} /*627.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9E50, 0x2} /*633.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x2} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA150, 0x3} /*645.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA2D0, 0xE} /*651.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA450, 0x0} /*657.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA5D0, 0x1} /*663.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA750, 0x2} /*669.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xA8D0, 0xF} /*675.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xAA50, 0x0} /*681.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xABD0, 0xF} /*687.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xAD50, 0x1} /*693.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xAED0, 0x2} /*699.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB050, 0xF} /*705.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB350, 0x1} /*717.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xB4D0, 0x0} /*723.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xB650, 0x1} /*729.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xB7D0, 0x2} /*735.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xB950, 0x3} /*741.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xBAD0, 0x1} /*747.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xBC50, 0xF} /*753.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xBF50, 0x4} /*765.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xC0D0, 0xE} /*771.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xC250, 0xE} /*777.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xC550, 0xD} /*789.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xC6D0, 0xF} /*795.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xC850, 0xF} /*801.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_usa_analog_air = {
+ 68,
+ XC3028_channels_usa_analog_air
+};
+
+XC3028_CHANNEL XC3028_channels_usa_analog_cable[125] = {
+ {{' ',' ',' ','1'}, 0x1250, 0x0} /*73.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x0DD0, 0x6} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x6} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x2} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x4} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0x2} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0xF} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x3} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x3} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0xE} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0x2} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x2} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0x2} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x1E50, 0x2} /*121.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x1FD0, 0x5} /*127.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x2150, 0xE} /*133.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x22D0, 0x2} /*139.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x2450, 0x0} /*145.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x25D0, 0x2} /*151.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x2750, 0x0} /*157.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x28D0, 0xF} /*163.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x2A50, 0x0} /*169.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x3650, 0x1} /*217.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x37D0, 0xD} /*223.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x3950, 0xF} /*229.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x3AD0, 0x2} /*235.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x3C50, 0x0} /*241.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x3DD0, 0x1} /*247.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x3F50, 0x3} /*253.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x40D0, 0xD} /*259.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x4250, 0xD} /*265.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x43D0, 0x3} /*271.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x4550, 0x1} /*277.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x46D0, 0x1} /*283.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x4850, 0xD} /*289.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x49D0, 0x1} /*295.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x4B50, 0x2} /*301.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x4CD0, 0xF} /*307.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x4E50, 0x3} /*313.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x4FD0, 0xF} /*319.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x5150, 0xE} /*325.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x52D0, 0xD} /*331.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0x5450, 0x0} /*337.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0x55D0, 0xF} /*343.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0x5750, 0xE} /*349.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0x58D0, 0xD} /*355.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0x5A50, 0x1} /*361.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0x5BD0, 0xE} /*367.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0x5D50, 0xF} /*373.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0x5ED0, 0xE} /*379.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0x6050, 0x5} /*385.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0x61D0, 0x1} /*391.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0x6350, 0x2} /*397.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0x64D0, 0xE} /*403.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0x6650, 0x2} /*409.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0x67D0, 0xF} /*415.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0x6950, 0xE} /*421.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0x6AD0, 0xE} /*427.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0x6C50, 0x1} /*433.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0x6DD0, 0x1} /*439.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0x6F50, 0x1} /*445.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0x70D0, 0x4} /*451.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0x7250, 0xE} /*457.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0x73D0, 0xE} /*463.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0x7550, 0x2} /*469.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0x76D0, 0x3} /*475.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0x7850, 0x4} /*481.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0x79D0, 0xF} /*487.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0x7B50, 0x0} /*493.250000 MHz*/ ,
+ {{' ',' ','7','0'}, 0x7CD0, 0xF} /*499.250000 MHz*/ ,
+ {{' ',' ','7','1'}, 0x7E50, 0x4} /*505.250000 MHz*/ ,
+ {{' ',' ','7','2'}, 0x7FD0, 0x2} /*511.250000 MHz*/ ,
+ {{' ',' ','7','3'}, 0x8150, 0xF} /*517.250000 MHz*/ ,
+ {{' ',' ','7','4'}, 0x82D0, 0x1} /*523.250000 MHz*/ ,
+ {{' ',' ','7','5'}, 0x8450, 0x3} /*529.250000 MHz*/ ,
+ {{' ',' ','7','6'}, 0x85D0, 0x3} /*535.250000 MHz*/ ,
+ {{' ',' ','7','7'}, 0x8750, 0x3} /*541.250000 MHz*/ ,
+ {{' ',' ','7','8'}, 0x88D0, 0xF} /*547.250000 MHz*/ ,
+ {{' ',' ','7','9'}, 0x8A50, 0xE} /*553.250000 MHz*/ ,
+ {{' ',' ','8','0'}, 0x8BD0, 0xF} /*559.250000 MHz*/ ,
+ {{' ',' ','8','1'}, 0x8D50, 0x0} /*565.250000 MHz*/ ,
+ {{' ',' ','8','2'}, 0x8ED0, 0xD} /*571.250000 MHz*/ ,
+ {{' ',' ','8','3'}, 0x9050, 0x3} /*577.250000 MHz*/ ,
+ {{' ',' ','8','4'}, 0x91D0, 0x5} /*583.250000 MHz*/ ,
+ {{' ',' ','8','5'}, 0x9350, 0x0} /*589.250000 MHz*/ ,
+ {{' ',' ','8','6'}, 0x94D0, 0x2} /*595.250000 MHz*/ ,
+ {{' ',' ','8','7'}, 0x9650, 0xD} /*601.250000 MHz*/ ,
+ {{' ',' ','8','8'}, 0x97D0, 0xD} /*607.250000 MHz*/ ,
+ {{' ',' ','8','9'}, 0x9950, 0xD} /*613.250000 MHz*/ ,
+ {{' ',' ','9','0'}, 0x9AD0, 0xF} /*619.250000 MHz*/ ,
+ {{' ',' ','9','1'}, 0x9C50, 0x0} /*625.250000 MHz*/ ,
+ {{' ',' ','9','2'}, 0x9DD0, 0x3} /*631.250000 MHz*/ ,
+ {{' ',' ','9','3'}, 0x9F50, 0x3} /*637.250000 MHz*/ ,
+ {{' ',' ','9','4'}, 0xA0D0, 0x5} /*643.250000 MHz*/ ,
+ {{' ',' ','9','5'}, 0x16D0, 0x2} /*91.250000 MHz*/ ,
+ {{' ',' ','9','6'}, 0x1850, 0xF} /*97.250000 MHz*/ ,
+ {{' ',' ','9','7'}, 0x19D0, 0xE} /*103.250000 MHz*/ ,
+ {{' ',' ','9','8'}, 0x1B51, 0x4} /*109.265625 MHz*/ ,
+ {{' ',' ','9','9'}, 0x1CD1, 0x3} /*115.265625 MHz*/ ,
+ {{' ','1','0','0'}, 0xA250, 0x4} /*649.250000 MHz*/ ,
+ {{' ','1','0','1'}, 0xA3D0, 0x1} /*655.250000 MHz*/ ,
+ {{' ','1','0','2'}, 0xA550, 0x0} /*661.250000 MHz*/ ,
+ {{' ','1','0','3'}, 0xA6D0, 0x2} /*667.250000 MHz*/ ,
+ {{' ','1','0','4'}, 0xA850, 0xF} /*673.250000 MHz*/ ,
+ {{' ','1','0','5'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{' ','1','0','6'}, 0xAB50, 0x5} /*685.250000 MHz*/ ,
+ {{' ','1','0','7'}, 0xACD0, 0x2} /*691.250000 MHz*/ ,
+ {{' ','1','0','8'}, 0xAE50, 0x4} /*697.250000 MHz*/ ,
+ {{' ','1','0','9'}, 0xAFD0, 0x1} /*703.250000 MHz*/ ,
+ {{' ','1','1','0'}, 0xB150, 0xF} /*709.250000 MHz*/ ,
+ {{' ','1','1','1'}, 0xB2D0, 0x5} /*715.250000 MHz*/ ,
+ {{' ','1','1','2'}, 0xB450, 0xF} /*721.250000 MHz*/ ,
+ {{' ','1','1','3'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{' ','1','1','4'}, 0xB750, 0xE} /*733.250000 MHz*/ ,
+ {{' ','1','1','5'}, 0xB8D0, 0xF} /*739.250000 MHz*/ ,
+ {{' ','1','1','6'}, 0xBA50, 0x0} /*745.250000 MHz*/ ,
+ {{' ','1','1','7'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ','1','1','8'}, 0xBD50, 0x0} /*757.250000 MHz*/ ,
+ {{' ','1','1','9'}, 0xBED0, 0x1} /*763.250000 MHz*/ ,
+ {{' ','1','2','0'}, 0xC050, 0xD} /*769.250000 MHz*/ ,
+ {{' ','1','2','1'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{' ','1','2','2'}, 0xC350, 0x4} /*781.250000 MHz*/ ,
+ {{' ','1','2','3'}, 0xC4D0, 0x2} /*787.250000 MHz*/ ,
+ {{' ','1','2','4'}, 0xC650, 0x1} /*793.250000 MHz*/ ,
+ {{' ','1','2','5'}, 0xC7D0, 0xF} /*799.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_usa_analog_cable = {
+ 125,
+ XC3028_channels_usa_analog_cable
+};
+
+XC3028_CHANNEL XC3028_channels_usa_digital_air[68] = {
+ {{' ',' ',' ','2'}, 0x0DD0, 0xC} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x0} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x2} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x6} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0xD} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0xE} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x0} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x2} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0x5} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0x1} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x0} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0xC} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x75D0, 0x5} /*471.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x7750, 0x7} /*477.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x78D0, 0x3} /*483.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x7A50, 0xC} /*489.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x7BD0, 0xB} /*495.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x7D50, 0xF} /*501.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x7ED0, 0xE} /*507.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x8050, 0x2} /*513.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x8350, 0x5} /*525.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x84D0, 0x4} /*531.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x8650, 0x5} /*537.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x87D0, 0x7} /*543.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x8950, 0xD} /*549.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x8AD0, 0xD} /*555.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x8C50, 0xF} /*561.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x8F50, 0x1} /*573.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x90D0, 0xC} /*579.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x9250, 0x1} /*585.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x93D0, 0xE} /*591.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x9550, 0x3} /*597.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x96D0, 0x1} /*603.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x9850, 0x2} /*609.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x99D0, 0x1} /*615.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x9B50, 0x2} /*621.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9CD0, 0xF} /*627.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9E50, 0xE} /*633.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x6} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA150, 0xC} /*645.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA2D0, 0x1} /*651.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA450, 0x5} /*657.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA5D0, 0x6} /*663.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA750, 0x5} /*669.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xA8D0, 0xE} /*675.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xAA50, 0x1} /*681.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xABD0, 0xE} /*687.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xAD50, 0xD} /*693.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xAED0, 0xE} /*699.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB050, 0xC} /*705.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB1D0, 0x7} /*711.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB350, 0xC} /*717.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xB4D0, 0x5} /*723.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xB650, 0xE} /*729.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xB7D0, 0x7} /*735.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xB950, 0x0} /*741.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xBAD0, 0x0} /*747.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xBC50, 0xF} /*753.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xBF50, 0x4} /*765.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xC0D0, 0x5} /*771.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xC250, 0x1} /*777.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xC3D0, 0xC} /*783.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xC550, 0xD} /*789.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xC6D0, 0x6} /*795.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xC850, 0x7} /*801.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_usa_digital_air = {
+ 68,
+ XC3028_channels_usa_digital_air
+};
+
+XC3028_CHANNEL XC3028_channels_usa_digital_cable[125] = {
+ {{' ',' ',' ','1'}, 0x1250, 0x6} /*73.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x0DD0, 0xC} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x0} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x2} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x6} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0xD} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0xE} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x0} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x2} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0x5} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0x1} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x0} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0xC} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x1E50, 0x0} /*121.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x1FD0, 0x6} /*127.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x2150, 0xE} /*133.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x22D0, 0x1} /*139.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x2450, 0xC} /*145.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x25D0, 0xE} /*151.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x2750, 0x0} /*157.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x28D0, 0x7} /*163.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x2A50, 0x4} /*169.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x3650, 0x1} /*217.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x37D0, 0x3} /*223.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x3950, 0x7} /*229.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x3AD0, 0x4} /*235.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x3C50, 0xC} /*241.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x3DD0, 0x0} /*247.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x3F50, 0xC} /*253.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x40D0, 0x0} /*259.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x4250, 0x3} /*265.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x43D0, 0xC} /*271.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x4550, 0xE} /*277.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x46D0, 0xC} /*283.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x4850, 0xF} /*289.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x49D0, 0x6} /*295.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x4B50, 0x4} /*301.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x4CD0, 0xE} /*307.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x4E50, 0x0} /*313.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x4FD0, 0xE} /*319.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x5150, 0x0} /*325.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x52D0, 0x3} /*331.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0x5450, 0xD} /*337.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0x55D0, 0x0} /*343.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0x5750, 0xE} /*349.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0x58D0, 0x0} /*355.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0x5A50, 0x6} /*361.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0x5BD0, 0xD} /*367.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0x5D50, 0x0} /*373.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0x5ED0, 0x1} /*379.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0x6050, 0x3} /*385.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0x61D0, 0x5} /*391.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0x6350, 0xC} /*397.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0x64D0, 0x5} /*403.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0x6650, 0x7} /*409.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0x67D0, 0x2} /*415.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0x6950, 0x4} /*421.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0x6AD0, 0x6} /*427.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0x6C50, 0xE} /*433.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0x6DD0, 0x6} /*439.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0x6F50, 0xE} /*445.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0x70D0, 0x3} /*451.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0x7250, 0x5} /*457.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0x73D0, 0x6} /*463.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0x7550, 0x5} /*469.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0x76D0, 0xE} /*475.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0x7850, 0x2} /*481.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0x79D0, 0xC} /*487.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0x7B50, 0xD} /*493.250000 MHz*/ ,
+ {{' ',' ','7','0'}, 0x7CD0, 0xC} /*499.250000 MHz*/ ,
+ {{' ',' ','7','1'}, 0x7E50, 0x6} /*505.250000 MHz*/ ,
+ {{' ',' ','7','2'}, 0x7FD0, 0x7} /*511.250000 MHz*/ ,
+ {{' ',' ','7','3'}, 0x8150, 0x0} /*517.250000 MHz*/ ,
+ {{' ',' ','7','4'}, 0x82D0, 0x1} /*523.250000 MHz*/ ,
+ {{' ',' ','7','5'}, 0x8450, 0x3} /*529.250000 MHz*/ ,
+ {{' ',' ','7','6'}, 0x85D0, 0x5} /*535.250000 MHz*/ ,
+ {{' ',' ','7','7'}, 0x8750, 0x5} /*541.250000 MHz*/ ,
+ {{' ',' ','7','8'}, 0x88D0, 0x6} /*547.250000 MHz*/ ,
+ {{' ',' ','7','9'}, 0x8A50, 0xD} /*553.250000 MHz*/ ,
+ {{' ',' ','8','0'}, 0x8BD0, 0x5} /*559.250000 MHz*/ ,
+ {{' ',' ','8','1'}, 0x8D50, 0xF} /*565.250000 MHz*/ ,
+ {{' ',' ','8','2'}, 0x8ED0, 0x5} /*571.250000 MHz*/ ,
+ {{' ',' ','8','3'}, 0x9050, 0x2} /*577.250000 MHz*/ ,
+ {{' ',' ','8','4'}, 0x91D0, 0xC} /*583.250000 MHz*/ ,
+ {{' ',' ','8','5'}, 0x9350, 0xE} /*589.250000 MHz*/ ,
+ {{' ',' ','8','6'}, 0x94D0, 0x3} /*595.250000 MHz*/ ,
+ {{' ',' ','8','7'}, 0x9650, 0x1} /*601.250000 MHz*/ ,
+ {{' ',' ','8','8'}, 0x97D0, 0x6} /*607.250000 MHz*/ ,
+ {{' ',' ','8','9'}, 0x9950, 0xC} /*613.250000 MHz*/ ,
+ {{' ',' ','9','0'}, 0x9AD0, 0x4} /*619.250000 MHz*/ ,
+ {{' ',' ','9','1'}, 0x9C50, 0x3} /*625.250000 MHz*/ ,
+ {{' ',' ','9','2'}, 0x9DD0, 0x4} /*631.250000 MHz*/ ,
+ {{' ',' ','9','3'}, 0x9F50, 0x1} /*637.250000 MHz*/ ,
+ {{' ',' ','9','4'}, 0xA0D0, 0x2} /*643.250000 MHz*/ ,
+ {{' ',' ','9','5'}, 0x16D0, 0x3} /*91.250000 MHz*/ ,
+ {{' ',' ','9','6'}, 0x1850, 0xC} /*97.250000 MHz*/ ,
+ {{' ',' ','9','7'}, 0x19D0, 0xD} /*103.250000 MHz*/ ,
+ {{' ',' ','9','8'}, 0x1B51, 0x4} /*109.265625 MHz*/ ,
+ {{' ',' ','9','9'}, 0x1CD1, 0xD} /*115.265625 MHz*/ ,
+ {{' ','1','0','0'}, 0xA250, 0x1} /*649.250000 MHz*/ ,
+ {{' ','1','0','1'}, 0xA3D0, 0xE} /*655.250000 MHz*/ ,
+ {{' ','1','0','2'}, 0xA550, 0xD} /*661.250000 MHz*/ ,
+ {{' ','1','0','3'}, 0xA6D0, 0x7} /*667.250000 MHz*/ ,
+ {{' ','1','0','4'}, 0xA850, 0xE} /*673.250000 MHz*/ ,
+ {{' ','1','0','5'}, 0xA9D0, 0x7} /*679.250000 MHz*/ ,
+ {{' ','1','0','6'}, 0xAB50, 0xC} /*685.250000 MHz*/ ,
+ {{' ','1','0','7'}, 0xACD0, 0xD} /*691.250000 MHz*/ ,
+ {{' ','1','0','8'}, 0xAE50, 0xE} /*697.250000 MHz*/ ,
+ {{' ','1','0','9'}, 0xAFD0, 0x1} /*703.250000 MHz*/ ,
+ {{' ','1','1','0'}, 0xB150, 0x0} /*709.250000 MHz*/ ,
+ {{' ','1','1','1'}, 0xB2D0, 0xC} /*715.250000 MHz*/ ,
+ {{' ','1','1','2'}, 0xB450, 0x0} /*721.250000 MHz*/ ,
+ {{' ','1','1','3'}, 0xB5D0, 0xE} /*727.250000 MHz*/ ,
+ {{' ','1','1','4'}, 0xB750, 0xF} /*733.250000 MHz*/ ,
+ {{' ','1','1','5'}, 0xB8D0, 0x0} /*739.250000 MHz*/ ,
+ {{' ','1','1','6'}, 0xBA50, 0x1} /*745.250000 MHz*/ ,
+ {{' ','1','1','7'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ','1','1','8'}, 0xBD50, 0x0} /*757.250000 MHz*/ ,
+ {{' ','1','1','9'}, 0xBED0, 0x4} /*763.250000 MHz*/ ,
+ {{' ','1','2','0'}, 0xC050, 0xC} /*769.250000 MHz*/ ,
+ {{' ','1','2','1'}, 0xC1D0, 0x5} /*775.250000 MHz*/ ,
+ {{' ','1','2','2'}, 0xC350, 0xC} /*781.250000 MHz*/ ,
+ {{' ','1','2','3'}, 0xC4D0, 0x7} /*787.250000 MHz*/ ,
+ {{' ','1','2','4'}, 0xC650, 0x0} /*793.250000 MHz*/ ,
+ {{' ','1','2','5'}, 0xC7D0, 0x1} /*799.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_usa_digital_cable = {
+ 125,
+ XC3028_channels_usa_digital_cable
+};
+
+XC3028_CHANNEL XC3028_channels_taiwan_analog_air[68] = {
+ {{' ',' ',' ','2'}, 0x0DD0, 0x6} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x6} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x2} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x4} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0x2} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0xE} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x3} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x1} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0xF} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0xF} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x4} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0x1} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x75D0, 0x2} /*471.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x7750, 0x1} /*477.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x78D0, 0x5} /*483.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x7A50, 0x5} /*489.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x7D50, 0x3} /*501.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x7ED0, 0x2} /*507.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x8050, 0x3} /*513.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x81D0, 0xD} /*519.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x8350, 0x1} /*525.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x84D0, 0x3} /*531.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x8650, 0x2} /*537.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x87D0, 0x5} /*543.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x8950, 0xD} /*549.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x8AD0, 0xE} /*555.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x8C50, 0x2} /*561.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x8DD0, 0x1} /*567.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x8F50, 0xD} /*573.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x90D0, 0xD} /*579.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x9250, 0xE} /*585.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x9550, 0x0} /*597.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x96D0, 0xD} /*603.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x9850, 0x5} /*609.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x99D0, 0xF} /*615.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x9B50, 0x0} /*621.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9CD0, 0x2} /*627.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9E50, 0x2} /*633.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x2} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA150, 0x3} /*645.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA2D0, 0xE} /*651.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA450, 0x0} /*657.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA5D0, 0x1} /*663.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA750, 0x2} /*669.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xA8D0, 0xF} /*675.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xAA50, 0x0} /*681.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xABD0, 0xF} /*687.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xAD50, 0x1} /*693.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xAED0, 0x2} /*699.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB050, 0xF} /*705.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB350, 0x1} /*717.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xB4D0, 0x0} /*723.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xB650, 0x1} /*729.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xB7D0, 0x2} /*735.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xB950, 0x3} /*741.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xBAD0, 0x1} /*747.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xBC50, 0xF} /*753.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xBF50, 0x4} /*765.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xC0D0, 0xE} /*771.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xC250, 0xE} /*777.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xC550, 0xD} /*789.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xC6D0, 0xF} /*795.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xC850, 0xF} /*801.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_taiwan_analog_air = {
+ 68,
+ XC3028_channels_taiwan_analog_air
+};
+
+XC3028_CHANNEL XC3028_channels_taiwan_analog_cable[125] = {
+ {{' ',' ',' ','1'}, 0x1250, 0x0} /*73.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x0DD0, 0x6} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x6} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x2} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x4} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0x2} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0xF} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x3} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x3} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0xE} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0x2} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x2} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0x2} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x1E50, 0x2} /*121.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x1FD0, 0x5} /*127.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x2150, 0xE} /*133.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x22D0, 0x2} /*139.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x2450, 0x0} /*145.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x25D0, 0x2} /*151.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x2750, 0x0} /*157.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x28D0, 0xF} /*163.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x2A50, 0x0} /*169.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x3650, 0x1} /*217.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x37D0, 0xD} /*223.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x3950, 0xF} /*229.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x3AD0, 0x2} /*235.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x3C50, 0x0} /*241.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x3DD0, 0x1} /*247.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x3F50, 0x3} /*253.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x40D0, 0xD} /*259.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x4250, 0xD} /*265.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x43D0, 0x3} /*271.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x4550, 0x1} /*277.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x46D0, 0x1} /*283.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x4850, 0xD} /*289.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x49D0, 0x1} /*295.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x4B50, 0x2} /*301.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x4CD0, 0xF} /*307.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x4E50, 0x3} /*313.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x4FD0, 0xF} /*319.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x5150, 0xE} /*325.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x52D0, 0xD} /*331.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0x5450, 0x0} /*337.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0x55D0, 0xF} /*343.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0x5750, 0xE} /*349.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0x58D0, 0xD} /*355.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0x5A50, 0x1} /*361.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0x5BD0, 0xE} /*367.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0x5D50, 0xF} /*373.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0x5ED0, 0xE} /*379.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0x6050, 0x5} /*385.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0x61D0, 0x1} /*391.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0x6350, 0x2} /*397.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0x64D0, 0xE} /*403.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0x6650, 0x2} /*409.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0x67D0, 0xF} /*415.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0x6950, 0xE} /*421.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0x6AD0, 0xE} /*427.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0x6C50, 0x1} /*433.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0x6DD0, 0x1} /*439.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0x6F50, 0x1} /*445.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0x70D0, 0x4} /*451.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0x7250, 0xE} /*457.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0x73D0, 0xE} /*463.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0x7550, 0x2} /*469.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0x76D0, 0x3} /*475.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0x7850, 0x4} /*481.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0x79D0, 0xF} /*487.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0x7B50, 0x0} /*493.250000 MHz*/ ,
+ {{' ',' ','7','0'}, 0x7CD0, 0xF} /*499.250000 MHz*/ ,
+ {{' ',' ','7','1'}, 0x7E50, 0x4} /*505.250000 MHz*/ ,
+ {{' ',' ','7','2'}, 0x7FD0, 0x2} /*511.250000 MHz*/ ,
+ {{' ',' ','7','3'}, 0x8150, 0xF} /*517.250000 MHz*/ ,
+ {{' ',' ','7','4'}, 0x82D0, 0x1} /*523.250000 MHz*/ ,
+ {{' ',' ','7','5'}, 0x8450, 0x3} /*529.250000 MHz*/ ,
+ {{' ',' ','7','6'}, 0x85D0, 0x3} /*535.250000 MHz*/ ,
+ {{' ',' ','7','7'}, 0x8750, 0x3} /*541.250000 MHz*/ ,
+ {{' ',' ','7','8'}, 0x88D0, 0xF} /*547.250000 MHz*/ ,
+ {{' ',' ','7','9'}, 0x8A50, 0xE} /*553.250000 MHz*/ ,
+ {{' ',' ','8','0'}, 0x8BD0, 0xF} /*559.250000 MHz*/ ,
+ {{' ',' ','8','1'}, 0x8D50, 0x0} /*565.250000 MHz*/ ,
+ {{' ',' ','8','2'}, 0x8ED0, 0xD} /*571.250000 MHz*/ ,
+ {{' ',' ','8','3'}, 0x9050, 0x3} /*577.250000 MHz*/ ,
+ {{' ',' ','8','4'}, 0x91D0, 0x5} /*583.250000 MHz*/ ,
+ {{' ',' ','8','5'}, 0x9350, 0x0} /*589.250000 MHz*/ ,
+ {{' ',' ','8','6'}, 0x94D0, 0x2} /*595.250000 MHz*/ ,
+ {{' ',' ','8','7'}, 0x9650, 0xD} /*601.250000 MHz*/ ,
+ {{' ',' ','8','8'}, 0x97D0, 0xD} /*607.250000 MHz*/ ,
+ {{' ',' ','8','9'}, 0x9950, 0xD} /*613.250000 MHz*/ ,
+ {{' ',' ','9','0'}, 0x9AD0, 0xF} /*619.250000 MHz*/ ,
+ {{' ',' ','9','1'}, 0x9C50, 0x0} /*625.250000 MHz*/ ,
+ {{' ',' ','9','2'}, 0x9DD0, 0x3} /*631.250000 MHz*/ ,
+ {{' ',' ','9','3'}, 0x9F50, 0x3} /*637.250000 MHz*/ ,
+ {{' ',' ','9','4'}, 0xA0D0, 0x5} /*643.250000 MHz*/ ,
+ {{' ',' ','9','5'}, 0x16D0, 0x2} /*91.250000 MHz*/ ,
+ {{' ',' ','9','6'}, 0x1850, 0xF} /*97.250000 MHz*/ ,
+ {{' ',' ','9','7'}, 0x19D0, 0xE} /*103.250000 MHz*/ ,
+ {{' ',' ','9','8'}, 0x1B51, 0x4} /*109.265625 MHz*/ ,
+ {{' ',' ','9','9'}, 0x1CD1, 0x3} /*115.265625 MHz*/ ,
+ {{' ','1','0','0'}, 0xA250, 0x4} /*649.250000 MHz*/ ,
+ {{' ','1','0','1'}, 0xA3D0, 0x1} /*655.250000 MHz*/ ,
+ {{' ','1','0','2'}, 0xA550, 0x0} /*661.250000 MHz*/ ,
+ {{' ','1','0','3'}, 0xA6D0, 0x2} /*667.250000 MHz*/ ,
+ {{' ','1','0','4'}, 0xA850, 0xF} /*673.250000 MHz*/ ,
+ {{' ','1','0','5'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{' ','1','0','6'}, 0xAB50, 0x5} /*685.250000 MHz*/ ,
+ {{' ','1','0','7'}, 0xACD0, 0x2} /*691.250000 MHz*/ ,
+ {{' ','1','0','8'}, 0xAE50, 0x4} /*697.250000 MHz*/ ,
+ {{' ','1','0','9'}, 0xAFD0, 0x1} /*703.250000 MHz*/ ,
+ {{' ','1','1','0'}, 0xB150, 0xF} /*709.250000 MHz*/ ,
+ {{' ','1','1','1'}, 0xB2D0, 0x5} /*715.250000 MHz*/ ,
+ {{' ','1','1','2'}, 0xB450, 0xF} /*721.250000 MHz*/ ,
+ {{' ','1','1','3'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{' ','1','1','4'}, 0xB750, 0xE} /*733.250000 MHz*/ ,
+ {{' ','1','1','5'}, 0xB8D0, 0xF} /*739.250000 MHz*/ ,
+ {{' ','1','1','6'}, 0xBA50, 0x0} /*745.250000 MHz*/ ,
+ {{' ','1','1','7'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ','1','1','8'}, 0xBD50, 0x0} /*757.250000 MHz*/ ,
+ {{' ','1','1','9'}, 0xBED0, 0x1} /*763.250000 MHz*/ ,
+ {{' ','1','2','0'}, 0xC050, 0xD} /*769.250000 MHz*/ ,
+ {{' ','1','2','1'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{' ','1','2','2'}, 0xC350, 0x4} /*781.250000 MHz*/ ,
+ {{' ','1','2','3'}, 0xC4D0, 0x2} /*787.250000 MHz*/ ,
+ {{' ','1','2','4'}, 0xC650, 0x1} /*793.250000 MHz*/ ,
+ {{' ','1','2','5'}, 0xC7D0, 0xF} /*799.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_taiwan_analog_cable = {
+ 125,
+ XC3028_channels_taiwan_analog_cable
+};
+
+XC3028_CHANNEL XC3028_channels_taiwan_digital_air[68] = {
+ {{' ',' ',' ','2'}, 0x0DD0, 0x0} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x0} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x0} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x0} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0x0} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0x0} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x0} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x0} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0x0} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0x0} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x0} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0x0} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x7750, 0x0} /*477.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x78D0, 0x0} /*483.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x7A50, 0x0} /*489.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x7D50, 0x0} /*501.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x7ED0, 0x0} /*507.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x8050, 0x0} /*513.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x8350, 0x0} /*525.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x84D0, 0x0} /*531.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x8650, 0x0} /*537.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x8950, 0x0} /*549.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x8AD0, 0x0} /*555.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x8C50, 0x0} /*561.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x8F50, 0x0} /*573.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x90D0, 0x0} /*579.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x9250, 0x0} /*585.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x9550, 0x0} /*597.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x96D0, 0x0} /*603.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x9850, 0x0} /*609.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x9B50, 0x0} /*621.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9CD0, 0x0} /*627.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9E50, 0x0} /*633.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA150, 0x0} /*645.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA2D0, 0x0} /*651.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA450, 0x0} /*657.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA750, 0x0} /*669.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xA8D0, 0x0} /*675.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xAA50, 0x0} /*681.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xAD50, 0x0} /*693.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xAED0, 0x0} /*699.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB050, 0x0} /*705.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB350, 0x0} /*717.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xB4D0, 0x0} /*723.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xB650, 0x0} /*729.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xB950, 0x0} /*741.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xBAD0, 0x0} /*747.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xBC50, 0x0} /*753.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xBF50, 0x0} /*765.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xC0D0, 0x0} /*771.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xC250, 0x0} /*777.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xC550, 0x0} /*789.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xC6D0, 0x0} /*795.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xC850, 0x0} /*801.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_taiwan_digital_air = {
+ 68,
+ XC3028_channels_taiwan_digital_air
+};
+
+XC3028_CHANNEL XC3028_channels_taiwan_digital_cable[125] = {
+ {{' ',' ',' ','1'}, 0x1250, 0x0} /*73.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x0DD0, 0x0} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x0} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x0} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x0} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0x0} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0x0} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x0} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x0} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0x0} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0x0} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x0} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0x0} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x1E50, 0x0} /*121.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x1FD0, 0x0} /*127.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x2150, 0x0} /*133.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x22D0, 0x0} /*139.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x2450, 0x0} /*145.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x25D0, 0x0} /*151.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x2750, 0x0} /*157.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x28D0, 0x0} /*163.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x2A50, 0x0} /*169.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x3650, 0x0} /*217.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x37D0, 0x0} /*223.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x3950, 0x0} /*229.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x3AD0, 0x0} /*235.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x3C50, 0x0} /*241.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x3DD0, 0x0} /*247.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x3F50, 0x0} /*253.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x40D0, 0x0} /*259.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x4250, 0x0} /*265.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x43D0, 0x0} /*271.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x4550, 0x0} /*277.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x46D0, 0x0} /*283.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x4850, 0x0} /*289.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x49D0, 0x0} /*295.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x4B50, 0x0} /*301.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x4CD0, 0x0} /*307.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x4E50, 0x0} /*313.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x4FD0, 0x0} /*319.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x5150, 0x0} /*325.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x52D0, 0x0} /*331.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0x5450, 0x0} /*337.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0x55D0, 0x0} /*343.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0x5750, 0x0} /*349.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0x58D0, 0x0} /*355.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0x5A50, 0x0} /*361.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0x5BD0, 0x0} /*367.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0x5D50, 0x0} /*373.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0x5ED0, 0x0} /*379.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0x6050, 0x0} /*385.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0x61D0, 0x0} /*391.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0x6350, 0x0} /*397.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0x64D0, 0x0} /*403.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0x6650, 0x0} /*409.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0x67D0, 0x0} /*415.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0x6950, 0x0} /*421.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0x6AD0, 0x0} /*427.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0x6C50, 0x0} /*433.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0x6DD0, 0x0} /*439.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0x6F50, 0x0} /*445.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0x70D0, 0x0} /*451.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0x7250, 0x0} /*457.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0x73D0, 0x0} /*463.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0x7550, 0x0} /*469.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0x76D0, 0x0} /*475.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0x7850, 0x0} /*481.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0x79D0, 0x0} /*487.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0x7B50, 0x0} /*493.250000 MHz*/ ,
+ {{' ',' ','7','0'}, 0x7CD0, 0x0} /*499.250000 MHz*/ ,
+ {{' ',' ','7','1'}, 0x7E50, 0x0} /*505.250000 MHz*/ ,
+ {{' ',' ','7','2'}, 0x7FD0, 0x0} /*511.250000 MHz*/ ,
+ {{' ',' ','7','3'}, 0x8150, 0x0} /*517.250000 MHz*/ ,
+ {{' ',' ','7','4'}, 0x82D0, 0x0} /*523.250000 MHz*/ ,
+ {{' ',' ','7','5'}, 0x8450, 0x0} /*529.250000 MHz*/ ,
+ {{' ',' ','7','6'}, 0x85D0, 0x0} /*535.250000 MHz*/ ,
+ {{' ',' ','7','7'}, 0x8750, 0x0} /*541.250000 MHz*/ ,
+ {{' ',' ','7','8'}, 0x88D0, 0x0} /*547.250000 MHz*/ ,
+ {{' ',' ','7','9'}, 0x8A50, 0x0} /*553.250000 MHz*/ ,
+ {{' ',' ','8','0'}, 0x8BD0, 0x0} /*559.250000 MHz*/ ,
+ {{' ',' ','8','1'}, 0x8D50, 0x0} /*565.250000 MHz*/ ,
+ {{' ',' ','8','2'}, 0x8ED0, 0x0} /*571.250000 MHz*/ ,
+ {{' ',' ','8','3'}, 0x9050, 0x0} /*577.250000 MHz*/ ,
+ {{' ',' ','8','4'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','8','5'}, 0x9350, 0x0} /*589.250000 MHz*/ ,
+ {{' ',' ','8','6'}, 0x94D0, 0x0} /*595.250000 MHz*/ ,
+ {{' ',' ','8','7'}, 0x9650, 0x0} /*601.250000 MHz*/ ,
+ {{' ',' ','8','8'}, 0x97D0, 0x0} /*607.250000 MHz*/ ,
+ {{' ',' ','8','9'}, 0x9950, 0x0} /*613.250000 MHz*/ ,
+ {{' ',' ','9','0'}, 0x9AD0, 0x0} /*619.250000 MHz*/ ,
+ {{' ',' ','9','1'}, 0x9C50, 0x0} /*625.250000 MHz*/ ,
+ {{' ',' ','9','2'}, 0x9DD0, 0x0} /*631.250000 MHz*/ ,
+ {{' ',' ','9','3'}, 0x9F50, 0x0} /*637.250000 MHz*/ ,
+ {{' ',' ','9','4'}, 0xA0D0, 0x0} /*643.250000 MHz*/ ,
+ {{' ',' ','9','5'}, 0x16D0, 0x0} /*91.250000 MHz*/ ,
+ {{' ',' ','9','6'}, 0x1850, 0x0} /*97.250000 MHz*/ ,
+ {{' ',' ','9','7'}, 0x19D0, 0x0} /*103.250000 MHz*/ ,
+ {{' ',' ','9','8'}, 0x1B51, 0x0} /*109.265625 MHz*/ ,
+ {{' ',' ','9','9'}, 0x1CD1, 0x0} /*115.265625 MHz*/ ,
+ {{' ','1','0','0'}, 0xA250, 0x0} /*649.250000 MHz*/ ,
+ {{' ','1','0','1'}, 0xA3D0, 0x0} /*655.250000 MHz*/ ,
+ {{' ','1','0','2'}, 0xA550, 0x0} /*661.250000 MHz*/ ,
+ {{' ','1','0','3'}, 0xA6D0, 0x0} /*667.250000 MHz*/ ,
+ {{' ','1','0','4'}, 0xA850, 0x0} /*673.250000 MHz*/ ,
+ {{' ','1','0','5'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{' ','1','0','6'}, 0xAB50, 0x0} /*685.250000 MHz*/ ,
+ {{' ','1','0','7'}, 0xACD0, 0x0} /*691.250000 MHz*/ ,
+ {{' ','1','0','8'}, 0xAE50, 0x0} /*697.250000 MHz*/ ,
+ {{' ','1','0','9'}, 0xAFD0, 0x0} /*703.250000 MHz*/ ,
+ {{' ','1','1','0'}, 0xB150, 0x0} /*709.250000 MHz*/ ,
+ {{' ','1','1','1'}, 0xB2D0, 0x0} /*715.250000 MHz*/ ,
+ {{' ','1','1','2'}, 0xB450, 0x0} /*721.250000 MHz*/ ,
+ {{' ','1','1','3'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{' ','1','1','4'}, 0xB750, 0x0} /*733.250000 MHz*/ ,
+ {{' ','1','1','5'}, 0xB8D0, 0x0} /*739.250000 MHz*/ ,
+ {{' ','1','1','6'}, 0xBA50, 0x0} /*745.250000 MHz*/ ,
+ {{' ','1','1','7'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ','1','1','8'}, 0xBD50, 0x0} /*757.250000 MHz*/ ,
+ {{' ','1','1','9'}, 0xBED0, 0x0} /*763.250000 MHz*/ ,
+ {{' ','1','2','0'}, 0xC050, 0x0} /*769.250000 MHz*/ ,
+ {{' ','1','2','1'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{' ','1','2','2'}, 0xC350, 0x0} /*781.250000 MHz*/ ,
+ {{' ','1','2','3'}, 0xC4D0, 0x0} /*787.250000 MHz*/ ,
+ {{' ','1','2','4'}, 0xC650, 0x0} /*793.250000 MHz*/ ,
+ {{' ','1','2','5'}, 0xC7D0, 0x0} /*799.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_taiwan_digital_cable = {
+ 125,
+ XC3028_channels_taiwan_digital_cable
+};
+
+XC3028_CHANNEL XC3028_channels_japan_analog_air[62] = {
+ {{' ',' ',' ','1'}, 0x16D0, 0x2} /*91.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x1850, 0x0} /*97.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x19D0, 0x0} /*103.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x2AD0, 0x0} /*171.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2C50, 0xF} /*177.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2DD0, 0x3} /*183.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2F50, 0xB} /*189.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3050, 0xE} /*193.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x31D0, 0x0} /*199.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3350, 0xD} /*205.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x34D0, 0x0} /*211.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3650, 0x0} /*217.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x75D0, 0xB} /*471.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x7750, 0x3} /*477.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x78D0, 0xA} /*483.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x7A50, 0xC} /*489.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x7BD0, 0xE} /*495.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x7D50, 0xB} /*501.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x7ED0, 0x1} /*507.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x8050, 0xE} /*513.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x81D0, 0xF} /*519.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x8350, 0xF} /*525.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x84D0, 0xC} /*531.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x8650, 0xC} /*537.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x87D0, 0x2} /*543.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x8950, 0xF} /*549.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x8AD0, 0x0} /*555.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x8C50, 0x0} /*561.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x8DD0, 0x1} /*567.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x8F50, 0xD} /*573.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x90D0, 0xD} /*579.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x9250, 0xE} /*585.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x93D0, 0xF} /*591.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x9550, 0x0} /*597.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x96D0, 0x1} /*603.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x9850, 0xB} /*609.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x99D0, 0xC} /*615.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x9B50, 0xF} /*621.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x9CD0, 0xF} /*627.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9E50, 0x1} /*633.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9FD0, 0xE} /*639.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0xA150, 0xA} /*645.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA2D0, 0x4} /*651.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA450, 0x0} /*657.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA750, 0xF} /*669.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA8D0, 0xC} /*675.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xAA50, 0x0} /*681.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xABD0, 0x1} /*687.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAD50, 0x0} /*693.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xAED0, 0x1} /*699.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB050, 0xC} /*705.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB1D0, 0xE} /*711.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB350, 0xE} /*717.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB4D0, 0xD} /*723.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xB650, 0xE} /*729.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xB7D0, 0xF} /*735.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xB950, 0xF} /*741.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xBAD0, 0xF} /*747.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xBC50, 0xF} /*753.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xBDD0, 0x1} /*759.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xBF50, 0x1} /*765.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_japan_analog_air = {
+ 62,
+ XC3028_channels_japan_analog_air
+};
+
+XC3028_CHANNEL XC3028_channels_japan_analog_cable[62] = {
+ {{' ',' ',' ','1'}, 0x16D0, 0x2} /*91.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x1850, 0x0} /*97.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x19D0, 0x0} /*103.250000 MHz*/ ,
+ {{' ',' ','M','1'}, 0x1B50, 0x0} /*109.250000 MHz*/ ,
+ {{' ',' ','M','2'}, 0x1CD0, 0x1} /*115.250000 MHz*/ ,
+ {{' ',' ','M','3'}, 0x1E50, 0x2} /*121.250000 MHz*/ ,
+ {{' ',' ','M','4'}, 0x1FD0, 0xB} /*127.250000 MHz*/ ,
+ {{' ',' ','M','5'}, 0x2150, 0xC} /*133.250000 MHz*/ ,
+ {{' ',' ','M','6'}, 0x22D0, 0xA} /*139.250000 MHz*/ ,
+ {{' ',' ','M','7'}, 0x2450, 0xB} /*145.250000 MHz*/ ,
+ {{' ',' ','M','8'}, 0x25D0, 0x0} /*151.250000 MHz*/ ,
+ {{' ',' ','M','9'}, 0x2750, 0xB} /*157.250000 MHz*/ ,
+ {{' ','M','1','0'}, 0x2950, 0x1} /*165.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x2AD0, 0x0} /*171.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2C50, 0xF} /*177.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2DD0, 0x3} /*183.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2F50, 0xB} /*189.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3050, 0xE} /*193.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x31D0, 0x0} /*199.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3350, 0xD} /*205.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x34D0, 0x0} /*211.250000 MHz*/ ,
+ {{' ',' ','S','1'}, 0x37D0, 0xD} /*223.250000 MHz*/ ,
+ {{' ',' ','S','2'}, 0x3950, 0x0} /*229.250000 MHz*/ ,
+ {{' ',' ','S','3'}, 0x3AD0, 0x0} /*235.250000 MHz*/ ,
+ {{' ',' ','S','4'}, 0x3C50, 0x0} /*241.250000 MHz*/ ,
+ {{' ',' ','S','5'}, 0x3DD0, 0xF} /*247.250000 MHz*/ ,
+ {{' ',' ','S','6'}, 0x3F50, 0x2} /*253.250000 MHz*/ ,
+ {{' ',' ','S','7'}, 0x40D0, 0x5} /*259.250000 MHz*/ ,
+ {{' ',' ','S','8'}, 0x4250, 0x3} /*265.250000 MHz*/ ,
+ {{' ',' ','S','9'}, 0x43D0, 0xC} /*271.250000 MHz*/ ,
+ {{' ','S','1','0'}, 0x4550, 0xE} /*277.250000 MHz*/ ,
+ {{' ','S','1','1'}, 0x46D0, 0x1} /*283.250000 MHz*/ ,
+ {{' ','S','1','2'}, 0x4850, 0xF} /*289.250000 MHz*/ ,
+ {{' ','S','1','3'}, 0x49D0, 0xF} /*295.250000 MHz*/ ,
+ {{' ','S','1','4'}, 0x4B50, 0xC} /*301.250000 MHz*/ ,
+ {{' ','S','1','5'}, 0x4CD0, 0xE} /*307.250000 MHz*/ ,
+ {{' ','S','1','6'}, 0x4E50, 0xC} /*313.250000 MHz*/ ,
+ {{' ','S','1','7'}, 0x4FD0, 0xE} /*319.250000 MHz*/ ,
+ {{' ','S','1','8'}, 0x5150, 0xE} /*325.250000 MHz*/ ,
+ {{' ','S','1','9'}, 0x52D0, 0x1} /*331.250000 MHz*/ ,
+ {{' ','S','2','0'}, 0x5450, 0x5} /*337.250000 MHz*/ ,
+ {{' ','S','2','1'}, 0x55D0, 0x0} /*343.250000 MHz*/ ,
+ {{' ','S','2','2'}, 0x5750, 0x4} /*349.250000 MHz*/ ,
+ {{' ','S','2','3'}, 0x58D0, 0xB} /*355.250000 MHz*/ ,
+ {{' ','S','2','4'}, 0x5A50, 0xC} /*361.250000 MHz*/ ,
+ {{' ','S','2','5'}, 0x5BD0, 0xD} /*367.250000 MHz*/ ,
+ {{' ','S','2','6'}, 0x5D50, 0xB} /*373.250000 MHz*/ ,
+ {{' ','S','2','7'}, 0x5ED0, 0xB} /*379.250000 MHz*/ ,
+ {{' ','S','2','8'}, 0x6050, 0xB} /*385.250000 MHz*/ ,
+ {{' ','S','2','9'}, 0x61D0, 0xD} /*391.250000 MHz*/ ,
+ {{' ','S','3','0'}, 0x6350, 0x1} /*397.250000 MHz*/ ,
+ {{' ','S','3','1'}, 0x64D0, 0x3} /*403.250000 MHz*/ ,
+ {{' ','S','3','2'}, 0x6650, 0xB} /*409.250000 MHz*/ ,
+ {{' ','S','3','3'}, 0x67D0, 0x2} /*415.250000 MHz*/ ,
+ {{' ','S','3','4'}, 0x6950, 0xB} /*421.250000 MHz*/ ,
+ {{' ','S','3','5'}, 0x6AD0, 0xE} /*427.250000 MHz*/ ,
+ {{' ','S','3','6'}, 0x6C50, 0x0} /*433.250000 MHz*/ ,
+ {{' ','S','3','7'}, 0x6DD0, 0xB} /*439.250000 MHz*/ ,
+ {{' ','S','3','8'}, 0x6F50, 0xE} /*445.250000 MHz*/ ,
+ {{' ','S','3','9'}, 0x70D0, 0x3} /*451.250000 MHz*/ ,
+ {{' ','S','4','0'}, 0x7250, 0xC} /*457.250000 MHz*/ ,
+ {{' ','S','4','1'}, 0x73D0, 0xE} /*463.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_japan_analog_cable = {
+ 62,
+ XC3028_channels_japan_analog_cable
+};
+
+XC3028_CHANNEL XC3028_channels_japan_digital_air[62] = {
+ {{' ',' ',' ','1'}, 0x16D0, 0x0} /*91.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x1850, 0x0} /*97.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x19D0, 0x0} /*103.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x2AD0, 0x0} /*171.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2C50, 0x0} /*177.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2DD0, 0x0} /*183.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2F50, 0x0} /*189.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3050, 0x0} /*193.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x31D0, 0x0} /*199.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3350, 0x0} /*205.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x34D0, 0x0} /*211.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3650, 0x0} /*217.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x7750, 0x0} /*477.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x78D0, 0x0} /*483.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x7A50, 0x0} /*489.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x7D50, 0x0} /*501.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x7ED0, 0x0} /*507.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x8050, 0x0} /*513.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x8350, 0x0} /*525.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x84D0, 0x0} /*531.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x8650, 0x0} /*537.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x8950, 0x0} /*549.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x8AD0, 0x0} /*555.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x8C50, 0x0} /*561.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x8F50, 0x0} /*573.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x90D0, 0x0} /*579.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x9250, 0x0} /*585.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x9550, 0x0} /*597.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x96D0, 0x0} /*603.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x9850, 0x0} /*609.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x9B50, 0x0} /*621.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x9CD0, 0x0} /*627.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9E50, 0x0} /*633.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0xA150, 0x0} /*645.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA2D0, 0x0} /*651.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA450, 0x0} /*657.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA750, 0x0} /*669.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA8D0, 0x0} /*675.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xAA50, 0x0} /*681.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAD50, 0x0} /*693.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xAED0, 0x0} /*699.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB050, 0x0} /*705.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB350, 0x0} /*717.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB4D0, 0x0} /*723.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xB650, 0x0} /*729.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xB950, 0x0} /*741.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xBAD0, 0x0} /*747.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xBC50, 0x0} /*753.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xBF50, 0x0} /*765.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_japan_digital_air = {
+ 62,
+ XC3028_channels_japan_digital_air
+};
+
+XC3028_CHANNEL XC3028_channels_japan_digital_cable[62] = {
+ {{' ',' ',' ','1'}, 0x16D0, 0x0} /*91.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x1850, 0x0} /*97.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x19D0, 0x0} /*103.250000 MHz*/ ,
+ {{' ',' ','M','1'}, 0x1B50, 0x0} /*109.250000 MHz*/ ,
+ {{' ',' ','M','2'}, 0x1CD0, 0x0} /*115.250000 MHz*/ ,
+ {{' ',' ','M','3'}, 0x1E50, 0x0} /*121.250000 MHz*/ ,
+ {{' ',' ','M','4'}, 0x1FD0, 0x0} /*127.250000 MHz*/ ,
+ {{' ',' ','M','5'}, 0x2150, 0x0} /*133.250000 MHz*/ ,
+ {{' ',' ','M','6'}, 0x22D0, 0x0} /*139.250000 MHz*/ ,
+ {{' ',' ','M','7'}, 0x2450, 0x0} /*145.250000 MHz*/ ,
+ {{' ',' ','M','8'}, 0x25D0, 0x0} /*151.250000 MHz*/ ,
+ {{' ',' ','M','9'}, 0x2750, 0x0} /*157.250000 MHz*/ ,
+ {{' ','M','1','0'}, 0x2950, 0x0} /*165.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x2AD0, 0x0} /*171.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2C50, 0x0} /*177.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2DD0, 0x0} /*183.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2F50, 0x0} /*189.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3050, 0x0} /*193.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x31D0, 0x0} /*199.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3350, 0x0} /*205.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x34D0, 0x0} /*211.250000 MHz*/ ,
+ {{' ',' ','S','1'}, 0x37D0, 0x0} /*223.250000 MHz*/ ,
+ {{' ',' ','S','2'}, 0x3950, 0x0} /*229.250000 MHz*/ ,
+ {{' ',' ','S','3'}, 0x3AD0, 0x0} /*235.250000 MHz*/ ,
+ {{' ',' ','S','4'}, 0x3C50, 0x0} /*241.250000 MHz*/ ,
+ {{' ',' ','S','5'}, 0x3DD0, 0x0} /*247.250000 MHz*/ ,
+ {{' ',' ','S','6'}, 0x3F50, 0x0} /*253.250000 MHz*/ ,
+ {{' ',' ','S','7'}, 0x40D0, 0x0} /*259.250000 MHz*/ ,
+ {{' ',' ','S','8'}, 0x4250, 0x0} /*265.250000 MHz*/ ,
+ {{' ',' ','S','9'}, 0x43D0, 0x0} /*271.250000 MHz*/ ,
+ {{' ','S','1','0'}, 0x4550, 0x0} /*277.250000 MHz*/ ,
+ {{' ','S','1','1'}, 0x46D0, 0x0} /*283.250000 MHz*/ ,
+ {{' ','S','1','2'}, 0x4850, 0x0} /*289.250000 MHz*/ ,
+ {{' ','S','1','3'}, 0x49D0, 0x0} /*295.250000 MHz*/ ,
+ {{' ','S','1','4'}, 0x4B50, 0x0} /*301.250000 MHz*/ ,
+ {{' ','S','1','5'}, 0x4CD0, 0x0} /*307.250000 MHz*/ ,
+ {{' ','S','1','6'}, 0x4E50, 0x0} /*313.250000 MHz*/ ,
+ {{' ','S','1','7'}, 0x4FD0, 0x0} /*319.250000 MHz*/ ,
+ {{' ','S','1','8'}, 0x5150, 0x0} /*325.250000 MHz*/ ,
+ {{' ','S','1','9'}, 0x52D0, 0x0} /*331.250000 MHz*/ ,
+ {{' ','S','2','0'}, 0x5450, 0x0} /*337.250000 MHz*/ ,
+ {{' ','S','2','1'}, 0x55D0, 0x0} /*343.250000 MHz*/ ,
+ {{' ','S','2','2'}, 0x5750, 0x0} /*349.250000 MHz*/ ,
+ {{' ','S','2','3'}, 0x58D0, 0x0} /*355.250000 MHz*/ ,
+ {{' ','S','2','4'}, 0x5A50, 0x0} /*361.250000 MHz*/ ,
+ {{' ','S','2','5'}, 0x5BD0, 0x0} /*367.250000 MHz*/ ,
+ {{' ','S','2','6'}, 0x5D50, 0x0} /*373.250000 MHz*/ ,
+ {{' ','S','2','7'}, 0x5ED0, 0x0} /*379.250000 MHz*/ ,
+ {{' ','S','2','8'}, 0x6050, 0x0} /*385.250000 MHz*/ ,
+ {{' ','S','2','9'}, 0x61D0, 0x0} /*391.250000 MHz*/ ,
+ {{' ','S','3','0'}, 0x6350, 0x0} /*397.250000 MHz*/ ,
+ {{' ','S','3','1'}, 0x64D0, 0x0} /*403.250000 MHz*/ ,
+ {{' ','S','3','2'}, 0x6650, 0x0} /*409.250000 MHz*/ ,
+ {{' ','S','3','3'}, 0x67D0, 0x0} /*415.250000 MHz*/ ,
+ {{' ','S','3','4'}, 0x6950, 0x0} /*421.250000 MHz*/ ,
+ {{' ','S','3','5'}, 0x6AD0, 0x0} /*427.250000 MHz*/ ,
+ {{' ','S','3','6'}, 0x6C50, 0x0} /*433.250000 MHz*/ ,
+ {{' ','S','3','7'}, 0x6DD0, 0x0} /*439.250000 MHz*/ ,
+ {{' ','S','3','8'}, 0x6F50, 0x0} /*445.250000 MHz*/ ,
+ {{' ','S','3','9'}, 0x70D0, 0x0} /*451.250000 MHz*/ ,
+ {{' ','S','4','0'}, 0x7250, 0x0} /*457.250000 MHz*/ ,
+ {{' ','S','4','1'}, 0x73D0, 0x0} /*463.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_japan_digital_cable = {
+ 62,
+ XC3028_channels_japan_digital_cable
+};
+
+XC3028_CHANNEL XC3028_channels_ccir_analog_air[60] = {
+ {{' ',' ',' ','2'}, 0x0C10, 0xA} /*48.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0DD0, 0x5} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x0F90, 0xA} /*62.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2BD0, 0xC} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2D90, 0x1} /*182.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2F50, 0x5} /*189.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3110, 0x1} /*196.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x32D0, 0x4} /*203.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3490, 0x0} /*210.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x3650, 0x0} /*217.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3810, 0x5} /*224.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x75D0, 0x1} /*471.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x77D0, 0x3} /*479.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x79D0, 0xC} /*487.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x7BD0, 0xF} /*495.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x7DD0, 0xC} /*503.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x7FD0, 0xE} /*511.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x2} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x85D0, 0x4} /*535.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8BD0, 0xF} /*559.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8DD0, 0xA} /*567.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8FD0, 0xE} /*575.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x93D0, 0xF} /*591.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x95D0, 0x1} /*599.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x97D0, 0xC} /*607.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x99D0, 0xD} /*615.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9BD0, 0xF} /*623.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9DD0, 0xE} /*631.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x2} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA1D0, 0xB} /*647.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA3D0, 0xF} /*655.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0xD} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA7D0, 0xF} /*671.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA9D0, 0xD} /*679.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xADD0, 0xE} /*695.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAFD0, 0x2} /*703.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB3D0, 0x5} /*719.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB5D0, 0x1} /*727.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB7D0, 0x2} /*735.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB9D0, 0x3} /*743.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xBBD0, 0x2} /*751.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xBDD0, 0xE} /*759.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xBFD0, 0xF} /*767.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xC1D0, 0x3} /*775.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xC3D0, 0xD} /*783.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xC5D0, 0xE} /*791.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xC7D0, 0xF} /*799.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC9D0, 0xC} /*807.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xCBD0, 0x4} /*815.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xCDD0, 0xE} /*823.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xCFD0, 0x2} /*831.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xD1D0, 0x5} /*839.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xD3D0, 0x0} /*847.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xD5D0, 0x1} /*855.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_ccir_analog_air = {
+ 60,
+ XC3028_channels_ccir_analog_air
+};
+
+XC3028_CHANNEL XC3028_channels_ccir_analog_cable[57] = {
+ {{' ',' ','E','2'}, 0x0C10, 0xA} /*48.250000 MHz*/ ,
+ {{' ',' ','E','3'}, 0x0DD0, 0x5} /*55.250000 MHz*/ ,
+ {{' ',' ','E','4'}, 0x0F90, 0xA} /*62.250000 MHz*/ ,
+ {{' ',' ',' ','X'}, 0x1150, 0xC} /*69.250000 MHz*/ ,
+ {{' ',' ',' ','Y'}, 0x1310, 0x5} /*76.250000 MHz*/ ,
+ {{' ',' ',' ','Z'}, 0x14D0, 0x2} /*83.250000 MHz*/ ,
+ {{' ','Z','+','1'}, 0x1690, 0x3} /*90.250000 MHz*/ ,
+ {{' ','Z','+','2'}, 0x1850, 0xF} /*97.250000 MHz*/ ,
+ {{' ',' ','S','1'}, 0x1A50, 0x1} /*105.250000 MHz*/ ,
+ {{' ',' ','S','2'}, 0x1C10, 0xB} /*112.250000 MHz*/ ,
+ {{' ',' ','S','3'}, 0x1DD0, 0x2} /*119.250000 MHz*/ ,
+ {{' ',' ','S','4'}, 0x1F90, 0xA} /*126.250000 MHz*/ ,
+ {{' ',' ','S','5'}, 0x2150, 0x4} /*133.250000 MHz*/ ,
+ {{' ',' ','S','6'}, 0x2310, 0x0} /*140.250000 MHz*/ ,
+ {{' ',' ','S','7'}, 0x24D0, 0xE} /*147.250000 MHz*/ ,
+ {{' ',' ','S','8'}, 0x2690, 0x2} /*154.250000 MHz*/ ,
+ {{' ',' ','S','9'}, 0x2850, 0xF} /*161.250000 MHz*/ ,
+ {{' ','S','1','0'}, 0x2A10, 0x2} /*168.250000 MHz*/ ,
+ {{' ',' ','E','5'}, 0x2BD0, 0xC} /*175.250000 MHz*/ ,
+ {{' ',' ','E','6'}, 0x2D90, 0x1} /*182.250000 MHz*/ ,
+ {{' ',' ','E','7'}, 0x2F50, 0x5} /*189.250000 MHz*/ ,
+ {{' ',' ','E','8'}, 0x3110, 0x1} /*196.250000 MHz*/ ,
+ {{' ',' ','E','9'}, 0x32D0, 0x4} /*203.250000 MHz*/ ,
+ {{' ','E','1','0'}, 0x3490, 0x0} /*210.250000 MHz*/ ,
+ {{' ','E','1','1'}, 0x3650, 0x0} /*217.250000 MHz*/ ,
+ {{' ','E','1','2'}, 0x3810, 0x5} /*224.250000 MHz*/ ,
+ {{' ','S','1','1'}, 0x39D0, 0x1} /*231.250000 MHz*/ ,
+ {{' ','S','1','2'}, 0x3B90, 0x5} /*238.250000 MHz*/ ,
+ {{' ','S','1','3'}, 0x3D50, 0xF} /*245.250000 MHz*/ ,
+ {{' ','S','1','4'}, 0x3F10, 0xD} /*252.250000 MHz*/ ,
+ {{' ','S','1','5'}, 0x40D0, 0xF} /*259.250000 MHz*/ ,
+ {{' ','S','1','6'}, 0x4290, 0x4} /*266.250000 MHz*/ ,
+ {{' ','S','1','7'}, 0x4450, 0x0} /*273.250000 MHz*/ ,
+ {{' ','S','1','8'}, 0x4610, 0x0} /*280.250000 MHz*/ ,
+ {{' ','S','1','9'}, 0x47D0, 0xF} /*287.250000 MHz*/ ,
+ {{' ','S','2','0'}, 0x4990, 0x1} /*294.250000 MHz*/ ,
+ {{' ','S','2','1'}, 0x4B50, 0x0} /*301.250000 MHz*/ ,
+ {{' ','S','2','2'}, 0x4DD0, 0x1} /*311.250000 MHz*/ ,
+ {{' ','S','2','3'}, 0x4FD0, 0xF} /*319.250000 MHz*/ ,
+ {{' ','S','2','4'}, 0x51D0, 0x0} /*327.250000 MHz*/ ,
+ {{' ','S','2','5'}, 0x53D0, 0xF} /*335.250000 MHz*/ ,
+ {{' ','S','2','6'}, 0x55D0, 0x0} /*343.250000 MHz*/ ,
+ {{' ','S','2','7'}, 0x57D0, 0x3} /*351.250000 MHz*/ ,
+ {{' ','S','2','8'}, 0x59D0, 0x0} /*359.250000 MHz*/ ,
+ {{' ','S','2','9'}, 0x5BD0, 0x0} /*367.250000 MHz*/ ,
+ {{' ','S','3','0'}, 0x5DD0, 0x0} /*375.250000 MHz*/ ,
+ {{' ','S','3','1'}, 0x5FD0, 0x2} /*383.250000 MHz*/ ,
+ {{' ','S','3','2'}, 0x61D0, 0x0} /*391.250000 MHz*/ ,
+ {{' ','S','3','3'}, 0x63D0, 0x0} /*399.250000 MHz*/ ,
+ {{' ','S','3','4'}, 0x65D0, 0x0} /*407.250000 MHz*/ ,
+ {{' ','S','3','5'}, 0x67D0, 0xE} /*415.250000 MHz*/ ,
+ {{' ','S','3','6'}, 0x69D0, 0xC} /*423.250000 MHz*/ ,
+ {{' ','S','3','7'}, 0x6BD0, 0x3} /*431.250000 MHz*/ ,
+ {{' ','S','3','8'}, 0x6DD0, 0x1} /*439.250000 MHz*/ ,
+ {{' ','S','3','9'}, 0x6FD0, 0x3} /*447.250000 MHz*/ ,
+ {{' ','S','4','0'}, 0x71D0, 0x5} /*455.250000 MHz*/ ,
+ {{' ','S','4','1'}, 0x73D0, 0xE} /*463.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_ccir_analog_cable = {
+ 57,
+ XC3028_channels_ccir_analog_cable
+};
+
+XC3028_CHANNEL XC3028_channels_ccir_digital_air[60] = {
+ {{' ',' ',' ','2'}, 0x0C10, 0x0} /*48.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0DD0, 0x0} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x0F90, 0x0} /*62.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2BD0, 0x0} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2D90, 0x0} /*182.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2F50, 0x0} /*189.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3110, 0x0} /*196.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x32D0, 0x0} /*203.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3490, 0x0} /*210.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x3650, 0x0} /*217.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3810, 0x0} /*224.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x77D0, 0x0} /*479.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x79D0, 0x0} /*487.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x7DD0, 0x0} /*503.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x7FD0, 0x0} /*511.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x0} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x85D0, 0x0} /*535.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8BD0, 0x0} /*559.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8FD0, 0x0} /*575.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x95D0, 0x0} /*599.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x97D0, 0x0} /*607.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9BD0, 0x0} /*623.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9DD0, 0x0} /*631.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA1D0, 0x0} /*647.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA3D0, 0x0} /*655.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA7D0, 0x0} /*671.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xADD0, 0x0} /*695.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAFD0, 0x0} /*703.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB3D0, 0x0} /*719.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB9D0, 0x0} /*743.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xBFD0, 0x0} /*767.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xC5D0, 0x0} /*791.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xC7D0, 0x0} /*799.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC9D0, 0x0} /*807.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xCBD0, 0x0} /*815.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xCDD0, 0x0} /*823.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xCFD0, 0x0} /*831.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xD1D0, 0x0} /*839.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xD3D0, 0x0} /*847.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xD5D0, 0x0} /*855.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_ccir_digital_air = {
+ 60,
+ XC3028_channels_ccir_digital_air
+};
+
+XC3028_CHANNEL XC3028_channels_ccir_digital_cable[57] = {
+ {{' ',' ','E','2'}, 0x0C10, 0x0} /*48.250000 MHz*/ ,
+ {{' ',' ','E','3'}, 0x0DD0, 0x0} /*55.250000 MHz*/ ,
+ {{' ',' ','E','4'}, 0x0F90, 0x0} /*62.250000 MHz*/ ,
+ {{' ',' ',' ','X'}, 0x1150, 0x0} /*69.250000 MHz*/ ,
+ {{' ',' ',' ','Y'}, 0x1310, 0x0} /*76.250000 MHz*/ ,
+ {{' ',' ',' ','Z'}, 0x14D0, 0x0} /*83.250000 MHz*/ ,
+ {{' ','Z','+','1'}, 0x1690, 0x0} /*90.250000 MHz*/ ,
+ {{' ','Z','+','2'}, 0x1850, 0x0} /*97.250000 MHz*/ ,
+ {{' ',' ','S','1'}, 0x1A50, 0x0} /*105.250000 MHz*/ ,
+ {{' ',' ','S','2'}, 0x1C10, 0x0} /*112.250000 MHz*/ ,
+ {{' ',' ','S','3'}, 0x1DD0, 0x0} /*119.250000 MHz*/ ,
+ {{' ',' ','S','4'}, 0x1F90, 0x0} /*126.250000 MHz*/ ,
+ {{' ',' ','S','5'}, 0x2150, 0x0} /*133.250000 MHz*/ ,
+ {{' ',' ','S','6'}, 0x2310, 0x0} /*140.250000 MHz*/ ,
+ {{' ',' ','S','7'}, 0x24D0, 0x0} /*147.250000 MHz*/ ,
+ {{' ',' ','S','8'}, 0x2690, 0x0} /*154.250000 MHz*/ ,
+ {{' ',' ','S','9'}, 0x2850, 0x0} /*161.250000 MHz*/ ,
+ {{' ','S','1','0'}, 0x2A10, 0x0} /*168.250000 MHz*/ ,
+ {{' ',' ','E','5'}, 0x2BD0, 0x0} /*175.250000 MHz*/ ,
+ {{' ',' ','E','6'}, 0x2D90, 0x0} /*182.250000 MHz*/ ,
+ {{' ',' ','E','7'}, 0x2F50, 0x0} /*189.250000 MHz*/ ,
+ {{' ',' ','E','8'}, 0x3110, 0x0} /*196.250000 MHz*/ ,
+ {{' ',' ','E','9'}, 0x32D0, 0x0} /*203.250000 MHz*/ ,
+ {{' ','E','1','0'}, 0x3490, 0x0} /*210.250000 MHz*/ ,
+ {{' ','E','1','1'}, 0x3650, 0x0} /*217.250000 MHz*/ ,
+ {{' ','E','1','2'}, 0x3810, 0x0} /*224.250000 MHz*/ ,
+ {{' ','S','1','1'}, 0x39D0, 0x0} /*231.250000 MHz*/ ,
+ {{' ','S','1','2'}, 0x3B90, 0x0} /*238.250000 MHz*/ ,
+ {{' ','S','1','3'}, 0x3D50, 0x0} /*245.250000 MHz*/ ,
+ {{' ','S','1','4'}, 0x3F10, 0x0} /*252.250000 MHz*/ ,
+ {{' ','S','1','5'}, 0x40D0, 0x0} /*259.250000 MHz*/ ,
+ {{' ','S','1','6'}, 0x4290, 0x0} /*266.250000 MHz*/ ,
+ {{' ','S','1','7'}, 0x4450, 0x0} /*273.250000 MHz*/ ,
+ {{' ','S','1','8'}, 0x4610, 0x0} /*280.250000 MHz*/ ,
+ {{' ','S','1','9'}, 0x47D0, 0x0} /*287.250000 MHz*/ ,
+ {{' ','S','2','0'}, 0x4990, 0x0} /*294.250000 MHz*/ ,
+ {{' ','S','2','1'}, 0x4B50, 0x0} /*301.250000 MHz*/ ,
+ {{' ','S','2','2'}, 0x4DD0, 0x0} /*311.250000 MHz*/ ,
+ {{' ','S','2','3'}, 0x4FD0, 0x0} /*319.250000 MHz*/ ,
+ {{' ','S','2','4'}, 0x51D0, 0x0} /*327.250000 MHz*/ ,
+ {{' ','S','2','5'}, 0x53D0, 0x0} /*335.250000 MHz*/ ,
+ {{' ','S','2','6'}, 0x55D0, 0x0} /*343.250000 MHz*/ ,
+ {{' ','S','2','7'}, 0x57D0, 0x0} /*351.250000 MHz*/ ,
+ {{' ','S','2','8'}, 0x59D0, 0x0} /*359.250000 MHz*/ ,
+ {{' ','S','2','9'}, 0x5BD0, 0x0} /*367.250000 MHz*/ ,
+ {{' ','S','3','0'}, 0x5DD0, 0x0} /*375.250000 MHz*/ ,
+ {{' ','S','3','1'}, 0x5FD0, 0x0} /*383.250000 MHz*/ ,
+ {{' ','S','3','2'}, 0x61D0, 0x0} /*391.250000 MHz*/ ,
+ {{' ','S','3','3'}, 0x63D0, 0x0} /*399.250000 MHz*/ ,
+ {{' ','S','3','4'}, 0x65D0, 0x0} /*407.250000 MHz*/ ,
+ {{' ','S','3','5'}, 0x67D0, 0x0} /*415.250000 MHz*/ ,
+ {{' ','S','3','6'}, 0x69D0, 0x0} /*423.250000 MHz*/ ,
+ {{' ','S','3','7'}, 0x6BD0, 0x0} /*431.250000 MHz*/ ,
+ {{' ','S','3','8'}, 0x6DD0, 0x0} /*439.250000 MHz*/ ,
+ {{' ','S','3','9'}, 0x6FD0, 0x0} /*447.250000 MHz*/ ,
+ {{' ','S','4','0'}, 0x71D0, 0x0} /*455.250000 MHz*/ ,
+ {{' ','S','4','1'}, 0x73D0, 0x0} /*463.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_ccir_digital_cable = {
+ 57,
+ XC3028_channels_ccir_digital_cable
+};
+
+XC3028_CHANNEL XC3028_channels_france_analog_air[59] = {
+ {{' ',' ',' ','1'}, 0x0BF0, 0xD} /*47.750000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x0DF0, 0x6} /*55.750000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F20, 0x7} /*60.500000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x0FF0, 0xB} /*63.750000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2C00, 0xD} /*176.000000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2E00, 0x3} /*184.000000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x3000, 0xD} /*192.000000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3200, 0x1} /*200.000000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x3400, 0xD} /*208.000000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3600, 0xA} /*216.000000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x75D0, 0x1} /*471.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x77D0, 0x3} /*479.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x79D0, 0xC} /*487.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x7BD0, 0xF} /*495.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x7DD0, 0xC} /*503.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x7FD0, 0xE} /*511.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x2} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x85D0, 0x4} /*535.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8BD0, 0xF} /*559.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8DD0, 0xA} /*567.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8FD0, 0xE} /*575.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x93D0, 0xF} /*591.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x95D0, 0x1} /*599.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x97D0, 0xC} /*607.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x99D0, 0xD} /*615.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9BD0, 0xF} /*623.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9DD0, 0xE} /*631.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x6} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA1D0, 0xB} /*647.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA3D0, 0xF} /*655.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0xD} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA7D0, 0xF} /*671.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA9D0, 0xD} /*679.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xADD0, 0xE} /*695.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAFD0, 0x2} /*703.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB3D0, 0x5} /*719.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB5D0, 0x1} /*727.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB7D0, 0x2} /*735.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB9D0, 0x3} /*743.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xBBD0, 0x2} /*751.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xBDD0, 0xE} /*759.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xBFD0, 0xF} /*767.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xC1D0, 0x3} /*775.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xC3D0, 0xD} /*783.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xC5D0, 0xE} /*791.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xC7D0, 0xF} /*799.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC9D0, 0xC} /*807.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xCBD0, 0x4} /*815.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xCDD0, 0xE} /*823.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xCFD0, 0x2} /*831.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xD1D0, 0x5} /*839.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xD3D0, 0x7} /*847.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xD5D0, 0x1} /*855.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_france_analog_air = {
+ 59,
+ XC3028_channels_france_analog_air
+};
+
+XC3028_CHANNEL XC3028_channels_france_analog_cable[89] = {
+ {{' ',' ',' ','1'}, 0x0BF0, 0xD} /*47.750000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x0DF0, 0x7} /*55.750000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F20, 0x7} /*60.500000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x0FF0, 0xB} /*63.750000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2C00, 0xD} /*176.000000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2E00, 0x3} /*184.000000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x3000, 0xD} /*192.000000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3200, 0x1} /*200.000000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x3400, 0xD} /*208.000000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3600, 0xA} /*216.000000 MHz*/ ,
+ {{' ','S','C','1'}, 0x1E00, 0x7} /*120.000000 MHz*/ ,
+ {{' ','S','C','2'}, 0x2000, 0xA} /*128.000000 MHz*/ ,
+ {{' ','S','C','3'}, 0x2200, 0xF} /*136.000000 MHz*/ ,
+ {{' ','S','C','4'}, 0x2400, 0x0} /*144.000000 MHz*/ ,
+ {{' ','S','C','5'}, 0x2600, 0x0} /*152.000000 MHz*/ ,
+ {{' ','S','C','6'}, 0x2800, 0xD} /*160.000000 MHz*/ ,
+ {{' ','S','C','7'}, 0x2A00, 0x3} /*168.000000 MHz*/ ,
+ {{' ','S','C','8'}, 0x3800, 0x5} /*224.000000 MHz*/ ,
+ {{' ','S','C','9'}, 0x3A00, 0x2} /*232.000000 MHz*/ ,
+ {{'S','C','1','0'}, 0x3C00, 0xC} /*240.000000 MHz*/ ,
+ {{'S','C','1','1'}, 0x3E00, 0xA} /*248.000000 MHz*/ ,
+ {{'S','C','1','2'}, 0x4000, 0x4} /*256.000000 MHz*/ ,
+ {{'S','C','1','3'}, 0x4200, 0x2} /*264.000000 MHz*/ ,
+ {{'S','C','1','4'}, 0x4400, 0x5} /*272.000000 MHz*/ ,
+ {{'S','C','1','5'}, 0x4600, 0xB} /*280.000000 MHz*/ ,
+ {{'S','C','1','6'}, 0x4800, 0xF} /*288.000000 MHz*/ ,
+ {{'S','C','1','7'}, 0x4BD0, 0x3} /*303.250000 MHz*/ ,
+ {{'S','C','1','8'}, 0x4ED0, 0x2} /*315.250000 MHz*/ ,
+ {{'S','C','1','9'}, 0x51D0, 0x0} /*327.250000 MHz*/ ,
+ {{'S','C','2','0'}, 0x54D0, 0x0} /*339.250000 MHz*/ ,
+ {{'S','C','2','1'}, 0x57D0, 0xF} /*351.250000 MHz*/ ,
+ {{'S','C','2','2'}, 0x5AD0, 0x0} /*363.250000 MHz*/ ,
+ {{'S','C','2','3'}, 0x5DD0, 0x0} /*375.250000 MHz*/ ,
+ {{'S','C','2','4'}, 0x60D0, 0x0} /*387.250000 MHz*/ ,
+ {{'S','C','2','5'}, 0x63D0, 0x0} /*399.250000 MHz*/ ,
+ {{'S','C','2','6'}, 0x66D0, 0xD} /*411.250000 MHz*/ ,
+ {{'S','C','2','7'}, 0x69D0, 0xB} /*423.250000 MHz*/ ,
+ {{'S','C','2','8'}, 0x6CD0, 0xC} /*435.250000 MHz*/ ,
+ {{'S','C','2','9'}, 0x6FD0, 0x7} /*447.250000 MHz*/ ,
+ {{'S','C','3','0'}, 0x72D0, 0x2} /*459.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x75D0, 0x1} /*471.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x77D0, 0x3} /*479.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x79D0, 0xC} /*487.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x7BD0, 0xF} /*495.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x7DD0, 0xC} /*503.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x7FD0, 0xE} /*511.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x2} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x85D0, 0x4} /*535.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8BD0, 0xF} /*559.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8DD0, 0xA} /*567.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8FD0, 0xE} /*575.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x93D0, 0xF} /*591.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x95D0, 0x1} /*599.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x97D0, 0xC} /*607.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x99D0, 0xD} /*615.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9BD0, 0xF} /*623.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9DD0, 0xE} /*631.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x6} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA1D0, 0xB} /*647.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA3D0, 0xF} /*655.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0xD} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA7D0, 0xF} /*671.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA9D0, 0xD} /*679.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xADD0, 0xE} /*695.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAFD0, 0x2} /*703.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB3D0, 0x5} /*719.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB5D0, 0x1} /*727.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB7D0, 0x2} /*735.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB9D0, 0x3} /*743.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xBBD0, 0x2} /*751.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xBDD0, 0xE} /*759.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xBFD0, 0xF} /*767.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xC1D0, 0x3} /*775.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xC3D0, 0xD} /*783.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xC5D0, 0xE} /*791.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xC7D0, 0xF} /*799.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC9D0, 0xC} /*807.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xCBD0, 0x4} /*815.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xCDD0, 0xE} /*823.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xCFD0, 0x2} /*831.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xD1D0, 0x5} /*839.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xD3D0, 0x7} /*847.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xD5D0, 0x1} /*855.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_france_analog_cable = {
+ 89,
+ XC3028_channels_france_analog_cable
+};
+
+XC3028_CHANNEL XC3028_channels_france_digital_air[59] = {
+ {{' ',' ',' ','1'}, 0x0BF0, 0x0} /*47.750000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x0DF0, 0x0} /*55.750000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F20, 0x0} /*60.500000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x0FF0, 0x0} /*63.750000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2C00, 0x0} /*176.000000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2E00, 0x0} /*184.000000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x3000, 0x0} /*192.000000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3200, 0x0} /*200.000000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x3400, 0x0} /*208.000000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3600, 0x0} /*216.000000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x77D0, 0x0} /*479.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x79D0, 0x0} /*487.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x7DD0, 0x0} /*503.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x7FD0, 0x0} /*511.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x0} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x85D0, 0x0} /*535.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8BD0, 0x0} /*559.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8FD0, 0x0} /*575.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x95D0, 0x0} /*599.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x97D0, 0x0} /*607.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9BD0, 0x0} /*623.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9DD0, 0x0} /*631.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA1D0, 0x0} /*647.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA3D0, 0x0} /*655.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA7D0, 0x0} /*671.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xADD0, 0x0} /*695.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAFD0, 0x0} /*703.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB3D0, 0x0} /*719.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB9D0, 0x0} /*743.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xBFD0, 0x0} /*767.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xC5D0, 0x0} /*791.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xC7D0, 0x0} /*799.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC9D0, 0x0} /*807.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xCBD0, 0x0} /*815.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xCDD0, 0x0} /*823.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xCFD0, 0x0} /*831.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xD1D0, 0x0} /*839.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xD3D0, 0x0} /*847.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xD5D0, 0x0} /*855.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_france_digital_air = {
+ 59,
+ XC3028_channels_france_digital_air
+};
+
+XC3028_CHANNEL XC3028_channels_france_digital_cable[89] = {
+ {{' ',' ',' ','1'}, 0x0BF0, 0x0} /*47.750000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x0DF0, 0x0} /*55.750000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F20, 0x0} /*60.500000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x0FF0, 0x0} /*63.750000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2C00, 0x0} /*176.000000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2E00, 0x0} /*184.000000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x3000, 0x0} /*192.000000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x3200, 0x0} /*200.000000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x3400, 0x0} /*208.000000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3600, 0x0} /*216.000000 MHz*/ ,
+ {{' ','S','C','1'}, 0x1E00, 0x0} /*120.000000 MHz*/ ,
+ {{' ','S','C','2'}, 0x2000, 0x0} /*128.000000 MHz*/ ,
+ {{' ','S','C','3'}, 0x2200, 0x0} /*136.000000 MHz*/ ,
+ {{' ','S','C','4'}, 0x2400, 0x0} /*144.000000 MHz*/ ,
+ {{' ','S','C','5'}, 0x2600, 0x0} /*152.000000 MHz*/ ,
+ {{' ','S','C','6'}, 0x2800, 0x0} /*160.000000 MHz*/ ,
+ {{' ','S','C','7'}, 0x2A00, 0x0} /*168.000000 MHz*/ ,
+ {{' ','S','C','8'}, 0x3800, 0x0} /*224.000000 MHz*/ ,
+ {{' ','S','C','9'}, 0x3A00, 0x0} /*232.000000 MHz*/ ,
+ {{'S','C','1','0'}, 0x3C00, 0x0} /*240.000000 MHz*/ ,
+ {{'S','C','1','1'}, 0x3E00, 0x0} /*248.000000 MHz*/ ,
+ {{'S','C','1','2'}, 0x4000, 0x0} /*256.000000 MHz*/ ,
+ {{'S','C','1','3'}, 0x4200, 0x0} /*264.000000 MHz*/ ,
+ {{'S','C','1','4'}, 0x4400, 0x0} /*272.000000 MHz*/ ,
+ {{'S','C','1','5'}, 0x4600, 0x0} /*280.000000 MHz*/ ,
+ {{'S','C','1','6'}, 0x4800, 0x0} /*288.000000 MHz*/ ,
+ {{'S','C','1','7'}, 0x4BD0, 0x0} /*303.250000 MHz*/ ,
+ {{'S','C','1','8'}, 0x4ED0, 0x0} /*315.250000 MHz*/ ,
+ {{'S','C','1','9'}, 0x51D0, 0x0} /*327.250000 MHz*/ ,
+ {{'S','C','2','0'}, 0x54D0, 0x0} /*339.250000 MHz*/ ,
+ {{'S','C','2','1'}, 0x57D0, 0x0} /*351.250000 MHz*/ ,
+ {{'S','C','2','2'}, 0x5AD0, 0x0} /*363.250000 MHz*/ ,
+ {{'S','C','2','3'}, 0x5DD0, 0x0} /*375.250000 MHz*/ ,
+ {{'S','C','2','4'}, 0x60D0, 0x0} /*387.250000 MHz*/ ,
+ {{'S','C','2','5'}, 0x63D0, 0x0} /*399.250000 MHz*/ ,
+ {{'S','C','2','6'}, 0x66D0, 0x0} /*411.250000 MHz*/ ,
+ {{'S','C','2','7'}, 0x69D0, 0x0} /*423.250000 MHz*/ ,
+ {{'S','C','2','8'}, 0x6CD0, 0x0} /*435.250000 MHz*/ ,
+ {{'S','C','2','9'}, 0x6FD0, 0x0} /*447.250000 MHz*/ ,
+ {{'S','C','3','0'}, 0x72D0, 0x0} /*459.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x77D0, 0x0} /*479.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x79D0, 0x0} /*487.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x7DD0, 0x0} /*503.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x7FD0, 0x0} /*511.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x0} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x85D0, 0x0} /*535.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8BD0, 0x0} /*559.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8FD0, 0x0} /*575.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x95D0, 0x0} /*599.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x97D0, 0x0} /*607.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9BD0, 0x0} /*623.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9DD0, 0x0} /*631.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA1D0, 0x0} /*647.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA3D0, 0x0} /*655.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA7D0, 0x0} /*671.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xADD0, 0x0} /*695.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAFD0, 0x0} /*703.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB3D0, 0x0} /*719.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB9D0, 0x0} /*743.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xBFD0, 0x0} /*767.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xC5D0, 0x0} /*791.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xC7D0, 0x0} /*799.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC9D0, 0x0} /*807.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xCBD0, 0x0} /*815.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xCDD0, 0x0} /*823.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xCFD0, 0x0} /*831.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xD1D0, 0x0} /*839.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xD3D0, 0x0} /*847.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xD5D0, 0x0} /*855.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_france_digital_cable = {
+ 89,
+ XC3028_channels_france_digital_cable
+};
+
+XC3028_CHANNEL XC3028_channels_uk_analog_air[49] = {
+ {{' ',' ','2','1'}, 0x75D0, 0x1} /*471.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x77D0, 0x3} /*479.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x79D0, 0xC} /*487.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x7BD0, 0xF} /*495.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x7DD0, 0xC} /*503.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x7FD0, 0xE} /*511.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x2} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x85D0, 0x4} /*535.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8BD0, 0xF} /*559.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8DD0, 0xA} /*567.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8FD0, 0xE} /*575.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x93D0, 0xF} /*591.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x95D0, 0x1} /*599.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x97D0, 0xC} /*607.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x99D0, 0xD} /*615.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9BD0, 0xF} /*623.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9DD0, 0xE} /*631.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x6} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA1D0, 0xB} /*647.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA3D0, 0xF} /*655.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0xD} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA7D0, 0xF} /*671.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA9D0, 0xD} /*679.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xADD0, 0xE} /*695.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAFD0, 0x2} /*703.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB3D0, 0x5} /*719.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB5D0, 0x1} /*727.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB7D0, 0x2} /*735.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB9D0, 0x3} /*743.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xBBD0, 0x2} /*751.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xBDD0, 0xE} /*759.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xBFD0, 0xF} /*767.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xC1D0, 0x3} /*775.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xC3D0, 0xD} /*783.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xC5D0, 0xE} /*791.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xC7D0, 0xF} /*799.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC9D0, 0xC} /*807.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xCBD0, 0x4} /*815.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xCDD0, 0xE} /*823.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xCFD0, 0x2} /*831.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xD1D0, 0x5} /*839.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xD3D0, 0x7} /*847.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xD5D0, 0x1} /*855.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_uk_analog_air = {
+ 49,
+ XC3028_channels_uk_analog_air
+};
+
+XC3028_CHANNEL XC3028_channels_uk_analog_cable[81] = {
+ {{' ',' ',' ','1'}, 0x0E00, 0x7} /*56.000000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x1000, 0xB} /*64.000000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x1E00, 0x3} /*120.000000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x2000, 0xA} /*128.000000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2200, 0xF} /*136.000000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2400, 0x0} /*144.000000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2600, 0x0} /*152.000000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2800, 0xD} /*160.000000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2A00, 0xB} /*168.000000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x2C00, 0xD} /*176.000000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x2E00, 0x3} /*184.000000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3000, 0xD} /*192.000000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x3200, 0x1} /*200.000000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x3400, 0xD} /*208.000000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x3600, 0xA} /*216.000000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x3800, 0x5} /*224.000000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x3A00, 0x2} /*232.000000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x3C00, 0xC} /*240.000000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x3E00, 0xA} /*248.000000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x4000, 0x4} /*256.000000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x4200, 0x2} /*264.000000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x4400, 0x5} /*272.000000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x4600, 0xB} /*280.000000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x4800, 0xF} /*288.000000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x4A00, 0x1} /*296.000000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x4C00, 0xE} /*304.000000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x4E00, 0x1} /*312.000000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x5000, 0xF} /*320.000000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x5200, 0x0} /*328.000000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x5400, 0xE} /*336.000000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x5600, 0x1} /*344.000000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x5800, 0xE} /*352.000000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x5A00, 0xF} /*360.000000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x5C00, 0xF} /*368.000000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x5E00, 0x1} /*376.000000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x6000, 0x0} /*384.000000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x6200, 0x1} /*392.000000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x6400, 0x0} /*400.000000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x6600, 0x1} /*408.000000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x6800, 0xE} /*416.000000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x6A00, 0x6} /*424.000000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x6C00, 0x0} /*432.000000 MHz*/ ,
+ {{' ',' ','4','3'}, 0x6E00, 0x6} /*440.000000 MHz*/ ,
+ {{' ',' ','4','4'}, 0x7000, 0xE} /*448.000000 MHz*/ ,
+ {{' ',' ','4','5'}, 0x7200, 0x2} /*456.000000 MHz*/ ,
+ {{' ',' ','4','6'}, 0x7400, 0xA} /*464.000000 MHz*/ ,
+ {{' ',' ','4','7'}, 0x7600, 0x5} /*472.000000 MHz*/ ,
+ {{' ',' ','4','8'}, 0x7800, 0xB} /*480.000000 MHz*/ ,
+ {{' ',' ','4','9'}, 0x7A00, 0xD} /*488.000000 MHz*/ ,
+ {{' ',' ','5','0'}, 0x7C00, 0xF} /*496.000000 MHz*/ ,
+ {{' ',' ','5','1'}, 0x7E00, 0x1} /*504.000000 MHz*/ ,
+ {{' ',' ','5','2'}, 0x8000, 0x3} /*512.000000 MHz*/ ,
+ {{' ',' ','5','3'}, 0x8200, 0x5} /*520.000000 MHz*/ ,
+ {{' ',' ','5','4'}, 0x8400, 0xC} /*528.000000 MHz*/ ,
+ {{' ',' ','5','5'}, 0x8600, 0x1} /*536.000000 MHz*/ ,
+ {{' ',' ','5','6'}, 0x8800, 0x0} /*544.000000 MHz*/ ,
+ {{' ',' ','5','7'}, 0x8A00, 0x5} /*552.000000 MHz*/ ,
+ {{' ',' ','5','8'}, 0x8C00, 0xF} /*560.000000 MHz*/ ,
+ {{' ',' ','5','9'}, 0x8E00, 0xE} /*568.000000 MHz*/ ,
+ {{' ',' ','6','0'}, 0x9000, 0x2} /*576.000000 MHz*/ ,
+ {{' ',' ','6','1'}, 0x9200, 0xE} /*584.000000 MHz*/ ,
+ {{' ',' ','6','2'}, 0x9400, 0xF} /*592.000000 MHz*/ ,
+ {{' ',' ','6','3'}, 0x9600, 0xE} /*600.000000 MHz*/ ,
+ {{' ',' ','6','4'}, 0x9800, 0xC} /*608.000000 MHz*/ ,
+ {{' ',' ','6','5'}, 0x9A00, 0x1} /*616.000000 MHz*/ ,
+ {{' ',' ','6','6'}, 0x9C00, 0x2} /*624.000000 MHz*/ ,
+ {{' ',' ','6','7'}, 0x9E00, 0xD} /*632.000000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xA000, 0x2} /*640.000000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xA200, 0x1} /*648.000000 MHz*/ ,
+ {{' ',' ','7','0'}, 0xA400, 0x2} /*656.000000 MHz*/ ,
+ {{' ',' ','7','1'}, 0xA600, 0xE} /*664.000000 MHz*/ ,
+ {{' ',' ','7','2'}, 0xA800, 0xF} /*672.000000 MHz*/ ,
+ {{' ',' ','7','3'}, 0xAA00, 0x1} /*680.000000 MHz*/ ,
+ {{' ',' ','7','4'}, 0xAC00, 0x0} /*688.000000 MHz*/ ,
+ {{' ',' ','7','5'}, 0xAE00, 0xE} /*696.000000 MHz*/ ,
+ {{' ',' ','7','6'}, 0xB000, 0x2} /*704.000000 MHz*/ ,
+ {{' ',' ','7','7'}, 0xB200, 0xE} /*712.000000 MHz*/ ,
+ {{' ',' ','7','8'}, 0xB400, 0xC} /*720.000000 MHz*/ ,
+ {{' ',' ','7','9'}, 0xB600, 0xE} /*728.000000 MHz*/ ,
+ {{' ',' ','8','0'}, 0xB800, 0x2} /*736.000000 MHz*/ ,
+ {{' ',' ','8','1'}, 0xBA00, 0x3} /*744.000000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_uk_analog_cable = {
+ 81,
+ XC3028_channels_uk_analog_cable
+};
+
+XC3028_CHANNEL XC3028_channels_uk_digital_air[49] = {
+ {{' ',' ','2','1'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x77D0, 0x0} /*479.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x79D0, 0x0} /*487.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x7DD0, 0x0} /*503.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x7FD0, 0x0} /*511.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x0} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x85D0, 0x0} /*535.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8BD0, 0x0} /*559.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8FD0, 0x0} /*575.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x95D0, 0x0} /*599.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x97D0, 0x0} /*607.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9BD0, 0x0} /*623.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9DD0, 0x0} /*631.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA1D0, 0x0} /*647.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA3D0, 0x0} /*655.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA7D0, 0x0} /*671.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xADD0, 0x0} /*695.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAFD0, 0x0} /*703.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xB3D0, 0x0} /*719.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB9D0, 0x0} /*743.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xBFD0, 0x0} /*767.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xC5D0, 0x0} /*791.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xC7D0, 0x0} /*799.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC9D0, 0x0} /*807.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xCBD0, 0x0} /*815.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xCDD0, 0x0} /*823.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xCFD0, 0x0} /*831.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xD1D0, 0x0} /*839.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xD3D0, 0x0} /*847.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xD5D0, 0x0} /*855.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_uk_digital_air = {
+ 49,
+ XC3028_channels_uk_digital_air
+};
+
+XC3028_CHANNEL XC3028_channels_uk_digital_cable[81] = {
+ {{' ',' ',' ','1'}, 0x0E00, 0x0} /*56.000000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x1000, 0x0} /*64.000000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x1E00, 0x0} /*120.000000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x2000, 0x0} /*128.000000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x2200, 0x0} /*136.000000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2400, 0x0} /*144.000000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2600, 0x0} /*152.000000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2800, 0x0} /*160.000000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2A00, 0x0} /*168.000000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x2C00, 0x0} /*176.000000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x2E00, 0x0} /*184.000000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3000, 0x0} /*192.000000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x3200, 0x0} /*200.000000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x3400, 0x0} /*208.000000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x3600, 0x0} /*216.000000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x3800, 0x0} /*224.000000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x3A00, 0x0} /*232.000000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x3C00, 0x0} /*240.000000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x3E00, 0x0} /*248.000000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x4000, 0x0} /*256.000000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x4200, 0x0} /*264.000000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x4400, 0x0} /*272.000000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x4600, 0x0} /*280.000000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x4800, 0x0} /*288.000000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x4A00, 0x0} /*296.000000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x4C00, 0x0} /*304.000000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x4E00, 0x0} /*312.000000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x5000, 0x0} /*320.000000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x5200, 0x0} /*328.000000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x5400, 0x0} /*336.000000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x5600, 0x0} /*344.000000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x5800, 0x0} /*352.000000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x5A00, 0x0} /*360.000000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x5C00, 0x0} /*368.000000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x5E00, 0x0} /*376.000000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x6000, 0x0} /*384.000000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x6200, 0x0} /*392.000000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x6400, 0x0} /*400.000000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x6600, 0x0} /*408.000000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x6800, 0x0} /*416.000000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x6A00, 0x0} /*424.000000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x6C00, 0x0} /*432.000000 MHz*/ ,
+ {{' ',' ','4','3'}, 0x6E00, 0x0} /*440.000000 MHz*/ ,
+ {{' ',' ','4','4'}, 0x7000, 0x0} /*448.000000 MHz*/ ,
+ {{' ',' ','4','5'}, 0x7200, 0x0} /*456.000000 MHz*/ ,
+ {{' ',' ','4','6'}, 0x7400, 0x0} /*464.000000 MHz*/ ,
+ {{' ',' ','4','7'}, 0x7600, 0x0} /*472.000000 MHz*/ ,
+ {{' ',' ','4','8'}, 0x7800, 0x0} /*480.000000 MHz*/ ,
+ {{' ',' ','4','9'}, 0x7A00, 0x0} /*488.000000 MHz*/ ,
+ {{' ',' ','5','0'}, 0x7C00, 0x0} /*496.000000 MHz*/ ,
+ {{' ',' ','5','1'}, 0x7E00, 0x0} /*504.000000 MHz*/ ,
+ {{' ',' ','5','2'}, 0x8000, 0x0} /*512.000000 MHz*/ ,
+ {{' ',' ','5','3'}, 0x8200, 0x0} /*520.000000 MHz*/ ,
+ {{' ',' ','5','4'}, 0x8400, 0x0} /*528.000000 MHz*/ ,
+ {{' ',' ','5','5'}, 0x8600, 0x0} /*536.000000 MHz*/ ,
+ {{' ',' ','5','6'}, 0x8800, 0x0} /*544.000000 MHz*/ ,
+ {{' ',' ','5','7'}, 0x8A00, 0x0} /*552.000000 MHz*/ ,
+ {{' ',' ','5','8'}, 0x8C00, 0x0} /*560.000000 MHz*/ ,
+ {{' ',' ','5','9'}, 0x8E00, 0x0} /*568.000000 MHz*/ ,
+ {{' ',' ','6','0'}, 0x9000, 0x0} /*576.000000 MHz*/ ,
+ {{' ',' ','6','1'}, 0x9200, 0x0} /*584.000000 MHz*/ ,
+ {{' ',' ','6','2'}, 0x9400, 0x0} /*592.000000 MHz*/ ,
+ {{' ',' ','6','3'}, 0x9600, 0x0} /*600.000000 MHz*/ ,
+ {{' ',' ','6','4'}, 0x9800, 0x0} /*608.000000 MHz*/ ,
+ {{' ',' ','6','5'}, 0x9A00, 0x0} /*616.000000 MHz*/ ,
+ {{' ',' ','6','6'}, 0x9C00, 0x0} /*624.000000 MHz*/ ,
+ {{' ',' ','6','7'}, 0x9E00, 0x0} /*632.000000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xA000, 0x0} /*640.000000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xA200, 0x0} /*648.000000 MHz*/ ,
+ {{' ',' ','7','0'}, 0xA400, 0x0} /*656.000000 MHz*/ ,
+ {{' ',' ','7','1'}, 0xA600, 0x0} /*664.000000 MHz*/ ,
+ {{' ',' ','7','2'}, 0xA800, 0x0} /*672.000000 MHz*/ ,
+ {{' ',' ','7','3'}, 0xAA00, 0x0} /*680.000000 MHz*/ ,
+ {{' ',' ','7','4'}, 0xAC00, 0x0} /*688.000000 MHz*/ ,
+ {{' ',' ','7','5'}, 0xAE00, 0x0} /*696.000000 MHz*/ ,
+ {{' ',' ','7','6'}, 0xB000, 0x0} /*704.000000 MHz*/ ,
+ {{' ',' ','7','7'}, 0xB200, 0x0} /*712.000000 MHz*/ ,
+ {{' ',' ','7','8'}, 0xB400, 0x0} /*720.000000 MHz*/ ,
+ {{' ',' ','7','9'}, 0xB600, 0x0} /*728.000000 MHz*/ ,
+ {{' ',' ','8','0'}, 0xB800, 0x0} /*736.000000 MHz*/ ,
+ {{' ',' ','8','1'}, 0xBA00, 0x0} /*744.000000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_uk_digital_cable = {
+ 81,
+ XC3028_channels_uk_digital_cable
+};
+
+XC3028_CHANNEL XC3028_channels_china_analog_air[57] = {
+ {{' ','D','S','1'}, 0x0C70, 0xB} /*49.750000 MHz*/ ,
+ {{' ','D','S','2'}, 0x0E70, 0x0} /*57.750000 MHz*/ ,
+ {{' ','D','S','3'}, 0x1070, 0x1} /*65.750000 MHz*/ ,
+ {{' ','D','S','4'}, 0x1350, 0xA} /*77.250000 MHz*/ ,
+ {{' ','D','S','5'}, 0x1550, 0x0} /*85.250000 MHz*/ ,
+ {{' ','D','S','6'}, 0x2A10, 0x0} /*168.250000 MHz*/ ,
+ {{' ','D','S','7'}, 0x2C10, 0x7} /*176.250000 MHz*/ ,
+ {{' ','D','S','8'}, 0x2E10, 0x3} /*184.250000 MHz*/ ,
+ {{' ','D','S','9'}, 0x3010, 0xE} /*192.250000 MHz*/ ,
+ {{'D','S','1','0'}, 0x3210, 0x3} /*200.250000 MHz*/ ,
+ {{'D','S','1','1'}, 0x3410, 0x0} /*208.250000 MHz*/ ,
+ {{'D','S','1','2'}, 0x3610, 0x0} /*216.250000 MHz*/ ,
+ {{'D','S','1','3'}, 0x75D0, 0x1} /*471.250000 MHz*/ ,
+ {{'D','S','1','4'}, 0x77D0, 0x3} /*479.250000 MHz*/ ,
+ {{'D','S','1','5'}, 0x79D0, 0xC} /*487.250000 MHz*/ ,
+ {{'D','S','1','6'}, 0x7BD0, 0xF} /*495.250000 MHz*/ ,
+ {{'D','S','1','7'}, 0x7DD0, 0xC} /*503.250000 MHz*/ ,
+ {{'D','S','1','8'}, 0x7FD0, 0xE} /*511.250000 MHz*/ ,
+ {{'D','S','1','9'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{'D','S','2','0'}, 0x83D0, 0x2} /*527.250000 MHz*/ ,
+ {{'D','S','2','1'}, 0x85D0, 0x4} /*535.250000 MHz*/ ,
+ {{'D','S','2','2'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{'D','S','2','3'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{'D','S','2','4'}, 0x8BD0, 0xF} /*559.250000 MHz*/ ,
+ {{'D','S','2','5'}, 0x97D0, 0xC} /*607.250000 MHz*/ ,
+ {{'D','S','2','6'}, 0x99D0, 0xD} /*615.250000 MHz*/ ,
+ {{'D','S','2','7'}, 0x9BD0, 0xF} /*623.250000 MHz*/ ,
+ {{'D','S','2','8'}, 0x9DD0, 0xE} /*631.250000 MHz*/ ,
+ {{'D','S','2','9'}, 0x9FD0, 0x6} /*639.250000 MHz*/ ,
+ {{'D','S','3','0'}, 0xA1D0, 0xB} /*647.250000 MHz*/ ,
+ {{'D','S','3','1'}, 0xA3D0, 0xF} /*655.250000 MHz*/ ,
+ {{'D','S','3','2'}, 0xA5D0, 0xD} /*663.250000 MHz*/ ,
+ {{'D','S','3','3'}, 0xA7D0, 0xF} /*671.250000 MHz*/ ,
+ {{'D','S','3','4'}, 0xA9D0, 0xD} /*679.250000 MHz*/ ,
+ {{'D','S','3','5'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{'D','S','3','6'}, 0xADD0, 0xE} /*695.250000 MHz*/ ,
+ {{'D','S','3','7'}, 0xAFD0, 0x2} /*703.250000 MHz*/ ,
+ {{'D','S','3','8'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{'D','S','3','9'}, 0xB3D0, 0x5} /*719.250000 MHz*/ ,
+ {{'D','S','4','0'}, 0xB5D0, 0x1} /*727.250000 MHz*/ ,
+ {{'D','S','4','1'}, 0xB7D0, 0x2} /*735.250000 MHz*/ ,
+ {{'D','S','4','2'}, 0xB9D0, 0x3} /*743.250000 MHz*/ ,
+ {{'D','S','4','3'}, 0xBBD0, 0x2} /*751.250000 MHz*/ ,
+ {{'D','S','4','4'}, 0xBDD0, 0xE} /*759.250000 MHz*/ ,
+ {{'D','S','4','5'}, 0xBFD0, 0xF} /*767.250000 MHz*/ ,
+ {{'D','S','4','6'}, 0xC1D0, 0x3} /*775.250000 MHz*/ ,
+ {{'D','S','4','7'}, 0xC3D0, 0xD} /*783.250000 MHz*/ ,
+ {{'D','S','4','8'}, 0xC5D0, 0xE} /*791.250000 MHz*/ ,
+ {{'D','S','4','9'}, 0xC7D0, 0xF} /*799.250000 MHz*/ ,
+ {{'D','S','5','0'}, 0xC9D0, 0xC} /*807.250000 MHz*/ ,
+ {{'D','S','5','1'}, 0xCBD0, 0x4} /*815.250000 MHz*/ ,
+ {{'D','S','5','2'}, 0xCDD0, 0xE} /*823.250000 MHz*/ ,
+ {{'D','S','5','3'}, 0xCFD0, 0x2} /*831.250000 MHz*/ ,
+ {{'D','S','5','4'}, 0xD1D0, 0x5} /*839.250000 MHz*/ ,
+ {{'D','S','5','5'}, 0xD3D0, 0x7} /*847.250000 MHz*/ ,
+ {{'D','S','5','6'}, 0xD5D0, 0x1} /*855.250000 MHz*/ ,
+ {{'D','S','5','7'}, 0xD7D0, 0x2} /*863.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_china_analog_air = {
+ 57,
+ XC3028_channels_china_analog_air
+};
+
+XC3028_CHANNEL XC3028_channels_china_analog_cable[99] = {
+ {{' ','D','S','1'}, 0x0C70, 0xB} /*49.750000 MHz*/ ,
+ {{' ','D','S','2'}, 0x0E70, 0x0} /*57.750000 MHz*/ ,
+ {{' ','D','S','3'}, 0x1070, 0x1} /*65.750000 MHz*/ ,
+ {{' ','D','S','4'}, 0x1350, 0xA} /*77.250000 MHz*/ ,
+ {{' ','D','S','5'}, 0x1550, 0x0} /*85.250000 MHz*/ ,
+ {{' ','D','S','6'}, 0x2A10, 0x0} /*168.250000 MHz*/ ,
+ {{' ','D','S','7'}, 0x2C10, 0x7} /*176.250000 MHz*/ ,
+ {{' ','D','S','8'}, 0x2E10, 0x3} /*184.250000 MHz*/ ,
+ {{' ','D','S','9'}, 0x3010, 0xE} /*192.250000 MHz*/ ,
+ {{'D','S','1','0'}, 0x3210, 0x3} /*200.250000 MHz*/ ,
+ {{'D','S','1','1'}, 0x3410, 0x0} /*208.250000 MHz*/ ,
+ {{'D','S','1','2'}, 0x3610, 0x0} /*216.250000 MHz*/ ,
+ {{' ',' ','Z','1'}, 0x1C10, 0x7} /*112.250000 MHz*/ ,
+ {{' ',' ','Z','2'}, 0x1E10, 0x4} /*120.250000 MHz*/ ,
+ {{' ',' ','Z','3'}, 0x2010, 0xA} /*128.250000 MHz*/ ,
+ {{' ',' ','Z','4'}, 0x2210, 0x1} /*136.250000 MHz*/ ,
+ {{' ',' ','Z','5'}, 0x2410, 0xB} /*144.250000 MHz*/ ,
+ {{' ',' ','Z','6'}, 0x2610, 0x3} /*152.250000 MHz*/ ,
+ {{' ',' ','Z','7'}, 0x2810, 0xE} /*160.250000 MHz*/ ,
+ {{' ',' ','Z','8'}, 0x3810, 0x5} /*224.250000 MHz*/ ,
+ {{' ',' ','Z','9'}, 0x3A10, 0x3} /*232.250000 MHz*/ ,
+ {{' ','Z','1','0'}, 0x3C10, 0xE} /*240.250000 MHz*/ ,
+ {{' ','Z','1','1'}, 0x3E10, 0x1} /*248.250000 MHz*/ ,
+ {{' ','Z','1','2'}, 0x4010, 0x4} /*256.250000 MHz*/ ,
+ {{' ','Z','1','3'}, 0x4210, 0x2} /*264.250000 MHz*/ ,
+ {{' ','Z','1','4'}, 0x4410, 0x7} /*272.250000 MHz*/ ,
+ {{' ','Z','1','5'}, 0x4610, 0x2} /*280.250000 MHz*/ ,
+ {{' ','Z','1','6'}, 0x4810, 0xF} /*288.250000 MHz*/ ,
+ {{' ','Z','1','7'}, 0x4A10, 0x3} /*296.250000 MHz*/ ,
+ {{' ','Z','1','8'}, 0x4C10, 0xE} /*304.250000 MHz*/ ,
+ {{' ','Z','1','9'}, 0x4E10, 0xC} /*312.250000 MHz*/ ,
+ {{' ','Z','2','0'}, 0x5010, 0xF} /*320.250000 MHz*/ ,
+ {{' ','Z','2','1'}, 0x5210, 0x2} /*328.250000 MHz*/ ,
+ {{' ','Z','2','2'}, 0x5410, 0x6} /*336.250000 MHz*/ ,
+ {{' ','Z','2','3'}, 0x5610, 0x0} /*344.250000 MHz*/ ,
+ {{' ','Z','2','4'}, 0x5810, 0xD} /*352.250000 MHz*/ ,
+ {{' ','Z','2','5'}, 0x5A10, 0x0} /*360.250000 MHz*/ ,
+ {{' ','Z','2','6'}, 0x5C10, 0x0} /*368.250000 MHz*/ ,
+ {{' ','Z','2','7'}, 0x5E10, 0x0} /*376.250000 MHz*/ ,
+ {{' ','Z','2','8'}, 0x6010, 0x0} /*384.250000 MHz*/ ,
+ {{' ','Z','2','9'}, 0x6210, 0x0} /*392.250000 MHz*/ ,
+ {{' ','Z','3','0'}, 0x6410, 0xF} /*400.250000 MHz*/ ,
+ {{' ','Z','3','1'}, 0x6610, 0x6} /*408.250000 MHz*/ ,
+ {{' ','Z','3','2'}, 0x6810, 0xE} /*416.250000 MHz*/ ,
+ {{' ','Z','3','3'}, 0x6A10, 0xC} /*424.250000 MHz*/ ,
+ {{' ','Z','3','4'}, 0x6C10, 0x3} /*432.250000 MHz*/ ,
+ {{' ','Z','3','5'}, 0x6E10, 0x7} /*440.250000 MHz*/ ,
+ {{' ','Z','3','6'}, 0x7010, 0xA} /*448.250000 MHz*/ ,
+ {{' ','Z','3','7'}, 0x7210, 0x2} /*456.250000 MHz*/ ,
+ {{'D','S','1','3'}, 0x75D0, 0x1} /*471.250000 MHz*/ ,
+ {{'D','S','1','4'}, 0x77D0, 0x3} /*479.250000 MHz*/ ,
+ {{'D','S','1','5'}, 0x79D0, 0xC} /*487.250000 MHz*/ ,
+ {{'D','S','1','6'}, 0x7BD0, 0xF} /*495.250000 MHz*/ ,
+ {{'D','S','1','7'}, 0x7DD0, 0xC} /*503.250000 MHz*/ ,
+ {{'D','S','1','8'}, 0x7FD0, 0xE} /*511.250000 MHz*/ ,
+ {{'D','S','1','9'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{'D','S','2','0'}, 0x83D0, 0x2} /*527.250000 MHz*/ ,
+ {{'D','S','2','1'}, 0x85D0, 0x4} /*535.250000 MHz*/ ,
+ {{'D','S','2','2'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{'D','S','2','3'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{'D','S','2','4'}, 0x8BD0, 0xF} /*559.250000 MHz*/ ,
+ {{' ','Z','3','8'}, 0x8DD0, 0xA} /*567.250000 MHz*/ ,
+ {{' ','Z','3','9'}, 0x8FD0, 0xE} /*575.250000 MHz*/ ,
+ {{' ','Z','4','0'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ','Z','4','1'}, 0x93D0, 0xF} /*591.250000 MHz*/ ,
+ {{' ','Z','4','2'}, 0x95D0, 0x1} /*599.250000 MHz*/ ,
+ {{'D','S','2','5'}, 0x97D0, 0xC} /*607.250000 MHz*/ ,
+ {{'D','S','2','6'}, 0x99D0, 0xD} /*615.250000 MHz*/ ,
+ {{'D','S','2','7'}, 0x9BD0, 0xF} /*623.250000 MHz*/ ,
+ {{'D','S','2','8'}, 0x9DD0, 0xE} /*631.250000 MHz*/ ,
+ {{'D','S','2','9'}, 0x9FD0, 0x6} /*639.250000 MHz*/ ,
+ {{'D','S','3','0'}, 0xA1D0, 0xB} /*647.250000 MHz*/ ,
+ {{'D','S','3','1'}, 0xA3D0, 0xF} /*655.250000 MHz*/ ,
+ {{'D','S','3','2'}, 0xA5D0, 0xD} /*663.250000 MHz*/ ,
+ {{'D','S','3','3'}, 0xA7D0, 0xF} /*671.250000 MHz*/ ,
+ {{'D','S','3','4'}, 0xA9D0, 0xD} /*679.250000 MHz*/ ,
+ {{'D','S','3','5'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{'D','S','3','6'}, 0xADD0, 0xE} /*695.250000 MHz*/ ,
+ {{'D','S','3','7'}, 0xAFD0, 0x2} /*703.250000 MHz*/ ,
+ {{'D','S','3','8'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{'D','S','3','9'}, 0xB3D0, 0x5} /*719.250000 MHz*/ ,
+ {{'D','S','4','0'}, 0xB5D0, 0x1} /*727.250000 MHz*/ ,
+ {{'D','S','4','1'}, 0xB7D0, 0x2} /*735.250000 MHz*/ ,
+ {{'D','S','4','2'}, 0xB9D0, 0x3} /*743.250000 MHz*/ ,
+ {{'D','S','4','3'}, 0xBBD0, 0x2} /*751.250000 MHz*/ ,
+ {{'D','S','4','4'}, 0xBDD0, 0xE} /*759.250000 MHz*/ ,
+ {{'D','S','4','5'}, 0xBFD0, 0xF} /*767.250000 MHz*/ ,
+ {{'D','S','4','6'}, 0xC1D0, 0x3} /*775.250000 MHz*/ ,
+ {{'D','S','4','7'}, 0xC3D0, 0xD} /*783.250000 MHz*/ ,
+ {{'D','S','4','8'}, 0xC5D0, 0xE} /*791.250000 MHz*/ ,
+ {{'D','S','4','9'}, 0xC7D0, 0xF} /*799.250000 MHz*/ ,
+ {{'D','S','5','0'}, 0xC9D0, 0xC} /*807.250000 MHz*/ ,
+ {{'D','S','5','1'}, 0xCBD0, 0x4} /*815.250000 MHz*/ ,
+ {{'D','S','5','2'}, 0xCDD0, 0xE} /*823.250000 MHz*/ ,
+ {{'D','S','5','3'}, 0xCFD0, 0x2} /*831.250000 MHz*/ ,
+ {{'D','S','5','4'}, 0xD1D0, 0x5} /*839.250000 MHz*/ ,
+ {{'D','S','5','5'}, 0xD3D0, 0x7} /*847.250000 MHz*/ ,
+ {{'D','S','5','6'}, 0xD5D0, 0x1} /*855.250000 MHz*/ ,
+ {{'D','S','5','7'}, 0xD7D0, 0x2} /*863.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_china_analog_cable = {
+ 99,
+ XC3028_channels_china_analog_cable
+};
+
+XC3028_CHANNEL XC3028_channels_china_digital_air[57] = {
+ {{' ','D','S','1'}, 0x0C70, 0x0} /*49.750000 MHz*/ ,
+ {{' ','D','S','2'}, 0x0E70, 0x0} /*57.750000 MHz*/ ,
+ {{' ','D','S','3'}, 0x1070, 0x0} /*65.750000 MHz*/ ,
+ {{' ','D','S','4'}, 0x1350, 0x0} /*77.250000 MHz*/ ,
+ {{' ','D','S','5'}, 0x1550, 0x0} /*85.250000 MHz*/ ,
+ {{' ','D','S','6'}, 0x2A10, 0x0} /*168.250000 MHz*/ ,
+ {{' ','D','S','7'}, 0x2C10, 0x0} /*176.250000 MHz*/ ,
+ {{' ','D','S','8'}, 0x2E10, 0x0} /*184.250000 MHz*/ ,
+ {{' ','D','S','9'}, 0x3010, 0x0} /*192.250000 MHz*/ ,
+ {{'D','S','1','0'}, 0x3210, 0x0} /*200.250000 MHz*/ ,
+ {{'D','S','1','1'}, 0x3410, 0x0} /*208.250000 MHz*/ ,
+ {{'D','S','1','2'}, 0x3610, 0x0} /*216.250000 MHz*/ ,
+ {{'D','S','1','3'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{'D','S','1','4'}, 0x77D0, 0x0} /*479.250000 MHz*/ ,
+ {{'D','S','1','5'}, 0x79D0, 0x0} /*487.250000 MHz*/ ,
+ {{'D','S','1','6'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{'D','S','1','7'}, 0x7DD0, 0x0} /*503.250000 MHz*/ ,
+ {{'D','S','1','8'}, 0x7FD0, 0x0} /*511.250000 MHz*/ ,
+ {{'D','S','1','9'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{'D','S','2','0'}, 0x83D0, 0x0} /*527.250000 MHz*/ ,
+ {{'D','S','2','1'}, 0x85D0, 0x0} /*535.250000 MHz*/ ,
+ {{'D','S','2','2'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{'D','S','2','3'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{'D','S','2','4'}, 0x8BD0, 0x0} /*559.250000 MHz*/ ,
+ {{'D','S','2','5'}, 0x97D0, 0x0} /*607.250000 MHz*/ ,
+ {{'D','S','2','6'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{'D','S','2','7'}, 0x9BD0, 0x0} /*623.250000 MHz*/ ,
+ {{'D','S','2','8'}, 0x9DD0, 0x0} /*631.250000 MHz*/ ,
+ {{'D','S','2','9'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{'D','S','3','0'}, 0xA1D0, 0x0} /*647.250000 MHz*/ ,
+ {{'D','S','3','1'}, 0xA3D0, 0x0} /*655.250000 MHz*/ ,
+ {{'D','S','3','2'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{'D','S','3','3'}, 0xA7D0, 0x0} /*671.250000 MHz*/ ,
+ {{'D','S','3','4'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{'D','S','3','5'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{'D','S','3','6'}, 0xADD0, 0x0} /*695.250000 MHz*/ ,
+ {{'D','S','3','7'}, 0xAFD0, 0x0} /*703.250000 MHz*/ ,
+ {{'D','S','3','8'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{'D','S','3','9'}, 0xB3D0, 0x0} /*719.250000 MHz*/ ,
+ {{'D','S','4','0'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{'D','S','4','1'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{'D','S','4','2'}, 0xB9D0, 0x0} /*743.250000 MHz*/ ,
+ {{'D','S','4','3'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{'D','S','4','4'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{'D','S','4','5'}, 0xBFD0, 0x0} /*767.250000 MHz*/ ,
+ {{'D','S','4','6'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{'D','S','4','7'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{'D','S','4','8'}, 0xC5D0, 0x0} /*791.250000 MHz*/ ,
+ {{'D','S','4','9'}, 0xC7D0, 0x0} /*799.250000 MHz*/ ,
+ {{'D','S','5','0'}, 0xC9D0, 0x0} /*807.250000 MHz*/ ,
+ {{'D','S','5','1'}, 0xCBD0, 0x0} /*815.250000 MHz*/ ,
+ {{'D','S','5','2'}, 0xCDD0, 0x0} /*823.250000 MHz*/ ,
+ {{'D','S','5','3'}, 0xCFD0, 0x0} /*831.250000 MHz*/ ,
+ {{'D','S','5','4'}, 0xD1D0, 0x0} /*839.250000 MHz*/ ,
+ {{'D','S','5','5'}, 0xD3D0, 0x0} /*847.250000 MHz*/ ,
+ {{'D','S','5','6'}, 0xD5D0, 0x0} /*855.250000 MHz*/ ,
+ {{'D','S','5','7'}, 0xD7D0, 0x0} /*863.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_china_digital_air = {
+ 57,
+ XC3028_channels_china_digital_air
+};
+
+XC3028_CHANNEL XC3028_channels_china_digital_cable[99] = {
+ {{' ','D','S','1'}, 0x0C70, 0x0} /*49.750000 MHz*/ ,
+ {{' ','D','S','2'}, 0x0E70, 0x0} /*57.750000 MHz*/ ,
+ {{' ','D','S','3'}, 0x1070, 0x0} /*65.750000 MHz*/ ,
+ {{' ','D','S','4'}, 0x1350, 0x0} /*77.250000 MHz*/ ,
+ {{' ','D','S','5'}, 0x1550, 0x0} /*85.250000 MHz*/ ,
+ {{' ','D','S','6'}, 0x2A10, 0x0} /*168.250000 MHz*/ ,
+ {{' ','D','S','7'}, 0x2C10, 0x0} /*176.250000 MHz*/ ,
+ {{' ','D','S','8'}, 0x2E10, 0x0} /*184.250000 MHz*/ ,
+ {{' ','D','S','9'}, 0x3010, 0x0} /*192.250000 MHz*/ ,
+ {{'D','S','1','0'}, 0x3210, 0x0} /*200.250000 MHz*/ ,
+ {{'D','S','1','1'}, 0x3410, 0x0} /*208.250000 MHz*/ ,
+ {{'D','S','1','2'}, 0x3610, 0x0} /*216.250000 MHz*/ ,
+ {{' ',' ','Z','1'}, 0x1C10, 0x0} /*112.250000 MHz*/ ,
+ {{' ',' ','Z','2'}, 0x1E10, 0x0} /*120.250000 MHz*/ ,
+ {{' ',' ','Z','3'}, 0x2010, 0x0} /*128.250000 MHz*/ ,
+ {{' ',' ','Z','4'}, 0x2210, 0x0} /*136.250000 MHz*/ ,
+ {{' ',' ','Z','5'}, 0x2410, 0x0} /*144.250000 MHz*/ ,
+ {{' ',' ','Z','6'}, 0x2610, 0x0} /*152.250000 MHz*/ ,
+ {{' ',' ','Z','7'}, 0x2810, 0x0} /*160.250000 MHz*/ ,
+ {{' ',' ','Z','8'}, 0x3810, 0x0} /*224.250000 MHz*/ ,
+ {{' ',' ','Z','9'}, 0x3A10, 0x0} /*232.250000 MHz*/ ,
+ {{' ','Z','1','0'}, 0x3C10, 0x0} /*240.250000 MHz*/ ,
+ {{' ','Z','1','1'}, 0x3E10, 0x0} /*248.250000 MHz*/ ,
+ {{' ','Z','1','2'}, 0x4010, 0x0} /*256.250000 MHz*/ ,
+ {{' ','Z','1','3'}, 0x4210, 0x0} /*264.250000 MHz*/ ,
+ {{' ','Z','1','4'}, 0x4410, 0x0} /*272.250000 MHz*/ ,
+ {{' ','Z','1','5'}, 0x4610, 0x0} /*280.250000 MHz*/ ,
+ {{' ','Z','1','6'}, 0x4810, 0x0} /*288.250000 MHz*/ ,
+ {{' ','Z','1','7'}, 0x4A10, 0x0} /*296.250000 MHz*/ ,
+ {{' ','Z','1','8'}, 0x4C10, 0x0} /*304.250000 MHz*/ ,
+ {{' ','Z','1','9'}, 0x4E10, 0x0} /*312.250000 MHz*/ ,
+ {{' ','Z','2','0'}, 0x5010, 0x0} /*320.250000 MHz*/ ,
+ {{' ','Z','2','1'}, 0x5210, 0x0} /*328.250000 MHz*/ ,
+ {{' ','Z','2','2'}, 0x5410, 0x0} /*336.250000 MHz*/ ,
+ {{' ','Z','2','3'}, 0x5610, 0x0} /*344.250000 MHz*/ ,
+ {{' ','Z','2','4'}, 0x5810, 0x0} /*352.250000 MHz*/ ,
+ {{' ','Z','2','5'}, 0x5A10, 0x0} /*360.250000 MHz*/ ,
+ {{' ','Z','2','6'}, 0x5C10, 0x0} /*368.250000 MHz*/ ,
+ {{' ','Z','2','7'}, 0x5E10, 0x0} /*376.250000 MHz*/ ,
+ {{' ','Z','2','8'}, 0x6010, 0x0} /*384.250000 MHz*/ ,
+ {{' ','Z','2','9'}, 0x6210, 0x0} /*392.250000 MHz*/ ,
+ {{' ','Z','3','0'}, 0x6410, 0x0} /*400.250000 MHz*/ ,
+ {{' ','Z','3','1'}, 0x6610, 0x0} /*408.250000 MHz*/ ,
+ {{' ','Z','3','2'}, 0x6810, 0x0} /*416.250000 MHz*/ ,
+ {{' ','Z','3','3'}, 0x6A10, 0x0} /*424.250000 MHz*/ ,
+ {{' ','Z','3','4'}, 0x6C10, 0x0} /*432.250000 MHz*/ ,
+ {{' ','Z','3','5'}, 0x6E10, 0x0} /*440.250000 MHz*/ ,
+ {{' ','Z','3','6'}, 0x7010, 0x0} /*448.250000 MHz*/ ,
+ {{' ','Z','3','7'}, 0x7210, 0x0} /*456.250000 MHz*/ ,
+ {{'D','S','1','3'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{'D','S','1','4'}, 0x77D0, 0x0} /*479.250000 MHz*/ ,
+ {{'D','S','1','5'}, 0x79D0, 0x0} /*487.250000 MHz*/ ,
+ {{'D','S','1','6'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{'D','S','1','7'}, 0x7DD0, 0x0} /*503.250000 MHz*/ ,
+ {{'D','S','1','8'}, 0x7FD0, 0x0} /*511.250000 MHz*/ ,
+ {{'D','S','1','9'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{'D','S','2','0'}, 0x83D0, 0x0} /*527.250000 MHz*/ ,
+ {{'D','S','2','1'}, 0x85D0, 0x0} /*535.250000 MHz*/ ,
+ {{'D','S','2','2'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{'D','S','2','3'}, 0x89D0, 0x0} /*551.250000 MHz*/ ,
+ {{'D','S','2','4'}, 0x8BD0, 0x0} /*559.250000 MHz*/ ,
+ {{' ','Z','3','8'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ','Z','3','9'}, 0x8FD0, 0x0} /*575.250000 MHz*/ ,
+ {{' ','Z','4','0'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ','Z','4','1'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ','Z','4','2'}, 0x95D0, 0x0} /*599.250000 MHz*/ ,
+ {{'D','S','2','5'}, 0x97D0, 0x0} /*607.250000 MHz*/ ,
+ {{'D','S','2','6'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{'D','S','2','7'}, 0x9BD0, 0x0} /*623.250000 MHz*/ ,
+ {{'D','S','2','8'}, 0x9DD0, 0x0} /*631.250000 MHz*/ ,
+ {{'D','S','2','9'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{'D','S','3','0'}, 0xA1D0, 0x0} /*647.250000 MHz*/ ,
+ {{'D','S','3','1'}, 0xA3D0, 0x0} /*655.250000 MHz*/ ,
+ {{'D','S','3','2'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{'D','S','3','3'}, 0xA7D0, 0x0} /*671.250000 MHz*/ ,
+ {{'D','S','3','4'}, 0xA9D0, 0x0} /*679.250000 MHz*/ ,
+ {{'D','S','3','5'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{'D','S','3','6'}, 0xADD0, 0x0} /*695.250000 MHz*/ ,
+ {{'D','S','3','7'}, 0xAFD0, 0x0} /*703.250000 MHz*/ ,
+ {{'D','S','3','8'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{'D','S','3','9'}, 0xB3D0, 0x0} /*719.250000 MHz*/ ,
+ {{'D','S','4','0'}, 0xB5D0, 0x0} /*727.250000 MHz*/ ,
+ {{'D','S','4','1'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{'D','S','4','2'}, 0xB9D0, 0x0} /*743.250000 MHz*/ ,
+ {{'D','S','4','3'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{'D','S','4','4'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{'D','S','4','5'}, 0xBFD0, 0x0} /*767.250000 MHz*/ ,
+ {{'D','S','4','6'}, 0xC1D0, 0x0} /*775.250000 MHz*/ ,
+ {{'D','S','4','7'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{'D','S','4','8'}, 0xC5D0, 0x0} /*791.250000 MHz*/ ,
+ {{'D','S','4','9'}, 0xC7D0, 0x0} /*799.250000 MHz*/ ,
+ {{'D','S','5','0'}, 0xC9D0, 0x0} /*807.250000 MHz*/ ,
+ {{'D','S','5','1'}, 0xCBD0, 0x0} /*815.250000 MHz*/ ,
+ {{'D','S','5','2'}, 0xCDD0, 0x0} /*823.250000 MHz*/ ,
+ {{'D','S','5','3'}, 0xCFD0, 0x0} /*831.250000 MHz*/ ,
+ {{'D','S','5','4'}, 0xD1D0, 0x0} /*839.250000 MHz*/ ,
+ {{'D','S','5','5'}, 0xD3D0, 0x0} /*847.250000 MHz*/ ,
+ {{'D','S','5','6'}, 0xD5D0, 0x0} /*855.250000 MHz*/ ,
+ {{'D','S','5','7'}, 0xD7D0, 0x0} /*863.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_china_digital_cable = {
+ 99,
+ XC3028_channels_china_digital_cable
+};
+
+XC3028_CHANNEL XC3028_channels_australia_air[56] = {
+ {{' ',' ',' ','0'}, 0x0B90, 0x0} /*46.250000 MHz*/ ,
+ {{' ',' ',' ','1'}, 0x0E50, 0x0} /*57.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x1010, 0x0} /*64.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x1590, 0x0} /*86.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x17D0, 0x0} /*95.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1990, 0x0} /*102.250000 MHz*/ ,
+ {{' ',' ','5','A'}, 0x2290, 0x0} /*138.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x2BD0, 0x0} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2D90, 0x0} /*182.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2F50, 0x0} /*189.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x3110, 0x0} /*196.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3450, 0x0} /*209.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x3610, 0x0} /*216.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x37D0, 0x0} /*223.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x83D0, 0x0} /*527.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x8590, 0x0} /*534.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x8750, 0x0} /*541.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x8910, 0x0} /*548.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x8AD0, 0x0} /*555.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x8C90, 0x0} /*562.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x8E50, 0x0} /*569.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x9010, 0x0} /*576.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x9390, 0x0} /*590.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x9550, 0x0} /*597.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x9710, 0x0} /*604.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x98D0, 0x0} /*611.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9A90, 0x0} /*618.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9C50, 0x0} /*625.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0x9E10, 0x0} /*632.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA190, 0x0} /*646.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA350, 0x0} /*653.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA510, 0x0} /*660.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xA6D0, 0x0} /*667.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xA890, 0x0} /*674.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xAA50, 0x0} /*681.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xAC10, 0x0} /*688.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xADD0, 0x0} /*695.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xAF90, 0x0} /*702.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB150, 0x0} /*709.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB310, 0x0} /*716.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xB4D0, 0x0} /*723.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xB690, 0x0} /*730.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xB850, 0x0} /*737.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xBA10, 0x0} /*744.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xBBD0, 0x0} /*751.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xBD90, 0x0} /*758.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xBF50, 0x0} /*765.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xC110, 0x0} /*772.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xC2D0, 0x0} /*779.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xC490, 0x0} /*786.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xC650, 0x0} /*793.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xC810, 0x0} /*800.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xC9D0, 0x0} /*807.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xCB90, 0x0} /*814.250000 MHz*/
+};
+
+XC3028_CHANNEL_MAP XC3028_channel_map_australia_air = {
+ 56,
+ XC3028_channels_australia_air
+};
+
+XC3028_CHANNEL XC3028_channels_australia_cable[80] = {
+ {{' ',' ','1','1'}, 0x1590, 0x0} /*86.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x17D0, 0x0} /*95.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x1990, 0x0} /*102.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x1B90, 0x0} /*110.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x1D50, 0x0} /*117.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x1F10, 0x0} /*124.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x20D0, 0x0} /*131.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x2290, 0x0} /*138.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x24D0, 0x0} /*147.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x2690, 0x0} /*154.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x2850, 0x0} /*161.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x2A10, 0x0} /*168.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x2BD0, 0x0} /*175.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x2D90, 0x0} /*182.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x2F50, 0x0} /*189.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x3110, 0x0} /*196.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x3450, 0x0} /*209.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x3610, 0x0} /*216.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x3810, 0x0} /*224.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x39D0, 0x0} /*231.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x3B90, 0x0} /*238.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x3D50, 0x0} /*245.250000 MHz*/ ,
+ {{' ',' ',' ','1'}, 0x3F10, 0x0} /*252.250000 MHz*/ ,
+ {{' ',' ',' ','2'}, 0x40D0, 0x0} /*259.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x4290, 0x0} /*266.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x4410, 0x0} /*272.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x4610, 0x0} /*280.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x47D0, 0x0} /*287.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x4990, 0x0} /*294.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x4B50, 0x0} /*301.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x4D10, 0x0} /*308.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x4ED0, 0x0} /*315.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x5090, 0x0} /*322.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x5250, 0x0} /*329.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x5410, 0x0} /*336.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x55D0, 0x0} /*343.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x5790, 0x0} /*350.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x5950, 0x0} /*357.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x5B10, 0x0} /*364.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x5CD0, 0x0} /*371.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x5E90, 0x0} /*378.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x6050, 0x0} /*385.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0x6250, 0x0} /*393.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0x63D0, 0x0} /*399.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0x6590, 0x0} /*406.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0x6750, 0x0} /*413.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0x6910, 0x0} /*420.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0x6AD0, 0x0} /*427.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0x6C90, 0x0} /*434.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0x6E50, 0x0} /*441.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0x7010, 0x0} /*448.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0x71D0, 0x0} /*455.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0x7390, 0x0} /*462.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0x7550, 0x0} /*469.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0x7710, 0x0} /*476.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0x78D0, 0x0} /*483.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0x7A90, 0x0} /*490.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0x7C50, 0x0} /*497.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0x7E10, 0x0} /*504.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0x7FD0, 0x0} /*511.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0x8190, 0x0} /*518.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0x83D0, 0x0} /*527.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0x8590, 0x0} /*534.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0x8750, 0x0} /*541.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0x8910, 0x0} /*548.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0x8AD0, 0x0} /*555.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0x8C90, 0x0} /*562.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0x8E50, 0x0} /*569.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0x9010, 0x0} /*576.250000 MHz*/ ,
+ {{' ',' ','7','0'}, 0x91D0, 0x0} /*583.250000 MHz*/ ,
+ {{' ',' ','7','1'}, 0x9390, 0x0} /*590.250000 MHz*/ ,
+ {{' ',' ','7','2'}, 0x9550, 0x0} /*597.250000 MHz*/ ,
+ {{' ',' ','7','3'}, 0x9710, 0x0} /*604.250000 MHz*/ ,
+ {{' ',' ','7','4'}, 0x98D0, 0x0} /*611.250000 MHz*/ ,
+ {{' ',' ','7','5'}, 0x9A90, 0x0} /*618.250000 MHz*/ ,
+ {{' ',' ','7','6'}, 0x9C50, 0x0} /*625.250000 MHz*/ ,
+ {{' ',' ','7','7'}, 0x9E10, 0x0} /*632.250000 MHz*/ ,
+ {{' ',' ','7','8'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','7','9'}, 0xA190, 0x0} /*646.250000 MHz*/ ,
+ {{' ',' ','8','0'}, 0xA350, 0x0} /*653.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_australia_cable = {
+ 80,
+ XC3028_channels_australia_cable
+};
+
+XC3028_CHANNEL XC3028_channels_digital_air[68] = {
+ {{' ',' ',' ','2'}, 0x0DD0, 0x0} /*55.250000 MHz*/ ,
+ {{' ',' ',' ','3'}, 0x0F50, 0x0} /*61.250000 MHz*/ ,
+ {{' ',' ',' ','4'}, 0x10D0, 0x0} /*67.250000 MHz*/ ,
+ {{' ',' ',' ','5'}, 0x1350, 0x0} /*77.250000 MHz*/ ,
+ {{' ',' ',' ','6'}, 0x14D0, 0x0} /*83.250000 MHz*/ ,
+ {{' ',' ',' ','7'}, 0x2BD0, 0x0} /*175.250000 MHz*/ ,
+ {{' ',' ',' ','8'}, 0x2D50, 0x0} /*181.250000 MHz*/ ,
+ {{' ',' ',' ','9'}, 0x2ED0, 0x0} /*187.250000 MHz*/ ,
+ {{' ',' ','1','0'}, 0x3050, 0x0} /*193.250000 MHz*/ ,
+ {{' ',' ','1','1'}, 0x31D0, 0x0} /*199.250000 MHz*/ ,
+ {{' ',' ','1','2'}, 0x3350, 0x0} /*205.250000 MHz*/ ,
+ {{' ',' ','1','3'}, 0x34D0, 0x0} /*211.250000 MHz*/ ,
+ {{' ',' ','1','4'}, 0x75D0, 0x0} /*471.250000 MHz*/ ,
+ {{' ',' ','1','5'}, 0x7750, 0x0} /*477.250000 MHz*/ ,
+ {{' ',' ','1','6'}, 0x78D0, 0x0} /*483.250000 MHz*/ ,
+ {{' ',' ','1','7'}, 0x7A50, 0x0} /*489.250000 MHz*/ ,
+ {{' ',' ','1','8'}, 0x7BD0, 0x0} /*495.250000 MHz*/ ,
+ {{' ',' ','1','9'}, 0x7D50, 0x0} /*501.250000 MHz*/ ,
+ {{' ',' ','2','0'}, 0x7ED0, 0x0} /*507.250000 MHz*/ ,
+ {{' ',' ','2','1'}, 0x8050, 0x0} /*513.250000 MHz*/ ,
+ {{' ',' ','2','2'}, 0x81D0, 0x0} /*519.250000 MHz*/ ,
+ {{' ',' ','2','3'}, 0x8350, 0x0} /*525.250000 MHz*/ ,
+ {{' ',' ','2','4'}, 0x84D0, 0x0} /*531.250000 MHz*/ ,
+ {{' ',' ','2','5'}, 0x8650, 0x0} /*537.250000 MHz*/ ,
+ {{' ',' ','2','6'}, 0x87D0, 0x0} /*543.250000 MHz*/ ,
+ {{' ',' ','2','7'}, 0x8950, 0x0} /*549.250000 MHz*/ ,
+ {{' ',' ','2','8'}, 0x8AD0, 0x0} /*555.250000 MHz*/ ,
+ {{' ',' ','2','9'}, 0x8C50, 0x0} /*561.250000 MHz*/ ,
+ {{' ',' ','3','0'}, 0x8DD0, 0x0} /*567.250000 MHz*/ ,
+ {{' ',' ','3','1'}, 0x8F50, 0x0} /*573.250000 MHz*/ ,
+ {{' ',' ','3','2'}, 0x90D0, 0x0} /*579.250000 MHz*/ ,
+ {{' ',' ','3','3'}, 0x9250, 0x0} /*585.250000 MHz*/ ,
+ {{' ',' ','3','4'}, 0x93D0, 0x0} /*591.250000 MHz*/ ,
+ {{' ',' ','3','5'}, 0x9550, 0x0} /*597.250000 MHz*/ ,
+ {{' ',' ','3','6'}, 0x96D0, 0x0} /*603.250000 MHz*/ ,
+ {{' ',' ','3','7'}, 0x9850, 0x0} /*609.250000 MHz*/ ,
+ {{' ',' ','3','8'}, 0x99D0, 0x0} /*615.250000 MHz*/ ,
+ {{' ',' ','3','9'}, 0x9B50, 0x0} /*621.250000 MHz*/ ,
+ {{' ',' ','4','0'}, 0x9CD0, 0x0} /*627.250000 MHz*/ ,
+ {{' ',' ','4','1'}, 0x9E50, 0x0} /*633.250000 MHz*/ ,
+ {{' ',' ','4','2'}, 0x9FD0, 0x0} /*639.250000 MHz*/ ,
+ {{' ',' ','4','3'}, 0xA150, 0x0} /*645.250000 MHz*/ ,
+ {{' ',' ','4','4'}, 0xA2D0, 0x0} /*651.250000 MHz*/ ,
+ {{' ',' ','4','5'}, 0xA450, 0x0} /*657.250000 MHz*/ ,
+ {{' ',' ','4','6'}, 0xA5D0, 0x0} /*663.250000 MHz*/ ,
+ {{' ',' ','4','7'}, 0xA750, 0x0} /*669.250000 MHz*/ ,
+ {{' ',' ','4','8'}, 0xA8D0, 0x0} /*675.250000 MHz*/ ,
+ {{' ',' ','4','9'}, 0xAA50, 0x0} /*681.250000 MHz*/ ,
+ {{' ',' ','5','0'}, 0xABD0, 0x0} /*687.250000 MHz*/ ,
+ {{' ',' ','5','1'}, 0xAD50, 0x0} /*693.250000 MHz*/ ,
+ {{' ',' ','5','2'}, 0xAED0, 0x0} /*699.250000 MHz*/ ,
+ {{' ',' ','5','3'}, 0xB050, 0x0} /*705.250000 MHz*/ ,
+ {{' ',' ','5','4'}, 0xB1D0, 0x0} /*711.250000 MHz*/ ,
+ {{' ',' ','5','5'}, 0xB350, 0x0} /*717.250000 MHz*/ ,
+ {{' ',' ','5','6'}, 0xB4D0, 0x0} /*723.250000 MHz*/ ,
+ {{' ',' ','5','7'}, 0xB650, 0x0} /*729.250000 MHz*/ ,
+ {{' ',' ','5','8'}, 0xB7D0, 0x0} /*735.250000 MHz*/ ,
+ {{' ',' ','5','9'}, 0xB950, 0x0} /*741.250000 MHz*/ ,
+ {{' ',' ','6','0'}, 0xBAD0, 0x0} /*747.250000 MHz*/ ,
+ {{' ',' ','6','1'}, 0xBC50, 0x0} /*753.250000 MHz*/ ,
+ {{' ',' ','6','2'}, 0xBDD0, 0x0} /*759.250000 MHz*/ ,
+ {{' ',' ','6','3'}, 0xBF50, 0x0} /*765.250000 MHz*/ ,
+ {{' ',' ','6','4'}, 0xC0D0, 0x0} /*771.250000 MHz*/ ,
+ {{' ',' ','6','5'}, 0xC250, 0x0} /*777.250000 MHz*/ ,
+ {{' ',' ','6','6'}, 0xC3D0, 0x0} /*783.250000 MHz*/ ,
+ {{' ',' ','6','7'}, 0xC550, 0x0} /*789.250000 MHz*/ ,
+ {{' ',' ','6','8'}, 0xC6D0, 0x0} /*795.250000 MHz*/ ,
+ {{' ',' ','6','9'}, 0xC850, 0x0} /*801.250000 MHz*/
+};
+XC3028_CHANNEL_MAP XC3028_channel_map_digital_air = {
+ 68,
+ XC3028_channels_digital_air
+};
+
+
+#endif
+
diff --git a/api/xc3028_control.c b/api/xc3028_control.c
new file mode 100644
index 0000000..fc5ce53
--- /dev/null
+++ b/api/xc3028_control.c
@@ -0,0 +1,549 @@
+//
+// Automatically generated C source file for
+// control of the XC3028 via the i2c interface.
+//
+// Filename : xc3028_control.c
+// Generated : 7/3/2007 2:48:24 PM
+//
+// (c) 2007, Xceive Corporation
+//
+//
+// Disclaimer:
+//
+// Xceive assumes no responsibility for any consequences arising from the use
+// of this computer code, nor from any infringement of patents or the rights of
+// third parties that may result from its use. No license is granted by
+// implication or otherwise under any patent or other rights of Xceive. The
+// customer is responsible for assuring that proper design and operating
+// safeguards are observed to minimize inherent and procedural hazards. Xceive
+// assumes no responsibility for applications assistance or customer product
+// design.
+// The present computer code is not authorized for use in medical, life-support
+// equipment, or any other application involving a potential risk of severe
+// property or environmental damage, personal injury, or death without prior
+// express written approval of Xceive. Any such use is understood to be
+// entirely at the user's risk.
+//
+// History:
+//
+// 8/4/2005 rpp : Changes for firmware v2.2
+// Changed 32-bit i2c register writes to have subaddress msb = 1:
+// 1) Power-down (0x0008_0000 => 0x8008_0000)
+// 2) S-Code sequence (0x2000_0000 => 0xA000_0000)
+// 3) Set RF Channel (0x0002_0000 => 0x8002_0000)
+//
+//
+
+
+
+//#include <math.h> //for Linux
+#include "xc3028_control.h"
+#include "xc3028_channelmaps.h"
+#include "xc3028_scodes.h"
+#include "xc3028_firmwares.h"
+
+
+#define XCEIVE_XC3028_SUBADDR_FREQ_ERROR 0x0001
+#define XCEIVE_XC3028_SUBADDR_LOCK 0x0002
+#define XCEIVE_XC3028_SUBADDR_VERSION 0x0004
+#define XCEIVE_XC3028_SUBADDR_PRODUCT_ID 0x0008
+#define XCEIVE_XC3028_SUBADDR_HSYNC_FREQ 0x0010
+#define XCEIVE_XC3028_SUBADDR_FRAME_LINES 0x0020
+#define XCEIVE_XC3028_SUBADDR_QUALITY 0x0040
+#define XCEIVE_XC3028_SUBADDR_ADC_ENVELOPE 0x0100
+
+
+/* *************************************************************** */
+/* GLOBAL VARIABLES */
+/* *************************************************************** */
+
+XC3028_TV_MODE XC3028_current_tv_mode = {0,0,0};
+XC3028_CHANNEL_MAP *XC3028_current_channel_map_ptr = 0;
+XC3028_CHANNEL XC3028_current_channel = {{' ',' ',' ',' '}, 0, 0};
+
+
+
+/* *************************************************************** */
+/* *************************************************************** */
+/* */
+/* FOLLOWING FUNCTIONS TO BE IMPLEMENTED BY CUSTOMER */
+/* */
+/* *************************************************************** */
+/* *************************************************************** */
+
+
+int xc3028_send_i2c_data(unsigned char *bytes_to_send, int nb_bytes_to_send);
+int xc3028_read_i2c_data(unsigned char *bytes_received, int nb_bytes_to_receive);
+int xc3028_reset();
+int xc3028_wait(int wait_ms);
+
+
+
+
+
+
+/* *************************************************************** */
+/* *************************************************************** */
+/* */
+/* CODE PROVIDED BY XCEIVE */
+/* */
+/* *************************************************************** */
+/* *************************************************************** */
+
+
+
+int xc3028_load_i2c_sequence(XC3028_I2C_SEQUENCE i2c_sequence)
+{
+
+ int i,nbytes_to_send,pos,result;
+ unsigned int length, index;
+ unsigned char buf[XC3028_MAX_I2C_WRITE_LENGTH];
+
+ index=0;
+
+ while ((i2c_sequence.sequence[index]!=0xFF) || (i2c_sequence.sequence[index+1]!=0xFF)) {
+
+ length = i2c_sequence.sequence[index]*256 + i2c_sequence.sequence[index+1];
+
+ if (length==0x0000) {
+ //this is in fact a RESET command
+ result = xc3028_reset();
+ index+=2;
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+ } else if (length & 0x8000) {
+ //this is in fact a WAIT command
+ result = xc3028_wait(length & 0x7FFF);
+ index+=2;
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+ } else {
+ //send i2c data whilst ensuring individual transactions do
+ //not exceed XC3028_MAX_I2C_WRITE_LENGTH bytes
+ index+=2;
+ buf[0] = i2c_sequence.sequence[index];
+ pos = 1;
+ while (pos < length) {
+
+ if ( (length-pos) > XC3028_MAX_I2C_WRITE_LENGTH-1) {
+ nbytes_to_send = XC3028_MAX_I2C_WRITE_LENGTH;
+ } else {
+ nbytes_to_send = (length-pos+1);
+ }
+
+ for (i=1;i<nbytes_to_send;i++) {
+ buf[i] = i2c_sequence.sequence[index+pos+i-1];
+ }
+
+ result = xc3028_send_i2c_data(buf, nbytes_to_send);
+
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ pos += nbytes_to_send-1;
+ }
+ index+=length;
+ }
+ }
+
+
+ return XC3028_RESULT_SUCCESS;
+}
+
+
+int xc3028_get_reg(unsigned short int subaddr, unsigned short int *data)
+{
+ unsigned char buf[2];
+ int result;
+
+ buf[0]=(subaddr>>8) & 0xFF;
+ buf[1]=subaddr & 0xFF;
+ result = xc3028_send_i2c_data(buf, 2);
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ result = xc3028_read_i2c_data(buf, 2);
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ (*data) = buf[0];
+ (*data) = ((*data) << 8) + buf[1];
+
+ return XC3028_RESULT_SUCCESS;
+}
+
+
+int xc3028_initialize(XC3028_TV_MODE* new_tv_mode_ptr, XC3028_CHANNEL_MAP* new_channel_map_ptr)
+{
+
+ int result;
+ int base_firmware_changed = (new_tv_mode_ptr->base_firmware_ptr != XC3028_current_tv_mode.base_firmware_ptr);
+ int std_firmware_changed = (new_tv_mode_ptr->std_firmware_ptr != XC3028_current_tv_mode.std_firmware_ptr);
+
+ // if base firmware has changed, then do hardware reset and reload base
+ // firmware file
+ if (base_firmware_changed) {
+ result = xc3028_reset();
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ result = xc3028_load_i2c_sequence(*(new_tv_mode_ptr->base_firmware_ptr));
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+ }
+
+ // if base firmware has changed -or- standard-specific firmware has
+ // changed then reload standard-specific firmware file
+ if (base_firmware_changed || std_firmware_changed) {
+ result = xc3028_load_i2c_sequence(*(new_tv_mode_ptr->std_firmware_ptr));
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+ }
+
+ XC3028_current_tv_mode = *new_tv_mode_ptr;
+ XC3028_current_channel_map_ptr = new_channel_map_ptr;
+
+ // if base firmware has changed -or- standard-specific firmware has
+ // changed then re-write RF channel
+
+ if (base_firmware_changed || std_firmware_changed) {
+ //do not return error if channel is incorrect...
+ xc3028_set_channel(XC3028_current_channel);
+ }
+
+ return XC3028_RESULT_SUCCESS;
+}
+
+int xc3028_shutdown()
+{
+ //unsigned char buf[4] = {0x00, 0x08, 0x00, 0x00};
+ unsigned char buf[4] = {0x80, 0x08, 0x00, 0x00}; //modified for firmware v2.2
+ int res;
+
+ xc3028_send_i2c_data(buf, 4); //no ack check
+
+ //reset current firmware pointers to force firmware reload
+ //during subsequent call to xc3028_initialize()
+ XC3028_current_tv_mode.base_firmware_ptr=0;
+ XC3028_current_tv_mode.std_firmware_ptr=0;
+
+ return 0;
+}
+
+int xc3028_set_frequency(long frequency_in_hz)
+{
+ unsigned int frequency_code;
+ int result;
+ XC3028_CHANNEL new_channel;
+
+ if (XC3028_current_channel_map_ptr == 0)
+ return XC3028_RESULT_NO_CHANNELMAP_SPECIFIED;
+
+// if ((frequency_in_mhz>1023) || (frequency_in_mhz<1))
+ if ((frequency_in_hz>1023000000) || (frequency_in_hz<1))
+ return XC3028_RESULT_OUT_OF_RANGE;
+
+// frequency_code = (unsigned int)floor(frequency_in_mhz/0.015625);
+ frequency_code = (unsigned int)(frequency_in_hz/15625);
+
+ new_channel.frequency = frequency_code;
+ new_channel.dcode = 0xFF;
+
+ return xc3028_set_channel(new_channel);
+}
+
+
+int xc3028_send_scode(unsigned char dcode)
+{
+ unsigned char buf[4];
+ int result;
+
+ //buf[0] = 0x20;
+ buf[0] = 0xA0; // modified for firmware v2.2
+ buf[1] = 0x00;
+ buf[2] = 0x00;
+ buf[3] = 0x00;
+
+ if (XC3028_current_tv_mode.scode_table_ptr==0) {
+ return XC3028_RESULT_SUCCESS;
+ }
+
+ result = xc3028_send_i2c_data(buf, 4);
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ result = xc3028_send_i2c_data((*(XC3028_current_tv_mode.scode_table_ptr))[dcode], 12);
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ buf[0] = 0x00;
+ buf[1] = 0x8C;
+
+ result = xc3028_send_i2c_data(buf, 2);
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ return XC3028_RESULT_SUCCESS;
+}
+
+int xc3028_set_channel(XC3028_CHANNEL new_channel)
+{
+ int i,result;
+ unsigned int frequency;
+ unsigned char dcode;
+ unsigned char buf[4];
+
+ XC3028_current_channel = new_channel;
+
+ frequency = new_channel.frequency;
+ if (frequency==0) {
+ if (XC3028_current_channel_map_ptr == 0) {
+ return XC3028_RESULT_NO_CHANNELMAP_SPECIFIED;
+ }
+
+ //lookup frequency from table using identifier
+ for (i=0;i<XC3028_current_channel_map_ptr->nb_channels;i++) {
+ if ( (XC3028_current_channel_map_ptr->channels[i].identifier[0] == new_channel.identifier[0]) &&
+ (XC3028_current_channel_map_ptr->channels[i].identifier[1] == new_channel.identifier[1]) &&
+ (XC3028_current_channel_map_ptr->channels[i].identifier[2] == new_channel.identifier[2]) &&
+ (XC3028_current_channel_map_ptr->channels[i].identifier[3] == new_channel.identifier[3]) ) {
+ frequency = XC3028_current_channel_map_ptr->channels[i].frequency;
+ }
+ }
+ }
+
+ if (frequency==0)
+ return XC3028_RESULT_INVALID_CHANNEL_IDENTIFIER;
+
+ /* if supplied dcode is 0xFF, then lookup dcode using current channel map */
+ dcode = new_channel.dcode;
+ if (dcode==0xFF) {
+ if (XC3028_current_channel_map_ptr == 0) {
+ return XC3028_RESULT_NO_CHANNELMAP_SPECIFIED;
+ }
+
+ dcode=0; //default value if no close channel found
+ for (i=0;i<(XC3028_current_channel_map_ptr->nb_channels);i++) {
+ if ( (frequency > XC3028_current_channel_map_ptr->channels[i].frequency - 64) &&
+ (frequency < XC3028_current_channel_map_ptr->channels[i].frequency + 64) ) {
+ dcode = XC3028_current_channel_map_ptr->channels[i].dcode;
+ }
+ }
+ }
+
+ result = xc3028_send_scode(dcode);
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ //buf[0] = 0x00;
+ buf[0] = 0x80; // modified for firmware v2.2
+ buf[1] = 0x02;
+ buf[2] = 0x00;
+ buf[3] = 0x00;
+
+ result = xc3028_send_i2c_data(buf, 4);
+ if (result!=XC3028_RESULT_SUCCESS)
+ return result;
+
+ buf[0] = 0x00;
+ buf[1] = dcode & 0x0F;
+ buf[2] = (frequency>>8) % 256;
+ buf[3] = (frequency) % 256;
+
+ return xc3028_send_i2c_data(buf, 4);
+}
+
+// Obtain current frequency error of XC3028.
+// Refer to datasheet for values.
+int xc3028_get_frequency_error(long *frequency_error_hz)
+{
+ unsigned short int data;
+ short int signed_data;
+ int result;
+
+ result = xc3028_get_reg(XCEIVE_XC3028_SUBADDR_FREQ_ERROR, &data);
+ if (result)
+ return result;
+
+ signed_data = (short int)data;
+ (*frequency_error_hz) = signed_data * 15625;
+
+ return 0;
+}
+
+// Obtain current lock status of XC3028.
+// Refer to datasheet for values.
+int xc3028_get_lock_status(unsigned short int *lock_status)
+{
+ return xc3028_get_reg(XCEIVE_XC3028_SUBADDR_LOCK, lock_status);
+}
+
+// Obtain Version codes from XC3028.
+// Refer to datasheet for values.
+int xc3028_get_version(unsigned char* hw_majorversion,
+ unsigned char* hw_minorversion,
+ unsigned char* fw_majorversion,
+ unsigned char* fw_minorversion)
+{
+ unsigned short int data;
+ int result;
+
+ result = xc3028_get_reg(XCEIVE_XC3028_SUBADDR_VERSION, &data);
+ if (result)
+ return result;
+
+ (*hw_majorversion) = (data>>12) & 0x0F;
+ (*hw_minorversion) = (data>>8) & 0x0F;
+ (*fw_majorversion) = (data>>4) & 0x0F;
+ (*fw_minorversion) = (data) & 0x0F;
+
+ return 0;
+ }
+
+ // Obtain Product ID from XC3028.
+ // Refer to datasheet for values.
+int xc3028_get_product_id(unsigned short int *product_id) {
+ return xc3028_get_reg(XCEIVE_XC3028_SUBADDR_PRODUCT_ID, product_id);
+ }
+
+ // Obtain current horizontal video frequency as measured by XC3028.
+ // Refer to datasheet for values.
+int xc3028_get_hsync_freq(long *hsync_freq_hz)
+ {
+ unsigned short int data;
+ int result;
+
+ result = xc3028_get_reg(XCEIVE_XC3028_SUBADDR_HSYNC_FREQ, &data);
+ if (result)
+ return result;
+
+ (*hsync_freq_hz) = (data&0x0fff)*7630;
+
+ return 0;
+ }
+
+ // Obtain current number of lines per frame as measured by XC3028.
+ // Refer to datasheet for values.
+int xc3028_get_frame_lines(unsigned short int *frame_lines)
+ {
+ unsigned short int data;
+ int result;
+
+ result = xc3028_get_reg(XCEIVE_XC3028_SUBADDR_FRAME_LINES, &data);
+ if (result)
+ return result;
+
+ (*frame_lines) = (data & 0x03ff);
+
+ return 0;
+ }
+
+ // Obtain current video signal quality as measured by XC3028.
+ // Refer to datasheet for values.
+int xc3028_get_quality(unsigned short int *quality)
+ {
+ return xc3028_get_reg(XCEIVE_XC3028_SUBADDR_QUALITY, quality);
+ }
+
+// Scan via 2.5MHz increments from freq_min to freq_max and update table
+// with frequencies of channels found. For all channels that lock, we do
+// additional check on carrier stability and quality level
+int xc3028_full_scan(unsigned int freq_min, unsigned int freq_max, int freq_list_size, unsigned int *freq_list, int *nb_freq_found )
+ {
+ int num_channels = 0;
+ XC3028_CHANNEL curr_channel;
+ unsigned short int lock_status;
+ long freq_error, min_freq_error, max_freq_error;
+ unsigned short int quality, max_quality;
+ int res;
+
+ curr_channel.frequency = freq_min;
+ curr_channel.dcode = 0xFF;
+
+ while ((num_channels<freq_list_size) && (curr_channel.frequency<freq_max)) {
+
+ res=xc3028_set_channel(curr_channel);
+ if (res!=XC3028_RESULT_SUCCESS)
+ return res;
+
+ *nb_freq_found = num_channels;
+
+ //poll lock register
+ lock_status=0;
+ while (!lock_status) {
+ res=xc3028_get_lock_status(&lock_status);
+ if (res!=XC3028_RESULT_SUCCESS)
+ return res;
+ }
+
+ if (lock_status!=1) {
+ //no channel found
+ curr_channel.frequency += 160; // 160*15.625khz = 2.5 MHz
+ } else {
+ //locked
+
+ xc3028_wait(6);
+
+ res=xc3028_get_frequency_error(&freq_error);
+ if (res!=XC3028_RESULT_SUCCESS) return res;
+ max_freq_error = freq_error;
+ min_freq_error = freq_error;
+
+ res=xc3028_get_quality(&quality);
+ if (res!=XC3028_RESULT_SUCCESS) return res;
+ max_quality=quality;
+
+ xc3028_wait(6);
+
+ res=xc3028_get_frequency_error(&freq_error);
+ if (res!=XC3028_RESULT_SUCCESS) return res;
+ max_freq_error = (max_freq_error>freq_error) ? max_freq_error : freq_error;
+ min_freq_error = (min_freq_error<freq_error) ? min_freq_error : freq_error;
+
+ res=xc3028_get_quality(&quality);
+ if (res!=XC3028_RESULT_SUCCESS) return res;
+ max_quality=(max_quality>quality) ? max_quality : quality;
+
+ xc3028_wait(6);
+
+ res=xc3028_get_frequency_error(&freq_error);
+ if (res!=XC3028_RESULT_SUCCESS) return res;
+ max_freq_error = (max_freq_error>freq_error) ? max_freq_error : freq_error;
+ min_freq_error = (min_freq_error<freq_error) ? min_freq_error : freq_error;
+
+ res=xc3028_get_quality(&quality);
+ if (res!=XC3028_RESULT_SUCCESS) return res;
+ max_quality=(max_quality>quality) ? max_quality : quality;
+
+
+ //We got lock, but now we check that carrier is stable and that quality is sufficient
+ if (((max_freq_error-min_freq_error)<60000) && (max_quality>0)) {
+ //add new channel
+// freq_list[num_channels]=curr_channel.frequency + floor(freq_error / 15625.0);
+ freq_list[num_channels]=(int) (curr_channel.frequency + (unsigned int)(freq_error / 15625));
+
+ if (num_channels>0) {
+ //checking for duplicate in table
+ if ((freq_list[num_channels-1]<freq_list[num_channels]+4) && (freq_list[num_channels-1]>freq_list[num_channels]-4) ) {
+ //previous channel is same: cancel new entry
+ num_channels--;
+ }
+ }
+
+ num_channels++;
+
+ // update channel frequency for next scan step
+ curr_channel.frequency += 384; // 384*15.625khz = 6 MHz
+ } else {
+ // update channel frequency for next scan step
+ curr_channel.frequency += 160; // 160*15.625khz = 2.5 MHz
+ }
+ }
+ }
+
+ (*nb_freq_found) = num_channels;
+
+ return XC3028_RESULT_SUCCESS;
+ }
+
+
diff --git a/api/xc3028_control.h b/api/xc3028_control.h
new file mode 100644
index 0000000..14e32fe
--- /dev/null
+++ b/api/xc3028_control.h
@@ -0,0 +1,180 @@
+//
+// Automatically generated C header file for
+// control of the XC3028L via the i2c interface.
+//
+// Filename : xc3028_control.h
+// Generated : 7/3/2007 2:48:24 PM
+//
+// (c) 2007, Xceive Corporation
+//
+//
+// Disclaimer:
+//
+// Xceive assumes no responsibility for any consequences arising from the use
+// of this computer code, nor from any infringement of patents or the rights of
+// third parties that may result from its use. No license is granted by
+// implication or otherwise under any patent or other rights of Xceive. The
+// customer is responsible for assuring that proper design and operating
+// safeguards are observed to minimize inherent and procedural hazards. Xceive
+// assumes no responsibility for applications assistance or customer product
+// design.
+// The present computer code is not authorized for use in medical, life-support
+// equipment, or any other application involving a potential risk of severe
+// property or environmental damage, personal injury, or death without prior
+// express written approval of Xceive. Any such use is understood to be
+// entirely at the user's risk.
+//
+//
+
+#ifndef __XC3028_CONTROL_H
+#define __XC3028_CONTROL_H
+
+/* *********************************************************************** */
+/* Defines */
+/* *********************************************************************** */
+
+#define XC3028_MAX_I2C_WRITE_LENGTH 52
+
+#define XC3028_RESULT_SUCCESS 0
+#define XC3028_RESULT_RESET_FAILURE 1
+#define XC3028_RESULT_I2C_WRITE_FAILURE 2
+#define XC3028_RESULT_I2C_READ_FAILURE 3
+#define XC3028_RESULT_WAIT_FAILURE 4
+#define XC3028_RESULT_OUT_OF_RANGE 5
+#define XC3028_RESULT_INVALID_CHANNEL_IDENTIFIER 6
+#define XC3028_RESULT_NO_CHANNELMAP_SPECIFIED 7
+
+/* *********************************************************************** */
+/* Type Declarations */
+/* *********************************************************************** */
+
+/*
+ This represents an I2C firmware file encoded as a string of unsigned char.
+ Format is as follows:
+
+ char[0 ]=len0_MSB -> len = len_MSB * 256 + len_LSB
+ char[1 ]=len0_LSB -> length of first write transaction
+ char[2 ]=data0 -> first byte to be sent
+ char[3 ]=data1
+ char[4 ]=data2
+ char[ ]=...
+ char[M ]=dataN -> last byte to be sent
+ char[M+1]=len1_MSB -> len = len_MSB * 256 + len_LSB
+ char[M+2]=len1_LSB -> length of second write transaction
+ char[M+3]=data0
+ char[M+4]=data1
+ ...
+ etc.
+
+ The [len] value should be interpreted as follows:
+
+ len= len_MSB _ len_LSB
+ len=1111_1111_1111_1111 : End of I2C_SEQUENCE
+ len=0000_0000_0000_0000 : Reset command: Do hardware reset
+ len=0NNN_NNNN_NNNN_NNNN : Normal transaction: number of bytes = {1:32767)
+ len=1WWW_WWWW_WWWW_WWWW : Wait command: wait for {1:32767} ms
+
+ For the RESET and WAIT commands, the two following bytes will contain
+ immediately the length of the following transaction.
+
+*/
+
+
+typedef struct {
+ unsigned char *sequence;
+} XC3028_I2C_SEQUENCE;
+
+typedef unsigned char XC3028_SCODE_TABLE[16][12];
+
+typedef struct {
+ char identifier[4];
+ unsigned int frequency;
+ unsigned char dcode;
+} XC3028_CHANNEL;
+
+typedef struct {
+ int nb_channels;
+ XC3028_CHANNEL *channels;
+} XC3028_CHANNEL_MAP;
+
+typedef struct {
+ XC3028_I2C_SEQUENCE *base_firmware_ptr;
+ XC3028_I2C_SEQUENCE *std_firmware_ptr;
+ XC3028_SCODE_TABLE *scode_table_ptr;
+} XC3028_TV_MODE;
+
+typedef struct _XC3028_Current_Modes
+{
+ XC3028_TV_MODE XC3028_current_tv_mode;
+ XC3028_CHANNEL_MAP *XC3028_current_channel_map_ptr;
+ XC3028_CHANNEL XC3028_current_channel;
+}XC3028_Current_Modes;
+
+/* *********************************************************************** */
+/* Dummy functions to be implemented by customer */
+/* *********************************************************************** */
+
+// Sends data bytes to xc3028 via I2C starting with
+// bytes_to_send[0] and ending with bytes_to_send[nb_bytes_to_send-1]
+// Returns one of the XCEIVE_XC3028_RESULT result codes listed above
+int i2c_send_to_xc3028(unsigned char *bytes_to_send, int nb_bytes_to_send);
+// Reads data bytes from xc3028 via I2C starting with
+// bytes_received[0] and ending with bytes_received[nb_bytes_to_receive-1]
+// Returns one of the XCEIVE_XC3028_RESULT result codes listed above
+int i2c_receive_from_xc3028(unsigned char *bytes_received, int nb_bytes_to_receive);
+// Does hardware reset
+// Returns one of the XCEIVE_XC3028_RESULT result codes listed above
+int reset_xc3028();
+// Waits for wait_ms milliseconds
+// Returns one of the XCEIVE_XC3028_RESULT result codes listed above
+int wait_xc3028(int wait_ms);
+
+/* *********************************************************************** */
+/* Functions implemented in xc3028_init.c file */
+/* All return one of the XCEIVE_XC3028_RESULT result codes as listed above */
+/* *********************************************************************** */
+
+// Initialize device according to supplied tv mode.
+// Supplied channel map will be used for future calls to xc3028_set_channel.
+int xc3028_initialize(XC3028_TV_MODE* new_tv_mode_ptr, XC3028_CHANNEL_MAP* new_channel_map_ptr);
+
+// Switch to new RF channel.
+// Set channel.frequency=0 to enable lookup of frequency+dcode using channel.identifier
+// Set channel.dcode to 0xFF to enable dcode lookup from channel map, otherwise
+// provided value is used instead.
+int xc3028_set_channel(XC3028_CHANNEL new_channel);
+
+int xc3028_set_frequency(long frequency_in_hz);
+
+// Power-down device.
+// To restart, call xc3028_initialize().
+int xc3028_shutdown();
+
+// Get current frequency error.
+int xc3028_get_frequency_error(long *frequency_error_hz);
+
+// Get lock status.
+int xc3028_get_lock_status(unsigned short int *lock_status);
+
+// Get device version information.
+int xc3028_get_version( unsigned char* hw_majorversion,unsigned char* hw_minorversion,
+ unsigned char* fw_majorversion, unsigned char* fw_minorversion);
+
+// Get device product ID.
+int xc3028_get_product_id(unsigned short int *product_id);
+
+// Get horizontal sync frequency.
+int xc3028_get_hsync_freq(long *hsync_freq_hz);
+
+// Get number of lines per frame.
+int xc3028_get_frame_lines(unsigned short int *frame_lines);
+
+// Get quality estimate.
+int xc3028_get_quality(unsigned short int *quality);
+
+// Do full scan for channels
+int xc3028_full_scan(unsigned int freq_min, unsigned int freq_max, int freq_list_size, unsigned int *freq_list, int *nb_freq_found);
+
+#endif
+
+
diff --git a/api/xc3028_firmwares.h b/api/xc3028_firmwares.h
new file mode 100644
index 0000000..349e057
--- /dev/null
+++ b/api/xc3028_firmwares.h
@@ -0,0 +1,16191 @@
+//
+// Automatically generated C header file for
+// control of the XC3028L via the i2c interface.
+//
+// Filename : xc3028_firmwares.h
+// Generated : 7/3/2007 2:48:22 PM
+// Firmware version : 3.6
+//
+// (c) 2007, Xceive Corporation
+//
+
+#ifndef __XC3028_FIRMWARES_H
+#define __XC3028_FIRMWARES_H
+
+#include "xc3028_scodes.h"
+#include "xc3028_control.h"
+
+
+// *************************************************************
+// *** LIST OF AVAILABLE TV_MODES
+// *** TV_MODE is selected during call to xc3028_initialize()
+// ***
+// *** 1) XC3028_tv_mode_m_n_ntsc_pal_btsc_if
+// *** 2) XC3028_tv_mode_m_n_ntsc_pal_btsc_if_lcd
+// *** 3) XC3028_tv_mode_m_n_ntsc_pal_btsc_if_lcd_nogd
+// *** 4) XC3028_tv_mode_m_n_ntsc_pal_a2_if
+// *** 5) XC3028_tv_mode_m_n_ntsc_pal_a2_if_lcd
+// *** 6) XC3028_tv_mode_m_n_ntsc_pal_a2_if_lcd_nogd
+// *** 7) XC3028_tv_mode_m_n_ntsc_pal_mts
+// *** 8) XC3028_tv_mode_m_n_ntsc_pal_mts_lcd
+// *** 9) XC3028_tv_mode_m_n_ntsc_pal_mts_lcd_nogd
+// *** 10) XC3028_tv_mode_m_n_ntsc_pal_a2_mono
+// *** 11) XC3028_tv_mode_m_n_ntsc_pal_a2_mono_lcd
+// *** 12) XC3028_tv_mode_m_n_ntsc_pal_a2_mono_lcd_nogd
+// *** 13) XC3028_tv_mode_m_n_ntsc_pal_eiaj
+// *** 14) XC3028_tv_mode_i_pal_nicam
+// *** 15) XC3028_tv_mode_b_g_pal_a2_a
+// *** 16) XC3028_tv_mode_b_g_pal_nicam_a
+// *** 17) XC3028_tv_mode_b_g_pal_a2_b
+// *** 18) XC3028_tv_mode_b_g_pal_nicam_b
+// *** 19) XC3028_tv_mode_l_secam_nicam
+// *** 20) XC3028_tv_mode_lp_secam_nicam
+// *** 21) XC3028_tv_mode_d_k_pal_a2
+// *** 22) XC3028_tv_mode_d_k_pal_nicam
+// *** 23) XC3028_tv_mode_d_k_secam_a2_dk1
+// *** 24) XC3028_tv_mode_d_k_secam_a2_l_dk3
+// *** 25) XC3028_tv_mode_fm_radio_input2
+// *** 26) XC3028_tv_mode_fm_radio_input1
+// *** 27) XC3028_tv_mode_dtv6_atsc_lg_6_0mhz
+// *** 28) XC3028_tv_mode_dtv6_atsc_ati_6_38mhz
+// *** 29) XC3028_tv_mode_dtv6_atsc_oren_5_38mhz
+// *** 30) XC3028_tv_mode_dtv6_atsc_oren_3_6mhz
+// *** 31) XC3028_tv_mode_dtv6_atsc_toyota_3_88mhz
+// *** 32) XC3028_tv_mode_dtv6_atsc_toyota_7_94mhz
+// *** 33) XC3028_tv_mode_dtv6_qam_6_0mhz
+// *** 34) XC3028_tv_mode_dtv8_dibcom_5_2mhz
+// *** 35) XC3028_tv_mode_dtv78_dibcom_5_2mhz
+// *** 36) XC3028_tv_mode_dtv7_dibcom_5_2mhz
+// *** 37) XC3028_tv_mode_dtv6_zarlink_qam_4_56mhz
+// *** 38) XC3028_tv_mode_dtv8_zarlink_4_56mhz
+// *** 39) XC3028_tv_mode_dtv78_zarlink_4_56mhz
+// *** 40) XC3028_tv_mode_dtv7_zarlink_4_56mhz
+// *** 41) XC3028_tv_mode_dtv8_china_temporary
+// *** 42) XC3028_tv_mode_i_pal_nicam_mono
+// *** 43) XC3028_tv_mode_b_g_pal_a2_a_mono
+// *** 44) XC3028_tv_mode_b_g_pal_nicam_a_mono
+// *** 45) XC3028_tv_mode_b_g_pal_a2_b_mono
+// *** 46) XC3028_tv_mode_b_g_pal_nicam_b_mono
+// *** 47) XC3028_tv_mode_d_k_pal_a2_mono
+// *** 48) XC3028_tv_mode_d_k_pal_nicam_mono
+// *** 49) XC3028_tv_mode_d_k_secam_a2_dk1_mono
+// *** 50) XC3028_tv_mode_d_k_secam_a2_l_dk3_mono
+// *** 51) XC3028_tv_mode_dtv6_afatech_qam_4_56mhz
+// *** 52) XC3028_tv_mode_dtv8_afatech_4_56mhz
+// *** 53) XC3028_tv_mode_dtv7_afatech_4_56mhz
+// ***
+// *************************************************************
+
+// ************************************************************
+// *** BASE FIRMWARE FILES
+// *** These declarations are not used directly by user
+// ************************************************************
+
+unsigned char XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init_SEQUENCE[9146] = {
+
+ 0x00, 0x00, /* RESET */
+ 0x0D, 0x53, /* Length = 3411 bytes */
+ 0x2A, 0x02, 0x19, 0xE0, 0x00, 0x07, 0xF5, 0xD4, 0x00, 0xC4,
+ 0xF0, 0xD6, 0xAE, 0xC6, 0x10, 0xD5, 0xF5, 0xC5, 0x7A, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x01, 0xC4, 0xF0, 0xD6, 0x51, 0xC6,
+ 0x02, 0xD5, 0x99, 0xC5, 0xA3, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x03, 0xC4, 0xF0, 0xD6, 0x04, 0xD5, 0x87, 0xC5, 0x06, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x04, 0xC4, 0xF0, 0xD6, 0x00, 0xD5,
+ 0x1F, 0xC5, 0x2C, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0x06, 0xD5, 0x00, 0xC5, 0x40, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x80, 0xD5,
+ 0xCD, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x07, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0xC0, 0xD5, 0x05, 0xC5, 0x2F, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x09, 0xC4, 0xF0, 0xD6, 0xC0, 0xC6,
+ 0x42, 0xD5, 0x67, 0xC5, 0x3C, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x0F, 0xC4, 0xF0, 0xD6, 0x3F, 0xC6, 0xC0, 0xD5, 0x11, 0xC5,
+ 0x11, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6,
+ 0x00, 0xC6, 0x24, 0xD5, 0x0E, 0xC5, 0x2E, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4,
+ 0x70, 0xE0, 0x04, 0x07, 0xE7, 0x86, 0x69, 0x86, 0x69, 0xA2,
+ 0x61, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x00, 0xC6, 0x24, 0xD5,
+ 0xC0, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4,
+ 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07,
+ 0xE7, 0x86, 0x69, 0x86, 0x69, 0x12, 0x62, 0x98, 0x21, 0xF8,
+ 0x05, 0x02, 0x88, 0xF2, 0x0D, 0xD8, 0x80, 0x4C, 0x28, 0xF8,
+ 0x05, 0x02, 0x94, 0xE0, 0x00, 0x07, 0x82, 0xD4, 0x0E, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xD5, 0x00, 0xE0, 0x04, 0x07, 0xD8, 0xD0,
+ 0x01, 0xC0, 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD3, 0x0F, 0x71,
+ 0x23, 0xF1, 0x01, 0x04, 0x7F, 0xD0, 0x60, 0xD1, 0x00, 0xC1,
+ 0x40, 0xD2, 0x0B, 0x00, 0x02, 0xF0, 0x1C, 0xA0, 0x03, 0xD1,
+ 0x00, 0xF0, 0x1C, 0xD0, 0x01, 0xD1, 0x03, 0xD2, 0x03, 0xD3,
+ 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD4, 0x9E, 0xA4, 0x45, 0xD5,
+ 0x10, 0xC5, 0x01, 0xF4, 0x5C, 0xD5, 0x40, 0xC5, 0x0B, 0xA4,
+ 0x43, 0xF4, 0x5C, 0xD3, 0x00, 0xC3, 0xF0, 0xD5, 0xD6, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x19, 0xD4, 0x01, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x03, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x04, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x05, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x06, 0xC3, 0xF0, 0xD5,
+ 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x07, 0xC3,
+ 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x09, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x0E, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x0F, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD0,
+ 0xFF, 0xC0, 0x03, 0xD1, 0x54, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x99, 0xD4, 0x01, 0xC4, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xC5, 0x19, 0xD4, 0x01, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x00, 0xC5, 0x99, 0xD4, 0x01, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x40, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5,
+ 0x19, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5,
+ 0x99, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4,
+ 0x02, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x02, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x23, 0xC5, 0x19, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x23, 0xC5, 0x99, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5,
+ 0x19, 0xD4, 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4,
+ 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x20, 0xC5, 0x19, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5,
+ 0x99, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x05, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x20, 0xC5, 0x99, 0xD4, 0x05, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x06, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x06, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xD4,
+ 0x00, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xEC,
+ 0xAF, 0xD1, 0x54, 0xD2, 0xA0, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x90, 0xC2, 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x44, 0xC2,
+ 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0xDC, 0xC2, 0x02, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2, 0x02, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0x58, 0xC2, 0x04, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x2C, 0xC2, 0x03, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2,
+ 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x88, 0xC2, 0x04, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x04, 0xC2, 0x09, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0xD0, 0xC2, 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x20, 0xC2, 0x0D, 0xF1, 0x2C, 0xA1, 0x13, 0xD5, 0x0E, 0xD6,
+ 0x00, 0xD7, 0x03, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x0F, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xA3, 0xD6,
+ 0x0E, 0xD7, 0x0E, 0xE0, 0x05, 0x07, 0xA3, 0xD5, 0xFF, 0xC5,
+ 0xFF, 0xF5, 0x09, 0xD5, 0x01, 0xC5, 0x80, 0xD6, 0x02, 0xE0,
+ 0x05, 0x07, 0xD8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5, 0x01, 0xC5,
+ 0x01, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87,
+ 0x7C, 0xD8, 0xBC, 0xF8, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD0, 0x00, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0,
+ 0x00, 0x07, 0xBF, 0xD0, 0x01, 0xD1, 0x07, 0xD2, 0x08, 0xD3,
+ 0x00, 0xE0, 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4,
+ 0x00, 0xC4, 0xA0, 0xF4, 0x09, 0xD0, 0x00, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07,
+ 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07, 0xD8, 0xC6,
+ 0xC0, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4,
+ 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07, 0xE7, 0xDA,
+ 0xFF, 0x27, 0x6E, 0x2D, 0x5A, 0x88, 0x5F, 0x88, 0x83, 0x87,
+ 0x78, 0xDA, 0x8E, 0xAA, 0xA7, 0xFA, 0x7C, 0xAA, 0xA9, 0xFA,
+ 0x8C, 0xAA, 0xA9, 0xFA, 0x9C, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x3F, 0xC6, 0xC0, 0xD6, 0x30, 0xC6,
+ 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD0, 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD0,
+ 0x01, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD2, 0x60, 0xA2, 0x23, 0xF1,
+ 0x28, 0xA2, 0x23, 0xF0, 0x28, 0xD2, 0x00, 0xD4, 0x00, 0xD3,
+ 0x00, 0xD5, 0x04, 0xE0, 0x06, 0x07, 0x38, 0x02, 0x26, 0x04,
+ 0x48, 0x03, 0x37, 0xB5, 0x52, 0xF5, 0x05, 0x05, 0x2F, 0x82,
+ 0x29, 0x84, 0x49, 0x83, 0x39, 0x25, 0x43, 0x24, 0x23, 0xD2,
+ 0x60, 0xA2, 0x23, 0xF2, 0x1C, 0xA2, 0x23, 0xF2, 0x0C, 0xD7,
+ 0x70, 0xC7, 0x0D, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6,
+ 0xBD, 0xF6, 0x7C, 0xD7, 0x0A, 0xC7, 0x0B, 0xA6, 0x41, 0xE0,
+ 0x06, 0x07, 0x1D, 0xD6, 0xBE, 0xF6, 0x7C, 0xD7, 0x51, 0xC7,
+ 0x0A, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6, 0xBF, 0xF6,
+ 0x7C, 0xD0, 0xD3, 0xC0, 0x01, 0xD1, 0xE0, 0xC1, 0x01, 0x32,
+ 0x04, 0xA2, 0x23, 0x82, 0x23, 0x33, 0x15, 0xA3, 0x33, 0x83,
+ 0x33, 0xD6, 0x80, 0x14, 0x26, 0x26, 0x44, 0x86, 0x6F, 0x18,
+ 0x46, 0xD6, 0xBA, 0xF6, 0x8C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x03, 0x29, 0x89, 0x99,
+ 0x9E, 0x98, 0x86, 0x19, 0x89, 0xA9, 0x97, 0x89, 0x92, 0xA8,
+ 0x90, 0xD6, 0x41, 0xC6, 0x24, 0xF8, 0x01, 0x05, 0x79, 0x06,
+ 0x69, 0xD8, 0xBB, 0xF8, 0x6C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x0C, 0x29, 0x89, 0x99,
+ 0x9E, 0xD6, 0x12, 0x28, 0x86, 0x98, 0x8E, 0x09, 0x89, 0xF9,
+ 0x0D, 0xA9, 0x9F, 0xA9, 0x9B, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x26, 0x96, 0x46, 0x87, 0xD7, 0x08, 0xD8, 0x0B, 0xD9,
+ 0x04, 0xE0, 0x06, 0x07, 0xBF, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x06, 0x29, 0x89, 0x99,
+ 0x9E, 0xB9, 0x9C, 0xF9, 0x0D, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x29, 0x96, 0x49, 0x87, 0xA7, 0x90, 0x26, 0x97, 0xD7,
+ 0x18, 0xD8, 0x1B, 0xD9, 0x05, 0xE0, 0x06, 0x07, 0xBF, 0xD5,
+ 0x0E, 0xC5, 0x70, 0xE0, 0x05, 0x07, 0xE7, 0x87, 0x74, 0x87,
+ 0x7F, 0x87, 0x7F, 0xD5, 0x01, 0xF7, 0x01, 0x05, 0xB9, 0xD5,
+ 0x02, 0xB7, 0x76, 0xF7, 0x01, 0x05, 0xB9, 0xD5, 0x00, 0xD6,
+ 0x0C, 0xD7, 0x0D, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x00, 0xD6, 0x0E, 0xD7, 0x0E, 0xD8, 0x0E, 0xE0, 0x05, 0x07,
+ 0xA3, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xBF, 0xED,
+ 0xD5, 0xD2, 0x00, 0xC2, 0x13, 0x33, 0x12, 0x04, 0x13, 0x15,
+ 0x13, 0x5C, 0xC0, 0x5D, 0x0D, 0x23, 0xCD, 0xF3, 0x05, 0x05,
+ 0xD4, 0xA0, 0x11, 0xF0, 0x02, 0xF0, 0x0E, 0xF0, 0x0E, 0xE0,
+ 0x00, 0x07, 0xF9, 0xE0, 0x00, 0x07, 0xF5, 0xF0, 0x0E, 0xEE,
+ 0x36, 0xF0, 0x0A, 0xFB, 0x08, 0xF9, 0x18, 0xBA, 0x9A, 0xB6,
+ 0x62, 0x1C, 0xB6, 0x1C, 0x8A, 0xF6, 0x18, 0xF8, 0x01, 0x06,
+ 0x1B, 0xFB, 0x01, 0x06, 0x4A, 0xB9, 0x92, 0xF9, 0x05, 0x05,
+ 0xEF, 0xDA, 0x13, 0xF8, 0x28, 0xFA, 0x84, 0xBB, 0xB2, 0xFB,
+ 0x01, 0x06, 0x4A, 0xBB, 0xB8, 0xFB, 0x01, 0x06, 0x1F, 0xD7,
+ 0x00, 0xC7, 0x94, 0xF7, 0x78, 0xD9, 0x00, 0xC9, 0xFF, 0x19,
+ 0x79, 0xF9, 0x01, 0x06, 0x4C, 0xD7, 0x00, 0xC7, 0xD0, 0xF9,
+ 0x78, 0xD8, 0x00, 0xF7, 0x8C, 0xF9, 0x05, 0x06, 0x1B, 0xD8,
+ 0x12, 0xF8, 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8,
+ 0x9C, 0xDA, 0x10, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8,
+ 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD8, 0x11, 0xF8,
+ 0x88, 0xF4, 0x8C, 0xD8, 0x00, 0xC8, 0x8C, 0xD9, 0x01, 0xF8,
+ 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9, 0x13, 0xFA, 0x98, 0xF2,
+ 0xAC, 0xEE, 0x0E, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x60, 0xF7,
+ 0x8C, 0xD8, 0x0E, 0xF8, 0x88, 0xF4, 0x8C, 0xD8, 0x0F, 0xF8,
+ 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8, 0x9C, 0xDA,
+ 0x0D, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8, 0x00, 0xC8,
+ 0x8C, 0xD9, 0x05, 0xF8, 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9,
+ 0x00, 0xC9, 0xAC, 0xD8, 0x0C, 0xFA, 0x80, 0xF9, 0xAC, 0xD9,
+ 0x00, 0xC9, 0x08, 0xD7, 0x00, 0xC7, 0x34, 0xF7, 0x9C, 0xC9,
+ 0x38, 0xD7, 0x00, 0xC7, 0x44, 0xF7, 0x9C, 0xC9, 0x20, 0xD7,
+ 0x00, 0xC7, 0x48, 0xF7, 0x9C, 0xD8, 0x15, 0xF2, 0x8C, 0xF0,
+ 0x06, 0xEE, 0x4B, 0xF0, 0x0A, 0xD7, 0x15, 0xD8, 0x00, 0xC8,
+ 0x30, 0xF8, 0x7C, 0xD7, 0x00, 0xC7, 0x98, 0xF6, 0x78, 0xD8,
+ 0x1A, 0xF8, 0x6C, 0xD8, 0x00, 0xC8, 0xAC, 0xDA, 0x20, 0xF8,
+ 0xAC, 0xD9, 0x20, 0xDA, 0x0A, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x14, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x11, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x15, 0xCA,
+ 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x30, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x00, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x94, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x78, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x98, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x88, 0xCA, 0xF9, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA,
+ 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDA, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDB, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x64, 0xCA, 0xCB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xAC, 0xCA, 0xFB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xD8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x07, 0xCA, 0xC8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA, 0x26, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA,
+ 0x26, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA, 0xF6, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x15, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x67, 0xCA, 0x17, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x01, 0xCA,
+ 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x72, 0xCA, 0xB7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x01, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x06, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x42, 0xCA, 0xE8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xEC, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x11, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA, 0xEF, 0xF9, 0xAC, 0xF7,
+ 0x7C, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD7,
+ 0x14, 0xF7, 0x11, 0xEE, 0x4A, 0xF0, 0x0E, 0x44, 0xDC, 0xF4,
+ 0x05, 0x07, 0x13, 0xD4, 0x01, 0x7F, 0xC4, 0x7C, 0x1C, 0x13,
+ 0x43, 0x61, 0x13, 0xA2, 0x31, 0x6C, 0xCD, 0xB2, 0x22, 0xA4,
+ 0x20, 0xF4, 0x05, 0x07, 0x06, 0xA1, 0x01, 0xD4, 0x0F, 0x14,
+ 0x43, 0x60, 0x04, 0x70, 0x04, 0xA4, 0x33, 0x71, 0x14, 0xEF,
+ 0x15, 0xA1, 0x01, 0xD0, 0x00, 0xF0, 0x02, 0xD0, 0x01, 0xC0,
+ 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD1, 0x0F, 0x70, 0x21, 0xF0,
+ 0x02, 0x83, 0x03, 0xA5, 0x31, 0xD4, 0x58, 0xC4, 0x4F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x22, 0x14, 0x34, 0x15, 0x85, 0x3F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x82, 0x29, 0x82, 0x29, 0x02, 0x24, 0xD1,
+ 0x22, 0x11, 0x12, 0xD6, 0x00, 0x4F, 0xE1, 0xD8, 0x01, 0x17,
+ 0x87, 0x21, 0x17, 0xD6, 0x10, 0x4F, 0xE1, 0xF7, 0x05, 0x07,
+ 0x37, 0xD1, 0x1F, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x02, 0xE0,
+ 0x00, 0x07, 0x45, 0xD1, 0x00, 0xD2, 0x01, 0xE0, 0x01, 0x07,
+ 0x45, 0xD2, 0x01, 0xD3, 0x02, 0xE0, 0x02, 0x07, 0x45, 0xF0,
+ 0x02, 0xD3, 0x00, 0xC3, 0xC0, 0xD4, 0x00, 0xD5, 0x0F, 0xD6,
+ 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xD3, 0xC6, 0xC3, 0x10, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0xC6, 0xC3, 0x10, 0x87, 0x1E, 0x87,
+ 0x76, 0x1F, 0xF7, 0x87, 0x0E, 0x87, 0x7C, 0x1F, 0xF7, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3, 0x09, 0xD3,
+ 0x01, 0xD4, 0x1F, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07,
+ 0xBF, 0xE0, 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3,
+ 0x09, 0xD3, 0x00, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0xD3,
+ 0xFF, 0xC3, 0x03, 0x2C, 0x4F, 0xD3, 0x00, 0xD4, 0x1F, 0xD5,
+ 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0, 0x03, 0x07,
+ 0xA8, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x2C, 0xE0, 0x00, 0x07,
+ 0xD4, 0xF0, 0x02, 0xA4, 0x43, 0xF4, 0x0D, 0xD7, 0x01, 0x2D,
+ 0xCB, 0xD6, 0x10, 0x5E, 0x0E, 0xF6, 0x01, 0x07, 0x96, 0xD6,
+ 0x10, 0x16, 0x06, 0x67, 0x76, 0x65, 0x56, 0x1F, 0xF7, 0x3F,
+ 0xF5, 0xEF, 0x9A, 0x67, 0x70, 0x65, 0x50, 0x1E, 0xE7, 0x3E,
+ 0xE5, 0x17, 0x10, 0x55, 0xDC, 0x85, 0x52, 0xB5, 0x52, 0x00,
+ 0x05, 0x84, 0x43, 0xF7, 0x05, 0x07, 0x89, 0xF0, 0x02, 0xE0,
+ 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xF0, 0x02, 0xD0,
+ 0x60, 0xF1, 0x08, 0xD6, 0x00, 0xC6, 0xF0, 0xD3, 0x01, 0xD2,
+ 0x10, 0xA0, 0x03, 0xF7, 0x08, 0xA0, 0x03, 0xF8, 0x08, 0x24,
+ 0xDF, 0xF4, 0x01, 0x07, 0xB7, 0xE0, 0x06, 0x07, 0xD8, 0xA6,
+ 0x63, 0x81, 0x13, 0xB2, 0x22, 0xF2, 0x05, 0x07, 0xAE, 0xD0,
+ 0x60, 0xF0, 0x1C, 0xF0, 0x02, 0xAA, 0x01, 0xA6, 0x11, 0xA7,
+ 0x21, 0xD4, 0x60, 0xF5, 0x48, 0xDB, 0x01, 0x6B, 0xB3, 0x15,
+ 0x5F, 0xF4, 0x5C, 0xA4, 0x43, 0x8B, 0x32, 0x04, 0x4B, 0xF8,
+ 0x48, 0xA4, 0x43, 0xF9, 0x48, 0xE0, 0x06, 0x07, 0x87, 0xF4,
+ 0x9C, 0xB4, 0x42, 0xF4, 0x8C, 0xF0, 0x02, 0xC0, 0x80, 0xE0,
+ 0x00, 0x07, 0xD8, 0xF0, 0x02, 0xF0, 0x0A, 0xD3, 0x00, 0xC3,
+ 0x9C, 0xF3, 0x1C, 0xC3, 0xA0, 0xF3, 0x2C, 0xC3, 0xA4, 0xF3,
+ 0x0C, 0xD3, 0x00, 0xC3, 0xA8, 0xF3, 0x38, 0xF3, 0x01, 0x07,
+ 0xE0, 0xF0, 0x06, 0xF0, 0x02, 0xF0, 0x0A, 0xD2, 0x00, 0xC2,
+ 0xA4, 0xF2, 0x0C, 0xC2, 0xA8, 0xF1, 0x28, 0xF1, 0x01, 0x07,
+ 0xEC, 0xC2, 0x9C, 0xF1, 0x28, 0xC2, 0xA0, 0xF2, 0x28, 0xF0,
+ 0x06, 0xF0, 0x02, 0xD1, 0x00, 0xC1, 0x98, 0xF1, 0x0C, 0xF0,
+ 0x02, 0xD1, 0x00, 0xC1, 0x94, 0xF0, 0x18, 0xC1, 0x98, 0xF1,
+ 0x18, 0xF0, 0x02, 0xED, 0xDC, 0x90, 0x00, 0x88, 0x00, 0x30,
+ 0x00, 0x34, 0x00, 0x24, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0xDD, 0x3D, 0xD7, 0x00, 0x15, 0x00, 0x1A, 0x0A, 0x19, 0x00,
+ 0x1E, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x76, 0x01, 0x38, 0x02,
+ 0xC0, 0x02, 0x30, 0x04, 0x20, 0x03, 0x60, 0x06, 0x5C, 0x04,
+ 0xBC, 0x09, 0x60, 0x07, 0x9C, 0x0D, 0x70, 0xFF, 0xFF, 0x7A,
+ 0xF5, 0x10, 0xAE, 0x70, 0xA5, 0x22, 0x7C, 0x00, 0x00, 0x00,
+ 0x00, 0x1E, 0x17, 0x00, 0x04, 0x2C, 0x5F, 0x00, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x27, 0xC5, 0x21, 0xF0, 0x16, 0x27, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x67, 0x42, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x1C, 0xFE,
+ 0xFE, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x30, 0x00, 0x0C, 0x08, 0x30, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0C, 0x00,
+ 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x50, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0A, 0x03, 0xA9, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0F, 0x00,
+ 0x08, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x64, /* WAIT 100[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFF, 0x00, 0x00, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x01, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x02, 0xB8, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x00, 0xE6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x08, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xE6, 0xB2, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2C, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xE4, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x40, 0x12, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x96, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xE1, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCF, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x2C, 0xD3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x60, 0x03, 0x0C, 0xCF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0D, 0xD3, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x54, 0xD3, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xAA, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xCE, 0xA1, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x04, 0xC6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0F, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x1A, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xDE, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDC, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x68, 0xD0, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x13, 0xF1, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xB0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x11, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x1D, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x08, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x29, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x29, 0xE9, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x3C, 0xD3, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xD3, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x9A, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xBD, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x05, 0xAA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x00, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x28, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xB2, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x5E, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB0, 0xD5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x21, 0x03, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x53, 0x24, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x11, 0x34, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x93, 0x11, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x08, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x53, 0xB3, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x01, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x06, 0x5F, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x09, 0x5C, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xF4, 0xF3, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x62, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF6, 0xD0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x11, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x02, 0x7E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x6E, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x89, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x01, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x1A, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xFE, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x3E, 0xC2, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x09, 0xD6, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x68, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x87, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x8E, 0xF3, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x23, 0xA4, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x7C, 0xD3, 0x6C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xEF, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x62, 0xD2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xAA, 0xF3, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xFC, 0xC4, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xF4, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x8F, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x2C, 0x93, 0x2B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x01, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x00, 0xF6, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x00, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xBD, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x7D, 0xCD, 0xB2, 0x1E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x02, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xDB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xDA, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xCF, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xCC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xC9, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xBE, 0x80, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0B, 0xF0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xF0, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x02, 0xD1, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0x92, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3C, 0xDE, 0x82, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3C, 0xCE, 0xEA, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x36, 0xC0, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x02, 0xD0, 0xD4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x0B, 0xEA, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x02, 0xD0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x40, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x80, 0x1A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0B, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x02, 0xD1, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x05, 0xC7, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x71, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x74, 0xD7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x10, 0x15, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x01, 0x01, 0xE9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x46, 0xE9, 0xEC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0xC7, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x45, 0x8B, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0xF7, 0x84, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x64, 0xD7, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x57, 0x82, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0B, 0x02, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x40, 0x5F, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x23, 0xA3, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x23, 0xD3, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x38, 0xA3, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x23, 0x70, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xF4, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x57, 0xF0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x08, 0xF9, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0x9A, 0xB6, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xB6, 0x1C, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x18, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x3C, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x6B, 0xB9, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x02, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x13, 0xF8, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x84, 0xBB, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x6B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBB, 0xB8, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x40, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0xD0, 0xF9, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x02, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x12, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x8C, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x10, 0xFA, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xF8, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x64, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x11, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x8C, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x8C, 0xD9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD9, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x98, 0xF2, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x2F, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xD8, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF4, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0F, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x8C, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x0D, 0xFA, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xF8, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xC8, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x05, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0C, 0xFA, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xAC, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x08, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x34, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x38, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x44, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x20, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x48, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x15, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xEA, 0x6C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xB3, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x08, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x7C, 0xA0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x08, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x7C, 0xA0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x08, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x7D, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x6E, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xC6, 0xB0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xF0, 0xD6, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xC7, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x09, 0xD7, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD1, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x8E, 0xA8, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x38, 0xA7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x38, 0xA3, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1A, 0x85, 0xB8, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0x8A, 0xAA, 0x63,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xA5, 0x29, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x02, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x02, 0xAA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xA2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0xD9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x92, 0xA1, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xA2, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0xBB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x51, 0xF7, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x11, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB8, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x12, 0x67, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xBB, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x39, 0xEA, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x25, 0x77, 0xA2, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0x18, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x02, 0x44, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x12, 0x43, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x03, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0xD9, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x3C, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x08, 0xD0, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x04, 0x40, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x08, 0x03, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x3C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x3C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x6E, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x7E, 0xD1, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x04, 0x1F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x6E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0x7E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x9F, 0xD3, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x03, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x10, 0xF2, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x35, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x05, 0x02, 0xE4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD2, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x0C, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x45, 0x84, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x28, 0xF8, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x23, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x11, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x04, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x0F, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x1F, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF6, 0xC9, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x09, 0xB9, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xF0, 0xA9, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x11, 0xB3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x38, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB8, 0x44, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x79, 0x5E, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7A, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4F, 0xA9, 0x17, 0x7F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x40, 0x27, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x79, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x1B, 0xF2, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x91, 0xEA, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0x41, 0x10, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x13, 0x27, 0x7F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xF0, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xEB, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x04, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0x18, 0xFA, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xF0, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x04, 0xDB, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xB3, 0x19, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x91, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x6B, 0x4B, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xA5, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0x5D, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x92, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x29, 0xD1, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0x29, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x1C, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF8, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xA2, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x02, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x5E, 0x99, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0x5E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB7, 0x76, 0xF7, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x55, 0xF6, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x55, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x89, 0x5E, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0xA2, 0x1B, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x49, 0xBA, 0x9A, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x9A, 0xF9, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x89, 0x99, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xB3, 0xF7, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0x4B, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xA7, 0xEB, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x04, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x03, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0x5D, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x92, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x29, 0xD0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0x29, 0xF7, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF8, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x0D, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xA2, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x12, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x96, 0x99, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x55, 0xF6, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x55, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x89, 0xB5, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x58, 0x16, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x69, 0xBA, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1B, 0x96, 0x49, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0x91, 0x29, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x89, 0x99, 0x17,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xB3, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x1C, 0xDB, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x14, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB3, 0xFA, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA6, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xA7, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x21, 0x84, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0x22, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x31, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x53, 0x5E, 0xD2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD0, 0x1F, 0xFA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x03, 0xAD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x25, 0x54, 0xF1, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x32, 0x1E, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x3A, 0xA9, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x9E, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0x1D, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x28, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x28, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x28, 0x83, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x66, 0x33, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x36, 0xB6, 0x83, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0xB3, 0x5C, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0xCE, 0xB9, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x03, 0xD7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xF2, 0xC6, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0xCA, 0x1F, 0xF6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x03, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x73, 0x23, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xC0, 0xB2, 0x2E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x28, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xE8, 0x23, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x03, 0xE8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x70, 0x3B, 0x4B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xBC, 0xAB, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x10, 0x4E, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x1A, 0xFA, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xEF, 0xF2, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xF4, 0xD7, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x70, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD7, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0xD7, 0x24, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x8F, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x28, 0xD7, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x77, 0xF8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x42, 0x80, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x43, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x80, 0xD6, 0x9E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x98, 0x21, 0x22, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x01, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x10, 0xF7, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x07, 0x42, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x27, 0xF6, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x69, 0xF6, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x69, 0xF6, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x69, 0xF6, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x08, 0xC7, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x83, 0xA6, 0x63,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x8C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xBC, 0xF6, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0F, 0xC3, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0xC4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x38, 0xC5, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xDA, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xC5, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xD0, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xD6, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xC4, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x09, 0xD7, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xFE, 0xC4, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD2, 0xE3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x22, 0xD3, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x0B, 0xF1, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x1F, 0xA4, 0x4B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0x32, 0x83, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0xEC, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x08, 0xC4, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0x85, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0x35, 0x83, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x11, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD2, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD7, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4F, 0xF3, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xAA, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xD4, 0x2A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0xC3, 0xD7, 0x1E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4F, 0xF3, 0x87, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD6, 0xED,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4F, 0x3C, 0xD4, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x74, 0xD5, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x74, 0x94, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0x94, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x05, 0x04, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0x97, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x04, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x36, 0xD5, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x11, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0x3F, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x55, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0x97, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x04, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x3C, 0x3F, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x03, 0xD6, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x8D, 0xF4, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0xAE, 0x08, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x43, 0x84, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x84, 0xF7, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x52, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xA7, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x06, 0xD6, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEC, 0xB2, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0x87, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0E, 0xD6, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x05, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xB2, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x28, 0x83, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x36, 0x94, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x34, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xAC, 0xD4, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xF8, 0xD4, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x74, 0xD5, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xDA, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xA7, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x75, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0x86, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x00, 0xC4, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0xD8, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x86, 0xF5, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xF6, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x11, 0x83, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD2, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x28, 0x16, 0x50,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0xD0, 0x40, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x2F, 0xA3, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0x16, 0x50,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x0D, 0x40, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x25, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x28, 0x4D, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x04, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x01, 0x86, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x7D, 0xE9, 0xD6, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x65, 0x74, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x73, 0x35, 0x70, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x00, 0x23, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x44, 0x80, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x3F, 0x84, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x40, 0x16, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x53, 0x24, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x09, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x40, 0x82, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x36, 0x04, 0x5E, 0xE3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x62, 0xB6, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x26, 0x62, 0x10, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x23, 0xB5, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x04, 0xF1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x72, 0x36, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x01, 0x06, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x6F, 0x80, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x11, 0xD5, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x20, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xD3, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0x67, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0x87, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x06, 0xD6, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x01, 0xD5, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xFC, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0x87, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x03, 0xD6, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD5, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x58, 0xB2, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x05, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB7, 0x14, 0xD5, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xB0, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xC2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x37, 0x12, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xB4, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xD2, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0x12, 0xA7, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0xD6, 0xCF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x27, 0xF5, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x70, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x85, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x75, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xD8, 0x2E, 0xE8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0F, 0x4C, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x26, 0x64, 0x94, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x25, 0x54, 0x13, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x36, 0x1F, 0xE9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x95, 0x21, 0x1D, 0xF9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x05, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x50, 0x22, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0x13, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x39, 0x13, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xED, 0x2C, 0x10, 0xED,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x8B, 0xF5, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD4, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x48, 0xD5, 0x5E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x12, 0x51, 0xD5, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x02, 0x11, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x0F, 0xD5, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x3D, 0x1E, 0xE5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xD5, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x68, 0xD3, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0xB0, 0xD4, 0xBF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x48, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x6C, 0xD3, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x90, 0xD4, 0xBE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x48, 0xD4, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x3C, 0xD4, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x2C, 0xD3, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x40, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0x2D, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x92, 0x0B, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x34, 0x16, 0x6B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x19, 0x2F, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x08, 0xD7, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x47, 0xAB, 0x07, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x73, 0x0A, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA3, 0xD2, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0xD5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x5A, 0x85, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x52, 0xAA, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA5, 0x5C, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x7A, 0x2C, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x85, 0xF2, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x05, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xF2, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x80, 0x02, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x32, 0x09, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x52, 0x8A, 0xA4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA0, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xA5, 0xA9, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0x89, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x89, 0xDB, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCB, 0x01, 0x46, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x62, 0x06, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x8C, 0xFA, 0x6C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x16,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x0C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD0, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xC1, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x06, 0xC2, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xC3, 0xFB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x3C, 0xD3, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xF8, 0x4E, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0xDE, 0xD2, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x40, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x82, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x2D, 0xD8, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x01, 0x15, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x01, 0x05, 0xCF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x39, 0xC8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x82, 0xF5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xCF, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xD8, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x73, 0x38, 0xD8, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x64, 0x48, 0x84, 0x4B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x34, 0x18, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x05, 0xE0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB8, 0x78, 0xB1, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x05, 0xE0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x28, 0x80, 0xF8, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xB3, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xFF, 0xF2, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xD1, 0x2B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0E, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xEC, 0xD3, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD1, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0x81, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x02, 0x2D, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x82, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xD3, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0xFE, 0xF3, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x45, 0xEF, 0x2D, 0xC9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2C, 0xC5, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x3A, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xD5, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD3, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x28, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x3D, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x28, 0xD5, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD8, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x06, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x5E, 0xC9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x0D, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x31, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x54, 0xDA, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xA8, 0xD0, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0x2B, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x9B, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xEE, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x83, 0xF5, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x5B, 0xFA, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x15, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x54, 0xDA, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0xA8, 0xDA, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x06, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x31, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xEE, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xA8, 0xDB, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x47, 0xD3, 0x46, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0x50,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x01, 0x06, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0xB9, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xBC, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x3A, 0xFB, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x3B, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x38, 0x16, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0x60, 0xFB, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x5B, 0xF6, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x84, 0xF4, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0x29, 0xDB, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xAB, 0xA9, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x06, 0x6A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0xB4, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x6E, 0xDB, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x70, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0xC0, 0xFB, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x70, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x70, 0x46, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x85, 0xF9, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x69, 0x9A, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x6A, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x05, 0x06, 0x7E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x75, 0x17, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x7F, 0x17, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x95, 0x09, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x8C, 0xFA, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x2F, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0xA2, 0x19, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xCA, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA9, 0x47, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x08, 0x09, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x99, 0x89, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x97, 0xD9, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x5C, 0xD9, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x8C, 0xD7, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x06, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x08, 0x09, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x99, 0x89, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x96, 0xD9, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x5C, 0xA7, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x87, 0xF7, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x09, 0x77, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0xB6, 0x17, 0x7C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1D, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x82, 0xF6, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x07, 0x84, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x06, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x41, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0xBC, 0x13, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD1, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD0, 0x16,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x12, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD0, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x02, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xFE, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xAF, 0xD5, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x01, 0x5F, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x82, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x08, 0xD6, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x80, 0xC7, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0x3F, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x33, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xD7, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x78, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xFD, 0xD6, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x0B, 0xD8, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0x3E, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xF9, 0xD8, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x60, 0xC6, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0x3E, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xF9, 0xD8, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x0A, 0xD7, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x21, 0xA9, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x75, 0xA4, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x82, 0x4D, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0x29, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xAB, 0xAB, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0xB9, 0xD8, 0x19,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x08, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x82, 0x18, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x85, 0xD6, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x30, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x1F, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xEE, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xD6, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x42, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xEF, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0F, 0xD6, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x42, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xD6, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xEE, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x55, 0xD9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x92, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4B, 0x8A, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x03, 0x2F, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0xB6, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x3B, 0xDA, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2E, 0x2A, 0xFA, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x3B, 0xDA, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x04, 0xEF, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xCA, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x54, 0x09, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xDA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0xA0, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x7B, 0x97, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0x6B, 0x97,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x51, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x00, 0xC4, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x10, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x08, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x08, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xDF, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x60, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xA4, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x81, 0x13, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x07, 0x56,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD3, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x38, 0x85, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0x66, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0xF3, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0x03, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x38, 0xA9, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x0D, 0xD5, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x1D, 0x88, 0x19,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0x27, 0xD6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x66, 0x65, 0x67, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0x3C, 0xCB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x85, 0x57, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x72, 0xB7, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x57, 0x89, 0x93,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x07, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x4C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x80, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x9C, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA0, 0xF3, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA4, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xC3, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x38, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x93, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0xBB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x4C, 0xD2, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x3C, 0xD3, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x02, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xA7, 0xA2, 0x61,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x80, 0xC3, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x09, 0xC1, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xD1, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0xFD, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD2, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDE, 0x80, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2C, 0xCD, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x18, 0xC1, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA4, 0xF2, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA8, 0xF1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x07, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x9C, 0xF1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA0, 0xF2, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x08, 0xC2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0B, 0xC3, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x48, 0x00, 0x24,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x85, 0xF5, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x26, 0x05, 0x96, 0x6E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x82, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xD2, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD2, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x28, 0xD6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x20, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x87, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x7C, 0xA2, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x81, 0xF8, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x78, 0x10, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x71, 0xA1, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD4, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0E, 0xD4, 0x63, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0F, 0xF4, 0x11, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x14, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x05, 0x90, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x00, 0x30, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x34, 0x00, 0x24, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x6C, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x02, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x39, 0x9A, 0x00, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x24, 0x08, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x28, 0x00, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x12, 0x39,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x0C, 0x80, 0xF0, 0xF7, 0x3E, 0x75, 0xC1, 0x8A, 0xE4, 0x02,
+ 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x05, 0x0F, 0xEE, 0xAA, 0x5F, 0xEA, 0x90,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x06, 0x00, 0x0A, 0x4D, 0x8C, 0xF2, 0xD8, 0xCF, 0x30, 0x79,
+ 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0B, 0x0D, 0xA4, 0x6C,
+ 0x00, 0x10, /* Length = 16 bytes */
+ 0x0A, 0x01, 0x67, 0x24, 0x40, 0x08, 0xC3, 0x20, 0x10, 0x64,
+ 0x3C, 0xFA, 0xF7, 0xE1, 0x0C, 0x2C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x09, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x10, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x16, 0x12,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1F, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x01, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x10,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 9146 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init = {
+ XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init_SEQUENCE
+};
+
+unsigned char XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init_SEQUENCE[9032] = {
+
+ 0x00, 0x00, /* RESET */
+ 0x0D, 0x53, /* Length = 3411 bytes */
+ 0x2A, 0x02, 0x19, 0xE0, 0x00, 0x07, 0xF5, 0xD4, 0x00, 0xC4,
+ 0xF0, 0xD6, 0xAE, 0xC6, 0x10, 0xD5, 0xF5, 0xC5, 0x7A, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x01, 0xC4, 0xF0, 0xD6, 0x51, 0xC6,
+ 0x02, 0xD5, 0x99, 0xC5, 0xA3, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x03, 0xC4, 0xF0, 0xD6, 0x04, 0xD5, 0x87, 0xC5, 0x06, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x04, 0xC4, 0xF0, 0xD6, 0x00, 0xD5,
+ 0x1F, 0xC5, 0x2C, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0x06, 0xD5, 0x00, 0xC5, 0x40, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x80, 0xD5,
+ 0xCD, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x07, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0xC0, 0xD5, 0x05, 0xC5, 0x2F, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x09, 0xC4, 0xF0, 0xD6, 0xC0, 0xC6,
+ 0x42, 0xD5, 0x67, 0xC5, 0x3C, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x0F, 0xC4, 0xF0, 0xD6, 0x3F, 0xC6, 0xC0, 0xD5, 0x11, 0xC5,
+ 0x11, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6,
+ 0x00, 0xC6, 0x24, 0xD5, 0x0E, 0xC5, 0x2E, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4,
+ 0x70, 0xE0, 0x04, 0x07, 0xE7, 0x86, 0x69, 0x86, 0x69, 0xA2,
+ 0x61, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x00, 0xC6, 0x24, 0xD5,
+ 0xC0, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4,
+ 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07,
+ 0xE7, 0x86, 0x69, 0x86, 0x69, 0x12, 0x62, 0x98, 0x21, 0xF8,
+ 0x05, 0x02, 0x88, 0xF2, 0x0D, 0xD8, 0x80, 0x4C, 0x28, 0xF8,
+ 0x05, 0x02, 0x94, 0xE0, 0x00, 0x07, 0x82, 0xD4, 0x0E, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xD5, 0x00, 0xE0, 0x04, 0x07, 0xD8, 0xD0,
+ 0x01, 0xC0, 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD3, 0x0F, 0x71,
+ 0x23, 0xF1, 0x01, 0x04, 0x7F, 0xD0, 0x60, 0xD1, 0x00, 0xC1,
+ 0x40, 0xD2, 0x0B, 0x00, 0x02, 0xF0, 0x1C, 0xA0, 0x03, 0xD1,
+ 0x00, 0xF0, 0x1C, 0xD0, 0x01, 0xD1, 0x03, 0xD2, 0x03, 0xD3,
+ 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD4, 0x9E, 0xA4, 0x45, 0xD5,
+ 0x10, 0xC5, 0x01, 0xF4, 0x5C, 0xD5, 0x40, 0xC5, 0x0B, 0xA4,
+ 0x43, 0xF4, 0x5C, 0xD3, 0x00, 0xC3, 0xF0, 0xD5, 0xD6, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x19, 0xD4, 0x01, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x03, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x04, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x05, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x06, 0xC3, 0xF0, 0xD5,
+ 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x07, 0xC3,
+ 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x09, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x0E, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x0F, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD0,
+ 0xFF, 0xC0, 0x03, 0xD1, 0x54, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x99, 0xD4, 0x01, 0xC4, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xC5, 0x19, 0xD4, 0x01, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x00, 0xC5, 0x99, 0xD4, 0x01, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x40, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5,
+ 0x19, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5,
+ 0x99, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4,
+ 0x02, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x02, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x23, 0xC5, 0x19, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x23, 0xC5, 0x99, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5,
+ 0x19, 0xD4, 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4,
+ 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x20, 0xC5, 0x19, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5,
+ 0x99, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x05, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x20, 0xC5, 0x99, 0xD4, 0x05, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x06, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x06, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xD4,
+ 0x00, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xEC,
+ 0xAF, 0xD1, 0x54, 0xD2, 0xA0, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x90, 0xC2, 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x44, 0xC2,
+ 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0xDC, 0xC2, 0x02, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2, 0x02, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0x58, 0xC2, 0x04, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x2C, 0xC2, 0x03, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2,
+ 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x88, 0xC2, 0x04, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x04, 0xC2, 0x09, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0xD0, 0xC2, 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x20, 0xC2, 0x0D, 0xF1, 0x2C, 0xA1, 0x13, 0xD5, 0x0E, 0xD6,
+ 0x00, 0xD7, 0x03, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x0F, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xA3, 0xD6,
+ 0x0E, 0xD7, 0x0E, 0xE0, 0x05, 0x07, 0xA3, 0xD5, 0xFF, 0xC5,
+ 0xFF, 0xF5, 0x09, 0xD5, 0x01, 0xC5, 0x80, 0xD6, 0x02, 0xE0,
+ 0x05, 0x07, 0xD8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5, 0x01, 0xC5,
+ 0x01, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87,
+ 0x7C, 0xD8, 0xBC, 0xF8, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD0, 0x00, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0,
+ 0x00, 0x07, 0xBF, 0xD0, 0x01, 0xD1, 0x07, 0xD2, 0x08, 0xD3,
+ 0x00, 0xE0, 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4,
+ 0x00, 0xC4, 0xA0, 0xF4, 0x09, 0xD0, 0x00, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07,
+ 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07, 0xD8, 0xC6,
+ 0xC0, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4,
+ 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07, 0xE7, 0xDA,
+ 0xFF, 0x27, 0x6E, 0x2D, 0x5A, 0x88, 0x5F, 0x88, 0x83, 0x87,
+ 0x78, 0xDA, 0x8E, 0xAA, 0xA7, 0xFA, 0x7C, 0xAA, 0xA9, 0xFA,
+ 0x8C, 0xAA, 0xA9, 0xFA, 0x9C, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x3F, 0xC6, 0xC0, 0xD6, 0x30, 0xC6,
+ 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD0, 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD0,
+ 0x01, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD2, 0x60, 0xA2, 0x23, 0xF1,
+ 0x28, 0xA2, 0x23, 0xF0, 0x28, 0xD2, 0x00, 0xD4, 0x00, 0xD3,
+ 0x00, 0xD5, 0x04, 0xE0, 0x06, 0x07, 0x38, 0x02, 0x26, 0x04,
+ 0x48, 0x03, 0x37, 0xB5, 0x52, 0xF5, 0x05, 0x05, 0x2F, 0x82,
+ 0x29, 0x84, 0x49, 0x83, 0x39, 0x25, 0x43, 0x24, 0x23, 0xD2,
+ 0x60, 0xA2, 0x23, 0xF2, 0x1C, 0xA2, 0x23, 0xF2, 0x0C, 0xD7,
+ 0x70, 0xC7, 0x0D, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6,
+ 0xBD, 0xF6, 0x7C, 0xD7, 0x0A, 0xC7, 0x0B, 0xA6, 0x41, 0xE0,
+ 0x06, 0x07, 0x1D, 0xD6, 0xBE, 0xF6, 0x7C, 0xD7, 0x51, 0xC7,
+ 0x0A, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6, 0xBF, 0xF6,
+ 0x7C, 0xD0, 0xD3, 0xC0, 0x01, 0xD1, 0xE0, 0xC1, 0x01, 0x32,
+ 0x04, 0xA2, 0x23, 0x82, 0x23, 0x33, 0x15, 0xA3, 0x33, 0x83,
+ 0x33, 0xD6, 0x80, 0x14, 0x26, 0x26, 0x44, 0x86, 0x6F, 0x18,
+ 0x46, 0xD6, 0xBA, 0xF6, 0x8C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x03, 0x29, 0x89, 0x99,
+ 0x9E, 0x98, 0x86, 0x19, 0x89, 0xA9, 0x97, 0x89, 0x92, 0xA8,
+ 0x90, 0xD6, 0x41, 0xC6, 0x24, 0xF8, 0x01, 0x05, 0x79, 0x06,
+ 0x69, 0xD8, 0xBB, 0xF8, 0x6C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x0C, 0x29, 0x89, 0x99,
+ 0x9E, 0xD6, 0x12, 0x28, 0x86, 0x98, 0x8E, 0x09, 0x89, 0xF9,
+ 0x0D, 0xA9, 0x9F, 0xA9, 0x9B, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x26, 0x96, 0x46, 0x87, 0xD7, 0x08, 0xD8, 0x0B, 0xD9,
+ 0x04, 0xE0, 0x06, 0x07, 0xBF, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x06, 0x29, 0x89, 0x99,
+ 0x9E, 0xB9, 0x9C, 0xF9, 0x0D, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x29, 0x96, 0x49, 0x87, 0xA7, 0x90, 0x26, 0x97, 0xD7,
+ 0x18, 0xD8, 0x1B, 0xD9, 0x05, 0xE0, 0x06, 0x07, 0xBF, 0xD5,
+ 0x0E, 0xC5, 0x70, 0xE0, 0x05, 0x07, 0xE7, 0x87, 0x74, 0x87,
+ 0x7F, 0x87, 0x7F, 0xD5, 0x01, 0xF7, 0x01, 0x05, 0xB9, 0xD5,
+ 0x02, 0xB7, 0x76, 0xF7, 0x01, 0x05, 0xB9, 0xD5, 0x00, 0xD6,
+ 0x0C, 0xD7, 0x0D, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x00, 0xD6, 0x0E, 0xD7, 0x0E, 0xD8, 0x0E, 0xE0, 0x05, 0x07,
+ 0xA3, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xBF, 0xED,
+ 0xD5, 0xD2, 0x00, 0xC2, 0x13, 0x33, 0x12, 0x04, 0x13, 0x15,
+ 0x13, 0x5C, 0xC0, 0x5D, 0x0D, 0x23, 0xCD, 0xF3, 0x05, 0x05,
+ 0xD4, 0xA0, 0x11, 0xF0, 0x02, 0xF0, 0x0E, 0xF0, 0x0E, 0xE0,
+ 0x00, 0x07, 0xF9, 0xE0, 0x00, 0x07, 0xF5, 0xF0, 0x0E, 0xEE,
+ 0x36, 0xF0, 0x0A, 0xFB, 0x08, 0xF9, 0x18, 0xBA, 0x9A, 0xB6,
+ 0x62, 0x1C, 0xB6, 0x1C, 0x8A, 0xF6, 0x18, 0xF8, 0x01, 0x06,
+ 0x1B, 0xFB, 0x01, 0x06, 0x4A, 0xB9, 0x92, 0xF9, 0x05, 0x05,
+ 0xEF, 0xDA, 0x13, 0xF8, 0x28, 0xFA, 0x84, 0xBB, 0xB2, 0xFB,
+ 0x01, 0x06, 0x4A, 0xBB, 0xB8, 0xFB, 0x01, 0x06, 0x1F, 0xD7,
+ 0x00, 0xC7, 0x94, 0xF7, 0x78, 0xD9, 0x00, 0xC9, 0xFF, 0x19,
+ 0x79, 0xF9, 0x01, 0x06, 0x4C, 0xD7, 0x00, 0xC7, 0xD0, 0xF9,
+ 0x78, 0xD8, 0x00, 0xF7, 0x8C, 0xF9, 0x05, 0x06, 0x1B, 0xD8,
+ 0x12, 0xF8, 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8,
+ 0x9C, 0xDA, 0x10, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8,
+ 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD8, 0x11, 0xF8,
+ 0x88, 0xF4, 0x8C, 0xD8, 0x00, 0xC8, 0x8C, 0xD9, 0x01, 0xF8,
+ 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9, 0x13, 0xFA, 0x98, 0xF2,
+ 0xAC, 0xEE, 0x0E, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x60, 0xF7,
+ 0x8C, 0xD8, 0x0E, 0xF8, 0x88, 0xF4, 0x8C, 0xD8, 0x0F, 0xF8,
+ 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8, 0x9C, 0xDA,
+ 0x0D, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8, 0x00, 0xC8,
+ 0x8C, 0xD9, 0x05, 0xF8, 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9,
+ 0x00, 0xC9, 0xAC, 0xD8, 0x0C, 0xFA, 0x80, 0xF9, 0xAC, 0xD9,
+ 0x00, 0xC9, 0x08, 0xD7, 0x00, 0xC7, 0x34, 0xF7, 0x9C, 0xC9,
+ 0x38, 0xD7, 0x00, 0xC7, 0x44, 0xF7, 0x9C, 0xC9, 0x20, 0xD7,
+ 0x00, 0xC7, 0x48, 0xF7, 0x9C, 0xD8, 0x15, 0xF2, 0x8C, 0xF0,
+ 0x06, 0xEE, 0x4B, 0xF0, 0x0A, 0xD7, 0x15, 0xD8, 0x00, 0xC8,
+ 0x30, 0xF8, 0x7C, 0xD7, 0x00, 0xC7, 0x98, 0xF6, 0x78, 0xD8,
+ 0x1A, 0xF8, 0x6C, 0xD8, 0x00, 0xC8, 0xAC, 0xDA, 0x20, 0xF8,
+ 0xAC, 0xD9, 0x20, 0xDA, 0x0A, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x14, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x11, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x15, 0xCA,
+ 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x30, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x00, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x94, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x78, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x98, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x88, 0xCA, 0xF9, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA,
+ 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDA, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDB, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x64, 0xCA, 0xCB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xAC, 0xCA, 0xFB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xD8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x07, 0xCA, 0xC8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA, 0x26, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA,
+ 0x26, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA, 0xF6, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x15, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x67, 0xCA, 0x17, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x01, 0xCA,
+ 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x72, 0xCA, 0xB7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x01, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x06, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x42, 0xCA, 0xE8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xEC, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x11, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA, 0xEF, 0xF9, 0xAC, 0xF7,
+ 0x7C, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD7,
+ 0x14, 0xF7, 0x11, 0xEE, 0x4A, 0xF0, 0x0E, 0x44, 0xDC, 0xF4,
+ 0x05, 0x07, 0x13, 0xD4, 0x01, 0x7F, 0xC4, 0x7C, 0x1C, 0x13,
+ 0x43, 0x61, 0x13, 0xA2, 0x31, 0x6C, 0xCD, 0xB2, 0x22, 0xA4,
+ 0x20, 0xF4, 0x05, 0x07, 0x06, 0xA1, 0x01, 0xD4, 0x0F, 0x14,
+ 0x43, 0x60, 0x04, 0x70, 0x04, 0xA4, 0x33, 0x71, 0x14, 0xEF,
+ 0x15, 0xA1, 0x01, 0xD0, 0x00, 0xF0, 0x02, 0xD0, 0x01, 0xC0,
+ 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD1, 0x0F, 0x70, 0x21, 0xF0,
+ 0x02, 0x83, 0x03, 0xA5, 0x31, 0xD4, 0x58, 0xC4, 0x4F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x22, 0x14, 0x34, 0x15, 0x85, 0x3F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x82, 0x29, 0x82, 0x29, 0x02, 0x24, 0xD1,
+ 0x22, 0x11, 0x12, 0xD6, 0x00, 0x4F, 0xE1, 0xD8, 0x01, 0x17,
+ 0x87, 0x21, 0x17, 0xD6, 0x10, 0x4F, 0xE1, 0xF7, 0x05, 0x07,
+ 0x37, 0xD1, 0x1F, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x02, 0xE0,
+ 0x00, 0x07, 0x45, 0xD1, 0x00, 0xD2, 0x01, 0xE0, 0x01, 0x07,
+ 0x45, 0xD2, 0x01, 0xD3, 0x02, 0xE0, 0x02, 0x07, 0x45, 0xF0,
+ 0x02, 0xD3, 0x00, 0xC3, 0xC0, 0xD4, 0x00, 0xD5, 0x0F, 0xD6,
+ 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xD3, 0xC6, 0xC3, 0x10, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0xC6, 0xC3, 0x10, 0x87, 0x1E, 0x87,
+ 0x76, 0x1F, 0xF7, 0x87, 0x0E, 0x87, 0x7C, 0x1F, 0xF7, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3, 0x09, 0xD3,
+ 0x01, 0xD4, 0x1F, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07,
+ 0xBF, 0xE0, 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3,
+ 0x09, 0xD3, 0x00, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0xD3,
+ 0xFF, 0xC3, 0x03, 0x2C, 0x4F, 0xD3, 0x00, 0xD4, 0x1F, 0xD5,
+ 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0, 0x03, 0x07,
+ 0xA8, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x2C, 0xE0, 0x00, 0x07,
+ 0xD4, 0xF0, 0x02, 0xA4, 0x43, 0xF4, 0x0D, 0xD7, 0x01, 0x2D,
+ 0xCB, 0xD6, 0x10, 0x5E, 0x0E, 0xF6, 0x01, 0x07, 0x96, 0xD6,
+ 0x10, 0x16, 0x06, 0x67, 0x76, 0x65, 0x56, 0x1F, 0xF7, 0x3F,
+ 0xF5, 0xEF, 0x9A, 0x67, 0x70, 0x65, 0x50, 0x1E, 0xE7, 0x3E,
+ 0xE5, 0x17, 0x10, 0x55, 0xDC, 0x85, 0x52, 0xB5, 0x52, 0x00,
+ 0x05, 0x84, 0x43, 0xF7, 0x05, 0x07, 0x89, 0xF0, 0x02, 0xE0,
+ 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xF0, 0x02, 0xD0,
+ 0x60, 0xF1, 0x08, 0xD6, 0x00, 0xC6, 0xF0, 0xD3, 0x01, 0xD2,
+ 0x10, 0xA0, 0x03, 0xF7, 0x08, 0xA0, 0x03, 0xF8, 0x08, 0x24,
+ 0xDF, 0xF4, 0x01, 0x07, 0xB7, 0xE0, 0x06, 0x07, 0xD8, 0xA6,
+ 0x63, 0x81, 0x13, 0xB2, 0x22, 0xF2, 0x05, 0x07, 0xAE, 0xD0,
+ 0x60, 0xF0, 0x1C, 0xF0, 0x02, 0xAA, 0x01, 0xA6, 0x11, 0xA7,
+ 0x21, 0xD4, 0x60, 0xF5, 0x48, 0xDB, 0x01, 0x6B, 0xB3, 0x15,
+ 0x5F, 0xF4, 0x5C, 0xA4, 0x43, 0x8B, 0x32, 0x04, 0x4B, 0xF8,
+ 0x48, 0xA4, 0x43, 0xF9, 0x48, 0xE0, 0x06, 0x07, 0x87, 0xF4,
+ 0x9C, 0xB4, 0x42, 0xF4, 0x8C, 0xF0, 0x02, 0xC0, 0x80, 0xE0,
+ 0x00, 0x07, 0xD8, 0xF0, 0x02, 0xF0, 0x0A, 0xD3, 0x00, 0xC3,
+ 0x9C, 0xF3, 0x1C, 0xC3, 0xA0, 0xF3, 0x2C, 0xC3, 0xA4, 0xF3,
+ 0x0C, 0xD3, 0x00, 0xC3, 0xA8, 0xF3, 0x38, 0xF3, 0x01, 0x07,
+ 0xE0, 0xF0, 0x06, 0xF0, 0x02, 0xF0, 0x0A, 0xD2, 0x00, 0xC2,
+ 0xA4, 0xF2, 0x0C, 0xC2, 0xA8, 0xF1, 0x28, 0xF1, 0x01, 0x07,
+ 0xEC, 0xC2, 0x9C, 0xF1, 0x28, 0xC2, 0xA0, 0xF2, 0x28, 0xF0,
+ 0x06, 0xF0, 0x02, 0xD1, 0x00, 0xC1, 0x98, 0xF1, 0x0C, 0xF0,
+ 0x02, 0xD1, 0x00, 0xC1, 0x94, 0xF0, 0x18, 0xC1, 0x98, 0xF1,
+ 0x18, 0xF0, 0x02, 0xED, 0xDC, 0x90, 0x00, 0x88, 0x00, 0x30,
+ 0x00, 0x34, 0x00, 0x24, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0xDD, 0x3D, 0xD7, 0x00, 0x15, 0x00, 0x1A, 0x0A, 0x19, 0x00,
+ 0x1E, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x76, 0x01, 0x38, 0x02,
+ 0xC0, 0x02, 0x30, 0x04, 0x20, 0x03, 0x60, 0x06, 0x5C, 0x04,
+ 0xBC, 0x09, 0x60, 0x07, 0x9C, 0x0D, 0x70, 0xFF, 0xFF, 0x7A,
+ 0xF5, 0x10, 0xAE, 0x70, 0xA5, 0x22, 0x7C, 0x00, 0x00, 0x00,
+ 0x00, 0x1E, 0x17, 0x00, 0x04, 0x2C, 0x5F, 0x00, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x27, 0xC5, 0x21, 0xF0, 0x16, 0x27, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x67, 0x42, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x1C, 0xFE,
+ 0xFE, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x30, 0x00, 0x0C, 0x08, 0x30, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0C, 0x00,
+ 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x50, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0A, 0x03, 0xA9, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0F, 0x00,
+ 0x08, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x64, /* WAIT 100[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFF, 0x00, 0x00, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x01, 0x9D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x02, 0xB8, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x01, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x08, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x0C, 0xB2, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2C, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x0A, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x40, 0x12, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0x9D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x9D, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xEB, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xF5, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x52, 0xD3, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x60, 0x03, 0x0C, 0xCF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0D, 0xD3, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x5B, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xA7, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xD8, 0xA1, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x04, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0F, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x21, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xE5, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDC, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x8E, 0xD0, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x13, 0xF1, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xB0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x37, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x43, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x12, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x4F, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x26,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x4F, 0xE9, 0x9D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xCC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x62, 0xD3, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xD3, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x9A, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xC7, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x05, 0xA7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x26, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x28, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xAF, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x84, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB0, 0xD5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x21, 0x03, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x53, 0x24, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x11, 0x34, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x93, 0x11, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x12, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x79, 0xB3, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x01, 0x26,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x06, 0x5F, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x09, 0x5C, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xF4, 0xF3, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x88, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x00, 0xD0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x37, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x02, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x94, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x89, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x01, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x21, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xFE, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x64, 0xC2, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x09, 0xE9, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0x7D, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x1E, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x07, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xE2, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xE1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xD9, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xD3, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xC9, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0A, 0x80, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xEA, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0D, 0xEA, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xB9, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x92, 0x11, 0x3C, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x22, 0x3C, 0xCE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x09, 0xD0, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xEA, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xD4, 0xC0, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x09, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xD1, 0xEA, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x03, 0xC0, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x1A, 0x80, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xEA, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x03, 0xD7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x60, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xAA, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0xD7, 0xD5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x45, 0xF5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xF0, 0xB6, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xF3, 0x74, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0x06, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0xB8, 0x74, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0x15, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x0D, 0x22, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x25, 0xD3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x23, 0xD3, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xFE, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x20, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0xB9, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x34, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x70, 0x21, 0xEA, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xEA, 0x5E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xFB, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x18, 0xBA, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x62, 0x1C, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0x8A, 0xF6, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x02, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x1F, 0xDA, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x28, 0xFA, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBB, 0xB2, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x72, 0xBB, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x47,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x78, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x43, 0xD8, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xDA, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0xAC, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xD8, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF4, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xC8, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x01, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x13, 0xFA, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xAC, 0xEA, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x60, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0E, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x8C, 0xD8, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xDA, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0xAC, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x8C, 0xD9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0xAC, 0xD8, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x80, 0xF9, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xC9, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xC9, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xD8, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x8C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x73, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xD0, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x05, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x05, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x02, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x12, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x03, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x12, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x0A, 0xF7, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x71, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x04, 0xD3, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x51, 0xF6, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xBF, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0xF8, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x37, 0x1A, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB8, 0x62, 0x1C, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x63, 0x1D, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x89, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xAC, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xB1, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x08, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xE0, 0xEA, 0x99,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x03, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x18, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xC2, 0xA9, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x38, 0xA8, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x03, 0xBF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0x12, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xA3, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0xB3, 0x25, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x62, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x18, 0x82, 0x24, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x18, 0x23, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0x08, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x30, 0xEA, 0xE0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xF0, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x8E, 0xD3, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x13, 0xF3, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x32, 0xF0, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x04, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x0F, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x26, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x75, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x85, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD2, 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0xB4, 0xD4, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x1C, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xA3, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xEB, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x8E, 0xD6, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x28, 0x84, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x44, 0xB3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x38, 0xA3, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0xA9, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x43, 0xD9, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x04, 0x26,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x06, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x0A, 0xF9, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x03, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x41, 0xAA, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x28, 0xFB, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x03, 0xBF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x69, 0x07, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x54, 0x27, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0x4F, 0xA9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x7F, 0xAA, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7A, 0x27, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x03, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x4C, 0xA7, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0xFE, 0x9A, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x0E, 0x97, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7F, 0x2F, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x02, 0xF2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xD6, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xBA, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x05, 0x02, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD4, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x01, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xAD, 0x99, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x14, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB3, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x96, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x47, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x10, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x04, 0xEB, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF7, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x58, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x13, 0x19, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x27, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x65, 0xB7, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x2C, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x58, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x69, 0xBA, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1B, 0x96, 0x49, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0x91, 0x29, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x0D, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0x08, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x07, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xAD, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x0C, 0xDB, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x04, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0xAD, 0x4B, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x7D, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x01, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x04, 0xEB, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x0C, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x58, 0xF8, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x03, 0x19, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x9D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x27, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x9D, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x2C, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x58, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xFA, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA6, 0x5E, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0xA2, 0x1B, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x49, 0xBA, 0x9A, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x9A, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0x08, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x17, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xAD, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF7, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0x4B, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xA5, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x58, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x16, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0x94, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x42, 0xA5, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x05, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xD2, 0x5F, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xFA, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB4, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x25, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x5C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0x5E, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1E, 0x0A, 0x5E, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x13, 0xD2, 0x9E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xD3, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xFB, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xF6, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x36, 0x86, 0x66,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0xB3, 0x36, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x36, 0x33, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5C, 0xF4, 0x43, 0xCE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xDE, 0xD6, 0xF2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x03, 0x4E, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xF6, 0x10, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0x94, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x34, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2E, 0xFB, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x03, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x3A, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xEF, 0xC4, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3B, 0x4B, 0xF2, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0xB3, 0xC5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0x5B, 0x2A, 0x1A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x01, 0x03, 0xF6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xBC, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x0F, 0xC7, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xFF, 0x22, 0xD7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0xC7, 0x83, 0x8F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0x82, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x8E, 0xA7, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x42, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0x80, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x44, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x9E, 0x98, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x28, 0x20, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x04, 0x17,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x68, 0xD8, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x42, 0x78, 0x82, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x2C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x3C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x4C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x5C, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x20, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x88, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xF6, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xD3, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xF0, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x01, 0xD5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x40, 0x1D, 0xDA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0xC0, 0x1D, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x12, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x14, 0xF4, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x71, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD4, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xFE, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0xE3, 0xC2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x5B, 0xC3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xA4, 0x1F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x4B, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x50, 0x33, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x34, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEC, 0x4A, 0xD4, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x20, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x53, 0x33, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x39, 0xD2, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x8E, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x12, 0x4F, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x03, 0xD6, 0xAA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x2A, 0x4E, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x1E, 0x4F, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x72, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xED, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0x4F, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0F, 0x27, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x01, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xB9, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x03, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x9F, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x35, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x7F, 0xB3, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x08, 0xD6, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF8, 0xD6, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x3B, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x8B, 0xB3, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF8, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x77, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xD8, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x88, 0xD8, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x87, 0x94, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0x08, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x88, 0xD6, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x9C, 0xEC, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x35, 0xD5, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x98, 0x94, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xF7, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x75, 0xB3, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x31, 0x23, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x03, 0x2F, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0C, 0x07, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0E, 0xD6, 0xDA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD6, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x53, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xF0, 0x1C, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x60, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x62, 0x08, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x88, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x88, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xD2, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x18, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x54, 0xF5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x50, 0x5D, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x65, 0xA3, 0x2F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x39, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x50, 0x5D, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x65, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xA2, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x0C, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xDA, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x4F, 0x7D, 0xE9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x10, 0x15, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0x45, 0x73, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x70, 0x05, 0x20, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x33, 0x24, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0F, 0x83, 0x3F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x4F, 0x15, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x43, 0x23, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x60, 0xD5, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xC0, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x03, 0x36, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xE3, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x62, 0x26, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x06, 0x82, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xF8, 0xC5, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x36, 0x05, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x65, 0x86, 0x6F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x65, 0xA7, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x8D, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x67, 0x51, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x77, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x37, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xA7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0xFC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x09, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x10, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x8B, 0xF3, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x02, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x3B, 0xB7, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0C, 0xD6, 0xB0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x05, 0x37, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0xD6, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x68, 0x33, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xCF, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xC5, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x09, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x06, 0xC5, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x73, 0x86, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0x2D, 0xD8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2E, 0xE8, 0xD4, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4C, 0xC3, 0x26, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x31, 0x25, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x35, 0x03, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xE9, 0x95, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xF9, 0x20, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x05, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x27, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x37, 0x84, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x34, 0xED, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0xED, 0xD5, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x3C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x87, 0xF1, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x5E, 0x11, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x0F, 0xD3, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xEF, 0x1D, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x10, 0xD4, 0xBE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x48, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x6B, 0xA2, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xBF, 0xF5, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xB2, 0xF4, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0E, 0xD4, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x18, 0x8B, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0B, 0xB9, 0xB6, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x6B, 0x8B, 0x19,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xB8, 0xDA, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x12, 0x47, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x79, 0x07, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0A, 0x67, 0x8A, 0xA3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x80, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x10, 0x05, 0x5A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x5B, 0x2A, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0xA5, 0x8A, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5C, 0xA6, 0x5D, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2C, 0x89, 0xDA, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xA8, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x91, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x0D, 0xD3, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x23, 0x13, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x38, 0x2A, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA4, 0x16, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x05, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x60, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x92, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xCB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x46, 0x9B, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x68, 0xDA, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x6C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x16, 0xD1, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xB9, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0xFF, 0xD2, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x60, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xFB, 0x4D, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x64, 0xC3, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0xC3, 0x20, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x0A, 0xC2, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0xD4, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4C, 0xC3, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x34, 0xD2, 0x26,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x80, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xD2, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x40, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x82, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x2D, 0xD8, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x01, 0x15, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x01, 0x05, 0xD9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x39, 0xC8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x82, 0xF5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xD9, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xD8, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x73, 0x38, 0xD8, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x64, 0x48, 0x84, 0x4B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x34, 0x18, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x05, 0xEA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB8, 0x78, 0xB1, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x05, 0xEA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x28, 0x80, 0xF8, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xB0, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xFF, 0xF2, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xD1, 0x2B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0E, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF6, 0xD3, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD1, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0x81, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x02, 0x2D, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x82, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xD3, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0xFE, 0xF3, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x45, 0xEF, 0x2D, 0xC9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2C, 0xC5, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x44, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xD5, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD3, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x32, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x3D, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x32, 0xD5, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD8, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x06, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x5E, 0xC9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x0D, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x3B, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x5E, 0xDA, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xA8, 0xD0, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0x2B, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x9B, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xEE, 0x5E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x83, 0xF5, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x5B, 0xFA, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x15, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x5E, 0xDA, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0xA8, 0xDA, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x06, 0x4D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x31, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xEE, 0x5E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xA8, 0xDB, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x47, 0xD3, 0x46, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0x5A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x01, 0x06, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0xB9, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xBC, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x44, 0xFB, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x3B, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x38, 0x16, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0x60, 0xFB, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x65, 0xF6, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x84, 0xF4, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0x29, 0xDB, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xAB, 0xA9, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x06, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0xB4, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x78, 0xDB, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x7A, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0xC0, 0xFB, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x7A, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x70, 0x46, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x85, 0xF9, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x69, 0x9A, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x6A, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x05, 0x06, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x75, 0x17, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x89, 0x17, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x95, 0x09, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x8C, 0xFA, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x2F, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0xA2, 0x19, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xCA, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA9, 0x47, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x08, 0x09, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x99, 0x89, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x97, 0xD9, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x5C, 0xD9, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x8C, 0xD7, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x06, 0xAF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x08, 0x09, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x99, 0x89, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x96, 0xD9, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x5C, 0xA7, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x87, 0xF7, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x09, 0x77, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0xB6, 0x17, 0x7C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1D, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x82, 0xF6, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x07, 0x84, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x06, 0xC4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x41, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0xC6, 0x13, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD1, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD0, 0x16,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x12, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD0, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x02, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x08, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xB9, 0xD6, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x01, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x82, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x08, 0xD6, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xBC, 0xF7, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x07, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x40, 0xC6, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x89, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xFC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x86, 0xD6, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x09, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xFC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x02, 0xD6, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x81, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xA7, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x41, 0xA6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x05, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x81, 0xD9, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x49, 0x8A, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x2F, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0xB3, 0x29, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x19, 0xC8, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x08, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x82, 0x18, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x85, 0xD6, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x30, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x23, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xEE, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xD6, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x42, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xEF, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0F, 0xD6, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x42, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xD6, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xEE, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x5F, 0xD9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x92, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x4B, 0x8A, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x03, 0x2F, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0xB6, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x3B, 0xDA, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x04, 0xEF, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xCA, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x54, 0x09, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xDA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0xA0, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x7B, 0x97, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0x6B, 0x97,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x68, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x51, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x00, 0xC4, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x10, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x08, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x08, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xDF, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x60, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xA4, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x81, 0x13, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x07, 0x56,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD3, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x38, 0x85, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0x66, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0xF3, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0x03, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x38, 0xA9, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x0D, 0xD5, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x1D, 0x88, 0x19,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0x27, 0xD6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x66, 0x65, 0x67, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0x3C, 0xCB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x85, 0x57, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x72, 0xB7, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x57, 0x89, 0x93,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x07, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x4C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x80, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8B, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x9C, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA0, 0xF3, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA4, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xC3, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x38, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x93, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0xBB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x4C, 0xD2, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x3C, 0xD3, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x02, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xA7, 0xA2, 0x61,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x80, 0xC3, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x09, 0xC1, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xD1, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0xFD, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD2, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDE, 0x80, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2C, 0xCD, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x18, 0xC1, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA4, 0xF2, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA8, 0xF1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x07, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x9C, 0xF1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA0, 0xF2, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x08, 0xC2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0B, 0xC3, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x48, 0x00, 0x24,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x85, 0xF5, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x26, 0x05, 0x96, 0x6E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x82, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xD2, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD2, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x28, 0xD6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x20, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x87, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x7C, 0xA2, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x81, 0xF8, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x78, 0x10, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x71, 0xA1, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD4, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0E, 0xD4, 0x63, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0F, 0xF4, 0x11, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x14, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x0C, 0x90, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x00, 0x30, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x34, 0x00, 0x24, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x6C, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x02, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x39, 0xA1, 0x00, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x24, 0x08, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x28, 0x00, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x12, 0x39,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x0C, 0x80, 0xF0, 0xF7, 0x3E, 0x75, 0xC1, 0x8A, 0xE4, 0x02,
+ 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x05, 0x0F, 0xEE, 0xAA, 0x5F, 0xEA, 0x90,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x06, 0x00, 0x0A, 0x4D, 0x8C, 0xF2, 0xD8, 0xCF, 0x30, 0x79,
+ 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0B, 0x0D, 0xA4, 0x6C,
+ 0x00, 0x10, /* Length = 16 bytes */
+ 0x0A, 0x01, 0x67, 0x24, 0x40, 0x08, 0xC3, 0x20, 0x10, 0x64,
+ 0x3C, 0xFA, 0xF7, 0xE1, 0x0C, 0x2C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x09, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x10, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x16, 0x12,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1F, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x01, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x10,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 9032 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init = {
+ XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init_SEQUENCE
+};
+
+unsigned char XC3028_base_firmware_i2c_files_base_firmwares_fm_init_SEQUENCE[9056] = {
+
+ 0x00, 0x00, /* RESET */
+ 0x0D, 0x53, /* Length = 3411 bytes */
+ 0x2A, 0x02, 0x19, 0xE0, 0x00, 0x07, 0xF5, 0xD4, 0x00, 0xC4,
+ 0xF0, 0xD6, 0xAE, 0xC6, 0x10, 0xD5, 0xF5, 0xC5, 0x7A, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x01, 0xC4, 0xF0, 0xD6, 0x51, 0xC6,
+ 0x02, 0xD5, 0x99, 0xC5, 0xA3, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x03, 0xC4, 0xF0, 0xD6, 0x04, 0xD5, 0x87, 0xC5, 0x06, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x04, 0xC4, 0xF0, 0xD6, 0x00, 0xD5,
+ 0x1F, 0xC5, 0x2C, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0x06, 0xD5, 0x00, 0xC5, 0x40, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x80, 0xD5,
+ 0xCD, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x07, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0xC0, 0xD5, 0x05, 0xC5, 0x2F, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x09, 0xC4, 0xF0, 0xD6, 0xC0, 0xC6,
+ 0x42, 0xD5, 0x67, 0xC5, 0x3C, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x0F, 0xC4, 0xF0, 0xD6, 0x3F, 0xC6, 0xC0, 0xD5, 0x11, 0xC5,
+ 0x11, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6,
+ 0x00, 0xC6, 0x24, 0xD5, 0x0E, 0xC5, 0x2E, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4,
+ 0x70, 0xE0, 0x04, 0x07, 0xE7, 0x86, 0x69, 0x86, 0x69, 0xA2,
+ 0x61, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x00, 0xC6, 0x24, 0xD5,
+ 0xC0, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4,
+ 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07,
+ 0xE7, 0x86, 0x69, 0x86, 0x69, 0x12, 0x62, 0x98, 0x21, 0xF8,
+ 0x05, 0x02, 0x88, 0xF2, 0x0D, 0xD8, 0x80, 0x4C, 0x28, 0xF8,
+ 0x05, 0x02, 0x94, 0xE0, 0x00, 0x07, 0x82, 0xD4, 0x0E, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xD5, 0x00, 0xE0, 0x04, 0x07, 0xD8, 0xD0,
+ 0x01, 0xC0, 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD3, 0x0F, 0x71,
+ 0x23, 0xF1, 0x01, 0x04, 0x7F, 0xD0, 0x60, 0xD1, 0x00, 0xC1,
+ 0x40, 0xD2, 0x0B, 0x00, 0x02, 0xF0, 0x1C, 0xA0, 0x03, 0xD1,
+ 0x00, 0xF0, 0x1C, 0xD0, 0x01, 0xD1, 0x03, 0xD2, 0x03, 0xD3,
+ 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD4, 0x9E, 0xA4, 0x45, 0xD5,
+ 0x10, 0xC5, 0x01, 0xF4, 0x5C, 0xD5, 0x40, 0xC5, 0x0B, 0xA4,
+ 0x43, 0xF4, 0x5C, 0xD3, 0x00, 0xC3, 0xF0, 0xD5, 0xD6, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x19, 0xD4, 0x01, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x03, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x04, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x05, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x06, 0xC3, 0xF0, 0xD5,
+ 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x07, 0xC3,
+ 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x09, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x0E, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x0F, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD0,
+ 0xFF, 0xC0, 0x03, 0xD1, 0x54, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x99, 0xD4, 0x01, 0xC4, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xC5, 0x19, 0xD4, 0x01, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x00, 0xC5, 0x99, 0xD4, 0x01, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x40, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5,
+ 0x19, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5,
+ 0x99, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4,
+ 0x02, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x02, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x23, 0xC5, 0x19, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x23, 0xC5, 0x99, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5,
+ 0x19, 0xD4, 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4,
+ 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x20, 0xC5, 0x19, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5,
+ 0x99, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x05, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x20, 0xC5, 0x99, 0xD4, 0x05, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x06, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x06, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xD4,
+ 0x00, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xEC,
+ 0xAF, 0xD1, 0x54, 0xD2, 0xA0, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x90, 0xC2, 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x44, 0xC2,
+ 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0xDC, 0xC2, 0x02, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2, 0x02, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0x58, 0xC2, 0x04, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x2C, 0xC2, 0x03, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2,
+ 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x88, 0xC2, 0x04, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x04, 0xC2, 0x09, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0xD0, 0xC2, 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x20, 0xC2, 0x0D, 0xF1, 0x2C, 0xA1, 0x13, 0xD5, 0x0E, 0xD6,
+ 0x00, 0xD7, 0x03, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x0F, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xA3, 0xD6,
+ 0x0E, 0xD7, 0x0E, 0xE0, 0x05, 0x07, 0xA3, 0xD5, 0xFF, 0xC5,
+ 0xFF, 0xF5, 0x09, 0xD5, 0x01, 0xC5, 0x80, 0xD6, 0x02, 0xE0,
+ 0x05, 0x07, 0xD8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5, 0x01, 0xC5,
+ 0x01, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87,
+ 0x7C, 0xD8, 0xBC, 0xF8, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD0, 0x00, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0,
+ 0x00, 0x07, 0xBF, 0xD0, 0x01, 0xD1, 0x07, 0xD2, 0x08, 0xD3,
+ 0x00, 0xE0, 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4,
+ 0x00, 0xC4, 0xA0, 0xF4, 0x09, 0xD0, 0x00, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07,
+ 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07, 0xD8, 0xC6,
+ 0xC0, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4,
+ 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07, 0xE7, 0xDA,
+ 0xFF, 0x27, 0x6E, 0x2D, 0x5A, 0x88, 0x5F, 0x88, 0x83, 0x87,
+ 0x78, 0xDA, 0x8E, 0xAA, 0xA7, 0xFA, 0x7C, 0xAA, 0xA9, 0xFA,
+ 0x8C, 0xAA, 0xA9, 0xFA, 0x9C, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x3F, 0xC6, 0xC0, 0xD6, 0x30, 0xC6,
+ 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD0, 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD0,
+ 0x01, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD2, 0x60, 0xA2, 0x23, 0xF1,
+ 0x28, 0xA2, 0x23, 0xF0, 0x28, 0xD2, 0x00, 0xD4, 0x00, 0xD3,
+ 0x00, 0xD5, 0x04, 0xE0, 0x06, 0x07, 0x38, 0x02, 0x26, 0x04,
+ 0x48, 0x03, 0x37, 0xB5, 0x52, 0xF5, 0x05, 0x05, 0x2F, 0x82,
+ 0x29, 0x84, 0x49, 0x83, 0x39, 0x25, 0x43, 0x24, 0x23, 0xD2,
+ 0x60, 0xA2, 0x23, 0xF2, 0x1C, 0xA2, 0x23, 0xF2, 0x0C, 0xD7,
+ 0x70, 0xC7, 0x0D, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6,
+ 0xBD, 0xF6, 0x7C, 0xD7, 0x0A, 0xC7, 0x0B, 0xA6, 0x41, 0xE0,
+ 0x06, 0x07, 0x1D, 0xD6, 0xBE, 0xF6, 0x7C, 0xD7, 0x51, 0xC7,
+ 0x0A, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6, 0xBF, 0xF6,
+ 0x7C, 0xD0, 0xD3, 0xC0, 0x01, 0xD1, 0xE0, 0xC1, 0x01, 0x32,
+ 0x04, 0xA2, 0x23, 0x82, 0x23, 0x33, 0x15, 0xA3, 0x33, 0x83,
+ 0x33, 0xD6, 0x80, 0x14, 0x26, 0x26, 0x44, 0x86, 0x6F, 0x18,
+ 0x46, 0xD6, 0xBA, 0xF6, 0x8C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x03, 0x29, 0x89, 0x99,
+ 0x9E, 0x98, 0x86, 0x19, 0x89, 0xA9, 0x97, 0x89, 0x92, 0xA8,
+ 0x90, 0xD6, 0x41, 0xC6, 0x24, 0xF8, 0x01, 0x05, 0x79, 0x06,
+ 0x69, 0xD8, 0xBB, 0xF8, 0x6C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x0C, 0x29, 0x89, 0x99,
+ 0x9E, 0xD6, 0x12, 0x28, 0x86, 0x98, 0x8E, 0x09, 0x89, 0xF9,
+ 0x0D, 0xA9, 0x9F, 0xA9, 0x9B, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x26, 0x96, 0x46, 0x87, 0xD7, 0x08, 0xD8, 0x0B, 0xD9,
+ 0x04, 0xE0, 0x06, 0x07, 0xBF, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x06, 0x29, 0x89, 0x99,
+ 0x9E, 0xB9, 0x9C, 0xF9, 0x0D, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x29, 0x96, 0x49, 0x87, 0xA7, 0x90, 0x26, 0x97, 0xD7,
+ 0x18, 0xD8, 0x1B, 0xD9, 0x05, 0xE0, 0x06, 0x07, 0xBF, 0xD5,
+ 0x0E, 0xC5, 0x70, 0xE0, 0x05, 0x07, 0xE7, 0x87, 0x74, 0x87,
+ 0x7F, 0x87, 0x7F, 0xD5, 0x01, 0xF7, 0x01, 0x05, 0xB9, 0xD5,
+ 0x02, 0xB7, 0x76, 0xF7, 0x01, 0x05, 0xB9, 0xD5, 0x00, 0xD6,
+ 0x0C, 0xD7, 0x0D, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x00, 0xD6, 0x0E, 0xD7, 0x0E, 0xD8, 0x0E, 0xE0, 0x05, 0x07,
+ 0xA3, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xBF, 0xED,
+ 0xD5, 0xD2, 0x00, 0xC2, 0x13, 0x33, 0x12, 0x04, 0x13, 0x15,
+ 0x13, 0x5C, 0xC0, 0x5D, 0x0D, 0x23, 0xCD, 0xF3, 0x05, 0x05,
+ 0xD4, 0xA0, 0x11, 0xF0, 0x02, 0xF0, 0x0E, 0xF0, 0x0E, 0xE0,
+ 0x00, 0x07, 0xF9, 0xE0, 0x00, 0x07, 0xF5, 0xF0, 0x0E, 0xEE,
+ 0x36, 0xF0, 0x0A, 0xFB, 0x08, 0xF9, 0x18, 0xBA, 0x9A, 0xB6,
+ 0x62, 0x1C, 0xB6, 0x1C, 0x8A, 0xF6, 0x18, 0xF8, 0x01, 0x06,
+ 0x1B, 0xFB, 0x01, 0x06, 0x4A, 0xB9, 0x92, 0xF9, 0x05, 0x05,
+ 0xEF, 0xDA, 0x13, 0xF8, 0x28, 0xFA, 0x84, 0xBB, 0xB2, 0xFB,
+ 0x01, 0x06, 0x4A, 0xBB, 0xB8, 0xFB, 0x01, 0x06, 0x1F, 0xD7,
+ 0x00, 0xC7, 0x94, 0xF7, 0x78, 0xD9, 0x00, 0xC9, 0xFF, 0x19,
+ 0x79, 0xF9, 0x01, 0x06, 0x4C, 0xD7, 0x00, 0xC7, 0xD0, 0xF9,
+ 0x78, 0xD8, 0x00, 0xF7, 0x8C, 0xF9, 0x05, 0x06, 0x1B, 0xD8,
+ 0x12, 0xF8, 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8,
+ 0x9C, 0xDA, 0x10, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8,
+ 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD8, 0x11, 0xF8,
+ 0x88, 0xF4, 0x8C, 0xD8, 0x00, 0xC8, 0x8C, 0xD9, 0x01, 0xF8,
+ 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9, 0x13, 0xFA, 0x98, 0xF2,
+ 0xAC, 0xEE, 0x0E, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x60, 0xF7,
+ 0x8C, 0xD8, 0x0E, 0xF8, 0x88, 0xF4, 0x8C, 0xD8, 0x0F, 0xF8,
+ 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8, 0x9C, 0xDA,
+ 0x0D, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8, 0x00, 0xC8,
+ 0x8C, 0xD9, 0x05, 0xF8, 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9,
+ 0x00, 0xC9, 0xAC, 0xD8, 0x0C, 0xFA, 0x80, 0xF9, 0xAC, 0xD9,
+ 0x00, 0xC9, 0x08, 0xD7, 0x00, 0xC7, 0x34, 0xF7, 0x9C, 0xC9,
+ 0x38, 0xD7, 0x00, 0xC7, 0x44, 0xF7, 0x9C, 0xC9, 0x20, 0xD7,
+ 0x00, 0xC7, 0x48, 0xF7, 0x9C, 0xD8, 0x15, 0xF2, 0x8C, 0xF0,
+ 0x06, 0xEE, 0x4B, 0xF0, 0x0A, 0xD7, 0x15, 0xD8, 0x00, 0xC8,
+ 0x30, 0xF8, 0x7C, 0xD7, 0x00, 0xC7, 0x98, 0xF6, 0x78, 0xD8,
+ 0x1A, 0xF8, 0x6C, 0xD8, 0x00, 0xC8, 0xAC, 0xDA, 0x20, 0xF8,
+ 0xAC, 0xD9, 0x20, 0xDA, 0x0A, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x14, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x11, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x15, 0xCA,
+ 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x30, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x00, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x94, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x78, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x98, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x88, 0xCA, 0xF9, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA,
+ 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDA, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDB, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x64, 0xCA, 0xCB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xAC, 0xCA, 0xFB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xD8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x07, 0xCA, 0xC8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA, 0x26, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA,
+ 0x26, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA, 0xF6, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x15, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x67, 0xCA, 0x17, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x01, 0xCA,
+ 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x72, 0xCA, 0xB7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x01, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x06, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x42, 0xCA, 0xE8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xEC, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x11, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA, 0xEF, 0xF9, 0xAC, 0xF7,
+ 0x7C, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD7,
+ 0x14, 0xF7, 0x11, 0xEE, 0x4A, 0xF0, 0x0E, 0x44, 0xDC, 0xF4,
+ 0x05, 0x07, 0x13, 0xD4, 0x01, 0x7F, 0xC4, 0x7C, 0x1C, 0x13,
+ 0x43, 0x61, 0x13, 0xA2, 0x31, 0x6C, 0xCD, 0xB2, 0x22, 0xA4,
+ 0x20, 0xF4, 0x05, 0x07, 0x06, 0xA1, 0x01, 0xD4, 0x0F, 0x14,
+ 0x43, 0x60, 0x04, 0x70, 0x04, 0xA4, 0x33, 0x71, 0x14, 0xEF,
+ 0x15, 0xA1, 0x01, 0xD0, 0x00, 0xF0, 0x02, 0xD0, 0x01, 0xC0,
+ 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD1, 0x0F, 0x70, 0x21, 0xF0,
+ 0x02, 0x83, 0x03, 0xA5, 0x31, 0xD4, 0x58, 0xC4, 0x4F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x22, 0x14, 0x34, 0x15, 0x85, 0x3F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x82, 0x29, 0x82, 0x29, 0x02, 0x24, 0xD1,
+ 0x22, 0x11, 0x12, 0xD6, 0x00, 0x4F, 0xE1, 0xD8, 0x01, 0x17,
+ 0x87, 0x21, 0x17, 0xD6, 0x10, 0x4F, 0xE1, 0xF7, 0x05, 0x07,
+ 0x37, 0xD1, 0x1F, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x02, 0xE0,
+ 0x00, 0x07, 0x45, 0xD1, 0x00, 0xD2, 0x01, 0xE0, 0x01, 0x07,
+ 0x45, 0xD2, 0x01, 0xD3, 0x02, 0xE0, 0x02, 0x07, 0x45, 0xF0,
+ 0x02, 0xD3, 0x00, 0xC3, 0xC0, 0xD4, 0x00, 0xD5, 0x0F, 0xD6,
+ 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xD3, 0xC6, 0xC3, 0x10, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0xC6, 0xC3, 0x10, 0x87, 0x1E, 0x87,
+ 0x76, 0x1F, 0xF7, 0x87, 0x0E, 0x87, 0x7C, 0x1F, 0xF7, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3, 0x09, 0xD3,
+ 0x01, 0xD4, 0x1F, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07,
+ 0xBF, 0xE0, 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3,
+ 0x09, 0xD3, 0x00, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0xD3,
+ 0xFF, 0xC3, 0x03, 0x2C, 0x4F, 0xD3, 0x00, 0xD4, 0x1F, 0xD5,
+ 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0, 0x03, 0x07,
+ 0xA8, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x2C, 0xE0, 0x00, 0x07,
+ 0xD4, 0xF0, 0x02, 0xA4, 0x43, 0xF4, 0x0D, 0xD7, 0x01, 0x2D,
+ 0xCB, 0xD6, 0x10, 0x5E, 0x0E, 0xF6, 0x01, 0x07, 0x96, 0xD6,
+ 0x10, 0x16, 0x06, 0x67, 0x76, 0x65, 0x56, 0x1F, 0xF7, 0x3F,
+ 0xF5, 0xEF, 0x9A, 0x67, 0x70, 0x65, 0x50, 0x1E, 0xE7, 0x3E,
+ 0xE5, 0x17, 0x10, 0x55, 0xDC, 0x85, 0x52, 0xB5, 0x52, 0x00,
+ 0x05, 0x84, 0x43, 0xF7, 0x05, 0x07, 0x89, 0xF0, 0x02, 0xE0,
+ 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xF0, 0x02, 0xD0,
+ 0x60, 0xF1, 0x08, 0xD6, 0x00, 0xC6, 0xF0, 0xD3, 0x01, 0xD2,
+ 0x10, 0xA0, 0x03, 0xF7, 0x08, 0xA0, 0x03, 0xF8, 0x08, 0x24,
+ 0xDF, 0xF4, 0x01, 0x07, 0xB7, 0xE0, 0x06, 0x07, 0xD8, 0xA6,
+ 0x63, 0x81, 0x13, 0xB2, 0x22, 0xF2, 0x05, 0x07, 0xAE, 0xD0,
+ 0x60, 0xF0, 0x1C, 0xF0, 0x02, 0xAA, 0x01, 0xA6, 0x11, 0xA7,
+ 0x21, 0xD4, 0x60, 0xF5, 0x48, 0xDB, 0x01, 0x6B, 0xB3, 0x15,
+ 0x5F, 0xF4, 0x5C, 0xA4, 0x43, 0x8B, 0x32, 0x04, 0x4B, 0xF8,
+ 0x48, 0xA4, 0x43, 0xF9, 0x48, 0xE0, 0x06, 0x07, 0x87, 0xF4,
+ 0x9C, 0xB4, 0x42, 0xF4, 0x8C, 0xF0, 0x02, 0xC0, 0x80, 0xE0,
+ 0x00, 0x07, 0xD8, 0xF0, 0x02, 0xF0, 0x0A, 0xD3, 0x00, 0xC3,
+ 0x9C, 0xF3, 0x1C, 0xC3, 0xA0, 0xF3, 0x2C, 0xC3, 0xA4, 0xF3,
+ 0x0C, 0xD3, 0x00, 0xC3, 0xA8, 0xF3, 0x38, 0xF3, 0x01, 0x07,
+ 0xE0, 0xF0, 0x06, 0xF0, 0x02, 0xF0, 0x0A, 0xD2, 0x00, 0xC2,
+ 0xA4, 0xF2, 0x0C, 0xC2, 0xA8, 0xF1, 0x28, 0xF1, 0x01, 0x07,
+ 0xEC, 0xC2, 0x9C, 0xF1, 0x28, 0xC2, 0xA0, 0xF2, 0x28, 0xF0,
+ 0x06, 0xF0, 0x02, 0xD1, 0x00, 0xC1, 0x98, 0xF1, 0x0C, 0xF0,
+ 0x02, 0xD1, 0x00, 0xC1, 0x94, 0xF0, 0x18, 0xC1, 0x98, 0xF1,
+ 0x18, 0xF0, 0x02, 0xED, 0xDC, 0x90, 0x00, 0x88, 0x00, 0x30,
+ 0x00, 0x34, 0x00, 0x24, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0xDD, 0x3D, 0xD7, 0x00, 0x15, 0x00, 0x1A, 0x0A, 0x19, 0x00,
+ 0x1E, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x76, 0x01, 0x38, 0x02,
+ 0xC0, 0x02, 0x30, 0x04, 0x20, 0x03, 0x60, 0x06, 0x5C, 0x04,
+ 0xBC, 0x09, 0x60, 0x07, 0x9C, 0x0D, 0x70, 0xFF, 0xFF, 0x7A,
+ 0xF5, 0x10, 0xAE, 0x70, 0xA5, 0x22, 0x7C, 0x00, 0x00, 0x00,
+ 0x00, 0x1E, 0x17, 0x00, 0x04, 0x2C, 0x5F, 0x00, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x27, 0xC5, 0x21, 0xF0, 0x16, 0x27, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x67, 0x42, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x1C, 0xFE,
+ 0xFE, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x30, 0x00, 0x0C, 0x08, 0x30, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0C, 0x00,
+ 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x50, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0A, 0x03, 0xA9, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0F, 0x00,
+ 0x08, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x64, /* WAIT 100[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFF, 0x00, 0x00, 0xEC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x01, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x02, 0xB8, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x01, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x08, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x11, 0xB2, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2C, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x06, 0xB2, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x00, 0xC2, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x12, 0x02, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xA0, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x8E, 0xE9, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x05, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xA0, 0xD2, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x08, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x6D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x56,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xA0, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xEE, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x50, 0xD3, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xAA, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x9F, 0xA1, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x04, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0F, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x24, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xE8, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xC7, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDC, 0xE9, 0x8F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0A, 0xC1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x09, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB0, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x40, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x05, 0x01, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xE9, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x05, 0xD9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x4D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x23, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x4D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xA0, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x93, 0xE9, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x87, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x88, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x02, 0xD2, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x08, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x6D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x56,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x95,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x06, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x12, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xAA, 0xE9, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x10, 0xD1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x01, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB0, 0xD5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x21, 0x03, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x53, 0x24, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x11, 0x34, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x93, 0x11, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xD9, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x7C, 0xB3, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x01, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x05, 0x5F, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x05, 0x01, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x05, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x05, 0xE9, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x01, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x8F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x02, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x95, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x89, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x01, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x24, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xFE, 0xD2, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x27, 0xF3, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x9A, 0xE9, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0x7D, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x1E, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x0A, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xE5, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xE4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xDC, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xD6, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xCC, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0A, 0x80, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0D, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xB9, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x92, 0x11, 0x3C, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x22, 0x3C, 0xCE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x0C, 0xD0, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xD4, 0xC0, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x0C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xD1, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x03, 0xC0, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x1A, 0x80, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x03, 0xD7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x60, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xAA, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0xD7, 0xD5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x45, 0xF5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xF3, 0xB6, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xF6, 0x74, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0x06, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0xB8, 0x74, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0x15, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x0D, 0x22, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x25, 0xD3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x23, 0xD3, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xFE, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x20, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0xB9, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x34, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x70, 0x21, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xEA, 0x61,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xFB, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x18, 0xBA, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x62, 0x1C, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0x8A, 0xF6, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x02, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x22, 0xDA, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x28, 0xFA, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBB, 0xB2, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x75, 0xBB, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x4A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x78, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x46, 0xD8, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xDA, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0xAC, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xD8, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF4, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xC8, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x01, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x13, 0xFA, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xAC, 0xEA, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x60, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0E, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x8C, 0xD8, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xDA, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0xAC, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x8C, 0xD9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0xAC, 0xD8, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x80, 0xF9, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xC9, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xC9, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xD8, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x8C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x76, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xD0, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x05, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x05, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x02, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x12, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x03, 0xFA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x12, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x0A, 0xF7, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x71, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x04, 0xD3, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x51, 0xF6, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xC2, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0xF8, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x37, 0x1A, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB8, 0x62, 0x1C, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x63, 0x1D, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x89, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xAF, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xB4, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x08, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xE3, 0xEA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x03, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x18, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xC5, 0xA9, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x38, 0xA8, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x03, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0x12, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xA3, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0xB6, 0x25, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x62, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x18, 0x82, 0x24, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x18, 0x23, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0x08, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x33, 0xEA, 0xE3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xF0, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x8E, 0xD3, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x13, 0xF3, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x32, 0xF0, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x04, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x0F, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x29, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x78, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x88, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD2, 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0xB4, 0xD4, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x1C, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xA3, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xEE, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x8E, 0xD6, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x28, 0x84, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x44, 0xB3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x38, 0xA3, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0xA9, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x46, 0xD9, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x04, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x05, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x0A, 0xF9, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x03, 0xFA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x41, 0xAA, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x28, 0xFB, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x03, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x69, 0x07, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x54, 0x27, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0x4F, 0xA9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x7F, 0xAA, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7A, 0x27, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x03, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x4C, 0xA7, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0x01, 0x9A, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x0E, 0x97, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7F, 0x2F, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x02, 0xF5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xD6, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xBA, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x05, 0x02, 0xFA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD4, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x01, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB0, 0x99, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x14, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB3, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x96, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x4A, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x10, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x04, 0xEB, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF7, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x58, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x13, 0x19, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x27, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x68, 0xB7, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x2C, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x58, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x69, 0xBA, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1B, 0x96, 0x49, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0x91, 0x29, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x0D, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0x08, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x07, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB0, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x0C, 0xDB, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x04, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xB1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0xB0, 0x4B, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x80, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x01, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x04, 0xEB, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x0C, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x58, 0xF8, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x03, 0x19, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x27, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xA0, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x2C, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x58, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xFA, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA6, 0x5E, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0xA2, 0x1B, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x49, 0xBA, 0x9A, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x9A, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0x08, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x17, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB0, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF7, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0x4B, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xA5, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x58, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x16, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xB1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0x94, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x42, 0xA5, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x05, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xD2, 0x5F, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xFA, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB7, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x25, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x5C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0x5E, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1E, 0x0A, 0x5E, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x13, 0xD2, 0x9E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xD3, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xFB, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xF6, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x36, 0x86, 0x66,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0xB3, 0x36, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x36, 0x33, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5C, 0xF4, 0x43, 0xCE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xE1, 0xD6, 0xF2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x03, 0x4E, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xF6, 0x10, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0x94, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x34, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2E, 0xFB, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x03, 0xF2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x3A, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xF2, 0xC4, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3B, 0x4B, 0xF2, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0xB3, 0xC5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0x5B, 0x2A, 0x1A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x01, 0x03, 0xF9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xBC, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x0F, 0xC7, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xFF, 0x22, 0xD7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0xC7, 0x83, 0x8F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0x82, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x8E, 0xA7, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x42, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0x80, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x44, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x9E, 0x98, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x28, 0x20, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x04, 0x1A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x68, 0xD8, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x42, 0x78, 0x82, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x2C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x3C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x4C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x5C, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x20, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x88, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xF6, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xD3, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xF0, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x01, 0xD5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x40, 0x1D, 0xDA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0xC0, 0x1D, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x12, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x14, 0xF4, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x71, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD4, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xFE, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0xE3, 0xC2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x5B, 0xC3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xA4, 0x1F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x4B, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x53, 0x33, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x34, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEC, 0x4D, 0xD4, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x20, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x53, 0x33, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x39, 0xD2, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x8E, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x12, 0x4F, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x03, 0xD6, 0xAA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x2A, 0x4E, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x1E, 0x4F, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x72, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xED, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0x4F, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0F, 0x27, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x01, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xBC, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x03, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xA2, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x35, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x82, 0xB3, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x08, 0xD6, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF8, 0xD6, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x3B, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x8E, 0xB3, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF8, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x77, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xD8, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x88, 0xD8, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x87, 0x94, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0x08, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x88, 0xD6, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x1B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x9C, 0xEC, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x35, 0xD5, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x98, 0x94, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xF7, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x75, 0xB3, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x31, 0x23, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x03, 0x2F, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0C, 0x07, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0E, 0xD6, 0xDA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD6, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x53, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xF0, 0x1C, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x60, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x62, 0x08, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x88, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x88, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xD2, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x18, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x54, 0xF5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x50, 0x5D, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x65, 0xA3, 0x2F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x39, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x50, 0x5D, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x65, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xA2, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x0C, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xDD, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x4F, 0x7D, 0xE9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x10, 0x15, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0x45, 0x73, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x70, 0x05, 0x20, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x33, 0x24, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0F, 0x83, 0x3F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x4F, 0x15, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x43, 0x23, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x60, 0xD5, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xC0, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x03, 0x36, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xE3, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x62, 0x26, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x06, 0x82, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xFB, 0xC5, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x36, 0x05, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x65, 0x86, 0x6F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x65, 0xA7, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x8D, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x67, 0x51, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x77, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x37, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xA7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0xFC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x09, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x10, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x8B, 0xF3, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x02, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x3E, 0xB7, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0C, 0xD6, 0xB0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x05, 0x37, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0xD6, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x68, 0x33, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xCF, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x1B, 0xC5, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x09, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x06, 0xC5, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x73, 0x86, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0x2D, 0xD8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2E, 0xE8, 0xD4, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4C, 0xC3, 0x26, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x31, 0x25, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x35, 0x03, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xE9, 0x95, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xF9, 0x20, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x05, 0x5A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x27, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x37, 0x84, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x34, 0xED, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0xED, 0xD5, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x3C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0x2D, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x92, 0xB6, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x33, 0xAA, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x80, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x10, 0x05, 0x5A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x5B, 0xDA, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x01, 0x5E, 0xA3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0xFD, 0xCB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5C, 0x3B, 0x5F, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xB8, 0x1E, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x01, 0xDB, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0x2B, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x19, 0x2B, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x52, 0xAA, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA5, 0x5C, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x7A, 0x2C, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x53, 0x2A, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0xA5, 0x8A, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x7A, 0x1C, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x52, 0x2A, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0xA5, 0x8A, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0xA6, 0x1C, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x05, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x24, 0xF1, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0x24, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x3B, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x78, 0xD2, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x80, 0x13, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x85, 0xFA, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x38, 0x2A, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA4, 0x16, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x05, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x60, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x92, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xCB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x46, 0x9B, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x68, 0xDA, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x6C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x16, 0xD1, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xB9, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xFF, 0xF2, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xD1, 0x2B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0E, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xBD, 0xD3, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD1, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0x81, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x02, 0x2D, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x82, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xD3, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0xFE, 0xF3, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x45, 0xEF, 0x2D, 0xC9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2C, 0xC5, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x0B, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xD5, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD3, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF9, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x3D, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF9, 0xD5, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD8, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x06, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x5E, 0xC9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x0D, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x02, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x25, 0xDA, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xA8, 0xD0, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0x2B, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x9B, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xEE, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x83, 0xF5, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x5B, 0xFA, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x15, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x25, 0xDA, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0xA8, 0xDA, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x06, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x31, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xEE, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xA8, 0xDB, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x47, 0xD3, 0x46, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x01, 0x06, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0xB9, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xBC, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x0B, 0xFB, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x3B, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x38, 0x16, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0x60, 0xFB, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x2C, 0xF6, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x84, 0xF4, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0x29, 0xDB, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xAB, 0xA9, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x06, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0xB4, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x3F, 0xDB, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x41, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0xC0, 0xFB, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x41, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x70, 0x46, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x85, 0xF9, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x69, 0x9A, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x6A, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x05, 0x06, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x75, 0x17, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x50, 0x17, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x95, 0x09, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x8C, 0xFA, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x2F, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0xA2, 0x19, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xCA, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA9, 0x47, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x08, 0x09, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x99, 0x89, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x97, 0xD9, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x5C, 0xD9, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x8C, 0xD7, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x06, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x08, 0x09, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x99, 0x89, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x96, 0xD9, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x5C, 0xA7, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x87, 0xF7, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x09, 0x77, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0xB6, 0x17, 0x7C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1D, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x82, 0xF6, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x07, 0x84, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x06, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x41, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x8D, 0x13, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD1, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD0, 0x16,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x12, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD0, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x02, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xCF, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x80, 0xD6, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x01, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x82, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x08, 0xD6, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x01, 0xC5, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x0F, 0x77, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xCB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x40, 0xC6, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x89, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x86, 0xD6, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x09, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x02, 0xD6, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x81, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xA7, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x41, 0xA6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x05, 0x5E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x81, 0xD9, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x49, 0x8A, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x2F, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0xB3, 0x29, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x19, 0xC8, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x08, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x82, 0x18, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1C, 0xD7, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0xEE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x1B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xD7, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x1B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0x26,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x01, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x54, 0xDA, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x05, 0x09, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xDA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0xA0, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x7B, 0x97, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0x6B, 0x97,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xA4, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x0D, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xCB, 0xD6, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x0E, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x0E, 0xD6, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x06, 0x67, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x65, 0x56, 0x1F, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF5, 0xEF, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x67, 0x70, 0x65, 0x50,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1E, 0xE7, 0x3E, 0xE5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x10, 0x55, 0xDC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x52, 0xB5, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x84, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x07, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x20, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x00, 0xC4, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x10, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x08, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x08, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xDF, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x2F, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xA4, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x81, 0x13, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x07, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD3, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x38, 0x85, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0x66, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0xF3, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0x03, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x38, 0xA9, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x0D, 0xD5, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x1D, 0x88, 0x19,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0x27, 0xD6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x66, 0x65, 0x67, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0x3C, 0xCB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x85, 0x57, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x72, 0xB7, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x57, 0x89, 0x93,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x07, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x4C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x00, 0xC6, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x01, 0xD2, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF8, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0xDF, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x65, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xA6, 0x63,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x81, 0x13, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x07, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xAA, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x11, 0xA7, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x60, 0xF5, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x6B, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x5F, 0xF4, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x43, 0x8B, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x4B, 0xF8, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x43, 0xF9, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x06, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x9C, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x8C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x80, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x9C, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA0, 0xF3, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA4, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xC3, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x38, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8E, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x4C, 0xD2, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x3C, 0xD3, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x02, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xA1, 0xD2, 0x47,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x24, 0xD3, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x8D, 0xD1, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0xF0, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xD6, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x68, 0xD2, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x40, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xD0, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xFF, 0xC1, 0xFD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xC0, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x03, 0x2D, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x13, 0x2C, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x98, 0xF1, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x94, 0xF0, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x98, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xF0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x00, 0xC2, 0xA4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x0C, 0xC2, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x28, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC8, 0xC2, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x28, 0xC2, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x08, 0xD3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x20, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x94, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x24, 0xD5, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x58, 0x26, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x96, 0x6E, 0x10, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xF1, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x86, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x89, 0xF5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0xC6, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x78, 0x97, 0x7C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x71, 0xD4, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x48, 0x17, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x35, 0x40, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x71, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x09, 0xC0, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x08, 0x0E, 0xD4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x63, 0x14, 0x0F, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x11, 0x23, 0x80, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xEA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x90, 0x00, 0x88, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x30, 0x00, 0x34, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x00, 0x6C, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x10, 0x39, 0xA4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x15, 0x00, 0x24,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0xEC, 0x00, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x51, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x12, 0x39,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x0C, 0x80, 0xF0, 0xF7, 0x3E, 0x75, 0xC1, 0x8A, 0xE4, 0x02,
+ 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x05, 0x13, 0xEE, 0xAA, 0x5F, 0xEA, 0x90,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x06, 0x00, 0x0A, 0x4D, 0x8C, 0xF2, 0xD8, 0xCF, 0x30, 0x79,
+ 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0B, 0x04, 0xA4, 0x6C,
+ 0x00, 0x10, /* Length = 16 bytes */
+ 0x0A, 0x01, 0x23, 0x24, 0x40, 0x08, 0xC3, 0x20, 0x10, 0x64,
+ 0x3C, 0xFA, 0xF7, 0xE1, 0x0C, 0x2C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x09, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x10, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x16, 0x12,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1F, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x01, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x10,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 9056 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_base_firmware_i2c_files_base_firmwares_fm_init = {
+ XC3028_base_firmware_i2c_files_base_firmwares_fm_init_SEQUENCE
+};
+
+unsigned char XC3028_base_firmware_i2c_files_base_firmwares_fm_input1_init_SEQUENCE[9070] = {
+
+ 0x00, 0x00, /* RESET */
+ 0x0D, 0x53, /* Length = 3411 bytes */
+ 0x2A, 0x02, 0x19, 0xE0, 0x00, 0x07, 0xF5, 0xD4, 0x00, 0xC4,
+ 0xF0, 0xD6, 0xAE, 0xC6, 0x10, 0xD5, 0xF5, 0xC5, 0x7A, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x01, 0xC4, 0xF0, 0xD6, 0x51, 0xC6,
+ 0x02, 0xD5, 0x99, 0xC5, 0xA3, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x03, 0xC4, 0xF0, 0xD6, 0x04, 0xD5, 0x87, 0xC5, 0x06, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x04, 0xC4, 0xF0, 0xD6, 0x00, 0xD5,
+ 0x1F, 0xC5, 0x2C, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0x06, 0xD5, 0x00, 0xC5, 0x40, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x80, 0xD5,
+ 0xCD, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x07, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0xC0, 0xD5, 0x05, 0xC5, 0x2F, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x09, 0xC4, 0xF0, 0xD6, 0xC0, 0xC6,
+ 0x42, 0xD5, 0x67, 0xC5, 0x3C, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x0F, 0xC4, 0xF0, 0xD6, 0x3F, 0xC6, 0xC0, 0xD5, 0x11, 0xC5,
+ 0x11, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6,
+ 0x00, 0xC6, 0x24, 0xD5, 0x0E, 0xC5, 0x2E, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4,
+ 0x70, 0xE0, 0x04, 0x07, 0xE7, 0x86, 0x69, 0x86, 0x69, 0xA2,
+ 0x61, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x00, 0xC6, 0x24, 0xD5,
+ 0xC0, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4,
+ 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07,
+ 0xE7, 0x86, 0x69, 0x86, 0x69, 0x12, 0x62, 0x98, 0x21, 0xF8,
+ 0x05, 0x02, 0x88, 0xF2, 0x0D, 0xD8, 0x80, 0x4C, 0x28, 0xF8,
+ 0x05, 0x02, 0x94, 0xE0, 0x00, 0x07, 0x82, 0xD4, 0x0E, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xD5, 0x00, 0xE0, 0x04, 0x07, 0xD8, 0xD0,
+ 0x01, 0xC0, 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD3, 0x0F, 0x71,
+ 0x23, 0xF1, 0x01, 0x04, 0x7F, 0xD0, 0x60, 0xD1, 0x00, 0xC1,
+ 0x40, 0xD2, 0x0B, 0x00, 0x02, 0xF0, 0x1C, 0xA0, 0x03, 0xD1,
+ 0x00, 0xF0, 0x1C, 0xD0, 0x01, 0xD1, 0x03, 0xD2, 0x03, 0xD3,
+ 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD4, 0x9E, 0xA4, 0x45, 0xD5,
+ 0x10, 0xC5, 0x01, 0xF4, 0x5C, 0xD5, 0x40, 0xC5, 0x0B, 0xA4,
+ 0x43, 0xF4, 0x5C, 0xD3, 0x00, 0xC3, 0xF0, 0xD5, 0xD6, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x19, 0xD4, 0x01, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x03, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x04, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x05, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x06, 0xC3, 0xF0, 0xD5,
+ 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x07, 0xC3,
+ 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x09, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x0E, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x0F, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD0,
+ 0xFF, 0xC0, 0x03, 0xD1, 0x54, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x99, 0xD4, 0x01, 0xC4, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xC5, 0x19, 0xD4, 0x01, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x00, 0xC5, 0x99, 0xD4, 0x01, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x40, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5,
+ 0x19, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5,
+ 0x99, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4,
+ 0x02, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x02, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x23, 0xC5, 0x19, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x23, 0xC5, 0x99, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5,
+ 0x19, 0xD4, 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4,
+ 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x20, 0xC5, 0x19, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5,
+ 0x99, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x05, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x20, 0xC5, 0x99, 0xD4, 0x05, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x06, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x06, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xD4,
+ 0x00, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xEC,
+ 0xAF, 0xD1, 0x54, 0xD2, 0xA0, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x90, 0xC2, 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x44, 0xC2,
+ 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0xDC, 0xC2, 0x02, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2, 0x02, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0x58, 0xC2, 0x04, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x2C, 0xC2, 0x03, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2,
+ 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x88, 0xC2, 0x04, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x04, 0xC2, 0x09, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0xD0, 0xC2, 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x20, 0xC2, 0x0D, 0xF1, 0x2C, 0xA1, 0x13, 0xD5, 0x0E, 0xD6,
+ 0x00, 0xD7, 0x03, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x0F, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xA3, 0xD6,
+ 0x0E, 0xD7, 0x0E, 0xE0, 0x05, 0x07, 0xA3, 0xD5, 0xFF, 0xC5,
+ 0xFF, 0xF5, 0x09, 0xD5, 0x01, 0xC5, 0x80, 0xD6, 0x02, 0xE0,
+ 0x05, 0x07, 0xD8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5, 0x01, 0xC5,
+ 0x01, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87,
+ 0x7C, 0xD8, 0xBC, 0xF8, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD0, 0x00, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0,
+ 0x00, 0x07, 0xBF, 0xD0, 0x01, 0xD1, 0x07, 0xD2, 0x08, 0xD3,
+ 0x00, 0xE0, 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4,
+ 0x00, 0xC4, 0xA0, 0xF4, 0x09, 0xD0, 0x00, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07,
+ 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07, 0xD8, 0xC6,
+ 0xC0, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4,
+ 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07, 0xE7, 0xDA,
+ 0xFF, 0x27, 0x6E, 0x2D, 0x5A, 0x88, 0x5F, 0x88, 0x83, 0x87,
+ 0x78, 0xDA, 0x8E, 0xAA, 0xA7, 0xFA, 0x7C, 0xAA, 0xA9, 0xFA,
+ 0x8C, 0xAA, 0xA9, 0xFA, 0x9C, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x3F, 0xC6, 0xC0, 0xD6, 0x30, 0xC6,
+ 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD0, 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD0,
+ 0x01, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD2, 0x60, 0xA2, 0x23, 0xF1,
+ 0x28, 0xA2, 0x23, 0xF0, 0x28, 0xD2, 0x00, 0xD4, 0x00, 0xD3,
+ 0x00, 0xD5, 0x04, 0xE0, 0x06, 0x07, 0x38, 0x02, 0x26, 0x04,
+ 0x48, 0x03, 0x37, 0xB5, 0x52, 0xF5, 0x05, 0x05, 0x2F, 0x82,
+ 0x29, 0x84, 0x49, 0x83, 0x39, 0x25, 0x43, 0x24, 0x23, 0xD2,
+ 0x60, 0xA2, 0x23, 0xF2, 0x1C, 0xA2, 0x23, 0xF2, 0x0C, 0xD7,
+ 0x70, 0xC7, 0x0D, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6,
+ 0xBD, 0xF6, 0x7C, 0xD7, 0x0A, 0xC7, 0x0B, 0xA6, 0x41, 0xE0,
+ 0x06, 0x07, 0x1D, 0xD6, 0xBE, 0xF6, 0x7C, 0xD7, 0x51, 0xC7,
+ 0x0A, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6, 0xBF, 0xF6,
+ 0x7C, 0xD0, 0xD3, 0xC0, 0x01, 0xD1, 0xE0, 0xC1, 0x01, 0x32,
+ 0x04, 0xA2, 0x23, 0x82, 0x23, 0x33, 0x15, 0xA3, 0x33, 0x83,
+ 0x33, 0xD6, 0x80, 0x14, 0x26, 0x26, 0x44, 0x86, 0x6F, 0x18,
+ 0x46, 0xD6, 0xBA, 0xF6, 0x8C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x03, 0x29, 0x89, 0x99,
+ 0x9E, 0x98, 0x86, 0x19, 0x89, 0xA9, 0x97, 0x89, 0x92, 0xA8,
+ 0x90, 0xD6, 0x41, 0xC6, 0x24, 0xF8, 0x01, 0x05, 0x79, 0x06,
+ 0x69, 0xD8, 0xBB, 0xF8, 0x6C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x0C, 0x29, 0x89, 0x99,
+ 0x9E, 0xD6, 0x12, 0x28, 0x86, 0x98, 0x8E, 0x09, 0x89, 0xF9,
+ 0x0D, 0xA9, 0x9F, 0xA9, 0x9B, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x26, 0x96, 0x46, 0x87, 0xD7, 0x08, 0xD8, 0x0B, 0xD9,
+ 0x04, 0xE0, 0x06, 0x07, 0xBF, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x06, 0x29, 0x89, 0x99,
+ 0x9E, 0xB9, 0x9C, 0xF9, 0x0D, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x29, 0x96, 0x49, 0x87, 0xA7, 0x90, 0x26, 0x97, 0xD7,
+ 0x18, 0xD8, 0x1B, 0xD9, 0x05, 0xE0, 0x06, 0x07, 0xBF, 0xD5,
+ 0x0E, 0xC5, 0x70, 0xE0, 0x05, 0x07, 0xE7, 0x87, 0x74, 0x87,
+ 0x7F, 0x87, 0x7F, 0xD5, 0x01, 0xF7, 0x01, 0x05, 0xB9, 0xD5,
+ 0x02, 0xB7, 0x76, 0xF7, 0x01, 0x05, 0xB9, 0xD5, 0x00, 0xD6,
+ 0x0C, 0xD7, 0x0D, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x00, 0xD6, 0x0E, 0xD7, 0x0E, 0xD8, 0x0E, 0xE0, 0x05, 0x07,
+ 0xA3, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xBF, 0xED,
+ 0xD5, 0xD2, 0x00, 0xC2, 0x13, 0x33, 0x12, 0x04, 0x13, 0x15,
+ 0x13, 0x5C, 0xC0, 0x5D, 0x0D, 0x23, 0xCD, 0xF3, 0x05, 0x05,
+ 0xD4, 0xA0, 0x11, 0xF0, 0x02, 0xF0, 0x0E, 0xF0, 0x0E, 0xE0,
+ 0x00, 0x07, 0xF9, 0xE0, 0x00, 0x07, 0xF5, 0xF0, 0x0E, 0xEE,
+ 0x36, 0xF0, 0x0A, 0xFB, 0x08, 0xF9, 0x18, 0xBA, 0x9A, 0xB6,
+ 0x62, 0x1C, 0xB6, 0x1C, 0x8A, 0xF6, 0x18, 0xF8, 0x01, 0x06,
+ 0x1B, 0xFB, 0x01, 0x06, 0x4A, 0xB9, 0x92, 0xF9, 0x05, 0x05,
+ 0xEF, 0xDA, 0x13, 0xF8, 0x28, 0xFA, 0x84, 0xBB, 0xB2, 0xFB,
+ 0x01, 0x06, 0x4A, 0xBB, 0xB8, 0xFB, 0x01, 0x06, 0x1F, 0xD7,
+ 0x00, 0xC7, 0x94, 0xF7, 0x78, 0xD9, 0x00, 0xC9, 0xFF, 0x19,
+ 0x79, 0xF9, 0x01, 0x06, 0x4C, 0xD7, 0x00, 0xC7, 0xD0, 0xF9,
+ 0x78, 0xD8, 0x00, 0xF7, 0x8C, 0xF9, 0x05, 0x06, 0x1B, 0xD8,
+ 0x12, 0xF8, 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8,
+ 0x9C, 0xDA, 0x10, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8,
+ 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD8, 0x11, 0xF8,
+ 0x88, 0xF4, 0x8C, 0xD8, 0x00, 0xC8, 0x8C, 0xD9, 0x01, 0xF8,
+ 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9, 0x13, 0xFA, 0x98, 0xF2,
+ 0xAC, 0xEE, 0x0E, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x60, 0xF7,
+ 0x8C, 0xD8, 0x0E, 0xF8, 0x88, 0xF4, 0x8C, 0xD8, 0x0F, 0xF8,
+ 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8, 0x9C, 0xDA,
+ 0x0D, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8, 0x00, 0xC8,
+ 0x8C, 0xD9, 0x05, 0xF8, 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9,
+ 0x00, 0xC9, 0xAC, 0xD8, 0x0C, 0xFA, 0x80, 0xF9, 0xAC, 0xD9,
+ 0x00, 0xC9, 0x08, 0xD7, 0x00, 0xC7, 0x34, 0xF7, 0x9C, 0xC9,
+ 0x38, 0xD7, 0x00, 0xC7, 0x44, 0xF7, 0x9C, 0xC9, 0x20, 0xD7,
+ 0x00, 0xC7, 0x48, 0xF7, 0x9C, 0xD8, 0x15, 0xF2, 0x8C, 0xF0,
+ 0x06, 0xEE, 0x4B, 0xF0, 0x0A, 0xD7, 0x15, 0xD8, 0x00, 0xC8,
+ 0x30, 0xF8, 0x7C, 0xD7, 0x00, 0xC7, 0x98, 0xF6, 0x78, 0xD8,
+ 0x1A, 0xF8, 0x6C, 0xD8, 0x00, 0xC8, 0xAC, 0xDA, 0x20, 0xF8,
+ 0xAC, 0xD9, 0x20, 0xDA, 0x0A, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x14, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x11, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x15, 0xCA,
+ 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x30, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x00, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x94, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x78, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x98, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x88, 0xCA, 0xF9, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA,
+ 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDA, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDB, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x64, 0xCA, 0xCB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xAC, 0xCA, 0xFB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xD8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x07, 0xCA, 0xC8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA, 0x26, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA,
+ 0x26, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA, 0xF6, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x15, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x67, 0xCA, 0x17, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x01, 0xCA,
+ 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x72, 0xCA, 0xB7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x01, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x06, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x42, 0xCA, 0xE8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xEC, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x11, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA, 0xEF, 0xF9, 0xAC, 0xF7,
+ 0x7C, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD7,
+ 0x14, 0xF7, 0x11, 0xEE, 0x4A, 0xF0, 0x0E, 0x44, 0xDC, 0xF4,
+ 0x05, 0x07, 0x13, 0xD4, 0x01, 0x7F, 0xC4, 0x7C, 0x1C, 0x13,
+ 0x43, 0x61, 0x13, 0xA2, 0x31, 0x6C, 0xCD, 0xB2, 0x22, 0xA4,
+ 0x20, 0xF4, 0x05, 0x07, 0x06, 0xA1, 0x01, 0xD4, 0x0F, 0x14,
+ 0x43, 0x60, 0x04, 0x70, 0x04, 0xA4, 0x33, 0x71, 0x14, 0xEF,
+ 0x15, 0xA1, 0x01, 0xD0, 0x00, 0xF0, 0x02, 0xD0, 0x01, 0xC0,
+ 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD1, 0x0F, 0x70, 0x21, 0xF0,
+ 0x02, 0x83, 0x03, 0xA5, 0x31, 0xD4, 0x58, 0xC4, 0x4F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x22, 0x14, 0x34, 0x15, 0x85, 0x3F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x82, 0x29, 0x82, 0x29, 0x02, 0x24, 0xD1,
+ 0x22, 0x11, 0x12, 0xD6, 0x00, 0x4F, 0xE1, 0xD8, 0x01, 0x17,
+ 0x87, 0x21, 0x17, 0xD6, 0x10, 0x4F, 0xE1, 0xF7, 0x05, 0x07,
+ 0x37, 0xD1, 0x1F, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x02, 0xE0,
+ 0x00, 0x07, 0x45, 0xD1, 0x00, 0xD2, 0x01, 0xE0, 0x01, 0x07,
+ 0x45, 0xD2, 0x01, 0xD3, 0x02, 0xE0, 0x02, 0x07, 0x45, 0xF0,
+ 0x02, 0xD3, 0x00, 0xC3, 0xC0, 0xD4, 0x00, 0xD5, 0x0F, 0xD6,
+ 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xD3, 0xC6, 0xC3, 0x10, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0xC6, 0xC3, 0x10, 0x87, 0x1E, 0x87,
+ 0x76, 0x1F, 0xF7, 0x87, 0x0E, 0x87, 0x7C, 0x1F, 0xF7, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3, 0x09, 0xD3,
+ 0x01, 0xD4, 0x1F, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07,
+ 0xBF, 0xE0, 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3,
+ 0x09, 0xD3, 0x00, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0xD3,
+ 0xFF, 0xC3, 0x03, 0x2C, 0x4F, 0xD3, 0x00, 0xD4, 0x1F, 0xD5,
+ 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0, 0x03, 0x07,
+ 0xA8, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x2C, 0xE0, 0x00, 0x07,
+ 0xD4, 0xF0, 0x02, 0xA4, 0x43, 0xF4, 0x0D, 0xD7, 0x01, 0x2D,
+ 0xCB, 0xD6, 0x10, 0x5E, 0x0E, 0xF6, 0x01, 0x07, 0x96, 0xD6,
+ 0x10, 0x16, 0x06, 0x67, 0x76, 0x65, 0x56, 0x1F, 0xF7, 0x3F,
+ 0xF5, 0xEF, 0x9A, 0x67, 0x70, 0x65, 0x50, 0x1E, 0xE7, 0x3E,
+ 0xE5, 0x17, 0x10, 0x55, 0xDC, 0x85, 0x52, 0xB5, 0x52, 0x00,
+ 0x05, 0x84, 0x43, 0xF7, 0x05, 0x07, 0x89, 0xF0, 0x02, 0xE0,
+ 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xF0, 0x02, 0xD0,
+ 0x60, 0xF1, 0x08, 0xD6, 0x00, 0xC6, 0xF0, 0xD3, 0x01, 0xD2,
+ 0x10, 0xA0, 0x03, 0xF7, 0x08, 0xA0, 0x03, 0xF8, 0x08, 0x24,
+ 0xDF, 0xF4, 0x01, 0x07, 0xB7, 0xE0, 0x06, 0x07, 0xD8, 0xA6,
+ 0x63, 0x81, 0x13, 0xB2, 0x22, 0xF2, 0x05, 0x07, 0xAE, 0xD0,
+ 0x60, 0xF0, 0x1C, 0xF0, 0x02, 0xAA, 0x01, 0xA6, 0x11, 0xA7,
+ 0x21, 0xD4, 0x60, 0xF5, 0x48, 0xDB, 0x01, 0x6B, 0xB3, 0x15,
+ 0x5F, 0xF4, 0x5C, 0xA4, 0x43, 0x8B, 0x32, 0x04, 0x4B, 0xF8,
+ 0x48, 0xA4, 0x43, 0xF9, 0x48, 0xE0, 0x06, 0x07, 0x87, 0xF4,
+ 0x9C, 0xB4, 0x42, 0xF4, 0x8C, 0xF0, 0x02, 0xC0, 0x80, 0xE0,
+ 0x00, 0x07, 0xD8, 0xF0, 0x02, 0xF0, 0x0A, 0xD3, 0x00, 0xC3,
+ 0x9C, 0xF3, 0x1C, 0xC3, 0xA0, 0xF3, 0x2C, 0xC3, 0xA4, 0xF3,
+ 0x0C, 0xD3, 0x00, 0xC3, 0xA8, 0xF3, 0x38, 0xF3, 0x01, 0x07,
+ 0xE0, 0xF0, 0x06, 0xF0, 0x02, 0xF0, 0x0A, 0xD2, 0x00, 0xC2,
+ 0xA4, 0xF2, 0x0C, 0xC2, 0xA8, 0xF1, 0x28, 0xF1, 0x01, 0x07,
+ 0xEC, 0xC2, 0x9C, 0xF1, 0x28, 0xC2, 0xA0, 0xF2, 0x28, 0xF0,
+ 0x06, 0xF0, 0x02, 0xD1, 0x00, 0xC1, 0x98, 0xF1, 0x0C, 0xF0,
+ 0x02, 0xD1, 0x00, 0xC1, 0x94, 0xF0, 0x18, 0xC1, 0x98, 0xF1,
+ 0x18, 0xF0, 0x02, 0xED, 0xDC, 0x90, 0x00, 0x88, 0x00, 0x30,
+ 0x00, 0x34, 0x00, 0x24, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0xDD, 0x3D, 0xD7, 0x00, 0x15, 0x00, 0x1A, 0x0A, 0x19, 0x00,
+ 0x1E, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x76, 0x01, 0x38, 0x02,
+ 0xC0, 0x02, 0x30, 0x04, 0x20, 0x03, 0x60, 0x06, 0x5C, 0x04,
+ 0xBC, 0x09, 0x60, 0x07, 0x9C, 0x0D, 0x70, 0xFF, 0xFF, 0x7A,
+ 0xF5, 0x10, 0xAE, 0x70, 0xA5, 0x22, 0x7C, 0x00, 0x00, 0x00,
+ 0x00, 0x1E, 0x17, 0x00, 0x04, 0x2C, 0x5F, 0x00, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x27, 0xC5, 0x21, 0xF0, 0x16, 0x27, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x67, 0x42, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x1C, 0xFE,
+ 0xFE, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x30, 0x00, 0x0C, 0x08, 0x30, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0C, 0x00,
+ 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x50, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0A, 0x03, 0xA9, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0F, 0x00,
+ 0x08, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x64, /* WAIT 100[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFF, 0x00, 0x00, 0xEC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x01, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x02, 0xB8, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x01, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x08, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x11, 0xB2, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2C, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x06, 0xB2, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x00, 0xC2, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x12, 0x02, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xA0, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x8E, 0xE9, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x05, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xA0, 0xD2, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x08, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x6D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x56,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xA0, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xEE, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x50, 0xD3, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xAA, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x9F, 0xA1, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x04, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0F, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x24, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xE8, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xC7, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDC, 0xE9, 0x8F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0A, 0xC1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x09, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB0, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x40, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x05, 0x01, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xE9, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x05, 0xD9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x4D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x23, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x4D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xA0, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x93, 0xE9, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x87, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x88, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x95,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x06, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x12, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x07, 0xD3, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x00, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x6D, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x56, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xAA, 0xE9, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x10, 0xD1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x01, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB0, 0xD5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x21, 0x03, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x53, 0x24, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x11, 0x34, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x93, 0x11, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xD9, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x7C, 0xB3, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x01, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x05, 0x5F, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x05, 0x01, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x05, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x05, 0xE9, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x01, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x8F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x02, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x95, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x89, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x01, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x24, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xFE, 0xD2, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x27, 0xF3, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x9A, 0xE9, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0x7D, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x1E, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x0A, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xE5, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xE4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xDC, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xD6, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xCC, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0A, 0x80, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0D, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xB9, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x92, 0x11, 0x3C, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x22, 0x3C, 0xCE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x0C, 0xD0, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xD4, 0xC0, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x0C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xD1, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x03, 0xC0, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x1A, 0x80, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x03, 0xD7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x60, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xAA, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0xD7, 0xD5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x45, 0xF5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xF3, 0xB6, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xF6, 0x74, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0x06, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0xB8, 0x74, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0x15, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x0D, 0x22, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x25, 0xD3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x23, 0xD3, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xFE, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x20, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0xB9, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x34, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x70, 0x21, 0xEA, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xEA, 0x61,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xFB, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x18, 0xBA, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x62, 0x1C, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0x8A, 0xF6, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x02, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x22, 0xDA, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x28, 0xFA, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBB, 0xB2, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x75, 0xBB, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x4A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x78, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x46, 0xD8, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xDA, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0xAC, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xD8, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF4, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xC8, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x01, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x13, 0xFA, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xAC, 0xEA, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x60, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0E, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x8C, 0xD8, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xDA, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0xAC, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x8C, 0xD9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0xAC, 0xD8, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x80, 0xF9, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xC9, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xC9, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xD8, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x8C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x76, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xD0, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x05, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x05, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x02, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x12, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x03, 0xFA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x12, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x0A, 0xF7, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x71, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x04, 0xD3, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x51, 0xF6, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xC2, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0xF8, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x37, 0x1A, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB8, 0x62, 0x1C, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x63, 0x1D, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x89, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xAF, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xB4, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x08, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xE3, 0xEA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x03, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x18, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xC5, 0xA9, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x38, 0xA8, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x03, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0x12, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xA3, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0xB6, 0x25, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x62, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x18, 0x82, 0x24, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x18, 0x23, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0x08, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x33, 0xEA, 0xE3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xF0, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x8E, 0xD3, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x13, 0xF3, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x32, 0xF0, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x04, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x0F, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x29, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x78, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x88, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD2, 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0xB4, 0xD4, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x1C, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xA3, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xEE, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x8E, 0xD6, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x28, 0x84, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x44, 0xB3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x38, 0xA3, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0xA9, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x46, 0xD9, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x04, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x05, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x0A, 0xF9, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x03, 0xFA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x41, 0xAA, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x28, 0xFB, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x03, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x69, 0x07, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x54, 0x27, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0x4F, 0xA9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x7F, 0xAA, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7A, 0x27, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x03, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x4C, 0xA7, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0x01, 0x9A, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x0E, 0x97, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7F, 0x2F, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x02, 0xF5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xD6, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xBA, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x05, 0x02, 0xFA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD4, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x01, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB0, 0x99, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x14, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB3, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x96, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x4A, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x10, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x04, 0xEB, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF7, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x58, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x13, 0x19, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x27, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x68, 0xB7, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x2C, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x58, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x69, 0xBA, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1B, 0x96, 0x49, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0x91, 0x29, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x0D, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0x08, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x07, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB0, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x0C, 0xDB, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x04, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xB1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0xB0, 0x4B, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x80, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x01, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x04, 0xEB, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x0C, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x58, 0xF8, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x03, 0x19, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x27, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xA0, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x2C, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x58, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xFA, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA6, 0x5E, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0xA2, 0x1B, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x49, 0xBA, 0x9A, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x9A, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0x08, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x17, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB0, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF7, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0x4B, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xA5, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x58, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x16, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xB1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0x94, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x42, 0xA5, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x05, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xD2, 0x5F, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xFA, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB7, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x25, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x5C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0x5E, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1E, 0x0A, 0x5E, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x13, 0xD2, 0x9E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xD3, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xFB, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xF6, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x36, 0x86, 0x66,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0xB3, 0x36, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x36, 0x33, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5C, 0xF4, 0x43, 0xCE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xE1, 0xD6, 0xF2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x03, 0x4E, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xF6, 0x10, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0x94, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x34, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2E, 0xFB, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x03, 0xF2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x3A, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xF2, 0xC4, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3B, 0x4B, 0xF2, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0xB3, 0xC5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0x5B, 0x2A, 0x1A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x01, 0x03, 0xF9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xBC, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x0F, 0xC7, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xFF, 0x22, 0xD7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0xC7, 0x83, 0x8F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0x82, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x8E, 0xA7, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x42, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0x80, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x44, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x9E, 0x98, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x28, 0x20, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x04, 0x1A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x68, 0xD8, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x42, 0x78, 0x82, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x2C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x3C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x4C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x5C, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x20, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x88, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xF6, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xD3, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xF0, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x01, 0xD5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x40, 0x1D, 0xDA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0xC0, 0x1D, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x12, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x14, 0xF4, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x71, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD4, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xFE, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0xE3, 0xC2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x5B, 0xC3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xA4, 0x1F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x4B, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x53, 0x33, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x34, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEC, 0x4D, 0xD4, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x20, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x53, 0x33, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x39, 0xD2, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x8E, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x12, 0x4F, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x03, 0xD6, 0xAA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x2A, 0x4E, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x1E, 0x4F, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x72, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xED, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0x4F, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0F, 0x27, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x01, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xBC, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x03, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xA2, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x35, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x82, 0xB3, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x08, 0xD6, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF8, 0xD6, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x3B, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x8E, 0xB3, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF8, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x77, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xD8, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x88, 0xD8, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x87, 0x94, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0x08, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x88, 0xD6, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x1B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x9C, 0xEC, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x35, 0xD5, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x98, 0x94, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xF7, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x75, 0xB3, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x31, 0x23, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x03, 0x2F, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0C, 0x07, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0E, 0xD6, 0xDA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD6, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x53, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xF0, 0x1C, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x60, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x62, 0x08, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x88, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x88, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xD2, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x18, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x54, 0xF5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x50, 0x5D, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x65, 0xA3, 0x2F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x39, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x50, 0x5D, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x65, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xA2, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x0C, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xDD, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x4F, 0x7D, 0xE9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x10, 0x15, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0x45, 0x73, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x70, 0x05, 0x20, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x33, 0x24, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0F, 0x83, 0x3F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x4F, 0x15, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x43, 0x23, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x60, 0xD5, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xC0, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x03, 0x36, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xE3, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x62, 0x26, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x06, 0x82, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xFB, 0xC5, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x36, 0x05, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x65, 0x86, 0x6F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x65, 0xA7, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x8D, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x67, 0x51, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x77, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x37, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xA7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0xFC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x09, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x10, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x8B, 0xF3, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x02, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x3E, 0xB7, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0C, 0xD6, 0xB0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x05, 0x37, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0xD6, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x68, 0x33, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xCF, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x1B, 0xC5, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x09, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x06, 0xC5, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x73, 0x86, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0x2D, 0xD8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2E, 0xE8, 0xD4, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4C, 0xC3, 0x26, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x31, 0x25, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x35, 0x03, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xE9, 0x95, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xF9, 0x20, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x05, 0x5A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x27, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x37, 0x84, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x34, 0xED, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0xED, 0xD5, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x3C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0x2D, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x92, 0xB6, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x33, 0xAA, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x80, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x10, 0x05, 0x5A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x5B, 0xDA, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x01, 0x5E, 0xA3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0xFD, 0xCB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5C, 0x3B, 0x5F, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xB8, 0x1E, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x01, 0xDB, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0x2B, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x19, 0x2B, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x52, 0xAA, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA5, 0x5C, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x7A, 0x2C, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x53, 0x2A, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0xA5, 0x8A, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x7A, 0x1C, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x52, 0x2A, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0xA5, 0x8A, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0xA6, 0x1C, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x05, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x24, 0xF1, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0x24, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x3B, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x78, 0xD2, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x80, 0x13, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x85, 0xFA, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x38, 0x2A, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA4, 0x16, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x05, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x60, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x92, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xCB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x46, 0x9B, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x68, 0xDA, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x6C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x16, 0xD1, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xB9, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xFF, 0xF2, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xD1, 0x2B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0E, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xBD, 0xD3, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD1, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0x81, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x02, 0x2D, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x82, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xD3, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0xFE, 0xF3, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x45, 0xEF, 0x2D, 0xC9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2C, 0xC5, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x0B, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xD5, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD3, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF9, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x3D, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF9, 0xD5, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD8, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x06, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x5E, 0xC9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x0D, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x02, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x25, 0xDA, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xA8, 0xD0, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0x2B, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x9B, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xEE, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x83, 0xF5, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x5B, 0xFA, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x15, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x25, 0xDA, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0xA8, 0xDA, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x06, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x31, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xEE, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xA8, 0xDB, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x47, 0xD3, 0x46, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x01, 0x06, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0xB9, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xBC, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x0B, 0xFB, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x3B, 0xFA, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x01, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x38, 0x16, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0x60, 0xFB, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x2C, 0xF6, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x84, 0xF4, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0x29, 0xDB, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xAB, 0xA9, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x06, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0xB4, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x3F, 0xDB, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x41, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0xC0, 0xFB, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x41, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x70, 0x46, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x85, 0xF9, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x69, 0x9A, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x6A, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x05, 0x06, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x75, 0x17, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x50, 0x17, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x95, 0x09, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x8C, 0xFA, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x2F, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0xA2, 0x19, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xCA, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA9, 0x47, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x08, 0x09, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x99, 0x89, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x97, 0xD9, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x5C, 0xD9, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x8C, 0xD7, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x06, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x08, 0x09, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x99, 0x89, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x96, 0xD9, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x5C, 0xA7, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x87, 0xF7, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x09, 0x77, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0xB6, 0x17, 0x7C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1D, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x82, 0xF6, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x07, 0x84, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x06, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x41, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x8D, 0x13, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD1, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD0, 0x16,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x12, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x82, 0xD0, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x02, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xCF, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x80, 0xD6, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x01, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x82, 0x07, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x08, 0xD6, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x01, 0xC5, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x0F, 0x77, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xCB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x40, 0xC6, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x89, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x86, 0xD6, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x09, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x02, 0xD6, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x81, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xA7, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x41, 0xA6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x05, 0x5E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x81, 0xD9, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x49, 0x8A, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x2F, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0xB3, 0x29, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x19, 0xC8, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x08, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x82, 0x18, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1C, 0xD7, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0xEE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x1B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xD7, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x1B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0x26,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x01, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x54, 0xDA, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x05, 0x09, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xDA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0xA0, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x7B, 0x97, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0x6B, 0x97,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xA4, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x0D, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xCB, 0xD6, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x0E, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x0E, 0xD6, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x06, 0x67, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x65, 0x56, 0x1F, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF5, 0xEF, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x67, 0x70, 0x65, 0x50,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1E, 0xE7, 0x3E, 0xE5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x10, 0x55, 0xDC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x52, 0xB5, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x84, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x07, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x20, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x00, 0xC4, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x10, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x08, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x08, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xDF, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x2F, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xA4, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x81, 0x13, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x07, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD3, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x38, 0x85, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0x66, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0xF3, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0x03, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x38, 0xA9, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x0D, 0xD5, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x1D, 0x88, 0x19,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0x27, 0xD6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x66, 0x65, 0x67, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0x3C, 0xCB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x85, 0x57, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x72, 0xB7, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x57, 0x89, 0x93,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x07, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x4C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x00, 0xC6, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x01, 0xD2, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF8, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0xDF, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x65, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xA6, 0x63,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x81, 0x13, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x07, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x60, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xAA, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x11, 0xA7, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x60, 0xF5, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x6B, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x5F, 0xF4, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x43, 0x8B, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x4B, 0xF8, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x43, 0xF9, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x06, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x9C, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x8C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x80, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x9C, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA0, 0xF3, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA4, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xC3, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x38, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x8E, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x4C, 0xD2, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x3C, 0xD3, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x02, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xA1, 0xD2, 0x47,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x24, 0xD3, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x8D, 0xD1, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0xF0, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x86, 0xD6, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x68, 0xD2, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x40, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x37, 0xD0, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xFF, 0xC1, 0xFD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xC0, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x03, 0x2D, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x13, 0x2C, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x98, 0xF1, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x94, 0xF0, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x98, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xF0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x00, 0xC2, 0xA4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x0C, 0xC2, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x28, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC8, 0xC2, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x28, 0xC2, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x08, 0xD3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x20, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x94, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x24, 0xD5, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x58, 0x26, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x96, 0x6E, 0x10, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD1, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xF1, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x86, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x89, 0xF5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x01, 0xC6, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x78, 0x97, 0x7C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x71, 0xD4, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x48, 0x17, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x35, 0x40, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x71, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x09, 0xC0, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x08, 0x0E, 0xD4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x63, 0x14, 0x0F, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x11, 0x23, 0x80, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xEA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x90, 0x00, 0x88, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x30, 0x00, 0x34, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x00, 0x6C, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x10, 0x39, 0xA4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x15, 0x00, 0x24,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0xEC, 0x00, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x51, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x12, 0x39,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x0C, 0x80, 0xF0, 0xF7, 0x3E, 0x75, 0xC1, 0x8A, 0xE4, 0x02,
+ 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x05, 0x13, 0xEE, 0xAA, 0x5F, 0xEA, 0x90,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x06, 0x00, 0x0A, 0x4D, 0x8C, 0xF2, 0xD8, 0xCF, 0x30, 0x09,
+ 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0B, 0x04, 0xA4, 0x6C,
+ 0x00, 0x10, /* Length = 16 bytes */
+ 0x0A, 0x01, 0x23, 0x24, 0x40, 0x08, 0xC3, 0x20, 0x10, 0x64,
+ 0x3C, 0xFA, 0xF7, 0xE1, 0x0C, 0x2C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x09, 0x0B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x1B, 0x06, 0x28, 0x10, 0x60, 0x20, 0x91, 0xCD, 0x18,
+ 0x0B, 0x2E,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x10, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x16, 0x12,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1F, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x01, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x10,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 9070 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_base_firmware_i2c_files_base_firmwares_fm_input1_init = {
+ XC3028_base_firmware_i2c_files_base_firmwares_fm_input1_init_SEQUENCE
+};
+
+unsigned char XC3028_base_firmware_i2c_files_base_firmwares_init_SEQUENCE[9134] = {
+
+ 0x00, 0x00, /* RESET */
+ 0x0D, 0x53, /* Length = 3411 bytes */
+ 0x2A, 0x02, 0x19, 0xE0, 0x00, 0x07, 0xF5, 0xD4, 0x00, 0xC4,
+ 0xF0, 0xD6, 0xAE, 0xC6, 0x10, 0xD5, 0xF5, 0xC5, 0x7A, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x01, 0xC4, 0xF0, 0xD6, 0x51, 0xC6,
+ 0x02, 0xD5, 0x99, 0xC5, 0xA3, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x03, 0xC4, 0xF0, 0xD6, 0x04, 0xD5, 0x87, 0xC5, 0x06, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x04, 0xC4, 0xF0, 0xD6, 0x00, 0xD5,
+ 0x1F, 0xC5, 0x2C, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0x06, 0xD5, 0x00, 0xC5, 0x40, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x80, 0xD5,
+ 0xCD, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x07, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0xC0, 0xD5, 0x05, 0xC5, 0x2F, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x09, 0xC4, 0xF0, 0xD6, 0xC0, 0xC6,
+ 0x42, 0xD5, 0x67, 0xC5, 0x3C, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x0F, 0xC4, 0xF0, 0xD6, 0x3F, 0xC6, 0xC0, 0xD5, 0x11, 0xC5,
+ 0x11, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6,
+ 0x00, 0xC6, 0x24, 0xD5, 0x0E, 0xC5, 0x2E, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4,
+ 0x70, 0xE0, 0x04, 0x07, 0xE7, 0x86, 0x69, 0x86, 0x69, 0xA2,
+ 0x61, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x00, 0xC6, 0x24, 0xD5,
+ 0xC0, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4,
+ 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07,
+ 0xE7, 0x86, 0x69, 0x86, 0x69, 0x12, 0x62, 0x98, 0x21, 0xF8,
+ 0x05, 0x02, 0x88, 0xF2, 0x0D, 0xD8, 0x80, 0x4C, 0x28, 0xF8,
+ 0x05, 0x02, 0x94, 0xE0, 0x00, 0x07, 0x82, 0xD4, 0x0E, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xD5, 0x00, 0xE0, 0x04, 0x07, 0xD8, 0xD0,
+ 0x01, 0xC0, 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD3, 0x0F, 0x71,
+ 0x23, 0xF1, 0x01, 0x04, 0x7F, 0xD0, 0x60, 0xD1, 0x00, 0xC1,
+ 0x40, 0xD2, 0x0B, 0x00, 0x02, 0xF0, 0x1C, 0xA0, 0x03, 0xD1,
+ 0x00, 0xF0, 0x1C, 0xD0, 0x01, 0xD1, 0x03, 0xD2, 0x03, 0xD3,
+ 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD4, 0x9E, 0xA4, 0x45, 0xD5,
+ 0x10, 0xC5, 0x01, 0xF4, 0x5C, 0xD5, 0x40, 0xC5, 0x0B, 0xA4,
+ 0x43, 0xF4, 0x5C, 0xD3, 0x00, 0xC3, 0xF0, 0xD5, 0xD6, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x19, 0xD4, 0x01, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x03, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x04, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x05, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x06, 0xC3, 0xF0, 0xD5,
+ 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x07, 0xC3,
+ 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x09, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x0E, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x0F, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD0,
+ 0xFF, 0xC0, 0x03, 0xD1, 0x54, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x99, 0xD4, 0x01, 0xC4, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xC5, 0x19, 0xD4, 0x01, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x00, 0xC5, 0x99, 0xD4, 0x01, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x40, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5,
+ 0x19, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5,
+ 0x99, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4,
+ 0x02, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x02, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x23, 0xC5, 0x19, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x23, 0xC5, 0x99, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5,
+ 0x19, 0xD4, 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4,
+ 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x20, 0xC5, 0x19, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5,
+ 0x99, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x05, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x20, 0xC5, 0x99, 0xD4, 0x05, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x06, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x06, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xD4,
+ 0x00, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xEC,
+ 0xAF, 0xD1, 0x54, 0xD2, 0xA0, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x90, 0xC2, 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x44, 0xC2,
+ 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0xDC, 0xC2, 0x02, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2, 0x02, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0x58, 0xC2, 0x04, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x2C, 0xC2, 0x03, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2,
+ 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x88, 0xC2, 0x04, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x04, 0xC2, 0x09, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0xD0, 0xC2, 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x20, 0xC2, 0x0D, 0xF1, 0x2C, 0xA1, 0x13, 0xD5, 0x0E, 0xD6,
+ 0x00, 0xD7, 0x03, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x0F, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xA3, 0xD6,
+ 0x0E, 0xD7, 0x0E, 0xE0, 0x05, 0x07, 0xA3, 0xD5, 0xFF, 0xC5,
+ 0xFF, 0xF5, 0x09, 0xD5, 0x01, 0xC5, 0x80, 0xD6, 0x02, 0xE0,
+ 0x05, 0x07, 0xD8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5, 0x01, 0xC5,
+ 0x01, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87,
+ 0x7C, 0xD8, 0xBC, 0xF8, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD0, 0x00, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0,
+ 0x00, 0x07, 0xBF, 0xD0, 0x01, 0xD1, 0x07, 0xD2, 0x08, 0xD3,
+ 0x00, 0xE0, 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4,
+ 0x00, 0xC4, 0xA0, 0xF4, 0x09, 0xD0, 0x00, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07,
+ 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07, 0xD8, 0xC6,
+ 0xC0, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4,
+ 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07, 0xE7, 0xDA,
+ 0xFF, 0x27, 0x6E, 0x2D, 0x5A, 0x88, 0x5F, 0x88, 0x83, 0x87,
+ 0x78, 0xDA, 0x8E, 0xAA, 0xA7, 0xFA, 0x7C, 0xAA, 0xA9, 0xFA,
+ 0x8C, 0xAA, 0xA9, 0xFA, 0x9C, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x3F, 0xC6, 0xC0, 0xD6, 0x30, 0xC6,
+ 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD0, 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD0,
+ 0x01, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD2, 0x60, 0xA2, 0x23, 0xF1,
+ 0x28, 0xA2, 0x23, 0xF0, 0x28, 0xD2, 0x00, 0xD4, 0x00, 0xD3,
+ 0x00, 0xD5, 0x04, 0xE0, 0x06, 0x07, 0x38, 0x02, 0x26, 0x04,
+ 0x48, 0x03, 0x37, 0xB5, 0x52, 0xF5, 0x05, 0x05, 0x2F, 0x82,
+ 0x29, 0x84, 0x49, 0x83, 0x39, 0x25, 0x43, 0x24, 0x23, 0xD2,
+ 0x60, 0xA2, 0x23, 0xF2, 0x1C, 0xA2, 0x23, 0xF2, 0x0C, 0xD7,
+ 0x70, 0xC7, 0x0D, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6,
+ 0xBD, 0xF6, 0x7C, 0xD7, 0x0A, 0xC7, 0x0B, 0xA6, 0x41, 0xE0,
+ 0x06, 0x07, 0x1D, 0xD6, 0xBE, 0xF6, 0x7C, 0xD7, 0x51, 0xC7,
+ 0x0A, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6, 0xBF, 0xF6,
+ 0x7C, 0xD0, 0xD3, 0xC0, 0x01, 0xD1, 0xE0, 0xC1, 0x01, 0x32,
+ 0x04, 0xA2, 0x23, 0x82, 0x23, 0x33, 0x15, 0xA3, 0x33, 0x83,
+ 0x33, 0xD6, 0x80, 0x14, 0x26, 0x26, 0x44, 0x86, 0x6F, 0x18,
+ 0x46, 0xD6, 0xBA, 0xF6, 0x8C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x03, 0x29, 0x89, 0x99,
+ 0x9E, 0x98, 0x86, 0x19, 0x89, 0xA9, 0x97, 0x89, 0x92, 0xA8,
+ 0x90, 0xD6, 0x41, 0xC6, 0x24, 0xF8, 0x01, 0x05, 0x79, 0x06,
+ 0x69, 0xD8, 0xBB, 0xF8, 0x6C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x0C, 0x29, 0x89, 0x99,
+ 0x9E, 0xD6, 0x12, 0x28, 0x86, 0x98, 0x8E, 0x09, 0x89, 0xF9,
+ 0x0D, 0xA9, 0x9F, 0xA9, 0x9B, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x26, 0x96, 0x46, 0x87, 0xD7, 0x08, 0xD8, 0x0B, 0xD9,
+ 0x04, 0xE0, 0x06, 0x07, 0xBF, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x06, 0x29, 0x89, 0x99,
+ 0x9E, 0xB9, 0x9C, 0xF9, 0x0D, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x29, 0x96, 0x49, 0x87, 0xA7, 0x90, 0x26, 0x97, 0xD7,
+ 0x18, 0xD8, 0x1B, 0xD9, 0x05, 0xE0, 0x06, 0x07, 0xBF, 0xD5,
+ 0x0E, 0xC5, 0x70, 0xE0, 0x05, 0x07, 0xE7, 0x87, 0x74, 0x87,
+ 0x7F, 0x87, 0x7F, 0xD5, 0x01, 0xF7, 0x01, 0x05, 0xB9, 0xD5,
+ 0x02, 0xB7, 0x76, 0xF7, 0x01, 0x05, 0xB9, 0xD5, 0x00, 0xD6,
+ 0x0C, 0xD7, 0x0D, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x00, 0xD6, 0x0E, 0xD7, 0x0E, 0xD8, 0x0E, 0xE0, 0x05, 0x07,
+ 0xA3, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xBF, 0xED,
+ 0xD5, 0xD2, 0x00, 0xC2, 0x13, 0x33, 0x12, 0x04, 0x13, 0x15,
+ 0x13, 0x5C, 0xC0, 0x5D, 0x0D, 0x23, 0xCD, 0xF3, 0x05, 0x05,
+ 0xD4, 0xA0, 0x11, 0xF0, 0x02, 0xF0, 0x0E, 0xF0, 0x0E, 0xE0,
+ 0x00, 0x07, 0xF9, 0xE0, 0x00, 0x07, 0xF5, 0xF0, 0x0E, 0xEE,
+ 0x36, 0xF0, 0x0A, 0xFB, 0x08, 0xF9, 0x18, 0xBA, 0x9A, 0xB6,
+ 0x62, 0x1C, 0xB6, 0x1C, 0x8A, 0xF6, 0x18, 0xF8, 0x01, 0x06,
+ 0x1B, 0xFB, 0x01, 0x06, 0x4A, 0xB9, 0x92, 0xF9, 0x05, 0x05,
+ 0xEF, 0xDA, 0x13, 0xF8, 0x28, 0xFA, 0x84, 0xBB, 0xB2, 0xFB,
+ 0x01, 0x06, 0x4A, 0xBB, 0xB8, 0xFB, 0x01, 0x06, 0x1F, 0xD7,
+ 0x00, 0xC7, 0x94, 0xF7, 0x78, 0xD9, 0x00, 0xC9, 0xFF, 0x19,
+ 0x79, 0xF9, 0x01, 0x06, 0x4C, 0xD7, 0x00, 0xC7, 0xD0, 0xF9,
+ 0x78, 0xD8, 0x00, 0xF7, 0x8C, 0xF9, 0x05, 0x06, 0x1B, 0xD8,
+ 0x12, 0xF8, 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8,
+ 0x9C, 0xDA, 0x10, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8,
+ 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD8, 0x11, 0xF8,
+ 0x88, 0xF4, 0x8C, 0xD8, 0x00, 0xC8, 0x8C, 0xD9, 0x01, 0xF8,
+ 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9, 0x13, 0xFA, 0x98, 0xF2,
+ 0xAC, 0xEE, 0x0E, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x60, 0xF7,
+ 0x8C, 0xD8, 0x0E, 0xF8, 0x88, 0xF4, 0x8C, 0xD8, 0x0F, 0xF8,
+ 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8, 0x9C, 0xDA,
+ 0x0D, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8, 0x00, 0xC8,
+ 0x8C, 0xD9, 0x05, 0xF8, 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9,
+ 0x00, 0xC9, 0xAC, 0xD8, 0x0C, 0xFA, 0x80, 0xF9, 0xAC, 0xD9,
+ 0x00, 0xC9, 0x08, 0xD7, 0x00, 0xC7, 0x34, 0xF7, 0x9C, 0xC9,
+ 0x38, 0xD7, 0x00, 0xC7, 0x44, 0xF7, 0x9C, 0xC9, 0x20, 0xD7,
+ 0x00, 0xC7, 0x48, 0xF7, 0x9C, 0xD8, 0x15, 0xF2, 0x8C, 0xF0,
+ 0x06, 0xEE, 0x4B, 0xF0, 0x0A, 0xD7, 0x15, 0xD8, 0x00, 0xC8,
+ 0x30, 0xF8, 0x7C, 0xD7, 0x00, 0xC7, 0x98, 0xF6, 0x78, 0xD8,
+ 0x1A, 0xF8, 0x6C, 0xD8, 0x00, 0xC8, 0xAC, 0xDA, 0x20, 0xF8,
+ 0xAC, 0xD9, 0x20, 0xDA, 0x0A, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x14, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x11, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x15, 0xCA,
+ 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x30, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x00, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x94, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x78, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x98, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x88, 0xCA, 0xF9, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA,
+ 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDA, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDB, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x64, 0xCA, 0xCB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xAC, 0xCA, 0xFB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xD8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x07, 0xCA, 0xC8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA, 0x26, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA,
+ 0x26, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA, 0xF6, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x15, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x67, 0xCA, 0x17, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x01, 0xCA,
+ 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x72, 0xCA, 0xB7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x01, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x06, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x42, 0xCA, 0xE8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xEC, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x11, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA, 0xEF, 0xF9, 0xAC, 0xF7,
+ 0x7C, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD7,
+ 0x14, 0xF7, 0x11, 0xEE, 0x4A, 0xF0, 0x0E, 0x44, 0xDC, 0xF4,
+ 0x05, 0x07, 0x13, 0xD4, 0x01, 0x7F, 0xC4, 0x7C, 0x1C, 0x13,
+ 0x43, 0x61, 0x13, 0xA2, 0x31, 0x6C, 0xCD, 0xB2, 0x22, 0xA4,
+ 0x20, 0xF4, 0x05, 0x07, 0x06, 0xA1, 0x01, 0xD4, 0x0F, 0x14,
+ 0x43, 0x60, 0x04, 0x70, 0x04, 0xA4, 0x33, 0x71, 0x14, 0xEF,
+ 0x15, 0xA1, 0x01, 0xD0, 0x00, 0xF0, 0x02, 0xD0, 0x01, 0xC0,
+ 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD1, 0x0F, 0x70, 0x21, 0xF0,
+ 0x02, 0x83, 0x03, 0xA5, 0x31, 0xD4, 0x58, 0xC4, 0x4F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x22, 0x14, 0x34, 0x15, 0x85, 0x3F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x82, 0x29, 0x82, 0x29, 0x02, 0x24, 0xD1,
+ 0x22, 0x11, 0x12, 0xD6, 0x00, 0x4F, 0xE1, 0xD8, 0x01, 0x17,
+ 0x87, 0x21, 0x17, 0xD6, 0x10, 0x4F, 0xE1, 0xF7, 0x05, 0x07,
+ 0x37, 0xD1, 0x1F, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x02, 0xE0,
+ 0x00, 0x07, 0x45, 0xD1, 0x00, 0xD2, 0x01, 0xE0, 0x01, 0x07,
+ 0x45, 0xD2, 0x01, 0xD3, 0x02, 0xE0, 0x02, 0x07, 0x45, 0xF0,
+ 0x02, 0xD3, 0x00, 0xC3, 0xC0, 0xD4, 0x00, 0xD5, 0x0F, 0xD6,
+ 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xD3, 0xC6, 0xC3, 0x10, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0xC6, 0xC3, 0x10, 0x87, 0x1E, 0x87,
+ 0x76, 0x1F, 0xF7, 0x87, 0x0E, 0x87, 0x7C, 0x1F, 0xF7, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3, 0x09, 0xD3,
+ 0x01, 0xD4, 0x1F, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07,
+ 0xBF, 0xE0, 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3,
+ 0x09, 0xD3, 0x00, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0xD3,
+ 0xFF, 0xC3, 0x03, 0x2C, 0x4F, 0xD3, 0x00, 0xD4, 0x1F, 0xD5,
+ 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0, 0x03, 0x07,
+ 0xA8, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x2C, 0xE0, 0x00, 0x07,
+ 0xD4, 0xF0, 0x02, 0xA4, 0x43, 0xF4, 0x0D, 0xD7, 0x01, 0x2D,
+ 0xCB, 0xD6, 0x10, 0x5E, 0x0E, 0xF6, 0x01, 0x07, 0x96, 0xD6,
+ 0x10, 0x16, 0x06, 0x67, 0x76, 0x65, 0x56, 0x1F, 0xF7, 0x3F,
+ 0xF5, 0xEF, 0x9A, 0x67, 0x70, 0x65, 0x50, 0x1E, 0xE7, 0x3E,
+ 0xE5, 0x17, 0x10, 0x55, 0xDC, 0x85, 0x52, 0xB5, 0x52, 0x00,
+ 0x05, 0x84, 0x43, 0xF7, 0x05, 0x07, 0x89, 0xF0, 0x02, 0xE0,
+ 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xF0, 0x02, 0xD0,
+ 0x60, 0xF1, 0x08, 0xD6, 0x00, 0xC6, 0xF0, 0xD3, 0x01, 0xD2,
+ 0x10, 0xA0, 0x03, 0xF7, 0x08, 0xA0, 0x03, 0xF8, 0x08, 0x24,
+ 0xDF, 0xF4, 0x01, 0x07, 0xB7, 0xE0, 0x06, 0x07, 0xD8, 0xA6,
+ 0x63, 0x81, 0x13, 0xB2, 0x22, 0xF2, 0x05, 0x07, 0xAE, 0xD0,
+ 0x60, 0xF0, 0x1C, 0xF0, 0x02, 0xAA, 0x01, 0xA6, 0x11, 0xA7,
+ 0x21, 0xD4, 0x60, 0xF5, 0x48, 0xDB, 0x01, 0x6B, 0xB3, 0x15,
+ 0x5F, 0xF4, 0x5C, 0xA4, 0x43, 0x8B, 0x32, 0x04, 0x4B, 0xF8,
+ 0x48, 0xA4, 0x43, 0xF9, 0x48, 0xE0, 0x06, 0x07, 0x87, 0xF4,
+ 0x9C, 0xB4, 0x42, 0xF4, 0x8C, 0xF0, 0x02, 0xC0, 0x80, 0xE0,
+ 0x00, 0x07, 0xD8, 0xF0, 0x02, 0xF0, 0x0A, 0xD3, 0x00, 0xC3,
+ 0x9C, 0xF3, 0x1C, 0xC3, 0xA0, 0xF3, 0x2C, 0xC3, 0xA4, 0xF3,
+ 0x0C, 0xD3, 0x00, 0xC3, 0xA8, 0xF3, 0x38, 0xF3, 0x01, 0x07,
+ 0xE0, 0xF0, 0x06, 0xF0, 0x02, 0xF0, 0x0A, 0xD2, 0x00, 0xC2,
+ 0xA4, 0xF2, 0x0C, 0xC2, 0xA8, 0xF1, 0x28, 0xF1, 0x01, 0x07,
+ 0xEC, 0xC2, 0x9C, 0xF1, 0x28, 0xC2, 0xA0, 0xF2, 0x28, 0xF0,
+ 0x06, 0xF0, 0x02, 0xD1, 0x00, 0xC1, 0x98, 0xF1, 0x0C, 0xF0,
+ 0x02, 0xD1, 0x00, 0xC1, 0x94, 0xF0, 0x18, 0xC1, 0x98, 0xF1,
+ 0x18, 0xF0, 0x02, 0xED, 0xDC, 0x90, 0x00, 0x88, 0x00, 0x30,
+ 0x00, 0x34, 0x00, 0x24, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0xDD, 0x3D, 0xD7, 0x00, 0x15, 0x00, 0x1A, 0x0A, 0x19, 0x00,
+ 0x1E, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x76, 0x01, 0x38, 0x02,
+ 0xC0, 0x02, 0x30, 0x04, 0x20, 0x03, 0x60, 0x06, 0x5C, 0x04,
+ 0xBC, 0x09, 0x60, 0x07, 0x9C, 0x0D, 0x70, 0xFF, 0xFF, 0x7A,
+ 0xF5, 0x10, 0xAE, 0x70, 0xA5, 0x22, 0x7C, 0x00, 0x00, 0x00,
+ 0x00, 0x1E, 0x17, 0x00, 0x04, 0x2C, 0x5F, 0x00, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x27, 0xC5, 0x21, 0xF0, 0x16, 0x27, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x67, 0x42, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x1C, 0xFE,
+ 0xFE, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x30, 0x00, 0x0C, 0x08, 0x30, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0C, 0x00,
+ 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x50, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0A, 0x03, 0xA9, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0F, 0x00,
+ 0x08, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x64, /* WAIT 100[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFF, 0x00, 0x00, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x01, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x02, 0xB8, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x00, 0xEA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x08, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xEA, 0xB2, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2C, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xE8, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x40, 0x12, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xA6, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xD0, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xD3, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x2E, 0xD3, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x60, 0x03, 0x0C, 0xCF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0D, 0xD3, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x99, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xBD, 0xA1, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x04, 0xD6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0F, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x2A, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xEE, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDC, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x78, 0xD0, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x0A, 0xF1, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0x1E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x13, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x1F, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF7, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x2B, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x2B, 0xE9, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xB1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x4C, 0xD3, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xD3, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD2, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x02, 0x12, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x12, 0xD5, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0A, 0xD5, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x9E, 0xA3, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x4C, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x5C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x92, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xAC, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x05, 0x99,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x02, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x28, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xA1, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x6E, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x89, 0xD5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x21, 0x03, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x53, 0x24, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x11, 0x34, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x93, 0x11, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xF7, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x63, 0xB3, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x01, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x06, 0x5F, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x09, 0x5C, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xF4, 0xF3, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x72, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xE5, 0xD0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x13, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x02, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x7E, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x89, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x01, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x2A, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xFE, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x4E, 0xC2, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x09, 0xD6, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x68, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x97, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x8E, 0xF3, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x23, 0xA4, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x8C, 0xD3, 0x6C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xEF, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x72, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xAA, 0xF3, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xFC, 0xC4, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xF4, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x9F, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x7C, 0x93, 0x7B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x01, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xF6, 0x7C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x02, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xBD, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x7D, 0xCD, 0xB2, 0x1E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x02, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xEB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xEA, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xE2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xDF, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xDC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xD9, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xCE, 0x80, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0B, 0xF0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x12, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xDF, 0xF0, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x12, 0xD1, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0x92, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3C, 0xDE, 0x82, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3C, 0xCE, 0xEA, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x36, 0xC0, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x12, 0xD0, 0xD4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x0B, 0xEA, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x12, 0xD0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x40, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x80, 0x1A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0B, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x12, 0xD1, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x05, 0xC7, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x71, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x74, 0xD7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x10, 0x15, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x01, 0x01, 0xF9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x46, 0xE9, 0xFC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0xC7, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x45, 0x8B, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0xF7, 0x84, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x64, 0xD7, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x57, 0x82, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0B, 0x02, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x40, 0x5F, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x23, 0xA3, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x23, 0xD3, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x38, 0xA3, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x23, 0x70, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x12, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xF4, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x67, 0xF0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x08, 0xF9, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0x9A, 0xB6, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xB6, 0x1C, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x18, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x4C, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x7B, 0xB9, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x02, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x13, 0xF8, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x84, 0xBB, 0xB2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x7B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBB, 0xB8, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x50, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0xD0, 0xF9, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x02, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x12, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x8C, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x10, 0xFA, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xF8, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x64, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x11, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x8C, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x8C, 0xD9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD9, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x98, 0xF2, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x3F, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xD8, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF4, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0F, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x8C, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x0D, 0xFA, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xF8, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xC8, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x05, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0C, 0xFA, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0xAC, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x08, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x34, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x38, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x44, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x20, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x48, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x15, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xEA, 0x7C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xB3, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x08, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x8C, 0xA0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x08, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x8C, 0xA0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x08, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x8D, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x7E, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xD6, 0xB0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x00, 0xD6, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xC7, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x09, 0xD7, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD1, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x8E, 0xA8, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x38, 0xA7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x38, 0xA3, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1A, 0x85, 0xB8, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0x8A, 0xAA, 0x63,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xA5, 0x29, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x02, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x02, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xA2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0xE9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0xA2, 0xA1, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xA2, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0xCB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x51, 0xF7, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x11, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xC8, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x12, 0x67, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xCB, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x39, 0xEA, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x25, 0x77, 0xA2, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0x18, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x02, 0x44, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x12, 0x43, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x03, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0xE9, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x3C, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x08, 0xD0, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x04, 0x40, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x08, 0x03, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x3C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x4C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x7E, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x8E, 0xD1, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x04, 0x2F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x7E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x9F, 0xD3, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x03, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x10, 0xF2, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x35, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x05, 0x02, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD2, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x0C, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x45, 0x84, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x28, 0xF8, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x23, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x11, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x04, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x0F, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x2F, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xE5, 0xC9, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x09, 0xB9, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x00, 0xA9, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x11, 0xB3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x38, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xC8, 0x44, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x79, 0x5E, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7A, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4F, 0xA9, 0x17, 0x7F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x40, 0x27, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x79, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x2B, 0xF2, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x91, 0xEB, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0x41, 0x10, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x13, 0x27, 0x7F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xF0, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xFB, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x04, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0x18, 0xFA, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x00, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x04, 0xDB, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xB3, 0x19, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x91, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x7B, 0x4B, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xA5, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0x50,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0x5D, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x92, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x39, 0xD1, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0x39, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x1C, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF8, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xA2, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x02, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x6E, 0x99, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0x6E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB7, 0x76, 0xF7, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x55, 0xF6, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x55, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x89, 0x5E, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0xA2, 0x1B, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x49, 0xBA, 0x9A, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x9A, 0xF9, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x89, 0x99, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xB3, 0xF7, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0x4B, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB7, 0xEB, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x04, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x05, 0x03, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0x5D, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x92, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x39, 0xD0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0x39, 0xF7, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF8, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x0D, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xA2, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x12, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xA6, 0x99, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x55, 0xF6, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x55, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x89, 0xB5, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x58, 0x16, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x69, 0xBA, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1B, 0x96, 0x49, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0x91, 0x29, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x89, 0x99, 0x17,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xB3, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x1C, 0xDB, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x14, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB3, 0xFA, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA6, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB7, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x21, 0x84, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0x22, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0x31, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x53, 0x5E, 0xD2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xD0, 0x1F, 0xFA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x03, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x25, 0x54, 0xF1, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x32, 0x1E, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x3A, 0xA9, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x9E, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0x1D, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x28, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x28, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x28, 0x83, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x66, 0x33, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x36, 0xB6, 0x83, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0xB3, 0x5C, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0xCE, 0xB9, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x03, 0xE7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xF2, 0xC6, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0xCA, 0x1F, 0xF6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x03, 0xA2, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x73, 0x23, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xD0, 0xB2, 0x2E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x28, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xF8, 0x23, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x03, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x70, 0x3B, 0x4B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xBC, 0xAB, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x10, 0x4E, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x1A, 0xFA, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xFF, 0xF2, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xF4, 0xD7, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x70, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD7, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0xD7, 0x24, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x8F, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x28, 0xD7, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x77, 0xF8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x42, 0x80, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x43, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x80, 0xD6, 0x9E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x98, 0x21, 0x22, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x01, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x20, 0xF7, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x07, 0x42, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x27, 0xF6, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x69, 0xF6, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x69, 0xF6, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x69, 0xF6, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x08, 0xC7, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x83, 0xA6, 0x63,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x8C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xBC, 0xF6, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0F, 0xC3, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0xC4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x38, 0xC5, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xDA, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xC5, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xD0, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xD6, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xC4, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x09, 0xD7, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xFE, 0xC4, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD2, 0xE3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x22, 0xD3, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x0B, 0xF1, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x1F, 0xA4, 0x4B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0x59,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0x32, 0x83, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0xEC, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x08, 0xC4, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0x85, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0x35, 0x83, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x11, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD2, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD7, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4F, 0xF3, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xAA, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xD4, 0x2A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0xC3, 0xD7, 0x1E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4F, 0xF3, 0x87, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD6, 0xED,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4F, 0x3C, 0xD4, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x74, 0xD5, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x74, 0x94, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0x94, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x05, 0x04, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0x97, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x04, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x36, 0xD5, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x11, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0x3F, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x55, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0x97, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x04, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x3C, 0x3F, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x03, 0xD6, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x8D, 0xF4, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0xAE, 0x08, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x43, 0x84, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x84, 0xF7, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x52, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x3B, 0xA7, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x06, 0xD6, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEC, 0xC2, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0x87, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0E, 0xD6, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x05, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xC2, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x28, 0x83, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x36, 0x94, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x34, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xBC, 0xD4, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xF8, 0xD4, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x74, 0xD5, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xDA, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xA7, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x75, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0x86, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x00, 0xC4, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0xCA, 0xD8, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x86, 0xF5, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xF6, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x11, 0x83, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD2, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x28, 0x16, 0x50,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0xD0, 0x40, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x2F, 0xA3, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0x16, 0x50,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x0D, 0x40, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x25, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x28, 0x4D, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x04, 0xE3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x01, 0x86, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x7D, 0xE9, 0xD6, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x65, 0x74, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x73, 0x35, 0x70, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x00, 0x23, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x44, 0x80, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x3F, 0x84, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x40, 0x16, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x53, 0x24, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x09, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x40, 0x82, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x36, 0x04, 0x5E, 0xE3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x62, 0xB6, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x26, 0x62, 0x10, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x23, 0xB5, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x05, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x72, 0x36, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x01, 0x06, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x6F, 0x80, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x11, 0xD5, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x20, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xD3, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0x67, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0x87, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x06, 0xD6, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x01, 0xD5, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xFC, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0x87, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x03, 0xD6, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD5, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x58, 0xB2, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x05, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB7, 0x14, 0xD5, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xB0, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xC2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x37, 0x12, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xB4, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xD2, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0x12, 0xA7, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0xD6, 0xCF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x27, 0xF5, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x70, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x85, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x75, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xD8, 0x2E, 0xE8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0F, 0x4C, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x26, 0x64, 0x94, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x25, 0x54, 0x13, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x36, 0x1F, 0xE9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x95, 0x21, 0x1D, 0xF9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x05, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x60, 0x22, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0x13, 0x37,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x39, 0x13, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xED, 0x3C, 0x10, 0xED,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x8B, 0xF5, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x18, 0x8B, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0B, 0xB9, 0xB6, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x6B, 0x8B, 0x19,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xB8, 0xDA, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x12, 0x47, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x79, 0x07, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0A, 0x67, 0x8A, 0xA3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x80, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x10, 0x05, 0x5A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x5B, 0x2A, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0xA5, 0x8A, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5C, 0xA6, 0x5D, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2C, 0x89, 0xDA, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xA8, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x83, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x0D, 0xD3, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x23, 0x13, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x38, 0x2A, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA4, 0x16, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x05, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x60, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x92, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xCB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x46, 0x9B, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x68, 0xDA, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x6C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x16, 0xD1, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xB9, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x40, 0xD2, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x60, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xFB, 0x4D, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x64, 0xC3, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0xC3, 0x20, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x03, 0xC2, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x3A, 0x82, 0x2D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x07, 0xC8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x82, 0xF5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xBE, 0xD8, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x01, 0x15, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x01, 0x05, 0xBE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x00, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0B, 0x73, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0A, 0x64, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x4B, 0x07, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x18, 0x72, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xCF, 0xB8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB1, 0x12, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xCF, 0x28, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x05, 0x05, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xC2, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x09, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x2B, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0xF0, 0xD0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x05, 0x05, 0xDB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x23, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xD0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x03, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x87, 0xF0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x81, 0x0F, 0xD2, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDE, 0xF1, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xD0, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x70, 0x44, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0D, 0x45, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xC9, 0x2C, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x06, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0A, 0x5F, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x06, 0x17,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x5E, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x01, 0x06, 0x17,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0A, 0x5F, 0xD8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x20, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xC9, 0xFB, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x01, 0x06, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xEE, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x89, 0xF9, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x82, 0xF0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2B, 0x30, 0x09, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x9C, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x43, 0xDA, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0xA8, 0x05, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x5C, 0xD4, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xEE, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x86, 0xF3, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x89, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x32, 0xA9, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x9C, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x43, 0xF9, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x30, 0x47, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x46, 0x3D, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x3F, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x40, 0xDA, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0xFA, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xEE, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x0D, 0x09, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x9C, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0x8B, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x0B, 0xAB, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x05, 0x06, 0x4A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x0D, 0xD4, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x48, 0x8A, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x03, 0x2F, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0xB6, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x59, 0xA9, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x06, 0x5D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x01, 0xEE, 0x5F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xD9, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x98, 0xEE, 0x5F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xDB, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x46, 0xB4, 0xD9, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x98, 0x2A, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0xAE, 0x06, 0x6A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x6D, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x08, 0x17, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x76, 0xEE, 0x6E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x65, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x02, 0x09, 0x95,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x9B, 0xDA, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xBA, 0x9A, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x9A, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x08, 0x16, 0xA9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x47, 0x9B, 0xD9, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x79, 0x88, 0x99,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x88, 0x15, 0x97,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x81, 0xF9, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x83, 0xF9, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x15, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x94, 0xD9, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x69, 0x88, 0x99,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x88, 0x15, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x81, 0xF9, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x75, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xD7, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x78, 0xD8, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x77, 0x78, 0x88, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x7C, 0xD6, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xA6, 0x63,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x08, 0x04, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x49, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xA9, 0x03, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0xEE, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x41, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x2C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x2C, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x16, 0xD1, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xB9, 0xD1, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x89, 0xF0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xB2, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x87, 0xF2, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x05, 0xED,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0x9E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x80, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0x3D, 0x88, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD5, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x76, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xD7, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x0C, 0x5F, 0x3F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0xD6, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xBC, 0xF7, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xEC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x40, 0xC6, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x89, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xE8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x86, 0xD6, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x09, 0x5F, 0x3E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x06, 0xE8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x02, 0xD6, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x81, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xA7, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x41, 0xA6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x05, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x81, 0xD9, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x49, 0x8A, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0x2F, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0xB3, 0x29, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x19, 0xE0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD8, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x18, 0x48, 0xA5, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1C, 0xD7, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x07, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0xEE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1D, 0xD7, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEF, 0x17, 0xD8, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1D, 0xD7, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1C, 0xD7, 0xEE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x01, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x07, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0x29, 0xDB, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xAB, 0xA9, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x07, 0x2A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x08, 0x2E, 0x2A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x05, 0x07, 0x2A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x32, 0xCA, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEF, 0x2C, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x04, 0x89, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x9A, 0xDB, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x0F, 0xCA, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x08, 0x7B, 0x97,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x6B, 0x97, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x08, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xF0, 0xD2, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF5, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF6, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x01, 0x2F, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x07, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x43, 0x81, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x45, 0xD0, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x60, 0xF4, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x03, 0xD6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x66, 0x65, 0x1C, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x4C, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x30, 0xF4, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x23, 0xF9, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0F, 0x2D, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x19, 0xD6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0xD6, 0x66, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x67, 0x75, 0x1C, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3C, 0xCB, 0x16, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x57, 0xC5, 0x87, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB7, 0x72, 0x05, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x93, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x66, 0xF3, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xC0, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xF0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xC3, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xC3, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x2C, 0xC3, 0xA4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA8, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xC0, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x03, 0x2D, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x13, 0x2C, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0xBB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x4C, 0xD2, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x3C, 0xD3, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x02, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x9F, 0xA2, 0x61,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x80, 0xC3, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x09, 0xC1, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xBD, 0xF4, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0x81, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x4D, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xAD, 0xD6, 0xBF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x68, 0xEF, 0xAF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xBD, 0xF4, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x68, 0xD2, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x40, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xD0, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xFF, 0xC1, 0xFD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x18, 0xC1, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA4, 0xF2, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA8, 0xF1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x07, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x9C, 0xF1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA0, 0xF2, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x08, 0xC2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0B, 0xC3, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x48, 0x00, 0x24,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x85, 0xF5, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x26, 0x05, 0x96, 0x6E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x82, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xD2, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD2, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x28, 0xD6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x20, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x87, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x7C, 0xA2, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x81, 0xF8, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x78, 0x10, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x71, 0xA1, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD4, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0E, 0xD4, 0x63, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0F, 0xF4, 0x11, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x14, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x15, 0x90, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x00, 0x30, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x34, 0x00, 0x24, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x6C, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x02, 0x16,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x39, 0xAA, 0x00, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x24, 0x08, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x28, 0x00, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x12, 0x39,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x0C, 0x80, 0xF0, 0xF7, 0x3E, 0x75, 0xC1, 0x8A, 0xE4, 0x02,
+ 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x05, 0x13, 0xEE, 0xAA, 0x50, 0x6A, 0x90,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x06, 0x00, 0x0A, 0x4D, 0x8C, 0xF2, 0xD8, 0xCF, 0x30, 0x79,
+ 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0B, 0x09, 0x24, 0x6C,
+ 0x00, 0x10, /* Length = 16 bytes */
+ 0x0A, 0x01, 0x67, 0x24, 0x40, 0x0C, 0x85, 0x00, 0x10, 0x64,
+ 0x3C, 0xFA, 0xF7, 0xE1, 0x0C, 0x2C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x09, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x10, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x16, 0x12,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1F, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x01, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x10,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 9134 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_base_firmware_i2c_files_base_firmwares_init = {
+ XC3028_base_firmware_i2c_files_base_firmwares_init_SEQUENCE
+};
+
+unsigned char XC3028_base_firmware_i2c_files_base_firmwares_mts_init_SEQUENCE[9008] = {
+
+ 0x00, 0x00, /* RESET */
+ 0x0D, 0x53, /* Length = 3411 bytes */
+ 0x2A, 0x02, 0x19, 0xE0, 0x00, 0x07, 0xF5, 0xD4, 0x00, 0xC4,
+ 0xF0, 0xD6, 0xAE, 0xC6, 0x10, 0xD5, 0xF5, 0xC5, 0x7A, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x01, 0xC4, 0xF0, 0xD6, 0x51, 0xC6,
+ 0x02, 0xD5, 0x99, 0xC5, 0xA3, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x03, 0xC4, 0xF0, 0xD6, 0x04, 0xD5, 0x87, 0xC5, 0x06, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x04, 0xC4, 0xF0, 0xD6, 0x00, 0xD5,
+ 0x1F, 0xC5, 0x2C, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0x06, 0xD5, 0x00, 0xC5, 0x40, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x80, 0xD5,
+ 0xCD, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x07, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xC6, 0xC0, 0xD5, 0x05, 0xC5, 0x2F, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD4, 0x09, 0xC4, 0xF0, 0xD6, 0xC0, 0xC6,
+ 0x42, 0xD5, 0x67, 0xC5, 0x3C, 0xE0, 0x04, 0x07, 0xD8, 0xD4,
+ 0x0F, 0xC4, 0xF0, 0xD6, 0x3F, 0xC6, 0xC0, 0xD5, 0x11, 0xC5,
+ 0x11, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0x06, 0xC4, 0xF0, 0xD6,
+ 0x00, 0xC6, 0x24, 0xD5, 0x0E, 0xC5, 0x2E, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4,
+ 0x70, 0xE0, 0x04, 0x07, 0xE7, 0x86, 0x69, 0x86, 0x69, 0xA2,
+ 0x61, 0xD4, 0x06, 0xC4, 0xF0, 0xD6, 0x00, 0xC6, 0x24, 0xD5,
+ 0xC0, 0xC5, 0x20, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4,
+ 0xFF, 0xF4, 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07,
+ 0xE7, 0x86, 0x69, 0x86, 0x69, 0x12, 0x62, 0x98, 0x21, 0xF8,
+ 0x05, 0x02, 0x88, 0xF2, 0x0D, 0xD8, 0x80, 0x4C, 0x28, 0xF8,
+ 0x05, 0x02, 0x94, 0xE0, 0x00, 0x07, 0x82, 0xD4, 0x0E, 0xC4,
+ 0xF0, 0xD6, 0x00, 0xD5, 0x00, 0xE0, 0x04, 0x07, 0xD8, 0xD0,
+ 0x01, 0xC0, 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD3, 0x0F, 0x71,
+ 0x23, 0xF1, 0x01, 0x04, 0x7F, 0xD0, 0x60, 0xD1, 0x00, 0xC1,
+ 0x40, 0xD2, 0x0B, 0x00, 0x02, 0xF0, 0x1C, 0xA0, 0x03, 0xD1,
+ 0x00, 0xF0, 0x1C, 0xD0, 0x01, 0xD1, 0x03, 0xD2, 0x03, 0xD3,
+ 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD4, 0x9E, 0xA4, 0x45, 0xD5,
+ 0x10, 0xC5, 0x01, 0xF4, 0x5C, 0xD5, 0x40, 0xC5, 0x0B, 0xA4,
+ 0x43, 0xF4, 0x5C, 0xD3, 0x00, 0xC3, 0xF0, 0xD5, 0xD6, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x19, 0xD4, 0x01, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x03, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x04, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x05, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x06, 0xC3, 0xF0, 0xD5,
+ 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3, 0x07, 0xC3,
+ 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD3,
+ 0x09, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD3, 0x0E, 0xC3, 0xF0, 0xD5, 0x00, 0xD4, 0x00, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD3, 0x0F, 0xC3, 0xF0, 0xD5, 0x00, 0xD4,
+ 0x00, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD0,
+ 0xFF, 0xC0, 0x03, 0xD1, 0x54, 0xD3, 0x01, 0xC3, 0xF0, 0xD5,
+ 0x03, 0xC5, 0x99, 0xD4, 0x01, 0xC4, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xC5, 0x19, 0xD4, 0x01, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x00, 0xC5, 0x99, 0xD4, 0x01, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x40, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5,
+ 0x19, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5,
+ 0x99, 0xD4, 0x02, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4,
+ 0x02, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x02, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x23, 0xC5, 0x19, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x23, 0xC5, 0x99, 0xD4, 0x03, 0xC4, 0xF0, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5,
+ 0x19, 0xD4, 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4,
+ 0x03, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x04, 0xC4, 0xF0, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C,
+ 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5,
+ 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5,
+ 0x20, 0xC5, 0x19, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x20, 0xC5,
+ 0x99, 0xD4, 0x04, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4, 0x05, 0xC4,
+ 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6,
+ 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07,
+ 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34,
+ 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1,
+ 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x05, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5,
+ 0x20, 0xC5, 0x99, 0xD4, 0x05, 0xD3, 0x01, 0xC3, 0xF0, 0xE0,
+ 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3,
+ 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2,
+ 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05,
+ 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x23, 0xC5, 0x19, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD5, 0x23, 0xC5, 0x99, 0xD4,
+ 0x06, 0xC4, 0xF0, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07,
+ 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3, 0x01, 0xC3, 0x70, 0xE0,
+ 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84, 0x46, 0xD2, 0x00, 0xC2,
+ 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0, 0x04, 0x05, 0xC9, 0xF1,
+ 0x4C, 0xA1, 0x13, 0xD5, 0x20, 0xC5, 0x19, 0xD4, 0x06, 0xD3,
+ 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6,
+ 0x09, 0xD5, 0x20, 0xC5, 0x99, 0xD4, 0x06, 0xD3, 0x01, 0xC3,
+ 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xD6, 0x14, 0xF6, 0x09, 0xD3,
+ 0x01, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0x2C, 0xC0, 0x84,
+ 0x46, 0xD2, 0x00, 0xC2, 0x42, 0x34, 0x42, 0xF5, 0x18, 0xE0,
+ 0x04, 0x05, 0xC9, 0xF1, 0x4C, 0xA1, 0x13, 0xD5, 0x00, 0xD4,
+ 0x00, 0xD3, 0x01, 0xC3, 0xF0, 0xE0, 0x03, 0x07, 0xD8, 0xEC,
+ 0xAF, 0xD1, 0x54, 0xD2, 0xA0, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x90, 0xC2, 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x44, 0xC2,
+ 0x01, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0xDC, 0xC2, 0x02, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2, 0x02, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0x58, 0xC2, 0x04, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x2C, 0xC2, 0x03, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x3C, 0xC2,
+ 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2, 0x88, 0xC2, 0x04, 0xF1,
+ 0x2C, 0xA1, 0x13, 0xD2, 0x04, 0xC2, 0x09, 0xF1, 0x2C, 0xA1,
+ 0x13, 0xD2, 0xD0, 0xC2, 0x06, 0xF1, 0x2C, 0xA1, 0x13, 0xD2,
+ 0x20, 0xC2, 0x0D, 0xF1, 0x2C, 0xA1, 0x13, 0xD5, 0x0E, 0xD6,
+ 0x00, 0xD7, 0x03, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x0F, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xA3, 0xD6,
+ 0x0E, 0xD7, 0x0E, 0xE0, 0x05, 0x07, 0xA3, 0xD5, 0xFF, 0xC5,
+ 0xFF, 0xF5, 0x09, 0xD5, 0x01, 0xC5, 0x80, 0xD6, 0x02, 0xE0,
+ 0x05, 0x07, 0xD8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5, 0x01, 0xC5,
+ 0x01, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87,
+ 0x7C, 0xD8, 0xBC, 0xF8, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07,
+ 0xD8, 0xD0, 0x00, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0,
+ 0x00, 0x07, 0xBF, 0xD0, 0x01, 0xD1, 0x07, 0xD2, 0x08, 0xD3,
+ 0x00, 0xE0, 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4,
+ 0x00, 0xC4, 0xA0, 0xF4, 0x09, 0xD0, 0x00, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x30, 0xC6, 0x40, 0xE0, 0x07, 0x07,
+ 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0, 0x04, 0x07, 0xD8, 0xC6,
+ 0xC0, 0xE0, 0x04, 0x07, 0xD8, 0xD4, 0xFF, 0xC4, 0xFF, 0xF4,
+ 0x09, 0xD4, 0x0F, 0xC4, 0x70, 0xE0, 0x04, 0x07, 0xE7, 0xDA,
+ 0xFF, 0x27, 0x6E, 0x2D, 0x5A, 0x88, 0x5F, 0x88, 0x83, 0x87,
+ 0x78, 0xDA, 0x8E, 0xAA, 0xA7, 0xFA, 0x7C, 0xAA, 0xA9, 0xFA,
+ 0x8C, 0xAA, 0xA9, 0xFA, 0x9C, 0xD4, 0x0F, 0xC4, 0xF0, 0xD5,
+ 0xFE, 0xC5, 0xFE, 0xD6, 0x3F, 0xC6, 0xC0, 0xD6, 0x30, 0xC6,
+ 0x40, 0xE0, 0x07, 0x07, 0x16, 0x87, 0x7C, 0x1E, 0xEB, 0xE0,
+ 0x04, 0x07, 0xD8, 0xD0, 0x01, 0xE0, 0x00, 0x07, 0xBF, 0xD0,
+ 0x01, 0xD1, 0x16, 0xD2, 0x16, 0xD3, 0x01, 0xE0, 0x00, 0x07,
+ 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xD2, 0x60, 0xA2, 0x23, 0xF1,
+ 0x28, 0xA2, 0x23, 0xF0, 0x28, 0xD2, 0x00, 0xD4, 0x00, 0xD3,
+ 0x00, 0xD5, 0x04, 0xE0, 0x06, 0x07, 0x38, 0x02, 0x26, 0x04,
+ 0x48, 0x03, 0x37, 0xB5, 0x52, 0xF5, 0x05, 0x05, 0x2F, 0x82,
+ 0x29, 0x84, 0x49, 0x83, 0x39, 0x25, 0x43, 0x24, 0x23, 0xD2,
+ 0x60, 0xA2, 0x23, 0xF2, 0x1C, 0xA2, 0x23, 0xF2, 0x0C, 0xD7,
+ 0x70, 0xC7, 0x0D, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6,
+ 0xBD, 0xF6, 0x7C, 0xD7, 0x0A, 0xC7, 0x0B, 0xA6, 0x41, 0xE0,
+ 0x06, 0x07, 0x1D, 0xD6, 0xBE, 0xF6, 0x7C, 0xD7, 0x51, 0xC7,
+ 0x0A, 0xA6, 0x41, 0xE0, 0x06, 0x07, 0x1D, 0xD6, 0xBF, 0xF6,
+ 0x7C, 0xD0, 0xD3, 0xC0, 0x01, 0xD1, 0xE0, 0xC1, 0x01, 0x32,
+ 0x04, 0xA2, 0x23, 0x82, 0x23, 0x33, 0x15, 0xA3, 0x33, 0x83,
+ 0x33, 0xD6, 0x80, 0x14, 0x26, 0x26, 0x44, 0x86, 0x6F, 0x18,
+ 0x46, 0xD6, 0xBA, 0xF6, 0x8C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x03, 0x29, 0x89, 0x99,
+ 0x9E, 0x98, 0x86, 0x19, 0x89, 0xA9, 0x97, 0x89, 0x92, 0xA8,
+ 0x90, 0xD6, 0x41, 0xC6, 0x24, 0xF8, 0x01, 0x05, 0x79, 0x06,
+ 0x69, 0xD8, 0xBB, 0xF8, 0x6C, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x0C, 0x29, 0x89, 0x99,
+ 0x9E, 0xD6, 0x12, 0x28, 0x86, 0x98, 0x8E, 0x09, 0x89, 0xF9,
+ 0x0D, 0xA9, 0x9F, 0xA9, 0x9B, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x26, 0x96, 0x46, 0x87, 0xD7, 0x08, 0xD8, 0x0B, 0xD9,
+ 0x04, 0xE0, 0x06, 0x07, 0xBF, 0xD6, 0x80, 0x14, 0x26, 0x26,
+ 0x44, 0x86, 0x6F, 0x18, 0x46, 0xD9, 0x06, 0x29, 0x89, 0x99,
+ 0x9E, 0xB9, 0x9C, 0xF9, 0x0D, 0xD7, 0x0F, 0x4C, 0x97, 0x56,
+ 0x7D, 0x29, 0x96, 0x49, 0x87, 0xA7, 0x90, 0x26, 0x97, 0xD7,
+ 0x18, 0xD8, 0x1B, 0xD9, 0x05, 0xE0, 0x06, 0x07, 0xBF, 0xD5,
+ 0x0E, 0xC5, 0x70, 0xE0, 0x05, 0x07, 0xE7, 0x87, 0x74, 0x87,
+ 0x7F, 0x87, 0x7F, 0xD5, 0x01, 0xF7, 0x01, 0x05, 0xB9, 0xD5,
+ 0x02, 0xB7, 0x76, 0xF7, 0x01, 0x05, 0xB9, 0xD5, 0x00, 0xD6,
+ 0x0C, 0xD7, 0x0D, 0xD8, 0x0E, 0xE0, 0x05, 0x07, 0xBF, 0xD5,
+ 0x00, 0xD6, 0x0E, 0xD7, 0x0E, 0xD8, 0x0E, 0xE0, 0x05, 0x07,
+ 0xA3, 0xD6, 0x12, 0xD7, 0x14, 0xE0, 0x05, 0x07, 0xBF, 0xED,
+ 0xD5, 0xD2, 0x00, 0xC2, 0x13, 0x33, 0x12, 0x04, 0x13, 0x15,
+ 0x13, 0x5C, 0xC0, 0x5D, 0x0D, 0x23, 0xCD, 0xF3, 0x05, 0x05,
+ 0xD4, 0xA0, 0x11, 0xF0, 0x02, 0xF0, 0x0E, 0xF0, 0x0E, 0xE0,
+ 0x00, 0x07, 0xF9, 0xE0, 0x00, 0x07, 0xF5, 0xF0, 0x0E, 0xEE,
+ 0x36, 0xF0, 0x0A, 0xFB, 0x08, 0xF9, 0x18, 0xBA, 0x9A, 0xB6,
+ 0x62, 0x1C, 0xB6, 0x1C, 0x8A, 0xF6, 0x18, 0xF8, 0x01, 0x06,
+ 0x1B, 0xFB, 0x01, 0x06, 0x4A, 0xB9, 0x92, 0xF9, 0x05, 0x05,
+ 0xEF, 0xDA, 0x13, 0xF8, 0x28, 0xFA, 0x84, 0xBB, 0xB2, 0xFB,
+ 0x01, 0x06, 0x4A, 0xBB, 0xB8, 0xFB, 0x01, 0x06, 0x1F, 0xD7,
+ 0x00, 0xC7, 0x94, 0xF7, 0x78, 0xD9, 0x00, 0xC9, 0xFF, 0x19,
+ 0x79, 0xF9, 0x01, 0x06, 0x4C, 0xD7, 0x00, 0xC7, 0xD0, 0xF9,
+ 0x78, 0xD8, 0x00, 0xF7, 0x8C, 0xF9, 0x05, 0x06, 0x1B, 0xD8,
+ 0x12, 0xF8, 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8,
+ 0x9C, 0xDA, 0x10, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8,
+ 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD8, 0x11, 0xF8,
+ 0x88, 0xF4, 0x8C, 0xD8, 0x00, 0xC8, 0x8C, 0xD9, 0x01, 0xF8,
+ 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9, 0x13, 0xFA, 0x98, 0xF2,
+ 0xAC, 0xEE, 0x0E, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x60, 0xF7,
+ 0x8C, 0xD8, 0x0E, 0xF8, 0x88, 0xF4, 0x8C, 0xD8, 0x0F, 0xF8,
+ 0x88, 0xF2, 0x8C, 0xA8, 0x83, 0xD9, 0x00, 0xF8, 0x9C, 0xDA,
+ 0x0D, 0xFA, 0xA8, 0xA8, 0x83, 0xF8, 0xAC, 0xD8, 0x00, 0xC8,
+ 0x8C, 0xD9, 0x05, 0xF8, 0x9C, 0xF0, 0x06, 0xF0, 0x02, 0xD9,
+ 0x00, 0xC9, 0xAC, 0xD8, 0x0C, 0xFA, 0x80, 0xF9, 0xAC, 0xD9,
+ 0x00, 0xC9, 0x08, 0xD7, 0x00, 0xC7, 0x34, 0xF7, 0x9C, 0xC9,
+ 0x38, 0xD7, 0x00, 0xC7, 0x44, 0xF7, 0x9C, 0xC9, 0x20, 0xD7,
+ 0x00, 0xC7, 0x48, 0xF7, 0x9C, 0xD8, 0x15, 0xF2, 0x8C, 0xF0,
+ 0x06, 0xEE, 0x4B, 0xF0, 0x0A, 0xD7, 0x15, 0xD8, 0x00, 0xC8,
+ 0x30, 0xF8, 0x7C, 0xD7, 0x00, 0xC7, 0x98, 0xF6, 0x78, 0xD8,
+ 0x1A, 0xF8, 0x6C, 0xD8, 0x00, 0xC8, 0xAC, 0xDA, 0x20, 0xF8,
+ 0xAC, 0xD9, 0x20, 0xDA, 0x0A, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x14, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x11, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x15, 0xCA,
+ 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x30, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x00, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x94, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x78, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xD8, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x98, 0xCA, 0xC8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x88, 0xCA, 0xF9, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA,
+ 0xF8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDA, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x00, 0xCA, 0xDB, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x64, 0xCA, 0xCB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xAC, 0xCA, 0xFB, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xD8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x07, 0xCA, 0xC8, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA, 0x26, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x7C, 0xCA, 0xF6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x6C, 0xCA,
+ 0x26, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x9C, 0xCA, 0xF6, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x63, 0xCA, 0xA6, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x15, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x67, 0xCA, 0x17, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x01, 0xCA,
+ 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x72, 0xCA, 0xB7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0x01, 0xCA, 0xF7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x43, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0x06, 0xCA, 0xF0, 0xF9, 0xAC, 0xA9,
+ 0x93, 0xDA, 0x42, 0xCA, 0xE8, 0xF9, 0xAC, 0xA9, 0x93, 0xDA,
+ 0xEC, 0xCA, 0xD7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA,
+ 0xC7, 0xF9, 0xAC, 0xA9, 0x93, 0xDA, 0x11, 0xCA, 0xF7, 0xF9,
+ 0xAC, 0xA9, 0x93, 0xDA, 0xFF, 0xCA, 0xEF, 0xF9, 0xAC, 0xF7,
+ 0x7C, 0xD8, 0x00, 0xD7, 0x00, 0xC7, 0x64, 0xF7, 0x8C, 0xD7,
+ 0x14, 0xF7, 0x11, 0xEE, 0x4A, 0xF0, 0x0E, 0x44, 0xDC, 0xF4,
+ 0x05, 0x07, 0x13, 0xD4, 0x01, 0x7F, 0xC4, 0x7C, 0x1C, 0x13,
+ 0x43, 0x61, 0x13, 0xA2, 0x31, 0x6C, 0xCD, 0xB2, 0x22, 0xA4,
+ 0x20, 0xF4, 0x05, 0x07, 0x06, 0xA1, 0x01, 0xD4, 0x0F, 0x14,
+ 0x43, 0x60, 0x04, 0x70, 0x04, 0xA4, 0x33, 0x71, 0x14, 0xEF,
+ 0x15, 0xA1, 0x01, 0xD0, 0x00, 0xF0, 0x02, 0xD0, 0x01, 0xC0,
+ 0x70, 0xE0, 0x00, 0x07, 0xE7, 0xD1, 0x0F, 0x70, 0x21, 0xF0,
+ 0x02, 0x83, 0x03, 0xA5, 0x31, 0xD4, 0x58, 0xC4, 0x4F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x22, 0x14, 0x34, 0x15, 0x85, 0x3F, 0xE0,
+ 0x04, 0x06, 0xFD, 0x82, 0x29, 0x82, 0x29, 0x02, 0x24, 0xD1,
+ 0x22, 0x11, 0x12, 0xD6, 0x00, 0x4F, 0xE1, 0xD8, 0x01, 0x17,
+ 0x87, 0x21, 0x17, 0xD6, 0x10, 0x4F, 0xE1, 0xF7, 0x05, 0x07,
+ 0x37, 0xD1, 0x1F, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x02, 0xE0,
+ 0x00, 0x07, 0x45, 0xD1, 0x00, 0xD2, 0x01, 0xE0, 0x01, 0x07,
+ 0x45, 0xD2, 0x01, 0xD3, 0x02, 0xE0, 0x02, 0x07, 0x45, 0xF0,
+ 0x02, 0xD3, 0x00, 0xC3, 0xC0, 0xD4, 0x00, 0xD5, 0x0F, 0xD6,
+ 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xD3, 0xC6, 0xC3, 0x10, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0xC6, 0xC3, 0x10, 0x87, 0x1E, 0x87,
+ 0x76, 0x1F, 0xF7, 0x87, 0x0E, 0x87, 0x7C, 0x1F, 0xF7, 0xD4,
+ 0x10, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0,
+ 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3, 0x09, 0xD3,
+ 0x01, 0xD4, 0x1F, 0xD5, 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07,
+ 0xBF, 0xE0, 0x03, 0x07, 0xA8, 0xD3, 0x10, 0xC3, 0x27, 0xF3,
+ 0x09, 0xD3, 0x00, 0xC3, 0x70, 0xE0, 0x03, 0x07, 0xE7, 0xD3,
+ 0xFF, 0xC3, 0x03, 0x2C, 0x4F, 0xD3, 0x00, 0xD4, 0x1F, 0xD5,
+ 0x1F, 0xD6, 0x00, 0xE0, 0x03, 0x07, 0xBF, 0xE0, 0x03, 0x07,
+ 0xA8, 0xF0, 0x02, 0xD0, 0x00, 0xD1, 0x2C, 0xE0, 0x00, 0x07,
+ 0xD4, 0xF0, 0x02, 0xA4, 0x43, 0xF4, 0x0D, 0xD7, 0x01, 0x2D,
+ 0xCB, 0xD6, 0x10, 0x5E, 0x0E, 0xF6, 0x01, 0x07, 0x96, 0xD6,
+ 0x10, 0x16, 0x06, 0x67, 0x76, 0x65, 0x56, 0x1F, 0xF7, 0x3F,
+ 0xF5, 0xEF, 0x9A, 0x67, 0x70, 0x65, 0x50, 0x1E, 0xE7, 0x3E,
+ 0xE5, 0x17, 0x10, 0x55, 0xDC, 0x85, 0x52, 0xB5, 0x52, 0x00,
+ 0x05, 0x84, 0x43, 0xF7, 0x05, 0x07, 0x89, 0xF0, 0x02, 0xE0,
+ 0x00, 0x07, 0xBF, 0xE0, 0x04, 0x07, 0xA8, 0xF0, 0x02, 0xD0,
+ 0x60, 0xF1, 0x08, 0xD6, 0x00, 0xC6, 0xF0, 0xD3, 0x01, 0xD2,
+ 0x10, 0xA0, 0x03, 0xF7, 0x08, 0xA0, 0x03, 0xF8, 0x08, 0x24,
+ 0xDF, 0xF4, 0x01, 0x07, 0xB7, 0xE0, 0x06, 0x07, 0xD8, 0xA6,
+ 0x63, 0x81, 0x13, 0xB2, 0x22, 0xF2, 0x05, 0x07, 0xAE, 0xD0,
+ 0x60, 0xF0, 0x1C, 0xF0, 0x02, 0xAA, 0x01, 0xA6, 0x11, 0xA7,
+ 0x21, 0xD4, 0x60, 0xF5, 0x48, 0xDB, 0x01, 0x6B, 0xB3, 0x15,
+ 0x5F, 0xF4, 0x5C, 0xA4, 0x43, 0x8B, 0x32, 0x04, 0x4B, 0xF8,
+ 0x48, 0xA4, 0x43, 0xF9, 0x48, 0xE0, 0x06, 0x07, 0x87, 0xF4,
+ 0x9C, 0xB4, 0x42, 0xF4, 0x8C, 0xF0, 0x02, 0xC0, 0x80, 0xE0,
+ 0x00, 0x07, 0xD8, 0xF0, 0x02, 0xF0, 0x0A, 0xD3, 0x00, 0xC3,
+ 0x9C, 0xF3, 0x1C, 0xC3, 0xA0, 0xF3, 0x2C, 0xC3, 0xA4, 0xF3,
+ 0x0C, 0xD3, 0x00, 0xC3, 0xA8, 0xF3, 0x38, 0xF3, 0x01, 0x07,
+ 0xE0, 0xF0, 0x06, 0xF0, 0x02, 0xF0, 0x0A, 0xD2, 0x00, 0xC2,
+ 0xA4, 0xF2, 0x0C, 0xC2, 0xA8, 0xF1, 0x28, 0xF1, 0x01, 0x07,
+ 0xEC, 0xC2, 0x9C, 0xF1, 0x28, 0xC2, 0xA0, 0xF2, 0x28, 0xF0,
+ 0x06, 0xF0, 0x02, 0xD1, 0x00, 0xC1, 0x98, 0xF1, 0x0C, 0xF0,
+ 0x02, 0xD1, 0x00, 0xC1, 0x94, 0xF0, 0x18, 0xC1, 0x98, 0xF1,
+ 0x18, 0xF0, 0x02, 0xED, 0xDC, 0x90, 0x00, 0x88, 0x00, 0x30,
+ 0x00, 0x34, 0x00, 0x24, 0x00, 0x6C, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05,
+ 0xDD, 0x3D, 0xD7, 0x00, 0x15, 0x00, 0x1A, 0x0A, 0x19, 0x00,
+ 0x1E, 0x00, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0xA0, 0x01, 0x76, 0x01, 0x38, 0x02,
+ 0xC0, 0x02, 0x30, 0x04, 0x20, 0x03, 0x60, 0x06, 0x5C, 0x04,
+ 0xBC, 0x09, 0x60, 0x07, 0x9C, 0x0D, 0x70, 0xFF, 0xFF, 0x7A,
+ 0xF5, 0x10, 0xAE, 0x70, 0xA5, 0x22, 0x7C, 0x00, 0x00, 0x00,
+ 0x00, 0x1E, 0x17, 0x00, 0x04, 0x2C, 0x5F, 0x00, 0x00, 0x03,
+ 0x00, 0x06, 0x00, 0x27, 0xC5, 0x21, 0xF0, 0x16, 0x27, 0xC0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x67, 0x42, 0xC0, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0E, 0x00, 0x1C, 0xFE,
+ 0xFE, 0x80, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x30, 0x00, 0x0C, 0x08, 0x30, 0x00, 0x00, 0x00,
+ 0x30, 0x00, 0x02, 0x00, 0x21, 0x00, 0x00, 0x00, 0x0C, 0x00,
+ 0x04, 0x00, 0x21, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x01, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x03, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x2C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x50, 0x00, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x0A, 0x03, 0xA9, 0x00, 0x08, 0x00, 0x04, 0x00, 0x0F, 0x00,
+ 0x08, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x64, /* WAIT 100[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFF, 0x00, 0x00, 0xFB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x01, 0xA3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x02, 0xB8, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x01, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x08, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x14, 0xB2, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2C, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x12, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x40, 0x12, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0xA3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xA3, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xDA, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xFD, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x58, 0xD3, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xD3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x60, 0x03, 0x0C, 0xCF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0D, 0xD3, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x96, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xC7, 0xA1, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x04, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x0F, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x27, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xEB, 0xD0, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDC, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x94, 0xD0, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0x13, 0xF1, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x3D, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x49, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x01, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x55, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x55, 0xE9, 0xA3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xBB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x68, 0xD3, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xD3, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x92, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xB6, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xF0, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x05, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x2C, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x28, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x9E, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x8A, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x89, 0xD5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x21, 0x03, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x53, 0x24, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x11, 0x34, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x93, 0x11, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x01, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x7F, 0xB3, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x01, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x01, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xD1,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x06, 0x5F, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x09, 0x5C, 0xC2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xF4, 0xF3, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x8E, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xEF, 0xD0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x3D, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x01, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x02, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0x9A, 0xD0, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x89, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x01, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x27, 0xD2, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x28, 0xD3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xFE, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x6A, 0xC2, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x09, 0xE9, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xBD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0x7D, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x1E, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x0D, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xE8, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xE7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xDF, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xDC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xD9, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xD6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xCF, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x01, 0xCB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0A, 0x80, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x08, 0xEA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0D, 0xEA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xB9, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x92, 0x11, 0x3C, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x22, 0x3C, 0xCE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x0F, 0xD0, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xEA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xD4, 0xC0, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x0F, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xD1, 0xEA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x03, 0xC0, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x1A, 0x80, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xEA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x03, 0xD7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x60, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xAA, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0xD7, 0xD5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x45, 0xF5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0xF6, 0xB6, 0x46,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE9, 0xF9, 0x74, 0xC7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0x06, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0xB8, 0x74, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0x15, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x0D, 0x22, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x25, 0xD3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x23, 0xD3, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0xFE, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x20, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0xB9, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x34, 0x22, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x70, 0x21, 0xEA, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0E, 0xEA, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xFB, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x18, 0xBA, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x62, 0x1C, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1C, 0x8A, 0xF6, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x01, 0x02, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x25, 0xDA, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x28, 0xFA, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBB, 0xB2, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x78, 0xBB, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x01, 0x02, 0x4D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x78, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x49, 0xD8, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xDA, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0xAC, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x8C, 0xD8, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF4, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xC8, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x01, 0xF8, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x13, 0xFA, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xAC, 0xEA, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x60, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0E, 0xF8, 0x88,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x8C, 0xD8, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x88, 0xF2, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x83, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xDA, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0xAC, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x8C, 0xD9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x9C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0xAC, 0xD8, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x80, 0xF9, 0xAC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x00, 0xC9, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xC9, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xC9, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x00, 0xC7, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0xD8, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x8C, 0xF0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x79, 0xF0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xD0, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x05, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x05, 0xF2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x02, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x7B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x12, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x03, 0xFD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x12, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x0A, 0xF7, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x71, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x04, 0xD3, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA8, 0x51, 0xF6, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xC5, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x33, 0xF8, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x37, 0x1A, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB8, 0x62, 0x1C, 0x8A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAA, 0x63, 0x1D, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x89, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xB2, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xB7, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x08, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xE6, 0xEA, 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x03, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x18, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xC8, 0xA9, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x38, 0xA8, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x03, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0x12, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x05, 0x02, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xA3, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0xB9, 0x25, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x62, 0xD8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x18, 0x82, 0x24, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x18, 0x23, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0x08, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x36, 0xEA, 0xE6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xF0, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xF1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x8E, 0xD3, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x13, 0xF3, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x32, 0xF0, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x04, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x02, 0x7B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x05, 0x02, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x0F, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x2C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x7B, 0xF1, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x8B, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xD2, 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0xB4, 0xD4, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x1C, 0xF3, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xA3, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0xF1, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x8E, 0xD6, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x28, 0x84, 0x45,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x44, 0xB3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x38, 0xA3, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x38, 0xA9, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0xE0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x49, 0xD9, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x04, 0x2C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x05, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x0A, 0xF9, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x03, 0xFD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x41, 0xAA, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB3, 0x28, 0xFB, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x09, 0x03, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x44, 0x69, 0x07, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x54, 0x27, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x00, 0x4F, 0xA9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x7F, 0xAA, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7A, 0x27, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x03, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x4C, 0xA7, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0x04, 0x9A, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x0E, 0x97, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0x7F, 0x2F, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x05, 0x02, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xD6, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xBA, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x05, 0x02, 0xFD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD4, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x01, 0xF9, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB3, 0x99, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x14, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB3, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x96, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x4D, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x10, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x04, 0xEB, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF7, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x58, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x13, 0x19, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x6B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x27, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x6B, 0xB7, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x2C, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x58, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0x69, 0xBA, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1B, 0x96, 0x49, 0xBA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0x91, 0x29, 0x9A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x0D, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0x08, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x07, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB3, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x0C, 0xDB, 0x8E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4B, 0x04, 0xF6, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA5, 0xB5, 0xF9, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEB, 0xB3, 0x4B, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x83, 0xA0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x01, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x04, 0xEB, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x0C, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x58, 0xF8, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x73, 0xF7, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x03, 0x19, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x03, 0xA3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x27, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xA3, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x2C, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x58, 0xA5, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x19, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xFA, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA6, 0x5E, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xBA, 0xA2, 0x1B, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x49, 0xBA, 0x9A, 0x91,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0x9A, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x9C, 0x08, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x99, 0x17, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xB3, 0xD7, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF7, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x8E, 0x4B, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0xB8, 0xA5, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x58, 0xA5, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x58, 0x16, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x03, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0x94, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x42, 0xA5, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x05, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xD2, 0x5F, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xFA, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xBA, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x25, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x5C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0x5E, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1E, 0x0A, 0x5E, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x13, 0xD2, 0x9E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xD3, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xFB, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0xF6, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x36, 0x86, 0x66,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x33, 0xB3, 0x36, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x36, 0x33, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5C, 0xF4, 0x43, 0xCE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB9, 0x92, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xE4, 0xD6, 0xF2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x03, 0x4E, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xF6, 0x10, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x23, 0x94, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x34, 0xA7, 0x73,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x03, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x2E, 0xFB, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x03, 0xF5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x3A, 0xF3, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0xF5, 0xC4, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3B, 0x4B, 0xF2, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xAB, 0xB3, 0xC5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4E, 0x5B, 0x2A, 0x1A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x01, 0x03, 0xFC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0xBC, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xF4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x0F, 0xC7, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x07, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0xFF, 0x22, 0xD7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0xC7, 0x83, 0x8F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0x82, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x8E, 0xA7, 0x77,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x42, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x79, 0xF8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x43, 0x80, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x78, 0x44, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x9E, 0x98, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x28, 0x20, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x04, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x68, 0xD8, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x42, 0x78, 0x82, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x2C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x3C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x4C, 0xA6, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x5C, 0xD7, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x20, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x88, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x63, 0xF6, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xD3, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xF0, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x01, 0xD5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x40, 0x1D, 0xDA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0xC0, 0x1D, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x12, 0xD7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x14, 0xF4, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x71, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD4, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xFE, 0xE0, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0xE3, 0xC2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x5B, 0xC3, 0x0B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xA4, 0x1F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x4B, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x56, 0x33, 0x32,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x34, 0xB4, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEC, 0x50, 0xD4, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0x20, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x53, 0x33, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x39, 0xD2, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x8E, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x12, 0x4F, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x03, 0xD6, 0xAA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x2A, 0x4E, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x1E, 0x4F, 0xF3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x72, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xED, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0x4F, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0F, 0x27, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x01, 0xF4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xBF, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x03, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xA5, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x33, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x35, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x85, 0xB3, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x08, 0xD6, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF8, 0xD6, 0x55,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x3B, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0x91, 0xB3, 0x3C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3F, 0xF8, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x77, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xD8, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x88, 0xD8, 0xAE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x08, 0x87, 0x94, 0x43,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x42, 0x08, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x88, 0xD6, 0x52,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x9C, 0xEC, 0xBF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xF3, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x35, 0xD5, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x98, 0x94, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xBF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA2, 0x29, 0xF7, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x75, 0xB3, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x31, 0x23, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x01, 0x04, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x03, 0x2F, 0xF8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x0C, 0x07, 0x74,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0E, 0xD6, 0xDA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD6, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x53, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xF0, 0x1C, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x60, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x62, 0x08, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x88, 0xA8, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x88, 0xE0, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xD2, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x83, 0x18, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x54, 0xF5, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x50, 0x5D, 0xD0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x65, 0xA3, 0x2F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA3, 0x39, 0xF5, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x50, 0x5D, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x65, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xA2, 0x25,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xF4, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x0C, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xE0, 0xB2, 0x22,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x4F, 0x7D, 0xE9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x10, 0x15, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x74, 0x45, 0x73, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x70, 0x05, 0x20, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x23, 0x33, 0x24, 0x44,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x0F, 0x83, 0x3F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x4F, 0x15, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x43, 0x23, 0x53,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x24, 0x60, 0xD5, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xC0, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x03, 0x36, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xE3, 0x86, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x62, 0x26, 0x62,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x06, 0x82, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB5, 0x52, 0xF5, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x04, 0xFE, 0xC5, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x36, 0x05, 0xC5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x65, 0x86, 0x6F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x65, 0xA7, 0x11,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x8D, 0xF3, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x67, 0x51, 0xA7, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x77, 0xD5, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x37, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xA7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x02, 0xD6, 0xFC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x87, 0x09, 0xD5, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x10, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x8B, 0xF3, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x02, 0xF2, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x41, 0xB7, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0C, 0xD6, 0xB0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x05, 0x37, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0D, 0xD6, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x68, 0x33, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x31, 0xD5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xCF, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x3B, 0xC5, 0x27,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x09, 0xB0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x06, 0xC5, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x05, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x73, 0x86, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0x2D, 0xD8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2E, 0xE8, 0xD4, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4C, 0xC3, 0x26, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x31, 0x25, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x35, 0x03, 0x36,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1F, 0xE9, 0x95, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x1D, 0xF9, 0x20, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x05, 0x5D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x22, 0x27, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x37, 0x84, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x34, 0xED, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0xED, 0xD5, 0x8B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x3C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0x2D, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x92, 0x0B, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB6, 0x34, 0x16, 0x6B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8B, 0x19, 0x2F, 0xB8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x08, 0xD7, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x47, 0xAB, 0x07, 0x79,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x73, 0x0A, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA3, 0xD2, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0xD5, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x5A, 0x85, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x52, 0xAA, 0xA5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0xA5, 0x5C, 0xA6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5D, 0x7A, 0x2C, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x85, 0xF2, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x01, 0x05, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xF2, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x80, 0x02, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x32, 0x09, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2A, 0x52, 0x8A, 0xA4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0xA0, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x91, 0xA9, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0x89, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x89, 0xDB, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCB, 0x01, 0x46, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x86, 0x62, 0x06, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x8C, 0xFA, 0x6C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x16,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x0C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD0, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xF0, 0x1C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xC1, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x06, 0xC2, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xC3, 0xFB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x4D, 0x3C, 0xD3, 0x64,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xF8, 0x4E, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0xDE, 0xD2, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x20, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x83, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0xFF, 0x4C, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0x13, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x26, 0xC2, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x03, 0xC2, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x82, 0x3A, 0x82, 0x2D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x07, 0xC8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x15, 0x82, 0xF5, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xC8, 0xD8, 0x39,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x01, 0x15, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x01, 0x05, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x00, 0xA2, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0B, 0x73, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x0A, 0x64, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x4B, 0x07, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x18, 0x72, 0xF8, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xD9, 0xB8, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB1, 0x12, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0xD9, 0x28, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF8, 0x05, 0x05, 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xB9, 0xC2, 0xFF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF2, 0x09, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x2B, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xD1, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC1, 0xF0, 0xD0, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB0, 0x02, 0xA1, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x05, 0x05, 0xE5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x23, 0xE0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xD0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x03, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x87, 0xF0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x81, 0x0F, 0xD2, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xDE, 0xF1, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA1, 0x13, 0xD0, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x70, 0x44, 0xFE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0D, 0x45, 0xEF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0xC9, 0x2C, 0xC5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x01, 0x06, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x02, 0x07, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0A, 0x5F, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x01, 0x06, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x0D, 0x5E, 0x3D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x01, 0x06, 0x21,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0A, 0x5F, 0xD8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0xF7, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x2A, 0xF5, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5E, 0xC9, 0xFB, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x01, 0x06, 0x2A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x00, 0xEE, 0x4D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x89, 0xF9, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x82, 0xF0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2B, 0x30, 0x09, 0x9B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x9C, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x4D, 0xDA, 0x83,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0xA8, 0x05, 0x5B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x5C, 0xD4, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xEE, 0x4D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x86, 0xF3, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x89, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x3C, 0xA9, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x9C, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEE, 0x4D, 0xF9, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x30, 0x47, 0xD3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x46, 0x3D, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x49, 0xF6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x4A, 0xDA, 0xB9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x01, 0xFA, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x01, 0xEE, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x0D, 0x09, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0x9C, 0xD0, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0x8B, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x16, 0x0B, 0xAB, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x05, 0x06, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x0D, 0xD4, 0x84,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x48, 0x8A, 0x29,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x03, 0x2F, 0xAB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0xB6, 0xF9, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x63, 0xA9, 0xB4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x06, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDB, 0x00, 0xD5, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC5, 0x01, 0xEE, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xD9, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFB, 0x98, 0xEE, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x00, 0xDB, 0x70,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x46, 0xB4, 0xD9, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x98, 0x2A, 0x69,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x9A, 0xAE, 0x06, 0x6A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB4, 0x42, 0xF4, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x77, 0xD7, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC7, 0x08, 0x17, 0x75,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x76, 0xEE, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x65, 0xD9, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC9, 0x02, 0x09, 0x95,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x9B, 0xDA, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xFA, 0xA8, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xBA, 0x9A, 0xA2,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x19, 0x9A, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x08, 0x16, 0xA9,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x47, 0x9B, 0xD9, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x79, 0x88, 0x99,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x88, 0x15, 0x97,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x81, 0xF9, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x83, 0xF9, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x15, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xFB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0x9E, 0xD9, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x69, 0x88, 0x99,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x88, 0x15, 0x96,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x81, 0xF9, 0x5C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x75, 0xE0, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xD7, 0x87,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x78, 0xD8, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x77, 0x78, 0x88, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x7C, 0xD6, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xA6, 0x63,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x08, 0x04, 0x07,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x84, 0x49, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xB3, 0x03, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x01, 0xEE, 0xB5,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x13, 0x41, 0xD8, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x2C, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x76, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x2C, 0xD1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x16, 0xD1, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x76,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0xB9, 0xD1, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x89, 0xF0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xB2, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x87, 0xF2, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x05, 0xF7,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0xA8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x80, 0xC6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0x3E, 0x88, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x87, 0xD5, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x76, 0xE0, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xD7, 0xBC,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF7, 0x78, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xEF, 0xD6, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x0B, 0xD8, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0x3E, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xEB, 0xD8, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x60, 0xC6, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x5F, 0x3E, 0xF7, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x06, 0xEB, 0xD8, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x0A, 0xD7, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA7, 0x21, 0xA9, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA6, 0x01, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x05, 0x61, 0xA4, 0x81,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x82, 0x4D, 0x49,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0x29, 0xDB, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xAB, 0xAB, 0xB3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x29, 0xB9, 0xD8, 0x19,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC8, 0x80, 0xE0, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xD8, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x18, 0x48, 0xA5, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1C, 0xD7, 0x30,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x05, 0x07, 0x12,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD8, 0x00, 0xD7, 0xEE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1D, 0xD7, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEF, 0x1B, 0xD8, 0x0F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1D, 0xD7, 0x42,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0x1C, 0xD7, 0xEE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x06, 0x07, 0x3B,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x06, 0x4E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD9, 0x01, 0x2D, 0x92,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x01, 0x07, 0x3A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x8A, 0x29, 0xDB, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2F, 0xAB, 0xA9, 0xB6,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF9, 0x05, 0x07, 0x2A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x32, 0xCA, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEF, 0x2C, 0xDA, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xCA, 0x04, 0x89, 0x54,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x09, 0x9A, 0xDB, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xDA, 0x0F, 0xCA, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD7, 0x08, 0x7B, 0x97,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x0A, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x6B, 0x97, 0xE0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x7A, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x08, 0xD4, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC4, 0xF0, 0xD2, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF5, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA0, 0x03, 0xF6, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x01, 0x2F, 0xDF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x07, 0x4F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x04, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA4, 0x43, 0x81, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB2, 0x22, 0xF2, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x45, 0xD0, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x60, 0xF4, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x85, 0x03, 0xD6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x66, 0x65, 0x1C, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x4C, 0xA3, 0x33,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x03, 0x30, 0xF4, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xA9, 0x23, 0xF9, 0x0D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x0F, 0x2D, 0x1D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x19, 0xD6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x27, 0xD6, 0x66, 0x65,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x67, 0x75, 0x1C, 0xCA,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x3C, 0xCB, 0x16, 0x85,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x57, 0xC5, 0x87, 0x72,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xB7, 0x72, 0x05, 0x57,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x89, 0x93, 0xF6, 0x05,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x66, 0xF3, 0x4C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xC0, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xF0, 0x0A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x00, 0xC3, 0x9C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x1C, 0xC3, 0xA0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x2C, 0xC3, 0xA4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x0C, 0xD3, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0xA8, 0xF3, 0x38,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x01, 0x07, 0x82,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD0, 0x02, 0xC0, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x00, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x03, 0x2D, 0xDE,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x13, 0x2C, 0xCD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD6, 0xBB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF6, 0x68, 0xD4, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x4C, 0xD2, 0x67,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x3C, 0xD3, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC3, 0x02, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x9F, 0xA2, 0x61,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x80, 0xC3, 0x8D,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x09, 0xC1, 0xF0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x01, 0x07, 0x7A,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xBD, 0xF4, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x01, 0x81, 0x03,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x2D, 0x4D, 0xF1, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xAD, 0xD6, 0xBF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x68, 0xEF, 0xAF,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD6, 0xBD, 0xF4, 0x68,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF4, 0x68, 0xD2, 0x0E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x40, 0xE0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0x57, 0xD0, 0x60,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0xFF, 0xC1, 0xFD,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x1C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0C, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x00, 0xC1, 0x94,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x18, 0xC1, 0x98,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x18, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x0A, 0xD2, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA4, 0xF2, 0x0C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA8, 0xF1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x01, 0x07, 0xC8,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0x9C, 0xF1, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC2, 0xA0, 0xF2, 0x28,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD2, 0x08, 0xC2, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD3, 0x0B, 0xC3, 0x20,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xE0, 0x03, 0x07, 0xC3,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x94, 0x48, 0x00, 0x24,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD5, 0x85, 0xF5, 0x58,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x26, 0x05, 0x96, 0x6E,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x10, 0x06, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD1, 0x82, 0xF1, 0x18,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF1, 0x0D, 0xD2, 0x86,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF3, 0x28, 0xD2, 0x89,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF5, 0x28, 0xD6, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC6, 0x20, 0xE0, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0x87, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x97, 0x7C, 0xA2, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xD4, 0x81, 0xF8, 0x48,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x17, 0x78, 0x10, 0x35,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x40, 0x71, 0xA1, 0x71,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xF0, 0x02, 0xD0, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xC0, 0x20, 0xE0, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x07, 0xC3, 0xD4, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0E, 0xD4, 0x63, 0x14,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0F, 0xF4, 0x11, 0x23,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x14, 0xF0, 0x02,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0xEA, 0x12, 0x90, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x88, 0x00, 0x30, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x34, 0x00, 0x24, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x6C, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x02, 0x13,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x39, 0xA7, 0x00, 0x15,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x24, 0x08, 0xFB,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x28, 0x00, 0x51,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x20, 0x00, 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x12, 0x39,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x0C, 0x80, 0xF0, 0xF7, 0x3E, 0x75, 0xC1, 0x8A, 0xE4, 0x02,
+ 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x05, 0x0F, 0xEE, 0xAA, 0x5F, 0xEA, 0x90,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x06, 0x00, 0x0A, 0x4D, 0x8C, 0xF2, 0xD8, 0xCF, 0x30, 0x79,
+ 0x9F,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x0B, 0x0D, 0xA4, 0x6C,
+ 0x00, 0x10, /* Length = 16 bytes */
+ 0x0A, 0x01, 0x67, 0x24, 0x40, 0x08, 0xC3, 0x20, 0x10, 0x64,
+ 0x3C, 0xFA, 0xF7, 0xE1, 0x0C, 0x2C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x09, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x10, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x16, 0x12,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1F, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x01, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x10,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x02, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 9008 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_base_firmware_i2c_files_base_firmwares_mts_init = {
+ XC3028_base_firmware_i2c_files_base_firmwares_mts_init_SEQUENCE
+};
+
+
+// ************************************************************
+// *** STANDARD-SPECIFIC FIRMWARE FILES
+// *** These declarations are not used directly by user
+// ************************************************************
+
+unsigned char XC3028_std_firmware_bg_pal_a2_a_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x5E, 0x00, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9, 0x12,
+ 0x41, 0x66,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1B, 0xD2, 0x9B, 0x92, 0x02, 0x96, 0xC1, 0x96, 0x56,
+ 0x59, 0x12,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_bg_pal_a2_a = {
+ XC3028_std_firmware_bg_pal_a2_a_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_bg_pal_a2_a_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x5E, 0x00, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9, 0x12,
+ 0x41, 0x66,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06,
+ 0xA9, 0x04,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_bg_pal_a2_a_mts = {
+ XC3028_std_firmware_bg_pal_a2_a_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_bg_pal_a2_b_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x5E, 0x00, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9, 0x12,
+ 0x41, 0x66,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1B, 0xD2, 0x9B, 0x92, 0x02, 0x96, 0xC1, 0x96, 0x56,
+ 0x59, 0x12,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_bg_pal_a2_b = {
+ XC3028_std_firmware_bg_pal_a2_b_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_bg_pal_a2_b_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x5E, 0x00, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9, 0x12,
+ 0x41, 0x66,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06,
+ 0xA9, 0x04,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_bg_pal_a2_b_mts = {
+ XC3028_std_firmware_bg_pal_a2_b_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_bg_pal_nicam_a_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x5E, 0x00, 0xA2,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9, 0x12,
+ 0x41, 0x66,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x0A, 0xE2, 0x9E, 0xD8, 0x02, 0x52, 0x41, 0xA9, 0x86,
+ 0x66, 0x23,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_bg_pal_nicam_a = {
+ XC3028_std_firmware_bg_pal_nicam_a_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_bg_pal_nicam_a_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x5E, 0x00, 0xA2,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9, 0x12,
+ 0x41, 0x66,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06,
+ 0xA9, 0x04,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_bg_pal_nicam_a_mts = {
+ XC3028_std_firmware_bg_pal_nicam_a_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_bg_pal_nicam_b_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x5E, 0x00, 0xA2,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9, 0x12,
+ 0x41, 0x66,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x0A, 0xE2, 0x9E, 0xD8, 0x02, 0x52, 0x41, 0xA9, 0x86,
+ 0x66, 0x23,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_bg_pal_nicam_b = {
+ XC3028_std_firmware_bg_pal_nicam_b_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_bg_pal_nicam_b_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x5E, 0x00, 0xA2,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9, 0x12,
+ 0x41, 0x66,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06,
+ 0xA9, 0x04,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_bg_pal_nicam_b_mts = {
+ XC3028_std_firmware_bg_pal_nicam_b_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dk_pal_a2_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0x2F,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1F, 0xE4, 0xED, 0xB8, 0x06, 0xDC, 0x81, 0x59, 0x86,
+ 0xA6, 0x14,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dk_pal_a2 = {
+ XC3028_std_firmware_dk_pal_a2_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dk_pal_a2_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0x2F,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x0E, 0x15, 0x6D, 0xB8, 0x07, 0x76, 0x01, 0x66, 0x86,
+ 0xA4, 0x1B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dk_pal_a2_mts = {
+ XC3028_std_firmware_dk_pal_a2_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dk_pal_nicam_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0xA5,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06,
+ 0x96, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dk_pal_nicam = {
+ XC3028_std_firmware_dk_pal_nicam_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dk_pal_nicam_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0xA5,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x04, 0xDC, 0x80, 0x04, 0x95, 0xA1, 0x55, 0x06,
+ 0x59, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dk_pal_nicam_mts = {
+ XC3028_std_firmware_dk_pal_nicam_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dk_secam_a2_dk1_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0x2D,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x13, 0x54, 0x98, 0xD8, 0x04, 0xDE, 0x01, 0x52, 0x46,
+ 0x54, 0x09,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dk_secam_a2_dk1 = {
+ XC3028_std_firmware_dk_secam_a2_dk1_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dk_secam_a2_dk1_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0x2D,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1E, 0x44, 0x92, 0x90, 0x04, 0xE4, 0x91, 0x5A, 0x86,
+ 0x59, 0x9B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dk_secam_a2_dk1_mts = {
+ XC3028_std_firmware_dk_secam_a2_dk1_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dk_secam_a2_l_dk3_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0xB1,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06,
+ 0x96, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dk_secam_a2_l_dk3 = {
+ XC3028_std_firmware_dk_secam_a2_l_dk3_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dk_secam_a2_l_dk3_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0xB1,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x04, 0xDC, 0x80, 0x04, 0x95, 0xA1, 0x55, 0x06,
+ 0x59, 0x02,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dk_secam_a2_l_dk3_mts = {
+ XC3028_std_firmware_dk_secam_a2_l_dk3_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv6_atsc_2633_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x25, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x50, 0x20, 0xC3, 0x45, 0x23,
+ 0x2B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x02,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1A, 0x82, 0x4B, 0x72, 0x05, 0xB6, 0xC1, 0xA5, 0xA6,
+ 0x69, 0x23,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x33,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv6_atsc_2633 = {
+ XC3028_std_firmware_dtv6_atsc_2633_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv6_qam_2620_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x2D, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xC2, 0xA4, 0x49,
+ 0x0D, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x02,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06,
+ 0x69, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv6_qam_2620 = {
+ XC3028_std_firmware_dtv6_qam_2620_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv6_qam_2633_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x2D, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xC2, 0xA4, 0x49,
+ 0x0D, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x02,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1A, 0x82, 0x4B, 0x72, 0x05, 0xB6, 0xC1, 0xA5, 0xA6,
+ 0x69, 0x23,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x33,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv6_qam_2633 = {
+ XC3028_std_firmware_dtv6_qam_2633_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv7_2620_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x37, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xC2, 0xA4, 0x49,
+ 0x0D, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x03,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1A, 0x83, 0x25, 0xB4, 0x03, 0x6E, 0x01, 0x96, 0x86,
+ 0xA8, 0x1C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv7_2620 = {
+ XC3028_std_firmware_dtv7_2620_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv7_2633_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x37, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xC2, 0xA4, 0x49,
+ 0x0D, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x03,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06,
+ 0x69, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x33,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv7_2633 = {
+ XC3028_std_firmware_dtv7_2633_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv78_2620_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x77, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xC2, 0xA4, 0x49,
+ 0x0D, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x03,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1A, 0x83, 0x25, 0xB4, 0x03, 0x6E, 0x01, 0x96, 0x86,
+ 0xA8, 0x1C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv78_2620 = {
+ XC3028_std_firmware_dtv78_2620_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv78_2633_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x77, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xC2, 0xA4, 0x49,
+ 0x0D, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x03,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06,
+ 0x69, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x33,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv78_2633 = {
+ XC3028_std_firmware_dtv78_2633_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv8_2620_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x37, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xC2, 0xA4, 0x49,
+ 0x0D, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x03,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1A, 0x83, 0x25, 0xB4, 0x03, 0x6E, 0x01, 0x96, 0x86,
+ 0xA8, 0x1C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv8_2620 = {
+ XC3028_std_firmware_dtv8_2620_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_dtv8_2633_SEQUENCE[151] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x02, 0x37, 0x01, 0x72,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x18,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xC2, 0xA4, 0x49,
+ 0x0D, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x03,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x01,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB4, 0x00, 0xB4,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06,
+ 0x69, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0x33,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 151 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_dtv8_2633 = {
+ XC3028_std_firmware_dtv8_2633_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_fm_SEQUENCE[137] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x02, 0xD5, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xFF, 0xEF, 0xFF,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46,
+ 0x9A, 0x1C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 137 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_fm = {
+ XC3028_std_firmware_fm_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_i_pal_nicam_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0xA1,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1B, 0x22, 0x4A, 0x4C, 0x05, 0x2F, 0x01, 0xAA, 0x86,
+ 0x68, 0x2B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_i_pal_nicam = {
+ XC3028_std_firmware_i_pal_nicam_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_i_pal_nicam_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x1E, 0x00, 0xA1,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06,
+ 0x96, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_i_pal_nicam_mts = {
+ XC3028_std_firmware_i_pal_nicam_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_l_secam_nicam_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x12, 0x00, 0x85,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x8B, 0x02, 0xD5, 0x55, 0xC7, 0xF5, 0x7E, 0x14,
+ 0x87, 0xA4, 0x3D,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06,
+ 0x96, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x4C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x0A,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x08, 0x04, 0x42, 0x42, 0x01, 0x10,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_l_secam_nicam = {
+ XC3028_std_firmware_l_secam_nicam_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_lp_secam_nicam_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x01, 0x12, 0x00, 0x85,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x6C, 0x25, 0x82, 0x38, 0xA4, 0x49, 0xA9, 0x24,
+ 0x96, 0x69,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x14, 0x08, 0x30, 0x10, 0x6C, 0x18, 0x12, 0x0D, 0x19,
+ 0x32, 0xAD,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x8B, 0x02, 0xD5, 0x55, 0xC7, 0xF5, 0x7E, 0x14,
+ 0x87, 0xA4, 0x3D,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06,
+ 0x96, 0x13,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x4C,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x0A,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x08, 0x04, 0x42, 0x42, 0x01, 0x10,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_lp_secam_nicam = {
+ XC3028_std_firmware_lp_secam_nicam_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_a2_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x2B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x0A, 0x52, 0x64, 0x92, 0x00, 0x52, 0x4D, 0x59, 0x66,
+ 0x66, 0x94,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_a2 = {
+ XC3028_std_firmware_mn_ntscpal_a2_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_a2_lcd_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x2B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x06, 0x93, 0x28, 0x96, 0x49, 0x34, 0xC8, 0xDA, 0x5A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x0A, 0x52, 0x64, 0x92, 0x00, 0x52, 0x4D, 0x59, 0x66,
+ 0x66, 0x94,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_a2_lcd = {
+ XC3028_std_firmware_mn_ntscpal_a2_lcd_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_a2_lcd_nogd_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x2B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x06, 0x93, 0x28, 0x96, 0x49, 0x34, 0xC8, 0xDA, 0x5A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x01,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46,
+ 0x69, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_a2_lcd_nogd = {
+ XC3028_std_firmware_mn_ntscpal_a2_lcd_nogd_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_a2_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x2B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x1B, 0x22, 0x4A, 0x49, 0x00, 0x38, 0xC1, 0x55, 0x66,
+ 0x12, 0x0A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_a2_mts = {
+ XC3028_std_firmware_mn_ntscpal_a2_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_btsc_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46,
+ 0x69, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_btsc = {
+ XC3028_std_firmware_mn_ntscpal_btsc_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_btsc_lcd_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x06, 0x93, 0x28, 0x96, 0x49, 0x34, 0xC8, 0xDA, 0x5A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46,
+ 0x69, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_btsc_lcd = {
+ XC3028_std_firmware_mn_ntscpal_btsc_lcd_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_btsc_lcd_nogd_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x06, 0x93, 0x28, 0x96, 0x49, 0x34, 0xC8, 0xDA, 0x5A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46,
+ 0x69, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_btsc_lcd_nogd = {
+ XC3028_std_firmware_mn_ntscpal_btsc_lcd_nogd_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_eiaj_SEQUENCE[163] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x00, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46,
+ 0x69, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x29,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x06,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 163 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_eiaj = {
+ XC3028_std_firmware_mn_ntscpal_eiaj_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_mts_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x20, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00, 0x20,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46,
+ 0x69, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x32,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x0A,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_mts = {
+ XC3028_std_firmware_mn_ntscpal_mts_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_mts_lcd_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x20, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x06, 0x93, 0x28, 0x96, 0x49, 0x34, 0xC8, 0xDA, 0x5A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5, 0xB5,
+ 0x25, 0x65,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46,
+ 0x69, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x32,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x0A,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_mts_lcd = {
+ XC3028_std_firmware_mn_ntscpal_mts_lcd_SEQUENCE
+};
+
+unsigned char XC3028_std_firmware_mn_ntscpal_mts_lcd_nogd_SEQUENCE[171] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x80, 0x01, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0xCC, 0x20, 0x06,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2B, 0x1B,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x14, 0x01, 0x1B, 0x19, 0xB5, 0x29, 0xAB, 0x09, 0x55, 0x44,
+ 0x05, 0x65,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x13, 0x18, 0x08, 0x00, 0x00, 0x6C, 0x18, 0x16, 0x8C, 0x49,
+ 0x2A, 0xAB,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x0D, 0x01, 0x4B, 0x03, 0x97, 0x55, 0xC7, 0xD7, 0x00, 0xA1,
+ 0xEB, 0x8F, 0x5C,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x1A, 0x06, 0x93, 0x28, 0x96, 0x49, 0x34, 0xC8, 0xDA, 0x5A,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x2D, 0x01,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x18, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x1D, 0x00,
+ 0x00, 0x07, /* Length = 7 bytes */
+ 0x0F, 0x00, 0x29, 0x56, 0xB0, 0x00, 0xB6,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x20, 0x00,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46,
+ 0x69, 0x0B,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x22, 0x32,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x23, 0x0A,
+ 0x00, 0x09, /* Length = 9 bytes */
+ 0x25, 0x00, 0x09, 0x90, 0x09, 0x06, 0x64, 0x02, 0x41,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x26, 0xCC,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x29, 0x40,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x21, 0x03,
+ 0x00, 0x02, /* Length = 2 bytes */
+ 0x00, 0x8C,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 171 BYTES */
+};
+
+XC3028_I2C_SEQUENCE XC3028_std_firmware_mn_ntscpal_mts_lcd_nogd = {
+ XC3028_std_firmware_mn_ntscpal_mts_lcd_nogd_SEQUENCE
+};
+
+
+// ************************************************************
+// *** TV_MODES
+// *** These are used when calling xc3028_initialize()
+// ************************************************************
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_btsc_if = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_mn_ntscpal_btsc,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_btsc_if_lcd = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_mn_ntscpal_btsc_lcd,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_btsc_if_lcd_nogd = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_mn_ntscpal_btsc_lcd_nogd,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_a2_if = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_mn_ntscpal_a2,
+ &XC3028_scode_table_4600000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_a2_if_lcd = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_mn_ntscpal_a2_lcd,
+ &XC3028_scode_table_4600000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_a2_if_lcd_nogd = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_mn_ntscpal_a2_lcd_nogd,
+ &XC3028_scode_table_4600000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_mts = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_mts_init,
+ &XC3028_std_firmware_mn_ntscpal_mts,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_mts_lcd = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_mts_init,
+ &XC3028_std_firmware_mn_ntscpal_mts_lcd,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_mts_lcd_nogd = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_mts_init,
+ &XC3028_std_firmware_mn_ntscpal_mts_lcd_nogd,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_a2_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_mts_init,
+ &XC3028_std_firmware_mn_ntscpal_a2_mts,
+ &XC3028_scode_table_4320000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_a2_mono_lcd = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_mts_init,
+ &XC3028_std_firmware_mn_ntscpal_mts_lcd,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_a2_mono_lcd_nogd = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_mts_init,
+ &XC3028_std_firmware_mn_ntscpal_mts_lcd_nogd,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_m_n_ntsc_pal_eiaj = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_mts_init,
+ &XC3028_std_firmware_mn_ntscpal_eiaj,
+ &XC3028_scode_table_4500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_i_pal_nicam = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_i_pal_nicam,
+ &XC3028_scode_table_6240000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_b_g_pal_a2_a = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_bg_pal_a2_a,
+ &XC3028_scode_table_5640000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_b_g_pal_nicam_a = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_bg_pal_nicam_a,
+ &XC3028_scode_table_5740000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_b_g_pal_a2_b = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_bg_pal_a2_b,
+ &XC3028_scode_table_5640000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_b_g_pal_nicam_b = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_bg_pal_nicam_b,
+ &XC3028_scode_table_5740000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_l_secam_nicam = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_l_secam_nicam,
+ &XC3028_scode_table_6000000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_lp_secam_nicam = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_lp_secam_nicam,
+ &XC3028_scode_table_6000000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_d_k_pal_a2 = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dk_pal_a2,
+ &XC3028_scode_table_6600000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_d_k_pal_nicam = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dk_pal_nicam,
+ &XC3028_scode_table_6000000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_d_k_secam_a2_dk1 = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dk_secam_a2_dk1,
+ &XC3028_scode_table_6340000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_d_k_secam_a2_l_dk3 = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dk_secam_a2_l_dk3,
+ &XC3028_scode_table_6000000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_fm_radio_input2 = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_fm_init,
+ &XC3028_std_firmware_fm,
+ 0
+};
+
+XC3028_TV_MODE XC3028_tv_mode_fm_radio_input1 = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_fm_input1_init,
+ &XC3028_std_firmware_fm,
+ 0
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_atsc_lg_6_0mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_atsc_2633,
+ &XC3028_scode_table_6200000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_atsc_ati_6_38mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_atsc_2633,
+ &XC3028_scode_table_6580000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_atsc_oren_5_38mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_atsc_2633,
+ &XC3028_scode_table_5580000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_atsc_oren_3_6mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_atsc_2633,
+ &XC3028_scode_table_3800000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_atsc_toyota_3_88mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_atsc_2633,
+ &XC3028_scode_table_4080000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_atsc_toyota_7_94mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_atsc_2633,
+ &XC3028_scode_table_8140000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_qam_6_0mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_qam_2633,
+ &XC3028_scode_table_6200000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv8_dibcom_5_2mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv8_2633,
+ &XC3028_scode_table_5200000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv78_dibcom_5_2mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv78_2633,
+ &XC3028_scode_table_5200000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv7_dibcom_5_2mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv7_2633,
+ &XC3028_scode_table_5900000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_zarlink_qam_4_56mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_qam_2620,
+ &XC3028_scode_table_4760000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv8_zarlink_4_56mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv8_2620,
+ &XC3028_scode_table_4560000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv78_zarlink_4_56mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv78_2620,
+ &XC3028_scode_table_4560000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv7_zarlink_4_56mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv7_2620,
+ &XC3028_scode_table_5260000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv8_china_temporary = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv8_2633,
+ &XC3028_scode_table_5400000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_i_pal_nicam_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_i_pal_nicam_mts,
+ &XC3028_scode_table_6000000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_b_g_pal_a2_a_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_bg_pal_a2_a_mts,
+ &XC3028_scode_table_5320000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_b_g_pal_nicam_a_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_bg_pal_nicam_a_mts,
+ &XC3028_scode_table_5320000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_b_g_pal_a2_b_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_bg_pal_a2_b_mts,
+ &XC3028_scode_table_5320000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_b_g_pal_nicam_b_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_bg_pal_nicam_b_mts,
+ &XC3028_scode_table_5320000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_d_k_pal_a2_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_dk_pal_a2_mts,
+ &XC3028_scode_table_6680000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_d_k_pal_nicam_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_dk_pal_nicam_mts,
+ &XC3028_scode_table_6500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_d_k_secam_a2_dk1_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_dk_secam_a2_dk1_mts,
+ &XC3028_scode_table_6320000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_d_k_secam_a2_l_dk3_mono = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_mts_init,
+ &XC3028_std_firmware_dk_secam_a2_l_dk3_mts,
+ &XC3028_scode_table_6500000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv6_afatech_qam_4_56mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_init,
+ &XC3028_std_firmware_dtv6_qam_2620,
+ &XC3028_scode_table_4760000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv8_afatech_4_56mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv8_2620,
+ &XC3028_scode_table_4560000
+};
+
+XC3028_TV_MODE XC3028_tv_mode_dtv7_afatech_4_56mhz = {
+ &XC3028_base_firmware_i2c_files_base_firmwares_8mhz_init,
+ &XC3028_std_firmware_dtv7_2620,
+ &XC3028_scode_table_5260000
+};
+
+#endif
+
diff --git a/api/xc3028_scodes.h b/api/xc3028_scodes.h
new file mode 100644
index 0000000..431c226
--- /dev/null
+++ b/api/xc3028_scodes.h
@@ -0,0 +1,664 @@
+//
+// Automatically generated C header file for
+// control of the XC3028L via the i2c interface.
+//
+// Filename : xc3028_scodes.h
+// Generated : 7/3/2007 2:48:23 PM
+//
+// (c) 2007, Xceive Corporation
+//
+
+#ifndef __XC3028_SCODES_H
+#define __XC3028_SCODES_H
+
+#include "xc3028_control.h"
+
+XC3028_SCODE_TABLE XC3028_scode_table_5400000 = {
+ { 0x1E, 0x1A, 0x83, 0x25, 0xB4, 0x03, 0x6E, 0x01, 0x96, 0x86, 0xA8, 0x1C },
+ { 0x1E, 0x1E, 0x43, 0xBF, 0xE0, 0x02, 0xDB, 0xC1, 0xAA, 0x06, 0x9A, 0x24 },
+ { 0x1E, 0x1F, 0x13, 0x87, 0x18, 0x02, 0x93, 0x91, 0x44, 0x86, 0x96, 0x8C },
+ { 0x1E, 0x0B, 0x23, 0x76, 0x18, 0x02, 0x9B, 0x6D, 0x54, 0x46, 0x9A, 0x44 },
+ { 0x1E, 0x19, 0xD3, 0x00, 0xD8, 0x02, 0x9B, 0x91, 0x42, 0x86, 0xAA, 0x96 },
+ { 0x1E, 0x15, 0x32, 0xDB, 0x94, 0x02, 0x49, 0x25, 0x69, 0x86, 0x96, 0x5B },
+ { 0x1E, 0x1C, 0xF2, 0xE4, 0xB8, 0x02, 0x49, 0x25, 0x65, 0x86, 0x9A, 0x95 },
+ { 0x1E, 0x1D, 0xC2, 0xE4, 0xB4, 0x02, 0x5C, 0xA1, 0x5A, 0x46, 0x9A, 0x14 },
+ { 0x1E, 0x1E, 0xE2, 0x9B, 0x6E, 0x02, 0x52, 0x4D, 0xA9, 0x56, 0x65, 0x5A },
+ { 0x1E, 0x0D, 0x02, 0xB7, 0x18, 0x02, 0x4A, 0x49, 0xA8, 0x46, 0x65, 0x5A },
+ { 0x1E, 0x0B, 0xA2, 0x9C, 0xE0, 0x02, 0x49, 0x25, 0x9A, 0x06, 0x6A, 0x9D },
+ { 0x1E, 0x14, 0xD2, 0x94, 0xE0, 0x02, 0x9B, 0x6D, 0x99, 0x06, 0x5A, 0x94 },
+ { 0x1E, 0x01, 0x72, 0xDC, 0xB8, 0x02, 0x92, 0x49, 0xA9, 0x86, 0x65, 0xA3 },
+ { 0x1E, 0x0A, 0xA2, 0xED, 0x18, 0x02, 0xE4, 0x91, 0xA4, 0x86, 0x55, 0x59 },
+ { 0x1E, 0x14, 0x92, 0xDB, 0x6D, 0x83, 0x25, 0x01, 0x99, 0xA6, 0x54, 0x21 },
+ { 0x1E, 0x09, 0x93, 0x24, 0x90, 0x03, 0x6D, 0xA1, 0xA5, 0x46, 0x6A, 0x14 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4760000 = {
+ { 0x1E, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06, 0x69, 0x13 },
+ { 0x1E, 0x09, 0x62, 0x49, 0x29, 0x00, 0x00, 0x41, 0x66, 0xA6, 0x66, 0x23 },
+ { 0x1E, 0x09, 0xD2, 0x52, 0x92, 0x00, 0x02, 0x49, 0x6A, 0x96, 0x69, 0xA4 },
+ { 0x1E, 0x03, 0x72, 0x54, 0x92, 0x00, 0x00, 0x09, 0x65, 0x66, 0x6A, 0x95 },
+ { 0x1E, 0x0C, 0x72, 0x5C, 0x92, 0x00, 0x49, 0x25, 0x6A, 0x56, 0x59, 0x5A },
+ { 0x1E, 0x1B, 0xD2, 0x65, 0x00, 0x00, 0x52, 0x81, 0x68, 0x06, 0x5A, 0x13 },
+ { 0x1E, 0x0C, 0x82, 0x70, 0xD8, 0x00, 0x5B, 0x71, 0x52, 0x46, 0x65, 0x8B },
+ { 0x1E, 0x06, 0x32, 0x5B, 0x90, 0x00, 0x52, 0x4D, 0x5A, 0x86, 0x6A, 0x5C },
+ { 0x1E, 0x19, 0xE2, 0x93, 0x92, 0x02, 0x52, 0x49, 0x6A, 0x96, 0xAA, 0x65 },
+ { 0x1E, 0x07, 0x92, 0x92, 0x48, 0x02, 0x49, 0x49, 0x65, 0x86, 0xA9, 0x95 },
+ { 0x1E, 0x1C, 0x52, 0xA4, 0x92, 0x00, 0x01, 0x49, 0x69, 0x56, 0x56, 0x52 },
+ { 0x1E, 0x13, 0x72, 0xA8, 0x18, 0x00, 0x00, 0x01, 0x50, 0x86, 0x59, 0x4A },
+ { 0x1E, 0x19, 0xF2, 0x9C, 0x18, 0x00, 0x0B, 0xA1, 0x54, 0x86, 0x56, 0x0A },
+ { 0x1E, 0x11, 0x72, 0x93, 0x78, 0x00, 0x13, 0x91, 0x59, 0x46, 0x55, 0x49 },
+ { 0x1E, 0x03, 0x52, 0x92, 0x54, 0x00, 0x00, 0xC1, 0x55, 0x86, 0x42, 0x0A },
+ { 0x1E, 0x18, 0x52, 0x49, 0x2E, 0x00, 0x13, 0x81, 0x69, 0x96, 0x66, 0x1B }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6580000 = {
+ { 0x1E, 0x1B, 0xE4, 0xDB, 0x92, 0x06, 0xE8, 0xC1, 0x66, 0x96, 0x92, 0x1B },
+ { 0x1E, 0x03, 0x14, 0xE5, 0xB8, 0x06, 0xDC, 0x91, 0x5A, 0x86, 0xAA, 0x9E },
+ { 0x1E, 0x0E, 0x44, 0x92, 0x4D, 0x84, 0x92, 0x51, 0x69, 0x66, 0x5A, 0x9C },
+ { 0x1E, 0x0A, 0xE4, 0x9B, 0x94, 0x04, 0x80, 0xC1, 0x6A, 0x46, 0x41, 0x19 },
+ { 0x1E, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 },
+ { 0x1E, 0x13, 0x54, 0x98, 0xD8, 0x04, 0xDE, 0x01, 0x52, 0x46, 0x54, 0x09 },
+ { 0x1E, 0x03, 0xD4, 0x95, 0xD8, 0x04, 0xE5, 0xA1, 0x56, 0x86, 0x65, 0x12 },
+ { 0x1E, 0x0A, 0x02, 0x49, 0x54, 0x05, 0x38, 0xC1, 0xA9, 0x86, 0x51, 0x21 },
+ { 0x1E, 0x18, 0x84, 0x9E, 0x18, 0x09, 0x36, 0xC1, 0x98, 0x46, 0x95, 0x12 },
+ { 0x1E, 0x0B, 0xD4, 0x93, 0x74, 0x06, 0xDB, 0x6D, 0x96, 0x86, 0x56, 0x9B },
+ { 0x1E, 0x09, 0xD4, 0xE7, 0x00, 0x06, 0xC6, 0x01, 0xA4, 0x06, 0x44, 0x11 },
+ { 0x1E, 0x1C, 0x54, 0xDC, 0xB8, 0x06, 0xDB, 0x91, 0x99, 0x86, 0x69, 0x5B },
+ { 0x1E, 0x1C, 0xF5, 0x28, 0x18, 0x07, 0x20, 0xC1, 0x90, 0x46, 0x62, 0x0B },
+ { 0x1E, 0x01, 0x35, 0xBF, 0x00, 0x07, 0xB6, 0xC1, 0xA8, 0x06, 0x6A, 0x1C },
+ { 0x1E, 0x0E, 0x15, 0x6D, 0xB8, 0x07, 0x76, 0x01, 0x66, 0x86, 0xA4, 0x1B },
+ { 0x1E, 0x0A, 0x35, 0x38, 0xD8, 0x07, 0x25, 0xA1, 0x52, 0x86, 0xA6, 0x14 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4500000 = {
+ { 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46, 0x69, 0x0B },
+ { 0x1E, 0x02, 0xB2, 0x54, 0xE0, 0x00, 0x92, 0x6D, 0x59, 0x06, 0x59, 0x8B },
+ { 0x1E, 0x1D, 0xC2, 0x52, 0x92, 0x00, 0xA4, 0x91, 0x56, 0x96, 0x66, 0x94 },
+ { 0x1E, 0x19, 0x42, 0x49, 0x54, 0x00, 0xDB, 0x6D, 0x59, 0x46, 0x55, 0x49 },
+ { 0x1E, 0x0F, 0x72, 0x4B, 0x6E, 0x00, 0xE4, 0x81, 0x5A, 0x56, 0x6A, 0x14 },
+ { 0x1E, 0x1D, 0xE2, 0x4B, 0xB4, 0x01, 0x24, 0x91, 0x55, 0x86, 0x69, 0x4B },
+ { 0x1E, 0x18, 0xD2, 0x49, 0x54, 0x01, 0x6F, 0x01, 0x56, 0x46, 0x98, 0x0B },
+ { 0x1E, 0x1B, 0xA0, 0x00, 0x09, 0x00, 0xDC, 0xA1, 0xAA, 0x96, 0x96, 0x2B },
+ { 0x1E, 0x06, 0xB2, 0x4A, 0x92, 0x00, 0x12, 0x49, 0x69, 0x56, 0x6A, 0x95 },
+ { 0x1E, 0x1A, 0x02, 0x4B, 0x00, 0x00, 0x09, 0x31, 0x64, 0x06, 0x69, 0x8C },
+ { 0x1E, 0x1E, 0xB2, 0x49, 0x6E, 0x00, 0x01, 0x49, 0x65, 0x96, 0x66, 0x94 },
+ { 0x1E, 0x0C, 0xD2, 0x53, 0x18, 0x00, 0x01, 0x29, 0x68, 0x86, 0x6A, 0x9D },
+ { 0x1E, 0x0B, 0x22, 0x52, 0x6E, 0x00, 0x4A, 0x61, 0x66, 0x66, 0x55, 0x19 },
+ { 0x1E, 0x1A, 0x12, 0x5C, 0x00, 0x00, 0x52, 0x91, 0x64, 0x06, 0x56, 0x8B },
+ { 0x1E, 0x00, 0x72, 0x6D, 0xD8, 0x00, 0x6D, 0xA1, 0x66, 0x46, 0x56, 0x12 },
+ { 0x1E, 0x09, 0xE2, 0x65, 0xD8, 0x00, 0x54, 0x91, 0x56, 0x86, 0x69, 0x94 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4600000 = {
+ { 0x1E, 0x1A, 0x82, 0x5B, 0xD8, 0x00, 0x54, 0x91, 0x66, 0x46, 0x56, 0x93 },
+ { 0x1E, 0x0E, 0x42, 0x46, 0x00, 0x00, 0x65, 0xA1, 0x44, 0x06, 0x65, 0x02 },
+ { 0x1E, 0x1D, 0x32, 0x64, 0xD8, 0x00, 0x53, 0x71, 0x56, 0x86, 0x6A, 0x54 },
+ { 0x1E, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46, 0x69, 0x0B },
+ { 0x1E, 0x02, 0xB2, 0x54, 0xE0, 0x00, 0x92, 0x6D, 0x59, 0x06, 0x59, 0x8B },
+ { 0x1E, 0x1D, 0xC2, 0x52, 0x92, 0x00, 0xA4, 0x91, 0x56, 0x96, 0x66, 0x94 },
+ { 0x1E, 0x19, 0x42, 0x49, 0x54, 0x00, 0xDB, 0x6D, 0x59, 0x46, 0x55, 0x49 },
+ { 0x1E, 0x0F, 0x72, 0x4B, 0x6E, 0x00, 0xE4, 0x81, 0x5A, 0x56, 0x6A, 0x14 },
+ { 0x1E, 0x0C, 0x32, 0x9B, 0x80, 0x00, 0x0B, 0x91, 0x55, 0x06, 0x59, 0x42 },
+ { 0x1E, 0x1F, 0x52, 0x94, 0xD8, 0x00, 0x12, 0x6D, 0x56, 0x46, 0x5A, 0x8C },
+ { 0x1E, 0x0E, 0xC2, 0x49, 0x78, 0x00, 0x1C, 0x81, 0x6A, 0x86, 0x66, 0x23 },
+ { 0x1E, 0x0D, 0x22, 0x4A, 0x50, 0x00, 0x09, 0x61, 0x69, 0x46, 0x65, 0x12 },
+ { 0x1E, 0x01, 0xB2, 0x4A, 0x78, 0x00, 0x09, 0x25, 0x66, 0x86, 0x6A, 0x9D },
+ { 0x1E, 0x11, 0x12, 0x49, 0x4D, 0x80, 0x02, 0x6D, 0x65, 0x66, 0x65, 0x52 },
+ { 0x1E, 0x18, 0xC2, 0x55, 0xA0, 0x00, 0x00, 0x25, 0x6A, 0x06, 0x69, 0x9C },
+ { 0x1E, 0x0F, 0xE2, 0x52, 0x72, 0x00, 0x4B, 0x01, 0x65, 0xA6, 0x54, 0x19 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4320000 = {
+ { 0x1E, 0x1B, 0x22, 0x4A, 0x49, 0x00, 0x38, 0xC1, 0x55, 0x66, 0x12, 0x0A },
+ { 0x1E, 0x0C, 0x52, 0x49, 0x29, 0x81, 0x3F, 0x01, 0x55, 0xA6, 0x98, 0x13 },
+ { 0x1E, 0x0A, 0xF0, 0x00, 0x4E, 0x00, 0xEE, 0xC1, 0xAA, 0x96, 0xA9, 0x2C },
+ { 0x1E, 0x1D, 0x90, 0x00, 0x05, 0x00, 0x92, 0x49, 0xA9, 0xA6, 0x99, 0x6B },
+ { 0x1E, 0x1D, 0x20, 0x01, 0x90, 0x00, 0xA4, 0xA1, 0xAA, 0x46, 0xA5, 0x23 },
+ { 0x1E, 0x1F, 0x90, 0x02, 0x92, 0x00, 0x92, 0x49, 0xA9, 0x96, 0xA9, 0xA5 },
+ { 0x1E, 0x15, 0x90, 0x05, 0xB4, 0x00, 0x4A, 0xC1, 0xA5, 0x46, 0x9A, 0x14 },
+ { 0x1E, 0x1C, 0xC0, 0x02, 0x52, 0x00, 0x52, 0x71, 0xA5, 0x96, 0x9A, 0x5C },
+ { 0x1E, 0x1A, 0xF2, 0x5B, 0x6C, 0x00, 0x53, 0x71, 0x65, 0x46, 0x59, 0x4A },
+ { 0x1E, 0x0E, 0x42, 0x46, 0x00, 0x00, 0x65, 0xA1, 0x44, 0x06, 0x65, 0x02 },
+ { 0x1E, 0x09, 0x72, 0x5B, 0x98, 0x00, 0x49, 0x49, 0x59, 0x86, 0x65, 0x52 },
+ { 0x1E, 0x0C, 0x22, 0x52, 0xE0, 0x00, 0x49, 0x25, 0x5A, 0x06, 0x6A, 0x54 },
+ { 0x1E, 0x0D, 0x82, 0x55, 0xB4, 0x00, 0x9C, 0xC1, 0x55, 0x46, 0x5A, 0x03 },
+ { 0x1E, 0x0A, 0x62, 0x49, 0x29, 0x00, 0x9B, 0x71, 0x5A, 0x96, 0x6A, 0x5C },
+ { 0x1E, 0x0E, 0x82, 0x4A, 0x6E, 0x00, 0xED, 0xC1, 0x5A, 0x96, 0x55, 0x19 },
+ { 0x1E, 0x1B, 0x92, 0x4D, 0x18, 0x01, 0x36, 0xC1, 0x54, 0x46, 0x59, 0x02 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6240000 = {
+ { 0x1E, 0x1B, 0x22, 0x4A, 0x4C, 0x05, 0x2F, 0x01, 0xAA, 0x86, 0x68, 0x2B },
+ { 0x1E, 0x01, 0xF2, 0x4A, 0x6E, 0x04, 0x30, 0xC1, 0xA6, 0x56, 0x11, 0x19 },
+ { 0x1E, 0x0C, 0x52, 0x52, 0x49, 0x85, 0x24, 0x81, 0xA9, 0x96, 0x99, 0x23 },
+ { 0x1E, 0x0D, 0x02, 0x52, 0x49, 0x84, 0xDB, 0x81, 0xA5, 0x66, 0x99, 0x1B },
+ { 0x1E, 0x02, 0x52, 0x6E, 0xC0, 0x04, 0xDD, 0xA1, 0xA9, 0x06, 0xA5, 0x1B },
+ { 0x1E, 0x06, 0x52, 0x66, 0xC0, 0x04, 0x93, 0x81, 0x96, 0x06, 0x99, 0x13 },
+ { 0x1E, 0x14, 0x32, 0x53, 0x6D, 0x84, 0xB0, 0xC1, 0x9A, 0x96, 0xA2, 0x24 },
+ { 0x1E, 0x01, 0xB2, 0x49, 0x25, 0x04, 0x94, 0x01, 0x9A, 0x96, 0xA4, 0x23 },
+ { 0x1E, 0x1E, 0x45, 0x2E, 0xD8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0xA9, 0x14 },
+ { 0x1E, 0x11, 0x14, 0xDE, 0x18, 0x06, 0xE5, 0xA1, 0x64, 0x86, 0x99, 0x13 },
+ { 0x1E, 0x14, 0x74, 0xED, 0xE0, 0x06, 0xDE, 0x01, 0x56, 0x06, 0xA8, 0x0C },
+ { 0x1E, 0x12, 0x54, 0x92, 0xB4, 0x04, 0x92, 0x71, 0x6A, 0x86, 0x59, 0xA3 },
+ { 0x1E, 0x0A, 0xE4, 0x9B, 0x94, 0x04, 0x80, 0xC1, 0x6A, 0x46, 0x41, 0x19 },
+ { 0x1E, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 },
+ { 0x1E, 0x19, 0x84, 0x9C, 0xB4, 0x04, 0xDB, 0x6D, 0x55, 0x46, 0x59, 0x42 },
+ { 0x1E, 0x18, 0xE4, 0x93, 0x92, 0x04, 0xDB, 0xA1, 0x55, 0x96, 0x65, 0x0A }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_5640000 = {
+ { 0x1E, 0x1B, 0xD2, 0x9B, 0x92, 0x02, 0x96, 0xC1, 0x96, 0x56, 0x59, 0x12 },
+ { 0x1E, 0x15, 0x32, 0x93, 0x6E, 0x02, 0xA8, 0xC1, 0x95, 0x66, 0x61, 0x12 },
+ { 0x1E, 0x0A, 0x42, 0xDC, 0x92, 0x02, 0x94, 0x91, 0xA6, 0x56, 0x65, 0x9B },
+ { 0x1E, 0x1E, 0x72, 0xC7, 0x00, 0x02, 0xEF, 0x01, 0x84, 0x06, 0x58, 0x0A },
+ { 0x1E, 0x09, 0x32, 0xDD, 0xA0, 0x03, 0x2E, 0xC1, 0x9A, 0x06, 0x55, 0x19 },
+ { 0x1E, 0x03, 0x53, 0x2D, 0xA0, 0x03, 0xB0, 0x01, 0xA6, 0x06, 0x60, 0x1A },
+ { 0x1E, 0x0A, 0xB3, 0x24, 0xB4, 0x03, 0x20, 0xC1, 0x95, 0x46, 0x92, 0x0B },
+ { 0x1E, 0x1F, 0xC3, 0x86, 0x00, 0x02, 0xE7, 0x01, 0x84, 0x06, 0x98, 0x0B },
+ { 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06, 0x96, 0x13 },
+ { 0x1E, 0x1D, 0xA2, 0x57, 0x18, 0x04, 0x9B, 0x6D, 0x94, 0x86, 0xA5, 0x94 },
+ { 0x1E, 0x1A, 0xA2, 0x49, 0x26, 0x02, 0x49, 0x29, 0x99, 0xA6, 0x55, 0x61 },
+ { 0x1E, 0x1D, 0x62, 0x4B, 0x6E, 0x02, 0x4A, 0xA1, 0x96, 0x56, 0x5A, 0x13 },
+ { 0x1E, 0x00, 0xB2, 0x49, 0x24, 0x82, 0x53, 0xA1, 0x95, 0xA6, 0x5A, 0x1B },
+ { 0x1E, 0x03, 0xD2, 0x93, 0xB4, 0x02, 0x6E, 0x01, 0xA5, 0x86, 0x68, 0x1B },
+ { 0x1E, 0x16, 0xD2, 0x9B, 0x6E, 0x02, 0x53, 0x01, 0xA5, 0x96, 0x68, 0x1B },
+ { 0x1E, 0x1E, 0x42, 0xAD, 0x00, 0x02, 0x4B, 0x91, 0x94, 0x06, 0x69, 0x4B }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_5740000 = {
+ { 0x1E, 0x0A, 0xE2, 0x9E, 0xD8, 0x02, 0x52, 0x41, 0xA9, 0x86, 0x66, 0x23 },
+ { 0x1E, 0x13, 0xB2, 0x86, 0xD8, 0x02, 0x4A, 0x71, 0x89, 0x86, 0x66, 0x5B },
+ { 0x1E, 0x0B, 0xA2, 0x9C, 0xE0, 0x02, 0x49, 0x25, 0x9A, 0x06, 0x6A, 0x9D },
+ { 0x1E, 0x0E, 0x82, 0x93, 0xA0, 0x02, 0x9C, 0x91, 0x99, 0x06, 0x59, 0x93 },
+ { 0x1E, 0x1C, 0xF2, 0xDB, 0x92, 0x02, 0x9B, 0x6D, 0xA9, 0x56, 0x69, 0x9C },
+ { 0x1E, 0x1C, 0x42, 0xED, 0x18, 0x02, 0xDD, 0xC1, 0xA8, 0x86, 0x5A, 0x23 },
+ { 0x1E, 0x1B, 0x32, 0xE5, 0xD8, 0x02, 0xDD, 0xA1, 0x96, 0x46, 0x65, 0x12 },
+ { 0x1E, 0x1C, 0x53, 0x26, 0xC0, 0x03, 0x70, 0xC1, 0xAA, 0x06, 0x52, 0x22 },
+ { 0x1E, 0x0F, 0xF2, 0x52, 0x49, 0x04, 0xDC, 0x81, 0xA6, 0x56, 0x95, 0x1A },
+ { 0x1E, 0x0A, 0x12, 0x65, 0xD8, 0x04, 0xDB, 0x6D, 0xA5, 0x46, 0xA5, 0x53 },
+ { 0x1E, 0x06, 0x52, 0x66, 0xC0, 0x04, 0x93, 0x81, 0x96, 0x06, 0x99, 0x13 },
+ { 0x1E, 0x0F, 0x22, 0x53, 0x6C, 0x04, 0xA4, 0x91, 0x99, 0x86, 0xA5, 0x5B },
+ { 0x1E, 0x0B, 0x22, 0x49, 0x49, 0x04, 0x94, 0xA1, 0x9A, 0xA6, 0xA9, 0x2C },
+ { 0x1E, 0x18, 0xF2, 0x4D, 0x00, 0x02, 0x4B, 0xA1, 0x94, 0x06, 0x5A, 0x0B },
+ { 0x1E, 0x1E, 0x72, 0x49, 0xB4, 0x02, 0x56, 0xC1, 0x95, 0x86, 0x56, 0x12 },
+ { 0x1E, 0x1C, 0x12, 0x95, 0x18, 0x02, 0x6D, 0xC1, 0xA8, 0x46, 0x55, 0x19 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6000000 = {
+ { 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06, 0x96, 0x13 },
+ { 0x1E, 0x1D, 0xA2, 0x57, 0x18, 0x04, 0x9B, 0x6D, 0x94, 0x86, 0xA5, 0x94 },
+ { 0x1E, 0x16, 0xF2, 0x49, 0x72, 0x04, 0x92, 0xA1, 0x99, 0x66, 0xAA, 0x1D },
+ { 0x1E, 0x18, 0xF2, 0x4D, 0x00, 0x02, 0x4B, 0xA1, 0x94, 0x06, 0x5A, 0x0B },
+ { 0x1E, 0x1E, 0x72, 0x49, 0xB4, 0x02, 0x56, 0xC1, 0x95, 0x86, 0x56, 0x12 },
+ { 0x1E, 0x09, 0x22, 0x94, 0x98, 0x02, 0x46, 0x01, 0xA6, 0x46, 0x44, 0x19 },
+ { 0x1E, 0x0A, 0xE2, 0x9E, 0xD8, 0x02, 0x52, 0x41, 0xA9, 0x86, 0x66, 0x23 },
+ { 0x1E, 0x0D, 0x02, 0xB7, 0x18, 0x02, 0x4A, 0x49, 0xA8, 0x46, 0x65, 0x5A },
+ { 0x1E, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 },
+ { 0x1E, 0x19, 0x84, 0x9C, 0xB4, 0x04, 0xDB, 0x6D, 0x55, 0x46, 0x59, 0x42 },
+ { 0x1E, 0x18, 0xE4, 0x93, 0x92, 0x04, 0xDB, 0xA1, 0x55, 0x96, 0x65, 0x0A },
+ { 0x1E, 0x0C, 0x42, 0x4A, 0x80, 0x05, 0x25, 0xC1, 0xAA, 0x06, 0x65, 0x22 },
+ { 0x1E, 0x07, 0x72, 0x4A, 0x49, 0x85, 0xFF, 0x01, 0xA5, 0x56, 0x94, 0x12 },
+ { 0x1E, 0x0A, 0xB2, 0x53, 0x92, 0x05, 0x2E, 0x01, 0xAA, 0x66, 0x98, 0x2B },
+ { 0x1E, 0x1C, 0x32, 0x5C, 0x92, 0x04, 0xE4, 0x91, 0xA9, 0xA6, 0x99, 0xAC },
+ { 0x1E, 0x12, 0xD2, 0x7F, 0xE0, 0x04, 0xDB, 0x81, 0xA6, 0x06, 0xAA, 0x1D }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6600000 = {
+ { 0x1E, 0x0A, 0x84, 0xDB, 0xD8, 0x06, 0xDB, 0x91, 0x6A, 0x46, 0x99, 0x9C },
+ { 0x1E, 0x08, 0xB4, 0xF8, 0x00, 0x06, 0xDB, 0xC1, 0x50, 0x06, 0xA5, 0x03 },
+ { 0x1E, 0x09, 0x04, 0xDC, 0x80, 0x04, 0x95, 0xA1, 0x55, 0x06, 0x59, 0x02 },
+ { 0x1E, 0x1D, 0x84, 0x93, 0x18, 0x04, 0xA4, 0xA1, 0x64, 0x86, 0x56, 0x12 },
+ { 0x1E, 0x00, 0x54, 0xA5, 0xC0, 0x04, 0x9D, 0x01, 0x66, 0x06, 0x68, 0x13 },
+ { 0x1E, 0x1A, 0x74, 0xA6, 0x18, 0x04, 0x92, 0x49, 0x54, 0x46, 0x69, 0x43 },
+ { 0x1E, 0x19, 0x34, 0x92, 0x60, 0x04, 0xE8, 0xC1, 0x59, 0x06, 0x51, 0x09 },
+ { 0x1E, 0x0A, 0x54, 0x92, 0x4E, 0x04, 0xDB, 0x01, 0x55, 0x56, 0x68, 0x03 },
+ { 0x1E, 0x02, 0x94, 0xA4, 0xD8, 0x09, 0x24, 0xC1, 0x9A, 0x46, 0x95, 0x1A },
+ { 0x1E, 0x06, 0x54, 0x93, 0x6C, 0x09, 0x25, 0xC1, 0x9A, 0x46, 0xA5, 0x1B },
+ { 0x1E, 0x1B, 0xB4, 0xDD, 0xD8, 0x06, 0xE5, 0xC1, 0xA6, 0x46, 0x5A, 0x1B },
+ { 0x1E, 0x10, 0x74, 0xE7, 0x18, 0x06, 0xDC, 0x91, 0x98, 0x86, 0x65, 0x5A },
+ { 0x1E, 0x15, 0x75, 0x2F, 0xE0, 0x07, 0x06, 0xC1, 0xA5, 0x06, 0x4A, 0x13 },
+ { 0x1E, 0x12, 0xD5, 0x46, 0x18, 0x07, 0x6E, 0xC1, 0x88, 0x86, 0x65, 0x1A },
+ { 0x1E, 0x1D, 0x05, 0xF8, 0xD8, 0x07, 0xB6, 0xC1, 0x51, 0x86, 0xA5, 0x0B },
+ { 0x1E, 0x04, 0xD5, 0x25, 0xB8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0x99, 0x13 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6340000 = {
+ { 0x1E, 0x13, 0x54, 0x98, 0xD8, 0x04, 0xDE, 0x01, 0x52, 0x46, 0x54, 0x09 },
+ { 0x1E, 0x18, 0xE4, 0x93, 0x92, 0x04, 0xDB, 0xA1, 0x55, 0x96, 0x65, 0x0A },
+ { 0x1E, 0x02, 0x92, 0x49, 0x2C, 0x05, 0x30, 0xC1, 0xA9, 0x46, 0x62, 0x1B },
+ { 0x1E, 0x1A, 0x82, 0x4B, 0x72, 0x05, 0xB6, 0xC1, 0xA5, 0xA6, 0x69, 0x23 },
+ { 0x1E, 0x10, 0xD2, 0x52, 0x4E, 0x05, 0x6E, 0xC1, 0xAA, 0x66, 0xA9, 0x2C },
+ { 0x1E, 0x0F, 0xF2, 0x52, 0x49, 0x04, 0xDC, 0x81, 0xA6, 0x56, 0x95, 0x1A },
+ { 0x1E, 0x1B, 0xE2, 0x67, 0x18, 0x04, 0xE6, 0x01, 0xA8, 0x86, 0xA8, 0x24 },
+ { 0x1E, 0x06, 0x52, 0x66, 0xC0, 0x04, 0x93, 0x81, 0x96, 0x06, 0x99, 0x13 },
+ { 0x1E, 0x1A, 0x05, 0x76, 0xC0, 0x07, 0xB6, 0x01, 0x99, 0x06, 0x54, 0x11 },
+ { 0x1E, 0x0B, 0x15, 0x86, 0x00, 0x07, 0x68, 0xC1, 0x48, 0x06, 0x91, 0x0A },
+ { 0x1E, 0x1E, 0x45, 0x2E, 0xD8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0xA9, 0x14 },
+ { 0x1E, 0x11, 0x14, 0xDE, 0x18, 0x06, 0xE5, 0xA1, 0x64, 0x86, 0x99, 0x13 },
+ { 0x1E, 0x1F, 0xE4, 0xED, 0xB8, 0x06, 0xDC, 0x81, 0x59, 0x86, 0xA6, 0x14 },
+ { 0x1E, 0x12, 0x54, 0x92, 0xB4, 0x04, 0x92, 0x71, 0x6A, 0x86, 0x59, 0xA3 },
+ { 0x1E, 0x0A, 0xE4, 0x9B, 0x94, 0x04, 0x80, 0xC1, 0x6A, 0x46, 0x41, 0x19 },
+ { 0x1E, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6200000 = {
+ { 0x1E, 0x1A, 0x82, 0x4B, 0x72, 0x05, 0xB6, 0xC1, 0xA5, 0xA6, 0x69, 0x23 },
+ { 0x1E, 0x10, 0xD2, 0x52, 0x4E, 0x05, 0x6E, 0xC1, 0xAA, 0x66, 0xA9, 0x2C },
+ { 0x1E, 0x0A, 0x62, 0x52, 0x98, 0x04, 0xDE, 0xC1, 0xA5, 0x86, 0x99, 0x1B },
+ { 0x1E, 0x0A, 0x12, 0x65, 0xD8, 0x04, 0xDB, 0x6D, 0xA5, 0x46, 0xA5, 0x53 },
+ { 0x1E, 0x06, 0x52, 0x66, 0xC0, 0x04, 0x93, 0x81, 0x96, 0x06, 0x99, 0x13 },
+ { 0x1E, 0x1C, 0xF2, 0x52, 0x70, 0x04, 0xBF, 0x01, 0x99, 0x46, 0x98, 0x13 },
+ { 0x1E, 0x1D, 0x52, 0x52, 0x50, 0x04, 0x93, 0xA1, 0x95, 0x86, 0xA5, 0x13 },
+ { 0x1E, 0x1D, 0xB2, 0x4A, 0x90, 0x02, 0x49, 0x25, 0x99, 0x86, 0x56, 0x9B },
+ { 0x1E, 0x0A, 0x84, 0xDB, 0xD8, 0x06, 0xDB, 0x91, 0x6A, 0x46, 0x99, 0x9C },
+ { 0x1E, 0x08, 0xB4, 0xF8, 0x00, 0x06, 0xDB, 0xC1, 0x50, 0x06, 0xA5, 0x03 },
+ { 0x1E, 0x16, 0x54, 0xDB, 0x92, 0x04, 0x93, 0x61, 0x55, 0x96, 0x59, 0x0A },
+ { 0x1E, 0x0A, 0x44, 0x92, 0xD8, 0x04, 0xAD, 0xC1, 0x66, 0x86, 0x56, 0x1A },
+ { 0x1E, 0x00, 0x54, 0xA5, 0xC0, 0x04, 0x9D, 0x01, 0x66, 0x06, 0x68, 0x13 },
+ { 0x1E, 0x19, 0xD4, 0x9C, 0xE0, 0x04, 0xDB, 0x71, 0x5A, 0x06, 0x56, 0x52 },
+ { 0x1E, 0x03, 0xD4, 0x95, 0xD8, 0x04, 0xE5, 0xA1, 0x56, 0x86, 0x65, 0x12 },
+ { 0x1E, 0x02, 0x92, 0x49, 0x2C, 0x05, 0x30, 0xC1, 0xA9, 0x46, 0x62, 0x1B }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_5580000 = {
+ { 0x1E, 0x1F, 0x72, 0x92, 0x60, 0x02, 0x9B, 0x91, 0x95, 0x06, 0x65, 0x8B },
+ { 0x1E, 0x08, 0xD2, 0xE7, 0x00, 0x02, 0x92, 0x4D, 0xA8, 0x06, 0x6A, 0x9D },
+ { 0x1E, 0x06, 0x32, 0xE5, 0xB8, 0x02, 0xDB, 0x71, 0x99, 0x86, 0x65, 0x9B },
+ { 0x1E, 0x19, 0x63, 0x24, 0x80, 0x03, 0x24, 0x01, 0xAA, 0x06, 0x68, 0x23 },
+ { 0x1E, 0x04, 0x13, 0x2D, 0xB8, 0x03, 0x86, 0x01, 0x99, 0x46, 0x88, 0x13 },
+ { 0x1E, 0x1C, 0x03, 0x76, 0x18, 0x03, 0x27, 0x01, 0x98, 0x86, 0xA8, 0x1C },
+ { 0x1E, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06, 0xA9, 0x04 },
+ { 0x1E, 0x0D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x81, 0x69, 0x86, 0x9A, 0x1C },
+ { 0x1E, 0x0C, 0x22, 0x52, 0x4D, 0x84, 0x92, 0x49, 0x96, 0x66, 0xA5, 0x5B },
+ { 0x1E, 0x1D, 0xB2, 0x4A, 0x90, 0x02, 0x49, 0x25, 0x99, 0x86, 0x56, 0x9B },
+ { 0x1E, 0x19, 0xA2, 0x4A, 0x98, 0x02, 0x49, 0x4D, 0x95, 0x46, 0x5A, 0x4B },
+ { 0x1E, 0x0A, 0x82, 0x92, 0x49, 0x82, 0x5E, 0x01, 0xA9, 0xA6, 0x58, 0x2A },
+ { 0x1E, 0x0B, 0x92, 0x92, 0x58, 0x02, 0x5E, 0x01, 0xA5, 0x46, 0x64, 0x12 },
+ { 0x1E, 0x08, 0x72, 0xA6, 0xD8, 0x02, 0x49, 0x29, 0xA5, 0x86, 0x65, 0x5A },
+ { 0x1E, 0x09, 0x82, 0xA4, 0xB4, 0x02, 0x49, 0x25, 0x96, 0x46, 0x69, 0x94 },
+ { 0x1E, 0x0F, 0x92, 0x93, 0x6D, 0x82, 0x9C, 0x81, 0x9A, 0xA6, 0x56, 0x2A }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_3800000 = {
+ { 0x1E, 0x1A, 0x80, 0x10, 0xD8, 0x00, 0x0A, 0x6D, 0xA2, 0x46, 0xA9, 0x9D },
+ { 0x1E, 0x0D, 0x70, 0x12, 0x18, 0x00, 0x01, 0x25, 0xA4, 0x46, 0xA5, 0x53 },
+ { 0x1E, 0x12, 0xF0, 0x1D, 0xD8, 0x00, 0x02, 0x71, 0xAA, 0x46, 0xAA, 0x65 },
+ { 0x1E, 0x09, 0xC0, 0x25, 0xE0, 0x12, 0x49, 0x49, 0xA9, 0x05, 0x55, 0x58 },
+ { 0x1E, 0x0D, 0x00, 0x2D, 0xD8, 0x12, 0x4C, 0x81, 0xAA, 0x45, 0x56, 0x21 },
+ { 0x1E, 0x1D, 0xE0, 0x24, 0x92, 0x12, 0x5D, 0xA1, 0x9A, 0x55, 0x56, 0x19 },
+ { 0x1E, 0x08, 0xB0, 0x1B, 0xB8, 0x12, 0x5B, 0x91, 0x9A, 0x45, 0x65, 0x59 },
+ { 0x1E, 0x1A, 0xA0, 0x1F, 0xE0, 0x12, 0x56, 0x01, 0x95, 0x05, 0x68, 0x0A },
+ { 0x1E, 0x16, 0x30, 0x00, 0x29, 0x00, 0x49, 0x49, 0xA6, 0x56, 0xA6, 0x5C },
+ { 0x1E, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x1E, 0x0F, 0x30, 0x09, 0x40, 0x00, 0x02, 0x71, 0xA9, 0x06, 0x99, 0x9C },
+ { 0x1E, 0x04, 0x90, 0x0A, 0x92, 0x00, 0x00, 0x41, 0xAA, 0x56, 0x99, 0x23 },
+ { 0x1E, 0x1A, 0xF0, 0x08, 0xD8, 0x00, 0x0D, 0x01, 0xA1, 0x46, 0x98, 0x13 },
+ { 0x1E, 0x0A, 0x30, 0x0A, 0xB8, 0x00, 0x13, 0x71, 0xA5, 0x46, 0x99, 0x53 },
+ { 0x1E, 0x05, 0x30, 0x09, 0x6D, 0x80, 0x24, 0xC1, 0xA5, 0xA6, 0xA6, 0x24 },
+ { 0x1E, 0x0D, 0xE0, 0x12, 0xA0, 0x00, 0x13, 0xC1, 0xAA, 0x06, 0xAA, 0x25 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4080000 = {
+ { 0x1E, 0x1E, 0x40, 0x01, 0x6E, 0x00, 0x6D, 0xC1, 0xA5, 0x66, 0xAA, 0x1D },
+ { 0x1E, 0x04, 0xF0, 0x00, 0x00, 0x80, 0x52, 0x51, 0xA6, 0x66, 0xA9, 0xA5 },
+ { 0x1E, 0x17, 0x30, 0x00, 0x4E, 0x00, 0x4A, 0x01, 0xA6, 0x66, 0xA4, 0x23 },
+ { 0x1E, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x1E, 0x0E, 0x30, 0x09, 0x29, 0x00, 0x01, 0x49, 0xA9, 0x96, 0x99, 0x63 },
+ { 0x1E, 0x13, 0xD0, 0x0B, 0x6D, 0x80, 0x00, 0x01, 0xAA, 0xA6, 0x9A, 0xB5 },
+ { 0x1E, 0x0D, 0x40, 0x0B, 0x78, 0x00, 0x09, 0x29, 0xA6, 0x86, 0x99, 0xA4 },
+ { 0x1E, 0x02, 0x10, 0x0A, 0x4E, 0x00, 0x1B, 0x71, 0xA5, 0x66, 0x95, 0x5A },
+ { 0x1E, 0x1D, 0xE2, 0x4B, 0xB4, 0x01, 0x24, 0x91, 0x55, 0x86, 0x69, 0x4B },
+ { 0x1E, 0x18, 0xD2, 0x49, 0x54, 0x01, 0x6F, 0x01, 0x56, 0x46, 0x98, 0x0B },
+ { 0x1E, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0xC1, 0xAA, 0x56, 0x92, 0x23 },
+ { 0x1E, 0x09, 0x10, 0x00, 0x2E, 0x00, 0x92, 0x41, 0xA9, 0xA6, 0x96, 0x2B },
+ { 0x1E, 0x0C, 0xE0, 0x01, 0x29, 0x00, 0xAD, 0xC1, 0xAA, 0x56, 0x95, 0x22 },
+ { 0x1E, 0x01, 0x70, 0x02, 0x50, 0x00, 0x93, 0x61, 0xAA, 0x86, 0xA6, 0x2C },
+ { 0x1E, 0x1F, 0x20, 0x07, 0xE0, 0x00, 0x4C, 0x01, 0xAA, 0x06, 0x98, 0x23 },
+ { 0x1E, 0x06, 0xD0, 0x02, 0x80, 0x00, 0x53, 0x81, 0xA5, 0x06, 0x99, 0x13 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_8140000 = {
+ { 0x1E, 0x13, 0x9B, 0x86, 0xE0, 0x01, 0xF8, 0xC2, 0x49, 0x04, 0x92, 0x12 },
+ { 0x1E, 0x0E, 0x4C, 0x00, 0xD8, 0x00, 0x38, 0x02, 0x02, 0x84, 0x20, 0x19 },
+ { 0x1E, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x02, 0x01 },
+ { 0x1E, 0x17, 0xBD, 0xB0, 0xD8, 0x00, 0x06, 0xC1, 0x91, 0x44, 0x0A, 0x0A },
+ { 0x1E, 0x1D, 0x0D, 0x87, 0x18, 0x00, 0x36, 0xC1, 0x44, 0x84, 0x26, 0x0A },
+ { 0x1E, 0x0B, 0x2A, 0x06, 0xD8, 0x01, 0xC0, 0x01, 0x06, 0x84, 0x80, 0x11 },
+ { 0x1E, 0x02, 0x59, 0x25, 0xD8, 0x01, 0x86, 0xC1, 0xAA, 0x44, 0x85, 0x21 },
+ { 0x1E, 0x15, 0x99, 0x6E, 0xC0, 0x0F, 0xC6, 0x01, 0xA6, 0x06, 0x44, 0x19 },
+ { 0x1E, 0x08, 0xC7, 0x6D, 0xB4, 0x0B, 0xB0, 0xC2, 0x96, 0x86, 0x92, 0x23 },
+ { 0x1E, 0x1A, 0x87, 0x7F, 0x18, 0x0B, 0xBF, 0x02, 0x64, 0x46, 0x64, 0x12 },
+ { 0x1E, 0x00, 0xF7, 0x24, 0xE0, 0x0B, 0x6D, 0xC2, 0x56, 0x06, 0x59, 0x12 },
+ { 0x1E, 0x05, 0x76, 0xE6, 0xC0, 0x0C, 0x36, 0xC2, 0x5A, 0x06, 0x25, 0x1A },
+ { 0x1E, 0x0D, 0x19, 0x3F, 0x18, 0x0D, 0x86, 0xC2, 0x94, 0x46, 0x4A, 0x13 },
+ { 0x1E, 0x0E, 0x19, 0xC6, 0xE0, 0x0E, 0x38, 0xC2, 0x8A, 0x06, 0x22, 0x23 },
+ { 0x1E, 0x19, 0xE9, 0x6D, 0xB4, 0x0F, 0xFF, 0x02, 0x56, 0x46, 0x58, 0x12 },
+ { 0x1E, 0x0A, 0x8B, 0x46, 0xD8, 0x01, 0xB6, 0xC2, 0x89, 0x84, 0x99, 0x22 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_5900000 = {
+ { 0x1E, 0x1D, 0x02, 0x49, 0x24, 0x82, 0x49, 0x49, 0x99, 0x66, 0x55, 0x9A },
+ { 0x1E, 0x12, 0x92, 0x4A, 0x4E, 0x02, 0x49, 0x25, 0x96, 0x96, 0x59, 0x9B },
+ { 0x1E, 0x0D, 0x42, 0x92, 0x54, 0x02, 0x52, 0x51, 0xAA, 0x86, 0x5A, 0xAC },
+ { 0x1E, 0x03, 0xD2, 0x93, 0xB4, 0x02, 0x6E, 0x01, 0xA5, 0x86, 0x68, 0x1B },
+ { 0x1E, 0x16, 0xD2, 0x9B, 0x6E, 0x02, 0x53, 0x01, 0xA5, 0x96, 0x68, 0x1B },
+ { 0x1E, 0x1A, 0x62, 0xAE, 0x18, 0x02, 0x4E, 0xC1, 0x98, 0x86, 0x69, 0x1B },
+ { 0x1E, 0x01, 0x12, 0x9D, 0xC0, 0x02, 0x93, 0x71, 0x96, 0x06, 0x55, 0x51 },
+ { 0x1E, 0x18, 0xA2, 0x94, 0xB8, 0x02, 0xAD, 0xC1, 0x96, 0x46, 0x59, 0x12 },
+ { 0x1E, 0x0D, 0xD4, 0x92, 0x6C, 0x04, 0xDD, 0x01, 0x56, 0x86, 0x64, 0x12 },
+ { 0x1E, 0x07, 0x12, 0x4A, 0x4A, 0x05, 0x24, 0xA1, 0xA9, 0xA6, 0x69, 0x2B },
+ { 0x1E, 0x09, 0x62, 0x49, 0x2D, 0x85, 0xC6, 0x01, 0xA6, 0xA6, 0x88, 0x2B },
+ { 0x1E, 0x1C, 0xD2, 0x55, 0xA0, 0x05, 0x30, 0xC1, 0xA9, 0x06, 0xA2, 0x1C },
+ { 0x1E, 0x14, 0x72, 0x5F, 0x18, 0x04, 0xEE, 0xC1, 0xA4, 0x86, 0x9A, 0x1C },
+ { 0x1E, 0x1B, 0x92, 0x6D, 0xB4, 0x04, 0x92, 0x51, 0x9A, 0x86, 0x96, 0xA4 },
+ { 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06, 0x96, 0x13 },
+ { 0x1E, 0x0E, 0xD2, 0x53, 0xC0, 0x04, 0x9C, 0xC1, 0x95, 0x06, 0xA9, 0x0C }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_5260000 = {
+ { 0x1E, 0x04, 0x93, 0x24, 0x92, 0x02, 0xAD, 0x01, 0x66, 0xA6, 0xA8, 0x24 },
+ { 0x1E, 0x0F, 0x63, 0x25, 0xD8, 0x02, 0x92, 0x51, 0x59, 0x86, 0xA9, 0x95 },
+ { 0x1E, 0x1F, 0xA2, 0xDB, 0x6D, 0x82, 0x4A, 0xA1, 0x65, 0x96, 0x99, 0x13 },
+ { 0x1E, 0x08, 0xE2, 0xF6, 0xD8, 0x02, 0x52, 0x91, 0x59, 0x86, 0x99, 0x94 },
+ { 0x1E, 0x1E, 0x92, 0xDC, 0x98, 0x02, 0x66, 0xC1, 0x59, 0x46, 0xA9, 0x0C },
+ { 0x1E, 0x0C, 0x72, 0x92, 0x52, 0x02, 0x52, 0x4D, 0x69, 0x56, 0xA9, 0x95 },
+ { 0x1E, 0x09, 0xB2, 0x92, 0x49, 0x02, 0x4B, 0x91, 0x66, 0xA6, 0xA9, 0xA5 },
+ { 0x1E, 0x1E, 0x52, 0x9B, 0x70, 0x00, 0x01, 0x49, 0x65, 0x46, 0x55, 0x49 },
+ { 0x1E, 0x15, 0x32, 0x93, 0x6E, 0x02, 0xA8, 0xC1, 0x95, 0x66, 0x61, 0x12 },
+ { 0x1E, 0x13, 0x12, 0xDB, 0x6E, 0x02, 0x95, 0x01, 0xA6, 0x56, 0x68, 0x1B },
+ { 0x1E, 0x1A, 0xD2, 0xF6, 0x18, 0x02, 0xF8, 0xC1, 0x98, 0x86, 0x51, 0x19 },
+ { 0x1E, 0x0E, 0x52, 0xDC, 0xB4, 0x03, 0x37, 0x01, 0x96, 0x86, 0x64, 0x1A },
+ { 0x1E, 0x1D, 0x73, 0x07, 0xE0, 0x02, 0x3F, 0x01, 0x89, 0x06, 0x24, 0x12 },
+ { 0x1E, 0x1B, 0xA3, 0x40, 0xE0, 0x03, 0x2D, 0xC1, 0x82, 0x06, 0xA9, 0x14 },
+ { 0x1E, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06, 0xA9, 0x04 },
+ { 0x1E, 0x0D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x81, 0x69, 0x86, 0x9A, 0x1C }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_5320000 = {
+ { 0x1E, 0x1F, 0x13, 0x87, 0x18, 0x02, 0x93, 0x91, 0x44, 0x86, 0x96, 0x8C },
+ { 0x1E, 0x0B, 0x23, 0x76, 0x18, 0x02, 0x9B, 0x6D, 0x54, 0x46, 0x9A, 0x44 },
+ { 0x1E, 0x19, 0xD3, 0x00, 0xD8, 0x02, 0x9B, 0x91, 0x42, 0x86, 0xAA, 0x96 },
+ { 0x1E, 0x09, 0x42, 0xDC, 0xE0, 0x02, 0x4A, 0x71, 0x69, 0x06, 0x95, 0x93 },
+ { 0x1E, 0x1C, 0xF2, 0xE4, 0xB8, 0x02, 0x49, 0x25, 0x65, 0x86, 0x9A, 0x95 },
+ { 0x1E, 0x0C, 0x02, 0xE7, 0xE0, 0x02, 0x65, 0x01, 0x5A, 0x06, 0x94, 0x12 },
+ { 0x1E, 0x18, 0xB2, 0xDB, 0x6E, 0x02, 0x5B, 0x81, 0x56, 0x66, 0xAA, 0x15 },
+ { 0x1E, 0x01, 0x32, 0x90, 0xD8, 0x02, 0x4A, 0x51, 0x61, 0x46, 0xA5, 0x4B },
+ { 0x1E, 0x1E, 0xA2, 0x9B, 0xE0, 0x02, 0x49, 0x6D, 0x99, 0x06, 0x6A, 0x95 },
+ { 0x1E, 0x0E, 0x82, 0x93, 0xA0, 0x02, 0x9C, 0x91, 0x99, 0x06, 0x59, 0x93 },
+ { 0x1E, 0x1C, 0xF2, 0xDB, 0x92, 0x02, 0x9B, 0x6D, 0xA9, 0x56, 0x69, 0x9C },
+ { 0x1E, 0x1C, 0x42, 0xED, 0x18, 0x02, 0xDD, 0xC1, 0xA8, 0x86, 0x5A, 0x23 },
+ { 0x1E, 0x02, 0x32, 0xE4, 0x98, 0x02, 0xDC, 0xC1, 0x95, 0x86, 0x6A, 0x14 },
+ { 0x1E, 0x09, 0x93, 0x24, 0x90, 0x03, 0x6D, 0xA1, 0xA5, 0x46, 0x6A, 0x14 },
+ { 0x1E, 0x1A, 0x83, 0x25, 0xB4, 0x03, 0x6E, 0x01, 0x96, 0x86, 0xA8, 0x1C },
+ { 0x1E, 0x1E, 0x43, 0xBF, 0xE0, 0x02, 0xDB, 0xC1, 0xAA, 0x06, 0x9A, 0x24 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6680000 = {
+ { 0x1E, 0x0E, 0x15, 0x6D, 0xB8, 0x07, 0x76, 0x01, 0x66, 0x86, 0xA4, 0x1B },
+ { 0x1E, 0x0A, 0x35, 0x38, 0xD8, 0x07, 0x25, 0xA1, 0x52, 0x86, 0xA6, 0x14 },
+ { 0x1E, 0x1B, 0xE4, 0xDB, 0x92, 0x06, 0xE8, 0xC1, 0x66, 0x96, 0x92, 0x1B },
+ { 0x1E, 0x03, 0x14, 0xE5, 0xB8, 0x06, 0xDC, 0x91, 0x5A, 0x86, 0xAA, 0x9E },
+ { 0x1E, 0x12, 0x54, 0x92, 0xB4, 0x04, 0x92, 0x71, 0x6A, 0x86, 0x59, 0xA3 },
+ { 0x1E, 0x0A, 0xE4, 0x9B, 0x94, 0x04, 0x80, 0xC1, 0x6A, 0x46, 0x41, 0x19 },
+ { 0x1E, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 },
+ { 0x1E, 0x19, 0xD4, 0x9C, 0xE0, 0x04, 0xDB, 0x71, 0x5A, 0x06, 0x56, 0x52 },
+ { 0x1E, 0x00, 0x94, 0x93, 0x90, 0x09, 0xC6, 0x01, 0xA6, 0x46, 0x48, 0x1A },
+ { 0x1E, 0x07, 0xF4, 0xA4, 0xB8, 0x09, 0x6E, 0xC1, 0xA6, 0x46, 0x9A, 0x1C },
+ { 0x1E, 0x18, 0x84, 0x9E, 0x18, 0x09, 0x36, 0xC1, 0x98, 0x46, 0x95, 0x12 },
+ { 0x1E, 0x1D, 0xB4, 0x93, 0x6D, 0x86, 0xDD, 0xC1, 0x95, 0x66, 0x56, 0x12 },
+ { 0x1E, 0x1A, 0x44, 0xED, 0xB8, 0x06, 0xF0, 0xC1, 0xA9, 0x46, 0x62, 0x1B },
+ { 0x1E, 0x06, 0x74, 0xDE, 0xD8, 0x07, 0x24, 0x91, 0x96, 0x46, 0x55, 0x51 },
+ { 0x1E, 0x13, 0xB5, 0x24, 0x18, 0x07, 0x24, 0x01, 0x98, 0x46, 0x68, 0x13 },
+ { 0x1E, 0x0B, 0xF5, 0xB6, 0xD8, 0x06, 0x36, 0xC1, 0x9A, 0x86, 0x15, 0x21 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6500000 = {
+ { 0x1E, 0x09, 0x04, 0xDC, 0x80, 0x04, 0x95, 0xA1, 0x55, 0x06, 0x59, 0x02 },
+ { 0x1E, 0x09, 0xF4, 0x93, 0x72, 0x04, 0xA7, 0x01, 0x65, 0x66, 0x54, 0x11 },
+ { 0x1E, 0x00, 0x54, 0xA5, 0xC0, 0x04, 0x9D, 0x01, 0x66, 0x06, 0x68, 0x13 },
+ { 0x1E, 0x0E, 0xB4, 0xA4, 0x00, 0x04, 0x92, 0x81, 0x54, 0x06, 0x69, 0x03 },
+ { 0x1E, 0x04, 0x74, 0x93, 0x6C, 0x04, 0xF8, 0x01, 0x5A, 0x46, 0x50, 0x11 },
+ { 0x1E, 0x0D, 0x32, 0x49, 0x2C, 0x05, 0x25, 0xA1, 0xAA, 0x46, 0x55, 0x21 },
+ { 0x1E, 0x17, 0x92, 0x4D, 0xB8, 0x05, 0x70, 0xC1, 0xA9, 0x86, 0x62, 0x23 },
+ { 0x1E, 0x03, 0x92, 0x49, 0x52, 0x05, 0x80, 0xC1, 0xA6, 0x66, 0x82, 0x23 },
+ { 0x1E, 0x02, 0x54, 0xDE, 0x18, 0x06, 0xE0, 0xC1, 0xA8, 0x86, 0x51, 0x21 },
+ { 0x1E, 0x1D, 0xC4, 0xED, 0xD8, 0x06, 0xE5, 0x01, 0x9A, 0x86, 0x68, 0x23 },
+ { 0x1E, 0x1F, 0x95, 0x24, 0xB8, 0x07, 0x36, 0xC1, 0xA5, 0x86, 0x5A, 0x1B },
+ { 0x1E, 0x12, 0xD5, 0x46, 0x18, 0x07, 0x6E, 0xC1, 0x88, 0x86, 0x65, 0x1A },
+ { 0x1E, 0x06, 0x95, 0xFF, 0x00, 0x07, 0x86, 0x01, 0x64, 0x06, 0x84, 0x0A },
+ { 0x1E, 0x04, 0xD5, 0x25, 0xB8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0x99, 0x13 },
+ { 0x1E, 0x0A, 0x84, 0xDB, 0xD8, 0x06, 0xDB, 0x91, 0x6A, 0x46, 0x99, 0x9C },
+ { 0x1E, 0x08, 0xB4, 0xF8, 0x00, 0x06, 0xDB, 0xC1, 0x50, 0x06, 0xA5, 0x03 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_6320000 = {
+ { 0x1E, 0x1E, 0x44, 0x92, 0x90, 0x04, 0xE4, 0x91, 0x5A, 0x86, 0x59, 0x9B },
+ { 0x1E, 0x0A, 0x54, 0x92, 0x4E, 0x04, 0xDB, 0x01, 0x55, 0x56, 0x68, 0x03 },
+ { 0x1E, 0x18, 0x92, 0x4B, 0x98, 0x05, 0x70, 0x01, 0xA9, 0x86, 0x50, 0x21 },
+ { 0x1E, 0x09, 0x62, 0x49, 0x2D, 0x85, 0xC6, 0x01, 0xA6, 0xA6, 0x88, 0x2B },
+ { 0x1E, 0x19, 0xE2, 0x54, 0xE0, 0x05, 0x00, 0xC1, 0xAA, 0x06, 0x82, 0x23 },
+ { 0x1E, 0x1C, 0x32, 0x5C, 0x92, 0x04, 0xE4, 0x91, 0xA9, 0xA6, 0x99, 0xAC },
+ { 0x1E, 0x12, 0xD2, 0x7F, 0xE0, 0x04, 0xDB, 0x81, 0xA6, 0x06, 0xAA, 0x1D },
+ { 0x1E, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06, 0x96, 0x13 },
+ { 0x1E, 0x0B, 0xF5, 0xB6, 0xD8, 0x06, 0x36, 0xC1, 0x9A, 0x86, 0x15, 0x21 },
+ { 0x1E, 0x0E, 0x15, 0x6D, 0xB8, 0x07, 0x76, 0x01, 0x66, 0x86, 0xA4, 0x1B },
+ { 0x1E, 0x01, 0xD5, 0x28, 0xD8, 0x07, 0x24, 0x91, 0x52, 0x46, 0xAA, 0x8E },
+ { 0x1E, 0x19, 0xC4, 0xE5, 0x18, 0x06, 0xC0, 0xC1, 0x68, 0x86, 0x82, 0x1B },
+ { 0x1E, 0x1E, 0x14, 0xDB, 0x94, 0x04, 0x92, 0x49, 0x59, 0x46, 0x56, 0x4A },
+ { 0x1E, 0x06, 0x34, 0x90, 0xD8, 0x04, 0x9C, 0x81, 0x61, 0x86, 0x59, 0x12 },
+ { 0x1E, 0x0E, 0xA4, 0x9B, 0x72, 0x04, 0xA4, 0x81, 0x66, 0x66, 0x69, 0x1B },
+ { 0x1E, 0x1B, 0x64, 0xAF, 0xE0, 0x04, 0x97, 0x01, 0x56, 0x06, 0x64, 0x0A }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4940000 = {
+ { 0x1E, 0x0A, 0x22, 0xA4, 0x92, 0x00, 0x00, 0x01, 0x5A, 0x96, 0x59, 0x9B },
+ { 0x1E, 0x19, 0xF2, 0x9C, 0x18, 0x00, 0x0B, 0xA1, 0x54, 0x86, 0x56, 0x0A },
+ { 0x1E, 0x0C, 0xA2, 0x94, 0x92, 0x00, 0x17, 0x01, 0x59, 0x66, 0x54, 0x11 },
+ { 0x1E, 0x03, 0x52, 0x92, 0x54, 0x00, 0x00, 0xC1, 0x55, 0x86, 0x42, 0x0A },
+ { 0x1E, 0x18, 0x52, 0x49, 0x2E, 0x00, 0x13, 0x81, 0x69, 0x96, 0x66, 0x1B },
+ { 0x1E, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06, 0x69, 0x13 },
+ { 0x1E, 0x09, 0x62, 0x49, 0x29, 0x00, 0x00, 0x41, 0x66, 0xA6, 0x66, 0x23 },
+ { 0x1E, 0x1A, 0xE2, 0x52, 0x4A, 0x00, 0x06, 0xC1, 0x6A, 0xA6, 0x6A, 0x2C },
+ { 0x1E, 0x1E, 0x63, 0x2D, 0xB4, 0x02, 0xA4, 0x91, 0x69, 0x86, 0xA9, 0x5C },
+ { 0x1E, 0x19, 0x73, 0x20, 0xD8, 0x02, 0x92, 0x91, 0x51, 0x86, 0xAA, 0x8E },
+ { 0x1E, 0x19, 0x12, 0xE4, 0xC0, 0x02, 0x49, 0x25, 0x69, 0x06, 0x99, 0x53 },
+ { 0x1E, 0x1D, 0xC2, 0xE4, 0xB4, 0x02, 0x5C, 0xA1, 0x5A, 0x46, 0x9A, 0x14 },
+ { 0x1E, 0x18, 0xB2, 0xDB, 0x6E, 0x02, 0x5B, 0x81, 0x56, 0x66, 0xAA, 0x15 },
+ { 0x1E, 0x01, 0x32, 0x90, 0xD8, 0x02, 0x4A, 0x51, 0x61, 0x46, 0xA5, 0x4B },
+ { 0x1E, 0x14, 0x32, 0x9B, 0x6D, 0x80, 0x00, 0x09, 0x69, 0x96, 0x55, 0x59 },
+ { 0x1E, 0x17, 0x72, 0xA4, 0xB8, 0x00, 0x03, 0x6D, 0x65, 0x86, 0x55, 0x92 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4200000 = {
+ { 0x1E, 0x0A, 0x80, 0x01, 0x4D, 0x80, 0x86, 0xC1, 0xAA, 0x66, 0x89, 0x2B },
+ { 0x1E, 0x0D, 0xE0, 0x02, 0x78, 0x00, 0x95, 0x01, 0xAA, 0x86, 0xA8, 0x2C },
+ { 0x1E, 0x1F, 0x20, 0x07, 0xE0, 0x00, 0x4C, 0x01, 0xAA, 0x06, 0x98, 0x23 },
+ { 0x1E, 0x06, 0xD0, 0x02, 0x80, 0x00, 0x53, 0x81, 0xA5, 0x06, 0x99, 0x13 },
+ { 0x1E, 0x1E, 0x40, 0x01, 0x6E, 0x00, 0x6D, 0xC1, 0xA5, 0x66, 0xAA, 0x1D },
+ { 0x1E, 0x04, 0xF0, 0x00, 0x00, 0x80, 0x52, 0x51, 0xA6, 0x66, 0xA9, 0xA5 },
+ { 0x1E, 0x17, 0x30, 0x00, 0x4E, 0x00, 0x4A, 0x01, 0xA6, 0x66, 0xA4, 0x23 },
+ { 0x1E, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x1E, 0x02, 0xB2, 0x54, 0xE0, 0x00, 0x92, 0x6D, 0x59, 0x06, 0x59, 0x8B },
+ { 0x1E, 0x1F, 0x92, 0x52, 0x74, 0x00, 0x9B, 0xA1, 0x55, 0x86, 0x65, 0x0A },
+ { 0x1E, 0x1C, 0x72, 0x49, 0x2E, 0x00, 0xDE, 0xC1, 0x59, 0x96, 0x5A, 0x13 },
+ { 0x1E, 0x10, 0xB2, 0x4B, 0x72, 0x00, 0xDD, 0xC1, 0x59, 0x56, 0x69, 0x0B },
+ { 0x1E, 0x1E, 0xD2, 0x4A, 0x6C, 0x01, 0x68, 0xC1, 0x56, 0x46, 0x62, 0x0B },
+ { 0x1E, 0x1D, 0xF2, 0x49, 0x58, 0x01, 0x24, 0x01, 0x55, 0x86, 0x98, 0x0B },
+ { 0x1E, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0xC1, 0xAA, 0x56, 0x92, 0x23 },
+ { 0x1E, 0x15, 0x70, 0x00, 0x24, 0x80, 0x90, 0xC1, 0xA9, 0x56, 0x91, 0x1A }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_3280000 = {
+ { 0x1E, 0x0E, 0x40, 0x00, 0x00, 0x92, 0x4A, 0x6D, 0x99, 0xA5, 0x9A, 0xA4 },
+ { 0x1E, 0x19, 0xB0, 0x01, 0x24, 0x92, 0x53, 0xC1, 0x9A, 0xA5, 0x9A, 0x2B },
+ { 0x1E, 0x04, 0xF0, 0x01, 0x6C, 0x12, 0x6F, 0x01, 0x9A, 0x45, 0x98, 0x1A },
+ { 0x1E, 0x10, 0x50, 0x02, 0x70, 0x12, 0x49, 0x71, 0x99, 0x85, 0xA6, 0x5B },
+ { 0x1E, 0x1C, 0xE0, 0x04, 0xB4, 0x12, 0x49, 0x29, 0x9A, 0x85, 0xA9, 0x63 },
+ { 0x1E, 0x05, 0x10, 0x04, 0xD8, 0x14, 0x93, 0x91, 0x95, 0x45, 0x5A, 0x4A },
+ { 0x1E, 0x16, 0xB0, 0x02, 0x70, 0x14, 0xB8, 0x01, 0x96, 0x85, 0x50, 0x18 },
+ { 0x1E, 0x1E, 0x40, 0x01, 0x29, 0x94, 0x92, 0x49, 0x96, 0x95, 0x66, 0x5A },
+ { 0x1E, 0x11, 0x70, 0x09, 0x29, 0x12, 0xDC, 0xC1, 0x99, 0x55, 0x66, 0x12 },
+ { 0x1E, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 },
+ { 0x1E, 0x1E, 0x40, 0x0C, 0xB4, 0x12, 0x30, 0x01, 0x99, 0x45, 0x10, 0x10 },
+ { 0x1E, 0x0A, 0x80, 0x0A, 0x92, 0x12, 0xDE, 0xC1, 0x95, 0xA5, 0x99, 0x1A },
+ { 0x1E, 0x14, 0x70, 0x09, 0x24, 0x92, 0xE4, 0x91, 0x96, 0x55, 0xA9, 0x53 },
+ { 0x1E, 0x0B, 0x20, 0x09, 0x4C, 0x12, 0x93, 0x71, 0x95, 0x45, 0x99, 0x8B },
+ { 0x1E, 0x13, 0x50, 0x00, 0x30, 0x12, 0x9B, 0x71, 0x9A, 0x85, 0xAA, 0xA5 },
+ { 0x1E, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4000000 = {
+ { 0x1E, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x1E, 0x0F, 0x30, 0x09, 0x40, 0x00, 0x02, 0x71, 0xA9, 0x06, 0x99, 0x9C },
+ { 0x1E, 0x0C, 0x30, 0x0A, 0x78, 0x00, 0x00, 0x2D, 0xA9, 0x46, 0x9A, 0x5C },
+ { 0x1E, 0x12, 0xD0, 0x0D, 0xB8, 0x00, 0x0B, 0x6D, 0xA5, 0x86, 0x9A, 0x9D },
+ { 0x1E, 0x0A, 0x30, 0x0A, 0xB8, 0x00, 0x13, 0x71, 0xA5, 0x46, 0x99, 0x53 },
+ { 0x1E, 0x05, 0x30, 0x09, 0x6D, 0x80, 0x24, 0xC1, 0xA5, 0xA6, 0xA6, 0x24 },
+ { 0x1E, 0x0D, 0xE0, 0x12, 0xA0, 0x00, 0x13, 0xC1, 0xAA, 0x06, 0xAA, 0x25 },
+ { 0x1E, 0x1A, 0x80, 0x10, 0xD8, 0x00, 0x0A, 0x6D, 0xA2, 0x46, 0xA9, 0x9D },
+ { 0x1E, 0x0A, 0xF0, 0x00, 0x4E, 0x00, 0xEE, 0xC1, 0xAA, 0x96, 0xA9, 0x2C },
+ { 0x1E, 0x05, 0xB0, 0x00, 0x0D, 0x80, 0x9B, 0x71, 0xA9, 0x56, 0x95, 0x5A },
+ { 0x1E, 0x14, 0x10, 0x01, 0x24, 0x80, 0x9D, 0xA1, 0xA9, 0xA6, 0xAA, 0x2D },
+ { 0x1E, 0x1B, 0x40, 0x03, 0xA0, 0x00, 0x49, 0x25, 0xAA, 0x06, 0x96, 0x63 },
+ { 0x1E, 0x0A, 0x10, 0x03, 0x6E, 0x00, 0x52, 0x71, 0xA5, 0x56, 0x95, 0x93 },
+ { 0x1E, 0x1A, 0xD0, 0x01, 0x6D, 0x80, 0x6D, 0xC1, 0xA6, 0xA6, 0x96, 0x2B },
+ { 0x1E, 0x14, 0x30, 0x00, 0x05, 0x80, 0x53, 0xC1, 0xA6, 0x96, 0xA5, 0x23 },
+ { 0x1E, 0x17, 0x30, 0x00, 0x4E, 0x00, 0x4A, 0x01, 0xA6, 0x66, 0xA4, 0x23 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_3440000 = {
+ { 0x1E, 0x1E, 0x40, 0x0C, 0xB4, 0x12, 0x30, 0x01, 0x99, 0x45, 0x10, 0x10 },
+ { 0x1E, 0x1D, 0x20, 0x0B, 0x6D, 0x93, 0x30, 0xC1, 0x95, 0xA5, 0x91, 0x19 },
+ { 0x1E, 0x0A, 0x80, 0x0A, 0x92, 0x12, 0xDE, 0xC1, 0x95, 0xA5, 0x99, 0x1A },
+ { 0x1E, 0x0B, 0x20, 0x09, 0x4C, 0x12, 0x93, 0x71, 0x95, 0x45, 0x99, 0x8B },
+ { 0x1E, 0x1E, 0x70, 0x00, 0x04, 0x92, 0xAD, 0xA1, 0x9A, 0x95, 0x99, 0x22 },
+ { 0x1E, 0x13, 0x50, 0x00, 0x30, 0x12, 0x9B, 0x71, 0x9A, 0x85, 0xAA, 0xA5 },
+ { 0x1E, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A },
+ { 0x1E, 0x0E, 0x40, 0x00, 0x00, 0x92, 0x4A, 0x6D, 0x99, 0xA5, 0x9A, 0xA4 },
+ { 0x1E, 0x1D, 0xE0, 0x24, 0x92, 0x12, 0x5D, 0xA1, 0x9A, 0x55, 0x56, 0x19 },
+ { 0x1E, 0x1A, 0xA0, 0x1F, 0xE0, 0x12, 0x56, 0x01, 0x95, 0x05, 0x68, 0x0A },
+ { 0x1E, 0x09, 0x40, 0x1B, 0x6D, 0x92, 0x4A, 0xA1, 0x95, 0x55, 0x65, 0x09 },
+ { 0x1E, 0x0A, 0x60, 0x13, 0x6E, 0x12, 0x49, 0x49, 0x9A, 0x95, 0x6A, 0x63 },
+ { 0x1E, 0x17, 0x10, 0x13, 0x72, 0x12, 0xB7, 0x01, 0x95, 0x95, 0x64, 0x11 },
+ { 0x1E, 0x19, 0x90, 0x12, 0x40, 0x12, 0x92, 0x4D, 0x95, 0x05, 0x66, 0x8B },
+ { 0x1E, 0x19, 0x00, 0x09, 0x70, 0x12, 0xDB, 0x61, 0x9A, 0x45, 0x59, 0x19 },
+ { 0x1E, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_3460000 = {
+ { 0x1E, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 },
+ { 0x1E, 0x1E, 0x40, 0x0C, 0xB4, 0x12, 0x30, 0x01, 0x99, 0x45, 0x10, 0x10 },
+ { 0x1E, 0x0A, 0x80, 0x0A, 0x92, 0x12, 0xDE, 0xC1, 0x95, 0xA5, 0x99, 0x1A },
+ { 0x1E, 0x14, 0x70, 0x09, 0x24, 0x92, 0xE4, 0x91, 0x96, 0x55, 0xA9, 0x53 },
+ { 0x1E, 0x0B, 0x20, 0x09, 0x4C, 0x12, 0x93, 0x71, 0x95, 0x45, 0x99, 0x8B },
+ { 0x1E, 0x1E, 0x70, 0x00, 0x04, 0x92, 0xAD, 0xA1, 0x9A, 0x95, 0x99, 0x22 },
+ { 0x1E, 0x13, 0x50, 0x00, 0x30, 0x12, 0x9B, 0x71, 0x9A, 0x85, 0xAA, 0xA5 },
+ { 0x1E, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A },
+ { 0x1E, 0x1B, 0x20, 0x07, 0x18, 0x12, 0x52, 0x49, 0x84, 0x85, 0x55, 0x91 },
+ { 0x1E, 0x08, 0xB0, 0x1B, 0xB8, 0x12, 0x5B, 0x91, 0x9A, 0x45, 0x65, 0x59 },
+ { 0x1E, 0x1A, 0xA0, 0x1F, 0xE0, 0x12, 0x56, 0x01, 0x95, 0x05, 0x68, 0x0A },
+ { 0x1E, 0x09, 0x40, 0x1B, 0x6D, 0x92, 0x4A, 0xA1, 0x95, 0x55, 0x65, 0x09 },
+ { 0x1E, 0x00, 0x90, 0x15, 0xD8, 0x12, 0x9C, 0xA1, 0x96, 0x85, 0x56, 0x19 },
+ { 0x1E, 0x17, 0x10, 0x13, 0x72, 0x12, 0xB7, 0x01, 0x95, 0x95, 0x64, 0x11 },
+ { 0x1E, 0x19, 0x90, 0x12, 0x40, 0x12, 0x92, 0x4D, 0x95, 0x05, 0x66, 0x8B },
+ { 0x1E, 0x11, 0x70, 0x09, 0x29, 0x12, 0xDC, 0xC1, 0x99, 0x55, 0x66, 0x12 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4450000 = {
+ { 0x1E, 0x0D, 0x82, 0x55, 0xB4, 0x00, 0x9C, 0xC1, 0x55, 0x46, 0x5A, 0x03 },
+ { 0x1E, 0x01, 0xD2, 0x49, 0x52, 0x00, 0x93, 0x91, 0x5A, 0xA6, 0x66, 0x63 },
+ { 0x1E, 0x0E, 0x82, 0x4A, 0x6E, 0x00, 0xED, 0xC1, 0x5A, 0x96, 0x55, 0x19 },
+ { 0x1E, 0x1B, 0x92, 0x4D, 0x18, 0x01, 0x36, 0xC1, 0x54, 0x46, 0x59, 0x02 },
+ { 0x1E, 0x1B, 0x22, 0x4A, 0x49, 0x00, 0x38, 0xC1, 0x55, 0x66, 0x12, 0x0A },
+ { 0x1E, 0x0C, 0x52, 0x49, 0x29, 0x81, 0x3F, 0x01, 0x55, 0xA6, 0x98, 0x13 },
+ { 0x1E, 0x0C, 0xD0, 0x00, 0x29, 0x80, 0xC6, 0xC1, 0xAA, 0x66, 0x86, 0x2B },
+ { 0x1E, 0x15, 0x70, 0x00, 0x24, 0x80, 0x90, 0xC1, 0xA9, 0x56, 0x91, 0x1A },
+ { 0x1E, 0x0B, 0x12, 0x4A, 0x74, 0x00, 0x00, 0x25, 0x65, 0x86, 0x65, 0x52 },
+ { 0x1E, 0x1A, 0xE2, 0x52, 0x4A, 0x00, 0x06, 0xC1, 0x6A, 0xA6, 0x6A, 0x2C },
+ { 0x1E, 0x06, 0x72, 0x55, 0xB4, 0x00, 0x00, 0x25, 0x66, 0x46, 0x6A, 0x54 },
+ { 0x1E, 0x0C, 0x72, 0x5C, 0x92, 0x00, 0x49, 0x25, 0x6A, 0x56, 0x59, 0x5A },
+ { 0x1E, 0x1D, 0x22, 0x66, 0x18, 0x00, 0x5B, 0x6D, 0x64, 0x46, 0x56, 0x8B },
+ { 0x1E, 0x16, 0xD2, 0x6E, 0x00, 0x00, 0x5E, 0xC1, 0x58, 0x06, 0x69, 0x0B },
+ { 0x1E, 0x0E, 0x52, 0x5C, 0x90, 0x00, 0x49, 0x2D, 0x59, 0x46, 0x66, 0x8C },
+ { 0x1E, 0x0C, 0x22, 0x52, 0xE0, 0x00, 0x49, 0x25, 0x5A, 0x06, 0x6A, 0x54 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_8200000 = {
+ { 0x1E, 0x0A, 0x8B, 0x46, 0xD8, 0x01, 0xB6, 0xC2, 0x89, 0x84, 0x99, 0x22 },
+ { 0x1E, 0x03, 0xBB, 0xB6, 0x18, 0x01, 0xF8, 0xC2, 0x58, 0x84, 0x91, 0x19 },
+ { 0x1E, 0x06, 0xBC, 0x30, 0xE0, 0x00, 0x38, 0xC2, 0x12, 0x04, 0x21, 0x11 },
+ { 0x1E, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x02, 0x01 },
+ { 0x1E, 0x17, 0xBD, 0xB0, 0xD8, 0x00, 0x06, 0xC1, 0x91, 0x44, 0x0A, 0x0A },
+ { 0x1E, 0x1D, 0x0D, 0x87, 0x18, 0x00, 0x36, 0xC1, 0x44, 0x84, 0x26, 0x0A },
+ { 0x1E, 0x0B, 0x2A, 0x06, 0xD8, 0x01, 0xC0, 0x01, 0x06, 0x84, 0x80, 0x11 },
+ { 0x1E, 0x02, 0x59, 0x25, 0xD8, 0x01, 0x86, 0xC1, 0xAA, 0x44, 0x85, 0x21 },
+ { 0x1E, 0x1E, 0x27, 0x24, 0x92, 0x0B, 0x6D, 0xC2, 0xA6, 0x66, 0xAA, 0x2D },
+ { 0x1E, 0x0E, 0x17, 0x86, 0xE0, 0x0B, 0xC6, 0xC2, 0x8A, 0x06, 0x8A, 0x24 },
+ { 0x1E, 0x17, 0x97, 0x7F, 0x00, 0x0B, 0x80, 0xC2, 0x54, 0x06, 0x41, 0x09 },
+ { 0x1E, 0x0B, 0xD6, 0xDC, 0x94, 0x0B, 0x6E, 0xC2, 0x6A, 0x86, 0x55, 0x29 },
+ { 0x1E, 0x05, 0x76, 0xE6, 0xC0, 0x0C, 0x36, 0xC2, 0x5A, 0x06, 0x25, 0x1A },
+ { 0x1E, 0x1A, 0x99, 0x2D, 0xB8, 0x0D, 0x80, 0x02, 0x99, 0x86, 0x40, 0x21 },
+ { 0x1E, 0x07, 0xB9, 0xFF, 0xE0, 0x0E, 0x3F, 0x02, 0x95, 0x06, 0x24, 0x12 },
+ { 0x1E, 0x1F, 0xB9, 0x26, 0xE0, 0x01, 0xB6, 0xC2, 0x6A, 0x04, 0xAA, 0x24 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_3300000 = {
+ { 0x1E, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A },
+ { 0x1E, 0x0E, 0x40, 0x00, 0x00, 0x92, 0x4A, 0x6D, 0x99, 0xA5, 0x9A, 0xA4 },
+ { 0x1E, 0x19, 0xB0, 0x01, 0x24, 0x92, 0x53, 0xC1, 0x9A, 0xA5, 0x9A, 0x2B },
+ { 0x1E, 0x0D, 0x20, 0x01, 0x2C, 0x12, 0x52, 0x81, 0x99, 0x45, 0xA5, 0x12 },
+ { 0x1E, 0x10, 0x50, 0x02, 0x70, 0x12, 0x49, 0x71, 0x99, 0x85, 0xA6, 0x5B },
+ { 0x1E, 0x1C, 0xE0, 0x04, 0xB4, 0x12, 0x49, 0x29, 0x9A, 0x85, 0xA9, 0x63 },
+ { 0x1E, 0x05, 0x10, 0x04, 0xD8, 0x14, 0x93, 0x91, 0x95, 0x45, 0x5A, 0x4A },
+ { 0x1E, 0x16, 0xB0, 0x02, 0x70, 0x14, 0xB8, 0x01, 0x96, 0x85, 0x50, 0x18 },
+ { 0x1E, 0x19, 0x00, 0x09, 0x70, 0x12, 0xDB, 0x61, 0x9A, 0x45, 0x59, 0x19 },
+ { 0x1E, 0x11, 0x70, 0x09, 0x29, 0x12, 0xDC, 0xC1, 0x99, 0x55, 0x66, 0x12 },
+ { 0x1E, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 },
+ { 0x1E, 0x1D, 0x20, 0x0B, 0x6D, 0x93, 0x30, 0xC1, 0x95, 0xA5, 0x91, 0x19 },
+ { 0x1E, 0x0A, 0x80, 0x0A, 0x92, 0x12, 0xDE, 0xC1, 0x95, 0xA5, 0x99, 0x1A },
+ { 0x1E, 0x14, 0x70, 0x09, 0x24, 0x92, 0xE4, 0x91, 0x96, 0x55, 0xA9, 0x53 },
+ { 0x1E, 0x1E, 0x70, 0x00, 0x04, 0x92, 0xAD, 0xA1, 0x9A, 0x95, 0x99, 0x22 },
+ { 0x1E, 0x13, 0x50, 0x00, 0x30, 0x12, 0x9B, 0x71, 0x9A, 0x85, 0xAA, 0xA5 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_5200000 = {
+ { 0x1E, 0x09, 0x42, 0xDC, 0xE0, 0x02, 0x4A, 0x71, 0x69, 0x06, 0x95, 0x93 },
+ { 0x1E, 0x01, 0xF2, 0xED, 0xB4, 0x02, 0x52, 0xC1, 0x69, 0x46, 0x95, 0x12 },
+ { 0x1E, 0x0C, 0x02, 0xE7, 0xE0, 0x02, 0x65, 0x01, 0x5A, 0x06, 0x94, 0x12 },
+ { 0x1E, 0x1F, 0x62, 0xDB, 0x6D, 0x82, 0x52, 0x51, 0x55, 0x56, 0xA6, 0x44 },
+ { 0x1E, 0x01, 0x32, 0x90, 0xD8, 0x02, 0x4A, 0x51, 0x61, 0x46, 0xA5, 0x4B },
+ { 0x1E, 0x16, 0x32, 0x9C, 0x94, 0x00, 0x00, 0x29, 0x69, 0x86, 0x55, 0x59 },
+ { 0x1E, 0x17, 0x72, 0xA4, 0xB8, 0x00, 0x03, 0x6D, 0x65, 0x86, 0x55, 0x92 },
+ { 0x1E, 0x0A, 0x22, 0xA4, 0x92, 0x00, 0x00, 0x01, 0x5A, 0x96, 0x59, 0x9B },
+ { 0x1E, 0x08, 0xD2, 0xE7, 0x00, 0x02, 0x92, 0x4D, 0xA8, 0x06, 0x6A, 0x9D },
+ { 0x1E, 0x1B, 0x32, 0xE5, 0xD8, 0x02, 0xDD, 0xA1, 0x96, 0x46, 0x65, 0x12 },
+ { 0x1E, 0x0C, 0x83, 0x25, 0xE0, 0x03, 0x70, 0xC1, 0xA5, 0x06, 0x61, 0x12 },
+ { 0x1E, 0x0A, 0x53, 0x25, 0xB4, 0x03, 0x47, 0x01, 0x9A, 0x46, 0x88, 0x1B },
+ { 0x1E, 0x1E, 0x43, 0xBF, 0xE0, 0x02, 0xDB, 0xC1, 0xAA, 0x06, 0x9A, 0x24 },
+ { 0x1E, 0x1F, 0x13, 0x87, 0x18, 0x02, 0x93, 0x91, 0x44, 0x86, 0x96, 0x8C },
+ { 0x1E, 0x0B, 0x23, 0x76, 0x18, 0x02, 0x9B, 0x6D, 0x54, 0x46, 0x9A, 0x44 },
+ { 0x1E, 0x19, 0xD3, 0x00, 0xD8, 0x02, 0x9B, 0x91, 0x42, 0x86, 0xAA, 0x96 }
+};
+
+XC3028_SCODE_TABLE XC3028_scode_table_4560000 = {
+ { 0x1E, 0x0E, 0x42, 0x46, 0x00, 0x00, 0x65, 0xA1, 0x44, 0x06, 0x65, 0x02 },
+ { 0x1E, 0x06, 0x32, 0x5B, 0x90, 0x00, 0x52, 0x4D, 0x5A, 0x86, 0x6A, 0x5C },
+ { 0x1E, 0x1E, 0x22, 0x52, 0x49, 0x80, 0x49, 0x51, 0x5A, 0x66, 0x69, 0x5B },
+ { 0x1E, 0x1F, 0x12, 0x56, 0xE0, 0x00, 0x9B, 0x91, 0x59, 0x06, 0x56, 0x4A },
+ { 0x1E, 0x12, 0xF2, 0x52, 0x4C, 0x00, 0x98, 0xC1, 0x55, 0x46, 0x62, 0x03 },
+ { 0x1E, 0x1C, 0x72, 0x49, 0x2E, 0x00, 0xDE, 0xC1, 0x59, 0x96, 0x5A, 0x13 },
+ { 0x1E, 0x10, 0xB2, 0x4B, 0x72, 0x00, 0xDD, 0xC1, 0x59, 0x56, 0x69, 0x0B },
+ { 0x1E, 0x09, 0x82, 0x4A, 0x4D, 0x81, 0x78, 0xC1, 0x56, 0x56, 0x61, 0x0A },
+ { 0x1E, 0x02, 0x12, 0x93, 0x18, 0x00, 0x1D, 0x01, 0x54, 0x86, 0x54, 0x09 },
+ { 0x1E, 0x0E, 0xC2, 0x49, 0x78, 0x00, 0x1C, 0x81, 0x6A, 0x86, 0x66, 0x23 },
+ { 0x1E, 0x0B, 0xE2, 0x4B, 0xD8, 0x00, 0x09, 0x25, 0x69, 0x46, 0x66, 0x94 },
+ { 0x1E, 0x0B, 0x12, 0x4A, 0x74, 0x00, 0x00, 0x25, 0x65, 0x86, 0x65, 0x52 },
+ { 0x1E, 0x1D, 0x02, 0x49, 0x32, 0x00, 0x03, 0x91, 0x65, 0x66, 0x66, 0x53 },
+ { 0x1E, 0x18, 0xC2, 0x55, 0xA0, 0x00, 0x00, 0x25, 0x6A, 0x06, 0x69, 0x9C },
+ { 0x1E, 0x19, 0x32, 0x52, 0x52, 0x00, 0x4E, 0xC1, 0x65, 0x96, 0x55, 0x11 },
+ { 0x1E, 0x1A, 0xF2, 0x5B, 0x6C, 0x00, 0x53, 0x71, 0x65, 0x46, 0x59, 0x4A }
+};
+
+
+#endif
+
diff --git a/api/xc4000_channelmaps.h b/api/xc4000_channelmaps.h
new file mode 100644
index 0000000..ba3d47e
--- /dev/null
+++ b/api/xc4000_channelmaps.h
@@ -0,0 +1,4028 @@
+//
+// Automatically generated C header file for
+// control of the XC4000 via the i2c interface.
+//
+// Filename : xc4000_channelmaps.h
+// Generated : 9/25/2007 4:58:46 PM
+// Firmware version : 1.2
+//
+// (c) 2007 Xceive Corporation
+//
+
+#ifndef __XC4000_CHANNELMAPS_H
+#define __XC4000_CHANNELMAPS_H
+
+typedef struct {
+ char * identifier;
+ unsigned int frequency;
+ unsigned char dcode;
+} XC_CHANNEL;
+
+typedef struct {
+ char *MapType;
+ int nb_channels;
+ XC_CHANNEL *channels;
+} XC_CHANNEL_MAP;
+
+// *************************************************************
+// *** LIST OF AVAILABLE CHANNELMAPS
+// ***
+// *** 1. USA - Analog - Air
+// *** 2. USA - Analog - Cable
+// *** 3. USA - Digital - Air
+// *** 4. USA - Digital - Cable
+// *** 5. Taiwan - Analog - Air
+// *** 6. Taiwan - Analog - Cable
+// *** 7. Taiwan - Digital - Air
+// *** 8. Taiwan - Digital - Cable
+// *** 9. Japan - Analog - Air
+// *** 10. Japan - Analog - Cable
+// *** 11. Japan - Digital - Air
+// *** 12. Japan - Digital - Cable
+// *** 13. CCIR - Analog - Air
+// *** 14. CCIR - Analog - Cable
+// *** 15. CCIR - Digital - Air
+// *** 16. CCIR - Digital - Cable
+// *** 17. India - Analog - Air
+// *** 18. India - Analog - Cable
+// *** 19. India - Digital - Air
+// *** 20. India - Digital - Cable
+// *** 21. France - Analog - Air
+// *** 22. France - Analog - Cable
+// *** 23. France - Digital - Air
+// *** 24. France - Digital - Cable
+// *** 25. UK - Analog - Air
+// *** 26. UK - Analog - Cable
+// *** 27. UK - Digital - Air
+// *** 28. UK - Digital - Cable
+// *** 29. Ireland - Analog - Air
+// *** 30. Ireland - Analog - Cable
+// *** 31. Ireland - Digital - Air
+// *** 32. Ireland - Digital - Cable
+// *** 33. China - Analog - Air
+// *** 34. China - Analog - Cable
+// *** 35. China - Digital - Air
+// *** 36. China - Digital - Cable
+// *** 37. Australia - Analog - Air
+// *** 38. Australia - Analog - Cable
+// *** 39. Australia - Digital - Air
+// *** 40. Australia - Digital - Cable
+// *** 41. OIRT - Analog - Air
+// *** 42. OIRT - Analog - Cable
+// *** 43. OIRT - Digital - Air
+// *** 44. OIRT - Digital - Cable
+// *** 45. USA - FM radio
+// *** 46. Europe - FM radio
+// *** 47. Japan - FM radio
+// *************************************************************
+
+
+// *** 1. USA - Analog - Air
+XC_CHANNEL USA_Analog_Air[] = {
+ {"2", 0x0DD0, 0x0000},
+ {"3", 0x0F50, 0x0000},
+ {"4", 0x10D0, 0x0000},
+ {"5", 0x1350, 0x0000},
+ {"6", 0x14D0, 0x0000},
+ {"7", 0x2BD0, 0x0000},
+ {"8", 0x2D50, 0x0000},
+ {"9", 0x2ED0, 0x0000},
+ {"10", 0x3050, 0x0000},
+ {"11", 0x31D0, 0x0000},
+ {"12", 0x3350, 0x0000},
+ {"13", 0x34D0, 0x0000},
+ {"14", 0x75D0, 0x0000},
+ {"15", 0x7750, 0x0000},
+ {"16", 0x78D0, 0x0000},
+ {"17", 0x7A50, 0x0000},
+ {"18", 0x7BD0, 0x0000},
+ {"19", 0x7D50, 0x0000},
+ {"20", 0x7ED0, 0x0000},
+ {"21", 0x8050, 0x0000},
+ {"22", 0x81D0, 0x0000},
+ {"23", 0x8350, 0x0000},
+ {"24", 0x84D0, 0x0000},
+ {"25", 0x8650, 0x0000},
+ {"26", 0x87D0, 0x0000},
+ {"27", 0x8950, 0x0000},
+ {"28", 0x8AD0, 0x0000},
+ {"29", 0x8C50, 0x0000},
+ {"30", 0x8DD0, 0x0000},
+ {"31", 0x8F50, 0x0000},
+ {"32", 0x90D0, 0x0000},
+ {"33", 0x9250, 0x0000},
+ {"34", 0x93D0, 0x0000},
+ {"35", 0x9550, 0x0000},
+ {"36", 0x96D0, 0x0000},
+ {"37", 0x9850, 0x0000},
+ {"38", 0x99D0, 0x0000},
+ {"39", 0x9B50, 0x0000},
+ {"40", 0x9CD0, 0x0000},
+ {"41", 0x9E50, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA150, 0x0000},
+ {"44", 0xA2D0, 0x0000},
+ {"45", 0xA450, 0x0000},
+ {"46", 0xA5D0, 0x0000},
+ {"47", 0xA750, 0x0000},
+ {"48", 0xA8D0, 0x0000},
+ {"49", 0xAA50, 0x0000},
+ {"50", 0xABD0, 0x0000},
+ {"51", 0xAD50, 0x0000},
+ {"52", 0xAED0, 0x0000},
+ {"53", 0xB050, 0x0000},
+ {"54", 0xB1D0, 0x0000},
+ {"55", 0xB350, 0x0000},
+ {"56", 0xB4D0, 0x0000},
+ {"57", 0xB650, 0x0000},
+ {"58", 0xB7D0, 0x0000},
+ {"59", 0xB950, 0x0000},
+ {"60", 0xBAD0, 0x0000},
+ {"61", 0xBC50, 0x0000},
+ {"62", 0xBDD0, 0x0000},
+ {"63", 0xBF50, 0x0000},
+ {"64", 0xC0D0, 0x0000},
+ {"65", 0xC250, 0x0000},
+ {"66", 0xC3D0, 0x0000},
+ {"67", 0xC550, 0x0000},
+ {"68", 0xC6D0, 0x0000},
+ {"69", 0xC850, 0x0000}};
+
+
+// *** 2. USA - Analog - Cable
+XC_CHANNEL USA_Analog_Cable[] = {
+ {"1", 0x1250, 0x0000},
+ {"2", 0x0DD0, 0x0000},
+ {"3", 0x0F50, 0x0000},
+ {"4", 0x10D0, 0x0000},
+ {"5", 0x1350, 0x0000},
+ {"6", 0x14D0, 0x0000},
+ {"7", 0x2BD0, 0x0000},
+ {"8", 0x2D50, 0x0000},
+ {"9", 0x2ED0, 0x0000},
+ {"10", 0x3050, 0x0000},
+ {"11", 0x31D0, 0x0000},
+ {"12", 0x3350, 0x0000},
+ {"13", 0x34D0, 0x0000},
+ {"14", 0x1E50, 0x0000},
+ {"15", 0x1FD0, 0x0000},
+ {"16", 0x2150, 0x0000},
+ {"17", 0x22D0, 0x0000},
+ {"18", 0x2450, 0x0000},
+ {"19", 0x25D0, 0x0000},
+ {"20", 0x2750, 0x0000},
+ {"21", 0x28D0, 0x0000},
+ {"22", 0x2A50, 0x0000},
+ {"23", 0x3650, 0x0000},
+ {"24", 0x37D0, 0x0000},
+ {"25", 0x3950, 0x0000},
+ {"26", 0x3AD0, 0x0000},
+ {"27", 0x3C50, 0x0000},
+ {"28", 0x3DD0, 0x0000},
+ {"29", 0x3F50, 0x0000},
+ {"30", 0x40D0, 0x0000},
+ {"31", 0x4250, 0x0000},
+ {"32", 0x43D0, 0x0000},
+ {"33", 0x4550, 0x0000},
+ {"34", 0x46D0, 0x0000},
+ {"35", 0x4850, 0x0000},
+ {"36", 0x49D0, 0x0000},
+ {"37", 0x4B50, 0x0000},
+ {"38", 0x4CD0, 0x0000},
+ {"39", 0x4E50, 0x0000},
+ {"40", 0x4FD0, 0x0000},
+ {"41", 0x5150, 0x0000},
+ {"42", 0x52D0, 0x0000},
+ {"43", 0x5450, 0x0000},
+ {"44", 0x55D0, 0x0000},
+ {"45", 0x5750, 0x0000},
+ {"46", 0x58D0, 0x0000},
+ {"47", 0x5A50, 0x0000},
+ {"48", 0x5BD0, 0x0000},
+ {"49", 0x5D50, 0x0000},
+ {"50", 0x5ED0, 0x0000},
+ {"51", 0x6050, 0x0000},
+ {"52", 0x61D0, 0x0000},
+ {"53", 0x6350, 0x0000},
+ {"54", 0x64D0, 0x0000},
+ {"55", 0x6650, 0x0000},
+ {"56", 0x67D0, 0x0000},
+ {"57", 0x6950, 0x0000},
+ {"58", 0x6AD0, 0x0000},
+ {"59", 0x6C50, 0x0000},
+ {"60", 0x6DD0, 0x0000},
+ {"61", 0x6F50, 0x0000},
+ {"62", 0x70D0, 0x0000},
+ {"63", 0x7250, 0x0000},
+ {"64", 0x73D0, 0x0000},
+ {"65", 0x7550, 0x0000},
+ {"66", 0x76D0, 0x0000},
+ {"67", 0x7850, 0x0000},
+ {"68", 0x79D0, 0x0000},
+ {"69", 0x7B50, 0x0000},
+ {"70", 0x7CD0, 0x0000},
+ {"71", 0x7E50, 0x0000},
+ {"72", 0x7FD0, 0x0000},
+ {"73", 0x8150, 0x0000},
+ {"74", 0x82D0, 0x0000},
+ {"75", 0x8450, 0x0000},
+ {"76", 0x85D0, 0x0000},
+ {"77", 0x8750, 0x0000},
+ {"78", 0x88D0, 0x0000},
+ {"79", 0x8A50, 0x0000},
+ {"80", 0x8BD0, 0x0000},
+ {"81", 0x8D50, 0x0000},
+ {"82", 0x8ED0, 0x0000},
+ {"83", 0x9050, 0x0000},
+ {"84", 0x91D0, 0x0000},
+ {"85", 0x9350, 0x0000},
+ {"86", 0x94D0, 0x0000},
+ {"87", 0x9650, 0x0000},
+ {"88", 0x97D0, 0x0000},
+ {"89", 0x9950, 0x0000},
+ {"90", 0x9AD0, 0x0000},
+ {"91", 0x9C50, 0x0000},
+ {"92", 0x9DD0, 0x0000},
+ {"93", 0x9F50, 0x0000},
+ {"94", 0xA0D0, 0x0000},
+ {"95", 0x16D0, 0x0000},
+ {"96", 0x1850, 0x0000},
+ {"97", 0x19D0, 0x0000},
+ {"98", 0x1B51, 0x0000},
+ {"99", 0x1CD1, 0x0000},
+ {"100", 0xA250, 0x0000},
+ {"101", 0xA3D0, 0x0000},
+ {"102", 0xA550, 0x0000},
+ {"103", 0xA6D0, 0x0000},
+ {"104", 0xA850, 0x0000},
+ {"105", 0xA9D0, 0x0000},
+ {"106", 0xAB50, 0x0000},
+ {"107", 0xACD0, 0x0000},
+ {"108", 0xAE50, 0x0000},
+ {"109", 0xAFD0, 0x0000},
+ {"110", 0xB150, 0x0000},
+ {"111", 0xB2D0, 0x0000},
+ {"112", 0xB450, 0x0000},
+ {"113", 0xB5D0, 0x0000},
+ {"114", 0xB750, 0x0000},
+ {"115", 0xB8D0, 0x0000},
+ {"116", 0xBA50, 0x0000},
+ {"117", 0xBBD0, 0x0000},
+ {"118", 0xBD50, 0x0000},
+ {"119", 0xBED0, 0x0000},
+ {"120", 0xC050, 0x0000},
+ {"121", 0xC1D0, 0x0000},
+ {"122", 0xC350, 0x0000},
+ {"123", 0xC4D0, 0x0000},
+ {"124", 0xC650, 0x0000},
+ {"125", 0xC7D0, 0x0000},
+ {"126", 0xC950, 0x0000},
+ {"127", 0xCAD0, 0x0000},
+ {"128", 0xCC50, 0x0000},
+ {"129", 0xCDD0, 0x0000},
+ {"130", 0xCF50, 0x0000},
+ {"131", 0xD0D0, 0x0000},
+ {"132", 0xD250, 0x0000},
+ {"133", 0xD3D0, 0x0000},
+ {"134", 0xD550, 0x0000},
+ {"135", 0xD6D0, 0x0000}};
+
+
+// *** 3. USA - Digital - Air
+XC_CHANNEL USA_Digital_Air[] = {
+ {"2", 0x0DD0, 0x0000},
+ {"3", 0x0F50, 0x0000},
+ {"4", 0x10D0, 0x0000},
+ {"5", 0x1350, 0x0000},
+ {"6", 0x14D0, 0x0000},
+ {"7", 0x2BD0, 0x0000},
+ {"8", 0x2D50, 0x0000},
+ {"9", 0x2ED0, 0x0000},
+ {"10", 0x3050, 0x0000},
+ {"11", 0x31D0, 0x0000},
+ {"12", 0x3350, 0x0000},
+ {"13", 0x34D0, 0x0000},
+ {"14", 0x75D0, 0x0000},
+ {"15", 0x7750, 0x0000},
+ {"16", 0x78D0, 0x0000},
+ {"17", 0x7A50, 0x0000},
+ {"18", 0x7BD0, 0x0000},
+ {"19", 0x7D50, 0x0000},
+ {"20", 0x7ED0, 0x0000},
+ {"21", 0x8050, 0x0000},
+ {"22", 0x81D0, 0x0000},
+ {"23", 0x8350, 0x0000},
+ {"24", 0x84D0, 0x0000},
+ {"25", 0x8650, 0x0000},
+ {"26", 0x87D0, 0x0000},
+ {"27", 0x8950, 0x0000},
+ {"28", 0x8AD0, 0x0000},
+ {"29", 0x8C50, 0x0000},
+ {"30", 0x8DD0, 0x0000},
+ {"31", 0x8F50, 0x0000},
+ {"32", 0x90D0, 0x0000},
+ {"33", 0x9250, 0x0000},
+ {"34", 0x93D0, 0x0000},
+ {"35", 0x9550, 0x0000},
+ {"36", 0x96D0, 0x0000},
+ {"37", 0x9850, 0x0000},
+ {"38", 0x99D0, 0x0000},
+ {"39", 0x9B50, 0x0000},
+ {"40", 0x9CD0, 0x0000},
+ {"41", 0x9E50, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA150, 0x0000},
+ {"44", 0xA2D0, 0x0000},
+ {"45", 0xA450, 0x0000},
+ {"46", 0xA5D0, 0x0000},
+ {"47", 0xA750, 0x0000},
+ {"48", 0xA8D0, 0x0000},
+ {"49", 0xAA50, 0x0000},
+ {"50", 0xABD0, 0x0000},
+ {"51", 0xAD50, 0x0000},
+ {"52", 0xAED0, 0x0000},
+ {"53", 0xB050, 0x0000},
+ {"54", 0xB1D0, 0x0000},
+ {"55", 0xB350, 0x0000},
+ {"56", 0xB4D0, 0x0000},
+ {"57", 0xB650, 0x0000},
+ {"58", 0xB7D0, 0x0000},
+ {"59", 0xB950, 0x0000},
+ {"60", 0xBAD0, 0x0000},
+ {"61", 0xBC50, 0x0000},
+ {"62", 0xBDD0, 0x0000},
+ {"63", 0xBF50, 0x0000},
+ {"64", 0xC0D0, 0x0000},
+ {"65", 0xC250, 0x0000},
+ {"66", 0xC3D0, 0x0000},
+ {"67", 0xC550, 0x0000},
+ {"68", 0xC6D0, 0x0000},
+ {"69", 0xC850, 0x0000}};
+
+
+// *** 4. USA - Digital - Cable
+XC_CHANNEL USA_Digital_Cable[] = {
+ {"1", 0x1250, 0x0000},
+ {"2", 0x0DD0, 0x0000},
+ {"3", 0x0F50, 0x0000},
+ {"4", 0x10D0, 0x0000},
+ {"5", 0x1350, 0x0000},
+ {"6", 0x14D0, 0x0000},
+ {"7", 0x2BD0, 0x0000},
+ {"8", 0x2D50, 0x0000},
+ {"9", 0x2ED0, 0x0000},
+ {"10", 0x3050, 0x0000},
+ {"11", 0x31D0, 0x0000},
+ {"12", 0x3350, 0x0000},
+ {"13", 0x34D0, 0x0000},
+ {"14", 0x1E50, 0x0000},
+ {"15", 0x1FD0, 0x0000},
+ {"16", 0x2150, 0x0000},
+ {"17", 0x22D0, 0x0000},
+ {"18", 0x2450, 0x0000},
+ {"19", 0x25D0, 0x0000},
+ {"20", 0x2750, 0x0000},
+ {"21", 0x28D0, 0x0000},
+ {"22", 0x2A50, 0x0000},
+ {"23", 0x3650, 0x0000},
+ {"24", 0x37D0, 0x0000},
+ {"25", 0x3950, 0x0000},
+ {"26", 0x3AD0, 0x0000},
+ {"27", 0x3C50, 0x0000},
+ {"28", 0x3DD0, 0x0000},
+ {"29", 0x3F50, 0x0000},
+ {"30", 0x40D0, 0x0000},
+ {"31", 0x4250, 0x0000},
+ {"32", 0x43D0, 0x0000},
+ {"33", 0x4550, 0x0000},
+ {"34", 0x46D0, 0x0000},
+ {"35", 0x4850, 0x0000},
+ {"36", 0x49D0, 0x0000},
+ {"37", 0x4B50, 0x0000},
+ {"38", 0x4CD0, 0x0000},
+ {"39", 0x4E50, 0x0000},
+ {"40", 0x4FD0, 0x0000},
+ {"41", 0x5150, 0x0000},
+ {"42", 0x52D0, 0x0000},
+ {"43", 0x5450, 0x0000},
+ {"44", 0x55D0, 0x0000},
+ {"45", 0x5750, 0x0000},
+ {"46", 0x58D0, 0x0000},
+ {"47", 0x5A50, 0x0000},
+ {"48", 0x5BD0, 0x0000},
+ {"49", 0x5D50, 0x0000},
+ {"50", 0x5ED0, 0x0000},
+ {"51", 0x6050, 0x0000},
+ {"52", 0x61D0, 0x0000},
+ {"53", 0x6350, 0x0000},
+ {"54", 0x64D0, 0x0000},
+ {"55", 0x6650, 0x0000},
+ {"56", 0x67D0, 0x0000},
+ {"57", 0x6950, 0x0000},
+ {"58", 0x6AD0, 0x0000},
+ {"59", 0x6C50, 0x0000},
+ {"60", 0x6DD0, 0x0000},
+ {"61", 0x6F50, 0x0000},
+ {"62", 0x70D0, 0x0000},
+ {"63", 0x7250, 0x0000},
+ {"64", 0x73D0, 0x0000},
+ {"65", 0x7550, 0x0000},
+ {"66", 0x76D0, 0x0000},
+ {"67", 0x7850, 0x0000},
+ {"68", 0x79D0, 0x0000},
+ {"69", 0x7B50, 0x0000},
+ {"70", 0x7CD0, 0x0000},
+ {"71", 0x7E50, 0x0000},
+ {"72", 0x7FD0, 0x0000},
+ {"73", 0x8150, 0x0000},
+ {"74", 0x82D0, 0x0000},
+ {"75", 0x8450, 0x0000},
+ {"76", 0x85D0, 0x0000},
+ {"77", 0x8750, 0x0000},
+ {"78", 0x88D0, 0x0000},
+ {"79", 0x8A50, 0x0000},
+ {"80", 0x8BD0, 0x0000},
+ {"81", 0x8D50, 0x0000},
+ {"82", 0x8ED0, 0x0000},
+ {"83", 0x9050, 0x0000},
+ {"84", 0x91D0, 0x0000},
+ {"85", 0x9350, 0x0000},
+ {"86", 0x94D0, 0x0000},
+ {"87", 0x9650, 0x0000},
+ {"88", 0x97D0, 0x0000},
+ {"89", 0x9950, 0x0000},
+ {"90", 0x9AD0, 0x0000},
+ {"91", 0x9C50, 0x0000},
+ {"92", 0x9DD0, 0x0000},
+ {"93", 0x9F50, 0x0000},
+ {"94", 0xA0D0, 0x0000},
+ {"95", 0x16D0, 0x0000},
+ {"96", 0x1850, 0x0000},
+ {"97", 0x19D0, 0x0000},
+ {"98", 0x1B51, 0x0000},
+ {"99", 0x1CD1, 0x0000},
+ {"100", 0xA250, 0x0000},
+ {"101", 0xA3D0, 0x0000},
+ {"102", 0xA550, 0x0000},
+ {"103", 0xA6D0, 0x0000},
+ {"104", 0xA850, 0x0000},
+ {"105", 0xA9D0, 0x0000},
+ {"106", 0xAB50, 0x0000},
+ {"107", 0xACD0, 0x0000},
+ {"108", 0xAE50, 0x0000},
+ {"109", 0xAFD0, 0x0000},
+ {"110", 0xB150, 0x0000},
+ {"111", 0xB2D0, 0x0000},
+ {"112", 0xB450, 0x0000},
+ {"113", 0xB5D0, 0x0000},
+ {"114", 0xB750, 0x0000},
+ {"115", 0xB8D0, 0x0000},
+ {"116", 0xBA50, 0x0000},
+ {"117", 0xBBD0, 0x0000},
+ {"118", 0xBD50, 0x0000},
+ {"119", 0xBED0, 0x0000},
+ {"120", 0xC050, 0x0000},
+ {"121", 0xC1D0, 0x0000},
+ {"122", 0xC350, 0x0000},
+ {"123", 0xC4D0, 0x0000},
+ {"124", 0xC650, 0x0000},
+ {"125", 0xC7D0, 0x0000},
+ {"126", 0xC950, 0x0000},
+ {"127", 0xCAD0, 0x0000},
+ {"128", 0xCC50, 0x0000},
+ {"129", 0xCDD0, 0x0000},
+ {"130", 0xCF50, 0x0000},
+ {"131", 0xD0D0, 0x0000},
+ {"132", 0xD250, 0x0000},
+ {"133", 0xD3D0, 0x0000},
+ {"134", 0xD550, 0x0000},
+ {"135", 0xD6D0, 0x0000}};
+
+
+// *** 5. Taiwan - Analog - Air
+XC_CHANNEL Taiwan_Analog_Air[] = {
+ {"2", 0x0DD0, 0x0000},
+ {"3", 0x0F50, 0x0000},
+ {"4", 0x10D0, 0x0000},
+ {"5", 0x1350, 0x0000},
+ {"6", 0x14D0, 0x0000},
+ {"7", 0x2BD0, 0x0000},
+ {"8", 0x2D50, 0x0000},
+ {"9", 0x2ED0, 0x0000},
+ {"10", 0x3050, 0x0000},
+ {"11", 0x31D0, 0x0000},
+ {"12", 0x3350, 0x0000},
+ {"13", 0x34D0, 0x0000},
+ {"14", 0x75D0, 0x0000},
+ {"15", 0x7750, 0x0000},
+ {"16", 0x78D0, 0x0000},
+ {"17", 0x7A50, 0x0000},
+ {"18", 0x7BD0, 0x0000},
+ {"19", 0x7D50, 0x0000},
+ {"20", 0x7ED0, 0x0000},
+ {"21", 0x8050, 0x0000},
+ {"22", 0x81D0, 0x0000},
+ {"23", 0x8350, 0x0000},
+ {"24", 0x84D0, 0x0000},
+ {"25", 0x8650, 0x0000},
+ {"26", 0x87D0, 0x0000},
+ {"27", 0x8950, 0x0000},
+ {"28", 0x8AD0, 0x0000},
+ {"29", 0x8C50, 0x0000},
+ {"30", 0x8DD0, 0x0000},
+ {"31", 0x8F50, 0x0000},
+ {"32", 0x90D0, 0x0000},
+ {"33", 0x9250, 0x0000},
+ {"34", 0x93D0, 0x0000},
+ {"35", 0x9550, 0x0000},
+ {"36", 0x96D0, 0x0000},
+ {"37", 0x9850, 0x0000},
+ {"38", 0x99D0, 0x0000},
+ {"39", 0x9B50, 0x0000},
+ {"40", 0x9CD0, 0x0000},
+ {"41", 0x9E50, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA150, 0x0000},
+ {"44", 0xA2D0, 0x0000},
+ {"45", 0xA450, 0x0000},
+ {"46", 0xA5D0, 0x0000},
+ {"47", 0xA750, 0x0000},
+ {"48", 0xA8D0, 0x0000},
+ {"49", 0xAA50, 0x0000},
+ {"50", 0xABD0, 0x0000},
+ {"51", 0xAD50, 0x0000},
+ {"52", 0xAED0, 0x0000},
+ {"53", 0xB050, 0x0000},
+ {"54", 0xB1D0, 0x0000},
+ {"55", 0xB350, 0x0000},
+ {"56", 0xB4D0, 0x0000},
+ {"57", 0xB650, 0x0000},
+ {"58", 0xB7D0, 0x0000},
+ {"59", 0xB950, 0x0000},
+ {"60", 0xBAD0, 0x0000},
+ {"61", 0xBC50, 0x0000},
+ {"62", 0xBDD0, 0x0000},
+ {"63", 0xBF50, 0x0000},
+ {"64", 0xC0D0, 0x0000},
+ {"65", 0xC250, 0x0000},
+ {"66", 0xC3D0, 0x0000},
+ {"67", 0xC550, 0x0000},
+ {"68", 0xC6D0, 0x0000},
+ {"69", 0xC850, 0x0000}};
+
+
+// *** 6. Taiwan - Analog - Cable
+XC_CHANNEL Taiwan_Analog_Cable[] = {
+ {"1", 0x1250, 0x0000},
+ {"2", 0x0DD0, 0x0000},
+ {"3", 0x0F50, 0x0000},
+ {"4", 0x10D0, 0x0000},
+ {"5", 0x1350, 0x0000},
+ {"6", 0x14D0, 0x0000},
+ {"7", 0x2BD0, 0x0000},
+ {"8", 0x2D50, 0x0000},
+ {"9", 0x2ED0, 0x0000},
+ {"10", 0x3050, 0x0000},
+ {"11", 0x31D0, 0x0000},
+ {"12", 0x3350, 0x0000},
+ {"13", 0x34D0, 0x0000},
+ {"14", 0x1E50, 0x0000},
+ {"15", 0x1FD0, 0x0000},
+ {"16", 0x2150, 0x0000},
+ {"17", 0x22D0, 0x0000},
+ {"18", 0x2450, 0x0000},
+ {"19", 0x25D0, 0x0000},
+ {"20", 0x2750, 0x0000},
+ {"21", 0x28D0, 0x0000},
+ {"22", 0x2A50, 0x0000},
+ {"23", 0x3650, 0x0000},
+ {"24", 0x37D0, 0x0000},
+ {"25", 0x3950, 0x0000},
+ {"26", 0x3AD0, 0x0000},
+ {"27", 0x3C50, 0x0000},
+ {"28", 0x3DD0, 0x0000},
+ {"29", 0x3F50, 0x0000},
+ {"30", 0x40D0, 0x0000},
+ {"31", 0x4250, 0x0000},
+ {"32", 0x43D0, 0x0000},
+ {"33", 0x4550, 0x0000},
+ {"34", 0x46D0, 0x0000},
+ {"35", 0x4850, 0x0000},
+ {"36", 0x49D0, 0x0000},
+ {"37", 0x4B50, 0x0000},
+ {"38", 0x4CD0, 0x0000},
+ {"39", 0x4E50, 0x0000},
+ {"40", 0x4FD0, 0x0000},
+ {"41", 0x5150, 0x0000},
+ {"42", 0x52D0, 0x0000},
+ {"43", 0x5450, 0x0000},
+ {"44", 0x55D0, 0x0000},
+ {"45", 0x5750, 0x0000},
+ {"46", 0x58D0, 0x0000},
+ {"47", 0x5A50, 0x0000},
+ {"48", 0x5BD0, 0x0000},
+ {"49", 0x5D50, 0x0000},
+ {"50", 0x5ED0, 0x0000},
+ {"51", 0x6050, 0x0000},
+ {"52", 0x61D0, 0x0000},
+ {"53", 0x6350, 0x0000},
+ {"54", 0x64D0, 0x0000},
+ {"55", 0x6650, 0x0000},
+ {"56", 0x67D0, 0x0000},
+ {"57", 0x6950, 0x0000},
+ {"58", 0x6AD0, 0x0000},
+ {"59", 0x6C50, 0x0000},
+ {"60", 0x6DD0, 0x0000},
+ {"61", 0x6F50, 0x0000},
+ {"62", 0x70D0, 0x0000},
+ {"63", 0x7250, 0x0000},
+ {"64", 0x73D0, 0x0000},
+ {"65", 0x7550, 0x0000},
+ {"66", 0x76D0, 0x0000},
+ {"67", 0x7850, 0x0000},
+ {"68", 0x79D0, 0x0000},
+ {"69", 0x7B50, 0x0000},
+ {"70", 0x7CD0, 0x0000},
+ {"71", 0x7E50, 0x0000},
+ {"72", 0x7FD0, 0x0000},
+ {"73", 0x8150, 0x0000},
+ {"74", 0x82D0, 0x0000},
+ {"75", 0x8450, 0x0000},
+ {"76", 0x85D0, 0x0000},
+ {"77", 0x8750, 0x0000},
+ {"78", 0x88D0, 0x0000},
+ {"79", 0x8A50, 0x0000},
+ {"80", 0x8BD0, 0x0000},
+ {"81", 0x8D50, 0x0000},
+ {"82", 0x8ED0, 0x0000},
+ {"83", 0x9050, 0x0000},
+ {"84", 0x91D0, 0x0000},
+ {"85", 0x9350, 0x0000},
+ {"86", 0x94D0, 0x0000},
+ {"87", 0x9650, 0x0000},
+ {"88", 0x97D0, 0x0000},
+ {"89", 0x9950, 0x0000},
+ {"90", 0x9AD0, 0x0000},
+ {"91", 0x9C50, 0x0000},
+ {"92", 0x9DD0, 0x0000},
+ {"93", 0x9F50, 0x0000},
+ {"94", 0xA0D0, 0x0000},
+ {"95", 0x16D0, 0x0000},
+ {"96", 0x1850, 0x0000},
+ {"97", 0x19D0, 0x0000},
+ {"98", 0x1B51, 0x0000},
+ {"99", 0x1CD1, 0x0000},
+ {"100", 0xA250, 0x0000},
+ {"101", 0xA3D0, 0x0000},
+ {"102", 0xA550, 0x0000},
+ {"103", 0xA6D0, 0x0000},
+ {"104", 0xA850, 0x0000},
+ {"105", 0xA9D0, 0x0000},
+ {"106", 0xAB50, 0x0000},
+ {"107", 0xACD0, 0x0000},
+ {"108", 0xAE50, 0x0000},
+ {"109", 0xAFD0, 0x0000},
+ {"110", 0xB150, 0x0000},
+ {"111", 0xB2D0, 0x0000},
+ {"112", 0xB450, 0x0000},
+ {"113", 0xB5D0, 0x0000},
+ {"114", 0xB750, 0x0000},
+ {"115", 0xB8D0, 0x0000},
+ {"116", 0xBA50, 0x0000},
+ {"117", 0xBBD0, 0x0000},
+ {"118", 0xBD50, 0x0000},
+ {"119", 0xBED0, 0x0000},
+ {"120", 0xC050, 0x0000},
+ {"121", 0xC1D0, 0x0000},
+ {"122", 0xC350, 0x0000},
+ {"123", 0xC4D0, 0x0000},
+ {"124", 0xC650, 0x0000},
+ {"125", 0xC7D0, 0x0000},
+ {"126", 0xC950, 0x0000},
+ {"127", 0xCAD0, 0x0000},
+ {"128", 0xCC50, 0x0000},
+ {"129", 0xCDD0, 0x0000},
+ {"130", 0xCF50, 0x0000},
+ {"131", 0xD0D0, 0x0000},
+ {"132", 0xD250, 0x0000},
+ {"133", 0xD3D0, 0x0000},
+ {"134", 0xD550, 0x0000},
+ {"135", 0xD6D0, 0x0000}};
+
+
+// *** 7. Taiwan - Digital - Air
+XC_CHANNEL Taiwan_Digital_Air[] = {
+ {"2", 0x0DD0, 0x0000},
+ {"3", 0x0F50, 0x0000},
+ {"4", 0x10D0, 0x0000},
+ {"5", 0x1350, 0x0000},
+ {"6", 0x14D0, 0x0000},
+ {"7", 0x2BD0, 0x0000},
+ {"8", 0x2D50, 0x0000},
+ {"9", 0x2ED0, 0x0000},
+ {"10", 0x3050, 0x0000},
+ {"11", 0x31D0, 0x0000},
+ {"12", 0x3350, 0x0000},
+ {"13", 0x34D0, 0x0000},
+ {"14", 0x75D0, 0x0000},
+ {"15", 0x7750, 0x0000},
+ {"16", 0x78D0, 0x0000},
+ {"17", 0x7A50, 0x0000},
+ {"18", 0x7BD0, 0x0000},
+ {"19", 0x7D50, 0x0000},
+ {"20", 0x7ED0, 0x0000},
+ {"21", 0x8050, 0x0000},
+ {"22", 0x81D0, 0x0000},
+ {"23", 0x8350, 0x0000},
+ {"24", 0x84D0, 0x0000},
+ {"25", 0x8650, 0x0000},
+ {"26", 0x87D0, 0x0000},
+ {"27", 0x8950, 0x0000},
+ {"28", 0x8AD0, 0x0000},
+ {"29", 0x8C50, 0x0000},
+ {"30", 0x8DD0, 0x0000},
+ {"31", 0x8F50, 0x0000},
+ {"32", 0x90D0, 0x0000},
+ {"33", 0x9250, 0x0000},
+ {"34", 0x93D0, 0x0000},
+ {"35", 0x9550, 0x0000},
+ {"36", 0x96D0, 0x0000},
+ {"37", 0x9850, 0x0000},
+ {"38", 0x99D0, 0x0000},
+ {"39", 0x9B50, 0x0000},
+ {"40", 0x9CD0, 0x0000},
+ {"41", 0x9E50, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA150, 0x0000},
+ {"44", 0xA2D0, 0x0000},
+ {"45", 0xA450, 0x0000},
+ {"46", 0xA5D0, 0x0000},
+ {"47", 0xA750, 0x0000},
+ {"48", 0xA8D0, 0x0000},
+ {"49", 0xAA50, 0x0000},
+ {"50", 0xABD0, 0x0000},
+ {"51", 0xAD50, 0x0000},
+ {"52", 0xAED0, 0x0000},
+ {"53", 0xB050, 0x0000},
+ {"54", 0xB1D0, 0x0000},
+ {"55", 0xB350, 0x0000},
+ {"56", 0xB4D0, 0x0000},
+ {"57", 0xB650, 0x0000},
+ {"58", 0xB7D0, 0x0000},
+ {"59", 0xB950, 0x0000},
+ {"60", 0xBAD0, 0x0000},
+ {"61", 0xBC50, 0x0000},
+ {"62", 0xBDD0, 0x0000},
+ {"63", 0xBF50, 0x0000},
+ {"64", 0xC0D0, 0x0000},
+ {"65", 0xC250, 0x0000},
+ {"66", 0xC3D0, 0x0000},
+ {"67", 0xC550, 0x0000},
+ {"68", 0xC6D0, 0x0000},
+ {"69", 0xC850, 0x0000}};
+
+
+// *** 8. Taiwan - Digital - Cable
+XC_CHANNEL Taiwan_Digital_Cable[] = {
+ {"1", 0x1250, 0x0000},
+ {"2", 0x0DD0, 0x0000},
+ {"3", 0x0F50, 0x0000},
+ {"4", 0x10D0, 0x0000},
+ {"5", 0x1350, 0x0000},
+ {"6", 0x14D0, 0x0000},
+ {"7", 0x2BD0, 0x0000},
+ {"8", 0x2D50, 0x0000},
+ {"9", 0x2ED0, 0x0000},
+ {"10", 0x3050, 0x0000},
+ {"11", 0x31D0, 0x0000},
+ {"12", 0x3350, 0x0000},
+ {"13", 0x34D0, 0x0000},
+ {"14", 0x1E50, 0x0000},
+ {"15", 0x1FD0, 0x0000},
+ {"16", 0x2150, 0x0000},
+ {"17", 0x22D0, 0x0000},
+ {"18", 0x2450, 0x0000},
+ {"19", 0x25D0, 0x0000},
+ {"20", 0x2750, 0x0000},
+ {"21", 0x28D0, 0x0000},
+ {"22", 0x2A50, 0x0000},
+ {"23", 0x3650, 0x0000},
+ {"24", 0x37D0, 0x0000},
+ {"25", 0x3950, 0x0000},
+ {"26", 0x3AD0, 0x0000},
+ {"27", 0x3C50, 0x0000},
+ {"28", 0x3DD0, 0x0000},
+ {"29", 0x3F50, 0x0000},
+ {"30", 0x40D0, 0x0000},
+ {"31", 0x4250, 0x0000},
+ {"32", 0x43D0, 0x0000},
+ {"33", 0x4550, 0x0000},
+ {"34", 0x46D0, 0x0000},
+ {"35", 0x4850, 0x0000},
+ {"36", 0x49D0, 0x0000},
+ {"37", 0x4B50, 0x0000},
+ {"38", 0x4CD0, 0x0000},
+ {"39", 0x4E50, 0x0000},
+ {"40", 0x4FD0, 0x0000},
+ {"41", 0x5150, 0x0000},
+ {"42", 0x52D0, 0x0000},
+ {"43", 0x5450, 0x0000},
+ {"44", 0x55D0, 0x0000},
+ {"45", 0x5750, 0x0000},
+ {"46", 0x58D0, 0x0000},
+ {"47", 0x5A50, 0x0000},
+ {"48", 0x5BD0, 0x0000},
+ {"49", 0x5D50, 0x0000},
+ {"50", 0x5ED0, 0x0000},
+ {"51", 0x6050, 0x0000},
+ {"52", 0x61D0, 0x0000},
+ {"53", 0x6350, 0x0000},
+ {"54", 0x64D0, 0x0000},
+ {"55", 0x6650, 0x0000},
+ {"56", 0x67D0, 0x0000},
+ {"57", 0x6950, 0x0000},
+ {"58", 0x6AD0, 0x0000},
+ {"59", 0x6C50, 0x0000},
+ {"60", 0x6DD0, 0x0000},
+ {"61", 0x6F50, 0x0000},
+ {"62", 0x70D0, 0x0000},
+ {"63", 0x7250, 0x0000},
+ {"64", 0x73D0, 0x0000},
+ {"65", 0x7550, 0x0000},
+ {"66", 0x76D0, 0x0000},
+ {"67", 0x7850, 0x0000},
+ {"68", 0x79D0, 0x0000},
+ {"69", 0x7B50, 0x0000},
+ {"70", 0x7CD0, 0x0000},
+ {"71", 0x7E50, 0x0000},
+ {"72", 0x7FD0, 0x0000},
+ {"73", 0x8150, 0x0000},
+ {"74", 0x82D0, 0x0000},
+ {"75", 0x8450, 0x0000},
+ {"76", 0x85D0, 0x0000},
+ {"77", 0x8750, 0x0000},
+ {"78", 0x88D0, 0x0000},
+ {"79", 0x8A50, 0x0000},
+ {"80", 0x8BD0, 0x0000},
+ {"81", 0x8D50, 0x0000},
+ {"82", 0x8ED0, 0x0000},
+ {"83", 0x9050, 0x0000},
+ {"84", 0x91D0, 0x0000},
+ {"85", 0x9350, 0x0000},
+ {"86", 0x94D0, 0x0000},
+ {"87", 0x9650, 0x0000},
+ {"88", 0x97D0, 0x0000},
+ {"89", 0x9950, 0x0000},
+ {"90", 0x9AD0, 0x0000},
+ {"91", 0x9C50, 0x0000},
+ {"92", 0x9DD0, 0x0000},
+ {"93", 0x9F50, 0x0000},
+ {"94", 0xA0D0, 0x0000},
+ {"95", 0x16D0, 0x0000},
+ {"96", 0x1850, 0x0000},
+ {"97", 0x19D0, 0x0000},
+ {"98", 0x1B51, 0x0000},
+ {"99", 0x1CD1, 0x0000},
+ {"100", 0xA250, 0x0000},
+ {"101", 0xA3D0, 0x0000},
+ {"102", 0xA550, 0x0000},
+ {"103", 0xA6D0, 0x0000},
+ {"104", 0xA850, 0x0000},
+ {"105", 0xA9D0, 0x0000},
+ {"106", 0xAB50, 0x0000},
+ {"107", 0xACD0, 0x0000},
+ {"108", 0xAE50, 0x0000},
+ {"109", 0xAFD0, 0x0000},
+ {"110", 0xB150, 0x0000},
+ {"111", 0xB2D0, 0x0000},
+ {"112", 0xB450, 0x0000},
+ {"113", 0xB5D0, 0x0000},
+ {"114", 0xB750, 0x0000},
+ {"115", 0xB8D0, 0x0000},
+ {"116", 0xBA50, 0x0000},
+ {"117", 0xBBD0, 0x0000},
+ {"118", 0xBD50, 0x0000},
+ {"119", 0xBED0, 0x0000},
+ {"120", 0xC050, 0x0000},
+ {"121", 0xC1D0, 0x0000},
+ {"122", 0xC350, 0x0000},
+ {"123", 0xC4D0, 0x0000},
+ {"124", 0xC650, 0x0000},
+ {"125", 0xC7D0, 0x0000},
+ {"126", 0xC950, 0x0000},
+ {"127", 0xCAD0, 0x0000},
+ {"128", 0xCC50, 0x0000},
+ {"129", 0xCDD0, 0x0000},
+ {"130", 0xCF50, 0x0000},
+ {"131", 0xD0D0, 0x0000},
+ {"132", 0xD250, 0x0000},
+ {"133", 0xD3D0, 0x0000},
+ {"134", 0xD550, 0x0000},
+ {"135", 0xD6D0, 0x0000}};
+
+
+// *** 9. Japan - Analog - Air
+XC_CHANNEL Japan_Analog_Air[] = {
+ {"1", 0x16D0, 0x0000},
+ {"2", 0x1850, 0x0000},
+ {"3", 0x19D0, 0x0000},
+ {"4", 0x2AD0, 0x0000},
+ {"5", 0x2C50, 0x0000},
+ {"6", 0x2DD0, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3050, 0x0000},
+ {"9", 0x31D0, 0x0000},
+ {"10", 0x3350, 0x0000},
+ {"11", 0x34D0, 0x0000},
+ {"12", 0x3650, 0x0000},
+ {"13", 0x75D0, 0x0000},
+ {"14", 0x7750, 0x0000},
+ {"15", 0x78D0, 0x0000},
+ {"16", 0x7A50, 0x0000},
+ {"17", 0x7BD0, 0x0000},
+ {"18", 0x7D50, 0x0000},
+ {"19", 0x7ED0, 0x0000},
+ {"20", 0x8050, 0x0000},
+ {"21", 0x81D0, 0x0000},
+ {"22", 0x8350, 0x0000},
+ {"23", 0x84D0, 0x0000},
+ {"24", 0x8650, 0x0000},
+ {"25", 0x87D0, 0x0000},
+ {"26", 0x8950, 0x0000},
+ {"27", 0x8AD0, 0x0000},
+ {"28", 0x8C50, 0x0000},
+ {"29", 0x8DD0, 0x0000},
+ {"30", 0x8F50, 0x0000},
+ {"31", 0x90D0, 0x0000},
+ {"32", 0x9250, 0x0000},
+ {"33", 0x93D0, 0x0000},
+ {"34", 0x9550, 0x0000},
+ {"35", 0x96D0, 0x0000},
+ {"36", 0x9850, 0x0000},
+ {"37", 0x99D0, 0x0000},
+ {"38", 0x9B50, 0x0000},
+ {"39", 0x9CD0, 0x0000},
+ {"40", 0x9E50, 0x0000},
+ {"41", 0x9FD0, 0x0000},
+ {"42", 0xA150, 0x0000},
+ {"43", 0xA2D0, 0x0000},
+ {"44", 0xA450, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA750, 0x0000},
+ {"47", 0xA8D0, 0x0000},
+ {"48", 0xAA50, 0x0000},
+ {"49", 0xABD0, 0x0000},
+ {"50", 0xAD50, 0x0000},
+ {"51", 0xAED0, 0x0000},
+ {"52", 0xB050, 0x0000},
+ {"53", 0xB1D0, 0x0000},
+ {"54", 0xB350, 0x0000},
+ {"55", 0xB4D0, 0x0000},
+ {"56", 0xB650, 0x0000},
+ {"57", 0xB7D0, 0x0000},
+ {"58", 0xB950, 0x0000},
+ {"59", 0xBAD0, 0x0000},
+ {"60", 0xBC50, 0x0000},
+ {"61", 0xBDD0, 0x0000},
+ {"62", 0xBF50, 0x0000}};
+
+
+// *** 10. Japan - Analog - Cable
+XC_CHANNEL Japan_Analog_Cable[] = {
+ {"1", 0x16D0, 0x0000},
+ {"2", 0x1850, 0x0000},
+ {"3", 0x19D0, 0x0000},
+ {"M1", 0x1B50, 0x0000},
+ {"M2", 0x1CD0, 0x0000},
+ {"M3", 0x1E50, 0x0000},
+ {"M4", 0x1FD0, 0x0000},
+ {"M5", 0x2150, 0x0000},
+ {"M6", 0x22D0, 0x0000},
+ {"M7", 0x2450, 0x0000},
+ {"M8", 0x25D0, 0x0000},
+ {"M9", 0x2750, 0x0000},
+ {"M10", 0x2950, 0x0000},
+ {"4", 0x2AD0, 0x0000},
+ {"5", 0x2C50, 0x0000},
+ {"6", 0x2DD0, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3050, 0x0000},
+ {"9", 0x31D0, 0x0000},
+ {"10", 0x3350, 0x0000},
+ {"11", 0x34D0, 0x0000},
+ {"S1", 0x37D0, 0x0000},
+ {"S2", 0x39D0, 0x0000},
+ {"S3", 0x3B50, 0x0000},
+ {"S4", 0x3CD0, 0x0000},
+ {"S5", 0x3E50, 0x0000},
+ {"S6", 0x3F50, 0x0000},
+ {"S7", 0x40D0, 0x0000},
+ {"S8", 0x4250, 0x0000},
+ {"S9", 0x43D0, 0x0000},
+ {"S10", 0x4550, 0x0000},
+ {"S11", 0x46D0, 0x0000},
+ {"S12", 0x4850, 0x0000},
+ {"S13", 0x49D0, 0x0000},
+ {"S14", 0x4B50, 0x0000},
+ {"S15", 0x4CD0, 0x0000},
+ {"S16", 0x4E50, 0x0000},
+ {"S17", 0x4FD0, 0x0000},
+ {"S18", 0x5150, 0x0000},
+ {"S19", 0x52D0, 0x0000},
+ {"S20", 0x5450, 0x0000},
+ {"S21", 0x55D0, 0x0000},
+ {"S22", 0x5750, 0x0000},
+ {"S23", 0x58D0, 0x0000},
+ {"S24", 0x5A50, 0x0000},
+ {"S25", 0x5BD0, 0x0000},
+ {"S26", 0x5D50, 0x0000},
+ {"S27", 0x5ED0, 0x0000},
+ {"S28", 0x6050, 0x0000},
+ {"S29", 0x61D0, 0x0000},
+ {"S30", 0x6350, 0x0000},
+ {"S31", 0x64D0, 0x0000},
+ {"S32", 0x6650, 0x0000},
+ {"S33", 0x67D0, 0x0000},
+ {"S34", 0x6950, 0x0000},
+ {"S35", 0x6AD0, 0x0000},
+ {"S36", 0x6C50, 0x0000},
+ {"S37", 0x6DD0, 0x0000},
+ {"S38", 0x6F50, 0x0000},
+ {"S39", 0x70D0, 0x0000},
+ {"S40", 0x7250, 0x0000},
+ {"S41", 0x73D0, 0x0000}};
+
+
+// *** 11. Japan - Digital - Air
+XC_CHANNEL Japan_Digital_Air[] = {
+ {"1", 0x16D0, 0x0000},
+ {"2", 0x1850, 0x0000},
+ {"3", 0x19D0, 0x0000},
+ {"4", 0x2AD0, 0x0000},
+ {"5", 0x2C50, 0x0000},
+ {"6", 0x2DD0, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3050, 0x0000},
+ {"9", 0x31D0, 0x0000},
+ {"10", 0x3350, 0x0000},
+ {"11", 0x34D0, 0x0000},
+ {"12", 0x3650, 0x0000},
+ {"13", 0x75D0, 0x0000},
+ {"14", 0x7750, 0x0000},
+ {"15", 0x78D0, 0x0000},
+ {"16", 0x7A50, 0x0000},
+ {"17", 0x7BD0, 0x0000},
+ {"18", 0x7D50, 0x0000},
+ {"19", 0x7ED0, 0x0000},
+ {"20", 0x8050, 0x0000},
+ {"21", 0x81D0, 0x0000},
+ {"22", 0x8350, 0x0000},
+ {"23", 0x84D0, 0x0000},
+ {"24", 0x8650, 0x0000},
+ {"25", 0x87D0, 0x0000},
+ {"26", 0x8950, 0x0000},
+ {"27", 0x8AD0, 0x0000},
+ {"28", 0x8C50, 0x0000},
+ {"29", 0x8DD0, 0x0000},
+ {"30", 0x8F50, 0x0000},
+ {"31", 0x90D0, 0x0000},
+ {"32", 0x9250, 0x0000},
+ {"33", 0x93D0, 0x0000},
+ {"34", 0x9550, 0x0000},
+ {"35", 0x96D0, 0x0000},
+ {"36", 0x9850, 0x0000},
+ {"37", 0x99D0, 0x0000},
+ {"38", 0x9B50, 0x0000},
+ {"39", 0x9CD0, 0x0000},
+ {"40", 0x9E50, 0x0000},
+ {"41", 0x9FD0, 0x0000},
+ {"42", 0xA150, 0x0000},
+ {"43", 0xA2D0, 0x0000},
+ {"44", 0xA450, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA750, 0x0000},
+ {"47", 0xA8D0, 0x0000},
+ {"48", 0xAA50, 0x0000},
+ {"49", 0xABD0, 0x0000},
+ {"50", 0xAD50, 0x0000},
+ {"51", 0xAED0, 0x0000},
+ {"52", 0xB050, 0x0000},
+ {"53", 0xB1D0, 0x0000},
+ {"54", 0xB350, 0x0000},
+ {"55", 0xB4D0, 0x0000},
+ {"56", 0xB650, 0x0000},
+ {"57", 0xB7D0, 0x0000},
+ {"58", 0xB950, 0x0000},
+ {"59", 0xBAD0, 0x0000},
+ {"60", 0xBC50, 0x0000},
+ {"61", 0xBDD0, 0x0000},
+ {"62", 0xBF50, 0x0000}};
+
+
+// *** 12. Japan - Digital - Cable
+XC_CHANNEL Japan_Digital_Cable[] = {
+ {"1", 0x16D0, 0x0000},
+ {"2", 0x1850, 0x0000},
+ {"3", 0x19D0, 0x0000},
+ {"M1", 0x1B50, 0x0000},
+ {"M2", 0x1CD0, 0x0000},
+ {"M3", 0x1E50, 0x0000},
+ {"M4", 0x1FD0, 0x0000},
+ {"M5", 0x2150, 0x0000},
+ {"M6", 0x22D0, 0x0000},
+ {"M7", 0x2450, 0x0000},
+ {"M8", 0x25D0, 0x0000},
+ {"M9", 0x2750, 0x0000},
+ {"M10", 0x2950, 0x0000},
+ {"4", 0x2AD0, 0x0000},
+ {"5", 0x2C50, 0x0000},
+ {"6", 0x2DD0, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3050, 0x0000},
+ {"9", 0x31D0, 0x0000},
+ {"10", 0x3350, 0x0000},
+ {"11", 0x34D0, 0x0000},
+ {"S1", 0x37D0, 0x0000},
+ {"S2", 0x39D0, 0x0000},
+ {"S3", 0x3B50, 0x0000},
+ {"S4", 0x3CD0, 0x0000},
+ {"S5", 0x3E50, 0x0000},
+ {"S6", 0x3F50, 0x0000},
+ {"S7", 0x40D0, 0x0000},
+ {"S8", 0x4250, 0x0000},
+ {"S9", 0x43D0, 0x0000},
+ {"S10", 0x4550, 0x0000},
+ {"S11", 0x46D0, 0x0000},
+ {"S12", 0x4850, 0x0000},
+ {"S13", 0x49D0, 0x0000},
+ {"S14", 0x4B50, 0x0000},
+ {"S15", 0x4CD0, 0x0000},
+ {"S16", 0x4E50, 0x0000},
+ {"S17", 0x4FD0, 0x0000},
+ {"S18", 0x5150, 0x0000},
+ {"S19", 0x52D0, 0x0000},
+ {"S20", 0x5450, 0x0000},
+ {"S21", 0x55D0, 0x0000},
+ {"S22", 0x5750, 0x0000},
+ {"S23", 0x58D0, 0x0000},
+ {"S24", 0x5A50, 0x0000},
+ {"S25", 0x5BD0, 0x0000},
+ {"S26", 0x5D50, 0x0000},
+ {"S27", 0x5ED0, 0x0000},
+ {"S28", 0x6050, 0x0000},
+ {"S29", 0x61D0, 0x0000},
+ {"S30", 0x6350, 0x0000},
+ {"S31", 0x64D0, 0x0000},
+ {"S32", 0x6650, 0x0000},
+ {"S33", 0x67D0, 0x0000},
+ {"S34", 0x6950, 0x0000},
+ {"S35", 0x6AD0, 0x0000},
+ {"S36", 0x6C50, 0x0000},
+ {"S37", 0x6DD0, 0x0000},
+ {"S38", 0x6F50, 0x0000},
+ {"S39", 0x70D0, 0x0000},
+ {"S40", 0x7250, 0x0000},
+ {"S41", 0x73D0, 0x0000}};
+
+
+// *** 13. CCIR - Analog - Air
+XC_CHANNEL CCIR_Analog_Air[] = {
+ {"2", 0x0C10, 0x0000},
+ {"3", 0x0DD0, 0x0000},
+ {"4", 0x0F90, 0x0000},
+ {"5", 0x2BD0, 0x0000},
+ {"6", 0x2D90, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3110, 0x0000},
+ {"9", 0x32D0, 0x0000},
+ {"10", 0x3490, 0x0000},
+ {"11", 0x3650, 0x0000},
+ {"12", 0x3810, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 14. CCIR - Analog - Cable
+XC_CHANNEL CCIR_Analog_Cable[] = {
+ {"E2", 0x0C10, 0x0000},
+ {"E3", 0x0DD0, 0x0000},
+ {"E4", 0x0F90, 0x0000},
+ {"X", 0x1150, 0x0000},
+ {"Y", 0x1310, 0x0000},
+ {"Z", 0x14D0, 0x0000},
+ {"Z", 0x1690, 0x0000},
+ {"Z", 0x1850, 0x0000},
+ {"S1", 0x1A50, 0x0000},
+ {"S2", 0x1C10, 0x0000},
+ {"S3", 0x1DD0, 0x0000},
+ {"S4", 0x1F90, 0x0000},
+ {"S5", 0x2150, 0x0000},
+ {"S6", 0x2310, 0x0000},
+ {"S7", 0x24D0, 0x0000},
+ {"S8", 0x2690, 0x0000},
+ {"S9", 0x2850, 0x0000},
+ {"S10", 0x2A10, 0x0000},
+ {"E5", 0x2BD0, 0x0000},
+ {"E6", 0x2D90, 0x0000},
+ {"E7", 0x2F50, 0x0000},
+ {"E8", 0x3110, 0x0000},
+ {"E9", 0x32D0, 0x0000},
+ {"E10", 0x3490, 0x0000},
+ {"E11", 0x3650, 0x0000},
+ {"E12", 0x3810, 0x0000},
+ {"S11", 0x39D0, 0x0000},
+ {"S12", 0x3B90, 0x0000},
+ {"S13", 0x3D50, 0x0000},
+ {"S14", 0x3F10, 0x0000},
+ {"S15", 0x40D0, 0x0000},
+ {"S16", 0x4290, 0x0000},
+ {"S17", 0x4450, 0x0000},
+ {"S18", 0x4610, 0x0000},
+ {"S19", 0x47D0, 0x0000},
+ {"S20", 0x4990, 0x0000},
+ {"S21", 0x4BD0, 0x0000},
+ {"S22", 0x4DD0, 0x0000},
+ {"S23", 0x4FD0, 0x0000},
+ {"S24", 0x51D0, 0x0000},
+ {"S25", 0x53D0, 0x0000},
+ {"S26", 0x55D0, 0x0000},
+ {"S27", 0x57D0, 0x0000},
+ {"S28", 0x59D0, 0x0000},
+ {"S29", 0x5BD0, 0x0000},
+ {"S30", 0x5DD0, 0x0000},
+ {"S31", 0x5FD0, 0x0000},
+ {"S32", 0x61D0, 0x0000},
+ {"S33", 0x63D0, 0x0000},
+ {"S34", 0x65D0, 0x0000},
+ {"S35", 0x67D0, 0x0000},
+ {"S36", 0x69D0, 0x0000},
+ {"S37", 0x6BD0, 0x0000},
+ {"S38", 0x6DD0, 0x0000},
+ {"S39", 0x6FD0, 0x0000},
+ {"S40", 0x71D0, 0x0000},
+ {"S41", 0x73D0, 0x0000}};
+
+
+// *** 15. CCIR - Digital - Air
+XC_CHANNEL CCIR_Digital_Air[] = {
+ {"2", 0x0C10, 0x0000},
+ {"3", 0x0DD0, 0x0000},
+ {"4", 0x0F90, 0x0000},
+ {"5", 0x2BD0, 0x0000},
+ {"6", 0x2D90, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3110, 0x0000},
+ {"9", 0x32D0, 0x0000},
+ {"10", 0x3490, 0x0000},
+ {"11", 0x3650, 0x0000},
+ {"12", 0x3810, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 16. CCIR - Digital - Cable
+XC_CHANNEL CCIR_Digital_Cable[] = {
+ {"E2", 0x0C10, 0x0000},
+ {"E3", 0x0DD0, 0x0000},
+ {"E4", 0x0F90, 0x0000},
+ {"X", 0x1150, 0x0000},
+ {"Y", 0x1310, 0x0000},
+ {"Z", 0x14D0, 0x0000},
+ {"Z", 0x1690, 0x0000},
+ {"Z", 0x1850, 0x0000},
+ {"S1", 0x1A50, 0x0000},
+ {"S2", 0x1C10, 0x0000},
+ {"S3", 0x1DD0, 0x0000},
+ {"S4", 0x1F90, 0x0000},
+ {"S5", 0x2150, 0x0000},
+ {"S6", 0x2310, 0x0000},
+ {"S7", 0x24D0, 0x0000},
+ {"S8", 0x2690, 0x0000},
+ {"S9", 0x2850, 0x0000},
+ {"S10", 0x2A10, 0x0000},
+ {"E5", 0x2BD0, 0x0000},
+ {"E6", 0x2D90, 0x0000},
+ {"E7", 0x2F50, 0x0000},
+ {"E8", 0x3110, 0x0000},
+ {"E9", 0x32D0, 0x0000},
+ {"E10", 0x3490, 0x0000},
+ {"E11", 0x3650, 0x0000},
+ {"E12", 0x3810, 0x0000},
+ {"S11", 0x39D0, 0x0000},
+ {"S12", 0x3B90, 0x0000},
+ {"S13", 0x3D50, 0x0000},
+ {"S14", 0x3F10, 0x0000},
+ {"S15", 0x40D0, 0x0000},
+ {"S16", 0x4290, 0x0000},
+ {"S17", 0x4450, 0x0000},
+ {"S18", 0x4610, 0x0000},
+ {"S19", 0x47D0, 0x0000},
+ {"S20", 0x4990, 0x0000},
+ {"S21", 0x4BD0, 0x0000},
+ {"S22", 0x4DD0, 0x0000},
+ {"S23", 0x4FD0, 0x0000},
+ {"S24", 0x51D0, 0x0000},
+ {"S25", 0x53D0, 0x0000},
+ {"S26", 0x55D0, 0x0000},
+ {"S27", 0x57D0, 0x0000},
+ {"S28", 0x59D0, 0x0000},
+ {"S29", 0x5BD0, 0x0000},
+ {"S30", 0x5DD0, 0x0000},
+ {"S31", 0x5FD0, 0x0000},
+ {"S32", 0x61D0, 0x0000},
+ {"S33", 0x63D0, 0x0000},
+ {"S34", 0x65D0, 0x0000},
+ {"S35", 0x67D0, 0x0000},
+ {"S36", 0x69D0, 0x0000},
+ {"S37", 0x6BD0, 0x0000},
+ {"S38", 0x6DD0, 0x0000},
+ {"S39", 0x6FD0, 0x0000},
+ {"S40", 0x71D0, 0x0000},
+ {"S41", 0x73D0, 0x0000}};
+
+
+// *** 17. India - Analog - Air
+XC_CHANNEL India_Analog_Air[] = {
+ {"2", 0x0C10, 0x0000},
+ {"3", 0x0DD0, 0x0000},
+ {"4", 0x0F90, 0x0000},
+ {"X", 0x1150, 0x0000},
+ {"Y", 0x1310, 0x0000},
+ {"Z", 0x14D0, 0x0000},
+ {"Z", 0x1690, 0x0000},
+ {"Z", 0x1850, 0x0000},
+ {"S1", 0x1A50, 0x0000},
+ {"S2", 0x1C10, 0x0000},
+ {"S3", 0x1DD0, 0x0000},
+ {"S4", 0x1F90, 0x0000},
+ {"S5", 0x2150, 0x0000},
+ {"S6", 0x2310, 0x0000},
+ {"S7", 0x24D0, 0x0000},
+ {"S8", 0x2690, 0x0000},
+ {"S9", 0x2850, 0x0000},
+ {"S10", 0x2A10, 0x0000},
+ {"5", 0x2BD0, 0x0000},
+ {"6", 0x2D90, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3110, 0x0000},
+ {"9", 0x32D0, 0x0000},
+ {"10", 0x3490, 0x0000},
+ {"11", 0x3650, 0x0000},
+ {"12", 0x3810, 0x0000},
+ {"S11", 0x39D0, 0x0000},
+ {"S12", 0x3B90, 0x0000},
+ {"S13", 0x3D50, 0x0000},
+ {"S14", 0x3F10, 0x0000},
+ {"S15", 0x40D0, 0x0000},
+ {"S16", 0x4290, 0x0000},
+ {"S17", 0x4450, 0x0000},
+ {"S18", 0x4610, 0x0000},
+ {"S19", 0x47D0, 0x0000},
+ {"S20", 0x4990, 0x0000},
+ {"S21", 0x4BD0, 0x0000},
+ {"S22", 0x4DD0, 0x0000},
+ {"S23", 0x4FD0, 0x0000},
+ {"S24", 0x51D0, 0x0000},
+ {"S25", 0x53D0, 0x0000},
+ {"S26", 0x55D0, 0x0000},
+ {"S27", 0x57D0, 0x0000},
+ {"S28", 0x59D0, 0x0000},
+ {"S29", 0x5BD0, 0x0000},
+ {"S30", 0x5DD0, 0x0000},
+ {"S31", 0x5FD0, 0x0000},
+ {"S32", 0x61D0, 0x0000},
+ {"S33", 0x63D0, 0x0000},
+ {"S34", 0x65D0, 0x0000},
+ {"S35", 0x67D0, 0x0000},
+ {"S36", 0x69D0, 0x0000},
+ {"S37", 0x6BD0, 0x0000},
+ {"S38", 0x6DD0, 0x0000},
+ {"S39", 0x6FD0, 0x0000},
+ {"S40", 0x71D0, 0x0000},
+ {"S41", 0x73D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 18. India - Analog - Cable
+XC_CHANNEL India_Analog_Cable[] = {
+ {"2", 0x0C10, 0x0000},
+ {"3", 0x0DD0, 0x0000},
+ {"4", 0x0F90, 0x0000},
+ {"X", 0x1150, 0x0000},
+ {"Y", 0x1310, 0x0000},
+ {"Z", 0x14D0, 0x0000},
+ {"Z", 0x1690, 0x0000},
+ {"Z", 0x1850, 0x0000},
+ {"S1", 0x1A50, 0x0000},
+ {"S2", 0x1C10, 0x0000},
+ {"S3", 0x1DD0, 0x0000},
+ {"S4", 0x1F90, 0x0000},
+ {"S5", 0x2150, 0x0000},
+ {"S6", 0x2310, 0x0000},
+ {"S7", 0x24D0, 0x0000},
+ {"S8", 0x2690, 0x0000},
+ {"S9", 0x2850, 0x0000},
+ {"S10", 0x2A10, 0x0000},
+ {"5", 0x2BD0, 0x0000},
+ {"6", 0x2D90, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3110, 0x0000},
+ {"9", 0x32D0, 0x0000},
+ {"10", 0x3490, 0x0000},
+ {"11", 0x3650, 0x0000},
+ {"12", 0x3810, 0x0000},
+ {"S11", 0x39D0, 0x0000},
+ {"S12", 0x3B90, 0x0000},
+ {"S13", 0x3D50, 0x0000},
+ {"S14", 0x3F10, 0x0000},
+ {"S15", 0x40D0, 0x0000},
+ {"S16", 0x4290, 0x0000},
+ {"S17", 0x4450, 0x0000},
+ {"S18", 0x4610, 0x0000},
+ {"S19", 0x47D0, 0x0000},
+ {"S20", 0x4990, 0x0000},
+ {"S21", 0x4BD0, 0x0000},
+ {"S22", 0x4DD0, 0x0000},
+ {"S23", 0x4FD0, 0x0000},
+ {"S24", 0x51D0, 0x0000},
+ {"S25", 0x53D0, 0x0000},
+ {"S26", 0x55D0, 0x0000},
+ {"S27", 0x57D0, 0x0000},
+ {"S28", 0x59D0, 0x0000},
+ {"S29", 0x5BD0, 0x0000},
+ {"S30", 0x5DD0, 0x0000},
+ {"S31", 0x5FD0, 0x0000},
+ {"S32", 0x61D0, 0x0000},
+ {"S33", 0x63D0, 0x0000},
+ {"S34", 0x65D0, 0x0000},
+ {"S35", 0x67D0, 0x0000},
+ {"S36", 0x69D0, 0x0000},
+ {"S37", 0x6BD0, 0x0000},
+ {"S38", 0x6DD0, 0x0000},
+ {"S39", 0x6FD0, 0x0000},
+ {"S40", 0x71D0, 0x0000},
+ {"S41", 0x73D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 19. India - Digital - Air
+XC_CHANNEL India_Digital_Air[] = {
+ {"2", 0x0C10, 0x0000},
+ {"3", 0x0DD0, 0x0000},
+ {"4", 0x0F90, 0x0000},
+ {"X", 0x1150, 0x0000},
+ {"Y", 0x1310, 0x0000},
+ {"Z", 0x14D0, 0x0000},
+ {"Z", 0x1690, 0x0000},
+ {"Z", 0x1850, 0x0000},
+ {"S1", 0x1A50, 0x0000},
+ {"S2", 0x1C10, 0x0000},
+ {"S3", 0x1DD0, 0x0000},
+ {"S4", 0x1F90, 0x0000},
+ {"S5", 0x2150, 0x0000},
+ {"S6", 0x2310, 0x0000},
+ {"S7", 0x24D0, 0x0000},
+ {"S8", 0x2690, 0x0000},
+ {"S9", 0x2850, 0x0000},
+ {"S10", 0x2A10, 0x0000},
+ {"5", 0x2BD0, 0x0000},
+ {"6", 0x2D90, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3110, 0x0000},
+ {"9", 0x32D0, 0x0000},
+ {"10", 0x3490, 0x0000},
+ {"11", 0x3650, 0x0000},
+ {"12", 0x3810, 0x0000},
+ {"S11", 0x39D0, 0x0000},
+ {"S12", 0x3B90, 0x0000},
+ {"S13", 0x3D50, 0x0000},
+ {"S14", 0x3F10, 0x0000},
+ {"S15", 0x40D0, 0x0000},
+ {"S16", 0x4290, 0x0000},
+ {"S17", 0x4450, 0x0000},
+ {"S18", 0x4610, 0x0000},
+ {"S19", 0x47D0, 0x0000},
+ {"S20", 0x4990, 0x0000},
+ {"S21", 0x4BD0, 0x0000},
+ {"S22", 0x4DD0, 0x0000},
+ {"S23", 0x4FD0, 0x0000},
+ {"S24", 0x51D0, 0x0000},
+ {"S25", 0x53D0, 0x0000},
+ {"S26", 0x55D0, 0x0000},
+ {"S27", 0x57D0, 0x0000},
+ {"S28", 0x59D0, 0x0000},
+ {"S29", 0x5BD0, 0x0000},
+ {"S30", 0x5DD0, 0x0000},
+ {"S31", 0x5FD0, 0x0000},
+ {"S32", 0x61D0, 0x0000},
+ {"S33", 0x63D0, 0x0000},
+ {"S34", 0x65D0, 0x0000},
+ {"S35", 0x67D0, 0x0000},
+ {"S36", 0x69D0, 0x0000},
+ {"S37", 0x6BD0, 0x0000},
+ {"S38", 0x6DD0, 0x0000},
+ {"S39", 0x6FD0, 0x0000},
+ {"S40", 0x71D0, 0x0000},
+ {"S41", 0x73D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 20. India - Digital - Cable
+XC_CHANNEL India_Digital_Cable[] = {
+ {"2", 0x0C10, 0x0000},
+ {"3", 0x0DD0, 0x0000},
+ {"4", 0x0F90, 0x0000},
+ {"X", 0x1150, 0x0000},
+ {"Y", 0x1310, 0x0000},
+ {"Z", 0x14D0, 0x0000},
+ {"Z", 0x1690, 0x0000},
+ {"Z", 0x1850, 0x0000},
+ {"S1", 0x1A50, 0x0000},
+ {"S2", 0x1C10, 0x0000},
+ {"S3", 0x1DD0, 0x0000},
+ {"S4", 0x1F90, 0x0000},
+ {"S5", 0x2150, 0x0000},
+ {"S6", 0x2310, 0x0000},
+ {"S7", 0x24D0, 0x0000},
+ {"S8", 0x2690, 0x0000},
+ {"S9", 0x2850, 0x0000},
+ {"S10", 0x2A10, 0x0000},
+ {"5", 0x2BD0, 0x0000},
+ {"6", 0x2D90, 0x0000},
+ {"7", 0x2F50, 0x0000},
+ {"8", 0x3110, 0x0000},
+ {"9", 0x32D0, 0x0000},
+ {"10", 0x3490, 0x0000},
+ {"11", 0x3650, 0x0000},
+ {"12", 0x3810, 0x0000},
+ {"S11", 0x39D0, 0x0000},
+ {"S12", 0x3B90, 0x0000},
+ {"S13", 0x3D50, 0x0000},
+ {"S14", 0x3F10, 0x0000},
+ {"S15", 0x40D0, 0x0000},
+ {"S16", 0x4290, 0x0000},
+ {"S17", 0x4450, 0x0000},
+ {"S18", 0x4610, 0x0000},
+ {"S19", 0x47D0, 0x0000},
+ {"S20", 0x4990, 0x0000},
+ {"S21", 0x4BD0, 0x0000},
+ {"S22", 0x4DD0, 0x0000},
+ {"S23", 0x4FD0, 0x0000},
+ {"S24", 0x51D0, 0x0000},
+ {"S25", 0x53D0, 0x0000},
+ {"S26", 0x55D0, 0x0000},
+ {"S27", 0x57D0, 0x0000},
+ {"S28", 0x59D0, 0x0000},
+ {"S29", 0x5BD0, 0x0000},
+ {"S30", 0x5DD0, 0x0000},
+ {"S31", 0x5FD0, 0x0000},
+ {"S32", 0x61D0, 0x0000},
+ {"S33", 0x63D0, 0x0000},
+ {"S34", 0x65D0, 0x0000},
+ {"S35", 0x67D0, 0x0000},
+ {"S36", 0x69D0, 0x0000},
+ {"S37", 0x6BD0, 0x0000},
+ {"S38", 0x6DD0, 0x0000},
+ {"S39", 0x6FD0, 0x0000},
+ {"S40", 0x71D0, 0x0000},
+ {"S41", 0x73D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 21. France - Analog - Air
+XC_CHANNEL France_Analog_Air[] = {
+ {"A1", 0x0BF0, 0x0000},
+ {"B", 0x0DF0, 0x0000},
+ {"C1", 0x0F20, 0x0000},
+ {"C", 0x0FF0, 0x0000},
+ {"1", 0x2C00, 0x0000},
+ {"2", 0x2E00, 0x0000},
+ {"3", 0x3000, 0x0000},
+ {"4", 0x3200, 0x0000},
+ {"5", 0x3400, 0x0000},
+ {"6", 0x3600, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 22. France - Analog - Cable
+XC_CHANNEL France_Analog_Cable[] = {
+ {"A1", 0x0BF0, 0x0000},
+ {"B", 0x0DF0, 0x0000},
+ {"C1", 0x0F20, 0x0000},
+ {"C", 0x0FF0, 0x0000},
+ {"1", 0x2C00, 0x0000},
+ {"2", 0x2E00, 0x0000},
+ {"3", 0x3000, 0x0000},
+ {"4", 0x3200, 0x0000},
+ {"5", 0x3400, 0x0000},
+ {"6", 0x3600, 0x0000},
+ {"SC", 0x1E00, 0x0000},
+ {"SC", 0x2000, 0x0000},
+ {"SC", 0x2200, 0x0000},
+ {"SC", 0x2400, 0x0000},
+ {"SC", 0x2600, 0x0000},
+ {"SC", 0x2800, 0x0000},
+ {"SC", 0x2A00, 0x0000},
+ {"SC", 0x3800, 0x0000},
+ {"SC", 0x3A00, 0x0000},
+ {"SC", 0x3C00, 0x0000},
+ {"SC", 0x3E00, 0x0000},
+ {"SC", 0x4000, 0x0000},
+ {"SC", 0x4200, 0x0000},
+ {"SC", 0x4400, 0x0000},
+ {"SC", 0x4600, 0x0000},
+ {"SC", 0x4800, 0x0000},
+ {"SC", 0x4BD0, 0x0000},
+ {"SC", 0x4ED0, 0x0000},
+ {"SC", 0x51D0, 0x0000},
+ {"SC", 0x54D0, 0x0000},
+ {"SC", 0x57D0, 0x0000},
+ {"SC", 0x5AD0, 0x0000},
+ {"SC", 0x5DD0, 0x0000},
+ {"SC", 0x60D0, 0x0000},
+ {"SC", 0x63D0, 0x0000},
+ {"SC", 0x66D0, 0x0000},
+ {"SC", 0x69D0, 0x0000},
+ {"SC", 0x6CD0, 0x0000},
+ {"SC", 0x6FD0, 0x0000},
+ {"SC", 0x72D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 23. France - Digital - Air
+XC_CHANNEL France_Digital_Air[] = {
+ {"A1", 0x0BF0, 0x0000},
+ {"B", 0x0DF0, 0x0000},
+ {"C1", 0x0F20, 0x0000},
+ {"C", 0x0FF0, 0x0000},
+ {"1", 0x2C00, 0x0000},
+ {"2", 0x2E00, 0x0000},
+ {"3", 0x3000, 0x0000},
+ {"4", 0x3200, 0x0000},
+ {"5", 0x3400, 0x0000},
+ {"6", 0x3600, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 24. France - Digital - Cable
+XC_CHANNEL France_Digital_Cable[] = {
+ {"A1", 0x0BF0, 0x0000},
+ {"B", 0x0DF0, 0x0000},
+ {"C1", 0x0F20, 0x0000},
+ {"C", 0x0FF0, 0x0000},
+ {"1", 0x2C00, 0x0000},
+ {"2", 0x2E00, 0x0000},
+ {"3", 0x3000, 0x0000},
+ {"4", 0x3200, 0x0000},
+ {"5", 0x3400, 0x0000},
+ {"6", 0x3600, 0x0000},
+ {"SC", 0x1E00, 0x0000},
+ {"SC", 0x2000, 0x0000},
+ {"SC", 0x2200, 0x0000},
+ {"SC", 0x2400, 0x0000},
+ {"SC", 0x2600, 0x0000},
+ {"SC", 0x2800, 0x0000},
+ {"SC", 0x2A00, 0x0000},
+ {"SC", 0x3800, 0x0000},
+ {"SC", 0x3A00, 0x0000},
+ {"SC", 0x3C00, 0x0000},
+ {"SC", 0x3E00, 0x0000},
+ {"SC", 0x4000, 0x0000},
+ {"SC", 0x4200, 0x0000},
+ {"SC", 0x4400, 0x0000},
+ {"SC", 0x4600, 0x0000},
+ {"SC", 0x4800, 0x0000},
+ {"SC", 0x4BD0, 0x0000},
+ {"SC", 0x4ED0, 0x0000},
+ {"SC", 0x51D0, 0x0000},
+ {"SC", 0x54D0, 0x0000},
+ {"SC", 0x57D0, 0x0000},
+ {"SC", 0x5AD0, 0x0000},
+ {"SC", 0x5DD0, 0x0000},
+ {"SC", 0x60D0, 0x0000},
+ {"SC", 0x63D0, 0x0000},
+ {"SC", 0x66D0, 0x0000},
+ {"SC", 0x69D0, 0x0000},
+ {"SC", 0x6CD0, 0x0000},
+ {"SC", 0x6FD0, 0x0000},
+ {"SC", 0x72D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 25. UK - Analog - Air
+XC_CHANNEL UK_Analog_Air[] = {
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 26. UK - Analog - Cable
+XC_CHANNEL UK_Analog_Cable[] = {
+ {"1", 0x0E00, 0x0000},
+ {"2", 0x1000, 0x0000},
+ {"3", 0x1E00, 0x0000},
+ {"4", 0x2000, 0x0000},
+ {"5", 0x2200, 0x0000},
+ {"6", 0x2400, 0x0000},
+ {"7", 0x2600, 0x0000},
+ {"8", 0x2800, 0x0000},
+ {"9", 0x2A00, 0x0000},
+ {"10", 0x2C00, 0x0000},
+ {"11", 0x2E00, 0x0000},
+ {"12", 0x3000, 0x0000},
+ {"13", 0x3200, 0x0000},
+ {"14", 0x3400, 0x0000},
+ {"15", 0x3600, 0x0000},
+ {"16", 0x3800, 0x0000},
+ {"17", 0x3A00, 0x0000},
+ {"18", 0x3C00, 0x0000},
+ {"19", 0x3E00, 0x0000},
+ {"20", 0x4000, 0x0000},
+ {"21", 0x4200, 0x0000},
+ {"22", 0x4400, 0x0000},
+ {"23", 0x4600, 0x0000},
+ {"24", 0x4800, 0x0000},
+ {"25", 0x4A00, 0x0000},
+ {"26", 0x4C00, 0x0000},
+ {"27", 0x4E00, 0x0000},
+ {"28", 0x5000, 0x0000},
+ {"29", 0x5200, 0x0000},
+ {"30", 0x5400, 0x0000},
+ {"31", 0x5600, 0x0000},
+ {"32", 0x5800, 0x0000},
+ {"33", 0x5A00, 0x0000},
+ {"34", 0x5C00, 0x0000},
+ {"35", 0x5E00, 0x0000},
+ {"36", 0x6000, 0x0000},
+ {"37", 0x6200, 0x0000},
+ {"38", 0x6400, 0x0000},
+ {"39", 0x6600, 0x0000},
+ {"40", 0x6800, 0x0000},
+ {"41", 0x6A00, 0x0000},
+ {"42", 0x6C00, 0x0000},
+ {"43", 0x6E00, 0x0000},
+ {"44", 0x7000, 0x0000},
+ {"45", 0x7200, 0x0000},
+ {"46", 0x7400, 0x0000},
+ {"47", 0x7600, 0x0000},
+ {"48", 0x7800, 0x0000},
+ {"49", 0x7A00, 0x0000},
+ {"50", 0x7C00, 0x0000},
+ {"51", 0x7E00, 0x0000},
+ {"52", 0x8000, 0x0000},
+ {"53", 0x8200, 0x0000},
+ {"54", 0x8400, 0x0000},
+ {"55", 0x8600, 0x0000},
+ {"56", 0x8800, 0x0000},
+ {"57", 0x8A00, 0x0000},
+ {"58", 0x8C00, 0x0000},
+ {"59", 0x8E00, 0x0000},
+ {"60", 0x9000, 0x0000},
+ {"61", 0x9200, 0x0000},
+ {"62", 0x9400, 0x0000},
+ {"63", 0x9600, 0x0000},
+ {"64", 0x9800, 0x0000},
+ {"65", 0x9A00, 0x0000},
+ {"66", 0x9C00, 0x0000},
+ {"67", 0x9E00, 0x0000},
+ {"68", 0xA000, 0x0000},
+ {"69", 0xA200, 0x0000},
+ {"70", 0xA400, 0x0000},
+ {"71", 0xA600, 0x0000},
+ {"72", 0xA800, 0x0000},
+ {"73", 0xAA00, 0x0000},
+ {"74", 0xAC00, 0x0000},
+ {"75", 0xAE00, 0x0000},
+ {"76", 0xB000, 0x0000},
+ {"77", 0xB200, 0x0000},
+ {"78", 0xB400, 0x0000},
+ {"79", 0xB600, 0x0000},
+ {"80", 0xB800, 0x0000},
+ {"81", 0xBA00, 0x0000}};
+
+
+// *** 27. UK - Digital - Air
+XC_CHANNEL UK_Digital_Air[] = {
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 28. UK - Digital - Cable
+XC_CHANNEL UK_Digital_Cable[] = {
+ {"1", 0x0E00, 0x0000},
+ {"2", 0x1000, 0x0000},
+ {"3", 0x1E00, 0x0000},
+ {"4", 0x2000, 0x0000},
+ {"5", 0x2200, 0x0000},
+ {"6", 0x2400, 0x0000},
+ {"7", 0x2600, 0x0000},
+ {"8", 0x2800, 0x0000},
+ {"9", 0x2A00, 0x0000},
+ {"10", 0x2C00, 0x0000},
+ {"11", 0x2E00, 0x0000},
+ {"12", 0x3000, 0x0000},
+ {"13", 0x3200, 0x0000},
+ {"14", 0x3400, 0x0000},
+ {"15", 0x3600, 0x0000},
+ {"16", 0x3800, 0x0000},
+ {"17", 0x3A00, 0x0000},
+ {"18", 0x3C00, 0x0000},
+ {"19", 0x3E00, 0x0000},
+ {"20", 0x4000, 0x0000},
+ {"21", 0x4200, 0x0000},
+ {"22", 0x4400, 0x0000},
+ {"23", 0x4600, 0x0000},
+ {"24", 0x4800, 0x0000},
+ {"25", 0x4A00, 0x0000},
+ {"26", 0x4C00, 0x0000},
+ {"27", 0x4E00, 0x0000},
+ {"28", 0x5000, 0x0000},
+ {"29", 0x5200, 0x0000},
+ {"30", 0x5400, 0x0000},
+ {"31", 0x5600, 0x0000},
+ {"32", 0x5800, 0x0000},
+ {"33", 0x5A00, 0x0000},
+ {"34", 0x5C00, 0x0000},
+ {"35", 0x5E00, 0x0000},
+ {"36", 0x6000, 0x0000},
+ {"37", 0x6200, 0x0000},
+ {"38", 0x6400, 0x0000},
+ {"39", 0x6600, 0x0000},
+ {"40", 0x6800, 0x0000},
+ {"41", 0x6A00, 0x0000},
+ {"42", 0x6C00, 0x0000},
+ {"43", 0x6E00, 0x0000},
+ {"44", 0x7000, 0x0000},
+ {"45", 0x7200, 0x0000},
+ {"46", 0x7400, 0x0000},
+ {"47", 0x7600, 0x0000},
+ {"48", 0x7800, 0x0000},
+ {"49", 0x7A00, 0x0000},
+ {"50", 0x7C00, 0x0000},
+ {"51", 0x7E00, 0x0000},
+ {"52", 0x8000, 0x0000},
+ {"53", 0x8200, 0x0000},
+ {"54", 0x8400, 0x0000},
+ {"55", 0x8600, 0x0000},
+ {"56", 0x8800, 0x0000},
+ {"57", 0x8A00, 0x0000},
+ {"58", 0x8C00, 0x0000},
+ {"59", 0x8E00, 0x0000},
+ {"60", 0x9000, 0x0000},
+ {"61", 0x9200, 0x0000},
+ {"62", 0x9400, 0x0000},
+ {"63", 0x9600, 0x0000},
+ {"64", 0x9800, 0x0000},
+ {"65", 0x9A00, 0x0000},
+ {"66", 0x9C00, 0x0000},
+ {"67", 0x9E00, 0x0000},
+ {"68", 0xA000, 0x0000},
+ {"69", 0xA200, 0x0000},
+ {"70", 0xA400, 0x0000},
+ {"71", 0xA600, 0x0000},
+ {"72", 0xA800, 0x0000},
+ {"73", 0xAA00, 0x0000},
+ {"74", 0xAC00, 0x0000},
+ {"75", 0xAE00, 0x0000},
+ {"76", 0xB000, 0x0000},
+ {"77", 0xB200, 0x0000},
+ {"78", 0xB400, 0x0000},
+ {"79", 0xB600, 0x0000},
+ {"80", 0xB800, 0x0000},
+ {"81", 0xBA00, 0x0000}};
+
+
+// *** 29. Ireland - Analog - Air
+XC_CHANNEL Ireland_Analog_Air[] = {
+ {"A", 0x0B70, 0x0000},
+ {"B", 0x0D70, 0x0000},
+ {"C", 0x0F70, 0x0000},
+ {"D", 0x2BD0, 0x0000},
+ {"E", 0x2DD0, 0x0000},
+ {"F", 0x2FD0, 0x0000},
+ {"G", 0x31D0, 0x0000},
+ {"H", 0x33D0, 0x0000},
+ {"J", 0x35D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 30. Ireland - Analog - Cable
+XC_CHANNEL Ireland_Analog_Cable[] = {
+ {"1", 0x0E00, 0x0000},
+ {"2", 0x1000, 0x0000},
+ {"3", 0x1E00, 0x0000},
+ {"4", 0x2000, 0x0000},
+ {"5", 0x2200, 0x0000},
+ {"6", 0x2400, 0x0000},
+ {"7", 0x2600, 0x0000},
+ {"8", 0x2800, 0x0000},
+ {"9", 0x2A00, 0x0000},
+ {"10", 0x2C00, 0x0000},
+ {"11", 0x2E00, 0x0000},
+ {"12", 0x3000, 0x0000},
+ {"13", 0x3200, 0x0000},
+ {"14", 0x3400, 0x0000},
+ {"15", 0x3600, 0x0000},
+ {"16", 0x3800, 0x0000},
+ {"17", 0x3A00, 0x0000},
+ {"18", 0x3C00, 0x0000},
+ {"19", 0x3E00, 0x0000},
+ {"20", 0x4000, 0x0000},
+ {"21", 0x4200, 0x0000},
+ {"22", 0x4400, 0x0000},
+ {"23", 0x4600, 0x0000},
+ {"24", 0x4800, 0x0000},
+ {"25", 0x4A00, 0x0000},
+ {"26", 0x4C00, 0x0000},
+ {"27", 0x4E00, 0x0000},
+ {"28", 0x5000, 0x0000},
+ {"29", 0x5200, 0x0000},
+ {"30", 0x5400, 0x0000},
+ {"31", 0x5600, 0x0000},
+ {"32", 0x5800, 0x0000},
+ {"33", 0x5A00, 0x0000},
+ {"34", 0x5C00, 0x0000},
+ {"35", 0x5E00, 0x0000},
+ {"36", 0x6000, 0x0000},
+ {"37", 0x6200, 0x0000},
+ {"38", 0x6400, 0x0000},
+ {"39", 0x6600, 0x0000},
+ {"40", 0x6800, 0x0000},
+ {"41", 0x6A00, 0x0000},
+ {"42", 0x6C00, 0x0000},
+ {"43", 0x6E00, 0x0000},
+ {"44", 0x7000, 0x0000},
+ {"45", 0x7200, 0x0000},
+ {"46", 0x7400, 0x0000},
+ {"47", 0x7600, 0x0000},
+ {"48", 0x7800, 0x0000},
+ {"49", 0x7A00, 0x0000},
+ {"50", 0x7C00, 0x0000},
+ {"51", 0x7E00, 0x0000},
+ {"52", 0x8000, 0x0000},
+ {"53", 0x8200, 0x0000},
+ {"54", 0x8400, 0x0000},
+ {"55", 0x8600, 0x0000},
+ {"56", 0x8800, 0x0000},
+ {"57", 0x8A00, 0x0000},
+ {"58", 0x8C00, 0x0000},
+ {"59", 0x8E00, 0x0000},
+ {"60", 0x9000, 0x0000},
+ {"61", 0x9200, 0x0000},
+ {"62", 0x9400, 0x0000},
+ {"63", 0x9600, 0x0000},
+ {"64", 0x9800, 0x0000},
+ {"65", 0x9A00, 0x0000},
+ {"66", 0x9C00, 0x0000},
+ {"67", 0x9E00, 0x0000},
+ {"68", 0xA000, 0x0000},
+ {"69", 0xA200, 0x0000},
+ {"70", 0xA400, 0x0000},
+ {"71", 0xA600, 0x0000},
+ {"72", 0xA800, 0x0000},
+ {"73", 0xAA00, 0x0000},
+ {"74", 0xAC00, 0x0000},
+ {"75", 0xAE00, 0x0000},
+ {"76", 0xB000, 0x0000},
+ {"77", 0xB200, 0x0000},
+ {"78", 0xB400, 0x0000},
+ {"79", 0xB600, 0x0000},
+ {"80", 0xB800, 0x0000},
+ {"81", 0xBA00, 0x0000}};
+
+
+// *** 31. Ireland - Digital - Air
+XC_CHANNEL Ireland_Digital_Air[] = {
+ {"A", 0x0B70, 0x0000},
+ {"B", 0x0D70, 0x0000},
+ {"C", 0x0F70, 0x0000},
+ {"D", 0x2BD0, 0x0000},
+ {"E", 0x2DD0, 0x0000},
+ {"F", 0x2FD0, 0x0000},
+ {"G", 0x31D0, 0x0000},
+ {"H", 0x33D0, 0x0000},
+ {"J", 0x35D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 32. Ireland - Digital - Cable
+XC_CHANNEL Ireland_Digital_Cable[] = {
+ {"1", 0x0E00, 0x0000},
+ {"2", 0x1000, 0x0000},
+ {"3", 0x1E00, 0x0000},
+ {"4", 0x2000, 0x0000},
+ {"5", 0x2200, 0x0000},
+ {"6", 0x2400, 0x0000},
+ {"7", 0x2600, 0x0000},
+ {"8", 0x2800, 0x0000},
+ {"9", 0x2A00, 0x0000},
+ {"10", 0x2C00, 0x0000},
+ {"11", 0x2E00, 0x0000},
+ {"12", 0x3000, 0x0000},
+ {"13", 0x3200, 0x0000},
+ {"14", 0x3400, 0x0000},
+ {"15", 0x3600, 0x0000},
+ {"16", 0x3800, 0x0000},
+ {"17", 0x3A00, 0x0000},
+ {"18", 0x3C00, 0x0000},
+ {"19", 0x3E00, 0x0000},
+ {"20", 0x4000, 0x0000},
+ {"21", 0x4200, 0x0000},
+ {"22", 0x4400, 0x0000},
+ {"23", 0x4600, 0x0000},
+ {"24", 0x4800, 0x0000},
+ {"25", 0x4A00, 0x0000},
+ {"26", 0x4C00, 0x0000},
+ {"27", 0x4E00, 0x0000},
+ {"28", 0x5000, 0x0000},
+ {"29", 0x5200, 0x0000},
+ {"30", 0x5400, 0x0000},
+ {"31", 0x5600, 0x0000},
+ {"32", 0x5800, 0x0000},
+ {"33", 0x5A00, 0x0000},
+ {"34", 0x5C00, 0x0000},
+ {"35", 0x5E00, 0x0000},
+ {"36", 0x6000, 0x0000},
+ {"37", 0x6200, 0x0000},
+ {"38", 0x6400, 0x0000},
+ {"39", 0x6600, 0x0000},
+ {"40", 0x6800, 0x0000},
+ {"41", 0x6A00, 0x0000},
+ {"42", 0x6C00, 0x0000},
+ {"43", 0x6E00, 0x0000},
+ {"44", 0x7000, 0x0000},
+ {"45", 0x7200, 0x0000},
+ {"46", 0x7400, 0x0000},
+ {"47", 0x7600, 0x0000},
+ {"48", 0x7800, 0x0000},
+ {"49", 0x7A00, 0x0000},
+ {"50", 0x7C00, 0x0000},
+ {"51", 0x7E00, 0x0000},
+ {"52", 0x8000, 0x0000},
+ {"53", 0x8200, 0x0000},
+ {"54", 0x8400, 0x0000},
+ {"55", 0x8600, 0x0000},
+ {"56", 0x8800, 0x0000},
+ {"57", 0x8A00, 0x0000},
+ {"58", 0x8C00, 0x0000},
+ {"59", 0x8E00, 0x0000},
+ {"60", 0x9000, 0x0000},
+ {"61", 0x9200, 0x0000},
+ {"62", 0x9400, 0x0000},
+ {"63", 0x9600, 0x0000},
+ {"64", 0x9800, 0x0000},
+ {"65", 0x9A00, 0x0000},
+ {"66", 0x9C00, 0x0000},
+ {"67", 0x9E00, 0x0000},
+ {"68", 0xA000, 0x0000},
+ {"69", 0xA200, 0x0000},
+ {"70", 0xA400, 0x0000},
+ {"71", 0xA600, 0x0000},
+ {"72", 0xA800, 0x0000},
+ {"73", 0xAA00, 0x0000},
+ {"74", 0xAC00, 0x0000},
+ {"75", 0xAE00, 0x0000},
+ {"76", 0xB000, 0x0000},
+ {"77", 0xB200, 0x0000},
+ {"78", 0xB400, 0x0000},
+ {"79", 0xB600, 0x0000},
+ {"80", 0xB800, 0x0000},
+ {"81", 0xBA00, 0x0000}};
+
+
+// *** 33. China - Analog - Air
+XC_CHANNEL China_Analog_Air[] = {
+ {"DS1", 0x0C70, 0x0000},
+ {"DS2", 0x0E70, 0x0000},
+ {"DS3", 0x1070, 0x0000},
+ {"DS4", 0x1350, 0x0000},
+ {"DS5", 0x1550, 0x0000},
+ {"DS6", 0x2A10, 0x0000},
+ {"DS7", 0x2C10, 0x0000},
+ {"DS8", 0x2E10, 0x0000},
+ {"DS9", 0x3010, 0x0000},
+ {"DS10", 0x3210, 0x0000},
+ {"DS11", 0x3410, 0x0000},
+ {"DS12", 0x3610, 0x0000},
+ {"DS13", 0x75D0, 0x0000},
+ {"DS14", 0x77D0, 0x0000},
+ {"DS15", 0x79D0, 0x0000},
+ {"DS16", 0x7BD0, 0x0000},
+ {"DS17", 0x7DD0, 0x0000},
+ {"DS18", 0x7FD0, 0x0000},
+ {"DS19", 0x81D0, 0x0000},
+ {"DS20", 0x83D0, 0x0000},
+ {"DS21", 0x85D0, 0x0000},
+ {"DS22", 0x87D0, 0x0000},
+ {"DS23", 0x89D0, 0x0000},
+ {"DS24", 0x8BD0, 0x0000},
+ {"DS25", 0x97D0, 0x0000},
+ {"DS26", 0x99D0, 0x0000},
+ {"DS27", 0x9BD0, 0x0000},
+ {"DS28", 0x9DD0, 0x0000},
+ {"DS29", 0x9FD0, 0x0000},
+ {"DS30", 0xA1D0, 0x0000},
+ {"DS31", 0xA3D0, 0x0000},
+ {"DS32", 0xA5D0, 0x0000},
+ {"DS33", 0xA7D0, 0x0000},
+ {"DS34", 0xA9D0, 0x0000},
+ {"DS35", 0xABD0, 0x0000},
+ {"DS36", 0xADD0, 0x0000},
+ {"DS37", 0xAFD0, 0x0000},
+ {"DS38", 0xB1D0, 0x0000},
+ {"DS39", 0xB3D0, 0x0000},
+ {"DS40", 0xB5D0, 0x0000},
+ {"DS41", 0xB7D0, 0x0000},
+ {"DS42", 0xB9D0, 0x0000},
+ {"DS43", 0xBBD0, 0x0000},
+ {"DS44", 0xBDD0, 0x0000},
+ {"DS45", 0xBFD0, 0x0000},
+ {"DS46", 0xC1D0, 0x0000},
+ {"DS47", 0xC3D0, 0x0000},
+ {"DS48", 0xC5D0, 0x0000},
+ {"DS49", 0xC7D0, 0x0000},
+ {"DS50", 0xC9D0, 0x0000},
+ {"DS51", 0xCBD0, 0x0000},
+ {"DS52", 0xCDD0, 0x0000},
+ {"DS53", 0xCFD0, 0x0000},
+ {"DS54", 0xD1D0, 0x0000},
+ {"DS55", 0xD3D0, 0x0000},
+ {"DS56", 0xD5D0, 0x0000},
+ {"DS57", 0xD7D0, 0x0000}};
+
+
+// *** 34. China - Analog - Cable
+XC_CHANNEL China_Analog_Cable[] = {
+ {"DS1", 0x0C70, 0x0000},
+ {"DS2", 0x0E70, 0x0000},
+ {"DS3", 0x1070, 0x0000},
+ {"DS4", 0x1350, 0x0000},
+ {"DS5", 0x1550, 0x0000},
+ {"DS6", 0x2A10, 0x0000},
+ {"DS7", 0x2C10, 0x0000},
+ {"DS8", 0x2E10, 0x0000},
+ {"DS9", 0x3010, 0x0000},
+ {"DS10", 0x3210, 0x0000},
+ {"DS11", 0x3410, 0x0000},
+ {"DS12", 0x3610, 0x0000},
+ {"Z1", 0x1C10, 0x0000},
+ {"Z2", 0x1E10, 0x0000},
+ {"Z3", 0x2010, 0x0000},
+ {"Z4", 0x2210, 0x0000},
+ {"Z5", 0x2410, 0x0000},
+ {"Z6", 0x2610, 0x0000},
+ {"Z7", 0x2810, 0x0000},
+ {"Z8", 0x3810, 0x0000},
+ {"Z9", 0x3A10, 0x0000},
+ {"Z10", 0x3C10, 0x0000},
+ {"Z11", 0x3E10, 0x0000},
+ {"Z12", 0x4010, 0x0000},
+ {"Z13", 0x4210, 0x0000},
+ {"Z14", 0x4410, 0x0000},
+ {"Z15", 0x4610, 0x0000},
+ {"Z16", 0x4810, 0x0000},
+ {"Z17", 0x4A10, 0x0000},
+ {"Z18", 0x4C10, 0x0000},
+ {"Z19", 0x4E10, 0x0000},
+ {"Z20", 0x5010, 0x0000},
+ {"Z21", 0x5210, 0x0000},
+ {"Z22", 0x5410, 0x0000},
+ {"Z23", 0x5610, 0x0000},
+ {"Z24", 0x5810, 0x0000},
+ {"Z25", 0x5A10, 0x0000},
+ {"Z26", 0x5C10, 0x0000},
+ {"Z27", 0x5E10, 0x0000},
+ {"Z28", 0x6010, 0x0000},
+ {"Z29", 0x6210, 0x0000},
+ {"Z30", 0x6410, 0x0000},
+ {"Z31", 0x6610, 0x0000},
+ {"Z32", 0x6810, 0x0000},
+ {"Z33", 0x6A10, 0x0000},
+ {"Z34", 0x6C10, 0x0000},
+ {"Z35", 0x6E10, 0x0000},
+ {"Z36", 0x7010, 0x0000},
+ {"Z37", 0x7210, 0x0000},
+ {"DS13", 0x75D0, 0x0000},
+ {"DS14", 0x77D0, 0x0000},
+ {"DS15", 0x79D0, 0x0000},
+ {"DS16", 0x7BD0, 0x0000},
+ {"DS17", 0x7DD0, 0x0000},
+ {"DS18", 0x7FD0, 0x0000},
+ {"DS19", 0x81D0, 0x0000},
+ {"DS20", 0x83D0, 0x0000},
+ {"DS21", 0x85D0, 0x0000},
+ {"DS22", 0x87D0, 0x0000},
+ {"DS23", 0x89D0, 0x0000},
+ {"DS24", 0x8BD0, 0x0000},
+ {"Z38", 0x8DD0, 0x0000},
+ {"Z39", 0x8FD0, 0x0000},
+ {"Z40", 0x91D0, 0x0000},
+ {"Z41", 0x93D0, 0x0000},
+ {"Z42", 0x95D0, 0x0000},
+ {"DS25", 0x97D0, 0x0000},
+ {"DS26", 0x99D0, 0x0000},
+ {"DS27", 0x9BD0, 0x0000},
+ {"DS28", 0x9DD0, 0x0000},
+ {"DS29", 0x9FD0, 0x0000},
+ {"DS30", 0xA1D0, 0x0000},
+ {"DS31", 0xA3D0, 0x0000},
+ {"DS32", 0xA5D0, 0x0000},
+ {"DS33", 0xA7D0, 0x0000},
+ {"DS34", 0xA9D0, 0x0000},
+ {"DS35", 0xABD0, 0x0000},
+ {"DS36", 0xADD0, 0x0000},
+ {"DS37", 0xAFD0, 0x0000},
+ {"DS38", 0xB1D0, 0x0000},
+ {"DS39", 0xB3D0, 0x0000},
+ {"DS40", 0xB5D0, 0x0000},
+ {"DS41", 0xB7D0, 0x0000},
+ {"DS42", 0xB9D0, 0x0000},
+ {"DS43", 0xBBD0, 0x0000},
+ {"DS44", 0xBDD0, 0x0000},
+ {"DS45", 0xBFD0, 0x0000},
+ {"DS46", 0xC1D0, 0x0000},
+ {"DS47", 0xC3D0, 0x0000},
+ {"DS48", 0xC5D0, 0x0000},
+ {"DS49", 0xC7D0, 0x0000},
+ {"DS50", 0xC9D0, 0x0000},
+ {"DS51", 0xCBD0, 0x0000},
+ {"DS52", 0xCDD0, 0x0000},
+ {"DS53", 0xCFD0, 0x0000},
+ {"DS54", 0xD1D0, 0x0000},
+ {"DS55", 0xD3D0, 0x0000},
+ {"DS56", 0xD5D0, 0x0000},
+ {"DS57", 0xD7D0, 0x0000}};
+
+
+// *** 35. China - Digital - Air
+XC_CHANNEL China_Digital_Air[] = {
+ {"DS1", 0x0C70, 0x0000},
+ {"DS2", 0x0E70, 0x0000},
+ {"DS3", 0x1070, 0x0000},
+ {"DS4", 0x1350, 0x0000},
+ {"DS5", 0x1550, 0x0000},
+ {"DS6", 0x2A10, 0x0000},
+ {"DS7", 0x2C10, 0x0000},
+ {"DS8", 0x2E10, 0x0000},
+ {"DS9", 0x3010, 0x0000},
+ {"DS10", 0x3210, 0x0000},
+ {"DS11", 0x3410, 0x0000},
+ {"DS12", 0x3610, 0x0000},
+ {"DS13", 0x75D0, 0x0000},
+ {"DS14", 0x77D0, 0x0000},
+ {"DS15", 0x79D0, 0x0000},
+ {"DS16", 0x7BD0, 0x0000},
+ {"DS17", 0x7DD0, 0x0000},
+ {"DS18", 0x7FD0, 0x0000},
+ {"DS19", 0x81D0, 0x0000},
+ {"DS20", 0x83D0, 0x0000},
+ {"DS21", 0x85D0, 0x0000},
+ {"DS22", 0x87D0, 0x0000},
+ {"DS23", 0x89D0, 0x0000},
+ {"DS24", 0x8BD0, 0x0000},
+ {"DS25", 0x97D0, 0x0000},
+ {"DS26", 0x99D0, 0x0000},
+ {"DS27", 0x9BD0, 0x0000},
+ {"DS28", 0x9DD0, 0x0000},
+ {"DS29", 0x9FD0, 0x0000},
+ {"DS30", 0xA1D0, 0x0000},
+ {"DS31", 0xA3D0, 0x0000},
+ {"DS32", 0xA5D0, 0x0000},
+ {"DS33", 0xA7D0, 0x0000},
+ {"DS34", 0xA9D0, 0x0000},
+ {"DS35", 0xABD0, 0x0000},
+ {"DS36", 0xADD0, 0x0000},
+ {"DS37", 0xAFD0, 0x0000},
+ {"DS38", 0xB1D0, 0x0000},
+ {"DS39", 0xB3D0, 0x0000},
+ {"DS40", 0xB5D0, 0x0000},
+ {"DS41", 0xB7D0, 0x0000},
+ {"DS42", 0xB9D0, 0x0000},
+ {"DS43", 0xBBD0, 0x0000},
+ {"DS44", 0xBDD0, 0x0000},
+ {"DS45", 0xBFD0, 0x0000},
+ {"DS46", 0xC1D0, 0x0000},
+ {"DS47", 0xC3D0, 0x0000},
+ {"DS48", 0xC5D0, 0x0000},
+ {"DS49", 0xC7D0, 0x0000},
+ {"DS50", 0xC9D0, 0x0000},
+ {"DS51", 0xCBD0, 0x0000},
+ {"DS52", 0xCDD0, 0x0000},
+ {"DS53", 0xCFD0, 0x0000},
+ {"DS54", 0xD1D0, 0x0000},
+ {"DS55", 0xD3D0, 0x0000},
+ {"DS56", 0xD5D0, 0x0000},
+ {"DS57", 0xD7D0, 0x0000}};
+
+
+// *** 36. China - Digital - Cable
+XC_CHANNEL China_Digital_Cable[] = {
+ {"DS1", 0x0C70, 0x0000},
+ {"DS2", 0x0E70, 0x0000},
+ {"DS3", 0x1070, 0x0000},
+ {"DS4", 0x1350, 0x0000},
+ {"DS5", 0x1550, 0x0000},
+ {"DS6", 0x2A10, 0x0000},
+ {"DS7", 0x2C10, 0x0000},
+ {"DS8", 0x2E10, 0x0000},
+ {"DS9", 0x3010, 0x0000},
+ {"DS10", 0x3210, 0x0000},
+ {"DS11", 0x3410, 0x0000},
+ {"DS12", 0x3610, 0x0000},
+ {"Z1", 0x1C10, 0x0000},
+ {"Z2", 0x1E10, 0x0000},
+ {"Z3", 0x2010, 0x0000},
+ {"Z4", 0x2210, 0x0000},
+ {"Z5", 0x2410, 0x0000},
+ {"Z6", 0x2610, 0x0000},
+ {"Z7", 0x2810, 0x0000},
+ {"Z8", 0x3810, 0x0000},
+ {"Z9", 0x3A10, 0x0000},
+ {"Z10", 0x3C10, 0x0000},
+ {"Z11", 0x3E10, 0x0000},
+ {"Z12", 0x4010, 0x0000},
+ {"Z13", 0x4210, 0x0000},
+ {"Z14", 0x4410, 0x0000},
+ {"Z15", 0x4610, 0x0000},
+ {"Z16", 0x4810, 0x0000},
+ {"Z17", 0x4A10, 0x0000},
+ {"Z18", 0x4C10, 0x0000},
+ {"Z19", 0x4E10, 0x0000},
+ {"Z20", 0x5010, 0x0000},
+ {"Z21", 0x5210, 0x0000},
+ {"Z22", 0x5410, 0x0000},
+ {"Z23", 0x5610, 0x0000},
+ {"Z24", 0x5810, 0x0000},
+ {"Z25", 0x5A10, 0x0000},
+ {"Z26", 0x5C10, 0x0000},
+ {"Z27", 0x5E10, 0x0000},
+ {"Z28", 0x6010, 0x0000},
+ {"Z29", 0x6210, 0x0000},
+ {"Z30", 0x6410, 0x0000},
+ {"Z31", 0x6610, 0x0000},
+ {"Z32", 0x6810, 0x0000},
+ {"Z33", 0x6A10, 0x0000},
+ {"Z34", 0x6C10, 0x0000},
+ {"Z35", 0x6E10, 0x0000},
+ {"Z36", 0x7010, 0x0000},
+ {"Z37", 0x7210, 0x0000},
+ {"DS13", 0x75D0, 0x0000},
+ {"DS14", 0x77D0, 0x0000},
+ {"DS15", 0x79D0, 0x0000},
+ {"DS16", 0x7BD0, 0x0000},
+ {"DS17", 0x7DD0, 0x0000},
+ {"DS18", 0x7FD0, 0x0000},
+ {"DS19", 0x81D0, 0x0000},
+ {"DS20", 0x83D0, 0x0000},
+ {"DS21", 0x85D0, 0x0000},
+ {"DS22", 0x87D0, 0x0000},
+ {"DS23", 0x89D0, 0x0000},
+ {"DS24", 0x8BD0, 0x0000},
+ {"Z38", 0x8DD0, 0x0000},
+ {"Z39", 0x8FD0, 0x0000},
+ {"Z40", 0x91D0, 0x0000},
+ {"Z41", 0x93D0, 0x0000},
+ {"Z42", 0x95D0, 0x0000},
+ {"DS25", 0x97D0, 0x0000},
+ {"DS26", 0x99D0, 0x0000},
+ {"DS27", 0x9BD0, 0x0000},
+ {"DS28", 0x9DD0, 0x0000},
+ {"DS29", 0x9FD0, 0x0000},
+ {"DS30", 0xA1D0, 0x0000},
+ {"DS31", 0xA3D0, 0x0000},
+ {"DS32", 0xA5D0, 0x0000},
+ {"DS33", 0xA7D0, 0x0000},
+ {"DS34", 0xA9D0, 0x0000},
+ {"DS35", 0xABD0, 0x0000},
+ {"DS36", 0xADD0, 0x0000},
+ {"DS37", 0xAFD0, 0x0000},
+ {"DS38", 0xB1D0, 0x0000},
+ {"DS39", 0xB3D0, 0x0000},
+ {"DS40", 0xB5D0, 0x0000},
+ {"DS41", 0xB7D0, 0x0000},
+ {"DS42", 0xB9D0, 0x0000},
+ {"DS43", 0xBBD0, 0x0000},
+ {"DS44", 0xBDD0, 0x0000},
+ {"DS45", 0xBFD0, 0x0000},
+ {"DS46", 0xC1D0, 0x0000},
+ {"DS47", 0xC3D0, 0x0000},
+ {"DS48", 0xC5D0, 0x0000},
+ {"DS49", 0xC7D0, 0x0000},
+ {"DS50", 0xC9D0, 0x0000},
+ {"DS51", 0xCBD0, 0x0000},
+ {"DS52", 0xCDD0, 0x0000},
+ {"DS53", 0xCFD0, 0x0000},
+ {"DS54", 0xD1D0, 0x0000},
+ {"DS55", 0xD3D0, 0x0000},
+ {"DS56", 0xD5D0, 0x0000},
+ {"DS57", 0xD7D0, 0x0000}};
+
+
+// *** 37. Australia - Analog - Air
+XC_CHANNEL Australia_Analog_Air[] = {
+ {"0", 0x0B90, 0x0000},
+ {"1", 0x0E50, 0x0000},
+ {"2", 0x1010, 0x0000},
+ {"3", 0x1590, 0x0000},
+ {"4", 0x17D0, 0x0000},
+ {"5", 0x1990, 0x0000},
+ {"5A", 0x2290, 0x0000},
+ {"6", 0x2BD0, 0x0000},
+ {"7", 0x2D90, 0x0000},
+ {"8", 0x2F50, 0x0000},
+ {"9", 0x3110, 0x0000},
+ {"10", 0x3450, 0x0000},
+ {"11", 0x3610, 0x0000},
+ {"12", 0x37D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x8590, 0x0000},
+ {"30", 0x8750, 0x0000},
+ {"31", 0x8910, 0x0000},
+ {"32", 0x8AD0, 0x0000},
+ {"33", 0x8C90, 0x0000},
+ {"34", 0x8E50, 0x0000},
+ {"35", 0x9010, 0x0000},
+ {"36", 0x91D0, 0x0000},
+ {"37", 0x9390, 0x0000},
+ {"38", 0x9550, 0x0000},
+ {"39", 0x9710, 0x0000},
+ {"40", 0x98D0, 0x0000},
+ {"41", 0x9A90, 0x0000},
+ {"42", 0x9C50, 0x0000},
+ {"43", 0x9E10, 0x0000},
+ {"44", 0x9FD0, 0x0000},
+ {"45", 0xA190, 0x0000},
+ {"46", 0xA350, 0x0000},
+ {"47", 0xA510, 0x0000},
+ {"48", 0xA6D0, 0x0000},
+ {"49", 0xA890, 0x0000},
+ {"50", 0xAA50, 0x0000},
+ {"51", 0xAC10, 0x0000},
+ {"52", 0xADD0, 0x0000},
+ {"53", 0xAF90, 0x0000},
+ {"54", 0xB150, 0x0000},
+ {"55", 0xB310, 0x0000},
+ {"56", 0xB4D0, 0x0000},
+ {"57", 0xB690, 0x0000},
+ {"58", 0xB850, 0x0000},
+ {"59", 0xBA10, 0x0000},
+ {"60", 0xBBD0, 0x0000},
+ {"61", 0xBD90, 0x0000},
+ {"62", 0xBF50, 0x0000},
+ {"63", 0xC110, 0x0000},
+ {"64", 0xC2D0, 0x0000},
+ {"65", 0xC490, 0x0000},
+ {"66", 0xC650, 0x0000},
+ {"67", 0xC810, 0x0000},
+ {"68", 0xC9D0, 0x0000},
+ {"69", 0xCB90, 0x0000}};
+
+
+// *** 38. Australia - Analog - Cable
+XC_CHANNEL Australia_Analog_Cable[] = {
+ {"11", 0x1590, 0x0000},
+ {"12", 0x17D0, 0x0000},
+ {"13", 0x1990, 0x0000},
+ {"14", 0x1B90, 0x0000},
+ {"15", 0x1D50, 0x0000},
+ {"16", 0x1F10, 0x0000},
+ {"17", 0x20D0, 0x0000},
+ {"18", 0x2290, 0x0000},
+ {"19", 0x24D0, 0x0000},
+ {"20", 0x2690, 0x0000},
+ {"21", 0x2850, 0x0000},
+ {"22", 0x2A10, 0x0000},
+ {"23", 0x2BD0, 0x0000},
+ {"24", 0x2D90, 0x0000},
+ {"25", 0x2F50, 0x0000},
+ {"26", 0x3110, 0x0000},
+ {"27", 0x3450, 0x0000},
+ {"28", 0x3610, 0x0000},
+ {"29", 0x3810, 0x0000},
+ {"30", 0x39D0, 0x0000},
+ {"31", 0x3B90, 0x0000},
+ {"32", 0x3D50, 0x0000},
+ {"1", 0x3F10, 0x0000},
+ {"2", 0x40D0, 0x0000},
+ {"3", 0x4290, 0x0000},
+ {"4", 0x4410, 0x0000},
+ {"5", 0x4610, 0x0000},
+ {"6", 0x47D0, 0x0000},
+ {"7", 0x4990, 0x0000},
+ {"8", 0x4B50, 0x0000},
+ {"9", 0x4D10, 0x0000},
+ {"10", 0x4ED0, 0x0000},
+ {"33", 0x5090, 0x0000},
+ {"34", 0x5250, 0x0000},
+ {"35", 0x5410, 0x0000},
+ {"36", 0x55D0, 0x0000},
+ {"37", 0x5790, 0x0000},
+ {"38", 0x5950, 0x0000},
+ {"39", 0x5B10, 0x0000},
+ {"40", 0x5CD0, 0x0000},
+ {"41", 0x5E90, 0x0000},
+ {"42", 0x6050, 0x0000},
+ {"43", 0x6250, 0x0000},
+ {"44", 0x63D0, 0x0000},
+ {"45", 0x6590, 0x0000},
+ {"46", 0x6750, 0x0000},
+ {"47", 0x6910, 0x0000},
+ {"48", 0x6AD0, 0x0000},
+ {"49", 0x6C90, 0x0000},
+ {"50", 0x6E50, 0x0000},
+ {"51", 0x7010, 0x0000},
+ {"52", 0x71D0, 0x0000},
+ {"53", 0x7390, 0x0000},
+ {"54", 0x7550, 0x0000},
+ {"55", 0x7710, 0x0000},
+ {"56", 0x78D0, 0x0000},
+ {"57", 0x7A90, 0x0000},
+ {"58", 0x7C50, 0x0000},
+ {"59", 0x7E10, 0x0000},
+ {"60", 0x7FD0, 0x0000},
+ {"61", 0x8190, 0x0000},
+ {"62", 0x83D0, 0x0000},
+ {"63", 0x8590, 0x0000},
+ {"64", 0x8750, 0x0000},
+ {"65", 0x8910, 0x0000},
+ {"66", 0x8AD0, 0x0000},
+ {"67", 0x8C90, 0x0000},
+ {"68", 0x8E50, 0x0000},
+ {"69", 0x9010, 0x0000},
+ {"70", 0x91D0, 0x0000},
+ {"71", 0x9390, 0x0000},
+ {"72", 0x9550, 0x0000},
+ {"73", 0x9710, 0x0000},
+ {"74", 0x98D0, 0x0000},
+ {"75", 0x9A90, 0x0000},
+ {"76", 0x9C50, 0x0000},
+ {"77", 0x9E10, 0x0000},
+ {"78", 0x9FD0, 0x0000},
+ {"79", 0xA190, 0x0000},
+ {"80", 0xA350, 0x0000}};
+
+
+// *** 39. Australia - Digital - Air
+XC_CHANNEL Australia_Digital_Air[] = {
+ {"0", 0x0B90, 0x0000},
+ {"1", 0x0E50, 0x0000},
+ {"2", 0x1010, 0x0000},
+ {"3", 0x1590, 0x0000},
+ {"4", 0x17D0, 0x0000},
+ {"5", 0x1990, 0x0000},
+ {"5A", 0x2290, 0x0000},
+ {"6", 0x2BD0, 0x0000},
+ {"7", 0x2D90, 0x0000},
+ {"8", 0x2F50, 0x0000},
+ {"9", 0x3110, 0x0000},
+ {"10", 0x3450, 0x0000},
+ {"11", 0x3610, 0x0000},
+ {"12", 0x37D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x8590, 0x0000},
+ {"30", 0x8750, 0x0000},
+ {"31", 0x8910, 0x0000},
+ {"32", 0x8AD0, 0x0000},
+ {"33", 0x8C90, 0x0000},
+ {"34", 0x8E50, 0x0000},
+ {"35", 0x9010, 0x0000},
+ {"36", 0x91D0, 0x0000},
+ {"37", 0x9390, 0x0000},
+ {"38", 0x9550, 0x0000},
+ {"39", 0x9710, 0x0000},
+ {"40", 0x98D0, 0x0000},
+ {"41", 0x9A90, 0x0000},
+ {"42", 0x9C50, 0x0000},
+ {"43", 0x9E10, 0x0000},
+ {"44", 0x9FD0, 0x0000},
+ {"45", 0xA190, 0x0000},
+ {"46", 0xA350, 0x0000},
+ {"47", 0xA510, 0x0000},
+ {"48", 0xA6D0, 0x0000},
+ {"49", 0xA890, 0x0000},
+ {"50", 0xAA50, 0x0000},
+ {"51", 0xAC10, 0x0000},
+ {"52", 0xADD0, 0x0000},
+ {"53", 0xAF90, 0x0000},
+ {"54", 0xB150, 0x0000},
+ {"55", 0xB310, 0x0000},
+ {"56", 0xB4D0, 0x0000},
+ {"57", 0xB690, 0x0000},
+ {"58", 0xB850, 0x0000},
+ {"59", 0xBA10, 0x0000},
+ {"60", 0xBBD0, 0x0000},
+ {"61", 0xBD90, 0x0000},
+ {"62", 0xBF50, 0x0000},
+ {"63", 0xC110, 0x0000},
+ {"64", 0xC2D0, 0x0000},
+ {"65", 0xC490, 0x0000},
+ {"66", 0xC650, 0x0000},
+ {"67", 0xC810, 0x0000},
+ {"68", 0xC9D0, 0x0000},
+ {"69", 0xCB90, 0x0000}};
+
+
+// *** 40. Australia - Digital - Cable
+XC_CHANNEL Australia_Digital_Cable[] = {
+ {"11", 0x1590, 0x0000},
+ {"12", 0x17D0, 0x0000},
+ {"13", 0x1990, 0x0000},
+ {"14", 0x1B90, 0x0000},
+ {"15", 0x1D50, 0x0000},
+ {"16", 0x1F10, 0x0000},
+ {"17", 0x20D0, 0x0000},
+ {"18", 0x2290, 0x0000},
+ {"19", 0x24D0, 0x0000},
+ {"20", 0x2690, 0x0000},
+ {"21", 0x2850, 0x0000},
+ {"22", 0x2A10, 0x0000},
+ {"23", 0x2BD0, 0x0000},
+ {"24", 0x2D90, 0x0000},
+ {"25", 0x2F50, 0x0000},
+ {"26", 0x3110, 0x0000},
+ {"27", 0x3450, 0x0000},
+ {"28", 0x3610, 0x0000},
+ {"29", 0x3810, 0x0000},
+ {"30", 0x39D0, 0x0000},
+ {"31", 0x3B90, 0x0000},
+ {"32", 0x3D50, 0x0000},
+ {"1", 0x3F10, 0x0000},
+ {"2", 0x40D0, 0x0000},
+ {"3", 0x4290, 0x0000},
+ {"4", 0x4410, 0x0000},
+ {"5", 0x4610, 0x0000},
+ {"6", 0x47D0, 0x0000},
+ {"7", 0x4990, 0x0000},
+ {"8", 0x4B50, 0x0000},
+ {"9", 0x4D10, 0x0000},
+ {"10", 0x4ED0, 0x0000},
+ {"33", 0x5090, 0x0000},
+ {"34", 0x5250, 0x0000},
+ {"35", 0x5410, 0x0000},
+ {"36", 0x55D0, 0x0000},
+ {"37", 0x5790, 0x0000},
+ {"38", 0x5950, 0x0000},
+ {"39", 0x5B10, 0x0000},
+ {"40", 0x5CD0, 0x0000},
+ {"41", 0x5E90, 0x0000},
+ {"42", 0x6050, 0x0000},
+ {"43", 0x6250, 0x0000},
+ {"44", 0x63D0, 0x0000},
+ {"45", 0x6590, 0x0000},
+ {"46", 0x6750, 0x0000},
+ {"47", 0x6910, 0x0000},
+ {"48", 0x6AD0, 0x0000},
+ {"49", 0x6C90, 0x0000},
+ {"50", 0x6E50, 0x0000},
+ {"51", 0x7010, 0x0000},
+ {"52", 0x71D0, 0x0000},
+ {"53", 0x7390, 0x0000},
+ {"54", 0x7550, 0x0000},
+ {"55", 0x7710, 0x0000},
+ {"56", 0x78D0, 0x0000},
+ {"57", 0x7A90, 0x0000},
+ {"58", 0x7C50, 0x0000},
+ {"59", 0x7E10, 0x0000},
+ {"60", 0x7FD0, 0x0000},
+ {"61", 0x8190, 0x0000},
+ {"62", 0x83D0, 0x0000},
+ {"63", 0x8590, 0x0000},
+ {"64", 0x8750, 0x0000},
+ {"65", 0x8910, 0x0000},
+ {"66", 0x8AD0, 0x0000},
+ {"67", 0x8C90, 0x0000},
+ {"68", 0x8E50, 0x0000},
+ {"69", 0x9010, 0x0000},
+ {"70", 0x91D0, 0x0000},
+ {"71", 0x9390, 0x0000},
+ {"72", 0x9550, 0x0000},
+ {"73", 0x9710, 0x0000},
+ {"74", 0x98D0, 0x0000},
+ {"75", 0x9A90, 0x0000},
+ {"76", 0x9C50, 0x0000},
+ {"77", 0x9E10, 0x0000},
+ {"78", 0x9FD0, 0x0000},
+ {"79", 0xA190, 0x0000},
+ {"80", 0xA350, 0x0000}};
+
+
+// *** 41. OIRT - Analog - Air
+XC_CHANNEL OIRT_Analog_Air[] = {
+ {"1", 0x0C70, 0x0000},
+ {"2", 0x0ED0, 0x0000},
+ {"3", 0x1350, 0x0000},
+ {"4", 0x1550, 0x0000},
+ {"5", 0x1750, 0x0000},
+ {"6", 0x2BD0, 0x0000},
+ {"7", 0x2DD0, 0x0000},
+ {"8", 0x2FD0, 0x0000},
+ {"9", 0x31D0, 0x0000},
+ {"10", 0x33D0, 0x0000},
+ {"11", 0x35D0, 0x0000},
+ {"12", 0x37D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 42. OIRT - Analog - Cable
+XC_CHANNEL OIRT_Analog_Cable[] = {
+ {"1", 0x0C70, 0x0000},
+ {"2", 0x0ED0, 0x0000},
+ {"3", 0x1350, 0x0000},
+ {"4", 0x1550, 0x0000},
+ {"5", 0x1750, 0x0000},
+ {"6", 0x2BD0, 0x0000},
+ {"7", 0x2DD0, 0x0000},
+ {"8", 0x2FD0, 0x0000},
+ {"9", 0x31D0, 0x0000},
+ {"10", 0x33D0, 0x0000},
+ {"11", 0x35D0, 0x0000},
+ {"12", 0x37D0, 0x0000},
+ {"SC", 0x1C10, 0x0000},
+ {"SC", 0x1E10, 0x0000},
+ {"SC", 0x2010, 0x0000},
+ {"SC", 0x2210, 0x0000},
+ {"SC", 0x2410, 0x0000},
+ {"SC", 0x2610, 0x0000},
+ {"SC", 0x2810, 0x0000},
+ {"SC", 0x3810, 0x0000},
+ {"SC", 0x3A10, 0x0000},
+ {"SC", 0x3C10, 0x0000},
+ {"SC", 0x3E10, 0x0000},
+ {"SC", 0x4010, 0x0000},
+ {"SC", 0x4210, 0x0000},
+ {"SC", 0x4410, 0x0000},
+ {"SC", 0x4610, 0x0000},
+ {"SC", 0x4810, 0x0000},
+ {"SC", 0x4A10, 0x0000},
+ {"SC", 0x4C10, 0x0000},
+ {"SC", 0x4E10, 0x0000},
+ {"SC", 0x5010, 0x0000},
+ {"SC", 0x5210, 0x0000},
+ {"SC", 0x5410, 0x0000},
+ {"SC", 0x5610, 0x0000},
+ {"SC", 0x5810, 0x0000},
+ {"SC", 0x5A10, 0x0000},
+ {"SC", 0x5C10, 0x0000},
+ {"SC", 0x5E10, 0x0000},
+ {"SC", 0x6010, 0x0000},
+ {"SC", 0x6210, 0x0000},
+ {"SC", 0x6410, 0x0000},
+ {"SC", 0x6610, 0x0000},
+ {"SC", 0x6810, 0x0000},
+ {"SC", 0x6A10, 0x0000},
+ {"SC", 0x6C10, 0x0000},
+ {"SC", 0x6E10, 0x0000},
+ {"SC", 0x7010, 0x0000},
+ {"SC", 0x7210, 0x0000},
+ {"SC", 0x7410, 0x0000},
+ {"SC", 0x7610, 0x0000},
+ {"SC", 0x7810, 0x0000},
+ {"SC", 0x7A10, 0x0000},
+ {"SC", 0x7C10, 0x0000}};
+
+
+// *** 43. OIRT - Digital - Air
+XC_CHANNEL OIRT_Digital_Air[] = {
+ {"1", 0x0C70, 0x0000},
+ {"2", 0x0ED0, 0x0000},
+ {"3", 0x1350, 0x0000},
+ {"4", 0x1550, 0x0000},
+ {"5", 0x1750, 0x0000},
+ {"6", 0x2BD0, 0x0000},
+ {"7", 0x2DD0, 0x0000},
+ {"8", 0x2FD0, 0x0000},
+ {"9", 0x31D0, 0x0000},
+ {"10", 0x33D0, 0x0000},
+ {"11", 0x35D0, 0x0000},
+ {"12", 0x37D0, 0x0000},
+ {"21", 0x75D0, 0x0000},
+ {"22", 0x77D0, 0x0000},
+ {"23", 0x79D0, 0x0000},
+ {"24", 0x7BD0, 0x0000},
+ {"25", 0x7DD0, 0x0000},
+ {"26", 0x7FD0, 0x0000},
+ {"27", 0x81D0, 0x0000},
+ {"28", 0x83D0, 0x0000},
+ {"29", 0x85D0, 0x0000},
+ {"30", 0x87D0, 0x0000},
+ {"31", 0x89D0, 0x0000},
+ {"32", 0x8BD0, 0x0000},
+ {"33", 0x8DD0, 0x0000},
+ {"34", 0x8FD0, 0x0000},
+ {"35", 0x91D0, 0x0000},
+ {"36", 0x93D0, 0x0000},
+ {"37", 0x95D0, 0x0000},
+ {"38", 0x97D0, 0x0000},
+ {"39", 0x99D0, 0x0000},
+ {"40", 0x9BD0, 0x0000},
+ {"41", 0x9DD0, 0x0000},
+ {"42", 0x9FD0, 0x0000},
+ {"43", 0xA1D0, 0x0000},
+ {"44", 0xA3D0, 0x0000},
+ {"45", 0xA5D0, 0x0000},
+ {"46", 0xA7D0, 0x0000},
+ {"47", 0xA9D0, 0x0000},
+ {"48", 0xABD0, 0x0000},
+ {"49", 0xADD0, 0x0000},
+ {"50", 0xAFD0, 0x0000},
+ {"51", 0xB1D0, 0x0000},
+ {"52", 0xB3D0, 0x0000},
+ {"53", 0xB5D0, 0x0000},
+ {"54", 0xB7D0, 0x0000},
+ {"55", 0xB9D0, 0x0000},
+ {"56", 0xBBD0, 0x0000},
+ {"57", 0xBDD0, 0x0000},
+ {"58", 0xBFD0, 0x0000},
+ {"59", 0xC1D0, 0x0000},
+ {"60", 0xC3D0, 0x0000},
+ {"61", 0xC5D0, 0x0000},
+ {"62", 0xC7D0, 0x0000},
+ {"63", 0xC9D0, 0x0000},
+ {"64", 0xCBD0, 0x0000},
+ {"65", 0xCDD0, 0x0000},
+ {"66", 0xCFD0, 0x0000},
+ {"67", 0xD1D0, 0x0000},
+ {"68", 0xD3D0, 0x0000},
+ {"69", 0xD5D0, 0x0000}};
+
+
+// *** 44. OIRT - Digital - Cable
+XC_CHANNEL OIRT_Digital_Cable[] = {
+ {"1", 0x0C70, 0x0000},
+ {"2", 0x0ED0, 0x0000},
+ {"3", 0x1350, 0x0000},
+ {"4", 0x1550, 0x0000},
+ {"5", 0x1750, 0x0000},
+ {"6", 0x2BD0, 0x0000},
+ {"7", 0x2DD0, 0x0000},
+ {"8", 0x2FD0, 0x0000},
+ {"9", 0x31D0, 0x0000},
+ {"10", 0x33D0, 0x0000},
+ {"11", 0x35D0, 0x0000},
+ {"12", 0x37D0, 0x0000},
+ {"SC", 0x1C10, 0x0000},
+ {"SC", 0x1E10, 0x0000},
+ {"SC", 0x2010, 0x0000},
+ {"SC", 0x2210, 0x0000},
+ {"SC", 0x2410, 0x0000},
+ {"SC", 0x2610, 0x0000},
+ {"SC", 0x2810, 0x0000},
+ {"SC", 0x3810, 0x0000},
+ {"SC", 0x3A10, 0x0000},
+ {"SC", 0x3C10, 0x0000},
+ {"SC", 0x3E10, 0x0000},
+ {"SC", 0x4010, 0x0000},
+ {"SC", 0x4210, 0x0000},
+ {"SC", 0x4410, 0x0000},
+ {"SC", 0x4610, 0x0000},
+ {"SC", 0x4810, 0x0000},
+ {"SC", 0x4A10, 0x0000},
+ {"SC", 0x4C10, 0x0000},
+ {"SC", 0x4E10, 0x0000},
+ {"SC", 0x5010, 0x0000},
+ {"SC", 0x5210, 0x0000},
+ {"SC", 0x5410, 0x0000},
+ {"SC", 0x5610, 0x0000},
+ {"SC", 0x5810, 0x0000},
+ {"SC", 0x5A10, 0x0000},
+ {"SC", 0x5C10, 0x0000},
+ {"SC", 0x5E10, 0x0000},
+ {"SC", 0x6010, 0x0000},
+ {"SC", 0x6210, 0x0000},
+ {"SC", 0x6410, 0x0000},
+ {"SC", 0x6610, 0x0000},
+ {"SC", 0x6810, 0x0000},
+ {"SC", 0x6A10, 0x0000},
+ {"SC", 0x6C10, 0x0000},
+ {"SC", 0x6E10, 0x0000},
+ {"SC", 0x7010, 0x0000},
+ {"SC", 0x7210, 0x0000},
+ {"SC", 0x7410, 0x0000},
+ {"SC", 0x7610, 0x0000},
+ {"SC", 0x7810, 0x0000},
+ {"SC", 0x7A10, 0x0000},
+ {"SC", 0x7C10, 0x0000}};
+
+
+// *** 45. USA - FM radio
+XC_CHANNEL USA_FM_radio[] = {
+ {"200", 0x15F9, 0x0000},
+ {"201", 0x1606, 0x0000},
+ {"202", 0x1613, 0x0000},
+ {"203", 0x1620, 0x0000},
+ {"204", 0x162C, 0x0000},
+ {"205", 0x1639, 0x0000},
+ {"206", 0x1646, 0x0000},
+ {"207", 0x1653, 0x0000},
+ {"208", 0x1660, 0x0000},
+ {"209", 0x166C, 0x0000},
+ {"210", 0x1679, 0x0000},
+ {"211", 0x1686, 0x0000},
+ {"212", 0x1693, 0x0000},
+ {"213", 0x16A0, 0x0000},
+ {"214", 0x16AC, 0x0000},
+ {"215", 0x16B9, 0x0000},
+ {"216", 0x16C6, 0x0000},
+ {"217", 0x16D3, 0x0000},
+ {"218", 0x16E0, 0x0000},
+ {"219", 0x16EC, 0x0000},
+ {"220", 0x16F9, 0x0000},
+ {"221", 0x1706, 0x0000},
+ {"222", 0x1713, 0x0000},
+ {"223", 0x1720, 0x0000},
+ {"224", 0x172C, 0x0000},
+ {"225", 0x1739, 0x0000},
+ {"226", 0x1746, 0x0000},
+ {"227", 0x1753, 0x0000},
+ {"228", 0x1760, 0x0000},
+ {"229", 0x176C, 0x0000},
+ {"230", 0x1779, 0x0000},
+ {"231", 0x1786, 0x0000},
+ {"232", 0x1793, 0x0000},
+ {"233", 0x17A0, 0x0000},
+ {"234", 0x17AC, 0x0000},
+ {"235", 0x17B9, 0x0000},
+ {"236", 0x17C6, 0x0000},
+ {"237", 0x17D3, 0x0000},
+ {"238", 0x17E0, 0x0000},
+ {"239", 0x17EC, 0x0000},
+ {"240", 0x17F9, 0x0000},
+ {"241", 0x1806, 0x0000},
+ {"242", 0x1813, 0x0000},
+ {"243", 0x1820, 0x0000},
+ {"244", 0x182C, 0x0000},
+ {"245", 0x1839, 0x0000},
+ {"246", 0x1846, 0x0000},
+ {"247", 0x1853, 0x0000},
+ {"248", 0x1860, 0x0000},
+ {"249", 0x186C, 0x0000},
+ {"250", 0x1879, 0x0000},
+ {"251", 0x1886, 0x0000},
+ {"252", 0x1893, 0x0000},
+ {"253", 0x18A0, 0x0000},
+ {"254", 0x18AC, 0x0000},
+ {"255", 0x18B9, 0x0000},
+ {"256", 0x18C6, 0x0000},
+ {"257", 0x18D3, 0x0000},
+ {"258", 0x18E0, 0x0000},
+ {"259", 0x18EC, 0x0000},
+ {"260", 0x18F9, 0x0000},
+ {"261", 0x1906, 0x0000},
+ {"262", 0x1913, 0x0000},
+ {"263", 0x1920, 0x0000},
+ {"264", 0x192C, 0x0000},
+ {"265", 0x1939, 0x0000},
+ {"266", 0x1946, 0x0000},
+ {"267", 0x1953, 0x0000},
+ {"268", 0x1960, 0x0000},
+ {"269", 0x196C, 0x0000},
+ {"270", 0x1979, 0x0000},
+ {"271", 0x1986, 0x0000},
+ {"272", 0x1993, 0x0000},
+ {"273", 0x19A0, 0x0000},
+ {"274", 0x19AC, 0x0000},
+ {"275", 0x19B9, 0x0000},
+ {"276", 0x19C6, 0x0000},
+ {"277", 0x19D3, 0x0000},
+ {"278", 0x19E0, 0x0000},
+ {"279", 0x19EC, 0x0000},
+ {"280", 0x19F9, 0x0000},
+ {"281", 0x1A06, 0x0000},
+ {"282", 0x1A13, 0x0000},
+ {"283", 0x1A20, 0x0000},
+ {"284", 0x1A2C, 0x0000},
+ {"285", 0x1A39, 0x0000},
+ {"286", 0x1A46, 0x0000},
+ {"287", 0x1A53, 0x0000},
+ {"288", 0x1A60, 0x0000},
+ {"289", 0x1A6C, 0x0000},
+ {"290", 0x1A79, 0x0000},
+ {"291", 0x1A86, 0x0000},
+ {"292", 0x1A93, 0x0000},
+ {"293", 0x1AA0, 0x0000},
+ {"294", 0x1AAC, 0x0000},
+ {"295", 0x1AB9, 0x0000},
+ {"296", 0x1AC6, 0x0000},
+ {"297", 0x1AD3, 0x0000},
+ {"298", 0x1AE0, 0x0000},
+ {"299", 0x1AEC, 0x0000},
+ {"300", 0x1AF9, 0x0000}};
+
+
+// *** 46. Europe - FM radio
+XC_CHANNEL Europe_FM_radio[] = {
+ {"87.6FM", 0x15E6, 0x0000},
+ {"87.8FM", 0x15F3, 0x0000},
+ {"88FM", 0x1600, 0x0000},
+ {"88.2FM", 0x160C, 0x0000},
+ {"88.4FM", 0x1619, 0x0000},
+ {"88.6FM", 0x1626, 0x0000},
+ {"88.8FM", 0x1633, 0x0000},
+ {"89FM", 0x1640, 0x0000},
+ {"89.2FM", 0x164C, 0x0000},
+ {"89.4FM", 0x1659, 0x0000},
+ {"89.6FM", 0x1666, 0x0000},
+ {"89.8FM", 0x1673, 0x0000},
+ {"90FM", 0x1680, 0x0000},
+ {"90.2FM", 0x168C, 0x0000},
+ {"90.4FM", 0x1699, 0x0000},
+ {"90.6FM", 0x16A6, 0x0000},
+ {"90.8FM", 0x16B3, 0x0000},
+ {"91FM", 0x16C0, 0x0000},
+ {"91.2FM", 0x16CC, 0x0000},
+ {"91.4FM", 0x16D9, 0x0000},
+ {"91.6FM", 0x16E6, 0x0000},
+ {"91.8FM", 0x16F3, 0x0000},
+ {"92FM", 0x1700, 0x0000},
+ {"92.2FM", 0x170C, 0x0000},
+ {"92.4FM", 0x1719, 0x0000},
+ {"92.6FM", 0x1726, 0x0000},
+ {"92.8FM", 0x1733, 0x0000},
+ {"93FM", 0x1740, 0x0000},
+ {"93.2FM", 0x174C, 0x0000},
+ {"93.4FM", 0x1759, 0x0000},
+ {"93.6FM", 0x1766, 0x0000},
+ {"93.8FM", 0x1773, 0x0000},
+ {"94FM", 0x1780, 0x0000},
+ {"94.2FM", 0x178C, 0x0000},
+ {"94.4FM", 0x1799, 0x0000},
+ {"94.6FM", 0x17A6, 0x0000},
+ {"94.8FM", 0x17B3, 0x0000},
+ {"95FM", 0x17C0, 0x0000},
+ {"95.2FM", 0x17CC, 0x0000},
+ {"95.4FM", 0x17D9, 0x0000},
+ {"95.6FM", 0x17E6, 0x0000},
+ {"95.8FM", 0x17F3, 0x0000},
+ {"96FM", 0x1800, 0x0000},
+ {"96.2FM", 0x180C, 0x0000},
+ {"96.4FM", 0x1819, 0x0000},
+ {"96.6FM", 0x1826, 0x0000},
+ {"96.8FM", 0x1833, 0x0000},
+ {"97FM", 0x1840, 0x0000},
+ {"97.2FM", 0x184C, 0x0000},
+ {"97.4FM", 0x1859, 0x0000},
+ {"97.6FM", 0x1866, 0x0000},
+ {"97.8FM", 0x1873, 0x0000},
+ {"98FM", 0x1880, 0x0000},
+ {"98.2FM", 0x188C, 0x0000},
+ {"98.4FM", 0x1899, 0x0000},
+ {"98.6FM", 0x18A6, 0x0000},
+ {"98.8FM", 0x18B3, 0x0000},
+ {"99FM", 0x18C0, 0x0000},
+ {"99.2FM", 0x18CC, 0x0000},
+ {"99.4FM", 0x18D9, 0x0000},
+ {"99.6FM", 0x18E6, 0x0000},
+ {"99.8FM", 0x18F3, 0x0000},
+ {"100FM", 0x1900, 0x0000},
+ {"100.2FM", 0x190C, 0x0000},
+ {"100.4FM", 0x1919, 0x0000},
+ {"100.6FM", 0x1926, 0x0000},
+ {"100.8FM", 0x1933, 0x0000},
+ {"101FM", 0x1940, 0x0000},
+ {"101.2FM", 0x194C, 0x0000},
+ {"101.4FM", 0x1959, 0x0000},
+ {"101.6FM", 0x1966, 0x0000},
+ {"101.8FM", 0x1973, 0x0000},
+ {"102FM", 0x1980, 0x0000},
+ {"102.2FM", 0x198C, 0x0000},
+ {"102.4FM", 0x1999, 0x0000},
+ {"102.6FM", 0x19A6, 0x0000},
+ {"102.8FM", 0x19B3, 0x0000},
+ {"103FM", 0x19C0, 0x0000},
+ {"103.2FM", 0x19CC, 0x0000},
+ {"103.4FM", 0x19D9, 0x0000},
+ {"103.6FM", 0x19E6, 0x0000},
+ {"103.8FM", 0x19F3, 0x0000},
+ {"104FM", 0x1A00, 0x0000},
+ {"104.2FM", 0x1A0C, 0x0000},
+ {"104.4FM", 0x1A19, 0x0000},
+ {"104.6FM", 0x1A26, 0x0000},
+ {"104.8FM", 0x1A33, 0x0000},
+ {"105FM", 0x1A40, 0x0000},
+ {"105.2FM", 0x1A4C, 0x0000},
+ {"105.4FM", 0x1A59, 0x0000},
+ {"105.6FM", 0x1A66, 0x0000},
+ {"105.8FM", 0x1A73, 0x0000},
+ {"106FM", 0x1A80, 0x0000},
+ {"106.2FM", 0x1A8C, 0x0000},
+ {"106.4FM", 0x1A99, 0x0000},
+ {"106.6FM", 0x1AA6, 0x0000},
+ {"106.8FM", 0x1AB3, 0x0000},
+ {"107FM", 0x1AC0, 0x0000},
+ {"107.2FM", 0x1ACC, 0x0000},
+ {"107.4FM", 0x1AD9, 0x0000},
+ {"107.6FM", 0x1AE6, 0x0000},
+ {"107.8FM", 0x1AF3, 0x0000},
+ {"108FM", 0x1B00, 0x0000}};
+
+
+// *** 47. Japan - FM radio
+XC_CHANNEL Japan_FM_radio[] = {
+ {"76FM", 0x1300, 0x0000},
+ {"76.1FM", 0x1306, 0x0000},
+ {"76.2FM", 0x130C, 0x0000},
+ {"76.3FM", 0x1313, 0x0000},
+ {"76.4FM", 0x1319, 0x0000},
+ {"76.5FM", 0x1320, 0x0000},
+ {"76.6FM", 0x1326, 0x0000},
+ {"76.7FM", 0x132C, 0x0000},
+ {"76.8FM", 0x1333, 0x0000},
+ {"76.9FM", 0x1339, 0x0000},
+ {"77FM", 0x1340, 0x0000},
+ {"77.1FM", 0x1346, 0x0000},
+ {"77.2FM", 0x134C, 0x0000},
+ {"77.3FM", 0x1353, 0x0000},
+ {"77.4FM", 0x1359, 0x0000},
+ {"77.5FM", 0x1360, 0x0000},
+ {"77.6FM", 0x1366, 0x0000},
+ {"77.7FM", 0x136C, 0x0000},
+ {"77.8FM", 0x1373, 0x0000},
+ {"77.9FM", 0x1379, 0x0000},
+ {"78FM", 0x1380, 0x0000},
+ {"78.1FM", 0x1386, 0x0000},
+ {"78.2FM", 0x138C, 0x0000},
+ {"78.3FM", 0x1393, 0x0000},
+ {"78.4FM", 0x1399, 0x0000},
+ {"78.5FM", 0x13A0, 0x0000},
+ {"78.6FM", 0x13A6, 0x0000},
+ {"78.7FM", 0x13AC, 0x0000},
+ {"78.8FM", 0x13B3, 0x0000},
+ {"78.9FM", 0x13B9, 0x0000},
+ {"79FM", 0x13C0, 0x0000},
+ {"79.1FM", 0x13C6, 0x0000},
+ {"79.2FM", 0x13CC, 0x0000},
+ {"79.3FM", 0x13D3, 0x0000},
+ {"79.4FM", 0x13D9, 0x0000},
+ {"79.5FM", 0x13E0, 0x0000},
+ {"79.6FM", 0x13E6, 0x0000},
+ {"79.7FM", 0x13EC, 0x0000},
+ {"79.8FM", 0x13F3, 0x0000},
+ {"79.9FM", 0x13F9, 0x0000},
+ {"80FM", 0x1400, 0x0000},
+ {"80.1FM", 0x1406, 0x0000},
+ {"80.2FM", 0x140C, 0x0000},
+ {"80.3FM", 0x1413, 0x0000},
+ {"80.4FM", 0x1419, 0x0000},
+ {"80.5FM", 0x1420, 0x0000},
+ {"80.6FM", 0x1426, 0x0000},
+ {"80.7FM", 0x142C, 0x0000},
+ {"80.8FM", 0x1433, 0x0000},
+ {"80.9FM", 0x1439, 0x0000},
+ {"81FM", 0x1440, 0x0000},
+ {"81.1FM", 0x1446, 0x0000},
+ {"81.2FM", 0x144C, 0x0000},
+ {"81.3FM", 0x1453, 0x0000},
+ {"81.4FM", 0x1459, 0x0000},
+ {"81.5FM", 0x1460, 0x0000},
+ {"81.6FM", 0x1466, 0x0000},
+ {"81.7FM", 0x146C, 0x0000},
+ {"81.8FM", 0x1473, 0x0000},
+ {"81.9FM", 0x1479, 0x0000},
+ {"82FM", 0x1480, 0x0000},
+ {"82.1FM", 0x1486, 0x0000},
+ {"82.2FM", 0x148C, 0x0000},
+ {"82.3FM", 0x1493, 0x0000},
+ {"82.4FM", 0x1499, 0x0000},
+ {"82.5FM", 0x14A0, 0x0000},
+ {"82.6FM", 0x14A6, 0x0000},
+ {"82.7FM", 0x14AC, 0x0000},
+ {"82.8FM", 0x14B3, 0x0000},
+ {"82.9FM", 0x14B9, 0x0000},
+ {"83FM", 0x14C0, 0x0000},
+ {"83.1FM", 0x14C6, 0x0000},
+ {"83.2FM", 0x14CC, 0x0000},
+ {"83.3FM", 0x14D3, 0x0000},
+ {"83.4FM", 0x14D9, 0x0000},
+ {"83.5FM", 0x14E0, 0x0000},
+ {"83.6FM", 0x14E6, 0x0000},
+ {"83.7FM", 0x14EC, 0x0000},
+ {"83.8FM", 0x14F3, 0x0000},
+ {"83.9FM", 0x14F9, 0x0000},
+ {"84FM", 0x1500, 0x0000},
+ {"84.1FM", 0x1506, 0x0000},
+ {"84.2FM", 0x150C, 0x0000},
+ {"84.3FM", 0x1513, 0x0000},
+ {"84.4FM", 0x1519, 0x0000},
+ {"84.5FM", 0x1520, 0x0000},
+ {"84.6FM", 0x1526, 0x0000},
+ {"84.7FM", 0x152C, 0x0000},
+ {"84.8FM", 0x1533, 0x0000},
+ {"84.9FM", 0x1539, 0x0000},
+ {"85FM", 0x1540, 0x0000},
+ {"85.1FM", 0x1546, 0x0000},
+ {"85.2FM", 0x154C, 0x0000},
+ {"85.3FM", 0x1553, 0x0000},
+ {"85.4FM", 0x1559, 0x0000},
+ {"85.5FM", 0x1560, 0x0000},
+ {"85.6FM", 0x1566, 0x0000},
+ {"85.7FM", 0x156C, 0x0000},
+ {"85.8FM", 0x1573, 0x0000},
+ {"85.9FM", 0x1579, 0x0000},
+ {"86FM", 0x1580, 0x0000},
+ {"86.1FM", 0x1586, 0x0000},
+ {"86.2FM", 0x158C, 0x0000},
+ {"86.3FM", 0x1593, 0x0000},
+ {"86.4FM", 0x1599, 0x0000},
+ {"86.5FM", 0x15A0, 0x0000},
+ {"86.6FM", 0x15A6, 0x0000},
+ {"86.7FM", 0x15AC, 0x0000},
+ {"86.8FM", 0x15B3, 0x0000},
+ {"86.9FM", 0x15B9, 0x0000},
+ {"87FM", 0x15C0, 0x0000},
+ {"87.1FM", 0x15C6, 0x0000},
+ {"87.2FM", 0x15CC, 0x0000},
+ {"87.3FM", 0x15D3, 0x0000},
+ {"87.4FM", 0x15D9, 0x0000},
+ {"87.5FM", 0x15E0, 0x0000},
+ {"87.6FM", 0x15E6, 0x0000},
+ {"87.7FM", 0x15EC, 0x0000},
+ {"87.8FM", 0x15F3, 0x0000},
+ {"87.9FM", 0x15F9, 0x0000},
+ {"88FM", 0x1600, 0x0000},
+ {"88.1FM", 0x1606, 0x0000},
+ {"88.2FM", 0x160C, 0x0000},
+ {"88.3FM", 0x1613, 0x0000},
+ {"88.4FM", 0x1619, 0x0000},
+ {"88.5FM", 0x1620, 0x0000},
+ {"88.6FM", 0x1626, 0x0000},
+ {"88.7FM", 0x162C, 0x0000},
+ {"88.8FM", 0x1633, 0x0000},
+ {"88.9FM", 0x1639, 0x0000},
+ {"89FM", 0x1640, 0x0000},
+ {"89.1FM", 0x1646, 0x0000},
+ {"89.2FM", 0x164C, 0x0000},
+ {"89.3FM", 0x1653, 0x0000},
+ {"89.4FM", 0x1659, 0x0000},
+ {"89.5FM", 0x1660, 0x0000},
+ {"89.6FM", 0x1666, 0x0000},
+ {"89.7FM", 0x166C, 0x0000},
+ {"89.8FM", 0x1673, 0x0000},
+ {"89.9FM", 0x1679, 0x0000},
+ {"90FM", 0x1680, 0x0000}};
+
+
+XC_CHANNEL_MAP AllChannelMaps[] = {
+ {"USA - Analog - Air", 68, USA_Analog_Air},
+ {"USA - Analog - Cable", 135, USA_Analog_Cable},
+ {"USA - Digital - Air", 68, USA_Digital_Air},
+ {"USA - Digital - Cable", 135, USA_Digital_Cable},
+ {"Taiwan - Analog - Air", 68, Taiwan_Analog_Air},
+ {"Taiwan - Analog - Cable", 135, Taiwan_Analog_Cable},
+ {"Taiwan - Digital - Air", 68, Taiwan_Digital_Air},
+ {"Taiwan - Digital - Cable", 135, Taiwan_Digital_Cable},
+ {"Japan - Analog - Air", 62, Japan_Analog_Air},
+ {"Japan - Analog - Cable", 62, Japan_Analog_Cable},
+ {"Japan - Digital - Air", 62, Japan_Digital_Air},
+ {"Japan - Digital - Cable", 62, Japan_Digital_Cable},
+ {"CCIR - Analog - Air", 60, CCIR_Analog_Air},
+ {"CCIR - Analog - Cable", 57, CCIR_Analog_Cable},
+ {"CCIR - Digital - Air", 60, CCIR_Digital_Air},
+ {"CCIR - Digital - Cable", 57, CCIR_Digital_Cable},
+ {"India - Analog - Air", 106, India_Analog_Air},
+ {"India - Analog - Cable", 106, India_Analog_Cable},
+ {"India - Digital - Air", 106, India_Digital_Air},
+ {"India - Digital - Cable", 106, India_Digital_Cable},
+ {"France - Analog - Air", 59, France_Analog_Air},
+ {"France - Analog - Cable", 89, France_Analog_Cable},
+ {"France - Digital - Air", 59, France_Digital_Air},
+ {"France - Digital - Cable", 89, France_Digital_Cable},
+ {"UK - Analog - Air", 49, UK_Analog_Air},
+ {"UK - Analog - Cable", 81, UK_Analog_Cable},
+ {"UK - Digital - Air", 49, UK_Digital_Air},
+ {"UK - Digital - Cable", 81, UK_Digital_Cable},
+ {"Ireland - Analog - Air", 58, Ireland_Analog_Air},
+ {"Ireland - Analog - Cable", 81, Ireland_Analog_Cable},
+ {"Ireland - Digital - Air", 58, Ireland_Digital_Air},
+ {"Ireland - Digital - Cable", 81, Ireland_Digital_Cable},
+ {"China - Analog - Air", 57, China_Analog_Air},
+ {"China - Analog - Cable", 99, China_Analog_Cable},
+ {"China - Digital - Air", 57, China_Digital_Air},
+ {"China - Digital - Cable", 99, China_Digital_Cable},
+ {"Australia - Analog - Air", 56, Australia_Analog_Air},
+ {"Australia - Analog - Cable", 80, Australia_Analog_Cable},
+ {"Australia - Digital - Air", 56, Australia_Digital_Air},
+ {"Australia - Digital - Cable", 80, Australia_Digital_Cable},
+ {"OIRT - Analog - Air", 61, OIRT_Analog_Air},
+ {"OIRT - Analog - Cable", 54, OIRT_Analog_Cable},
+ {"OIRT - Digital - Air", 61, OIRT_Digital_Air},
+ {"OIRT - Digital - Cable", 54, OIRT_Digital_Cable},
+ {"USA - FM radio", 101, USA_FM_radio},
+ {"Europe - FM radio", 103, Europe_FM_radio},
+ {"Japan - FM radio", 141, Japan_FM_radio}};
+
+#endif
diff --git a/api/xc4000_control.c b/api/xc4000_control.c
new file mode 100644
index 0000000..d061c89
--- /dev/null
+++ b/api/xc4000_control.c
@@ -0,0 +1,347 @@
+//
+// control of the XC4000 via the i2c interface.
+//
+// Filename : xc4000_control.cpp
+// Generated : 1/22/2007 4:41:24 PM
+//
+// (c) 2007, Xceive Corporation
+//
+//
+// Disclaimer:
+//
+// Xceive assumes no responsibility for any consequences arising from the use
+// of this computer code, nor from any infringement of patents or the rights of
+// third parties that may result from its use. No license is granted by
+// implication or otherwise under any patent or other rights of Xceive. The
+// customer is responsible for assuring that proper design and operating
+// safeguards are observed to minimize inherent and procedural hazards. Xceive
+// assumes no responsibility for applications assistance or customer product
+// design.
+// The present computer code is not authorized for use in medical, life-support
+// equipment, or any other application involving a potential risk of severe
+// property or environmental damage, personal injury, or death without prior
+// express written approval of Xceive. Any such use is understood to be
+// entirely at the user's risk.
+//
+
+
+//#include <math.h> //for Linux
+#include "xc4000_control.h"
+#include "i2c_driver.h"
+
+#define XREG_INIT 0x00
+#define XREG_VIDEO_MODE 0x01
+#define XREG_AUDIO_MODE 0x02
+#define XREG_RF_FREQ 0x03
+#define XREG_DCODE 0x04
+#define XREG_DIRECTSITTING_MODE 0x05
+#define XREG_SEEK_MODE 0x06
+#define XREG_POWER_DOWN 0x08
+#define XREG_RF_MODE 0x0A
+#define XREG_AMPLITUDE 0x10
+
+#define XREG_ADC_ENV 0x00
+#define XREG_QUALITY 0x01
+#define XREG_FRAME_LINES 0x02
+#define XREG_HSYNC_FREQ 0x03
+#define XREG_LOCK 0x04
+#define XREG_FREQ_ERROR 0x05
+#define XREG_SNR 0x06
+#define XREG_VERSION 0x07
+#define XREG_PRODUCT_ID 0x08
+
+/* *************************************************************** */
+/* *************************************************************** */
+/* */
+/* CODE PROVIDED BY XCEIVE */
+/* */
+/* *************************************************************** */
+/* *************************************************************** */
+int xc_write_reg(unsigned short int regAddr, unsigned short int i2cData)
+{
+ unsigned char buf[4];
+ buf[0] = (regAddr >> 8) & 0xFF;
+ buf[1] = regAddr & 0xFF;
+ buf[2] = (i2cData >> 8) & 0xFF;
+ buf[3] = i2cData & 0xFF;
+ return xc_send_i2c_data(buf, 4);
+}
+
+int xc_read_reg(unsigned short int regAddr, unsigned short int *i2cData)
+{
+ unsigned char buf[2];
+ int result;
+
+ buf[0] = (regAddr >> 8) & 0xFF;
+ buf[1] = regAddr & 0xFF;
+ result = xc_send_i2c_data(buf, 2);
+ if (result!=XC_RESULT_SUCCESS)
+ return result;
+
+ result = xc_read_i2c_data(buf, 2);
+ if (result!=XC_RESULT_SUCCESS)
+ return result;
+
+ *i2cData = buf[0] * 256 + buf[1];
+ return XC_RESULT_SUCCESS;
+}
+
+int xc_load_i2c_sequence(unsigned char i2c_sequence[])
+{
+ int i,nbytes_to_send,result;
+ unsigned int length, pos, index;
+ unsigned char buf[XC_MAX_I2C_WRITE_LENGTH];
+
+ index=0;
+ while ((i2c_sequence[index]!=0xFF) || (i2c_sequence[index+1]!=0xFF))
+ {
+ length = i2c_sequence[index]* 256 + i2c_sequence[index+1];
+ if (length==0x0000)
+ {
+ //this is in fact a RESET command
+ result = xc_reset();
+ index += 2;
+ if (result!=XC_RESULT_SUCCESS)
+ return result;
+ }
+ else if (length & 0x8000)
+ {
+ //this is in fact a WAIT command
+ xc_wait(length & 0x7FFF);
+ index += 2;
+ }
+ else
+ {
+ //send i2c data whilst ensuring individual transactions do
+ //not exceed XC_MAX_I2C_WRITE_LENGTH bytes
+ index += 2;
+ buf[0] = i2c_sequence[index];
+ buf[1] = i2c_sequence[index + 1];
+ pos = 2;
+ while (pos < length)
+ {
+ if ((length - pos) > XC_MAX_I2C_WRITE_LENGTH - 2)
+ {
+ nbytes_to_send = XC_MAX_I2C_WRITE_LENGTH;
+ }
+ else
+ {
+ nbytes_to_send = (length - pos + 2);
+ }
+ for (i=2; i<nbytes_to_send; i++)
+ {
+ buf[i] = i2c_sequence[index + pos + i - 2];
+ }
+ result = xc_send_i2c_data(buf, nbytes_to_send);
+
+ if (result!=XC_RESULT_SUCCESS)
+ return result;
+
+ pos += nbytes_to_send - 2;
+ }
+ index += length;
+ }
+ }
+ return XC_RESULT_SUCCESS;
+}
+
+int xc_initialize()
+{
+ return xc_write_reg(XREG_INIT, 0);
+}
+
+int xc_SetTVStandard(unsigned short int VideoMode, unsigned short int AudioMode)
+{
+ int returnStatus = xc_write_reg(XREG_VIDEO_MODE, VideoMode);
+ if (returnStatus == XC_RESULT_SUCCESS)
+ returnStatus = xc_write_reg(XREG_AUDIO_MODE, AudioMode);
+ return returnStatus;
+}
+
+int xc_shutdown()
+{
+ return xc_write_reg(XREG_POWER_DOWN, 0);
+}
+
+int xc_enter_directsitting_mode()
+{
+ return xc_write_reg(XREG_DIRECTSITTING_MODE, 0);
+}
+
+int xc_exit_directsitting_mode()
+{
+ unsigned char buf[]={0x00,0x00,0x00,0x00,0x88};
+ return xc_send_i2c_data(buf, 5);
+}
+
+int xc_set_RF_frequency(long frequency_in_hz)
+{
+ unsigned int frequency_code;
+ if ((frequency_in_hz>1023000000) || (frequency_in_hz<1000000))
+ return XC_RESULT_OUT_OF_RANGE;
+
+ frequency_code = (unsigned int)(frequency_in_hz / 15625L);
+ return xc_write_reg(XREG_RF_FREQ ,frequency_code);
+}
+
+int xc_set_dcode( int dcode)
+{
+ return xc_write_reg(XREG_DCODE ,dcode&0x0f);
+}
+
+int xc_rf_mode(int mode)
+{
+ return xc_write_reg(XREG_RF_MODE, mode&0x01); // 0 is Air; 1 is cable
+}
+
+
+
+//int xc_set_IF_frequency(long frequency_in_hz)
+//{
+// unsigned int frequency_code = (frequency_in_hz * 1024)/1000000;
+// return xc_write_reg(XREG_IF_OUT ,frequency_code);
+//}
+
+
+int xc_get_ADC_Envelope(unsigned short int *adc_envelope)
+{
+ return xc_read_reg(XREG_ADC_ENV, adc_envelope);
+}
+
+// Obtain current frequency error
+// Refer to datasheet for values.
+int xc_get_frequency_error(long *frequency_error_hz)
+{
+ unsigned short int data;
+ short int signed_data;
+ int result;
+
+ result = xc_read_reg(XREG_FREQ_ERROR, &data);
+ if (result)
+ return result;
+
+ signed_data = (short int)data;
+ (*frequency_error_hz) = signed_data * 15625;
+
+ return 0;
+}
+
+// Obtain current lock status.
+// Refer to datasheet for values.
+int xc_get_lock_status(unsigned short int *lock_status)
+{
+ return xc_read_reg(XREG_LOCK, lock_status);
+}
+
+// Obtain Version codes.
+// Refer to datasheet for values.
+int xc_get_version(unsigned char* hw_majorversion,
+ unsigned char* hw_minorversion,
+ unsigned char* fw_majorversion,
+ unsigned char* fw_minorversion)
+{
+ unsigned short int data;
+ int result;
+
+ result = xc_read_reg(XREG_VERSION, &data);
+ if (result)
+ return result;
+
+ (*hw_majorversion) = (data>>12) & 0x0F;
+ (*hw_minorversion) = (data>>8) & 0x0F;
+ (*fw_majorversion) = (data>>4) & 0x0F;
+ (*fw_minorversion) = (data) & 0x0F;
+
+ return 0;
+}
+
+// Obtain Product ID.
+// Refer to datasheet for values.
+int xc_get_product_id(unsigned short int *product_id)
+{
+ return xc_read_reg(XREG_PRODUCT_ID, product_id);
+}
+
+// Obtain current horizontal video frequency.
+// Refer to datasheet for values.
+int xc_get_hsync_freq(int *hsync_freq_hz)
+{
+ unsigned short int regData;
+ int result;
+
+ result = xc_read_reg(XREG_HSYNC_FREQ, &regData);
+ if (result)
+ return result;
+ (*hsync_freq_hz) = ((regData & 0x0fff) * 763)/100;
+ return result;
+}
+
+ // Obtain current number of lines per frame.
+ // Refer to datasheet for values.
+int xc_get_frame_lines(unsigned short int *frame_lines)
+{
+ return xc_read_reg(XREG_FRAME_LINES, frame_lines);
+}
+
+// Obtain current video signal quality.
+// Refer to datasheet for values.
+int xc_get_quality(unsigned short int *quality)
+{
+ return xc_read_reg(XREG_QUALITY, quality);
+}
+
+unsigned short int WaitForLock()
+{
+ unsigned short int lockState = 0;
+ int watchDogCount = 40;
+ while ((lockState == 0) && (watchDogCount > 0))
+ {
+ xc_get_lock_status(&lockState);
+ if (lockState != 1)
+ {
+ xc_wait(5); // wait 5 ms
+ watchDogCount--;
+ }
+ }
+ return lockState;
+}
+
+int xc_tune_channel(long chnl_freq)//for Linux
+{
+ long freq_error, min_freq_error, max_freq_error;
+ unsigned short int quality, max_quality;
+ int res;
+ int chnl_found = 0;//for Linux
+
+ if (xc_set_RF_frequency(chnl_freq) != XC_RESULT_SUCCESS)
+ return 0;//for Linux
+ if (WaitForLock()== 1)
+ {
+ xc_wait(6);
+ res=xc_get_frequency_error(&freq_error);
+ if (res!=XC_RESULT_SUCCESS) return res;
+ max_freq_error = freq_error;
+ min_freq_error = freq_error;
+
+ xc_wait(6);
+
+ res=xc_get_frequency_error(&freq_error);
+ if (res!=XC_RESULT_SUCCESS) return res;
+ max_freq_error = (max_freq_error>freq_error) ? max_freq_error : freq_error;
+ min_freq_error = (min_freq_error<freq_error) ? min_freq_error : freq_error;
+
+ xc_wait(6);
+
+ res=xc_get_frequency_error(&freq_error);
+ if (res!=XC_RESULT_SUCCESS) return res;
+ max_freq_error = (max_freq_error>freq_error) ? max_freq_error : freq_error;
+ min_freq_error = (min_freq_error<freq_error) ? min_freq_error : freq_error;
+
+ //We got lock, but now we check that carrier is stable and that quality is sufficient
+ if ((max_freq_error-min_freq_error)<60000)
+ chnl_found = 1;//for Linux
+ //add new channel
+
+ }
+ return chnl_found;
+}
diff --git a/api/xc4000_control.h b/api/xc4000_control.h
new file mode 100644
index 0000000..70e97ce
--- /dev/null
+++ b/api/xc4000_control.h
@@ -0,0 +1,145 @@
+//
+// C header file for control of the XC4000 via the i2c interface.
+//
+// Filename : xc4000_control.h
+// Generated : 1/22/2007 4:41:24 PM
+//
+// (c) 2007, Xceive Corporation
+//
+//
+// Disclaimer:
+//
+// Xceive assumes no responsibility for any consequences arising from the use
+// of this computer code, nor from any infringement of patents or the rights of
+// third parties that may result from its use. No license is granted by
+// implication or otherwise under any patent or other rights of Xceive. The
+// customer is responsible for assuring that proper design and operating
+// safeguards are observed to minimize inherent and procedural hazards. Xceive
+// assumes no responsibility for applications assistance or customer product
+// design.
+// The present computer code is not authorized for use in medical, life-support
+// equipment, or any other application involving a potential risk of severe
+// property or environmental damage, personal injury, or death without prior
+// express written approval of Xceive. Any such use is understood to be
+// entirely at the user's risk.
+//
+//
+
+#ifndef __XC4000_CONTROL_H
+#define __XC4000_CONTROL_H
+
+/* *********************************************************************** */
+/* Defines */
+/* *********************************************************************** */
+
+#define XC_MAX_I2C_WRITE_LENGTH 52
+
+#define XC_RESULT_SUCCESS 0
+#define XC_RESULT_RESET_FAILURE 1
+#define XC_RESULT_I2C_WRITE_FAILURE 2
+#define XC_RESULT_I2C_READ_FAILURE 3
+#define XC_RESULT_OUT_OF_RANGE 5
+
+/* *********************************************************************** */
+/* Type Declarations */
+/* *********************************************************************** */
+
+/*
+ This represents an I2C firmware file encoded as a string of unsigned char.
+ Format is as follows:
+
+ char[0 ]=len0_MSB -> len = len_MSB * 256 + len_LSB
+ char[1 ]=len0_LSB -> length of first write transaction
+ char[2 ]=data0 -> first byte to be sent
+ char[3 ]=data1
+ char[4 ]=data2
+ char[ ]=...
+ char[M ]=dataN -> last byte to be sent
+ char[M+1]=len1_MSB -> len = len_MSB * 256 + len_LSB
+ char[M+2]=len1_LSB -> length of second write transaction
+ char[M+3]=data0
+ char[M+4]=data1
+ ...
+ etc.
+
+ The [len] value should be interpreted as follows:
+
+ len= len_MSB _ len_LSB
+ len=1111_1111_1111_1111 : End of I2C_SEQUENCE
+ len=0000_0000_0000_0000 : Reset command: Do hardware reset
+ len=0NNN_NNNN_NNNN_NNNN : Normal transaction: number of bytes = {1:32767)
+ len=1WWW_WWWW_WWWW_WWWW : Wait command: wait for {1:32767} ms
+
+ For the RESET and WAIT commands, the two following bytes will contain
+ immediately the length of the following transaction.
+
+*/
+typedef struct {
+ char *Name;
+ unsigned char *ConfFile;
+ unsigned short VideoMode;
+ unsigned short AudioMode;
+ double SCode;
+} XC_TV_STANDARD;
+
+typedef unsigned char XC4000_SCODE_TABLE[16][13];
+
+// Download firmware
+int xc_load_i2c_sequence(unsigned char i2c_sequence[]);
+
+// Perform calibration and initialize default parameter
+int xc_initialize();
+
+// Initialize device according to supplied tv mode.
+int xc_SetTVStandard(unsigned short int VideoMode, unsigned short int AudioMode);
+
+int xc_set_RF_frequency(long frequency_in_hz);
+
+int xc_set_dcode( int dcode);
+
+//int xc_set_IF_frequency(long frequency_in_hz);
+
+// Power-down device.
+int xc_shutdown();
+
+// enter direct-setting-mode
+int xc_enter_directsitting_mode();
+
+// exit direct-setting-mode
+int xc_exit_directsitting_mode();
+
+// set RF signal source
+int xc_rf_mode(int mode);
+
+
+// Get ADC envelope value.
+int xc_get_ADC_Envelope(unsigned short int *adc_envelope);
+
+// Get current frequency error.
+int xc_get_frequency_error(long *frequency_error_mhz);
+
+// Get lock status.
+int xc_get_lock_status(unsigned short int *lock_status);
+
+// Get device version information.
+int xc_get_version( unsigned char* hw_majorversion,unsigned char* hw_minorversion,
+ unsigned char* fw_majorversion, unsigned char* fw_minorversion);
+
+// Get device product ID.
+int xc_get_product_id(unsigned short int *product_id);
+
+// Get horizontal sync frequency.
+int xc_get_hsync_freq(int *hsync_freq_hz);
+
+// Get number of lines per frame.
+int xc_get_frame_lines(unsigned short int *frame_lines);
+
+// Get quality estimate.
+int xc_get_quality(unsigned short int *quality);
+
+// Tune a channel
+int xc_tune_channel(long chnl_freq); //for Linux
+
+#endif
+
+
diff --git a/api/xc4000_firmwares.h b/api/xc4000_firmwares.h
new file mode 100644
index 0000000..809b3af
--- /dev/null
+++ b/api/xc4000_firmwares.h
@@ -0,0 +1,2993 @@
+//
+// Automatically generated C header file for
+// control of the XC4000 via the i2c interface.
+//
+// Filename : xc4000_firmwares.h
+// Generated : 9/25/2007 4:58:46 PM
+// Firmware version : 1.2
+//
+// (c) 2007, Xceive Corporation
+//
+
+#ifndef __XC4000_FIRMWARES_H
+#define __XC4000_FIRMWARES_H
+
+
+// ************************************************************
+// *** BASE FIRMWARE FILES
+// *** These declarations are not used directly by user
+// ************************************************************
+
+unsigned char XC4000_firmware_SEQUENCE[8236] = {
+
+ 0x00, 0x00, /* RESET */
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x3D, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x3D,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x20, 0x04, /* Length = 8196 bytes */
+ 0x00, 0x28, 0x02, 0x49, 0xD0, 0xED, 0xF1, 0x08, 0xF1, 0x01,
+ 0x02, 0xDF, 0xB1, 0x12, 0xF1, 0x01, 0x02, 0x7E, 0xB1, 0x12,
+ 0xF1, 0x01, 0x02, 0x5C, 0xB1, 0x12, 0xF1, 0x01, 0x02, 0x58,
+ 0xF0, 0x19, 0x02, 0x7C, 0xE0, 0x05, 0x0E, 0x41, 0xF0, 0x19,
+ 0x02, 0xDF, 0xE0, 0x05, 0x0F, 0x22, 0xE0, 0x05, 0x0D, 0xCD,
+ 0xD5, 0x01, 0xE0, 0x05, 0x0B, 0x6C, 0xE0, 0x05, 0x0F, 0xBD,
+ 0xD0, 0xF9, 0xC0, 0x01, 0xF1, 0x08, 0xF1, 0x01, 0x02, 0xDF,
+ 0xD0, 0xF7, 0xC0, 0x01, 0xF1, 0x08, 0xF1, 0x01, 0x02, 0xDF,
+ 0xA0, 0x03, 0xF1, 0x08, 0xB1, 0x12, 0xF0, 0x1C, 0xF1, 0x05,
+ 0x02, 0xDF, 0xD1, 0x8D, 0xF0, 0x1C, 0xD5, 0x30, 0xE0, 0x05,
+ 0x07, 0x68, 0xF0, 0x19, 0x02, 0xDF, 0xD1, 0x03, 0xF0, 0x1C,
+ 0xF0, 0x0A, 0xE0, 0x05, 0x0F, 0x22, 0xD5, 0x00, 0xE0, 0x05,
+ 0x08, 0x0B, 0xD0, 0x9B, 0xC0, 0x01, 0x00, 0x05, 0xF2, 0x08,
+ 0xD4, 0xD4, 0xC4, 0x03, 0xE0, 0x05, 0x07, 0x4C, 0xB1, 0x68,
+ 0xF1, 0x01, 0x02, 0x9B, 0x81, 0x23, 0xA1, 0x1B, 0x11, 0x16,
+ 0xF1, 0x01, 0x02, 0x9B, 0xB4, 0x42, 0xF4, 0x05, 0x02, 0x8A,
+ 0xE0, 0x05, 0x0D, 0xCD, 0xF0, 0x19, 0x02, 0xAF, 0xD5, 0x00,
+ 0xE0, 0x05, 0x08, 0x0B, 0x85, 0x52, 0xD0, 0xF1, 0xC0, 0x01,
+ 0x00, 0x05, 0xF2, 0x08, 0xA0, 0x03, 0xF1, 0x08, 0xD0, 0x00,
+ 0xC0, 0xC0, 0xF0, 0x1C, 0xD0, 0x00, 0xC0, 0xC4, 0xF0, 0x2C,
+ 0xE0, 0x05, 0x0D, 0xCD, 0xE0, 0x05, 0x0B, 0x16, 0xF0, 0x06,
+ 0xD5, 0x01, 0xE0, 0x05, 0x0B, 0x6C, 0xE0, 0x05, 0x07, 0x0D,
+ 0xF5, 0x05, 0x02, 0xCB, 0xE0, 0x05, 0x07, 0x39, 0xC1, 0x06,
+ 0x5D, 0xD5, 0xF1, 0x05, 0x02, 0xCB, 0xC1, 0x09, 0x5D, 0x5D,
+ 0xF1, 0x05, 0x02, 0xCB, 0xE0, 0x05, 0x08, 0xBB, 0xB5, 0x54,
+ 0xF5, 0x01, 0x02, 0xD8, 0xB5, 0x52, 0xF5, 0x01, 0x02, 0xD4,
+ 0xF0, 0x19, 0x02, 0xDF, 0xD0, 0x98, 0xC0, 0x01, 0xF3, 0x08,
+ 0xB3, 0x32, 0xF0, 0x3C, 0xF3, 0x05, 0x02, 0xDF, 0xD3, 0x14,
+ 0xF0, 0x3C, 0xD0, 0xEA, 0xF1, 0x08, 0xD0, 0xEB, 0xF0, 0x1C,
+ 0xD1, 0x01, 0xD0, 0xEC, 0xF0, 0x1C, 0xD1, 0x03, 0xD0, 0xED,
+ 0xF0, 0x1C, 0xF0, 0x1B, 0xF0, 0x0E, 0xD0, 0xEC, 0xF2, 0x08,
+ 0xF2, 0x01, 0x03, 0xBE, 0xB2, 0x22, 0xF2, 0x01, 0x02, 0xF8,
+ 0xB2, 0x22, 0xF2, 0x01, 0x03, 0x23, 0xB2, 0x22, 0xF2, 0x01,
+ 0x03, 0x49, 0xB2, 0x22, 0xF2, 0x01, 0x03, 0x7D, 0xB2, 0x22,
+ 0xF2, 0x01, 0x03, 0xBC, 0xB2, 0x22, 0xF2, 0x01, 0x03, 0x56,
+ 0xF0, 0x19, 0x03, 0xBE, 0xD5, 0xFF, 0xE0, 0x05, 0x08, 0x0B,
+ 0xD6, 0x00, 0xC6, 0xBF, 0xF5, 0x05, 0x03, 0x01, 0xD6, 0x00,
+ 0xC6, 0x3F, 0xD5, 0x08, 0xC5, 0xA0, 0xE0, 0x05, 0x07, 0x6C,
+ 0xD2, 0x01, 0xF0, 0x2C, 0xE0, 0x05, 0x0E, 0xDD, 0xD1, 0xE7,
+ 0xD2, 0x00, 0xF1, 0x2C, 0xD6, 0x0C, 0xD5, 0x14, 0xE0, 0x05,
+ 0x07, 0x68, 0xE0, 0x05, 0x08, 0xA2, 0xE0, 0x05, 0x09, 0x34,
+ 0xE0, 0x05, 0x09, 0xCA, 0xE0, 0x05, 0x09, 0x12, 0xD5, 0x20,
+ 0xE0, 0x05, 0x0B, 0x6C, 0xD1, 0x7B, 0xC1, 0x01, 0xD2, 0x28,
+ 0xF1, 0x2C, 0xD2, 0x02, 0xF0, 0x2C, 0xF0, 0x19, 0x03, 0xBE,
+ 0xD6, 0x0E, 0xD5, 0x0E, 0xE0, 0x05, 0x07, 0x68, 0xD5, 0x01,
+ 0xE0, 0x05, 0x0B, 0x6C, 0xE0, 0x05, 0x0E, 0xF6, 0xA4, 0x51,
+ 0xE0, 0x05, 0x0F, 0xBD, 0xF4, 0x05, 0x03, 0xBE, 0xC2, 0x20,
+ 0xF2, 0x09, 0xE0, 0x05, 0x09, 0x12, 0xD2, 0xA0, 0xF2, 0x09,
+ 0xD5, 0x3C, 0xE0, 0x05, 0x07, 0x68, 0xD2, 0xA0, 0xF2, 0x09,
+ 0xE0, 0x05, 0x09, 0x12, 0xE0, 0x05, 0x0B, 0x60, 0xF5, 0x05,
+ 0x03, 0xA5, 0xD5, 0xCC, 0xE0, 0x05, 0x08, 0x0B, 0xF5, 0x05,
+ 0x03, 0xA1, 0xD2, 0x03, 0xF0, 0x2C, 0xE0, 0x05, 0x07, 0x0D,
+ 0xF5, 0x01, 0x03, 0x7B, 0xD1, 0x7B, 0xC1, 0x01, 0xF2, 0x18,
+ 0xF2, 0x01, 0x03, 0x56, 0xB2, 0x22, 0xF1, 0x2C, 0xF0, 0x19,
+ 0x03, 0xBE, 0xD1, 0xF7, 0xF3, 0x18, 0xA3, 0x33, 0xD1, 0xD4,
+ 0xC1, 0x01, 0xF2, 0x18, 0x4E, 0xFE, 0xF2, 0x01, 0x03, 0x65,
+ 0xD1, 0xF2, 0xD2, 0x02, 0xF1, 0x2C, 0xC2, 0x10, 0xF2, 0x09,
+ 0xD2, 0x01, 0x22, 0x32, 0x13, 0x32, 0xD1, 0xF7, 0xF1, 0x3C,
+ 0xD1, 0xCC, 0xC1, 0x01, 0x01, 0x13, 0xF2, 0x18, 0xD1, 0xEA,
+ 0xF4, 0x18, 0x04, 0x42, 0xA1, 0x13, 0xF1, 0x4C, 0xC2, 0x01,
+ 0xF2, 0x09, 0xD1, 0xFC, 0xC1, 0x01, 0xF2, 0x18, 0xA2, 0x23,
+ 0xF1, 0x2C, 0xF0, 0x19, 0x02, 0xF8, 0xD2, 0x04, 0xF0, 0x2C,
+ 0xE0, 0x05, 0x08, 0xBB, 0xF5, 0x01, 0x03, 0x89, 0xB5, 0x52,
+ 0xF5, 0x01, 0x03, 0xBE, 0xB5, 0x52, 0xF5, 0x01, 0x02, 0xF8,
+ 0xF0, 0x19, 0x03, 0x56, 0xD5, 0x20, 0xE0, 0x05, 0x09, 0xF4,
+ 0xD6, 0x12, 0xD5, 0x14, 0xE0, 0x05, 0x07, 0x68, 0xD5, 0x00,
+ 0xC5, 0x81, 0xE0, 0x05, 0x08, 0x66, 0xD1, 0xED, 0xD2, 0x01,
+ 0xF1, 0x2C, 0xD1, 0xF2, 0xF1, 0x2C, 0xD2, 0x05, 0xF0, 0x2C,
+ 0xD6, 0x15, 0xD5, 0x0E, 0xE0, 0x05, 0x07, 0x68, 0xF0, 0x19,
+ 0x03, 0xBE, 0xD6, 0x30, 0xD5, 0x24, 0xE0, 0x05, 0x07, 0x68,
+ 0xD1, 0xF9, 0xC1, 0x01, 0xF2, 0x18, 0xF2, 0x01, 0x03, 0xB1,
+ 0xD6, 0x04, 0xD5, 0x2F, 0xE0, 0x05, 0x07, 0x68, 0xD6, 0x01,
+ 0xE0, 0x05, 0x07, 0x68, 0xD1, 0xED, 0xD2, 0x02, 0xF1, 0x2C,
+ 0xD2, 0x00, 0xF0, 0x2C, 0xD6, 0x15, 0xD5, 0x0E, 0xE0, 0x05,
+ 0x07, 0x68, 0xF0, 0x19, 0x03, 0xBE, 0xF0, 0x19, 0x03, 0xBE,
+ 0xF0, 0x0E, 0xE0, 0x00, 0x07, 0x8B, 0xA3, 0x01, 0xF3, 0x01,
+ 0x04, 0x52, 0xB3, 0x32, 0xF3, 0x01, 0x04, 0x41, 0xB3, 0x32,
+ 0xF3, 0x01, 0x04, 0x3B, 0xB3, 0x32, 0xF3, 0x01, 0x05, 0x68,
+ 0xB3, 0x32, 0xF3, 0x01, 0x04, 0xC8, 0xB3, 0x32, 0xF3, 0x01,
+ 0x04, 0x92, 0xB3, 0x32, 0xF3, 0x01, 0x04, 0x9A, 0xB3, 0x32,
+ 0xF3, 0x01, 0x05, 0x39, 0xB3, 0x32, 0xF3, 0x01, 0x04, 0x8E,
+ 0xB3, 0x32, 0xF3, 0x01, 0x05, 0x51, 0xB3, 0x32, 0xF3, 0x01,
+ 0x04, 0xAF, 0xB3, 0x32, 0xF3, 0x01, 0x05, 0x5F, 0xB3, 0x32,
+ 0xF3, 0x01, 0x05, 0x62, 0xB3, 0x32, 0xF3, 0x01, 0x05, 0x5C,
+ 0xB3, 0x32, 0xF3, 0x01, 0x04, 0xCE, 0xB3, 0x32, 0xF3, 0x01,
+ 0x04, 0xEB, 0xB3, 0x32, 0xF3, 0x01, 0x05, 0x9C, 0xD4, 0x00,
+ 0xC4, 0x80, 0x2F, 0xC4, 0xF3, 0x05, 0x04, 0x0D, 0x84, 0x43,
+ 0x2F, 0xC4, 0xF3, 0x01, 0x05, 0xD6, 0x84, 0x4D, 0x2F, 0xC4,
+ 0xF3, 0x05, 0x04, 0x31, 0x84, 0x43, 0x2F, 0xC4, 0xF3, 0x05,
+ 0x04, 0x1C, 0x84, 0x4F, 0x2F, 0xC4, 0xD2, 0x99, 0xC2, 0x01,
+ 0x02, 0x23, 0xF2, 0x1C, 0xF0, 0x19, 0x05, 0xD4, 0x82, 0x06,
+ 0x82, 0x27, 0xD3, 0xFF, 0xC3, 0x07, 0x4F, 0xEF, 0xF3, 0x01,
+ 0x04, 0x19, 0xD3, 0x68, 0x12, 0x23, 0xF2, 0x14, 0xF0, 0x19,
+ 0x05, 0xD4, 0xF2, 0x1C, 0xF0, 0x19, 0x05, 0xD4, 0xA4, 0x11,
+ 0xD2, 0x99, 0xC2, 0x01, 0xF6, 0x28, 0xA2, 0x23, 0xF5, 0x28,
+ 0xD2, 0x00, 0xC2, 0x80, 0x2E, 0xE4, 0xF2, 0x01, 0x04, 0x2B,
+ 0xE0, 0x04, 0x07, 0x6C, 0xF0, 0x19, 0x04, 0x2F, 0xD2, 0x0F,
+ 0x2C, 0x2C, 0xE0, 0x04, 0x07, 0xE6, 0xF0, 0x19, 0x05, 0xD4,
+ 0xA4, 0x11, 0xE0, 0x04, 0x07, 0x5A, 0xD2, 0x99, 0xC2, 0x01,
+ 0xF2, 0x6C, 0xA2, 0x23, 0xF2, 0x5C, 0xF0, 0x19, 0x05, 0xD4,
+ 0xD2, 0xE9, 0xF2, 0x1C, 0xE0, 0x01, 0x08, 0x73, 0xF0, 0x19,
+ 0x05, 0xD6, 0xE0, 0x04, 0x0B, 0x64, 0xF4, 0x01, 0x04, 0x4C,
+ 0xB4, 0x42, 0xF4, 0x05, 0x05, 0xD6, 0xD3, 0x02, 0x2F, 0xFD,
+ 0xF3, 0x05, 0x05, 0xD6, 0xD2, 0xE8, 0xF2, 0x1C, 0xE0, 0x01,
+ 0x08, 0x14, 0xF0, 0x19, 0x05, 0xD6, 0xE0, 0x00, 0x07, 0x91,
+ 0xD4, 0x29, 0xD5, 0x07, 0xE0, 0x04, 0x07, 0x68, 0xE0, 0x04,
+ 0x0A, 0xF5, 0xD2, 0x22, 0xC2, 0x01, 0xD4, 0x00, 0xD5, 0xF0,
+ 0xF6, 0x28, 0xE0, 0x04, 0x07, 0xDF, 0xA2, 0x23, 0xA4, 0x43,
+ 0xD3, 0x20, 0x5F, 0x4F, 0xF3, 0x01, 0x04, 0x5D, 0xF4, 0x09,
+ 0xD3, 0x80, 0xD2, 0xE6, 0xF2, 0x3C, 0xE0, 0x00, 0x0A, 0x14,
+ 0xE0, 0x00, 0x0C, 0xF3, 0xD5, 0x01, 0xD4, 0x01, 0xE0, 0x04,
+ 0x07, 0x68, 0xD4, 0x03, 0xD5, 0x66, 0xD6, 0x00, 0xE0, 0x04,
+ 0x07, 0xDF, 0xE0, 0x04, 0x0F, 0xCC, 0xE0, 0x04, 0x0D, 0x33,
+ 0xD4, 0x03, 0xD5, 0x66, 0xD6, 0x01, 0xE0, 0x04, 0x07, 0xDF,
+ 0xE0, 0x04, 0x0C, 0x83, 0xE0, 0x04, 0x0C, 0xCB, 0xE0, 0x04,
+ 0x0C, 0xB7, 0xD4, 0x2B, 0xE0, 0x04, 0x07, 0x68, 0xE0, 0x04,
+ 0x0E, 0xDD, 0xF0, 0x19, 0x05, 0xD8, 0xE0, 0x00, 0x09, 0x1C,
+ 0xF0, 0x19, 0x05, 0xD6, 0xD4, 0x00, 0xC4, 0xC0, 0xD5, 0x2E,
+ 0xD6, 0x00, 0xE0, 0x04, 0x07, 0x6C, 0xF0, 0x19, 0x05, 0xD6,
+ 0xD3, 0x07, 0x24, 0xFD, 0x91, 0x18, 0xF4, 0x01, 0x04, 0xA5,
+ 0xD2, 0xCC, 0xC2, 0x01, 0x02, 0x24, 0xF2, 0x1C, 0xF0, 0x19,
+ 0x05, 0xD6, 0xD4, 0x06, 0x93, 0x1F, 0xF3, 0x05, 0x04, 0xAA,
+ 0xA4, 0x11, 0xD2, 0xD4, 0xC2, 0x01, 0xF2, 0x4C, 0xF0, 0x19,
+ 0x05, 0xD6, 0xD2, 0xF1, 0x91, 0x11, 0xF2, 0x1C, 0xD6, 0x01,
+ 0xD3, 0x0C, 0xD4, 0x78, 0xD5, 0x50, 0xF1, 0x01, 0x04, 0xBB,
+ 0xD6, 0x00, 0xD3, 0x08, 0xD4, 0x50, 0xD2, 0xB2, 0xC2, 0x01,
+ 0xF2, 0x3C, 0xA2, 0x23, 0xF2, 0x4C, 0xA2, 0x27, 0xF2, 0x5C,
+ 0xD4, 0x02, 0xD5, 0x33, 0xE0, 0x04, 0x07, 0xA6, 0xF0, 0x19,
+ 0x05, 0xD6, 0xD2, 0xEE, 0xD3, 0x0F, 0x2F, 0xFD, 0xF2, 0x3C,
+ 0xF0, 0x19, 0x05, 0xD6, 0xE0, 0x04, 0x0B, 0x60, 0xF4, 0x05,
+ 0x04, 0xE9, 0xD3, 0x01, 0x2D, 0xDF, 0xD2, 0x84, 0xC2, 0x01,
+ 0xF5, 0x28, 0xD6, 0xFF, 0xC6, 0xDF, 0x83, 0x1E, 0x83, 0x3C,
+ 0x2D, 0xDA, 0x1D, 0xD3, 0xF2, 0x5C, 0xA6, 0x45, 0x11, 0x61,
+ 0xA2, 0x23, 0xF6, 0x28, 0xD3, 0xF8, 0xC3, 0xFF, 0x2E, 0xE3,
+ 0x1E, 0xE1, 0xF2, 0x6C, 0xE0, 0x01, 0x08, 0x14, 0xF0, 0x19,
+ 0x05, 0xD6, 0xA3, 0x13, 0xD2, 0xF9, 0xC2, 0x01, 0xF2, 0x3C,
+ 0xF3, 0x01, 0x05, 0x2E, 0xD4, 0x01, 0xD5, 0x44, 0xD6, 0x01,
+ 0xE0, 0x04, 0x07, 0xA6, 0xD2, 0x1E, 0xC2, 0x01, 0xF5, 0x28,
+ 0xA2, 0x23, 0xF6, 0x28, 0xD3, 0x00, 0xC3, 0x01, 0x2F, 0xF5,
+ 0xF3, 0x05, 0x05, 0x0B, 0xD4, 0x1D, 0xD5, 0xF0, 0xD6, 0x79,
+ 0xC6, 0x7F, 0xE0, 0x04, 0x07, 0xA6, 0xD4, 0x1C, 0xD5, 0x88,
+ 0xD6, 0x01, 0xE0, 0x04, 0x07, 0xA6, 0xD4, 0x1C, 0xD5, 0x11,
+ 0xD6, 0x01, 0xE0, 0x04, 0x07, 0xA6, 0xD5, 0xFB, 0xD6, 0x18,
+ 0xE0, 0x04, 0x07, 0xDF, 0xA5, 0x11, 0xD4, 0x2F, 0xE0, 0x04,
+ 0x07, 0x68, 0xD3, 0xFF, 0x24, 0xDF, 0xB4, 0x42, 0xF4, 0x01,
+ 0x05, 0x1E, 0xD3, 0x00, 0xD2, 0xF7, 0xC2, 0x01, 0xF2, 0x3C,
+ 0xA2, 0x23, 0xD3, 0x8D, 0xF2, 0x3C, 0xD4, 0x30, 0xE0, 0x04,
+ 0x07, 0x68, 0x83, 0x19, 0x85, 0x39, 0xD4, 0x31, 0xE0, 0x04,
+ 0x07, 0x68, 0xF0, 0x19, 0x05, 0xD6, 0xD4, 0x01, 0xD5, 0x44,
+ 0xD6, 0x00, 0xE0, 0x04, 0x07, 0xDF, 0xD4, 0x2F, 0xD5, 0x03,
+ 0xE0, 0x04, 0x07, 0x68, 0xF0, 0x19, 0x05, 0xD6, 0xF1, 0x01,
+ 0x05, 0x4D, 0xB1, 0x12, 0xF1, 0x01, 0x05, 0x43, 0xD3, 0x04,
+ 0xD2, 0xED, 0xF2, 0x3C, 0xF0, 0x19, 0x05, 0xD6, 0xE0, 0x04,
+ 0x0B, 0x60, 0xA3, 0x43, 0xD2, 0xED, 0xF2, 0x3C, 0xB2, 0x22,
+ 0xD3, 0x05, 0xF2, 0x3C, 0xF0, 0x19, 0x05, 0xD6, 0xE0, 0x04,
+ 0x0A, 0xF5, 0xF0, 0x19, 0x05, 0xD6, 0xD2, 0xC0, 0xC2, 0x01,
+ 0xD3, 0x03, 0x24, 0xFD, 0x42, 0x34, 0x81, 0x19, 0xF2, 0x1C,
+ 0xE0, 0x04, 0x0E, 0xF1, 0xF0, 0x19, 0x05, 0xD6, 0xD2, 0xF3,
+ 0xF0, 0x19, 0x05, 0x63, 0xD2, 0xF4, 0xF0, 0x19, 0x05, 0x63,
+ 0xD2, 0xF5, 0xF2, 0x1C, 0xE0, 0x04, 0x0D, 0x33, 0xF0, 0x19,
+ 0x05, 0xD6, 0xF0, 0x1F, 0xF0, 0x3F, 0xE0, 0x04, 0x0A, 0xF5,
+ 0xD3, 0x00, 0xD2, 0xF7, 0xF2, 0x3C, 0xD2, 0xF2, 0xF2, 0x3C,
+ 0xD2, 0xEA, 0xF2, 0x1C, 0xA2, 0x23, 0xF2, 0x1C, 0x81, 0x13,
+ 0xD2, 0xFA, 0xF2, 0x3C, 0xD2, 0xFF, 0xF2, 0x3C, 0xD4, 0x44,
+ 0xE0, 0x04, 0x08, 0x0B, 0xF4, 0x01, 0x05, 0x8D, 0xD3, 0x80,
+ 0xC3, 0x25, 0x4F, 0xDF, 0xA6, 0x33, 0xD2, 0xE8, 0xF4, 0x28,
+ 0xD5, 0x32, 0xE0, 0x04, 0x07, 0x95, 0xF2, 0x4C, 0xE0, 0x04,
+ 0x08, 0x73, 0xE0, 0x04, 0x08, 0x14, 0xD3, 0x80, 0xC3, 0x57,
+ 0x4D, 0xDF, 0xD2, 0xF1, 0xF3, 0x28, 0x26, 0xFD, 0xD4, 0x02,
+ 0xD5, 0xAA, 0xD2, 0xEC, 0xD3, 0x01, 0xF2, 0x3C, 0xF0, 0x1B,
+ 0xF0, 0x3B, 0xF0, 0x19, 0x05, 0xD6, 0xD3, 0x80, 0x2F, 0xFD,
+ 0x83, 0x3D, 0xD2, 0x85, 0xC2, 0x01, 0x02, 0x23, 0xF6, 0x28,
+ 0xD4, 0x07, 0x2C, 0x41, 0xD7, 0xB9, 0xE0, 0x06, 0x07, 0x95,
+ 0xF3, 0x01, 0x05, 0xAE, 0x2C, 0x41, 0xD7, 0x86, 0xE0, 0x06,
+ 0x07, 0x95, 0xF2, 0x6C, 0x86, 0x17, 0xF3, 0x05, 0x05, 0xC0,
+ 0xD3, 0x01, 0x3E, 0xE3, 0xD3, 0xCC, 0x73, 0x36, 0xD2, 0x88,
+ 0xC2, 0x01, 0xF2, 0x3C, 0xD2, 0x95, 0xC2, 0x01, 0xD3, 0x04,
+ 0x13, 0x36, 0xF2, 0x3C, 0xF0, 0x19, 0x05, 0xCE, 0xD3, 0x01,
+ 0x2E, 0xE3, 0x3E, 0xE3, 0xD3, 0x4A, 0x73, 0x36, 0xD2, 0x89,
+ 0xC2, 0x01, 0xF2, 0x3C, 0x83, 0x33, 0xA2, 0x23, 0xF2, 0x3C,
+ 0x83, 0x33, 0xA2, 0x23, 0xF2, 0x3C, 0xE0, 0x04, 0x08, 0x73,
+ 0xE0, 0x04, 0x08, 0x14, 0xF0, 0x19, 0x05, 0xD4, 0xD0, 0x00,
+ 0xC0, 0x40, 0xE0, 0x00, 0x07, 0x91, 0xF0, 0x0E, 0xE0, 0x00,
+ 0x07, 0x8B, 0xA3, 0x01, 0xF3, 0x01, 0x06, 0x63, 0xB3, 0x32,
+ 0xF3, 0x01, 0x06, 0x5C, 0xB3, 0x32, 0xF3, 0x01, 0x06, 0x52,
+ 0xB3, 0x32, 0xF3, 0x01, 0x06, 0x4E, 0xB3, 0x32, 0xF3, 0x01,
+ 0x06, 0x4A, 0xB3, 0x32, 0xF3, 0x01, 0x06, 0x45, 0xB3, 0x32,
+ 0xF3, 0x01, 0x06, 0x56, 0xB3, 0x32, 0xF3, 0x01, 0x06, 0x35,
+ 0xB3, 0x32, 0xF3, 0x01, 0x06, 0x2C, 0xB3, 0x32, 0xF3, 0x01,
+ 0x06, 0x27, 0xD4, 0x00, 0xC4, 0x80, 0x2F, 0xC4, 0xF3, 0x05,
+ 0x06, 0x18, 0x84, 0x43, 0x2F, 0xC4, 0xF3, 0x05, 0x06, 0x08,
+ 0x84, 0x47, 0x2F, 0xC4, 0xF3, 0x05, 0x06, 0x0F, 0xF0, 0x19,
+ 0x06, 0x65, 0x13, 0x04, 0xD2, 0x99, 0xC2, 0x01, 0x02, 0x23,
+ 0xF0, 0x28, 0xF0, 0x19, 0x06, 0x65, 0xD3, 0x1F, 0x2F, 0xCF,
+ 0xD2, 0x01, 0xC2, 0x01, 0xA2, 0x23, 0x02, 0x23, 0xF0, 0x28,
+ 0xF0, 0x19, 0x06, 0x65, 0x82, 0x06, 0x82, 0x27, 0xD3, 0xFF,
+ 0xC3, 0x07, 0x4F, 0xEF, 0xF3, 0x01, 0x06, 0x24, 0xD3, 0x38,
+ 0x12, 0x23, 0xF0, 0x20, 0xF0, 0x19, 0x06, 0x65, 0xF0, 0x28,
+ 0xF0, 0x19, 0x06, 0x65, 0xD2, 0x96, 0xC2, 0x01, 0xF0, 0x28,
+ 0xF0, 0x19, 0x06, 0x65, 0xE0, 0x04, 0x0B, 0x64, 0xD3, 0x64,
+ 0x23, 0x34, 0xD0, 0xA0, 0xC0, 0x0F, 0x00, 0x03, 0xF0, 0x19,
+ 0x06, 0x65, 0xD5, 0x00, 0xC5, 0x70, 0xE0, 0x05, 0x07, 0x5A,
+ 0xD5, 0x0F, 0x2E, 0xF9, 0x87, 0x79, 0x2F, 0xF9, 0x86, 0x68,
+ 0x00, 0x67, 0x80, 0x08, 0x80, 0x08, 0xD6, 0x12, 0x00, 0x06,
+ 0xF0, 0x19, 0x06, 0x65, 0xE0, 0x00, 0x07, 0x1B, 0xF0, 0x0D,
+ 0xF0, 0x19, 0x06, 0x65, 0xD1, 0xF2, 0xF0, 0x18, 0xF0, 0x19,
+ 0x06, 0x65, 0xE0, 0x00, 0x07, 0x39, 0xF0, 0x19, 0x06, 0x65,
+ 0xE0, 0x00, 0x07, 0x4C, 0xF0, 0x19, 0x06, 0x65, 0xD2, 0xFA,
+ 0xF0, 0x28, 0x80, 0x09, 0x80, 0x09, 0xF0, 0x19, 0x06, 0x65,
+ 0xD2, 0x97, 0xC2, 0x01, 0xF0, 0x28, 0x80, 0x0D, 0x80, 0x0B,
+ 0xF0, 0x19, 0x06, 0x65, 0xE0, 0x00, 0x07, 0x02, 0xE0, 0x00,
+ 0x07, 0x91, 0xF0, 0x0E, 0xF0, 0x19, 0x06, 0x95, 0xF0, 0x0A,
+ 0xFB, 0x08, 0xFB, 0x01, 0x06, 0xBE, 0xF7, 0x18, 0xF7, 0x01,
+ 0x06, 0x7B, 0xD8, 0x00, 0xD8, 0x0D, 0x08, 0x87, 0xF6, 0x80,
+ 0xA8, 0x67, 0xF9, 0x28, 0xF8, 0x94, 0x19, 0x7B, 0xF9, 0x01,
+ 0x06, 0xBE, 0xD8, 0x1D, 0xF8, 0x88, 0x78, 0x8B, 0xD9, 0x01,
+ 0x2C, 0x89, 0xF8, 0x05, 0x06, 0xF7, 0xBB, 0xB2, 0xD9, 0x00,
+ 0xC9, 0x04, 0x28, 0xB9, 0x08, 0x58, 0xF9, 0x88, 0xF9, 0x05,
+ 0x06, 0xDC, 0xD9, 0x00, 0xC9, 0x04, 0x27, 0xB9, 0xD9, 0x00,
+ 0xC9, 0xD0, 0x07, 0x97, 0xF9, 0x78, 0xF9, 0x01, 0x06, 0xC1,
+ 0xF9, 0x05, 0x06, 0xEB, 0xF0, 0x0A, 0xD8, 0x15, 0xD7, 0x00,
+ 0xC7, 0xB0, 0xD9, 0x08, 0xDB, 0x00, 0xCB, 0x04, 0xF9, 0x01,
+ 0x06, 0xA5, 0xFA, 0x80, 0xF7, 0xAC, 0xB9, 0x92, 0xA8, 0x83,
+ 0x07, 0x7B, 0xF0, 0x19, 0x06, 0x9C, 0xD7, 0x00, 0xC7, 0xAC,
+ 0xD8, 0x0C, 0xF9, 0x80, 0xF7, 0x9C, 0xA8, 0x83, 0xF9, 0x80,
+ 0xF2, 0x9C, 0x89, 0x9D, 0x89, 0x9F, 0xD7, 0x00, 0xC7, 0x34,
+ 0x17, 0x7B, 0xF9, 0x01, 0x06, 0xBE, 0xA8, 0x83, 0x07, 0x7B,
+ 0xFA, 0x80, 0xFA, 0x01, 0x06, 0xB2, 0xFA, 0xA0, 0xF7, 0xAC,
+ 0xB9, 0x92, 0xF0, 0x19, 0x06, 0xB2, 0xF0, 0x06, 0xF0, 0x19,
+ 0x06, 0xBF, 0xDA, 0x00, 0xCA, 0x1C, 0x17, 0x8A, 0xF7, 0x9C,
+ 0xA9, 0x93, 0xF8, 0x9C, 0xD9, 0x0E, 0x09, 0x9B, 0xF6, 0x90,
+ 0xA9, 0x63, 0xFA, 0x90, 0xF4, 0xAC, 0xA9, 0x93, 0xFA, 0x90,
+ 0xF2, 0xAC, 0xAA, 0xA3, 0xD7, 0x00, 0xFA, 0x7C, 0xAA, 0xA3,
+ 0xF7, 0x60, 0xFA, 0x7C, 0xD8, 0x00, 0xC8, 0x8C, 0xAB, 0xB3,
+ 0xF8, 0xBC, 0xF0, 0x06, 0xF0, 0x02, 0xD9, 0x0E, 0x09, 0x9B,
+ 0xF6, 0x90, 0xA9, 0x63, 0xFA, 0x90, 0xF4, 0xAC, 0xA9, 0x95,
+ 0xFA, 0x90, 0xF2, 0xAC, 0xD8, 0x00, 0xC8, 0x8C, 0xAB, 0xB3,
+ 0xF8, 0xBC, 0xF0, 0x06, 0xF0, 0x02, 0xF8, 0x9C, 0xDA, 0x00,
+ 0xCA, 0x64, 0x07, 0x8A, 0xD9, 0x00, 0xF7, 0x9C, 0xDA, 0x00,
+ 0xCA, 0x1C, 0x17, 0x8A, 0xF7, 0x9C, 0xF0, 0x19, 0x06, 0xDC,
+ 0xBB, 0xB2, 0xD8, 0x00, 0xC8, 0x50, 0xD9, 0x00, 0xC9, 0x04,
+ 0x48, 0x9B, 0xD9, 0x00, 0xF8, 0x9C, 0xF0, 0x06, 0xF0, 0x02,
+ 0xF0, 0x0E, 0xD2, 0x09, 0xC2, 0x20, 0xE0, 0x02, 0x07, 0x5A,
+ 0xD0, 0x08, 0x0D, 0xFC, 0x62, 0x30, 0x0E, 0xEC, 0x10, 0x12,
+ 0x80, 0x04, 0xF0, 0x02, 0xD0, 0x02, 0xC0, 0x20, 0xE0, 0x00,
+ 0x07, 0x5A, 0x81, 0x1D, 0x83, 0x13, 0x82, 0x15, 0x84, 0x17,
+ 0x1F, 0xF4, 0x1D, 0xDE, 0xD0, 0x01, 0x2C, 0xCF, 0x2C, 0xCD,
+ 0xF0, 0x02, 0xD2, 0x01, 0xC2, 0x60, 0xE0, 0x02, 0x07, 0x5A,
+ 0x92, 0x48, 0xD4, 0xE7, 0xF1, 0x48, 0x81, 0x1E, 0x11, 0x21,
+ 0xA4, 0x10, 0xF4, 0x01, 0x07, 0x2B, 0xD4, 0x08, 0x01, 0x14,
+ 0xF0, 0x19, 0x07, 0x2E, 0xD4, 0xF8, 0xC4, 0xFF, 0x01, 0x14,
+ 0x91, 0x18, 0xD4, 0xEA, 0xF3, 0x48, 0xE0, 0x04, 0x0B, 0x5D,
+ 0x10, 0x34, 0xD4, 0xE1, 0xF3, 0x48, 0xF3, 0x0D, 0x40, 0x13,
+ 0xF0, 0x02, 0xD0, 0x08, 0xC0, 0x08, 0xD2, 0x0B, 0xC2, 0x20,
+ 0xE0, 0x02, 0x07, 0x5A, 0x93, 0x38, 0x00, 0x03, 0xD2, 0xE6,
+ 0xF1, 0x28, 0xD3, 0x80, 0xA2, 0x01, 0xE0, 0x02, 0x0C, 0x08,
+ 0x20, 0x21, 0x22, 0x31, 0x92, 0x2E, 0x00, 0x02, 0xF0, 0x02,
+ 0xD2, 0x03, 0xC2, 0x60, 0xE0, 0x02, 0x07, 0x5A, 0x80, 0x3A,
+ 0x80, 0x0B, 0xB0, 0x02, 0xD2, 0x0B, 0x73, 0x32, 0xD2, 0x3F,
+ 0x2C, 0xC2, 0x84, 0x4A, 0x1D, 0x4F, 0xF0, 0x02, 0xF0, 0x0A,
+ 0xD2, 0x00, 0xC2, 0xA4, 0xF2, 0x0C, 0xC2, 0xA8, 0xF1, 0x28,
+ 0xF1, 0x01, 0x07, 0x5F, 0xC2, 0x9C, 0xF1, 0x28, 0xC2, 0xA0,
+ 0xF2, 0x28, 0xF0, 0x06, 0xF0, 0x02, 0xC0, 0x80, 0xE0, 0x00,
+ 0x07, 0x6C, 0xF0, 0x02, 0xF0, 0x0A, 0xD3, 0x00, 0xC3, 0x9C,
+ 0xF3, 0x1C, 0xC3, 0xA0, 0xF3, 0x2C, 0xC3, 0xA4, 0xF3, 0x0C,
+ 0xD3, 0x00, 0xC3, 0xA8, 0xF3, 0x38, 0xF3, 0x01, 0x07, 0x74,
+ 0xF0, 0x06, 0xF0, 0x02, 0xF0, 0x0A, 0xD1, 0x0D, 0xC1, 0x78,
+ 0xD0, 0x00, 0xC0, 0xA4, 0xF0, 0x1C, 0xC0, 0xA0, 0xF0, 0x1C,
+ 0xC0, 0xA4, 0xF0, 0x1C, 0xC0, 0xA8, 0xF1, 0x08, 0xF1, 0x01,
+ 0x07, 0x86, 0xF0, 0x06, 0xF0, 0x02, 0xD1, 0x00, 0xC1, 0x94,
+ 0xF0, 0x18, 0xC1, 0x98, 0xF1, 0x18, 0xF0, 0x02, 0xD1, 0x00,
+ 0xC1, 0x98, 0xF1, 0x0C, 0xF0, 0x02, 0xD4, 0x0F, 0x2F, 0xD4,
+ 0x81, 0x19, 0x2D, 0xD4, 0x11, 0x13, 0xD4, 0x01, 0x64, 0x41,
+ 0x84, 0x42, 0xB4, 0x42, 0x2E, 0x4E, 0x62, 0x23, 0x63, 0x43,
+ 0xA3, 0x33, 0xF3, 0x0D, 0x2C, 0xFC, 0x1C, 0xCE, 0xF0, 0x02,
+ 0xD3, 0x01, 0xC3, 0x01, 0xF4, 0x38, 0x85, 0x03, 0xD6, 0x01,
+ 0x66, 0x65, 0x1C, 0xCA, 0xF3, 0x4C, 0xA3, 0x33, 0x03, 0x30,
+ 0xF4, 0x38, 0xA2, 0x23, 0xF2, 0x0D, 0xD5, 0x0F, 0x2D, 0x1D,
+ 0x88, 0x19, 0xD6, 0x01, 0x2F, 0x2E, 0x66, 0x65, 0x67, 0x75,
+ 0x1C, 0xCA, 0x3C, 0xCB, 0x16, 0x85, 0x57, 0xC5, 0x87, 0x72,
+ 0xB7, 0x72, 0x05, 0x57, 0x82, 0x23, 0xF6, 0x05, 0x07, 0xB6,
+ 0xF3, 0x4C, 0xF0, 0x02, 0xD0, 0x01, 0xC0, 0x01, 0xF1, 0x08,
+ 0xD4, 0x00, 0xC4, 0x74, 0xD2, 0x10, 0xA0, 0x03, 0xF5, 0x08,
+ 0xA0, 0x03, 0xF6, 0x08, 0xD3, 0x01, 0x2F, 0xDF, 0xF3, 0x01,
+ 0x07, 0xD6, 0xE0, 0x04, 0x07, 0x6C, 0xA4, 0x43, 0x81, 0x13,
+ 0xB2, 0x22, 0xF2, 0x05, 0x07, 0xCC, 0xD0, 0x01, 0xC0, 0x01,
+ 0xF0, 0x1C, 0xF0, 0x02, 0xE0, 0x00, 0x07, 0xA6, 0xE0, 0x01,
+ 0x07, 0xC6, 0xE0, 0x01, 0x07, 0x7B, 0xF0, 0x02, 0x83, 0x02,
+ 0xD4, 0xF0, 0xA5, 0x11, 0xE0, 0x03, 0x07, 0xA6, 0xA3, 0x33,
+ 0xA5, 0x21, 0xE0, 0x03, 0x07, 0xDF, 0xF0, 0x02, 0xA5, 0x11,
+ 0xC5, 0xA0, 0xA4, 0x01, 0xA3, 0x21, 0xF6, 0x48, 0xE0, 0x05,
+ 0x07, 0x6C, 0xA4, 0x43, 0xB3, 0x32, 0xF3, 0x05, 0x07, 0xF4,
+ 0xA0, 0x41, 0xF0, 0x02, 0xD2, 0x0F, 0x83, 0x09, 0x13, 0x23,
+ 0x61, 0x13, 0x71, 0x13, 0x2F, 0xCE, 0x71, 0x13, 0xA0, 0x11,
+ 0xF0, 0x02, 0xD1, 0xE9, 0xF1, 0x18, 0xE0, 0x00, 0x07, 0xFD,
+ 0xF0, 0x02, 0xD1, 0xE8, 0xF1, 0x18, 0xE0, 0x00, 0x07, 0xFD,
+ 0xF0, 0x02, 0xD0, 0xFF, 0xE0, 0x00, 0x08, 0x0B, 0xF0, 0x02,
+ 0xE0, 0x05, 0x0B, 0x60, 0xA0, 0x51, 0xD2, 0xFB, 0xF2, 0x5C,
+ 0xA7, 0x01, 0xD5, 0x00, 0xD6, 0xDD, 0xE0, 0x05, 0x07, 0xDF,
+ 0x83, 0x02, 0xD2, 0x84, 0xC2, 0x01, 0x02, 0x23, 0xF6, 0x28,
+ 0xA2, 0x23, 0xF7, 0x28, 0xD5, 0x09, 0xE0, 0x05, 0x07, 0xE6,
+ 0xD3, 0x0F, 0x2D, 0x3E, 0xD5, 0x03, 0xE0, 0x05, 0x0C, 0xDD,
+ 0xD5, 0x00, 0xC5, 0x81, 0xE0, 0x05, 0x08, 0x66, 0xD5, 0xEE,
+ 0xE0, 0x05, 0x08, 0x0B, 0x83, 0x52, 0xF3, 0x0D, 0xA3, 0x33,
+ 0xD2, 0xE1, 0xF2, 0x3C, 0xA7, 0x51, 0xD5, 0x08, 0xD6, 0x77,
+ 0xE0, 0x05, 0x07, 0xDF, 0xD5, 0xDD, 0xE0, 0x05, 0x08, 0x0B,
+ 0xD2, 0xFC, 0xF2, 0x5C, 0xD5, 0x32, 0xE0, 0x05, 0x08, 0x0B,
+ 0xD2, 0x6F, 0xC2, 0x01, 0x02, 0x25, 0xF3, 0x28, 0xD2, 0x6E,
+ 0xC2, 0x01, 0xF2, 0x3C, 0xD2, 0xEB, 0xC2, 0x01, 0x85, 0x52,
+ 0x02, 0x25, 0xD5, 0x0F, 0xD6, 0x30, 0xF7, 0x28, 0xE0, 0x05,
+ 0x07, 0xDF, 0xA2, 0x23, 0xD5, 0x0E, 0xD6, 0x30, 0xF7, 0x28,
+ 0xE0, 0x05, 0x07, 0xDF, 0xD5, 0xBB, 0xE0, 0x05, 0x08, 0x0B,
+ 0xD7, 0x01, 0x67, 0x75, 0xD5, 0x00, 0xD6, 0x87, 0xE0, 0x05,
+ 0x07, 0xDF, 0xF0, 0x02, 0xD2, 0xE8, 0xF3, 0x28, 0xD2, 0x00,
+ 0xC2, 0x80, 0x2F, 0xFE, 0x80, 0x02, 0x80, 0x03, 0x1E, 0xFC,
+ 0xD1, 0x08, 0xC1, 0xA0, 0xE0, 0x01, 0x07, 0x6C, 0xF0, 0x02,
+ 0xD2, 0x95, 0xC2, 0x01, 0xF5, 0x28, 0xD4, 0x1F, 0xE0, 0x04,
+ 0x07, 0x68, 0xD4, 0x54, 0xE0, 0x04, 0x08, 0x06, 0xA5, 0x41,
+ 0xD4, 0x25, 0xE0, 0x04, 0x07, 0x68, 0xD4, 0x86, 0xE0, 0x04,
+ 0x08, 0x06, 0xD2, 0x8C, 0xC2, 0x01, 0x02, 0x24, 0xF5, 0x28,
+ 0x80, 0x53, 0xD4, 0x27, 0xC4, 0x80, 0xE0, 0x04, 0x07, 0x6C,
+ 0xD3, 0x01, 0x2D, 0xCF, 0x80, 0x03, 0x2F, 0xCF, 0xD2, 0x88,
+ 0xC2, 0x01, 0x02, 0x23, 0xF5, 0x28, 0xD4, 0x24, 0xE0, 0x04,
+ 0x07, 0x68, 0x80, 0x07, 0xD3, 0x02, 0x2F, 0xCF, 0x1D, 0xDF,
+ 0xD5, 0x02, 0xD4, 0x1D, 0xE0, 0x04, 0x07, 0x68, 0xE0, 0x04,
+ 0x09, 0x12, 0xF0, 0x02, 0xE0, 0x00, 0x0B, 0x5D, 0xD6, 0x6E,
+ 0xC6, 0x01, 0xF1, 0x68, 0xD6, 0xE1, 0xF3, 0x68, 0xF3, 0x0D,
+ 0xD7, 0x08, 0x02, 0x07, 0x82, 0x29, 0x42, 0x13, 0xD6, 0xE2,
+ 0xF6, 0x2C, 0xA6, 0x21, 0xE0, 0x06, 0x0B, 0xB0, 0xD7, 0x80,
+ 0xC7, 0x01, 0x5C, 0x27, 0xD6, 0x08, 0xD7, 0x66, 0xE0, 0x06,
+ 0x07, 0xA6, 0xF0, 0x02, 0xE0, 0x00, 0x07, 0x1B, 0xD7, 0xC0,
+ 0x4C, 0xF0, 0xF7, 0x0D, 0x4D, 0x0F, 0x2F, 0xC9, 0xF7, 0x01,
+ 0x09, 0x0D, 0xD7, 0x2D, 0x4C, 0xF1, 0xF7, 0x0D, 0x4D, 0x1F,
+ 0x2F, 0xC9, 0xF7, 0x01, 0x09, 0x0D, 0xD7, 0x50, 0x5D, 0xF2,
+ 0xF5, 0x01, 0x08, 0xD5, 0xF7, 0x0D, 0x5C, 0x2F, 0xF4, 0x01,
+ 0x08, 0xE2, 0xF0, 0x19, 0x09, 0x10, 0xD4, 0xE7, 0xF3, 0x48,
+ 0xB3, 0x32, 0xD5, 0xFF, 0xC5, 0xFF, 0x5D, 0x3D, 0xF5, 0x05,
+ 0x08, 0xF6, 0xD1, 0x10, 0xD4, 0xE1, 0xF3, 0x48, 0xF0, 0x19,
+ 0x08, 0xEC, 0xD4, 0xE7, 0xF3, 0x48, 0xA3, 0x33, 0x95, 0x33,
+ 0xF5, 0x01, 0x08, 0xF6, 0xD4, 0xE1, 0xF3, 0x48, 0xF3, 0x0D,
+ 0xD1, 0x10, 0xD4, 0xE7, 0xD5, 0x00, 0xF4, 0x5C, 0xD4, 0xEB,
+ 0xF2, 0x48, 0x42, 0x13, 0xF4, 0x2C, 0xD0, 0x02, 0xF0, 0x19,
+ 0x09, 0x11, 0xF4, 0x3C, 0xD4, 0xF0, 0xF5, 0x48, 0xF5, 0x05,
+ 0x09, 0x04, 0xD4, 0xE4, 0xF7, 0x48, 0x07, 0x73, 0xD6, 0x13,
+ 0xE0, 0x06, 0x07, 0x68, 0xD0, 0x01, 0xF0, 0x19, 0x09, 0x11,
+ 0xD4, 0xE5, 0xF7, 0x48, 0x07, 0x73, 0xD6, 0x15, 0xE0, 0x06,
+ 0x07, 0x68, 0xD0, 0x01, 0xF0, 0x19, 0x09, 0x11, 0xD0, 0x03,
+ 0xF0, 0x19, 0x09, 0x11, 0xD0, 0x00, 0xF0, 0x02, 0xD1, 0x3D,
+ 0xD0, 0x02, 0xE0, 0x00, 0x07, 0x68, 0xC1, 0x01, 0xF1, 0x09,
+ 0xD1, 0x1F, 0xE0, 0x00, 0x07, 0x68, 0xF0, 0x02, 0xE0, 0x02,
+ 0x07, 0x91, 0xC1, 0xFF, 0xF1, 0x09, 0xD3, 0x10, 0xD2, 0x29,
+ 0xE0, 0x02, 0x07, 0x68, 0xD3, 0x00, 0xA4, 0x31, 0xA2, 0x31,
+ 0xE0, 0x02, 0x07, 0xE6, 0xA2, 0x23, 0xD1, 0x0D, 0x5D, 0xED,
+ 0xF1, 0x01, 0x09, 0x27, 0xD1, 0x80, 0xD0, 0xE6, 0xF0, 0x1C,
+ 0xE0, 0x00, 0x0A, 0x14, 0xF0, 0x02, 0xD5, 0xEE, 0xF0, 0x58,
+ 0xF0, 0x01, 0x09, 0x7C, 0xD5, 0x08, 0x16, 0x05, 0xF6, 0x01,
+ 0x09, 0x69, 0xD5, 0x09, 0x16, 0x05, 0xF6, 0x05, 0x09, 0x6A,
+ 0xE0, 0x00, 0x09, 0xAD, 0x83, 0x39, 0xA3, 0x39, 0x83, 0x37,
+ 0xD7, 0x80, 0xD8, 0x01, 0xD0, 0x01, 0x24, 0x73, 0x5E, 0xC1,
+ 0x5D, 0x2C, 0x2E, 0xE9, 0xF6, 0x05, 0x09, 0x5C, 0xA6, 0x33,
+ 0x24, 0x73, 0x5E, 0xC1, 0x5D, 0x2C, 0x2E, 0xE9, 0xF6, 0x05,
+ 0x09, 0x5C, 0xB6, 0x32, 0x24, 0x76, 0x5E, 0xC1, 0x5D, 0x2C,
+ 0x2E, 0xE9, 0xF6, 0x01, 0x09, 0x65, 0xA8, 0x83, 0xF0, 0x0D,
+ 0x47, 0x80, 0xD6, 0x0A, 0x46, 0x6C, 0xF6, 0x05, 0x09, 0x48,
+ 0xF0, 0x19, 0x09, 0x7C, 0xD5, 0xE6, 0xF5, 0x7C, 0xF0, 0x19,
+ 0x09, 0x75, 0xD0, 0x00, 0x96, 0x0F, 0xF6, 0x01, 0x09, 0x6F,
+ 0xD6, 0xF0, 0x1C, 0xC6, 0xD6, 0x80, 0x00, 0x06, 0xD6, 0xFF,
+ 0x2C, 0xC6, 0xD5, 0xE6, 0xF5, 0x0C, 0xD6, 0x00, 0xD5, 0xEF,
+ 0xF5, 0x6C, 0xD5, 0xF0, 0xF5, 0x6C, 0xF0, 0x19, 0x09, 0xAC,
+ 0xD6, 0x80, 0xD5, 0xE6, 0xF5, 0x6C, 0xE0, 0x00, 0x09, 0xAD,
+ 0xD6, 0x40, 0x06, 0x36, 0xD4, 0x80, 0xC4, 0xFF, 0x2C, 0xE8,
+ 0x5E, 0xC1, 0x5D, 0x2C, 0x2E, 0xE9, 0xF6, 0x05, 0x09, 0x90,
+ 0xD6, 0x20, 0x06, 0x36, 0xD4, 0xC0, 0xC4, 0xFF, 0x2C, 0xE8,
+ 0xD5, 0xE2, 0xF6, 0x58, 0x86, 0x64, 0x14, 0x46, 0xD5, 0xE1,
+ 0xF6, 0x58, 0x24, 0x46, 0xD6, 0x80, 0x14, 0x64, 0xA4, 0x43,
+ 0x94, 0x42, 0xD5, 0xEF, 0xF5, 0x4C, 0xD5, 0x6E, 0xC5, 0x01,
+ 0xF6, 0x58, 0x86, 0x62, 0x04, 0x64, 0xD6, 0x40, 0x16, 0x64,
+ 0xF6, 0x05, 0x09, 0xA9, 0xD6, 0x00, 0xF0, 0x19, 0x09, 0xAA,
+ 0xD6, 0x01, 0xD5, 0xF0, 0xF5, 0x6C, 0xF0, 0x02, 0xD5, 0x31,
+ 0xE0, 0x05, 0x08, 0x0B, 0xD4, 0x66, 0xC4, 0x01, 0x04, 0x45,
+ 0xF1, 0x48, 0x82, 0x19, 0x82, 0x29, 0xD5, 0xFF, 0x2D, 0xD5,
+ 0xE0, 0x00, 0x0B, 0x5D, 0xA0, 0x05, 0x80, 0x05, 0xD4, 0xE1,
+ 0xF5, 0x48, 0xB5, 0x52, 0xF5, 0x01, 0x09, 0xC4, 0xA5, 0x11,
+ 0xA1, 0x21, 0xA2, 0x51, 0x11, 0x01, 0x02, 0x02, 0x05, 0x12,
+ 0xA5, 0x53, 0x83, 0x53, 0xF0, 0x02, 0xD5, 0xCC, 0xE0, 0x05,
+ 0x08, 0x0B, 0xF5, 0x01, 0x09, 0xDB, 0xD3, 0xFB, 0xF6, 0x38,
+ 0xD5, 0x1B, 0xE0, 0x05, 0x07, 0x68, 0xD3, 0xE6, 0xD4, 0x80,
+ 0xF3, 0x4C, 0xE0, 0x05, 0x0A, 0x49, 0xF0, 0x19, 0x09, 0xEC,
+ 0xD3, 0xF0, 0xF0, 0x38, 0xD3, 0xFB, 0xF1, 0x38, 0x80, 0x06,
+ 0x16, 0xDC, 0xD5, 0x1B, 0xE0, 0x05, 0x07, 0x68, 0xF0, 0x01,
+ 0x09, 0xEA, 0xE0, 0x05, 0x0A, 0x63, 0xF0, 0x19, 0x09, 0xEC,
+ 0xE0, 0x05, 0x0A, 0x9A, 0xD5, 0x00, 0xE0, 0x05, 0x09, 0xF4,
+ 0xE0, 0x05, 0x0A, 0x14, 0xE0, 0x05, 0x0A, 0x39, 0xF0, 0x02,
+ 0xD3, 0x22, 0xE0, 0x03, 0x08, 0x0B, 0xE0, 0x04, 0x0B, 0x60,
+ 0x2F, 0xF4, 0xD1, 0x91, 0xC1, 0x01, 0x02, 0x14, 0xF6, 0x28,
+ 0x1E, 0xE0, 0xA1, 0x15, 0x01, 0x13, 0xF5, 0x18, 0xD1, 0xE3,
+ 0xF2, 0x18, 0x82, 0x22, 0x05, 0x52, 0x85, 0x52, 0x85, 0x53,
+ 0xD7, 0xCC, 0xE0, 0x07, 0x08, 0x0B, 0xF7, 0x01, 0x0A, 0x0F,
+ 0xD6, 0xC1, 0xC6, 0xA0, 0xD4, 0x2A, 0xC4, 0xE0, 0xE0, 0x04,
+ 0x07, 0x6C, 0xF0, 0x02, 0xD1, 0xE6, 0xF0, 0x18, 0xD5, 0x00,
+ 0xD3, 0x1C, 0xD4, 0x88, 0xE0, 0x03, 0x07, 0xDF, 0xD1, 0x00,
+ 0xB5, 0x02, 0xD3, 0x1D, 0xD4, 0xE8, 0xE0, 0x03, 0x07, 0xDF,
+ 0xD5, 0x0C, 0xD2, 0xF9, 0xC2, 0x01, 0xF2, 0x28, 0xF2, 0x05,
+ 0x0A, 0x2B, 0xD2, 0x80, 0x12, 0x02, 0xF2, 0x01, 0x0A, 0x2D,
+ 0xD1, 0x01, 0xD5, 0x09, 0xD3, 0x1D, 0xD4, 0x30, 0xE0, 0x03,
+ 0x07, 0xDF, 0xC2, 0x01, 0xF2, 0x09, 0xA5, 0x11, 0xD3, 0x1C,
+ 0xD4, 0x88, 0xE0, 0x03, 0x07, 0xDF, 0xF0, 0x02, 0xD3, 0xE6,
+ 0xF0, 0x38, 0xD4, 0x82, 0x4D, 0xC4, 0xD4, 0x85, 0x4E, 0xC4,
+ 0x82, 0x24, 0xD3, 0x65, 0xE0, 0x03, 0x08, 0x0B, 0x24, 0x31,
+ 0x04, 0x42, 0xD3, 0x17, 0xE0, 0x03, 0x07, 0x68, 0xF0, 0x02,
+ 0xE0, 0x00, 0x0B, 0x5D, 0xD4, 0xE2, 0xF1, 0x48, 0x81, 0x18,
+ 0x12, 0x01, 0xA5, 0x20, 0xF5, 0x05, 0x0A, 0x53, 0xF2, 0x0D,
+ 0xD5, 0xE0, 0x12, 0x25, 0x82, 0x28, 0xD5, 0x33, 0xC5, 0x07,
+ 0x05, 0x52, 0xD4, 0xE3, 0xF4, 0x5C, 0xD3, 0xC8, 0xD4, 0xE4,
+ 0xF4, 0x3C, 0xA7, 0x31, 0xD6, 0x13, 0xE0, 0x06, 0x07, 0x68,
+ 0xF0, 0x02, 0xE0, 0x00, 0x0B, 0x5D, 0xD4, 0xE2, 0xF1, 0x48,
+ 0xD4, 0xEF, 0xF3, 0x48, 0x81, 0x18, 0x10, 0x01, 0xD4, 0xE1,
+ 0xF5, 0x48, 0x20, 0x05, 0x85, 0x36, 0x00, 0x05, 0xD4, 0xFC,
+ 0xF1, 0x48, 0xE0, 0x06, 0x0B, 0x60, 0xF6, 0x01, 0x0A, 0x7A,
+ 0xD6, 0x32, 0xE0, 0x06, 0x08, 0x0B, 0xA6, 0x63, 0xD4, 0x77,
+ 0xC4, 0x01, 0x04, 0x46, 0xF4, 0x48, 0xF1, 0x01, 0x0A, 0x86,
+ 0xD5, 0x00, 0xC5, 0x08, 0x14, 0x54, 0x14, 0x04, 0xF0, 0x19,
+ 0x0A, 0x87, 0x14, 0x40, 0xA5, 0x49, 0x87, 0x57, 0x85, 0x76,
+ 0x15, 0x54, 0x85, 0x58, 0xD4, 0xE3, 0xF4, 0x5C, 0xD4, 0xE5,
+ 0xF4, 0x7C, 0xD6, 0x15, 0xE0, 0x06, 0x07, 0x68, 0xD4, 0xE4,
+ 0xF4, 0x3C, 0xA7, 0x31, 0xD6, 0x13, 0xE0, 0x06, 0x07, 0x68,
+ 0xF0, 0x02, 0xE0, 0x00, 0x0B, 0x5D, 0xD4, 0xE2, 0xF1, 0x48,
+ 0x81, 0x18, 0x10, 0x01, 0xA5, 0x00, 0xF5, 0x05, 0x0A, 0xA4,
+ 0xF0, 0x0D, 0x80, 0x08, 0xD6, 0x32, 0xE0, 0x06, 0x08, 0x0B,
+ 0xA5, 0x61, 0xE0, 0x06, 0x0B, 0x60, 0xF6, 0x05, 0x0A, 0xC6,
+ 0xD4, 0xD5, 0xC4, 0x01, 0x04, 0x45, 0xF2, 0x48, 0xA6, 0x01,
+ 0xE0, 0x06, 0x0A, 0xE9, 0xD4, 0xE3, 0xF4, 0x7C, 0xA0, 0x61,
+ 0xD4, 0xFC, 0xF1, 0x48, 0xF1, 0x01, 0x0A, 0xC0, 0x82, 0x29,
+ 0x82, 0x29, 0x02, 0x20, 0xF0, 0x19, 0x0A, 0xE2, 0xD5, 0xFF,
+ 0x2E, 0xE5, 0x02, 0x20, 0xF2, 0x0D, 0xF0, 0x19, 0x0A, 0xE2,
+ 0xD4, 0xD8, 0xC4, 0x01, 0x04, 0x45, 0xF2, 0x48, 0xD4, 0xFC,
+ 0xF1, 0x48, 0xF1, 0x01, 0x0A, 0xDA, 0x82, 0x23, 0xD5, 0x80,
+ 0xC5, 0x7F, 0x2E, 0xE5, 0x06, 0x20, 0xE0, 0x06, 0x0A, 0xE9,
+ 0xD4, 0xE3, 0xF4, 0x7C, 0xA2, 0x61, 0xF0, 0x19, 0x0A, 0xE2,
+ 0x82, 0x2E, 0x06, 0x20, 0xE0, 0x06, 0x0A, 0xE9, 0xD4, 0xE3,
+ 0xF4, 0x7C, 0xA2, 0x61, 0xF2, 0x0D, 0xD4, 0xE4, 0xF4, 0x2C,
+ 0xA7, 0x21, 0xD6, 0x13, 0xE0, 0x06, 0x07, 0x68, 0xF0, 0x02,
+ 0xD1, 0xE6, 0xF2, 0x18, 0xA5, 0x21, 0xA4, 0x01, 0xE0, 0x04,
+ 0x0C, 0x08, 0x83, 0x23, 0x4F, 0x5F, 0x22, 0x23, 0x11, 0x52,
+ 0x00, 0x43, 0xF0, 0x02, 0xF0, 0x0A, 0xD1, 0x00, 0xD0, 0xEC,
+ 0xF0, 0x1C, 0xD1, 0x03, 0xA0, 0x03, 0xF0, 0x1C, 0xF0, 0x06,
+ 0xF0, 0x02, 0xD0, 0xFF, 0xF1, 0x08, 0xD2, 0x00, 0xC2, 0x01,
+ 0xF0, 0x28, 0x10, 0x01, 0xF0, 0x01, 0x0B, 0x15, 0xF2, 0x1C,
+ 0xD2, 0xDF, 0xC2, 0x01, 0xD4, 0x03, 0x42, 0x41, 0xA0, 0x23,
+ 0xD4, 0x01, 0xD3, 0x08, 0xE0, 0x02, 0x07, 0xF0, 0xA2, 0x01,
+ 0xD4, 0x02, 0xD3, 0x3A, 0xE0, 0x02, 0x07, 0xF0, 0xF0, 0x02,
+ 0xD0, 0x05, 0xC0, 0x60, 0xE0, 0x00, 0x07, 0x5A, 0xA3, 0x01,
+ 0xE0, 0x03, 0x07, 0x5A, 0xD0, 0xF8, 0xC0, 0x3F, 0x2C, 0xEC,
+ 0xF0, 0x05, 0x0B, 0x28, 0x82, 0x2A, 0x82, 0x2A, 0x81, 0x1D,
+ 0x1D, 0xDE, 0xF0, 0x19, 0x0B, 0x2A, 0xD1, 0xFF, 0xC1, 0x1F,
+ 0x82, 0x44, 0x82, 0x25, 0xE0, 0x02, 0x0C, 0x22, 0xD0, 0x00,
+ 0xC0, 0x06, 0x00, 0x02, 0xE0, 0x01, 0x0C, 0x22, 0x81, 0x13,
+ 0x11, 0x01, 0x90, 0x11, 0x21, 0x10, 0xD3, 0x97, 0xC3, 0x01,
+ 0xF3, 0x1C, 0xD3, 0xFA, 0xF2, 0x38, 0x84, 0x29, 0xD0, 0x0F,
+ 0x24, 0x40, 0x85, 0x19, 0x04, 0x45, 0x2D, 0xDC, 0x2E, 0xEC,
+ 0x22, 0x20, 0x02, 0x21, 0x82, 0x29, 0x01, 0x24, 0xF3, 0x1C,
+ 0xE0, 0x03, 0x08, 0x10, 0xF3, 0x01, 0x0B, 0x5C, 0xD2, 0x00,
+ 0xD3, 0xDB, 0xC3, 0x01, 0xF0, 0x38, 0x4C, 0xDC, 0xF0, 0x05,
+ 0x0B, 0x58, 0xA2, 0x23, 0xA3, 0x33, 0xA0, 0x26, 0xF0, 0x01,
+ 0x0B, 0x4F, 0xD3, 0xFF, 0xF3, 0x2C, 0xE0, 0x03, 0x0A, 0xFE,
+ 0xF0, 0x02, 0xD0, 0xEB, 0xF0, 0x08, 0xF0, 0x02, 0xD0, 0x11,
+ 0xE0, 0x00, 0x08, 0x0B, 0xF0, 0x02, 0xD0, 0x0E, 0xE0, 0x00,
+ 0x07, 0x5A, 0xD3, 0xF0, 0x2D, 0xDF, 0x81, 0x19, 0xB0, 0x1C,
+ 0xF0, 0x02, 0xD1, 0xE2, 0xF1, 0x18, 0xD5, 0xFD, 0xF3, 0x58,
+ 0xA7, 0x31, 0xB2, 0x02, 0xF2, 0x01, 0x0B, 0x96, 0xBA, 0x14,
+ 0xD8, 0x0C, 0xD9, 0xB0, 0xE0, 0x08, 0x07, 0xA6, 0xD2, 0x0C,
+ 0xC2, 0x08, 0x3A, 0x12, 0xD8, 0x0D, 0xD9, 0xB4, 0xE0, 0x08,
+ 0x07, 0xA6, 0xD2, 0x68, 0x33, 0x12, 0x83, 0x32, 0xC7, 0x01,
+ 0x15, 0x73, 0xA7, 0x31, 0xD5, 0x01, 0x2E, 0x35, 0xD8, 0x0D,
+ 0xD9, 0x22, 0xE0, 0x08, 0x07, 0xA6, 0x8A, 0x33, 0xD8, 0x0D,
+ 0xD9, 0xFC, 0xE0, 0x08, 0x07, 0xDF, 0xD5, 0xFD, 0xF5, 0x3C,
+ 0xC5, 0x27, 0xF5, 0x09, 0xB0, 0x02, 0xD5, 0x06, 0xC5, 0x70,
+ 0xE0, 0x05, 0x07, 0x5A, 0x85, 0x73, 0x86, 0x75, 0xD4, 0x01,
+ 0x2D, 0xD8, 0x2E, 0xE8, 0x22, 0xED, 0x3C, 0xE9, 0xF4, 0x01,
+ 0x0B, 0xAE, 0xD4, 0x1F, 0x4C, 0xC3, 0x26, 0x64, 0x94, 0x31,
+ 0x25, 0x54, 0x13, 0x35, 0x03, 0x36, 0xF0, 0x01, 0x0B, 0xAE,
+ 0xF0, 0x19, 0x0B, 0x84, 0xA0, 0x21, 0xF0, 0x02, 0xD2, 0x42,
+ 0xC2, 0x01, 0xF3, 0x28, 0x15, 0x30, 0x5F, 0xFC, 0x40, 0x53,
+ 0xD5, 0x0B, 0x05, 0x25, 0xF4, 0x58, 0x15, 0x40, 0x5C, 0x0C,
+ 0x40, 0x54, 0xB2, 0x22, 0xD1, 0x00, 0xA2, 0x25, 0xA1, 0x13,
+ 0xF4, 0x28, 0x4D, 0x0C, 0xF5, 0x05, 0x0B, 0xBE, 0xB2, 0x22,
+ 0xF3, 0x28, 0xD5, 0x01, 0x86, 0x4F, 0x7D, 0xE9, 0xD6, 0x10,
+ 0x15, 0x65, 0x74, 0x45, 0x73, 0x35, 0x70, 0x05, 0x20, 0x00,
+ 0x23, 0x33, 0x24, 0x44, 0x80, 0x0F, 0x83, 0x3F, 0x84, 0x4F,
+ 0x15, 0x40, 0x16, 0x43, 0x23, 0x53, 0x24, 0x60, 0xD5, 0x09,
+ 0xD0, 0x00, 0xC0, 0x40, 0x82, 0x03, 0x36, 0x04, 0x5E, 0xE3,
+ 0x86, 0x62, 0xB6, 0x62, 0x26, 0x62, 0x10, 0x06, 0x82, 0x23,
+ 0xB5, 0x52, 0xF5, 0x05, 0x0B, 0xDC, 0xC5, 0x72, 0x36, 0x05,
+ 0xC5, 0x01, 0x06, 0x65, 0x86, 0x6F, 0x80, 0x65, 0xA9, 0x11,
+ 0xD7, 0x02, 0xD8, 0x20, 0xE0, 0x07, 0x07, 0xDF, 0xD2, 0xFE,
+ 0xF2, 0x1C, 0xD4, 0x01, 0x69, 0x41, 0xA9, 0x95, 0x89, 0x95,
+ 0xD7, 0x06, 0xD8, 0x26, 0xE0, 0x07, 0x07, 0xDF, 0xD7, 0xF9,
+ 0xF7, 0x0C, 0xA9, 0x01, 0xD7, 0x02, 0xD8, 0xFC, 0xE0, 0x07,
+ 0x07, 0xDF, 0x89, 0x09, 0xD7, 0x03, 0xD8, 0x10, 0xE0, 0x07,
+ 0x07, 0xDF, 0xF0, 0x02, 0x44, 0xDC, 0xF4, 0x05, 0x0C, 0x1F,
+ 0xD4, 0x01, 0x7F, 0xC4, 0x7C, 0x1C, 0x13, 0x43, 0x61, 0x13,
+ 0xA2, 0x31, 0x6C, 0xCD, 0xB2, 0x22, 0xA4, 0x20, 0xF4, 0x05,
+ 0x0C, 0x11, 0xA1, 0x01, 0xD4, 0x0F, 0x14, 0x43, 0x60, 0x04,
+ 0x70, 0x04, 0xA4, 0x33, 0x71, 0x14, 0xF0, 0x19, 0x0C, 0x21,
+ 0xA1, 0x01, 0xD0, 0x00, 0xF0, 0x02, 0x94, 0x01, 0xF4, 0x05,
+ 0x0C, 0x28, 0xD0, 0x00, 0xF0, 0x19, 0x0C, 0x5E, 0xD7, 0x30,
+ 0xC7, 0x06, 0x4C, 0x0F, 0xF4, 0x01, 0x0C, 0x2E, 0xA0, 0x71,
+ 0xD4, 0x01, 0x7D, 0x0C, 0xD8, 0x10, 0x18, 0x85, 0xD7, 0x9E,
+ 0xC7, 0x01, 0xF4, 0x78, 0x28, 0x84, 0xB5, 0x56, 0x60, 0x05,
+ 0xD2, 0x00, 0xC2, 0x10, 0xD5, 0x00, 0xC5, 0x20, 0xD6, 0x0C,
+ 0xD4, 0x00, 0xC4, 0x20, 0x04, 0x45, 0xD1, 0x00, 0xC1, 0x20,
+ 0x2D, 0xDC, 0xF1, 0x05, 0x0C, 0x51, 0x81, 0x04, 0x31, 0x14,
+ 0xD4, 0x00, 0xC4, 0x20, 0x4C, 0x1C, 0xF4, 0x05, 0x0C, 0x51,
+ 0xA0, 0x11, 0xF4, 0x78, 0x18, 0x84, 0xF0, 0x19, 0x0C, 0x3D,
+ 0xA7, 0x73, 0x85, 0x53, 0xB6, 0x62, 0xF6, 0x05, 0x0C, 0x3D,
+ 0xD4, 0x00, 0xC4, 0x20, 0x14, 0x40, 0x84, 0x47, 0x18, 0x84,
+ 0xA8, 0x85, 0x88, 0x85, 0xA0, 0x81, 0xF0, 0x02, 0xD2, 0x00,
+ 0xD3, 0x00, 0xC3, 0xC0, 0xD4, 0xC7, 0xC4, 0x10, 0xE0, 0x02,
+ 0x07, 0xE6, 0xD2, 0x01, 0xD3, 0xF0, 0xA4, 0x01, 0xE0, 0x02,
+ 0x07, 0xDF, 0xD4, 0x10, 0xC4, 0x27, 0xF4, 0x09, 0xD2, 0x01,
+ 0xD3, 0xFF, 0xD4, 0x01, 0xE0, 0x02, 0x07, 0xDF, 0xD4, 0x10,
+ 0xC4, 0x27, 0xF4, 0x09, 0xD2, 0x00, 0xC2, 0x70, 0xE0, 0x02,
+ 0x07, 0x5A, 0xD0, 0xFF, 0xC0, 0x03, 0x2C, 0xFC, 0xD2, 0x01,
+ 0xD3, 0xFF, 0xD4, 0x00, 0xE0, 0x02, 0x07, 0xDF, 0xF0, 0x02,
+ 0xD2, 0x01, 0xE0, 0x02, 0x0C, 0xED, 0xD2, 0xC7, 0xC2, 0x18,
+ 0xE0, 0x02, 0x0C, 0x5F, 0xD3, 0xC7, 0xC3, 0x14, 0xE0, 0x03,
+ 0x0C, 0x5F, 0xD4, 0xC7, 0xC4, 0x38, 0xE0, 0x04, 0x0C, 0x5F,
+ 0x82, 0x25, 0x84, 0x45, 0x83, 0x35, 0x20, 0x23, 0x21, 0x43,
+ 0xD6, 0xAF, 0xC6, 0x01, 0xF6, 0x0C, 0xD5, 0xD3, 0xC5, 0x01,
+ 0x35, 0x50, 0xA5, 0x53, 0x82, 0x53, 0xD5, 0x80, 0x12, 0x25,
+ 0x25, 0x22, 0x85, 0x5F, 0x12, 0x25, 0xD6, 0xF8, 0xF6, 0x2C,
+ 0xD5, 0xE0, 0xC5, 0x01, 0x32, 0x51, 0xA2, 0x23, 0x82, 0x23,
+ 0xD2, 0x22, 0xC2, 0x01, 0xF3, 0x28, 0xA2, 0x23, 0xF4, 0x28,
+ 0xD2, 0x00, 0xE0, 0x02, 0x07, 0xE6, 0xD2, 0x00, 0xE0, 0x02,
+ 0x0C, 0xED, 0xF0, 0x02, 0xD0, 0x06, 0xD2, 0xF8, 0xF1, 0x28,
+ 0x23, 0x31, 0x93, 0x3C, 0xA3, 0x33, 0x93, 0x32, 0x10, 0x03,
+ 0xD1, 0x0F, 0x4F, 0xCD, 0xF3, 0x01, 0x0C, 0xC4, 0xD0, 0x0F,
+ 0xA3, 0x00, 0x23, 0x03, 0xD1, 0x0B, 0xD2, 0xB8, 0xE0, 0x01,
+ 0x07, 0xDF, 0xF0, 0x02, 0xD0, 0x0C, 0xD1, 0x12, 0x03, 0x10,
+ 0xD2, 0xF8, 0xF1, 0x28, 0x23, 0x31, 0x93, 0x3C, 0xA3, 0x33,
+ 0x93, 0x32, 0x10, 0x03, 0xD1, 0x0F, 0x4F, 0xCD, 0xF3, 0x01,
+ 0x0C, 0xDA, 0xD0, 0x0F, 0xA3, 0x00, 0x23, 0x03, 0xF0, 0x02,
+ 0xD1, 0x0F, 0x13, 0x10, 0xD2, 0xF8, 0xF1, 0x28, 0x23, 0x31,
+ 0x93, 0x3C, 0xA3, 0x33, 0x93, 0x32, 0xD0, 0x08, 0xA3, 0x00,
+ 0x23, 0x03, 0xD1, 0x12, 0xD2, 0x30, 0xE0, 0x01, 0x07, 0xA6,
+ 0xF0, 0x02, 0xD1, 0x07, 0xA3, 0x01, 0xD2, 0x99, 0xE0, 0x01,
+ 0x07, 0xA6, 0xF0, 0x02, 0xD5, 0x01, 0xE0, 0x05, 0x0C, 0xED,
+ 0xD0, 0x4E, 0xC0, 0x01, 0xD2, 0xFF, 0xC2, 0x03, 0xD1, 0x42,
+ 0xC1, 0x01, 0xD3, 0x0C, 0xD5, 0x01, 0xF7, 0x08, 0xA0, 0x03,
+ 0xF6, 0x08, 0xA0, 0x03, 0xE0, 0x05, 0x07, 0xE6, 0xD4, 0x14,
+ 0xF4, 0x09, 0xD4, 0x00, 0xC4, 0x80, 0x1F, 0xF8, 0xE0, 0x05,
+ 0x07, 0xE6, 0xD4, 0x14, 0xF4, 0x09, 0xD5, 0x01, 0xC5, 0x70,
+ 0xE0, 0x05, 0x07, 0x5A, 0x2E, 0xE2, 0x86, 0x66, 0xD4, 0x00,
+ 0xC4, 0x42, 0x36, 0x64, 0xF4, 0x18, 0xD5, 0x00, 0xC5, 0x13,
+ 0x35, 0x45, 0x07, 0x45, 0x15, 0x45, 0x5F, 0xFA, 0x5D, 0xE9,
+ 0x2F, 0xF9, 0xF7, 0x05, 0x0D, 0x22, 0xA6, 0x41, 0xF1, 0x6C,
+ 0xA1, 0x13, 0xB3, 0x32, 0xF3, 0x05, 0x0C, 0xFD, 0xD5, 0x00,
+ 0xE0, 0x05, 0x0C, 0xED, 0xD5, 0x24, 0xC5, 0x01, 0xF6, 0x58,
+ 0xA5, 0x53, 0xF7, 0x58, 0xD5, 0x01, 0xE0, 0x05, 0x07, 0xE6,
+ 0xF0, 0x02, 0xD1, 0xF3, 0xF2, 0x18, 0xD1, 0xF4, 0xF0, 0x18,
+ 0x02, 0x20, 0xD1, 0xF5, 0xF0, 0x18, 0x12, 0x20, 0xD0, 0x7F,
+ 0xC0, 0x01, 0x02, 0x20, 0xD1, 0xC4, 0xC1, 0x01, 0xF1, 0x2C,
+ 0xF0, 0x02, 0x82, 0x02, 0xD1, 0x7C, 0xC1, 0x01, 0x01, 0x12,
+ 0xF2, 0x18, 0xD3, 0x04, 0xC3, 0x01, 0xF7, 0x38, 0xD0, 0x0F,
+ 0xC0, 0xFF, 0x2F, 0xF0, 0x1F, 0xF2, 0xD5, 0x02, 0xD6, 0xF0,
+ 0xE0, 0x05, 0x07, 0xA6, 0xA1, 0x13, 0xF2, 0x18, 0xA3, 0x33,
+ 0xF7, 0x38, 0xD0, 0xFF, 0xC0, 0x9B, 0x2F, 0xF0, 0x1F, 0xF2,
+ 0xD5, 0x03, 0xE0, 0x05, 0x07, 0xA6, 0xF0, 0x02, 0xD1, 0x00,
+ 0xD2, 0x01, 0xD4, 0xF3, 0xF5, 0x48, 0x4F, 0x5C, 0xF3, 0x05,
+ 0x0D, 0x6E, 0xD1, 0x01, 0x10, 0x05, 0xD4, 0xF4, 0xF5, 0x48,
+ 0x4F, 0x5C, 0xF3, 0x05, 0x0D, 0x6E, 0xD2, 0x00, 0x10, 0x05,
+ 0xD4, 0xF1, 0xF3, 0x48, 0xF3, 0x01, 0x0D, 0x88, 0xD4, 0xFE,
+ 0xF3, 0x48, 0x93, 0x33, 0xF3, 0x01, 0x0D, 0x88, 0xD4, 0xF9,
+ 0xF3, 0x48, 0xD5, 0xB3, 0x23, 0x35, 0xD5, 0x00, 0xC5, 0x10,
+ 0x05, 0x53, 0x65, 0x51, 0x85, 0x5B, 0x85, 0x5B, 0xD3, 0x0F,
+ 0x4F, 0x5F, 0xF3, 0x01, 0x0D, 0x93, 0xD5, 0x0F, 0xF0, 0x19,
+ 0x0D, 0x93, 0xD4, 0xFE, 0xF3, 0x48, 0x93, 0x33, 0x83, 0x32,
+ 0x01, 0x13, 0x81, 0x14, 0xD3, 0x84, 0xC3, 0xF8, 0x75, 0x31,
+ 0xD4, 0x0F, 0x2D, 0xD8, 0xD3, 0x03, 0xD4, 0x52, 0xE0, 0x03,
+ 0x07, 0xA6, 0xA5, 0x21, 0xD3, 0x03, 0xD4, 0x77, 0xE0, 0x03,
+ 0x07, 0xA6, 0xD5, 0x80, 0x4F, 0x5C, 0xF3, 0x05, 0x0D, 0xA4,
+ 0x10, 0x05, 0xD4, 0xF5, 0xF5, 0x48, 0x00, 0x05, 0xA5, 0x01,
+ 0xD3, 0x06, 0xD4, 0xF8, 0xE0, 0x03, 0x07, 0xA6, 0xF0, 0x02,
+ 0xA2, 0x01, 0xD0, 0x0E, 0xD1, 0xBA, 0xE0, 0x00, 0x07, 0xA6,
+ 0xF0, 0x02, 0x83, 0x09, 0xF3, 0x05, 0x0D, 0xB8, 0x81, 0x05,
+ 0xD3, 0x03, 0x2E, 0xCF, 0xF0, 0x19, 0x0D, 0xC2, 0xD1, 0x0C,
+ 0x12, 0x01, 0x83, 0x29, 0xF3, 0x01, 0x0D, 0xC1, 0xB2, 0x28,
+ 0xA1, 0x19, 0xF0, 0x19, 0x0D, 0xBA, 0x81, 0x15, 0xD4, 0x0E,
+ 0xA6, 0x21, 0xD5, 0xFC, 0xE0, 0x04, 0x07, 0xA6, 0xD4, 0x0E,
+ 0xA6, 0x11, 0xD5, 0x75, 0xE0, 0x04, 0x07, 0xA6, 0xF0, 0x02,
+ 0xE0, 0x00, 0x0E, 0x2E, 0xD5, 0x9D, 0xC5, 0x01, 0xF4, 0x58,
+ 0xF5, 0x0C, 0x4E, 0x0C, 0xF6, 0x05, 0x0D, 0xE7, 0x4E, 0xC0,
+ 0xF6, 0x01, 0x0E, 0x10, 0x14, 0x40, 0x84, 0x43, 0xD3, 0x01,
+ 0xE0, 0x03, 0x0E, 0x11, 0xA1, 0x31, 0xD3, 0x08, 0xC3, 0x20,
+ 0xE0, 0x03, 0x07, 0x5A, 0x31, 0x14, 0x81, 0x14, 0xF0, 0x19,
+ 0x0D, 0xF3, 0xD3, 0x00, 0x14, 0x04, 0x84, 0x43, 0xE0, 0x03,
+ 0x0E, 0x11, 0xA1, 0x31, 0xD3, 0x08, 0xC3, 0x20, 0xE0, 0x03,
+ 0x07, 0x5A, 0x31, 0x14, 0x81, 0x14, 0xD2, 0x40, 0xD3, 0x00,
+ 0xE0, 0x03, 0x07, 0x5A, 0xB2, 0x22, 0xF2, 0x01, 0x0E, 0x01,
+ 0xD3, 0x00, 0xE0, 0x03, 0x07, 0x5A, 0xD6, 0x04, 0x2C, 0xCA,
+ 0xF4, 0x01, 0x0D, 0xF7, 0xD6, 0xFD, 0xC6, 0x01, 0xF6, 0x1C,
+ 0xF1, 0x05, 0x0E, 0x07, 0xD1, 0x04, 0xA4, 0x11, 0xD3, 0x0F,
+ 0xC3, 0xA0, 0xE0, 0x03, 0x07, 0x6C, 0xE0, 0x03, 0x07, 0x7B,
+ 0xE0, 0x03, 0x0F, 0xBD, 0xF0, 0x02, 0xD3, 0x00, 0xC3, 0x20,
+ 0xF0, 0x05, 0x0E, 0x1C, 0xD3, 0x5B, 0xC3, 0x0B, 0xD4, 0x00,
+ 0xC4, 0x09, 0x11, 0x41, 0xA4, 0x10, 0x21, 0x14, 0xA5, 0x11,
+ 0xD6, 0xC0, 0xE0, 0x05, 0x0C, 0x08, 0xD4, 0x60, 0x4C, 0xE8,
+ 0x05, 0x54, 0xD2, 0xE3, 0xC2, 0x22, 0xF5, 0x01, 0x0E, 0x2C,
+ 0x33, 0x32, 0x83, 0x34, 0xB5, 0x52, 0xF0, 0x19, 0x0E, 0x25,
+ 0xA0, 0x31, 0xF0, 0x02, 0xD1, 0x04, 0xD0, 0x00, 0xD4, 0xC0,
+ 0xC4, 0x01, 0xF2, 0x48, 0xA4, 0x45, 0xF3, 0x48, 0xA4, 0x43,
+ 0x40, 0x23, 0xB1, 0x12, 0xF1, 0x05, 0x0E, 0x32, 0xF0, 0x02,
+ 0xA2, 0x01, 0xE0, 0x02, 0x0F, 0x8A, 0xE0, 0x01, 0x0C, 0x08,
+ 0xF0, 0x02, 0xD6, 0x0F, 0xC6, 0x70, 0xE0, 0x06, 0x07, 0x5A,
+ 0xD4, 0xFF, 0x20, 0xC4, 0x81, 0x79, 0x81, 0x19, 0x22, 0xFC,
+ 0xD3, 0xBD, 0xC3, 0x01, 0xF5, 0x38, 0x10, 0x05, 0x94, 0x01,
+ 0x20, 0x04, 0xA3, 0x33, 0xF5, 0x38, 0x11, 0x15, 0x94, 0x11,
+ 0x21, 0x14, 0xA3, 0x33, 0xF5, 0x38, 0x12, 0x25, 0x94, 0x21,
+ 0x22, 0x24, 0xD3, 0xB1, 0xC3, 0x01, 0xF3, 0x0C, 0xA3, 0x37,
+ 0xF3, 0x1C, 0xA3, 0x37, 0xF3, 0x2C, 0xA3, 0x37, 0xE0, 0x06,
+ 0x07, 0x02, 0xF3, 0x6C, 0xF0, 0x02, 0xD4, 0xB1, 0xC4, 0x01,
+ 0xD5, 0x03, 0x44, 0x05, 0xF2, 0x48, 0xA4, 0x43, 0xF1, 0x48,
+ 0xA4, 0x43, 0xF3, 0x48, 0x4D, 0xED, 0x45, 0xFE, 0x11, 0x51,
+ 0xF0, 0x02, 0xD3, 0xB1, 0xC3, 0x01, 0xD4, 0x03, 0x43, 0x04,
+ 0xF1, 0x38, 0xA3, 0x33, 0xF2, 0x38, 0x44, 0xDE, 0xF4, 0x05,
+ 0x0E, 0x97, 0xA5, 0x11, 0xE0, 0x05, 0x0C, 0x22, 0xA1, 0x51,
+ 0xA5, 0x21, 0xE0, 0x05, 0x0C, 0x22, 0x16, 0x51, 0xD3, 0xF6,
+ 0xF3, 0x6C, 0xD4, 0x00, 0xC4, 0x03, 0x4C, 0xE8, 0xF4, 0x01,
+ 0x0E, 0x8E, 0xD6, 0x00, 0xC6, 0x03, 0xA5, 0x01, 0xE0, 0x05,
+ 0x0E, 0x3B, 0xA1, 0x61, 0xF1, 0x05, 0x0E, 0xBB, 0xA1, 0x13,
+ 0xF0, 0x19, 0x0E, 0xBB, 0xA3, 0x33, 0xF2, 0x38, 0x44, 0xED,
+ 0xF4, 0x05, 0x0E, 0xB7, 0xA5, 0x11, 0xE0, 0x05, 0x0C, 0x22,
+ 0xA1, 0x51, 0xA5, 0x21, 0xE0, 0x05, 0x0C, 0x22, 0x16, 0x15,
+ 0xD3, 0xF6, 0xF3, 0x6C, 0xD4, 0x00, 0xC4, 0x03, 0x4C, 0xE8,
+ 0xF4, 0x01, 0x0E, 0xAD, 0xD6, 0x00, 0xC6, 0x03, 0xA5, 0x01,
+ 0xE0, 0x05, 0x0E, 0x3B, 0xA1, 0x61, 0xF1, 0x0D, 0xF1, 0x05,
+ 0x0E, 0xBB, 0xB1, 0x12, 0xF0, 0x19, 0x0E, 0xBB, 0xD1, 0x00,
+ 0xD6, 0x00, 0xD3, 0xF6, 0xF3, 0x6C, 0xF0, 0x02, 0xD4, 0xC0,
+ 0xC4, 0x01, 0xD5, 0x03, 0x44, 0x05, 0xF3, 0x48, 0x02, 0x31,
+ 0xA5, 0x20, 0xF5, 0x05, 0x0E, 0xCB, 0xF3, 0x01, 0x0E, 0xDB,
+ 0xD2, 0x00, 0xA4, 0x43, 0xF0, 0x19, 0x0E, 0xD4, 0xA4, 0x43,
+ 0xF5, 0x48, 0x13, 0x35, 0x4D, 0x2D, 0xF5, 0x01, 0x0E, 0xD4,
+ 0xF3, 0x01, 0x0E, 0xDB, 0xF2, 0x48, 0xB4, 0x42, 0xF4, 0x2C,
+ 0xE0, 0x00, 0x0F, 0x91, 0xD0, 0x01, 0xF0, 0x19, 0x0E, 0xDC,
+ 0xD0, 0x00, 0xF0, 0x02, 0xD0, 0xC0, 0xC0, 0x01, 0xF1, 0x08,
+ 0xE0, 0x01, 0x0D, 0x42, 0xA0, 0x07, 0xF1, 0x08, 0xE0, 0x01,
+ 0x0D, 0x5E, 0xA0, 0x07, 0xF1, 0x08, 0xE0, 0x01, 0x0D, 0xAA,
+ 0xA0, 0x07, 0xF1, 0x08, 0xE0, 0x01, 0x0D, 0xB0, 0xE0, 0x01,
+ 0x07, 0xC6, 0xF0, 0x02, 0xE0, 0x00, 0x0E, 0xDD, 0xE0, 0x00,
+ 0x07, 0x7B, 0xF0, 0x02, 0xD0, 0x00, 0xE0, 0x03, 0x0E, 0x41,
+ 0xD3, 0x00, 0xE0, 0x03, 0x0E, 0x66, 0xF4, 0x01, 0x0F, 0x02,
+ 0xE0, 0x03, 0x0E, 0xBC, 0xF3, 0x05, 0x0F, 0x1E, 0xD3, 0x01,
+ 0xE0, 0x03, 0x0E, 0x73, 0xF4, 0x01, 0x0F, 0x0B, 0xE0, 0x03,
+ 0x0E, 0xBC, 0xF3, 0x05, 0x0F, 0x1E, 0xD3, 0x02, 0xE0, 0x03,
+ 0x0E, 0x66, 0xF4, 0x01, 0x0F, 0x14, 0xE0, 0x03, 0x0E, 0xBC,
+ 0xF3, 0x05, 0x0F, 0x1E, 0xD3, 0x03, 0xE0, 0x03, 0x0E, 0x66,
+ 0xF4, 0x01, 0x0F, 0x1D, 0xE0, 0x03, 0x0E, 0xBC, 0xF3, 0x05,
+ 0x0F, 0x1E, 0xD3, 0x00, 0xA0, 0x31, 0xE0, 0x03, 0x0E, 0xF1,
+ 0xF0, 0x02, 0xD0, 0x00, 0xE0, 0x03, 0x0E, 0x41, 0xD3, 0x00,
+ 0xE0, 0x03, 0x0E, 0x66, 0xF4, 0x01, 0x0F, 0x3D, 0xD1, 0xB0,
+ 0xC1, 0x01, 0xF2, 0x18, 0xA6, 0x24, 0xF6, 0x05, 0x0F, 0x34,
+ 0xA2, 0x23, 0xF1, 0x2C, 0xF0, 0x19, 0x0F, 0x6A, 0xD2, 0x00,
+ 0xF1, 0x2C, 0xE0, 0x03, 0x0E, 0xBC, 0xF3, 0x01, 0x0F, 0x41,
+ 0xD3, 0x01, 0xF0, 0x19, 0x0F, 0x67, 0xD1, 0xB0, 0xC1, 0x01,
+ 0xD2, 0x00, 0xF1, 0x2C, 0xD3, 0x01, 0xE0, 0x03, 0x0E, 0x73,
+ 0xF4, 0x01, 0x0F, 0x4F, 0xE0, 0x03, 0x0E, 0xBC, 0xF3, 0x01,
+ 0x0F, 0x4F, 0xD1, 0xF6, 0xF5, 0x18, 0xD3, 0x01, 0xF0, 0x19,
+ 0x0F, 0x67, 0xD3, 0x02, 0xE0, 0x03, 0x0E, 0x66, 0xF4, 0x01,
+ 0x0F, 0x5B, 0xE0, 0x03, 0x0E, 0xBC, 0xF3, 0x01, 0x0F, 0x5B,
+ 0xD3, 0x01, 0xF0, 0x19, 0x0F, 0x67, 0xD3, 0x03, 0xE0, 0x03,
+ 0x0E, 0x73, 0xF4, 0x01, 0x0F, 0x64, 0xE0, 0x03, 0x0E, 0xBC,
+ 0xF3, 0x05, 0x0F, 0x67, 0xD0, 0x00, 0xF0, 0x19, 0x0F, 0x6A,
+ 0xA0, 0x31, 0xE0, 0x03, 0x0E, 0xDD, 0xF0, 0x02, 0xD6, 0xC0,
+ 0xC6, 0x01, 0xD5, 0x03, 0x46, 0x25, 0xF2, 0x68, 0xA6, 0x63,
+ 0xF3, 0x68, 0xA6, 0x63, 0xF4, 0x68, 0x4D, 0xC0, 0xF5, 0x05,
+ 0x0F, 0x87, 0xB5, 0x12, 0xF5, 0x01, 0x0F, 0x81, 0x55, 0xEF,
+ 0xF5, 0x05, 0x0F, 0x87, 0x10, 0x04, 0xA2, 0x23, 0xF0, 0x19,
+ 0x0F, 0x74, 0xF2, 0x01, 0x0F, 0x87, 0x10, 0x04, 0xB2, 0x22,
+ 0xF0, 0x19, 0x0F, 0x74, 0xB6, 0x64, 0xF6, 0x2C, 0xF0, 0x02,
+ 0xD2, 0xC0, 0xC2, 0x01, 0xD1, 0x03, 0x42, 0x01, 0xA2, 0x25,
+ 0xF0, 0x28, 0xF0, 0x02, 0xF0, 0x01, 0x0F, 0x9B, 0xB0, 0x02,
+ 0xF0, 0x01, 0x0F, 0xA7, 0xB0, 0x02, 0xF0, 0x01, 0x0F, 0xB5,
+ 0xF0, 0x19, 0x0F, 0xBC, 0xD5, 0x00, 0xE0, 0x05, 0x0F, 0x8A,
+ 0xD3, 0x00, 0xC3, 0x03, 0x15, 0x53, 0xA6, 0x11, 0xD7, 0x01,
+ 0xE0, 0x05, 0x0F, 0x6B, 0xF0, 0x19, 0x0F, 0xBC, 0xF0, 0x19,
+ 0x0F, 0xBC, 0xD5, 0x01, 0xE0, 0x05, 0x0F, 0x8A, 0xA6, 0x11,
+ 0xD7, 0x03, 0xE0, 0x05, 0x0F, 0x6B, 0xD7, 0x02, 0xE0, 0x05,
+ 0x0F, 0x6B, 0xF0, 0x19, 0x0F, 0xBC, 0xD5, 0x02, 0xE0, 0x05,
+ 0x0F, 0x8A, 0xA6, 0x11, 0xD7, 0x03, 0xE0, 0x05, 0x0F, 0x6B,
+ 0xF0, 0x02, 0xD0, 0x2B, 0xE0, 0x00, 0x07, 0x68, 0xD0, 0x1F,
+ 0xD2, 0x00, 0xD1, 0xFF, 0xE0, 0x00, 0x07, 0xDF, 0xC2, 0x10,
+ 0xF2, 0x09, 0xD2, 0x01, 0xD1, 0xFF, 0xE0, 0x00, 0x07, 0xDF,
+ 0xF0, 0x02, 0xD7, 0x0F, 0xD8, 0x02, 0xC8, 0x02, 0xD9, 0x70,
+ 0xC9, 0xC0, 0xE0, 0x07, 0x07, 0xE6, 0xE0, 0x07, 0x0F, 0xBD,
+ 0xC5, 0xFF, 0xF5, 0x09, 0xD3, 0x10, 0xD0, 0x00, 0xD1, 0x00,
+ 0xD2, 0x00, 0xD7, 0x0F, 0xC7, 0x70, 0xE0, 0x07, 0x07, 0x5A,
+ 0xD5, 0xFF, 0x24, 0xD5, 0x00, 0x04, 0x84, 0x89, 0x84, 0x49,
+ 0x01, 0x14, 0x24, 0xC5, 0x02, 0x24, 0xD5, 0xFF, 0xF5, 0x09,
+ 0xB3, 0x32, 0xF3, 0x05, 0x0F, 0xDB, 0xD6, 0xBD, 0xC6, 0x01,
+ 0x80, 0x09, 0xF6, 0x0C, 0xA6, 0x63, 0x81, 0x19, 0xF6, 0x1C,
+ 0xA6, 0x63, 0x82, 0x29, 0xF6, 0x2C, 0xD7, 0x0F, 0xD8, 0xFE,
+ 0xC8, 0xFE, 0xD9, 0x7F, 0xC9, 0xC0, 0xE0, 0x07, 0x07, 0xE6,
+ 0xF0, 0x02, 0xF0, 0x19, 0x06, 0x68, 0x90, 0x00, 0x88, 0x00,
+ 0x30, 0x00, 0x34, 0x00, 0x24, 0x00, 0x6C, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x06, 0x6A, 0x80, 0x33, 0x00, 0x26, 0x00, 0x00, 0x00, 0x2A,
+ 0x00, 0x00, 0x00, 0x1E, 0x00, 0x22, 0x00, 0x00, 0x5C, 0x16,
+ 0x00, 0x22, 0x00, 0x00, 0x00, 0x00, 0x4F, 0xB2, 0x00, 0x02,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xD9, 0x00, 0x34,
+ 0x00, 0x41, 0x00, 0x00, 0xC3, 0xBF, 0x00, 0x44, 0x00, 0x71,
+ 0x00, 0x00, 0xA2, 0xE0, 0x00, 0x74, 0x00, 0xAF, 0x00, 0x00,
+ 0x82, 0x49, 0x00, 0xB2, 0x00, 0xDE, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x11, 0x11, 0x22, 0x22, 0x33, 0x33, 0x44, 0x44, 0x55, 0x55,
+ 0x66, 0x66, 0x77, 0x77, 0x88, 0x88, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x22, 0x22, 0x33, 0x33,
+ 0x44, 0x44, 0x55, 0x55, 0x66, 0x66, 0x77, 0x77, 0x88, 0x88,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x1F, 0x00, 0x4D, 0x00, 0xBC, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF,
+ 0x00, 0x00, 0x46, 0xFF, 0x10, 0x86, 0x15, 0xA3, 0x06, 0x7D,
+ 0x00, 0x00, 0x00, 0x00, 0x84, 0x43, 0x80, 0x00, 0x76, 0x17,
+ 0x00, 0x00, 0x67, 0xC0, 0x07, 0x00, 0x03, 0x3D, 0x00, 0xD0,
+ 0xF6, 0x4B, 0x80, 0x01, 0xF1, 0xA5, 0x00, 0x07, 0x01, 0x80,
+ 0x03, 0x12, 0x65, 0x05, 0x86, 0x45, 0x2C, 0xFC, 0x02, 0xF8,
+ 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00,
+ 0x7F, 0x78, 0xFE, 0xFE, 0xC0, 0x7F, 0xFA, 0xFF, 0x10, 0xAF,
+ 0x25, 0xAE, 0x02, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x3A, 0x07,
+ 0x9A, 0x00, 0x27, 0x47, 0x00, 0x00, 0x40, 0x00, 0x05, 0x00,
+ 0x3C, 0x75, 0xC0, 0x10, 0x38, 0x67, 0xC6, 0x08, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x84, 0x03, 0x52, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0xC0, 0x0E, 0x7F, 0x7C, 0xFE, 0xFE, 0xC0, 0x7F,
+ 0x00, 0xA0, 0x01, 0x76, 0x01, 0x38, 0x02, 0xC0, 0x02, 0x30,
+ 0x04, 0x20, 0x03, 0x60, 0x06, 0x5C, 0x04, 0xBC, 0x09, 0x60,
+ 0x07, 0x9C, 0x0D, 0x70, 0x19, 0x03, 0xF0, 0x01, 0x19, 0x20,
+ 0x00, 0x01, 0x19, 0x23, 0xF0, 0x02, 0x19, 0x20, 0x00, 0x02,
+ 0x19, 0x23, 0xF0, 0x03, 0x19, 0x20, 0x00, 0x03, 0x19, 0x23,
+ 0xF0, 0x04, 0x19, 0x20, 0x00, 0x04, 0x19, 0x23, 0xF0, 0x05,
+ 0x19, 0x20, 0x00, 0x05, 0x19, 0x23, 0xF0, 0x06, 0x19, 0x20,
+ 0x00, 0x06, 0x50, 0x0C, 0x4C, 0x14, 0x5C, 0x0C, 0x5C, 0x14,
+ 0x70, 0x0C, 0x6C, 0x14, 0x50, 0x0C, 0x4C, 0x14, 0x00, 0x0E,
+ 0x00, 0x0E, 0x00, 0x10, 0x00, 0x12, 0x00, 0x2E, 0x00, 0xE0,
+ 0x01, 0x20, 0x01, 0x60, 0x01, 0x60, 0xF7, 0x00, 0xFF, 0x90,
+ 0xFF, 0x70, 0xFF, 0x50, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00,
+ 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0xA0,
+ 0x00, 0x00, 0x0D, 0xC8, 0x03, 0x52, 0x1D, 0xA8, 0x89, 0x03,
+ 0x00, 0xCC, 0x00, 0x4D, 0x00, 0x1A, 0x00, 0x0D, 0x00, 0x00,
+ 0x00, 0x40, 0x00, 0x01, 0x00, 0x06, 0x00, 0x44, 0xC0, 0xC7,
+ 0xA0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x0F,
+ 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0D,
+ 0x02, 0x71, 0x00, 0x00, 0x18, 0x15, 0x0E, 0x16, 0x07, 0xC1,
+ 0x04, 0x18, 0x02, 0x1B, 0x01, 0x12, 0x00, 0x8A, 0x00, 0x45,
+ 0x00, 0x23, 0x00, 0x11, 0x00, 0x09, 0x00, 0x04, 0x00, 0x02,
+ 0x0D, 0x33, 0x0B, 0x85, 0x0A, 0x8F, 0x0D, 0x33, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x3A, 0x00, 0x00,
+ 0x00, 0x32, 0x00, 0x50, 0x00, 0x00, 0x00, 0x46, 0x00, 0xAA,
+ 0x00, 0x00, 0x03, 0x20, 0x03, 0xAC, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x09, 0x00, 0x00, 0x38,
+ 0x00, 0xFF, 0x00, 0x26, 0x00, 0x02, 0x00, 0x03, 0x03, 0x00,
+ 0x00, 0x20, 0x00, 0x2B, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x30,
+ 0xFF, 0xD0, 0x00, 0x60, 0xFF, 0xA0, 0x00, 0x90, 0xFF, 0x70,
+ 0x00, 0xA0, 0x00, 0x02, 0x18, 0x20, 0x24, 0x20, 0x30, 0x20,
+ 0x2A, 0x0E, 0x32, 0x12, 0x3A, 0x16, 0x28, 0x00, 0x1E, 0x00,
+ 0x14, 0x00, 0x80, 0x00, 0xCC, 0x35, 0x2B, 0x8F, 0x8F, 0x10,
+ 0xCC, 0x35, 0x2B, 0x8F, 0x8F, 0x10, 0xCC, 0x30, 0x2B, 0x8F,
+ 0x8F, 0x10, 0xCC, 0x30, 0x2B, 0x8F, 0x8F, 0x10, 0x00, 0x07,
+ 0x00, 0x04, 0x00, 0x0A, 0x00, 0x09, 0x00, 0x0D, 0x00, 0x0B,
+ 0x00, 0x01, 0x11, 0x70, 0x00, 0x00, 0xD8, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 8236 BYTES */
+};
+
+// ************************************************************
+// *** INI FILE
+// *** This initial file was used for all TV Standards
+// ************************************************************
+
+unsigned char XC4000_INIT_SEQUENCE[130] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x10, 0x41,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x00, 0x0B, 0x80, 0xF9, 0xD7, 0x3E, 0x75, 0xC1, 0x8A, 0xE4,
+ 0x02, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x05, 0x0A, 0xAC, 0xAA, 0x53, 0x4A, 0x4A,
+ 0x00, 0x0C, /* Length = 12 bytes */
+ 0x00, 0x06, 0x00, 0x0A, 0x6D, 0x8C, 0xF2, 0xD8, 0xCF, 0x2A,
+ 0x39, 0x04,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0A, 0x00, 0x0E, 0x56, 0x8A,
+ 0x00, 0x11, /* Length = 17 bytes */
+ 0x00, 0x09, 0x01, 0x6D, 0x18, 0xFA, 0x07, 0x81, 0xF2, 0x18,
+ 0x64, 0x3C, 0xFA, 0xF7, 0xE1, 0x0C, 0x2C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x0E, 0x15,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x14, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x01, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x06,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x2D, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x01, /* WAIT 001[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x00, 0x00, 0x00,
+ 0x80, 0x64, /* WAIT 100[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 130 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_MN_NTSC_PAL_BTSC_SEQUENCE[196] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5,
+ 0xB5, 0x25, 0x65,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x08, 0xCC, 0x35,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x05,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x25, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x35, 0x09,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0xA0,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 196 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_MN_NTSC_PAL_BTSC_NOGD_SEQUENCE[196] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x08, 0xCC, 0x35,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x05,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x25, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x35, 0x09,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x20,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 196 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_MN_NTSC_PAL_A2_IF_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5,
+ 0xB5, 0x25, 0x65,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0xA0,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_MN_NTSC_PAL_A2_IF_NOGD_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x20,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_MN_NTSC_PAL_MTS_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5,
+ 0xB5, 0x25, 0x65,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x40, 0xF2, 0xAA, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0xA0,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_MN_NTSC_PAL_A2_MONO_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x0D, 0x86, 0x51, 0xD2, 0x35, 0xA4, 0x92, 0xA5,
+ 0xB5, 0x25, 0x65,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0xA0,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_MN_NTSC_PAL_A2_MONO_NOGD_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x20,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_L_SECAM_NICAM_SEQUENCE[203] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x10, 0x59,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x67, 0x65, 0xF4, 0xAA, 0x40, 0x40,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x21, 0x12, 0x9B, 0x3C,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x08, 0xCC, 0x30,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x28, 0xBF, 0xBF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x80, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x00, 0x09,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 203 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_L_SECAM_AM_SEQUENCE[194] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x10, 0x49,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x67, 0x65, 0xF4, 0xAA, 0x40, 0x40,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x03,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x41,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x82, 0x66,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x44,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x35, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x08, 0xCC, 0x30,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x28, 0xBF, 0xBF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0xA1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x00, 0x09,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 194 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_IL_SECAM_NICAM_SEQUENCE[195] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x10, 0x49,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x67, 0x65, 0xF4, 0xAA, 0x40, 0x40,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x09,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x08, 0xCC, 0x30,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x28, 0xBF, 0xBF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x80, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x40, 0x09,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 195 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_IL_SECAM_AM_SEQUENCE[194] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x10, 0x49,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x67, 0x65, 0xF4, 0xAA, 0x40, 0x40,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x03,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x41,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x82, 0x66,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x44,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x35, 0x31,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x08, 0xCC, 0x30,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x28, 0xBF, 0xBF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0xA1, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x40, 0x09,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 194 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_FM_INPUT1_SEQUENCE[189] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x40, 0xF2, 0xAA, 0xE9, 0xE9,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x21, 0x12, 0x9B, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x05, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x24, 0x30,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x90, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 189 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_FM_INPUT2_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x40, 0xF2, 0xAA, 0xE9, 0xE9,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x00,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x21, 0x12, 0x9B, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x09, 0x08, 0x04, 0x42, 0x42, 0x01, 0x10,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x05, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x98, 0x00,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_ATSC_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x40, 0xF2, 0xAA, 0xE9, 0xE9,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x02,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x21, 0x12, 0x9B, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x05, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x02,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_DVBT_8_SEQUENCE[174] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x03,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x21, 0x12, 0x9B, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x05, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x0B,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 174 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_DVBT_78_SEQUENCE[153] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x03,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x21, 0x12, 0x9B, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x05, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x1B,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 153 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_DVBT_7_SEQUENCE[174] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x1B, 0x06, 0x30, 0x10, 0x0C, 0x08, 0x0D, 0x8D,
+ 0x09, 0x15, 0x2F,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x03,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x21, 0x12, 0x9B, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x06,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x05, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0xC0,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x07,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 174 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_B_G_PAL_NICAM_A_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9,
+ 0x12, 0x41, 0x66,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x01,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x81, 0x59,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_B_G_PAL_NICAM_A_MONO_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9,
+ 0x12, 0x41, 0x66,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x81, 0x59,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_B_G_PAL_NICAM_B_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x2D, 0x09, 0x6D, 0xB5, 0xA6, 0xD2, 0x59,
+ 0x16, 0x41, 0x65,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x01,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x04,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x81, 0xD9,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_B_G_PAL_NICAM_B_MONO_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x2D, 0x09, 0x6D, 0xB5, 0xA6, 0xD2, 0x59,
+ 0x16, 0x41, 0x65,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x01,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x41,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x01, 0x34,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x81, 0xD9,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_B_G_PAL_A2_B_SEQUENCE[189] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x17, 0x02,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x2D, 0x09, 0x6D, 0xB5, 0xA6, 0xD2, 0x59,
+ 0x16, 0x41, 0x65,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x81, 0xD9,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 189 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_B_G_PAL_A2_B_MONO_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x2D, 0x09, 0x6D, 0xB5, 0xA6, 0xD2, 0x59,
+ 0x16, 0x41, 0x65,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x81, 0xD9,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_B_G_PAL_A2_A_SEQUENCE[199] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9,
+ 0x12, 0x41, 0x66,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x81, 0x59,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 199 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_B_G_PAL_A2_A_MONO_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x01, 0xB6, 0x15, 0x16, 0xB1, 0xA6, 0xD2, 0xA9,
+ 0x12, 0x41, 0x66,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x81, 0x59,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_I_PAL_NICAM_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x01,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x49,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_I_PAL_NICAM_MONO_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x29,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x40, 0xF2, 0xAA, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x09, 0x08, 0x04, 0x42, 0x42, 0x01, 0x10,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x49,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_D_K_PAL_NICAM_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x01,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x80,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x49,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_D_K_PAL_NICAM_MONO_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x29,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x40, 0xF2, 0xAA, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x09, 0x08, 0x04, 0x42, 0x42, 0x01, 0x10,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0xAF, 0xAF, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x49,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_D_K_SECAM_A2_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x49,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_D_K_SECAM_A2_MONO_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x14, 0x08, 0x00, 0x00, 0x0C, 0x08, 0xDA, 0xB4,
+ 0xDA, 0x0B, 0x2D,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x40,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x78,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x49,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+unsigned char XC4000_D_K_PAL_FM_ONLY_SEQUENCE[184] = {
+
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x05, 0x00, 0x00,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x29, 0x07,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x01, 0x29,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x0B, /* Length = 11 bytes */
+ 0x00, 0x18, 0x00, 0x00, 0x16, 0x8A, 0x40, 0x00, 0x00, 0x00,
+ 0x20,
+ 0x00, 0x0D, /* Length = 13 bytes */
+ 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00,
+ 0x00, 0x08, /* Length = 8 bytes */
+ 0x00, 0x0C, 0x57, 0x66, 0xF4, 0x66, 0xD4, 0xD4,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x16, 0x01,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x0D, 0x28, 0xD6, 0x88, 0x3C,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1E, 0x02,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x1F, 0x04,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x20, 0x29,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x21, 0x06,
+ 0x00, 0x0A, /* Length = 10 bytes */
+ 0x00, 0x23, 0x00, 0x08, 0x09, 0x68, 0x9A, 0x02, 0x5A, 0x26,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x27, 0x00,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x35, 0x00, 0x08,
+ 0x00, 0x06, /* Length = 6 bytes */
+ 0x00, 0x3A, 0x2B, 0x8F, 0x8F, 0x10,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x3B, 0x07, 0xFF,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x2E,
+ 0x00, 0x03, /* Length = 3 bytes */
+ 0x00, 0x02, 0x1F,
+ 0x00, 0x05, /* Length = 5 bytes */
+ 0x00, 0x00, 0x00, 0x00, 0x88,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x02, 0x00, 0x08,
+ 0x00, 0x04, /* Length = 4 bytes */
+ 0x00, 0x01, 0x80, 0x49,
+ 0x80, 0x0A, /* WAIT 010[ms] */
+ 0xFF, 0xFF /* END OF SEQUENCE. TOTAL MEMORY REQ'D = 184 BYTES */
+};
+
+// ************************************************************
+// *** Standard FILES
+// *** One file was used for one TV Standards
+// ************************************************************
+
+
+#endif
+
diff --git a/api/xc4000_scodes.h b/api/xc4000_scodes.h
new file mode 100644
index 0000000..f2638de
--- /dev/null
+++ b/api/xc4000_scodes.h
@@ -0,0 +1,906 @@
+//
+// Automatically generated C header file for
+// control of the XC4000 via the i2c interface.
+//
+// Filename : xc4000_scodes.h
+// Generated : 05/17/2006 4:41:24 PM
+//
+// (c) 2007, Xceive Corporation
+//
+
+#include "xc4000_control.h"
+
+#ifndef __XC4000_SCODES_H
+#define __XC4000_SCODES_H
+
+XC4000_SCODE_TABLE XC4000_scode_table_5400000 = {
+ { 0x00, 0x1C, 0x1A, 0x83, 0x25, 0xB4, 0x03, 0x6E, 0x01, 0x96, 0x86, 0xA8, 0x1C },
+ { 0x00, 0x1C, 0x1E, 0x43, 0xBF, 0xE0, 0x02, 0xDB, 0xC1, 0xAA, 0x06, 0x9A, 0x24 },
+ { 0x00, 0x1C, 0x1F, 0x13, 0x87, 0x18, 0x02, 0x93, 0x91, 0x44, 0x86, 0x96, 0x8C },
+ { 0x00, 0x1C, 0x0B, 0x23, 0x76, 0x18, 0x02, 0x9B, 0x6D, 0x54, 0x46, 0x9A, 0x44 },
+ { 0x00, 0x1C, 0x19, 0xD3, 0x00, 0xD8, 0x02, 0x9B, 0x91, 0x42, 0x86, 0xAA, 0x96 },
+ { 0x00, 0x1C, 0x15, 0x32, 0xDB, 0x94, 0x02, 0x49, 0x25, 0x69, 0x86, 0x96, 0x5B },
+ { 0x00, 0x1C, 0x1C, 0xF2, 0xE4, 0xB8, 0x02, 0x49, 0x25, 0x65, 0x86, 0x9A, 0x95 },
+ { 0x00, 0x1C, 0x1D, 0xC2, 0xE4, 0xB4, 0x02, 0x5C, 0xA1, 0x5A, 0x46, 0x9A, 0x14 },
+ { 0x00, 0x1C, 0x1A, 0x83, 0x25, 0xB4, 0x03, 0x6E, 0x01, 0x96, 0x86, 0xA8, 0x1C },
+ { 0x00, 0x1C, 0x0D, 0x02, 0xB7, 0x18, 0x02, 0x4A, 0x49, 0xA8, 0x46, 0x65, 0x5A },
+ { 0x00, 0x1C, 0x0B, 0xA2, 0x9C, 0xE0, 0x02, 0x49, 0x25, 0x9A, 0x06, 0x6A, 0x9D },
+ { 0x00, 0x1C, 0x14, 0xD2, 0x94, 0xE0, 0x02, 0x9B, 0x6D, 0x99, 0x06, 0x5A, 0x94 },
+ { 0x00, 0x1C, 0x01, 0x72, 0xDC, 0xB8, 0x02, 0x92, 0x49, 0xA9, 0x86, 0x65, 0xA3 },
+ { 0x00, 0x1C, 0x0A, 0xA2, 0xED, 0x18, 0x02, 0xE4, 0x91, 0xA4, 0x86, 0x55, 0x59 },
+ { 0x00, 0x1C, 0x14, 0x92, 0xDB, 0x6D, 0x83, 0x25, 0x01, 0x99, 0xA6, 0x54, 0x21 },
+ { 0x00, 0x1C, 0x09, 0x93, 0x24, 0x90, 0x03, 0x6D, 0xA1, 0xA5, 0x46, 0x6A, 0x14 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4760000 = {
+ { 0x00, 0x1C, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06, 0x69, 0x13 },
+ { 0x00, 0x1C, 0x09, 0x62, 0x49, 0x29, 0x00, 0x00, 0x41, 0x66, 0xA6, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x09, 0xD2, 0x52, 0x92, 0x00, 0x02, 0x49, 0x6A, 0x96, 0x69, 0xA4 },
+ { 0x00, 0x1C, 0x03, 0x72, 0x54, 0x92, 0x00, 0x00, 0x09, 0x65, 0x66, 0x6A, 0x95 },
+
+ { 0x00, 0x1C, 0x0C, 0x72, 0x5C, 0x92, 0x00, 0x49, 0x25, 0x6A, 0x56, 0x59, 0x5A },
+ { 0x00, 0x1C, 0x1B, 0xD2, 0x65, 0x00, 0x00, 0x52, 0x81, 0x68, 0x06, 0x5A, 0x13 },
+ { 0x00, 0x1C, 0x0C, 0x82, 0x70, 0xD8, 0x00, 0x5B, 0x71, 0x52, 0x46, 0x65, 0x8B },
+ { 0x00, 0x1C, 0x06, 0x32, 0x5B, 0x90, 0x00, 0x52, 0x4D, 0x5A, 0x86, 0x6A, 0x5C },
+
+ { 0x00, 0x1C, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06, 0x69, 0x13 },
+ { 0x00, 0x1C, 0x07, 0x92, 0x92, 0x48, 0x02, 0x49, 0x49, 0x65, 0x86, 0xA9, 0x95 },
+ { 0x00, 0x1C, 0x1C, 0x52, 0xA4, 0x92, 0x00, 0x01, 0x49, 0x69, 0x56, 0x56, 0x52 },
+ { 0x00, 0x1C, 0x13, 0x72, 0xA8, 0x18, 0x00, 0x00, 0x01, 0x50, 0x86, 0x59, 0x4A },
+ { 0x00, 0x1C, 0x19, 0xF2, 0x9C, 0x18, 0x00, 0x0B, 0xA1, 0x54, 0x86, 0x56, 0x0A },
+ { 0x00, 0x1C, 0x11, 0x72, 0x93, 0x78, 0x00, 0x13, 0x91, 0x59, 0x46, 0x55, 0x49 },
+ { 0x00, 0x1C, 0x03, 0x52, 0x92, 0x54, 0x00, 0x00, 0xC1, 0x55, 0x86, 0x42, 0x0A },
+ { 0x00, 0x1C, 0x18, 0x52, 0x49, 0x2E, 0x00, 0x13, 0x81, 0x69, 0x96, 0x66, 0x1B }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6580000 = {
+ { 0x00, 0x1C, 0x1B, 0xE4, 0xDB, 0x92, 0x06, 0xE8, 0xC1, 0x66, 0x96, 0x92, 0x1B },
+ { 0x00, 0x1C, 0x03, 0x14, 0xE5, 0xB8, 0x06, 0xDC, 0x91, 0x5A, 0x86, 0xAA, 0x9E },
+ { 0x00, 0x1C, 0x0E, 0x44, 0x92, 0x4D, 0x84, 0x92, 0x51, 0x69, 0x66, 0x5A, 0x9C },
+ { 0x00, 0x1C, 0x0A, 0xE4, 0x9B, 0x94, 0x04, 0x80, 0xC1, 0x6A, 0x46, 0x41, 0x19 },
+ { 0x00, 0x1C, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 },
+ { 0x00, 0x1C, 0x13, 0x54, 0x98, 0xD8, 0x04, 0xDE, 0x01, 0x52, 0x46, 0x54, 0x09 },
+ { 0x00, 0x1C, 0x03, 0xD4, 0x95, 0xD8, 0x04, 0xE5, 0xA1, 0x56, 0x86, 0x65, 0x12 },
+ { 0x00, 0x1C, 0x0A, 0x02, 0x49, 0x54, 0x05, 0x38, 0xC1, 0xA9, 0x86, 0x51, 0x21 },
+ { 0x00, 0x1C, 0x1B, 0xE4, 0xDB, 0x92, 0x06, 0xE8, 0xC1, 0x66, 0x96, 0x92, 0x1B },
+ { 0x00, 0x1C, 0x0B, 0xD4, 0x93, 0x74, 0x06, 0xDB, 0x6D, 0x96, 0x86, 0x56, 0x9B },
+ { 0x00, 0x1C, 0x09, 0xD4, 0xE7, 0x00, 0x06, 0xC6, 0x01, 0xA4, 0x06, 0x44, 0x11 },
+ { 0x00, 0x1C, 0x1C, 0x54, 0xDC, 0xB8, 0x06, 0xDB, 0x91, 0x99, 0x86, 0x69, 0x5B },
+ { 0x00, 0x1C, 0x1C, 0xF5, 0x28, 0x18, 0x07, 0x20, 0xC1, 0x90, 0x46, 0x62, 0x0B },
+ { 0x00, 0x1C, 0x01, 0x35, 0xBF, 0x00, 0x07, 0xB6, 0xC1, 0xA8, 0x06, 0x6A, 0x1C },
+ { 0x00, 0x1C, 0x0E, 0x15, 0x6D, 0xB8, 0x07, 0x76, 0x01, 0x66, 0x86, 0xA4, 0x1B },
+ { 0x00, 0x1C, 0x0A, 0x35, 0x38, 0xD8, 0x07, 0x25, 0xA1, 0x52, 0x86, 0xA6, 0x14 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4500000 = {
+ { 0x00, 0x1C, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46, 0x69, 0x0B },
+ { 0x00, 0x1C, 0x02, 0xB2, 0x54, 0xE0, 0x00, 0x92, 0x6D, 0x59, 0x06, 0x59, 0x8B },
+ { 0x00, 0x1C, 0x1D, 0xC2, 0x52, 0x92, 0x00, 0xA4, 0x91, 0x56, 0x96, 0x66, 0x94 },
+ { 0x00, 0x1C, 0x19, 0x42, 0x49, 0x54, 0x00, 0xDB, 0x6D, 0x59, 0x46, 0x55, 0x49 },
+ { 0x00, 0x1C, 0x0F, 0x72, 0x4B, 0x6E, 0x00, 0xE4, 0x81, 0x5A, 0x56, 0x6A, 0x14 },
+ { 0x00, 0x1C, 0x1D, 0xE2, 0x4B, 0xB4, 0x01, 0x24, 0x91, 0x55, 0x86, 0x69, 0x4B },
+ { 0x00, 0x1C, 0x18, 0xD2, 0x49, 0x54, 0x01, 0x6F, 0x01, 0x56, 0x46, 0x98, 0x0B },
+ { 0x00, 0x1C, 0x1B, 0xA0, 0x00, 0x09, 0x00, 0xDC, 0xA1, 0xAA, 0x96, 0x96, 0x2B },
+ { 0x00, 0x1C, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46, 0x69, 0x0B },
+ { 0x00, 0x1C, 0x1A, 0x02, 0x4B, 0x00, 0x00, 0x09, 0x31, 0x64, 0x06, 0x69, 0x8C },
+ { 0x00, 0x1C, 0x1E, 0xB2, 0x49, 0x6E, 0x00, 0x01, 0x49, 0x65, 0x96, 0x66, 0x94 },
+ { 0x00, 0x1C, 0x0C, 0xD2, 0x53, 0x18, 0x00, 0x01, 0x29, 0x68, 0x86, 0x6A, 0x9D },
+ { 0x00, 0x1C, 0x0B, 0x22, 0x52, 0x6E, 0x00, 0x4A, 0x61, 0x66, 0x66, 0x55, 0x19 },
+ { 0x00, 0x1C, 0x1A, 0x12, 0x5C, 0x00, 0x00, 0x52, 0x91, 0x64, 0x06, 0x56, 0x8B },
+ { 0x00, 0x1C, 0x00, 0x72, 0x6D, 0xD8, 0x00, 0x6D, 0xA1, 0x66, 0x46, 0x56, 0x12 },
+ { 0x00, 0x1C, 0x09, 0xE2, 0x65, 0xD8, 0x00, 0x54, 0x91, 0x56, 0x86, 0x69, 0x94 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4600000 = {
+ { 0x00, 0x1C, 0x1A, 0x82, 0x5B, 0xD8, 0x00, 0x54, 0x91, 0x66, 0x46, 0x56, 0x93 },
+ { 0x00, 0x1C, 0x0E, 0x42, 0x46, 0x00, 0x00, 0x65, 0xA1, 0x44, 0x06, 0x65, 0x02 },
+ { 0x00, 0x1C, 0x1D, 0x32, 0x64, 0xD8, 0x00, 0x53, 0x71, 0x56, 0x86, 0x6A, 0x54 },
+ { 0x00, 0x1C, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46, 0x69, 0x0B },
+ { 0x00, 0x1C, 0x02, 0xB2, 0x54, 0xE0, 0x00, 0x92, 0x6D, 0x59, 0x06, 0x59, 0x8B },
+ { 0x00, 0x1C, 0x1D, 0xC2, 0x52, 0x92, 0x00, 0xA4, 0x91, 0x56, 0x96, 0x66, 0x94 },
+ { 0x00, 0x1C, 0x19, 0x42, 0x49, 0x54, 0x00, 0xDB, 0x6D, 0x59, 0x46, 0x55, 0x49 },
+ { 0x00, 0x1C, 0x0F, 0x72, 0x4B, 0x6E, 0x00, 0xE4, 0x81, 0x5A, 0x56, 0x6A, 0x14 },
+ { 0x00, 0x1C, 0x1A, 0x82, 0x5B, 0xD8, 0x00, 0x54, 0x91, 0x66, 0x46, 0x56, 0x93 },
+ { 0x00, 0x1C, 0x1F, 0x52, 0x94, 0xD8, 0x00, 0x12, 0x6D, 0x56, 0x46, 0x5A, 0x8C },
+ { 0x00, 0x1C, 0x0E, 0xC2, 0x49, 0x78, 0x00, 0x1C, 0x81, 0x6A, 0x86, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x0D, 0x22, 0x4A, 0x50, 0x00, 0x09, 0x61, 0x69, 0x46, 0x65, 0x12 },
+ { 0x00, 0x1C, 0x01, 0xB2, 0x4A, 0x78, 0x00, 0x09, 0x25, 0x66, 0x86, 0x6A, 0x9D },
+ { 0x00, 0x1C, 0x11, 0x12, 0x49, 0x4D, 0x80, 0x02, 0x6D, 0x65, 0x66, 0x65, 0x52 },
+ { 0x00, 0x1C, 0x18, 0xC2, 0x55, 0xA0, 0x00, 0x00, 0x25, 0x6A, 0x06, 0x69, 0x9C },
+ { 0x00, 0x1C, 0x0F, 0xE2, 0x52, 0x72, 0x00, 0x4B, 0x01, 0x65, 0xA6, 0x54, 0x19 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4320000 = {
+ { 0x00, 0x1C, 0x1B, 0x22, 0x4A, 0x49, 0x00, 0x38, 0xC1, 0x55, 0x66, 0x12, 0x0A },
+ { 0x00, 0x1C, 0x0C, 0x52, 0x49, 0x29, 0x81, 0x3F, 0x01, 0x55, 0xA6, 0x98, 0x13 },
+ { 0x00, 0x1C, 0x0A, 0xF0, 0x00, 0x4E, 0x00, 0xEE, 0xC1, 0xAA, 0x96, 0xA9, 0x2C },
+ { 0x00, 0x1C, 0x1D, 0x90, 0x00, 0x05, 0x00, 0x92, 0x49, 0xA9, 0xA6, 0x99, 0x6B },
+ { 0x00, 0x1C, 0x1D, 0x20, 0x01, 0x90, 0x00, 0xA4, 0xA1, 0xAA, 0x46, 0xA5, 0x23 },
+ { 0x00, 0x1C, 0x1F, 0x90, 0x02, 0x92, 0x00, 0x92, 0x49, 0xA9, 0x96, 0xA9, 0xA5 },
+ { 0x00, 0x1C, 0x15, 0x90, 0x05, 0xB4, 0x00, 0x4A, 0xC1, 0xA5, 0x46, 0x9A, 0x14 },
+ { 0x00, 0x1C, 0x1C, 0xC0, 0x02, 0x52, 0x00, 0x52, 0x71, 0xA5, 0x96, 0x9A, 0x5C },
+ { 0x00, 0x1C, 0x1B, 0x22, 0x4A, 0x49, 0x00, 0x38, 0xC1, 0x55, 0x66, 0x12, 0x0A },
+ { 0x00, 0x1C, 0x0E, 0x42, 0x46, 0x00, 0x00, 0x65, 0xA1, 0x44, 0x06, 0x65, 0x02 },
+ { 0x00, 0x1C, 0x09, 0x72, 0x5B, 0x98, 0x00, 0x49, 0x49, 0x59, 0x86, 0x65, 0x52 },
+ { 0x00, 0x1C, 0x0C, 0x22, 0x52, 0xE0, 0x00, 0x49, 0x25, 0x5A, 0x06, 0x6A, 0x54 },
+ { 0x00, 0x1C, 0x0D, 0x82, 0x55, 0xB4, 0x00, 0x9C, 0xC1, 0x55, 0x46, 0x5A, 0x03 },
+ { 0x00, 0x1C, 0x0A, 0x62, 0x49, 0x29, 0x00, 0x9B, 0x71, 0x5A, 0x96, 0x6A, 0x5C },
+ { 0x00, 0x1C, 0x0E, 0x82, 0x4A, 0x6E, 0x00, 0xED, 0xC1, 0x5A, 0x96, 0x55, 0x19 },
+ { 0x1, 0x1B, 0x92, 0x4D, 0x18, 0x01, 0x36, 0xC1, 0x54, 0x46, 0x59, 0x02 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6240000 = {
+ { 0x00, 0x1C, 0x1B, 0x22, 0x4A, 0x4C, 0x05, 0x2F, 0x01, 0xAA, 0x86, 0x68, 0x2B },
+ { 0x00, 0x1C, 0x01, 0xF2, 0x4A, 0x6E, 0x04, 0x30, 0xC1, 0xA6, 0x56, 0x11, 0x19 },
+ { 0x00, 0x1C, 0x0C, 0x52, 0x52, 0x49, 0x85, 0x24, 0x81, 0xA9, 0x96, 0x99, 0x23 },
+ { 0x00, 0x1C, 0x0D, 0x02, 0x52, 0x49, 0x84, 0xDB, 0x81, 0xA5, 0x66, 0x99, 0x1B },
+ { 0x00, 0x1C, 0x02, 0x52, 0x6E, 0xC0, 0x04, 0xDD, 0xA1, 0xA9, 0x06, 0xA5, 0x1B },
+ { 0x00, 0x1C, 0x06, 0x52, 0x66, 0xC0, 0x04, 0x93, 0x81, 0x96, 0x06, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x14, 0x32, 0x53, 0x6D, 0x84, 0xB0, 0xC1, 0x9A, 0x96, 0xA2, 0x24 },
+ { 0x00, 0x1C, 0x01, 0xB2, 0x49, 0x25, 0x04, 0x94, 0x01, 0x9A, 0x96, 0xA4, 0x23 },
+ { 0x00, 0x1C, 0x1B, 0x22, 0x4A, 0x4C, 0x05, 0x2F, 0x01, 0xAA, 0x86, 0x68, 0x2B },
+ { 0x00, 0x1C, 0x11, 0x14, 0xDE, 0x18, 0x06, 0xE5, 0xA1, 0x64, 0x86, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x14, 0x74, 0xED, 0xE0, 0x06, 0xDE, 0x01, 0x56, 0x06, 0xA8, 0x0C },
+ { 0x00, 0x1C, 0x12, 0x54, 0x92, 0xB4, 0x04, 0x92, 0x71, 0x6A, 0x86, 0x59, 0xA3 },
+ { 0x00, 0x1C, 0x0A, 0xE4, 0x9B, 0x94, 0x04, 0x80, 0xC1, 0x6A, 0x46, 0x41, 0x19 },
+ { 0x00, 0x1C, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 },
+ { 0x00, 0x1C, 0x19, 0x84, 0x9C, 0xB4, 0x04, 0xDB, 0x6D, 0x55, 0x46, 0x59, 0x42 },
+ { 0x00, 0x1C, 0x18, 0xE4, 0x93, 0x92, 0x04, 0xDB, 0xA1, 0x55, 0x96, 0x65, 0x0A }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5640000 = {
+ { 0x00, 0x1C, 0x1B, 0xD2, 0x9B, 0x92, 0x02, 0x96, 0xC1, 0x96, 0x56, 0x59, 0x12 },
+ { 0x00, 0x1C, 0x15, 0x32, 0x93, 0x6E, 0x02, 0xA8, 0xC1, 0x95, 0x66, 0x61, 0x12 },
+ { 0x00, 0x1C, 0x0A, 0x42, 0xDC, 0x92, 0x02, 0x94, 0x91, 0xA6, 0x56, 0x65, 0x9B },
+ { 0x00, 0x1C, 0x1E, 0x72, 0xC7, 0x00, 0x02, 0xEF, 0x01, 0x84, 0x06, 0x58, 0x0A },
+ { 0x00, 0x1C, 0x09, 0x32, 0xDD, 0xA0, 0x03, 0x2E, 0xC1, 0x9A, 0x06, 0x55, 0x19 },
+ { 0x00, 0x1C, 0x03, 0x53, 0x2D, 0xA0, 0x03, 0xB0, 0x01, 0xA6, 0x06, 0x60, 0x1A },
+ { 0x00, 0x1C, 0x0A, 0xB3, 0x24, 0xB4, 0x03, 0x20, 0xC1, 0x95, 0x46, 0x92, 0x0B },
+ { 0x00, 0x1C, 0x1F, 0xC3, 0x86, 0x00, 0x02, 0xE7, 0x01, 0x84, 0x06, 0x98, 0x0B },
+ { 0x00, 0x1C, 0x1B, 0xD2, 0x9B, 0x92, 0x02, 0x96, 0xC1, 0x96, 0x56, 0x59, 0x12 },
+ { 0x00, 0x1C, 0x1D, 0xA2, 0x57, 0x18, 0x04, 0x9B, 0x6D, 0x94, 0x86, 0xA5, 0x94 },
+ { 0x00, 0x1C, 0x1A, 0xA2, 0x49, 0x26, 0x02, 0x49, 0x29, 0x99, 0xA6, 0x55, 0x61 },
+ { 0x00, 0x1C, 0x1D, 0x62, 0x4B, 0x6E, 0x02, 0x4A, 0xA1, 0x96, 0x56, 0x5A, 0x13 },
+ { 0x00, 0x1C, 0x00, 0xB2, 0x49, 0x24, 0x82, 0x53, 0xA1, 0x95, 0xA6, 0x5A, 0x1B },
+ { 0x00, 0x1C, 0x03, 0xD2, 0x93, 0xB4, 0x02, 0x6E, 0x01, 0xA5, 0x86, 0x68, 0x1B },
+ { 0x00, 0x1C, 0x16, 0xD2, 0x9B, 0x6E, 0x02, 0x53, 0x01, 0xA5, 0x96, 0x68, 0x1B },
+ { 0x00, 0x1C, 0x1E, 0x42, 0xAD, 0x00, 0x02, 0x4B, 0x91, 0x94, 0x06, 0x69, 0x4B }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5740000 = {
+ { 0x00, 0x1C, 0x0A, 0xE2, 0x9E, 0xD8, 0x02, 0x52, 0x41, 0xA9, 0x86, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x13, 0xB2, 0x86, 0xD8, 0x02, 0x4A, 0x71, 0x89, 0x86, 0x66, 0x5B },
+ { 0x00, 0x1C, 0x0B, 0xA2, 0x9C, 0xE0, 0x02, 0x49, 0x25, 0x9A, 0x06, 0x6A, 0x9D },
+ { 0x00, 0x1C, 0x0E, 0x82, 0x93, 0xA0, 0x02, 0x9C, 0x91, 0x99, 0x06, 0x59, 0x93 },
+ { 0x00, 0x1C, 0x1C, 0xF2, 0xDB, 0x92, 0x02, 0x9B, 0x6D, 0xA9, 0x56, 0x69, 0x9C },
+ { 0x00, 0x1C, 0x1C, 0x42, 0xED, 0x18, 0x02, 0xDD, 0xC1, 0xA8, 0x86, 0x5A, 0x23 },
+ { 0x00, 0x1C, 0x1B, 0x32, 0xE5, 0xD8, 0x02, 0xDD, 0xA1, 0x96, 0x46, 0x65, 0x12 },
+ { 0x00, 0x1C, 0x1C, 0x53, 0x26, 0xC0, 0x03, 0x70, 0xC1, 0xAA, 0x06, 0x52, 0x22 },
+ { 0x00, 0x1C, 0x0A, 0xE2, 0x9E, 0xD8, 0x02, 0x52, 0x41, 0xA9, 0x86, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x0A, 0x12, 0x65, 0xD8, 0x04, 0xDB, 0x6D, 0xA5, 0x46, 0xA5, 0x53 },
+ { 0x00, 0x1C, 0x06, 0x52, 0x66, 0xC0, 0x04, 0x93, 0x81, 0x96, 0x06, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x0F, 0x22, 0x53, 0x6C, 0x04, 0xA4, 0x91, 0x99, 0x86, 0xA5, 0x5B },
+ { 0x00, 0x1C, 0x0B, 0x22, 0x49, 0x49, 0x04, 0x94, 0xA1, 0x9A, 0xA6, 0xA9, 0x2C },
+ { 0x00, 0x1C, 0x18, 0xF2, 0x4D, 0x00, 0x02, 0x4B, 0xA1, 0x94, 0x06, 0x5A, 0x0B },
+ { 0x00, 0x1C, 0x1E, 0x72, 0x49, 0xB4, 0x02, 0x56, 0xC1, 0x95, 0x86, 0x56, 0x12 },
+ { 0x00, 0x1C, 0x1C, 0x12, 0x95, 0x18, 0x02, 0x6D, 0xC1, 0xA8, 0x46, 0x55, 0x19 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6000000 = {
+ { 0x00, 0x1C, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06, 0x96, 0x13 },
+ { 0x00, 0x1C, 0x1D, 0xA2, 0x57, 0x18, 0x04, 0x9B, 0x6D, 0x94, 0x86, 0xA5, 0x94 },
+ { 0x00, 0x1C, 0x16, 0xF2, 0x49, 0x72, 0x04, 0x92, 0xA1, 0x99, 0x66, 0xAA, 0x1D },
+ { 0x00, 0x1C, 0x18, 0xF2, 0x4D, 0x00, 0x02, 0x4B, 0xA1, 0x94, 0x06, 0x5A, 0x0B },
+ { 0x00, 0x1C, 0x1e, 0x72, 0x49, 0xB4, 0x02, 0x56, 0xC1, 0x95, 0x86, 0x56, 0x12 },
+ { 0x00, 0x1C, 0x09, 0x22, 0x94, 0x98, 0x02, 0x46, 0x01, 0xA6, 0x46, 0x44, 0x19 },
+ { 0x00, 0x1C, 0x0A, 0xE2, 0x9E, 0xD8, 0x02, 0x52, 0x41, 0xA9, 0x86, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x0D, 0x02, 0xB7, 0x18, 0x02, 0x4A, 0x49, 0xA8, 0x46, 0x65, 0x5A },
+ { 0x00, 0x1C, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06, 0x96, 0x13 },
+ { 0x00, 0x1C, 0x19, 0x84, 0x9C, 0xB4, 0x04, 0xDB, 0x6D, 0x55, 0x46, 0x59, 0x42 },
+ { 0x00, 0x1C, 0x18, 0xE4, 0x93, 0x92, 0x04, 0xDB, 0xA1, 0x55, 0x96, 0x65, 0x0A },
+ { 0x00, 0x1C, 0x0C, 0x42, 0x4A, 0x80, 0x05, 0x25, 0xC1, 0xAA, 0x06, 0x65, 0x22 },
+ { 0x00, 0x1C, 0x07, 0x72, 0x4A, 0x49, 0x85, 0xFF, 0x01, 0xA5, 0x56, 0x94, 0x12 },
+ { 0x00, 0x1C, 0x0A, 0xB2, 0x53, 0x92, 0x05, 0x2E, 0x01, 0xAA, 0x66, 0x98, 0x2B },
+ { 0x00, 0x1C, 0x1C, 0x32, 0x5C, 0x92, 0x04, 0xE4, 0x91, 0xA9, 0xA6, 0x99, 0xAC },
+ { 0x00, 0x1C, 0x12, 0xD2, 0x7F, 0xE0, 0x04, 0xDB, 0x81, 0xA6, 0x06, 0xAA, 0x1D }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6600000 = {
+ { 0x00, 0x1C, 0x0A, 0x84, 0xDB, 0xD8, 0x06, 0xDB, 0x91, 0x6A, 0x46, 0x99, 0x9C },
+ { 0x00, 0x1C, 0x08, 0xB4, 0xF8, 0x00, 0x06, 0xDB, 0xC1, 0x50, 0x06, 0xA5, 0x03 },
+ { 0x00, 0x1C, 0x09, 0x04, 0xDC, 0x80, 0x04, 0x95, 0xA1, 0x55, 0x06, 0x59, 0x02 },
+ { 0x00, 0x1C, 0x1D, 0x84, 0x93, 0x18, 0x04, 0xA4, 0xA1, 0x64, 0x86, 0x56, 0x12 },
+ { 0x00, 0x1C, 0x00, 0x54, 0xA5, 0xC0, 0x04, 0x9D, 0x01, 0x66, 0x06, 0x68, 0x13 },
+ { 0x00, 0x1C, 0x1A, 0x74, 0xA6, 0x18, 0x04, 0x92, 0x49, 0x54, 0x46, 0x69, 0x43 },
+ { 0x00, 0x1C, 0x19, 0x34, 0x92, 0x60, 0x04, 0xE8, 0xC1, 0x59, 0x06, 0x51, 0x09 },
+ { 0x00, 0x1C, 0x0A, 0x54, 0x92, 0x4E, 0x04, 0xDB, 0x01, 0x55, 0x56, 0x68, 0x03 },
+ { 0x00, 0x1C, 0x0A, 0x84, 0xDB, 0xD8, 0x06, 0xDB, 0x91, 0x6A, 0x46, 0x99, 0x9C },
+ { 0x00, 0x1C, 0x06, 0x54, 0x93, 0x6C, 0x09, 0x25, 0xC1, 0x9A, 0x46, 0xA5, 0x1B },
+ { 0x00, 0x1C, 0x1B, 0xB4, 0xDD, 0xD8, 0x06, 0xE5, 0xC1, 0xA6, 0x46, 0x5A, 0x1B },
+ { 0x00, 0x1C, 0x10, 0x74, 0xE7, 0x18, 0x06, 0xDC, 0x91, 0x98, 0x86, 0x65, 0x5A },
+ { 0x00, 0x1C, 0x15, 0x75, 0x2F, 0xE0, 0x07, 0x06, 0xC1, 0xA5, 0x06, 0x4A, 0x13 },
+ { 0x00, 0x1C, 0x12, 0xD5, 0x46, 0x18, 0x07, 0x6E, 0xC1, 0x88, 0x86, 0x65, 0x1A },
+ { 0x00, 0x1C, 0x1D, 0x05, 0xF8, 0xD8, 0x07, 0xB6, 0xC1, 0x51, 0x86, 0xA5, 0x0B },
+ { 0x00, 0x1C, 0x04, 0xD5, 0x25, 0xB8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0x99, 0x13 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6340000 = {
+ { 0x00, 0x1C, 0x13, 0x54, 0x98, 0xD8, 0x04, 0xDE, 0x01, 0x52, 0x46, 0x54, 0x09 },
+ { 0x00, 0x1C, 0x18, 0xE4, 0x93, 0x92, 0x04, 0xDB, 0xA1, 0x55, 0x96, 0x65, 0x0A },
+ { 0x00, 0x1C, 0x02, 0x92, 0x49, 0x2C, 0x05, 0x30, 0xC1, 0xA9, 0x46, 0x62, 0x1B },
+ { 0x00, 0x1C, 0x1A, 0x82, 0x4B, 0x72, 0x05, 0xB6, 0xC1, 0xA5, 0xA6, 0x69, 0x23 },
+ { 0x00, 0x1C, 0x10, 0xD2, 0x52, 0x4E, 0x05, 0x6E, 0xC1, 0xAA, 0x66, 0xA9, 0x2C },
+ { 0x00, 0x1C, 0x0F, 0xF2, 0x52, 0x49, 0x04, 0xDC, 0x81, 0xA6, 0x56, 0x95, 0x1A },
+ { 0x00, 0x1C, 0x1B, 0xE2, 0x67, 0x18, 0x04, 0xE6, 0x01, 0xA8, 0x86, 0xA8, 0x24 },
+ { 0x00, 0x1C, 0x06, 0x52, 0x66, 0xC0, 0x04, 0x93, 0x81, 0x96, 0x06, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x13, 0x54, 0x98, 0xD8, 0x04, 0xDE, 0x01, 0x52, 0x46, 0x54, 0x09 },
+ { 0x00, 0x1C, 0x0B, 0x15, 0x86, 0x00, 0x07, 0x68, 0xC1, 0x48, 0x06, 0x91, 0x0A },
+ { 0x00, 0x1C, 0x1E, 0x45, 0x2E, 0xD8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0xA9, 0x14 },
+ { 0x00, 0x1C, 0x11, 0x14, 0xDE, 0x18, 0x06, 0xE5, 0xA1, 0x64, 0x86, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x1F, 0xE4, 0xED, 0xB8, 0x06, 0xDC, 0x81, 0x59, 0x86, 0xA6, 0x14 },
+ { 0x00, 0x1C, 0x12, 0x54, 0x92, 0xB4, 0x04, 0x92, 0x71, 0x6A, 0x86, 0x59, 0xA3 },
+ { 0x00, 0x1C, 0x0A, 0xE4, 0x9B, 0x94, 0x04, 0x80, 0xC1, 0x6A, 0x46, 0x41, 0x19 },
+ { 0x00, 0x1C, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6200000 = {
+ { 0x00, 0x1C, 0x1A, 0x82, 0x4B, 0x72, 0x05, 0xB6, 0xC1, 0xA5, 0xA6, 0x69, 0x23 },
+ { 0x00, 0x1C, 0x10, 0xD2, 0x52, 0x4E, 0x05, 0x6E, 0xC1, 0xAA, 0x66, 0xA9, 0x2C },
+ { 0x00, 0x1C, 0x0A, 0x62, 0x52, 0x98, 0x04, 0xDE, 0xC1, 0xA5, 0x86, 0x99, 0x1B },
+ { 0x00, 0x1C, 0x0A, 0x12, 0x65, 0xD8, 0x04, 0xDB, 0x6D, 0xA5, 0x46, 0xA5, 0x53 },
+ { 0x00, 0x1C, 0x06, 0x52, 0x66, 0xC0, 0x04, 0x93, 0x81, 0x96, 0x06, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x1C, 0xF2, 0x52, 0x70, 0x04, 0xBF, 0x01, 0x99, 0x46, 0x98, 0x13 },
+ { 0x00, 0x1C, 0x1D, 0x52, 0x52, 0x50, 0x04, 0x93, 0xA1, 0x95, 0x86, 0xA5, 0x13 },
+ { 0x00, 0x1C, 0x1D, 0xB2, 0x4A, 0x90, 0x02, 0x49, 0x25, 0x99, 0x86, 0x56, 0x9B },
+ { 0x00, 0x1C, 0x1A, 0x82, 0x4B, 0x72, 0x05, 0xB6, 0xC1, 0xA5, 0xA6, 0x69, 0x23 },
+ { 0x00, 0x1C, 0x08, 0xB4, 0xF8, 0x00, 0x06, 0xDB, 0xC1, 0x50, 0x06, 0xA5, 0x03 },
+ { 0x00, 0x1C, 0x16, 0x54, 0xDB, 0x92, 0x04, 0x93, 0x61, 0x55, 0x96, 0x59, 0x0A },
+ { 0x00, 0x1C, 0x0A, 0x44, 0x92, 0xD8, 0x04, 0xAD, 0xC1, 0x66, 0x86, 0x56, 0x1A },
+ { 0x00, 0x1C, 0x00, 0x54, 0xA5, 0xC0, 0x04, 0x9D, 0x01, 0x66, 0x06, 0x68, 0x13 },
+ { 0x00, 0x1C, 0x19, 0xD4, 0x9C, 0xE0, 0x04, 0xDB, 0x71, 0x5A, 0x06, 0x56, 0x52 },
+ { 0x00, 0x1C, 0x03, 0xD4, 0x95, 0xD8, 0x04, 0xE5, 0xA1, 0x56, 0x86, 0x65, 0x12 },
+ { 0x00, 0x1C, 0x02, 0x92, 0x49, 0x2C, 0x05, 0x30, 0xC1, 0xA9, 0x46, 0x62, 0x1B }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5580000 = {
+ { 0x00, 0x1C, 0x1F, 0x72, 0x92, 0x60, 0x02, 0x9B, 0x91, 0x95, 0x06, 0x65, 0x8B },
+ { 0x00, 0x1C, 0x08, 0xD2, 0xE7, 0x00, 0x02, 0x92, 0x4D, 0xA8, 0x06, 0x6A, 0x9D },
+ { 0x00, 0x1C, 0x06, 0x32, 0xE5, 0xB8, 0x02, 0xDB, 0x71, 0x99, 0x86, 0x65, 0x9B },
+ { 0x00, 0x1C, 0x19, 0x63, 0x24, 0x80, 0x03, 0x24, 0x01, 0xAA, 0x06, 0x68, 0x23 },
+ { 0x00, 0x1C, 0x04, 0x13, 0x2D, 0xB8, 0x03, 0x86, 0x01, 0x99, 0x46, 0x88, 0x13 },
+ { 0x00, 0x1C, 0x1C, 0x03, 0x76, 0x18, 0x03, 0x27, 0x01, 0x98, 0x86, 0xA8, 0x1C },
+ { 0x00, 0x1C, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06, 0xA9, 0x04 },
+ { 0x00, 0x1C, 0x0D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x81, 0x69, 0x86, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1F, 0x72, 0x92, 0x60, 0x02, 0x9B, 0x91, 0x95, 0x06, 0x65, 0x8B },
+ { 0x00, 0x1C, 0x1D, 0xB2, 0x4A, 0x90, 0x02, 0x49, 0x25, 0x99, 0x86, 0x56, 0x9B },
+ { 0x00, 0x1C, 0x19, 0xA2, 0x4A, 0x98, 0x02, 0x49, 0x4D, 0x95, 0x46, 0x5A, 0x4B },
+ { 0x00, 0x1C, 0x0A, 0x82, 0x92, 0x49, 0x82, 0x5E, 0x01, 0xA9, 0xA6, 0x58, 0x2A },
+ { 0x00, 0x1C, 0x0B, 0x92, 0x92, 0x58, 0x02, 0x5E, 0x01, 0xA5, 0x46, 0x64, 0x12 },
+ { 0x00, 0x1C, 0x08, 0x72, 0xA6, 0xD8, 0x02, 0x49, 0x29, 0xA5, 0x86, 0x65, 0x5A },
+ { 0x00, 0x1C, 0x09, 0x82, 0xA4, 0xB4, 0x02, 0x49, 0x25, 0x96, 0x46, 0x69, 0x94 },
+ { 0x00, 0x1C, 0x0F, 0x92, 0x93, 0x6D, 0x82, 0x9C, 0x81, 0x9A, 0xA6, 0x56, 0x2A }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_3800000 = {
+ { 0x00, 0x1C, 0x1A, 0x80, 0x10, 0xD8, 0x00, 0x0A, 0x6D, 0xA2, 0x46, 0xA9, 0x9D },
+ { 0x00, 0x1C, 0x0D, 0x70, 0x12, 0x18, 0x00, 0x01, 0x25, 0xA4, 0x46, 0xA5, 0x53 },
+ { 0x00, 0x1C, 0x12, 0xF0, 0x1D, 0xD8, 0x00, 0x02, 0x71, 0xAA, 0x46, 0xAA, 0x65 },
+ { 0x00, 0x1C, 0x09, 0xC0, 0x25, 0xE0, 0x12, 0x49, 0x49, 0xA9, 0x05, 0x55, 0x58 },
+ { 0x00, 0x1C, 0x0D, 0x00, 0x2D, 0xD8, 0x12, 0x4C, 0x81, 0xAA, 0x45, 0x56, 0x21 },
+ { 0x00, 0x1C, 0x1D, 0xE0, 0x24, 0x92, 0x12, 0x5D, 0xA1, 0x9A, 0x55, 0x56, 0x19 },
+ { 0x00, 0x1C, 0x08, 0xB0, 0x1B, 0xB8, 0x12, 0x5B, 0x91, 0x9A, 0x45, 0x65, 0x59 },
+ { 0x00, 0x1C, 0x1A, 0xA0, 0x1F, 0xE0, 0x12, 0x56, 0x01, 0x95, 0x05, 0x68, 0x0A },
+ { 0x00, 0x1C, 0x1A, 0x80, 0x10, 0xD8, 0x00, 0x0A, 0x6D, 0xA2, 0x46, 0xA9, 0x9D },
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x00, 0x1C, 0x0F, 0x30, 0x09, 0x40, 0x00, 0x02, 0x71, 0xA9, 0x06, 0x99, 0x9C },
+ { 0x00, 0x1C, 0x04, 0x90, 0x0A, 0x92, 0x00, 0x00, 0x41, 0xAA, 0x56, 0x99, 0x23 },
+ { 0x00, 0x1C, 0x1A, 0xF0, 0x08, 0xD8, 0x00, 0x0D, 0x01, 0xA1, 0x46, 0x98, 0x13 },
+ { 0x00, 0x1C, 0x0A, 0x30, 0x0A, 0xB8, 0x00, 0x13, 0x71, 0xA5, 0x46, 0x99, 0x53 },
+ { 0x00, 0x1C, 0x05, 0x30, 0x09, 0x6D, 0x80, 0x24, 0xC1, 0xA5, 0xA6, 0xA6, 0x24 },
+ { 0x00, 0x1C, 0x0D, 0xE0, 0x12, 0xA0, 0x00, 0x13, 0xC1, 0xAA, 0x06, 0xAA, 0x25 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4080000 = {
+ { 0x00, 0x1C, 0x1E, 0x40, 0x01, 0x6E, 0x00, 0x6D, 0xC1, 0xA5, 0x66, 0xAA, 0x1D },
+ { 0x00, 0x1C, 0x04, 0xF0, 0x00, 0x00, 0x80, 0x52, 0x51, 0xA6, 0x66, 0xA9, 0xA5 },
+ { 0x00, 0x1C, 0x17, 0x30, 0x00, 0x4E, 0x00, 0x4A, 0x01, 0xA6, 0x66, 0xA4, 0x23 },
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x00, 0x1C, 0x0E, 0x30, 0x09, 0x29, 0x00, 0x01, 0x49, 0xA9, 0x96, 0x99, 0x63 },
+ { 0x00, 0x1C, 0x13, 0xD0, 0x0B, 0x6D, 0x80, 0x00, 0x01, 0xAA, 0xA6, 0x9A, 0xB5 },
+ { 0x00, 0x1C, 0x0D, 0x40, 0x0B, 0x78, 0x00, 0x09, 0x29, 0xA6, 0x86, 0x99, 0xA4 },
+ { 0x00, 0x1C, 0x02, 0x10, 0x0A, 0x4E, 0x00, 0x1B, 0x71, 0xA5, 0x66, 0x95, 0x5A },
+ { 0x00, 0x1C, 0x1E, 0x40, 0x01, 0x6E, 0x00, 0x6D, 0xC1, 0xA5, 0x66, 0xAA, 0x1D },
+ { 0x00, 0x1C, 0x18, 0xD2, 0x49, 0x54, 0x01, 0x6F, 0x01, 0x56, 0x46, 0x98, 0x0B },
+ { 0x00, 0x1C, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0xC1, 0xAA, 0x56, 0x92, 0x23 },
+ { 0x00, 0x1C, 0x09, 0x10, 0x00, 0x2E, 0x00, 0x92, 0x41, 0xA9, 0xA6, 0x96, 0x2B },
+ { 0x00, 0x1C, 0x0C, 0xE0, 0x01, 0x29, 0x00, 0xAD, 0xC1, 0xAA, 0x56, 0x95, 0x22 },
+ { 0x00, 0x1C, 0x01, 0x70, 0x02, 0x50, 0x00, 0x93, 0x61, 0xAA, 0x86, 0xA6, 0x2C },
+ { 0x00, 0x1C, 0x1F, 0x20, 0x07, 0xE0, 0x00, 0x4C, 0x01, 0xAA, 0x06, 0x98, 0x23 },
+ { 0x00, 0x1C, 0x06, 0xD0, 0x02, 0x80, 0x00, 0x53, 0x81, 0xA5, 0x06, 0x99, 0x13 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_8140000 = {
+ { 0x00, 0x1C, 0x13, 0x9B, 0x86, 0xE0, 0x01, 0xF8, 0xC2, 0x49, 0x04, 0x92, 0x12 },
+ { 0x00, 0x1C, 0x0E, 0x4C, 0x00, 0xD8, 0x00, 0x38, 0x02, 0x02, 0x84, 0x20, 0x19 },
+ { 0x00, 0x1C, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x02, 0x01 },
+ { 0x00, 0x1C, 0x17, 0xBD, 0xB0, 0xD8, 0x00, 0x06, 0xC1, 0x91, 0x44, 0x0A, 0x0A },
+ { 0x00, 0x1C, 0x1D, 0x0D, 0x87, 0x18, 0x00, 0x36, 0xC1, 0x44, 0x84, 0x26, 0x0A },
+ { 0x00, 0x1C, 0x0B, 0x2A, 0x06, 0xD8, 0x01, 0xC0, 0x01, 0x06, 0x84, 0x80, 0x11 },
+ { 0x00, 0x1C, 0x02, 0x59, 0x25, 0xD8, 0x01, 0x86, 0xC1, 0xAA, 0x44, 0x85, 0x21 },
+ { 0x00, 0x1C, 0x15, 0x99, 0x6E, 0xC0, 0x0F, 0xC6, 0x01, 0xA6, 0x06, 0x44, 0x19 },
+ { 0x00, 0x1C, 0x13, 0x9B, 0x86, 0xE0, 0x01, 0xF8, 0xC2, 0x49, 0x04, 0x92, 0x12 },
+ { 0x00, 0x1C, 0x1A, 0x87, 0x7F, 0x18, 0x0B, 0xBF, 0x02, 0x64, 0x46, 0x64, 0x12 },
+ { 0x00, 0x1C, 0x00, 0xF7, 0x24, 0xE0, 0x0B, 0x6D, 0xC2, 0x56, 0x06, 0x59, 0x12 },
+ { 0x00, 0x1C, 0x05, 0x76, 0xE6, 0xC0, 0x0C, 0x36, 0xC2, 0x5A, 0x06, 0x25, 0x1A },
+ { 0x00, 0x1C, 0x0D, 0x19, 0x3F, 0x18, 0x0D, 0x86, 0xC2, 0x94, 0x46, 0x4A, 0x13 },
+ { 0x00, 0x1C, 0x0E, 0x19, 0xC6, 0xE0, 0x0E, 0x38, 0xC2, 0x8A, 0x06, 0x22, 0x23 },
+ { 0x00, 0x1C, 0x19, 0xE9, 0x6D, 0xB4, 0x0F, 0xFF, 0x02, 0x56, 0x46, 0x58, 0x12 },
+ { 0x00, 0x1C, 0x0A, 0x8B, 0x46, 0xD8, 0x01, 0xB6, 0xC2, 0x89, 0x84, 0x99, 0x22 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5900000 = {
+ { 0x00, 0x1C, 0x1D, 0x02, 0x49, 0x24, 0x82, 0x49, 0x49, 0x99, 0x66, 0x55, 0x9A },
+ { 0x00, 0x1C, 0x12, 0x92, 0x4A, 0x4E, 0x02, 0x49, 0x25, 0x96, 0x96, 0x59, 0x9B },
+ { 0x00, 0x1C, 0x0D, 0x42, 0x92, 0x54, 0x02, 0x52, 0x51, 0xAA, 0x86, 0x5A, 0xAC },
+ { 0x00, 0x1C, 0x03, 0xD2, 0x93, 0xB4, 0x02, 0x6E, 0x01, 0xA5, 0x86, 0x68, 0x1B },
+ { 0x00, 0x1C, 0x16, 0xD2, 0x9B, 0x6E, 0x02, 0x53, 0x01, 0xA5, 0x96, 0x68, 0x1B },
+ { 0x00, 0x1C, 0x1A, 0x62, 0xAE, 0x18, 0x02, 0x4E, 0xC1, 0x98, 0x86, 0x69, 0x1B },
+ { 0x00, 0x1C, 0x01, 0x12, 0x9D, 0xC0, 0x02, 0x93, 0x71, 0x96, 0x06, 0x55, 0x51 },
+ { 0x00, 0x1C, 0x18, 0xA2, 0x94, 0xB8, 0x02, 0xAD, 0xC1, 0x96, 0x46, 0x59, 0x12 },
+ { 0x00, 0x1C, 0x1D, 0x02, 0x49, 0x24, 0x82, 0x49, 0x49, 0x99, 0x66, 0x55, 0x9A },
+ { 0x00, 0x1C, 0x07, 0x12, 0x4A, 0x4A, 0x05, 0x24, 0xA1, 0xA9, 0xA6, 0x69, 0x2B },
+ { 0x00, 0x1C, 0x09, 0x62, 0x49, 0x2D, 0x85, 0xC6, 0x01, 0xA6, 0xA6, 0x88, 0x2B },
+ { 0x00, 0x1C, 0x1C, 0xD2, 0x55, 0xA0, 0x05, 0x30, 0xC1, 0xA9, 0x06, 0xA2, 0x1C },
+ { 0x00, 0x1C, 0x14, 0x72, 0x5F, 0x18, 0x04, 0xEE, 0xC1, 0xA4, 0x86, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1B, 0x92, 0x6D, 0xB4, 0x04, 0x92, 0x51, 0x9A, 0x86, 0x96, 0xA4 },
+ { 0x00, 0x1C, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06, 0x96, 0x13 },
+ { 0x00, 0x1C, 0x0E, 0xD2, 0x53, 0xC0, 0x04, 0x9C, 0xC1, 0x95, 0x06, 0xA9, 0x0C }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5260000 = {
+ { 0x00, 0x1C, 0x04, 0x93, 0x24, 0x92, 0x02, 0xAD, 0x01, 0x66, 0xA6, 0xA8, 0x24 },
+ { 0x00, 0x1C, 0x0F, 0x63, 0x25, 0xD8, 0x02, 0x92, 0x51, 0x59, 0x86, 0xA9, 0x95 },
+ { 0x00, 0x1C, 0x1F, 0xA2, 0xDB, 0x6D, 0x82, 0x4A, 0xA1, 0x65, 0x96, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x08, 0xE2, 0xF6, 0xD8, 0x02, 0x52, 0x91, 0x59, 0x86, 0x99, 0x94 },
+ { 0x00, 0x1C, 0x1E, 0x92, 0xDC, 0x98, 0x02, 0x66, 0xC1, 0x59, 0x46, 0xA9, 0x0C },
+ { 0x00, 0x1C, 0x0C, 0x72, 0x92, 0x52, 0x02, 0x52, 0x4D, 0x69, 0x56, 0xA9, 0x95 },
+ { 0x00, 0x1C, 0x09, 0xB2, 0x92, 0x49, 0x02, 0x4B, 0x91, 0x66, 0xA6, 0xA9, 0xA5 },
+ { 0x00, 0x1C, 0x1E, 0x52, 0x9B, 0x70, 0x00, 0x01, 0x49, 0x65, 0x46, 0x55, 0x49 },
+ { 0x00, 0x1C, 0x04, 0x93, 0x24, 0x92, 0x02, 0xAD, 0x01, 0x66, 0xA6, 0xA8, 0x24 },
+ { 0x00, 0x1C, 0x13, 0x12, 0xDB, 0x6E, 0x02, 0x95, 0x01, 0xA6, 0x56, 0x68, 0x1B },
+ { 0x00, 0x1C, 0x1A, 0xD2, 0xF6, 0x18, 0x02, 0xF8, 0xC1, 0x98, 0x86, 0x51, 0x19 },
+ { 0x00, 0x1C, 0x0E, 0x52, 0xDC, 0xB4, 0x03, 0x37, 0x01, 0x96, 0x86, 0x64, 0x1A },
+ { 0x00, 0x1C, 0x1D, 0x73, 0x07, 0xE0, 0x02, 0x3F, 0x01, 0x89, 0x06, 0x24, 0x12 },
+ { 0x00, 0x1C, 0x1B, 0xA3, 0x40, 0xE0, 0x03, 0x2D, 0xC1, 0x82, 0x06, 0xA9, 0x14 },
+ { 0x00, 0x1C, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06, 0xA9, 0x04 },
+ { 0x00, 0x1C, 0x0D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x81, 0x69, 0x86, 0x9A, 0x1C }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5320000 = {
+ { 0x00, 0x1C, 0x1F, 0x13, 0x87, 0x18, 0x02, 0x93, 0x91, 0x44, 0x86, 0x96, 0x8C },
+ { 0x00, 0x1C, 0x0B, 0x23, 0x76, 0x18, 0x02, 0x9B, 0x6D, 0x54, 0x46, 0x9A, 0x44 },
+ { 0x00, 0x1C, 0x19, 0xD3, 0x00, 0xD8, 0x02, 0x9B, 0x91, 0x42, 0x86, 0xAA, 0x96 },
+ { 0x00, 0x1C, 0x09, 0x42, 0xDC, 0xE0, 0x02, 0x4A, 0x71, 0x69, 0x06, 0x95, 0x93 },
+ { 0x00, 0x1C, 0x1C, 0xF2, 0xE4, 0xB8, 0x02, 0x49, 0x25, 0x65, 0x86, 0x9A, 0x95 },
+ { 0x00, 0x1C, 0x0C, 0x02, 0xE7, 0xE0, 0x02, 0x65, 0x01, 0x5A, 0x06, 0x94, 0x12 },
+ { 0x00, 0x1C, 0x18, 0xB2, 0xDB, 0x6E, 0x02, 0x5B, 0x81, 0x56, 0x66, 0xAA, 0x15 },
+ { 0x00, 0x1C, 0x01, 0x32, 0x90, 0xD8, 0x02, 0x4A, 0x51, 0x61, 0x46, 0xA5, 0x4B },
+ { 0x00, 0x1C, 0x1F, 0x13, 0x87, 0x18, 0x02, 0x93, 0x91, 0x44, 0x86, 0x96, 0x8C },
+ { 0x00, 0x1C, 0x0E, 0x82, 0x93, 0xA0, 0x02, 0x9C, 0x91, 0x99, 0x06, 0x59, 0x93 },
+ { 0x00, 0x1C, 0x1C, 0xF2, 0xDB, 0x92, 0x02, 0x9B, 0x6D, 0xA9, 0x56, 0x69, 0x9C },
+ { 0x00, 0x1C, 0x1C, 0x42, 0xED, 0x18, 0x02, 0xDD, 0xC1, 0xA8, 0x86, 0x5A, 0x23 },
+ { 0x00, 0x1C, 0x02, 0x32, 0xE4, 0x98, 0x02, 0xDC, 0xC1, 0x95, 0x86, 0x6A, 0x14 },
+ { 0x00, 0x1C, 0x09, 0x93, 0x24, 0x90, 0x03, 0x6D, 0xA1, 0xA5, 0x46, 0x6A, 0x14 },
+ { 0x00, 0x1C, 0x1A, 0x83, 0x25, 0xB4, 0x03, 0x6E, 0x01, 0x96, 0x86, 0xA8, 0x1C },
+ { 0x00, 0x1C, 0x1E, 0x43, 0xBF, 0xE0, 0x02, 0xDB, 0xC1, 0xAA, 0x06, 0x9A, 0x24 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6680000 = {
+ { 0x00, 0x1C, 0x0E, 0x15, 0x6D, 0xB8, 0x07, 0x76, 0x01, 0x66, 0x86, 0xA4, 0x1B },
+ { 0x00, 0x1C, 0x0A, 0x35, 0x38, 0xD8, 0x07, 0x25, 0xA1, 0x52, 0x86, 0xA6, 0x14 },
+ { 0x00, 0x1C, 0x1B, 0xE4, 0xDB, 0x92, 0x06, 0xE8, 0xC1, 0x66, 0x96, 0x92, 0x1B },
+ { 0x00, 0x1C, 0x03, 0x14, 0xE5, 0xB8, 0x06, 0xDC, 0x91, 0x5A, 0x86, 0xAA, 0x9E },
+ { 0x00, 0x1C, 0x12, 0x54, 0x92, 0xB4, 0x04, 0x92, 0x71, 0x6A, 0x86, 0x59, 0xA3 },
+ { 0x00, 0x1C, 0x0A, 0xE4, 0x9B, 0x94, 0x04, 0x80, 0xC1, 0x6A, 0x46, 0x41, 0x19 },
+ { 0x00, 0x1C, 0x1E, 0xD4, 0xB6, 0x18, 0x04, 0x92, 0xA1, 0x64, 0x86, 0x66, 0x13 },
+ { 0x00, 0x1C, 0x19, 0xD4, 0x9C, 0xE0, 0x04, 0xDB, 0x71, 0x5A, 0x06, 0x56, 0x52 },
+ { 0x00, 0x1C, 0x0E, 0x15, 0x6D, 0xB8, 0x07, 0x76, 0x01, 0x66, 0x86, 0xA4, 0x1B },
+ { 0x00, 0x1C, 0x07, 0xF4, 0xA4, 0xB8, 0x09, 0x6E, 0xC1, 0xA6, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x18, 0x84, 0x9E, 0x18, 0x09, 0x36, 0xC1, 0x98, 0x46, 0x95, 0x12 },
+ { 0x00, 0x1C, 0x1D, 0xB4, 0x93, 0x6D, 0x86, 0xDD, 0xC1, 0x95, 0x66, 0x56, 0x12 },
+ { 0x00, 0x1C, 0x1A, 0x44, 0xED, 0xB8, 0x06, 0xF0, 0xC1, 0xA9, 0x46, 0x62, 0x1B },
+ { 0x00, 0x1C, 0x06, 0x74, 0xDE, 0xD8, 0x07, 0x24, 0x91, 0x96, 0x46, 0x55, 0x51 },
+ { 0x00, 0x1C, 0x13, 0xB5, 0x24, 0x18, 0x07, 0x24, 0x01, 0x98, 0x46, 0x68, 0x13 },
+ { 0x00, 0x1C, 0x0B, 0xF5, 0xB6, 0xD8, 0x06, 0x36, 0xC1, 0x9A, 0x86, 0x15, 0x21 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6500000 = {
+ { 0x00, 0x1C, 0x09, 0x04, 0xDC, 0x80, 0x04, 0x95, 0xA1, 0x55, 0x06, 0x59, 0x02 },
+ { 0x00, 0x1C, 0x09, 0xF4, 0x93, 0x72, 0x04, 0xA7, 0x01, 0x65, 0x66, 0x54, 0x11 },
+ { 0x00, 0x1C, 0x00, 0x54, 0xA5, 0xC0, 0x04, 0x9D, 0x01, 0x66, 0x06, 0x68, 0x13 },
+ { 0x00, 0x1C, 0x0E, 0xB4, 0xA4, 0x00, 0x04, 0x92, 0x81, 0x54, 0x06, 0x69, 0x03 },
+ { 0x00, 0x1C, 0x04, 0x74, 0x93, 0x6C, 0x04, 0xF8, 0x01, 0x5A, 0x46, 0x50, 0x11 },
+ { 0x00, 0x1C, 0x0D, 0x32, 0x49, 0x2C, 0x05, 0x25, 0xA1, 0xAA, 0x46, 0x55, 0x21 },
+ { 0x00, 0x1C, 0x17, 0x92, 0x4D, 0xB8, 0x05, 0x70, 0xC1, 0xA9, 0x86, 0x62, 0x23 },
+ { 0x00, 0x1C, 0x03, 0x92, 0x49, 0x52, 0x05, 0x80, 0xC1, 0xA6, 0x66, 0x82, 0x23 },
+ { 0x00, 0x1C, 0x09, 0x04, 0xDC, 0x80, 0x04, 0x95, 0xA1, 0x55, 0x06, 0x59, 0x02 },
+ { 0x00, 0x1C, 0x1D, 0xC4, 0xED, 0xD8, 0x06, 0xE5, 0x01, 0x9A, 0x86, 0x68, 0x23 },
+ { 0x00, 0x1C, 0x1F, 0x95, 0x24, 0xB8, 0x07, 0x36, 0xC1, 0xA5, 0x86, 0x5A, 0x1B },
+ { 0x00, 0x1C, 0x12, 0xD5, 0x46, 0x18, 0x07, 0x6E, 0xC1, 0x88, 0x86, 0x65, 0x1A },
+ { 0x00, 0x1C, 0x06, 0x95, 0xFF, 0x00, 0x07, 0x86, 0x01, 0x64, 0x06, 0x84, 0x0A },
+ { 0x00, 0x1C, 0x04, 0xD5, 0x25, 0xB8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x0A, 0x84, 0xDB, 0xD8, 0x06, 0xDB, 0x91, 0x6A, 0x46, 0x99, 0x9C },
+ { 0x00, 0x1C, 0x08, 0xB4, 0xF8, 0x00, 0x06, 0xDB, 0xC1, 0x50, 0x06, 0xA5, 0x03 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6320000 = {
+ { 0x00, 0x1C, 0x1E, 0x44, 0x92, 0x90, 0x04, 0xE4, 0x91, 0x5A, 0x86, 0x59, 0x9B },
+ { 0x00, 0x1C, 0x0A, 0x54, 0x92, 0x4E, 0x04, 0xDB, 0x01, 0x55, 0x56, 0x68, 0x03 },
+ { 0x00, 0x1C, 0x18, 0x92, 0x4B, 0x98, 0x05, 0x70, 0x01, 0xA9, 0x86, 0x50, 0x21 },
+ { 0x00, 0x1C, 0x09, 0x62, 0x49, 0x2D, 0x85, 0xC6, 0x01, 0xA6, 0xA6, 0x88, 0x2B },
+ { 0x00, 0x1C, 0x19, 0xE2, 0x54, 0xE0, 0x05, 0x00, 0xC1, 0xAA, 0x06, 0x82, 0x23 },
+ { 0x00, 0x1C, 0x1C, 0x32, 0x5C, 0x92, 0x04, 0xE4, 0x91, 0xA9, 0xA6, 0x99, 0xAC },
+ { 0x00, 0x1C, 0x12, 0xD2, 0x7F, 0xE0, 0x04, 0xDB, 0x81, 0xA6, 0x06, 0xAA, 0x1D },
+ { 0x00, 0x1C, 0x18, 0x42, 0x5F, 0x00, 0x04, 0x9E, 0xC1, 0x98, 0x06, 0x96, 0x13 },
+ { 0x00, 0x1C, 0x1E, 0x44, 0x92, 0x90, 0x04, 0xE4, 0x91, 0x5A, 0x86, 0x59, 0x9B },
+ { 0x00, 0x1C, 0x0E, 0x15, 0x6D, 0xB8, 0x07, 0x76, 0x01, 0x66, 0x86, 0xA4, 0x1B },
+ { 0x00, 0x1C, 0x01, 0xD5, 0x28, 0xD8, 0x07, 0x24, 0x91, 0x52, 0x46, 0xAA, 0x8E },
+ { 0x00, 0x1C, 0x19, 0xC4, 0xE5, 0x18, 0x06, 0xC0, 0xC1, 0x68, 0x86, 0x82, 0x1B },
+ { 0x00, 0x1C, 0x1E, 0x14, 0xDB, 0x94, 0x04, 0x92, 0x49, 0x59, 0x46, 0x56, 0x4A },
+ { 0x00, 0x1C, 0x06, 0x34, 0x90, 0xD8, 0x04, 0x9C, 0x81, 0x61, 0x86, 0x59, 0x12 },
+ { 0x00, 0x1C, 0x0E, 0xA4, 0x9B, 0x72, 0x04, 0xA4, 0x81, 0x66, 0x66, 0x69, 0x1B },
+ { 0x00, 0x1C, 0x1B, 0x64, 0xAF, 0xE0, 0x04, 0x97, 0x01, 0x56, 0x06, 0x64, 0x0A }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4940000 = {
+ { 0x00, 0x1C, 0x0A, 0x22, 0xA4, 0x92, 0x00, 0x00, 0x01, 0x5A, 0x96, 0x59, 0x9B },
+ { 0x00, 0x1C, 0x19, 0xF2, 0x9C, 0x18, 0x00, 0x0B, 0xA1, 0x54, 0x86, 0x56, 0x0A },
+ { 0x00, 0x1C, 0x0C, 0xA2, 0x94, 0x92, 0x00, 0x17, 0x01, 0x59, 0x66, 0x54, 0x11 },
+ { 0x00, 0x1C, 0x03, 0x52, 0x92, 0x54, 0x00, 0x00, 0xC1, 0x55, 0x86, 0x42, 0x0A },
+ { 0x00, 0x1C, 0x18, 0x52, 0x49, 0x2E, 0x00, 0x13, 0x81, 0x69, 0x96, 0x66, 0x1B },
+ { 0x00, 0x1C, 0x1C, 0xF2, 0x4D, 0xE0, 0x00, 0x0B, 0x61, 0x66, 0x06, 0x69, 0x13 },
+ { 0x00, 0x1C, 0x09, 0x62, 0x49, 0x29, 0x00, 0x00, 0x41, 0x66, 0xA6, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x1A, 0xE2, 0x52, 0x4A, 0x00, 0x06, 0xC1, 0x6A, 0xA6, 0x6A, 0x2C },
+ { 0x00, 0x1C, 0x0A, 0x22, 0xA4, 0x92, 0x00, 0x00, 0x01, 0x5A, 0x96, 0x59, 0x9B },
+ { 0x00, 0x1C, 0x19, 0x73, 0x20, 0xD8, 0x02, 0x92, 0x91, 0x51, 0x86, 0xAA, 0x8E },
+ { 0x00, 0x1C, 0x19, 0x12, 0xE4, 0xC0, 0x02, 0x49, 0x25, 0x69, 0x06, 0x99, 0x53 },
+ { 0x00, 0x1C, 0x1D, 0xC2, 0xE4, 0xB4, 0x02, 0x5C, 0xA1, 0x5A, 0x46, 0x9A, 0x14 },
+ { 0x00, 0x1C, 0x18, 0xB2, 0xDB, 0x6E, 0x02, 0x5B, 0x81, 0x56, 0x66, 0xAA, 0x15 },
+ { 0x00, 0x1C, 0x01, 0x32, 0x90, 0xD8, 0x02, 0x4A, 0x51, 0x61, 0x46, 0xA5, 0x4B },
+ { 0x00, 0x1C, 0x14, 0x32, 0x9B, 0x6D, 0x80, 0x00, 0x09, 0x69, 0x96, 0x55, 0x59 },
+ { 0x00, 0x1C, 0x17, 0x72, 0xA4, 0xB8, 0x00, 0x03, 0x6D, 0x65, 0x86, 0x55, 0x92 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4200000 = {
+ { 0x00, 0x1C, 0x0A, 0x80, 0x01, 0x4D, 0x80, 0x86, 0xC1, 0xAA, 0x66, 0x89, 0x2B },
+ { 0x00, 0x1C, 0x0D, 0xE0, 0x02, 0x78, 0x00, 0x95, 0x01, 0xAA, 0x86, 0xA8, 0x2C },
+ { 0x00, 0x1C, 0x1F, 0x20, 0x07, 0xE0, 0x00, 0x4C, 0x01, 0xAA, 0x06, 0x98, 0x23 },
+ { 0x00, 0x1C, 0x06, 0xD0, 0x02, 0x80, 0x00, 0x53, 0x81, 0xA5, 0x06, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x1E, 0x40, 0x01, 0x6E, 0x00, 0x6D, 0xC1, 0xA5, 0x66, 0xAA, 0x1D },
+ { 0x00, 0x1C, 0x04, 0xF0, 0x00, 0x00, 0x80, 0x52, 0x51, 0xA6, 0x66, 0xA9, 0xA5 },
+ { 0x00, 0x1C, 0x17, 0x30, 0x00, 0x4E, 0x00, 0x4A, 0x01, 0xA6, 0x66, 0xA4, 0x23 },
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x00, 0x1C, 0x0A, 0x80, 0x01, 0x4D, 0x80, 0x86, 0xC1, 0xAA, 0x66, 0x89, 0x2B },
+ { 0x00, 0x1C, 0x1F, 0x92, 0x52, 0x74, 0x00, 0x9B, 0xA1, 0x55, 0x86, 0x65, 0x0A },
+ { 0x00, 0x1C, 0x1C, 0x72, 0x49, 0x2E, 0x00, 0xDE, 0xC1, 0x59, 0x96, 0x5A, 0x13 },
+ { 0x00, 0x1C, 0x10, 0xB2, 0x4B, 0x72, 0x00, 0xDD, 0xC1, 0x59, 0x56, 0x69, 0x0B },
+ { 0x00, 0x1C, 0x1E, 0xD2, 0x4A, 0x6C, 0x01, 0x68, 0xC1, 0x56, 0x46, 0x62, 0x0B },
+ { 0x00, 0x1C, 0x1D, 0xF2, 0x49, 0x58, 0x01, 0x24, 0x01, 0x55, 0x86, 0x98, 0x0B },
+ { 0x00, 0x1C, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0xC1, 0xAA, 0x56, 0x92, 0x23 },
+ { 0x00, 0x1C, 0x15, 0x70, 0x00, 0x24, 0x80, 0x90, 0xC1, 0xA9, 0x56, 0x91, 0x1A }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_3280000 = {
+ { 0x00, 0x1C, 0x0E, 0x40, 0x00, 0x00, 0x92, 0x4A, 0x6D, 0x99, 0xA5, 0x9A, 0xA4 },
+ { 0x00, 0x1C, 0x19, 0xB0, 0x01, 0x24, 0x92, 0x53, 0xC1, 0x9A, 0xA5, 0x9A, 0x2B },
+ { 0x00, 0x1C, 0x04, 0xF0, 0x01, 0x6C, 0x12, 0x6F, 0x01, 0x9A, 0x45, 0x98, 0x1A },
+ { 0x00, 0x1C, 0x10, 0x50, 0x02, 0x70, 0x12, 0x49, 0x71, 0x99, 0x85, 0xA6, 0x5B },
+ { 0x00, 0x1C, 0x1C, 0xE0, 0x04, 0xB4, 0x12, 0x49, 0x29, 0x9A, 0x85, 0xA9, 0x63 },
+ { 0x00, 0x1C, 0x05, 0x10, 0x04, 0xD8, 0x14, 0x93, 0x91, 0x95, 0x45, 0x5A, 0x4A },
+ { 0x00, 0x1C, 0x16, 0xB0, 0x02, 0x70, 0x14, 0xB8, 0x01, 0x96, 0x85, 0x50, 0x18 },
+ { 0x00, 0x1C, 0x1E, 0x40, 0x01, 0x29, 0x94, 0x92, 0x49, 0x96, 0x95, 0x66, 0x5A },
+ { 0x00, 0x1C, 0x0E, 0x40, 0x00, 0x00, 0x92, 0x4A, 0x6D, 0x99, 0xA5, 0x9A, 0xA4 },
+ { 0x00, 0x1C, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 },
+ { 0x00, 0x1C, 0x1E, 0x40, 0x0C, 0xB4, 0x12, 0x30, 0x01, 0x99, 0x45, 0x10, 0x10 },
+ { 0x00, 0x1C, 0x0A, 0x80, 0x0A, 0x92, 0x12, 0xDE, 0xC1, 0x95, 0xA5, 0x99, 0x1A },
+ { 0x00, 0x1C, 0x14, 0x70, 0x09, 0x24, 0x92, 0xE4, 0x91, 0x96, 0x55, 0xA9, 0x53 },
+ { 0x00, 0x1C, 0x0B, 0x20, 0x09, 0x4C, 0x12, 0x93, 0x71, 0x95, 0x45, 0x99, 0x8B },
+ { 0x00, 0x1C, 0x13, 0x50, 0x00, 0x30, 0x12, 0x9B, 0x71, 0x9A, 0x85, 0xAA, 0xA5 },
+ { 0x00, 0x1C, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4000000 = {
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x00, 0x1C, 0x0F, 0x30, 0x09, 0x40, 0x00, 0x02, 0x71, 0xA9, 0x06, 0x99, 0x9C },
+ { 0x00, 0x1C, 0x0C, 0x30, 0x0A, 0x78, 0x00, 0x00, 0x2D, 0xA9, 0x46, 0x9A, 0x5C },
+ { 0x00, 0x1C, 0x12, 0xD0, 0x0D, 0xB8, 0x00, 0x0B, 0x6D, 0xA5, 0x86, 0x9A, 0x9D },
+ { 0x00, 0x1C, 0x0A, 0x30, 0x0A, 0xB8, 0x00, 0x13, 0x71, 0xA5, 0x46, 0x99, 0x53 },
+ { 0x00, 0x1C, 0x05, 0x30, 0x09, 0x6D, 0x80, 0x24, 0xC1, 0xA5, 0xA6, 0xA6, 0x24 },
+ { 0x00, 0x1C, 0x0D, 0xE0, 0x12, 0xA0, 0x00, 0x13, 0xC1, 0xAA, 0x06, 0xAA, 0x25 },
+ { 0x00, 0x1C, 0x1A, 0x80, 0x10, 0xD8, 0x00, 0x0A, 0x6D, 0xA2, 0x46, 0xA9, 0x9D },
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x00, 0x1C, 0x05, 0xB0, 0x00, 0x0D, 0x80, 0x9B, 0x71, 0xA9, 0x56, 0x95, 0x5A },
+ { 0x00, 0x1C, 0x14, 0x10, 0x01, 0x24, 0x80, 0x9D, 0xA1, 0xA9, 0xA6, 0xAA, 0x2D },
+ { 0x00, 0x1C, 0x1B, 0x40, 0x03, 0xA0, 0x00, 0x49, 0x25, 0xAA, 0x06, 0x96, 0x63 },
+ { 0x00, 0x1C, 0x0A, 0x10, 0x03, 0x6E, 0x00, 0x52, 0x71, 0xA5, 0x56, 0x95, 0x93 },
+ { 0x00, 0x1C, 0x1A, 0xD0, 0x01, 0x6D, 0x80, 0x6D, 0xC1, 0xA6, 0xA6, 0x96, 0x2B },
+ { 0x00, 0x1C, 0x14, 0x30, 0x00, 0x05, 0x80, 0x53, 0xC1, 0xA6, 0x96, 0xA5, 0x23 },
+ { 0x00, 0x1C, 0x17, 0x30, 0x00, 0x4E, 0x00, 0x4A, 0x01, 0xA6, 0x66, 0xA4, 0x23 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_3440000 = {
+ { 0x00, 0x1C, 0x1E, 0x40, 0x0C, 0xB4, 0x12, 0x30, 0x01, 0x99, 0x45, 0x10, 0x10 },
+ { 0x00, 0x1C, 0x1D, 0x20, 0x0B, 0x6D, 0x93, 0x30, 0xC1, 0x95, 0xA5, 0x91, 0x19 },
+ { 0x00, 0x1C, 0x0A, 0x80, 0x0A, 0x92, 0x12, 0xDE, 0xC1, 0x95, 0xA5, 0x99, 0x1A },
+ { 0x00, 0x1C, 0x0B, 0x20, 0x09, 0x4C, 0x12, 0x93, 0x71, 0x95, 0x45, 0x99, 0x8B },
+ { 0x00, 0x1C, 0x1E, 0x70, 0x00, 0x04, 0x92, 0xAD, 0xA1, 0x9A, 0x95, 0x99, 0x22 },
+ { 0x00, 0x1C, 0x13, 0x50, 0x00, 0x30, 0x12, 0x9B, 0x71, 0x9A, 0x85, 0xAA, 0xA5 },
+ { 0x00, 0x1C, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A },
+ { 0x00, 0x1C, 0x0E, 0x40, 0x00, 0x00, 0x92, 0x4A, 0x6D, 0x99, 0xA5, 0x9A, 0xA4 },
+ { 0x00, 0x1C, 0x1E, 0x40, 0x0C, 0xB4, 0x12, 0x30, 0x01, 0x99, 0x45, 0x10, 0x10 },
+ { 0x00, 0x1C, 0x1A, 0xA0, 0x1F, 0xE0, 0x12, 0x56, 0x01, 0x95, 0x05, 0x68, 0x0A },
+ { 0x00, 0x1C, 0x09, 0x40, 0x1B, 0x6D, 0x92, 0x4A, 0xA1, 0x95, 0x55, 0x65, 0x09 },
+ { 0x00, 0x1C, 0x0A, 0x60, 0x13, 0x6E, 0x12, 0x49, 0x49, 0x9A, 0x95, 0x6A, 0x63 },
+ { 0x00, 0x1C, 0x17, 0x10, 0x13, 0x72, 0x12, 0xB7, 0x01, 0x95, 0x95, 0x64, 0x11 },
+ { 0x00, 0x1C, 0x19, 0x90, 0x12, 0x40, 0x12, 0x92, 0x4D, 0x95, 0x05, 0x66, 0x8B },
+ { 0x00, 0x1C, 0x19, 0x00, 0x09, 0x70, 0x12, 0xDB, 0x61, 0x9A, 0x45, 0x59, 0x19 },
+ { 0x00, 0x1C, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_3460000 = {
+ { 0x00, 0x1C, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 },
+ { 0x00, 0x1C, 0x1E, 0x40, 0x0C, 0xB4, 0x12, 0x30, 0x01, 0x99, 0x45, 0x10, 0x10 },
+ { 0x00, 0x1C, 0x0A, 0x80, 0x0A, 0x92, 0x12, 0xDE, 0xC1, 0x95, 0xA5, 0x99, 0x1A },
+ { 0x00, 0x1C, 0x14, 0x70, 0x09, 0x24, 0x92, 0xE4, 0x91, 0x96, 0x55, 0xA9, 0x53 },
+ { 0x00, 0x1C, 0x0B, 0x20, 0x09, 0x4C, 0x12, 0x93, 0x71, 0x95, 0x45, 0x99, 0x8B },
+ { 0x00, 0x1C, 0x1E, 0x70, 0x00, 0x04, 0x92, 0xAD, 0xA1, 0x9A, 0x95, 0x99, 0x22 },
+ { 0x00, 0x1C, 0x13, 0x50, 0x00, 0x30, 0x12, 0x9B, 0x71, 0x9A, 0x85, 0xAA, 0xA5 },
+ { 0x00, 0x1C, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A },
+ { 0x00, 0x1C, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 },
+ { 0x00, 0x1C, 0x08, 0xB0, 0x1B, 0xB8, 0x12, 0x5B, 0x91, 0x9A, 0x45, 0x65, 0x59 },
+ { 0x00, 0x1C, 0x1A, 0xA0, 0x1F, 0xE0, 0x12, 0x56, 0x01, 0x95, 0x05, 0x68, 0x0A },
+ { 0x00, 0x1C, 0x09, 0x40, 0x1B, 0x6D, 0x92, 0x4A, 0xA1, 0x95, 0x55, 0x65, 0x09 },
+ { 0x00, 0x1C, 0x00, 0x90, 0x15, 0xD8, 0x12, 0x9C, 0xA1, 0x96, 0x85, 0x56, 0x19 },
+ { 0x00, 0x1C, 0x17, 0x10, 0x13, 0x72, 0x12, 0xB7, 0x01, 0x95, 0x95, 0x64, 0x11 },
+ { 0x00, 0x1C, 0x19, 0x90, 0x12, 0x40, 0x12, 0x92, 0x4D, 0x95, 0x05, 0x66, 0x8B },
+ { 0x00, 0x1C, 0x11, 0x70, 0x09, 0x29, 0x12, 0xDC, 0xC1, 0x99, 0x55, 0x66, 0x12 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4450000 = {
+ { 0x00, 0x1C, 0x0D, 0x82, 0x55, 0xB4, 0x00, 0x9C, 0xC1, 0x55, 0x46, 0x5A, 0x03 },
+ { 0x00, 0x1C, 0x01, 0xD2, 0x49, 0x52, 0x00, 0x93, 0x91, 0x5A, 0xA6, 0x66, 0x63 },
+ { 0x00, 0x1C, 0x0E, 0x82, 0x4A, 0x6E, 0x00, 0xED, 0xC1, 0x5A, 0x96, 0x55, 0x19 },
+ { 0x00, 0x1C, 0x1B, 0x92, 0x4D, 0x18, 0x01, 0x36, 0xC1, 0x54, 0x46, 0x59, 0x02 },
+ { 0x00, 0x1C, 0x1B, 0x22, 0x4A, 0x49, 0x00, 0x38, 0xC1, 0x55, 0x66, 0x12, 0x0A },
+ { 0x00, 0x1C, 0x0C, 0x52, 0x49, 0x29, 0x81, 0x3F, 0x01, 0x55, 0xA6, 0x98, 0x13 },
+ { 0x00, 0x1C, 0x0C, 0xD0, 0x00, 0x29, 0x80, 0xC6, 0xC1, 0xAA, 0x66, 0x86, 0x2B },
+ { 0x00, 0x1C, 0x15, 0x70, 0x00, 0x24, 0x80, 0x90, 0xC1, 0xA9, 0x56, 0x91, 0x1A },
+ { 0x00, 0x1C, 0x0D, 0x82, 0x55, 0xB4, 0x00, 0x9C, 0xC1, 0x55, 0x46, 0x5A, 0x03 },
+ { 0x00, 0x1C, 0x1A, 0xE2, 0x52, 0x4A, 0x00, 0x06, 0xC1, 0x6A, 0xA6, 0x6A, 0x2C },
+ { 0x00, 0x1C, 0x06, 0x72, 0x55, 0xB4, 0x00, 0x00, 0x25, 0x66, 0x46, 0x6A, 0x54 },
+ { 0x00, 0x1C, 0x0C, 0x72, 0x5C, 0x92, 0x00, 0x49, 0x25, 0x6A, 0x56, 0x59, 0x5A },
+ { 0x00, 0x1C, 0x1D, 0x22, 0x66, 0x18, 0x00, 0x5B, 0x6D, 0x64, 0x46, 0x56, 0x8B },
+ { 0x00, 0x1C, 0x16, 0xD2, 0x6E, 0x00, 0x00, 0x5E, 0xC1, 0x58, 0x06, 0x69, 0x0B },
+ { 0x00, 0x1C, 0x0E, 0x52, 0x5C, 0x90, 0x00, 0x49, 0x2D, 0x59, 0x46, 0x66, 0x8C },
+ { 0x00, 0x1C, 0x0C, 0x22, 0x52, 0xE0, 0x00, 0x49, 0x25, 0x5A, 0x06, 0x6A, 0x54 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_8200000 = {
+ { 0x00, 0x1C, 0x0A, 0x8B, 0x46, 0xD8, 0x01, 0xB6, 0xC2, 0x89, 0x84, 0x99, 0x22 },
+ { 0x00, 0x1C, 0x03, 0xBB, 0xB6, 0x18, 0x01, 0xF8, 0xC2, 0x58, 0x84, 0x91, 0x19 },
+ { 0x00, 0x1C, 0x06, 0xBC, 0x30, 0xE0, 0x00, 0x38, 0xC2, 0x12, 0x04, 0x21, 0x11 },
+ { 0x00, 0x1C, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x02, 0x01 },
+ { 0x00, 0x1C, 0x17, 0xBD, 0xB0, 0xD8, 0x00, 0x06, 0xC1, 0x91, 0x44, 0x0A, 0x0A },
+ { 0x00, 0x1C, 0x1D, 0x0D, 0x87, 0x18, 0x00, 0x36, 0xC1, 0x44, 0x84, 0x26, 0x0A },
+ { 0x00, 0x1C, 0x0B, 0x2A, 0x06, 0xD8, 0x01, 0xC0, 0x01, 0x06, 0x84, 0x80, 0x11 },
+ { 0x00, 0x1C, 0x02, 0x59, 0x25, 0xD8, 0x01, 0x86, 0xC1, 0xAA, 0x44, 0x85, 0x21 },
+ { 0x00, 0x1C, 0x0A, 0x8B, 0x46, 0xD8, 0x01, 0xB6, 0xC2, 0x89, 0x84, 0x99, 0x22 },
+ { 0x00, 0x1C, 0x0E, 0x17, 0x86, 0xE0, 0x0B, 0xC6, 0xC2, 0x8A, 0x06, 0x8A, 0x24 },
+ { 0x00, 0x1C, 0x17, 0x97, 0x7F, 0x00, 0x0B, 0x80, 0xC2, 0x54, 0x06, 0x41, 0x09 },
+ { 0x00, 0x1C, 0x0B, 0xD6, 0xDC, 0x94, 0x0B, 0x6E, 0xC2, 0x6A, 0x86, 0x55, 0x29 },
+ { 0x00, 0x1C, 0x05, 0x76, 0xE6, 0xC0, 0x0C, 0x36, 0xC2, 0x5A, 0x06, 0x25, 0x1A },
+ { 0x00, 0x1C, 0x1A, 0x99, 0x2D, 0xB8, 0x0D, 0x80, 0x02, 0x99, 0x86, 0x40, 0x21 },
+ { 0x00, 0x1C, 0x07, 0xB9, 0xFF, 0xE0, 0x0E, 0x3F, 0x02, 0x95, 0x06, 0x24, 0x12 },
+ { 0x00, 0x1C, 0x1F, 0xB9, 0x26, 0xE0, 0x01, 0xB6, 0xC2, 0x6A, 0x04, 0xAA, 0x24 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_3300000 = {
+ { 0x00, 0x1C, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A },
+ { 0x00, 0x1C, 0x0E, 0x40, 0x00, 0x00, 0x92, 0x4A, 0x6D, 0x99, 0xA5, 0x9A, 0xA4 },
+ { 0x00, 0x1C, 0x19, 0xB0, 0x01, 0x24, 0x92, 0x53, 0xC1, 0x9A, 0xA5, 0x9A, 0x2B },
+ { 0x00, 0x1C, 0x0D, 0x20, 0x01, 0x2C, 0x12, 0x52, 0x81, 0x99, 0x45, 0xA5, 0x12 },
+ { 0x00, 0x1C, 0x10, 0x50, 0x02, 0x70, 0x12, 0x49, 0x71, 0x99, 0x85, 0xA6, 0x5B },
+ { 0x00, 0x1C, 0x1C, 0xE0, 0x04, 0xB4, 0x12, 0x49, 0x29, 0x9A, 0x85, 0xA9, 0x63 },
+ { 0x00, 0x1C, 0x05, 0x10, 0x04, 0xD8, 0x14, 0x93, 0x91, 0x95, 0x45, 0x5A, 0x4A },
+ { 0x00, 0x1C, 0x16, 0xB0, 0x02, 0x70, 0x14, 0xB8, 0x01, 0x96, 0x85, 0x50, 0x18 },
+ { 0x00, 0x1C, 0x0D, 0x00, 0x00, 0x72, 0x12, 0x49, 0x91, 0x99, 0x95, 0x95, 0x9A },
+ { 0x00, 0x1C, 0x11, 0x70, 0x09, 0x29, 0x12, 0xDC, 0xC1, 0x99, 0x55, 0x66, 0x12 },
+ { 0x00, 0x1C, 0x02, 0x50, 0x0A, 0x49, 0x93, 0x24, 0x91, 0x99, 0xA5, 0x65, 0xA2 },
+ { 0x00, 0x1C, 0x1D, 0x20, 0x0B, 0x6D, 0x93, 0x30, 0xC1, 0x95, 0xA5, 0x91, 0x19 },
+ { 0x00, 0x1C, 0x0A, 0x80, 0x0A, 0x92, 0x12, 0xDE, 0xC1, 0x95, 0xA5, 0x99, 0x1A },
+ { 0x00, 0x1C, 0x14, 0x70, 0x09, 0x24, 0x92, 0xE4, 0x91, 0x96, 0x55, 0xA9, 0x53 },
+ { 0x00, 0x1C, 0x1E, 0x70, 0x00, 0x04, 0x92, 0xAD, 0xA1, 0x9A, 0x95, 0x99, 0x22 },
+ { 0x00, 0x1C, 0x13, 0x50, 0x00, 0x30, 0x12, 0x9B, 0x71, 0x9A, 0x85, 0xAA, 0xA5 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5420000 = {
+ { 0x00, 0x1C, 0x09, 0xF3, 0x30, 0xD8, 0x03, 0xB6, 0xC1, 0x92, 0x46, 0x95, 0x12 },
+ { 0x00, 0x1C, 0x1B, 0xA3, 0x40, 0xE0, 0x03, 0x2D, 0xC1, 0x82, 0x06, 0xA9, 0x14 },
+ { 0x00, 0x1C, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06, 0xA9, 0x04 },
+ { 0x00, 0x1C, 0x0D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x81, 0x69, 0x86, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x04, 0x93, 0x24, 0x92, 0x02, 0xAD, 0x01, 0x66, 0xA6, 0xA8, 0x24 },
+ { 0x00, 0x1C, 0x03, 0x13, 0x24, 0x92, 0x02, 0x94, 0x91, 0x5A, 0x56, 0xAA, 0x96 },
+ { 0x00, 0x1C, 0x1B, 0x62, 0xDB, 0x72, 0x02, 0x4B, 0x91, 0x66, 0x56, 0x99, 0x94 },
+ { 0x00, 0x1C, 0x1C, 0x92, 0xF8, 0xE0, 0x02, 0x55, 0x01, 0x62, 0x06, 0x98, 0x13 },
+ { 0x00, 0x1C, 0x09, 0xF3, 0x30, 0xD8, 0x03, 0xB6, 0xC1, 0x92, 0x46, 0x95, 0x12 },
+ { 0x00, 0x1C, 0x16, 0xD2, 0x9B, 0x6E, 0x02, 0x53, 0x01, 0xA5, 0x96, 0x68, 0x1B },
+ { 0x00, 0x1C, 0x1F, 0x52, 0xA5, 0xB8, 0x02, 0x4A, 0x6D, 0x9A, 0x86, 0x69, 0x63 },
+ { 0x00, 0x1C, 0x19, 0xB2, 0x92, 0x72, 0x02, 0x92, 0x91, 0x9A, 0x56, 0x59, 0x5A },
+ { 0x00, 0x1C, 0x15, 0x32, 0x93, 0x6E, 0x02, 0xA8, 0xC1, 0x95, 0x66, 0x61, 0x12 },
+ { 0x00, 0x1C, 0x0D, 0x82, 0xDB, 0x6C, 0x02, 0x93, 0x71, 0xA5, 0x46, 0x6A, 0x95 },
+ { 0x00, 0x1C, 0x19, 0x02, 0xE4, 0x92, 0x02, 0xE5, 0xA1, 0x9A, 0x96, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x1B, 0xF2, 0xDB, 0x98, 0x03, 0x24, 0x91, 0x96, 0x86, 0x65, 0x9B }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5500000 = {
+ { 0x00, 0x1C, 0x19, 0x02, 0xE4, 0x92, 0x02, 0xE5, 0xA1, 0x9A, 0x96, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x1B, 0xF2, 0xDB, 0x98, 0x03, 0x24, 0x91, 0x96, 0x86, 0x65, 0x9B },
+ { 0x00, 0x1C, 0x09, 0xF3, 0x30, 0xD8, 0x03, 0xB6, 0xC1, 0x92, 0x46, 0x95, 0x12 },
+ { 0x00, 0x1C, 0x1B, 0xA3, 0x40, 0xE0, 0x03, 0x2D, 0xC1, 0x82, 0x06, 0xA9, 0x14 },
+ { 0x00, 0x1C, 0x10, 0x32, 0x00, 0x00, 0x02, 0xE4, 0x81, 0x00, 0x06, 0xA9, 0x04 },
+ { 0x00, 0x1C, 0x0D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x81, 0x69, 0x86, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x04, 0x93, 0x24, 0x92, 0x02, 0xAD, 0x01, 0x66, 0xA6, 0xA8, 0x24 },
+ { 0x00, 0x1C, 0x03, 0x13, 0x24, 0x92, 0x02, 0x94, 0x91, 0x5A, 0x56, 0xAA, 0x96 },
+ { 0x00, 0x1C, 0x19, 0x02, 0xE4, 0x92, 0x02, 0xE5, 0xA1, 0x9A, 0x96, 0x66, 0x23 },
+ { 0x00, 0x1C, 0x17, 0x12, 0x92, 0x98, 0x02, 0x5B, 0x71, 0xAA, 0x86, 0x56, 0x6A },
+ { 0x00, 0x1C, 0x11, 0x92, 0x92, 0x00, 0x02, 0x5B, 0x91, 0xA4, 0x06, 0x65, 0x93 },
+ { 0x00, 0x1C, 0x08, 0x72, 0xA6, 0xD8, 0x02, 0x49, 0x29, 0xA5, 0x86, 0x65, 0x5A },
+ { 0x00, 0x1C, 0x0E, 0x72, 0xA6, 0xC0, 0x02, 0x4A, 0x49, 0x95, 0x06, 0x6A, 0x8D },
+ { 0x00, 0x1C, 0x0C, 0x02, 0x92, 0x6D, 0x82, 0x9B, 0x6D, 0x99, 0x96, 0x55, 0x59 },
+ { 0x00, 0x1C, 0x0B, 0x52, 0x92, 0x6D, 0x82, 0xA0, 0xC1, 0x96, 0x66, 0x61, 0x1A },
+ { 0x00, 0x1C, 0x08, 0xD2, 0xE7, 0x00, 0x02, 0x92, 0x4D, 0xA8, 0x06, 0x6A, 0x9D }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5200000 = {
+ { 0x00, 0x1C, 0x09, 0x42, 0xDC, 0xE0, 0x02, 0x4A, 0x71, 0x69, 0x06, 0x95, 0x93 },
+ { 0x00, 0x1C, 0x01, 0xF2, 0xED, 0xB4, 0x02, 0x52, 0xC1, 0x69, 0x46, 0x95, 0x12 },
+ { 0x00, 0x1C, 0x0C, 0x02, 0xE7, 0xE0, 0x02, 0x65, 0x01, 0x5A, 0x06, 0x94, 0x12 },
+ { 0x00, 0x1C, 0x1F, 0x62, 0xDB, 0x6D, 0x82, 0x52, 0x51, 0x55, 0x56, 0xA6, 0x44 },
+ { 0x00, 0x1C, 0x01, 0x32, 0x90, 0xD8, 0x02, 0x4A, 0x51, 0x61, 0x46, 0xA5, 0x4B },
+ { 0x00, 0x1C, 0x16, 0x32, 0x9C, 0x94, 0x00, 0x00, 0x29, 0x69, 0x86, 0x55, 0x59 },
+ { 0x00, 0x1C, 0x17, 0x72, 0xA4, 0xB8, 0x00, 0x03, 0x6D, 0x65, 0x86, 0x55, 0x92 },
+ { 0x00, 0x1C, 0x0A, 0x22, 0xA4, 0x92, 0x00, 0x00, 0x01, 0x5A, 0x96, 0x59, 0x9B },
+ { 0x00, 0x1C, 0x09, 0x42, 0xDC, 0xE0, 0x02, 0x4A, 0x71, 0x69, 0x06, 0x95, 0x93 },
+ { 0x00, 0x1C, 0x1B, 0x32, 0xE5, 0xD8, 0x02, 0xDD, 0xA1, 0x96, 0x46, 0x65, 0x12 },
+ { 0x00, 0x1C, 0x0C, 0x83, 0x25, 0xE0, 0x03, 0x70, 0xC1, 0xA5, 0x06, 0x61, 0x12 },
+ { 0x00, 0x1C, 0x0A, 0x53, 0x25, 0xB4, 0x03, 0x47, 0x01, 0x9A, 0x46, 0x88, 0x1B },
+ { 0x00, 0x1C, 0x1E, 0x43, 0xBF, 0xE0, 0x02, 0xDB, 0xC1, 0xAA, 0x06, 0x9A, 0x24 },
+ { 0x00, 0x1C, 0x1F, 0x13, 0x87, 0x18, 0x02, 0x93, 0x91, 0x44, 0x86, 0x96, 0x8C },
+ { 0x00, 0x1C, 0x0B, 0x23, 0x76, 0x18, 0x02, 0x9B, 0x6D, 0x54, 0x46, 0x9A, 0x44 },
+ { 0x00, 0x1C, 0x19, 0xD3, 0x00, 0xD8, 0x02, 0x9B, 0x91, 0x42, 0x86, 0xAA, 0x96 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_6300000 = {
+ { 0x00, 0x1C, 0x1D, 0x04, 0x95, 0x00, 0x04, 0xE8, 0xC1, 0x58, 0x06, 0x62, 0x0B },
+ { 0x00, 0x1C, 0x0A, 0x02, 0x49, 0x54, 0x05, 0x38, 0xC1, 0xA9, 0x86, 0x51, 0x21 },
+ { 0x00, 0x1C, 0x13, 0x12, 0x4B, 0x6D, 0x85, 0x80, 0xC1, 0xA6, 0x56, 0x42, 0x1A },
+ { 0x00, 0x1C, 0x0E, 0x42, 0x49, 0x32, 0x05, 0x78, 0xC1, 0xA5, 0x96, 0xA1, 0x1B },
+ { 0x00, 0x1C, 0x09, 0x12, 0x53, 0xB4, 0x05, 0x25, 0xC1, 0xA6, 0x46, 0xAA, 0x1D },
+ { 0x00, 0x1C, 0x11, 0xD2, 0x64, 0x18, 0x04, 0xE4, 0xC1, 0xA8, 0x46, 0xA5, 0x1B },
+ { 0x00, 0x1C, 0x0D, 0x12, 0x64, 0x94, 0x04, 0x96, 0x01, 0x99, 0x46, 0x98, 0x13 },
+ { 0x00, 0x1C, 0x16, 0x32, 0x52, 0x6C, 0x04, 0xA8, 0xC1, 0x9A, 0x46, 0x92, 0x1B },
+ { 0x00, 0x1C, 0x1D, 0x04, 0x95, 0x00, 0x04, 0xE8, 0xC1, 0x58, 0x06, 0x62, 0x0B },
+ { 0x00, 0x1C, 0x04, 0xD5, 0x25, 0xB8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0x99, 0x13 },
+ { 0x00, 0x1C, 0x0A, 0x84, 0xDB, 0xD8, 0x06, 0xDB, 0x91, 0x6A, 0x46, 0x99, 0x9C },
+ { 0x00, 0x1C, 0x08, 0xB4, 0xF8, 0x00, 0x06, 0xDB, 0xC1, 0x50, 0x06, 0xA5, 0x03 },
+ { 0x00, 0x1C, 0x16, 0x54, 0xDB, 0x92, 0x04, 0x93, 0x61, 0x55, 0x96, 0x59, 0x0A },
+ { 0x00, 0x1C, 0x0A, 0x44, 0x92, 0xD8, 0x04, 0xAD, 0xC1, 0x66, 0x86, 0x56, 0x1A },
+ { 0x00, 0x1C, 0x00, 0x54, 0xA5, 0xC0, 0x04, 0x9D, 0x01, 0x66, 0x06, 0x68, 0x13 },
+ { 0x00, 0x1C, 0x13, 0xF4, 0x9B, 0xA0, 0x04, 0x92, 0x49, 0x59, 0x06, 0x6A, 0x8D }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_4400000 = {
+ { 0x00, 0x1C, 0x19, 0x42, 0x49, 0x54, 0x00, 0xDB, 0x6D, 0x59, 0x46, 0x55, 0x49 },
+ { 0x00, 0x1C, 0x10, 0xB2, 0x4B, 0x72, 0x00, 0xDD, 0xC1, 0x59, 0x56, 0x69, 0x0B },
+ { 0x00, 0x1C, 0x09, 0x82, 0x4A, 0x4D, 0x81, 0x78, 0xC1, 0x56, 0x56, 0x61, 0x0A },
+ { 0x00, 0x1C, 0x18, 0xD2, 0x49, 0x54, 0x01, 0x6F, 0x01, 0x56, 0x46, 0x98, 0x0B },
+ { 0x00, 0x1C, 0x00, 0xF0, 0x00, 0x00, 0x00, 0xE0, 0xC1, 0xAA, 0x56, 0x92, 0x23 },
+ { 0x00, 0x1C, 0x0E, 0x40, 0x00, 0x4D, 0x80, 0xDB, 0x61, 0xA9, 0x56, 0xAA, 0x1D },
+ { 0x00, 0x1C, 0x11, 0x30, 0x01, 0x25, 0x80, 0x9B, 0x61, 0xAA, 0x96, 0x9A, 0x2C },
+ { 0x00, 0x1C, 0x16, 0xF0, 0x01, 0x38, 0x00, 0x92, 0x51, 0xA9, 0x46, 0xA5, 0x9C },
+ { 0x00, 0x1C, 0x19, 0x42, 0x49, 0x54, 0x00, 0xDB, 0x6D, 0x59, 0x46, 0x55, 0x49 },
+ { 0x00, 0x1C, 0x0B, 0x22, 0x52, 0x6E, 0x00, 0x4A, 0x61, 0x66, 0x66, 0x55, 0x19 },
+ { 0x00, 0x1C, 0x1A, 0x12, 0x5C, 0x00, 0x00, 0x52, 0x91, 0x64, 0x06, 0x56, 0x8B },
+ { 0x00, 0x1C, 0x00, 0x72, 0x6D, 0xD8, 0x00, 0x6D, 0xA1, 0x66, 0x46, 0x56, 0x12 },
+ { 0x00, 0x1C, 0x09, 0xE2, 0x65, 0xD8, 0x00, 0x54, 0x91, 0x56, 0x86, 0x69, 0x94 },
+ { 0x00, 0x1C, 0x09, 0x02, 0x5B, 0x6C, 0x00, 0x4B, 0x81, 0x56, 0x46, 0x69, 0x0B },
+ { 0x00, 0x1C, 0x02, 0xB2, 0x54, 0xE0, 0x00, 0x92, 0x6D, 0x59, 0x06, 0x59, 0x8B },
+ { 0x00, 0x1C, 0x1D, 0xC2, 0x52, 0x92, 0x00, 0xA4, 0x91, 0x56, 0x96, 0x66, 0x94 }
+};
+
+XC4000_SCODE_TABLE XC4000_scode_table_5000000 = {
+ { 0x00, 0x1C, 0x08, 0x82, 0x9C, 0xB4, 0x00, 0x00, 0x29, 0x66, 0x46, 0x56, 0x93 },
+ { 0x00, 0x1C, 0x1B, 0x22, 0xB8, 0xD8, 0x00, 0x02, 0x81, 0x61, 0x46, 0x5A, 0x0B },
+ { 0x00, 0x1C, 0x00, 0xD2, 0x9B, 0x92, 0x00, 0x00, 0x01, 0x5A, 0x96, 0x5A, 0x9C },
+ { 0x00, 0x1C, 0x19, 0x22, 0x92, 0x6D, 0x80, 0x0A, 0x49, 0x5A, 0xA6, 0x5A, 0x63 },
+ { 0x00, 0x1C, 0x1F, 0x52, 0x94, 0xD8, 0x00, 0x12, 0x6D, 0x56, 0x46, 0x5A, 0x8C },
+ { 0x00, 0x1C, 0x1C, 0xE2, 0x49, 0x25, 0x00, 0x25, 0xA1, 0x6A, 0x56, 0x6A, 0x1C },
+ { 0x00, 0x1C, 0x06, 0xB2, 0x4A, 0x92, 0x00, 0x12, 0x49, 0x69, 0x56, 0x6A, 0x95 },
+ { 0x00, 0x1C, 0x1A, 0x02, 0x4B, 0x00, 0x00, 0x09, 0x31, 0x64, 0x06, 0x69, 0x8C },
+ { 0x00, 0x1C, 0x08, 0x82, 0x9C, 0xB4, 0x00, 0x00, 0x29, 0x66, 0x46, 0x56, 0x93 },
+ { 0x00, 0x1C, 0x05, 0xB3, 0x6E, 0xD8, 0x02, 0xA5, 0xC1, 0x56, 0x86, 0x9A, 0x14 },
+ { 0x00, 0x1C, 0x0D, 0x13, 0x37, 0xE0, 0x02, 0x92, 0x4D, 0x56, 0x06, 0xA6, 0x8D },
+ { 0x00, 0x1C, 0x14, 0xD2, 0xD8, 0xD8, 0x02, 0x4B, 0x81, 0x62, 0x86, 0x95, 0x1A },
+ { 0x00, 0x1C, 0x0A, 0xD2, 0xED, 0xB8, 0x02, 0x53, 0x6D, 0x65, 0x46, 0x96, 0x4B },
+ { 0x00, 0x1C, 0x1B, 0xD2, 0xDB, 0x72, 0x02, 0x47, 0x01, 0x5A, 0x56, 0x84, 0x12 },
+ { 0x00, 0x1C, 0x1D, 0xD2, 0x92, 0x98, 0x02, 0x54, 0xC1, 0x69, 0x46, 0xAA, 0x15 },
+ { 0x00, 0x1C, 0x09, 0xB2, 0x92, 0x49, 0x02, 0x4B, 0x91, 0x66, 0xA6, 0xA9, 0xA5 }
+};
+
+// For FM, only used Dcode = 0
+XC4000_SCODE_TABLE XC4000_scode_table_10700000 = {
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+ { 0x00, 0x1C, 0x1D, 0x03, 0x6E, 0xD8, 0x02, 0x93, 0x82, 0x96, 0x46, 0x9A, 0x1C },
+};
+
+// For digital only!!! Edward Yun 05/17/2007
+XC4000_SCODE_TABLE XC4000_scode_table_3600000 = {
+ { 0x00, 0x1C, 0x09, 0x40, 0x1b, 0x6d, 0x92, 0x4a, 0xa1, 0x95, 0x55, 0x65, 0x09 },
+ { 0x00, 0x1C, 0x1A, 0xA0, 0x1F, 0xE0, 0x12, 0x56, 0x01, 0x95, 0x05, 0x68, 0x0A },
+ { 0x00, 0x1C, 0x1D, 0xE0, 0x24, 0x92, 0x12, 0x5D, 0xA1, 0x9A, 0x55, 0x56, 0x19 },
+ { 0x00, 0x1C, 0x1b, 0x20, 0x07, 0x18, 0x12, 0x52, 0x49, 0x84, 0x85, 0x55, 0x91 },
+ { 0x00, 0x1C, 0x02, 0xb0, 0x1b, 0x6e, 0x00, 0x00, 0x25, 0xA5, 0x56, 0xaa, 0x96 },
+ { 0x00, 0x1C, 0x04, 0xd0, 0x18, 0xd8, 0x00, 0x01, 0x4d, 0xA1, 0x86, 0xa9, 0x9d },
+ { 0x00, 0x1C, 0x1d, 0xb0, 0x13, 0x6e, 0x00, 0x00, 0x6d, 0xA5, 0x56, 0xa5, 0x53 },
+ { 0x00, 0x1C, 0x1a, 0x80, 0x10, 0xd8, 0x00, 0x0a, 0x6d, 0xA2, 0x46, 0xa9, 0x9d },
+ { 0x00, 0x1C, 0x09, 0x40, 0x1b, 0x6d, 0x92, 0x4a, 0xa1, 0x95, 0x55, 0x65, 0x09 },
+ { 0x00, 0x1C, 0x18, 0x70, 0x0d, 0xb4, 0x13, 0x6e, 0xc1, 0x95, 0x85, 0x99, 0x12 },
+ { 0x00, 0x1C, 0x1e, 0x40, 0x0c, 0xb4, 0x12, 0x30, 0x01, 0x99, 0x45, 0x10, 0x10 },
+ { 0x00, 0x1C, 0x02, 0x50, 0x0a, 0x49, 0x93, 0x24, 0x91, 0x99, 0xa5, 0x65, 0xa2 },
+ { 0x00, 0x1C, 0x19, 0x00, 0x09, 0x70, 0x12, 0xdb, 0x61, 0x9a, 0x45, 0x59, 0x19 },
+ { 0x00, 0x1C, 0x19, 0x90, 0x12, 0x40, 0x12, 0x92, 0x4d, 0x95, 0x05, 0x66, 0x8b },
+ { 0x00, 0x1C, 0x17, 0x10, 0x13, 0x72, 0x12, 0xb7, 0x01, 0x95, 0x95, 0x64, 0x11 },
+ { 0x00, 0x1C, 0x0a, 0x60, 0x13, 0x6e, 0x12, 0x49, 0x49, 0x9a, 0x95, 0x6a, 0x63 },
+};
+
+
+// For digital only!!! Edward Yun 05/17/2007
+XC4000_SCODE_TABLE XC4000_scode_table_3880000 = {
+ { 0x00, 0x1C, 0x02, 0x10, 0x0a, 0x4e, 0x00, 0x1b, 0x71, 0xA5, 0x66, 0x95, 0x5a },
+ { 0x00, 0x1C, 0x0E, 0x40, 0x0D, 0xB8, 0x00, 0x0B, 0x71, 0xAA, 0x86, 0x95, 0xAB },
+ { 0x00, 0x1C, 0x0C, 0x30, 0x0A, 0x78, 0x00, 0x00, 0x2D, 0xA9, 0x46, 0x9A, 0x5C },
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x00, 0x1C, 0x16, 0x30, 0x00, 0x29, 0x00, 0x49, 0x49, 0xA6, 0x56, 0xA6, 0x5C },
+ { 0x00, 0x1C, 0x1E, 0x40, 0x01, 0x6E, 0x00, 0x6D, 0xC1, 0xA5, 0x66, 0xAA, 0x1D },
+ { 0x00, 0x1C, 0x0D, 0x00, 0x01, 0x29, 0x80, 0x5D, 0xA1, 0xA6, 0xA6, 0x95, 0x2A },
+ { 0x00, 0x1C, 0x02, 0x10, 0x0a, 0x4e, 0x00, 0x1b, 0x71, 0xA5, 0x66, 0x95, 0x5a },
+ { 0x00, 0x1C, 0x1B, 0x20, 0x07, 0x18, 0x12, 0x52, 0x49, 0x84, 0x85, 0x55, 0x91 },
+ { 0x00, 0x1C, 0x0D, 0x00, 0x2D, 0xD8, 0x12, 0x4C, 0x81, 0xAA, 0x45, 0x56, 0x21 },
+ { 0x00, 0x1C, 0x04, 0xD0, 0x18, 0xD8, 0x00, 0x01, 0x4D, 0xA1, 0x86, 0xA9, 0x9D },
+ { 0x00, 0x1C, 0x1E, 0x40, 0x1B, 0x6C, 0x00, 0x02, 0x6D, 0xAA, 0x86, 0xA5, 0x6B },
+ { 0x00, 0x1C, 0x1A, 0x80, 0x10, 0xD8, 0x00, 0x0A, 0x6D, 0xA2, 0x46, 0xA9, 0x9D },
+ { 0x00, 0x1C, 0x0E, 0xF0, 0x12, 0x4A, 0x00, 0x09, 0xC1, 0xA9, 0x66, 0xA5, 0x23 },
+ { 0x00, 0x1C, 0x01, 0x90, 0x09, 0x25, 0x80, 0x12, 0xA1, 0xA5, 0x66, 0xA6, 0x1C },
+};
+
+
+// For digital only!!! Edward Yun 05/17/2007
+XC4000_SCODE_TABLE XC4000_scode_table_4060000 = {
+ { 0x00, 0x1C, 0x14, 0x30, 0x00, 0x05, 0x80, 0x53, 0xc1, 0xa6, 0x96, 0xa5, 0x23 },
+ { 0x00, 0x1C, 0x0D, 0x00, 0x01, 0x29, 0x80, 0x5D, 0xA1, 0xA6, 0xA6, 0x95, 0x2A },
+ { 0x00, 0x1C, 0x0A, 0x10, 0x03, 0x6E, 0x00, 0x52, 0x71, 0xA5, 0x56, 0x95, 0x93 },
+ { 0x00, 0x1C, 0x09, 0x90, 0x02, 0x54, 0x00, 0x49, 0x2D, 0xA9, 0x86, 0x95, 0xA3 },
+ { 0x00, 0x1C, 0x0A, 0x80, 0x01, 0x4D, 0x80, 0x86, 0xC1, 0xAA, 0x66, 0x89, 0x2B },
+ { 0x00, 0x1C, 0x05, 0xB0, 0x00, 0x0D, 0x80, 0x9B, 0x71, 0xA9, 0x56, 0x95, 0x5A },
+ { 0x00, 0x1C, 0x0C, 0xD0, 0x00, 0x29, 0x80, 0xC6, 0xC1, 0xAA, 0x66, 0x86, 0x2B },
+ { 0x00, 0x1C, 0x1D, 0x02, 0x49, 0x90, 0x01, 0x6E, 0xC1, 0x55, 0x86, 0xA9, 0x0C },
+ { 0x00, 0x1C, 0x14, 0x30, 0x00, 0x05, 0x80, 0x53, 0xc1, 0xa6, 0x96, 0xa5, 0x23 },
+ { 0x00, 0x1C, 0x01, 0x90, 0x09, 0x25, 0x80, 0x12, 0xA1, 0xA5, 0x66, 0xA6, 0x1C },
+ { 0x00, 0x1C, 0x02, 0x10, 0x0A, 0x4E, 0x00, 0x1B, 0x71, 0xA5, 0x66, 0x95, 0x5A },
+ { 0x00, 0x1C, 0x1D, 0x00, 0x0B, 0xB4, 0x00, 0x09, 0x4D, 0xA5, 0x46, 0x9A, 0x95 },
+ { 0x00, 0x1C, 0x0C, 0x30, 0x0A, 0x78, 0x00, 0x00, 0x2D, 0xA9, 0x46, 0x9A, 0x5C },
+ { 0x00, 0x1C, 0x0E, 0x30, 0x09, 0x29, 0x00, 0x01, 0x49, 0xA9, 0x96, 0x99, 0x63 },
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+ { 0x00, 0x1C, 0x08, 0x20, 0x00, 0x12, 0x00, 0x00, 0x91, 0xA5, 0x56, 0x95, 0x52 },
+};
+
+
+// For digital only!!! Edward Yun 05/17/2007
+XC4000_SCODE_TABLE XC4000_scode_table_4560000 = {
+ { 0x00, 0x1C, 0x0e, 0x42, 0x46, 0x00, 0x00, 0x65, 0xa1, 0x44, 0x06, 0x65, 0x02 },
+ { 0x00, 0x1C, 0x1A, 0x82, 0x5B, 0xD8, 0x00, 0x54, 0x91, 0x66, 0x46, 0x56, 0x93 },
+ { 0x00, 0x1C, 0x0B, 0x22, 0x52, 0x6E, 0x00, 0x4A, 0x61, 0x66, 0x66, 0x55, 0x19 },
+ { 0x00, 0x1C, 0x06, 0x72, 0x55, 0xB4, 0x00, 0x00, 0x25, 0x66, 0x46, 0x6A, 0x54 },
+ { 0x00, 0x1C, 0x1D, 0x02, 0x49, 0x32, 0x00, 0x03, 0x91, 0x65, 0x66, 0x66, 0x53 },
+ { 0x00, 0x1C, 0x01, 0xB2, 0x4A, 0x78, 0x00, 0x09, 0x25, 0x66, 0x86, 0x6A, 0x9D },
+ { 0x00, 0x1C, 0x0D, 0x22, 0x4A, 0x50, 0x00, 0x09, 0x61, 0x69, 0x46, 0x65, 0x12 },
+ { 0x00, 0x1C, 0x1C, 0xE2, 0x49, 0x25, 0x00, 0x25, 0xA1, 0x6A, 0x56, 0x6A, 0x1C },
+ { 0x00, 0x1C, 0x0e, 0x42, 0x46, 0x00, 0x00, 0x65, 0xa1, 0x44, 0x06, 0x65, 0x02 },
+ { 0x00, 0x1C, 0x1B, 0x22, 0x4A, 0x49, 0x00, 0x38, 0xC1, 0x55, 0x66, 0x12, 0x0A },
+ { 0x00, 0x1C, 0x10, 0xB2, 0x4B, 0x72, 0x00, 0xDD, 0xC1, 0x59, 0x56, 0x69, 0x0B },
+ { 0x00, 0x1C, 0x1A, 0xA2, 0x4A, 0xC0, 0x00, 0xFF, 0x01, 0x5A, 0x06, 0x54, 0x11 },
+ { 0x00, 0x1C, 0x0A, 0x62, 0x49, 0x29, 0x00, 0x9B, 0x71, 0x5A, 0x96, 0x6A, 0x5C },
+ { 0x00, 0x1C, 0x1F, 0x12, 0x56, 0xE0, 0x00, 0x9B, 0x91, 0x59, 0x06, 0x56, 0x4A },
+ { 0x00, 0x1C, 0x11, 0x92, 0x52, 0x49, 0x80, 0x92, 0x01, 0x59, 0xA6, 0x54, 0x19 },
+ { 0x00, 0x1C, 0x09, 0x72, 0x5B, 0x98, 0x00, 0x49, 0x49, 0x59, 0x86, 0x65, 0x52 },
+};
+
+
+// For digital only!!! Edward Yun 05/17/2007
+XC4000_SCODE_TABLE XC4000_scode_table_4700000 = {
+ { 0x00, 0x1C, 0x1D, 0x02, 0x49, 0x32, 0x00, 0x03, 0x91, 0x65, 0x66, 0x66, 0x53 },
+ { 0x00, 0x1C, 0x01, 0xB2, 0x4A, 0x78, 0x00, 0x09, 0x25, 0x66, 0x86, 0x6A, 0x9D },
+ { 0x00, 0x1C, 0x0D, 0x22, 0x4A, 0x50, 0x00, 0x09, 0x61, 0x69, 0x46, 0x65, 0x12 },
+ { 0x00, 0x1C, 0x1C, 0xE2, 0x49, 0x25, 0x00, 0x25, 0xA1, 0x6A, 0x56, 0x6A, 0x1C },
+ { 0x00, 0x1C, 0x0E, 0xB2, 0x97, 0x00, 0x00, 0x13, 0x81, 0x54, 0x06, 0x5A, 0x03 },
+ { 0x00, 0x1C, 0x0D, 0x02, 0x9B, 0x78, 0x00, 0x0D, 0xA1, 0x56, 0x46, 0x56, 0x0A },
+ { 0x00, 0x1C, 0x0A, 0x22, 0xA4, 0x92, 0x00, 0x00, 0x01, 0x5A, 0x96, 0x59, 0x9B },
+ { 0x00, 0x1C, 0x0E, 0x22, 0xA6, 0xC0, 0x00, 0x02, 0x71, 0x65, 0x06, 0x55, 0x49 },
+ { 0x00, 0x1C, 0x1D, 0x02, 0x49, 0x32, 0x00, 0x03, 0x91, 0x65, 0x66, 0x66, 0x53 },
+ { 0x00, 0x1C, 0x1F, 0x12, 0x56, 0xE0, 0x00, 0x9B, 0x91, 0x59, 0x06, 0x56, 0x4A },
+ { 0x00, 0x1C, 0x11, 0x92, 0x52, 0x49, 0x80, 0x92, 0x01, 0x59, 0xA6, 0x54, 0x19 },
+ { 0x00, 0x1C, 0x09, 0x72, 0x5B, 0x98, 0x00, 0x49, 0x49, 0x59, 0x86, 0x65, 0x52 },
+ { 0x00, 0x1C, 0x0E, 0x42, 0x46, 0x00, 0x00, 0x65, 0xA1, 0x44, 0x06, 0x65, 0x02 },
+ { 0x00, 0x1C, 0x1A, 0x82, 0x5B, 0xD8, 0x00, 0x54, 0x91, 0x66, 0x46, 0x56, 0x93 },
+ { 0x00, 0x1C, 0x0B, 0x22, 0x52, 0x6E, 0x00, 0x4A, 0x61, 0x66, 0x66, 0x55, 0x19 },
+ { 0x00, 0x1C, 0x06, 0x72, 0x55, 0xB4, 0x00, 0x00, 0x25, 0x66, 0x46, 0x6A, 0x54 },
+};
+
+
+// For digital only!!! Edward Yun 05/17/2007
+XC4000_SCODE_TABLE XC4000_scode_table_6380000 = {
+ { 0x00, 0x1C, 0x1C, 0xF4, 0x86, 0xD8, 0x04, 0x93, 0x71, 0x45, 0x86, 0x65, 0x8B },
+ { 0x00, 0x1C, 0x0A, 0x94, 0x92, 0x54, 0x04, 0xB7, 0x01, 0x65, 0x86, 0x54, 0x11 },
+ { 0x00, 0x1C, 0x0E, 0x44, 0x92, 0x4D, 0x84, 0x92, 0x51, 0x69, 0x66, 0x5A, 0x9C },
+ { 0x00, 0x1C, 0x1F, 0xE4, 0xED, 0xB8, 0x06, 0xDC, 0x81, 0x59, 0x86, 0xA6, 0x14 },
+ { 0x00, 0x1C, 0x1B, 0xE4, 0xDB, 0x92, 0x06, 0xE8, 0xC1, 0x66, 0x96, 0x92, 0x1B },
+ { 0x00, 0x1C, 0x1E, 0x45, 0x2E, 0xD8, 0x07, 0x36, 0xC1, 0x66, 0x46, 0xA9, 0x14 },
+ { 0x00, 0x1C, 0x1D, 0x05, 0xF8, 0xD8, 0x07, 0xB6, 0xC1, 0x51, 0x86, 0xA5, 0x0B },
+ { 0x00, 0x1C, 0x1F, 0xF5, 0xB6, 0x18, 0x07, 0xB6, 0xC1, 0xA8, 0x86, 0x65, 0x22 },
+ { 0x00, 0x1C, 0x1C, 0xF4, 0x86, 0xD8, 0x04, 0x93, 0x71, 0x45, 0x86, 0x65, 0x8B },
+ { 0x00, 0x1C, 0x0B, 0x12, 0x46, 0x18, 0x04, 0x92, 0x6D, 0x84, 0x46, 0x95, 0x4A },
+ { 0x00, 0x1C, 0x0D, 0x02, 0x52, 0x49, 0x84, 0xDB, 0x81, 0xA5, 0x66, 0x99, 0x1B },
+ { 0x00, 0x1C, 0x0A, 0xB2, 0x53, 0x92, 0x05, 0x2E, 0x01, 0xAA, 0x66, 0x98, 0x2B },
+ { 0x00, 0x1C, 0x09, 0x62, 0x49, 0x2D, 0x85, 0xC6, 0x01, 0xA6, 0xA6, 0x88, 0x2B },
+ { 0x00, 0x1C, 0x1B, 0x22, 0x4A, 0x4C, 0x05, 0x2F, 0x01, 0xAA, 0x86, 0x68, 0x2B },
+ { 0x00, 0x1C, 0x0D, 0xD4, 0x92, 0x6C, 0x04, 0xDD, 0x01, 0x56, 0x86, 0x64, 0x12 },
+ { 0x00, 0x1C, 0x13, 0x54, 0x98, 0xD8, 0x04, 0xDE, 0x01, 0x52, 0x46, 0x54, 0x09 },
+};
+
+// For digital only!!! Edward Yun 4/24/2007
+XC4000_SCODE_TABLE XC4000_scode_table_7940000 = {
+ { 0x00, 0x1C, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x02, 0x01 },
+ { 0x00, 0x1C, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x02, 0x01 },
+ { 0x00, 0x1C, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x02, 0x01 },
+ { 0x00, 0x1C, 0x13, 0x9B, 0x86, 0xE0, 0x01, 0xF8, 0xC2, 0x49, 0x04, 0x92, 0x12 },
+ { 0x00, 0x1C, 0x0A, 0x8B, 0x46, 0xD8, 0x01, 0xB6, 0xC2, 0x89, 0x84, 0x99, 0x22 },
+ { 0x00, 0x1C, 0x1F, 0xB9, 0x26, 0xE0, 0x01, 0xB6, 0xC2, 0x6A, 0x04, 0xAA, 0x24 },
+ { 0x00, 0x1C, 0x0A, 0xF9, 0xBF, 0x18, 0x0E, 0x37, 0x02, 0xA4, 0x86, 0x28, 0x23 },
+ { 0x00, 0x1C, 0x09, 0x49, 0x3F, 0xE0, 0x0D, 0xBF, 0x02, 0xA5, 0x06, 0x68, 0x1B },
+ { 0x00, 0x1C, 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, 0x04, 0x02, 0x01 },
+ { 0x00, 0x1C, 0x1B, 0x26, 0xFF, 0x18, 0x0D, 0xC6, 0xC1, 0x98, 0x86, 0x89, 0x1B },
+ { 0x00, 0x1C, 0x11, 0x39, 0x25, 0xC0, 0x0D, 0xC0, 0x01, 0x55, 0x06, 0x40, 0x01 },
+ { 0x00, 0x1C, 0x0D, 0x99, 0x46, 0x18, 0x0F, 0xC6, 0xC1, 0x44, 0x86, 0x89, 0x0B },
+ { 0x00, 0x1C, 0x0D, 0x09, 0x86, 0xE0, 0x0E, 0x37, 0x01, 0x85, 0x06, 0x18, 0x0A },
+ { 0x00, 0x1C, 0x0E, 0x49, 0x06, 0x18, 0x01, 0xB8, 0xC1, 0x84, 0x84, 0xA2, 0x13 },
+ { 0x00, 0x1C, 0x1D, 0x9B, 0x87, 0x18, 0x01, 0xF8, 0xC1, 0x44, 0x44, 0xA2, 0x03 },
+ { 0x00, 0x1C, 0x14, 0x3B, 0x40, 0x00, 0x00, 0x37, 0x01, 0x80, 0x04, 0x28, 0x0A },
+};
+
+#endif
+
diff --git a/api/xc4000_standards.h b/api/xc4000_standards.h
new file mode 100644
index 0000000..885989f
--- /dev/null
+++ b/api/xc4000_standards.h
@@ -0,0 +1,127 @@
+//
+// Automatically generated C header file for
+// control of the XC4000 via the i2c interface.
+//
+// Filename : xc4000_standards.h
+// Generated : 9/25/2007 4:58:46 PM
+// Firmware version : 1.2
+//
+// (c) 2007, Xceive Corporation
+//
+
+#ifndef __XC4000_STANDARDS_H
+#define __XC4000_STANDARDS_H
+
+
+// ************************************************************
+// *** Standard with Video/Audio Setting
+// ************************************************************
+
+#define MAX_TV_STANDARD 47
+
+XC_TV_STANDARD XC4000_Standard[MAX_TV_STANDARD] = {
+ {"M/N-NTSC/PAL-BTSC-IF", NULL, 0x80A0, 0x0000, 4.5 },
+ {"M/N-NTSC/PAL-BTSC-IF-NOGD", NULL, 0x8020, 0x0000, 4.5 },
+ {"M/N-NTSC/PAL-A2-IF", NULL, 0x80A0, 0x0000, 4.6 },
+ {"M/N-NTSC/PAL-A2-IF-NOGD", NULL, 0x8020, 0x0000, 4.6 },
+ {"M/N-NTSC/PAL-MTS", NULL, 0x80A0, 0x0078, 4.5 },
+ {"M/N-NTSC/PAL-A2-MONO", NULL, 0x80A0, 0x0078, 4.5 },
+ {"M/N-NTSC/PAL-A2-MONO-NOGD", NULL, 0x8020, 0x0078, 4.5 },
+ {"L-SECAM-NICAM", NULL, 0x0009, 0x8080, 6.20 },
+ {"L-SECAM-AM", NULL, 0x0009, 0xA138, 6.50 },
+ {"L'-SECAM-NICAM", NULL, 0x4009, 0x8080, 6.20 },
+ {"L'-SECAM-AM", NULL, 0x4009, 0xA138, 6.50 },
+ {"FM Radio-INPUT1", NULL, 0x9000, 0x0008, 10.70 },
+ {"FM Radio-INPUT2", NULL, 0x9800, 0x0008, 10.70 },
+ {"DTV6-ATSC-LG-6_0Mhz", NULL, 0x8002, 0x00C0, 6.0 },
+ {"DTV6-ATSC-ATI-6_38Mhz", NULL, 0x8002, 0x00C0, 6.38 },
+ {"DTV6-ATSC-OREN-5_38Mhz", NULL, 0x8002, 0x00C0, 5.58 },
+ {"DTV6-ATSC-OREN-3_6Mhz", NULL, 0x8002, 0x00C0, 3.6 },
+ {"DTV6-ATSC-TOYOTA-3_88Mhz", NULL, 0x8002, 0x00C0, 3.88 },
+ {"DTV6-ATSC-TOYOTA-7_94Mhz", NULL, 0x8002, 0x00C0, 7.94 },
+ {"DTV6-QAM-6_0Mhz", NULL, 0x8002, 0x00C0, 6.0 },
+ {"DTV8-DIBCOM-5_2Mhz", NULL, 0x800B, 0x00C0, 5.2 },
+ {"DTV78-DIBCOM-5_2Mhz", NULL, 0x801B, 0x00C0, 5.2 },
+ {"DTV7-DIBCOM-5_2Mhz", NULL, 0x8007, 0x00C0, 5.2 },
+ {"DTV6-ZARLINK-QAM-4_56Mhz", NULL, 0x8002, 0x00C0, 4.56 },
+ {"DTV8-ZARLINK-4_56Mhz", NULL, 0x800B, 0x00C0, 4.56 },
+ {"DTV78-ZARLINK-4_56Mhz", NULL, 0x801B, 0x00C0, 4.56 },
+ {"DTV7-ZARLINK-4_56Mhz", NULL, 0x8007, 0x00C0, 4.56 },
+ {"DTV8-China-TEMPORARY", NULL, 0x800B, 0x00C0, 5.4 },
+ {"B/G-PAL-NICAM#A", NULL, 0x8159, 0x0004, 5.74 },
+ {"B/G-PAL-NICAM#A-MONO", NULL, 0x8159, 0x0078, 5.5 },
+ {"B/G-PAL-NICAM#B", NULL, 0x8159, 0x0004, 5.74 },
+ {"B/G-PAL-NICAM#B-MONO", NULL, 0x8159, 0x0078, 5.5 },
+ {"B/G-PAL-A2#B", NULL, 0x81D9, 0x0000, 5.64 },
+ {"B/G-PAL-A2#B-MONO", NULL, 0x81D9, 0x0078, 5.5 },
+ {"B/G-PAL-A2#A", NULL, 0x8159, 0x0000, 5.64 },
+ {"B/G-PAL-A2#A-MONO", NULL, 0x8159, 0x0078, 5.5 },
+ {"I-PAL-NICAM", NULL, 0x8049, 0x0080, 6.24 },
+ {"I-PAL-NICAM-MONO", NULL, 0x8049, 0x0078, 6.00 },
+ {"D/K-PAL-NICAM", NULL, 0x8049, 0x0080, 6.20 },
+ {"D/K-PAL-NICAM-MONO", NULL, 0x8049, 0x0078, 6.5 },
+ {"D/K-SECAM-A2 DK1", NULL, 0x8049, 0x0000, 6.34 },
+ {"D/K-SECAM-A2 L/DK3", NULL, 0x8049, 0x0000, 6.00 },
+ {"D/K-PAL-A2", NULL, 0x8049, 0x0000, 6.38 },
+ {"D/K-SECAM-A2 DK1-MONO", NULL, 0x8049, 0x0078, 6.5 },
+ {"D/K-SECAM-A2 L/DK3-MONO", NULL, 0x8049, 0x0078, 6.5 },
+ {"D/K-PAL-FM-ONLY", NULL, 0x8049, 0x0008, 6.5 },
+ {"D/K-PAL-MONO", NULL, 0x8049, 0x0078, 6.5 },
+};
+
+/************************************************/
+/* The TV_standard initial routine */
+/************************************************/
+
+void XC4000_Loading_TVStandards(void)
+{
+ XC4000_Standard[ 0 ].ConfFile = XC4000_MN_NTSC_PAL_BTSC_SEQUENCE;
+ XC4000_Standard[ 1 ].ConfFile = XC4000_MN_NTSC_PAL_BTSC_NOGD_SEQUENCE;
+ XC4000_Standard[ 2 ].ConfFile = XC4000_MN_NTSC_PAL_A2_IF_SEQUENCE;
+ XC4000_Standard[ 3 ].ConfFile = XC4000_MN_NTSC_PAL_A2_IF_NOGD_SEQUENCE;
+ XC4000_Standard[ 4 ].ConfFile = XC4000_MN_NTSC_PAL_MTS_SEQUENCE;
+ XC4000_Standard[ 5 ].ConfFile = XC4000_MN_NTSC_PAL_A2_MONO_SEQUENCE;
+ XC4000_Standard[ 6 ].ConfFile = XC4000_MN_NTSC_PAL_A2_MONO_NOGD_SEQUENCE;
+ XC4000_Standard[ 7 ].ConfFile = XC4000_L_SECAM_NICAM_SEQUENCE;
+ XC4000_Standard[ 8 ].ConfFile = XC4000_L_SECAM_AM_SEQUENCE;
+ XC4000_Standard[ 9 ].ConfFile = XC4000_IL_SECAM_NICAM_SEQUENCE;
+ XC4000_Standard[ 10 ].ConfFile = XC4000_IL_SECAM_AM_SEQUENCE;
+ XC4000_Standard[ 11 ].ConfFile = XC4000_FM_INPUT1_SEQUENCE;
+ XC4000_Standard[ 12 ].ConfFile = XC4000_FM_INPUT2_SEQUENCE;
+ XC4000_Standard[ 13 ].ConfFile = XC4000_ATSC_SEQUENCE;
+ XC4000_Standard[ 14 ].ConfFile = XC4000_ATSC_SEQUENCE;
+ XC4000_Standard[ 15 ].ConfFile = XC4000_ATSC_SEQUENCE;
+ XC4000_Standard[ 16 ].ConfFile = XC4000_ATSC_SEQUENCE;
+ XC4000_Standard[ 17 ].ConfFile = XC4000_ATSC_SEQUENCE;
+ XC4000_Standard[ 18 ].ConfFile = XC4000_ATSC_SEQUENCE;
+ XC4000_Standard[ 19 ].ConfFile = XC4000_ATSC_SEQUENCE;
+ XC4000_Standard[ 20 ].ConfFile = XC4000_DVBT_8_SEQUENCE;
+ XC4000_Standard[ 21 ].ConfFile = XC4000_DVBT_78_SEQUENCE;
+ XC4000_Standard[ 22 ].ConfFile = XC4000_DVBT_7_SEQUENCE;
+ XC4000_Standard[ 23 ].ConfFile = XC4000_ATSC_SEQUENCE;
+ XC4000_Standard[ 24 ].ConfFile = XC4000_DVBT_8_SEQUENCE;
+ XC4000_Standard[ 25 ].ConfFile = XC4000_DVBT_78_SEQUENCE;
+ XC4000_Standard[ 26 ].ConfFile = XC4000_DVBT_7_SEQUENCE;
+ XC4000_Standard[ 27 ].ConfFile = XC4000_DVBT_8_SEQUENCE;
+ XC4000_Standard[ 28 ].ConfFile = XC4000_B_G_PAL_NICAM_A_SEQUENCE;
+ XC4000_Standard[ 29 ].ConfFile = XC4000_B_G_PAL_NICAM_A_MONO_SEQUENCE;
+ XC4000_Standard[ 30 ].ConfFile = XC4000_B_G_PAL_NICAM_B_SEQUENCE;
+ XC4000_Standard[ 31 ].ConfFile = XC4000_B_G_PAL_NICAM_B_MONO_SEQUENCE;
+ XC4000_Standard[ 32 ].ConfFile = XC4000_B_G_PAL_A2_B_SEQUENCE;
+ XC4000_Standard[ 33 ].ConfFile = XC4000_B_G_PAL_A2_B_MONO_SEQUENCE;
+ XC4000_Standard[ 34 ].ConfFile = XC4000_B_G_PAL_A2_A_SEQUENCE;
+ XC4000_Standard[ 35 ].ConfFile = XC4000_B_G_PAL_A2_A_MONO_SEQUENCE;
+ XC4000_Standard[ 36 ].ConfFile = XC4000_I_PAL_NICAM_SEQUENCE;
+ XC4000_Standard[ 37 ].ConfFile = XC4000_I_PAL_NICAM_MONO_SEQUENCE;
+ XC4000_Standard[ 38 ].ConfFile = XC4000_D_K_PAL_NICAM_SEQUENCE;
+ XC4000_Standard[ 39 ].ConfFile = XC4000_D_K_PAL_NICAM_MONO_SEQUENCE;
+ XC4000_Standard[ 40 ].ConfFile = XC4000_D_K_SECAM_A2_SEQUENCE;
+ XC4000_Standard[ 41 ].ConfFile = XC4000_D_K_SECAM_A2_SEQUENCE;
+ XC4000_Standard[ 42 ].ConfFile = XC4000_D_K_SECAM_A2_SEQUENCE;
+ XC4000_Standard[ 43 ].ConfFile = XC4000_D_K_SECAM_A2_MONO_SEQUENCE;
+ XC4000_Standard[ 44 ].ConfFile = XC4000_D_K_SECAM_A2_MONO_SEQUENCE;
+ XC4000_Standard[ 45 ].ConfFile = XC4000_D_K_PAL_FM_ONLY_SEQUENCE;
+ XC4000_Standard[ 46 ].ConfFile = XC4000_D_K_SECAM_A2_MONO_SEQUENCE;
+} ;
+#endif
+