Files
klipper/out/compile_time_request.c
2023-06-15 11:41:08 +08:00

1748 lines
62 KiB
C

/* DO NOT EDIT! This is an autogenerated file. See scripts/buildcommands.py. */
#include "board/irq.h"
#include "board/pgm.h"
#include "command.h"
#include "compiler.h"
#include "initial_pins.h"
void
ctr_run_initfuncs(void)
{
extern void alloc_init(void);
alloc_init();
extern void initial_pins_setup(void);
initial_pins_setup();
extern void timer_init(void);
timer_init();
}
void
ctr_run_shutdownfuncs(void)
{
extern void sendf_shutdown(void);
sendf_shutdown();
extern void move_reset(void);
move_reset();
extern void digital_out_shutdown(void);
digital_out_shutdown();
extern void stepper_shutdown(void);
stepper_shutdown();
extern void trsync_shutdown(void);
trsync_shutdown();
extern void analog_in_shutdown(void);
analog_in_shutdown();
extern void spidev_shutdown(void);
spidev_shutdown();
extern void pwm_shutdown(void);
pwm_shutdown();
extern void st7920_shutdown(void);
st7920_shutdown();
extern void hd44780_shutdown(void);
hd44780_shutdown();
extern void tmcuart_shutdown(void);
tmcuart_shutdown();
extern void pca9685_shutdown(void);
pca9685_shutdown();
}
void
ctr_run_taskfuncs(void)
{
irq_poll();
extern void trsync_task(void);
trsync_task();
irq_poll();
extern void analog_in_task(void);
analog_in_task();
irq_poll();
extern void thermocouple_task(void);
thermocouple_task();
irq_poll();
extern void adxl345_task(void);
adxl345_task();
irq_poll();
extern void spi_angle_task(void);
spi_angle_task();
irq_poll();
extern void mpu9250_task(void);
mpu9250_task();
irq_poll();
extern void buttons_task(void);
buttons_task();
irq_poll();
extern void tmcuart_task(void);
tmcuart_task();
irq_poll();
extern void counter_task(void);
counter_task();
irq_poll();
extern void console_task(void);
console_task();
irq_poll();
extern void watchdog_task(void);
watchdog_task();
irq_poll();
extern void ds18_task(void);
ds18_task();
irq_poll();
}
uint8_t __always_inline
ctr_lookup_static_string(const char *str)
{
if (__builtin_strcmp(str, "Shutdown cleared when not shutdown") == 0)
return 2;
if (__builtin_strcmp(str, "Timer too close") == 0)
return 3;
if (__builtin_strcmp(str, "sentinel timer called") == 0)
return 4;
if (__builtin_strcmp(str, "Invalid command") == 0)
return 5;
if (__builtin_strcmp(str, "Message encode error") == 0)
return 6;
if (__builtin_strcmp(str, "Command parser error") == 0)
return 7;
if (__builtin_strcmp(str, "Command request") == 0)
return 8;
if (__builtin_strcmp(str, "config_reset only available when shutdown") == 0)
return 9;
if (__builtin_strcmp(str, "oids already allocated") == 0)
return 10;
if (__builtin_strcmp(str, "Can't assign oid") == 0)
return 11;
if (__builtin_strcmp(str, "Invalid oid type") == 0)
return 12;
if (__builtin_strcmp(str, "Already finalized") == 0)
return 13;
if (__builtin_strcmp(str, "Invalid move request size") == 0)
return 14;
if (__builtin_strcmp(str, "Move queue overflow") == 0)
return 15;
if (__builtin_strcmp(str, "alloc_chunks failed") == 0)
return 16;
if (__builtin_strcmp(str, "alloc_chunk failed") == 0)
return 17;
if (__builtin_strcmp(str, "update_digital_out not valid with active queue") == 0)
return 18;
if (__builtin_strcmp(str, "Scheduled digital out event will exceed max_duration") == 0)
return 19;
if (__builtin_strcmp(str, "Can not set soft pwm cycle ticks while updates pending") == 0)
return 20;
if (__builtin_strcmp(str, "Missed scheduling of next digital out event") == 0)
return 21;
if (__builtin_strcmp(str, "Can't reset time when stepper active") == 0)
return 22;
if (__builtin_strcmp(str, "Invalid count parameter") == 0)
return 23;
if (__builtin_strcmp(str, "Stepper too far in past") == 0)
return 24;
if (__builtin_strcmp(str, "Can't add signal that is already active") == 0)
return 25;
if (__builtin_strcmp(str, "ADC out of range") == 0)
return 26;
if (__builtin_strcmp(str, "Invalid spi config") == 0)
return 27;
if (__builtin_strcmp(str, "Thermocouple reader fault") == 0)
return 28;
if (__builtin_strcmp(str, "Thermocouple ADC out of range") == 0)
return 29;
if (__builtin_strcmp(str, "Invalid thermocouple chip type") == 0)
return 30;
if (__builtin_strcmp(str, "i2c_modify_bits: Odd number of bits!") == 0)
return 31;
if (__builtin_strcmp(str, "Scheduled pwm event will exceed max_duration") == 0)
return 32;
if (__builtin_strcmp(str, "Missed scheduling of next hard pwm event") == 0)
return 33;
if (__builtin_strcmp(str, "angle sensor requires cs pin") == 0)
return 34;
if (__builtin_strcmp(str, "Invalid spi_angle chip type") == 0)
return 35;
if (__builtin_strcmp(str, "Invalid buttons retransmit count") == 0)
return 36;
if (__builtin_strcmp(str, "Set button past maximum button count") == 0)
return 37;
if (__builtin_strcmp(str, "Max of 8 buttons") == 0)
return 38;
if (__builtin_strcmp(str, "tmcuart data too large") == 0)
return 39;
if (__builtin_strcmp(str, "Invalid neopixel update command") == 0)
return 40;
if (__builtin_strcmp(str, "Invalid neopixel data_size") == 0)
return 41;
if (__builtin_strcmp(str, "Rescheduled timer in the past") == 0)
return 42;
if (__builtin_strcmp(str, "Force shutdown command") == 0)
return 43;
if (__builtin_strcmp(str, "Invalid pca9685 channel or value") == 0)
return 44;
if (__builtin_strcmp(str, "Scheduled pca9685 event will exceed max_duration") == 0)
return 45;
if (__builtin_strcmp(str, "Invalid pca9685 value") == 0)
return 46;
if (__builtin_strcmp(str, "Missed scheduling of next pca9685 event") == 0)
return 47;
if (__builtin_strcmp(str, "Unable to open and init PCA9685 device") == 0)
return 48;
if (__builtin_strcmp(str, "Too many i2c devices") == 0)
return 49;
if (__builtin_strcmp(str, "All PCA9685 channels must have the same cycle_ticks") == 0)
return 50;
if (__builtin_strcmp(str, "Unable to update PCA9685 value") == 0)
return 51;
if (__builtin_strcmp(str, "Unable to write to spi") == 0)
return 52;
if (__builtin_strcmp(str, "Unable to issue spi ioctl") == 0)
return 53;
if (__builtin_strcmp(str, "Unable to set SPI mode") == 0)
return 54;
if (__builtin_strcmp(str, "Unable to set SPI speed") == 0)
return 55;
if (__builtin_strcmp(str, "Unable to set non-blocking on spi device") == 0)
return 56;
if (__builtin_strcmp(str, "Unable to open spi device") == 0)
return 57;
if (__builtin_strcmp(str, "Too many spi devices") == 0)
return 58;
if (__builtin_strcmp(str, "Error on analog read") == 0)
return 59;
if (__builtin_strcmp(str, "Unable to open adc device") == 0)
return 60;
if (__builtin_strcmp(str, "Unable to config pwm device") == 0)
return 61;
if (__builtin_strcmp(str, "Unable to read i2c device") == 0)
return 62;
if (__builtin_strcmp(str, "Unable write i2c device") == 0)
return 63;
if (__builtin_strcmp(str, "Unable to open i2c device") == 0)
return 64;
if (__builtin_strcmp(str, "Unable to open in GPIO chip line") == 0)
return 65;
if (__builtin_strcmp(str, "Unable to open out GPIO chip line") == 0)
return 66;
if (__builtin_strcmp(str, "Unable to open GPIO chip device") == 0)
return 67;
if (__builtin_strcmp(str, "GPIO chip device not found") == 0)
return 68;
if (__builtin_strcmp(str, "DS18B20 sensor didn't respond in time") == 0)
return 69;
if (__builtin_strcmp(str, "DS18B20 out of range") == 0)
return 70;
if (__builtin_strcmp(str, "Error reading DS18B20 sensor") == 0)
return 71;
if (__builtin_strcmp(str, "Error getting monotonic clock time") == 0)
return 72;
if (__builtin_strcmp(str, "Could not start DS18B20 reader thread") == 0)
return 73;
if (__builtin_strcmp(str, "Could not start DS18B20 reader thread (cond init)") == 0)
return 74;
if (__builtin_strcmp(str, "Could not start DS18B20 reader thread (mutex init)") == 0)
return 75;
if (__builtin_strcmp(str, "Invalid DS18B20 serial id, could not open for reading") == 0)
return 76;
if (__builtin_strcmp(str, "Invalid DS18B20 serial id, must not contain '/'") == 0)
return 77;
return 0xff;
}
const struct initial_pin_s initial_pins[] PROGMEM = {
};
const int initial_pins_size PROGMEM = ARRAY_SIZE(initial_pins);
static const uint8_t command_parameters0[] PROGMEM = {
PT_uint16 };
static const uint8_t command_parameters1[] PROGMEM = {
PT_uint32, PT_uint16 };
static const uint8_t command_parameters2[] PROGMEM = {
PT_uint32, PT_progmem_buffer };
static const uint8_t command_parameters3[] PROGMEM = {
PT_uint32, PT_uint32, PT_uint32 };
static const uint8_t command_parameters4[] PROGMEM = {
PT_uint32, PT_uint32 };
static const uint8_t command_parameters5[] PROGMEM = {
PT_uint32 };
static const uint8_t command_parameters6[] PROGMEM = {
PT_byte, PT_uint32, PT_byte, PT_uint16 };
static const uint8_t command_parameters7[] PROGMEM = {
PT_buffer };
static const uint8_t command_parameters8[] PROGMEM = {
PT_byte, PT_int32 };
static const uint8_t command_parameters9[] PROGMEM = {
PT_byte, PT_byte, PT_uint32, PT_byte };
static const uint8_t command_parameters10[] PROGMEM = {
PT_byte, PT_byte, PT_byte, PT_uint32 };
static const uint8_t command_parameters11[] PROGMEM = {
PT_byte, PT_uint32, PT_uint16 };
static const uint8_t command_parameters12[] PROGMEM = {
PT_byte, PT_buffer };
static const uint8_t command_parameters13[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_byte };
static const uint8_t command_parameters14[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_uint16, PT_byte, PT_byte, PT_uint16 };
static const uint8_t command_parameters15[] PROGMEM = {
PT_byte, PT_uint16, PT_buffer };
static const uint8_t command_parameters16[] PROGMEM = {
PT_byte, PT_uint32, PT_buffer };
static const uint8_t command_parameters17[] PROGMEM = {
PT_byte, PT_uint16 };
static const uint8_t command_parameters18[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_uint16, PT_byte, PT_uint32, PT_uint16 };
static const uint8_t command_parameters19[] PROGMEM = {
PT_byte, PT_byte, PT_buffer };
static const uint8_t command_parameters20[] PROGMEM = {
PT_byte, PT_byte };
static const uint8_t command_parameters21[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_uint32 };
static const uint8_t command_parameters22[] PROGMEM = {
PT_byte, PT_uint32, PT_int32, PT_uint32 };
static const uint8_t command_parameters23[] PROGMEM = {
PT_uint32, PT_byte };
static const uint8_t command_parameters24[] PROGMEM = {
PT_byte };
static const uint8_t command_parameters25[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32 };
static const uint8_t command_parameters26[] PROGMEM = {
PT_byte, PT_uint32 };
static const uint8_t command_parameters27[] PROGMEM = {
PT_byte, PT_uint32, PT_byte, PT_byte, PT_uint32 };
static const uint8_t command_parameters28[] PROGMEM = {
PT_byte, PT_uint32, PT_uint16, PT_int16 };
static const uint8_t command_parameters29[] PROGMEM = {
PT_byte, PT_byte, PT_byte, PT_byte, PT_uint32 };
static const uint8_t command_parameters30[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_byte, PT_uint32, PT_byte, PT_byte, PT_byte };
static const uint8_t command_parameters31[] PROGMEM = {
PT_byte, PT_byte, PT_byte };
static const uint8_t command_parameters32[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_byte, PT_uint32, PT_uint16, PT_uint16, PT_byte };
static const uint8_t command_parameters33[] PROGMEM = {
PT_byte, PT_uint32, PT_byte };
static const uint8_t command_parameters34[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_uint32, PT_uint32 };
static const uint8_t command_parameters35[] PROGMEM = {
PT_byte, PT_buffer, PT_buffer };
static const uint8_t command_parameters36[] PROGMEM = {
PT_byte, PT_buffer, PT_uint32 };
static const uint8_t command_parameters37[] PROGMEM = {
PT_uint32, PT_uint32, PT_uint16 };
static const uint8_t command_parameters38[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_uint16, PT_uint16, PT_uint32 };
static const uint8_t command_parameters39[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_uint32, PT_uint32, PT_uint32 };
static const uint8_t command_parameters40[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_uint32, PT_uint32, PT_uint32, PT_uint32, PT_uint32 };
static const uint8_t command_parameters41[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_byte, PT_byte };
static const uint8_t command_parameters42[] PROGMEM = {
PT_byte, PT_buffer, PT_byte };
static const uint8_t command_parameters43[] PROGMEM = {
PT_byte, PT_uint32, PT_byte, PT_uint32, PT_uint32 };
static const uint8_t command_parameters44[] PROGMEM = {
PT_byte, PT_uint32, PT_uint16, PT_uint32, PT_uint32 };
static const uint8_t command_parameters45[] PROGMEM = {
PT_byte, PT_byte, PT_byte, PT_uint32, PT_uint16 };
static const uint8_t command_parameters46[] PROGMEM = {
PT_byte, PT_byte, PT_byte, PT_byte, PT_uint32, PT_uint16, PT_uint16, PT_uint32 };
static const uint8_t command_parameters47[] PROGMEM = {
PT_byte, PT_uint32, PT_uint32, PT_int32, PT_int32 };
const struct command_encoder command_encoder_81 PROGMEM = {
// starting
.msg_id=81,
.num_params=0,
.param_types = 0,
.max_size=6,
};
const struct command_encoder command_encoder_82 PROGMEM = {
// is_shutdown static_string_id=%hu
.msg_id=82,
.num_params=1,
.param_types = command_parameters0,
.max_size=9,
};
const struct command_encoder command_encoder_83 PROGMEM = {
// shutdown clock=%u static_string_id=%hu
.msg_id=83,
.num_params=2,
.param_types = command_parameters1,
.max_size=14,
};
const struct command_encoder command_encoder_0 PROGMEM = {
// identify_response offset=%u data=%.*s
.msg_id=0,
.num_params=2,
.param_types = command_parameters2,
.max_size=64,
};
const struct command_encoder command_encoder_84 PROGMEM = {
// stats count=%u sum=%u sumsq=%u
.msg_id=84,
.num_params=3,
.param_types = command_parameters3,
.max_size=21,
};
const struct command_encoder command_encoder_85 PROGMEM = {
// uptime high=%u clock=%u
.msg_id=85,
.num_params=2,
.param_types = command_parameters4,
.max_size=16,
};
const struct command_encoder command_encoder_86 PROGMEM = {
// clock clock=%u
.msg_id=86,
.num_params=1,
.param_types = command_parameters5,
.max_size=11,
};
const struct command_encoder command_encoder_87 PROGMEM = {
// config is_config=%c crc=%u is_shutdown=%c move_count=%hu
.msg_id=87,
.num_params=4,
.param_types = command_parameters6,
.max_size=18,
};
const struct command_encoder command_encoder_88 PROGMEM = {
// pong data=%*s
.msg_id=88,
.num_params=1,
.param_types = command_parameters7,
.max_size=64,
};
const struct command_encoder command_encoder_89 PROGMEM = {
// debug_result val=%u
.msg_id=89,
.num_params=1,
.param_types = command_parameters5,
.max_size=11,
};
const struct command_encoder command_encoder_90 PROGMEM = {
// stepper_position oid=%c pos=%i
.msg_id=90,
.num_params=2,
.param_types = command_parameters8,
.max_size=13,
};
const struct command_encoder command_encoder_91 PROGMEM = {
// endstop_state oid=%c homing=%c next_clock=%u pin_value=%c
.msg_id=91,
.num_params=4,
.param_types = command_parameters9,
.max_size=17,
};
const struct command_encoder command_encoder_92 PROGMEM = {
// trsync_state oid=%c can_trigger=%c trigger_reason=%c clock=%u
.msg_id=92,
.num_params=4,
.param_types = command_parameters10,
.max_size=17,
};
const struct command_encoder command_encoder_93 PROGMEM = {
// analog_in_state oid=%c next_clock=%u value=%hu
.msg_id=93,
.num_params=3,
.param_types = command_parameters11,
.max_size=16,
};
const struct command_encoder command_encoder_94 PROGMEM = {
// spi_transfer_response oid=%c response=%*s
.msg_id=94,
.num_params=2,
.param_types = command_parameters12,
.max_size=64,
};
const struct command_encoder command_encoder_95 PROGMEM = {
// thermocouple_result oid=%c next_clock=%u value=%u fault=%c
.msg_id=95,
.num_params=4,
.param_types = command_parameters13,
.max_size=20,
};
const struct command_encoder command_encoder_96 PROGMEM = {
// i2c_read_response oid=%c response=%*s
.msg_id=96,
.num_params=2,
.param_types = command_parameters12,
.max_size=64,
};
const struct command_encoder command_encoder_97 PROGMEM = {
// adxl345_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%c limit_count=%hu
.msg_id=97,
.num_params=7,
.param_types = command_parameters14,
.max_size=28,
};
const struct command_encoder command_encoder_98 PROGMEM = {
// adxl345_data oid=%c sequence=%hu data=%*s
.msg_id=98,
.num_params=3,
.param_types = command_parameters15,
.max_size=64,
};
const struct command_encoder command_encoder_99 PROGMEM = {
// spi_angle_transfer_response oid=%c clock=%u response=%*s
.msg_id=99,
.num_params=3,
.param_types = command_parameters16,
.max_size=64,
};
const struct command_encoder command_encoder_100 PROGMEM = {
// spi_angle_end oid=%c sequence=%hu
.msg_id=100,
.num_params=2,
.param_types = command_parameters17,
.max_size=11,
};
const struct command_encoder command_encoder_101 PROGMEM = {
// spi_angle_data oid=%c sequence=%hu data=%*s
.msg_id=101,
.num_params=3,
.param_types = command_parameters15,
.max_size=64,
};
const struct command_encoder command_encoder_102 PROGMEM = {
// mpu9250_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%u limit_count=%hu
.msg_id=102,
.num_params=7,
.param_types = command_parameters18,
.max_size=31,
};
const struct command_encoder command_encoder_103 PROGMEM = {
// mpu9250_data oid=%c sequence=%hu data=%*s
.msg_id=103,
.num_params=3,
.param_types = command_parameters15,
.max_size=64,
};
const struct command_encoder command_encoder_104 PROGMEM = {
// buttons_state oid=%c ack_count=%c state=%*s
.msg_id=104,
.num_params=3,
.param_types = command_parameters19,
.max_size=64,
};
const struct command_encoder command_encoder_105 PROGMEM = {
// tmcuart_response oid=%c read=%*s
.msg_id=105,
.num_params=2,
.param_types = command_parameters12,
.max_size=64,
};
const struct command_encoder command_encoder_106 PROGMEM = {
// neopixel_result oid=%c success=%c
.msg_id=106,
.num_params=2,
.param_types = command_parameters20,
.max_size=10,
};
const struct command_encoder command_encoder_107 PROGMEM = {
// counter_state oid=%c next_clock=%u count=%u count_clock=%u
.msg_id=107,
.num_params=4,
.param_types = command_parameters21,
.max_size=23,
};
const struct command_encoder command_encoder_108 PROGMEM = {
// ds18b20_result oid=%c next_clock=%u value=%i fault=%u
.msg_id=108,
.num_params=4,
.param_types = command_parameters22,
.max_size=23,
};
const __always_inline struct command_encoder *
ctr_lookup_encoder(const char *str)
{
if (__builtin_strcmp(str, "starting") == 0)
return &command_encoder_81;
if (__builtin_strcmp(str, "is_shutdown static_string_id=%hu") == 0)
return &command_encoder_82;
if (__builtin_strcmp(str, "shutdown clock=%u static_string_id=%hu") == 0)
return &command_encoder_83;
if (__builtin_strcmp(str, "identify_response offset=%u data=%.*s") == 0)
return &command_encoder_0;
if (__builtin_strcmp(str, "stats count=%u sum=%u sumsq=%u") == 0)
return &command_encoder_84;
if (__builtin_strcmp(str, "uptime high=%u clock=%u") == 0)
return &command_encoder_85;
if (__builtin_strcmp(str, "clock clock=%u") == 0)
return &command_encoder_86;
if (__builtin_strcmp(str, "config is_config=%c crc=%u is_shutdown=%c move_count=%hu") == 0)
return &command_encoder_87;
if (__builtin_strcmp(str, "pong data=%*s") == 0)
return &command_encoder_88;
if (__builtin_strcmp(str, "debug_result val=%u") == 0)
return &command_encoder_89;
if (__builtin_strcmp(str, "stepper_position oid=%c pos=%i") == 0)
return &command_encoder_90;
if (__builtin_strcmp(str, "endstop_state oid=%c homing=%c next_clock=%u pin_value=%c") == 0)
return &command_encoder_91;
if (__builtin_strcmp(str, "trsync_state oid=%c can_trigger=%c trigger_reason=%c clock=%u") == 0)
return &command_encoder_92;
if (__builtin_strcmp(str, "analog_in_state oid=%c next_clock=%u value=%hu") == 0)
return &command_encoder_93;
if (__builtin_strcmp(str, "spi_transfer_response oid=%c response=%*s") == 0)
return &command_encoder_94;
if (__builtin_strcmp(str, "thermocouple_result oid=%c next_clock=%u value=%u fault=%c") == 0)
return &command_encoder_95;
if (__builtin_strcmp(str, "i2c_read_response oid=%c response=%*s") == 0)
return &command_encoder_96;
if (__builtin_strcmp(str, "adxl345_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%c limit_count=%hu") == 0)
return &command_encoder_97;
if (__builtin_strcmp(str, "adxl345_data oid=%c sequence=%hu data=%*s") == 0)
return &command_encoder_98;
if (__builtin_strcmp(str, "spi_angle_transfer_response oid=%c clock=%u response=%*s") == 0)
return &command_encoder_99;
if (__builtin_strcmp(str, "spi_angle_end oid=%c sequence=%hu") == 0)
return &command_encoder_100;
if (__builtin_strcmp(str, "spi_angle_data oid=%c sequence=%hu data=%*s") == 0)
return &command_encoder_101;
if (__builtin_strcmp(str, "mpu9250_status oid=%c clock=%u query_ticks=%u next_sequence=%hu buffered=%c fifo=%u limit_count=%hu") == 0)
return &command_encoder_102;
if (__builtin_strcmp(str, "mpu9250_data oid=%c sequence=%hu data=%*s") == 0)
return &command_encoder_103;
if (__builtin_strcmp(str, "buttons_state oid=%c ack_count=%c state=%*s") == 0)
return &command_encoder_104;
if (__builtin_strcmp(str, "tmcuart_response oid=%c read=%*s") == 0)
return &command_encoder_105;
if (__builtin_strcmp(str, "neopixel_result oid=%c success=%c") == 0)
return &command_encoder_106;
if (__builtin_strcmp(str, "counter_state oid=%c next_clock=%u count=%u count_clock=%u") == 0)
return &command_encoder_107;
if (__builtin_strcmp(str, "ds18b20_result oid=%c next_clock=%u value=%i fault=%u") == 0)
return &command_encoder_108;
return NULL;
}
const __always_inline struct command_encoder *
ctr_lookup_output(const char *str)
{
return NULL;
}
extern void command_allocate_oids(uint32_t*);
extern void command_buttons_ack(uint32_t*);
extern void command_buttons_add(uint32_t*);
extern void command_buttons_query(uint32_t*);
extern void command_clear_shutdown(uint32_t*);
extern void command_config_adxl345(uint32_t*);
extern void command_config_analog_in(uint32_t*);
extern void command_config_buttons(uint32_t*);
extern void command_config_counter(uint32_t*);
extern void command_config_digital_out(uint32_t*);
extern void command_config_ds18b20(uint32_t*);
extern void command_config_endstop(uint32_t*);
extern void command_config_hd44780(uint32_t*);
extern void command_config_i2c(uint32_t*);
extern void command_config_mpu9250(uint32_t*);
extern void command_config_neopixel(uint32_t*);
extern void command_config_pca9685(uint32_t*);
extern void command_config_pwm_out(uint32_t*);
extern void command_config_reset(uint32_t*);
extern void command_config_spi(uint32_t*);
extern void command_config_spi_angle(uint32_t*);
extern void command_config_spi_shutdown(uint32_t*);
extern void command_config_spi_without_cs(uint32_t*);
extern void command_config_st7920(uint32_t*);
extern void command_config_stepper(uint32_t*);
extern void command_config_thermocouple(uint32_t*);
extern void command_config_tmcuart(uint32_t*);
extern void command_config_trsync(uint32_t*);
extern void command_debug_nop(uint32_t*);
extern void command_debug_ping(uint32_t*);
extern void command_debug_read(uint32_t*);
extern void command_debug_write(uint32_t*);
extern void command_emergency_stop(uint32_t*);
extern void command_endstop_home(uint32_t*);
extern void command_endstop_query_state(uint32_t*);
extern void command_finalize_config(uint32_t*);
extern void command_get_clock(uint32_t*);
extern void command_get_config(uint32_t*);
extern void command_get_uptime(uint32_t*);
extern void command_hd44780_send_cmds(uint32_t*);
extern void command_hd44780_send_data(uint32_t*);
extern void command_i2c_modify_bits(uint32_t*);
extern void command_i2c_read(uint32_t*);
extern void command_i2c_write(uint32_t*);
extern void command_identify(uint32_t*);
extern void command_neopixel_send(uint32_t*);
extern void command_neopixel_update(uint32_t*);
extern void command_query_adxl345(uint32_t*);
extern void command_query_adxl345_status(uint32_t*);
extern void command_query_analog_in(uint32_t*);
extern void command_query_counter(uint32_t*);
extern void command_query_ds18b20(uint32_t*);
extern void command_query_mpu9250(uint32_t*);
extern void command_query_mpu9250_status(uint32_t*);
extern void command_query_spi_angle(uint32_t*);
extern void command_query_thermocouple(uint32_t*);
extern void command_queue_digital_out(uint32_t*);
extern void command_queue_pca9685_out(uint32_t*);
extern void command_queue_pwm_out(uint32_t*);
extern void command_queue_step(uint32_t*);
extern void command_reset_step_clock(uint32_t*);
extern void command_set_digital_out(uint32_t*);
extern void command_set_digital_out_pwm_cycle(uint32_t*);
extern void command_set_next_step_dir(uint32_t*);
extern void command_set_pca9685_out(uint32_t*);
extern void command_set_pwm_out(uint32_t*);
extern void command_spi_angle_transfer(uint32_t*);
extern void command_spi_send(uint32_t*);
extern void command_spi_set_bus(uint32_t*);
extern void command_spi_set_software_bus(uint32_t*);
extern void command_spi_transfer(uint32_t*);
extern void command_st7920_send_cmds(uint32_t*);
extern void command_st7920_send_data(uint32_t*);
extern void command_stepper_get_position(uint32_t*);
extern void command_stepper_stop_on_trigger(uint32_t*);
extern void command_tmcuart_send(uint32_t*);
extern void command_trsync_set_timeout(uint32_t*);
extern void command_trsync_start(uint32_t*);
extern void command_trsync_trigger(uint32_t*);
extern void command_update_digital_out(uint32_t*);
const struct command_parser command_index[] PROGMEM = {
{
}, {
// identify offset=%u count=%c
.msg_id=1,
.num_params=2,
.param_types = command_parameters23,
.num_args=2,
.flags=0x01,
.func=command_identify
}, {
// clear_shutdown
.msg_id=2,
.num_params=0,
.param_types = 0,
.num_args=0,
.flags=0x01,
.func=command_clear_shutdown
}, {
// emergency_stop
.msg_id=3,
.num_params=0,
.param_types = 0,
.num_args=0,
.flags=0x01,
.func=command_emergency_stop
}, {
// get_uptime
.msg_id=4,
.num_params=0,
.param_types = 0,
.num_args=0,
.flags=0x01,
.func=command_get_uptime
}, {
// get_clock
.msg_id=5,
.num_params=0,
.param_types = 0,
.num_args=0,
.flags=0x01,
.func=command_get_clock
}, {
// finalize_config crc=%u
.msg_id=6,
.num_params=1,
.param_types = command_parameters5,
.num_args=1,
.flags=0,
.func=command_finalize_config
}, {
// get_config
.msg_id=7,
.num_params=0,
.param_types = 0,
.num_args=0,
.flags=0x01,
.func=command_get_config
}, {
// allocate_oids count=%c
.msg_id=8,
.num_params=1,
.param_types = command_parameters24,
.num_args=1,
.flags=0,
.func=command_allocate_oids
}, {
// debug_nop
.msg_id=9,
.num_params=0,
.param_types = 0,
.num_args=0,
.flags=0x01,
.func=command_debug_nop
}, {
// debug_ping data=%*s
.msg_id=10,
.num_params=1,
.param_types = command_parameters7,
.num_args=2,
.flags=0x01,
.func=command_debug_ping
}, {
// debug_write order=%c addr=%u val=%u
.msg_id=11,
.num_params=3,
.param_types = command_parameters25,
.num_args=3,
.flags=0x01,
.func=command_debug_write
}, {
// debug_read order=%c addr=%u
.msg_id=12,
.num_params=2,
.param_types = command_parameters26,
.num_args=2,
.flags=0x01,
.func=command_debug_read
}, {
// set_digital_out pin=%u value=%c
.msg_id=13,
.num_params=2,
.param_types = command_parameters23,
.num_args=2,
.flags=0,
.func=command_set_digital_out
}, {
// update_digital_out oid=%c value=%c
.msg_id=14,
.num_params=2,
.param_types = command_parameters20,
.num_args=2,
.flags=0,
.func=command_update_digital_out
}, {
// queue_digital_out oid=%c clock=%u on_ticks=%u
.msg_id=15,
.num_params=3,
.param_types = command_parameters25,
.num_args=3,
.flags=0,
.func=command_queue_digital_out
}, {
// set_digital_out_pwm_cycle oid=%c cycle_ticks=%u
.msg_id=16,
.num_params=2,
.param_types = command_parameters26,
.num_args=2,
.flags=0,
.func=command_set_digital_out_pwm_cycle
}, {
// config_digital_out oid=%c pin=%u value=%c default_value=%c max_duration=%u
.msg_id=17,
.num_params=5,
.param_types = command_parameters27,
.num_args=5,
.flags=0,
.func=command_config_digital_out
}, {
// stepper_stop_on_trigger oid=%c trsync_oid=%c
.msg_id=18,
.num_params=2,
.param_types = command_parameters20,
.num_args=2,
.flags=0,
.func=command_stepper_stop_on_trigger
}, {
// stepper_get_position oid=%c
.msg_id=19,
.num_params=1,
.param_types = command_parameters24,
.num_args=1,
.flags=0,
.func=command_stepper_get_position
}, {
// reset_step_clock oid=%c clock=%u
.msg_id=20,
.num_params=2,
.param_types = command_parameters26,
.num_args=2,
.flags=0,
.func=command_reset_step_clock
}, {
// set_next_step_dir oid=%c dir=%c
.msg_id=21,
.num_params=2,
.param_types = command_parameters20,
.num_args=2,
.flags=0,
.func=command_set_next_step_dir
}, {
// queue_step oid=%c interval=%u count=%hu add=%hi
.msg_id=22,
.num_params=4,
.param_types = command_parameters28,
.num_args=4,
.flags=0,
.func=command_queue_step
}, {
// config_stepper oid=%c step_pin=%c dir_pin=%c invert_step=%c step_pulse_ticks=%u
.msg_id=23,
.num_params=5,
.param_types = command_parameters29,
.num_args=5,
.flags=0,
.func=command_config_stepper
}, {
// endstop_query_state oid=%c
.msg_id=24,
.num_params=1,
.param_types = command_parameters24,
.num_args=1,
.flags=0,
.func=command_endstop_query_state
}, {
// endstop_home oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u pin_value=%c trsync_oid=%c trigger_reason=%c
.msg_id=25,
.num_params=8,
.param_types = command_parameters30,
.num_args=8,
.flags=0,
.func=command_endstop_home
}, {
// config_endstop oid=%c pin=%c pull_up=%c
.msg_id=26,
.num_params=3,
.param_types = command_parameters31,
.num_args=3,
.flags=0,
.func=command_config_endstop
}, {
// trsync_trigger oid=%c reason=%c
.msg_id=27,
.num_params=2,
.param_types = command_parameters20,
.num_args=2,
.flags=0,
.func=command_trsync_trigger
}, {
// trsync_set_timeout oid=%c clock=%u
.msg_id=28,
.num_params=2,
.param_types = command_parameters26,
.num_args=2,
.flags=0,
.func=command_trsync_set_timeout
}, {
// trsync_start oid=%c report_clock=%u report_ticks=%u expire_reason=%c
.msg_id=29,
.num_params=4,
.param_types = command_parameters13,
.num_args=4,
.flags=0,
.func=command_trsync_start
}, {
// config_trsync oid=%c
.msg_id=30,
.num_params=1,
.param_types = command_parameters24,
.num_args=1,
.flags=0,
.func=command_config_trsync
}, {
// query_analog_in oid=%c clock=%u sample_ticks=%u sample_count=%c rest_ticks=%u min_value=%hu max_value=%hu range_check_count=%c
.msg_id=31,
.num_params=8,
.param_types = command_parameters32,
.num_args=8,
.flags=0,
.func=command_query_analog_in
}, {
// config_analog_in oid=%c pin=%u
.msg_id=32,
.num_params=2,
.param_types = command_parameters26,
.num_args=2,
.flags=0,
.func=command_config_analog_in
}, {
// config_spi_shutdown oid=%c spi_oid=%c shutdown_msg=%*s
.msg_id=33,
.num_params=3,
.param_types = command_parameters19,
.num_args=4,
.flags=0,
.func=command_config_spi_shutdown
}, {
// spi_send oid=%c data=%*s
.msg_id=34,
.num_params=2,
.param_types = command_parameters12,
.num_args=3,
.flags=0,
.func=command_spi_send
}, {
// spi_transfer oid=%c data=%*s
.msg_id=35,
.num_params=2,
.param_types = command_parameters12,
.num_args=3,
.flags=0,
.func=command_spi_transfer
}, {
// spi_set_bus oid=%c spi_bus=%u mode=%u rate=%u
.msg_id=36,
.num_params=4,
.param_types = command_parameters21,
.num_args=4,
.flags=0,
.func=command_spi_set_bus
}, {
// config_spi_without_cs oid=%c
.msg_id=37,
.num_params=1,
.param_types = command_parameters24,
.num_args=1,
.flags=0,
.func=command_config_spi_without_cs
}, {
// config_spi oid=%c pin=%u cs_active_high=%c
.msg_id=38,
.num_params=3,
.param_types = command_parameters33,
.num_args=3,
.flags=0,
.func=command_config_spi
}, {
// query_thermocouple oid=%c clock=%u rest_ticks=%u min_value=%u max_value=%u
.msg_id=39,
.num_params=5,
.param_types = command_parameters34,
.num_args=5,
.flags=0,
.func=command_query_thermocouple
}, {
// config_thermocouple oid=%c spi_oid=%c thermocouple_type=%c
.msg_id=40,
.num_params=3,
.param_types = command_parameters31,
.num_args=3,
.flags=0,
.func=command_config_thermocouple
}, {
// i2c_modify_bits oid=%c reg=%*s clear_set_bits=%*s
.msg_id=41,
.num_params=3,
.param_types = command_parameters35,
.num_args=5,
.flags=0,
.func=command_i2c_modify_bits
}, {
// i2c_read oid=%c reg=%*s read_len=%u
.msg_id=42,
.num_params=3,
.param_types = command_parameters36,
.num_args=4,
.flags=0,
.func=command_i2c_read
}, {
// i2c_write oid=%c data=%*s
.msg_id=43,
.num_params=2,
.param_types = command_parameters12,
.num_args=3,
.flags=0,
.func=command_i2c_write
}, {
// config_i2c oid=%c i2c_bus=%u rate=%u address=%u
.msg_id=44,
.num_params=4,
.param_types = command_parameters21,
.num_args=4,
.flags=0,
.func=command_config_i2c
}, {
// set_pwm_out pin=%u cycle_ticks=%u value=%hu
.msg_id=45,
.num_params=3,
.param_types = command_parameters37,
.num_args=3,
.flags=0,
.func=command_set_pwm_out
}, {
// queue_pwm_out oid=%c clock=%u value=%hu
.msg_id=46,
.num_params=3,
.param_types = command_parameters11,
.num_args=3,
.flags=0,
.func=command_queue_pwm_out
}, {
// config_pwm_out oid=%c pin=%u cycle_ticks=%u value=%hu default_value=%hu max_duration=%u
.msg_id=47,
.num_params=6,
.param_types = command_parameters38,
.num_args=6,
.flags=0,
.func=command_config_pwm_out
}, {
// spi_set_software_bus oid=%c miso_pin=%u mosi_pin=%u sclk_pin=%u mode=%u rate=%u
.msg_id=48,
.num_params=6,
.param_types = command_parameters39,
.num_args=6,
.flags=0,
.func=command_spi_set_software_bus
}, {
// query_adxl345_status oid=%c
.msg_id=49,
.num_params=1,
.param_types = command_parameters24,
.num_args=1,
.flags=0,
.func=command_query_adxl345_status
}, {
// query_adxl345 oid=%c clock=%u rest_ticks=%u
.msg_id=50,
.num_params=3,
.param_types = command_parameters25,
.num_args=3,
.flags=0,
.func=command_query_adxl345
}, {
// config_adxl345 oid=%c spi_oid=%c
.msg_id=51,
.num_params=2,
.param_types = command_parameters20,
.num_args=2,
.flags=0,
.func=command_config_adxl345
}, {
// spi_angle_transfer oid=%c data=%*s
.msg_id=52,
.num_params=2,
.param_types = command_parameters12,
.num_args=3,
.flags=0,
.func=command_spi_angle_transfer
}, {
// query_spi_angle oid=%c clock=%u rest_ticks=%u time_shift=%c
.msg_id=53,
.num_params=4,
.param_types = command_parameters13,
.num_args=4,
.flags=0,
.func=command_query_spi_angle
}, {
// config_spi_angle oid=%c spi_oid=%c spi_angle_type=%c
.msg_id=54,
.num_params=3,
.param_types = command_parameters31,
.num_args=3,
.flags=0,
.func=command_config_spi_angle
}, {
// query_mpu9250_status oid=%c
.msg_id=55,
.num_params=1,
.param_types = command_parameters24,
.num_args=1,
.flags=0,
.func=command_query_mpu9250_status
}, {
// query_mpu9250 oid=%c clock=%u rest_ticks=%u
.msg_id=56,
.num_params=3,
.param_types = command_parameters25,
.num_args=3,
.flags=0,
.func=command_query_mpu9250
}, {
// config_mpu9250 oid=%c i2c_oid=%c
.msg_id=57,
.num_params=2,
.param_types = command_parameters20,
.num_args=2,
.flags=0,
.func=command_config_mpu9250
}, {
// st7920_send_data oid=%c data=%*s
.msg_id=58,
.num_params=2,
.param_types = command_parameters12,
.num_args=3,
.flags=0,
.func=command_st7920_send_data
}, {
// st7920_send_cmds oid=%c cmds=%*s
.msg_id=59,
.num_params=2,
.param_types = command_parameters12,
.num_args=3,
.flags=0,
.func=command_st7920_send_cmds
}, {
// config_st7920 oid=%c cs_pin=%u sclk_pin=%u sid_pin=%u sync_delay_ticks=%u cmd_delay_ticks=%u
.msg_id=60,
.num_params=6,
.param_types = command_parameters39,
.num_args=6,
.flags=0,
.func=command_config_st7920
}, {
// hd44780_send_data oid=%c data=%*s
.msg_id=61,
.num_params=2,
.param_types = command_parameters12,
.num_args=3,
.flags=0,
.func=command_hd44780_send_data
}, {
// hd44780_send_cmds oid=%c cmds=%*s
.msg_id=62,
.num_params=2,
.param_types = command_parameters12,
.num_args=3,
.flags=0,
.func=command_hd44780_send_cmds
}, {
// config_hd44780 oid=%c rs_pin=%u e_pin=%u d4_pin=%u d5_pin=%u d6_pin=%u d7_pin=%u delay_ticks=%u
.msg_id=63,
.num_params=8,
.param_types = command_parameters40,
.num_args=8,
.flags=0,
.func=command_config_hd44780
}, {
// buttons_ack oid=%c count=%c
.msg_id=64,
.num_params=2,
.param_types = command_parameters20,
.num_args=2,
.flags=0,
.func=command_buttons_ack
}, {
// buttons_query oid=%c clock=%u rest_ticks=%u retransmit_count=%c invert=%c
.msg_id=65,
.num_params=5,
.param_types = command_parameters41,
.num_args=5,
.flags=0,
.func=command_buttons_query
}, {
// buttons_add oid=%c pos=%c pin=%u pull_up=%c
.msg_id=66,
.num_params=4,
.param_types = command_parameters9,
.num_args=4,
.flags=0,
.func=command_buttons_add
}, {
// config_buttons oid=%c button_count=%c
.msg_id=67,
.num_params=2,
.param_types = command_parameters20,
.num_args=2,
.flags=0,
.func=command_config_buttons
}, {
// tmcuart_send oid=%c write=%*s read=%c
.msg_id=68,
.num_params=3,
.param_types = command_parameters42,
.num_args=4,
.flags=0,
.func=command_tmcuart_send
}, {
// config_tmcuart oid=%c rx_pin=%u pull_up=%c tx_pin=%u bit_time=%u
.msg_id=69,
.num_params=5,
.param_types = command_parameters43,
.num_args=5,
.flags=0,
.func=command_config_tmcuart
}, {
// neopixel_send oid=%c
.msg_id=70,
.num_params=1,
.param_types = command_parameters24,
.num_args=1,
.flags=0,
.func=command_neopixel_send
}, {
// neopixel_update oid=%c pos=%hu data=%*s
.msg_id=71,
.num_params=3,
.param_types = command_parameters15,
.num_args=4,
.flags=0,
.func=command_neopixel_update
}, {
// config_neopixel oid=%c pin=%u data_size=%hu bit_max_ticks=%u reset_min_ticks=%u
.msg_id=72,
.num_params=5,
.param_types = command_parameters44,
.num_args=5,
.flags=0,
.func=command_config_neopixel
}, {
// query_counter oid=%c clock=%u poll_ticks=%u sample_ticks=%u
.msg_id=73,
.num_params=4,
.param_types = command_parameters21,
.num_args=4,
.flags=0,
.func=command_query_counter
}, {
// config_counter oid=%c pin=%u pull_up=%c
.msg_id=74,
.num_params=3,
.param_types = command_parameters33,
.num_args=3,
.flags=0,
.func=command_config_counter
}, {
// config_reset
.msg_id=75,
.num_params=0,
.param_types = 0,
.num_args=0,
.flags=0x01,
.func=command_config_reset
}, {
// set_pca9685_out bus=%c addr=%c channel=%c cycle_ticks=%u value=%hu
.msg_id=76,
.num_params=5,
.param_types = command_parameters45,
.num_args=5,
.flags=0,
.func=command_set_pca9685_out
}, {
// queue_pca9685_out oid=%c clock=%u value=%hu
.msg_id=77,
.num_params=3,
.param_types = command_parameters11,
.num_args=3,
.flags=0,
.func=command_queue_pca9685_out
}, {
// config_pca9685 oid=%c bus=%c addr=%c channel=%c cycle_ticks=%u value=%hu default_value=%hu max_duration=%u
.msg_id=78,
.num_params=8,
.param_types = command_parameters46,
.num_args=8,
.flags=0,
.func=command_config_pca9685
}, {
// query_ds18b20 oid=%c clock=%u rest_ticks=%u min_value=%i max_value=%i
.msg_id=79,
.num_params=5,
.param_types = command_parameters47,
.num_args=5,
.flags=0,
.func=command_query_ds18b20
}, {
// config_ds18b20 oid=%c serial=%*s max_error_count=%c
.msg_id=80,
.num_params=3,
.param_types = command_parameters42,
.num_args=4,
.flags=0,
.func=command_config_ds18b20
},
};
const uint8_t command_index_size PROGMEM = ARRAY_SIZE(command_index);
// version: v0.10.0-530-g3387a9c2
// build_versions: gcc: (Debian 8.3.0-6) 8.3.0 binutils: (GNU Binutils for Debian) 2.31.1
const uint8_t command_identify_data[] PROGMEM = {
0x78, 0xda, 0xa5, 0x1a, 0x6b, 0x6f, 0xdb, 0x38,
0xf2, 0xaf, 0xf0, 0x0c, 0x14, 0xdd, 0x1e, 0x12,
0xaf, 0xad, 0x87, 0x2d, 0x1b, 0xe8, 0x87, 0x34,
0xed, 0x2e, 0x8a, 0xbb, 0x5c, 0xbb, 0x9b, 0x16,
0x77, 0xc0, 0x61, 0x21, 0x28, 0x12, 0x6d, 0x13,
0xd1, 0x6b, 0x45, 0x29, 0x8f, 0x5b, 0xe4, 0xbf,
0xdf, 0x0c, 0x87, 0x2f, 0xc9, 0x4e, 0xda, 0xbb,
0xcd, 0x17, 0x53, 0x9c, 0x19, 0x72, 0x38, 0x9c,
0x37, 0xf3, 0xc7, 0xec, 0x66, 0x10, 0x65, 0x91,
0xde, 0xf1, 0x4e, 0x8a, 0xa6, 0x96, 0xb3, 0xed,
0x6c, 0x9f, 0xe7, 0x5b, 0xf6, 0xc3, 0x7b, 0x7e,
0x23, 0xb2, 0x9a, 0x25, 0xf3, 0x70, 0xbe, 0x38,
0x5f, 0xbd, 0xa1, 0x01, 0xbb, 0x11, 0xf5, 0xd0,
0x8b, 0x52, 0x02, 0xc2, 0xcf, 0xff, 0xf8, 0xca,
0xde, 0xe9, 0x4f, 0xb6, 0x6b, 0x3a, 0x46, 0x14,
0x6f, 0x58, 0x30, 0x0f, 0x97, 0xf3, 0xe5, 0xec,
0x6c, 0x96, 0x37, 0x55, 0x95, 0xd5, 0x05, 0xac,
0xf9, 0xc7, 0x2c, 0x2b, 0xcb, 0x26, 0xcf, 0x7a,
0x9e, 0x36, 0xa2, 0x90, 0x2c, 0x6f, 0x86, 0xba,
0x7f, 0xfb, 0x2a, 0x9f, 0x6d, 0x93, 0x33, 0x60,
0xa0, 0xef, 0x61, 0xe7, 0x34, 0xcb, 0x6f, 0x19,
0x40, 0x61, 0xda, 0x83, 0xaf, 0x22, 0x0f, 0xa1,
0x28, 0x0c, 0x42, 0xdb, 0x48, 0xf5, 0x23, 0xea,
0xb7, 0xaf, 0x06, 0xd6, 0x0e, 0x65, 0x99, 0x0e,
0x2d, 0x11, 0xac, 0x1c, 0xc1, 0xef, 0x03, 0xef,
0x1e, 0xed, 0x9a, 0xc0, 0xc0, 0x2d, 0x62, 0x77,
0x5c, 0xf6, 0x69, 0x2f, 0xf2, 0x5b, 0x49, 0x5f,
0x7d, 0x97, 0xd5, 0xb2, 0x12, 0x7d, 0x6a, 0x76,
0x65, 0xa2, 0x06, 0x71, 0xe8, 0xfd, 0x63, 0x38,
0x47, 0xc9, 0xb3, 0x2e, 0x95, 0x87, 0xa1, 0x2f,
0x9a, 0xfb, 0x7a, 0xb6, 0x0d, 0xf0, 0x68, 0xf5,
0x4e, 0xec, 0x81, 0xa3, 0x87, 0x32, 0x8c, 0x62,
0xb3, 0x85, 0x6c, 0x45, 0x4a, 0xc3, 0xd9, 0x36,
0x5e, 0x3a, 0xac, 0x3a, 0x2b, 0x9b, 0x7d, 0x2a,
0x6a, 0xcb, 0xbd, 0x62, 0x7b, 0xb6, 0x0d, 0xdd,
0x4a, 0x9a, 0x65, 0x83, 0x41, 0x9f, 0xa9, 0x27,
0x87, 0xb5, 0x45, 0x55, 0x93, 0xbc, 0x1b, 0x2f,
0x36, 0x92, 0xc1, 0x3a, 0xb2, 0xc8, 0x85, 0xd8,
0x8b, 0x3e, 0x2b, 0xd3, 0x66, 0xe8, 0x27, 0x04,
0x77, 0x59, 0x39, 0x70, 0xfc, 0x2e, 0xf8, 0x2e,
0x1b, 0xca, 0x3e, 0xb5, 0x13, 0x55, 0xf6, 0x90,
0x16, 0x43, 0x97, 0xf5, 0xa0, 0x10, 0x8a, 0xcf,
0xa5, 0xdb, 0xbc, 0x90, 0xcb, 0xe4, 0x26, 0x58,
0xd8, 0x13, 0xf3, 0x4e, 0x64, 0xe5, 0xdb, 0x57,
0x7f, 0x95, 0x8a, 0x8a, 0x77, 0x5d, 0xd3, 0x79,
0x5c, 0x27, 0x0b, 0x4b, 0xc8, 0x41, 0x11, 0xfa,
0xa6, 0x1d, 0x31, 0x91, 0x8f, 0xb8, 0x0e, 0x56,
0x16, 0xf9, 0x50, 0x44, 0xd1, 0x3a, 0xb1, 0xbb,
0x74, 0x32, 0xd5, 0x4c, 0x73, 0x33, 0x28, 0x22,
0x3b, 0x8a, 0xed, 0x68, 0x65, 0x47, 0x6b, 0x3b,
0xe2, 0x65, 0xf6, 0x68, 0x6f, 0x1b, 0xe4, 0x18,
0xda, 0x4d, 0x44, 0x90, 0x9b, 0x0d, 0x60, 0x08,
0x37, 0x40, 0xfa, 0x00, 0x4a, 0x8a, 0xbf, 0xa0,
0x6c, 0xa0, 0x28, 0x44, 0x14, 0x39, 0x79, 0x56,
0xed, 0xb0, 0x09, 0xe2, 0x85, 0x4f, 0x68, 0x6f,
0xdc, 0x49, 0xa9, 0xe6, 0x4d, 0x2b, 0x1e, 0x78,
0x39, 0x11, 0x79, 0x91, 0xf5, 0x59, 0x2a, 0xc5,
0x7f, 0x60, 0x83, 0xc3, 0x00, 0xb6, 0xd4, 0xa7,
0x28, 0x34, 0x4f, 0x15, 0x25, 0x87, 0x29, 0x51,
0x7b, 0xfc, 0xae, 0x9d, 0x8a, 0xb4, 0x79, 0xb6,
0x59, 0x25, 0xb1, 0x53, 0x11, 0x65, 0x02, 0xc8,
0xa7, 0x52, 0xef, 0x43, 0x56, 0xd7, 0xbc, 0x54,
0xc3, 0x47, 0xd0, 0x58, 0xb7, 0xac, 0xbe, 0xd7,
0xc3, 0x30, 0xbd, 0x69, 0x98, 0x39, 0xba, 0xea,
0x75, 0xe2, 0xf6, 0xbb, 0xaf, 0x4e, 0xa8, 0xcd,
0x9f, 0x59, 0x3c, 0x72, 0x12, 0x52, 0x67, 0x85,
0xed, 0x62, 0x3b, 0x03, 0xc6, 0x33, 0xdd, 0x0a,
0x7d, 0x42, 0x2f, 0xee, 0x78, 0x7a, 0x10, 0xfb,
0x83, 0x92, 0x71, 0x98, 0xf8, 0xf8, 0x60, 0x59,
0xfb, 0x92, 0x1f, 0x5b, 0x1f, 0xb3, 0xb0, 0xb4,
0x7f, 0x6c, 0x39, 0xdd, 0x4e, 0x34, 0xa2, 0x34,
0xd6, 0x7c, 0x8a, 0x58, 0x83, 0xd2, 0x4a, 0xee,
0x51, 0xb3, 0x61, 0xd7, 0x70, 0x44, 0x7b, 0x2f,
0xfa, 0x03, 0x08, 0x26, 0xcd, 0x8d, 0xb9, 0x02,
0x86, 0x3b, 0x99, 0xec, 0xd7, 0x1b, 0x67, 0x20,
0xb9, 0x55, 0x5d, 0x99, 0x97, 0xb7, 0x76, 0x2c,
0x0a, 0x3b, 0x7c, 0xac, 0xf3, 0x74, 0xac, 0xa5,
0x2c, 0xaf, 0x8a, 0xf4, 0x48, 0x71, 0x17, 0xde,
0x0e, 0xbc, 0x6d, 0x9d, 0x03, 0xc0, 0xcf, 0x54,
0xdb, 0x53, 0x21, 0x3a, 0x33, 0x24, 0x27, 0xa6,
0x90, 0x1d, 0xd6, 0x50, 0x4a, 0xee, 0x2d, 0x1a,
0xb8, 0x83, 0xf5, 0x07, 0xde, 0x55, 0x0d, 0x98,
0x6e, 0x7b, 0x52, 0xa2, 0x3e, 0xd8, 0x09, 0x35,
0x72, 0x4c, 0xf5, 0x55, 0x3e, 0x64, 0x9d, 0xd5,
0x96, 0xee, 0x21, 0x3d, 0x72, 0x4c, 0xac, 0xb7,
0x93, 0xa8, 0xfb, 0xbd, 0xa8, 0x38, 0x1d, 0x6d,
0xe3, 0x56, 0xe9, 0x50, 0x1e, 0x4e, 0xac, 0xb0,
0x7e, 0xc1, 0x6f, 0x06, 0xb0, 0xa8, 0xa6, 0x9d,
0x6d, 0x37, 0xe6, 0x0b, 0x56, 0xd9, 0x2b, 0x6b,
0xa2, 0xfb, 0x59, 0x5a, 0xb4, 0x8e, 0x67, 0x10,
0x23, 0xba, 0x82, 0x77, 0xce, 0x36, 0xd0, 0x81,
0x05, 0x06, 0xe1, 0xbe, 0x13, 0x3d, 0x3f, 0xc2,
0x40, 0x35, 0x26, 0x44, 0xf0, 0xda, 0xbc, 0xe2,
0xdd, 0x9e, 0xd7, 0xf9, 0x63, 0x8a, 0x0e, 0x0b,
0x98, 0x80, 0x29, 0x72, 0x5e, 0xe9, 0xa1, 0xa9,
0xf8, 0x51, 0x3c, 0x91, 0x59, 0xd5, 0xfa, 0x26,
0xa1, 0xbf, 0x6d, 0x34, 0x19, 0xc7, 0x1b, 0x60,
0xdd, 0x79, 0x5a, 0x3a, 0xae, 0x95, 0x71, 0x27,
0xf6, 0x7b, 0xde, 0xe1, 0x21, 0x24, 0x5a, 0x0c,
0xfa, 0xc4, 0xd8, 0x6d, 0xae, 0xa2, 0x19, 0xf0,
0x94, 0xf5, 0xdc, 0x0a, 0x28, 0x00, 0xad, 0xde,
0x09, 0x88, 0x2f, 0xe0, 0x54, 0x52, 0x92, 0x21,
0xcb, 0xbb, 0x9c, 0xc4, 0x7a, 0x36, 0xdb, 0x83,
0x3f, 0x51, 0x7c, 0x82, 0xfe, 0xeb, 0x2f, 0x85,
0x03, 0x86, 0x47, 0x9f, 0x43, 0x8b, 0xb7, 0x00,
0x17, 0x79, 0x36, 0xd3, 0x3e, 0x37, 0x95, 0xb0,
0x5f, 0x0a, 0x1a, 0x68, 0x63, 0x11, 0x8e, 0x49,
0xce, 0xab, 0x60, 0x82, 0x86, 0x57, 0x60, 0xd0,
0xdc, 0x75, 0xac, 0x40, 0x88, 0xe8, 0x18, 0xab,
0xa6, 0x10, 0xbb, 0xc7, 0x14, 0xee, 0xda, 0xae,
0xd5, 0x71, 0x65, 0x52, 0x4c, 0x87, 0x54, 0xe0,
0x00, 0xa1, 0x44, 0x16, 0x69, 0x32, 0xba, 0xc3,
0x31, 0x3e, 0xce, 0xa5, 0x25, 0xd7, 0x6e, 0x24,
0x20, 0x44, 0x7d, 0x97, 0xd3, 0xed, 0x23, 0xb8,
0x30, 0x51, 0xf0, 0xba, 0x87, 0xcd, 0x59, 0xb3,
0xdb, 0xc1, 0x2e, 0xca, 0xa8, 0x6c, 0x54, 0x82,
0x7d, 0x8c, 0x83, 0x56, 0xc7, 0xb0, 0xd2, 0x5c,
0x2f, 0x3c, 0xc8, 0xd0, 0x16, 0x4e, 0xd2, 0x94,
0x70, 0x1c, 0x06, 0x6f, 0x9b, 0x35, 0x2c, 0x43,
0x57, 0x32, 0xc9, 0x02, 0x4e, 0x27, 0x1a, 0x70,
0x03, 0x8b, 0x09, 0x81, 0xba, 0xcb, 0xc1, 0x39,
0x91, 0x68, 0x63, 0x11, 0xa6, 0x19, 0xc3, 0xff,
0xa9, 0x6c, 0x95, 0x53, 0x36, 0xed, 0x8f, 0xdd,
0x17, 0x64, 0x3d, 0x7b, 0x20, 0x3c, 0xf0, 0xfc,
0xd6, 0x8b, 0xd8, 0xa1, 0x3d, 0xd5, 0x24, 0xcd,
0xb0, 0x1c, 0xb4, 0x0d, 0xd8, 0xf3, 0x74, 0x7f,
0x2f, 0x60, 0x85, 0x66, 0x81, 0x49, 0xaa, 0xf0,
0x4c, 0xfe, 0xe5, 0xb1, 0x28, 0x7c, 0x0e, 0x05,
0x2c, 0x65, 0xe5, 0x31, 0x89, 0xba, 0xcf, 0x4a,
0x78, 0x35, 0x21, 0x98, 0x4a, 0x38, 0x8e, 0x0d,
0xc2, 0x51, 0xf4, 0x78, 0x86, 0x3d, 0x34, 0x0f,
0x08, 0x16, 0x62, 0x47, 0xe2, 0x89, 0xed, 0xe9,
0x4e, 0xf9, 0xcb, 0x6f, 0x1f, 0x71, 0x74, 0x09,
0x98, 0x01, 0xd2, 0x11, 0x07, 0x7e, 0x2a, 0x51,
0xb3, 0xcb, 0x35, 0x7e, 0x46, 0xb0, 0x8c, 0x0d,
0x89, 0x4e, 0x08, 0x4e, 0x92, 0xd8, 0x7b, 0x06,
0x31, 0xae, 0x2d, 0xc1, 0x38, 0xa2, 0x9f, 0x42,
0x8e, 0x56, 0x06, 0x19, 0x03, 0x86, 0x4d, 0x73,
0x50, 0x13, 0xc8, 0x47, 0x1a, 0x3b, 0x3a, 0xa8,
0x14, 0x09, 0x7e, 0xe1, 0xa2, 0x02, 0x30, 0x48,
0x4a, 0x5e, 0x54, 0x94, 0x51, 0xeb, 0x4e, 0x37,
0x01, 0x2c, 0xd0, 0x7f, 0xc4, 0xf1, 0x4f, 0x3a,
0xc9, 0x45, 0xe1, 0x74, 0xe1, 0x11, 0x92, 0x62,
0x5b, 0xa5, 0x1d, 0x76, 0xcd, 0x51, 0x0e, 0x02,
0x44, 0x2b, 0x22, 0xaa, 0xf9, 0x83, 0x66, 0x01,
0xe2, 0xa0, 0x75, 0x0c, 0xa2, 0x23, 0x57, 0xb9,
0x24, 0x24, 0x5f, 0x6a, 0xff, 0x7b, 0x0e, 0x05,
0xe2, 0xd4, 0x9b, 0x19, 0x61, 0x7e, 0x23, 0x2f,
0x02, 0x91, 0xc2, 0x85, 0x79, 0x09, 0x09, 0x56,
0x1b, 0x3b, 0x67, 0x57, 0xce, 0xa1, 0xc4, 0x01,
0xe1, 0x79, 0x2e, 0xc9, 0x83, 0x86, 0x91, 0x81,
0xf6, 0x98, 0xaa, 0xfa, 0x21, 0x5a, 0x67, 0xae,
0xe0, 0x6e, 0xb9, 0x97, 0xc1, 0x02, 0xc9, 0xca,
0x91, 0xc8, 0x66, 0xd7, 0xdf, 0x67, 0x1d, 0xf7,
0x69, 0x2b, 0x21, 0x1b, 0x13, 0x90, 0xab, 0x46,
0x8a, 0x53, 0x99, 0xca, 0xd1, 0xa2, 0x51, 0x42,
0x8b, 0x3e, 0x7f, 0x8e, 0x10, 0xcf, 0xab, 0x92,
0xa0, 0x97, 0x62, 0x49, 0xbc, 0x19, 0x63, 0x9d,
0x0e, 0x25, 0x31, 0xee, 0x46, 0xe9, 0x4e, 0x8a,
0xf1, 0x0a, 0xdc, 0xb0, 0xc0, 0x74, 0xd2, 0x5a,
0xf4, 0x72, 0xe3, 0x10, 0x54, 0x94, 0x44, 0x5b,
0xa1, 0x38, 0xca, 0x6c, 0x58, 0xf5, 0x82, 0x2c,
0x50, 0xc0, 0x92, 0x3a, 0x59, 0x19, 0x89, 0x5a,
0x45, 0x13, 0x1b, 0x6c, 0xa8, 0xe8, 0x42, 0x54,
0xa2, 0x46, 0x19, 0xa2, 0x2f, 0x38, 0x61, 0x3e,
0xa0, 0x5a, 0x1e, 0x5e, 0xef, 0x27, 0x41, 0xbc,
0x6d, 0x3a, 0x1d, 0x81, 0xc9, 0x2d, 0xa8, 0x6f,
0xab, 0x24, 0xfc, 0xa1, 0x15, 0x70, 0x25, 0x7e,
0xbc, 0xdf, 0xd8, 0x95, 0x26, 0xa7, 0xf0, 0x91,
0xc0, 0xa0, 0x29, 0x3a, 0x9d, 0xf2, 0x1a, 0x9e,
0x2d, 0x45, 0x4f, 0x26, 0xb1, 0xc2, 0x12, 0xfc,
0xe2, 0xfd, 0x65, 0x7a, 0x75, 0xf1, 0x2f, 0xcc,
0xda, 0x36, 0x70, 0x45, 0x97, 0x7f, 0xff, 0x74,
0xf9, 0xb7, 0xf4, 0xa7, 0x5f, 0x3f, 0xfc, 0x82,
0xa1, 0x89, 0xfe, 0xce, 0x66, 0x57, 0x97, 0x5f,
0x67, 0xdb, 0x59, 0x09, 0x75, 0xfd, 0x03, 0x54,
0xf0, 0x9f, 0x2f, 0x2f, 0x94, 0xad, 0x18, 0x32,
0x50, 0xa8, 0xcf, 0xff, 0xbc, 0xa2, 0xcf, 0x30,
0x58, 0xa3, 0x7c, 0xae, 0xbf, 0x5c, 0x7c, 0xb9,
0x4e, 0xaf, 0xbf, 0x5e, 0x5d, 0xff, 0x92, 0xbe,
0xbb, 0xb8, 0xfe, 0x80, 0x39, 0xcb, 0xea, 0x09,
0xb3, 0x96, 0x01, 0xf2, 0x28, 0x95, 0xfb, 0xab,
0x06, 0x80, 0x2e, 0xb1, 0xf4, 0x70, 0xbe, 0x98,
0x6d, 0xff, 0xbd, 0x38, 0x5b, 0xff, 0x06, 0x98,
0xa0, 0x69, 0xaa, 0x43, 0xa0, 0x62, 0x1e, 0xce,
0xab, 0x8d, 0x92, 0xdf, 0x20, 0x43, 0x69, 0x45,
0x43, 0x88, 0xb0, 0xa6, 0xfe, 0xce, 0x0f, 0xa2,
0x5d, 0xfc, 0xf8, 0x1c, 0x64, 0x69, 0x21, 0x30,
0x3f, 0x81, 0x05, 0x16, 0x16, 0x43, 0x3e, 0x38,
0x86, 0x85, 0x16, 0x86, 0x87, 0x1a, 0xc3, 0x22,
0x0b, 0x5b, 0x2e, 0x20, 0xdf, 0x1a, 0x03, 0x63,
0x07, 0x0c, 0x92, 0x29, 0x37, 0x2b, 0x07, 0x8c,
0xc3, 0x29, 0x3b, 0x6b, 0x07, 0x04, 0x2b, 0xd0,
0x40, 0x70, 0x2a, 0x74, 0x40, 0x18, 0x20, 0x68,
0x15, 0x23, 0xe1, 0xd2, 0x03, 0x2d, 0x3d, 0x10,
0x78, 0x0c, 0x1f, 0x14, 0x78, 0x20, 0x38, 0x85,
0x0f, 0x0a, 0x3d, 0x50, 0x12, 0x8d, 0x40, 0x91,
0x03, 0xad, 0x40, 0x03, 0x7c, 0x50, 0xec, 0x81,
0x96, 0x63, 0x36, 0x56, 0x1e, 0x28, 0x1c, 0xb3,
0xb1, 0xf6, 0x40, 0x91, 0x62, 0xe3, 0x69, 0xe4,
0x00, 0xa1, 0x78, 0x50, 0xf7, 0xbd, 0x0c, 0xc3,
0x70, 0xb6, 0x05, 0x9d, 0xcb, 0x64, 0xbc, 0x88,
0xd6, 0x85, 0x4a, 0xcc, 0xfa, 0x92, 0xc7, 0x8b,
0x65, 0x70, 0x03, 0x6a, 0xa4, 0xa9, 0xb4, 0xd2,
0xc0, 0xb0, 0xe0, 0x77, 0x0b, 0xad, 0x38, 0x6a,
0x3f, 0x9a, 0x5a, 0xce, 0xcd, 0x75, 0x7b, 0x93,
0xc1, 0xdc, 0xdc, 0xb3, 0x37, 0x19, 0xce, 0xcd,
0x05, 0x7b, 0x93, 0xd1, 0xdc, 0xde, 0xac, 0x37,
0x1b, 0xcf, 0xed, 0x95, 0x7a, 0xb3, 0xab, 0xb9,
0xbd, 0x4b, 0x6f, 0x76, 0x3d, 0xb7, 0x97, 0xa8,
0xcf, 0x0a, 0x49, 0x87, 0x40, 0x57, 0xd0, 0x41,
0x99, 0x92, 0x8a, 0x42, 0x1b, 0x1f, 0x53, 0x46,
0xba, 0xa3, 0xc4, 0x8b, 0xda, 0x1d, 0x17, 0x65,
0xc9, 0xb4, 0x8d, 0x99, 0xe0, 0x23, 0x59, 0x35,
0xc8, 0x9e, 0x1d, 0xb2, 0x3b, 0x8e, 0x45, 0x17,
0x26, 0x58, 0xdc, 0x0f, 0x2e, 0x94, 0x47, 0x5e,
0x94, 0xe8, 0xa4, 0x1e, 0x99, 0xc9, 0xfd, 0x0b,
0x8a, 0x9c, 0x97, 0x59, 0xcd, 0xea, 0xa6, 0x67,
0xe0, 0xad, 0x18, 0x7a, 0x7c, 0x06, 0x37, 0x41,
0xc4, 0x4c, 0x11, 0xb3, 0xfb, 0x83, 0x80, 0x31,
0x39, 0x0f, 0xc9, 0x5a, 0x70, 0x7f, 0xc0, 0x22,
0x85, 0x66, 0xa0, 0x7d, 0xdd, 0x63, 0x28, 0x84,
0xea, 0x74, 0x0f, 0xab, 0xc2, 0xee, 0x59, 0xcf,
0x84, 0x64, 0x99, 0xde, 0x8b, 0x6a, 0x71, 0xaa,
0x49, 0x34, 0xb2, 0x44, 0x54, 0x74, 0x3c, 0x54,
0x39, 0xd1, 0xac, 0xca, 0x04, 0x54, 0xe2, 0x04,
0xdb, 0xf1, 0x9a, 0x99, 0x72, 0xd5, 0xd2, 0x43,
0x9c, 0xbb, 0xa4, 0xd6, 0x20, 0x6b, 0xb3, 0x4e,
0x02, 0x48, 0xf5, 0x8d, 0x54, 0x51, 0x62, 0x00,
0x1d, 0x87, 0x2c, 0x44, 0xf6, 0xaa, 0x41, 0x78,
0xd9, 0x0c, 0x65, 0x41, 0xe7, 0x52, 0xde, 0xf5,
0xfd, 0xf5, 0x32, 0x79, 0x07, 0x89, 0x25, 0xb2,
0x05, 0xc4, 0xfd, 0x01, 0x07, 0x94, 0x79, 0x7e,
0x17, 0x2a, 0xfb, 0x01, 0x9c, 0x62, 0x01, 0x49,
0x8d, 0xe8, 0xdf, 0x50, 0xb3, 0xec, 0x3b, 0xc9,
0xaa, 0xa1, 0xe7, 0x0f, 0x96, 0x0e, 0xc4, 0x60,
0xf0, 0xc6, 0x37, 0x8b, 0x65, 0x84, 0x81, 0x40,
0x84, 0x91, 0x4d, 0x07, 0x49, 0x48, 0xa1, 0x45,
0xd3, 0xd2, 0xd6, 0x8c, 0xea, 0x2e, 0x2c, 0x7d,
0x3f, 0xe0, 0xe1, 0x19, 0x44, 0xb7, 0x1e, 0xab,
0xda, 0xaa, 0x01, 0x36, 0x9a, 0x5a, 0xe8, 0xf8,
0xa2, 0xf1, 0xb0, 0x0d, 0x44, 0x78, 0x10, 0xfb,
0xc8, 0x53, 0x32, 0x3a, 0x75, 0x6c, 0x57, 0xc0,
0x6f, 0x5c, 0x61, 0xbc, 0x35, 0x15, 0x2a, 0x3f,
0x35, 0x5d, 0xce, 0x6d, 0x67, 0x83, 0xe9, 0xce,
0x2c, 0xd5, 0x4a, 0x3f, 0x7f, 0xfe, 0xf8, 0x89,
0xa1, 0xe1, 0x32, 0x50, 0x66, 0x01, 0x68, 0x28,
0x87, 0x1d, 0x64, 0x79, 0x05, 0x45, 0xc0, 0x8f,
0x35, 0x84, 0x14, 0x51, 0x78, 0xeb, 0x62, 0xcf,
0x8f, 0x89, 0xe2, 0x0c, 0x73, 0x41, 0x2d, 0xb7,
0x06, 0x74, 0x49, 0x75, 0x81, 0x35, 0x17, 0x94,
0x27, 0xbd, 0x40, 0xaa, 0xb4, 0x1c, 0x29, 0xe1,
0x2e, 0xfa, 0x0c, 0x04, 0xf2, 0xfa, 0xc7, 0xd7,
0x94, 0xab, 0x1a, 0x22, 0xd3, 0x12, 0x75, 0x1d,
0x5a, 0xca, 0x3d, 0x29, 0xb1, 0x31, 0x58, 0xf6,
0x28, 0xb1, 0x3f, 0x07, 0x68, 0xa8, 0x5b, 0x60,
0x3b, 0x90, 0xb8, 0x52, 0x9f, 0xc3, 0x00, 0xab,
0x06, 0x2c, 0x4b, 0xab, 0x17, 0xc3, 0x66, 0x1c,
0x06, 0x4a, 0x07, 0xb6, 0xad, 0x3b, 0xdb, 0xac,
0xa3, 0xca, 0xf4, 0x08, 0xae, 0xeb, 0x43, 0x27,
0xca, 0x85, 0x43, 0x02, 0x8b, 0x60, 0xe4, 0xe7,
0xb0, 0xf3, 0x60, 0x66, 0x4d, 0x03, 0x4f, 0x5b,
0x3a, 0x03, 0x69, 0xa9, 0x60, 0x4d, 0x0d, 0xc6,
0x29, 0x96, 0x01, 0x79, 0x67, 0xc5, 0x16, 0x99,
0x89, 0xe7, 0xc1, 0x7a, 0x34, 0xaf, 0x8b, 0x19,
0x75, 0x8d, 0xb4, 0x73, 0xe8, 0x09, 0x64, 0x54,
0xac, 0xf8, 0x38, 0x18, 0xf1, 0xb3, 0x07, 0xd4,
0xdd, 0xc4, 0xc8, 0x9b, 0x9a, 0x6c, 0x57, 0x5c,
0xca, 0x6c, 0xcf, 0x19, 0xaf, 0x73, 0xc8, 0x00,
0x8d, 0x81, 0x02, 0x2f, 0x57, 0x42, 0x4a, 0x0e,
0x5b, 0x42, 0xe1, 0x58, 0x0c, 0x25, 0xea, 0x1b,
0x10, 0x63, 0xe2, 0xcd, 0x74, 0x2e, 0xa2, 0x8c,
0x81, 0xdf, 0x71, 0xbc, 0x28, 0xcc, 0xb9, 0x9f,
0x27, 0x38, 0x64, 0x5d, 0xa1, 0x3c, 0x94, 0xc6,
0xc6, 0x36, 0xdb, 0xf3, 0xd8, 0x46, 0x2e, 0x1a,
0x19, 0x7b, 0x89, 0x57, 0x78, 0x95, 0xaa, 0x5a,
0x61, 0x30, 0xea, 0x76, 0x65, 0x73, 0x4f, 0xf5,
0xd1, 0xaf, 0x5c, 0x2f, 0x00, 0x4b, 0xa1, 0x01,
0x75, 0xca, 0xe2, 0xc0, 0x9b, 0xb6, 0x19, 0xfa,
0x14, 0x6c, 0x20, 0x5c, 0x5b, 0x84, 0x23, 0xbe,
0xd9, 0xbd, 0x00, 0xbf, 0xcc, 0x1f, 0x72, 0x0e,
0x50, 0xbf, 0x89, 0x49, 0xe9, 0xa6, 0xa3, 0x1c,
0xb1, 0xf4, 0x02, 0x15, 0x56, 0x00, 0x1e, 0x95,
0x39, 0xf1, 0x0b, 0x14, 0xf8, 0x32, 0x70, 0xcd,
0x7b, 0x7d, 0x27, 0x8a, 0x6d, 0xc4, 0x10, 0xd5,
0x50, 0x99, 0x39, 0x63, 0x0b, 0x20, 0x87, 0x6b,
0x6b, 0xd7, 0xd8, 0x56, 0x81, 0xc5, 0x94, 0xdf,
0x55, 0xee, 0xcc, 0x7f, 0xb4, 0xb8, 0xd6, 0x8e,
0xb8, 0x6f, 0x1a, 0xb6, 0xcb, 0x94, 0x4c, 0x48,
0x1e, 0xd8, 0x45, 0xfa, 0xe2, 0xab, 0xc8, 0x89,
0x68, 0xb5, 0x99, 0xa0, 0x68, 0xd7, 0xa8, 0x7a,
0xbe, 0x94, 0x01, 0x7f, 0x51, 0x82, 0xc6, 0xc5,
0xc1, 0x73, 0x49, 0xae, 0x1a, 0x67, 0x5f, 0xe0,
0x0b, 0xcc, 0xe3, 0x11, 0x1b, 0xe5, 0xda, 0xbd,
0x48, 0x6a, 0x74, 0x58, 0x08, 0x2a, 0xb5, 0x85,
0x60, 0xbe, 0xff, 0xb5, 0xce, 0x6e, 0x30, 0x60,
0x35, 0x5a, 0xd7, 0x95, 0xc0, 0x08, 0x83, 0x7a,
0x4b, 0x0e, 0x01, 0x94, 0x05, 0xee, 0x1e, 0x57,
0x80, 0x9c, 0xaa, 0x2f, 0xa9, 0x3e, 0x77, 0x60,
0xe5, 0x94, 0xa6, 0xee, 0x8d, 0xde, 0x52, 0x26,
0x48, 0x59, 0x91, 0x3b, 0xf0, 0xe2, 0x18, 0xac,
0xc3, 0x85, 0x0d, 0xd6, 0x06, 0x37, 0x4a, 0x8e,
0x70, 0xdd, 0x49, 0xe9, 0xf5, 0x6a, 0x0a, 0xf6,
0x39, 0x02, 0x05, 0xe7, 0xf4, 0xc6, 0x34, 0xc1,
0x42, 0xe1, 0x1f, 0xa1, 0xad, 0x8e, 0xd0, 0x9c,
0xec, 0xe8, 0xf9, 0xc1, 0x81, 0x55, 0xc0, 0x1a,
0xb1, 0x12, 0xf8, 0x60, 0x8c, 0xd0, 0xd7, 0x9f,
0x3f, 0xaa, 0xf2, 0x8e, 0x7a, 0xe3, 0xc7, 0x30,
0xd9, 0x72, 0xcc, 0x2b, 0xe2, 0x78, 0x0a, 0xac,
0x9b, 0xfa, 0xfc, 0x06, 0x83, 0x93, 0x32, 0xcf,
0x09, 0x17, 0x23, 0x26, 0xb5, 0x8f, 0x34, 0x52,
0xd3, 0x2e, 0x2d, 0x1e, 0xdd, 0x21, 0x75, 0xf1,
0x70, 0xe9, 0x56, 0x50, 0x11, 0xac, 0x61, 0x04,
0x18, 0x9d, 0x01, 0x6e, 0x57, 0x3d, 0x24, 0xa6,
0xf9, 0x61, 0xa8, 0x6f, 0x41, 0xf9, 0x20, 0x9b,
0x29, 0xe8, 0x7d, 0xca, 0x9b, 0x97, 0x0e, 0x00,
0xdc, 0x90, 0x63, 0xd4, 0x71, 0x18, 0xfd, 0x3e,
0x94, 0x5c, 0x92, 0xe5, 0x92, 0xa9, 0xba, 0x23,
0x8c, 0xc6, 0x4f, 0x12, 0x70, 0x9e, 0x12, 0x52,
0x9d, 0x3b, 0x58, 0x80, 0x98, 0x50, 0x19, 0x8c,
0xb5, 0xa2, 0xcd, 0x51, 0x67, 0x73, 0xcb, 0x3e,
0x41, 0xca, 0x04, 0xc5, 0xce, 0x0d, 0xd6, 0x6a,
0x3b, 0xec, 0x6c, 0xcb, 0xbf, 0x50, 0x1f, 0x4d,
0x3d, 0x75, 0xda, 0xec, 0x49, 0x3f, 0x80, 0x16,
0xd4, 0xae, 0x96, 0xd8, 0x9f, 0xc4, 0x20, 0x40,
0xee, 0x29, 0x07, 0x30, 0x82, 0x22, 0x5b, 0x9b,
0xaa, 0xf8, 0xa3, 0xac, 0xa9, 0xcc, 0x3a, 0xb4,
0x40, 0x6c, 0x15, 0x9d, 0xa8, 0xfa, 0xd0, 0xca,
0xc9, 0xc9, 0xe3, 0xb3, 0x84, 0x4e, 0xb2, 0xc8,
0x29, 0x62, 0xad, 0x0b, 0xe9, 0xe8, 0x51, 0xeb,
0x1e, 0xf3, 0x51, 0x28, 0xe1, 0xc2, 0x65, 0x12,
0xc7, 0x2a, 0x01, 0xd7, 0x1f, 0x2b, 0x95, 0x81,
0xd3, 0xc7, 0x2a, 0x56, 0x2e, 0x03, 0x3e, 0x56,
0xab, 0x35, 0x8c, 0xc3, 0xa7, 0x27, 0xd5, 0xe3,
0x81, 0xf4, 0x45, 0x72, 0x7a, 0xd1, 0xd5, 0x4d,
0x4c, 0xbf, 0x70, 0x97, 0x18, 0x56, 0xeb, 0x9c,
0x4f, 0x5a, 0xa5, 0xe7, 0x18, 0x67, 0x4e, 0x36,
0x3d, 0x5d, 0x0f, 0x4a, 0x77, 0xd5, 0x4c, 0x69,
0x4c, 0xad, 0x1c, 0x7f, 0xb9, 0x9b, 0x61, 0xb7,
0xe3, 0xe0, 0xdc, 0x90, 0x6a, 0x27, 0x76, 0x0d,
0xfe, 0x96, 0xc2, 0x7b, 0xb7, 0xc5, 0x5e, 0xcb,
0x39, 0xca, 0xdd, 0x76, 0x4f, 0x47, 0xcd, 0x72,
0x5a, 0xf2, 0x54, 0xcf, 0x6b, 0x13, 0xba, 0x27,
0xe3, 0x11, 0x45, 0xe6, 0xb5, 0x46, 0x99, 0x82,
0xe8, 0xf3, 0xa0, 0xc3, 0xa4, 0xf4, 0xcc, 0x35,
0x01, 0x12, 0xfb, 0x7c, 0x09, 0x6e, 0x49, 0xf7,
0xd9, 0xd5, 0x09, 0x55, 0x3b, 0x1e, 0xe7, 0x8c,
0x1a, 0xa9, 0xde, 0x0b, 0x04, 0x2c, 0x9f, 0xf1,
0x44, 0x3d, 0x20, 0xa9, 0x8e, 0xeb, 0x4b, 0x5c,
0x6b, 0x0a, 0x3d, 0x48, 0xdd, 0xee, 0xe7, 0x18,
0x6a, 0xcd, 0x1b, 0x88, 0x04, 0x9f, 0x6c, 0x9f,
0x34, 0x12, 0x7c, 0x35, 0xa1, 0x56, 0xac, 0x01,
0xbd, 0x24, 0x10, 0x41, 0x2e, 0x5d, 0x2f, 0xba,
0x70, 0xcf, 0x0f, 0x23, 0xae, 0x0e, 0x4d, 0x05,
0xc6, 0x7f, 0xbc, 0x88, 0xff, 0xba, 0x01, 0x82,
0xf5, 0x3a, 0xfa, 0xa9, 0x51, 0x1e, 0xd7, 0xd0,
0xa0, 0x6f, 0xa3, 0x22, 0x81, 0xeb, 0xda, 0x7b,
0xb8, 0xb6, 0x7d, 0x4f, 0xda, 0x34, 0x47, 0x5c,
0x60, 0xca, 0x93, 0x26, 0x9b, 0x96, 0x5b, 0x5a,
0xa0, 0xb0, 0x9e, 0xe9, 0x02, 0x7f, 0x8f, 0x8a,
0x62, 0x55, 0x73, 0xb2, 0x6b, 0xfc, 0xa7, 0x54,
0x74, 0x38, 0xa1, 0xa2, 0x58, 0xf8, 0xd9, 0x57,
0x86, 0xf1, 0x8d, 0xc8, 0x21, 0xcf, 0xd5, 0xa3,
0x73, 0x8e, 0x78, 0x70, 0x02, 0x90, 0x82, 0xff,
0xd0, 0x95, 0x60, 0x3b, 0xcc, 0x05, 0x7b, 0xf3,
0x26, 0x70, 0x5a, 0x00, 0xa1, 0x5f, 0x75, 0x7f,
0x97, 0x08, 0xd6, 0x3e, 0x85, 0xd7, 0x1a, 0xf3,
0x09, 0x10, 0x2f, 0x39, 0xd5, 0xd0, 0x3c, 0xba,
0x60, 0xbf, 0x1b, 0xee, 0xdf, 0x34, 0xa6, 0x12,
0x7e, 0x07, 0xf1, 0x1b, 0x9a, 0xb1, 0x89, 0x54,
0x45, 0xdd, 0xf5, 0xaa, 0xaa, 0x48, 0x96, 0x54,
0x5f, 0x4b, 0x67, 0x0a, 0x72, 0xa8, 0xf4, 0x8f,
0xfc, 0x9d, 0x34, 0x3e, 0x72, 0x3d, 0xc1, 0x49,
0xc3, 0x90, 0xde, 0x71, 0x20, 0xce, 0x6c, 0x16,
0x13, 0xc7, 0xf8, 0x1d, 0xa6, 0x31, 0x18, 0xd3,
0x40, 0xd5, 0x8e, 0x5d, 0x17, 0xf1, 0x98, 0x7f,
0xec, 0x1f, 0xd2, 0x59, 0x43, 0xbf, 0x33, 0xe8,
0xec, 0x27, 0xcf, 0x6c, 0x9b, 0xf2, 0xe4, 0xcb,
0x9f, 0xe7, 0x57, 0x36, 0x01, 0xfa, 0x7d, 0x55,
0x4e, 0xd3, 0x33, 0xf8, 0xe0, 0x3b, 0x9d, 0x18,
0xdc, 0xb2, 0xfe, 0xdf, 0x9d, 0xd9, 0x76, 0x76,
0xb7, 0x98, 0x2f, 0x17, 0xf3, 0xc5, 0x79, 0x1c,
0x2e, 0xce, 0xf7, 0x61, 0x98, 0xac, 0xb3, 0x4d,
0x1e, 0xcc, 0x9e, 0xfe, 0x0b, 0xee, 0xa1, 0xf0,
0x3a,
};
// Identify size = 3073 (9189 uncompressed)
const uint32_t command_identify_size PROGMEM
= ARRAY_SIZE(command_identify_data);