From 7b077029bcbb68cad004af468f2f16596148c6c3 Mon Sep 17 00:00:00 2001 From: MX682X <58419867+MX682X@users.noreply.github.com> Date: Mon, 14 Oct 2024 21:28:58 +0200 Subject: [PATCH 1/6] add support for dW, JTAG, ISP, and PDI (untested) dW has some hiccups on flash writes JTAG must erase chip before overwriting EEPROM --- src/CMakeLists.txt | 7 +- src/Makefile.am | 7 +- src/avrdude.conf.in | 120 +- src/pgm_type.c | 5 + src/pickit5.c | 916 +++- src/pickit5_lut.h | 29 +- src/pickit5_lut_dw.c | 4595 +++++++++++++++++ src/pickit5_lut_isp.c | 3550 +++++++++++++ src/pickit5_lut_jtag.c | 1994 +++++++ src/pickit5_lut_pdi.c | 514 ++ src/pickit5_lut_tpi.c | 186 + ...{pickit5_updi_lut.c => pickit5_lut_updi.c} | 802 +-- tools/scripts_decoder.py | 844 ++- 13 files changed, 12455 insertions(+), 1114 deletions(-) create mode 100644 src/pickit5_lut_dw.c create mode 100644 src/pickit5_lut_isp.c create mode 100644 src/pickit5_lut_jtag.c create mode 100644 src/pickit5_lut_pdi.c create mode 100644 src/pickit5_lut_tpi.c rename src/{pickit5_updi_lut.c => pickit5_lut_updi.c} (65%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 72028dbe1..1248dacdf 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -229,7 +229,12 @@ set(SOURCES pgm_type.c pickit2.c pickit2.h - pickit5_updi_lut.c + pickit5_lut_dw.c + pickit5_lut_isp.c + pickit5_lut_jtag.c + pickit5_lut_pdi.c + pickit5_lut_tpi.c + pickit5_lut_updi.c pickit5_lut.h pickit5.c pickit5.h diff --git a/src/Makefile.am b/src/Makefile.am index 9d0833f23..615363a6c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -156,7 +156,12 @@ libavrdude_la_SOURCES = \ pgm_type.c \ pickit2.c \ pickit2.h \ - pickit5_updi_lut.c \ + pickit5_lut_dw.c \ + pickit5_lut_isp.c \ + pickit5_lut_jtag.c \ + pickit5_lut_pdi.c \ + pickit5_lut_tpi.c \ + pickit5_lut_updi.c \ pickit5_lut.h \ pickit5.c \ pickit5.h \ diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in index b9688c35e..1f7f180f1 100644 --- a/src/avrdude.conf.in +++ b/src/avrdude.conf.in @@ -3058,30 +3058,60 @@ programmer # pickit4_tpi # Microchip PICkit 5. For details, see # https://www.microchip.com/en-us/development-tool/PG164150 # -# Currently -c pickit5 only supports UPDI programming +# The PICkit 5 supports the following programming modes +# using different programmer names: # -# PIN UPDI -# > 1 !RST(*) -# 2 VCC -# 3 GND -# 4 UPDI(*) -# 5 -# 6 -# 7 -# 8 +# Interface: Programmer name: +# JTAG pickit5, pickit4_jtag +# PDI pickit5_pdi +# UPDI pickit5_updi +# debugWIRE pickit5_dw (can auto-switch to ISP to write fuses) +# ISP pickit5_isp +# TPI pickit5_tpi +# +# PIN JTAG PDI UPDI ISP/dW TPI UART(°) +# > 1 RST(*) +# 2 VCC VCC VCC VCC VCC VCC +# 3 GND GND GND GND GND GND +# 4 TDO DATA UPDI(*) SDI DATA +# 5 TCK SCK SCK +# 6 RST SCK RST/dW RST +# 7 TDI SDO TX (target) +# 8 TMS RX (target) +# +# Note: pickit5_dw does not support flash erase and must switch +# to ISP, thus requires all 6 Pins when modifing the flash # # (*): The PICkit5 can generate a High-Voltage (12V) Pulse on this pins -# to restore the UPDI Pin functionality, if it was changed through fuses. -# AVRDUDE automatically selects the correct pin, if the HV pulse is -# enabled through the '-x hvupdi' flag. +# to restore the UPDI Pin functionality, if it was changed through fuses. +# AVRDUDE automatically selects the correct pin, if the HV pulse is +# enabled through the '-x hvupdi' flag. +# (°): The PICkit5 can also be used as a USB to UART +# interface for simple serial debugging. #------------------------------------------------------------ -# pickit5 /pickit5_updi +# pickit5 /pickit5_jtag #------------------------------------------------------------ +programmer # pickit5_jtag + id = "pickit5_jtag"; + desc = "MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in JTAG Mode"; + type = "pickit5_jtag"; + prog_modes = PM_JTAG | PM_XMEGAJTAG; + extra_features = HAS_VTARG_READ; + connection_type = usb; + baudrate = 200000; # JTAG default clock + usbvid = 0x04d8; + usbpid = 0x9036, 0x9012, 0x9018; # PK5, PK4 (pic mode), snap (pic mode) +; + + +#------------------------------------------------------------ +# pickit5_updi +#------------------------------------------------------------ programmer # pickit5_updi id = "pickit5_updi"; - desc = "MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC)"; + desc = "MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in UPDI Mode"; type = "pickit5_updi"; prog_modes = PM_UPDI; extra_features = HAS_VTARG_READ; @@ -3092,6 +3122,66 @@ programmer # pickit5_updi hvupdi_support = 0, 1, 2; ; +#------------------------------------------------------------ +# pickit5_isp +#------------------------------------------------------------ +programmer # pickit5_isp + id = "pickit5_isp"; + desc = "MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in ISP Mode"; + type = "pickit5_isp"; + prog_modes = PM_ISP; + extra_features = HAS_VTARG_READ; + connection_type = usb; + baudrate = 125000; # ISP default clock + usbvid = 0x04d8; + usbpid = 0x9036, 0x9012, 0x9018; # PK5, PK4 (pic mode), snap (pic mode) +; + +#------------------------------------------------------------ +# pickit5_dw +#------------------------------------------------------------ +programmer # pickit5_dw + id = "pickit5_dw"; + desc = "MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in dW Mode"; + type = "pickit5_dw"; + prog_modes = PM_debugWIRE; + extra_features = HAS_VTARG_READ; + connection_type = usb; + baudrate = 200000; # dW default clock + usbvid = 0x04d8; + usbpid = 0x9036, 0x9012, 0x9018; # PK5, PK4 (pic mode), snap (pic mode) +; + +#------------------------------------------------------------ +# pickit5_tpi +#------------------------------------------------------------ +programmer # pickit5_tpi + id = "pickit5_tpi"; + desc = "MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in TPI Mode"; + type = "pickit5_tpi"; + prog_modes = PM_TPI; + extra_features = HAS_VTARG_READ; + connection_type = usb; + baudrate = 125000; # TPI default clock + usbvid = 0x04d8; + usbpid = 0x9036, 0x9012, 0x9018; # PK5, PK4 (pic mode), snap (pic mode) +; + +#------------------------------------------------------------ +# pickit5_pdi +#------------------------------------------------------------ +programmer # pickit5_tpi + id = "pickit5_pdi"; + desc = "MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in PDI Mode"; + type = "pickit5_pdi"; + prog_modes = PM_PDI; + extra_features = HAS_VTARG_READ; + connection_type = usb; + baudrate = 125000; # PDI default clock + usbvid = 0x04d8; + usbpid = 0x9036, 0x9012, 0x9018; # PK5, PK4 (pic mode), snap (pic mode) +; + #------------------------------------------------------------ # snap /snap_jtag #------------------------------------------------------------ diff --git a/src/pgm_type.c b/src/pgm_type.c index 59f97de80..5b555d31a 100644 --- a/src/pgm_type.c +++ b/src/pgm_type.c @@ -97,6 +97,11 @@ const PROGRAMMER_TYPE programmers_types[] = { // Name(s) the programmers call {"micronucleus", micronucleus_initpgm, micronucleus_desc}, // "micronucleus" or "Micronucleus V2.0" {"par", par_initpgm, par_desc}, // "PPI" {"pickit2", pickit2_initpgm, pickit2_desc}, // "pickit2" + {"pickit5_dw", pickit5_initpgm, pickit5_desc}, // "pickit5" + {"pickit5_isp", pickit5_initpgm, pickit5_desc}, // "pickit5" + {"pickit5_jtag", pickit5_initpgm, pickit5_desc}, // "pickit5" + {"pickit5_pdi", pickit5_initpgm, pickit5_desc}, // "pickit5" + {"pickit5_tpi", pickit5_initpgm, pickit5_desc}, // "pickit5" {"pickit5_updi", pickit5_initpgm, pickit5_desc}, // "pickit5" {"serbb", serbb_initpgm, serbb_desc}, // "SERBB" {"serialupdi", serialupdi_initpgm, serialupdi_desc}, // "serialupdi" diff --git a/src/pickit5.c b/src/pickit5.c index 13bdc66bb..0b2a144d9 100644 --- a/src/pickit5.c +++ b/src/pickit5.c @@ -51,7 +51,7 @@ #define USB_PK5_DATA_READ_EP 0x83 #define USB_PK5_DATA_WRITE_EP 0x04 -#define USB_PK5_MAX_XFER 512 +#define USB_PK5_MAX_XFER 2048 #define CHECK_ERROR 0x01 #define BIST_TEST 0x02 @@ -70,6 +70,11 @@ #define POWER_SOURCE_INT 0x01 #define POWER_SOURCE_NONE 0x02 +#define ERROR_USB_SEND -10 // Start at 10 to avoid collisions +#define ERROR_USB_RECV -11 +#define ERROR_SCRIPT_PARAM_SIZE -12 +#define ERROR_BAD_RESPONSE -13 + // Private data for this programmer struct pdata { unsigned char pgm_type; // Used to skip unsupported functions @@ -80,17 +85,19 @@ struct pdata { double measured_vcc; // This and below for print_params() unsigned int measured_current; - unsigned int actual_updi_clk; + unsigned int actual_pgm_clk; unsigned char nvm_version; // Used to determine the offset for SIGROW/DevID + unsigned char dW_switched_isp; + unsigned char devID[4]; // Last byte has the Chip Revision of the target unsigned char app_version[3]; // Buffer for display() sent by get_fw() unsigned char fw_info[16]; // Buffer for display() sent by get_fw() unsigned char sernum_string[20]; // Buffer for display() sent by get_fw() char sib_string[32]; - unsigned char txBuf[512]; - unsigned char rxBuf[512]; + unsigned char txBuf[2048]; // Buffer for transfers + unsigned char rxBuf[2048]; SCRIPT scripts; }; @@ -122,7 +129,6 @@ static int pickit5_write_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVR static int pickit5_read_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value); static int pickit5_read_dev_id(const PROGRAMMER *pgm, const AVRPART *p); -static int pickit5_read_sib(const PROGRAMMER *pgm, const AVRPART *p, char *sib); static int pickit5_read_chip_rev(const PROGRAMMER *pgm, const AVRPART *p, unsigned char *chip_rev); static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, int len, unsigned char *value); @@ -130,10 +136,35 @@ static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, int len, unsigned char *value); // UPDI-specific functions +static int pickit5_updi_init(const PROGRAMMER *pgm, const AVRPART *p, double v_target); static int pickit5_updi_write_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char value); static int pickit5_updi_read_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value); +static int pickit5_updi_read_sib(const PROGRAMMER *pgm, const AVRPART *p, char *sib); +static int pickit5_updi_write_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigned char value); +static int pickit5_updi_read_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigned char *value); + +// ISP-specific +static int pickit5_isp_write_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned char value); +static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned char *value); + +// debugWire-specific +static int pickit5_dw_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char value); +static int pickit5_dw_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char *value); +static void pickit5_dw_switch_to_isp(const PROGRAMMER *pgm, const AVRPART *p); +static void pickit5_isp_switch_to_dw(const PROGRAMMER *pgm, const AVRPART *p); + +// TPI-specific +static int pickit5_tpi_read(const PROGRAMMER *pgm, const AVRPART *p, + const AVRMEM *mem, unsigned long addr, int len, unsigned char *value); +static int pickit5_tpi_write(const PROGRAMMER *pgm, const AVRPART *p, + const AVRMEM *mem, unsigned long addr, int len, unsigned char *value); + +// JTAG-Specific +static int pickit5_jtag_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char value); +static int pickit5_jtag_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char *value); + // Extra functions static int pickit5_get_fw_info(const PROGRAMMER *pgm); @@ -141,8 +172,7 @@ static int pickit5_set_vtarget(const PROGRAMMER *pgm, double v); static int pickit5_get_vtarget(const PROGRAMMER *pgm, double *v); static int pickit5_set_ptg_mode(const PROGRAMMER *pgm); static int pickit5_set_sck_period(const PROGRAMMER *pgm, double sckperiod); -static int pickit5_write_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigned char value); -static int pickit5_read_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigned char *value); + // Internal functions inline static void pickit5_uint32_to_array(unsigned char *buf, uint32_t num); @@ -156,8 +186,15 @@ static int pickit5_get_status(const PROGRAMMER *pgm, unsigned char status); static int pickit5_send_script(const PROGRAMMER *pgm, unsigned int script_type, const unsigned char *script, unsigned int script_len, const unsigned char *param, unsigned int param_len, unsigned int payload_len); -static int pickit5_send_script_done(const PROGRAMMER *pgm, char *func); -static int pickit5_read_response(const PROGRAMMER *pgm, char *fn_name); +static int pickit5_send_script_done(const PROGRAMMER *pgm); +static int pickit5_read_response(const PROGRAMMER *pgm); +static int pickit5_send_script_cmd(const PROGRAMMER *pgm, const unsigned char *scr, unsigned int scr_len, + const unsigned char *param, unsigned int param_len); +static int pickit5_upload_data(const PROGRAMMER *pgm, const unsigned char *scr, unsigned int scr_len, + const unsigned char *param, unsigned int param_len, unsigned char *recv_buf, unsigned int recv_len); +static int pickit5_download_data(const PROGRAMMER *pgm, const unsigned char *scr, unsigned int scr_len, + const unsigned char *param, unsigned int param_len, unsigned char *send_buf, unsigned int send_len); + // Extra-USB related functions, because we need more then 2 endpoints static int usbdev_data_recv(const union filedescriptor *fd, unsigned char *buf, size_t nbytes); @@ -262,16 +299,20 @@ static int pickit5_send_script(const PROGRAMMER *pgm, unsigned int script_type, const unsigned char *script, unsigned int script_len, const unsigned char *param, unsigned int param_len, unsigned int payload_len) { - if(script == NULL) - return -1; + if(script == NULL) { + pmsg_error("Invalid script pointer passed!"); + return -3; + } unsigned int header_len = 16 + 8; // Header info + script header unsigned int preamble_len = header_len + param_len; unsigned int message_len = preamble_len + script_len; + pmsg_debug("%s(scr_len: %u, param_len: %u, payload_len: %u)\n", __func__, script_len, param_len, payload_len); - if(message_len > 1023) // Required memory will exceed buffer size, abort - return -1; // 1 kB should be enough for everything - + if(message_len >= 2048){ // Required memory will exceed buffer size, abort + pmsg_error("Requested message size (%u) too large!", message_len); + return ERROR_SCRIPT_PARAM_SIZE; // 2 kB should be enough for everything + } unsigned char *buf = my.txBuf; pickit5_create_payload_header(&buf[0], script_type, message_len, payload_len); @@ -282,35 +323,40 @@ static int pickit5_send_script(const PROGRAMMER *pgm, unsigned int script_type, memcpy(&buf[preamble_len], script, script_len); - return serial_send(&pgm->fd, buf, message_len); + int ret_val = serial_send(&pgm->fd, buf, message_len); + if (ret_val < 0) { + pmsg_error("Sending script failed"); + } + return ret_val; } -static int pickit5_read_response(const PROGRAMMER *pgm, char *fn_name) { +static int pickit5_read_response(const PROGRAMMER *pgm) { unsigned char *buf = my.rxBuf; if(serial_recv(&pgm->fd, buf, 512) < 0) { pmsg_error("reading from PICkit failed"); - return -1; + return ERROR_USB_RECV; } unsigned int status = pickit5_array_to_uint32(&buf[0]); if(status != 0x0D) { - pmsg_error("unexpected response in function %s", fn_name); - return -1; + pmsg_error("unexpected response"); + return ERROR_BAD_RESPONSE; } return 0; } -static int pickit5_send_script_done(const PROGRAMMER *pgm, char *func) { +static int pickit5_send_script_done(const PROGRAMMER *pgm) { unsigned char script_done[16]; unsigned int script_done_type = 0x0103; pickit5_create_payload_header(script_done, script_done_type, 16, 0); - if(serial_send(&pgm->fd, script_done, 16) >= 0) - return pickit5_read_response(pgm, func); - pmsg_error("failed sending script done message"); - return -1; + if(serial_send(&pgm->fd, script_done, 16) < 0) { + pmsg_error("failed sending script done message"); + return ERROR_USB_SEND; + } + return pickit5_read_response(pgm); } static int pickit5_open(PROGRAMMER *pgm, const char *port) { @@ -450,6 +496,12 @@ static void pickit5_enable(PROGRAMMER *pgm, const AVRPART *p) { mem->page_size = 32; mem->readsize = 32; } + if(is_debugwire(pgm)) { + if((mem = avr_locate_flash(p))) { + mem->page_size = 1024; // The Flash Write function needs 1600 bytes + mem->readsize = 1024; // this reduces overhead and speeds things up + } + } } static void pickit5_display(const PROGRAMMER *pgm, const char *p) { @@ -468,11 +520,76 @@ static void pickit5_display(const PROGRAMMER *pgm, const char *p) { static void pickit5_print_parms(const PROGRAMMER *pgm, FILE *fp) { pickit5_get_vtarget(pgm, NULL); - fmsg_out(fp, "UPDI clock : %u kHz\n", my.actual_updi_clk / 1000); - fmsg_out(fp, "Target Vcc : %1.2f V\n", my.measured_vcc); + fmsg_out(fp, "Target programming clk: %u kHz\n", my.actual_pgm_clk / 1000); + fmsg_out(fp, "Target vcc : %1.2f V\n", my.measured_vcc); fmsg_out(fp, "Target current : %3u mA\n", my.measured_current); } +static int pickit5_updi_init(const PROGRAMMER *pgm, const AVRPART *p, double v_target) { + // Get SIB so we can get the NVM Version + if(pickit5_program_enable(pgm, p) < 0) + return -1; + + if(pickit5_updi_read_sib(pgm, p, my.sib_string) < 0) { + pmsg_error("failed to obtain System Info Block\n"); + return -1; + } + + + if(pickit5_read_dev_id(pgm, p) < 0) { + pmsg_error("failed to obtain device ID\n"); + return -1; + } + + double bitclock = pgm->bitclock; + unsigned int baud = pgm->baudrate; + + if(baud == 200000) { // If baud unchanged + if(bitclock > 0.0) { + baud = (unsigned int) (1.0 / pgm->bitclock); // Bitclock in us + } + } else { + if(bitclock > 0.0) { + pmsg_error("both -b baudrate and -B bitclock given; please use only one, aborting\n"); + return -1; + } + } + + if(baud < 300) { // Better be safe than sorry + pmsg_warning("UPDI needs a higher clock for operation, increasing UPDI to 300 Hz\n"); + baud = 300; + } + if(baud > 225000) { + if(v_target < 2.9) { + pmsg_warning("UPDI needs a voltage of more than 2.9 V for a faster baudrate, limiting UPDI to 225 kHz\n"); + baud = 225000; + } else { + if(baud > 900000) { + pmsg_warning("requested clock %u Hz too high, limiting UPDI to 900 kHz\n", baud); + baud = 900000; + } + pickit5_set_sck_period(pgm, 1.0 / 100000); // Start with 200 kHz + pickit5_updi_write_cs_reg(pgm, UPDI_ASI_CTRLA, 0x01); // Change UPDI clock to 16 MHz + unsigned char ret_val = 0; + + pickit5_updi_read_cs_reg(pgm, UPDI_ASI_CTRLA, &ret_val); + if(ret_val != 0x01) { + pmsg_warning("failed to change UPDI clock, falling back to 225 kHz\n"); + baud = 225000; + } + } + } + if(pickit5_set_sck_period(pgm, 1.0 / baud) >= 0) { + pmsg_notice("UPDI speed set to %i kHz\n", baud / 1000); + my.actual_pgm_clk = baud; + } else { + pmsg_warning("failed to set UPDI speed, continuing\n"); + my.actual_pgm_clk = 100000; // Default clock? + } + return 1; +} + + static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { pmsg_debug("%s()\n", __func__); if(!pgm->cookie) @@ -485,11 +602,24 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { int rc = -1; - if(pgm->prog_modes == PM_UPDI) + if(both_debugwire(pgm, p)) { + rc = get_pickit_dw_script(&(my.scripts), p->desc); + } else if(both_isp(pgm, p)) { + rc = get_pickit_isp_script(&(my.scripts), p->desc); + } else if(both_jtag(pgm, p) || both_xmegajtag(pgm, p)) { + rc = get_pickit_jtag_script(&(my.scripts), p->desc); + } else if(both_updi(pgm, p)) { rc = get_pickit_updi_script(&(my.scripts), p->desc); + } else if(both_tpi(pgm, p)) { + rc = get_pickit_tpi_script(&(my.scripts), p->desc); + } else if(both_pdi(pgm, p)) { + rc = get_pickit_pdi_script(&(my.scripts), p->desc); + } - if(rc == -1) + if(rc == -1) { + pmsg_error("no matching prog_mode found, aborting\n"); return -1; + } if(rc == -2) { pmsg_error("failed to match scripts to %s, aborting\n", p->desc); return -1; @@ -520,6 +650,12 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { pmsg_warning("no external voltage detected but continuing anyway\n"); } else if(my.power_source == POWER_SOURCE_INT) { pmsg_notice("no extenal Voltage detected; trying to supply from PICkit\n"); + if(both_xmegajtag(pgm, p) || both_pdi(pgm, p)) { + if(my.target_voltage > 3.6) { + pmsg_error("xmega part selected but requested voltage is over 3.6V, aborting."); + return -1; + } + } if(pickit5_set_vtarget(pgm, my.target_voltage) < 0) return -1; // Set requested voltage @@ -527,7 +663,9 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { if(pickit5_get_vtarget(pgm, &v_target) < 0) return -1; // Verify voltage - if(v_target < my.target_voltage - 0.25 // Voltage supply is not accurate: allow some room + // Make sure the voltage is in our requested range. Due to voltage drop on + // the LDO and on USB itself, the lower voltage has a wider allowed range + if(v_target < my.target_voltage - 0.5 || v_target > my.target_voltage + 0.15) { pmsg_error("target voltage out of range, aborting\n"); return -1; @@ -542,67 +680,38 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { } my.pk_op_mode = PK_OP_READY; + my.dW_switched_isp = 0; - // Target is powered, set the UPDI baudrate; adjust UPDICLKSEL if possible and neccessary - if(pickit5_program_enable(pgm, p) < 0) - return -1; - - // Get SIB so we can get the NVM Version - if(pickit5_read_sib(pgm, p, my.sib_string) < 0) { - pmsg_error("failed to obtain System Info Block\n"); - return -1; - } + if(is_updi(pgm) && (pickit5_updi_init(pgm, p, v_target) < 0)) { + return -1; // UPDI got it's own init as it is well enough documented to select the + } else { // CLKDIV based on the voltage and requested baud + double bitclock = pgm->bitclock; + unsigned int baud = pgm->baudrate; - if(pickit5_read_dev_id(pgm, p) < 0) { - pmsg_error("failed to obtain device ID\n"); - return -1; - } + if(baud == 125000) { // If baud unchanged + if(bitclock > 0.0) { + baud = (unsigned int) (1.0 / pgm->bitclock); // Bitclock in us + } + } else { + if(bitclock > 0.0) { + pmsg_error("both -b baudrate and -B bitclock given; please use only one, aborting\n"); + return -1; + } + } - double bitclock = pgm->bitclock; - unsigned int baud = pgm->baudrate; + // JTAG __requires__ setting the speed before program enable + pickit5_set_sck_period(pgm, 1.0 / baud); + my.actual_pgm_clk = baud; - if(baud == 200000) { // If baud unchanged - if(bitclock > 0.0) { - baud = (unsigned int) (1.0 / pgm->bitclock); // Bitclock in us - } - } else { - if(bitclock > 0.0) { - pmsg_error("both -b baudrate and -B bitclock given; please use only one, aborting\n"); + if(pickit5_program_enable(pgm, p) < 0) { + pmsg_error("Failed to enable programming mode\n"); return -1; } - } - - if(baud < 300) { // Better be safe than sorry - pmsg_warning("UPDI needs a higher clock for operation, increasing UPDI to 300 Hz\n"); - baud = 300; - } - if(baud > 225000) { - if(v_target < 2.9) { - pmsg_warning("UPDI needs a voltage of more than 2.9 V for a faster baudrate, limiting UPDI to 225 kHz\n"); - baud = 225000; - } else { - if(baud > 900000) { - pmsg_warning("requested clock %u Hz too high, limiting UPDI to 900 kHz\n", baud); - baud = 900000; - } - pickit5_set_sck_period(pgm, 1.0 / 100000); // Start with 200 kHz - pickit5_write_cs_reg(pgm, UPDI_ASI_CTRLA, 0x01); // Change UPDI clock to 16 MHz - unsigned char ret_val = 0; - - pickit5_read_cs_reg(pgm, UPDI_ASI_CTRLA, &ret_val); - if(ret_val != 0x01) { - pmsg_warning("failed to change UPDI clock, falling back to 225 kHz\n"); - baud = 225000; - } + if(pickit5_read_dev_id(pgm, p) < 0) { + pmsg_error("failed to obtain device ID\n"); + return -1; } } - if(pickit5_set_sck_period(pgm, 1.0 / baud) >= 0) { - pmsg_notice("UPDI speed set to %i kHz\n", baud / 1000); - my.actual_updi_clk = baud; - } else { - pmsg_warning("failed to set UPDI speed, continuing\n"); - my.actual_updi_clk = 100000; // Default clock? - } pickit5_program_enable(pgm, p); return 0; @@ -630,7 +739,7 @@ static int pickit5_program_enable(const PROGRAMMER *pgm, const AVRPART *p) { if(pickit5_send_script(pgm, SCR_CMD, enter_prog, enter_prog_len, NULL, 0, 0) < 0) return -1; - if(pickit5_read_response(pgm, "Enter Programming Mode") < 0) + if(pickit5_read_response(pgm) < 0) return -1; } return 0; @@ -645,7 +754,7 @@ static int pickit5_program_disable(const PROGRAMMER *pgm, const AVRPART *p) { if(pickit5_send_script(pgm, SCR_CMD, enter_prog, enter_prog_len, NULL, 0, 0) < 0) return -1; - if(pickit5_read_response(pgm, "Exit Programming Mode") < 0) + if(pickit5_read_response(pgm) < 0) return -1; } return 0; @@ -655,11 +764,14 @@ static int pickit5_chip_erase(const PROGRAMMER *pgm, const AVRPART *p) { pmsg_debug("%s()\n", __func__); pickit5_program_enable(pgm, p); + if (is_debugwire(pgm)) { // dW Chip erase doesn't seem to be working, use ISP + pickit5_dw_switch_to_isp(pgm, p); + } const unsigned char *chip_erase = my.scripts.EraseChip; unsigned int chip_erase_len = my.scripts.EraseChip_len; if(pickit5_send_script(pgm, SCR_CMD, chip_erase, chip_erase_len, NULL, 0, 0) >= 0) { - if(pickit5_read_response(pgm, "Erase Chip") >= 0) { + if(pickit5_read_response(pgm) >= 0) { if(pickit5_array_to_uint32(&(my.rxBuf[16])) == 0x00) { pmsg_info("target successfully erased\n"); my.pk_op_mode = PK_OP_READY; @@ -685,25 +797,39 @@ static int pickit5_paged_write(const PROGRAMMER *pgm, const AVRPART *p, const AV return pickit5_write_array(pgm, p, mem, address, n_bytes, &mem->buf[address]); } -// Sets UPDI Frequency in kHz +// Sets Frequency in kHz static int pickit5_set_sck_period(const PROGRAMMER *pgm, double sckperiod) { pmsg_debug("%s()\n", __func__); double frq = (0.001 / sckperiod) + 0.5; // 1ms/period = kHz; round up const unsigned char *set_speed = my.scripts.SetSpeed; - int set_speed_len = my.scripts.SetSpeed_len; + unsigned int set_speed_len = my.scripts.SetSpeed_len; unsigned char buf[4]; - - pickit5_uint32_to_array(buf, frq); - if(pickit5_send_script(pgm, SCR_CMD, set_speed, set_speed_len, buf, 4, 0) < 0) - return -1; - if(pickit5_read_response(pgm, "Set UPDI Speed") < 0) - return -1; - return 0; + if (set_speed_len > 0) { // debugWire is fun . . . + pickit5_uint32_to_array(buf, frq); + if(pickit5_send_script(pgm, SCR_CMD, set_speed, set_speed_len, buf, 4, 0) >= 0) { + if(pickit5_read_response(pgm) >= 0) + return 0; + } + } + pmsg_error("Failed to set speed.\n"); + return -1; } static int pickit5_write_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char value) { - int rc = pickit5_write_array(pgm, p, mem, addr, 1, &value); + int rc = 0; + if(mem_is_in_fuses(mem)) { + if(is_isp(pgm)){ + rc = pickit5_isp_write_fuse(pgm, mem, value); + } else if(is_debugwire(pgm)){ + rc = pickit5_dw_write_fuse(pgm, p, mem, value); + } else if(both_jtag(pgm, p)){ + rc = pickit5_jtag_write_fuse(pgm, p, mem, value); + } + } + if (rc == 0) { + rc = pickit5_write_array(pgm, p, mem, addr, 1, &value); + } if(rc < 0) return rc; @@ -712,7 +838,19 @@ static int pickit5_write_byte(const PROGRAMMER *pgm, const AVRPART *p, static int pickit5_read_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value) { - int rc = pickit5_read_array(pgm, p, mem, addr, 1, value); + int rc = 0; + if(mem_is_in_fuses(mem)) { + if(is_isp(pgm)){ + rc = pickit5_isp_read_fuse(pgm, mem, value); + } else if(is_debugwire(pgm)){ + rc = pickit5_dw_read_fuse(pgm, p, mem, value); + } else if(both_jtag(pgm, p)){ + rc = pickit5_jtag_read_fuse(pgm, p, mem, value); + } + } + if(rc == 0) { + rc = pickit5_read_array(pgm, p, mem, addr, 1, value); + } if(rc < 0) return rc; @@ -827,7 +965,7 @@ static int pickit5_updi_read_byte(const PROGRAMMER *pgm, const AVRPART *p, // Return numbers of byte written static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, int len, unsigned char *value) { - pmsg_debug("%s(%s, 0x%04x, %i)", __func__, mem->desc, (unsigned int) addr, len); + pmsg_debug("%s(%s, addr: 0x%04x, offset: %i, len: %i)", __func__, mem->desc, (unsigned int) addr, mem->offset, len); if(len > mem->size || mem->size < 1) { pmsg_error("cannot write to %s %s owing to its size %d\n", p->desc, mem->desc, mem->size); @@ -839,23 +977,36 @@ static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, return -1; } + if(is_debugwire(pgm) && !mem_is_in_flash(mem)) { // for flash programming, stay in + pickit5_isp_switch_to_dw(pgm, p); + } + if(is_tpi(pgm)) { + pickit5_tpi_write(pgm, p, mem, addr, len, value); + } + const unsigned char *write_bytes = NULL; unsigned int write_bytes_len = 0; if((mem_is_in_flash(mem) && (len == mem->page_size))) { - write_bytes = my.scripts.WriteProgmem; + write_bytes = my.scripts.WriteProgmem; write_bytes_len = my.scripts.WriteProgmem_len; - } else if(mem_is_eeprom(mem)) { - write_bytes = my.scripts.WriteDataEEmem; + } else if (mem_is_io(mem) && my.scripts.WriteMemIO != NULL) { + write_bytes = my.scripts.WriteMemIO; + write_bytes_len = my.scripts.WriteMemIO_len; + } else if(mem_is_eeprom(mem) && my.scripts.WriteDataEEmem != NULL) { + write_bytes = my.scripts.WriteDataEEmem; write_bytes_len = my.scripts.WriteDataEEmem_len; - } else if(mem_is_user_type(mem)) { - write_bytes = my.scripts.WriteIDmem; + } else if(mem_is_in_fuses(mem) && my.scripts.WriteConfigmemFuse != NULL) { + write_bytes = my.scripts.WriteConfigmemFuse; + write_bytes_len = my.scripts.WriteConfigmemFuse_len; + } else if (mem_is_lock(mem) && my.scripts.WriteConfigmemLock != NULL) { + write_bytes = my.scripts.WriteConfigmemLock; + write_bytes_len = my.scripts.WriteConfigmemLock_len; + } else if(mem_is_user_type(mem) && my.scripts.WriteIDmem != NULL) { + write_bytes = my.scripts.WriteIDmem; write_bytes_len = my.scripts.WriteIDmem_len; - } else if(mem_is_in_fuses(mem)) { - write_bytes = my.scripts.WriteConfigmem; - write_bytes_len = my.scripts.WriteConfigmem_len; } else if(!mem_is_readonly(mem)) { // SRAM, IO, LOCK - if((len == 1) && (pgm->prog_modes == PM_UPDI)) { + if((len == 1) && is_updi(pgm)) { return pickit5_updi_write_byte(pgm, p, mem, addr, value[0]); } write_bytes = my.scripts.WriteMem8; @@ -864,6 +1015,8 @@ static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, pmsg_error("unsupported memory %s\n", mem->desc); return -2; } + + addr += mem->offset; unsigned char buf[8]; @@ -871,34 +1024,34 @@ static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, pickit5_uint32_to_array(&buf[0], addr); pickit5_uint32_to_array(&buf[4], len); - if(pickit5_send_script(pgm, SCR_DOWNLOAD, write_bytes, write_bytes_len, buf, 8, len) < 0) { + int rc = pickit5_download_data(pgm, write_bytes, write_bytes_len, buf, 8, value, len); + if(rc == -1) { pmsg_error("sending script failed\n"); - return -1; } - - if(pickit5_read_response(pgm, "Write Bytes") < 0) { + if(rc == -2) { pmsg_error("reading script response failed\n"); - return -1; } - if(usbdev_data_send(&pgm->fd, value, len) < 0) { + if(rc == -3) { pmsg_error("failed when sending data\n"); - return -1; } - if(pickit5_get_status(pgm, CHECK_ERROR) < 0) { + if(rc == -4) { pmsg_error("error check failed\n"); - return -1; } - if(pickit5_send_script_done(pgm, "Write Bytes") < 0) { + if(rc == -5) { pmsg_error("sending script done message failed\n"); + } + if(rc < 0) { return -1; + } else { + return len; } - return len; } // Return numbers of byte read static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, int len, unsigned char *value) { - pmsg_debug("%s(%u, %u)\n", __func__, (unsigned) addr, len); + pmsg_debug("%s(%s, addr: 0x%04x, offset: %i, len: %i)", __func__, mem->desc, (unsigned int) addr, mem->offset, len); + if(len > mem->size || mem->size < 1) { pmsg_error("cannot read from %s %s owing to its size %d\n", p->desc, mem->desc, mem->size); @@ -910,18 +1063,45 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, return -1; } + if(mem_is_signature(mem)) { // DeviceID is read only once and buffered + if(len == 1) { + *value = my.devID[addr]; + return 0; + } + return -1; + } + + if(is_debugwire(pgm)) { + pickit5_isp_switch_to_dw(pgm, p); + } + if(is_tpi(pgm)) { + return pickit5_tpi_read(pgm, p, mem, addr, len, value); + } + const unsigned char *read_bytes = NULL; unsigned int read_bytes_len = 0; if(mem_is_in_flash(mem)) { - read_bytes = my.scripts.ReadProgmem; - read_bytes_len = my.scripts.ReadProgmem_len; - } else if(mem_is_eeprom(mem)) { - read_bytes = my.scripts.ReadDataEEmem; - read_bytes_len = my.scripts.ReadDataEEmem_len; - } else if(mem_is_user_type(mem)) { - read_bytes = my.scripts.ReadIDmem; - read_bytes_len = my.scripts.ReadIDmem_len; + read_bytes = my.scripts.ReadProgmem; + read_bytes_len = my.scripts.ReadProgmem_len; + } else if (mem_is_calibration(mem) && my.scripts.ReadCalibrationByte != NULL) { + read_bytes = my.scripts.ReadCalibrationByte; + read_bytes_len = my.scripts.ReadCalibrationByte_len; + } else if (mem_is_io(mem) && my.scripts.ReadMemIO != NULL) { + read_bytes = my.scripts.ReadMemIO; + read_bytes_len = my.scripts.ReadMemIO_len; + } else if(mem_is_eeprom(mem) && my.scripts.ReadDataEEmem != NULL) { + read_bytes = my.scripts.ReadDataEEmem; + read_bytes_len = my.scripts.ReadDataEEmem_len; + } else if(mem_is_in_fuses(mem) && my.scripts.ReadConfigmemFuse != NULL) { + read_bytes = my.scripts.ReadConfigmemFuse; + read_bytes_len = my.scripts.ReadConfigmemFuse_len; + } else if (mem_is_lock(mem) && my.scripts.ReadConfigmemLock != NULL) { + read_bytes = my.scripts.ReadConfigmemLock; + read_bytes_len = my.scripts.ReadConfigmemLock_len; + } else if(mem_is_user_type(mem) && my.scripts.ReadIDmem != NULL) { + read_bytes = my.scripts.ReadIDmem; + read_bytes_len = my.scripts.ReadIDmem_len; } else if(mem_is_sib(mem)) { if(len == 1) { *value = my.sib_string[addr]; @@ -931,21 +1111,16 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, return 32; } return -1; - } else if(mem_is_signature(mem)) { - if(len == 1) { - *value = my.devID[addr]; - return 0; - } - return -1; - } else if(mem_is_in_sigrow(mem) || mem_is_user_type(mem) || mem_is_a_fuse(mem)) { - read_bytes = my.scripts.ReadConfigmem; - read_bytes_len = my.scripts.ReadConfigmem_len; + } else if((mem_is_in_sigrow(mem) || mem_is_user_type(mem) || mem_is_a_fuse(mem)) + && my.scripts.ReadConfigmem != NULL) { + read_bytes = my.scripts.ReadConfigmem; + read_bytes_len = my.scripts.ReadConfigmem_len; } else if(!mem_is_readonly(mem)) { // SRAM, IO, LOCK, USERROW - if((len == 1) && (pgm->prog_modes == PM_UPDI)) { + if((len == 1) && is_updi(pgm)) { return pickit5_updi_read_byte(pgm, p, mem, addr, value); } - read_bytes = my.scripts.ReadMem8; - read_bytes_len = my.scripts.ReadMem8_len; + read_bytes = my.scripts.ReadMem8; + read_bytes_len = my.scripts.ReadMem8_len; } else { pmsg_error("unsupported memory %s\n", mem->desc); return -2; @@ -957,61 +1132,96 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, pickit5_uint32_to_array(&buf[0], addr); pickit5_uint32_to_array(&buf[4], len); - if(pickit5_send_script(pgm, SCR_UPLOAD, read_bytes, read_bytes_len, buf, 8, len) < 0) { + int rc = pickit5_upload_data(pgm, read_bytes, read_bytes_len, buf, 8, value, len); + + if(rc == -1) { pmsg_error("sending script failed\n"); - return -1; - } - if(pickit5_read_response(pgm, "Read Bytes") < 0) { + } else if (rc == -2) { pmsg_error("unexpected read response\n"); - return -1; - } - if(usbdev_data_recv(&pgm->fd, value, len) < 0) { + } else if (rc == -3) { pmsg_error("reading data memory failed\n"); - return -1; - } - if(pickit5_send_script_done(pgm, "Read Bytes") < 0) { + } else if (rc == -4) { pmsg_error("sending script done message failed\n"); + } + + if(rc < 0) { return -1; + } else { + return len; } - return len; } + static int pickit5_read_dev_id(const PROGRAMMER *pgm, const AVRPART *p) { pmsg_debug("%s()\n", __func__); const unsigned char *read_id = my.scripts.GetDeviceID; // Defaults unsigned int read_id_len = my.scripts.GetDeviceID_len; - if(my.nvm_version >= '0' && my.nvm_version <= '9') { - read_id = get_devid_script_by_nvm_ver(my.nvm_version); // Only address changes, not length + if(is_updi(pgm)) { + if(my.nvm_version >= '0' && my.nvm_version <= '9') { + read_id = get_devid_script_by_nvm_ver(my.nvm_version); // Only address changes, not length + } + } else if (is_debugwire(pgm)) { + unsigned char scr [] = {0x7D, 0x00, 0x00, 0x00}; // Not sure what this does + unsigned int scr_len = sizeof(scr); + pickit5_send_script_cmd(pgm, scr, scr_len, NULL, 0); + pickit5_program_enable(pgm, p); + if (my.rxBuf[17] == 0x0E) { // Errors figured out during 6 hours of failing to get it to work + if(my.rxBuf[16] == 0x10) { // with the serial/bootloader auto-reset circuit. + pmsg_error("Debug Wire transmission error, Aborting. (Is the Pullup >=10 kOhms?)"); + } else if(my.rxBuf[16] == 58) { + pmsg_error("Debug Wire transmission error, Aborting. (Please remove any caps on RESET)"); + } else { + pmsg_error("Error: %d", my.rxBuf[16]); + } + return -1; + } + const unsigned char get_sig [] = { // *screams* why was this function not in the scripts????? + 0x90, 0x0C, 0x03, 0x00, 0x00, 0x00, // Set reg to 0x03 + 0x1e, 0x45, 0x0C, // Send 0xF0 + reg and receive 2 bytes (found by trial and error) + 0x9D, // place word into status response + }; + if(pickit5_send_script_cmd(pgm, get_sig, sizeof(get_sig), NULL, 0) >= 0) { + unsigned char len = my.rxBuf[20]; + if(len == 0x02) { // debugWire + my.devID[0] = 0x1E; // doesn't send the first byte, fill it in + my.devID[1] = my.rxBuf[25]; // Flip byte order + my.devID[2] = my.rxBuf[24]; + return 0; + } + } + return -1; } - if(pickit5_send_script(pgm, SCR_CMD, read_id, read_id_len, NULL, 0, 0) < 0) + if(pickit5_send_script_cmd(pgm, read_id, read_id_len, NULL, 0) < 0) { return -1; - if(pickit5_read_response(pgm, "Read Device ID") >= 0) { - if(my.rxBuf[0] == 0x0D) { - if(my.rxBuf[20] == 0x04) { - memcpy(my.devID, &my.rxBuf[24], 4); - return 0; + } + + if(my.rxBuf[0] == 0x0D) { + unsigned char len = my.rxBuf[20]; + if(len == 0x03 || len == 0x04) { // just DevId or UPDI with revision + memcpy(my.devID, &my.rxBuf[24], len); + } else { + if(my.hvupdi_enabled && p->hvupdi_variant == HV_UPDI_VARIANT_2) { + pmsg_info("failed to get DeviceID with activated HV Pulse on RST\n"); + pmsg_info("if the wiring is correct, try connecting a 16 V, 1 uF cap between RST and GND\n"); } else { - if(my.hvupdi_enabled && p->hvupdi_variant == HV_UPDI_VARIANT_2) { - pmsg_info("failed to get DeviceID with activated HV Pulse on RST\n"); - pmsg_info("if the wiring is correct, try connecting a 16 V, 1 uF cap between RST and GND\n"); - } + pmsg_error("Length (%u) mismatch of returned Device ID.\n", len); } + return -1; } } - return -1; + return 0; } -static int pickit5_read_sib(const PROGRAMMER *pgm, const AVRPART *p, char *sib) { +static int pickit5_updi_read_sib(const PROGRAMMER *pgm, const AVRPART *p, char *sib) { pmsg_debug("%s()\n", __func__); const unsigned char *read_sib = my.scripts.ReadSIB; unsigned int read_sib_len = my.scripts.ReadSIB_len; - if(pickit5_send_script(pgm, SCR_CMD, read_sib, read_sib_len, NULL, 0, 0) < 0) - return -1; - if(pickit5_read_response(pgm, "Read SIB") < 0) + if(pickit5_send_script_cmd(pgm, read_sib, read_sib_len, NULL, 0) < 0) { return -1; + } unsigned int ret_len = pickit5_array_to_uint32(&(my.rxBuf[20])); if(ret_len == 32) { @@ -1030,7 +1240,7 @@ static int pickit5_read_chip_rev(const PROGRAMMER *pgm, const AVRPART *p, unsign return 0; } -static int pickit5_write_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigned char value) { +static int pickit5_updi_write_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigned char value) { pmsg_debug("%s(%u, %i)", __func__, addr, value); const unsigned char *write_cs = my.scripts.WriteCSreg; unsigned int write_cs_len = my.scripts.WriteCSreg_len; @@ -1045,19 +1255,15 @@ static int pickit5_write_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsign buf[0] = addr; buf[1] = value; - if(pickit5_send_script(pgm, SCR_CMD, write_cs, write_cs_len, buf, 2, 0) < 0) { - pmsg_error("sending script failed\n"); + if (pickit5_send_script_cmd(pgm, write_cs, write_cs_len, buf, 2) < 0) { + pmsg_error("CS Reg write failed\n"); return -1; } - if(pickit5_read_response(pgm, "Write CS reg") < 0) { - pmsg_error("reading script response failed\n"); - return -1; - } return 1; } -static int pickit5_read_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigned char *value) { +static int pickit5_updi_read_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigned char *value) { pmsg_debug("%s(%i)\n", __func__, addr); const unsigned char *read_cs = my.scripts.ReadCSreg; unsigned int read_cs_len = my.scripts.ReadCSreg_len; @@ -1070,22 +1276,329 @@ static int pickit5_read_cs_reg(const PROGRAMMER *pgm, unsigned int addr, unsigne unsigned char buf[1]; buf[0] = addr; + int ret_val = pickit5_upload_data(pgm, read_cs, read_cs_len, buf, 1, value, 1); - if(pickit5_send_script(pgm, SCR_UPLOAD, read_cs, read_cs_len, buf, 1, 1) < 0) { + if(ret_val == -1) { pmsg_error("sending script failed\n"); return -1; - } - if(pickit5_read_response(pgm, "Read CS") < 0) { + } else if(ret_val == -2) { pmsg_error("unexpected read response\n"); return -1; - } - if(usbdev_data_recv(&pgm->fd, value, 1) < 0) { + } else if(ret_val == -3) { pmsg_error("reading CS memory failed\n"); return -1; + } else if(ret_val == -4) { + pmsg_error("sending script done message failed\n"); + return -1; + } + return 0; +} + + +static void pickit5_dw_switch_to_isp(const PROGRAMMER *pgm, const AVRPART *p) { + pmsg_debug("%s(%u)", __func__, my.dW_switched_isp); + if(my.dW_switched_isp == 0) { + if(pickit5_send_script_cmd(pgm, my.scripts.switchtoISP, my.scripts.switchtoISP_len, NULL, 0) >= 0) { + my.dW_switched_isp = 1; + pickit5_program_disable(pgm, p); + if(get_pickit_isp_script(&(my.scripts), p->desc) < 0) { + pmsg_error("Failed switching scripts, aborting.\n"); + return; + } + pickit5_program_enable(pgm, p); + } + } +} + +static void pickit5_isp_switch_to_dw(const PROGRAMMER *pgm, const AVRPART *p) { + if(my.dW_switched_isp) { + // dW_switched_isp is set when accessing fuses where dW has to be switched to ISP + // we have to power cycle to switch back to dW so that the scripts work. + // For now, only support power-cycling through PICkit. + // Maybe in the future: monitor voltages and wait for voltage falling and rising + if(my.power_source == POWER_SOURCE_INT) { + pickit5_program_disable(pgm, p); + pickit5_set_vtarget(pgm, 0.0); + if(get_pickit_dw_script(&(my.scripts), p->desc) < 0) { + pmsg_error("Failed switching scripts, aborting.\n"); + return; + } + pickit5_set_vtarget(pgm, my.target_voltage); + pickit5_program_enable(pgm, p); + my.dW_switched_isp = 0; + } else { + pmsg_error("Pickit 5 switched the part to ISP mode when writing fuses."); + pmsg_error("To continue, the part has to be power cycled and the operation restarted."); + } + } +} + + +static int pickit5_isp_write_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned char value) { + unsigned char write_fuse_isp [] = { + 0x90, 0x00, 0x32, 0x00, 0x00, 0x00, // load 0x32 to r00 + 0x1E, 0x37, 0x00, // Enable Programming? + 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, // load programming command to r01 (set later) + 0x1E, 0x34, 0x01, // Execute write command placed in r01 + }; + unsigned int write_fuse_isp_len = sizeof(write_fuse_isp); + unsigned int cmd; + avr_set_bits(mem->op[AVR_OP_WRITE], (unsigned char*)&cmd); + avr_set_addr(mem->op[AVR_OP_WRITE], (unsigned char*)&cmd, mem_fuse_offset(mem)); + avr_set_input(mem->op[AVR_OP_WRITE], (unsigned char*)&cmd, value); + cmd = __builtin_bswap32(cmd); // Swap bitorder + pickit5_uint32_to_array(&write_fuse_isp[11], cmd); // fill programming command + + if(pickit5_send_script_cmd(pgm, write_fuse_isp, write_fuse_isp_len, NULL, 0) < 0) { + pmsg_error("Write Fuse Script failed"); + return -1; } - if(pickit5_send_script_done(pgm, "Read CS") < 0) { + return 1; +} + +static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned char *value) { + // Original Script only supports doing all three at once, + // doing a custom script felt easier to integrate into avrdude, + // especially as we already have all the programming commands + unsigned char read_fuse_isp [] = { + 0x90, 0x00, 0x32, 0x00, 0x00, 0x00, // load 0x32 to r00 + 0x1E, 0x37, 0x00, // Enable Programming? + 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, // load programming command to r01 (set later) + 0x9B, 0x02, 0x03, // load 0x03 to r02 + 0x9B, 0x03, 0x00, // load 0x00 to r03 + 0x1E, 0x35, 0x01, 0x02, 0x03, // Execute Command placed in r01 + 0x9F // Send data from temp_reg to host + }; + unsigned int read_fuse_isp_len = sizeof(read_fuse_isp); + unsigned int cmd; + avr_set_bits(mem->op[AVR_OP_READ], (unsigned char*)&cmd); + avr_set_addr(mem->op[AVR_OP_READ], (unsigned char*)&cmd, mem_fuse_offset(mem)); + cmd = __builtin_bswap32(cmd); // Swap bitorder + pickit5_uint32_to_array(&read_fuse_isp[11], cmd); // fill programming command + + if(pickit5_send_script_cmd(pgm, read_fuse_isp, read_fuse_isp_len, NULL, 0) < 0) { + pmsg_error("Read Fuse Script failed"); + return -1; + } + if (0x01 != my.rxBuf[20]) { // length + return -1; + } + *value = my.rxBuf[24]; // return value + return 1; +} + +// debugWire cannot write nor read fuses, have to change to ISP for that. +// Luckily, there is a custom script doing fuse access on ISP anyway, +// so no need to switch between script sets +static int pickit5_dw_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char value) { + pickit5_dw_switch_to_isp(pgm, p); + return pickit5_isp_write_fuse(pgm, mem, value); +} + +static int pickit5_dw_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char *value) { + pickit5_dw_switch_to_isp(pgm, p); + return pickit5_isp_read_fuse(pgm, mem, value); +} + + +// gave JTAG also a custom script to make integration into avrdude +// easier. Also encodes all data in script itself instead of using paramters +static int pickit5_jtag_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char value) { + unsigned char write_fuse_jtag [] = { + 0x9b, 0x00, 0x33, // Parameter address to r04 + 0x9b, 0x0B, 0xFF, // Parameter value to r11 + 0x9b, 0x0a, 0x0f, // Set r10 to 0x0F + 0x9b, 0x02, 0x05, // Set r02 to 0x05 (PROG_COMMANDS) + 0x1e, 0x66, 0x02, // JTAG Write to Instruction Reg the value in r02 + 0x90, 0x02, 0x40, 0x23, 0x00, 0x00, // set r02 to 0x2340 (Enter Fuse Write) + 0x1e, 0x67, 0x02, 0x0a, // JTAG: Write to Data Reg the value in r02 with a length in r0A(16) + 0x90, 0x03, 0x00, 0x13, 0x00, 0x00, // set r03 to 0x1300 (Load Data Low Byte) + 0x6e, 0x03, 0x0b, // r03 += r11 (Set low byte) + 0x1e, 0x67, 0x03, 0x0a, // JTAG: Write to Data Reg the value in r03 with a length in r0A(16) + + 0x60, 0x01, 0x00, // Copy r00 to r01 (Write fuse command) + 0x68, 0x01, 0x08, // Left Shift r01 by 8 + 0x69, 0x00, 0x02, 0x00, 0x00, 0x00, // r00 -= 2 + 0x68, 0x00, 0x08, // Left Shift r00 by 8 + + 0x1e, 0x67, 0x01, 0x0a, // JTAG: Write to D../build_linux/src/avrdude -qq -c pickit5_jtag -xvtarg=4.5 -p m32u4 -Ueeprom:w:0x55:m -Ueeprom:w:0xaa:mata Reg the value in r01 with a length in r0A(16) + 0x1e, 0x67, 0x00, 0x0a, // JTAG: Write to Data Reg the value in r00 with a length in r0A(16) + 0x1e, 0x67, 0x01, 0x0a, // JTAG: Write to Data Reg the value in r01 with a length in r0A(16) + 0x1e, 0x67, 0x01, 0x0a, // JTAG: Write to Data Reg the value in r01 with a length in r0A(16) + 0xa2, // do + 0x1e, 0x6b, 0x01, 0x0a, // JTAG: Write/read Data Reg the value in r01 with a length in r0A(16) + 0xa5, 0x00, 0x02, 0x00, 0x00, // while ((temp_reg & 0x200) != 0x200) + 0x00, 0x02, 0x00, 0x00, 0x0a, 0x00, // + }; + unsigned int write_fuse_isp_len = sizeof(write_fuse_jtag); + if(mem_is_hfuse(mem)) { + write_fuse_jtag[2] = 0x3B; + } else if (mem_is_efuse(mem)) { + write_fuse_jtag[2] = 0x37; + } + write_fuse_jtag[5] = value; + if(pickit5_send_script_cmd(pgm, write_fuse_jtag, write_fuse_isp_len, NULL, 0) < 0) { + pmsg_error("Write Fuse Script failed"); + return -1; + } + return 1; +} + +static int pickit5_jtag_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char *value) { + unsigned char read_fuse_jtag [] = { + 0x9b, 0x06, 0x32, // load lfuse address to r06 (replaced fo hfuse/efuse) + 0x9b, 0x07, 0x0f, // set r07 to 0x07 + 0x9b, 0x09, 0x05, // set r09 to 0x05 (PROG COMMANDS) + 0x1e, 0x66, 0x09, // Write JTAG Instruction in r09 + 0x90, 0x09, 0x04, 0x23, 0x00, 0x00, // set r09 to 0x2304 (Enter Fuse Bit Read) + 0x1e, 0x67, 0x09, 0x07, // Write JTAG instruction in r09 with length in r07 (7 bits) + 0x60, 0x09, 0x06, // copy r06 to r09 (0x32) + 0x68, 0x09, 0x08, // left-shift r09 by 8 + 0x1e, 0x67, 0x09, 0x07, // Write JTAG instruction in r09 with length in r07 (7 bits) + 0x60, 0x09, 0x06, // copy r06 to r09 + 0x6e, 0x09, 0x02, // r09 += 2 (set LSB or so (writing only 7 bits)) + 0x68, 0x09, 0x08, // left-shift r09 by 8 + 0x1E, 0x6B, 0x09, 0x07, // Write JTAG instruction in r09 with length in r07 (7 bits) and shift data in + 0x9F, // Send temp-reg to return status + }; + unsigned int read_fuse_jtag_len = sizeof(read_fuse_jtag); + if(mem_is_hfuse(mem)) { + read_fuse_jtag[2] = 0x3E; + } else if (mem_is_efuse(mem)) { + read_fuse_jtag[2] = 0x3A; + } + + if(pickit5_send_script_cmd(pgm, read_fuse_jtag, read_fuse_jtag_len, NULL, 0) < 0) { + pmsg_error("Read Fuse Script failed"); + return -1; + } + if (0x01 != my.rxBuf[20]) { // length + return -1; + } + *value = my.rxBuf[24]; // return value + return 1; + +} + + +// TPI has an unified memory space, meaning that any memory (even SRAM) +// can be accessed by the same command, meaning that we don't need the +// decision tree found in the "read/write array" functions +static int pickit5_tpi_write(const PROGRAMMER *pgm, const AVRPART *p, + const AVRMEM *mem, unsigned long addr, int len, unsigned char *value) { + + const unsigned char* write_bytes = my.scripts.WriteProgmem; + unsigned int write_bytes_len = my.scripts.WriteProgmem_len; + addr += mem->offset; + + unsigned char buf[8]; + + pickit5_uint32_to_array(&buf[0], addr); + pickit5_uint32_to_array(&buf[4], len); + + int rc = pickit5_download_data(pgm, write_bytes, write_bytes_len, buf, 8, value, len); + if(rc == -1) { + pmsg_error("sending script failed\n"); + } + if(rc == -2) { + pmsg_error("reading script response failed\n"); + } + if(rc == -3) { + pmsg_error("failed when sending data\n"); + } + if(rc == -4) { + pmsg_error("error check failed\n"); + } + if(rc == -5) { pmsg_error("sending script done message failed\n"); + } + if(rc < 0) { return -1; + } else { + return len; + } +} + +static int pickit5_tpi_read(const PROGRAMMER *pgm, const AVRPART *p, + const AVRMEM *mem, unsigned long addr, int len, unsigned char *value) { + + const unsigned char* read_bytes = my.scripts.ReadProgmem; + unsigned int read_bytes_len = my.scripts.ReadProgmem_len; + + addr += mem->offset; + unsigned char buf[8]; + + pickit5_uint32_to_array(&buf[0], addr); + pickit5_uint32_to_array(&buf[4], len); + int rc = pickit5_upload_data(pgm, read_bytes, read_bytes_len, buf, 8, value, len); + + if(rc == -1) { + pmsg_error("sending script failed\n"); + } else if (rc == -2) { + pmsg_error("unexpected read response\n"); + } else if (rc == -3) { + pmsg_error("reading data memory failed\n"); + } else if (rc == -4) { + pmsg_error("sending script done message failed\n"); + } + if(rc < 0) { + return -1; + } else { + return len; + } +} + + +static int pickit5_send_script_cmd(const PROGRAMMER *pgm, const unsigned char *scr, unsigned int scr_len, + const unsigned char *param, unsigned int param_len) { + + if(pickit5_send_script(pgm, SCR_CMD, scr, scr_len, param, param_len, 0) < 0) { + pmsg_error("sending script failed\n"); + return -1; + } + if(pickit5_read_response(pgm) < 0) { + pmsg_error("reading script response failed\n"); + return -2; + } + return 0; +} + + +static int pickit5_download_data(const PROGRAMMER *pgm, const unsigned char *scr, unsigned int scr_len, + const unsigned char *param, unsigned int param_len, unsigned char *send_buf, unsigned int send_len) { + + if(pickit5_send_script(pgm, SCR_DOWNLOAD, scr, scr_len, param, param_len, send_len) < 0) { + return -1; + } + if(pickit5_read_response(pgm) < 0) { + return -2; + } + if(usbdev_data_send(&pgm->fd, send_buf, send_len) < 0) { + return -3; + } + if(pickit5_get_status(pgm, CHECK_ERROR) < 0) { + return -4; + } + if(pickit5_send_script_done(pgm) < 0) { + return -5; + } + return 0; +} + +static int pickit5_upload_data(const PROGRAMMER *pgm, const unsigned char *scr, unsigned int scr_len, + const unsigned char *param, unsigned int param_len, unsigned char *recv_buf, unsigned int recv_len) { + + if(pickit5_send_script(pgm, SCR_UPLOAD, scr, scr_len, param, param_len, recv_len) < 0) { + return -1; + } + if(pickit5_read_response(pgm) < 0) { + return -2; + } + if(usbdev_data_recv(&pgm->fd, recv_buf, recv_len) < 0) { + return -3; + } + if(pickit5_send_script_done(pgm) < 0) { + return -4; } return 0; } @@ -1118,9 +1631,6 @@ static int pickit5_get_fw_info(const PROGRAMMER *pgm) { } static int pickit5_set_vtarget(const PROGRAMMER *pgm, double v) { - if(my.pgm_type >= PGM_TYPE_SNAP) // SNAP can't supply power, ignore - return 0; - unsigned char set_vtarget[] = { 0x40, 0x00, 0x00, 0x00, 0x00, // Vdd @@ -1135,24 +1645,22 @@ static int pickit5_set_vtarget(const PROGRAMMER *pgm, double v) { 0x44 }; + if(my.pgm_type >= PGM_TYPE_SNAP) { // SNAP can't supply power, ignore + return 0; + } + if(v < 1.0) { // Anything below 1 V equals disabling Power pmsg_debug("%s(disable)\n", __func__); - if(pickit5_send_script(pgm, SCR_CMD, power_source, 5, NULL, 0, 0) < 0) - return -1; - if(pickit5_read_response(pgm, "Select external power source") < 0) + if (pickit5_send_script_cmd(pgm, power_source, 5, NULL, 0) < 0) return -1; - if(pickit5_send_script(pgm, SCR_CMD, disable_power, 1, NULL, 0, 0) < 0) - return -1; - if(pickit5_read_response(pgm, "Disabling Power") < 0) + if (pickit5_send_script_cmd(pgm, disable_power, 1, NULL, 0) < 0) return -1; usleep(50000); // There might be some caps, let them discharge } else { pmsg_debug("%s(%1.2f V)\n", __func__, v); power_source[1] = 0x01; - if(pickit5_send_script(pgm, SCR_CMD, power_source, 5, NULL, 0, 0) < 0) - return -1; - if(pickit5_read_response(pgm, "Select internal power source") < 0) + if (pickit5_send_script_cmd(pgm, power_source, 5, NULL, 0) < 0) return -1; int vtarg = (int) (v * 1000.0); @@ -1161,10 +1669,7 @@ static int pickit5_set_vtarget(const PROGRAMMER *pgm, double v) { pickit5_uint32_to_array(&set_vtarget[5], vtarg); pickit5_uint32_to_array(&set_vtarget[9], vtarg); - if(pickit5_send_script(pgm, SCR_CMD, set_vtarget, 15, NULL, 0, 0) < 0) - return -1; - - if(pickit5_read_response(pgm, "set_vtarget") < 0) + if (pickit5_send_script_cmd(pgm, set_vtarget, 15, NULL, 0) < 0) return -1; } return 0; @@ -1176,11 +1681,8 @@ static int pickit5_get_vtarget(const PROGRAMMER *pgm, double *v) { pmsg_debug("%s()\n", __func__); - if(pickit5_send_script(pgm, SCR_CMD, get_vtarget, 1, NULL, 0, 0) < 0) - return -1; - - if(pickit5_read_response(pgm, "get_vtarget") < 0) - return -1; + if (pickit5_send_script_cmd(pgm, get_vtarget, 1, NULL, 0) < 0) + return -1; // 24 - internal Vdd [mV] // 28 - target Vdd [mV] @@ -1206,15 +1708,9 @@ static int pickit5_set_ptg_mode(const PROGRAMMER *pgm) { pmsg_debug("%s()\n", __func__); - if(pickit5_send_script(pgm, SCR_UPLOAD, ptg_mode, 5, NULL, 0, 4) < 0) - return -1; - if(pickit5_read_response(pgm, "Set PTG mode") < 0) - return -1; - - if(usbdev_data_recv(&pgm->fd, buf, 4) < 0) - return -1; - if(pickit5_send_script_done(pgm, "Set PTG Mode") < 0) + if (pickit5_upload_data(pgm, ptg_mode, 5, NULL, 0, buf, 4)) { return -1; + } return 0; } @@ -1291,7 +1787,7 @@ void pickit5_initpgm(PROGRAMMER *pgm) { pgm->teardown = pickit5_teardown; pgm->set_sck_period = pickit5_set_sck_period; pgm->end_programming = pickit5_program_disable; - pgm->read_sib = pickit5_read_sib; + pgm->read_sib = pickit5_updi_read_sib; pgm->read_chip_rev = pickit5_read_chip_rev; pgm->set_vtarget = pickit5_set_vtarget; pgm->get_vtarget = pickit5_get_vtarget; diff --git a/src/pickit5_lut.h b/src/pickit5_lut.h index 27b4c3327..e619c3198 100644 --- a/src/pickit5_lut.h +++ b/src/pickit5_lut.h @@ -1,4 +1,6 @@ -/* This file was auto-generated by scripts_decoder.py, any changes will be overwritten */ +/* This file was auto-generated by scripts_decoder.py. + * Any changes will be overwritten on regeneration + */ /* * avrdude - A Downloader/Uploader for AVR device programmers @@ -61,20 +63,45 @@ struct avr_script_lut { unsigned int ReadMem8_len; const unsigned char *WriteConfigmem; unsigned int WriteConfigmem_len; + const unsigned char *WriteConfigmemFuse; + unsigned int WriteConfigmemFuse_len; + const unsigned char *WriteConfigmemLock; + unsigned int WriteConfigmemLock_len; const unsigned char *ReadConfigmem; unsigned int ReadConfigmem_len; + const unsigned char *ReadConfigmemFuse; + unsigned int ReadConfigmemFuse_len; + const unsigned char *ReadConfigmemLock; + unsigned int ReadConfigmemLock_len; const unsigned char *WriteIDmem; unsigned int WriteIDmem_len; const unsigned char *ReadIDmem; unsigned int ReadIDmem_len; const unsigned char *ReadSIB; unsigned int ReadSIB_len; + const unsigned char *switchtoISP; + unsigned int switchtoISP_len; + const unsigned char *ReadMemIO; + unsigned int ReadMemIO_len; + const unsigned char *WriteMemIO; + unsigned int WriteMemIO_len; + const unsigned char *ReadCalibrationByte; + unsigned int ReadCalibrationByte_len; + const unsigned char *WriteSRAM; + unsigned int WriteSRAM_len; + const unsigned char *ReadSRAM; + unsigned int ReadSRAM_len; }; typedef struct avr_script_lut SCRIPT; const unsigned char * get_devid_script_by_nvm_ver(unsigned char version); +int get_pickit_dw_script(SCRIPT *scr, const char *partdesc); +int get_pickit_isp_script(SCRIPT *scr, const char *partdesc); +int get_pickit_jtag_script(SCRIPT *scr, const char *partdesc); int get_pickit_updi_script(SCRIPT *scr, const char *partdesc); +int get_pickit_pdi_script(SCRIPT *scr, const char *partdesc); +int get_pickit_tpi_script(SCRIPT *scr, const char *partdesc); #ifdef __cplusplus } diff --git a/src/pickit5_lut_dw.c b/src/pickit5_lut_dw.c new file mode 100644 index 000000000..8284c37ff --- /dev/null +++ b/src/pickit5_lut_dw.c @@ -0,0 +1,4595 @@ +/* This file was auto-generated by scripts_decoder.py. + * Any changes will be overwritten on regeneration + */ + +/* + * avrdude - A Downloader/Uploader for AVR device programmers + * Copyright (C) 2024 MX682X + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include "pickit5_lut.h" + + +const unsigned char EnterProgMode_dw_0[2] = { + 0x1e, 0x4a, +}; + +const unsigned char ExitProgMode_dw_0[31] = { + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x1e, 0x4e, 0x90, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x4c, +}; + +const unsigned char SetSpeed_dw_0[0] = { +}; + +const unsigned char EraseChip_dw_0[1] = { + 0xaf, +}; + +const unsigned char WriteProgmem_dw_0[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x40, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x40, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x80, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x80, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x20, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x80, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x80, + 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x80, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_1[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x80, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x80, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x80, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x80, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x80, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x40, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x80, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x80, + 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x80, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x80, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_2[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x80, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x80, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x1f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x1f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x80, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x40, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x1f, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x1f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x1f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_3[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x80, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x80, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x80, 0x1f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x80, 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x80, 0x1f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x80, 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x80, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x40, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x80, 0x1f, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x80, 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x80, 0x1f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x80, + 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x80, 0x1f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x80, 0x1f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_4[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x80, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x80, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x80, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x40, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_5[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x80, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x80, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x3f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x3f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x80, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x40, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x3f, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x3f, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x3f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x3f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x3f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_6[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x40, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x40, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x20, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_7[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x00, 0x01, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x00, 0x01, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x80, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x00, 0x01, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x80, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_8[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x80, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x80, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x80, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x40, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x7e, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x7e, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_9[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x80, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x80, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x80, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x40, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x0f, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x11, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x0f, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x0f, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_10[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x20, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x10, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x0e, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x1e, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_11[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x20, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x04, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x10, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x0e, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x1e, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_12[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x20, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x1f, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x10, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x0f, 0xb2, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x1f, 0xb2, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_13[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x20, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x10, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x07, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x17, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_14[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x20, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x10, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x02, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x12, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_15[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x20, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x10, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x10, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x00, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x10, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_16[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x40, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x40, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x20, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x07, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x17, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_17[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x10, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x10, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x08, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x10, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x04, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x08, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x07, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x17, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_18[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x40, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x40, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x20, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x02, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x12, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteProgmem_dw_19[1610] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x59, 0x0c, 0x0d, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x90, 0x03, 0x3f, 0x00, 0x00, 0x00, + 0x6e, 0x02, 0x03, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x60, 0x05, 0x01, 0x90, 0x06, 0x40, 0x00, 0x00, + 0x00, 0xfa, 0x05, 0x06, 0xfc, 0x00, 0x60, 0x07, 0x05, 0xfb, 0x02, 0x01, 0x90, 0x07, 0x40, 0x00, + 0x00, 0x00, 0x6a, 0x05, 0x07, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x23, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x03, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, + 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0xcc, 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, + 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0xfb, 0xd1, + 0x01, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x02, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x03, 0x90, 0x04, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x46, 0x04, 0x90, 0x02, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x02, 0x1e, 0x47, + 0x00, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x02, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, + 0x02, 0xcf, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x03, + 0x02, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x03, 0xc5, 0x02, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, 0x01, 0x00, 0x00, 0x00, 0xad, 0x04, 0x6e, 0x03, 0x02, + 0xae, 0x60, 0x04, 0x00, 0x93, 0x04, 0x03, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xad, 0x04, + 0x6e, 0x03, 0x02, 0xae, 0x60, 0x04, 0x00, 0x6a, 0x04, 0x03, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, + 0xc5, 0x02, 0xfb, 0x11, 0x03, 0x90, 0x18, 0xa7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x03, + 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x0c, + 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x55, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x02, + 0x03, 0x90, 0x06, 0x20, 0x00, 0x00, 0x00, 0xad, 0x06, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x47, 0x03, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x19, 0x00, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x99, 0x01, 0x1e, 0x46, 0x01, 0x90, 0x19, 0x10, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x01, + 0x1e, 0x46, 0x01, 0x90, 0x18, 0xb7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, + 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x02, 0x32, 0x96, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0xae, 0x90, + 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xed, 0x03, 0x90, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, 0x90, 0x02, 0xfc, + 0x01, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, 0x0c, 0x23, + 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, + 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, 0x90, + 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x55, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x04, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x03, + 0x90, 0x02, 0xc1, 0xe1, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x02, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xc7, 0xbf, 0x00, 0x00, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x02, 0xe8, 0x95, 0x00, 0x00, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x02, 0x90, 0x0c, 0x33, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x54, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x55, 0x90, 0x02, 0x57, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x46, 0x1e, 0x6e, 0x00, 0x07, 0x90, 0x08, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x05, 0x08, 0xeb, + 0x00, 0x90, 0x02, 0x5f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char ReadProgmem_dw_0[302] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x59, 0x0c, 0x0d, 0x60, 0x02, 0x01, 0x90, 0x03, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x49, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x4f, 0x00, 0x90, 0x04, 0x40, 0x00, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, + 0x80, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x40, 0x00, 0x00, 0x00, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, + 0x05, 0x38, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char ReadProgmem_dw_1[302] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x59, 0x0c, 0x0d, 0x60, 0x02, 0x01, 0x90, 0x03, 0x80, 0x00, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x49, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x4f, 0x00, 0x90, 0x04, 0x80, 0x00, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, + 0x00, 0x01, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x80, 0x00, 0x00, 0x00, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, + 0x05, 0x38, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char ReadProgmem_dw_2[302] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x59, 0x0c, 0x0d, 0x60, 0x02, 0x01, 0x90, 0x03, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x49, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x4f, 0x00, 0x90, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, + 0x00, 0x02, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x01, 0x00, 0x00, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, + 0x05, 0x38, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char ReadProgmem_dw_3[302] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x59, 0x0c, 0x0d, 0x60, 0x02, 0x01, 0x90, 0x03, 0x20, 0x00, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x49, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x4f, 0x00, 0x90, 0x04, 0x20, 0x00, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, + 0x40, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, + 0x05, 0x38, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char ReadProgmem_dw_4[302] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, + 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x59, 0x0c, 0x0d, 0x60, 0x02, 0x01, 0x90, 0x03, 0x10, 0x00, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x49, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x4f, 0x00, 0x90, 0x04, 0x10, 0x00, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, + 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x10, 0x00, 0x00, 0x00, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, + 0x05, 0x38, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, + 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, + 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x5a, +}; + +const unsigned char WriteDataEEmem_dw_0[1728] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3f, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x42, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x46, + 0x0c, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, + 0x18, 0xf2, 0xbd, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xe1, 0xbd, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x0c, 0x1e, 0x46, 0x0c, 0x90, + 0x18, 0x00, 0xbc, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xaf, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x18, 0xbf, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x94, 0x0a, 0x00, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x42, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char WriteDataEEmem_dw_1[1728] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x46, + 0x0c, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, + 0x18, 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x0c, 0x1e, 0x46, 0x0c, 0x90, + 0x18, 0x0d, 0xba, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xac, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x18, 0xbc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x94, 0x0a, 0x00, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char WriteDataEEmem_dw_2[1728] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x08, 0x00, 0x90, 0x02, 0x3f, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x42, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x08, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x46, + 0x0c, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, + 0x18, 0xf2, 0xbd, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xe1, 0xbd, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x19, 0x01, 0xb6, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x0c, 0x1e, 0x46, 0x0c, 0x90, + 0x18, 0x00, 0xbc, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xaf, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x18, 0xbf, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x94, 0x0a, 0x00, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x42, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char WriteDataEEmem_dw_3[1728] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x2e, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x46, + 0x0c, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, + 0x18, 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x19, 0x0e, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x0c, 0x1e, 0x46, 0x0c, 0x90, + 0x18, 0x0d, 0xba, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xac, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x18, 0xbc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x94, 0x0a, 0x00, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char WriteDataEEmem_dw_4[1728] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x1f, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x46, + 0x0c, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, + 0x18, 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x19, 0x0f, 0xb2, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x0c, 0x1e, 0x46, 0x0c, 0x90, + 0x18, 0x0d, 0xba, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xac, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x18, 0xbc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x94, 0x0a, 0x00, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char WriteDataEEmem_dw_5[1728] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x27, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x46, + 0x0c, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, + 0x18, 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x19, 0x07, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x0c, 0x1e, 0x46, 0x0c, 0x90, + 0x18, 0x0d, 0xba, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xac, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x18, 0xbc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x94, 0x0a, 0x00, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char WriteDataEEmem_dw_6[1728] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x22, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x46, + 0x0c, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, + 0x18, 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x19, 0x02, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x0c, 0x1e, 0x46, 0x0c, 0x90, + 0x18, 0x0d, 0xba, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xac, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x18, 0xbc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x94, 0x0a, 0x00, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char WriteDataEEmem_dw_7[1728] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x20, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x90, + 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, + 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x46, + 0x0c, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, + 0x18, 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x19, 0x00, 0xb4, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x99, 0x0c, 0x1e, 0x46, 0x0c, 0x90, + 0x18, 0x0d, 0xba, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, + 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xac, 0xbb, 0x00, 0x00, 0x90, 0x0c, + 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x90, 0x18, 0xbc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x94, 0x0a, 0x00, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char ReadDataEEmem_dw_0[1648] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3f, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x42, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x95, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x18, + 0xf2, 0xbd, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, + 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xe1, 0xbd, 0x00, 0x00, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x90, 0x18, 0xcf, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x19, 0x00, 0xb4, 0x00, 0x00, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x18, 0x01, 0xbe, 0x00, 0x00, 0x1e, 0x5b, 0x18, 0x9f, 0x96, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x42, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x70, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char ReadDataEEmem_dw_1[1648] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x95, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x18, + 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, + 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x90, 0x18, 0xcc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x19, 0x0d, 0xb2, 0x00, 0x00, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x18, 0x01, 0xbe, 0x00, 0x00, 0x1e, 0x5b, 0x18, 0x9f, 0x96, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x70, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char ReadDataEEmem_dw_2[1648] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x08, 0x00, 0x90, 0x02, 0x3f, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x42, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x31, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x08, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x95, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x18, + 0xf2, 0xbd, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, + 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xe1, 0xbd, 0x00, 0x00, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x90, 0x18, 0xcf, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x19, 0x00, 0xb4, 0x00, 0x00, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x18, 0x01, 0xbe, 0x00, 0x00, 0x1e, 0x5b, 0x18, 0x9f, 0x96, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x42, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x70, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char ReadDataEEmem_dw_3[1648] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x2e, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x2e, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x95, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x18, + 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, + 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x90, 0x18, 0xcc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x19, 0x0d, 0xb2, 0x00, 0x00, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x18, 0x0e, 0xbc, 0x00, 0x00, 0x1e, 0x5b, 0x18, 0x9f, 0x96, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x70, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char ReadDataEEmem_dw_4[1648] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x1f, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x1f, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x95, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x18, + 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, + 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x90, 0x18, 0xcc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x19, 0x0d, 0xb2, 0x00, 0x00, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x18, 0x0f, 0xba, 0x00, 0x00, 0x1e, 0x5b, 0x18, 0x9f, 0x96, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x70, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char ReadDataEEmem_dw_5[1648] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x27, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x27, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x95, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x18, + 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, + 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x90, 0x18, 0xcc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x19, 0x0d, 0xb2, 0x00, 0x00, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x18, 0x07, 0xbc, 0x00, 0x00, 0x1e, 0x5b, 0x18, 0x9f, 0x96, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x70, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char ReadDataEEmem_dw_6[1648] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x22, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x22, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x95, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x18, + 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, + 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x90, 0x18, 0xcc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x19, 0x0d, 0xb2, 0x00, 0x00, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x18, 0x02, 0xbc, 0x00, 0x00, 0x1e, 0x5b, 0x18, 0x9f, 0x96, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x70, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char ReadDataEEmem_dw_7[1648] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x0b, 0x01, 0x93, 0x0b, 0x04, 0x00, 0x90, 0x02, 0x3c, 0x00, 0x00, + 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, + 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, + 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, + 0x20, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, + 0x1d, 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, 0x00, 0xb5, + 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x03, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1e, 0x90, 0x02, 0x3f, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0x60, 0x0c, 0x00, 0x90, 0x0d, 0x20, 0x00, 0x00, + 0x00, 0x6a, 0x0c, 0x0d, 0xfe, 0x0c, 0x20, 0x00, 0x00, 0x00, 0xb5, 0x02, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x03, 0x68, 0x0e, 0x01, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x03, + 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6c, 0x1f, 0x90, 0x0a, 0x04, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x95, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1c, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x46, 0x0c, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x46, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x18, + 0xff, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, + 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x18, 0xee, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x90, 0x18, 0xcc, 0xbb, 0x00, 0x00, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x18, + 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x90, 0x19, 0x0d, 0xb2, 0x00, 0x00, 0x90, + 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, + 0x0c, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x19, 0x90, 0x0c, 0x23, 0x00, 0x00, 0x00, 0x1e, + 0x40, 0x0c, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x18, 0x00, 0xbc, 0x00, 0x00, 0x1e, 0x5b, 0x18, 0x9f, 0x96, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0xae, 0x90, 0x02, 0x3c, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, + 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, + 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, + 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x46, 0x1c, 0x90, 0x02, 0x3d, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, + 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, + 0x0c, 0x1e, 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1d, + 0x90, 0x02, 0x3e, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x02, 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, + 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, + 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1e, 0x90, 0x02, + 0x3f, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, + 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x02, + 0x90, 0x0d, 0x03, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, + 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, + 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, + 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x46, 0x1f, 0x90, 0x02, 0x01, 0x00, + 0x00, 0x00, 0x6a, 0x0b, 0x02, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x70, 0x06, 0xfb, 0x0b, 0x00, +}; + +const unsigned char WriteMem8_dw_0[217] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x02, 0x01, 0x90, 0x03, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x02, 0x03, + 0x18, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x1e, 0x00, 0x90, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6a, 0x02, + 0x04, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x60, 0x0e, 0x04, 0x68, 0x0e, 0x01, 0x6e, 0x0d, 0x0e, 0x92, 0x0d, 0x01, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x60, 0x0c, 0x04, 0x1e, 0x48, 0x0c, 0x6e, 0x00, 0x04, 0x90, 0x05, + 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x05, 0x07, 0x00, +}; + +const unsigned char ReadMem8_dw_0[205] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x60, 0x02, 0x01, 0x90, 0x03, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x19, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x1f, 0x00, 0x90, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x60, 0x06, 0x00, 0x90, 0x07, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x06, 0x07, 0xfe, 0x06, + 0x31, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x04, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x04, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, + 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x05, 0x08, 0x00, +}; + +const unsigned char ReadMem8_dw_1[205] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x60, 0x02, 0x01, 0x90, 0x03, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x19, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x1f, 0x00, 0x90, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x60, 0x06, 0x00, 0x90, 0x07, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x06, 0x07, 0xfe, 0x06, + 0x2e, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x04, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x04, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, + 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x05, 0x08, 0x00, +}; + +const unsigned char ReadMem8_dw_2[205] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x60, 0x02, 0x01, 0x90, 0x03, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x19, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x1f, 0x00, 0x90, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x60, 0x06, 0x00, 0x90, 0x07, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x06, 0x07, 0xfe, 0x06, + 0x1f, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x04, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x04, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, + 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x05, 0x08, 0x00, +}; + +const unsigned char ReadMem8_dw_3[205] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x60, 0x02, 0x01, 0x90, 0x03, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x19, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x1f, 0x00, 0x90, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x60, 0x06, 0x00, 0x90, 0x07, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x06, 0x07, 0xfe, 0x06, + 0x27, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x04, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x04, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, + 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x05, 0x08, 0x00, +}; + +const unsigned char ReadMem8_dw_4[205] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x60, 0x02, 0x01, 0x90, 0x03, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x19, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x1f, 0x00, 0x90, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x60, 0x06, 0x00, 0x90, 0x07, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x06, 0x07, 0xfe, 0x06, + 0x22, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x04, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x04, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, + 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x05, 0x08, 0x00, +}; + +const unsigned char ReadMem8_dw_5[205] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x60, 0x02, 0x01, 0x90, 0x03, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x02, + 0x03, 0x19, 0x00, 0x60, 0x04, 0x02, 0xfb, 0x1f, 0x00, 0x90, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6a, + 0x02, 0x04, 0x60, 0x06, 0x00, 0x90, 0x07, 0x20, 0x00, 0x00, 0x00, 0x6a, 0x06, 0x07, 0xfe, 0x06, + 0x20, 0x00, 0x00, 0x00, 0xbf, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, + 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, + 0x47, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, + 0x0c, 0x0d, 0x60, 0x0e, 0x04, 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, + 0x0e, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, 0x04, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0x6e, + 0x00, 0x04, 0x90, 0x05, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x05, 0x08, 0x00, +}; + +const unsigned char switchtoISP_dw_0[11] = { + 0x1e, 0x4a, 0x90, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x00, +}; + +const unsigned char ReadMemIO_dw_0[186] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x60, 0x02, 0x00, 0x90, 0x03, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x02, 0x03, 0xfe, 0x02, 0x31, 0x00, 0x00, 0x00, 0xad, 0x00, 0x90, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x02, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x02, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0xfb, 0xb3, 0x00, 0x9e, 0x00, 0x00, + 0x00, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadMemIO_dw_1[186] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x60, 0x02, 0x00, 0x90, 0x03, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x02, 0x03, 0xfe, 0x02, 0x2e, 0x00, 0x00, 0x00, 0xad, 0x00, 0x90, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x02, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x02, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0xfb, 0xb3, 0x00, 0x9e, 0x00, 0x00, + 0x00, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadMemIO_dw_2[186] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x60, 0x02, 0x00, 0x90, 0x03, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x02, 0x03, 0xfe, 0x02, 0x1f, 0x00, 0x00, 0x00, 0xad, 0x00, 0x90, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x02, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x02, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0xfb, 0xb3, 0x00, 0x9e, 0x00, 0x00, + 0x00, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadMemIO_dw_3[186] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x60, 0x02, 0x00, 0x90, 0x03, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x02, 0x03, 0xfe, 0x02, 0x27, 0x00, 0x00, 0x00, 0xad, 0x00, 0x90, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x02, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x02, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0xfb, 0xb3, 0x00, 0x9e, 0x00, 0x00, + 0x00, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadMemIO_dw_4[186] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x60, 0x02, 0x00, 0x90, 0x03, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x02, 0x03, 0xfe, 0x02, 0x22, 0x00, 0x00, 0x00, 0xad, 0x00, 0x90, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x02, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x02, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0xfb, 0xb3, 0x00, 0x9e, 0x00, 0x00, + 0x00, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadMemIO_dw_5[186] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x60, 0x02, 0x00, 0x90, 0x03, 0x20, 0x00, 0x00, 0x00, + 0x6a, 0x02, 0x03, 0xfe, 0x02, 0x20, 0x00, 0x00, 0x00, 0xad, 0x00, 0x90, 0x02, 0x01, 0x00, 0x00, + 0x00, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0d, 0x20, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, + 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, + 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, + 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x60, 0x0e, 0x02, + 0x68, 0x0e, 0x01, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x0d, 0x0e, 0x90, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x00, 0x60, 0x0e, 0x02, 0x1e, 0x49, 0x0c, 0x0d, 0x0e, 0xfb, 0xb3, 0x00, 0x9e, 0x00, 0x00, + 0x00, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteMemIO_dw_0[189] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0d, 0x20, 0x00, + 0x00, 0x00, 0x90, 0x0c, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x05, 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, + 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x47, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x60, 0x0e, + 0x02, 0x68, 0x0e, 0x01, 0x6e, 0x0d, 0x0e, 0x92, 0x0d, 0x01, 0x00, 0x00, 0x00, 0x90, 0x0c, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x01, + 0x00, 0x00, 0x00, 0x1e, 0x43, 0x0c, 0x0d, 0x90, 0x0c, 0x06, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, + 0x00, 0x00, 0x00, 0x1e, 0x41, 0x0c, 0x0d, 0x90, 0x0c, 0x02, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x42, 0x0c, 0x0d, 0x90, 0x0c, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, + 0x60, 0x0c, 0x02, 0x1e, 0x48, 0x0c, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + + + + +static void pickit_dw_script_init(SCRIPT *scr); +static void pickit_dw_script_init(SCRIPT *scr) { + memset(scr, 0x00, sizeof(SCRIPT)); // Make sure everything is NULL + + scr->EnterProgMode = EnterProgMode_dw_0; + scr->ExitProgMode = ExitProgMode_dw_0; + scr->SetSpeed = SetSpeed_dw_0; + scr->EraseChip = EraseChip_dw_0; + scr->WriteMem8 = WriteMem8_dw_0; + scr->switchtoISP = switchtoISP_dw_0; + scr->WriteMemIO = WriteMemIO_dw_0; + + scr->EnterProgMode_len = sizeof(EnterProgMode_dw_0); + scr->ExitProgMode_len = sizeof(ExitProgMode_dw_0); + scr->SetSpeed_len = sizeof(SetSpeed_dw_0); + scr->EraseChip_len = sizeof(EraseChip_dw_0); + scr->WriteMem8_len = sizeof(WriteMem8_dw_0); + scr->switchtoISP_len = sizeof(switchtoISP_dw_0); + scr->WriteMemIO_len = sizeof(WriteMemIO_dw_0); +} + + +const char * const pickit5_dw_chip_lut[] = { + "AT90PWM1", "AT90PWM161", "AT90PWM216", "AT90PWM2B", "AT90PWM3", "AT90PWM316", "AT90PWM3B", "AT90PWM81", + "AT90USB162", "AT90USB82", "ATmega168", "ATmega168A", "ATmega168P", "ATmega168PA", "ATmega168PB", "ATmega16HVA", + "ATmega16HVB", "ATmega16HVBrevB", "ATmega16M1", "ATmega16U2", "ATmega328", "ATmega328P", "ATmega328PB", "ATmega32C1", + "ATmega32HVB", "ATmega32HVBrevB", "ATmega32M1", "ATmega32U2", "ATmega48", "ATmega48A", "ATmega48P", "ATmega48PA", + "ATmega48PB", "ATmega64C1", "ATmega64HVE2", "ATmega64M1", "ATmega88", "ATmega88A", "ATmega88P", "ATmega88PA", + "ATmega88PB", "ATmega8HVA", "ATmega8U2", "ATtiny13", "ATtiny13A", "ATtiny1634", "ATtiny167", "ATtiny2313", + "ATtiny2313A", "ATtiny24", "ATtiny24A", "ATtiny25", "ATtiny261", "ATtiny261A", "ATtiny4313", "ATtiny43U", + "ATtiny44", "ATtiny441", "ATtiny44A", "ATtiny45", "ATtiny461", "ATtiny461A", "ATtiny48", "ATtiny828", + "ATtiny84", "ATtiny841", "ATtiny84A", "ATtiny85", "ATtiny861", "ATtiny861A", "ATtiny87", "ATtiny88", +}; + +int get_pickit_dw_script(SCRIPT *scr, const char* partdesc) { + if ((scr == NULL) || (partdesc == NULL)) { + return -1; + } + int namepos = -1; + for (int i = 0; i < 72; i++) { + if (strncmp(pickit5_dw_chip_lut[i], partdesc, 10) == 0) { + namepos = i; + break; + } + } + if (namepos == -1) { + return -2; + } + + pickit_dw_script_init(scr); // load common functions + + switch (namepos) { + case 0: /* AT90PWM1 */ + case 3: /* AT90PWM2B */ + case 4: /* AT90PWM3 */ + case 6: /* AT90PWM3B */ + case 36: /* ATmega88 */ + case 37: /* ATmega88A */ + case 38: /* ATmega88P */ + case 39: /* ATmega88PA */ + case 40: /* ATmega88PB */ + case 63: /* ATtiny828 */ + scr->WriteProgmem = WriteProgmem_dw_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_0); + scr->ReadProgmem = ReadProgmem_dw_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_0); + scr->WriteDataEEmem = WriteDataEEmem_dw_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_0); + scr->ReadDataEEmem = ReadDataEEmem_dw_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_0); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 1: /* AT90PWM161 */ + scr->WriteProgmem = WriteProgmem_dw_1; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_1); + scr->ReadProgmem = ReadProgmem_dw_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_1); + scr->WriteDataEEmem = WriteDataEEmem_dw_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_1); + scr->ReadDataEEmem = ReadDataEEmem_dw_1; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_1); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 2: /* AT90PWM216 */ + case 5: /* AT90PWM316 */ + case 8: /* AT90USB162 */ + case 9: /* AT90USB82 */ + case 16: /* ATmega16HVB */ + case 17: /* ATmega16HVBrevB */ + case 18: /* ATmega16M1 */ + case 19: /* ATmega16U2 */ + scr->WriteProgmem = WriteProgmem_dw_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_2); + scr->ReadProgmem = ReadProgmem_dw_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_1); + scr->WriteDataEEmem = WriteDataEEmem_dw_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_0); + scr->ReadDataEEmem = ReadDataEEmem_dw_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_0); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 7: /* AT90PWM81 */ + scr->WriteProgmem = WriteProgmem_dw_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_0); + scr->ReadProgmem = ReadProgmem_dw_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_0); + scr->WriteDataEEmem = WriteDataEEmem_dw_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_1); + scr->ReadDataEEmem = ReadDataEEmem_dw_1; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_1); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 10: /* ATmega168 */ + case 11: /* ATmega168A */ + case 12: /* ATmega168P */ + case 13: /* ATmega168PA */ + case 14: /* ATmega168PB */ + scr->WriteProgmem = WriteProgmem_dw_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_3); + scr->ReadProgmem = ReadProgmem_dw_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_1); + scr->WriteDataEEmem = WriteDataEEmem_dw_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_0); + scr->ReadDataEEmem = ReadDataEEmem_dw_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_0); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 15: /* ATmega16HVA */ + case 41: /* ATmega8HVA */ + case 46: /* ATtiny167 */ + case 70: /* ATtiny87 */ + scr->WriteProgmem = WriteProgmem_dw_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_4); + scr->ReadProgmem = ReadProgmem_dw_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_1); + scr->WriteDataEEmem = WriteDataEEmem_dw_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_0); + scr->ReadDataEEmem = ReadDataEEmem_dw_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_0); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 20: /* ATmega328 */ + case 21: /* ATmega328P */ + case 22: /* ATmega328PB */ + case 23: /* ATmega32C1 */ + case 24: /* ATmega32HVB */ + case 25: /* ATmega32HVBrevB */ + case 26: /* ATmega32M1 */ + case 27: /* ATmega32U2 */ + scr->WriteProgmem = WriteProgmem_dw_5; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_5); + scr->ReadProgmem = ReadProgmem_dw_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_1); + scr->WriteDataEEmem = WriteDataEEmem_dw_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_0); + scr->ReadDataEEmem = ReadDataEEmem_dw_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_0); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 28: /* ATmega48 */ + case 29: /* ATmega48A */ + case 30: /* ATmega48P */ + case 31: /* ATmega48PA */ + case 32: /* ATmega48PB */ + case 62: /* ATtiny48 */ + case 71: /* ATtiny88 */ + scr->WriteProgmem = WriteProgmem_dw_6; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_6); + scr->ReadProgmem = ReadProgmem_dw_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_0); + scr->WriteDataEEmem = WriteDataEEmem_dw_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_0); + scr->ReadDataEEmem = ReadDataEEmem_dw_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_0); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 33: /* ATmega64C1 */ + case 35: /* ATmega64M1 */ + scr->WriteProgmem = WriteProgmem_dw_7; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_7); + scr->ReadProgmem = ReadProgmem_dw_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_2); + scr->WriteDataEEmem = WriteDataEEmem_dw_2; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_2); + scr->ReadDataEEmem = ReadDataEEmem_dw_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_2); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 34: /* ATmega64HVE2 */ + scr->WriteProgmem = WriteProgmem_dw_8; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_8); + scr->ReadProgmem = ReadProgmem_dw_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_1); + scr->WriteDataEEmem = WriteDataEEmem_dw_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_0); + scr->ReadDataEEmem = ReadDataEEmem_dw_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_0); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 42: /* ATmega8U2 */ + scr->WriteProgmem = WriteProgmem_dw_9; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_9); + scr->ReadProgmem = ReadProgmem_dw_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_1); + scr->WriteDataEEmem = WriteDataEEmem_dw_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_0); + scr->ReadDataEEmem = ReadDataEEmem_dw_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_0); + scr->ReadMem8 = ReadMem8_dw_0; + scr->ReadMem8_len = sizeof(ReadMem8_dw_0); + scr->ReadMemIO = ReadMemIO_dw_0; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_0); + break; + case 43: /* ATtiny13 */ + case 44: /* ATtiny13A */ + scr->WriteProgmem = WriteProgmem_dw_10; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_10); + scr->ReadProgmem = ReadProgmem_dw_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_3); + scr->WriteDataEEmem = WriteDataEEmem_dw_3; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_3); + scr->ReadDataEEmem = ReadDataEEmem_dw_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_3); + scr->ReadMem8 = ReadMem8_dw_1; + scr->ReadMem8_len = sizeof(ReadMem8_dw_1); + scr->ReadMemIO = ReadMemIO_dw_1; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_1); + break; + case 45: /* ATtiny1634 */ + scr->WriteProgmem = WriteProgmem_dw_11; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_11); + scr->ReadProgmem = ReadProgmem_dw_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_3); + scr->WriteDataEEmem = WriteDataEEmem_dw_3; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_3); + scr->ReadDataEEmem = ReadDataEEmem_dw_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_3); + scr->ReadMem8 = ReadMem8_dw_1; + scr->ReadMem8_len = sizeof(ReadMem8_dw_1); + scr->ReadMemIO = ReadMemIO_dw_1; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_1); + break; + case 47: /* ATtiny2313 */ + scr->WriteProgmem = WriteProgmem_dw_12; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_12); + scr->ReadProgmem = ReadProgmem_dw_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_3); + scr->WriteDataEEmem = WriteDataEEmem_dw_4; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_4); + scr->ReadDataEEmem = ReadDataEEmem_dw_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_4); + scr->ReadMem8 = ReadMem8_dw_2; + scr->ReadMem8_len = sizeof(ReadMem8_dw_2); + scr->ReadMemIO = ReadMemIO_dw_2; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_2); + break; + case 48: /* ATtiny2313A */ + case 49: /* ATtiny24 */ + case 50: /* ATtiny24A */ + scr->WriteProgmem = WriteProgmem_dw_13; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_13); + scr->ReadProgmem = ReadProgmem_dw_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_3); + scr->WriteDataEEmem = WriteDataEEmem_dw_5; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_5); + scr->ReadDataEEmem = ReadDataEEmem_dw_5; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_5); + scr->ReadMem8 = ReadMem8_dw_3; + scr->ReadMem8_len = sizeof(ReadMem8_dw_3); + scr->ReadMemIO = ReadMemIO_dw_3; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_3); + break; + case 51: /* ATtiny25 */ + scr->WriteProgmem = WriteProgmem_dw_14; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_14); + scr->ReadProgmem = ReadProgmem_dw_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_3); + scr->WriteDataEEmem = WriteDataEEmem_dw_6; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_6); + scr->ReadDataEEmem = ReadDataEEmem_dw_6; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_6); + scr->ReadMem8 = ReadMem8_dw_4; + scr->ReadMem8_len = sizeof(ReadMem8_dw_4); + scr->ReadMemIO = ReadMemIO_dw_4; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_4); + break; + case 52: /* ATtiny261 */ + case 53: /* ATtiny261A */ + scr->WriteProgmem = WriteProgmem_dw_15; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_15); + scr->ReadProgmem = ReadProgmem_dw_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_3); + scr->WriteDataEEmem = WriteDataEEmem_dw_7; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_7); + scr->ReadDataEEmem = ReadDataEEmem_dw_7; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_7); + scr->ReadMem8 = ReadMem8_dw_5; + scr->ReadMem8_len = sizeof(ReadMem8_dw_5); + scr->ReadMemIO = ReadMemIO_dw_5; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_5); + break; + case 54: /* ATtiny4313 */ + case 55: /* ATtiny43U */ + case 56: /* ATtiny44 */ + case 58: /* ATtiny44A */ + case 64: /* ATtiny84 */ + case 66: /* ATtiny84A */ + scr->WriteProgmem = WriteProgmem_dw_16; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_16); + scr->ReadProgmem = ReadProgmem_dw_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_0); + scr->WriteDataEEmem = WriteDataEEmem_dw_5; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_5); + scr->ReadDataEEmem = ReadDataEEmem_dw_5; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_5); + scr->ReadMem8 = ReadMem8_dw_3; + scr->ReadMem8_len = sizeof(ReadMem8_dw_3); + scr->ReadMemIO = ReadMemIO_dw_3; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_3); + break; + case 57: /* ATtiny441 */ + case 65: /* ATtiny841 */ + scr->WriteProgmem = WriteProgmem_dw_17; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_17); + scr->ReadProgmem = ReadProgmem_dw_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_4); + scr->WriteDataEEmem = WriteDataEEmem_dw_5; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_5); + scr->ReadDataEEmem = ReadDataEEmem_dw_5; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_5); + scr->ReadMem8 = ReadMem8_dw_3; + scr->ReadMem8_len = sizeof(ReadMem8_dw_3); + scr->ReadMemIO = ReadMemIO_dw_3; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_3); + break; + case 59: /* ATtiny45 */ + case 67: /* ATtiny85 */ + scr->WriteProgmem = WriteProgmem_dw_18; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_18); + scr->ReadProgmem = ReadProgmem_dw_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_0); + scr->WriteDataEEmem = WriteDataEEmem_dw_6; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_6); + scr->ReadDataEEmem = ReadDataEEmem_dw_6; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_6); + scr->ReadMem8 = ReadMem8_dw_4; + scr->ReadMem8_len = sizeof(ReadMem8_dw_4); + scr->ReadMemIO = ReadMemIO_dw_4; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_4); + break; + case 60: /* ATtiny461 */ + case 61: /* ATtiny461A */ + case 68: /* ATtiny861 */ + case 69: /* ATtiny861A */ + scr->WriteProgmem = WriteProgmem_dw_19; + scr->WriteProgmem_len = sizeof(WriteProgmem_dw_19); + scr->ReadProgmem = ReadProgmem_dw_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_dw_0); + scr->WriteDataEEmem = WriteDataEEmem_dw_7; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_dw_7); + scr->ReadDataEEmem = ReadDataEEmem_dw_7; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_dw_7); + scr->ReadMem8 = ReadMem8_dw_5; + scr->ReadMem8_len = sizeof(ReadMem8_dw_5); + scr->ReadMemIO = ReadMemIO_dw_5; + scr->ReadMemIO_len = sizeof(ReadMemIO_dw_5); + break; + } + return 0; +} \ No newline at end of file diff --git a/src/pickit5_lut_isp.c b/src/pickit5_lut_isp.c new file mode 100644 index 000000000..4e4dd09a0 --- /dev/null +++ b/src/pickit5_lut_isp.c @@ -0,0 +1,3550 @@ +/* This file was auto-generated by scripts_decoder.py. + * Any changes will be overwritten on regeneration + */ + +/* + * avrdude - A Downloader/Uploader for AVR device programmers + * Copyright (C) 2024 MX682X + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include "pickit5_lut.h" + + +const unsigned char EnterProgMode_isp_0[44] = { + 0xac, 0x02, 0x00, 0x1e, 0x30, 0x90, 0x05, 0x00, 0x00, 0x53, 0xac, 0x9b, 0x06, 0x02, 0x9b, 0x07, + 0x00, 0x1e, 0x35, 0x05, 0x06, 0x07, 0x6c, 0x06, 0xfd, 0x53, 0x00, 0x00, 0x00, 0x2c, 0x00, 0x1e, + 0x36, 0xa4, 0x1e, 0x31, 0x90, 0x01, 0xc0, 0x0e, 0x00, 0x00, 0x7f, 0x01, +}; + +const unsigned char ExitProgMode_isp_0[2] = { + 0x1e, 0x31, +}; + +const unsigned char SetSpeed_isp_0[5] = { + 0x91, 0x00, 0x1e, 0x33, 0x00, +}; + +const unsigned char GetDeviceID_isp_0[66] = { + 0x90, 0x00, 0x00, 0x00, 0x00, 0x30, 0x9c, 0x01, 0x00, 0x00, 0xac, 0x03, 0x00, 0x9b, 0x0c, 0x32, + 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x42, 0x00, 0x60, 0x0c, 0x00, + 0x9b, 0x0d, 0x03, 0x9b, 0x0e, 0x00, 0x1e, 0x35, 0x0c, 0x0d, 0x0e, 0x9f, 0x92, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x60, 0x02, 0x01, 0x68, 0x02, 0x08, 0x66, 0x00, 0xff, 0x00, 0xff, 0xff, 0x7c, 0x00, + 0x02, 0xa4, +}; + +const unsigned char EraseChip_isp_0[58] = { + 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, + 0x90, 0x0c, 0x00, 0x00, 0x80, 0xac, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x01, 0xfe, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x2a, 0x00, 0x94, 0x2d, 0x00, 0xfb, 0x3a, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, +}; + +const unsigned char EraseChip_isp_1[58] = { + 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, + 0x90, 0x0c, 0x00, 0x00, 0x80, 0xac, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x01, 0xfe, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x2a, 0x00, 0x94, 0x37, 0x00, 0xfb, 0x3a, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, +}; + +const unsigned char EraseChip_isp_2[58] = { + 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, + 0x90, 0x0c, 0x00, 0x00, 0x80, 0xac, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x00, 0xfe, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x2a, 0x00, 0x94, 0x14, 0x00, 0xfb, 0x3a, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, +}; + +const unsigned char EraseChip_isp_3[58] = { + 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, + 0x90, 0x0c, 0x00, 0x00, 0x80, 0xac, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x01, 0xfe, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x2a, 0x00, 0x94, 0x14, 0x00, 0xfb, 0x3a, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, +}; + +const unsigned char EraseChip_isp_4[58] = { + 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, + 0x90, 0x0c, 0x00, 0x00, 0x80, 0xac, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x00, 0xfe, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x2a, 0x00, 0x94, 0x64, 0x00, 0xfb, 0x3a, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, +}; + +const unsigned char EraseChip_isp_5[58] = { + 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, + 0x90, 0x0c, 0x00, 0x00, 0x80, 0xac, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x00, 0xfe, 0x0c, 0x01, 0x00, + 0x00, 0x00, 0x2a, 0x00, 0x94, 0x0a, 0x00, 0xfb, 0x3a, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x3a, 0x00, +}; + +const unsigned char WriteProgmem_isp_0[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x02, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_1[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x80, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_2[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x01, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_3[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x20, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x40, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x20, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x20, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_4[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x40, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_5[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x02, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x06, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x06, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x06, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_6[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x40, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x06, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x06, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x06, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_7[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x01, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x06, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x06, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x06, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_8[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x20, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x06, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x06, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x06, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_9[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x02, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x21, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x21, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x21, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_10[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x02, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x32, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x32, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x32, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_11[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x40, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x21, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x21, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x21, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_12[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x04, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_13[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x04, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x32, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x32, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x32, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_14[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x80, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x21, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x21, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x21, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_15[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x80, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_16[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x80, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x06, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x06, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x06, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_17[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x10, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x40, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x20, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x20, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_18[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x01, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x21, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x21, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x21, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_19[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x01, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x00, 0x01, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x80, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x80, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x32, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x32, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x32, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_20[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x00, 0x01, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_21[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x20, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x21, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x40, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x21, 0x93, 0x01, 0x20, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x20, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x21, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_22[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x20, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_23[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x04, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x80, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x04, 0x93, 0x01, 0x40, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x40, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x04, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_24[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x04, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x20, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x10, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x10, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_25[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x40, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x20, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x10, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x10, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_26[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x08, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x20, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x10, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x10, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_27[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x08, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x21, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x20, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x21, 0x93, 0x01, 0x10, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x10, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x21, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_28[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x10, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x10, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x08, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x08, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_isp_29[589] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, + 0x02, 0x00, 0xfc, 0x03, 0x02, 0x4d, 0x02, 0x90, 0x15, 0x00, 0x20, 0x00, 0x00, 0x90, 0x16, 0x00, + 0x00, 0x02, 0x00, 0x67, 0x01, 0x01, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, + 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x40, 0x01, 0x90, 0x12, 0x10, 0x00, 0x00, 0x00, + 0x67, 0x12, 0x01, 0x9b, 0x14, 0x41, 0x93, 0x01, 0x08, 0x00, 0xad, 0x01, 0xfa, 0x15, 0x16, 0x54, + 0x00, 0xfb, 0x72, 0x00, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xac, 0x08, 0x00, 0x99, 0x0b, 0x99, 0x0c, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x84, + 0x00, 0xfb, 0x8c, 0x00, 0xfe, 0x0c, 0xff, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x40, 0x60, 0x0e, 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, + 0x0e, 0x7c, 0x0d, 0x0b, 0x1e, 0x34, 0x0d, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x48, 0x60, 0x0e, 0x00, + 0x68, 0x0e, 0x08, 0x66, 0x0e, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x4c, 0x60, + 0x10, 0x00, 0x6a, 0x10, 0x12, 0x68, 0x10, 0x08, 0x66, 0x10, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0f, + 0x10, 0x1e, 0x34, 0x0f, 0x94, 0x04, 0x00, 0x66, 0x14, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x40, + 0x00, 0x00, 0x00, 0x08, 0x01, 0xfe, 0x14, 0x20, 0x00, 0x00, 0x00, 0x1b, 0x01, 0xfe, 0x14, 0x10, + 0x00, 0x00, 0x00, 0x39, 0x01, 0xfb, 0x3c, 0x01, 0x9b, 0x0f, 0x32, 0x1e, 0x37, 0x0f, 0x6c, 0x10, + 0x9b, 0x11, 0x00, 0xfc, 0x10, 0x11, 0x3d, 0x01, 0xfb, 0x3c, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, + 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x68, 0x11, 0x08, 0x67, 0x11, 0x08, + 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0xfb, 0x3c, 0x01, 0x94, 0x0a, 0x00, 0xae, 0xfb, 0x4d, 0x02, + 0x90, 0x14, 0x41, 0x00, 0x00, 0x00, 0xad, 0x01, 0x99, 0x0b, 0x99, 0x0c, 0xfa, 0x15, 0x16, 0x54, + 0x01, 0xfb, 0x72, 0x01, 0x60, 0x0d, 0x00, 0x67, 0x0d, 0x08, 0x66, 0x0d, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0e, 0x0d, 0x1e, + 0x34, 0x0e, 0xfe, 0x0b, 0xff, 0x00, 0x00, 0x00, 0xdc, 0x01, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, + 0x0f, 0x0b, 0x1e, 0x34, 0x0f, 0x66, 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, + 0x00, 0xae, 0x01, 0xfe, 0x14, 0x04, 0x00, 0x00, 0x00, 0xb4, 0x01, 0xfb, 0xdc, 0x01, 0x94, 0x0a, + 0x00, 0xfb, 0xdc, 0x01, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, + 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0b, 0x6c, + 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x01, 0xfb, 0x4d, 0x02, 0xfe, 0x0c, 0xff, 0x00, + 0x00, 0x00, 0x46, 0x02, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x48, 0x60, 0x10, 0x00, 0x68, 0x10, 0x08, + 0x66, 0x0f, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0f, 0x10, 0x7c, 0x0f, 0x0c, 0x1e, 0x34, 0x0f, 0x66, + 0x14, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x14, 0x02, 0x00, 0x00, 0x00, 0x18, 0x02, 0xfe, 0x14, 0x04, + 0x00, 0x00, 0x00, 0x1e, 0x02, 0xfb, 0x46, 0x02, 0x94, 0x0a, 0x00, 0xfb, 0x46, 0x02, 0x90, 0x0f, + 0x28, 0x00, 0x00, 0x00, 0x60, 0x10, 0x00, 0x67, 0x10, 0x08, 0x60, 0x11, 0x00, 0x66, 0x11, 0xff, + 0x00, 0x00, 0x00, 0x1e, 0x38, 0x0f, 0x10, 0x11, 0x0c, 0x6c, 0x10, 0xfe, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x02, 0xfb, 0x4d, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_0[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x80, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x02, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x80, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_1[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x80, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x80, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x80, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_2[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x80, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x01, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x80, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_3[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x20, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x20, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x20, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_4[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x40, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x40, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x40, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_5[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x40, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x20, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x40, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_6[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x80, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x04, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x80, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_7[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x40, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x80, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x40, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_8[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x20, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x20, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_9[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x40, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x00, 0x01, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x40, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_10[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x40, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x40, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_11[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x10, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x10, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_12[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x10, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x40, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x10, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_13[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x10, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x10, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_14[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x08, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x08, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char ReadProgmem_isp_15[156] = { + 0x91, 0x00, 0x91, 0x01, 0x67, 0x00, 0x01, 0x67, 0x01, 0x01, 0x93, 0x01, 0x08, 0x00, 0x9b, 0x02, + 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x03, 0x9b, 0x02, 0x00, 0xfc, 0x03, 0x02, 0x9c, 0x00, 0x90, 0x0c, + 0x00, 0x20, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, 0xad, 0x01, 0xfa, 0x0c, 0x0d, 0x34, + 0x00, 0xfb, 0x52, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, + 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, + 0x34, 0x0d, 0xac, 0x08, 0x00, 0x60, 0x0c, 0x00, 0x68, 0x0c, 0x08, 0x90, 0x0d, 0x00, 0x00, 0x00, + 0x20, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0d, 0x0c, + 0x9b, 0x0f, 0x03, 0x9b, 0x10, 0x00, 0x1e, 0x35, 0x0d, 0x0f, 0x10, 0x9f, 0x90, 0x0e, 0x00, 0x00, + 0x00, 0x28, 0x66, 0x0e, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0e, 0x0c, 0x1e, 0x35, 0x0e, 0x0f, 0x10, + 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x94, 0x04, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_0[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_1[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_2[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_3[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x05, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x05, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x05, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_4[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x0a, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x0a, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x0a, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_5[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_6[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x0a, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x0a, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x0a, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_7[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x04, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x04, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_8[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x32, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x32, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_9[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x04, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x04, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_10[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_11[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x0a, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x0a, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x0a, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_12[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x20, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x32, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x20, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x32, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_13[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x04, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x04, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_14[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x0a, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x0a, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x0a, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_15[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_16[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x04, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x04, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_17[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x08, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x08, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x32, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x32, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_18[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x02, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x02, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x02, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x04, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x04, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_19[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x05, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x05, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x05, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_20[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x06, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x06, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x06, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_21[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x0a, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x0a, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x0a, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_22[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x05, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x05, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x05, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_23[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x04, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x04, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_24[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x06, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x06, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x06, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_25[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x0a, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x0a, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x0a, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_26[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x0a, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x0a, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x0a, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_27[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x05, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x05, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x05, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_isp_28[391] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0xe1, 0x00, 0x90, 0x02, 0x41, 0x00, 0x00, 0x00, 0x66, 0x02, 0x01, 0x00, 0x00, 0x00, + 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x00, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x02, 0x00, 0x60, 0x14, 0x01, 0x93, 0x14, 0x04, 0x00, 0xad, 0x14, 0xfa, 0x0c, 0x0d, + 0x45, 0x00, 0xfb, 0x63, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x66, 0x0c, 0x00, 0xff, 0xff, + 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0xac, 0x04, 0x00, 0x99, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0xc1, 0x60, 0x0e, + 0x00, 0x68, 0x0e, 0x08, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0d, 0x0e, 0x7c, 0x0d, 0x0c, + 0x1e, 0x34, 0x0d, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc2, + 0x60, 0x0d, 0x00, 0x90, 0x0e, 0x04, 0x00, 0x00, 0x00, 0x6a, 0x0d, 0x0e, 0x68, 0x0d, 0x08, 0x66, + 0x0d, 0x00, 0xff, 0xff, 0x00, 0x7c, 0x0c, 0x0d, 0x1e, 0x34, 0x0c, 0x94, 0x04, 0x00, 0x9b, 0x0c, + 0x41, 0x66, 0x0c, 0xf0, 0x00, 0x00, 0x00, 0xfe, 0x0c, 0x40, 0x00, 0x00, 0x00, 0xca, 0x00, 0xfe, + 0x0c, 0x10, 0x00, 0x00, 0x00, 0xdd, 0x00, 0xfb, 0xe0, 0x00, 0x9b, 0x0c, 0x14, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0xe0, 0x00, 0xfb, 0xe0, 0x00, 0x94, 0x14, 0x00, + 0xae, 0xfb, 0x87, 0x01, 0xad, 0x01, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, + 0x02, 0x00, 0xfa, 0x0c, 0x0d, 0xfa, 0x00, 0xfb, 0x18, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, + 0x66, 0x0c, 0x00, 0xff, 0xff, 0x00, 0x66, 0x0d, 0x00, 0x00, 0x00, 0xff, 0x90, 0x0d, 0x00, 0x00, + 0x00, 0x4d, 0x7c, 0x0d, 0x0c, 0x1e, 0x34, 0x0d, 0x99, 0x0e, 0x90, 0x0c, 0x00, 0x00, 0x00, 0xc0, + 0x60, 0x0d, 0x00, 0x68, 0x0d, 0x08, 0x66, 0x0c, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x0c, 0x0d, 0x7c, + 0x0c, 0x0e, 0x1e, 0x34, 0x0c, 0x9b, 0x0c, 0x41, 0x66, 0x0c, 0x0f, 0x00, 0x00, 0x00, 0xfe, 0x0c, + 0x02, 0x00, 0x00, 0x00, 0x59, 0x01, 0xfe, 0x0c, 0x08, 0x00, 0x00, 0x00, 0x5f, 0x01, 0xfe, 0x0c, + 0x04, 0x00, 0x00, 0x00, 0x72, 0x01, 0xfb, 0x80, 0x01, 0x94, 0x14, 0x00, 0xfb, 0x80, 0x01, 0x9b, + 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x87, 0x01, 0xfb, + 0x80, 0x01, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x08, 0x60, 0x0d, 0x00, 0x1e, 0x39, 0x0c, 0x0d, 0x0e, + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadDataEEmem_isp_0[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x00, 0x10, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x08, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x08, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_1[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x08, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x08, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_2[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x00, 0x08, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x08, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x08, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_3[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x00, 0x02, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x04, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x04, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_4[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x00, 0x01, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x04, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x04, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_5[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x00, 0x20, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x08, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x08, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_6[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x00, 0x04, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x04, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x04, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_7[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x02, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x02, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_8[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x40, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x04, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x04, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char ReadDataEEmem_isp_9[129] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x32, 0x1e, 0x37, 0x02, 0x6c, 0x04, 0x9b, 0x03, 0x00, 0xfc, + 0x04, 0x03, 0x81, 0x00, 0x90, 0x0c, 0x80, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x02, 0x00, + 0x60, 0x0e, 0x01, 0x93, 0x0e, 0x04, 0x00, 0xad, 0x0e, 0xfa, 0x0c, 0x0d, 0x31, 0x00, 0xfb, 0x4f, + 0x00, 0x60, 0x0f, 0x00, 0x67, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x66, 0x10, 0x00, + 0x00, 0x00, 0xff, 0x90, 0x10, 0x00, 0x00, 0x00, 0x4d, 0x7c, 0x10, 0x0f, 0x1e, 0x34, 0x10, 0xac, + 0x04, 0x00, 0x60, 0x0f, 0x00, 0x68, 0x0f, 0x08, 0x66, 0x0f, 0x00, 0xff, 0xff, 0x00, 0x90, 0x10, + 0x00, 0x00, 0x00, 0xa0, 0x66, 0x10, 0x00, 0x00, 0x00, 0xff, 0x7c, 0x10, 0x0f, 0x9b, 0x11, 0x03, + 0x9b, 0x12, 0x00, 0x1e, 0x35, 0x10, 0x11, 0x12, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, + 0xae, +}; + +const unsigned char WriteConfigmemFuse_isp_0[71] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0a, 0x00, 0x00, 0xa0, 0xac, 0x90, 0x0b, 0x00, 0x00, 0xa8, 0xac, + 0x90, 0x0c, 0x00, 0x00, 0xa4, 0xac, 0x90, 0x02, 0x32, 0x00, 0x00, 0x00, 0x90, 0x03, 0x0a, 0x00, + 0x00, 0x00, 0xad, 0x01, 0x1e, 0x37, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x99, 0x04, 0x6d, 0x05, + 0x03, 0x66, 0x05, 0x00, 0xff, 0xff, 0xff, 0x7c, 0x05, 0x04, 0x1e, 0x34, 0x05, 0x94, 0x0a, 0x00, + 0x92, 0x03, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteConfigmemFuse_isp_1[71] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0a, 0x00, 0x00, 0xa0, 0xac, 0x90, 0x0b, 0x00, 0x00, 0xa8, 0xac, + 0x90, 0x0c, 0x00, 0x00, 0xa4, 0xac, 0x90, 0x02, 0x32, 0x00, 0x00, 0x00, 0x90, 0x03, 0x0a, 0x00, + 0x00, 0x00, 0xad, 0x01, 0x1e, 0x37, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x99, 0x04, 0x6d, 0x05, + 0x03, 0x66, 0x05, 0x00, 0xff, 0xff, 0xff, 0x7c, 0x05, 0x04, 0x1e, 0x34, 0x05, 0x94, 0x06, 0x00, + 0x92, 0x03, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteConfigmemFuse_isp_2[71] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0a, 0x00, 0x00, 0xa0, 0xac, 0x90, 0x0b, 0x00, 0x00, 0xa8, 0xac, + 0x90, 0x0c, 0x00, 0x00, 0xa4, 0xac, 0x90, 0x02, 0x32, 0x00, 0x00, 0x00, 0x90, 0x03, 0x0a, 0x00, + 0x00, 0x00, 0xad, 0x01, 0x1e, 0x37, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x00, 0x99, 0x04, 0x6d, 0x05, + 0x03, 0x66, 0x05, 0x00, 0xff, 0xff, 0xff, 0x7c, 0x05, 0x04, 0x1e, 0x34, 0x05, 0x94, 0x32, 0x00, + 0x92, 0x03, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteConfigmemLock_isp_0[40] = { + 0x91, 0x05, 0x91, 0x06, 0x9b, 0x00, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, + 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x25, 0x00, 0x66, 0x00, 0x00, 0xff, 0xff, 0xff, 0x99, 0x0c, 0x7c, + 0x00, 0x0c, 0x1e, 0x34, 0x00, 0x94, 0x0a, 0x00, +}; + +const unsigned char WriteConfigmemLock_isp_1[40] = { + 0x91, 0x05, 0x91, 0x06, 0x9b, 0x00, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, + 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x25, 0x00, 0x66, 0x00, 0x00, 0xff, 0xff, 0xff, 0x99, 0x0c, 0x7c, + 0x00, 0x0c, 0x1e, 0x34, 0x00, 0x94, 0x06, 0x00, +}; + +const unsigned char WriteConfigmemLock_isp_2[40] = { + 0x91, 0x05, 0x91, 0x06, 0x9b, 0x00, 0x00, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, + 0x0c, 0x00, 0xfc, 0x0d, 0x0c, 0x25, 0x00, 0x66, 0x00, 0x00, 0xff, 0xff, 0xff, 0x99, 0x0c, 0x7c, + 0x00, 0x0c, 0x1e, 0x34, 0x00, 0x94, 0x32, 0x00, +}; + +const unsigned char ReadConfigmemFuse_isp_0[66] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x0a, 0x00, 0x00, 0x00, 0x50, 0x90, 0x0b, 0x00, 0x00, 0x08, 0x58, + 0x90, 0x0c, 0x00, 0x00, 0x08, 0x50, 0x90, 0x02, 0x32, 0x00, 0x00, 0x00, 0x9b, 0x06, 0x03, 0x9b, + 0x07, 0x00, 0x90, 0x03, 0x0a, 0x00, 0x00, 0x00, 0x1e, 0x37, 0x02, 0xa8, 0x00, 0x00, 0x00, 0x00, + 0xad, 0x01, 0x6d, 0x05, 0x03, 0x1e, 0x35, 0x05, 0x06, 0x07, 0x9f, 0x92, 0x03, 0x01, 0x00, 0x00, + 0x00, 0xae, +}; + +const unsigned char ReadConfigmemLock_isp_0[41] = { + 0x91, 0x05, 0x91, 0x06, 0x90, 0x00, 0x00, 0x00, 0x00, 0x58, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, + 0x6c, 0x0d, 0x9b, 0x0e, 0x00, 0xfc, 0x0d, 0x0e, 0x29, 0x00, 0x60, 0x0c, 0x00, 0x9b, 0x0d, 0x03, + 0x9b, 0x0e, 0x00, 0x1e, 0x35, 0x0c, 0x0d, 0x0e, 0x9f, +}; + +const unsigned char ReadCalibrationByte_isp_0[37] = { + 0x90, 0x00, 0x00, 0x00, 0x00, 0x38, 0x9b, 0x0c, 0x32, 0x1e, 0x37, 0x0c, 0x6c, 0x0d, 0x9b, 0x0e, + 0x00, 0xfc, 0x0d, 0x0e, 0x25, 0x00, 0x60, 0x0c, 0x00, 0x9b, 0x0d, 0x03, 0x9b, 0x0e, 0x00, 0x1e, + 0x35, 0x0c, 0x0d, 0x0e, 0x9f, +}; + +const unsigned char switchtoISP_isp_0[11] = { + 0x1e, 0x4a, 0x90, 0x00, 0x06, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x00, +}; + + + + +static void pickit_isp_script_init(SCRIPT *scr); +static void pickit_isp_script_init(SCRIPT *scr) { + memset(scr, 0x00, sizeof(SCRIPT)); // Make sure everything is NULL + + scr->EnterProgMode = EnterProgMode_isp_0; + scr->ExitProgMode = ExitProgMode_isp_0; + scr->SetSpeed = SetSpeed_isp_0; + scr->GetDeviceID = GetDeviceID_isp_0; + scr->ReadConfigmemFuse = ReadConfigmemFuse_isp_0; + scr->ReadConfigmemLock = ReadConfigmemLock_isp_0; + scr->ReadCalibrationByte = ReadCalibrationByte_isp_0; + scr->switchtoISP = switchtoISP_isp_0; + + scr->EnterProgMode_len = sizeof(EnterProgMode_isp_0); + scr->ExitProgMode_len = sizeof(ExitProgMode_isp_0); + scr->SetSpeed_len = sizeof(SetSpeed_isp_0); + scr->GetDeviceID_len = sizeof(GetDeviceID_isp_0); + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_isp_0); + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_isp_0); + scr->ReadCalibrationByte_len = sizeof(ReadCalibrationByte_isp_0); + scr->switchtoISP_len = sizeof(switchtoISP_isp_0); +} + + +const char * const pickit5_isp_chip_lut[] = { + "AT90CAN128", "AT90CAN32", "AT90CAN64", "AT90PWM1", "AT90PWM161", "AT90PWM216", "AT90PWM2B", "AT90PWM3", + "AT90PWM316", "AT90PWM3B", "AT90PWM81", "AT90USB1286", "AT90USB1287", "AT90USB162", "AT90USB646", "AT90USB647", + "AT90USB82", "ATmega128", "ATmega1280", "ATmega1281", "ATmega1284", "ATmega1284P", "ATmega1284RFR2", "ATmega128A", + "ATmega128RFA1", "ATmega128RFR2", "ATmega16", "ATmega162", "ATmega164A", "ATmega164P", "ATmega164PA", "ATmega165A", + "ATmega165P", "ATmega165PA", "ATmega168", "ATmega168A", "ATmega168P", "ATmega168PA", "ATmega168PB", "ATmega169A", + "ATmega169P", "ATmega169PA", "ATmega16A", "ATmega16HVA", "ATmega16HVB", "ATmega16HVBrevB", "ATmega16M1", "ATmega16U2", + "ATmega16U4", "ATmega2560", "ATmega2561", "ATmega2564RFR2", "ATmega256RFR2", "ATmega32", "ATmega324A", "ATmega324P", + "ATmega324PA", "ATmega324PB", "ATmega325", "ATmega3250", "ATmega3250A", "ATmega3250P", "ATmega3250PA", "ATmega325A", + "ATmega325P", "ATmega325PA", "ATmega328", "ATmega328P", "ATmega328PB", "ATmega329", "ATmega3290", "ATmega3290A", + "ATmega3290P", "ATmega3290PA", "ATmega329A", "ATmega329P", "ATmega329PA", "ATmega32A", "ATmega32C1", "ATmega32HVB", + "ATmega32HVBrevB", "ATmega32M1", "ATmega32U2", "ATmega32U4", "ATmega48", "ATmega48A", "ATmega48P", "ATmega48PA", + "ATmega48PB", "ATmega64", "ATmega640", "ATmega644", "ATmega644A", "ATmega644P", "ATmega644PA", "ATmega644RFR2", + "ATmega645", "ATmega6450", "ATmega6450A", "ATmega6450P", "ATmega645A", "ATmega645P", "ATmega649", "ATmega6490", + "ATmega6490A", "ATmega6490P", "ATmega649A", "ATmega649P", "ATmega64A", "ATmega64C1", "ATmega64HVE2", "ATmega64M1", + "ATmega64RFR2", "ATmega8", "ATmega8515", "ATmega8535", "ATmega88", "ATmega88A", "ATmega88P", "ATmega88PA", + "ATmega88PB", "ATmega8A", "ATmega8HVA", "ATmega8U2", "ATtiny12", "ATtiny13", "ATtiny13A", "ATtiny15", + "ATtiny1634", "ATtiny167", "ATtiny2313", "ATtiny2313A", "ATtiny24", "ATtiny24A", "ATtiny25", "ATtiny26", + "ATtiny261", "ATtiny261A", "ATtiny4313", "ATtiny43U", "ATtiny44", "ATtiny441", "ATtiny44A", "ATtiny45", + "ATtiny461", "ATtiny461A", "ATtiny48", "ATtiny828", "ATtiny84", "ATtiny841", "ATtiny84A", "ATtiny85", + "ATtiny861", "ATtiny861A", "ATtiny87", "ATtiny88", +}; + +int get_pickit_isp_script(SCRIPT *scr, const char* partdesc) { + if ((scr == NULL) || (partdesc == NULL)) { + return -1; + } + int namepos = -1; + for (int i = 0; i < 156; i++) { + if (strncmp(pickit5_isp_chip_lut[i], partdesc, 10) == 0) { + namepos = i; + break; + } + } + if (namepos == -1) { + return -2; + } + + pickit_isp_script_init(scr); // load common functions + + switch (namepos) { + case 0: /* AT90CAN128 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_0); + scr->ReadProgmem = ReadProgmem_isp_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_0); + scr->WriteDataEEmem = WriteDataEEmem_isp_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_0); + scr->ReadDataEEmem = ReadDataEEmem_isp_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 1: /* AT90CAN32 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_1; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_1); + scr->ReadProgmem = ReadProgmem_isp_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_1); + scr->WriteDataEEmem = WriteDataEEmem_isp_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_1); + scr->ReadDataEEmem = ReadDataEEmem_isp_1; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_1); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 2: /* AT90CAN64 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_2); + scr->ReadProgmem = ReadProgmem_isp_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_2); + scr->WriteDataEEmem = WriteDataEEmem_isp_2; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_2); + scr->ReadDataEEmem = ReadDataEEmem_isp_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 3: /* AT90PWM1 */ + case 6: /* AT90PWM2B */ + case 7: /* AT90PWM3 */ + case 9: /* AT90PWM3B */ + case 10: /* AT90PWM81 */ + case 151: /* ATtiny85 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_3); + scr->ReadProgmem = ReadProgmem_isp_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_3); + scr->WriteDataEEmem = WriteDataEEmem_isp_3; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_3); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 4: /* AT90PWM161 */ + case 5: /* AT90PWM216 */ + case 8: /* AT90PWM316 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_4); + scr->ReadProgmem = ReadProgmem_isp_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_4); + scr->WriteDataEEmem = WriteDataEEmem_isp_3; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_3); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 11: /* AT90USB1286 */ + case 12: /* AT90USB1287 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_5; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_5); + scr->ReadProgmem = ReadProgmem_isp_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_0); + scr->WriteDataEEmem = WriteDataEEmem_isp_4; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_4); + scr->ReadDataEEmem = ReadDataEEmem_isp_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_1; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_1); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_1; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_1); + break; + case 13: /* AT90USB162 */ + case 47: /* ATmega16U2 */ + case 48: /* ATmega16U4 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_6; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_6); + scr->ReadProgmem = ReadProgmem_isp_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_4); + scr->WriteDataEEmem = WriteDataEEmem_isp_5; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_5); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_1; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_1); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_1; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_1); + break; + case 14: /* AT90USB646 */ + case 15: /* AT90USB647 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_7; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_7); + scr->ReadProgmem = ReadProgmem_isp_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_2); + scr->WriteDataEEmem = WriteDataEEmem_isp_6; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_6); + scr->ReadDataEEmem = ReadDataEEmem_isp_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_1; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_1); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_1; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_1); + break; + case 16: /* AT90USB82 */ + case 123: /* ATmega8U2 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_8; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_8); + scr->ReadProgmem = ReadProgmem_isp_5; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_5); + scr->WriteDataEEmem = WriteDataEEmem_isp_5; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_5); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_1; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_1); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_1; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_1); + break; + case 17: /* ATmega128 */ + case 23: /* ATmega128A */ + scr->EraseChip = EraseChip_isp_2; + scr->EraseChip_len = sizeof(EraseChip_isp_2); + scr->WriteProgmem = WriteProgmem_isp_9; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_9); + scr->ReadProgmem = ReadProgmem_isp_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_0); + scr->WriteDataEEmem = WriteDataEEmem_isp_7; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_7); + scr->ReadDataEEmem = ReadDataEEmem_isp_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 18: /* ATmega1280 */ + case 19: /* ATmega1281 */ + case 20: /* ATmega1284 */ + case 21: /* ATmega1284P */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_0); + scr->ReadProgmem = ReadProgmem_isp_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_0); + scr->WriteDataEEmem = WriteDataEEmem_isp_4; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_4); + scr->ReadDataEEmem = ReadDataEEmem_isp_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 22: /* ATmega1284RFR2 */ + case 24: /* ATmega128RFA1 */ + case 25: /* ATmega128RFR2 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_10; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_10); + scr->ReadProgmem = ReadProgmem_isp_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_0); + scr->WriteDataEEmem = WriteDataEEmem_isp_8; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_8); + scr->ReadDataEEmem = ReadDataEEmem_isp_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_2; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_2); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_2; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_2); + break; + case 26: /* ATmega16 */ + case 42: /* ATmega16A */ + scr->EraseChip = EraseChip_isp_2; + scr->EraseChip_len = sizeof(EraseChip_isp_2); + scr->WriteProgmem = WriteProgmem_isp_11; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_11); + scr->ReadProgmem = ReadProgmem_isp_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_4); + scr->WriteDataEEmem = WriteDataEEmem_isp_9; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_9); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 27: /* ATmega162 */ + scr->EraseChip = EraseChip_isp_2; + scr->EraseChip_len = sizeof(EraseChip_isp_2); + scr->WriteProgmem = WriteProgmem_isp_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_4); + scr->ReadProgmem = ReadProgmem_isp_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_4); + scr->WriteDataEEmem = WriteDataEEmem_isp_5; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_5); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 28: /* ATmega164A */ + case 29: /* ATmega164P */ + case 30: /* ATmega164PA */ + case 31: /* ATmega165A */ + case 32: /* ATmega165P */ + case 33: /* ATmega165PA */ + case 34: /* ATmega168 */ + case 35: /* ATmega168A */ + case 36: /* ATmega168P */ + case 37: /* ATmega168PA */ + case 38: /* ATmega168PB */ + case 39: /* ATmega169A */ + case 40: /* ATmega169P */ + case 41: /* ATmega169PA */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_4); + scr->ReadProgmem = ReadProgmem_isp_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_4); + scr->WriteDataEEmem = WriteDataEEmem_isp_5; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_5); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 43: /* ATmega16HVA */ + scr->EraseChip = EraseChip_isp_3; + scr->EraseChip_len = sizeof(EraseChip_isp_3); + scr->WriteProgmem = WriteProgmem_isp_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_4); + scr->ReadProgmem = ReadProgmem_isp_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_4); + scr->WriteDataEEmem = WriteDataEEmem_isp_10; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_10); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 44: /* ATmega16HVB */ + case 45: /* ATmega16HVBrevB */ + case 46: /* ATmega16M1 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_4); + scr->ReadProgmem = ReadProgmem_isp_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_4); + scr->WriteDataEEmem = WriteDataEEmem_isp_11; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_11); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 49: /* ATmega2560 */ + case 50: /* ATmega2561 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_12; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_12); + scr->ReadProgmem = ReadProgmem_isp_6; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_6); + scr->WriteDataEEmem = WriteDataEEmem_isp_4; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_4); + scr->ReadDataEEmem = ReadDataEEmem_isp_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 51: /* ATmega2564RFR2 */ + case 52: /* ATmega256RFR2 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_13; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_13); + scr->ReadProgmem = ReadProgmem_isp_6; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_6); + scr->WriteDataEEmem = WriteDataEEmem_isp_12; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_12); + scr->ReadDataEEmem = ReadDataEEmem_isp_5; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_5); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_2; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_2); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_2; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_2); + break; + case 53: /* ATmega32 */ + case 77: /* ATmega32A */ + scr->EraseChip = EraseChip_isp_2; + scr->EraseChip_len = sizeof(EraseChip_isp_2); + scr->WriteProgmem = WriteProgmem_isp_14; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_14); + scr->ReadProgmem = ReadProgmem_isp_7; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_7); + scr->WriteDataEEmem = WriteDataEEmem_isp_13; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_13); + scr->ReadDataEEmem = ReadDataEEmem_isp_6; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_6); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 54: /* ATmega324A */ + case 55: /* ATmega324P */ + case 56: /* ATmega324PA */ + case 57: /* ATmega324PB */ + case 58: /* ATmega325 */ + case 59: /* ATmega3250 */ + case 60: /* ATmega3250A */ + case 61: /* ATmega3250P */ + case 62: /* ATmega3250PA */ + case 63: /* ATmega325A */ + case 64: /* ATmega325P */ + case 65: /* ATmega325PA */ + case 69: /* ATmega329 */ + case 70: /* ATmega3290 */ + case 71: /* ATmega3290A */ + case 72: /* ATmega3290P */ + case 73: /* ATmega3290PA */ + case 74: /* ATmega329A */ + case 75: /* ATmega329P */ + case 76: /* ATmega329PA */ + case 78: /* ATmega32C1 */ + case 79: /* ATmega32HVB */ + case 80: /* ATmega32HVBrevB */ + case 81: /* ATmega32M1 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_15; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_15); + scr->ReadProgmem = ReadProgmem_isp_7; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_7); + scr->WriteDataEEmem = WriteDataEEmem_isp_14; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_14); + scr->ReadDataEEmem = ReadDataEEmem_isp_6; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_6); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 66: /* ATmega328 */ + case 67: /* ATmega328P */ + case 68: /* ATmega328PB */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_15; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_15); + scr->ReadProgmem = ReadProgmem_isp_7; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_7); + scr->WriteDataEEmem = WriteDataEEmem_isp_15; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_15); + scr->ReadDataEEmem = ReadDataEEmem_isp_6; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_6); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 82: /* ATmega32U2 */ + case 83: /* ATmega32U4 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_16; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_16); + scr->ReadProgmem = ReadProgmem_isp_7; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_7); + scr->WriteDataEEmem = WriteDataEEmem_isp_15; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_15); + scr->ReadDataEEmem = ReadDataEEmem_isp_6; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_6); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_1; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_1); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_1; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_1); + break; + case 84: /* ATmega48 */ + case 85: /* ATmega48A */ + case 86: /* ATmega48P */ + case 87: /* ATmega48PA */ + case 88: /* ATmega48PB */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_17; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_17); + scr->ReadProgmem = ReadProgmem_isp_8; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_8); + scr->WriteDataEEmem = WriteDataEEmem_isp_10; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_10); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 89: /* ATmega64 */ + case 108: /* ATmega64A */ + scr->EraseChip = EraseChip_isp_2; + scr->EraseChip_len = sizeof(EraseChip_isp_2); + scr->WriteProgmem = WriteProgmem_isp_18; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_18); + scr->ReadProgmem = ReadProgmem_isp_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_2); + scr->WriteDataEEmem = WriteDataEEmem_isp_16; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_16); + scr->ReadDataEEmem = ReadDataEEmem_isp_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 90: /* ATmega640 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_2); + scr->ReadProgmem = ReadProgmem_isp_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_2); + scr->WriteDataEEmem = WriteDataEEmem_isp_4; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_4); + scr->ReadDataEEmem = ReadDataEEmem_isp_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 91: /* ATmega644 */ + case 92: /* ATmega644A */ + case 93: /* ATmega644P */ + case 94: /* ATmega644PA */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_2); + scr->ReadProgmem = ReadProgmem_isp_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_2); + scr->WriteDataEEmem = WriteDataEEmem_isp_6; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_6); + scr->ReadDataEEmem = ReadDataEEmem_isp_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 95: /* ATmega644RFR2 */ + case 112: /* ATmega64RFR2 */ + scr->EraseChip = EraseChip_isp_1; + scr->EraseChip_len = sizeof(EraseChip_isp_1); + scr->WriteProgmem = WriteProgmem_isp_19; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_19); + scr->ReadProgmem = ReadProgmem_isp_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_2); + scr->WriteDataEEmem = WriteDataEEmem_isp_17; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_17); + scr->ReadDataEEmem = ReadDataEEmem_isp_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_2; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_2); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_2; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_2); + break; + case 96: /* ATmega645 */ + case 97: /* ATmega6450 */ + case 98: /* ATmega6450A */ + case 99: /* ATmega6450P */ + case 100: /* ATmega645A */ + case 101: /* ATmega645P */ + case 102: /* ATmega649 */ + case 103: /* ATmega6490 */ + case 104: /* ATmega6490A */ + case 105: /* ATmega6490P */ + case 106: /* ATmega649A */ + case 107: /* ATmega649P */ + case 109: /* ATmega64C1 */ + case 111: /* ATmega64M1 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_2); + scr->ReadProgmem = ReadProgmem_isp_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_2); + scr->WriteDataEEmem = WriteDataEEmem_isp_6; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_6); + scr->ReadDataEEmem = ReadDataEEmem_isp_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 110: /* ATmega64HVE2 */ + scr->EraseChip = EraseChip_isp_3; + scr->EraseChip_len = sizeof(EraseChip_isp_3); + scr->WriteProgmem = WriteProgmem_isp_20; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_20); + scr->ReadProgmem = ReadProgmem_isp_9; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_9); + scr->WriteDataEEmem = WriteDataEEmem_isp_15; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_15); + scr->ReadDataEEmem = ReadDataEEmem_isp_6; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_6); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 113: /* ATmega8 */ + case 114: /* ATmega8515 */ + case 115: /* ATmega8535 */ + case 121: /* ATmega8A */ + scr->EraseChip = EraseChip_isp_2; + scr->EraseChip_len = sizeof(EraseChip_isp_2); + scr->WriteProgmem = WriteProgmem_isp_21; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_21); + scr->ReadProgmem = ReadProgmem_isp_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_3); + scr->WriteDataEEmem = WriteDataEEmem_isp_9; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_9); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 116: /* ATmega88 */ + case 117: /* ATmega88A */ + case 118: /* ATmega88P */ + case 119: /* ATmega88PA */ + case 120: /* ATmega88PB */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_3); + scr->ReadProgmem = ReadProgmem_isp_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_3); + scr->WriteDataEEmem = WriteDataEEmem_isp_5; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_5); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 122: /* ATmega8HVA */ + scr->EraseChip = EraseChip_isp_3; + scr->EraseChip_len = sizeof(EraseChip_isp_3); + scr->WriteProgmem = WriteProgmem_isp_22; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_22); + scr->ReadProgmem = ReadProgmem_isp_5; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_5); + scr->WriteDataEEmem = WriteDataEEmem_isp_10; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_10); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 124: /* ATtiny12 */ + case 127: /* ATtiny15 */ + scr->EraseChip = EraseChip_isp_4; + scr->EraseChip_len = sizeof(EraseChip_isp_4); + scr->WriteProgmem = WriteProgmem_isp_23; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_23); + scr->ReadProgmem = ReadProgmem_isp_10; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_10); + scr->WriteDataEEmem = WriteDataEEmem_isp_18; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_18); + scr->ReadDataEEmem = ReadDataEEmem_isp_7; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_7); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 125: /* ATtiny13 */ + case 126: /* ATtiny13A */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_24; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_24); + scr->ReadProgmem = ReadProgmem_isp_11; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_11); + scr->WriteDataEEmem = WriteDataEEmem_isp_19; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_19); + scr->ReadDataEEmem = ReadDataEEmem_isp_8; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_8); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 128: /* ATtiny1634 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_25; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_25); + scr->ReadProgmem = ReadProgmem_isp_12; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_12); + scr->WriteDataEEmem = WriteDataEEmem_isp_10; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_10); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 129: /* ATtiny167 */ + scr->EraseChip = EraseChip_isp_5; + scr->EraseChip_len = sizeof(EraseChip_isp_5); + scr->WriteProgmem = WriteProgmem_isp_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_4); + scr->ReadProgmem = ReadProgmem_isp_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_4); + scr->WriteDataEEmem = WriteDataEEmem_isp_11; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_11); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 130: /* ATtiny2313 */ + case 131: /* ATtiny2313A */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_26; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_26); + scr->ReadProgmem = ReadProgmem_isp_13; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_13); + scr->WriteDataEEmem = WriteDataEEmem_isp_20; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_20); + scr->ReadDataEEmem = ReadDataEEmem_isp_9; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_9); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 132: /* ATtiny24 */ + case 133: /* ATtiny24A */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_26; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_26); + scr->ReadProgmem = ReadProgmem_isp_13; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_13); + scr->WriteDataEEmem = WriteDataEEmem_isp_21; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_21); + scr->ReadDataEEmem = ReadDataEEmem_isp_9; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_9); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 134: /* ATtiny25 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_26; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_26); + scr->ReadProgmem = ReadProgmem_isp_13; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_13); + scr->WriteDataEEmem = WriteDataEEmem_isp_22; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_22); + scr->ReadDataEEmem = ReadDataEEmem_isp_9; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_9); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 135: /* ATtiny26 */ + scr->EraseChip = EraseChip_isp_2; + scr->EraseChip_len = sizeof(EraseChip_isp_2); + scr->WriteProgmem = WriteProgmem_isp_27; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_27); + scr->ReadProgmem = ReadProgmem_isp_13; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_13); + scr->WriteDataEEmem = WriteDataEEmem_isp_23; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_23); + scr->ReadDataEEmem = ReadDataEEmem_isp_9; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_9); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 136: /* ATtiny261 */ + case 137: /* ATtiny261A */ + scr->EraseChip = EraseChip_isp_5; + scr->EraseChip_len = sizeof(EraseChip_isp_5); + scr->WriteProgmem = WriteProgmem_isp_26; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_26); + scr->ReadProgmem = ReadProgmem_isp_13; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_13); + scr->WriteDataEEmem = WriteDataEEmem_isp_21; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_21); + scr->ReadDataEEmem = ReadDataEEmem_isp_9; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_9); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 138: /* ATtiny4313 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_17; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_17); + scr->ReadProgmem = ReadProgmem_isp_8; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_8); + scr->WriteDataEEmem = WriteDataEEmem_isp_24; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_24); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 139: /* ATtiny43U */ + scr->EraseChip = EraseChip_isp_5; + scr->EraseChip_len = sizeof(EraseChip_isp_5); + scr->WriteProgmem = WriteProgmem_isp_17; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_17); + scr->ReadProgmem = ReadProgmem_isp_8; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_8); + scr->WriteDataEEmem = WriteDataEEmem_isp_25; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_25); + scr->ReadDataEEmem = ReadDataEEmem_isp_8; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_8); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 140: /* ATtiny44 */ + case 142: /* ATtiny44A */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_17; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_17); + scr->ReadProgmem = ReadProgmem_isp_8; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_8); + scr->WriteDataEEmem = WriteDataEEmem_isp_26; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_26); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 141: /* ATtiny441 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_28; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_28); + scr->ReadProgmem = ReadProgmem_isp_14; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_14); + scr->WriteDataEEmem = WriteDataEEmem_isp_26; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_26); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 143: /* ATtiny45 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_17; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_17); + scr->ReadProgmem = ReadProgmem_isp_8; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_8); + scr->WriteDataEEmem = WriteDataEEmem_isp_27; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_27); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 144: /* ATtiny461 */ + case 145: /* ATtiny461A */ + scr->EraseChip = EraseChip_isp_5; + scr->EraseChip_len = sizeof(EraseChip_isp_5); + scr->WriteProgmem = WriteProgmem_isp_17; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_17); + scr->ReadProgmem = ReadProgmem_isp_8; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_8); + scr->WriteDataEEmem = WriteDataEEmem_isp_26; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_26); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 146: /* ATtiny48 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_17; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_17); + scr->ReadProgmem = ReadProgmem_isp_8; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_8); + scr->WriteDataEEmem = WriteDataEEmem_isp_28; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_28); + scr->ReadDataEEmem = ReadDataEEmem_isp_8; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_8); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 147: /* ATtiny828 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_3); + scr->ReadProgmem = ReadProgmem_isp_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_3); + scr->WriteDataEEmem = WriteDataEEmem_isp_10; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_10); + scr->ReadDataEEmem = ReadDataEEmem_isp_4; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_4); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 148: /* ATtiny84 */ + case 150: /* ATtiny84A */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_3); + scr->ReadProgmem = ReadProgmem_isp_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_3); + scr->WriteDataEEmem = WriteDataEEmem_isp_11; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_11); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 149: /* ATtiny841 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_29; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_29); + scr->ReadProgmem = ReadProgmem_isp_15; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_15); + scr->WriteDataEEmem = WriteDataEEmem_isp_11; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_11); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 152: /* ATtiny861 */ + case 153: /* ATtiny861A */ + scr->EraseChip = EraseChip_isp_5; + scr->EraseChip_len = sizeof(EraseChip_isp_5); + scr->WriteProgmem = WriteProgmem_isp_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_3); + scr->ReadProgmem = ReadProgmem_isp_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_3); + scr->WriteDataEEmem = WriteDataEEmem_isp_11; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_11); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 154: /* ATtiny87 */ + scr->EraseChip = EraseChip_isp_5; + scr->EraseChip_len = sizeof(EraseChip_isp_5); + scr->WriteProgmem = WriteProgmem_isp_22; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_22); + scr->ReadProgmem = ReadProgmem_isp_5; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_5); + scr->WriteDataEEmem = WriteDataEEmem_isp_11; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_11); + scr->ReadDataEEmem = ReadDataEEmem_isp_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + case 155: /* ATtiny88 */ + scr->EraseChip = EraseChip_isp_0; + scr->EraseChip_len = sizeof(EraseChip_isp_0); + scr->WriteProgmem = WriteProgmem_isp_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_isp_3); + scr->ReadProgmem = ReadProgmem_isp_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_isp_3); + scr->WriteDataEEmem = WriteDataEEmem_isp_28; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_isp_28); + scr->ReadDataEEmem = ReadDataEEmem_isp_8; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_isp_8); + scr->WriteConfigmemFuse = WriteConfigmemFuse_isp_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_isp_0); + scr->WriteConfigmemLock = WriteConfigmemLock_isp_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_isp_0); + break; + } + return 0; +} \ No newline at end of file diff --git a/src/pickit5_lut_jtag.c b/src/pickit5_lut_jtag.c new file mode 100644 index 000000000..26d3965c7 --- /dev/null +++ b/src/pickit5_lut_jtag.c @@ -0,0 +1,1994 @@ +/* This file was auto-generated by scripts_decoder.py. + * Any changes will be overwritten on regeneration + */ + +/* + * avrdude - A Downloader/Uploader for AVR device programmers + * Copyright (C) 2024 MX682X + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include "pickit5_lut.h" + + +const unsigned char EnterProgMode_jtag_0[70] = { + 0x9b, 0x00, 0x00, 0x1e, 0x60, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x04, 0x1e, + 0x62, 0x00, 0x01, 0x9b, 0x00, 0x00, 0x9b, 0x01, 0x01, 0x1e, 0x63, 0x00, 0x01, 0x9b, 0x00, 0x0c, + 0x1e, 0x66, 0x00, 0x90, 0x00, 0x01, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x01, 0x1e, 0x67, 0x00, 0x01, + 0x94, 0x32, 0x00, 0x9b, 0x00, 0x04, 0x1e, 0x66, 0x00, 0x90, 0x00, 0x70, 0xa3, 0x00, 0x00, 0x9b, + 0x01, 0x10, 0x1e, 0x67, 0x00, 0x01, +}; + +const unsigned char EnterProgMode_jtag_1[179] = { + 0x90, 0x00, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x60, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x01, 0x04, 0x00, 0x00, 0x00, 0x1e, 0x62, 0x00, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x01, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x63, 0x00, 0x01, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x1e, + 0x66, 0x00, 0x90, 0x00, 0x20, 0x00, 0x00, 0x00, 0x1e, 0x6a, 0x00, 0x90, 0x00, 0x07, 0x00, 0x00, + 0x00, 0x1e, 0x66, 0x00, 0x9b, 0x01, 0x00, 0x9b, 0x02, 0xfd, 0x1e, 0x0f, 0x01, 0x02, 0x9b, 0x01, + 0x00, 0xa2, 0x1e, 0x0e, 0x01, 0xa5, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, + 0x9b, 0x01, 0x01, 0x9b, 0x02, 0x59, 0x1e, 0x0f, 0x01, 0x02, 0x9b, 0x01, 0x00, 0x65, 0xff, 0x88, + 0xd8, 0xcd, 0x04, 0x65, 0x45, 0xab, 0x89, 0x12, 0x04, 0x1e, 0x11, 0x01, 0x9b, 0x01, 0x00, 0x1e, + 0x0e, 0x01, 0x6c, 0x02, 0x66, 0x02, 0xf9, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, + 0xfc, 0x02, 0x03, 0xaa, 0x00, 0x9b, 0x01, 0x00, 0xa2, 0x1e, 0x0e, 0x01, 0xa5, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0xe8, 0x03, 0xfb, 0xb2, 0x00, 0x90, 0x01, 0x00, 0x01, 0x00, 0x00, + 0x7f, 0x01, 0x5a, +}; + +const unsigned char ExitProgMode_jtag_0[75] = { + 0x9b, 0x00, 0x05, 0x1e, 0x66, 0x00, 0x90, 0x00, 0x00, 0x23, 0x00, 0x00, 0x9b, 0x01, 0x0f, 0x1e, + 0x67, 0x00, 0x01, 0x90, 0x00, 0x00, 0x33, 0x00, 0x00, 0x9b, 0x01, 0x0f, 0x1e, 0x67, 0x00, 0x01, + 0x9b, 0x00, 0x04, 0x1e, 0x66, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x01, 0x10, 0x1e, + 0x67, 0x00, 0x01, 0x94, 0x0a, 0x00, 0x9b, 0x00, 0x0c, 0x1e, 0x66, 0x00, 0x90, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x9b, 0x01, 0x01, 0x1e, 0x67, 0x00, 0x01, 0x1e, 0x64, +}; + +const unsigned char ExitProgMode_jtag_1[40] = { + 0x9b, 0x01, 0x01, 0x9b, 0x02, 0x00, 0x1e, 0x0f, 0x01, 0x02, 0x9b, 0x01, 0x00, 0x9b, 0x02, 0x00, + 0x1e, 0x0f, 0x01, 0x02, 0x9b, 0x01, 0x00, 0xa2, 0x1e, 0x0e, 0x01, 0xa5, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x1e, 0x64, +}; + +const unsigned char SetSpeed_jtag_0[20] = { + 0x91, 0x00, 0x9b, 0x01, 0x02, 0x1e, 0x60, 0x01, 0x1e, 0x61, 0x00, 0x9b, 0x01, 0x00, 0x1e, 0x60, + 0x01, 0x1e, 0x61, 0x00, +}; + +const unsigned char SetSpeed_jtag_1[14] = { + 0x91, 0x00, 0x90, 0x01, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x60, 0x01, 0x1e, 0x61, 0x00, +}; + +const unsigned char GetDeviceID_jtag_0[149] = { + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x01, 0x04, 0x00, 0x00, 0x00, 0x90, 0x0a, 0x01, 0x00, + 0x00, 0x00, 0x90, 0x0d, 0x04, 0x00, 0x00, 0x00, 0x60, 0x02, 0x01, 0xad, 0x02, 0x9b, 0x04, 0x05, + 0x1e, 0x66, 0x04, 0x90, 0x04, 0x08, 0x23, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x1e, 0x67, 0x04, 0x05, + 0x60, 0x03, 0x00, 0x90, 0x04, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x04, 0x03, 0x9b, 0x05, 0x0f, 0x1e, + 0x67, 0x04, 0x05, 0x90, 0x04, 0x00, 0x32, 0x00, 0x00, 0x6e, 0x04, 0x03, 0x9b, 0x05, 0x0f, 0x1e, + 0x67, 0x04, 0x05, 0x90, 0x04, 0x00, 0x33, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x95, 0x1e, 0x6b, 0x04, + 0x05, 0x6c, 0x0b, 0x66, 0x0b, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0b, 0x18, 0xfc, 0x0a, 0x0d, 0x80, + 0x00, 0x66, 0x0b, 0x00, 0x00, 0x00, 0xf0, 0x67, 0x0b, 0x04, 0x7c, 0x0c, 0x0b, 0xfb, 0x86, 0x00, + 0x7c, 0x0c, 0x0b, 0x67, 0x0c, 0x08, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0x92, 0x0a, 0x01, 0x00, + 0x00, 0x00, 0xae, 0x98, 0x0c, +}; + +const unsigned char GetDeviceID_jtag_1[104] = { + 0x95, 0x90, 0x01, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x90, + 0x03, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x03, 0x6c, 0x0a, 0x90, 0x03, 0xc4, 0x01, 0x00, 0x01, + 0x1e, 0x03, 0x03, 0x6c, 0x0b, 0x90, 0x00, 0x90, 0x00, 0x00, 0x01, 0x1e, 0x09, 0x00, 0x9c, 0x01, + 0x03, 0x00, 0x1e, 0x10, 0x01, 0x9b, 0x02, 0x03, 0x1e, 0x0c, 0x02, 0x90, 0x02, 0x93, 0x00, 0x00, + 0x01, 0x1e, 0x03, 0x02, 0x9f, 0x90, 0x01, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x67, 0x00, 0x90, 0x03, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x03, 0x0a, 0x90, 0x03, 0xc4, + 0x01, 0x00, 0x01, 0x1e, 0x06, 0x03, 0x0b, 0x5a, +}; + +const unsigned char EraseChip_jtag_0[83] = { + 0x9b, 0x00, 0x05, 0x1e, 0x66, 0x00, 0x90, 0x00, 0x80, 0x23, 0x00, 0x00, 0x9b, 0x01, 0x0f, 0x1e, + 0x67, 0x00, 0x01, 0x90, 0x00, 0x80, 0x31, 0x00, 0x00, 0x9b, 0x01, 0x0f, 0x1e, 0x67, 0x00, 0x01, + 0x90, 0x00, 0x80, 0x33, 0x00, 0x00, 0x9b, 0x01, 0x0f, 0x1e, 0x67, 0x00, 0x01, 0x90, 0x00, 0x80, + 0x33, 0x00, 0x00, 0x9b, 0x01, 0x0f, 0x1e, 0x67, 0x00, 0x01, 0x90, 0x00, 0x80, 0x33, 0x00, 0x00, + 0x9b, 0x01, 0x0f, 0xa2, 0x1e, 0x6b, 0x00, 0x01, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0x64, 0x00, +}; + +const unsigned char EraseChip_jtag_1[99] = { + 0x90, 0x01, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x01, 0x6c, 0x05, 0x90, 0x01, 0xca, 0x01, 0x00, + 0x01, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x01, 0x02, 0x90, 0x01, 0xcb, 0x01, 0x00, + 0x01, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x01, 0x02, 0x90, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xa2, 0x1e, 0x0e, 0x01, 0xa5, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd0, 0x07, + 0x94, 0x0a, 0x00, 0x90, 0x01, 0xcf, 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x01, 0xa5, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x90, 0x01, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, + 0x01, 0x05, 0x5a, +}; + +const unsigned char WriteProgmem_jtag_0[276] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x04, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x10, 0x23, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x0b, 0x00, 0x00, 0x02, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xf9, + 0x0b, 0x0c, 0x4d, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, + 0x90, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x04, 0x60, 0x07, 0x00, + 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, 0x6e, + 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, 0xac, 0x80, 0x00, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x06, 0x66, + 0x08, 0xff, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, + 0x09, 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, + 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x17, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, + 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x77, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x92, 0x06, + 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, + 0x07, 0x00, 0x35, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, + 0x37, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x07, 0x04, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xf4, 0x01, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x01, 0x00, 0x00, 0xfc, + 0x01, 0x0e, 0x0d, 0x00, +}; + +const unsigned char WriteProgmem_jtag_1[276] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x04, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x10, 0x23, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x0b, 0x00, 0x80, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xf9, + 0x0b, 0x0c, 0x4d, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, + 0x90, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x04, 0x60, 0x07, 0x00, + 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, 0x6e, + 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, 0xac, 0x80, 0x00, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x06, 0x66, + 0x08, 0xff, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, + 0x09, 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, + 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x17, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, + 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x77, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x92, 0x06, + 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, + 0x07, 0x00, 0x35, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, + 0x37, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x07, 0x04, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xf4, 0x01, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x01, 0x00, 0x00, 0xfc, + 0x01, 0x0e, 0x0d, 0x00, +}; + +const unsigned char WriteProgmem_jtag_2[276] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x04, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x10, 0x23, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x0b, 0x00, 0x00, 0x01, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xf9, + 0x0b, 0x0c, 0x4d, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, + 0x90, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x04, 0x60, 0x07, 0x00, + 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, 0x6e, + 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, 0xac, 0x80, 0x00, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x06, 0x66, + 0x08, 0xff, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, + 0x09, 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, + 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x17, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, + 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x77, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x92, 0x06, + 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, + 0x07, 0x00, 0x35, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, + 0x37, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x07, 0x04, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xf4, 0x01, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x01, 0x00, 0x00, 0xfc, + 0x01, 0x0e, 0x0d, 0x00, +}; + +const unsigned char WriteProgmem_jtag_3[276] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x04, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x10, 0x23, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x0b, 0x00, 0x40, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xf9, + 0x0b, 0x0c, 0x4d, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, + 0x90, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x04, 0x60, 0x07, 0x00, + 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, 0x6e, + 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, 0xac, 0x40, 0x00, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x06, 0x66, + 0x08, 0xff, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, + 0x09, 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, + 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x17, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, + 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x77, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x92, 0x06, + 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, + 0x07, 0x00, 0x35, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, + 0x37, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x07, 0x04, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xf4, 0x01, 0x92, 0x00, 0x40, 0x00, 0x00, 0x00, 0x69, 0x01, 0x80, 0x00, 0x00, 0x00, 0xfc, + 0x01, 0x0e, 0x0d, 0x00, +}; + +const unsigned char WriteProgmem_jtag_4[276] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x04, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x10, 0x23, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x0b, 0x00, 0x00, 0x04, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xf9, + 0x0b, 0x0c, 0x4d, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, + 0x90, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x04, 0x60, 0x07, 0x00, + 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, 0x6e, + 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, 0xac, 0x80, 0x00, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x06, 0x66, + 0x08, 0xff, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, + 0x09, 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, + 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x17, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, + 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x77, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x92, 0x06, + 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, + 0x07, 0x00, 0x35, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, + 0x37, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x07, 0x04, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xf4, 0x01, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0x69, 0x01, 0x00, 0x01, 0x00, 0x00, 0xfc, + 0x01, 0x0e, 0x0d, 0x00, +}; + +const unsigned char WriteProgmem_jtag_5[276] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x04, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x10, 0x23, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x0b, 0x00, 0x80, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xf9, + 0x0b, 0x0c, 0x4d, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, + 0x90, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x04, 0x60, 0x07, 0x00, + 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, 0x6e, + 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, 0xac, 0x40, 0x00, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x06, 0x66, + 0x08, 0xff, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, + 0x09, 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, + 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x17, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, + 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x77, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x92, 0x06, + 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, + 0x07, 0x00, 0x35, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, + 0x37, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x07, 0x04, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xf4, 0x01, 0x92, 0x00, 0x40, 0x00, 0x00, 0x00, 0x69, 0x01, 0x80, 0x00, 0x00, 0x00, 0xfc, + 0x01, 0x0e, 0x0d, 0x00, +}; + +const unsigned char WriteProgmem_jtag_6[276] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x04, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x10, 0x23, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x0b, 0x00, 0xa0, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, 0xf9, + 0x0b, 0x0c, 0x4d, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, + 0x90, 0x0b, 0x00, 0x0b, 0x00, 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x04, 0x60, 0x07, 0x00, + 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, 0x6e, + 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, 0xac, 0x40, 0x00, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x06, 0x66, + 0x08, 0xff, 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, + 0x09, 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, + 0x04, 0x99, 0x07, 0x90, 0x08, 0x00, 0x17, 0x00, 0x00, 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x04, + 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x77, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x92, 0x06, + 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, + 0x07, 0x00, 0x35, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, + 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x04, 0x90, 0x07, 0x00, + 0x37, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x07, 0x04, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, + 0x00, 0xf4, 0x01, 0x92, 0x00, 0x40, 0x00, 0x00, 0x00, 0x69, 0x01, 0x80, 0x00, 0x00, 0x00, 0xfc, + 0x01, 0x0e, 0x0d, 0x00, +}; + +const unsigned char WriteProgmem_jtag_7[172] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, + 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0b, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, + 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, + 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x25, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, + 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, + 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, + 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, + 0x1e, 0x06, 0x06, 0x0b, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteProgmem_jtag_8[172] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, + 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0b, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, + 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, + 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x25, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, + 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, + 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, + 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, + 0x1e, 0x06, 0x06, 0x0b, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadProgmem_jtag_0[184] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x9b, 0x05, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x02, 0x23, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x05, 0x90, 0x0b, 0x00, 0x00, 0x02, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, + 0xf9, 0x0b, 0x0c, 0x48, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x90, 0x0b, 0x00, 0x0b, 0x00, + 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x05, 0xac, 0x80, 0x00, 0x60, 0x07, 0x00, 0x6e, 0x07, + 0x04, 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, + 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x05, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x04, 0x66, 0x08, 0xff, + 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, 0x09, 0x05, + 0x90, 0x07, 0x00, 0x32, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x05, 0x90, 0x07, 0x00, 0x36, 0x00, 0x00, + 0x1e, 0x6b, 0x07, 0x05, 0x9f, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x6b, 0x07, 0x05, 0x9f, + 0x92, 0x04, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x69, 0x01, 0x00, 0x01, 0x00, 0x00, 0x92, 0x00, 0x80, + 0x00, 0x00, 0x00, 0xfc, 0x01, 0x0e, 0x0e, 0x00, +}; + +const unsigned char ReadProgmem_jtag_1[184] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x9b, 0x05, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x02, 0x23, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x05, 0x90, 0x0b, 0x00, 0x80, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, + 0xf9, 0x0b, 0x0c, 0x48, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x90, 0x0b, 0x00, 0x0b, 0x00, + 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x05, 0xac, 0x80, 0x00, 0x60, 0x07, 0x00, 0x6e, 0x07, + 0x04, 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, + 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x05, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x04, 0x66, 0x08, 0xff, + 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, 0x09, 0x05, + 0x90, 0x07, 0x00, 0x32, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x05, 0x90, 0x07, 0x00, 0x36, 0x00, 0x00, + 0x1e, 0x6b, 0x07, 0x05, 0x9f, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x6b, 0x07, 0x05, 0x9f, + 0x92, 0x04, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x69, 0x01, 0x00, 0x01, 0x00, 0x00, 0x92, 0x00, 0x80, + 0x00, 0x00, 0x00, 0xfc, 0x01, 0x0e, 0x0e, 0x00, +}; + +const unsigned char ReadProgmem_jtag_2[184] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x9b, 0x05, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x02, 0x23, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x05, 0x90, 0x0b, 0x00, 0x00, 0x01, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, + 0xf9, 0x0b, 0x0c, 0x48, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x90, 0x0b, 0x00, 0x0b, 0x00, + 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x05, 0xac, 0x80, 0x00, 0x60, 0x07, 0x00, 0x6e, 0x07, + 0x04, 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, + 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x05, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x04, 0x66, 0x08, 0xff, + 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, 0x09, 0x05, + 0x90, 0x07, 0x00, 0x32, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x05, 0x90, 0x07, 0x00, 0x36, 0x00, 0x00, + 0x1e, 0x6b, 0x07, 0x05, 0x9f, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x6b, 0x07, 0x05, 0x9f, + 0x92, 0x04, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x69, 0x01, 0x00, 0x01, 0x00, 0x00, 0x92, 0x00, 0x80, + 0x00, 0x00, 0x00, 0xfc, 0x01, 0x0e, 0x0e, 0x00, +}; + +const unsigned char ReadProgmem_jtag_3[184] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x9b, 0x05, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x02, 0x23, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x05, 0x90, 0x0b, 0x00, 0x40, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, + 0xf9, 0x0b, 0x0c, 0x48, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x90, 0x0b, 0x00, 0x0b, 0x00, + 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x05, 0xac, 0x40, 0x00, 0x60, 0x07, 0x00, 0x6e, 0x07, + 0x04, 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, + 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x05, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x04, 0x66, 0x08, 0xff, + 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, 0x09, 0x05, + 0x90, 0x07, 0x00, 0x32, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x05, 0x90, 0x07, 0x00, 0x36, 0x00, 0x00, + 0x1e, 0x6b, 0x07, 0x05, 0x9f, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x6b, 0x07, 0x05, 0x9f, + 0x92, 0x04, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x69, 0x01, 0x80, 0x00, 0x00, 0x00, 0x92, 0x00, 0x40, + 0x00, 0x00, 0x00, 0xfc, 0x01, 0x0e, 0x0e, 0x00, +}; + +const unsigned char ReadProgmem_jtag_4[184] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x9b, 0x05, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x02, 0x23, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x05, 0x90, 0x0b, 0x00, 0x00, 0x04, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, + 0xf9, 0x0b, 0x0c, 0x48, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x90, 0x0b, 0x00, 0x0b, 0x00, + 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x05, 0xac, 0x80, 0x00, 0x60, 0x07, 0x00, 0x6e, 0x07, + 0x04, 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, + 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x05, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x04, 0x66, 0x08, 0xff, + 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, 0x09, 0x05, + 0x90, 0x07, 0x00, 0x32, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x05, 0x90, 0x07, 0x00, 0x36, 0x00, 0x00, + 0x1e, 0x6b, 0x07, 0x05, 0x9f, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x6b, 0x07, 0x05, 0x9f, + 0x92, 0x04, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x69, 0x01, 0x00, 0x01, 0x00, 0x00, 0x92, 0x00, 0x80, + 0x00, 0x00, 0x00, 0xfc, 0x01, 0x0e, 0x0e, 0x00, +}; + +const unsigned char ReadProgmem_jtag_5[184] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x9b, 0x05, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x02, 0x23, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x05, 0x90, 0x0b, 0x00, 0x80, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, + 0xf9, 0x0b, 0x0c, 0x48, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x90, 0x0b, 0x00, 0x0b, 0x00, + 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x05, 0xac, 0x40, 0x00, 0x60, 0x07, 0x00, 0x6e, 0x07, + 0x04, 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, + 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x05, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x04, 0x66, 0x08, 0xff, + 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, 0x09, 0x05, + 0x90, 0x07, 0x00, 0x32, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x05, 0x90, 0x07, 0x00, 0x36, 0x00, 0x00, + 0x1e, 0x6b, 0x07, 0x05, 0x9f, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x6b, 0x07, 0x05, 0x9f, + 0x92, 0x04, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x69, 0x01, 0x80, 0x00, 0x00, 0x00, 0x92, 0x00, 0x40, + 0x00, 0x00, 0x00, 0xfc, 0x01, 0x0e, 0x0e, 0x00, +}; + +const unsigned char ReadProgmem_jtag_6[184] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x9b, 0x05, 0x0f, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x9b, 0x07, 0x05, 0x1e, 0x66, 0x07, 0x90, 0x07, 0x02, 0x23, 0x00, 0x00, + 0x1e, 0x67, 0x07, 0x05, 0x90, 0x0b, 0x00, 0xa0, 0x00, 0x00, 0x90, 0x0c, 0x00, 0x00, 0x02, 0x00, + 0xf9, 0x0b, 0x0c, 0x48, 0x00, 0x60, 0x0c, 0x00, 0x67, 0x0c, 0x10, 0x90, 0x0b, 0x00, 0x0b, 0x00, + 0x00, 0x6e, 0x0b, 0x0c, 0x1e, 0x67, 0x0b, 0x05, 0xac, 0x40, 0x00, 0x60, 0x07, 0x00, 0x6e, 0x07, + 0x04, 0x67, 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x90, 0x08, 0x00, 0x07, 0x00, 0x00, + 0x6e, 0x08, 0x07, 0x1e, 0x67, 0x08, 0x05, 0x60, 0x08, 0x00, 0x6e, 0x08, 0x04, 0x66, 0x08, 0xff, + 0x00, 0x00, 0x00, 0x90, 0x09, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x09, 0x08, 0x1e, 0x67, 0x09, 0x05, + 0x90, 0x07, 0x00, 0x32, 0x00, 0x00, 0x1e, 0x67, 0x07, 0x05, 0x90, 0x07, 0x00, 0x36, 0x00, 0x00, + 0x1e, 0x6b, 0x07, 0x05, 0x9f, 0x90, 0x07, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x6b, 0x07, 0x05, 0x9f, + 0x92, 0x04, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x69, 0x01, 0x80, 0x00, 0x00, 0x00, 0x92, 0x00, 0x40, + 0x00, 0x00, 0x00, 0xfc, 0x01, 0x0e, 0x0e, 0x00, +}; + +const unsigned char ReadProgmem_jtag_7[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadProgmem_jtag_8[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteDataEEmem_jtag_0[215] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x08, 0x00, 0x00, 0x00, 0x9b, 0x03, 0x0f, 0x60, 0x0a, 0x01, + 0x93, 0x0a, 0x08, 0x00, 0x90, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x9b, 0x04, 0x05, 0x1e, + 0x66, 0x04, 0x90, 0x04, 0x11, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x03, 0x60, 0x04, 0x00, 0x6e, + 0x04, 0x0b, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, 0x00, 0x90, 0x05, 0x00, 0x07, 0x00, + 0x00, 0x6e, 0x05, 0x04, 0x1e, 0x67, 0x05, 0x03, 0xac, 0x08, 0x00, 0x60, 0x06, 0x00, 0x7c, 0x06, + 0x0b, 0x66, 0x06, 0xff, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x07, 0x06, + 0x1e, 0x67, 0x07, 0x03, 0x99, 0x05, 0x90, 0x06, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x06, 0x05, 0x1e, + 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, + 0x77, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, + 0x03, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, 0x1e, 0x67, + 0x06, 0x03, 0x90, 0x06, 0x00, 0x31, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x33, + 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, + 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x06, 0x03, 0xa5, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_jtag_1[215] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x04, 0x00, 0x00, 0x00, 0x9b, 0x03, 0x0f, 0x60, 0x0a, 0x01, + 0x93, 0x0a, 0x04, 0x00, 0x90, 0x0b, 0x00, 0x00, 0x00, 0x00, 0xad, 0x0a, 0x9b, 0x04, 0x05, 0x1e, + 0x66, 0x04, 0x90, 0x04, 0x11, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x03, 0x60, 0x04, 0x00, 0x6e, + 0x04, 0x0b, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, 0x00, 0x90, 0x05, 0x00, 0x07, 0x00, + 0x00, 0x6e, 0x05, 0x04, 0x1e, 0x67, 0x05, 0x03, 0xac, 0x04, 0x00, 0x60, 0x06, 0x00, 0x7c, 0x06, + 0x0b, 0x66, 0x06, 0xff, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x07, 0x06, + 0x1e, 0x67, 0x07, 0x03, 0x99, 0x05, 0x90, 0x06, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x06, 0x05, 0x1e, + 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, + 0x77, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, + 0x03, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, 0x1e, 0x67, + 0x06, 0x03, 0x90, 0x06, 0x00, 0x31, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x33, + 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, + 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x06, 0x03, 0xa5, 0x00, 0x02, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, 0xae, +}; + +const unsigned char WriteDataEEmem_jtag_2[334] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x20, 0x00, 0xad, 0x03, 0x90, 0x05, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x05, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x90, 0x09, 0xcc, 0x01, 0x00, + 0x01, 0x1e, 0x03, 0x09, 0x6c, 0x05, 0x6c, 0x0a, 0x66, 0x05, 0x08, 0x00, 0x00, 0x00, 0xfe, 0x05, + 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x60, 0x05, 0x0a, 0x66, 0x05, 0xf7, 0xff, 0xff, 0xff, 0x1e, + 0x06, 0x09, 0x05, 0xac, 0x02, 0x00, 0x90, 0x05, 0xca, 0x01, 0x00, 0x01, 0x90, 0x06, 0x36, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x05, 0x06, 0x90, 0x05, 0xcb, 0x01, 0x00, 0x01, 0x90, 0x06, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x05, 0x06, 0x90, 0x05, 0xca, 0x01, 0x00, 0x01, 0x90, 0x06, 0x33, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x05, 0x06, 0x90, 0x08, 0x00, 0x00, 0x8c, 0x00, 0x1e, 0x09, 0x08, 0x65, + 0xff, 0x00, 0x00, 0x00, 0x01, 0x90, 0x06, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x0a, 0x06, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x35, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, + 0x08, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, + 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x00, 0xa4, 0x90, 0x05, 0xca, 0x01, 0x00, 0x01, 0x90, 0x06, 0x36, 0x00, 0x00, 0x00, 0x1e, + 0x06, 0x05, 0x06, 0x90, 0x05, 0xcb, 0x01, 0x00, 0x01, 0x90, 0x06, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x06, 0x05, 0x06, 0x90, 0x05, 0xca, 0x01, 0x00, 0x01, 0x90, 0x06, 0x33, 0x00, 0x00, 0x00, 0x1e, + 0x06, 0x05, 0x06, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x20, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, + 0x90, 0x05, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x05, 0x00, 0x00, 0x00, 0x00, 0x46, 0x01, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x34, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, + 0x00, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, + 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x1e, 0x06, 0x09, 0x0a, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadDataEEmem_jtag_0[144] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x05, 0x1e, 0x66, 0x02, 0x90, 0x02, 0x03, 0x23, 0x00, 0x00, + 0x9b, 0x03, 0x0f, 0x1e, 0x67, 0x02, 0x03, 0x60, 0x02, 0x00, 0xad, 0x01, 0x60, 0x03, 0x02, 0x67, + 0x03, 0x08, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x90, 0x04, 0x00, 0x07, 0x00, 0x00, 0x6e, 0x04, + 0x03, 0x9b, 0x05, 0x0f, 0x1e, 0x67, 0x04, 0x05, 0x90, 0x04, 0x00, 0x03, 0x00, 0x00, 0x60, 0x03, + 0x02, 0x90, 0x06, 0xff, 0x00, 0x00, 0x00, 0x7d, 0x03, 0x06, 0x6e, 0x04, 0x03, 0x9b, 0x05, 0x0f, + 0x1e, 0x67, 0x04, 0x05, 0x90, 0x03, 0x00, 0x33, 0x00, 0x00, 0x60, 0x04, 0x02, 0x66, 0x04, 0xff, + 0x00, 0x00, 0x00, 0x6e, 0x03, 0x04, 0x9b, 0x04, 0x0f, 0x1e, 0x67, 0x03, 0x04, 0x90, 0x03, 0x00, + 0x32, 0x00, 0x00, 0x9b, 0x04, 0x0f, 0x1e, 0x67, 0x03, 0x04, 0x95, 0x90, 0x03, 0x00, 0x33, 0x00, + 0x00, 0x9b, 0x04, 0x0f, 0x1e, 0x6b, 0x03, 0x04, 0x9f, 0x92, 0x02, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadDataEEmem_jtag_1[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x20, 0x00, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x06, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x20, 0x00, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteConfigmemFuse_jtag_0[160] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x0a, 0x0f, 0xad, 0x01, 0x9b, + 0x02, 0x05, 0x1e, 0x66, 0x02, 0x90, 0x02, 0x40, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x02, 0x0a, 0x99, + 0x0b, 0x90, 0x03, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x03, 0x0b, 0x1e, 0x67, 0x03, 0x0a, 0xfe, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x46, 0x00, 0xfe, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4c, 0x00, 0xfe, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x52, 0x00, 0x9b, 0x04, 0x3b, 0xfb, 0x55, 0x00, 0x9b, 0x04, 0x37, 0xfb, + 0x55, 0x00, 0x9b, 0x04, 0x33, 0x60, 0x05, 0x04, 0x68, 0x05, 0x08, 0x1e, 0x67, 0x05, 0x0a, 0x60, + 0x05, 0x04, 0x69, 0x05, 0x02, 0x00, 0x00, 0x00, 0x68, 0x05, 0x08, 0x1e, 0x67, 0x05, 0x0a, 0x60, + 0x05, 0x04, 0x68, 0x05, 0x08, 0x1e, 0x67, 0x05, 0x0a, 0x60, 0x05, 0x04, 0x68, 0x05, 0x08, 0x1e, + 0x67, 0x05, 0x0a, 0x60, 0x05, 0x04, 0x68, 0x05, 0x08, 0xa2, 0x1e, 0x6b, 0x05, 0x0a, 0xa5, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0a, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteConfigmemFuse_jtag_1[71] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x00, 0x90, 0x02, 0xca, 0x01, 0x00, 0x01, 0x90, 0x03, 0x4c, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x02, 0x03, 0x99, 0x04, 0x1e, 0x06, 0x00, 0x04, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, + 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, + 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteConfigmemLock_jtag_0[109] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x02, 0x0f, 0xad, 0x01, 0x9b, + 0x03, 0x05, 0x1e, 0x66, 0x03, 0x90, 0x03, 0x20, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x03, 0x02, 0x99, + 0x03, 0x90, 0x04, 0x00, 0x13, 0x00, 0x00, 0x6e, 0x04, 0x03, 0x1e, 0x67, 0x04, 0x02, 0x90, 0x04, + 0x00, 0x33, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x02, 0x90, 0x04, 0x00, 0x31, 0x00, 0x00, 0x1e, 0x67, + 0x04, 0x02, 0x90, 0x04, 0x00, 0x33, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x02, 0x90, 0x04, 0x00, 0x33, + 0x00, 0x00, 0x1e, 0x67, 0x04, 0x02, 0x90, 0x04, 0x00, 0x33, 0x00, 0x00, 0xa2, 0x1e, 0x6b, 0x04, + 0x02, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x0a, 0x00, 0xae, +}; + +const unsigned char WriteConfigmemLock_jtag_1[71] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x00, 0x90, 0x02, 0xca, 0x01, 0x00, 0x01, 0x90, 0x03, 0x08, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x02, 0x03, 0x99, 0x04, 0x1e, 0x06, 0x00, 0x04, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, + 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, + 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadConfigmemFuse_jtag_0[114] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x9b, 0x02, 0x01, 0x9b, 0x07, 0x0f, 0x60, 0x08, 0x01, 0xad, 0x08, 0xfe, 0x00, 0x01, 0x00, 0x00, + 0x00, 0x33, 0x00, 0xfe, 0x00, 0x02, 0x00, 0x00, 0x00, 0x39, 0x00, 0xfe, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x3f, 0x00, 0x9b, 0x06, 0x3e, 0xfb, 0x42, 0x00, 0x9b, 0x06, 0x3a, 0xfb, 0x42, 0x00, 0x9b, + 0x06, 0x32, 0x9b, 0x09, 0x05, 0x1e, 0x66, 0x09, 0x90, 0x09, 0x04, 0x23, 0x00, 0x00, 0x1e, 0x67, + 0x09, 0x07, 0x60, 0x09, 0x06, 0x68, 0x09, 0x08, 0x1e, 0x67, 0x09, 0x07, 0x60, 0x09, 0x06, 0x6e, + 0x09, 0x02, 0x68, 0x09, 0x08, 0x95, 0x1e, 0x6b, 0x09, 0x07, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, + 0x00, 0xae, +}; + +const unsigned char ReadConfigmemFuse_jtag_1[106] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x69, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x01, 0x1e, 0x0c, 0x01, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, + 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadConfigmemLock_jtag_0[63] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x02, 0x01, 0xad, 0x02, 0x9b, + 0x04, 0x05, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x04, 0x23, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x1e, 0x67, + 0x04, 0x05, 0x90, 0x04, 0x00, 0x36, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x1e, 0x67, 0x04, 0x05, 0x90, + 0x04, 0x00, 0x37, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x95, 0x1e, 0x6b, 0x04, 0x05, 0x9f, 0xae, +}; + +const unsigned char ReadConfigmemLock_jtag_1[106] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x69, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x01, 0x1e, 0x0c, 0x01, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, + 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteIDmem_jtag_0[400] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x03, 0x0f, 0x60, 0x0a, 0x01, + 0x93, 0x0a, 0x00, 0x00, 0x67, 0x00, 0x01, 0xad, 0x0a, 0x90, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x9b, + 0x04, 0x05, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x84, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x03, 0x60, + 0x04, 0x00, 0x6e, 0x04, 0x0b, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, 0x00, 0x90, 0x05, + 0x00, 0x07, 0x00, 0x00, 0x6e, 0x05, 0x04, 0x1e, 0x67, 0x05, 0x03, 0x60, 0x06, 0x00, 0x7c, 0x06, + 0x0b, 0x66, 0x06, 0xff, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x07, 0x06, + 0x1e, 0x67, 0x07, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, + 0x00, 0x77, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, + 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x35, + 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, + 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, + 0xa2, 0x1e, 0x6b, 0x06, 0x03, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xf4, 0x01, + 0x9b, 0x04, 0x05, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x12, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x03, + 0x60, 0x04, 0x00, 0x6e, 0x04, 0x0b, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, 0x00, 0x90, + 0x05, 0x00, 0x07, 0x00, 0x00, 0x6e, 0x05, 0x04, 0x1e, 0x67, 0x05, 0x03, 0xac, 0x00, 0x00, 0x60, + 0x06, 0x00, 0x7c, 0x06, 0x0b, 0x66, 0x06, 0xff, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00, 0x03, 0x00, + 0x00, 0x6e, 0x07, 0x06, 0x1e, 0x67, 0x07, 0x03, 0x99, 0x05, 0x90, 0x06, 0x00, 0x13, 0x00, 0x00, + 0x6e, 0x06, 0x05, 0x1e, 0x67, 0x06, 0x03, 0x99, 0x05, 0x90, 0x06, 0x00, 0x17, 0x00, 0x00, 0x6e, + 0x06, 0x05, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, + 0x90, 0x06, 0x00, 0x77, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, + 0x1e, 0x67, 0x06, 0x03, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x92, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x35, 0x00, + 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, + 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0xa2, + 0x1e, 0x6b, 0x06, 0x03, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xf4, 0x01, 0xae, +}; + +const unsigned char WriteIDmem_jtag_1[400] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x00, 0x01, 0x00, 0x00, 0x9b, 0x03, 0x0f, 0x60, 0x0a, 0x01, + 0x93, 0x0a, 0x00, 0x01, 0x67, 0x00, 0x01, 0xad, 0x0a, 0x90, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x9b, + 0x04, 0x05, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x84, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x03, 0x60, + 0x04, 0x00, 0x6e, 0x04, 0x0b, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, 0x00, 0x90, 0x05, + 0x00, 0x07, 0x00, 0x00, 0x6e, 0x05, 0x04, 0x1e, 0x67, 0x05, 0x03, 0x60, 0x06, 0x00, 0x7c, 0x06, + 0x0b, 0x66, 0x06, 0xff, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x07, 0x06, + 0x1e, 0x67, 0x07, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, + 0x00, 0x77, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, + 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x35, + 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, + 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, + 0xa2, 0x1e, 0x6b, 0x06, 0x03, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xf4, 0x01, + 0x9b, 0x04, 0x05, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x12, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x03, + 0x60, 0x04, 0x00, 0x6e, 0x04, 0x0b, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, 0x00, 0x90, + 0x05, 0x00, 0x07, 0x00, 0x00, 0x6e, 0x05, 0x04, 0x1e, 0x67, 0x05, 0x03, 0xac, 0x80, 0x00, 0x60, + 0x06, 0x00, 0x7c, 0x06, 0x0b, 0x66, 0x06, 0xff, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00, 0x03, 0x00, + 0x00, 0x6e, 0x07, 0x06, 0x1e, 0x67, 0x07, 0x03, 0x99, 0x05, 0x90, 0x06, 0x00, 0x13, 0x00, 0x00, + 0x6e, 0x06, 0x05, 0x1e, 0x67, 0x06, 0x03, 0x99, 0x05, 0x90, 0x06, 0x00, 0x17, 0x00, 0x00, 0x6e, + 0x06, 0x05, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, + 0x90, 0x06, 0x00, 0x77, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, + 0x1e, 0x67, 0x06, 0x03, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x92, 0x00, 0x80, 0x00, 0x00, + 0x00, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x35, 0x00, + 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, + 0x06, 0x00, 0x37, 0x00, 0x00, 0x1e, 0x67, 0x06, 0x03, 0x90, 0x06, 0x00, 0x37, 0x00, 0x00, 0xa2, + 0x1e, 0x6b, 0x06, 0x03, 0xa5, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0xf4, 0x01, 0xae, +}; + +const unsigned char WriteIDmem_jtag_2[198] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x04, 0x6c, 0x0a, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x18, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x90, + 0x05, 0x55, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x00, 0x05, 0x90, 0x04, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x04, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x04, 0x0a, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x02, 0xad, + 0x03, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, + 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, + 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, + 0x90, 0x05, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, + 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteIDmem_jtag_3[198] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x04, 0x6c, 0x0a, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x18, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x90, + 0x05, 0x55, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x00, 0x05, 0x90, 0x04, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x04, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x04, 0x0a, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x01, 0xad, + 0x03, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, + 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, + 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, + 0x90, 0x05, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, + 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadIDmem_jtag_0[160] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x03, 0x0f, 0x60, 0x0a, 0x01, + 0x93, 0x0a, 0x00, 0x00, 0x67, 0x00, 0x01, 0xad, 0x0a, 0x90, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x9b, + 0x04, 0x05, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x08, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x03, 0xac, + 0x00, 0x00, 0x60, 0x04, 0x00, 0x7c, 0x04, 0x0b, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, + 0x00, 0x90, 0x05, 0x00, 0x07, 0x00, 0x00, 0x7c, 0x05, 0x04, 0x1e, 0x67, 0x05, 0x03, 0x60, 0x06, + 0x00, 0x7c, 0x06, 0x0b, 0x66, 0x06, 0xff, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00, 0x03, 0x00, 0x00, + 0x7c, 0x07, 0x06, 0x1e, 0x67, 0x07, 0x03, 0x90, 0x04, 0x00, 0x32, 0x00, 0x00, 0x9b, 0x05, 0x0f, + 0x1e, 0x67, 0x04, 0x05, 0x90, 0x04, 0x00, 0x36, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x95, 0x1e, 0x6b, + 0x04, 0x05, 0x9f, 0x90, 0x04, 0x00, 0x37, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x95, 0x1e, 0x6b, 0x04, + 0x05, 0x9f, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x92, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadIDmem_jtag_1[160] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x00, 0x01, 0x00, 0x00, 0x9b, 0x03, 0x0f, 0x60, 0x0a, 0x01, + 0x93, 0x0a, 0x00, 0x01, 0x67, 0x00, 0x01, 0xad, 0x0a, 0x90, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x9b, + 0x04, 0x05, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x08, 0x23, 0x00, 0x00, 0x1e, 0x67, 0x04, 0x03, 0xac, + 0x80, 0x00, 0x60, 0x04, 0x00, 0x7c, 0x04, 0x0b, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, + 0x00, 0x90, 0x05, 0x00, 0x07, 0x00, 0x00, 0x7c, 0x05, 0x04, 0x1e, 0x67, 0x05, 0x03, 0x60, 0x06, + 0x00, 0x7c, 0x06, 0x0b, 0x66, 0x06, 0xff, 0x00, 0x00, 0x00, 0x90, 0x07, 0x00, 0x03, 0x00, 0x00, + 0x7c, 0x07, 0x06, 0x1e, 0x67, 0x07, 0x03, 0x90, 0x04, 0x00, 0x32, 0x00, 0x00, 0x9b, 0x05, 0x0f, + 0x1e, 0x67, 0x04, 0x05, 0x90, 0x04, 0x00, 0x36, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x95, 0x1e, 0x6b, + 0x04, 0x05, 0x9f, 0x90, 0x04, 0x00, 0x37, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x95, 0x1e, 0x6b, 0x04, + 0x05, 0x9f, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadIDmem_jtag_2[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadIDmem_jtag_3[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteMem8_jtag_0[493] = { + 0x91, 0x00, 0x91, 0x0a, 0xad, 0x0a, 0x99, 0x01, 0x9b, 0x0b, 0x00, 0xac, 0x03, 0x00, 0xfe, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0xfe, 0x0b, + 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0xfb, 0xdd, 0x01, 0x9b, 0x02, 0x10, 0xfb, 0x4d, 0x00, 0x9b, + 0x02, 0x1f, 0x60, 0x01, 0x00, 0x66, 0x01, 0x00, 0xff, 0x00, 0x00, 0x67, 0x01, 0x08, 0xfb, 0x4d, + 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x00, 0x66, 0x01, 0xff, 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, + 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, + 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, + 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, + 0x1e, 0x66, 0x04, 0x90, 0x05, 0x03, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, + 0x05, 0x06, 0xa5, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, + 0x04, 0x05, 0xfb, 0x25, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, + 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, + 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, + 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, + 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, + 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x03, 0x00, 0x83, + 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x03, 0x00, 0x00, 0x00, 0x90, 0x06, + 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x5a, 0x01, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, + 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xe5, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, + 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, + 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, + 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, + 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, + 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfb, 0xe5, 0x01, 0x90, 0x01, 0x00, + 0x01, 0x00, 0x00, 0x7f, 0x01, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteMem8_jtag_1[493] = { + 0x91, 0x00, 0x91, 0x0a, 0xad, 0x0a, 0x99, 0x01, 0x9b, 0x0b, 0x00, 0xac, 0x03, 0x00, 0xfe, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0xfe, 0x0b, + 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0xfb, 0xdd, 0x01, 0x9b, 0x02, 0x10, 0xfb, 0x4d, 0x00, 0x9b, + 0x02, 0x1f, 0x60, 0x01, 0x00, 0x66, 0x01, 0x00, 0xff, 0x00, 0x00, 0x67, 0x01, 0x08, 0xfb, 0x4d, + 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x00, 0x66, 0x01, 0xff, 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, + 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, + 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, + 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, + 0x1e, 0x66, 0x04, 0x90, 0x05, 0x01, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, + 0x05, 0x06, 0xa5, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, + 0x04, 0x05, 0xfb, 0x25, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, + 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, + 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, + 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, + 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, + 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x03, 0x00, 0x83, + 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x01, 0x00, 0x00, 0x00, 0x90, 0x06, + 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x5a, 0x01, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, + 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xe5, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, + 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, + 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, + 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, + 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, + 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfb, 0xe5, 0x01, 0x90, 0x01, 0x00, + 0x01, 0x00, 0x00, 0x7f, 0x01, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteMem8_jtag_2[493] = { + 0x91, 0x00, 0x91, 0x0a, 0xad, 0x0a, 0x99, 0x01, 0x9b, 0x0b, 0x00, 0xac, 0x03, 0x00, 0xfe, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0xfe, 0x0b, + 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0xfb, 0xdd, 0x01, 0x9b, 0x02, 0x10, 0xfb, 0x4d, 0x00, 0x9b, + 0x02, 0x1f, 0x60, 0x01, 0x00, 0x66, 0x01, 0x00, 0xff, 0x00, 0x00, 0x67, 0x01, 0x08, 0xfb, 0x4d, + 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x00, 0x66, 0x01, 0xff, 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, + 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, + 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, + 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, + 0x1e, 0x66, 0x04, 0x90, 0x05, 0x02, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, + 0x05, 0x06, 0xa5, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, + 0x04, 0x05, 0xfb, 0x25, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, + 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, + 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, + 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, + 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, + 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x03, 0x00, 0x83, + 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x02, 0x00, 0x00, 0x00, 0x90, 0x06, + 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x5a, 0x01, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, + 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xe5, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, + 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, + 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, + 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, + 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, + 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfb, 0xe5, 0x01, 0x90, 0x01, 0x00, + 0x01, 0x00, 0x00, 0x7f, 0x01, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteMem8_jtag_3[493] = { + 0x91, 0x00, 0x91, 0x0a, 0xad, 0x0a, 0x99, 0x01, 0x9b, 0x0b, 0x00, 0xac, 0x03, 0x00, 0xfe, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x29, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, 0x2f, 0x00, 0xfe, 0x0b, + 0x02, 0x00, 0x00, 0x00, 0x41, 0x00, 0xfb, 0xdd, 0x01, 0x9b, 0x02, 0x10, 0xfb, 0x4d, 0x00, 0x9b, + 0x02, 0x1f, 0x60, 0x01, 0x00, 0x66, 0x01, 0x00, 0xff, 0x00, 0x00, 0x67, 0x01, 0x08, 0xfb, 0x4d, + 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x00, 0x66, 0x01, 0xff, 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, + 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, + 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, + 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, + 0x1e, 0x66, 0x04, 0x90, 0x05, 0x04, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, + 0x05, 0x06, 0xa5, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, + 0x04, 0x05, 0xfb, 0x25, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, + 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, + 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, + 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, + 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, + 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, 0x00, 0xa4, 0x90, 0x03, 0x00, 0x83, + 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x04, 0x00, 0x00, 0x00, 0x90, 0x06, + 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x5a, 0x01, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, + 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xe5, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, + 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, + 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, + 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, + 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, + 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, + 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, + 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfb, 0xe5, 0x01, 0x90, 0x01, 0x00, + 0x01, 0x00, 0x00, 0x7f, 0x01, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteMem8_jtag_4[70] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x01, 0x00, + 0xfa, 0x01, 0x03, 0x1b, 0x00, 0x60, 0x04, 0x01, 0xfb, 0x21, 0x00, 0x90, 0x04, 0x00, 0x00, 0x01, + 0x00, 0x6a, 0x01, 0x04, 0x90, 0x02, 0xca, 0x01, 0x00, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x02, 0x03, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x6e, 0x00, 0x04, + 0xfc, 0x01, 0x07, 0x0a, 0x00, 0x5a, +}; + +const unsigned char ReadMem8_jtag_0[797] = { + 0x91, 0x00, 0x91, 0x12, 0x60, 0x14, 0x12, 0x60, 0x13, 0x00, 0xad, 0x14, 0x9b, 0x0b, 0x00, 0xac, + 0x02, 0x00, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, + 0x37, 0x00, 0xfb, 0x14, 0x03, 0x9b, 0x02, 0x1f, 0x60, 0x01, 0x13, 0x66, 0x01, 0x00, 0xff, 0x00, + 0x00, 0x67, 0x01, 0x08, 0xfb, 0x43, 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x13, 0x66, 0x01, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, + 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, + 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, + 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x03, 0x00, 0x00, 0x00, 0x90, + 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x9b, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, + 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0x1b, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, + 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, + 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, + 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, + 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, + 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, + 0x00, 0xa4, 0x90, 0x03, 0x00, 0x81, 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, + 0x03, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x50, 0x01, 0x68, + 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xd0, 0x01, + 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, + 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, + 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, + 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, + 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, + 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, + 0x9b, 0x19, 0x10, 0x9b, 0x00, 0x31, 0x90, 0x1a, 0x01, 0xbe, 0x00, 0x00, 0x60, 0x1b, 0x19, 0x66, + 0x1b, 0x1f, 0x00, 0x00, 0x00, 0x68, 0x1b, 0x04, 0x7c, 0x1a, 0x1b, 0x60, 0x03, 0x1a, 0x9b, 0x04, + 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x03, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, + 0xf8, 0x05, 0x06, 0x16, 0x02, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, + 0x03, 0x04, 0x05, 0xfb, 0x96, 0x02, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, + 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, + 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, + 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, + 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, + 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, + 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfe, 0x00, 0x31, 0x00, 0x00, 0x00, 0xa1, 0x02, 0xfb, 0x1c, + 0x03, 0xa2, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, 0x05, + 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, + 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0xa5, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0c, + 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0x6c, 0x07, 0x67, + 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x98, 0x07, 0x92, 0x13, 0x01, 0x00, 0x00, 0x00, + 0xae, 0xfb, 0x1c, 0x03, 0x90, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x5a, +}; + +const unsigned char ReadMem8_jtag_1[797] = { + 0x91, 0x00, 0x91, 0x12, 0x60, 0x14, 0x12, 0x60, 0x13, 0x00, 0xad, 0x14, 0x9b, 0x0b, 0x00, 0xac, + 0x02, 0x00, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, + 0x37, 0x00, 0xfb, 0x14, 0x03, 0x9b, 0x02, 0x1f, 0x60, 0x01, 0x13, 0x66, 0x01, 0x00, 0xff, 0x00, + 0x00, 0x67, 0x01, 0x08, 0xfb, 0x43, 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x13, 0x66, 0x01, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, + 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, + 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, + 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x01, 0x00, 0x00, 0x00, 0x90, + 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x9b, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, + 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0x1b, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, + 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, + 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, + 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, + 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, + 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, + 0x00, 0xa4, 0x90, 0x03, 0x00, 0x81, 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, + 0x01, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x50, 0x01, 0x68, + 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xd0, 0x01, + 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, + 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, + 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, + 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, + 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, + 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, + 0x9b, 0x19, 0x10, 0x9b, 0x00, 0x22, 0x90, 0x1a, 0x02, 0xbc, 0x00, 0x00, 0x60, 0x1b, 0x19, 0x66, + 0x1b, 0x1f, 0x00, 0x00, 0x00, 0x68, 0x1b, 0x04, 0x7c, 0x1a, 0x1b, 0x60, 0x03, 0x1a, 0x9b, 0x04, + 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x01, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, + 0xf8, 0x05, 0x06, 0x16, 0x02, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, + 0x03, 0x04, 0x05, 0xfb, 0x96, 0x02, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, + 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, + 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, + 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, + 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, + 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, + 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfe, 0x00, 0x22, 0x00, 0x00, 0x00, 0xa1, 0x02, 0xfb, 0x1c, + 0x03, 0xa2, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, 0x05, + 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, + 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0xa5, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0c, + 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0x6c, 0x07, 0x67, + 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x98, 0x07, 0x92, 0x13, 0x01, 0x00, 0x00, 0x00, + 0xae, 0xfb, 0x1c, 0x03, 0x90, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x5a, +}; + +const unsigned char ReadMem8_jtag_2[797] = { + 0x91, 0x00, 0x91, 0x12, 0x60, 0x14, 0x12, 0x60, 0x13, 0x00, 0xad, 0x14, 0x9b, 0x0b, 0x00, 0xac, + 0x02, 0x00, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, + 0x37, 0x00, 0xfb, 0x14, 0x03, 0x9b, 0x02, 0x1f, 0x60, 0x01, 0x13, 0x66, 0x01, 0x00, 0xff, 0x00, + 0x00, 0x67, 0x01, 0x08, 0xfb, 0x43, 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x13, 0x66, 0x01, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, + 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, + 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, + 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x02, 0x00, 0x00, 0x00, 0x90, + 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x9b, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, + 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0x1b, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, + 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, + 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, + 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, + 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, + 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, + 0x00, 0xa4, 0x90, 0x03, 0x00, 0x81, 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, + 0x02, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x50, 0x01, 0x68, + 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xd0, 0x01, + 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, + 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, + 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, + 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, + 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, + 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, + 0x9b, 0x19, 0x10, 0x9b, 0x00, 0x31, 0x90, 0x1a, 0x01, 0xbe, 0x00, 0x00, 0x60, 0x1b, 0x19, 0x66, + 0x1b, 0x1f, 0x00, 0x00, 0x00, 0x68, 0x1b, 0x04, 0x7c, 0x1a, 0x1b, 0x60, 0x03, 0x1a, 0x9b, 0x04, + 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x02, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, + 0xf8, 0x05, 0x06, 0x16, 0x02, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, + 0x03, 0x04, 0x05, 0xfb, 0x96, 0x02, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, + 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, + 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, + 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, + 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, + 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, + 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfe, 0x00, 0x31, 0x00, 0x00, 0x00, 0xa1, 0x02, 0xfb, 0x1c, + 0x03, 0xa2, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, 0x05, + 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, + 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0xa5, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0c, + 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0x6c, 0x07, 0x67, + 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x98, 0x07, 0x92, 0x13, 0x01, 0x00, 0x00, 0x00, + 0xae, 0xfb, 0x1c, 0x03, 0x90, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x5a, +}; + +const unsigned char ReadMem8_jtag_3[797] = { + 0x91, 0x00, 0x91, 0x12, 0x60, 0x14, 0x12, 0x60, 0x13, 0x00, 0xad, 0x14, 0x9b, 0x0b, 0x00, 0xac, + 0x02, 0x00, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, + 0x37, 0x00, 0xfb, 0x14, 0x03, 0x9b, 0x02, 0x1f, 0x60, 0x01, 0x13, 0x66, 0x01, 0x00, 0xff, 0x00, + 0x00, 0x67, 0x01, 0x08, 0xfb, 0x43, 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x13, 0x66, 0x01, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, + 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, + 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, + 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x02, 0x00, 0x00, 0x00, 0x90, + 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x9b, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, + 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0x1b, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, + 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, + 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, + 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, + 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, + 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, + 0x00, 0xa4, 0x90, 0x03, 0x00, 0x81, 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, + 0x02, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x50, 0x01, 0x68, + 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xd0, 0x01, + 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, + 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, + 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, + 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, + 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, + 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, + 0x9b, 0x19, 0x10, 0x9b, 0x00, 0x04, 0x90, 0x1a, 0x04, 0xb8, 0x00, 0x00, 0x60, 0x1b, 0x19, 0x66, + 0x1b, 0x1f, 0x00, 0x00, 0x00, 0x68, 0x1b, 0x04, 0x7c, 0x1a, 0x1b, 0x60, 0x03, 0x1a, 0x9b, 0x04, + 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x02, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, + 0xf8, 0x05, 0x06, 0x16, 0x02, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, + 0x03, 0x04, 0x05, 0xfb, 0x96, 0x02, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, + 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, + 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, + 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, + 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, + 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, + 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfe, 0x00, 0x04, 0x00, 0x00, 0x00, 0xa1, 0x02, 0xfb, 0x1c, + 0x03, 0xa2, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, 0x05, + 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, + 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0xa5, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0c, + 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0x6c, 0x07, 0x67, + 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x98, 0x07, 0x92, 0x13, 0x01, 0x00, 0x00, 0x00, + 0xae, 0xfb, 0x1c, 0x03, 0x90, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x5a, +}; + +const unsigned char ReadMem8_jtag_4[797] = { + 0x91, 0x00, 0x91, 0x12, 0x60, 0x14, 0x12, 0x60, 0x13, 0x00, 0xad, 0x14, 0x9b, 0x0b, 0x00, 0xac, + 0x02, 0x00, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, + 0x37, 0x00, 0xfb, 0x14, 0x03, 0x9b, 0x02, 0x1f, 0x60, 0x01, 0x13, 0x66, 0x01, 0x00, 0xff, 0x00, + 0x00, 0x67, 0x01, 0x08, 0xfb, 0x43, 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x13, 0x66, 0x01, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, + 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, + 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, + 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x04, 0x00, 0x00, 0x00, 0x90, + 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x9b, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, + 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0x1b, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, + 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, + 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, + 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, + 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, + 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, + 0x00, 0xa4, 0x90, 0x03, 0x00, 0x81, 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, + 0x04, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x50, 0x01, 0x68, + 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xd0, 0x01, + 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, + 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, + 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, + 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, + 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, + 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, + 0x9b, 0x19, 0x10, 0x9b, 0x00, 0x31, 0x90, 0x1a, 0x01, 0xbe, 0x00, 0x00, 0x60, 0x1b, 0x19, 0x66, + 0x1b, 0x1f, 0x00, 0x00, 0x00, 0x68, 0x1b, 0x04, 0x7c, 0x1a, 0x1b, 0x60, 0x03, 0x1a, 0x9b, 0x04, + 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x04, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, + 0xf8, 0x05, 0x06, 0x16, 0x02, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, + 0x03, 0x04, 0x05, 0xfb, 0x96, 0x02, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, + 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, + 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, + 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, + 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, + 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, + 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfe, 0x00, 0x31, 0x00, 0x00, 0x00, 0xa1, 0x02, 0xfb, 0x1c, + 0x03, 0xa2, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, 0x05, + 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, + 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0xa5, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0c, + 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0x6c, 0x07, 0x67, + 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x98, 0x07, 0x92, 0x13, 0x01, 0x00, 0x00, 0x00, + 0xae, 0xfb, 0x1c, 0x03, 0x90, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x5a, +}; + +const unsigned char ReadMem8_jtag_5[797] = { + 0x91, 0x00, 0x91, 0x12, 0x60, 0x14, 0x12, 0x60, 0x13, 0x00, 0xad, 0x14, 0x9b, 0x0b, 0x00, 0xac, + 0x02, 0x00, 0xfe, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0xfe, 0x0b, 0x01, 0x00, 0x00, 0x00, + 0x37, 0x00, 0xfb, 0x14, 0x03, 0x9b, 0x02, 0x1f, 0x60, 0x01, 0x13, 0x66, 0x01, 0x00, 0xff, 0x00, + 0x00, 0x67, 0x01, 0x08, 0xfb, 0x43, 0x00, 0x9b, 0x02, 0x1e, 0x60, 0x01, 0x13, 0x66, 0x01, 0xff, + 0x00, 0x00, 0x00, 0x60, 0x1c, 0x01, 0x66, 0x1c, 0x0f, 0x00, 0x00, 0x00, 0x60, 0x1d, 0x02, 0x66, + 0x1d, 0x0f, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x60, 0x1d, 0x01, 0x66, 0x1d, + 0xf0, 0x00, 0x00, 0x00, 0x68, 0x1d, 0x04, 0x7c, 0x1c, 0x1d, 0x61, 0x1c, 0x00, 0xe0, 0x00, 0x00, + 0x60, 0x03, 0x1c, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x02, 0x00, 0x00, 0x00, 0x90, + 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x9b, 0x00, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, + 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0x1b, 0x01, 0x60, 0x06, 0x03, 0x90, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, + 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, + 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, + 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, + 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, + 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, + 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, + 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0x92, 0x0b, 0x01, 0x00, 0x00, + 0x00, 0xa4, 0x90, 0x03, 0x00, 0x81, 0x00, 0x00, 0x9b, 0x04, 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, + 0x02, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, 0xf8, 0x05, 0x06, 0x50, 0x01, 0x68, + 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, 0x03, 0x04, 0x05, 0xfb, 0xd0, 0x01, + 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, + 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, + 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, + 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, + 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, + 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, + 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, + 0x9b, 0x19, 0x10, 0x9b, 0x00, 0x22, 0x90, 0x1a, 0x02, 0xbc, 0x00, 0x00, 0x60, 0x1b, 0x19, 0x66, + 0x1b, 0x1f, 0x00, 0x00, 0x00, 0x68, 0x1b, 0x04, 0x7c, 0x1a, 0x1b, 0x60, 0x03, 0x1a, 0x9b, 0x04, + 0x0a, 0x1e, 0x66, 0x04, 0x90, 0x05, 0x02, 0x00, 0x00, 0x00, 0x90, 0x06, 0x04, 0x00, 0x00, 0x00, + 0xf8, 0x05, 0x06, 0x16, 0x02, 0x68, 0x03, 0x10, 0x9b, 0x04, 0x20, 0x9b, 0x05, 0x01, 0x1e, 0x68, + 0x03, 0x04, 0x05, 0xfb, 0x96, 0x02, 0x60, 0x06, 0x03, 0x90, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x90, + 0x0d, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x00, 0x00, + 0x00, 0x90, 0x10, 0x00, 0x00, 0x00, 0x00, 0x60, 0x11, 0x06, 0x66, 0x0e, 0x3f, 0x00, 0x00, 0x00, + 0x68, 0x11, 0x06, 0x7c, 0x0e, 0x11, 0x60, 0x11, 0x06, 0x67, 0x11, 0x02, 0x60, 0x0f, 0x11, 0x60, + 0x11, 0x06, 0x67, 0x11, 0x0a, 0x60, 0x10, 0x11, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x66, 0x0c, + 0xff, 0x00, 0x00, 0x00, 0x60, 0x11, 0x0c, 0x66, 0x0d, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0d, 0x08, + 0x7c, 0x11, 0x0d, 0x66, 0x0e, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0e, 0x10, 0x7c, 0x11, 0x0e, 0x66, + 0x0f, 0xff, 0x00, 0x00, 0x00, 0x68, 0x0f, 0x18, 0x7c, 0x11, 0x0f, 0x60, 0x05, 0x11, 0x9b, 0x12, + 0x01, 0x1e, 0x69, 0x05, 0x10, 0x12, 0xfe, 0x00, 0x22, 0x00, 0x00, 0x00, 0xa1, 0x02, 0xfb, 0x1c, + 0x03, 0xa2, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, 0x05, + 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, 0x0d, 0x00, 0x9b, + 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0xa5, 0x10, 0x00, 0x00, 0x00, 0x10, + 0x00, 0x00, 0x00, 0x50, 0x00, 0x9b, 0x04, 0x0b, 0x1e, 0x66, 0x04, 0x90, 0x04, 0x00, 0x00, 0x0c, + 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x68, 0x04, 0x05, 0x06, 0x90, 0x04, 0x00, 0x00, + 0x00, 0x00, 0x9b, 0x05, 0x15, 0x9b, 0x06, 0x00, 0x1e, 0x6c, 0x04, 0x05, 0x06, 0x6c, 0x07, 0x67, + 0x07, 0x08, 0x66, 0x07, 0xff, 0x00, 0x00, 0x00, 0x98, 0x07, 0x92, 0x13, 0x01, 0x00, 0x00, 0x00, + 0xae, 0xfb, 0x1c, 0x03, 0x90, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x5a, +}; + +const unsigned char ReadMem8_jtag_6[130] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x81, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x01, 0x00, 0xfa, 0x01, 0x03, 0x53, 0x00, 0x60, 0x04, 0x01, + 0xfb, 0x59, 0x00, 0x90, 0x04, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x01, 0x04, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x04, 0x1e, 0x0c, 0x04, 0x6e, 0x00, 0x04, 0xfc, 0x01, 0x07, 0x42, 0x00, 0x90, 0x06, 0xca, + 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, + 0x0b, 0x5a, +}; + +const unsigned char ReadCalibrationByte_jtag_0[82] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x02, 0x01, 0xad, 0x02, 0x9b, 0x04, 0x05, 0x1e, 0x66, 0x04, 0x90, + 0x04, 0x08, 0x23, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x1e, 0x67, 0x04, 0x05, 0x60, 0x03, 0x00, 0x90, + 0x04, 0x00, 0x03, 0x00, 0x00, 0x6e, 0x04, 0x03, 0x9b, 0x05, 0x0f, 0x1e, 0x67, 0x04, 0x05, 0x90, + 0x04, 0x00, 0x36, 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x1e, 0x67, 0x04, 0x05, 0x90, 0x04, 0x00, 0x37, + 0x00, 0x00, 0x9b, 0x05, 0x0f, 0x95, 0x1e, 0x6b, 0x04, 0x05, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, + 0x00, 0xae, +}; + +const unsigned char WriteConfigmem_jtag_0[89] = { + 0x91, 0x00, 0x91, 0x01, 0xfe, 0x00, 0x27, 0x00, 0x8f, 0x00, 0x15, 0x00, 0x90, 0x07, 0x4c, 0x00, + 0x00, 0x00, 0xfb, 0x1b, 0x00, 0x90, 0x07, 0x08, 0x00, 0x00, 0x00, 0xaf, 0xad, 0x01, 0x90, 0x02, + 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x90, 0x02, 0xca, 0x01, + 0x00, 0x01, 0x1e, 0x06, 0x02, 0x07, 0x99, 0x04, 0x1e, 0x06, 0x00, 0x04, 0x90, 0x06, 0xcf, 0x01, + 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, + 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadConfigmem_jtag_0[106] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x69, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x01, 0x1e, 0x0c, 0x01, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, + 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteSRAM_jtag_0[70] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x01, 0x00, + 0xfa, 0x01, 0x03, 0x1b, 0x00, 0x60, 0x04, 0x01, 0xfb, 0x21, 0x00, 0x90, 0x04, 0x00, 0x00, 0x01, + 0x00, 0x6a, 0x01, 0x04, 0x90, 0x02, 0xca, 0x01, 0x00, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x02, 0x03, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x6e, 0x00, 0x04, + 0xfc, 0x01, 0x07, 0x0a, 0x00, 0x5a, +}; + +const unsigned char ReadSRAM_jtag_0[130] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x81, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x01, 0x00, 0xfa, 0x01, 0x03, 0x53, 0x00, 0x60, 0x04, 0x01, + 0xfb, 0x59, 0x00, 0x90, 0x04, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x01, 0x04, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x04, 0x1e, 0x0c, 0x04, 0x6e, 0x00, 0x04, 0xfc, 0x01, 0x07, 0x42, 0x00, 0x90, 0x06, 0xca, + 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, + 0x0b, 0x5a, +}; + +const unsigned char WriteCSreg_jtag_0[8] = { + 0x99, 0x00, 0x99, 0x01, 0x1e, 0x0f, 0x00, 0x01, +}; + +const unsigned char ReadCSreg_jtag_0[6] = { + 0x99, 0x00, 0x1e, 0x0e, 0x00, 0x9f, +}; + + + + +static void pickit_jtag_script_init(SCRIPT *scr); +static void pickit_jtag_script_init(SCRIPT *scr) { + memset(scr, 0x00, sizeof(SCRIPT)); // Make sure everything is NULL + + scr->ReadCalibrationByte = ReadCalibrationByte_jtag_0; + scr->WriteConfigmem = WriteConfigmem_jtag_0; + scr->ReadConfigmem = ReadConfigmem_jtag_0; + scr->WriteSRAM = WriteSRAM_jtag_0; + scr->ReadSRAM = ReadSRAM_jtag_0; + scr->WriteCSreg = WriteCSreg_jtag_0; + scr->ReadCSreg = ReadCSreg_jtag_0; + + scr->ReadCalibrationByte_len = sizeof(ReadCalibrationByte_jtag_0); + scr->WriteConfigmem_len = sizeof(WriteConfigmem_jtag_0); + scr->ReadConfigmem_len = sizeof(ReadConfigmem_jtag_0); + scr->WriteSRAM_len = sizeof(WriteSRAM_jtag_0); + scr->ReadSRAM_len = sizeof(ReadSRAM_jtag_0); + scr->WriteCSreg_len = sizeof(WriteCSreg_jtag_0); + scr->ReadCSreg_len = sizeof(ReadCSreg_jtag_0); +} + + +const char * const pickit5_jtag_chip_lut[] = { + "AT90CAN128", "AT90CAN32", "AT90CAN64", "AT90USB1286", "AT90USB1287", "AT90USB646", "AT90USB647", "ATmega128", + "ATmega1280", "ATmega1281", "ATmega1284", "ATmega1284P", "ATmega1284RFR2", "ATmega128A", "ATmega128RFA1", "ATmega128RFR2", + "ATmega16", "ATmega162", "ATmega164A", "ATmega164P", "ATmega164PA", "ATmega165A", "ATmega165P", "ATmega165PA", + "ATmega169A", "ATmega169P", "ATmega169PA", "ATmega16A", "ATmega16U4", "ATmega2560", "ATmega2561", "ATmega2564RFR2", + "ATmega256RFR2", "ATmega32", "ATmega324A", "ATmega324P", "ATmega324PA", "ATmega324PB", "ATmega325", "ATmega3250", + "ATmega3250A", "ATmega3250P", "ATmega3250PA", "ATmega325A", "ATmega325P", "ATmega325PA", "ATmega329", "ATmega3290", + "ATmega3290A", "ATmega3290P", "ATmega3290PA", "ATmega329A", "ATmega329P", "ATmega329PA", "ATmega32A", "ATmega32U4", + "ATmega406", "ATmega64", "ATmega640", "ATmega644", "ATmega644A", "ATmega644P", "ATmega644PA", "ATmega644RFR2", + "ATmega645", "ATmega6450", "ATmega6450A", "ATmega6450P", "ATmega645A", "ATmega645P", "ATmega649", "ATmega6490", + "ATmega6490A", "ATmega6490P", "ATmega649A", "ATmega649P", "ATmega64A", "ATmega64RFR2", "ATxmega128A1", "ATxmega128A1U", + "ATxmega128A3", "ATxmega128A3U", "ATxmega192A3", "ATxmega192A3U", "ATxmega256A3", "ATxmega256A3B", "ATxmega256A3BU", "ATxmega256A3U", + "ATxmega64A1", "ATxmega64A1U", "ATxmega64A3", "ATxmega64A3U", "ATxmega128B1", "ATxmega128B3", "ATxmega64B1", "ATxmega64B3", +}; + +int get_pickit_jtag_script(SCRIPT *scr, const char* partdesc) { + if ((scr == NULL) || (partdesc == NULL)) { + return -1; + } + int namepos = -1; + for (int i = 0; i < 96; i++) { + if (strncmp(pickit5_jtag_chip_lut[i], partdesc, 10) == 0) { + namepos = i; + break; + } + } + if (namepos == -1) { + return -2; + } + + pickit_jtag_script_init(scr); // load common functions + + switch (namepos) { + case 0: /* AT90CAN128 */ + case 3: /* AT90USB1286 */ + case 4: /* AT90USB1287 */ + case 8: /* ATmega1280 */ + case 9: /* ATmega1281 */ + case 10: /* ATmega1284 */ + case 11: /* ATmega1284P */ + case 14: /* ATmega128RFA1 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_0); + scr->ReadProgmem = ReadProgmem_jtag_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_0); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_0; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_0); + scr->ReadMem8 = ReadMem8_jtag_0; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); + break; + case 1: /* AT90CAN32 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_1; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_1); + scr->ReadProgmem = ReadProgmem_jtag_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_1); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_0; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_0); + scr->ReadMem8 = ReadMem8_jtag_0; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); + break; + case 2: /* AT90CAN64 */ + case 5: /* AT90USB646 */ + case 6: /* AT90USB647 */ + case 58: /* ATmega640 */ + case 59: /* ATmega644 */ + case 60: /* ATmega644A */ + case 61: /* ATmega644P */ + case 62: /* ATmega644PA */ + case 64: /* ATmega645 */ + case 65: /* ATmega6450 */ + case 66: /* ATmega6450A */ + case 67: /* ATmega6450P */ + case 68: /* ATmega645A */ + case 69: /* ATmega645P */ + case 70: /* ATmega649 */ + case 71: /* ATmega6490 */ + case 72: /* ATmega6490A */ + case 73: /* ATmega6490P */ + case 74: /* ATmega649A */ + case 75: /* ATmega649P */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_2); + scr->ReadProgmem = ReadProgmem_jtag_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_2); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_0; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_0); + scr->ReadMem8 = ReadMem8_jtag_0; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); + break; + case 7: /* ATmega128 */ + case 13: /* ATmega128A */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_0); + scr->ReadProgmem = ReadProgmem_jtag_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_0); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_1; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_1); + scr->ReadMem8 = ReadMem8_jtag_1; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_1); + break; + case 12: /* ATmega1284RFR2 */ + case 15: /* ATmega128RFR2 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_0); + scr->ReadProgmem = ReadProgmem_jtag_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_0); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_1; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_1); + scr->ReadIDmem = ReadIDmem_jtag_1; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_1); + scr->WriteMem8 = WriteMem8_jtag_0; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_0); + scr->ReadMem8 = ReadMem8_jtag_0; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); + break; + case 16: /* ATmega16 */ + case 24: /* ATmega169A */ + case 25: /* ATmega169P */ + case 26: /* ATmega169PA */ + case 27: /* ATmega16A */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_3); + scr->ReadProgmem = ReadProgmem_jtag_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_3); + scr->WriteDataEEmem = WriteDataEEmem_jtag_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_1); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_2; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_2); + scr->ReadMem8 = ReadMem8_jtag_2; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_2); + break; + case 17: /* ATmega162 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_3); + scr->ReadProgmem = ReadProgmem_jtag_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_3); + scr->WriteDataEEmem = WriteDataEEmem_jtag_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_1); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_2; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_2); + scr->ReadMem8 = ReadMem8_jtag_3; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_3); + break; + case 18: /* ATmega164A */ + case 19: /* ATmega164P */ + case 20: /* ATmega164PA */ + case 21: /* ATmega165A */ + case 22: /* ATmega165P */ + case 23: /* ATmega165PA */ + case 28: /* ATmega16U4 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_3); + scr->ReadProgmem = ReadProgmem_jtag_3; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_3); + scr->WriteDataEEmem = WriteDataEEmem_jtag_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_1); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_0; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_0); + scr->ReadMem8 = ReadMem8_jtag_0; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); + break; + case 29: /* ATmega2560 */ + case 30: /* ATmega2561 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_4); + scr->ReadProgmem = ReadProgmem_jtag_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_4); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_3; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_3); + scr->ReadMem8 = ReadMem8_jtag_4; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_4); + break; + case 31: /* ATmega2564RFR2 */ + case 32: /* ATmega256RFR2 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_4); + scr->ReadProgmem = ReadProgmem_jtag_4; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_4); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_1; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_1); + scr->ReadIDmem = ReadIDmem_jtag_1; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_1); + scr->WriteMem8 = WriteMem8_jtag_3; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_3); + scr->ReadMem8 = ReadMem8_jtag_4; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_4); + break; + case 33: /* ATmega32 */ + case 54: /* ATmega32A */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_5; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_5); + scr->ReadProgmem = ReadProgmem_jtag_5; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_5); + scr->WriteDataEEmem = WriteDataEEmem_jtag_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_1); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_2; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_2); + scr->ReadMem8 = ReadMem8_jtag_2; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_2); + break; + case 34: /* ATmega324A */ + case 35: /* ATmega324P */ + case 36: /* ATmega324PA */ + case 37: /* ATmega324PB */ + case 38: /* ATmega325 */ + case 39: /* ATmega3250 */ + case 40: /* ATmega3250A */ + case 41: /* ATmega3250P */ + case 42: /* ATmega3250PA */ + case 43: /* ATmega325A */ + case 44: /* ATmega325P */ + case 45: /* ATmega325PA */ + case 46: /* ATmega329 */ + case 47: /* ATmega3290 */ + case 48: /* ATmega3290A */ + case 49: /* ATmega3290P */ + case 50: /* ATmega3290PA */ + case 51: /* ATmega329A */ + case 52: /* ATmega329P */ + case 53: /* ATmega329PA */ + case 55: /* ATmega32U4 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_5; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_5); + scr->ReadProgmem = ReadProgmem_jtag_5; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_5); + scr->WriteDataEEmem = WriteDataEEmem_jtag_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_1); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_0; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_0); + scr->ReadMem8 = ReadMem8_jtag_0; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); + break; + case 56: /* ATmega406 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_6; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_6); + scr->ReadProgmem = ReadProgmem_jtag_6; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_6); + scr->WriteDataEEmem = WriteDataEEmem_jtag_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_1); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_0; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_0); + scr->ReadMem8 = ReadMem8_jtag_0; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); + break; + case 57: /* ATmega64 */ + case 76: /* ATmega64A */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_2); + scr->ReadProgmem = ReadProgmem_jtag_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_2); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_0); + scr->ReadIDmem = ReadIDmem_jtag_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_0); + scr->WriteMem8 = WriteMem8_jtag_2; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_2); + scr->ReadMem8 = ReadMem8_jtag_5; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_5); + break; + case 63: /* ATmega644RFR2 */ + case 77: /* ATmega64RFR2 */ + scr->EnterProgMode = EnterProgMode_jtag_0; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_0); + scr->ExitProgMode = ExitProgMode_jtag_0; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_0); + scr->SetSpeed = SetSpeed_jtag_0; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_0); + scr->GetDeviceID = GetDeviceID_jtag_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_0); + scr->EraseChip = EraseChip_jtag_0; + scr->EraseChip_len = sizeof(EraseChip_jtag_0); + scr->WriteProgmem = WriteProgmem_jtag_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_2); + scr->ReadProgmem = ReadProgmem_jtag_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_2); + scr->WriteDataEEmem = WriteDataEEmem_jtag_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_0); + scr->ReadDataEEmem = ReadDataEEmem_jtag_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_0); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_0); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_0; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_0); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_0; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_0); + scr->WriteIDmem = WriteIDmem_jtag_1; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_1); + scr->ReadIDmem = ReadIDmem_jtag_1; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_1); + scr->WriteMem8 = WriteMem8_jtag_0; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_0); + scr->ReadMem8 = ReadMem8_jtag_0; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_0); + break; + case 78: /* ATxmega128A1 */ + case 79: /* ATxmega128A1U */ + case 80: /* ATxmega128A3 */ + case 81: /* ATxmega128A3U */ + case 82: /* ATxmega192A3 */ + case 83: /* ATxmega192A3U */ + case 84: /* ATxmega256A3 */ + case 85: /* ATxmega256A3B */ + case 86: /* ATxmega256A3BU */ + case 87: /* ATxmega256A3U */ + scr->EnterProgMode = EnterProgMode_jtag_1; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_1); + scr->ExitProgMode = ExitProgMode_jtag_1; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_1); + scr->SetSpeed = SetSpeed_jtag_1; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_1); + scr->GetDeviceID = GetDeviceID_jtag_1; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_1); + scr->EraseChip = EraseChip_jtag_1; + scr->EraseChip_len = sizeof(EraseChip_jtag_1); + scr->WriteProgmem = WriteProgmem_jtag_7; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_7); + scr->ReadProgmem = ReadProgmem_jtag_7; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_7); + scr->WriteDataEEmem = WriteDataEEmem_jtag_2; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_2); + scr->ReadDataEEmem = ReadDataEEmem_jtag_1; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_1); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_1; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_1); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_1; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_1); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_1; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_1); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_1; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_1); + scr->WriteIDmem = WriteIDmem_jtag_2; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_2); + scr->ReadIDmem = ReadIDmem_jtag_2; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_2); + scr->WriteMem8 = WriteMem8_jtag_4; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_4); + scr->ReadMem8 = ReadMem8_jtag_6; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_6); + break; + case 88: /* ATxmega64A1 */ + case 89: /* ATxmega64A1U */ + case 90: /* ATxmega64A3 */ + case 91: /* ATxmega64A3U */ + case 92: /* ATxmega128B1 */ + case 93: /* ATxmega128B3 */ + case 94: /* ATxmega64B1 */ + case 95: /* ATxmega64B3 */ + scr->EnterProgMode = EnterProgMode_jtag_1; + scr->EnterProgMode_len = sizeof(EnterProgMode_jtag_1); + scr->ExitProgMode = ExitProgMode_jtag_1; + scr->ExitProgMode_len = sizeof(ExitProgMode_jtag_1); + scr->SetSpeed = SetSpeed_jtag_1; + scr->SetSpeed_len = sizeof(SetSpeed_jtag_1); + scr->GetDeviceID = GetDeviceID_jtag_1; + scr->GetDeviceID_len = sizeof(GetDeviceID_jtag_1); + scr->EraseChip = EraseChip_jtag_1; + scr->EraseChip_len = sizeof(EraseChip_jtag_1); + scr->WriteProgmem = WriteProgmem_jtag_8; + scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_8); + scr->ReadProgmem = ReadProgmem_jtag_8; + scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_8); + scr->WriteDataEEmem = WriteDataEEmem_jtag_2; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_2); + scr->ReadDataEEmem = ReadDataEEmem_jtag_1; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_1); + scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_1; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_1); + scr->WriteConfigmemLock = WriteConfigmemLock_jtag_1; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_1); + scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_1; + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_1); + scr->ReadConfigmemLock = ReadConfigmemLock_jtag_1; + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_jtag_1); + scr->WriteIDmem = WriteIDmem_jtag_3; + scr->WriteIDmem_len = sizeof(WriteIDmem_jtag_3); + scr->ReadIDmem = ReadIDmem_jtag_3; + scr->ReadIDmem_len = sizeof(ReadIDmem_jtag_3); + scr->WriteMem8 = WriteMem8_jtag_4; + scr->WriteMem8_len = sizeof(WriteMem8_jtag_4); + scr->ReadMem8 = ReadMem8_jtag_6; + scr->ReadMem8_len = sizeof(ReadMem8_jtag_6); + break; + } + return 0; +} \ No newline at end of file diff --git a/src/pickit5_lut_pdi.c b/src/pickit5_lut_pdi.c new file mode 100644 index 000000000..6a39ad4b2 --- /dev/null +++ b/src/pickit5_lut_pdi.c @@ -0,0 +1,514 @@ +/* This file was auto-generated by scripts_decoder.py. + * Any changes will be overwritten on regeneration + */ + +/* + * avrdude - A Downloader/Uploader for AVR device programmers + * Copyright (C) 2024 MX682X + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include "pickit5_lut.h" + + +const unsigned char EnterProgMode_pdi_0[121] = { + 0x9b, 0x00, 0x06, 0x9b, 0x01, 0x00, 0x1e, 0x01, 0x00, 0x01, 0x9b, 0x01, 0x00, 0x9b, 0x02, 0xfd, + 0x1e, 0x0f, 0x01, 0x02, 0x9b, 0x01, 0x00, 0xa2, 0x1e, 0x0e, 0x01, 0xa5, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x9b, 0x01, 0x01, 0x9b, 0x02, 0x59, 0x1e, 0x0f, 0x01, 0x02, + 0x9b, 0x01, 0x00, 0x65, 0xff, 0x88, 0xd8, 0xcd, 0x04, 0x65, 0x45, 0xab, 0x89, 0x12, 0x04, 0x1e, + 0x11, 0x01, 0x9b, 0x01, 0x00, 0x1e, 0x0e, 0x01, 0x6c, 0x02, 0x66, 0x02, 0xf9, 0x00, 0x00, 0x00, + 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x02, 0x03, 0x70, 0x00, 0x9b, 0x01, 0x00, 0xa2, 0x1e, + 0x0e, 0x01, 0xa5, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xe8, 0x03, 0xfb, 0x78, 0x00, + 0x90, 0x01, 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x5a, +}; + +const unsigned char ExitProgMode_pdi_0[40] = { + 0x9b, 0x01, 0x01, 0x9b, 0x02, 0x00, 0x1e, 0x0f, 0x01, 0x02, 0x9b, 0x01, 0x00, 0x9b, 0x02, 0x00, + 0x1e, 0x0f, 0x01, 0x02, 0x9b, 0x01, 0x00, 0xa2, 0x1e, 0x0e, 0x01, 0xa5, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x1e, 0x02, +}; + +const unsigned char SetSpeed_pdi_0[5] = { + 0x91, 0x00, 0x1e, 0x14, 0x00, +}; + +const unsigned char GetDeviceID_pdi_0[104] = { + 0x95, 0x90, 0x01, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, 0x00, 0x25, 0x00, 0x90, + 0x03, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x03, 0x6c, 0x0a, 0x90, 0x03, 0xc4, 0x01, 0x00, 0x01, + 0x1e, 0x03, 0x03, 0x6c, 0x0b, 0x90, 0x00, 0x90, 0x00, 0x00, 0x01, 0x1e, 0x09, 0x00, 0x9c, 0x01, + 0x03, 0x00, 0x1e, 0x10, 0x01, 0x9b, 0x02, 0x03, 0x1e, 0x0c, 0x02, 0x90, 0x02, 0x93, 0x00, 0x00, + 0x01, 0x1e, 0x03, 0x02, 0x9f, 0x90, 0x01, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x67, 0x00, 0x90, 0x03, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x03, 0x0a, 0x90, 0x03, 0xc4, + 0x01, 0x00, 0x01, 0x1e, 0x06, 0x03, 0x0b, 0x5a, +}; + +const unsigned char EraseChip_pdi_0[99] = { + 0x90, 0x01, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x01, 0x6c, 0x05, 0x90, 0x01, 0xca, 0x01, 0x00, + 0x01, 0x90, 0x02, 0x40, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x01, 0x02, 0x90, 0x01, 0xcb, 0x01, 0x00, + 0x01, 0x90, 0x02, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x01, 0x02, 0x90, 0x01, 0x00, 0x00, 0x00, + 0x00, 0xa2, 0x1e, 0x0e, 0x01, 0xa5, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0xd0, 0x07, + 0x94, 0x0a, 0x00, 0x90, 0x01, 0xcf, 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x01, 0xa5, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x90, 0x01, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, + 0x01, 0x05, 0x5a, +}; + +const unsigned char WriteProgmem_pdi_0[172] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, + 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0b, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, + 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, + 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x25, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, + 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, + 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, + 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, + 0x1e, 0x06, 0x06, 0x0b, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteProgmem_pdi_1[172] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, + 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0b, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, + 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, + 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x25, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, + 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, + 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, + 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, + 0x1e, 0x06, 0x06, 0x0b, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteProgmem_pdi_2[172] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x80, 0x00, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, + 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0b, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, + 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x80, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, + 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x00, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x25, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, + 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, + 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, + 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, + 0x1e, 0x06, 0x06, 0x0b, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadProgmem_pdi_0[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadProgmem_pdi_1[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadProgmem_pdi_2[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x80, 0x00, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x80, 0x00, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteDataEEmem_pdi_0[334] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x20, 0x00, 0xad, 0x03, 0x90, 0x05, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x05, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x90, 0x09, 0xcc, 0x01, 0x00, + 0x01, 0x1e, 0x03, 0x09, 0x6c, 0x05, 0x6c, 0x0a, 0x66, 0x05, 0x08, 0x00, 0x00, 0x00, 0xfe, 0x05, + 0x00, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x60, 0x05, 0x0a, 0x66, 0x05, 0xf7, 0xff, 0xff, 0xff, 0x1e, + 0x06, 0x09, 0x05, 0xac, 0x02, 0x00, 0x90, 0x05, 0xca, 0x01, 0x00, 0x01, 0x90, 0x06, 0x36, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x05, 0x06, 0x90, 0x05, 0xcb, 0x01, 0x00, 0x01, 0x90, 0x06, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x05, 0x06, 0x90, 0x05, 0xca, 0x01, 0x00, 0x01, 0x90, 0x06, 0x33, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x05, 0x06, 0x90, 0x08, 0x00, 0x00, 0x8c, 0x00, 0x1e, 0x09, 0x08, 0x65, + 0xff, 0x00, 0x00, 0x00, 0x01, 0x90, 0x06, 0x01, 0x00, 0x00, 0x00, 0x1e, 0x0a, 0x06, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x35, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, + 0x08, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, + 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x00, 0xa4, 0x90, 0x05, 0xca, 0x01, 0x00, 0x01, 0x90, 0x06, 0x36, 0x00, 0x00, 0x00, 0x1e, + 0x06, 0x05, 0x06, 0x90, 0x05, 0xcb, 0x01, 0x00, 0x01, 0x90, 0x06, 0x01, 0x00, 0x00, 0x00, 0x1e, + 0x06, 0x05, 0x06, 0x90, 0x05, 0xca, 0x01, 0x00, 0x01, 0x90, 0x06, 0x33, 0x00, 0x00, 0x00, 0x1e, + 0x06, 0x05, 0x06, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x20, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, + 0x90, 0x05, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x05, 0x00, 0x00, 0x00, 0x00, 0x46, 0x01, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x34, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, + 0x00, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, + 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x64, 0x00, 0x1e, 0x06, 0x09, 0x0a, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadDataEEmem_pdi_0[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x20, 0x00, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x06, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x20, 0x00, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x20, 0x00, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteConfigmem_pdi_0[89] = { + 0x91, 0x00, 0x91, 0x01, 0xfe, 0x00, 0x27, 0x00, 0x8f, 0x00, 0x15, 0x00, 0x90, 0x07, 0x4c, 0x00, + 0x00, 0x00, 0xfb, 0x1b, 0x00, 0x90, 0x07, 0x08, 0x00, 0x00, 0x00, 0xaf, 0xad, 0x01, 0x90, 0x02, + 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x90, 0x02, 0xca, 0x01, + 0x00, 0x01, 0x1e, 0x06, 0x02, 0x07, 0x99, 0x04, 0x1e, 0x06, 0x00, 0x04, 0x90, 0x06, 0xcf, 0x01, + 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, + 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteConfigmemFuse_pdi_0[71] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x00, 0x90, 0x02, 0xca, 0x01, 0x00, 0x01, 0x90, 0x03, 0x4c, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x02, 0x03, 0x99, 0x04, 0x1e, 0x06, 0x00, 0x04, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, + 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, + 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteConfigmemLock_pdi_0[71] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x02, 0x00, 0x00, + 0x00, 0x00, 0x24, 0x00, 0x90, 0x02, 0xca, 0x01, 0x00, 0x01, 0x90, 0x03, 0x08, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x02, 0x03, 0x99, 0x04, 0x1e, 0x06, 0x00, 0x04, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, + 0xa2, 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, + 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadConfigmem_pdi_0[106] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x69, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x01, 0x1e, 0x0c, 0x01, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, + 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadConfigmemFuse_pdi_0[106] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x69, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x01, 0x1e, 0x0c, 0x01, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, + 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadConfigmemLock_pdi_0[106] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x69, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x04, 0xca, 0x01, + 0x00, 0x01, 0x90, 0x05, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x01, 0x1e, 0x0c, 0x01, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, + 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteIDmem_pdi_0[198] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x04, 0x6c, 0x0a, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x18, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x90, + 0x05, 0x55, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x00, 0x05, 0x90, 0x04, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x04, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x04, 0x0a, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x02, 0xad, + 0x03, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, + 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, + 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, + 0x90, 0x05, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, + 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, + 0x00, 0x02, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteIDmem_pdi_1[198] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x04, 0x6c, 0x0a, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x18, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x90, + 0x05, 0x55, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x00, 0x05, 0x90, 0x04, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x04, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x04, 0x0a, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x01, 0xad, + 0x03, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, + 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, + 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, + 0x90, 0x05, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, + 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, + 0x00, 0x01, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteIDmem_pdi_2[198] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x04, 0x6c, 0x0a, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x18, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x90, + 0x05, 0x55, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x00, 0x05, 0x90, 0x04, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x04, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x00, 0x90, 0x04, + 0xca, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x04, 0x0a, 0x60, 0x03, 0x01, 0x93, 0x03, 0x80, 0x00, 0xad, + 0x03, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x00, 0x90, + 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, + 0x09, 0x00, 0x9c, 0x04, 0x80, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, + 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, + 0x90, 0x05, 0x1a, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, + 0x00, 0x00, 0x01, 0x9b, 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, + 0x1e, 0x03, 0x06, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, + 0x80, 0x00, 0x00, 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadIDmem_pdi_0[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadIDmem_pdi_1[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadIDmem_pdi_2[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x80, 0x00, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x80, 0x00, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char WriteSRAM_pdi_0[70] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x01, 0x00, + 0xfa, 0x01, 0x03, 0x1b, 0x00, 0x60, 0x04, 0x01, 0xfb, 0x21, 0x00, 0x90, 0x04, 0x00, 0x00, 0x01, + 0x00, 0x6a, 0x01, 0x04, 0x90, 0x02, 0xca, 0x01, 0x00, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x02, 0x03, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x6e, 0x00, 0x04, + 0xfc, 0x01, 0x07, 0x0a, 0x00, 0x5a, +}; + +const unsigned char ReadSRAM_pdi_0[130] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x81, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x01, 0x00, 0xfa, 0x01, 0x03, 0x53, 0x00, 0x60, 0x04, 0x01, + 0xfb, 0x59, 0x00, 0x90, 0x04, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x01, 0x04, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x04, 0x1e, 0x0c, 0x04, 0x6e, 0x00, 0x04, 0xfc, 0x01, 0x07, 0x42, 0x00, 0x90, 0x06, 0xca, + 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, + 0x0b, 0x5a, +}; + +const unsigned char WriteCSreg_pdi_0[8] = { + 0x99, 0x00, 0x99, 0x01, 0x1e, 0x0f, 0x00, 0x01, +}; + +const unsigned char ReadCSreg_pdi_0[6] = { + 0x99, 0x00, 0x1e, 0x0e, 0x00, 0x9f, +}; + +const unsigned char WriteMem8_pdi_0[70] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x01, 0x00, + 0xfa, 0x01, 0x03, 0x1b, 0x00, 0x60, 0x04, 0x01, 0xfb, 0x21, 0x00, 0x90, 0x04, 0x00, 0x00, 0x01, + 0x00, 0x6a, 0x01, 0x04, 0x90, 0x02, 0xca, 0x01, 0x00, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x02, 0x03, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x6e, 0x00, 0x04, + 0xfc, 0x01, 0x07, 0x0a, 0x00, 0x5a, +}; + +const unsigned char ReadMem8_pdi_0[130] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x81, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x90, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x90, 0x03, 0x00, 0x00, 0x01, 0x00, 0xfa, 0x01, 0x03, 0x53, 0x00, 0x60, 0x04, 0x01, + 0xfb, 0x59, 0x00, 0x90, 0x04, 0x00, 0x00, 0x01, 0x00, 0x6a, 0x01, 0x04, 0x1e, 0x09, 0x00, 0x1e, + 0x10, 0x04, 0x1e, 0x0c, 0x04, 0x6e, 0x00, 0x04, 0xfc, 0x01, 0x07, 0x42, 0x00, 0x90, 0x06, 0xca, + 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, + 0x0b, 0x5a, +}; + + + + +static void pickit_pdi_script_init(SCRIPT *scr); +static void pickit_pdi_script_init(SCRIPT *scr) { + memset(scr, 0x00, sizeof(SCRIPT)); // Make sure everything is NULL + + scr->EnterProgMode = EnterProgMode_pdi_0; + scr->ExitProgMode = ExitProgMode_pdi_0; + scr->SetSpeed = SetSpeed_pdi_0; + scr->GetDeviceID = GetDeviceID_pdi_0; + scr->EraseChip = EraseChip_pdi_0; + scr->WriteDataEEmem = WriteDataEEmem_pdi_0; + scr->ReadDataEEmem = ReadDataEEmem_pdi_0; + scr->WriteConfigmem = WriteConfigmem_pdi_0; + scr->WriteConfigmemFuse = WriteConfigmemFuse_pdi_0; + scr->WriteConfigmemLock = WriteConfigmemLock_pdi_0; + scr->ReadConfigmem = ReadConfigmem_pdi_0; + scr->ReadConfigmemFuse = ReadConfigmemFuse_pdi_0; + scr->ReadConfigmemLock = ReadConfigmemLock_pdi_0; + scr->WriteSRAM = WriteSRAM_pdi_0; + scr->ReadSRAM = ReadSRAM_pdi_0; + scr->WriteCSreg = WriteCSreg_pdi_0; + scr->ReadCSreg = ReadCSreg_pdi_0; + scr->WriteMem8 = WriteMem8_pdi_0; + scr->ReadMem8 = ReadMem8_pdi_0; + + scr->EnterProgMode_len = sizeof(EnterProgMode_pdi_0); + scr->ExitProgMode_len = sizeof(ExitProgMode_pdi_0); + scr->SetSpeed_len = sizeof(SetSpeed_pdi_0); + scr->GetDeviceID_len = sizeof(GetDeviceID_pdi_0); + scr->EraseChip_len = sizeof(EraseChip_pdi_0); + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_pdi_0); + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_pdi_0); + scr->WriteConfigmem_len = sizeof(WriteConfigmem_pdi_0); + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_pdi_0); + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_pdi_0); + scr->ReadConfigmem_len = sizeof(ReadConfigmem_pdi_0); + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_pdi_0); + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_pdi_0); + scr->WriteSRAM_len = sizeof(WriteSRAM_pdi_0); + scr->ReadSRAM_len = sizeof(ReadSRAM_pdi_0); + scr->WriteCSreg_len = sizeof(WriteCSreg_pdi_0); + scr->ReadCSreg_len = sizeof(ReadCSreg_pdi_0); + scr->WriteMem8_len = sizeof(WriteMem8_pdi_0); + scr->ReadMem8_len = sizeof(ReadMem8_pdi_0); +} + + +const char * const pickit5_pdi_chip_lut[] = { + "ATxmega128A1", "ATxmega128A1U", "ATxmega128A3", "ATxmega128A3U", "ATxmega128A4U", "ATxmega16A4", "ATxmega16A4U", "ATxmega192A3", + "ATxmega192A3U", "ATxmega256A3", "ATxmega256A3B", "ATxmega256A3BU", "ATxmega256A3U", "ATxmega32A4", "ATxmega32A4U", "ATxmega64A1", + "ATxmega64A1U", "ATxmega64A3", "ATxmega64A3U", "ATxmega64A4U", "ATxmega128B1", "ATxmega128B3", "ATxmega64B1", "ATxmega64B3", + "ATxmega128C3", "ATxmega16C4", "ATxmega192C3", "ATxmega256C3", "ATxmega32C3", "ATxmega32C4", "ATxmega384C3", "ATxmega64C3", + "ATxmega128D3", "ATxmega128D4", "ATxmega16D4", "ATxmega192D3", "ATxmega256D3", "ATxmega32D3", "ATxmega32D4", "ATxmega384D3", + "ATxmega64D3", "ATxmega64D4", "ATxmega16E5", "ATxmega32E5", "ATxmega8E5", +}; + +int get_pickit_pdi_script(SCRIPT *scr, const char* partdesc) { + if ((scr == NULL) || (partdesc == NULL)) { + return -1; + } + int namepos = -1; + for (int i = 0; i < 45; i++) { + if (strncmp(pickit5_pdi_chip_lut[i], partdesc, 10) == 0) { + namepos = i; + break; + } + } + if (namepos == -1) { + return -2; + } + + pickit_pdi_script_init(scr); // load common functions + + switch (namepos) { + case 0: /* ATxmega128A1 */ + case 1: /* ATxmega128A1U */ + case 2: /* ATxmega128A3 */ + case 3: /* ATxmega128A3U */ + case 7: /* ATxmega192A3 */ + case 8: /* ATxmega192A3U */ + case 9: /* ATxmega256A3 */ + case 10: /* ATxmega256A3B */ + case 11: /* ATxmega256A3BU */ + case 12: /* ATxmega256A3U */ + case 24: /* ATxmega128C3 */ + case 26: /* ATxmega192C3 */ + case 27: /* ATxmega256C3 */ + case 30: /* ATxmega384C3 */ + case 32: /* ATxmega128D3 */ + case 35: /* ATxmega192D3 */ + case 36: /* ATxmega256D3 */ + case 39: /* ATxmega384D3 */ + scr->WriteProgmem = WriteProgmem_pdi_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_pdi_0); + scr->ReadProgmem = ReadProgmem_pdi_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_pdi_0); + scr->WriteIDmem = WriteIDmem_pdi_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_pdi_0); + scr->ReadIDmem = ReadIDmem_pdi_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_pdi_0); + break; + case 4: /* ATxmega128A4U */ + case 5: /* ATxmega16A4 */ + case 6: /* ATxmega16A4U */ + case 13: /* ATxmega32A4 */ + case 14: /* ATxmega32A4U */ + case 15: /* ATxmega64A1 */ + case 16: /* ATxmega64A1U */ + case 17: /* ATxmega64A3 */ + case 18: /* ATxmega64A3U */ + case 19: /* ATxmega64A4U */ + case 20: /* ATxmega128B1 */ + case 21: /* ATxmega128B3 */ + case 22: /* ATxmega64B1 */ + case 23: /* ATxmega64B3 */ + case 25: /* ATxmega16C4 */ + case 28: /* ATxmega32C3 */ + case 29: /* ATxmega32C4 */ + case 31: /* ATxmega64C3 */ + case 33: /* ATxmega128D4 */ + case 34: /* ATxmega16D4 */ + case 37: /* ATxmega32D3 */ + case 38: /* ATxmega32D4 */ + case 40: /* ATxmega64D3 */ + case 41: /* ATxmega64D4 */ + scr->WriteProgmem = WriteProgmem_pdi_1; + scr->WriteProgmem_len = sizeof(WriteProgmem_pdi_1); + scr->ReadProgmem = ReadProgmem_pdi_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_pdi_1); + scr->WriteIDmem = WriteIDmem_pdi_1; + scr->WriteIDmem_len = sizeof(WriteIDmem_pdi_1); + scr->ReadIDmem = ReadIDmem_pdi_1; + scr->ReadIDmem_len = sizeof(ReadIDmem_pdi_1); + break; + case 42: /* ATxmega16E5 */ + case 43: /* ATxmega32E5 */ + case 44: /* ATxmega8E5 */ + scr->WriteProgmem = WriteProgmem_pdi_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_pdi_2); + scr->ReadProgmem = ReadProgmem_pdi_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_pdi_2); + scr->WriteIDmem = WriteIDmem_pdi_2; + scr->WriteIDmem_len = sizeof(WriteIDmem_pdi_2); + scr->ReadIDmem = ReadIDmem_pdi_2; + scr->ReadIDmem_len = sizeof(ReadIDmem_pdi_2); + break; + } + return 0; +} \ No newline at end of file diff --git a/src/pickit5_lut_tpi.c b/src/pickit5_lut_tpi.c new file mode 100644 index 000000000..7967c1a1d --- /dev/null +++ b/src/pickit5_lut_tpi.c @@ -0,0 +1,186 @@ +/* This file was auto-generated by scripts_decoder.py. + * Any changes will be overwritten on regeneration + */ + +/* + * avrdude - A Downloader/Uploader for AVR device programmers + * Copyright (C) 2024 MX682X + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include +#include +#include +#include "pickit5_lut.h" + + +const unsigned char EnterProgMode_tpi_0[63] = { + 0x9b, 0x00, 0x01, 0x1e, 0x20, 0x00, 0x9b, 0x00, 0x0f, 0x1e, 0x27, 0x00, 0x9b, 0x00, 0x02, 0x1e, + 0x27, 0x00, 0x9b, 0x00, 0x02, 0x9b, 0x01, 0x04, 0x1e, 0x28, 0x00, 0x01, 0x6c, 0x02, 0x1e, 0x27, + 0x02, 0x1e, 0x29, 0x45, 0xab, 0x89, 0x12, 0xff, 0x88, 0xd8, 0xcd, 0x9b, 0x00, 0x00, 0xa2, 0x1e, + 0x27, 0x00, 0x6c, 0x02, 0xa5, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x32, 0x00, +}; + +const unsigned char ExitProgMode_tpi_0[18] = { + 0x9b, 0x00, 0x00, 0x9b, 0x01, 0x00, 0x1e, 0x28, 0x00, 0x01, 0x9b, 0x00, 0x00, 0x1e, 0x27, 0x00, + 0x1e, 0x21, +}; + +const unsigned char SetSpeed_tpi_0[1] = { + 0x5a, +}; + +const unsigned char GetDeviceID_tpi_0[29] = { + 0x9c, 0x00, 0x33, 0x00, 0x9b, 0x01, 0x00, 0x1e, 0x26, 0x00, 0x01, 0x9c, 0x00, 0xc0, 0x3f, 0xac, + 0x03, 0x00, 0x1e, 0x22, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa4, +}; + +const unsigned char EraseChip_tpi_0[43] = { + 0x9b, 0x00, 0x33, 0x9b, 0x01, 0x10, 0x1e, 0x26, 0x00, 0x01, 0x9c, 0x00, 0x01, 0x40, 0x9b, 0x01, + 0xff, 0x1e, 0x23, 0x00, 0x01, 0x90, 0x04, 0x32, 0x00, 0x00, 0x00, 0xa2, 0x1e, 0x25, 0x04, 0xa5, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0xae, +}; + +const unsigned char WriteProgmem_tpi_0[140] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x33, 0x9b, 0x03, 0x1d, 0x60, 0x05, 0x01, 0x66, 0x01, 0x01, + 0x00, 0x00, 0x00, 0x60, 0x06, 0x01, 0x60, 0x01, 0x05, 0x67, 0x01, 0x01, 0x1e, 0x26, 0x02, 0x03, + 0x9b, 0x07, 0x00, 0xf8, 0x01, 0x07, 0x66, 0x00, 0xfb, 0x2b, 0x00, 0xad, 0x01, 0x99, 0x02, 0x1e, + 0x23, 0x00, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0x99, 0x02, 0x1e, 0x23, 0x00, 0x02, 0x92, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x90, 0x04, 0x32, 0x00, 0x00, 0x00, 0xa2, 0x1e, 0x25, 0x04, 0xa5, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0xae, 0x9b, 0x07, 0x01, 0xf8, 0x06, + 0x07, 0x66, 0x00, 0xfb, 0x8b, 0x00, 0x99, 0x02, 0x1e, 0x23, 0x00, 0x02, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0x1e, 0x23, 0x00, 0xff, 0x90, 0x04, 0x32, 0x00, 0x00, 0x00, 0xa2, 0x1e, 0x25, 0x04, + 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x5a, +}; + +const unsigned char ReadProgmem_tpi_0[27] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x33, 0x9b, 0x03, 0x00, 0x1e, 0x26, 0x02, 0x03, 0xad, 0x01, + 0x1e, 0x22, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char WriteConfigmemFuse_tpi_0[189] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x0a, 0x33, 0x9b, 0x0b, 0x14, 0x1e, 0x26, 0x0a, 0x0b, 0x9c, 0x0a, + 0x41, 0x3f, 0x9b, 0x0b, 0xff, 0x1e, 0x23, 0x0a, 0x0b, 0x90, 0x0e, 0x32, 0x00, 0x00, 0x00, 0xa2, + 0x1e, 0x25, 0x0e, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0xae, 0x94, + 0x32, 0x00, 0x9b, 0x02, 0x33, 0x9b, 0x03, 0x1d, 0x60, 0x05, 0x01, 0x66, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x60, 0x06, 0x01, 0x60, 0x01, 0x05, 0x67, 0x01, 0x01, 0x1e, 0x26, 0x02, 0x03, 0x9b, 0x07, + 0x00, 0xf8, 0x01, 0x07, 0x94, 0x00, 0xfb, 0x59, 0x00, 0xad, 0x01, 0x99, 0x02, 0x1e, 0x23, 0x00, + 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0x99, 0x02, 0x1e, 0x23, 0x00, 0x02, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x90, 0x04, 0x32, 0x00, 0x00, 0x00, 0xa2, 0x1e, 0x25, 0x04, 0xa5, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0xae, 0x9b, 0x07, 0x01, 0xf8, 0x06, 0x07, 0x94, + 0x00, 0xfb, 0xbc, 0x00, 0x99, 0x02, 0x1e, 0x23, 0x00, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x23, 0x00, 0xff, 0x90, 0x04, 0x32, 0x00, 0x00, 0x00, 0xa2, 0x1e, 0x25, 0x04, 0xa5, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x94, 0x19, 0x00, 0x5a, +}; + +const unsigned char WriteConfigmemLock_tpi_0[189] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x0a, 0x33, 0x9b, 0x0b, 0x14, 0x1e, 0x26, 0x0a, 0x0b, 0x9c, 0x0a, + 0x41, 0x3f, 0x9b, 0x0b, 0xff, 0x1e, 0x23, 0x0a, 0x0b, 0x90, 0x0e, 0x32, 0x00, 0x00, 0x00, 0xa2, + 0x1e, 0x25, 0x0e, 0xa5, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0xae, 0x94, + 0x32, 0x00, 0x9b, 0x02, 0x33, 0x9b, 0x03, 0x1d, 0x60, 0x05, 0x01, 0x66, 0x01, 0x01, 0x00, 0x00, + 0x00, 0x60, 0x06, 0x01, 0x60, 0x01, 0x05, 0x67, 0x01, 0x01, 0x1e, 0x26, 0x02, 0x03, 0x9b, 0x07, + 0x00, 0xf8, 0x01, 0x07, 0x94, 0x00, 0xfb, 0x59, 0x00, 0xad, 0x01, 0x99, 0x02, 0x1e, 0x23, 0x00, + 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0x99, 0x02, 0x1e, 0x23, 0x00, 0x02, 0x92, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x90, 0x04, 0x32, 0x00, 0x00, 0x00, 0xa2, 0x1e, 0x25, 0x04, 0xa5, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0xae, 0x9b, 0x07, 0x01, 0xf8, 0x06, 0x07, 0x94, + 0x00, 0xfb, 0xbc, 0x00, 0x99, 0x02, 0x1e, 0x23, 0x00, 0x02, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x1e, 0x23, 0x00, 0xff, 0x90, 0x04, 0x32, 0x00, 0x00, 0x00, 0xa2, 0x1e, 0x25, 0x04, 0xa5, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x00, 0x94, 0x19, 0x00, 0x5a, +}; + +const unsigned char ReadConfigmem_tpi_0[27] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x33, 0x9b, 0x03, 0x00, 0x1e, 0x26, 0x02, 0x03, 0xad, 0x01, + 0x1e, 0x22, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadConfigmemFuse_tpi_0[27] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x33, 0x9b, 0x03, 0x00, 0x1e, 0x26, 0x02, 0x03, 0xad, 0x01, + 0x1e, 0x22, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + +const unsigned char ReadConfigmemLock_tpi_0[27] = { + 0x91, 0x00, 0x91, 0x01, 0x9b, 0x02, 0x33, 0x9b, 0x03, 0x00, 0x1e, 0x26, 0x02, 0x03, 0xad, 0x01, + 0x1e, 0x22, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, +}; + + + + +static void pickit_tpi_script_init(SCRIPT *scr); +static void pickit_tpi_script_init(SCRIPT *scr) { + memset(scr, 0x00, sizeof(SCRIPT)); // Make sure everything is NULL + + scr->EnterProgMode = EnterProgMode_tpi_0; + scr->ExitProgMode = ExitProgMode_tpi_0; + scr->SetSpeed = SetSpeed_tpi_0; + scr->GetDeviceID = GetDeviceID_tpi_0; + scr->EraseChip = EraseChip_tpi_0; + scr->WriteProgmem = WriteProgmem_tpi_0; + scr->ReadProgmem = ReadProgmem_tpi_0; + scr->WriteConfigmemFuse = WriteConfigmemFuse_tpi_0; + scr->WriteConfigmemLock = WriteConfigmemLock_tpi_0; + scr->ReadConfigmem = ReadConfigmem_tpi_0; + scr->ReadConfigmemFuse = ReadConfigmemFuse_tpi_0; + scr->ReadConfigmemLock = ReadConfigmemLock_tpi_0; + + scr->EnterProgMode_len = sizeof(EnterProgMode_tpi_0); + scr->ExitProgMode_len = sizeof(ExitProgMode_tpi_0); + scr->SetSpeed_len = sizeof(SetSpeed_tpi_0); + scr->GetDeviceID_len = sizeof(GetDeviceID_tpi_0); + scr->EraseChip_len = sizeof(EraseChip_tpi_0); + scr->WriteProgmem_len = sizeof(WriteProgmem_tpi_0); + scr->ReadProgmem_len = sizeof(ReadProgmem_tpi_0); + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_tpi_0); + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_tpi_0); + scr->ReadConfigmem_len = sizeof(ReadConfigmem_tpi_0); + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_tpi_0); + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_tpi_0); +} + + +const char * const pickit5_tpi_chip_lut[] = { + "ATtiny10", "ATtiny102", "ATtiny104", "ATtiny20", "ATtiny4", "ATtiny40", "ATtiny5", "ATtiny9", +}; + +int get_pickit_tpi_script(SCRIPT *scr, const char* partdesc) { + if ((scr == NULL) || (partdesc == NULL)) { + return -1; + } + int namepos = -1; + for (int i = 0; i < 8; i++) { + if (strncmp(pickit5_tpi_chip_lut[i], partdesc, 10) == 0) { + namepos = i; + break; + } + } + if (namepos == -1) { + return -2; + } + + pickit_tpi_script_init(scr); // load common functions + + switch (namepos) { + case 0: /* ATtiny10 */ + case 1: /* ATtiny102 */ + case 2: /* ATtiny104 */ + case 3: /* ATtiny20 */ + case 4: /* ATtiny4 */ + case 5: /* ATtiny40 */ + case 6: /* ATtiny5 */ + case 7: /* ATtiny9 */ + break; + } + return 0; +} \ No newline at end of file diff --git a/src/pickit5_updi_lut.c b/src/pickit5_lut_updi.c similarity index 65% rename from src/pickit5_updi_lut.c rename to src/pickit5_lut_updi.c index d279f576f..dcb966e0e 100644 --- a/src/pickit5_updi_lut.c +++ b/src/pickit5_lut_updi.c @@ -1,4 +1,6 @@ -/* This file was auto-generated by scripts_decoder.py, any changes will be overwritten */ +/* This file was auto-generated by scripts_decoder.py. + * Any changes will be overwritten on regeneration + */ /* * avrdude - A Downloader/Uploader for AVR device programmers @@ -24,7 +26,7 @@ #include "pickit5_lut.h" -const unsigned char EnterProgMode_0[294] = { +const unsigned char EnterProgMode_updi_0[294] = { 0x9b, 0x00, 0x08, 0x9b, 0x01, 0x00, 0x1e, 0x01, 0x00, 0x01, 0xfd, 0x19, 0x00, 0x00, 0x00, 0x08, 0x01, 0x94, 0x32, 0x00, 0x94, 0x40, 0x00, 0x9b, 0x00, 0x0b, 0x1e, 0x0e, 0x00, 0x6c, 0x01, 0x66, 0x01, 0x08, 0x00, 0x00, 0x00, 0xfe, 0x01, 0x08, 0x00, 0x00, 0x00, 0x26, 0x01, 0x9b, 0x00, 0x08, @@ -46,7 +48,7 @@ const unsigned char EnterProgMode_0[294] = { 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, }; -const unsigned char EnterProgModeHvSp_0[339] = { +const unsigned char EnterProgModeHvSp_updi_0[339] = { 0x9b, 0x00, 0x08, 0x9b, 0x01, 0x01, 0x1e, 0x01, 0x00, 0x01, 0xfd, 0x54, 0x00, 0x00, 0x00, 0x3a, 0x01, 0xfd, 0x08, 0x03, 0x00, 0x00, 0x45, 0x01, 0xfd, 0x09, 0x03, 0x00, 0x00, 0x48, 0x01, 0xfd, 0x19, 0x00, 0x00, 0x00, 0x24, 0x01, 0xfd, 0x1b, 0x00, 0x00, 0x00, 0x24, 0x01, 0x94, 0x32, 0x00, @@ -71,7 +73,7 @@ const unsigned char EnterProgModeHvSp_0[339] = { 0x00, 0x7f, 0x01, }; -const unsigned char EnterProgModeHvSpRst_0[325] = { +const unsigned char EnterProgModeHvSpRst_updi_0[325] = { 0x9b, 0x00, 0x08, 0x9b, 0x01, 0x05, 0x1e, 0x01, 0x00, 0x01, 0xfd, 0x54, 0x00, 0x00, 0x00, 0x2c, 0x01, 0xfd, 0x08, 0x03, 0x00, 0x00, 0x37, 0x01, 0xfd, 0x09, 0x03, 0x00, 0x00, 0x3a, 0x01, 0x94, 0x32, 0x00, 0x94, 0x40, 0x00, 0x9b, 0x00, 0x0b, 0x1e, 0x0e, 0x00, 0x6c, 0x01, 0x66, 0x01, 0x08, @@ -95,7 +97,7 @@ const unsigned char EnterProgModeHvSpRst_0[325] = { 0x01, 0x00, 0x00, 0x7f, 0x01, }; -const unsigned char EnterProgModeHvUpt_0[339] = { +const unsigned char EnterProgModeHvUpt_updi_0[339] = { 0x9b, 0x00, 0x08, 0x9b, 0x01, 0x03, 0x1e, 0x01, 0x00, 0x01, 0xfd, 0x54, 0x00, 0x00, 0x00, 0x3a, 0x01, 0xfd, 0x08, 0x03, 0x00, 0x00, 0x45, 0x01, 0xfd, 0x09, 0x03, 0x00, 0x00, 0x48, 0x01, 0xfd, 0x19, 0x00, 0x00, 0x00, 0x24, 0x01, 0xfd, 0x1b, 0x00, 0x00, 0x00, 0x24, 0x01, 0x94, 0x32, 0x00, @@ -120,28 +122,28 @@ const unsigned char EnterProgModeHvUpt_0[339] = { 0x00, 0x7f, 0x01, }; -const unsigned char ExitProgMode_0[22] = { +const unsigned char ExitProgMode_updi_0[22] = { 0x9b, 0x00, 0x08, 0x9b, 0x01, 0x59, 0x1e, 0x0f, 0x00, 0x01, 0x9b, 0x00, 0x08, 0x9b, 0x01, 0x00, 0x1e, 0x0f, 0x00, 0x01, 0x1e, 0x02, }; -const unsigned char SetSpeed_0[5] = { +const unsigned char SetSpeed_updi_0[5] = { 0x91, 0x00, 0x1e, 0x14, 0x00, }; -const unsigned char GetDeviceID_0[33] = { +const unsigned char GetDeviceID_updi_0[33] = { 0x95, 0x90, 0x00, 0x00, 0x11, 0x00, 0x00, 0x1e, 0x09, 0x00, 0x9c, 0x01, 0x03, 0x00, 0x1e, 0x10, 0x01, 0x9b, 0x02, 0x03, 0x1e, 0x0c, 0x02, 0x90, 0x02, 0x01, 0x0f, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x9f, }; -const unsigned char GetDeviceID_1[33] = { +const unsigned char GetDeviceID_updi_1[33] = { 0x95, 0x90, 0x00, 0x80, 0x10, 0x00, 0x00, 0x1e, 0x09, 0x00, 0x9c, 0x01, 0x03, 0x00, 0x1e, 0x10, 0x01, 0x9b, 0x02, 0x03, 0x1e, 0x0c, 0x02, 0x90, 0x02, 0x01, 0x0f, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x9f, }; -const unsigned char EraseChip_0[184] = { +const unsigned char EraseChip_updi_0[184] = { 0x94, 0x32, 0x00, 0x94, 0x40, 0x00, 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, 0x65, 0x65, 0x73, 0x61, 0x72, 0x04, 0x65, 0x45, 0x4d, 0x56, 0x4e, 0x04, 0x1e, 0x11, 0x01, 0x90, 0x02, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x0e, 0x02, 0x6c, 0x03, 0x66, 0x03, 0x08, 0x00, 0x00, 0x00, 0x90, 0x04, 0x08, 0x00, @@ -156,7 +158,7 @@ const unsigned char EraseChip_0[184] = { 0x01, 0x00, 0x01, 0x00, 0x00, 0x7f, 0x01, 0x5a, }; -const unsigned char WriteProgmem_0[231] = { +const unsigned char WriteProgmem_updi_0[231] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x08, 0x10, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x6c, 0x0a, 0x90, 0x02, 0x09, 0x10, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x6c, 0x0b, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x2e, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, @@ -174,7 +176,7 @@ const unsigned char WriteProgmem_0[231] = { 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x0b, }; -const unsigned char WriteProgmem_1[231] = { +const unsigned char WriteProgmem_updi_1[231] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x08, 0x10, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x6c, 0x0a, 0x90, 0x02, 0x09, 0x10, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x6c, 0x0b, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x80, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x2e, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, @@ -192,7 +194,7 @@ const unsigned char WriteProgmem_1[231] = { 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x0b, }; -const unsigned char WriteProgmem_2[272] = { +const unsigned char WriteProgmem_updi_2[272] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x30, 0x00, 0x60, 0x0f, 0x01, @@ -212,7 +214,7 @@ const unsigned char WriteProgmem_2[272] = { 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char WriteProgmem_3[231] = { +const unsigned char WriteProgmem_updi_3[231] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x0c, 0x10, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x6c, 0x0a, 0x90, 0x02, 0x0d, 0x10, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x6c, 0x0b, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x80, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x2e, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, @@ -230,7 +232,7 @@ const unsigned char WriteProgmem_3[231] = { 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x0b, }; -const unsigned char WriteProgmem_4[272] = { +const unsigned char WriteProgmem_updi_4[272] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x30, 0x00, 0x60, 0x0f, 0x01, @@ -250,7 +252,7 @@ const unsigned char WriteProgmem_4[272] = { 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char WriteProgmem_5[231] = { +const unsigned char WriteProgmem_updi_5[231] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x0c, 0x10, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x6c, 0x0a, 0x90, 0x02, 0x0d, 0x10, 0x00, 0x00, 0x1e, 0x03, 0x02, 0x6c, 0x0b, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x2e, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, @@ -268,27 +270,7 @@ const unsigned char WriteProgmem_5[231] = { 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x0b, }; -const unsigned char WriteProgmem_6[272] = { - 0x91, 0x00, 0x91, 0x01, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, - 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x11, 0x00, 0x00, - 0x00, 0x00, 0x90, 0x0f, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x30, 0x00, 0x60, 0x0f, 0x01, - 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x08, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, - 0x90, 0x06, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x00, 0x06, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, - 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, - 0x06, 0x07, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, - 0x90, 0x07, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, - 0xfa, 0x0f, 0x10, 0xa8, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x60, 0x04, 0x10, 0x67, 0x04, - 0x01, 0x1e, 0x10, 0x04, 0x1e, 0x0b, 0x04, 0x6a, 0x0f, 0x10, 0x6e, 0x00, 0x10, 0x6a, 0x01, 0x10, - 0xfc, 0x0f, 0x11, 0x9a, 0x00, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, - 0x00, 0x01, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, - 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0xfc, 0x01, 0x11, 0x22, 0x00, 0x5a, - 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, -}; - -const unsigned char ReadProgmem_0[73] = { +const unsigned char ReadProgmem_updi_0[73] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x60, 0x04, 0x10, 0x67, 0x04, 0x01, @@ -296,7 +278,7 @@ const unsigned char ReadProgmem_0[73] = { 0x0f, 0x11, 0x19, 0x00, 0xfc, 0x01, 0x11, 0x0b, 0x00, }; -const unsigned char ReadProgmem_1[73] = { +const unsigned char ReadProgmem_updi_1[73] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x80, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x60, 0x04, 0x10, 0x67, 0x04, 0x01, @@ -304,7 +286,7 @@ const unsigned char ReadProgmem_1[73] = { 0x0f, 0x11, 0x19, 0x00, 0xfc, 0x01, 0x11, 0x0b, 0x00, }; -const unsigned char ReadProgmem_2[73] = { +const unsigned char ReadProgmem_updi_2[73] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x60, 0x04, 0x10, 0x67, 0x04, 0x01, @@ -312,7 +294,7 @@ const unsigned char ReadProgmem_2[73] = { 0x0f, 0x11, 0x19, 0x00, 0xfc, 0x01, 0x11, 0x0b, 0x00, }; -const unsigned char WriteDataEEmem_0[208] = { +const unsigned char WriteDataEEmem_updi_0[208] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, @@ -328,7 +310,7 @@ const unsigned char WriteDataEEmem_0[208] = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0xfc, 0x01, 0x11, 0x0a, 0x00, 0xaf, }; -const unsigned char WriteDataEEmem_1[208] = { +const unsigned char WriteDataEEmem_updi_1[208] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, @@ -344,7 +326,7 @@ const unsigned char WriteDataEEmem_1[208] = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0xfc, 0x01, 0x11, 0x0a, 0x00, 0xaf, }; -const unsigned char WriteDataEEmem_2[176] = { +const unsigned char WriteDataEEmem_updi_2[176] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x01, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, @@ -358,7 +340,7 @@ const unsigned char WriteDataEEmem_2[176] = { 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char WriteDataEEmem_3[208] = { +const unsigned char WriteDataEEmem_updi_3[208] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x08, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x03, 0x1f, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, @@ -374,7 +356,7 @@ const unsigned char WriteDataEEmem_3[208] = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0xfc, 0x01, 0x11, 0x0a, 0x00, 0xaf, }; -const unsigned char WriteDataEEmem_4[176] = { +const unsigned char WriteDataEEmem_updi_4[176] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x01, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, @@ -388,21 +370,7 @@ const unsigned char WriteDataEEmem_4[176] = { 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char WriteDataEEmem_5[176] = { - 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x01, 0x00, 0x00, 0x00, - 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, - 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, - 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x13, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, - 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x4e, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, - 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0a, 0x10, 0x6a, 0x0f, 0x10, 0x6e, 0x00, 0x10, 0x6a, 0x01, 0x10, - 0xfc, 0x0f, 0x11, 0x40, 0x00, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, - 0xa0, 0x00, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, - 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0xfc, 0x01, 0x11, 0x0a, 0x00, 0x5a, - 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, -}; - -const unsigned char ReadDataEEmem_0[67] = { +const unsigned char ReadDataEEmem_updi_0[67] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0c, 0x10, @@ -410,7 +378,7 @@ const unsigned char ReadDataEEmem_0[67] = { 0x11, 0x0b, 0x00, }; -const unsigned char ReadDataEEmem_1[67] = { +const unsigned char ReadDataEEmem_updi_1[67] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0c, 0x10, @@ -418,7 +386,7 @@ const unsigned char ReadDataEEmem_1[67] = { 0x11, 0x0b, 0x00, }; -const unsigned char ReadDataEEmem_2[67] = { +const unsigned char ReadDataEEmem_updi_2[67] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x01, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0c, 0x10, @@ -426,7 +394,7 @@ const unsigned char ReadDataEEmem_2[67] = { 0x11, 0x0b, 0x00, }; -const unsigned char ReadDataEEmem_3[67] = { +const unsigned char ReadDataEEmem_updi_3[67] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x08, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0c, 0x10, @@ -434,7 +402,7 @@ const unsigned char ReadDataEEmem_3[67] = { 0x11, 0x0b, 0x00, }; -const unsigned char WriteConfigmem_0[369] = { +const unsigned char WriteConfigmem_updi_0[369] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, 0x93, 0x00, 0xad, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, 0x60, @@ -461,7 +429,7 @@ const unsigned char WriteConfigmem_0[369] = { 0xaf, }; -const unsigned char WriteConfigmem_1[128] = { +const unsigned char WriteConfigmem_updi_1[128] = { 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x13, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x99, 0x03, @@ -472,7 +440,7 @@ const unsigned char WriteConfigmem_1[128] = { 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char WriteConfigmem_2[369] = { +const unsigned char WriteConfigmem_updi_2[369] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, 0x93, 0x00, 0xad, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, 0x60, @@ -499,7 +467,7 @@ const unsigned char WriteConfigmem_2[369] = { 0xaf, }; -const unsigned char WriteConfigmem_3[128] = { +const unsigned char WriteConfigmem_updi_3[128] = { 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x13, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x99, 0x03, @@ -510,23 +478,174 @@ const unsigned char WriteConfigmem_3[128] = { 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char WriteConfigmem_4[128] = { - 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, +const unsigned char WriteConfigmemFuse_updi_0[369] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x93, 0x00, 0xad, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, + 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, 0x60, + 0x04, 0x00, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, + 0x00, 0x90, 0x06, 0x08, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x03, 0x90, 0x06, 0x09, 0x10, 0x00, + 0x00, 0x1e, 0x06, 0x06, 0x04, 0x90, 0x06, 0x06, 0x10, 0x00, 0x00, 0x99, 0x07, 0x1e, 0x06, 0x06, + 0x07, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, + 0x07, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0xfb, 0x70, 0x01, 0xad, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, + 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, + 0x60, 0x04, 0x00, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, + 0x00, 0x00, 0x90, 0x06, 0x08, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x03, 0x90, 0x06, 0x09, 0x10, + 0x00, 0x00, 0x1e, 0x06, 0x06, 0x04, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xee, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, 0x90, 0x02, + 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x90, 0x03, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, + 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x99, 0x07, + 0x1e, 0x06, 0x00, 0x07, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x06, 0x07, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0x70, + 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0xaf, +}; + +const unsigned char WriteConfigmemFuse_updi_1[128] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, + 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, + 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x13, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x99, 0x03, + 0x1e, 0x06, 0x00, 0x03, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0x70, + 0x00, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, +}; + +const unsigned char WriteConfigmemFuse_updi_2[369] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x93, 0x00, 0xad, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, + 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, 0x60, + 0x04, 0x00, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, + 0x00, 0x90, 0x06, 0x0c, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x03, 0x90, 0x06, 0x0d, 0x10, 0x00, + 0x00, 0x1e, 0x06, 0x06, 0x04, 0x90, 0x06, 0x08, 0x10, 0x00, 0x00, 0x99, 0x07, 0x1e, 0x06, 0x06, + 0x07, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, + 0x07, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0xfb, 0x70, 0x01, 0xad, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, + 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, + 0x60, 0x04, 0x00, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, + 0x00, 0x00, 0x90, 0x06, 0x0c, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x03, 0x90, 0x06, 0x0d, 0x10, + 0x00, 0x00, 0x1e, 0x06, 0x06, 0x04, 0x90, 0x03, 0x1f, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xee, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, 0x90, 0x02, + 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x90, 0x03, 0x0f, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, + 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x99, 0x07, + 0x1e, 0x06, 0x00, 0x07, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x15, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x06, 0x07, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0x70, + 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0xaf, +}; + +const unsigned char WriteConfigmemFuse_updi_3[128] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x13, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x99, 0x03, 0x1e, 0x06, 0x00, 0x03, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0x70, - 0x00, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char ReadConfigmem_0[19] = { +const unsigned char WriteConfigmemLock_updi_0[369] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x93, 0x00, 0xad, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, + 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, 0x60, + 0x04, 0x00, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, + 0x00, 0x90, 0x06, 0x08, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x03, 0x90, 0x06, 0x09, 0x10, 0x00, + 0x00, 0x1e, 0x06, 0x06, 0x04, 0x90, 0x06, 0x06, 0x10, 0x00, 0x00, 0x99, 0x07, 0x1e, 0x06, 0x06, + 0x07, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x07, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, + 0x07, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0xfb, 0x70, 0x01, 0xad, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, + 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, + 0x60, 0x04, 0x00, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, + 0x00, 0x00, 0x90, 0x06, 0x08, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x03, 0x90, 0x06, 0x09, 0x10, + 0x00, 0x00, 0x1e, 0x06, 0x06, 0x04, 0x90, 0x03, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xee, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, 0x90, 0x02, + 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x90, 0x03, 0x04, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, + 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x99, 0x07, + 0x1e, 0x06, 0x00, 0x07, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x03, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x06, 0x07, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0x70, + 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0xaf, +}; + +const unsigned char WriteConfigmemLock_updi_1[128] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, + 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, + 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x13, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x99, 0x03, + 0x1e, 0x06, 0x00, 0x03, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0x70, + 0x00, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, +}; + +const unsigned char WriteConfigmemLock_updi_2[369] = { + 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, + 0x93, 0x00, 0xad, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, + 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, 0x60, + 0x04, 0x00, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, 0x00, + 0x00, 0x90, 0x06, 0x0c, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x03, 0x90, 0x06, 0x0d, 0x10, 0x00, + 0x00, 0x1e, 0x06, 0x06, 0x04, 0x90, 0x06, 0x08, 0x10, 0x00, 0x00, 0x99, 0x07, 0x1e, 0x06, 0x06, + 0x07, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, + 0x07, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0xfb, 0x70, 0x01, 0xad, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, + 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x60, 0x03, 0x00, + 0x60, 0x04, 0x00, 0x66, 0x03, 0xff, 0x00, 0x00, 0x00, 0x67, 0x04, 0x08, 0x66, 0x04, 0xff, 0x00, + 0x00, 0x00, 0x90, 0x06, 0x0c, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x03, 0x90, 0x06, 0x0d, 0x10, + 0x00, 0x00, 0x1e, 0x06, 0x06, 0x04, 0x90, 0x03, 0x1f, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x00, 0x00, + 0x00, 0x00, 0xee, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, 0x90, 0x02, + 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x02, 0x00, 0x10, 0x00, 0x00, 0x90, 0x03, 0x0f, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x02, 0x03, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, + 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x99, 0x07, + 0x1e, 0x06, 0x00, 0x07, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x15, 0x00, 0x00, 0x00, + 0x1e, 0x06, 0x06, 0x07, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0x70, + 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0xaf, +}; + +const unsigned char WriteConfigmemLock_updi_3[128] = { + 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, + 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, + 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x13, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x99, 0x03, + 0x1e, 0x06, 0x00, 0x03, 0x6c, 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0x70, + 0x00, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, + 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, +}; + +const unsigned char ReadConfigmem_updi_0[19] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, + 0x00, 0xae, 0x5a, +}; + +const unsigned char ReadConfigmemFuse_updi_0[19] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, }; -const unsigned char WriteIDmem_0[421] = { +const unsigned char ReadConfigmemLock_updi_0[19] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, + 0x00, 0xae, 0x5a, +}; + +const unsigned char WriteIDmem_updi_0[421] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x02, 0x00, 0x00, 0x00, 0x1d, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x00, 0xfb, 0xa4, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0xed, 0x00, 0x60, 0x0f, @@ -556,7 +675,7 @@ const unsigned char WriteIDmem_0[421] = { 0x01, 0x11, 0xdf, 0x00, 0xaf, }; -const unsigned char WriteIDmem_1[421] = { +const unsigned char WriteIDmem_updi_1[421] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x01, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x02, 0x00, 0x00, 0x00, 0x1d, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x00, 0xfb, 0xa4, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0xed, 0x00, 0x60, 0x0f, @@ -586,7 +705,7 @@ const unsigned char WriteIDmem_1[421] = { 0x01, 0x11, 0xdf, 0x00, 0xaf, }; -const unsigned char WriteIDmem_2[266] = { +const unsigned char WriteIDmem_updi_2[266] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, 0x02, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, @@ -606,7 +725,7 @@ const unsigned char WriteIDmem_2[266] = { 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char WriteIDmem_3[421] = { +const unsigned char WriteIDmem_updi_3[421] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x03, 0x02, 0x00, 0x00, 0x00, 0xfe, 0x03, 0x02, 0x00, 0x00, 0x00, 0x1d, 0x00, 0xfe, 0x03, 0x01, 0x00, 0x00, 0x00, 0xd9, 0x00, 0xfb, 0xa4, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0xed, 0x00, 0x60, 0x0f, @@ -636,7 +755,7 @@ const unsigned char WriteIDmem_3[421] = { 0x01, 0x11, 0xdf, 0x00, 0xaf, }; -const unsigned char WriteIDmem_4[266] = { +const unsigned char WriteIDmem_updi_4[266] = { 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, 0x06, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, @@ -656,27 +775,7 @@ const unsigned char WriteIDmem_4[266] = { 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, }; -const unsigned char WriteIDmem_5[266] = { - 0x91, 0x00, 0x91, 0x01, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, - 0xfa, 0x01, 0x0f, 0x18, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, - 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, - 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x08, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, - 0x90, 0x06, 0xff, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x00, 0x06, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, - 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, - 0x06, 0x07, 0x90, 0x02, 0x07, 0x10, 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, - 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, - 0x90, 0x07, 0x02, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, - 0xfa, 0x0f, 0x10, 0xa8, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0a, - 0x10, 0x6a, 0x0f, 0x10, 0x6e, 0x00, 0x10, 0x6a, 0x01, 0x10, 0xfc, 0x0f, 0x11, 0x9a, 0x00, 0x6c, - 0x0c, 0x90, 0x0d, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x0c, 0x0d, 0xfa, 0x00, 0x90, 0x02, 0x07, 0x10, - 0x00, 0x00, 0xa2, 0x1e, 0x03, 0x02, 0x94, 0x02, 0x00, 0xa5, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, - 0x1e, 0x06, 0x06, 0x07, 0xfc, 0x01, 0x11, 0x0a, 0x00, 0x5a, 0x90, 0x06, 0x00, 0x10, 0x00, 0x00, - 0x90, 0x07, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x06, 0x07, -}; - -const unsigned char ReadIDmem_0[67] = { +const unsigned char ReadIDmem_updi_0[67] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x20, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0c, 0x10, @@ -684,7 +783,7 @@ const unsigned char ReadIDmem_0[67] = { 0x11, 0x0b, 0x00, }; -const unsigned char ReadIDmem_1[67] = { +const unsigned char ReadIDmem_updi_1[67] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x40, 0x00, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0c, 0x10, @@ -692,7 +791,7 @@ const unsigned char ReadIDmem_1[67] = { 0x11, 0x0b, 0x00, }; -const unsigned char ReadIDmem_2[67] = { +const unsigned char ReadIDmem_updi_2[67] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x11, 0x00, 0x00, 0x00, 0x00, 0x90, 0x0f, 0x00, 0x02, 0x00, 0x00, 0xfa, 0x01, 0x0f, 0x19, 0x00, 0x60, 0x0f, 0x01, 0x90, 0x10, 0x00, 0x01, 0x00, 0x00, 0xfa, 0x0f, 0x10, 0x27, 0x00, 0x60, 0x10, 0x0f, 0x1e, 0x09, 0x00, 0x1e, 0x10, 0x10, 0x1e, 0x0c, 0x10, @@ -700,25 +799,25 @@ const unsigned char ReadIDmem_2[67] = { 0x11, 0x0b, 0x00, }; -const unsigned char WriteCSreg_0[8] = { +const unsigned char WriteCSreg_updi_0[8] = { 0x99, 0x00, 0x99, 0x01, 0x1e, 0x0f, 0x00, 0x01, }; -const unsigned char ReadCSreg_0[6] = { +const unsigned char ReadCSreg_updi_0[6] = { 0x99, 0x00, 0x1e, 0x0e, 0x00, 0x9f, }; -const unsigned char WriteMem8_0[20] = { +const unsigned char WriteMem8_updi_0[20] = { 0x91, 0x00, 0x91, 0x01, 0xad, 0x01, 0x99, 0x03, 0x1e, 0x06, 0x00, 0x03, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, }; -const unsigned char ReadMem8_0[19] = { +const unsigned char ReadMem8_updi_0[19] = { 0x91, 0x00, 0x91, 0x01, 0x95, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, 0xae, 0x5a, }; -const unsigned char ReadSIB_0[7] = { +const unsigned char ReadSIB_updi_0[7] = { 0x95, 0x9b, 0x00, 0x02, 0x1e, 0x12, 0x00, }; @@ -727,86 +826,74 @@ const unsigned char ReadSIB_0[7] = { static void pickit_updi_script_init(SCRIPT *scr); static void pickit_updi_script_init(SCRIPT *scr) { - scr->EnterProgMode = EnterProgMode_0; - scr->EnterProgModeHvSp = EnterProgModeHvSp_0; - scr->EnterProgModeHvSpRst = EnterProgModeHvSpRst_0; - scr->EnterProgModeHvUpt = EnterProgModeHvUpt_0; - scr->ExitProgMode = ExitProgMode_0; - scr->SetSpeed = SetSpeed_0; - scr->GetDeviceID = NULL; - scr->EraseChip = EraseChip_0; - scr->WriteProgmem = NULL; - scr->ReadProgmem = NULL; - scr->WriteDataEEmem = NULL; - scr->ReadDataEEmem = NULL; - scr->WriteConfigmem = NULL; - scr->ReadConfigmem = ReadConfigmem_0; - scr->WriteIDmem = NULL; - scr->ReadIDmem = NULL; - scr->WriteCSreg = WriteCSreg_0; - scr->ReadCSreg = ReadCSreg_0; - scr->WriteMem8 = WriteMem8_0; - scr->ReadMem8 = ReadMem8_0; - scr->ReadSIB = ReadSIB_0; - - scr->EnterProgMode_len = sizeof(EnterProgMode_0); - scr->EnterProgModeHvSp_len = sizeof(EnterProgModeHvSp_0); - scr->EnterProgModeHvSpRst_len = sizeof(EnterProgModeHvSpRst_0); - scr->EnterProgModeHvUpt_len = sizeof(EnterProgModeHvUpt_0); - scr->ExitProgMode_len = sizeof(ExitProgMode_0); - scr->SetSpeed_len = sizeof(SetSpeed_0); - scr->GetDeviceID_len = 0; - scr->EraseChip_len = sizeof(EraseChip_0); - scr->WriteProgmem_len = 0; - scr->ReadProgmem_len = 0; - scr->WriteDataEEmem_len = 0; - scr->ReadDataEEmem_len = 0; - scr->WriteConfigmem_len = 0; - scr->ReadConfigmem_len = sizeof(ReadConfigmem_0); - scr->WriteIDmem_len = 0; - scr->ReadIDmem_len = 0; - scr->WriteCSreg_len = sizeof(WriteCSreg_0); - scr->ReadCSreg_len = sizeof(ReadCSreg_0); - scr->WriteMem8_len = sizeof(WriteMem8_0); - scr->ReadMem8_len = sizeof(ReadMem8_0); - scr->ReadSIB_len = sizeof(ReadSIB_0); + memset(scr, 0x00, sizeof(SCRIPT)); // Make sure everything is NULL + + scr->EnterProgMode = EnterProgMode_updi_0; + scr->EnterProgModeHvSp = EnterProgModeHvSp_updi_0; + scr->EnterProgModeHvSpRst = EnterProgModeHvSpRst_updi_0; + scr->EnterProgModeHvUpt = EnterProgModeHvUpt_updi_0; + scr->ExitProgMode = ExitProgMode_updi_0; + scr->SetSpeed = SetSpeed_updi_0; + scr->EraseChip = EraseChip_updi_0; + scr->ReadConfigmem = ReadConfigmem_updi_0; + scr->ReadConfigmemFuse = ReadConfigmemFuse_updi_0; + scr->ReadConfigmemLock = ReadConfigmemLock_updi_0; + scr->WriteCSreg = WriteCSreg_updi_0; + scr->ReadCSreg = ReadCSreg_updi_0; + scr->WriteMem8 = WriteMem8_updi_0; + scr->ReadMem8 = ReadMem8_updi_0; + scr->ReadSIB = ReadSIB_updi_0; + + scr->EnterProgMode_len = sizeof(EnterProgMode_updi_0); + scr->EnterProgModeHvSp_len = sizeof(EnterProgModeHvSp_updi_0); + scr->EnterProgModeHvSpRst_len = sizeof(EnterProgModeHvSpRst_updi_0); + scr->EnterProgModeHvUpt_len = sizeof(EnterProgModeHvUpt_updi_0); + scr->ExitProgMode_len = sizeof(ExitProgMode_updi_0); + scr->SetSpeed_len = sizeof(SetSpeed_updi_0); + scr->EraseChip_len = sizeof(EraseChip_updi_0); + scr->ReadConfigmem_len = sizeof(ReadConfigmem_updi_0); + scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_updi_0); + scr->ReadConfigmemLock_len = sizeof(ReadConfigmemLock_updi_0); + scr->WriteCSreg_len = sizeof(WriteCSreg_updi_0); + scr->ReadCSreg_len = sizeof(ReadCSreg_updi_0); + scr->WriteMem8_len = sizeof(WriteMem8_updi_0); + scr->ReadMem8_len = sizeof(ReadMem8_updi_0); + scr->ReadSIB_len = sizeof(ReadSIB_updi_0); } -const char * const pickit5_updi_chip_lut[] = { - "ATtiny416auto", "ATmega1608", "ATmega1609", "ATmega3208", "ATmega3209", "ATmega4808", "ATmega4809", "ATmega808", - "ATmega809", "ATtiny1604", "ATtiny1606", "ATtiny1607", "ATtiny1614", "ATtiny1616", "ATtiny1617", "ATtiny1624", - "ATtiny1626", "ATtiny1627", "ATtiny202", "ATtiny204", "ATtiny212", "ATtiny214", "ATtiny3216", "ATtiny3217", - "ATtiny3224", "ATtiny3226", "ATtiny3227", "ATtiny402", "ATtiny404", "ATtiny406", "ATtiny412", "ATtiny414", - "ATtiny416", "ATtiny417", "ATtiny424", "ATtiny426", "ATtiny427", "ATtiny804", "ATtiny806", "ATtiny807", - "ATtiny814", "ATtiny816", "ATtiny817", "ATtiny824", "ATtiny826", "ATtiny827", "AVR128DA28", "AVR128DA32", - "AVR128DA48", "AVR128DA64", "AVR128DB28", "AVR128DB32", "AVR128DB48", "AVR128DB64", "AVR16DD14", "AVR16DD20", - "AVR16DD28", "AVR16DD32", "AVR32DA28", "AVR32DA32", "AVR32DA48", "AVR32DB28", "AVR32DB32", "AVR32DB48", - "AVR32DD14", "AVR32DD20", "AVR32DD28", "AVR32DD32", "AVR64DA28", "AVR64DA32", "AVR64DA48", "AVR64DA64", - "AVR64DB28", "AVR64DB32", "AVR64DB48", "AVR64DB64", "AVR64DD14", "AVR64DD20", "AVR64DD28", "AVR64DD32", - "AVR64EA28", "AVR64EA32", "AVR64EA48", "AVR16DA28", "AVR16DA32", "AVR16DA48", "AVR16DB28", "AVR16DB32", - "AVR16DB48", "AVR16DU14", "AVR16DU20", "AVR16DU28", "AVR16DU32", "AVR32DU14", "AVR32DU20", "AVR32DU28", - "AVR32DU32", "AVR64DU28", "AVR64DU32", "AVR16EA28", "AVR16EA32", "AVR16EA48", "AVR32EA28", "AVR32EA32", - "AVR32EA48", "AVR8EA28", "AVR8EA32", "AVR16EB14", "AVR16EB20", "AVR16EB28", "AVR16EB32", "AVR32EB28", - "AVR32EB32", "AVR64EC48", "AVR32SD32", "AVR64SD48", +const char * const pickit5_updi_chip_lut[] = { + "ATtiny416auto", "ATmega1608", "ATmega1609", "ATmega3208", "ATmega3209", "ATmega4808", "ATmega4809", "ATmega808", + "ATmega809", "ATtiny1604", "ATtiny1606", "ATtiny1607", "ATtiny1614", "ATtiny1616", "ATtiny1617", "ATtiny1624", + "ATtiny1626", "ATtiny1627", "ATtiny202", "ATtiny204", "ATtiny212", "ATtiny214", "ATtiny3216", "ATtiny3217", + "ATtiny3224", "ATtiny3226", "ATtiny3227", "ATtiny402", "ATtiny404", "ATtiny406", "ATtiny412", "ATtiny414", + "ATtiny416", "ATtiny417", "ATtiny424", "ATtiny426", "ATtiny427", "ATtiny804", "ATtiny806", "ATtiny807", + "ATtiny814", "ATtiny816", "ATtiny817", "ATtiny824", "ATtiny826", "ATtiny827", "AVR128DA28", "AVR128DA32", + "AVR128DA48", "AVR128DA64", "AVR128DB28", "AVR128DB32", "AVR128DB48", "AVR128DB64", "AVR16DD14", "AVR16DD20", + "AVR16DD28", "AVR16DD32", "AVR32DA28", "AVR32DA32", "AVR32DA48", "AVR32DB28", "AVR32DB32", "AVR32DB48", + "AVR32DD14", "AVR32DD20", "AVR32DD28", "AVR32DD32", "AVR64DA28", "AVR64DA32", "AVR64DA48", "AVR64DA64", + "AVR64DB28", "AVR64DB32", "AVR64DB48", "AVR64DB64", "AVR64DD14", "AVR64DD20", "AVR64DD28", "AVR64DD32", + "AVR64EA28", "AVR64EA32", "AVR64EA48", "AVR16DU14", "AVR16DU20", "AVR16DU28", "AVR16DU32", "AVR32DU14", + "AVR32DU20", "AVR32DU28", "AVR32DU32", "AVR64DU28", "AVR64DU32", "AVR16EA28", "AVR16EA32", "AVR16EA48", + "AVR32EA28", "AVR32EA32", "AVR32EA48", "AVR8EA28", "AVR8EA32", "AVR16EB14", "AVR16EB20", "AVR16EB28", + "AVR16EB32", }; - const unsigned char * get_devid_script_by_nvm_ver(unsigned char version) { if (version >= '0') version -= '0'; // allow chars if (version > 9) return NULL; // Not a valid number if (version <= 3) // tiny, mega, DA, DB, DD, EA - return GetDeviceID_0; + return GetDeviceID_updi_0; else // DU, EB - return GetDeviceID_1; + return GetDeviceID_updi_1; } -int get_pickit_updi_script(SCRIPT *scr, const char* partdesc) { - if ((scr == NULL) || (partdesc == NULL)) +int get_pickit_updi_script(SCRIPT *scr, const char* partdesc) { + if ((scr == NULL) || (partdesc == NULL)) { return -1; - + } int namepos = -1; - for (int i = 0; i < 116; i++) { + for (int i = 0; i < 105; i++) { if (strncmp(pickit5_updi_chip_lut[i], partdesc, 10) == 0) { namepos = i; break; @@ -856,22 +943,26 @@ int get_pickit_updi_script(SCRIPT *scr, const char* partdesc) { case 43: /* ATtiny824 */ case 44: /* ATtiny826 */ case 45: /* ATtiny827 */ - scr->GetDeviceID = GetDeviceID_0; - scr->GetDeviceID_len = sizeof(GetDeviceID_0); - scr->WriteProgmem = WriteProgmem_0; - scr->WriteProgmem_len = sizeof(WriteProgmem_0); - scr->ReadProgmem = ReadProgmem_0; - scr->ReadProgmem_len = sizeof(ReadProgmem_0); - scr->WriteDataEEmem = WriteDataEEmem_0; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_0); - scr->ReadDataEEmem = ReadDataEEmem_0; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_0); - scr->WriteConfigmem = WriteConfigmem_0; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_0); - scr->WriteIDmem = WriteIDmem_0; - scr->WriteIDmem_len = sizeof(WriteIDmem_0); - scr->ReadIDmem = ReadIDmem_0; - scr->ReadIDmem_len = sizeof(ReadIDmem_0); + scr->GetDeviceID = GetDeviceID_updi_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_updi_0); + scr->WriteProgmem = WriteProgmem_updi_0; + scr->WriteProgmem_len = sizeof(WriteProgmem_updi_0); + scr->ReadProgmem = ReadProgmem_updi_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_updi_0); + scr->WriteDataEEmem = WriteDataEEmem_updi_0; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_updi_0); + scr->ReadDataEEmem = ReadDataEEmem_updi_0; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_updi_0); + scr->WriteConfigmem = WriteConfigmem_updi_0; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_updi_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_updi_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_updi_0); + scr->WriteConfigmemLock = WriteConfigmemLock_updi_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_updi_0); + scr->WriteIDmem = WriteIDmem_updi_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_updi_0); + scr->ReadIDmem = ReadIDmem_updi_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_updi_0); break; case 3: /* ATmega3208 */ case 4: /* ATmega3209 */ @@ -879,42 +970,50 @@ int get_pickit_updi_script(SCRIPT *scr, const char* partdesc) { case 6: /* ATmega4809 */ case 22: /* ATtiny3216 */ case 23: /* ATtiny3217 */ - scr->GetDeviceID = GetDeviceID_0; - scr->GetDeviceID_len = sizeof(GetDeviceID_0); - scr->WriteProgmem = WriteProgmem_1; - scr->WriteProgmem_len = sizeof(WriteProgmem_1); - scr->ReadProgmem = ReadProgmem_1; - scr->ReadProgmem_len = sizeof(ReadProgmem_1); - scr->WriteDataEEmem = WriteDataEEmem_1; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_1); - scr->ReadDataEEmem = ReadDataEEmem_1; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_1); - scr->WriteConfigmem = WriteConfigmem_0; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_0); - scr->WriteIDmem = WriteIDmem_1; - scr->WriteIDmem_len = sizeof(WriteIDmem_1); - scr->ReadIDmem = ReadIDmem_1; - scr->ReadIDmem_len = sizeof(ReadIDmem_1); + scr->GetDeviceID = GetDeviceID_updi_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_updi_0); + scr->WriteProgmem = WriteProgmem_updi_1; + scr->WriteProgmem_len = sizeof(WriteProgmem_updi_1); + scr->ReadProgmem = ReadProgmem_updi_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_updi_1); + scr->WriteDataEEmem = WriteDataEEmem_updi_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_updi_1); + scr->ReadDataEEmem = ReadDataEEmem_updi_1; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_updi_1); + scr->WriteConfigmem = WriteConfigmem_updi_0; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_updi_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_updi_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_updi_0); + scr->WriteConfigmemLock = WriteConfigmemLock_updi_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_updi_0); + scr->WriteIDmem = WriteIDmem_updi_1; + scr->WriteIDmem_len = sizeof(WriteIDmem_updi_1); + scr->ReadIDmem = ReadIDmem_updi_1; + scr->ReadIDmem_len = sizeof(ReadIDmem_updi_1); break; case 24: /* ATtiny3224 */ case 25: /* ATtiny3226 */ case 26: /* ATtiny3227 */ - scr->GetDeviceID = GetDeviceID_0; - scr->GetDeviceID_len = sizeof(GetDeviceID_0); - scr->WriteProgmem = WriteProgmem_1; - scr->WriteProgmem_len = sizeof(WriteProgmem_1); - scr->ReadProgmem = ReadProgmem_1; - scr->ReadProgmem_len = sizeof(ReadProgmem_1); - scr->WriteDataEEmem = WriteDataEEmem_1; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_1); - scr->ReadDataEEmem = ReadDataEEmem_1; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_1); - scr->WriteConfigmem = WriteConfigmem_0; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_0); - scr->WriteIDmem = WriteIDmem_0; - scr->WriteIDmem_len = sizeof(WriteIDmem_0); - scr->ReadIDmem = ReadIDmem_0; - scr->ReadIDmem_len = sizeof(ReadIDmem_0); + scr->GetDeviceID = GetDeviceID_updi_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_updi_0); + scr->WriteProgmem = WriteProgmem_updi_1; + scr->WriteProgmem_len = sizeof(WriteProgmem_updi_1); + scr->ReadProgmem = ReadProgmem_updi_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_updi_1); + scr->WriteDataEEmem = WriteDataEEmem_updi_1; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_updi_1); + scr->ReadDataEEmem = ReadDataEEmem_updi_1; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_updi_1); + scr->WriteConfigmem = WriteConfigmem_updi_0; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_updi_0); + scr->WriteConfigmemFuse = WriteConfigmemFuse_updi_0; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_updi_0); + scr->WriteConfigmemLock = WriteConfigmemLock_updi_0; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_updi_0); + scr->WriteIDmem = WriteIDmem_updi_0; + scr->WriteIDmem_len = sizeof(WriteIDmem_updi_0); + scr->ReadIDmem = ReadIDmem_updi_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_updi_0); break; case 46: /* AVR128DA28 */ case 47: /* AVR128DA32 */ @@ -950,160 +1049,135 @@ int get_pickit_updi_script(SCRIPT *scr, const char* partdesc) { case 77: /* AVR64DD20 */ case 78: /* AVR64DD28 */ case 79: /* AVR64DD32 */ - case 83: /* AVR16DA28 */ - case 84: /* AVR16DA32 */ - case 85: /* AVR16DA48 */ - case 86: /* AVR16DB28 */ - case 87: /* AVR16DB32 */ - case 88: /* AVR16DB48 */ - scr->GetDeviceID = GetDeviceID_0; - scr->GetDeviceID_len = sizeof(GetDeviceID_0); - scr->WriteProgmem = WriteProgmem_2; - scr->WriteProgmem_len = sizeof(WriteProgmem_2); - scr->ReadProgmem = ReadProgmem_2; - scr->ReadProgmem_len = sizeof(ReadProgmem_2); - scr->WriteDataEEmem = WriteDataEEmem_2; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_2); - scr->ReadDataEEmem = ReadDataEEmem_2; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_2); - scr->WriteConfigmem = WriteConfigmem_1; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_1); - scr->WriteIDmem = WriteIDmem_2; - scr->WriteIDmem_len = sizeof(WriteIDmem_2); - scr->ReadIDmem = ReadIDmem_0; - scr->ReadIDmem_len = sizeof(ReadIDmem_0); + scr->GetDeviceID = GetDeviceID_updi_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_updi_0); + scr->WriteProgmem = WriteProgmem_updi_2; + scr->WriteProgmem_len = sizeof(WriteProgmem_updi_2); + scr->ReadProgmem = ReadProgmem_updi_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_updi_2); + scr->WriteDataEEmem = WriteDataEEmem_updi_2; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_updi_2); + scr->ReadDataEEmem = ReadDataEEmem_updi_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_updi_2); + scr->WriteConfigmem = WriteConfigmem_updi_1; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_updi_1); + scr->WriteConfigmemFuse = WriteConfigmemFuse_updi_1; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_updi_1); + scr->WriteConfigmemLock = WriteConfigmemLock_updi_1; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_updi_1); + scr->WriteIDmem = WriteIDmem_updi_2; + scr->WriteIDmem_len = sizeof(WriteIDmem_updi_2); + scr->ReadIDmem = ReadIDmem_updi_0; + scr->ReadIDmem_len = sizeof(ReadIDmem_updi_0); break; case 80: /* AVR64EA28 */ case 81: /* AVR64EA32 */ case 82: /* AVR64EA48 */ - scr->GetDeviceID = GetDeviceID_0; - scr->GetDeviceID_len = sizeof(GetDeviceID_0); - scr->WriteProgmem = WriteProgmem_3; - scr->WriteProgmem_len = sizeof(WriteProgmem_3); - scr->ReadProgmem = ReadProgmem_1; - scr->ReadProgmem_len = sizeof(ReadProgmem_1); - scr->WriteDataEEmem = WriteDataEEmem_3; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_3); - scr->ReadDataEEmem = ReadDataEEmem_3; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_3); - scr->WriteConfigmem = WriteConfigmem_2; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_2); - scr->WriteIDmem = WriteIDmem_3; - scr->WriteIDmem_len = sizeof(WriteIDmem_3); - scr->ReadIDmem = ReadIDmem_1; - scr->ReadIDmem_len = sizeof(ReadIDmem_1); - break; - case 89: /* AVR16DU14 */ - case 90: /* AVR16DU20 */ - case 91: /* AVR16DU28 */ - case 92: /* AVR16DU32 */ - case 93: /* AVR32DU14 */ - case 94: /* AVR32DU20 */ - case 95: /* AVR32DU28 */ - case 96: /* AVR32DU32 */ - case 97: /* AVR64DU28 */ - case 98: /* AVR64DU32 */ - scr->GetDeviceID = GetDeviceID_1; - scr->GetDeviceID_len = sizeof(GetDeviceID_1); - scr->WriteProgmem = WriteProgmem_4; - scr->WriteProgmem_len = sizeof(WriteProgmem_4); - scr->ReadProgmem = ReadProgmem_2; - scr->ReadProgmem_len = sizeof(ReadProgmem_2); - scr->WriteDataEEmem = WriteDataEEmem_4; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_4); - scr->ReadDataEEmem = ReadDataEEmem_2; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_2); - scr->WriteConfigmem = WriteConfigmem_3; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_3); - scr->WriteIDmem = WriteIDmem_4; - scr->WriteIDmem_len = sizeof(WriteIDmem_4); - scr->ReadIDmem = ReadIDmem_2; - scr->ReadIDmem_len = sizeof(ReadIDmem_2); - break; - case 99: /* AVR16EA28 */ - case 100: /* AVR16EA32 */ - case 101: /* AVR16EA48 */ - case 102: /* AVR32EA28 */ - case 103: /* AVR32EA32 */ - case 104: /* AVR32EA48 */ - case 105: /* AVR8EA28 */ - case 106: /* AVR8EA32 */ - scr->GetDeviceID = GetDeviceID_0; - scr->GetDeviceID_len = sizeof(GetDeviceID_0); - scr->WriteProgmem = WriteProgmem_5; - scr->WriteProgmem_len = sizeof(WriteProgmem_5); - scr->ReadProgmem = ReadProgmem_0; - scr->ReadProgmem_len = sizeof(ReadProgmem_0); - scr->WriteDataEEmem = WriteDataEEmem_3; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_3); - scr->ReadDataEEmem = ReadDataEEmem_3; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_3); - scr->WriteConfigmem = WriteConfigmem_2; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_2); - scr->WriteIDmem = WriteIDmem_3; - scr->WriteIDmem_len = sizeof(WriteIDmem_3); - scr->ReadIDmem = ReadIDmem_1; - scr->ReadIDmem_len = sizeof(ReadIDmem_1); + scr->GetDeviceID = GetDeviceID_updi_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_updi_0); + scr->WriteProgmem = WriteProgmem_updi_3; + scr->WriteProgmem_len = sizeof(WriteProgmem_updi_3); + scr->ReadProgmem = ReadProgmem_updi_1; + scr->ReadProgmem_len = sizeof(ReadProgmem_updi_1); + scr->WriteDataEEmem = WriteDataEEmem_updi_3; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_updi_3); + scr->ReadDataEEmem = ReadDataEEmem_updi_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_updi_3); + scr->WriteConfigmem = WriteConfigmem_updi_2; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_updi_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_updi_2; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_updi_2); + scr->WriteConfigmemLock = WriteConfigmemLock_updi_2; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_updi_2); + scr->WriteIDmem = WriteIDmem_updi_3; + scr->WriteIDmem_len = sizeof(WriteIDmem_updi_3); + scr->ReadIDmem = ReadIDmem_updi_1; + scr->ReadIDmem_len = sizeof(ReadIDmem_updi_1); break; - case 107: /* AVR16EB14 */ - case 108: /* AVR16EB20 */ - case 109: /* AVR16EB28 */ - case 110: /* AVR16EB32 */ - case 111: /* AVR32EB28 */ - case 112: /* AVR32EB32 */ - scr->GetDeviceID = GetDeviceID_1; - scr->GetDeviceID_len = sizeof(GetDeviceID_1); - scr->WriteProgmem = WriteProgmem_5; - scr->WriteProgmem_len = sizeof(WriteProgmem_5); - scr->ReadProgmem = ReadProgmem_0; - scr->ReadProgmem_len = sizeof(ReadProgmem_0); - scr->WriteDataEEmem = WriteDataEEmem_3; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_3); - scr->ReadDataEEmem = ReadDataEEmem_3; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_3); - scr->WriteConfigmem = WriteConfigmem_2; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_2); - scr->WriteIDmem = WriteIDmem_3; - scr->WriteIDmem_len = sizeof(WriteIDmem_3); - scr->ReadIDmem = ReadIDmem_1; - scr->ReadIDmem_len = sizeof(ReadIDmem_1); + case 83: /* AVR16DU14 */ + case 84: /* AVR16DU20 */ + case 85: /* AVR16DU28 */ + case 86: /* AVR16DU32 */ + case 87: /* AVR32DU14 */ + case 88: /* AVR32DU20 */ + case 89: /* AVR32DU28 */ + case 90: /* AVR32DU32 */ + case 91: /* AVR64DU28 */ + case 92: /* AVR64DU32 */ + scr->GetDeviceID = GetDeviceID_updi_1; + scr->GetDeviceID_len = sizeof(GetDeviceID_updi_1); + scr->WriteProgmem = WriteProgmem_updi_4; + scr->WriteProgmem_len = sizeof(WriteProgmem_updi_4); + scr->ReadProgmem = ReadProgmem_updi_2; + scr->ReadProgmem_len = sizeof(ReadProgmem_updi_2); + scr->WriteDataEEmem = WriteDataEEmem_updi_4; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_updi_4); + scr->ReadDataEEmem = ReadDataEEmem_updi_2; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_updi_2); + scr->WriteConfigmem = WriteConfigmem_updi_3; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_updi_3); + scr->WriteConfigmemFuse = WriteConfigmemFuse_updi_3; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_updi_3); + scr->WriteConfigmemLock = WriteConfigmemLock_updi_3; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_updi_3); + scr->WriteIDmem = WriteIDmem_updi_4; + scr->WriteIDmem_len = sizeof(WriteIDmem_updi_4); + scr->ReadIDmem = ReadIDmem_updi_2; + scr->ReadIDmem_len = sizeof(ReadIDmem_updi_2); break; - case 113: /* AVR64EC48 */ - scr->GetDeviceID = GetDeviceID_1; - scr->GetDeviceID_len = sizeof(GetDeviceID_1); - scr->WriteProgmem = WriteProgmem_3; - scr->WriteProgmem_len = sizeof(WriteProgmem_3); - scr->ReadProgmem = ReadProgmem_1; - scr->ReadProgmem_len = sizeof(ReadProgmem_1); - scr->WriteDataEEmem = WriteDataEEmem_3; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_3); - scr->ReadDataEEmem = ReadDataEEmem_3; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_3); - scr->WriteConfigmem = WriteConfigmem_2; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_2); - scr->WriteIDmem = WriteIDmem_3; - scr->WriteIDmem_len = sizeof(WriteIDmem_3); - scr->ReadIDmem = ReadIDmem_1; - scr->ReadIDmem_len = sizeof(ReadIDmem_1); + case 93: /* AVR16EA28 */ + case 94: /* AVR16EA32 */ + case 95: /* AVR16EA48 */ + case 96: /* AVR32EA28 */ + case 97: /* AVR32EA32 */ + case 98: /* AVR32EA48 */ + case 99: /* AVR8EA28 */ + case 100: /* AVR8EA32 */ + scr->GetDeviceID = GetDeviceID_updi_0; + scr->GetDeviceID_len = sizeof(GetDeviceID_updi_0); + scr->WriteProgmem = WriteProgmem_updi_5; + scr->WriteProgmem_len = sizeof(WriteProgmem_updi_5); + scr->ReadProgmem = ReadProgmem_updi_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_updi_0); + scr->WriteDataEEmem = WriteDataEEmem_updi_3; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_updi_3); + scr->ReadDataEEmem = ReadDataEEmem_updi_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_updi_3); + scr->WriteConfigmem = WriteConfigmem_updi_2; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_updi_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_updi_2; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_updi_2); + scr->WriteConfigmemLock = WriteConfigmemLock_updi_2; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_updi_2); + scr->WriteIDmem = WriteIDmem_updi_3; + scr->WriteIDmem_len = sizeof(WriteIDmem_updi_3); + scr->ReadIDmem = ReadIDmem_updi_1; + scr->ReadIDmem_len = sizeof(ReadIDmem_updi_1); break; - case 114: /* AVR32SD32 */ - case 115: /* AVR64SD48 */ - scr->GetDeviceID = GetDeviceID_1; - scr->GetDeviceID_len = sizeof(GetDeviceID_1); - scr->WriteProgmem = WriteProgmem_6; - scr->WriteProgmem_len = sizeof(WriteProgmem_6); - scr->ReadProgmem = ReadProgmem_2; - scr->ReadProgmem_len = sizeof(ReadProgmem_2); - scr->WriteDataEEmem = WriteDataEEmem_5; - scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_5); - scr->ReadDataEEmem = ReadDataEEmem_2; - scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_2); - scr->WriteConfigmem = WriteConfigmem_4; - scr->WriteConfigmem_len = sizeof(WriteConfigmem_4); - scr->WriteIDmem = WriteIDmem_5; - scr->WriteIDmem_len = sizeof(WriteIDmem_5); - scr->ReadIDmem = ReadIDmem_0; - scr->ReadIDmem_len = sizeof(ReadIDmem_0); + case 101: /* AVR16EB14 */ + case 102: /* AVR16EB20 */ + case 103: /* AVR16EB28 */ + case 104: /* AVR16EB32 */ + scr->GetDeviceID = GetDeviceID_updi_1; + scr->GetDeviceID_len = sizeof(GetDeviceID_updi_1); + scr->WriteProgmem = WriteProgmem_updi_5; + scr->WriteProgmem_len = sizeof(WriteProgmem_updi_5); + scr->ReadProgmem = ReadProgmem_updi_0; + scr->ReadProgmem_len = sizeof(ReadProgmem_updi_0); + scr->WriteDataEEmem = WriteDataEEmem_updi_3; + scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_updi_3); + scr->ReadDataEEmem = ReadDataEEmem_updi_3; + scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_updi_3); + scr->WriteConfigmem = WriteConfigmem_updi_2; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_updi_2); + scr->WriteConfigmemFuse = WriteConfigmemFuse_updi_2; + scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_updi_2); + scr->WriteConfigmemLock = WriteConfigmemLock_updi_2; + scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_updi_2); + scr->WriteIDmem = WriteIDmem_updi_3; + scr->WriteIDmem_len = sizeof(WriteIDmem_updi_3); + scr->ReadIDmem = ReadIDmem_updi_1; + scr->ReadIDmem_len = sizeof(ReadIDmem_updi_1); break; } return 0; diff --git a/tools/scripts_decoder.py b/tools/scripts_decoder.py index 83c357465..9a58b076a 100644 --- a/tools/scripts_decoder.py +++ b/tools/scripts_decoder.py @@ -19,117 +19,73 @@ # along with this program. If not, see . # -# this is a small python sketch that tries to find the PICkit5_TP folder +# this is a small python skript that tries to find the PICkit5_TP folder # created by MPLAB X that contains the scripts.xml file. # Works on Windows and Linux (MacOS untested), as long as the default installation # folder was not changed. If it was changed, and the program is unable to locate # the scripts.xml file, you should be promted to enter a path. You can # either provide the path to the file, or to the directory providing the file. # -# This file contains some functions that were used in initial develeopment -# but are not needed anymore. However, they might provide useful, thus they -# can be enabled by setting "user_input" to 1. -# # The idea behind this program is to extract the sub-programs defined in the # script.xml. The original file has a size of about 300MB, containing a lot of -# redundand information as well as sub-programs for chips avrdude doesn't -# support, like ARM MCUs. -# This python scripts iterates through all functions, removing identical ones, +# redundand information (like the XML tags) as well as sub-programs for chips +# avrdude doesn't support, like ARM MCUs. +# This python script goes through all functions, removing identical ones, # and indexes those. The index is then used to connect the MCUs with those functions # so that the correct array pointers can be loaded. # Warning: If you run this python program, the previously generated files will be # overwritten without warning. # -# As the XML file is fairly large, a machine with at least 16GB RAM is recommended import os, fnmatch, mmap from pathlib import Path -from xml.etree import ElementTree as ET -user_input = 0 # The list of functions, as a Python Dictionary, that will be used by avr-dude # The complete list of available functions can be found below -c_dict = { - "EnterProgMode" : [], - "EnterProgModeHvSp" : [], # High Voltage Pulse on UPDI line - "EnterProgModeHvSpRst" : [], # High Voltage Pulse on Reset Pin - "EnterProgModeHvUpt" : [], - "ExitProgMode" : [], - "SetSpeed" : [], - "GetDeviceID" : [], - "EraseChip" : [], - "WriteProgmem" : [], - "ReadProgmem" : [], - "WriteDataEEmem" : [], - "ReadDataEEmem" : [], - "WriteCSreg" : [], - "ReadCSreg" : [], - "WriteMem8" : [], - "ReadMem8" : [], - "WriteConfigmem" : [], - "ReadConfigmem" : [], - "WriteIDmem" : [], - "ReadIDmem" : [], - "ReadSIB" : [], -} - -# List of MCUs that should not end up in the lookup-table, -# preferably only those that are known not be released in the future -mcu_blacklist = [ - "AVR16DV14", "AVR16DV20" +c_func_list = [ + # Started with UPDI + "EnterProgMode", + "EnterProgModeHvSp", # High Voltage Pulse on UPDI line + "EnterProgModeHvSpRst", # High Voltage Pulse on Reset Pin + "EnterProgModeHvUpt", # User Power Toggle + "ExitProgMode", + "SetSpeed", + "GetDeviceID", + "EraseChip", + "WriteProgmem", + "ReadProgmem", + "WriteDataEEmem", + "ReadDataEEmem", + "WriteCSreg", + "ReadCSreg", + "WriteMem8", + "ReadMem8", + "WriteConfigmem", + "WriteConfigmemFuse", + "WriteConfigmemLock", + "ReadConfigmem", + "ReadConfigmemFuse", + "ReadConfigmemLock", + "WriteIDmem", + "ReadIDmem", + "ReadSIB", + + # Added from dW + "switchtoISP", + "ReadMemIO", + "WriteMemIO", + + # Added from ISP + "ReadCalibrationByte", + + # Added from JTAG/PDI + "WriteSRAM", + "ReadSRAM", ] -# A complete list of Functions defined in the scripts.xml -# This string was used to generate an intermediate python file -dict_header = \ -''' -func_dict = { - "EnterProgMode" : [], - "EnterProgModeHvSp" : [], - "EnterProgModeHvSpRst" : [], - "EnterProgModeHvUpt" : [], - "ExitProgMode" : [], - "SetSpeed" : [], - "GetDeviceID" : [], - "EraseChip" : [], - "WriteProgmem" : [], - "ReadProgmem" : [], - "WriteDataEEmem" : [], - "ReadDataEEmem" : [], - "WriteConfigmem" : [], - "WriteConfigmemFuse" : [], - "WriteConfigmemLock" : [], - "ReadConfigmem" : [], - "ReadConfigmemFuse" : [], - "ReadConfigmemLock" : [], - "WriteIDmem" : [], - "ReadIDmem" : [], - "WriteCSreg" : [], - "ReadCSreg" : [], - "WriteMem8" : [], - "WriteMem16" : [], - "ReadMem8" : [], - "ReadMem16" : [], - "ReadSIB" : [], - "HoldInReset" : [], - "ReleaseFromReset" : [], - "EnterDebugMode" : [], - "EnterDebugModeHvSp" : [], - "EnterDebugModeHvSpRst" : [], - "EnterDebugModeHvUpt" : [], - "ExitDebugMode" : [], - "SetPC" : [], - "GetPC" : [], - "Run" : [], - "Halt" : [], - "DebugReset" : [], - "GetHaltStatus" : [], - "SingleStep" : [], - "SetHWBP" : [], - "ClearHWBP" : [], -}\n -''' +# List of MCUs that are supported by avrdude, extracted from the .conf file +mcu_list = [] import platform @@ -141,155 +97,13 @@ print(cache_dir) -# Tries to locate the xml file in a known location -def find_xml(): - home_dir = str(Path.home()) - print("Home Path: {0}".format(home_dir)) - if home_dir == None: - return - home_dir = os.path.join(home_dir, ".mchp_packs", "Microchip") - home_dir_A = os.path.join(home_dir, "PICkit5_TP") - result = [] - for root, dirs, files in os.walk(home_dir_A): - for name in files: - if fnmatch.fnmatch(name, "scripts.xml"): - result.append(os.path.join(root, name)) - - print("List of scripts.xml files:") - print(result) - return result[-1] - # EOF - -# extracts only the functions from the scripts.xml that end with "UPDI" -def cache_xml(file): - if file == None: - return - print("Opening file {0}".format(file)) - global cache_dir - origin_tree = ET.parse(file) - origin_root = origin_tree.getroot() - work_root = ET.Element("scripts") - old_chip_name = "" - print("List of UPDI MCUs:") - for script in origin_root.findall('script'): - function_name = script[0].text # the function name is always on the first place - if (function_name.endswith("UPDI")): - chip_name = script[1].text - if (old_chip_name != chip_name): - print(chip_name) - old_chip_name = chip_name - work_root.append(script) # copy UPDI entries to our working element - - - work_tree = ET.ElementTree(work_root) - work_tree.write(os.path.join(cache_dir, "scripts_updi.xml")) - # EOF - - -# generates a python file out of the reduced scripts.xml file -def decode_xml_cache(xml_path): - global cache_dir - dict_path = os.path.join(cache_dir, "scripts_dict.py") - - xml_tree = ET.parse(xml_path) - xml_root = xml_tree.getroot() - - if (os.path.exists(dict_path)): - os.remove(dict_path) - - with open(dict_path, 'w') as dict_file: - dict_list = [] - dict_iterator = -1 - old_chip_name = "" - old_function_name = "" - for script in xml_root: - function_string = "" - function_name = script[0].text - chip_name = script[1].text - if (old_chip_name != chip_name): - if (dict_iterator >= 0): - dict_list[dict_iterator] += " },\n" # trailing bracket - print("{0} generated".format(old_chip_name)) - - dict_iterator += 1 - dict_list.append("") - dict_list[dict_iterator] = " \"{0}\" : ".format(chip_name) # thisdict : { - dict_list[dict_iterator] += "{\n" - old_chip_name = chip_name - - if (old_function_name != function_name): - dict_list[dict_iterator] += " \"{0}\" : ".format(function_name[0:-5]) # "function_name" : - old_function_name = function_name - - scrbytes = script[3] - for bytes in scrbytes: - function_string += bytes.text - function_string += ", " - - dict_list[dict_iterator] += "[{0}],\n".format(function_string[0:-2]) # "function string", - - dict_file.write(dict_header) - dict_file.write("scripts = {\n") - for x in range (dict_iterator): - dict_file.write(dict_list[x]) # store decoded dictionary - dict_file.write("}") - - - - -# tries to reduce file size, reuires the previous function to be executed -# in order to provide the python file -def optimize_dict(): - import scripts_cache.scripts_dict as dict - global cache_dir - for chip_name in dict.scripts: # Go through every chip - for func_name in dict.scripts[chip_name]: # Go through every function for each chip - if func_name in dict.func_dict: # Only handle the function if we care - func_array = dict.func_dict[func_name] # Use the array - position = -1 - for x in range (len(func_array)): # go through - if func_array[x] == dict.scripts[chip_name][func_name]: - position = x - break - if position >= 0: - dict.scripts[chip_name][func_name] = position - else: - func_array.append(dict.scripts[chip_name][func_name]) - dict.scripts[chip_name][func_name] = position + 1 - - lut_path = os.path.join(cache_dir, "scripts_lut.py") - if (os.path.exists(lut_path)): - os.remove(lut_path) - - with open(lut_path, 'w') as lut_file: # Create file - lut_file.write("func_dict = {\n") # start with function look-up Table - for func in dict.func_dict: - lut_file.write(" \"{0}\" : [\n".format(func)) # function start - func_array = dict.func_dict[func] - - for array_elem in func_array: # function list start - func_string = " [" - for i in array_elem: # iterate through the sub-function elements - func_string += "0x{0:02X}, ".format(i) # format for readability - func_string += "],\n" # end of sub-function - lut_file.write(func_string) # write to file - lut_file.write(" ],\n") # end of function - lut_file.write("}\n\n\n") # end of lut - - lut_file.write("scripts = {\n") - for chip_name in dict.scripts: # Go through every chip - lut_file.write(" \""+ chip_name + "\" : {\n") - for func_name in dict.scripts[chip_name]: # Go through every function for each chip - lut_file.write(" \"{0}\" : {1},\n".format(func_name, dict.scripts[chip_name][func_name])) - lut_file.write(" },\n") - lut_file.write("}") # close dict - print("done") - #EOF - # Beginning of C and H Files common_header = \ -'''/* This file was auto-generated by scripts_decoder.py, any changes will be overwritten */ +'''\ +/* This file was auto-generated by scripts_decoder.py. + * Any changes will be overwritten on regeneration + */ /* * avrdude - A Downloader/Uploader for AVR device programmers @@ -312,7 +126,7 @@ def optimize_dict(): ''' # generates the h-file. generates the struct definition -def generate_h_file(c_dict, file_dir): +def generate_h_file(c_funcs, file_dir): h_header = \ ''' #ifndef pickit5_lut_h @@ -331,7 +145,12 @@ def generate_h_file(c_dict, file_dir): typedef struct avr_script_lut SCRIPT; const unsigned char * get_devid_script_by_nvm_ver(unsigned char version); +int get_pickit_dw_script(SCRIPT *scr, const char *partdesc); +int get_pickit_isp_script(SCRIPT *scr, const char *partdesc); +int get_pickit_jtag_script(SCRIPT *scr, const char *partdesc); int get_pickit_updi_script(SCRIPT *scr, const char *partdesc); +int get_pickit_pdi_script(SCRIPT *scr, const char *partdesc); +int get_pickit_tpi_script(SCRIPT *scr, const char *partdesc); #ifdef __cplusplus } @@ -346,10 +165,11 @@ def generate_h_file(c_dict, file_dir): h_lut_path = os.path.join(file_dir, "pickit5_lut.h") # first - handle defining the structure if (os.path.exists(h_lut_path)): os.remove(h_lut_path) + with open(h_lut_path, 'w') as h_file: h_file.write(common_header) h_file.write(h_header) - for func_name in c_dict: + for func_name in c_funcs: h_file.write(" const unsigned char *{0};\n unsigned int {0}_len;\n".format(func_name)) h_file.write(h_trailer) print("h-File generated") @@ -357,319 +177,299 @@ def generate_h_file(c_dict, file_dir): -# generates the c-file out of a previously generated python file -def generate_c_file(c_dict, file_dir): - import scripts_cache.scripts_lut as lut - - if file_dir is None: + +# Tries to locate the xml file in a known location +def find_xml(): + home_dir = str(Path.home()) + print("Home Path: {0}".format(home_dir)) + if home_dir == None: return - - c_lut_path = os.path.join(file_dir, "pickit5_lut.c") - if (os.path.exists(c_lut_path)): - os.remove(c_lut_path) - with open(c_lut_path, 'w') as c_file: - non_unique_func = [] - c_file.write("/* this file was auto-generated */\n") - c_file.write("#include \n") - c_file.write("#include \n") - c_file.write("#include \n") - c_file.write("#include \"pickit5_lut.h\"\n\n\n") - struct_init_func = "" - struct_init_len = "" - for func_name in lut.func_dict: # for each function in our database - if func_name in c_dict: # if the function exists in our c-list - function = lut.func_dict[func_name] # load data associated with the function - array_iterator = 0 - for array in function: # for each array in function - array_str = "const unsigned char {0}_{1}[{2}]".format(func_name, array_iterator, len(array)) - array_str += " = {\n " # begin array - for i in range (len(array)): # go through every byte - array_str += "0x{0:02x}, ".format(array[i]) # and generate String - array_str += "\n};\n" # complete array - array_iterator += 1 - c_file.write(array_str) - - if array_iterator == 1: - struct_init_func += " .{0} = {0}_0,\n".format(func_name) - struct_init_len += " .{0}_len = sizeof({0}_0),\n".format(func_name) - else: - struct_init_func += " .{0} = NULL,\n".format(func_name) - struct_init_len += " .{0}_len = 0,\n".format(func_name) - non_unique_func.append(func_name) - - - c_file.write("\n\n\nstruct avr_script_lut avr_scripts = {\n") - c_file.write(struct_init_func) - c_file.write(struct_init_len) - c_file.write("};\n\n\n") - - chip_lut_str = "const char *chip_lut[] = {\n " - chip_name_iterator = 0 - for chip_name in lut.scripts: - chip_lut_str += "\"" - chip_lut_str += chip_name - chip_lut_str += "\", " - chip_name_iterator += 1 - if chip_name_iterator % 8 == 0: - chip_lut_str += "\n " - chip_lut_str += "\n};\n\n\n" - c_file.write(chip_lut_str) - - c_func_str = "struct avr_script_lut* get_pickit_script(const char* partdesc) { \n" - c_func_str += " int namepos = -1;\n" - c_func_str += " for (int i = 0; i < {0}; i++)".format(chip_name_iterator) - c_func_str += " {\n" - c_func_str += " if (strncmp(chip_lut[i], partdesc, 10) == 0) {\n" - c_func_str += " namepos = i;\n break;\n }\n }\n" - c_func_str += " if (namepos == -1) {\n return NULL;\n }\n" - c_file.write(c_func_str) - - switch_iterator = 0 - c_file.write(" switch (namepos) {\n") - for chip_name in lut.scripts: - case_str = " case {0}:\n".format(switch_iterator) - chip_func = lut.scripts[chip_name] - for func_lut in chip_func: - if func_lut in non_unique_func: - case_str += " avr_scripts.{0} = {0}_{1};\n".format(func_lut, chip_func[func_lut]) - case_str += " avr_scripts.{0}_len = sizeof({0}_{1});\n".format(func_lut, chip_func[func_lut]) - case_str += " break;\n" - switch_iterator += 1 - c_file.write(case_str) - c_file.write(" }\n return &avr_scripts;\n }") - print("c-File generated") - #EOF + home_dir = os.path.join(home_dir, ".mchp_packs", "Microchip") + home_dir_A = os.path.join(home_dir, "PICkit5_TP") + result = [] + for root, dirs, files in os.walk(home_dir_A): + for name in files: + if fnmatch.fnmatch(name, "scripts.xml"): + result.append(os.path.join(root, name)) + + print("List of scripts.xml files:") + print(result) + return result[-1] + # EOF -def convert_to_c(c_dict, file_dir): - - generate_h_file(c_dict, file_dir) - generate_c_file(c_dict, file_dir) - #EOF +# Example of a function declaration in the XML-File +# # A sum of the previous functions, generating the c/h files # without needing any intermediate files -def convert_xml(xml_path, c_dict): +def convert_xml(xml_path, c_funcs): if xml_path == None: print("No Path to XML file provided") return - - mcu_dict = dict() + + program_iface = { + "UPDI": dict(), + "PDI": dict(), + "dW": dict(), + "ISP": dict(), + "TPI": dict(), + "JTAG": dict() + } + function_dict = { + "UPDI": dict(), + "PDI": dict(), + "dW": dict(), + "ISP": dict(), + "TPI": dict(), + "JTAG": dict() + } # Prepare directories parent_dir = os.getcwd() src_dir = os.path.join(parent_dir, "src") + conf_path = os.path.join(src_dir, "avrdude.conf.in") print("Opening file {0}".format(xml_path)) print("Parent Dir: {0}".format(parent_dir)) print("Src directory: {0}".format(src_dir)) - # open XML file - origin_tree = ET.parse(xml_path) - origin_root = origin_tree.getroot() - work_root = ET.Element("scripts") - print ("XML File loaded") - - # scan scripts file - for script in origin_root.findall('script'): - function_name = script[0].text # the function name is always on the first place - if (function_name.endswith("UPDI")): # We're only intrested in UPDI functions - function_name = function_name[0:-5] # remove "_UPDI" from function name - if (function_name in c_dict): # filter out unneded functions - chip_name = script[1].text # get chip name - if (chip_name in mcu_blacklist): # filter out chips in blacklist - continue - if (chip_name not in mcu_dict): - mcu_dict[chip_name] = dict() - if (function_name not in mcu_dict[chip_name]): - mcu_dict[chip_name][function_name] = [] - scrbytes = script[3] - for bytes in scrbytes: - mcu_dict[chip_name][function_name].append(int(bytes.text, 16)) - # the mcu dict has following layout "mcu_name" : "function1" : [], "function2" : [] - print("XML File processed") - - # reorder mcu_dict to a func_dict - func_dict = dict() - for mcu_name in mcu_dict: # Go through every MCU - for function_name in mcu_dict[mcu_name]: # Go through every Function for every CPU - if (function_name not in func_dict): - func_dict[function_name] = [] + + # create h-File (make sure to provide all function definitions) + generate_h_file(c_funcs, src_dir) + + with open(conf_path, "r") as conf_file: + while True: + line = conf_file.readline() + if line == "": + print("List of MCUs created with {0} devices".format(len(mcu_list))) + break # Exit on end of file + if line.startswith("part"): + desc = conf_file.readline().split('"', 3)[1] + if desc.lower().find("common") < 0: # Skip any desc that contains the word "common" + mcu_list.append(desc) + + + with open(xml_path, "r") as xml_script: + print ("XML File opened") + scr_bytes_buffer = bytearray(2048) # allocate 2kB of memory in advance + while True: + line = xml_script.readline() # go line by line, hopefully reducing memory usage compared to readlines() + if line == "": + break # exit when End of file + + if line.startswith(" "): + function = line[14:] # remove " " + function = function.split("<", 2)[0] # remove trailing element + + scr_header = xml_script.readlines(3) # read 3 more lines + processor = scr_header[0][15:] # remove " " + chip_name = processor.split("<", 2)[0] # remove trailing element - funct_bytes = mcu_dict[mcu_name][function_name] # get Function bytes - entries = len(func_dict[function_name]) - for x in range (entries + 1): # try to find an existing entry - if x == entries: # if we reached the end - func_dict[function_name].append(funct_bytes) # add an entry to our dict - mcu_dict[mcu_name][function_name] = x # remember the postion in dict - break - if func_dict[function_name][x] == funct_bytes: # if match found - mcu_dict[mcu_name][function_name] = x # remember the postion - break - # the funct dict has following layout: "function1" : [[], []], "function2" : [[], []], - # the mcu dict has following layout "mcu_name" : "function1" : 1, "function2" : 0 - - # create h-File - generate_h_file(c_dict, src_dir) + try: + function_name, programming_mode = function.split('_') + except: + continue # If the function did not contain any '_', continue to next line + + if programming_mode not in ["UPDI", "PDI", "dW", "ISP", "TPI", "JTAG"]: + continue # Filters out "FPGA" and other edge cases + + if function_name not in c_funcs: + continue # Filter out debug Functions. Do that before mcu check, as there are over 300 MCUs and less then 50 functions + + if chip_name not in mcu_list: + continue # don't handle chips avrdude doesn't know anyway + + func_bytes = None + counter = 0 + while True: + byte = xml_script.readline() + if (byte.startswith(" ")): # 6 spaces is already unique enough + scr_bytes_buffer[counter] = int(byte[14:16], 16) # only handle the value + counter += 1 + elif (byte.startswith(" ")): # done with the list + func_bytes = bytes(scr_bytes_buffer[:counter]) # create an immutable bytes array + break + + if func_bytes == None: + continue # continue with next chip if somethin went wrong + + if function_name not in function_dict[programming_mode].keys(): + function_dict[programming_mode][function_name] = [] + + if func_bytes not in function_dict[programming_mode][function_name]: + function_dict[programming_mode][function_name].append(func_bytes) + + index = function_dict[programming_mode][function_name].index(func_bytes) + + #function_dict = { + # "UPDI": { + # "EnterProgMode" : [bytes_0, bytes_1]}, + # "SetSpeed" : [bytes_2, bytes_3]} + # } + #} + + + if chip_name not in program_iface[programming_mode]: + program_iface[programming_mode][chip_name] = [(function_name, index)] + #print("Added to " + programming_mode + ": " + chip_name) + else: + program_iface[programming_mode][chip_name].append((function_name, index)) + #program_iface = { + # "UPDI": { + # "Attiny1614": [ + # ("EnterProgMode", 0), + # ("ExitProgMode", 0), + # ("...", 1), + # ] + # } + #} + # /if starts with + # /while True + # /with open + + print("XML File processed") # create c-File global common_header - c_lut_path = os.path.join(src_dir, "pickit5_updi_lut.c") - if (os.path.exists(c_lut_path)): - os.remove(c_lut_path) - with open(c_lut_path, 'w') as c_file: - non_unique_func = [] - c_file.write(common_header) - c_file.write("#include \n") - c_file.write("#include \n") - c_file.write("#include \n") - c_file.write("#include \"pickit5_lut.h\"\n\n\n") - - # Generate the arrays for the functions - struct_init_func = "" - struct_init_len = "" - for func_name in func_dict: # for each function in our database - function = func_dict[func_name] # load data associated with the function - array_iterator = 0 - for array in function: # for each array in function - array_str = "const unsigned char {0}_{1}[{2}]".format(func_name, array_iterator, len(array)) - array_str += " = {" # begin array - for i in range (len(array)): # go through every byte - if (i % 16 == 0): - array_str += "\n " # new line after 16 bytes - array_str += "0x{0:02x}, ".format(array[i]) # and generate String - array_str += "\n};\n\n" # complete array - array_iterator += 1 - c_file.write(array_str) - - if array_iterator == 1: - struct_init_func += " scr->{0} = {0}_0;\n".format(func_name) - struct_init_len += " scr->{0}_len = sizeof({0}_0);\n".format(func_name) - else: - struct_init_func += " scr->{0} = NULL;\n".format(func_name) - struct_init_len += " scr->{0}_len = 0;\n".format(func_name) - non_unique_func.append(func_name) - - - c_file.write("\n\n\nstatic void pickit_updi_script_init(SCRIPT *scr);\n") # declaration - c_file.write("static void pickit_updi_script_init(SCRIPT *scr) {\n") # definition - c_file.write(struct_init_func) - c_file.write("\n") # improve readability - c_file.write(struct_init_len) - c_file.write("}\n\n\n") - - # Lookup Table for Chip Names - chip_lut_str = "const char * const pickit5_updi_chip_lut[] = {\n " - chip_name_iterator = 0 - for chip_name in mcu_dict: - chip_lut_str += "\"" - chip_lut_str += chip_name - chip_lut_str += "\", " - chip_name_iterator += 1 - if chip_name_iterator % 8 == 0: - chip_lut_str += "\n " - chip_lut_str += "\n};\n\n\n" - c_file.write(chip_lut_str) - - # Provide a way to get the DevID Script by NVM Version stored in SIB - devid_str = "const unsigned char * get_devid_script_by_nvm_ver(unsigned char version) {\n" - devid_str += " if (version >= '0') version -= '0'; // allow chars\n" - devid_str += " if (version > 9) return NULL; // Not a valid number\n" - devid_str += " if (version <= 3) // tiny, mega, DA, DB, DD, EA\n" - devid_str += " return GetDeviceID_0;\n" - devid_str += " else // DU, EB\n" - devid_str += " return GetDeviceID_1;\n}\n\n" - c_file.write(devid_str) - - # Main Function to load the data into the structure - c_func_str = "int get_pickit_updi_script(SCRIPT *scr, const char* partdesc) { \n" - c_func_str += " if ((scr == NULL) || (partdesc == NULL))\n return -1;\n\n" - c_func_str += " int namepos = -1;\n" - c_func_str += " for (int i = 0; i < {0}; i++)".format(chip_name_iterator) - c_func_str += " {\n" - c_func_str += " if (strncmp(pickit5_updi_chip_lut[i], partdesc, 10) == 0) {\n" - c_func_str += " namepos = i;\n break;\n }\n }\n" - c_func_str += " if (namepos == -1) {\n return -2;\n }\n\n" - c_func_str += " pickit_updi_script_init(scr); // load common functions\n\n" - c_file.write(c_func_str) - - - switch_iterator = 0 - c_file.write(" switch (namepos) {\n") - case_str_list = [] - break_str_list = [] - for chip_name in mcu_dict: - case_str_list.append("") - break_str_list.append("") - case_str_list[switch_iterator] = " case {0}: /* {1} */\n".format(switch_iterator, chip_name) - chip_func = mcu_dict[chip_name] - for func_lut in chip_func: - if func_lut in non_unique_func: - break_str_list[switch_iterator] += " scr->{0} = {0}_{1};\n".format(func_lut, chip_func[func_lut]) - break_str_list[switch_iterator] += " scr->{0}_len = sizeof({0}_{1});\n".format(func_lut, chip_func[func_lut]) - break_str_list[switch_iterator] += " break;\n" - switch_iterator += 1 - - - for x in range (0, switch_iterator): - if (case_str_list[x] != ""): # ignore already "filtered" out cases - file_str = case_str_list[x] # start with a case - temp_str = break_str_list[x] # buffer the content of the case - for y in range(x + 1, switch_iterator): # go through all future entries - if temp_str == break_str_list[y]: # if we find one that is identical - file_str += case_str_list[y] # add it to the case at the beginning - case_str_list[y] = "" # clear case entry - break_str_list[y] = "" # clear content entry to speed up filtering - file_str += temp_str # add the content of the case - c_file.write(file_str) + for prog_iface, prog_mcu_list in program_iface.items(): + lower_prog_iface = prog_iface.lower() + c_lut_path = os.path.join(src_dir, "pickit5_lut_" + lower_prog_iface + ".c") + if (os.path.exists(c_lut_path)): + os.remove(c_lut_path) + with open(c_lut_path, 'w') as c_file: + c_file.write(common_header) + c_file.write("#include \n") + c_file.write("#include \n") + c_file.write("#include \n") + c_file.write("#include \"pickit5_lut.h\"\n\n\n") + + struct_init_func = "" + struct_init_len = "" + common_func = [] # List of Functions that exist once + + for (func_name, func_array_bytes) in function_dict[prog_iface].items(): + for (array_iter, func_bytes) in enumerate(func_array_bytes): + func_length = len(func_bytes) + c_file.write("const unsigned char {0}_{1}_{2}[{3}]".format( + func_name, lower_prog_iface, array_iter, func_length) + " = {") + num_line = " " + for (iter, byte) in enumerate(func_bytes): # go through every byte + if (iter % 16 == 0): + c_file.write(num_line) # new line after 16 bytes + num_line = "\n " + num_line += "0x{0:02x}, ".format(byte) # and generate String + c_file.write(num_line + "\n};\n\n") # complete array + + if len(func_array_bytes) == 1: # look for common function + struct_init_func += " scr->{0} = {0}_{1}_0;\n".format(func_name, lower_prog_iface) + struct_init_len += " scr->{0}_len = sizeof({0}_{1}_0);\n".format(func_name, lower_prog_iface) + common_func.append(func_name) + #else: # is done by a memset + # struct_init_func += " scr->{0} = NULL;\n".format(func_name) + # struct_init_len += " scr->{0}_len = 0;\n".format(func_name) + + # EOFL + + + c_file.write("\n\n\nstatic void pickit_{0}_script_init(SCRIPT *scr);\n".format(lower_prog_iface)) # declaration + c_file.write("static void pickit_{0}_script_init(SCRIPT *scr)".format(lower_prog_iface) + " {\n") # definition + c_file.write(" memset(scr, 0x00, sizeof(SCRIPT)); // Make sure everything is NULL\n\n") + c_file.write(struct_init_func) + c_file.write("\n") # improve readability + c_file.write(struct_init_len) + c_file.write("}\n\n\n") + + c_file.write("const char * const pickit5_{0}_chip_lut[]".format(lower_prog_iface) + " = {") + chip_line = " " + for (iter, chip_name) in enumerate(prog_mcu_list.keys()): # go through every chip + if (iter % 8 == 0): + c_file.write(chip_line) # new line after 8 Chips + chip_line = "\n " + chip_line += "{0:>16}, ".format( '"' + chip_name + '"') # and generate String + c_file.write(chip_line + "\n};\n\n") # complete array + + + if (prog_iface == "UPDI"): + c_file.write("const unsigned char * get_devid_script_by_nvm_ver(unsigned char version) {\n") + c_file.write(" if (version >= '0') version -= '0'; // allow chars\n") + c_file.write(" if (version > 9) return NULL; // Not a valid number\n") + c_file.write(" if (version <= 3) // tiny, mega, DA, DB, DD, EA\n") + c_file.write(" return GetDeviceID_updi_0;\n") + c_file.write(" else // DU, EB\n") + c_file.write(" return GetDeviceID_updi_1;\n}\n\n") + + + c_file.write("int get_pickit_{0}_script(SCRIPT *scr, const char* partdesc)".format(lower_prog_iface) + " {\n") + c_file.write(" if ((scr == NULL) || (partdesc == NULL)) {\n return -1;\n }\n") + c_file.write(" int namepos = -1;\n") + c_file.write(" for (int i = 0; i < {0}; i++)".format(len(prog_mcu_list.keys())) + " {\n") + c_file.write(" if (strncmp(pickit5_{0}_chip_lut[i], partdesc, 10) == 0)".format(lower_prog_iface) + " {\n") + c_file.write(" namepos = i;\n break;\n }\n }\n") + c_file.write(" if (namepos == -1) {\n return -2;\n }\n\n") + c_file.write(" pickit_{0}_script_init(scr); // load common functions\n\n".format(lower_prog_iface)) + + case_list = [] + case_func_list = [] + #print(common_func) + c_file.write(" switch (namepos) {\n") + for (switch_iterator, (chip_name, functions)) in enumerate(prog_mcu_list.items()): + new_case = " case {0}: /* {1} */\n".format(switch_iterator, chip_name) + new_func_str = "" + + for func_name, func_num in functions: # generate list of unique function assignments + if func_name in common_func: + continue # skip common functions, they were set in _init() + new_func_str += "{0}_{1}_{2}\n".format(func_name, lower_prog_iface, func_num) + + + if new_func_str not in case_func_list: # Check if there is an already existing function set + case_list.append(new_case) + case_func_list.append(new_func_str) + else: # if it exists, figure out the index at which to add the case + case_list[case_func_list.index(new_func_str)] += new_case + + for (case_str, func_list) in zip(case_list, case_func_list): + c_file.write(case_str) + func_list = func_list.split("\n")[:-1] # Remove last Element that will be an empty string + for func in func_list: + func_name = func.split("_")[0] + c_file.write(" scr->{0} = {1};\n".format(func_name, func)) + c_file.write(" scr->{0}_len = sizeof({1});\n".format(func_name, func)) + c_file.write(" break;\n") + + c_file.write(" }\n return 0;\n}") + # End of switch case + print("finished " + prog_iface) - c_file.write(" }\n return 0;\n}") + print("c-File generated") pass -if not user_input: - xml_path = find_xml() - if xml_path == None: - print("Unable to find scripts.xml in the default location.") - print("Please Enter a Path to the File or Directory:") - xml_path = input(">") - if (os.path.isdir(xml_path)): - os.path.join(xml_path, "scripts.xml") - if (os.path.exists(xml_path) == False): - print("File not found, exiting") - quit() - convert_xml(xml_path, c_dict) - quit() - - -while user_input: - user_in = input(">") - - if (user_in == "cache"): - xml_path = find_xml() - cache_xml(xml_path) - elif (user_in == "decode"): - xml_path = os.path.join(cache_dir, "scripts_updi.xml") - decode_xml_cache(xml_path) - elif (user_in == "optimize"): - optimize_dict() - elif (user_in == "cfy"): - convert_to_c(c_dict, cache_dir) - elif (user_in == "dude"): - xml_path = find_xml() - if xml_path == None: - print("Unable to find scripts.xml in the default location.") - print("Please Enter a Path to the File or Directory:") - xml_path = input(">") - if (os.path.isdir(xml_path)): - os.path.join(xml_path, "scripts.xml") - if (os.path.exists(xml_path) == False): - print("File not found, exiting") - quit() - convert_xml(xml_path, c_dict) +xml_path = find_xml() +if xml_path == None: + print("Unable to find scripts.xml in the default location.") + print("Please Enter a Path to the File or Directory:") + xml_path = input(">") + if (os.path.isdir(xml_path)): + os.path.join(xml_path, "scripts.xml") + if (os.path.exists(xml_path) == False): + print("File not found, exiting") quit() - pass +convert_xml(xml_path, c_func_list) +quit() From 74a6e8ac5602493b8e42a1d8ca4d3919d803ad5f Mon Sep 17 00:00:00 2001 From: MX682X <58419867+MX682X@users.noreply.github.com> Date: Sat, 23 Nov 2024 22:30:08 +0100 Subject: [PATCH 2/6] a little optimization --- src/pickit5.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pickit5.c b/src/pickit5.c index 0b2a144d9..46954d773 100644 --- a/src/pickit5.c +++ b/src/pickit5.c @@ -682,9 +682,11 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { my.pk_op_mode = PK_OP_READY; my.dW_switched_isp = 0; - if(is_updi(pgm) && (pickit5_updi_init(pgm, p, v_target) < 0)) { - return -1; // UPDI got it's own init as it is well enough documented to select the - } else { // CLKDIV based on the voltage and requested baud + if(is_updi(pgm)) { // UPDI got it's own init as it is well enough documented to select the + if (pickit5_updi_init(pgm, p, v_target) < 0) { // CLKDIV based on the voltage and requested baud + return -1; + } + } else { double bitclock = pgm->bitclock; unsigned int baud = pgm->baudrate; @@ -712,8 +714,6 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { return -1; } } - - pickit5_program_enable(pgm, p); return 0; } From 02dc4729322cc6ba326afa6565a06f42d639ea27 Mon Sep 17 00:00:00 2001 From: MX682X <58419867+MX682X@users.noreply.github.com> Date: Sat, 23 Nov 2024 22:58:07 +0100 Subject: [PATCH 3/6] fixing up docs --- src/avrdude.1 | 8 ++++---- src/doc/avrdude.texi | 8 ++++---- src/pickit5.c | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/avrdude.1 b/src/avrdude.1 index 266ea99a5..6d0b6c893 100644 --- a/src/avrdude.1 +++ b/src/avrdude.1 @@ -239,13 +239,12 @@ The Atmel DFU bootloader is supported in both, FLIP protocol version 1 (AT90USB* and ATmega*U* devices), as well as version 2 (Xmega devices). See below for some hints about FLIP version 1 protocol behaviour. .Pp -The MPLAB(R) PICkit 4 and MPLAB(R) SNAP, are supported in JTAG, TPI, ISP, +The MPLAB(R) PICkit 4/5 and MPLAB(R) SNAP, are supported in JTAG, TPI, ISP, PDI and UPDI mode. The Curiosity Nano board is supported in UPDI mode. It is dubbed .Dq PICkit on Board , thus the name .Pa pkobn_updi . -The MPLAB(R) PICkit 5 is currently only supported in UPDI mode. .Pp SerialUPDI programmer implementation is based on Microchip's .Em pymcuprog Li https://github.com/microchip-pic-avr-tools/pymcuprog @@ -1610,8 +1609,9 @@ Show help menu and exit. Specify a voltage between 1.8 and 5.5 V that the programmer should supply to the target. If there is already a valid voltage applied to the VTG Pin, this setting will be ignored. When AVRDUDE detects an external voltage outside -of this range, it will terminate the operation. You can disable this by -setting the voltage to 0 V. +of this range, it will terminate the operation. You can disable this check by +setting the voltage to 0 V. If an XMEGA part was selected, a requested voltage +above 3.49 V will lead to an abort of operation. .It Ar hvupdi High-voltage UPDI programming is used to enable a UPDI pin that has previously been set to RESET or GPIO mode. Use -x hvupdi to enable high-voltage UPDI diff --git a/src/doc/avrdude.texi b/src/doc/avrdude.texi index 733ad4bbd..91c508e1d 100644 --- a/src/doc/avrdude.texi +++ b/src/doc/avrdude.texi @@ -400,11 +400,10 @@ See below for some hints about FLIP version 1 protocol behaviour. @cindex PICkit 4 @cindex PICkit 5 @cindex SNAP -The MPLAB(R) PICkit 4 and MPLAB(R) SNAP are supported in JTAG, TPI, ISP, PDI and UPDI mode. +The MPLAB(R) PICkit 4/5 and MPLAB(R) SNAP are supported in JTAG, TPI, ISP, PDI and UPDI mode. @cindex Curiosity nano The Curiosity Nano board is supported in UPDI mode. It is dubbed ``PICkit on Board'', thus the name @code{pkobn_updi}. -The MPLAB(R) PICkit 5 is currently only supported in UPDI mode. @cindex SerialUPDI SerialUPDI programmer implementation is based on Microchip's @@ -1338,8 +1337,9 @@ The PICkit 5 and PICkit 4 (PIC Mode) programmer can accept following extended pa Specify a voltage between 1.8 and 5.5@w{ }V that the programmer should supply to the target. If there is already a valid voltage applied to the VTG Pin, this setting will be ignored. When AVRDUDE detects an external voltage outside -of this range, it will terminate the operation. You can disable this by -setting the voltage to 0@w{ }V. +of this range, it will terminate the operation. You can disable this check by +setting the voltage to 0@w{ }V. If an XMEGA part was selected, a requested voltage +above 3.49@w{ }V will lead to an abort of operation. @item hvupdi High-voltage UPDI programming is used to enable a UPDI pin that has previously been set to RESET or GPIO mode. Use @code{-x hvupdi} to enable high-voltage UPDI diff --git a/src/pickit5.c b/src/pickit5.c index 46954d773..781041445 100644 --- a/src/pickit5.c +++ b/src/pickit5.c @@ -651,7 +651,7 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { } else if(my.power_source == POWER_SOURCE_INT) { pmsg_notice("no extenal Voltage detected; trying to supply from PICkit\n"); if(both_xmegajtag(pgm, p) || both_pdi(pgm, p)) { - if(my.target_voltage > 3.6) { + if(my.target_voltage > 3.49) { pmsg_error("xmega part selected but requested voltage is over 3.6V, aborting."); return -1; } From fbffbf7a1ab4e3c6c6d03087252dd4a2b9ece746 Mon Sep 17 00:00:00 2001 From: MX682X <58419867+MX682X@users.noreply.github.com> Date: Sat, 23 Nov 2024 23:18:56 +0100 Subject: [PATCH 4/6] fixing build for ARM64 (no bswap) --- src/pickit5.c | 29 +++++++++++++++++++---------- src/pickit5_lut_dw.c | 5 ----- tools/scripts_decoder.py | 4 ++-- 3 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/pickit5.c b/src/pickit5.c index 781041445..4be596363 100644 --- a/src/pickit5.c +++ b/src/pickit5.c @@ -804,13 +804,16 @@ static int pickit5_set_sck_period(const PROGRAMMER *pgm, double sckperiod) { const unsigned char *set_speed = my.scripts.SetSpeed; unsigned int set_speed_len = my.scripts.SetSpeed_len; unsigned char buf[4]; - if (set_speed_len > 0) { // debugWire is fun . . . - pickit5_uint32_to_array(buf, frq); - if(pickit5_send_script(pgm, SCR_CMD, set_speed, set_speed_len, buf, 4, 0) >= 0) { - if(pickit5_read_response(pgm) >= 0) - return 0; - } + if (set_speed == NULL) { // debugWire is fun . . . + return 0; // No script, to execute, return success + } + + pickit5_uint32_to_array(buf, frq); + if(pickit5_send_script(pgm, SCR_CMD, set_speed, set_speed_len, buf, 4, 0) >= 0) { + if(pickit5_read_response(pgm) >= 0) + return 0; } + pmsg_error("Failed to set speed.\n"); return -1; } @@ -1346,8 +1349,11 @@ static int pickit5_isp_write_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsi avr_set_bits(mem->op[AVR_OP_WRITE], (unsigned char*)&cmd); avr_set_addr(mem->op[AVR_OP_WRITE], (unsigned char*)&cmd, mem_fuse_offset(mem)); avr_set_input(mem->op[AVR_OP_WRITE], (unsigned char*)&cmd, value); - cmd = __builtin_bswap32(cmd); // Swap bitorder - pickit5_uint32_to_array(&write_fuse_isp[11], cmd); // fill programming command + + write_fuse_isp[14] = (uint8_t) cmd; // swap bitorder and fill array + write_fuse_isp[13] = (uint8_t) (cmd >> 8); + write_fuse_isp[12] = (uint8_t) (cmd >> 16); + write_fuse_isp[11] = (uint8_t) (cmd >> 24); if(pickit5_send_script_cmd(pgm, write_fuse_isp, write_fuse_isp_len, NULL, 0) < 0) { pmsg_error("Write Fuse Script failed"); @@ -1373,8 +1379,11 @@ static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsig unsigned int cmd; avr_set_bits(mem->op[AVR_OP_READ], (unsigned char*)&cmd); avr_set_addr(mem->op[AVR_OP_READ], (unsigned char*)&cmd, mem_fuse_offset(mem)); - cmd = __builtin_bswap32(cmd); // Swap bitorder - pickit5_uint32_to_array(&read_fuse_isp[11], cmd); // fill programming command + + read_fuse_isp[14] = (uint8_t) cmd; // swap bitorder and fill array + read_fuse_isp[13] = (uint8_t) (cmd >> 8); + read_fuse_isp[12] = (uint8_t) (cmd >> 16); + read_fuse_isp[11] = (uint8_t) (cmd >> 24); if(pickit5_send_script_cmd(pgm, read_fuse_isp, read_fuse_isp_len, NULL, 0) < 0) { pmsg_error("Read Fuse Script failed"); diff --git a/src/pickit5_lut_dw.c b/src/pickit5_lut_dw.c index 8284c37ff..29b248c64 100644 --- a/src/pickit5_lut_dw.c +++ b/src/pickit5_lut_dw.c @@ -35,9 +35,6 @@ const unsigned char ExitProgMode_dw_0[31] = { 0x1e, 0x4e, 0x90, 0x0c, 0x30, 0x00, 0x00, 0x00, 0x1e, 0x40, 0x0c, 0x1e, 0x51, 0x1e, 0x4c, }; -const unsigned char SetSpeed_dw_0[0] = { -}; - const unsigned char EraseChip_dw_0[1] = { 0xaf, }; @@ -4199,7 +4196,6 @@ static void pickit_dw_script_init(SCRIPT *scr) { scr->EnterProgMode = EnterProgMode_dw_0; scr->ExitProgMode = ExitProgMode_dw_0; - scr->SetSpeed = SetSpeed_dw_0; scr->EraseChip = EraseChip_dw_0; scr->WriteMem8 = WriteMem8_dw_0; scr->switchtoISP = switchtoISP_dw_0; @@ -4207,7 +4203,6 @@ static void pickit_dw_script_init(SCRIPT *scr) { scr->EnterProgMode_len = sizeof(EnterProgMode_dw_0); scr->ExitProgMode_len = sizeof(ExitProgMode_dw_0); - scr->SetSpeed_len = sizeof(SetSpeed_dw_0); scr->EraseChip_len = sizeof(EraseChip_dw_0); scr->WriteMem8_len = sizeof(WriteMem8_dw_0); scr->switchtoISP_len = sizeof(switchtoISP_dw_0); diff --git a/tools/scripts_decoder.py b/tools/scripts_decoder.py index 9a58b076a..bafb3cd65 100644 --- a/tools/scripts_decoder.py +++ b/tools/scripts_decoder.py @@ -303,8 +303,8 @@ def convert_xml(xml_path, c_funcs): func_bytes = bytes(scr_bytes_buffer[:counter]) # create an immutable bytes array break - if func_bytes == None: - continue # continue with next chip if somethin went wrong + if func_bytes == None or len(func_bytes) == 0: + continue # continue with next chip if somethin went wrong or is empty (SetSpeed_dw) if function_name not in function_dict[programming_mode].keys(): function_dict[programming_mode][function_name] = [] From 7d82e58791e087c505d76f3dfd678e4d2562e3d9 Mon Sep 17 00:00:00 2001 From: MX682X <58419867+MX682X@users.noreply.github.com> Date: Mon, 25 Nov 2024 23:45:45 +0100 Subject: [PATCH 5/6] fixing prodsig on isp and jtag and other improvements --- src/pickit5.c | 297 +++++++++++++++++++++++++++++--------------------- 1 file changed, 175 insertions(+), 122 deletions(-) diff --git a/src/pickit5.c b/src/pickit5.c index 4be596363..f88fefe09 100644 --- a/src/pickit5.c +++ b/src/pickit5.c @@ -74,6 +74,7 @@ #define ERROR_USB_RECV -11 #define ERROR_SCRIPT_PARAM_SIZE -12 #define ERROR_BAD_RESPONSE -13 +#define ERROR_SCRIPT_EXECUTION -14 // Private data for this programmer struct pdata { @@ -97,7 +98,7 @@ struct pdata { unsigned char sernum_string[20]; // Buffer for display() sent by get_fw() char sib_string[32]; unsigned char txBuf[2048]; // Buffer for transfers - unsigned char rxBuf[2048]; + unsigned char rxBuf[2048]; // 2048 because of WriteEEmem_dw with 1728 bytes length SCRIPT scripts; }; @@ -147,7 +148,7 @@ static int pickit5_updi_read_cs_reg(const PROGRAMMER *pgm, unsigned int addr, un // ISP-specific static int pickit5_isp_write_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned char value); -static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned char *value); +static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned long addr, unsigned char *value); // debugWire-specific static int pickit5_dw_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char value); @@ -164,7 +165,7 @@ static int pickit5_tpi_write(const PROGRAMMER *pgm, const AVRPART *p, // JTAG-Specific static int pickit5_jtag_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char value); static int pickit5_jtag_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char *value); - +static int pickit5_jtag_read_configmem(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value); // Extra functions static int pickit5_get_fw_info(const PROGRAMMER *pgm); @@ -324,7 +325,7 @@ static int pickit5_send_script(const PROGRAMMER *pgm, unsigned int script_type, memcpy(&buf[preamble_len], script, script_len); int ret_val = serial_send(&pgm->fd, buf, message_len); - if (ret_val < 0) { + if(ret_val < 0) { pmsg_error("Sending script failed"); } return ret_val; @@ -338,12 +339,18 @@ static int pickit5_read_response(const PROGRAMMER *pgm) { return ERROR_USB_RECV; } unsigned int status = pickit5_array_to_uint32(&buf[0]); + unsigned int error_code = pickit5_array_to_uint32(&buf[16]); if(status != 0x0D) { - pmsg_error("unexpected response"); + pmsg_error("unexpected read response: 0x%2X\n", status); return ERROR_BAD_RESPONSE; } + if(error_code != 0x00) { + pmsg_error("Script Error returned: 0x%2X\n", error_code); + return ERROR_SCRIPT_EXECUTION; + } + return 0; } @@ -488,18 +495,46 @@ static void pickit5_enable(PROGRAMMER *pgm, const AVRPART *p) { // This will reduce overhead and increase speed AVRMEM *mem; - if((mem = avr_locate_sram(p))) - mem->page_size = mem->size < 256? mem->size: 256; - if((mem = avr_locate_eeprom(p))) - mem->page_size = mem->size < 32? mem->size: 32; - if((mem = avr_locate_sib(p))) { // This is mandatory as PICkit is reading all 32 bytes at once - mem->page_size = 32; - mem->readsize = 32; + if(is_updi(pgm)){ + if((mem = avr_locate_sram(p))) { + mem->page_size = mem->size < 256? mem->size : 256; + } + if((mem = avr_locate_eeprom(p))) { + mem->page_size = mem->size < 32? mem->size : 32; + } + if((mem = avr_locate_sib(p))) { // This is mandatory as PICkit is reading all 32 bytes at once + mem->page_size = 32; + mem->readsize = 32; + } } if(is_debugwire(pgm)) { if((mem = avr_locate_flash(p))) { - mem->page_size = 1024; // The Flash Write function needs 1600 bytes - mem->readsize = 1024; // this reduces overhead and speeds things up + mem->page_size = mem->size < 1024? mem->size : 1024; // The Flash Write function needs 1600 bytes + mem->readsize = mem->size < 1024? mem->size : 1024; // this reduces overhead and speeds things up + } + } + if(is_isp(pgm)){ + if((mem = avr_locate_flash(p))) { + mem->page_size = mem->size < 1024? mem->size : 1024; + mem->readsize = mem->size < 1024? mem->size : 1024; + } + } + if(both_xmegajtag(pgm, p) || both_pdi(pgm, p)) { + if((mem = avr_locate_flash(p))) { + mem->page_size = mem->size < 1024? mem->size : 1024; + mem->readsize = mem->size < 1024? mem->size : 1024; + } + if((mem = avr_locate_application(p))) { + mem->page_size = mem->size < 1024? mem->size : 1024; + mem->readsize = mem->size < 1024? mem->size : 1024; + } + if((mem = avr_locate_apptable(p))) { + mem->page_size = mem->size < 1024? mem->size : 1024; + mem->readsize = mem->size < 1024? mem->size : 1024; + } + if((mem = avr_locate_boot(p))) { + mem->page_size = mem->size < 1024? mem->size : 1024; + mem->readsize = mem->size < 1024? mem->size : 1024; } } } @@ -683,7 +718,7 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { my.dW_switched_isp = 0; if(is_updi(pgm)) { // UPDI got it's own init as it is well enough documented to select the - if (pickit5_updi_init(pgm, p, v_target) < 0) { // CLKDIV based on the voltage and requested baud + if(pickit5_updi_init(pgm, p, v_target) < 0) { // CLKDIV based on the voltage and requested baud return -1; } } else { @@ -764,7 +799,7 @@ static int pickit5_chip_erase(const PROGRAMMER *pgm, const AVRPART *p) { pmsg_debug("%s()\n", __func__); pickit5_program_enable(pgm, p); - if (is_debugwire(pgm)) { // dW Chip erase doesn't seem to be working, use ISP + if(is_debugwire(pgm)) { // dW Chip erase doesn't seem to be working, use ISP pickit5_dw_switch_to_isp(pgm, p); } const unsigned char *chip_erase = my.scripts.EraseChip; @@ -804,7 +839,7 @@ static int pickit5_set_sck_period(const PROGRAMMER *pgm, double sckperiod) { const unsigned char *set_speed = my.scripts.SetSpeed; unsigned int set_speed_len = my.scripts.SetSpeed_len; unsigned char buf[4]; - if (set_speed == NULL) { // debugWire is fun . . . + if(set_speed == NULL) { // debugWire is fun . . . return 0; // No script, to execute, return success } @@ -830,7 +865,7 @@ static int pickit5_write_byte(const PROGRAMMER *pgm, const AVRPART *p, rc = pickit5_jtag_write_fuse(pgm, p, mem, value); } } - if (rc == 0) { + if(rc == 0) { rc = pickit5_write_array(pgm, p, mem, addr, 1, &value); } @@ -843,13 +878,19 @@ static int pickit5_read_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value) { int rc = 0; if(mem_is_in_fuses(mem)) { - if(is_isp(pgm)){ - rc = pickit5_isp_read_fuse(pgm, mem, value); - } else if(is_debugwire(pgm)){ + if(is_isp(pgm)) { + rc = pickit5_isp_read_fuse(pgm, mem, addr, value); + } else if(is_debugwire(pgm)) { rc = pickit5_dw_read_fuse(pgm, p, mem, value); - } else if(both_jtag(pgm, p)){ + } else if(both_jtag(pgm, p)) { rc = pickit5_jtag_read_fuse(pgm, p, mem, value); } + } else if(mem_is_in_sigrow(mem)) { + if(is_isp(pgm)){ + rc = pickit5_isp_read_fuse(pgm, mem, addr, value); // this works by chance + } else if(both_jtag(pgm, p)) { + rc = pickit5_jtag_read_configmem(pgm, p, mem, addr, value); + } } if(rc == 0) { rc = pickit5_read_array(pgm, p, mem, addr, 1, value); @@ -993,7 +1034,7 @@ static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, if((mem_is_in_flash(mem) && (len == mem->page_size))) { write_bytes = my.scripts.WriteProgmem; write_bytes_len = my.scripts.WriteProgmem_len; - } else if (mem_is_io(mem) && my.scripts.WriteMemIO != NULL) { + } else if(mem_is_io(mem) && my.scripts.WriteMemIO != NULL) { write_bytes = my.scripts.WriteMemIO; write_bytes_len = my.scripts.WriteMemIO_len; } else if(mem_is_eeprom(mem) && my.scripts.WriteDataEEmem != NULL) { @@ -1002,7 +1043,7 @@ static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, } else if(mem_is_in_fuses(mem) && my.scripts.WriteConfigmemFuse != NULL) { write_bytes = my.scripts.WriteConfigmemFuse; write_bytes_len = my.scripts.WriteConfigmemFuse_len; - } else if (mem_is_lock(mem) && my.scripts.WriteConfigmemLock != NULL) { + } else if(mem_is_lock(mem) && my.scripts.WriteConfigmemLock != NULL) { write_bytes = my.scripts.WriteConfigmemLock; write_bytes_len = my.scripts.WriteConfigmemLock_len; } else if(mem_is_user_type(mem) && my.scripts.WriteIDmem != NULL) { @@ -1028,21 +1069,6 @@ static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, pickit5_uint32_to_array(&buf[4], len); int rc = pickit5_download_data(pgm, write_bytes, write_bytes_len, buf, 8, value, len); - if(rc == -1) { - pmsg_error("sending script failed\n"); - } - if(rc == -2) { - pmsg_error("reading script response failed\n"); - } - if(rc == -3) { - pmsg_error("failed when sending data\n"); - } - if(rc == -4) { - pmsg_error("error check failed\n"); - } - if(rc == -5) { - pmsg_error("sending script done message failed\n"); - } if(rc < 0) { return -1; } else { @@ -1087,10 +1113,10 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, if(mem_is_in_flash(mem)) { read_bytes = my.scripts.ReadProgmem; read_bytes_len = my.scripts.ReadProgmem_len; - } else if (mem_is_calibration(mem) && my.scripts.ReadCalibrationByte != NULL) { + } else if(mem_is_calibration(mem) && my.scripts.ReadCalibrationByte != NULL) { read_bytes = my.scripts.ReadCalibrationByte; read_bytes_len = my.scripts.ReadCalibrationByte_len; - } else if (mem_is_io(mem) && my.scripts.ReadMemIO != NULL) { + } else if(mem_is_io(mem) && my.scripts.ReadMemIO != NULL) { read_bytes = my.scripts.ReadMemIO; read_bytes_len = my.scripts.ReadMemIO_len; } else if(mem_is_eeprom(mem) && my.scripts.ReadDataEEmem != NULL) { @@ -1099,7 +1125,7 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, } else if(mem_is_in_fuses(mem) && my.scripts.ReadConfigmemFuse != NULL) { read_bytes = my.scripts.ReadConfigmemFuse; read_bytes_len = my.scripts.ReadConfigmemFuse_len; - } else if (mem_is_lock(mem) && my.scripts.ReadConfigmemLock != NULL) { + } else if(mem_is_lock(mem) && my.scripts.ReadConfigmemLock != NULL) { read_bytes = my.scripts.ReadConfigmemLock; read_bytes_len = my.scripts.ReadConfigmemLock_len; } else if(mem_is_user_type(mem) && my.scripts.ReadIDmem != NULL) { @@ -1136,16 +1162,6 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, pickit5_uint32_to_array(&buf[4], len); int rc = pickit5_upload_data(pgm, read_bytes, read_bytes_len, buf, 8, value, len); - - if(rc == -1) { - pmsg_error("sending script failed\n"); - } else if (rc == -2) { - pmsg_error("unexpected read response\n"); - } else if (rc == -3) { - pmsg_error("reading data memory failed\n"); - } else if (rc == -4) { - pmsg_error("sending script done message failed\n"); - } if(rc < 0) { return -1; @@ -1164,12 +1180,12 @@ static int pickit5_read_dev_id(const PROGRAMMER *pgm, const AVRPART *p) { if(my.nvm_version >= '0' && my.nvm_version <= '9') { read_id = get_devid_script_by_nvm_ver(my.nvm_version); // Only address changes, not length } - } else if (is_debugwire(pgm)) { + } else if(is_debugwire(pgm)) { unsigned char scr [] = {0x7D, 0x00, 0x00, 0x00}; // Not sure what this does unsigned int scr_len = sizeof(scr); pickit5_send_script_cmd(pgm, scr, scr_len, NULL, 0); pickit5_program_enable(pgm, p); - if (my.rxBuf[17] == 0x0E) { // Errors figured out during 6 hours of failing to get it to work + if(my.rxBuf[17] == 0x0E) { // Errors figured out during 6 hours of failing to get it to work if(my.rxBuf[16] == 0x10) { // with the serial/bootloader auto-reset circuit. pmsg_error("Debug Wire transmission error, Aborting. (Is the Pullup >=10 kOhms?)"); } else if(my.rxBuf[16] == 58) { @@ -1258,7 +1274,7 @@ static int pickit5_updi_write_cs_reg(const PROGRAMMER *pgm, unsigned int addr, u buf[0] = addr; buf[1] = value; - if (pickit5_send_script_cmd(pgm, write_cs, write_cs_len, buf, 2) < 0) { + if(pickit5_send_script_cmd(pgm, write_cs, write_cs_len, buf, 2) < 0) { pmsg_error("CS Reg write failed\n"); return -1; } @@ -1337,6 +1353,9 @@ static void pickit5_isp_switch_to_dw(const PROGRAMMER *pgm, const AVRPART *p) { } +// Original Script only supports doing all three at once, +// doing a custom script felt easier to integrate into avrdude, +// especially as we already have all the programming commands static int pickit5_isp_write_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned char value) { unsigned char write_fuse_isp [] = { 0x90, 0x00, 0x32, 0x00, 0x00, 0x00, // load 0x32 to r00 @@ -1362,14 +1381,11 @@ static int pickit5_isp_write_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsi return 1; } -static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned char *value) { - // Original Script only supports doing all three at once, - // doing a custom script felt easier to integrate into avrdude, - // especially as we already have all the programming commands - unsigned char read_fuse_isp [] = { +static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsigned long addr, unsigned char *value) { + unsigned char read_fuse_isp [] = { // as we pull the command from avrdude's conf file, this isn't limited to fuses 0x90, 0x00, 0x32, 0x00, 0x00, 0x00, // load 0x32 to r00 0x1E, 0x37, 0x00, // Enable Programming? - 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, // load programming command to r01 (set later) + 0x90, 0x01, 0x00, 0x00, 0x00, 0x00, // load programming command to r01 (set below) 0x9B, 0x02, 0x03, // load 0x03 to r02 0x9B, 0x03, 0x00, // load 0x00 to r03 0x1E, 0x35, 0x01, 0x02, 0x03, // Execute Command placed in r01 @@ -1378,7 +1394,7 @@ static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsig unsigned int read_fuse_isp_len = sizeof(read_fuse_isp); unsigned int cmd; avr_set_bits(mem->op[AVR_OP_READ], (unsigned char*)&cmd); - avr_set_addr(mem->op[AVR_OP_READ], (unsigned char*)&cmd, mem_fuse_offset(mem)); + avr_set_addr(mem->op[AVR_OP_READ], (unsigned char*)&cmd, addr + mem->offset); read_fuse_isp[14] = (uint8_t) cmd; // swap bitorder and fill array read_fuse_isp[13] = (uint8_t) (cmd >> 8); @@ -1389,13 +1405,14 @@ static int pickit5_isp_read_fuse(const PROGRAMMER *pgm, const AVRMEM *mem, unsig pmsg_error("Read Fuse Script failed"); return -1; } - if (0x01 != my.rxBuf[20]) { // length + if(0x01 != my.rxBuf[20]) { // length return -1; } *value = my.rxBuf[24]; // return value return 1; } + // debugWire cannot write nor read fuses, have to change to ISP for that. // Luckily, there is a custom script doing fuse access on ISP anyway, // so no need to switch between script sets @@ -1406,46 +1423,47 @@ static int pickit5_dw_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const static int pickit5_dw_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char *value) { pickit5_dw_switch_to_isp(pgm, p); - return pickit5_isp_read_fuse(pgm, mem, value); + return pickit5_isp_read_fuse(pgm, mem, 0, value); } // gave JTAG also a custom script to make integration into avrdude // easier. Also encodes all data in script itself instead of using paramters static int pickit5_jtag_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char value) { + unsigned char fuse_cmd = 0x33; // value for lfuse + unsigned char fuse_poll = 0x33; // value for lfuse + if(mem_is_hfuse(mem)) { + fuse_cmd = 0x37; + fuse_poll = 0x37; + } else if(mem_is_efuse(mem)) { + fuse_cmd = 0x3B; + fuse_poll = 0x37; + } + unsigned char write_fuse_jtag [] = { - 0x9b, 0x00, 0x33, // Parameter address to r04 - 0x9b, 0x0B, 0xFF, // Parameter value to r11 - 0x9b, 0x0a, 0x0f, // Set r10 to 0x0F - 0x9b, 0x02, 0x05, // Set r02 to 0x05 (PROG_COMMANDS) - 0x1e, 0x66, 0x02, // JTAG Write to Instruction Reg the value in r02 - 0x90, 0x02, 0x40, 0x23, 0x00, 0x00, // set r02 to 0x2340 (Enter Fuse Write) - 0x1e, 0x67, 0x02, 0x0a, // JTAG: Write to Data Reg the value in r02 with a length in r0A(16) - 0x90, 0x03, 0x00, 0x13, 0x00, 0x00, // set r03 to 0x1300 (Load Data Low Byte) - 0x6e, 0x03, 0x0b, // r03 += r11 (Set low byte) - 0x1e, 0x67, 0x03, 0x0a, // JTAG: Write to Data Reg the value in r03 with a length in r0A(16) - - 0x60, 0x01, 0x00, // Copy r00 to r01 (Write fuse command) - 0x68, 0x01, 0x08, // Left Shift r01 by 8 - 0x69, 0x00, 0x02, 0x00, 0x00, 0x00, // r00 -= 2 - 0x68, 0x00, 0x08, // Left Shift r00 by 8 - - 0x1e, 0x67, 0x01, 0x0a, // JTAG: Write to D../build_linux/src/avrdude -qq -c pickit5_jtag -xvtarg=4.5 -p m32u4 -Ueeprom:w:0x55:m -Ueeprom:w:0xaa:mata Reg the value in r01 with a length in r0A(16) - 0x1e, 0x67, 0x00, 0x0a, // JTAG: Write to Data Reg the value in r00 with a length in r0A(16) - 0x1e, 0x67, 0x01, 0x0a, // JTAG: Write to Data Reg the value in r01 with a length in r0A(16) - 0x1e, 0x67, 0x01, 0x0a, // JTAG: Write to Data Reg the value in r01 with a length in r0A(16) - 0xa2, // do - 0x1e, 0x6b, 0x01, 0x0a, // JTAG: Write/read Data Reg the value in r01 with a length in r0A(16) - 0xa5, 0x00, 0x02, 0x00, 0x00, // while ((temp_reg & 0x200) != 0x200) - 0x00, 0x02, 0x00, 0x00, 0x0a, 0x00, // + 0x9C, 0x00, 0x00, fuse_cmd, // Write fuse write command A to r00 + 0x9C, 0x06, 0x00, (fuse_cmd & 0xFD), // Write fuse write command B to r06 + 0x9C, 0x07, 0x00, fuse_poll, // Write fuse poll command to r07 + 0x9C, 0x01, value, 0x13, // Write new fuse value plus load command (0x13) into r01 + 0x9b, 0x02, 0x0F, // Set r02 to 0x0F + 0x9b, 0x03, 0x05, // Set r03 to 0x05 (PROG_COMMANDS) + 0x1e, 0x66, 0x03, // JTAG Write to Instruction Reg the value in r03 + 0x90, 0x04, 0x40, 0x23, 0x00, 0x00, // set r04 to 0x2340 (Enter Fuse Write) + 0x1e, 0x67, 0x04, 0x02, // JTAG: Write to Data Reg the value in r04 with a length in r02(16) + 0x1e, 0x67, 0x01, 0x02, // JTAG: Write to Data Reg the value in r01 with a length in r02(16) + + 0x1e, 0x67, 0x00, 0x02, // JTAG: Write to Data Reg the value in r00 with a length in r02(16) + 0x1e, 0x67, 0x06, 0x02, // JTAG: Write to Data Reg the value in r06 with a length in r02(16) + 0x1e, 0x67, 0x00, 0x02, // JTAG: Write to Data Reg the value in r00 with a length in r02(16) + 0x1e, 0x67, 0x00, 0x02, // JTAG: Write to Data Reg the value in r00 with a length in r02(16) + + 0xa2, // do + 0x1e, 0x6b, 0x07, 0x02, // JTAG: Write/read Data Reg the value in r07 with a length in r02(16) + 0xa5, 0x00, 0x02, 0x00, 0x00, // while ((temp_reg & 0x200) != 0x200) + 0x00, 0x02, 0x00, 0x00, 0x0a, 0x00, // }; unsigned int write_fuse_isp_len = sizeof(write_fuse_jtag); - if(mem_is_hfuse(mem)) { - write_fuse_jtag[2] = 0x3B; - } else if (mem_is_efuse(mem)) { - write_fuse_jtag[2] = 0x37; - } - write_fuse_jtag[5] = value; + if(pickit5_send_script_cmd(pgm, write_fuse_jtag, write_fuse_isp_len, NULL, 0) < 0) { pmsg_error("Write Fuse Script failed"); return -1; @@ -1454,34 +1472,62 @@ static int pickit5_jtag_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, cons } static int pickit5_jtag_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char *value) { + unsigned char fuse_cmd = 0x33; // value for lfuse + if(mem_is_hfuse(mem)) { + fuse_cmd = 0x3F; + } else if(mem_is_efuse(mem)) { + fuse_cmd = 0x3B; + } + unsigned char read_fuse_jtag [] = { - 0x9b, 0x06, 0x32, // load lfuse address to r06 (replaced fo hfuse/efuse) - 0x9b, 0x07, 0x0f, // set r07 to 0x07 - 0x9b, 0x09, 0x05, // set r09 to 0x05 (PROG COMMANDS) - 0x1e, 0x66, 0x09, // Write JTAG Instruction in r09 - 0x90, 0x09, 0x04, 0x23, 0x00, 0x00, // set r09 to 0x2304 (Enter Fuse Bit Read) - 0x1e, 0x67, 0x09, 0x07, // Write JTAG instruction in r09 with length in r07 (7 bits) - 0x60, 0x09, 0x06, // copy r06 to r09 (0x32) - 0x68, 0x09, 0x08, // left-shift r09 by 8 - 0x1e, 0x67, 0x09, 0x07, // Write JTAG instruction in r09 with length in r07 (7 bits) - 0x60, 0x09, 0x06, // copy r06 to r09 - 0x6e, 0x09, 0x02, // r09 += 2 (set LSB or so (writing only 7 bits)) - 0x68, 0x09, 0x08, // left-shift r09 by 8 - 0x1E, 0x6B, 0x09, 0x07, // Write JTAG instruction in r09 with length in r07 (7 bits) and shift data in + 0x9C, 0x00, 0x00, fuse_cmd, // load fuse read command A in r00 + 0x9C, 0x01, 0x00, (fuse_cmd & 0xFE), // load fuse read command B in r01 + 0x9b, 0x02, 0x0f, // set r02 to 0x07 + 0x9b, 0x03, 0x05, // set r03 to 0x05 (PROG COMMANDS) + 0x1e, 0x66, 0x03, // Write JTAG Instruction in r03 + 0x9C, 0x04, 0x04, 0x23, // set r04 to 0x2304 (Enter Fuse Bit Read) + 0x1e, 0x67, 0x04, 0x02, // Write JTAG instruction in r04 with length in r02 (7 bits) + 0x1e, 0x67, 0x01, 0x02, // Write JTAG instruction in r01 with length in r02 (7 bits) + 0x1E, 0x6B, 0x00, 0x02, // Write JTAG instruction in r00 with length in r02 (7 bits) and shift data in 0x9F, // Send temp-reg to return status }; + unsigned int read_fuse_jtag_len = sizeof(read_fuse_jtag); - if(mem_is_hfuse(mem)) { - read_fuse_jtag[2] = 0x3E; - } else if (mem_is_efuse(mem)) { - read_fuse_jtag[2] = 0x3A; - } if(pickit5_send_script_cmd(pgm, read_fuse_jtag, read_fuse_jtag_len, NULL, 0) < 0) { pmsg_error("Read Fuse Script failed"); return -1; } - if (0x01 != my.rxBuf[20]) { // length + if(0x01 != my.rxBuf[20]) { // length + return -1; + } + *value = my.rxBuf[24]; // return value + return 1; +} + +static int pickit5_jtag_read_configmem(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value) { + unsigned char read_configmem_jtag [] = { + 0x90, 0x00, 0x00, 0x03, 0x00, 0x00, // set r00 to 0x03xx (Load Address byte with xx=addr) + 0x9b, 0x02, 0x0f, // set r02 to 0x0F + 0x9b, 0x03, 0x05, // set r03 to 0x05 (PROG COMMANDS) + 0x1e, 0x66, 0x03, // Write JTAG Instruction in r03 + 0x90, 0x04, 0x08, 0x23, 0x00, 0x00, // set r04 to 0x2308 (Enter Signature Read) + 0x1e, 0x67, 0x04, 0x02, // Write JTAG instruction in r04 with length in r02 (15 bits) + 0x1e, 0x67, 0x00, 0x02, // Write JTAG instruction in r00 with length in r02 (15 bits) + 0x90, 0x05, 0x00, 0x32, 0x00, 0x00, // set r05 to 0x3200 (Read Signature byte I) + 0x1e, 0x67, 0x05, 0x02, // Write JTAG instruction in r05 with length in r02 (15 bits) + 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, // set r06 to 0x3300 (Read Signature byte II) + 0x1E, 0x6B, 0x06, 0x02, // Write JTAG instruction in r06 with length in r02 (15 bits) and shift data in + 0x9F, // Send temp-reg to return status + }; + unsigned int read_configmem_jtag_len = sizeof(read_configmem_jtag); + read_configmem_jtag[2] = (unsigned char)mem->offset + (unsigned char)addr; + + if(pickit5_send_script_cmd(pgm, read_configmem_jtag, read_configmem_jtag_len, NULL, 0) < 0) { + pmsg_error("Read Fuse Script failed"); + return -1; + } + if(0x01 != my.rxBuf[20]) { // length return -1; } *value = my.rxBuf[24]; // return value @@ -1543,11 +1589,11 @@ static int pickit5_tpi_read(const PROGRAMMER *pgm, const AVRPART *p, if(rc == -1) { pmsg_error("sending script failed\n"); - } else if (rc == -2) { + } else if(rc == -2) { pmsg_error("unexpected read response\n"); - } else if (rc == -3) { + } else if(rc == -3) { pmsg_error("reading data memory failed\n"); - } else if (rc == -4) { + } else if(rc == -4) { pmsg_error("sending script done message failed\n"); } if(rc < 0) { @@ -1577,18 +1623,22 @@ static int pickit5_download_data(const PROGRAMMER *pgm, const unsigned char *scr const unsigned char *param, unsigned int param_len, unsigned char *send_buf, unsigned int send_len) { if(pickit5_send_script(pgm, SCR_DOWNLOAD, scr, scr_len, param, param_len, send_len) < 0) { + pmsg_error("sending script with download failed\n"); return -1; } if(pickit5_read_response(pgm) < 0) { return -2; } if(usbdev_data_send(&pgm->fd, send_buf, send_len) < 0) { + pmsg_error("Transmission failed on the data channel\n"); return -3; } if(pickit5_get_status(pgm, CHECK_ERROR) < 0) { + pmsg_error("error check not 'NONE'\n"); return -4; } if(pickit5_send_script_done(pgm) < 0) { + pmsg_error("sending script done message failed\n"); return -5; } return 0; @@ -1598,15 +1648,18 @@ static int pickit5_upload_data(const PROGRAMMER *pgm, const unsigned char *scr, const unsigned char *param, unsigned int param_len, unsigned char *recv_buf, unsigned int recv_len) { if(pickit5_send_script(pgm, SCR_UPLOAD, scr, scr_len, param, param_len, recv_len) < 0) { + pmsg_error("sending script with upload failed\n"); return -1; } if(pickit5_read_response(pgm) < 0) { return -2; } if(usbdev_data_recv(&pgm->fd, recv_buf, recv_len) < 0) { + pmsg_error("reading data memory failed\n"); return -3; } if(pickit5_send_script_done(pgm) < 0) { + pmsg_error("sending script done message failed\n"); return -4; } return 0; @@ -1660,16 +1713,16 @@ static int pickit5_set_vtarget(const PROGRAMMER *pgm, double v) { if(v < 1.0) { // Anything below 1 V equals disabling Power pmsg_debug("%s(disable)\n", __func__); - if (pickit5_send_script_cmd(pgm, power_source, 5, NULL, 0) < 0) + if(pickit5_send_script_cmd(pgm, power_source, 5, NULL, 0) < 0) return -1; - if (pickit5_send_script_cmd(pgm, disable_power, 1, NULL, 0) < 0) + if(pickit5_send_script_cmd(pgm, disable_power, 1, NULL, 0) < 0) return -1; usleep(50000); // There might be some caps, let them discharge } else { pmsg_debug("%s(%1.2f V)\n", __func__, v); power_source[1] = 0x01; - if (pickit5_send_script_cmd(pgm, power_source, 5, NULL, 0) < 0) + if(pickit5_send_script_cmd(pgm, power_source, 5, NULL, 0) < 0) return -1; int vtarg = (int) (v * 1000.0); @@ -1678,7 +1731,7 @@ static int pickit5_set_vtarget(const PROGRAMMER *pgm, double v) { pickit5_uint32_to_array(&set_vtarget[5], vtarg); pickit5_uint32_to_array(&set_vtarget[9], vtarg); - if (pickit5_send_script_cmd(pgm, set_vtarget, 15, NULL, 0) < 0) + if(pickit5_send_script_cmd(pgm, set_vtarget, 15, NULL, 0) < 0) return -1; } return 0; @@ -1690,7 +1743,7 @@ static int pickit5_get_vtarget(const PROGRAMMER *pgm, double *v) { pmsg_debug("%s()\n", __func__); - if (pickit5_send_script_cmd(pgm, get_vtarget, 1, NULL, 0) < 0) + if(pickit5_send_script_cmd(pgm, get_vtarget, 1, NULL, 0) < 0) return -1; // 24 - internal Vdd [mV] @@ -1717,7 +1770,7 @@ static int pickit5_set_ptg_mode(const PROGRAMMER *pgm) { pmsg_debug("%s()\n", __func__); - if (pickit5_upload_data(pgm, ptg_mode, 5, NULL, 0, buf, 4)) { + if(pickit5_upload_data(pgm, ptg_mode, 5, NULL, 0, buf, 4)) { return -1; } return 0; From ae867081d520479724ea4ee99dae65611aad1b71 Mon Sep 17 00:00:00 2001 From: MX682X <58419867+MX682X@users.noreply.github.com> Date: Tue, 26 Nov 2024 20:46:45 +0100 Subject: [PATCH 6/6] rework prodsig retrival logic --- src/avrdude.conf.in | 4 +- src/pickit5.c | 291 +++++++++++++++++++++------------------ src/pickit5_lut.h | 4 + src/pickit5_lut_jtag.c | 66 ++++++++- src/pickit5_lut_pdi.c | 81 +++++++++++ tools/scripts_decoder.py | 9 +- 6 files changed, 311 insertions(+), 144 deletions(-) diff --git a/src/avrdude.conf.in b/src/avrdude.conf.in index 1f7f180f1..90220df22 100644 --- a/src/avrdude.conf.in +++ b/src/avrdude.conf.in @@ -3062,7 +3062,7 @@ programmer # pickit4_tpi # using different programmer names: # # Interface: Programmer name: -# JTAG pickit5, pickit4_jtag +# JTAG pickit5, pickit5_jtag # PDI pickit5_pdi # UPDI pickit5_updi # debugWIRE pickit5_dw (can auto-switch to ISP to write fuses) @@ -3094,7 +3094,7 @@ programmer # pickit4_tpi #------------------------------------------------------------ programmer # pickit5_jtag - id = "pickit5_jtag"; + id = "pickit5", "pickit5_jtag"; desc = "MPLAB(R) PICkit 5, PICkit 4 and SNAP (PIC) in JTAG Mode"; type = "pickit5_jtag"; prog_modes = PM_JTAG | PM_XMEGAJTAG; diff --git a/src/pickit5.c b/src/pickit5.c index f88fefe09..686f0ee9d 100644 --- a/src/pickit5.c +++ b/src/pickit5.c @@ -97,8 +97,10 @@ struct pdata { unsigned char fw_info[16]; // Buffer for display() sent by get_fw() unsigned char sernum_string[20]; // Buffer for display() sent by get_fw() char sib_string[32]; - unsigned char txBuf[2048]; // Buffer for transfers - unsigned char rxBuf[2048]; // 2048 because of WriteEEmem_dw with 1728 bytes length + unsigned char prodsig[256]; // Buffer for Prodsig that contains more then one memory + unsigned int prod_sig_len; // length of read prodsig (to know if it filled) + unsigned char txBuf[2048]; // Buffer for transfers + unsigned char rxBuf[2048]; // 2048 because of WriteEEmem_dw with 1728 bytes length SCRIPT scripts; }; @@ -165,7 +167,6 @@ static int pickit5_tpi_write(const PROGRAMMER *pgm, const AVRPART *p, // JTAG-Specific static int pickit5_jtag_write_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char value); static int pickit5_jtag_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned char *value); -static int pickit5_jtag_read_configmem(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value); // Extra functions static int pickit5_get_fw_info(const PROGRAMMER *pgm); @@ -183,6 +184,9 @@ inline static void pickit5_create_payload_header(unsigned char *buf, unsigned in inline static void pickit5_create_script_header(unsigned char *buf, unsigned int arg_len, unsigned int script_len); inline static int pickit5_check_ret_status(const PROGRAMMER *pgm); +static int pickit5_read_prodsig(const PROGRAMMER *pgm, const AVRPART *p, + const AVRMEM *mem, unsigned long addr, int len, unsigned char *value); + static int pickit5_get_status(const PROGRAMMER *pgm, unsigned char status); static int pickit5_send_script(const PROGRAMMER *pgm, unsigned int script_type, const unsigned char *script, unsigned int script_len, @@ -308,7 +312,7 @@ static int pickit5_send_script(const PROGRAMMER *pgm, unsigned int script_type, unsigned int header_len = 16 + 8; // Header info + script header unsigned int preamble_len = header_len + param_len; unsigned int message_len = preamble_len + script_len; - pmsg_debug("%s(scr_len: %u, param_len: %u, payload_len: %u)\n", __func__, script_len, param_len, payload_len); + pmsg_debug("%s(scr_len: %u, param_len: %u, data_len: %u)\n", __func__, script_len, param_len, payload_len); if(message_len >= 2048){ // Required memory will exceed buffer size, abort pmsg_error("Requested message size (%u) too large!", message_len); @@ -687,7 +691,7 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { pmsg_notice("no extenal Voltage detected; trying to supply from PICkit\n"); if(both_xmegajtag(pgm, p) || both_pdi(pgm, p)) { if(my.target_voltage > 3.49) { - pmsg_error("xmega part selected but requested voltage is over 3.6V, aborting."); + pmsg_error("xmega part selected but requested voltage is over 3.49V, aborting."); return -1; } } @@ -748,6 +752,7 @@ static int pickit5_initialize(const PROGRAMMER *pgm, const AVRPART *p) { pmsg_error("failed to obtain device ID\n"); return -1; } + } return 0; } @@ -856,13 +861,15 @@ static int pickit5_set_sck_period(const PROGRAMMER *pgm, double sckperiod) { static int pickit5_write_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char value) { int rc = 0; - if(mem_is_in_fuses(mem)) { + if(mem_is_a_fuse(mem)) { if(is_isp(pgm)){ rc = pickit5_isp_write_fuse(pgm, mem, value); } else if(is_debugwire(pgm)){ rc = pickit5_dw_write_fuse(pgm, p, mem, value); } else if(both_jtag(pgm, p)){ rc = pickit5_jtag_write_fuse(pgm, p, mem, value); + } else if(is_updi(pgm)){ + rc = pickit5_updi_write_byte(pgm, p, mem, addr, value); } } if(rc == 0) { @@ -877,20 +884,25 @@ static int pickit5_write_byte(const PROGRAMMER *pgm, const AVRPART *p, static int pickit5_read_byte(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value) { int rc = 0; - if(mem_is_in_fuses(mem)) { + if(mem_is_signature(mem)) { + if(addr < 4) { + *value = my.devID[addr]; + rc = 1; + } else { + rc = -1; + } + } else if(mem_is_a_fuse(mem)) { if(is_isp(pgm)) { rc = pickit5_isp_read_fuse(pgm, mem, addr, value); } else if(is_debugwire(pgm)) { rc = pickit5_dw_read_fuse(pgm, p, mem, value); } else if(both_jtag(pgm, p)) { rc = pickit5_jtag_read_fuse(pgm, p, mem, value); + } else if(is_updi(pgm)) { + rc = pickit5_updi_read_byte(pgm, p, mem, addr, value); } } else if(mem_is_in_sigrow(mem)) { - if(is_isp(pgm)){ - rc = pickit5_isp_read_fuse(pgm, mem, addr, value); // this works by chance - } else if(both_jtag(pgm, p)) { - rc = pickit5_jtag_read_configmem(pgm, p, mem, addr, value); - } + rc = pickit5_read_prodsig(pgm, p, mem, addr, 1, value); } if(rc == 0) { rc = pickit5_read_array(pgm, p, mem, addr, 1, value); @@ -911,42 +923,21 @@ static int pickit5_updi_write_byte(const PROGRAMMER *pgm, const AVRPART *p, } addr += mem->offset; pmsg_debug("%s(0x%4X, %i)\n", __func__, (unsigned) addr, value); - // This script is based on WriteCSreg; reduces overhead by avoiding writing data EP - const unsigned char h_len = 24; // 16 + 8 - const unsigned char p_len = 8; - const unsigned char s_len = 8; - const unsigned char m_len = h_len + p_len + s_len; + // This script is based on WriteCSreg; reduces overhead by avoiding writing data EP unsigned char write8_fast[] = { - 0x00, 0x01, 0x00, 0x00, // [0] SCR_CMD - 0x00, 0x00, 0x00, 0x00, // [4] always 0 - m_len, 0x00, 0x00, 0x00, // [8] message length = 16 + 8 + param (8) + script (8) = 40 - 0x00, 0x00, 0x00, 0x00, // [12] keep at 0 to receive the data in the "response" - - p_len, 0x00, 0x00, 0x00, // [16] param length: 8 bytes - s_len, 0x00, 0x00, 0x00, // [20] length of script: 8 bytes - - 0x00, 0x00, 0x00, 0x00, // [24] param: address to write to, will be overwritten - 0x00, 0x00, 0x00, 0x00, // [28] param: byte to write, will be overwritten - - // Script itself: - 0x91, 0x00, // Copy first 4 bytes of param to reg 0 - 0x91, 0x01, // Copy second 4 bytes of param to reg 1 - 0x1E, 0x06, 0x00, 0x01, // Store to address in reg 0 the byte in reg 1 + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, // Place address in r0 + 0x9B, 0x01, value, // Place value in r1 + 0x1E, 0x06, 0x00, 0x01, // Store to address in reg 0 the byte in reg 1 }; - write8_fast[24] = (((unsigned char *) &addr)[0]); - write8_fast[25] = (((unsigned char *) &addr)[1]); - write8_fast[28] = value; - serial_send(&pgm->fd, write8_fast, m_len); - unsigned char *buf = my.rxBuf; + pickit5_uint32_to_array(&write8_fast[2], addr); - if(serial_recv(&pgm->fd, buf, 512) >= 0) { // Read response - if(buf[0] == 0x0D) { - return 0; - } - } - return -1; + int rc = pickit5_send_script_cmd(pgm, write8_fast, sizeof(write8_fast), NULL, 0); + if (rc < 0) { + return -1; + } + return 1; } // UPDI-specific function providing a reduced overhead when reading a single byte @@ -960,50 +951,30 @@ static int pickit5_updi_read_byte(const PROGRAMMER *pgm, const AVRPART *p, } addr += mem->offset; pmsg_debug("%s(0x%4X)\n", __func__, (unsigned int) addr); - // This script is based on ReadSIB; reduces overhead by avoiding readind data EP - const unsigned char h_len = 24; // 16 + 8 - const unsigned char p_len = 4; - const unsigned char s_len = 6; - const unsigned char m_len = h_len + p_len + s_len; unsigned char read8_fast[] = { - 0x00, 0x01, 0x00, 0x00, // [0] SCR_CMD - 0x00, 0x00, 0x00, 0x00, // [4] always 0 - m_len, 0x00, 0x00, 0x00, // [8] message length = 16 + 8 + param (4) + script (6) = 34 - 0x00, 0x00, 0x00, 0x00, // [12] keep at 0 to receive the data in the "response" - - p_len, 0x00, 0x00, 0x00, // [16] param length: 4 bytes - s_len, 0x00, 0x00, 0x00, // [20] length of script: 6 bytes - - 0x00, 0x00, 0x00, 0x00, // [24] param: address to read from, will be overwritten - - // Script itself: - 0x91, 0x00, // Copy first 4 bytes of param to reg 0 - 0x1E, 0x03, 0x00, // Load byte from address in reg 0 - 0x9F // Send data from 0x1E to "response" + 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, // load address (overwritten below) + 0x1E, 0x03, 0x00, // Load byte from address in reg 0 + 0x9F // Send data from 0x1E to "response" }; - read8_fast[24] = (((unsigned char *) &addr)[0]); - read8_fast[25] = (((unsigned char *) &addr)[1]); - - serial_send(&pgm->fd, read8_fast, m_len); - unsigned char *buf = my.rxBuf; - - if(serial_recv(&pgm->fd, buf, 512) >= 0) { // Read response - if(buf[0] == 0x0D) { - if(buf[20] == 0x01) { - *value = buf[24]; - return 0; - } - } + pickit5_uint32_to_array(&read8_fast[2], addr); + int rc = pickit5_send_script_cmd(pgm, read8_fast, sizeof(read8_fast), NULL, 0); + if (rc < 0) { + return -1; + } else { + *value = my.rxBuf[24]; + return 1; } - return -1; - } else { // Fall back to standard function + } + return 0; + /*else { // Fall back to standard function int rc = pickit5_read_array(pgm, p, mem, addr, 1, value); if(rc < 0) return rc; - return 0; + return 1; } + */ } // Return numbers of byte written @@ -1034,13 +1005,16 @@ static int pickit5_write_array(const PROGRAMMER *pgm, const AVRPART *p, if((mem_is_in_flash(mem) && (len == mem->page_size))) { write_bytes = my.scripts.WriteProgmem; write_bytes_len = my.scripts.WriteProgmem_len; + } else if(mem_is_boot(mem) && my.scripts.WriteBootMem != NULL) { + write_bytes = my.scripts.WriteBootMem; + write_bytes_len = my.scripts.WriteBootMem_len; } else if(mem_is_io(mem) && my.scripts.WriteMemIO != NULL) { write_bytes = my.scripts.WriteMemIO; write_bytes_len = my.scripts.WriteMemIO_len; } else if(mem_is_eeprom(mem) && my.scripts.WriteDataEEmem != NULL) { write_bytes = my.scripts.WriteDataEEmem; write_bytes_len = my.scripts.WriteDataEEmem_len; - } else if(mem_is_in_fuses(mem) && my.scripts.WriteConfigmemFuse != NULL) { + } else if(mem_is_a_fuse(mem) && my.scripts.WriteConfigmemFuse != NULL) { write_bytes = my.scripts.WriteConfigmemFuse; write_bytes_len = my.scripts.WriteConfigmemFuse_len; } else if(mem_is_lock(mem) && my.scripts.WriteConfigmemLock != NULL) { @@ -1113,6 +1087,9 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, if(mem_is_in_flash(mem)) { read_bytes = my.scripts.ReadProgmem; read_bytes_len = my.scripts.ReadProgmem_len; + } else if(mem_is_boot(mem) && my.scripts.ReadBootMem != NULL) { + read_bytes = my.scripts.ReadBootMem; + read_bytes_len = my.scripts.ReadBootMem_len; } else if(mem_is_calibration(mem) && my.scripts.ReadCalibrationByte != NULL) { read_bytes = my.scripts.ReadCalibrationByte; read_bytes_len = my.scripts.ReadCalibrationByte_len; @@ -1122,7 +1099,7 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, } else if(mem_is_eeprom(mem) && my.scripts.ReadDataEEmem != NULL) { read_bytes = my.scripts.ReadDataEEmem; read_bytes_len = my.scripts.ReadDataEEmem_len; - } else if(mem_is_in_fuses(mem) && my.scripts.ReadConfigmemFuse != NULL) { + } else if(mem_is_a_fuse(mem) && my.scripts.ReadConfigmemFuse != NULL) { read_bytes = my.scripts.ReadConfigmemFuse; read_bytes_len = my.scripts.ReadConfigmemFuse_len; } else if(mem_is_lock(mem) && my.scripts.ReadConfigmemLock != NULL) { @@ -1146,7 +1123,11 @@ static int pickit5_read_array(const PROGRAMMER *pgm, const AVRPART *p, read_bytes_len = my.scripts.ReadConfigmem_len; } else if(!mem_is_readonly(mem)) { // SRAM, IO, LOCK, USERROW if((len == 1) && is_updi(pgm)) { - return pickit5_updi_read_byte(pgm, p, mem, addr, value); + if(pickit5_updi_read_byte(pgm, p, mem, addr, value) < 0) { + return -1; + } else { + return 0; + } } read_bytes = my.scripts.ReadMem8; read_bytes_len = my.scripts.ReadMem8_len; @@ -1505,36 +1486,6 @@ static int pickit5_jtag_read_fuse(const PROGRAMMER *pgm, const AVRPART *p, const return 1; } -static int pickit5_jtag_read_configmem(const PROGRAMMER *pgm, const AVRPART *p, const AVRMEM *mem, unsigned long addr, unsigned char *value) { - unsigned char read_configmem_jtag [] = { - 0x90, 0x00, 0x00, 0x03, 0x00, 0x00, // set r00 to 0x03xx (Load Address byte with xx=addr) - 0x9b, 0x02, 0x0f, // set r02 to 0x0F - 0x9b, 0x03, 0x05, // set r03 to 0x05 (PROG COMMANDS) - 0x1e, 0x66, 0x03, // Write JTAG Instruction in r03 - 0x90, 0x04, 0x08, 0x23, 0x00, 0x00, // set r04 to 0x2308 (Enter Signature Read) - 0x1e, 0x67, 0x04, 0x02, // Write JTAG instruction in r04 with length in r02 (15 bits) - 0x1e, 0x67, 0x00, 0x02, // Write JTAG instruction in r00 with length in r02 (15 bits) - 0x90, 0x05, 0x00, 0x32, 0x00, 0x00, // set r05 to 0x3200 (Read Signature byte I) - 0x1e, 0x67, 0x05, 0x02, // Write JTAG instruction in r05 with length in r02 (15 bits) - 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, // set r06 to 0x3300 (Read Signature byte II) - 0x1E, 0x6B, 0x06, 0x02, // Write JTAG instruction in r06 with length in r02 (15 bits) and shift data in - 0x9F, // Send temp-reg to return status - }; - unsigned int read_configmem_jtag_len = sizeof(read_configmem_jtag); - read_configmem_jtag[2] = (unsigned char)mem->offset + (unsigned char)addr; - - if(pickit5_send_script_cmd(pgm, read_configmem_jtag, read_configmem_jtag_len, NULL, 0) < 0) { - pmsg_error("Read Fuse Script failed"); - return -1; - } - if(0x01 != my.rxBuf[20]) { // length - return -1; - } - *value = my.rxBuf[24]; // return value - return 1; - -} - // TPI has an unified memory space, meaning that any memory (even SRAM) // can be accessed by the same command, meaning that we don't need the @@ -1552,21 +1503,6 @@ static int pickit5_tpi_write(const PROGRAMMER *pgm, const AVRPART *p, pickit5_uint32_to_array(&buf[4], len); int rc = pickit5_download_data(pgm, write_bytes, write_bytes_len, buf, 8, value, len); - if(rc == -1) { - pmsg_error("sending script failed\n"); - } - if(rc == -2) { - pmsg_error("reading script response failed\n"); - } - if(rc == -3) { - pmsg_error("failed when sending data\n"); - } - if(rc == -4) { - pmsg_error("error check failed\n"); - } - if(rc == -5) { - pmsg_error("sending script done message failed\n"); - } if(rc < 0) { return -1; } else { @@ -1582,20 +1518,10 @@ static int pickit5_tpi_read(const PROGRAMMER *pgm, const AVRPART *p, addr += mem->offset; unsigned char buf[8]; - pickit5_uint32_to_array(&buf[0], addr); pickit5_uint32_to_array(&buf[4], len); int rc = pickit5_upload_data(pgm, read_bytes, read_bytes_len, buf, 8, value, len); - if(rc == -1) { - pmsg_error("sending script failed\n"); - } else if(rc == -2) { - pmsg_error("unexpected read response\n"); - } else if(rc == -3) { - pmsg_error("reading data memory failed\n"); - } else if(rc == -4) { - pmsg_error("sending script done message failed\n"); - } if(rc < 0) { return -1; } else { @@ -1604,6 +1530,99 @@ static int pickit5_tpi_read(const PROGRAMMER *pgm, const AVRPART *p, } +// There are often multiple memories located in prodsig, we try to read it once +// and handle all further requests through a buffer. +static int pickit5_read_prodsig(const PROGRAMMER *pgm, const AVRPART *p, + const AVRMEM *mem, unsigned long addr, int len, unsigned char *value) { + pmsg_debug("%s(%s, addr: 0x%04x, offset: %i, len: %i)", __func__, mem->desc, (unsigned int) addr, mem->offset, len); + int rc = 0; + + AVRMEM *prodsig = avr_locate_prodsig(p); + if (prodsig == NULL) { + return 0; // no prodsig on this device, try again in read_array + } + if (mem->offset < prodsig->offset || + (mem->offset + mem->size) > (prodsig->offset) + (prodsig->size)) { + return 0; // Requested memory not in prodsig, try again in read_array + } + + int max_mem_len = sizeof(my.prodsig); // Current devices have no more then 128 + unsigned mem_len = (prodsig->size < max_mem_len)? prodsig->size: max_mem_len; + + if ((addr + len) > mem_len) { + pmsg_warning("Requested memory is outside of the progsig on the device"); + return 0; + } + + unsigned int prod_addr = addr + mem->offset - prodsig->offset; // adjust offset + + if(prod_addr == 0x00 || (my.prod_sig_len == 0x00)) { // update buffer + if (my.scripts.ReadConfigmem != NULL) { + unsigned char param_buf[8]; + pickit5_uint32_to_array(¶m_buf[0], prodsig->offset); + pickit5_uint32_to_array(¶m_buf[4], mem_len); + rc = pickit5_upload_data(pgm, my.scripts.ReadConfigmem, my.scripts.ReadConfigmem_len, param_buf, 8, my.prodsig, mem_len); + } else if(mem->op[AVR_OP_READ] != NULL) { + if(both_jtag(pgm, p)){ + const unsigned char read_prodsigmem_jtag [] = { + 0x90, 0x00, 0x00, 0x03, 0x00, 0x00, // set r00 to 0x0300 (Load Address byte command (0x3bb)) + 0x9b, 0x01, 0x0f, // set r01 to 0x0F + 0x9b, 0x02, 0x05, // set r02 to 0x05 (PROG COMMANDS) + 0x90, 0x03, 0x08, 0x23, 0x00, 0x00, // set r03 to 0x2308 (Enter Signature Read) + 0x90, 0x05, 0x00, 0x32, 0x00, 0x00, // set r05 to 0x3200 (Read Signature byte I) + 0x90, 0x06, 0x00, 0x33, 0x00, 0x00, // set r06 to 0x3300 (Read Signature byte II) + + 0xAC, mem_len, 0x00, // loop for mem length + 0x1e, 0x66, 0x02, // Write JTAG Instruction in r03 (PROG COMMANDS) + 0x1e, 0x67, 0x03, 0x01, // Write JTAG instruction in r02 with length in r01 (15 bits) + 0x1e, 0x67, 0x00, 0x01, // Write JTAG instruction in r00 with length in r01 (15 bits) + 0x1e, 0x67, 0x05, 0x01, // Write JTAG instruction in r05 with length in r01 (15 bits) + 0x1E, 0x6B, 0x06, 0x01, // Write JTAG instruction in r06 with length in r01 (15 bits) and shift data in + 0x9F, // Send temp-reg to return status + 0x92, 0x00, 0x01, 0x00, 0x00, 0x00, // increase address (r00) by 1 + 0xA4, // End of for loop + }; + rc = pickit5_upload_data(pgm, read_prodsigmem_jtag, sizeof(read_prodsigmem_jtag), NULL, 0, my.prodsig, mem_len); + } else if(is_isp(pgm)) { + // Ok, this one is tricky due to the lsb being on another position compared to the rest, + // The solution is to read two bytes in one while loop and toggle the LSB + const unsigned char read_prodsig_isp [] = { + 0x90, 0x00, 0x32, 0x00, 0x00, 0x00, // load 0x32 to r00 + 0x90, 0x01, 0x00, 0x00, 0x00, 0x30, // load programming command to r01 (the same on all) + 0x9B, 0x02, 0x03, // load 0x03 to r02 + 0x9B, 0x03, 0x00, // load 0x00 to r03 + 0x1E, 0x37, 0x00, // Enable Programming? + 0xAC, (mem_len / 2), 0x00, // loop for half the mem length + 0x1E, 0x35, 0x01, 0x02, 0x03, // Execute ISP Read command in r01 + 0x9F, // Send Data back to USB + 0x92, 0x01, 0x00, 0x00, 0x00, 0x08, // set LSB of prodsig address + 0x1E, 0x35, 0x01, 0x02, 0x03, // Execute ISP Read command in r01 + 0x9F, + 0x69, 0x01, 0x00, 0x00, 0x00, 0x08, // clr LSB of prodsig address + 0x92, 0x01, 0x00, 0x01, 0x00, 0x00, // increase address by "2" + 0xA4, // End of for loop + }; + rc = pickit5_upload_data(pgm, read_prodsig_isp, sizeof(read_prodsig_isp), NULL, 0, my.prodsig, mem_len); + } else { + return 0; // debugWire + } + } else { + rc = -6; // Something went wrong + } + } + if (rc >= 0) { // No errors, copy data + my.prod_sig_len = mem_len; + if (len == 1) { + *value = my.prodsig[prod_addr]; + } else { + memcpy(value, &my.prodsig[prod_addr], len); + } + return 1; // Success + } + return rc; +} + + static int pickit5_send_script_cmd(const PROGRAMMER *pgm, const unsigned char *scr, unsigned int scr_len, const unsigned char *param, unsigned int param_len) { diff --git a/src/pickit5_lut.h b/src/pickit5_lut.h index e619c3198..fc1edd7d5 100644 --- a/src/pickit5_lut.h +++ b/src/pickit5_lut.h @@ -91,6 +91,10 @@ struct avr_script_lut { unsigned int WriteSRAM_len; const unsigned char *ReadSRAM; unsigned int ReadSRAM_len; + const unsigned char *WriteBootMem; + unsigned int WriteBootMem_len; + const unsigned char *ReadBootMem; + unsigned int ReadBootMem_len; }; diff --git a/src/pickit5_lut_jtag.c b/src/pickit5_lut_jtag.c index 26d3965c7..173d0a759 100644 --- a/src/pickit5_lut_jtag.c +++ b/src/pickit5_lut_jtag.c @@ -1193,6 +1193,52 @@ const unsigned char ReadCalibrationByte_jtag_0[82] = { 0x00, 0xae, }; +const unsigned char WriteBootMem_jtag_0[130] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, + 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, + 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x2c, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, + 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, + 0xae, 0x5a, +}; + +const unsigned char WriteBootMem_jtag_1[130] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, + 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, + 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x2c, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, + 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xae, 0x5a, +}; + +const unsigned char ReadBootMem_jtag_0[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadBootMem_jtag_1[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + const unsigned char WriteConfigmem_jtag_0[89] = { 0x91, 0x00, 0x91, 0x01, 0xfe, 0x00, 0x27, 0x00, 0x8f, 0x00, 0x15, 0x00, 0x90, 0x07, 0x4c, 0x00, 0x00, 0x00, 0xfb, 0x1b, 0x00, 0x90, 0x07, 0x08, 0x00, 0x00, 0x00, 0xaf, 0xad, 0x01, 0x90, 0x02, @@ -1248,16 +1294,12 @@ static void pickit_jtag_script_init(SCRIPT *scr) { memset(scr, 0x00, sizeof(SCRIPT)); // Make sure everything is NULL scr->ReadCalibrationByte = ReadCalibrationByte_jtag_0; - scr->WriteConfigmem = WriteConfigmem_jtag_0; - scr->ReadConfigmem = ReadConfigmem_jtag_0; scr->WriteSRAM = WriteSRAM_jtag_0; scr->ReadSRAM = ReadSRAM_jtag_0; scr->WriteCSreg = WriteCSreg_jtag_0; scr->ReadCSreg = ReadCSreg_jtag_0; scr->ReadCalibrationByte_len = sizeof(ReadCalibrationByte_jtag_0); - scr->WriteConfigmem_len = sizeof(WriteConfigmem_jtag_0); - scr->ReadConfigmem_len = sizeof(ReadConfigmem_jtag_0); scr->WriteSRAM_len = sizeof(WriteSRAM_jtag_0); scr->ReadSRAM_len = sizeof(ReadSRAM_jtag_0); scr->WriteCSreg_len = sizeof(WriteCSreg_jtag_0); @@ -1925,14 +1967,22 @@ int get_pickit_jtag_script(SCRIPT *scr, const char* partdesc) { scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_7); scr->ReadProgmem = ReadProgmem_jtag_7; scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_7); + scr->WriteBootMem = WriteBootMem_jtag_0; + scr->WriteBootMem_len = sizeof(WriteBootMem_jtag_0); + scr->ReadBootMem = ReadBootMem_jtag_0; + scr->ReadBootMem_len = sizeof(ReadBootMem_jtag_0); scr->WriteDataEEmem = WriteDataEEmem_jtag_2; scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_2); scr->ReadDataEEmem = ReadDataEEmem_jtag_1; scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_1); + scr->WriteConfigmem = WriteConfigmem_jtag_0; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_jtag_0); scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_1; scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_1); scr->WriteConfigmemLock = WriteConfigmemLock_jtag_1; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_1); + scr->ReadConfigmem = ReadConfigmem_jtag_0; + scr->ReadConfigmem_len = sizeof(ReadConfigmem_jtag_0); scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_1; scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_1); scr->ReadConfigmemLock = ReadConfigmemLock_jtag_1; @@ -1968,14 +2018,22 @@ int get_pickit_jtag_script(SCRIPT *scr, const char* partdesc) { scr->WriteProgmem_len = sizeof(WriteProgmem_jtag_8); scr->ReadProgmem = ReadProgmem_jtag_8; scr->ReadProgmem_len = sizeof(ReadProgmem_jtag_8); + scr->WriteBootMem = WriteBootMem_jtag_1; + scr->WriteBootMem_len = sizeof(WriteBootMem_jtag_1); + scr->ReadBootMem = ReadBootMem_jtag_1; + scr->ReadBootMem_len = sizeof(ReadBootMem_jtag_1); scr->WriteDataEEmem = WriteDataEEmem_jtag_2; scr->WriteDataEEmem_len = sizeof(WriteDataEEmem_jtag_2); scr->ReadDataEEmem = ReadDataEEmem_jtag_1; scr->ReadDataEEmem_len = sizeof(ReadDataEEmem_jtag_1); + scr->WriteConfigmem = WriteConfigmem_jtag_0; + scr->WriteConfigmem_len = sizeof(WriteConfigmem_jtag_0); scr->WriteConfigmemFuse = WriteConfigmemFuse_jtag_1; scr->WriteConfigmemFuse_len = sizeof(WriteConfigmemFuse_jtag_1); scr->WriteConfigmemLock = WriteConfigmemLock_jtag_1; scr->WriteConfigmemLock_len = sizeof(WriteConfigmemLock_jtag_1); + scr->ReadConfigmem = ReadConfigmem_jtag_0; + scr->ReadConfigmem_len = sizeof(ReadConfigmem_jtag_0); scr->ReadConfigmemFuse = ReadConfigmemFuse_jtag_1; scr->ReadConfigmemFuse_len = sizeof(ReadConfigmemFuse_jtag_1); scr->ReadConfigmemLock = ReadConfigmemLock_jtag_1; diff --git a/src/pickit5_lut_pdi.c b/src/pickit5_lut_pdi.c index 6a39ad4b2..96ed25017 100644 --- a/src/pickit5_lut_pdi.c +++ b/src/pickit5_lut_pdi.c @@ -142,6 +142,75 @@ const unsigned char ReadProgmem_pdi_2[126] = { 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, }; +const unsigned char WriteBootMem_pdi_0[130] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, + 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, + 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x2c, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, + 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, + 0xae, 0x5a, +}; + +const unsigned char WriteBootMem_pdi_1[130] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, + 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, + 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x2c, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, + 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, + 0xae, 0x5a, +}; + +const unsigned char WriteBootMem_pdi_2[130] = { + 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x80, 0x00, 0xad, 0x03, 0x90, 0x04, 0xc0, + 0x01, 0x00, 0x00, 0xfe, 0x04, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, + 0x01, 0x90, 0x05, 0x23, 0x00, 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, + 0x80, 0x00, 0x1e, 0x10, 0x04, 0x1e, 0x0a, 0x04, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x7a, 0x00, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x2c, 0x00, + 0x00, 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x65, 0xff, 0x00, 0x00, 0x00, 0x01, 0x9b, + 0x06, 0x01, 0x1e, 0x0a, 0x06, 0x90, 0x06, 0xcf, 0x01, 0x00, 0x01, 0xa2, 0x1e, 0x03, 0x06, 0xa5, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x00, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, + 0xae, 0x5a, +}; + +const unsigned char ReadBootMem_pdi_0[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x02, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x02, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x02, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadBootMem_pdi_1[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x00, 0x01, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x00, 0x01, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x00, 0x01, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + +const unsigned char ReadBootMem_pdi_2[126] = { + 0x91, 0x00, 0x91, 0x01, 0x95, 0x90, 0x04, 0xc0, 0x01, 0x00, 0x00, 0x90, 0x05, 0x00, 0x00, 0x00, + 0x00, 0xfc, 0x04, 0x05, 0x26, 0x00, 0xad, 0x01, 0x1e, 0x03, 0x00, 0x9f, 0x92, 0x00, 0x01, 0x00, + 0x00, 0x00, 0xae, 0xfb, 0x7d, 0x00, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, + 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x03, 0x06, 0x6c, 0x0b, 0x60, 0x03, 0x01, 0x93, + 0x03, 0x80, 0x00, 0xad, 0x03, 0x90, 0x04, 0xca, 0x01, 0x00, 0x01, 0x90, 0x05, 0x43, 0x00, 0x00, + 0x00, 0x1e, 0x06, 0x04, 0x05, 0x1e, 0x09, 0x00, 0x9c, 0x04, 0x80, 0x00, 0x1e, 0x10, 0x04, 0x1e, + 0x0c, 0x04, 0x92, 0x00, 0x80, 0x00, 0x00, 0x00, 0xae, 0x90, 0x06, 0xca, 0x01, 0x00, 0x01, 0x1e, + 0x06, 0x06, 0x0a, 0x90, 0x06, 0xc4, 0x01, 0x00, 0x01, 0x1e, 0x06, 0x06, 0x0b, 0x5a, +}; + const unsigned char WriteDataEEmem_pdi_0[334] = { 0x91, 0x00, 0x91, 0x01, 0x60, 0x03, 0x01, 0x93, 0x03, 0x20, 0x00, 0xad, 0x03, 0x90, 0x05, 0xc0, 0x01, 0x00, 0x00, 0xfe, 0x05, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x00, 0x90, 0x09, 0xcc, 0x01, 0x00, @@ -459,6 +528,10 @@ int get_pickit_pdi_script(SCRIPT *scr, const char* partdesc) { scr->WriteProgmem_len = sizeof(WriteProgmem_pdi_0); scr->ReadProgmem = ReadProgmem_pdi_0; scr->ReadProgmem_len = sizeof(ReadProgmem_pdi_0); + scr->WriteBootMem = WriteBootMem_pdi_0; + scr->WriteBootMem_len = sizeof(WriteBootMem_pdi_0); + scr->ReadBootMem = ReadBootMem_pdi_0; + scr->ReadBootMem_len = sizeof(ReadBootMem_pdi_0); scr->WriteIDmem = WriteIDmem_pdi_0; scr->WriteIDmem_len = sizeof(WriteIDmem_pdi_0); scr->ReadIDmem = ReadIDmem_pdi_0; @@ -492,6 +565,10 @@ int get_pickit_pdi_script(SCRIPT *scr, const char* partdesc) { scr->WriteProgmem_len = sizeof(WriteProgmem_pdi_1); scr->ReadProgmem = ReadProgmem_pdi_1; scr->ReadProgmem_len = sizeof(ReadProgmem_pdi_1); + scr->WriteBootMem = WriteBootMem_pdi_1; + scr->WriteBootMem_len = sizeof(WriteBootMem_pdi_1); + scr->ReadBootMem = ReadBootMem_pdi_1; + scr->ReadBootMem_len = sizeof(ReadBootMem_pdi_1); scr->WriteIDmem = WriteIDmem_pdi_1; scr->WriteIDmem_len = sizeof(WriteIDmem_pdi_1); scr->ReadIDmem = ReadIDmem_pdi_1; @@ -504,6 +581,10 @@ int get_pickit_pdi_script(SCRIPT *scr, const char* partdesc) { scr->WriteProgmem_len = sizeof(WriteProgmem_pdi_2); scr->ReadProgmem = ReadProgmem_pdi_2; scr->ReadProgmem_len = sizeof(ReadProgmem_pdi_2); + scr->WriteBootMem = WriteBootMem_pdi_2; + scr->WriteBootMem_len = sizeof(WriteBootMem_pdi_2); + scr->ReadBootMem = ReadBootMem_pdi_2; + scr->ReadBootMem_len = sizeof(ReadBootMem_pdi_2); scr->WriteIDmem = WriteIDmem_pdi_2; scr->WriteIDmem_len = sizeof(WriteIDmem_pdi_2); scr->ReadIDmem = ReadIDmem_pdi_2; diff --git a/tools/scripts_decoder.py b/tools/scripts_decoder.py index bafb3cd65..fac80fed5 100644 --- a/tools/scripts_decoder.py +++ b/tools/scripts_decoder.py @@ -82,6 +82,8 @@ # Added from JTAG/PDI "WriteSRAM", "ReadSRAM", + "WriteBootMem", + "ReadBootMem", ] # List of MCUs that are supported by avrdude, extracted from the .conf file @@ -375,9 +377,13 @@ def convert_xml(xml_path, c_funcs): c_file.write(num_line + "\n};\n\n") # complete array if len(func_array_bytes) == 1: # look for common function + if (prog_iface == "JTAG"): # This handles the edge case in JTAG where only the + if (func_name == "ReadConfigmem") or (func_name == "WriteConfigmem"): + continue # XMEGA has the functions, but not the old JTAG + common_func.append(func_name) struct_init_func += " scr->{0} = {0}_{1}_0;\n".format(func_name, lower_prog_iface) struct_init_len += " scr->{0}_len = sizeof({0}_{1}_0);\n".format(func_name, lower_prog_iface) - common_func.append(func_name) + #else: # is done by a memset # struct_init_func += " scr->{0} = NULL;\n".format(func_name) # struct_init_len += " scr->{0}_len = 0;\n".format(func_name) @@ -412,7 +418,6 @@ def convert_xml(xml_path, c_funcs): c_file.write(" else // DU, EB\n") c_file.write(" return GetDeviceID_updi_1;\n}\n\n") - c_file.write("int get_pickit_{0}_script(SCRIPT *scr, const char* partdesc)".format(lower_prog_iface) + " {\n") c_file.write(" if ((scr == NULL) || (partdesc == NULL)) {\n return -1;\n }\n") c_file.write(" int namepos = -1;\n")