From 39fdb7ed33d0e791c5e7911447704fdf3a4dae12 Mon Sep 17 00:00:00 2001 From: OneOfEleven Date: Thu, 26 Oct 2023 13:46:12 +0100 Subject: [PATCH] fix tx offset entry in menu "Tx OFS" --- Makefile | 2 +- am_fix.c | 133 +++----- app/aircopy.c | 14 +- app/app.c | 18 +- app/app.h | 2 +- app/menu.c | 97 ++++-- driver/bk4819.c | 785 ++++++++++++++++++++++++++------------------ driver/bk4819.h | 8 +- firmware.bin | Bin 59404 -> 60216 bytes firmware.packed.bin | Bin 59422 -> 60234 bytes radio.c | 4 +- ui/inputbox.c | 5 + ui/menu.c | 60 ++-- 13 files changed, 652 insertions(+), 476 deletions(-) diff --git a/Makefile b/Makefile index 3c6f18f..81d72bd 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ ENABLE_OVERLAY := 0 ENABLE_LTO := 1 # UART Programming 2.9 kB ENABLE_UART := 1 -ENABLE_UART_DEBUG := 0 +ENABLE_UART_DEBUG := 1 # AirCopy 2.5 kB ENABLE_AIRCOPY := 1 ENABLE_AIRCOPY_REMEMBER_FREQ := 1 diff --git a/am_fix.c b/am_fix.c index 4be5dd8..2683e75 100644 --- a/am_fix.c +++ b/am_fix.c @@ -86,17 +86,17 @@ // if I don't add the brackets, reading the table returns unexpected/different values !!! // // -//// static const int16_t lna_short_dB[] = { -19, -16, -11, 0}; // was (but wrong) -// static const int16_t lna_short_dB[] = { (-33), (-30), (-24), 0}; // corrected'ish -// static const int16_t lna_dB[] = { (-24), (-19), (-14), ( -9), (-6), (-4), (-2), 0}; -// static const int16_t mixer_dB[] = { ( -8), ( -6), ( -3), 0}; -// static const int16_t pga_dB[] = { (-33), (-27), (-21), (-15), (-9), (-6), (-3), 0}; +//// static const int16_t lnas_dB[] = { -19, -16, -11, 0}; // was (but wrong) +// static const int16_t lnas_dB[] = { (-33), (-30), (-24), 0}; // corrected'ish +// static const int16_t lna_dB[] = { (-24), (-19), (-14), ( -9), (-6), (-4), (-2), 0}; +// static const int16_t mixer_dB[] = { ( -8), ( -6), ( -3), 0}; +// static const int16_t pga_dB[] = { (-33), (-27), (-21), (-15), (-9), (-6), (-3), 0}; // lookup table is hugely easier than writing code to do the same // static const t_gain_table gain_table[] = { - {0x035E, -17}, // 0 .. 3 2 3 6 .. 0dB -14dB 0dB -3dB .. -17dB original + {0x03BE, -7}, // 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original #ifdef ENABLE_AM_FIX_TEST1 @@ -199,15 +199,15 @@ {0x038F, -12}, // 85 .. 3 4 1 7 .. 0dB -6dB -6dB 0dB .. -12dB {0x03E6, -11}, // 86 .. 3 7 0 6 .. 0dB 0dB -8dB -3dB .. -11dB {0x03AF, -10}, // 87 .. 3 5 1 7 .. 0dB -4dB -6dB 0dB .. -10dB - {0x03F5, -9 }, // 88 .. 3 7 2 5 .. 0dB 0dB -3dB -6dB .. -9dB - {0x03D6, -8 }, // 89 .. 3 6 2 6 .. 0dB -2dB -3dB -3dB .. -8dB - {0x03BE, -7 }, // 90 .. 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original - {0x03F6, -6 }, // 91 .. 3 7 2 6 .. 0dB 0dB -3dB -3dB .. -6dB - {0x03DE, -5 }, // 92 .. 3 6 3 6 .. 0dB -2dB 0dB -3dB .. -5dB - {0x03BF, -4 }, // 93 .. 3 5 3 7 .. 0dB -4dB 0dB 0dB .. -4dB - {0x03F7, -3 }, // 94 .. 3 7 2 7 .. 0dB 0dB -3dB 0dB .. -3dB - {0x03DF, -2 }, // 95 .. 3 6 3 7 .. 0dB -2dB 0dB 0dB .. -2dB - {0x03FF, 0 }, // 96 .. 3 7 3 7 .. 0dB 0dB 0dB 0dB .. 0dB + {0x03F5, -9}, // 88 .. 3 7 2 5 .. 0dB 0dB -3dB -6dB .. -9dB + {0x03D6, -8}, // 89 .. 3 6 2 6 .. 0dB -2dB -3dB -3dB .. -8dB + {0x03BE, -7}, // 90 .. 3 5 3 6 .. 0dB -4dB 0dB -3dB .. -7dB original + {0x03F6, -6}, // 91 .. 3 7 2 6 .. 0dB 0dB -3dB -3dB .. -6dB + {0x03DE, -5}, // 92 .. 3 6 3 6 .. 0dB -2dB 0dB -3dB .. -5dB + {0x03BF, -4}, // 93 .. 3 5 3 7 .. 0dB -4dB 0dB 0dB .. -4dB + {0x03F7, -3}, // 94 .. 3 7 2 7 .. 0dB 0dB -3dB 0dB .. -3dB + {0x03DF, -2}, // 95 .. 3 6 3 7 .. 0dB -2dB 0dB 0dB .. -2dB + {0x03FF, 0}, // 96 .. 3 7 3 7 .. 0dB 0dB 0dB 0dB .. 0dB }; static const unsigned int original_index = 90; @@ -217,7 +217,7 @@ #ifdef ENABLE_AM_FIX_SHOW_DATA // display update rate static const unsigned int display_update_rate = 250 / 10; // max 250ms display update rate - unsigned int counter = 0; + unsigned int display_update_tick = 0; #endif #ifdef ENABLE_AM_FIX_TEST1 @@ -230,78 +230,57 @@ // used simply to detect a changed gain setting unsigned int gain_table_index_prev[2] = {0, 0}; - // holds the previous RSSI level .. we do an average of old + new RSSI reading - int16_t prev_rssi[2] = {0, 0}; - // to help reduce gain hunting, peak hold count down tick unsigned int hold_counter[2] = {0, 0}; + // holds the previous RSSI level .. we do an average of old + new RSSI reading + int16_t prev_rssi[2] = {0, 0}; + // used to correct the RSSI readings after our RF gain adjustments int16_t rssi_gain_diff[2] = {0, 0}; - // used to limit the max RF gain - unsigned int max_index = ARRAY_SIZE(gain_table) - 1; - #ifndef ENABLE_AM_FIX_TEST1 - // -89dBm, any higher and the AM demodulator starts to saturate/clip/distort + // -89 dBm, any higher and the AM demodulator starts to saturate/clip/distort const int16_t desired_rssi = (-89 + 160) * 2; #endif void AM_fix_init(void) { // called at boot-up - - unsigned int i; - - for (i = 0; i < 2; i++) + unsigned int vfo; + for (vfo = 0; vfo < 2; vfo++) { #ifdef ENABLE_AM_FIX_TEST1 - gain_table_index[i] = 1 + g_setting_am_fix_test1; + gain_table_index[vfo] = 1 + g_setting_am_fix_test1; #else - gain_table_index[i] = original_index; // re-start with original QS setting + gain_table_index[vfo] = original_index; // re-start with original QS setting #endif +// AM_fix_reset(vfo); } - - #if 0 - { // set a maximum gain to use -// const int16_t max_gain_dB = gain_dB[original_index]; - const int16_t max_gain_dB = -10; - - max_index = ARRAY_SIZE(gain_table); - while (--max_index > 1) -// if (gain_dB[max_index] <= max_gain_dB) - if (gain_table[max_index].gain_dB <= max_gain_dB) - break; - } - #else - // use the full range of available gains - max_index = ARRAY_SIZE(gain_table) - 1; - #endif } void AM_fix_reset(const int vfo) { // reset the AM fixer upper + if (vfo < 0 || vfo >= 2) + return; + #ifdef ENABLE_AM_FIX_SHOW_DATA - counter = 0; + display_update_tick = 0; #endif - prev_rssi[vfo] = 0; - - hold_counter[vfo] = 0; - - rssi_gain_diff[vfo] = 0; - + prev_rssi[vfo] = 0; + hold_counter[vfo] = 0; + rssi_gain_diff[vfo] = 0; + gain_table_index_prev[vfo] = 0; #ifdef ENABLE_AM_FIX_TEST1 // gain_table_index[vfo] = 1 + g_setting_am_fix_test1; #else // gain_table_index[vfo] = original_index; // re-start with original QS setting #endif - - gain_table_index_prev[vfo] = 0; } // adjust the RX gain to try and prevent the AM demodulator from - // saturating/overloading/clipping (distorted AM audio) + // saturating (distorted AM audio) // // we're actually doing the BK4819's job for it here, but as the chip // won't/don't do it for itself, we're left to bodging it ourself by @@ -318,31 +297,31 @@ case FUNCTION_PANADAPTER: case FUNCTION_POWER_SAVE: #ifdef ENABLE_AM_FIX_SHOW_DATA - counter = display_update_rate; // queue up a display update as soon as we switch to RX mode + display_update_tick = display_update_rate; // queue up a display update as soon as we switch to RX mode #endif return; // only adjust stuff if we're in one of these modes case FUNCTION_FOREGROUND: + case FUNCTION_NEW_RECEIVE: case FUNCTION_RECEIVE: case FUNCTION_MONITOR: - case FUNCTION_NEW_RECEIVE: break; } #ifdef ENABLE_AM_FIX_SHOW_DATA - if (counter > 0) + if (display_update_tick > 0) { - if (++counter >= display_update_rate) + if (++display_update_tick >= display_update_rate) { // trigger a display update - counter = 0; + display_update_tick = 0; g_update_display = true; } } #endif { // sample the current RSSI level - // average it with the previous rssi (a bit of noise/spike immunity) + // average it with the previous rssi (a teeny bit of noise/spike immunity) const int16_t new_rssi = BK4819_GetRSSI(); rssi = (prev_rssi[vfo] > 0) ? (prev_rssi[vfo] + new_rssi) / 2 : new_rssi; prev_rssi[vfo] = new_rssi; @@ -355,10 +334,10 @@ if (g_current_rssi[vfo] != new_rssi) { g_current_rssi[vfo] = new_rssi; - - if (counter == 0) + + if (display_update_tick == 0) { // trigger a display update - counter = 1; + display_update_tick = 1; g_update_display = true; } } @@ -418,38 +397,34 @@ index--; // slow step-by-step gain reduction } - index = (index < 1) ? 1 : (index > max_index) ? max_index : index; + index = (index < 1) ? 1 : (index > (ARRAY_SIZE(gain_table) - 1)) ? ARRAY_SIZE(gain_table) - 1 : index; if (gain_table_index[vfo] != index) { - gain_table_index[vfo] = index; - hold_counter[vfo] = 30; // 300ms hold + gain_table_index[vfo] = index; // save new gain setting to use + hold_counter[vfo] = 30; // 300ms hold } } - if (diff_dB >= -6) // 6dB hysterisis (help reduce gain hunting) - hold_counter[vfo] = 30; // 300ms hold + if (diff_dB >= -6) // 6dB hysterisis (help reduce gain hunting) + hold_counter[vfo] = 30; // 300ms hold if (hold_counter[vfo] == 0) { // hold has been released, we're free to increase gain const unsigned int index = gain_table_index[vfo] + 1; // move up to next gain index - gain_table_index[vfo] = (index <= max_index) ? index : max_index; // limit the gain index + gain_table_index[vfo] = (index < ARRAY_SIZE(gain_table)) ? index : ARRAY_SIZE(gain_table) - 1; // limit the gain level we use } - #if 0 - if (gain_table_index[vfo] == gain_table_index_prev[vfo]) - return; // no gain change - this is to reduce writing to the BK chip on ever call - #endif - #endif { // apply the new settings to the front end registers const unsigned int index = gain_table_index[vfo]; - // remember the new table index + // remember the new gain table index gain_table_index_prev[vfo] = index; + // set the RF front end gains BK4819_WriteRegister(0x13, gain_table[index].reg_val); // offset the RSSI reading to the rest of the firmware to cancel out the gain adjustments we make @@ -462,9 +437,9 @@ g_current_rssi[vfo] = rssi - rssi_gain_diff[vfo]; #ifdef ENABLE_AM_FIX_SHOW_DATA - if (counter == 0) + if (display_update_tick == 0) { - counter = 1; + display_update_tick = 1; g_update_display = true; } #endif @@ -479,7 +454,7 @@ const unsigned int index = gain_table_index[vfo]; // sprintf(s, "%2u.%u %4ddB %3u", index, ARRAY_SIZE(gain_table) - 1, gain_table[index].gain_dB, prev_rssi[vfo]); sprintf(s, "%2u %4ddB %3u", index, gain_table[index].gain_dB, prev_rssi[vfo]); - counter = 0; + display_update_tick = 0; } } diff --git a/app/aircopy.c b/app/aircopy.c index 63ab7ab..a8284a2 100644 --- a/app/aircopy.c +++ b/app/aircopy.c @@ -88,7 +88,7 @@ void AIRCOPY_init(void) g_fsk_write_index = 0; BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, false); // LED off - BK4819_start_fsk_rx(AIRCOPY_DATA_PACKET_SIZE); + BK4819_start_aircopy_fsk_rx(AIRCOPY_DATA_PACKET_SIZE); GUI_SelectNextDisplay(DISPLAY_AIRCOPY); } @@ -281,13 +281,13 @@ void AIRCOPY_process_fsk_tx_10ms(void) if (g_aircopy_state == AIRCOPY_RX) { g_fsk_write_index = 0; - BK4819_start_fsk_rx(AIRCOPY_DATA_PACKET_SIZE); + BK4819_start_aircopy_fsk_rx(AIRCOPY_DATA_PACKET_SIZE); } else if (g_aircopy_state == AIRCOPY_TX) { g_fsk_write_index = 0; - BK4819_start_fsk_rx(AIRCOPY_REQ_PACKET_SIZE); + BK4819_start_aircopy_fsk_rx(AIRCOPY_REQ_PACKET_SIZE); } } @@ -352,7 +352,7 @@ void AIRCOPY_process_fsk_rx_10ms(void) { // FSK RX is disabled, enable it g_fsk_write_index = 0; BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, false); // LED off - BK4819_start_fsk_rx((g_aircopy_state == AIRCOPY_TX) ? AIRCOPY_REQ_PACKET_SIZE : AIRCOPY_DATA_PACKET_SIZE); + BK4819_start_aircopy_fsk_rx((g_aircopy_state == AIRCOPY_TX) ? AIRCOPY_REQ_PACKET_SIZE : AIRCOPY_DATA_PACKET_SIZE); } status = BK4819_ReadRegister(0x0C); @@ -415,7 +415,7 @@ void AIRCOPY_process_fsk_rx_10ms(void) // restart the RX BK4819_set_GPIO_pin(BK4819_GPIO6_PIN2_GREEN, false); // LED off - BK4819_start_fsk_rx((g_aircopy_state == AIRCOPY_TX) ? AIRCOPY_REQ_PACKET_SIZE : AIRCOPY_DATA_PACKET_SIZE); + BK4819_start_aircopy_fsk_rx((g_aircopy_state == AIRCOPY_TX) ? AIRCOPY_REQ_PACKET_SIZE : AIRCOPY_DATA_PACKET_SIZE); g_update_display = true; @@ -601,7 +601,7 @@ send_req: } AIRCOPY_stop_fsk_tx(); - BK4819_start_fsk_rx(AIRCOPY_DATA_PACKET_SIZE); + BK4819_start_aircopy_fsk_rx(AIRCOPY_DATA_PACKET_SIZE); } static void AIRCOPY_Key_DIGITS(key_code_t Key, bool key_pressed, bool key_held) @@ -733,7 +733,7 @@ static void AIRCOPY_Key_EXIT(bool key_pressed, bool key_held) g_aircopy_rx_errors_crc = 0; g_aircopy_state = AIRCOPY_RX; - BK4819_start_fsk_rx(AIRCOPY_DATA_PACKET_SIZE); + BK4819_start_aircopy_fsk_rx(AIRCOPY_DATA_PACKET_SIZE); g_update_display = true; GUI_DisplayScreen(); diff --git a/app/app.c b/app/app.c index bf07c90..8d08988 100644 --- a/app/app.c +++ b/app/app.c @@ -69,10 +69,10 @@ // original QS front end register settings // 0x03BE 00000 011 101 11 110 -const uint8_t orig_lna_short = 3; // 0dB -const uint8_t orig_lna = 5; // -4dB -const uint8_t orig_mixer = 3; // 0dB -const uint8_t orig_pga = 6; // -3dB +const uint8_t orig_lnas = 3; // 0dB +const uint8_t orig_lna = 5; // -4dB +const uint8_t orig_mixer = 3; // 0dB +const uint8_t orig_pga = 6; // -3dB static void APP_process_key(const key_code_t Key, const bool key_pressed, const bool key_held); @@ -558,12 +558,6 @@ bool APP_start_listening(function_type_t Function, const bool reset_am_fix) #ifdef ENABLE_AM_FIX { // RF RX front end gain - // original setting - uint16_t lna_short = orig_lna_short; - uint16_t lna = orig_lna; - uint16_t mixer = orig_mixer; - uint16_t pga = orig_pga; - if (g_rx_vfo->am_mode && g_setting_am_fix) { // AM RX mode if (reset_am_fix) @@ -571,8 +565,8 @@ bool APP_start_listening(function_type_t Function, const bool reset_am_fix) AM_fix_10ms(chan); } else - { - BK4819_WriteRegister(0x13, (lna_short << 8) | (lna << 5) | (mixer << 3) | (pga << 0)); + { // original setting + BK4819_WriteRegister(0x13, (orig_lnas << 8) | (orig_lna << 5) | (orig_mixer << 3) | (orig_pga << 0)); } } #else diff --git a/app/app.h b/app/app.h index 98bde26..f83bbd2 100644 --- a/app/app.h +++ b/app/app.h @@ -23,7 +23,7 @@ #include "frequencies.h" #include "radio.h" -extern const uint8_t orig_lna_short; +extern const uint8_t orig_lnas; extern const uint8_t orig_lna; extern const uint8_t orig_mixer; extern const uint8_t orig_pga; diff --git a/app/menu.c b/app/menu.c index a5518ff..e5dde9c 100644 --- a/app/menu.c +++ b/app/menu.c @@ -32,6 +32,7 @@ #include "driver/gpio.h" #include "driver/keyboard.h" #include "driver/st7565.h" +#include "driver/uart.h" #include "frequencies.h" #include "helper/battery.h" #include "misc.h" @@ -44,10 +45,6 @@ #include "ui/menu.h" #include "ui/ui.h" -#ifndef ARRAY_SIZE - #define ARRAY_SIZE(x) (sizeof(x) / sizeof(x[0])) -#endif - #ifdef ENABLE_F_CAL_MENU void writeXtalFreqCal(const int32_t value, const bool update_eeprom) { @@ -1442,7 +1439,7 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held) { uint32_t Frequency; - if (g_input_box_index < 6) + if (g_input_box_index < 8) { // not yet enough characters #ifdef ENABLE_VOICE g_another_voice_id = (voice_id_t)Key; @@ -1457,7 +1454,23 @@ static void MENU_Key_0_to_9(key_code_t Key, bool key_pressed, bool key_held) NUMBER_Get(g_input_box, &Frequency); g_input_box_index = 0; - g_sub_menu_selection = FREQUENCY_floor_to_step(Frequency + (g_tx_vfo->step_freq / 2), g_tx_vfo->step_freq, 0, Frequency + (g_tx_vfo->step_freq / 2)); + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("offset 3 %u\r\n", Frequency); + #endif + + #if 0 + { // round + const uint32_t step_size = g_tx_vfo->step_freq; + Frequency = ((Frequency + (step_size / 2)) / step_size) * step_size; + } + #endif + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("offset 4 %u\r\n", Frequency); + #endif + + g_sub_menu_selection = Frequency; + return; } @@ -1617,16 +1630,16 @@ static void MENU_Key_MENU(const bool key_pressed, const bool key_held) if (!g_in_sub_menu) { -#ifdef ENABLE_VOICE + #ifdef ENABLE_VOICE if (g_menu_cursor != MENU_SCRAMBLER) g_another_voice_id = g_menu_list[g_menu_list_sorted[g_menu_cursor]].voice_id; -#endif + #endif -#if 1 + #if 1 if (g_menu_cursor == MENU_MEM_DEL || g_menu_cursor == MENU_MEM_NAME) if (!RADIO_CheckValidChannel(g_sub_menu_selection, false, 0)) return; // invalid channel -#endif + #endif g_ask_for_confirmation = 0; g_in_sub_menu = true; @@ -1705,44 +1718,44 @@ static void MENU_Key_MENU(const bool key_pressed, const bool key_held) if (g_menu_cursor == MENU_RESET) { -#ifdef ENABLE_VOICE + #ifdef ENABLE_VOICE AUDIO_SetVoiceID(0, VOICE_ID_CONFIRM); AUDIO_PlaySingleVoice(true); -#endif + #endif MENU_AcceptSetting(); -#if defined(ENABLE_OVERLAY) + #if defined(ENABLE_OVERLAY) overlay_FLASH_RebootToBootloader(); -#else + #else NVIC_SystemReset(); -#endif + #endif } g_flag_accept_setting = true; - g_in_sub_menu = false; + g_in_sub_menu = false; g_ask_for_confirmation = 0; } } else { g_flag_accept_setting = true; - g_in_sub_menu = false; + g_in_sub_menu = false; } } if (g_css_scan_mode != CSS_SCAN_MODE_OFF) { - g_css_scan_mode = CSS_SCAN_MODE_OFF; + g_css_scan_mode = CSS_SCAN_MODE_OFF; g_update_status = true; } -#ifdef ENABLE_VOICE + #ifdef ENABLE_VOICE if (g_menu_cursor == MENU_SCRAMBLER) g_another_voice_id = (g_sub_menu_selection == 0) ? VOICE_ID_SCRAMBLER_OFF : VOICE_ID_SCRAMBLER_ON; else g_another_voice_id = VOICE_ID_CONFIRM; -#endif + #endif g_input_box_index = 0; } @@ -1874,22 +1887,6 @@ static void MENU_Key_UP_DOWN(bool key_pressed, bool key_held, int8_t Direction) return; } - if (g_menu_cursor == MENU_OFFSET) - { - int32_t Offset = (Direction * g_tx_vfo->step_freq) + g_sub_menu_selection; - if (Offset < 99999990) - { - if (Offset < 0) - Offset = 99999990; - } - else - Offset = 0; - - g_sub_menu_selection = FREQUENCY_floor_to_step(Offset, g_tx_vfo->step_freq, 0, Offset); - g_request_display_screen = DISPLAY_MENU; - return; - } - VFO = 0; #pragma GCC diagnostic push @@ -1897,6 +1894,34 @@ static void MENU_Key_UP_DOWN(bool key_pressed, bool key_held, int8_t Direction) switch (g_menu_cursor) { + case MENU_OFFSET: + { + const int32_t max_freq = 100000000; + const int32_t step_size = g_tx_vfo->step_freq; + int32_t offset = (int32_t)g_sub_menu_selection + (Direction * step_size); + + // wrap + if (offset >= max_freq) + offset = 0; + else + if (offset < 0) + offset = max_freq - step_size; + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("offset 1 %u %u\r\n", offset, step_size); + #endif + + offset = ((offset + (step_size / 2)) / step_size) * step_size; // round + + #if defined(ENABLE_UART) && defined(ENABLE_UART_DEBUG) + UART_printf("offset 2 %u %u\r\n", offset, step_size); + #endif + + g_sub_menu_selection = offset; + g_request_display_screen = DISPLAY_MENU; + return; + } + case MENU_MEM_DEL: case MENU_1_CALL: case MENU_MEM_NAME: diff --git a/driver/bk4819.c b/driver/bk4819.c index 3e1a85a..4a86458 100644 --- a/driver/bk4819.c +++ b/driver/bk4819.c @@ -1348,8 +1348,8 @@ void BK4819_PlayDTMF(char Code) if (index < 16) { - BK4819_WriteRegister(0x71, (((uint32_t)tones[0][index] * 103244U) + 5000U) / 10000U); // with rounding - BK4819_WriteRegister(0x72, (((uint32_t)tones[1][index] * 103244U) + 5000U) / 10000U); // with rounding + BK4819_WriteRegister(0x71, (((uint32_t)tones[0][index] * 103244u) + 5000u) / 10000u); // with rounding + BK4819_WriteRegister(0x72, (((uint32_t)tones[1][index] * 103244u) + 5000u) / 10000u); // with rounding } } @@ -1881,9 +1881,7 @@ uint8_t BK4819_GetCTCType(void) void BK4819_reset_fsk(void) { - BK4819_WriteRegister(0x3F, 0); // disable interrupts - - BK4819_WriteRegister(0x59, // 0x0068); // 0 0 0 0 0 0 0 0 0110 1 000 + const uint16_t fsk_reg59 = (0u << 15) | // 0 or 1 1 = clear TX FIFO (0u << 14) | // 0 or 1 1 = clear RX FIFO (0u << 13) | // 0 or 1 1 = scramble @@ -1894,323 +1892,486 @@ void BK4819_reset_fsk(void) (0u << 8) | // 0 or 1 ??? (6u << 4) | // 0 ~ 15 preamble Length Selection (1u << 3) | // 0 or 1 sync length selection - (0u << 0)); // 0 ~ 7 ??? - + (0u << 0); // 0 ~ 7 ??? + + BK4819_WriteRegister(0x3F, 0); // disable interrupts + BK4819_WriteRegister(0x59, (1u << 15) | (1u << 14) | fsk_reg59); // clear FIFO's + BK4819_WriteRegister(0x59, (0u << 15) | (0u << 14) | fsk_reg59); BK4819_Idle(); } -void BK4819_start_fsk_rx(const unsigned int packet_size) -{ - uint16_t fsk_reg59; - - BK4819_reset_fsk(); - - BK4819_WriteRegister(0x02, 0); // clear interrupt flags - - // set the packet size - BK4819_WriteRegister(0x5D, ((packet_size - 1) << 8)); - - BK4819_RX_TurnOn(); - -// BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); - BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_RX_SYNC | BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); - - // REG_59 - // - // <15> 0 TX FIFO - // 1 = clear - // - // <14> 0 RX FIFO - // 1 = clear - // - // <13> 0 FSK Scramble - // 1 = Enable - // - // <12> 0 FSK RX - // 1 = Enable - // - // <11> 0 FSK TX - // 1 = Enable - // - // <10> 0 FSK data when RX - // 1 = Invert - // - // <9> 0 FSK data when TX - // 1 = Invert - // - // <8> 0 ??? - // - // <7:4> 0 FSK preamble length selection - // 0 = 1 byte - // 1 = 2 bytes - // 2 = 3 bytes - // 15 = 16 bytes - // - // <3> 0 FSK sync length selection - // 0 = 2 bytes (FSK Sync Byte 0, 1) - // 1 = 4 bytes (FSK Sync Byte 0, 1, 2, 3) - // - // <2:0> 0 ??? - // - fsk_reg59 = (0u << 15) | // 0 or 1 1 = clear TX FIFO - (0u << 14) | // 0 or 1 1 = clear RX FIFO - (0u << 13) | // 0 or 1 1 = scramble - (0u << 12) | // 0 or 1 1 = enable RX - (0u << 11) | // 0 or 1 1 = enable TX - (0u << 10) | // 0 or 1 1 = invert data when RX - (0u << 9) | // 0 or 1 1 = invert data when TX - (0u << 8) | // 0 or 1 ??? -// (6u << 4) | // 0 ~ 15 preamble Length Selection - (4u << 4) | // 0 ~ 15 preamble Length Selection .. 1of11 .. a little shorter than the TX length - (1u << 3) | // 0 or 1 sync length selection - (0u << 0); // 0 ~ 7 ??? - - BK4819_WriteRegister(0x59, (1u << 14) | fsk_reg59); // clear RX fifo - BK4819_WriteRegister(0x59, (1u << 13) | (1u << 12) | fsk_reg59); // enable scrambler, enable RX -} +#ifdef ENABLE_AIRCOPY + void BK4819_start_aircopy_fsk_rx(const unsigned int packet_size) + { + uint16_t fsk_reg59; + + BK4819_reset_fsk(); + + BK4819_WriteRegister(0x02, 0); // clear interrupt flags + + // set the packet size + BK4819_WriteRegister(0x5D, ((packet_size - 1) << 8)); + + BK4819_RX_TurnOn(); + + // BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); + BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_RX_SYNC | BK4819_REG_3F_FSK_RX_FINISHED | BK4819_REG_3F_FSK_FIFO_ALMOST_FULL); + + // REG_59 + // + // <15> 0 TX FIFO + // 1 = clear + // + // <14> 0 RX FIFO + // 1 = clear + // + // <13> 0 FSK Scramble + // 1 = Enable + // + // <12> 0 FSK RX + // 1 = Enable + // + // <11> 0 FSK TX + // 1 = Enable + // + // <10> 0 FSK data when RX + // 1 = Invert + // + // <9> 0 FSK data when TX + // 1 = Invert + // + // <8> 0 ??? + // + // <7:4> 0 FSK preamble length selection + // 0 = 1 byte + // 1 = 2 bytes + // 2 = 3 bytes + // 15 = 16 bytes + // + // <3> 0 FSK sync length selection + // 0 = 2 bytes (FSK Sync Byte 0, 1) + // 1 = 4 bytes (FSK Sync Byte 0, 1, 2, 3) + // + // <2:0> 0 ??? + // + fsk_reg59 = (0u << 15) | // 0 or 1 1 = clear TX FIFO + (0u << 14) | // 0 or 1 1 = clear RX FIFO + (0u << 13) | // 0 or 1 1 = scramble + (0u << 12) | // 0 or 1 1 = enable RX + (0u << 11) | // 0 or 1 1 = enable TX + (0u << 10) | // 0 or 1 1 = invert data when RX + (0u << 9) | // 0 or 1 1 = invert data when TX + (0u << 8) | // 0 or 1 ??? + // (6u << 4) | // 0 ~ 15 preamble Length Selection + (4u << 4) | // 0 ~ 15 preamble Length Selection .. 1of11 .. a little shorter than the TX length + (1u << 3) | // 0 or 1 sync length selection + (0u << 0); // 0 ~ 7 ??? + + BK4819_WriteRegister(0x59, (1u << 14) | fsk_reg59); // clear RX fifo + BK4819_WriteRegister(0x59, (1u << 13) | (1u << 12) | fsk_reg59); // enable scrambler, enable RX + } +#endif #ifdef ENABLE_MDC1200 - -void BK4819_send_MDC1200(const uint8_t op, const uint8_t arg, const uint16_t id) -{ - uint16_t fsk_reg59; - uint8_t packet[42]; - - // REG_51 - // - // <15> 1 = Enable TxCTCSS/CDCSS - // 0 = Disable - // - const bool code_enabled = (BK4819_ReadRegister(0x51) & (1u << 15)) ? true : false; - if (code_enabled) - { // need to turn off CTCSS/CDCSS - BK4819_WriteRegister(0x51, BK4819_ReadRegister(0x51) & ~(1u << 15)); -// BK4819_ExitSubAu(); - SYSTEM_DelayMs(10); - } + void BK4819_enable_mdc1200_ffsk_rx(const bool enable) + { + // REG_70 + // + // <15> 0 TONE-1 + // 1 = enable + // 0 = disable + // + // <14:8> 0 TONE-1 gain + // + // <7> 0 TONE-2 + // 1 = enable + // 0 = disable + // + // <6:0> 0 TONE-2 / FSK gain + // 0 ~ 127 + // + // enable tone-2, set gain - // create the MDC1200 packet - const unsigned int size = MDC1200_encode_single_packet(packet, op, arg, id); - - BK4819_SetAF(BK4819_AF_MUTE); -// BK4819_SetAF(BK4819_AF_BEEP); - - BK4819_EnableTXLink(); - SYSTEM_DelayMs(10); - - // MDC1200 uses 1200/1800 Hz FSK tone frequencies 1200 bits/s - // - BK4819_WriteRegister(0x58, // 0x37C3); // 001 101 11 11 00 001 1 - (1u << 13) | // 1 FSK TX mode selection - // 0 = FSK 1.2K and FSK 2.4K TX .. no tones, direct FM - // 1 = FFSK 1200/1800 TX - // 2 = ??? - // 3 = FFSK 1200/2400 TX - // 4 = ??? - // 5 = NOAA SAME TX - // 6 = ??? - // 7 = ??? - // - (7u << 10) | // 0 FSK RX mode selection - // 0 = FSK 1.2K, FSK 2.4K RX and NOAA SAME RX .. no tones, direct FM - // 1 = ??? - // 2 = ??? - // 3 = ??? - // 4 = FFSK 1200/2400 RX - // 5 = ??? - // 6 = ??? - // 7 = FFSK 1200/1800 RX - // - (0u << 8) | // 0 FSK RX gain - // 0 ~ 3 - // - (0u << 6) | // 0 ??? - // 0 ~ 3 - // - (0u << 4) | // 0 FSK preamble type selection - // 0 = 0xAA or 0x55 due to the MSB of FSK sync byte 0 - // 1 = ??? - // 2 = 0x55 - // 3 = 0xAA - // - (1u << 1) | // 1 FSK RX bandwidth setting - // 0 = FSK 1.2K .. no tones, direct FM - // 1 = FFSK 1200/1800 - // 2 = NOAA SAME RX - // 3 = ??? - // 4 = FSK 2.4K and FFSK 1200/2400 - // 5 = ??? - // 6 = ??? - // 7 = ??? - // - (1u << 0)); // 1 FSK enable - // 0 = disable - // 1 = enable - - // REG_72 - // - // <15:0> 0x2854 TONE-2 / FSK frequency control word - // = freq(Hz) * 10.32444 for XTAL 13M / 26M or - // = freq(Hz) * 10.48576 for XTAL 12.8M / 19.2M / 25.6M / 38.4M - // - // tone-2 = 1200Hz - // - BK4819_WriteRegister(0x72, ((1200u * 103244) + 5000) / 10000); // with rounding - - // REG_70 - // - // <15> 0 TONE-1 - // 1 = enable - // 0 = disable - // - // <14:8> 0 TONE-1 gain - // - // <7> 0 TONE-2 - // 1 = enable - // 0 = disable - // - // <6:0> 0 TONE-2 / FSK gain - // 0 ~ 127 - // - // enable tone-2, set gain - // - BK4819_WriteRegister(0x70, // 0 0000000 1 1100000 - ( 0u << 15) | // 0 - ( 0u << 8) | // 0 - ( 1u << 7) | // 1 -// (96u << 0)); // 96 - (127u << 0)); // produces the best undistorted waveform, this is not gain but affects filtering - - // REG_59 - // - // <15> 0 TX FIFO - // 1 = clear - // - // <14> 0 RX FIFO - // 1 = clear - // - // <13> 0 FSK Scramble - // 1 = Enable - // - // <12> 0 FSK RX - // 1 = Enable - // - // <11> 0 FSK TX - // 1 = Enable - // - // <10> 0 FSK data when RX - // 1 = Invert - // - // <9> 0 FSK data when TX - // 1 = Invert - // - // <8> 0 ??? - // - // <7:4> 0 FSK preamble length selection - // 0 = 1 byte - // 1 = 2 bytes - // 2 = 3 bytes - // 15 = 16 bytes - // - // <3> 0 FSK sync length selection - // 0 = 2 bytes (FSK Sync Byte 0, 1) - // 1 = 4 bytes (FSK Sync Byte 0, 1, 2, 3) - // - // <2:0> 0 ??? - // - fsk_reg59 = (0u << 15) | // 0 ~ 1 1 = clear TX FIFO - (0u << 14) | // 0 ~ 1 1 = clear RX FIFO - (0u << 13) | // 0 ~ 1 1 = scramble - (0u << 12) | // 0 ~ 1 1 = enable RX - (0u << 11) | // 0 ~ 1 1 = enable TX - (0u << 10) | // 0 ~ 1 1 = invert data when RX - (0u << 9) | // 0 ~ 1 1 = invert data when TX - (0u << 8) | // 0 ~ 1 ??? - (0u << 4) | // 0 ~ 15 preamble length - (1u << 3) | // 0 ~ 1 sync length - (0u << 0); // 0 ~ 7 ??? - - // Set entire packet length (not including the pre-amble and sync bytes we can't seem to disable) - BK4819_WriteRegister(0x5D, ((size - 1) << 8)); - - BK4819_WriteRegister(0x59, (1u << 15) | fsk_reg59); // clear TX fifo by setting the FIFO reset bit - BK4819_WriteRegister(0x59, (0u << 15) | fsk_reg59); // release the reset bit - - // REG_5A - // - // <15:8> 0x55 FSK Sync Byte 0 (Sync Byte 0 first, then 1,2,3) - // <7:0> 0x55 FSK Sync Byte 1 - // - BK4819_WriteRegister(0x5A, 0x0000); // bytes 1 & 2 - - // REG_5B - // - // <15:8> 0x55 FSK Sync Byte 2 (Sync Byte 0 first, then 1,2,3) - // <7:0> 0xAA FSK Sync Byte 3 - // - BK4819_WriteRegister(0x5B, 0x0000); // bytes 2 & 3 - - // CRC setting (plus other stuff we don't know what) - // - // REG_5C - // - // <15:7> ??? - // - // <6> 1 CRC option enable - // 0 = disable - // 1 = enable - // - // <5:0> ??? - // - // disable CRC - // -// BK4819_WriteRegister(0x5C, 0xAA30); // 101010100 0 110000 - BK4819_WriteRegister(0x5C, 0); // setting to '0' doesn't make any difference ! - - { // load the entire packet data into the TX FIFO buffer - unsigned int i; - const uint16_t *p = (const uint16_t *)packet; - for (i = 0; i < (size / sizeof(p[0])); i++) - BK4819_WriteRegister(0x5F, p[i]); // load 16-bits at a time - } - - // enable tx interrupt - BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_TX_FINISHED); - - // enable TX - BK4819_WriteRegister(0x59, (1u << 11) | fsk_reg59); - - { // packet time is .. - // 173ms for PTT ID, acks, emergency - // 266ms for call alert and sel-calls - - // allow up to 350ms for the TX to complete - // if it takes any longer then somethings gone wrong, we shut the TX down - unsigned int timeout = 350 / 5; - - while (timeout-- > 0) + // REG_72 + // + // <15:0> 0x2854 TONE-2 / FSK frequency control word + // = freq(Hz) * 10.32444 for XTAL 13M / 26M or + // = freq(Hz) * 10.48576 for XTAL 12.8M / 19.2M / 25.6M / 38.4M + // + // tone-2 = 1200Hz + + // REG_58 + // + // <15:13> 1 FSK TX mode selection + // 0 = FSK 1.2K and FSK 2.4K TX .. no tones, direct FM + // 1 = FFSK 1200 / 1800 TX + // 2 = ??? + // 3 = FFSK 1200 / 2400 TX + // 4 = ??? + // 5 = NOAA SAME TX + // 6 = ??? + // 7 = ??? + // + // <12:10> 0 FSK RX mode selection + // 0 = FSK 1.2K, FSK 2.4K RX and NOAA SAME RX .. no tones, direct FM + // 1 = ??? + // 2 = ??? + // 3 = ??? + // 4 = FFSK 1200 / 2400 RX + // 5 = ??? + // 6 = ??? + // 7 = FFSK 1200 / 1800 RX + // + // <9:8> 0 FSK RX gain + // 0 ~ 3 + // + // <7:6> 0 ??? + // 0 ~ 3 + // + // <5:4> 0 FSK preamble type selection + // 0 = 0xAA or 0x55 due to the MSB of FSK sync byte 0 + // 1 = ??? + // 2 = 0x55 + // 3 = 0xAA + // + // <3:1> 1 FSK RX bandwidth setting + // 0 = FSK 1.2K .. no tones, direct FM + // 1 = FFSK 1200 / 1800 + // 2 = NOAA SAME RX + // 3 = ??? + // 4 = FSK 2.4K and FFSK 1200 / 2400 + // 5 = ??? + // 6 = ??? + // 7 = ??? + // + // <0> 1 FSK enable + // 0 = disable + // 1 = enable + + // REG_5C + // + // <15:7> ??? + // + // <6> 1 CRC option enable + // 0 = disable + // 1 = enable + // + // <5:0> ??? + // + // disable CRC + + // REG_5D + // + // set the packet size + + if (enable) { - SYSTEM_DelayMs(5); - if (BK4819_ReadRegister(0x0C) & (1u << 0)) - { // we have interrupt flags - BK4819_WriteRegister(0x02, 0); - if (BK4819_ReadRegister(0x02) & BK4819_REG_02_FSK_TX_FINISHED) - timeout = 0; // TX is complete - } + BK4819_WriteRegister(0x70, // 0 0000000 1 1100000 + ( 0u << 15) | // 0 + ( 0u << 8) | // 0 + ( 1u << 7) | // 1 + (96u << 0)); // 96 (127 looks better) + + BK4819_WriteRegister(0x72, ((1200u * 103244) + 5000) / 10000); // with rounding + + BK4819_WriteRegister(0x58, // 0x37C3); 001 101 11 11 00 001 1 + (1u << 13) | // 1 FSK TX mode selection + // 0 = FSK 1.2K and FSK 2.4K TX .. no tones, direct FM + // 1 = FFSK 1200 / 1800 TX + // 2 = ??? + // 3 = FFSK 1200 / 2400 TX + // 4 = ??? + // 5 = NOAA SAME TX + // 6 = ??? + // 7 = ??? + // + (7u << 10) | // 0 FSK RX mode selection + // 0 = FSK 1.2K, FSK 2.4K RX and NOAA SAME RX .. no tones, direct FM + // 1 = ??? + // 2 = ??? + // 3 = ??? + // 4 = FFSK 1200 / 2400 RX + // 5 = ??? + // 6 = ??? + // 7 = FFSK 1200 / 1800 RX + // + (3u << 8) | // 0 FSK RX gain + // 0 ~ 3 + // + (3u << 6) | // 0 ??? + // 0 ~ 3 + // + (0u << 4) | // 0 FSK preamble type selection + // 0 = 0xAA or 0x55 due to the MSB of FSK sync byte 0 + // 1 = ??? + // 2 = 0x55 + // 3 = 0xAA + // + (1u << 1) | // 1 FSK RX bandwidth setting + // 0 = FSK 1.2K .. no tones, direct FM + // 1 = FFSK 1200 / 1800 + // 2 = NOAA SAME RX + // 3 = ??? + // 4 = FSK 2.4K and FFSK 1200 / 2400 + // 5 = ??? + // 6 = ??? + // 7 = ??? + // + (1u << 0)); // 1 FSK enable + // 0 = disable + // 1 = enable + + // enable CRC ??? + BK4819_WriteRegister(0x5C, 0x5665); // 010101100 1 100101 + + BK4819_WriteRegister(0x5D, (15u << 8)); // packet size (16 bytes) + } + else + { + BK4819_WriteRegister(0x70, 0); + BK4819_WriteRegister(0x58, 0); } } + + void BK4819_send_MDC1200(const uint8_t op, const uint8_t arg, const uint16_t id) + { + uint16_t fsk_reg59; + uint8_t packet[42]; - // disable TX - BK4819_WriteRegister(0x59, fsk_reg59); - - BK4819_WriteRegister(0x3F, 0); // disable interrupts - BK4819_WriteRegister(0x70, 0); - BK4819_WriteRegister(0x58, 0); - - if (code_enabled) - BK4819_WriteRegister(0x51, BK4819_ReadRegister(0x51) | (1u << 15)); -} - + // REG_51 + // + // <15> 1 = Enable TxCTCSS/CDCSS + // 0 = Disable + // + const bool code_enabled = (BK4819_ReadRegister(0x51) & (1u << 15)) ? true : false; + if (code_enabled) + { // need to turn off CTCSS/CDCSS + BK4819_WriteRegister(0x51, BK4819_ReadRegister(0x51) & ~(1u << 15)); + // BK4819_ExitSubAu(); + SYSTEM_DelayMs(10); + } + + // create the MDC1200 packet + const unsigned int size = MDC1200_encode_single_packet(packet, op, arg, id); + + BK4819_SetAF(BK4819_AF_MUTE); + // BK4819_SetAF(BK4819_AF_BEEP); + + BK4819_EnableTXLink(); + SYSTEM_DelayMs(10); + + // MDC1200 uses 1200/1800 Hz FSK tone frequencies 1200 bits/s + // + BK4819_WriteRegister(0x58, // 0x37C3); // 001 101 11 11 00 001 1 + (1u << 13) | // 1 FSK TX mode selection + // 0 = FSK 1.2K and FSK 2.4K TX .. no tones, direct FM + // 1 = FFSK 1200/1800 TX + // 2 = ??? + // 3 = FFSK 1200/2400 TX + // 4 = ??? + // 5 = NOAA SAME TX + // 6 = ??? + // 7 = ??? + // + (7u << 10) | // 0 FSK RX mode selection + // 0 = FSK 1.2K, FSK 2.4K RX and NOAA SAME RX .. no tones, direct FM + // 1 = ??? + // 2 = ??? + // 3 = ??? + // 4 = FFSK 1200/2400 RX + // 5 = ??? + // 6 = ??? + // 7 = FFSK 1200/1800 RX + // + (0u << 8) | // 0 FSK RX gain + // 0 ~ 3 + // + (0u << 6) | // 0 ??? + // 0 ~ 3 + // + (0u << 4) | // 0 FSK preamble type selection + // 0 = 0xAA or 0x55 due to the MSB of FSK sync byte 0 + // 1 = ??? + // 2 = 0x55 + // 3 = 0xAA + // + (1u << 1) | // 1 FSK RX bandwidth setting + // 0 = FSK 1.2K .. no tones, direct FM + // 1 = FFSK 1200/1800 + // 2 = NOAA SAME RX + // 3 = ??? + // 4 = FSK 2.4K and FFSK 1200/2400 + // 5 = ??? + // 6 = ??? + // 7 = ??? + // + (1u << 0)); // 1 FSK enable + // 0 = disable + // 1 = enable + + // REG_72 + // + // <15:0> 0x2854 TONE-2 / FSK frequency control word + // = freq(Hz) * 10.32444 for XTAL 13M / 26M or + // = freq(Hz) * 10.48576 for XTAL 12.8M / 19.2M / 25.6M / 38.4M + // + // tone-2 = 1200Hz + // + BK4819_WriteRegister(0x72, ((1200u * 103244) + 5000) / 10000); // with rounding + + // REG_70 + // + // <15> 0 TONE-1 + // 1 = enable + // 0 = disable + // + // <14:8> 0 TONE-1 gain + // + // <7> 0 TONE-2 + // 1 = enable + // 0 = disable + // + // <6:0> 0 TONE-2 / FSK gain + // 0 ~ 127 + // + // enable tone-2, set gain + // + BK4819_WriteRegister(0x70, // 0 0000000 1 1100000 + ( 0u << 15) | // 0 + ( 0u << 8) | // 0 + ( 1u << 7) | // 1 + // (96u << 0)); // 96 + (127u << 0)); // produces the best undistorted waveform, this is not gain but affects filtering + + // REG_59 + // + // <15> 0 TX FIFO + // 1 = clear + // + // <14> 0 RX FIFO + // 1 = clear + // + // <13> 0 FSK Scramble + // 1 = Enable + // + // <12> 0 FSK RX + // 1 = Enable + // + // <11> 0 FSK TX + // 1 = Enable + // + // <10> 0 FSK data when RX + // 1 = Invert + // + // <9> 0 FSK data when TX + // 1 = Invert + // + // <8> 0 ??? + // + // <7:4> 0 FSK preamble length selection + // 0 = 1 byte + // 1 = 2 bytes + // 2 = 3 bytes + // 15 = 16 bytes + // + // <3> 0 FSK sync length selection + // 0 = 2 bytes (FSK Sync Byte 0, 1) + // 1 = 4 bytes (FSK Sync Byte 0, 1, 2, 3) + // + // <2:0> 0 ??? + // + fsk_reg59 = (0u << 15) | // 0 ~ 1 1 = clear TX FIFO + (0u << 14) | // 0 ~ 1 1 = clear RX FIFO + (0u << 13) | // 0 ~ 1 1 = scramble + (0u << 12) | // 0 ~ 1 1 = enable RX + (0u << 11) | // 0 ~ 1 1 = enable TX + (0u << 10) | // 0 ~ 1 1 = invert data when RX + (0u << 9) | // 0 ~ 1 1 = invert data when TX + (0u << 8) | // 0 ~ 1 ??? + (0u << 4) | // 0 ~ 15 preamble length + (1u << 3) | // 0 ~ 1 sync length + (0u << 0); // 0 ~ 7 ??? + + // Set entire packet length (not including the pre-amble and sync bytes we can't seem to disable) + BK4819_WriteRegister(0x5D, ((size - 1) << 8)); + + BK4819_WriteRegister(0x59, (1u << 15) | fsk_reg59); // clear TX fifo by setting the FIFO reset bit + BK4819_WriteRegister(0x59, (0u << 15) | fsk_reg59); // release the reset bit + + // REG_5A + // + // <15:8> 0x55 FSK Sync Byte 0 (Sync Byte 0 first, then 1,2,3) + // <7:0> 0x55 FSK Sync Byte 1 + // + BK4819_WriteRegister(0x5A, 0x0000); // bytes 1 & 2 + + // REG_5B + // + // <15:8> 0x55 FSK Sync Byte 2 (Sync Byte 0 first, then 1,2,3) + // <7:0> 0xAA FSK Sync Byte 3 + // + BK4819_WriteRegister(0x5B, 0x0000); // bytes 2 & 3 + + // CRC setting (plus other stuff we don't know what) + // + // REG_5C + // + // <15:7> ??? + // + // <6> 1 CRC option enable + // 0 = disable + // 1 = enable + // + // <5:0> ??? + // + // disable CRC + // + // BK4819_WriteRegister(0x5C, 0xAA30); // 101010100 0 110000 + BK4819_WriteRegister(0x5C, 0); // setting to '0' doesn't make any difference ! + + { // load the entire packet data into the TX FIFO buffer + unsigned int i; + const uint16_t *p = (const uint16_t *)packet; + for (i = 0; i < (size / sizeof(p[0])); i++) + BK4819_WriteRegister(0x5F, p[i]); // load 16-bits at a time + } + + // enable tx interrupt + BK4819_WriteRegister(0x3F, BK4819_REG_3F_FSK_TX_FINISHED); + + // enable TX + BK4819_WriteRegister(0x59, (1u << 11) | fsk_reg59); + + { // packet time is .. + // 173ms for PTT ID, acks, emergency + // 266ms for call alert and sel-calls + + // allow up to 350ms for the TX to complete + // if it takes any longer then somethings gone wrong, we shut the TX down + unsigned int timeout = 350 / 5; + + while (timeout-- > 0) + { + SYSTEM_DelayMs(5); + if (BK4819_ReadRegister(0x0C) & (1u << 0)) + { // we have interrupt flags + BK4819_WriteRegister(0x02, 0); + if (BK4819_ReadRegister(0x02) & BK4819_REG_02_FSK_TX_FINISHED) + timeout = 0; // TX is complete + } + } + } + + // disable TX + BK4819_WriteRegister(0x59, fsk_reg59); + + BK4819_WriteRegister(0x3F, 0); // disable interrupts + BK4819_WriteRegister(0x70, 0); + BK4819_WriteRegister(0x58, 0); + + if (code_enabled) + BK4819_WriteRegister(0x51, BK4819_ReadRegister(0x51) | (1u << 15)); + } #endif void BK4819_Enable_AfDac_DiscMode_TxDsp(void) diff --git a/driver/bk4819.h b/driver/bk4819.h index 651ae52..db26194 100644 --- a/driver/bk4819.h +++ b/driver/bk4819.h @@ -106,9 +106,12 @@ void BK4819_EnterTxMute(void); void BK4819_ExitTxMute(void); void BK4819_Sleep(void); void BK4819_TurnsOffTones_TurnsOnRX(void); + #ifdef ENABLE_AIRCOPY - void BK4819_SetupAircopy(const unsigned int packet_size); + void BK4819_SetupAircopy(const unsigned int packet_size); + void BK4819_start_aircopy_fsk_rx(const unsigned int packet_size); #endif + void BK4819_reset_fsk(void); void BK4819_Idle(void); void BK4819_ExitBypass(void); @@ -153,11 +156,10 @@ uint8_t BK4819_get_CDCSS_code_type(void); uint8_t BK4819_GetCTCShift(void); uint8_t BK4819_GetCTCType(void); -void BK4819_start_fsk_rx(const unsigned int packet_size); - void BK4819_PlayRoger(void); #ifdef ENABLE_MDC1200 + void BK4819_enable_mdc1200_ffsk_rx(const bool enable); void BK4819_send_MDC1200(const uint8_t op, const uint8_t arg, const uint16_t id); #endif diff --git a/firmware.bin b/firmware.bin index 12f57d0db4d9c3ae4a07b75096b1967e5f4e396c..8ffe20962aa3f01f73fceb9ddbe22f53adc0b638 100644 GIT binary patch delta 28844 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 delta 28090 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 diff --git a/firmware.packed.bin b/firmware.packed.bin index 2a6ade575c8a30a9e985b695585368a1f5936554..5cb0526b54d8924974fe431c52bf6fe9dc0a0137 100644 GIT binary patch literal 60234 zcmXt9g0aOrLV1%xG*E(w)J+P8e~ zy}#i6?!7Z-&YYRs!qn?yY^(|O0)vsCwgABk+K5DvUtH^eMYOPca6O_C`xCL677wE;Z#bli1!h4tW#%3xb(wLak8v1t@$06#ftj zzXOG@j>0EL;p?LCfhhc56OH}0V`aFl6-nmtsBAPj&jxTPJ{#TY1JD${nY5z%58S)m zT%M`tyZ(P~Gi^?ITfxd4lnTmr)jd-w?26Q8%}?A^9(* zFu1Q?oPGL1IpF;~3=uR&B}{6=^^mQ%Y{cdJI;%}mI=HjXvVU)gNxAeOTl?H0`N`+M zn?o-lHf(sg`%b$>2Oa-LkHE>*UMUbM3Qe+NIEA4{Pln>Epf&;9!Is>8{n22Ut^w5> zMICq#xx1R)xO;H=%G8miHERHW|H@;e%|!$R|UBID0~q=8`_8SRIS$c;RdNEjUPfgA3i~K^8k~u)<-|=i~#uY4daSuR)oW>Kv25 zyUonnF&M^v-Fpas__8$LLL{uH$)0-aHsU9Fk3FD4@Aph+=U*#>GSmiLn6xsIgCkoo zFO1~SVW$;yjd~q$jc?Hs<+-y@AEnv)M24Y3dgowF+z-EfS~bH{fi>XozFZ}R`qw%s zfO~B0t7z-tm?FBy*Igs@zOJCQbM&jz%LF$5k4mGdx3EyRihakZ&Mbu>I}GtUih7UW znJ@92W4wXf7rBSJ{k=Zcev0QU;ow`hURB1W8bqyZ<Qe&tL*1^fVogP+l)>YLaT@lM0*yf6$YGcRd&(gGevFAJHXe}!h3Po`W- zd(2P9T-v(a?*4TJ0`+AvRi{((*3Si#alJbD_@0|ILR&!U%&Mf8NdPES&`^%IjD>_6 z-hi1xIrh3DpJr5J4Ws%W=@v+5!60rM{rK2q#TzQABii%l%uaK7)9oLBD{R-1d#dk# z%8gWs+Qs2`N9&ktu5a$`|B;y%+YT#%Ekg{_eb~xXv${KJkgsXzoBAHwvZ3c^bDL1i z!pAo##2p=I1c@gzH*tn`rCjnjZ8-$bwl4)XoraaLWIM}h-M%c~V<+>0UHskJ_t^x= zJejWT;ZTADt&eS7#igU^hMkCHI=yyNT!9#I6<*RwqXj&xX6D|$hfH2)cQG@p^H$ds zjcghY+`&h*(JzhHmB>gsMUEY}k3(Dp`D!IVsi4V`*szyOtcFlHuX9S>J-}-8pWc|* zbM7C;18IRzw~RPMhFh75}l^s2KKh{ z8Nf~4W;rhn<(TxO_qSm(p&@d-&2GC1J_kLtg-!pOUxA{aSf&@Mg^HMh<`gA)?LKbQ z51(TIFJpcAC~!+LHa!AugQH0ZMZZNs(+vaBCK^M6npE4yFp@pyTl2#3ra;2IY?7*8 zwgTPrMnWuy_U_>w1mFhI-?V*iwWUg3H_jcCn`ZyfTIbRe>=bZZ*e}5p+dYQV+@wpQ zl86{1_X67#9c6ysd_dwdsq-c%wg!06+&dzB^hCUth{a)yf6l2={mBG_`RwFwVhsb) zN3VbwT19mL4@}qB0F%Ys+bVG)BCI_`aBfQ9l}b^(XK{PqE_1Fr5xzP9b6koexuDJ!c#dM+eLo#wtLx8Up|d2 zZdLTkrPBRerwWOA`Ic1ygDZ|**Em(9Z9!*)N>9BBY_F&{ptrL$A37nrfWWnMIqq*T zF@fzdKzp0Z)!JYQ2U5XRYOfk~m2kpnSvdY~h#OJ5-ww7tb$s5scbq?dWCLn2|Db`_ zWFqZ)z$|u$)5pr+Y)vBs=6pA{#cQnI+CfSfx<@9B;$IE^VRBJ@ z&E^;w80pcgA-?yoe~Y4CJRER?FZR4xe_qfr(=_8rmX_B2*4`kKbwqVeKh`fs#>)}E zyM6}hjVEH(juoHGVE^Ex&H?qb;XK52uj#&&5t~lKHDQ~20MmP{-iarN`A%4eT`0A7P4b_f@Y#iYT?&;mvxGi)7LI^ zUoa0nSz6QHrup?D0M%;DU0O~i_=umuLZkR@{oFx%{uNOKdYTTeycoJAZKiDMk)Y1i z7}~AwRCc~@EzQ)c2Fl_3J5>G4RrC?@g$pxa-p8wPYV;5gD7=}E7`0bM)xUX_Szt1% z{vB$|HftejMJ9!7W!=oF;q^r7$)M+$onqKFG+=?_xn=M z9{C^k4rVq{P9T%ki-3rVlgs-S)*d*Pg4G&wZ7dSwukTYssa4pt{AoEi!}He zw(e}Uo*9DexEplr&>(%DlsfpckmuiU;;nN7KD#8hC7)3hps_8>rx7IKGZ9f zgu7FQOse`qAW6)2e-BxCZQ~)>U&6Ax_B|NFx#h|sTBtt~{evLQ_Oy3ZwaWGKeShm* z)n{FQ)|ty>1$&1e=sJp&Pj0TM?b_>s^o_vZaPfZuAQV2i*56Qu zm8~d}GIGw_$-!(Px+0zALMhPmq4IJo8+sK>(e4Ch+GWQGjQj^P-h+j9OP0Zh*bcZp zqhTBw;t%V&poDoyM^-Mc$@z=4M2di3kn3MfXf+so>*?DRmF+?`E>ZU4r6wqE^5fPw z^?i!Wj`XM0w@o=`W2XVF%(YKIgkjbs@Snl5GszkR5d|u* z0JEaGoCnli@N|j$lkGq4Rh#`6Z_nh9>%v^%2zA3kro3X3C$BOwO7K>O!(NhP-bD(E zF3Hyr*$Ub2R`b(ws@Ll9e5d;XgHDxuE%NRJ5L=7xn%T^{D)##*%gI zMdICd(%S`Hqs}it5|pWKcx>}lLbjUba@u1s+nAPBr@2S3ToHxOxF}-?F#y_ucOxOG zEo{wZ{3+S@A$g+luhZF5%*5=-5Ir#iL_W8X0MI;d0QseRu+Z|ck2Q0P-E4uEBlr#w z%y)rEd{O!0<$NWYQM=en&V734{Fu};BGAsM-=eX`SdFT0W_Hyz-gBo{h`!WW{2 z%@+~$mn)(0{g!CGOrP;`3#0D8>#lS;o%cAqjhbp#qJTiC{!sBA9pY^1OA(X6wDmlLyZijR{1GOK$aobT?_6VSI&x@0l(7u1*k%tgrlgbyHC9 z&#c-yhMol}(!*{ju0JW(rZP%U!>Q473Jrtf$sfNFz}Z3NUmb(>M`K0A|MAaunz?r| z8?#jZW#~l?S|fhN?U_ZMs3rR1RirViC9ZXF^#o@^V`j7da2~#HK2mUq|pFWJMR~1o)2OcQEFT)3XQ;;WT zeV-h6VQbAj`gZ6AnxDjvqUxV{olajL->TIxP6URB zhdD3ZXuGA~#zSm6pT6At^F&@xvT~w_#z+A9?0iukZ=|?MR=rYZ5d zrMt#uVu{9p^I!ZTqiSo!4eI_;@ellsC*JF-G1@xarQ}>91g+WsB940hrorrE+CptO zivRpZwj}dBcFN4(?={mK5VM6mJX6f|NIz`16pVd{9si`yhzVyw71zH+wkUkP`S~I? zzVLo;))TU)fqmSl{O9rfruAt7vWvR^TgE0KK)6D$HK0-QlJ`wO2=a;=mH#!Z%sM2X zjE`aX%MxQxe~~(z3Jqoh>8Iwsu7|mjhbp_@@jUXM65F=IUql3VrLJj5o>%c4a`>Jq zUIGa9P4mpCD_Qmq%yokFu98=+u$lU6wDrERj?*G)05}q=b_2IhZD!3WMz}=ulwQj! zQr10CPx54hdz=xeZfxDNHYmT+2J~kH9-uA#8fE@PkMmgna>z7NMe?^NYo)7E^@qW? zEY`zQ&g&vSoL#i*ji!g7ZG}eN?L=g!ip6973mxB14Qvd$?OmO(T6ya3XOcC=tjh$s zgDLvvJ=R~khKnt^3eH~Z91a#m%0CZ}`Um3isDHNh<%=)KrDwpa!B&iOm-{T++tWH< z1W@@`9ES=+2fsQOEwJv2)D3n#ouC^)+Nbuf0LG+?pe{)}jF zqpx_$P))YO)#bu*LhxZWiZU9{u^)B+Pnb$h8lstKe5%{UG%s@lz;v~%Vssms?Y3kY zini_9339k~|0=51#Deu97@3dyM^Y;krGEwD(7TgIZIuTaLlx9lOITGpJO-K)a~h1R z$fFsAN^=Npi%!S3R;!NHK+O~XV3H{r<5R7G6sdl|kj+PB8;!E4KkJ|#u`kZEv{ zO9~}<)LH*SBE*=d&*>F@G8$d&srq0MqJ@hQ=#AkRv~H}5;{Ot@pP@L=^L?g~?P-~Y z$M~zt(o;kp#V1#qe9*(CuOMlkrKjD1M+i#_DmiBSp0<4N=d==8U4IC>6T3Ct*s_mT z6I0^GmuFsKzh23Z@5a7Q0?A{;dwhTE zk9vx`hhEZeCklC7cda}V78FKr&P!aWn#UlG9nzt0bzHIGYvw5aiOhJfKd-8G<#ek{ zAVY}`Pph(5*^;pg)=?Ez2Byeu7&A_}oNsZ|Kk{E|cz$B2-p$))LYNA^fT1*_JggR6 ztcKGF911(J$$x%Vwlkg3l&hCbHk3tOCsnvxU=-Dan_+Exx1fi+nc?$k2 zvOhd9uJ5cnWPiXf&>!KPeU%mk@SBxmLDe5$XAJpr+8Xm^U{)E2)<9$8&z8*EZwz!y zTh|ZqvCK86zei{^({M~~9{ZoZAT_D>X=QcR$}oYyS`vd4+^GJW6vcmuFl#C8EF6;M9t~bVH(R;l>>fJsovsT6Qi1()OJFrH7o=k z_dw8Jt__dJ`!`t=$r%m@GgTQCw$P*M-+PFh*Ji#1#$)|Uy)`__6$QRcLa6vDDq_F| zD2&x~QU0@h6Q7$RJgo?J*5_1OwCLQXn?P{X>p>Z%Gc-!^e#R2;icmq3sP<<6S*k$K z()*=`dbT$)_bTjXCyLCD6L^lj5^~XWNi1!V>0HKDh-Q-2O>lBIZN_|Cm6>-cbp6Ph zKeY#>scGL**6Qm>%|sm40+{gSmPEvfkk!Ylg(*?<@uBn|y^ja`5Q_gM+<{s2tnQQQ zpZlCIHbmEOB83N+@Va|Jq6E5yc`lj3>W}_gXgQu^Tf6#QmjcY8RsF7iw+|J6k&ZZJ zuG;OQq=C{aDE<|zr7#?yw=@+0K~JCgO;LX;!%ClJ_~BC=z?Si)Xy5xpe*FTqMw5g; zfkZn|(0lWAuQQOZz2UDfI?e=XegANlyobib7V(n17)-eLsTiEnQg(*J0oH^ zTcswB`1PD-Rejh;{v)*Wp!dn|U%{~+qFbhKzK!Ksq*#y|ebB1rVs}LM{12a4>T_LS zaSlW*?8j7+smkkj9quwc5irqPI+(CV?ao=4^S z(w%$J%k)iw-f2*L>C?;byk&wqgrnnI2E4w9ioAS%*+Mk3%gWd1#D0ww@xu9{JZy;j zRx8i|2;eVS*{lDi)}Ep*cJwdxB=0Y--cGl5bCW>>?4Q!)$XQR{n_|ht$)BDID5z(y%k=b1z?01;X!N1SkeMFv>S7XtbJE8c$5;gz$&wpd@_4&Lh zwjevDjAWU%#zHP4ibUkTqse62Vf7bisUIFV=g+17VMz0yxmgm@=+|Ylf#bPR{@HAk zq@gDs$&%~Ct50$5(5tmply2B-Unvp__WnZRDSSAwr)9n)!tkzCoWbVhTr9(?{^atO zSBi+coY&Ry8;CSKm5L2FmD-)X&*n2svkeB5Nx8_R7Cn1DUqmmbQvmqOQ`hm@LTGZU z3$n{)-q`Xb5ruDwYzM!Ei&3B0s6WSwCPfgp(0by}b&&TZuJl0J3C!~Twmzv66hP37 zovjD#u&y>(dI)xwIBa)K#?-%qJOhMoKs8Tsi69|`p|;WNoUdP&aQ}=BRL``=qFO4e6QMYO(4YPsuQX&(e&o~8E+-em=zvoCQN>HZ%Pg9j!k+clB%x$$NbNA(a0jz}4&XsaX?h9tB38ZUZcY zs}YG}sQ9-&#jk9yCc&0wC)#P|%-RZ(d=q3&iCgs*9(nu^<-gdz7zo-*KLRRv`V2Jb z>ZK3)+fldn6=2dgIidJ(<4Bkd5|()Fimoi!rg=#;%^~ADB|6K-vNn zMJ0%nUgPvip**&#rL(C4yUJr#D}NdN^2+O%+|_rJt%s~F&ej;YEFE4CB4l6v>90k4 z`v|f|8-y1nNz>sN7$$Fg4|FtFDOdo)(uVz+aVlwh$;E%DdpE#BpRQKqW2lS?wCO?^Y#Zzs3YO8y_AQuAjaQ-0 z&$^0cJ-2Rz9VwLs=|!U57SaDX{KK@8Z4ySj!eM;+M&p_N*D5GI7ar_PjjrV&M z@XEe`h#<<$Fmnydc^a`LDiwn%vNY26A@JzVJgQ6o4$SVmnWQ*5VbsVP&uPFL%#U-@ z<6zeN+CA22%>{+O$!MS7hud{5GQuxnTQWBJ{TA9nJ&ABIKr z8Or~GV3J)*h@2AzqTb(7h&NDkE-g`ztrzrk(|n;pSq1rQ%9!X@`%9|;^u_13JdApU zUJ`8O4(EJm>b4K?_o~=n1s`ShiE@UNJ0tbnm<1fqco%DdAutK{s^e~M$eV6gu*<|1 zHUH#;GD{XrN3gU1ws79?fRowpEXS_askj+nlAcwBrZL+;^E)OmKVDs7gL|8xkIin9n0% zy>*&HHBi6O;`&gDmpFB4(Au|uvr{JxxG0kmIJ~FoAtmeRd%&V?GB;~bV-c`{#?45z z-0(&X?8`ZDhklMz0?IpRenIGh?F>w+ha{^1 zS}pUUf1E#li!k?gQh(H+F&Ks`WoweGN7Q!1JGW6SFDKs$lj8t{{^ABgw#@qpUel#~ z!pyJ&_eOnfG5vD)RHtdX$cb?UJYyD>#x<^s{}BI;nMrpK$0a{G<4DV0`e3s^3B7dV zB(?6}{FCOay?)=p1qP2>&up^f)S~=flOjIV=3g|n%Y5IpwMzBQAQDf-&{TMuZwf(g zkhifRkoOy^I!A2qaROwk9`LMhRrb>|n__^!t9&`=6Wq@4BQQOcQaz5li#dR3LI|x< zXfQHsz;K6V(j@aWkc2_+x7Bl*0Nj1WnMJq)1TNQ?YCH(MnA=#vJsP zR?c2jtUT7(gIOvPrT>d@%uxEjtteL%92C_Bmi=%JdD{ABkSIZoP;m%<&jf|<9m?L| zQ(DCBSt=mA=a&aCS<1cN60FA$4=Y78>J&5P+V*wMFU;(TXcpb2_2Jd%?_ldxIxhJu zkoQft43itBzr(;4;heCZQ$H{1rPBhQ!(Zm!kNJN#8-ejm)0`+bwfcod%XLN z`i;{=aSt|{@jJFx5(7ygQwc}V%|W3O40kmSK?r+0i@xQ9m2qc)P?6#rLWN`%Yc;xL zW@K|O<6?u%%-DE^D~;u}Hq_XfBnwa8BAC~T+d&5IIOM~f)^nLdm7rn zS40`zSmVYs#Ud}*29D~*aJoi~miOqInFeSGry2$}4%k`GQ$W)yALN)U=8ZbP-}7^K z=vN6j{;bk8{3-=}tP>HNr0V^f;GGWB+Zrv<)|9!L@tS5c9XFe3L){6c^ID;t3Eg!EM>lGwIrNY87J8v z^9$H-Kkih*Dw6%PyYHAA?=%3E1~Si%3YC7B0f7cnWC}>=qj>Stp+u5-+u5D?n$%@<>@ziPmjTm>_E*mGm!F~ z%ndO^qLcRKydZ7tc3Pxj3?t#iNk@$7{pX>Ed~P9dRAZeI=>^TxW1$;jJ_85QiYAo* z(rZ{+)acr#q=-zTd>?U!J)iMHmaX4?Q8Mfc#pLy$r9!QE4;(`D-KDW@7G1g^Vr{6p zwZJOA{PJ50+&fhfn*|GuN4Pb?{dQOs>@3V#gQW-s~y=BY)vZN zo!i3EpkaM}!87f@1Mz+ZRjcy>qU!tnvA_7ZMCznyG8@W2qE%(`oF zKeDC$IuF)>!ED!dz1>%u()$L`d4YOE!xSh$pNMVx4n4*cGZmvfl&0b1Ltv)?51*29 z7Ndr-5msI0#EJn@=c>5j)RDc<1(%9pPMHRyWcgnv;ajnt%!53x4b|I+_!OqVkRw$5 z!*s=(-#JG#^tv>`<&ojaKv6 zLq^wRA#JJ(s^RA7y>T0}HBm#RFNCETF(w3+X9$@4WO8?K+Ard9GxYiR;`u8)g5%$T8EJ&3n5%QX9 zbL^#&##rQoGW=2hM+f7K{>B*u2AX*cCb%AVqw;?wmo^hy%#cK>!=7Vn29dx@c#lJy zC-9*{d3ZIprN&g=4AXzNycanimICOYv_TYE3N)hP{{&>?q->v&r-*dw3klADyBs7$ zgZ2r2%@)?w=k>f=2KD~wLNJQV*NOefjwN*d+%eHe;g$J_HFO!*UTiu~&DjR>w4SL< z0mlsf4<^1;hK71}fSsI_2#%oAB0|VDn`Ql~!*hfD0W04nvcK;|l2|;RQQw#8(*(1V zR8={!cY=XD95b$Tp2wcjs@CP97q=1LA2wq8WUR#vs!#ETwh>jR{^JeS=GdZ%#+clu zGMvzqB$KdDHacBu189PZe`p7+XQ(_dxm{A9h&s_ozh!ko^(r%tmy=7GkIbbz%)t}Q zyVAxWI;49#MdsN#(VOe%9T&b;ep2%#@)^>Dpp`&#XqS>}rtl_BFcJ@8ZvKgL5paA} z=d=L=p1h6YZ9>iez8JJ8oS^1^-5kpB4<@MmlTwM^UMv6(EOCB@>3p6Yjxd+L0X0%$ z3uw}{Kr_rY;5}NH_c#m<$PU}ra5V1)djX7J%6%6IpL#)$Q?=t@{0+S|wspU@xi7UL zCLu@~b~gf}c;nz-uLsZ4>NrH-95CQ^kG`CHgrdGc>j+hxNFb3o%>%x? zTQCC-OWRQv?QkrIu4bZH(&Y3;HLg5;MeHR6AURzad|`uOhF^TEQDZLkt)g`9^P%P) z>EB8b0;H`rZoiSDUHG_;J z1BYP91UIorFNbu#ZMCX@@6PY`|sY=K-s@8UOQ+pbMhU zqLBbbgwjinBlkvn46XH|qFvWLMZdH(%H2p9B)N8yA&MDrFBZ141r~?XtBW?6oe&9b zYa~8T8X1k5)@jbI%5kpSe=)f`?F*Yg`R|YO2f`;_(%`ZJ9t@DV0pTlVT6NU?RXfCt z_xh~e((?U%EJn18u^l`dI_d%{7K}YhhfGj~J=}0ACL6e0+s5}}VwZ_Yy@8Kn^0{lPaqd$a`7=@& z^u`~obd7`K$N;fT&0Be4RQrupk($%X=IcNT(c^1eWb zld$q*AvTaLTFbzh_cH7u7&_H1&s9LcG1%v4XrPqSY*=*wz!!xtEr`iprr#f725fl( z>#+WJuR#J2NtCiAbi2nX3Jgat);_*}oWH+KdAnd1`Y+(g;u-_7YdCJn82WrtUZ!R6 z$V0`JbLf^^03YH=4`U`?!Mieiytzbn2&f$+13h z6&4x(#{|22=PEN<5c4*vK6WfL#dRN>AP7!#K!yArLwywgO4vcTMPoP0bu#Ju3K4#( zbG)09khxip8VT+2&-l0Ov*y>4jm4bm!;#G?zYOp6F-gyVp!hdItxcVYkJrxvr9X6? zdmO*7@)ig064!a);w>x8XuCSC~WI!-XSNx4!HK zW+b$F{|T{5B-a(3kFD~a_d}COAsVHxktQ@MzmOBYf!cp}=9b4TVqLG-FS>k{17-RO z^QZF)@br$h!!^tJqrir}tL3O!^4%>Yx}* zok`|K+&HPL$NVP!s;%o%+kP+-XrPedU4QXh z(#>!;6mE6hCw^)BtGPrK9nGXetVn?x?E@{`67jx4>VU5=R9Uj)hic5d(A)-r{B;;T zHrn$A`uVcv_J+*C5N|pmY`?8%w{nRvw{#Dg7?juiBfTiO|;!pZ zBkE7adVONQv@d8lY6XyJ%#F#l5E9cA%BZ=B!+@~dkpfZ9cCoCR1(NG$soe}?lJDwy zS)UdLr>twW8wK5?_8&|cn|Z~bw7-$`dYx`@D}{!i%>K}1u7TGdX%V8N`Y9aCC2R|z z-=%a z6l)h@fGWM{5h(qIZ>Tfa(8V}<`VjX6lgSJ%iJ&7G@?Plg%pYt0>0r{kjty$V@*1H^ z+3TYaR>HJujecCO9@Yi!24!z#3gyozr1Mm-=)zEzaWzI^SKmuulV;q1^^cEXbH5L@ z|MOK<3ktC&X*nHx;TN*VZOh%_IEc1TjGF)654DTL|2=XF^6G#~(E8YiUBqLV5eCKO zI?4RHvx=-YlSrH)J6E&6pb@GIgCP9zLYHth#bH?pkg^E?`bN!0JLS9HCl<$9kjN+( zTH?KQSkl%x%Ky5A!qf@)VG&#BT)>%Mxe7^}%TD=`$_gZL@<;PBS@hBhi z_Ca^_H+oS|Mlx=(Pal$hsKS+vQqN%TN0zuxFnS2BNaKz!{6tNv;!`sxtjF+8D8H2? zs-tb#l@>9%M}U=(VLx=OOs`JczcDz|1uwFN75;e1;}ZYH449*Z5kWsNcH*c$F0JAe zms9o3b7YJu+MIgbtz$)P-s)qF`enI+^Z{=nwyZ63K+jHWgY0WW>RqG-;TH0f<%hPi zp^1DKMnT1>VN%u+5u*GMM^ysxotdwsV;T=jdU`u5@#-N=>VQ`Av>jmk53=Nmqgs*qC+xjMqN}NwJ{@iK2 ze1H~F-k|}L#WQKH%bH>Q_w%pE*w09D9hl=?ATG&3bD7D=&9^`Qid|Qf zzZqIhtC*kk*1EQ~ZMzo~G`6zM4=*3LEZ*dv$*Zdhu{;UObWv^a7%Xtr&ZV`P`tw;} z!Z77=|6B@~+jRYs8j}1Xc=%2*{6!d}Ps(q$Gu3U|6iW#Op7^TyIT_28Pb=KuO5ZBJoJA@rHyO%OOBi2x7HPz=3_C@ zgFN?oNYBV!P1ls}oiZ7jM7nBjHV}o^Sq6|!VpbLH=f6UJqs46tw2{oXqmRo>vlvnH z%c38i5;Qfp-}3%`Su?NmPLo5xu+g|9L*1r)5xO}XTB-?8Q2e8`NsV+3k=YRUwDIn- zuA!HvoAKJZ<7ZRnvk!YvP5smuP7Ty9mIdk?SmpJRiv zdQYW7pyw;p44UB{x-vVN zmSUEjoz7>wPMl98lXQDA_r9!Noq2EFJ^VfE`sL}*c0`LJAb~C=k|p-!n}HF))Zn}j zJHaDEz2q8&(B2(pR|lbaWZhy z;Pj)_pD)kMAs2k2+!VQQQgWeU0%zhi7)0MBm0OWTPbb=L0*;-07=2hD{f{ErUJ&!N zgG2|lSU&p0#9 z*HL}L?Hg9#&I?~tC%OnH8ShaYInu4RTXpm^4k|eR1C79qwE%`N^?n$!6hl4_5_oD- z$y{Z`(}xdwKZErNcIYwBTOu2{oEp)ogi)a$kXFhVEy~@fUo7zWTkV(lLnhn zG8dVhllg2Xss-bChi}S^ik;o9WJ6V``**0^ioT9wj^_bz1Vq9kU@xU3nRMo5ouGy2Vjb*+UnFAikO z>B)Dxvoq|z>U1nwmw$isAFAB7*rZc`Jn$Rtl`U^7Wub{<AB|LXxazKn3w>-I%;CGBUc~sxcHWr@0|M`dYP&)?Yi*i;w~B9`yO*}f zV)~D&XJO3ieh0|O4lhPdC2xJzZn%5v0mkjvz_-1H#t1XG_^aXy`Qg--G2wN2HkLq~ zvQv20Xb9Px4YW9(FSds0)lfZV>m5Tv$q!ad3WvTR2lyS;c=t2wUCnpjL@^I7U>{%G z$>H+Gjf>a38%Y^&bTAS8bOHwVdu~pATe6=se;&v&4nSKftnUMTqMX#vy3)hB{qf2^ za^%~}N%uh7GSZWLooL0GkuBGDP(T@a7pyo**`r%v%yf z-Xpo3b>UaS+PmAr?br*8aK+QOUt=yP|5?yaIU_vXnBB?Fm`8Ty09-q8?lJ`&|2oCG zpC$NH4MAYsBW=W4On1&Z&$+f$O|Ny`%dMpNEO9vIr)hGIco63~J;|>ENnQK-2L6W3 zfslaIBHL?Xs(0pwoqo*Hd&a4ooW@F^qT}{x`yF`Y<{AdpCCdM=nd&5_J`p;$7yWE6 zS+P{Dlu$x8^b~hR)Ny@w=e8Hfa5a1@I>IZWcZC6HE`2HVYcsX?fD$s@HL!U&4%hfv z?X72QbN=$z@Ydt`tKCfn?Q!;Wrthx)2(U{CM4NyDyu4@Txj<~+axgee;z1mTRc4oC zcb75Z%1%BUB#3SiEBb&_z<4@d8CiGQ*(4e2|C1rl`WHFwyTT{sW^c!C2Q|+GE?*3z@otEcyyq+j(g5{U)dUze8 z%TtqaP#FH0$2L4FWS|#akJLz4w6T;b2pWu6&BNk_q(STU#V~y#8wo2#TZSGE);T?2O^4m= zsdmr)$@HMBQ}WR!SD?0+{&)T+L|=d_6lLxW^gCoy$Bn?SC2E?hOSwdeJ4p0+ySViZ zJ^Q$iNw1U2Rc7fYh)^;qBCTqH)YKlx6Lek_UU?3d#@+=jdMi zY|vLEfM`+o_qS&!;;P>2I7_;=gZvAMHP|4`95O`#n+QThg?8^?N|}l9m6NHuOv{X9(j<#P;TJlIOk#4xX-Xu;EfqNb*Q+wVx$jJ99s2f1`FF%S%NbUA(4`5lf>348p1Iv{aQ z^tgZV*nd8=i|A8FPZ6{ZQ&DYDu{m=Rv&0}0n{RzK#4Q52K{xIZ3&a+QSEq-mKM{aQ zZ(a3LlZ;(A5?t6&Bv%C99Ob_=IWwjuQH`E;5T`+RU{T$~^|rV#8tX-Gb1%H?u4{nox*aTra<{5>2Jc4kBHLMmFwahgcB$8n@Y8=#qJ zswu60^c;E6?Bku(ym{0ju&rgi;?EFYS{@n_`*AXN?bD&=!?T`PkpoqY#t1;kJS{5z zI{mlh8J_x?XyML;bd<3S0FPvhiOG^(kX_U~1z}vkf`YuI?I=S0ySnx1FM>Gdmb-#-%^j%~o0^Fr8~ds@LpF zVtC`(zGn1c|IPM#vXe;SHUjW{MUW#~u1 zDMnpB%728ZWU3T*C-1;Sf08K_J5Z|Qe9|!@XABsO==Eh@*!95Y&L#8Aj69uCQ}#Zi z9Z^VIsEpNgp_5!K47u1q_j71Org{W-Kh#A71e|<%sc`D>o);vlk*mp%%@(QfdIbMk z?)C8y9!Gp>czFcKL;3&d-x4Pn44Ey{^02!{4d6$|SB zkK7%49LOQ{xa~uZ=*^qR9{oGgx6&1B|F?g{gW5j^PNV*RqV~_8ZW=9+)7z|jjE0oo zi%blO^kIp-OhYp(-@=!;)BXS{0x~qt^ZwNumuFa#Y;+oQal*db4re>xoyLTB0Q^36 zI2X@P?%J7kNGG{TvdSqN?O-{NRJ_|1hHJd?5WFmP*hTlgwEcY8cu#tvtu$hRi`swt z|NsAMD11u|;OsH#{Ez=H6?IVicYnBgiEe0K)Eldz{vYP^mOeQn+TLc`YY6CIwj&V9 z44^)L$}rHFQR; zCtmz}AfF}*fzgEE^+tzZDd{eNf5Us!*t^5D#1IqS-Px5>Zs&U+v$}QGJGRpth6)iJ zmVNKN_P8%wSSd>;KQ^}-7|fOXgs@JV98yal&yrfN1J-SHVuV!iI=FpyPPym*UNPT* zB}J#dw(IGd%}HB2r&R?xakkNM$;{15?+H?GfrA=Q*9!puftrbP?sc*dtTvcNx~Yl* z2idFk#>#g}`DB;kRH1JioruWsPm%1dLtg^hE<#}7oWvK70=2c+B4Aj$BWy9nB|w(* zh&J1tZAT`!deh$-#3;{ddcVyWK^bIwO@r0Y=Vsm&tov4_;~m_4!TB33eyK(LnmT8e zf|(J=QjS#RntZf2tvPWu3eLAq*&SpprV}Cm$=YRoWt*LS0Q_VtpC9TtYdG5(&-QE5 zv;MN4mD;x=R^O9Cl)57HYze(=={*y*lw5P>8S{aTsJXRN(H7A$WxQgE(xe4<1qHXg zu;t_Y1ONZge;l|9HS1EDu95m_U|{uWjlFXKduoUB3(F+URxF%<9Ryj@>uG0S8L_t` z_-QS2sDu@a>jeBF0&OYfKt{wZ9-#sAhq@(&<1Vll1zb>C4T}&X{98tR^!SJJe*Fe< zJ4~|C*3<}qe-T^Xjyf@1Ou|i+|72HR;c~<-<2Ueo#eMeQhtwkD)R7hd|1N&?-|Lv_ z{7I!1#kDT;Wm_lwN;W4cvDJ3ye6szO_Qu^oPmu5;(Y6Ki@ z4mW=~Z9%r0QgnC|W6^j-9(|X=@W*$qI7MnDX~2In$erfu3F-DND$MuDvdZOpLaAgq z>m-CLSi$%!{WGeWS=#5e|M&+t`~}(iq8NouF2GeKpXd2@J<+{Inp{?VHEfv(mQ{4s zWZ56>O*vwc+XU{l7LT9pbv#mx&Vo$)T~;O8L+o~L4Wk-gjOeaC)4 zhy?wJbwRxKysJb|sePBZv#TZ4Ms((?6jB|DVy_p|8UUsDI16sN`ys zS?TmjV~ag$#WymuG>Ox{86EfAa`Z1S9i1NZS_Dr1J4;YHqj(pWKhIRzU)!Dq87JrOX|LCYyw03 zg^$4WG5UdiU{<(m&mz-jgm6l^@$rCHaRB{$)1dK_m@K5zQiq5by z-CnC}CiG za$7+zLH?0H*)lI(uJ5gmccBx!AMERa0{EX-PcGun{@}XJBwgj0hkgKK2kZ>n(+Lo5 zeDM+sGU#?Nl|hw=)frMfjllW&UIWCp2h(=qtfUmen{u70(Lu~p7_e;ItEC&T45_BX z!_-9IYyKq{8l*AJ(tt)CKKjoOh9yg*0sWhvwZrDHGpw_^*ozAC$Ug)1cM$`fN3971|@s#swPQXDl@lQ)w*ij&9%XAcF-z_NWf<}jFGE1wf;mY4x4 zxxMR+AJy6X%4%aJkE3C`yfQgmjD~W@MVYBL;6Zx2L6}Uc^FbHgeyhA~&MuHKEc@GH zZmqy+)f$*okJv#(r8SC3S3+aWPVrd=-Ga&t>f9pL|M<_kfe$)0c;tHU~|x{lB36IlpEC(|Y3 zJ;FP#Ya=wEQda6@EKDP3`03I>8QjPq{Ga}J z_W$dD$71kr{AgBpdbO2zaJ%JOf=!;L2Odeqz<5_Q0sN&8w$yl}oxhQ>{Mo z$p7z7M?!Q}6z%xSJN+HWf0n*!(iu@&>ppD?PF4zSPzChYz8k?moeBhM@>HOfjZH`T^x9P6i0+0L(qKUE@Mp`>yuuuEB2s;tOrWR>1o6Dcx$9>ZHQT zeRW8eMZA@o+CTBun;0>WMn(;aJcPA?IN6GhIuW-fPvYhfVOe6RS2=mwl8^dp%QrE$ zehs~Sob2^m{P$l?IGm<*oowv);To!V*YBV@_sNg`ivtwJQp8R;QzRokm@uM-^g#{c9d*% zfm!yJd4poO6+iJY4m#tma5-(eX^E+#N-4UQzyIvZNKKK7rLBL>+5u0ltW z;Vgs^C4|>QuMFN=`_)*5oNx*{=gv8wm3T>Fpg5#Hqu_Aj@q803=$pfo+1}i@y3v#1 zUbeU^XBcA1oIX8BI3hn?Eu=42ziD}sKZ6r2TtkN5qM!Ily zRoMMoG>XDx3kXIh(O~ttxbSb-xRN;)FpB*V-#uy77j;VpRpEwMW7(}ib8pmYcf{~z zmW3LhIE3r?V^WNYrD!SPa}EYA?;f+f0Q}d0|H0ya`(LRCSbu>2_)&jh0i6Gj{Wq1V zIsYU6aV+A8O-X6O_D2R`o&(IkFZ+s4AbRI#rU)|&pWIh2;;7tj=NP*Dlu=!oj4LkP zV9F@HFOpRB|D?R`6`>xd$yZK#@Ry%eX`XhPC{ z4fAuF-!naEixiqY{+4-xrUCrv1*36tGlF(tN2EFkGHr3$u<#-r?d)@G7PYU9k0{Aq z{m#MY`sMMV9$1{0W}_?KTz9f@l&;B^GS~XjECrfph&JuoQ94Jl&wO1VP*ZvA-MfVK?2DLUwlM9N^u;>_)PAzMFBpJYEa$$~>oxbV=%z(lz-$Zk>xy6$ML9PNUgI zXLndNYc5~<%i0!B8K-znw4@{AJ%M?y-%m4xac|KpgU0ms!x>Ke^U^ilVmsp9XnD>| z8uw}Gxg-rSd6z{B2bSA+iL^`_JK!|eQmE^|9LG)jV7Uu%a=cug$49%Rvz;#A%Oz`f zUFNWLINJaG2g$D4GdguvRP|{>oI7=q?DX6WddY{#gaUrupy)5PdsO!V)7|I?rJi-$ zNis(rfkk%7AROm;-9USj{YEt-JhwsF&vRDYCN3#5lbUL11|I?Z1?hGFvW6VrxiMmk zebtbnWU|NjhvTT+@Ae2$uI2HJW|{A=un?rMPe1+S#N#;bv9Qtu%Q_AZ3()l(v*M6*WZi3lw8U80t@^ zOzD480Qob5bc)}M@}0$hvZ-esqohz}U(fM;0rF35TNEt0(<3j1@SVw$L+Q8tJbqcg zdA7KHiV<-ISSzKeiA626qTLuSK~cly`C>X&0A zk~kahPn2={07r~UX9LW7tzM@!{_2KW$DP0uviV3~jdl zSAT|^KW)k3mW+A4|3Yl+Hy`moq^y^?@NGWp8$ka_=S2$=5CHU7!1;$Wj|gK1@?WCU z49)&w5T9F2o^s{sgdyJp{O_axNLiroS%ig38XU-fvFSD&yhMfm;p@ZT*Gtt!>m0P0 zy70|&%{8Nrh6`+h%6vZNBFFMY0(i-OZ?;O-qMV;&3wo+e7e0e!O!~>uDsqe%Pq2sy z+&rTb-!6+=$q_TiNJ7t8^W=tw8HrMIh0s+oHPJsWBI#+ux zuHYa{`TpO@Mwu{9kySoEWwa@fze2uwCH(qK1{K}5ZM%@!ZXee$uG5>E{)ORI>5Efb z{#Xqpr7=gvZ{Dk8MVzka@2#MvdZKd)o9<1HM#1SKQ7M*T1stg0pL~7ZBfx(rl@bhY z;NJ%|sOP2MBVMFSu}h|(@A(1#uQE)Cr{+v0)q29P;>S_Sm1{m zjd?4A+2DZwVi(|_R9bb(a=C~>;h`zPGp^|S9+Mh3R8Kp*WkSpF%fJnaPdHn2Zs1+v z%3_6)kNtn?7InvWu}A;GWBvVK{vmMwLV*4^3edmFGWZw-Iz*(ldB_mY;J_N8&j@IZaqr5fpR;>GQ1ZR?=5{$PO0TtSgGqMEOk&olF^|Q)iFIz9!jbw@jS!|@V~$nm6Da$EJ^indiO{xFqVmSX`a3y?YTV< zXr|Bf(1}l>`f<&~Xp*Jn^;P!1gs^!SsQ<m^Q>$CkPqUX>8`?*6c0bLZ-9O_stX=LNlkeGuh}_rUTJ>dsl0L`uC5c z)lJ|U)C|-k;OEsHxrOg49UYNCig6^Gp$>bEi~N83H#LP}ELTfV`nfUh=Vuoyj-s6o zeWrO&l}8o5h#ChAW>5kAx2Th9;P^cH*bUPJ<25cO$;_9V+DHv;$%IpG4g(Suhy4Z* zu@ODCP&TYoA|uM4V9P|+r(e{=a6P*^3Fm@0F8Kr5hE1NJXx9kpvk&jGuw;7J4L8`V zt`5ZN4I{=Bl|Ga_Z9d;Kh4UHe>aBpXi9aU6E&Jlab_ap`k21895A2SE_o~0*oi;WFnr$r4d9;;#KA4QWP+s|aLGEd^W|ThitZwXig3?< zgPlIa^PCGR??2)nDlnW*SV(Um)25e6oSdaIUmj|sp)vb5Anv8{e2&Nc6V%n^Dn9}R>6aAyOcLVd{wJx$&~?F`&=e- zs4$m}*C~Yfu3~xpDa9q@36HFwBm1YwJtfp{5N6v(TbFEwlH?zTwTxfWy*`f`bSW;} zyvwB$28V_Ggmi0O;D26Q*(oNqtdhl=gXUJoxt9X{htnceJ8qgIc|_`Dk;!`e=;t;2 zF^S5TI#biqFL4;KE}fe=p15!!N(=at!oL5i*<-sAo7V65nMqJ|eIY%^4SfIVu_0x5 zu-QjdJBCcV6Ay8X1W3bpNH975@|y+Q5c!QUg4q`ta)liPRz>^=lp|qKF~p+0gG2qc z$Hj(}0o62Gix`wFtti`5`QYEK5<;Nv0z9m5oC_7xK2h%!uqiZd^Ek=IX{QuGaJ4mdOwo+oX@P!Y+ z|DElx`MwGBLC;X@I!IXWsN^$VGXxT1qoSX%C5ht3?eq(HXoso18tUs|Eq$ZK3g6esvznuDu z8ygW;;tm|3|K59F$D`f}gIROxfj@{$IN=`Z{|qiUPPrglFL1})M)mc@W2Sh!YK%2* zzaF-eebgx{Q~I>y0u*LT`4#haEbvuE@sZh{-@jcJq=bex$a_~j>%aA%c1`soGCKp{ ze^nR=9%5T{zWba|@l<7^oBPS-$%-{Z(7=KG&t>P)hHIMTKb%3kS@shCp|4S(gQ~UB z)z~>CGE`MRX%4E=;z^kb+Tq{UP5Xa*rFAFpUQ}@-`{y6eufLFXB`tPpv1m2>a*y-t ztXkW4+7igecn4}bvDMc>sg8Q*4~{RPn{Mgz&!?L=d<(`K|1lC!?#DH+kL+FCuc^rc zb;pS75t$`wVzfkTCtVb2mg=F#C-LDI*Q!CWwhE$8?VpXlNrywdU~hSbu2)$6GYcc- zlztXIMVx~q{oc*3Sj%)c_L=30D)brr?L|nqSws*U7yVxR>%3AP$uR!W6kJ@{)(7-| zhU~Azw3A*F-_@_^45bXeg|1Jqg+s6j+?m3$gZ)3Ew9Yd|fAe2k(;N~|X?rq#q05s% z_0%Ka&JyC4zGVn7NT?GfT z!-$PO5({ppx+QrRu>c{!nVGvBr;S*2X(&8Z@q2grm7|7F5F^YroRy57Eg;IyGgN4{ z>lKiHRTvEYgzM6!X;vdK6|zPq@=fDLMu0TkS@So}2XK%a8fOw!X{2}&CPmw%+$TIK z(SN@HXV@v78dPh zzUIqIgk9ftHyM~m>LQH`rqL;lI(x())flehY$&WaQ)!?E2RRFs-w@2h7EeyF9{o2v zLk^#6mZfJdFnH%}k^*`tT*!|Cbjzav*=EtJc&4 zra-&R#FniZ{zFzf`4I6zkBQ&`z<)lag{JN&^_645drgUnUKYYT=mw8jNN zLNlSJY!&5f*2l^?T~UJ#Do6w@wa9Zop?20`#)OYrmlg`-zqrxrpXGedP=_aM|FFeFnAt4z9Tv+KiPbaJ#{cquYpi2tnLbhOZ`< zqp;!YHz*7Sdgv4^?|;TPdPA~Gv~8Nm7@ppAndo*E=T$Q-@lS}FwA!@BtHPSU>Hnrr zg0eS9eH}EI+8JU=he5FxsJiAW^N*MC01{L?&1bH(^wA`|dz6anb32{_@qAD^=?eWAU<3%*D9 z#M`_OGY+P})RmEtcN8wnK9K8s@4buI?wtqwT6@PVaT#!0HjCJF;;@ZIw3~0o+#4n3 z>hL(S6Jecjq1*C5kc?O*;VJl6h3V~JZ*Jt1<-gJR;=$3qKTKWh7X!6)NlJ*~Qa?x< z=>OqrcDSxJ+|XHp=@N((^S91QVE*aSq(i6=-#*7Vtk-Ps_E4F#0>QRWQbs zcrXY^C@%?^A8l|sG`Jyo*u{(lr=#QD88P*;4P!r*+F;FXtw8l= zvkRU1x|sQ8Bv36RE13g*lw)30cKX60-m9xqA2fRqTuk~@B!q;;clb>=J_y4~e7Dh3 zWJza620c!h(?=ta7mq~oy4v;OaYQyF0cd79shnG@Z@4*gU0cL*Vy(W8YX5fX(AZ^K zcY%d%V{X9R!c@&XR9_*}%6!)$r(b$81=h_!)AC8G7Kb7rw4PjUR@iA zwb*&vrT*ib22ZgjLaHNKZz(J<(VUTvKd~roTu~qCAZmKTmHEwyERF0eX==|_rOZ(XPYVXf?M4e5+${QH zqt!p^DVV+XdLj_D_|)$5bXc~11CSq8FeuvJiPip6K)>~`A`Lg_@B0;){n}Lq*Nl0* zLf1tW`IpkvcYM0z3pB}NX-axBovV_6tYdj92dk`ONrY>6Gu^0N8J`u#LJZ4NQF?`# zkj;Pbmh|_L*kTYRWZPsLP^46=T77@BX{A(nd5t~D1`;UR&bGKbUsq7;kmc*HX#SeN z$$f{O`^54>(f|AlwAGXK2kisW6B4MLbUk1uuFa#QrAkNwvBvf6?jVqT@=IH&JRnL& z6wPcTnQ8rT{Z|6~AMpOgfBqvAGP#yG{c@wor9W&7g1_Ym7{b08lR zJ-gondMD*Z>g^GF+6oy1ymklcMoAUlEP@xh^FHx?R?=*^!}+#oUIn>NHBp`z`5b7Z z(z>kcTcfz9Vg5IW`I>*`dD0dF<>L!lWuCUZ=O{2mNd_;S*}-hd*E>iX_QQvn6YC-o z$?+d`AJUm%?N?n|dD<*9=? ziEzu%4}^`XI}a$>qn-zDMOTqM>nlc9tJnqQIUjmRLlf{@XWCLf^8R=JqtNz1{wuVRQ$svkyI_teynhyg@fKOL~yq-z%*q-Vq{QR{8nV53Xem zoWDbn|GR%HXf&>U3BCgTf8X90*EhiV2j_pF6yR0vX$N#QXAsOUHU*p2)_i;is$Sx)C0B9V373YP%xJk`s|;1vgCFihQVEZq z)JVuw0sWVJk8~NzXSLQj4&NHgN-wQBr;!^)eCD5z_g@69KKu4wMoxUH2aMZsZMT6* zzqgp4@$UBd)30mKgzBkoRyxR2)W2V|Y{WAiae5&+2^5He3JSB+XvK>+a(oyU@n{e= zScoiszgMt}A=|I)goHW&@sAEJ;$-Y0>x4-}$~dp1iD*?S%&60vNhs8NV<%t$3 z+#v#HP@B!w$Nm$Re~t|oUITTP!^zqv_`f^W-?_y@t%! z^YOq@rjfc%bm9@E@7NjXO=h92al|2~H4WASI=r)19sKEhzqk?=6%}RXE^E-H-9in2 zH*#8rswhAstvD;`G`0q;XLNsp*(vqsSOwZiJnk>WV_l0pXn_2mlff}V!=0KVy%s@B z#*E$p%s1|=JFPMQ>2EwN0R7Fb^;N7}B$tT^Okw2!l_w%w=cDPYHf#H9|AfEiUK_e1 zz6%Q?9U=FGHG`Cywl1vHQx$_3N|a1$I@EgGtBf(VII#CkB+}$8 zYyaDh7}1@LfuIzWFJAA^t(w-Q>If94hb>$y*a+)~_Adofi1t_cL*Ov)ybLF+V-| zb5Xf2=&lWbdll#xn||K7helL_yhlY*u8QbgK7|1P-zaN+lS29>=0xplhslymrehI= z@OMf;z9g0Yw~RF6x0Q65pV4Vb_P)n@7sfe1 zxCL98nzkr{Ikw9qvcg)&EmJP5xUE?3OSAUzjjsIg%Ilsf^VjwwO{MXOjnJk&Lai22 z8qEB?(~_+OvQkOiBCM;YEBGW+QK082_4w!pEG1s+lnlhma5f07w17-Ck=p{vs( zUZy2@RFAYuR7{JhzL6?3G3p>l?Tt>Hk*3X#Thtbr6GIW%>UfL^dNv*`%>It~c|u); zN`%j|vrn&p{Ezz55yT*yA8{_~t+&%8#LWLD&Xs~%!tVJCmLBD*uSq=j=El>@F898@BIDol>ZKrx8PX}g^7L)-As5{*uMwVKM0ZRbE34hxE-@emgWX2KPP8tiNdCAx$S78= zrH05%!lT;|f6TeJn<0j$#IpT)L1(ua(}`LpLkZT~w&GVm*hPy>$x?|sWq*~j2b}M8 z`)1C4t9wG`FxrXKR5>$&g+B7{0s5voRq3>%kNRT>;Qvk@{z7B7b7&OZVm2D_YO|sq ze0KXz(MC=hFPEBn?Dy`-FhyPhd1$4-R(uu>t-cxwH}asg>_A$$G5w73=36YoEPI zqGk-|y@yy={#sB5sTc7r33F}(_&+22N0DWQ8$SSJ2U zZ4l)&qRrIgM%O&VSz$vjq{MST?ei6&KNtb4(z(x}T7E_M$Bgj?L^D}V7_&N;@b95Y zqKL_teP)(~P080RrwlAB?j*qdlkKt&+&{kazd7GnQUxg$L2VOOPR>KmvH<_*aPk|^ zz?QO+q}?ZmXn_9y>QyYQU5^%04=lmzU0xZ_Kr{)#r`G!mSGUGXA$=cvqPE?}k;V+@ zuU_SMc5C|gi1U))oAV9UWS6gWe-wH01yxiNVyTk;b+9<*6-$(+z9;P_lM7p?c^OhX z9K^^vqnG7Pl7;{oOtYZb-o9s(S|BrD?Bk9#%x$4AMIWB_;iKTnX!wNu#Xf7KF?08x zjZsLq%&0M~##(dUVl_DITK(ib=r8Sx->m2Bv{e@j2Jr=#2TzOZ4e*D7&xV}azYjsJ z7#6x2g#%`9d|3N2r#>1a78&1LUYB`+^fV{82Ej6-fd5(H_*;-gEXm)B2#I1xbf_gu_4*p$&*xbhhbZ;R z=-8p#I5zRoSmY6nd@Gbap;e+Q@8u08nQp!Fucz$THCNm@NF9F`BJ?ajEoS{G2K4uj z`jbcf!(;y1qyB&y7h!Hx$9$y|YU{V{vM8MUa+c0*sKpdtHoBF#qo}R37me~Q&tyV1 zWs$^K0g@k{5}t zK0J1{+0_huKg9;8+lF&&!!0$*o?wL4rAN1Z=%8ApEB{aCF2gy>@W1FkHIs4p64;p? z2gvSTMb+AyC3nutyV!)<1>CJly(Gqrt>aa26mL?Uw46=!-Yk{q?iUC$sm*Fty!`Rk z1hz75dQ@_G@b%?JtpnbSi4+YVjzx7>(&Pn-3Gn??b}#vfyMEWbY4DH@J}Z zzG;@nrPR@{J3pn@M5@*#B%WQN_mH1AyrJ3>2%eLiCYSm0*I{Qy-NAM(DDS!2)dt1q|I_)^`qN{Y!_Xj*+ya#Lg?s=pEiCn}j zoI&(iLA3hvnxk7}M|>FY%5zQsDTYTnPm-}K@LyFm#Pb6Cue1>2l5CaDWdc^r?Gc}; zbgk2jZRRnI{P4{cN;G^U|sAXu`-*&lXK9)Uc9?fS{?Nm9P zpVM8`l0kmt-d1v`*=eo-|5S~p{^P|<#KMTjYo)Q#tNmS9FMiDaVmkdc88< z-Xx)+yg9Ue2INopigTKzT!`sGb{0okU$qvGj4bYubj+I$SjzS2^EO|9kdXJbtmoq+yXS7IMIFiehv;8J>8A zkFwe|*zGU9P!(y_LgP-oxxPn!B*u~*%0@?ES7aPL(v=#m(Z%%@IREjAVD(Z?ox+7^ zrX$+gsYhjR>`%F#$L;G0^G(F1{ac>mB8Uzgmci4rMJb2%yBQU68o!1rz+{6Kl1a^C z7piBf+4g5CgcwlG+h@-G@H9H(lRW~4kTwr%Ly1ZYPVy>!!T!X`=i9tLt)A^^T9GTK z!`>r-{C{uas;*Iq?v-E@7?jNELHLa*+Xqve%*XHVD0_I@syp)G^oX}^3}-=7jR5P> ze*o!A8-Da3C>jF#dq96+X{gATrE4)LDb4&%J(UboyvX3!u4h_2+#GX|?IkIw%b}I< zJ)r+NFnZb&NGut{nd)#a;~DV1)}?`>FUEh!ZnFSe1|&-pMKlQNIJ}Ym@p?k@I3s(KF%s1; z+o2RS(X;M%CKl*LgcJ=(pXGR|So4yatQV{SBKX*wMWSRln(M!j8sUl6?A1$su|7#o zF9O5C-Q$AIid3AdcY%|TKPG_w^Xp&z$M=Vzre>a#ROzkD4{o+L0XMu?j1+`eS;L;k z!_R`>%Ku7+x#qY6`uDNyKf})@f&4ujJQ*#+2n@IPC%z4LG7U)h6}${6F57J)s~tvg z(l2(uz`-p5nMh$5+Q<&~=zDLqTPV?OCrD+e_alK7G%+1>3_`bM%e_i5cfPm@XtmLi z30!*yeaxTqP7H~qWk)lDXci!po^|z@52)gQ(Vfk57c>t2rH1CF{Zlh_t9lO~nyt%x zMflbNrijTAWwpB6|MqzjVqVtKhz0u2^POlDn>4wu#BFGA{V z+b(&?0>^*(59;oCo?X_)gJ`5Pl>59x8aR9!9y-lB+c;@26oLQW;Ig{h6)Q)1ga0+h zHjy{|AwtZLeqpB$&(oG%CmsI&+kW=DY!t__)*8-{I-vfU`V|RT1oU^3g24MTzW+wv z<;vOlvXf#L1)tFwMZ`eM$0b{>&ysKCh@&A!G*pPnj>cRA9ko&&fPZy0D(~c-$fXDF#hbmv0@P#NV{r~bmFLTzq9{CS#oafKK^gZf-;t=1kNmJGS zN(*+swiJ!)_x|DNhp#jr#d=Feu$xc86qa8o+wS=-F?co7ssJA|Nq6iWD;WPZ?ps>dR60ru7y7+ zJ_F=mX@KQZP%O&UXhkj&7Zjpg1RNhY*VzYNEAsb@p`ST){%e&U^lHT|ztNO{`lrL_ z<9|*~S$S1CIb=Wfe^;MqMPDsOLR^6UuNm;al>_{DDZqd80Q~m{fdBplxY4utkcsfcRrdAzC7kKP!}-&#FCX>MdScte~uDrH$KGM~;G;r*mEkVghc=Lz+PT z_sO`Tf3a^K2~6QBC(>r^gk)VKt1x#AZl6flR0Q;27H-GF5(@Uhjn5w6zp+)j)cpY5 zzb}i5_vskf?NWSbS|0gFARGDPDPeSr(nv7CtVu=Pe-6xacfqt}YGu94H+k(kG;bdE zLIJsLy>h3cbUSPH%LKEWsoT6tNa%gFQrNOW?;K2-niI~qNtvVKU-*ds_;pJEe$=1P zU#!@RciIB=SN{2TK!2k@__?2G!PK-tfi&r4p9IDh=4+j!hX9VtQ^Kh7p1R;@;@jGl zGXlL!w_&iYI4|Tj+LT7JJ4i1P+W8eGn;hy2H5$wAMdzRC(6uy1(f=x7z(;mG{GRRBW&AA3yd#S_v=ExN}a8|kj(~GaB%f-xmOqgQ3m`^M8N#(&O|~` zfccLE=3nOfefdJZwj?_+|L=kM2RDc1Py+M+5tx4hVE(&-`=8U=>LwfDUwMH3cL31; zSpfRKcZLQm5uv_Xdt3xgNS&R?oTcAZFmD{;{7QS*hZxWs0hVsfp3Hr4rA5oB4MosX z78BQVZXo~q(SP-7HWKY0F#gpP!aUHIytpDy%tQ~J^3<^ZaGdtk|B#MdfS0ZO-7$f# z3C9fUv;7bv@nZXw42)C>-cUSZVe`lQaV^79Rk!y|uJde?1JyRG2NNuIpUlUJ`!E>i zHtpK!VhD^{Wol_vfc*QpE3#i+67mNT^BaDAA`26!PRTXf3f>>Y3_+>v-2H90oZ9=o zHda2zmAA4+I_ux^`}SXs7cz5Rj@ntW`)IPdrsV+rKUNtXkpF%6$bYUZRWXLA0{TC3 zwI_sN8~3}vZrqYyU6=QV94PoP#6Zud@QhTFc7go;A>YUGXMyo0 zQ$0f)f=5qEaO+c!HFEuvM|CJFR{U%i- zzhgDVGt%F9kFJ5fb#cN-bcPNad$xxdW!ur2^ZwU z)TS1w>ScucKVMax*@*Xh>3B(C{igx>uNC|Hn1d1->d8RHQ^bjIV?+l2Z!6U(>JB%vFK;|6Kje zOfe+#Q=Zp9PqPN8JYoQUMJvF0?`Jbl?CxhegAi)D^jjsc1L+!y4T5{Y@n?kPN$9EE z-&d1V%30IeRM~fODg4d0Z+4>Uw*H=5iwc0=fbn+o1vLQwc~7&}rkSxgO#IxM+Xkrr z+^8;BPhT^tAuVU$K(tffka{m>c1ol7XOO-U) zsS{TZFRf4t@5y+keXe0BY8RltGyv*9ZFyKr3%G!a*>N8(wf@ET@4Y~Vb&|9tHItMgV`Dv-U0q^nyc12-H$dQ;Qg;E7f=1@ zEs-RE{=OqAozfn%ZKcIKkk)i8w_rAIfibQ=M)_=?Xu_fh`)}Twoyd(`!BvWf)L@Ct zo+%)?*p7hP{|urNn!2+oKc~QmdLnihP~OS$?shs#^;LsuT0#$l7Jh?rN%rnbfAh!}_IYe5>9N_&m#X2OtZ>GH}-P0Sj z#kRdvj_##uNciuEa1jB;HzYNlSjb}IZQEzevN&PCl{^B&4qNZ6#r(n+jc)Ng-Lxvr zR8_hyy56JaAG{uK%4@uQC*yE>DSl6wjR8`2Ee!9mtic7xHagwC8S)x*WKJdwJ zC}^vLmC{>X6j4gGt;t@5#;~Msowe6dJ0W&g`f-X6HSna6z53ZNuCSY6_0(yuR@T!L zK>zo>xS;YSJMxXyf(;flbfA7Zo)L$6*+dd0yc|m(^K2=@RU3M%377C1459sP+=05I zx=7l*um_L*$!~EfETJSX0%8~|>J8k3AQ|6Sf*R)p+f^|YZqDaqlUuaebiN^9=kTM1 zSFS(kj>!@c)_37fyiU>Fl)>{NjmwLUe=9!VZT?-eUNd6^;z{x)3i_naSZp-1M#&ot z*(|)!q=%&Dh$Lgo!sAwVhwsgIN{+tD9+qo0U2F?;(M`v|Ynejw*OlQ8eFj|pDWL2b zcpa_xT3R5;YUU|g)7?HB_5!|nULR_#Yd(y&3hm+7sh~S|Mx#@^1E-XM(Uf}JF(ZoJ zTf-DUe~>UwvP=?+r;h)==^%82?DvOIuH{iI3W+C9RPOhedf>iMMkA%aEoZt7sHWN} zIirw>G1jMAZLS-uj2?nW&7wx>cQonD1cs)*&FR!sr@!J+44bqgK5?cLdw5(2nAw=L zx`M6p7K8sOgzG*#)UpzgfdKwv<1Pm-1h7%HNhGe)&4{|%~Hv%0b( zQa~sUp?3afQs;g2y!6q|%F*0DDw%$|TdGxmz1>$9C8t=aszpp}H zs(oU0;UYjKG_g7na{P>$=!zM421zn@vzGkPcZJz*rnztJtjy57;jC>>htSqF{cnoT zXlHjlHh;ejIYrvt>7P+I@dmC;T&gH#@7Q^Euj8wPNvr?9pP@v#^Px5hs=a^t&|+xR zFEt)0ccUy6$yE`^mf95L*{KV`SHnQczFcr6A&Oj9GZzydW${&EAB%2Q8IX5<_vxhZ zOrl}jf=XJtUTG*R!h6xd&TZ@Spxx5ixP5~}0TvaKA^rT%s39H$$nZNM=mieElV)Hp zFZ&f_8vW``QW9x!9a*w#%oDS~6CiYm?~+RwSpTHI@QmoETY&EuElaGElT^>(W_Iin zw3wY6hw0;Qlo!sUSQ4-5Gk*c}-*zQZC6D`EM(ld+!`J zcY*xnk{4d$K>+_V5oPNAJd75UD;SBU4>DnU-2b$U_pxZf+SGyL#MAS0r(DNIVaUc2 zHlxS)k0?&MbeB3*(&_;G=cm0!s5-F!_?NAg zLi+;DQ6Yq(`OHcvkH~QERhyvlX04^_Dy2E@C-Vl5Y~H@6=AbYE7nnnAhrGnUjx=(b5awFQ}?;Z#OlymT!nH8 z{%)2dl4R#{hrFN#`@j2tld{XD!c-26M6LVFg>{oqfn$~D-lj~!BDg|@`ZQqQRkxLW z)J_k6E{c?-+P36;OCQs6Wc|MJ!A;~%mmU4gm4TD%qyDq<=hzMFOEJ7w>d1n)H8he` zVp#L9C1UoFMuCZ$P?^fW9zOh-DkX1>kI!j)G<|&&(EnOy+L&!hzzZ(s%_WYAx~^EUnMqbuPurZj7PI-23tS z$vE!SS?*leK5?p)>-U|+UQX%nlU{-h^V%f0iSnKS2{ z3Gr$=Gr=!oXWiNSoE1P(qzLoaRTTG+0_U$*{dRA}4ADKExqtu0=LZ=nPwf8en!V%? zqE>a?Vb~vA2KwtT7c!1eT2@x&KuzQ>FY`~&o3pK^2EtI~Ew^1~$RB_4uDJVr8*fGv z>b^o;*xClgbB2p@4ZWfDJC5)EAOkB_UfhLC)Ki_}*HC#f)tBZxmftK3g`8{W%&0PEbCZHB=|eyNI6megFyN~Vr8nCq7-&>XCbL4&3gWN z%PHXg$-mM`NmY;cV3rHTD_*HexqJS>%4K>IZHf2m++{kk2R|1=*p}3s=CfeOZcE?CC)3M!YOalh;(`D9 zE{MNq;D5x4lA1U-(5({$`Y%$D|9*);LoPx5Jp%df2IRkBkpDzM{?kdsyE4C98C`tu=1CHW>-^7`&U%!^0^Cr}e(WHE4 zT14sJq|GM4qLSDoEuDOTh!|iq7>}yUJO8Fi6;|C%GCO${V3BRbcn9v^Yt8j@>-m52 zPd`%Cm=%KhgGq>bhf3ipU5KMf(>($A6Z_tq{MHnoo7J6I-6!?m)m`iY8P$#scxw1> ze|BzU$c=Z%WoPZR855`Rx8e&b`*_rRAQ=2B+`uWsV|LtjRQ+22?~y@ilkuqaI_GWK z$`D$xjhE>Y9L84RlN?uL zb0O2h2);ib-Mack3J8N98)B&9c5Z&Fazwqdo{~amPt-2VVv_rsRjK30y7-kzX*&ju zN~95WY+ZKoc4bdYPpCYRjB1lGuhGlmXr!rSZE(`hVGAOMkfC_T`FHmCsU0QiD?D*E z(a%vXR5zs?gx(9<=}Cb96j|UIrd@Ltx$vCgKK~n)Te}|f9#GCj92`vE3t&?sL>9-f7PBE!`qj&QOiq# zThbUIP}DG-jDaChzoq3#jn+k!fzq4=#W#P&e2bH*-%@p(ZltD#<*_D=1nH^}IXQ*-06Kp&zNYSCA9S}P!z zbJ6^ow6O4#K{XvyhOrC;ZL+iP@6Ybopq@5*ue+>@b@$odlDsOC>!G~j#$);jSbnd9 zCXw1;D((r`KbxHX?d~+cL{03iC7`9-yV8QKyGP$;@h&ELwCG**q@`=3~zzgzemZtx4qyVJ_xI+)($xW1(S zfqX+WboeXdbzypzac$T#xPO&ml{iSO*N{f(_i)#tAt}~i^`EDX4~t(dx_BoNr|Rsf z!1!|s8>rkP5etfLm2Hw}yYZMi>VUW6a|Zp31V7$8-zUpOA#WKD4{ zvEY@S#^S5!jbtW6a(Y_{{C5%kShzjwBgG@PA88e^Y|`zI)8E|ZAM&%vfA!~VT0>rY zoGcX#W;HQYfh>{pnvRRTQjwjH#guX=)oIVe1KZoi%18>2flwiz@PI6oG8(G-6y|Gy<)V=4w=oi0T zq!T>EC{ttCx0nlJY6zp+xP1iwsLS@OdXK?i7;gbz!vXC7{7qN@^jH3$yLCum%IRO@ ztQH=jK|@q(XA)CzLH?6O3XcZ$uL8hd?(1Jbco-srD{YYg{3RFgZdZ{Bqou-9w$H^wJ0X?}s|8?~|1IU+dXKRX33Z zw(O54?^+mG`O@WmkiK-dpFarL2(U377k0bq%ro);{bvoRzwi6+x1j&d2l$gSz+Y9@ z^;jZ6{Z9q>_cUPsvIh8%1;GEv1o*EIgh&(-B7f3&>SXOLUl%SIq>_VKNeM@YFg#W5y@FNTxKV(5AZ0W-EF-#;eF9t61dKjWfGsqWvOf`gK!>+;o(WHT}8 z8tDIJF?txP2lC0h2-}Bl-H^GAOsW)QbnpEKo^Ydq`YSZRmGBI@9 zzb*5jy)|zu{Y|WBlR|l9CxJ_KE^CY zA#XCnN!ZDAa}-W|_IpiB#D9u^Cg<5XzCo0Bg2Z>Z3Yz?vM@rcJQK5!Gi>Z~H)13HbjV`>5|V{m7;? z`q9*4#4$e;b(n>!iZ zm1>sJ>!`o#NHm8TRJiWaM%aHBqRU>t4%m7ePM$}Jw*awP88Uy!v}G>Gy6+G|HM{c? zX`qO&KuMYp{XM45$lXAc+H(#gs3gk6+`jhC;~}*1p@5wYa||yWM40{BM(k@r-DXCr z!kT)*Pu$^0=2ruuj|~Mj$6)L@-3brNZiIhQ|TkE+S=LYacen zb7XSMlS`VdpfZGzk6`Oi*PcS5Ua0{dNHV z|D$Gcji>#F`JM9pG2E2ud+9$Y14X_6Hl4{Htp%JgU>Kk|;6Or5H_u}HTx&KtnFI=r z2JmJAG8K~~AF&4uU^Mi>rjskQ1G{XQbCk1l1vSj(Tp2=UN!hwPcwfEv@T+TLmFkO{ zQubG5xcK6haB)5{VnP6%|K08Ew;ecNun7YEH!EPPz+wcgyH&f;E^QS@ThVrI?Yo0_ zm%u#0AMg<7*1W*~qDIRsP>?XA2Je`gC@Qo=q>|l`b15}(oWEPge74oKXWDLoy-zlT z?_;d@lUmkzCR_nrG84QE%nXY=mAkZ$4>8kM*d0u%a+M4HZAeFBPa|BZpXX30(*?d63rr5l z6~SX1W!HRpq)5E;Of3!yO;Pj5g$^3mEL2?;Nk}{zQNtz=Pg*eNIbO?DMyTO9Aud-E zMg{;A@T;PMZODUw#e@-CT=c64%9T8wC^Ys0X!I=Vy7D#Jecb((HTK%Do@V{-ljPkX=2C$joG**EhsXfnTm;!M{lH*Z1Jp zN9?}dtEj7BuOY?p)U=M+44WwDikcS_7CQ0 zWu<9we*W=gdMCM!F7{=-&*LkM7xSvq2Ip5tm9OntW9pKjrqqt>#&vzHY{tAh) z`VyKS$W@)aON!1^w64Xx_A{{I*p1CNrEUZRRNFpnIqiyCjFh7J*SCEuM}ODQCLV&1 zfko>^`OTEQX349mbYl>^s5Qqjpz(ujSMzxGtW6B6=bXStH-U>}$e zPJO3z$l4U7nw8SlY_H<{Ok?lI+$14?D65Yr9BH>6)!)5cBBS%!4}7X(>NRTR4F#Y- zQew9LjE{a~Do#t)y7mLx(|oh?sEzHhPT1!R@+`KpW@DXq--r_TPjaQ1cua|t#N*9v zENgRO2u3isWhe>KAAiFOGW41o% z5psRay1ww=$|hHMndBAX<&M^+fxyXgIaT&qa?}TBYaDv~teX>0kEcs38`n#Qg|#Rn z$um2N#;=57?}(z1_~Wuz>`ZW}vJr1Yeh?SLBZX0;{1lj}y*lsm;t1fBLg9#IIvE;* zc8uy|Xgcr0Rcvubi`8qshw-|J2MVoJ^hKE2t*a|+RKMnE?8LR=F%EW6A>mks84;^aO^K zL)(D2?d^T=>Hg1-Ly-q+e4agBll!`3wp8fSc;X-2Z`6H0FsaCDQxuuTQPXytZ8u@i zB(9xAr!X#=c4U(wz8Lg>j!i%}ig|I&!(REAatN(XvxAI-_Y;?9Wuj)6(<9TN8t-VU zrEG`C!ZyoQrxl#_PZsv2u*}fW4Oq2*)VRVl&~4gdW#1ea7y$pPr>LwXI2pTeff%X> z`2}cz|4}S6=z0FvSvCgLzo-v6ir@&EL7(G~stgYZrb53h$s^5}2))nSXRv@nX3kOX z&b$kQ977)A{v<5~OzErc24Lm4m}})KuCNZZR12EYdOE?>h)I|X`AQ*`)An_2CttQOSoV3i!Rbk7sE1+mw5Oode{rzvihJ3fckHB^e~bh zwMj+f(`ODkH&TaBFJ!btyyp<<_1mIB0g*4w#Hrju$1oGSm5{#cQ2WfyG<^&yai6r3 z`ULsbHh|00hyNL+v~!B&K@}ujg^7pcYF}(C|FZ*Tj|}&H{dI0_B_b#G6wE&hI% z_Eceb zVaSwh<{TLT3XbIOAaZnTH*t-Hx}sZ{X1A#w1X-8SnYP<_9c#H->*1_fFpH=1<5ZO* zCiVW?npo(jfjB>ET|MRT_1}?j`uDEvvF*b2-DW1Adv>V}cbl%P_MHW;MfyPfDe#nK zTmYM|uxs?$x6O=Lm6smeR}I^*1wV}`_I{w>z8NPa`Fpa)ruV_~yiW4i4*36eINJW! zhNO}^Pk7fn^Um13&p*{D(M|e;ILXB!>{u(_$6?hZ2c0Y1r)YY3)v=#obX z5a5QclK(L2dgBb+wp&{pj}U!`XHlnzn@~kRcJn6}7g>oa?XZ^;$S@8a; zf>errFUva|UPn%K#Q^=Oa$EmJ%%)*co|a@NV_<>K!01FkN-+E5Ax?k#Kj{?TtcDXF zQmf)~QXFNw2zZ9fIn7nMm(Gznv!HFv-D!mKK7=)H{}2Ct5t#Vg+HpN~aQ>{V1b% z>S|QPUYMXp2KHIV3;70sUz$=>N_@|Hq@RH1rGb@Az8@GHMw9>wjl~{_URs zb02>XLH(Z$@F!Zp|C!(Hi6x9Du0RIQmB(&o-sQ*_%{jYh_ ztrHIXpV#887Rqp-Ap?N_Lk9d8Tmb$&f~$uvAouow3GmN)eea4f!m;_i5fmd1ez=OA z4<)-OANW9SX_|h%+Rg5Z7?77-yXn!aHdjB9=Qk3%N&!rz6sqK zMo-W3K)RyUT@mZAwA*Ss*uC>OyRiQ9a?{e=W%Pj zvfj5Bm=T$C9a|?~mdw&P#3}EbAOQOZQW9HE@a7x&SIBi}6nvR#6?jib@ZV!yT<86q zOl%Q{dTNwVMt2A`;Rwc7bjzq5a0>(r2|pgqfG7&$qKPZ=6c&nV3Miwu2ey2=+fvLiH@Afd8sQJ?-f{@E@%hIAH|) zPc7vjDgX3OI>qbD=vId}F<&WeOmKoPw;yHmcZbAb>WTV1exy)a{edz7`0q;MaDKuP zockPL(j9CbXBBwC6fJTlnq|j|C4v2Gs;Xms0@P-7(w9iPUEN%4 z`;d=J>e;C%Sq448f6_nr|58|(yq1z{@K{;Kl)oOta z@XymR3lbj>V6D6aoP{6|f1{xP4vEFPx{v>LfdAwH{EG$j|I2`XLq%Z`po6kKN*nC0!VQIt;WGm|r^ z_)zYlS?u9rQH0+?w!q1g&Wh3fcz}N?h_wk}R^9VoGZDM5I$#*O=kRVjWf>@jB-H)c zgXZ`hi87Kmt8@KX0dz2BSi#T(AHe^=*FQWfrd%e3{jFnBk-iCLSBzAuT98_b^>f8r z_2p8)D9Sqh@fQm1fN(rCq-PZl2xlDCaWho4tH}5Ca$lc%5}|vN*iYq2=_{5d^fOD3 zZ)F>g;TrVbOYYfW^T zTWAx1p1nii(YF{(QRxV?+Sn>5_*T1PcZDw8sFvXPsG)lG2^Kjx9~ubwZ#wSa{J;6u zd!9ayA(yK9y;Aa1WC~0Kvmc2cUae9j1O5~KApB+i&S(EjEG3Lf<*v>>!2eJjeaX7s zX_-P-UEiNO(EG-HyS=**=--ViTm7g6PccqZ44UrwrxmZsUMGy_9XnBbA3f#De0<4` zc@?f!Fii#K|2Mskj3EElsrmijkX~>nri}vlZ>7K(`U+GPQ(l%t_~sno&&eM6xRD#f z@NN&eo=y&FMU)bpl-^(lJN^`jCucg>Xx58CHW!kgWwk8&T*=Z$eoZ_D{VB4>| z^CGADa}|X|4ry`yDxJJF)YC)(>Kz*YOzf|j>-M39W0P-lN%1DyM!rRz(cR;ZvW_~W zY#E>7J-+fwg8=`sBgM&VDCm##pHI;4WFs%xc?EB_hFqQ$qcD0H6FZ4Nr%D0*=e=Al zi7wzjEH`(|?PL_%G0?+q_#MPw`*62TImmzQFTwtU|K-0tfWMmEB86uG|I5p%Ojk2^ zyoF)le{u=-f9I0Rwon26xgqd>5E@_Az>Ia++>M5HWkS6mKMxAnazXwT1o)dbz~5N; zOxSM)5avQ;x3PErTGXGx{D%R=|BY#AM_D(!VWd=Q;y%FNeggb08_a(-0RPFmWF~Rq zi&r)DoEmedq96TKwvT>;l`y(-drT;mPFbc68Aa_0iP`cVT(sul?RuwOy8U{&ZF|?t zUBCGg?YsefO4F3vMMBsGcfoco;T3dQo{M8zT6r{qMKI{tU~%fsI{w2JeJ z7{bc>BxHY&R>RCFW_p@M?G>kUTw3!Kl^!+S*i>5a8?-ro(KVBvK%3(BVI2d{kR-rAkSG)LSo0T1lCQ7tZP4^J4y1rU z3Yy5BOtm^C*7ii$15O;#jRy;S+iLqDrnc$aMa72q{Ack0*M^1WPI0ma=7RsfFVH`| z0sI$VaR2YY{U^MeNxVU4SQcHKOSSDFO5MKbvSzVd&)KM`v-2aWOT^Zx}X7!#nS4BNgN&VvjF5P67Wl zFx$`7(TX$h8$+`H0CFa|qQ3Dpg2}f7QjKOY=lZ5YfSQ_G{R+wKPxVuZ^XK2BiZsm| zTYMH0x`oM#V39<39&C!t9*InP;>O;1TwQiwS`h3vOMc=$?ZAH(KPt#Ox^b1OvLf2Y zxRb`Q$`t-lv48Y^NF9m|zqC$4E$n1e_}oJr$yS`rCO`g239Bax+`k`O#S;gb4>kM- z^lvC%=BLQYbtPgem0tWNFQ-2@CrymiK5svz2#I`i@BiyZt9Ys-QBQcfVk-#t-=;Dx zbRGZUbRs4P#siedOxfvMdsCcIYy6A;){flI%Pi}L|M}neOg$}pKQYUV8|ly|OM}fP zHk&wjhPlsU?zm#Aj83;55E2Uz%3S5M=!DeTaR$NWW{duPI)GWCIG_si{j zOtAmQmzXTW6x6>u0RMgn^lxY&{B`~5dS|L6nmA9+O&UFKz` z>wW$G3fw<@U2f}c%jQc;MZU|~s-z_)kv!gLC#mVZ{%54ji?)M5=afjdHnz!$*J)LF zo0@6So&Q00LtF~K)wAdi?{^Z;AFgFeKP-sVkB3&xaDe-_@e0=w-81)#Z<3jwb#?NZ zek_9w?IC{ERXvleOV{*L5A{&=m31QzW;R^RyRzS2?`6W&?9Cz3qthS7#GUc>!@L#D zp>NJzU`_pRd{(%?{%fkn5lH2mH`@EG2UpxnCfFApDNj9arZ)(_rSaw1AX;O!Pvzk+ zf1N*7DJHMZBmaCOt4dxj(%rIdMcMJI(wtfgse7mGJza#`l?!cq;*{#yvlQGcjD+R} zW4p+0Vfjd@56-7{Qc2B+#g35}_8YwIY_@OSayBn_j~xUindU0x(E3uqGiZtCTPj@` zI=z*5lRrHSshjD~z1ETNaQ(X(=erAia2Ynm%qFPK(860G<&vvoBxO6>fMnlDQK2od z$XQpXP|6fFmo~Wv@XR^T(fg#ip`8+wYkwPXiy+MA)T0~;zxbj1(pF4vl3#L_B zCr;h$`A-j%8Qmi%G;w?WdZ0Dz=|sp9=JVTLrk6f3iCx*uKlT)tlg4ft2s)FuI|y5# z$KjRw@HTyi(WM`vMxt@tiglai9L*>2o6%zs>6KCiZw3Y#Ly?aCo=zlt3;y-OxR1@? z!6T`cz1iC*;zWU`*~M0)T=pN4bO}h`lyLMdH;-}paG3s4%JK51sLFU?>T_IW8pO+gDnCSbp<-2MgTdWDG5h>txP2Mo9+Gzj-UV<{GcP2-(8< zG00T!T!oZOEG5+wi+=g63AYhL5ngRl5%u+v{L4BMBS}7zN2h_?!n@MUR}c6J=xhGx z|4n|YJ8F+4NGJa8`UQ#e*HoLwZ&h(q4iK+5SvyCyuJ-mMUe&R5cfA}9ZwS3=<6&19 z5KeV%^BT}GM=1N{gZJ-gswz>WIy3S(;$p2w1}VJjNKavlE0gQP3{FSqqqU(^OQoUC zRoPQdO@bM$3W=D!pS18#o(>d6fPXJmg=arlY;;VqJ1 zz?EuUu~b-<%;SQ2;B>%=HeN>lP})MQ%AY#kq0O9KNPMCrUB&;DoK3i#rztIFkn~x# z?X4r_lxcf$#v+|;K!WUyxwcb&Fr3EC;iNw3K&s$wovN>bL5CDq^b9OHMMXYE8_`XCH7&EiUmmeo04)6n`ZV0{GJt z%lf4gG1Jf(mpwO94aLoOpp5R1`{PaSI?g7IY$8|MxiNHjoR!egOw3*wSz>N~d_yuy z(yxV!%KwVa=it^EVk7QdDZH#VBQzn8=(RO-R6{FOevRWkVPqhl%M>CF#Hw*N!I6UlU*$k%|b%9R9IfOa6oY`c|V&y zd9Jgf?T@u%^$31u4+~Tq97Jdyzf0KnPEJD~Hr$pIt=Eoj^S?f_-7FR5@}wv7yF4i) zs*+f)!V>=qEtaX}{TSpW7@}9v&MP1FA!u0X&&~^l#!mLNBB3>k9v|kj^+xQoe7PU1 zr#~h2eLcw9MN;!G!yldG744`~Aw+8pH%sH!~F8_v}oS>Otrs2F~al08iotstj z`;9JuQvVQnfllKlTMEmUj-J)fw;XBM&pcp0eT&_OYm!Rc(#UD1%Au4c0LHuV;zRd0 zwk@hYCfNBtn7^;>2^A+k%9&}Bku0GLK$dg}$HEsb6qjoh*#-0G{x??J`R4`5T2yth z22R|<7#N)@V!$ce4i{R*@bpiekGeKz^oD-^{r+7$+o0V3rGg5)eB~2NdVl_VriOx0RBh3<-+yVRx7v_7G?Yj%%Q#!4D#_1i zJ;t(lDIp24R4IRJa)elV5_t*I%c2%qu^ZsO=7+9^lX6)H`mg%1NI3GC0pP#YcBg;S zy|59)m2Ek1CdkPBB2iii{J$@N{=^CJf4|gtQQ`ppZzu5oZU*?zVSk(~N}~yT z13$u?AI$&v3biB(kqA#S=a0EXK>eG1zkl%{HE{#fpCliZ)9>fMl3@NT=+a*aQD9j` z@IHQ_+b7SqnU?9In9Yj(QIsKK`c{#`1z$PM5!7FQhlIJQ8o~a-w|1ZD|Mh=f^@@Ax zi?m(~y6|Qk7(T=2bGD^<@cZ!|Wr6d3+RY-iH*Od&Qn{pO$li)O6`@_qfm`8fPLlKIhuhW~T# zcq*0bCd@X-BgynSIk10m6`Ea<>GCW}w6)uK)n2@76rBUSKPtd~Kny}YLAWf8;p$&5 zj#%05IBrzfE#^zjSNhLmk^c4Hgcxp<0gi6NVE@*6M#~&Sy6<&guNM>G-!L*+?|TZK z=a0HDh5ROci!78%1^jp9zomG;B8DkobHX81l6e*U@5&-q3{xt&T)y4&U(Z78hvG?U z5nzeeY?+g6hv~Gv98q%L(jpnaA7Z{T%^F{%+|H6dYdMMCn>M!d<)p&+^z242AUD|M zDKSSV1Ab~HpYuGUW$S(YO$xyV_~Qchh)GzvWPAwFpLGq&P1B9-WlsLXUysO(>7Xec z^O}zO;m{vgS00zf_8&0B_Ut}YQJ$VmPfG#)>2SXsxv_Q?@c%i)jHG1zQMSCvu>XM{ z=)a74wM2ZU_(gt$`j;CiG@1LtiCU~KwMgk`rqPF5dk3asgX=!*RkKsQQ8m6CR)CqK zBHUz4qtUleOJ7a;VB+QQ%3*h?)8lwh|2g^*C~?uz$^`Uq3%d;R4KG5c~zF zIgJjG|IUZ5F)rcJzN_x=vLmB(h=gm6rLT*D_^&Ux-~ZA*1fdqKOeJ4g1}u_G#K@1XYG}Q1 z__zPz8^B*%0RE~2@Rxi2?cq$E>>^Rw?7jY05%iz9>Hq0(5AN}wj?ml(0RQO#{3mx1 zfAgUKdd&u$f58s;Pd1?c-~;+IYEXZA1N`R};J-Ye|J(ulmmxrL9*=GH%rJ68dz|ETso%b+?oA%QlULg*H82%?16={q~9|JmS6 z?}}b7+&KERVTmbyna!=e;$^rhmhOE~G zQCa&*X_I%Bj(5xdXnnOORtLX}@OevN1+wewD5hh)o)q*VB8Rb}j(0{gahSmW{{is- z=Ycf8N6R`qIR^YIKAYI;alpU2wuX1s^Rb7@zFmC&t0pj+0K~ru1tEBUvWIXABfGR6 zxSADi6^bX?ob@-;?L+3_Fl4tUwYi3T1KZaCf3i@4KOUi|pw>@8EI2v}Kce}2wl1Pi z{@{0^1+!iMKmNU+7h^QJ^~BF=jg;TZXvx-gk?aE8D1iU90nRTP%i72k@m~1N;5T?M zsu}qnTMUIGX@No5m(FvC(=0??;f5<%*K<(4mf_=}7f!ik0rZfw{!fMG>n%b!;_Bb~ z>n1YX*vBCI3(%v|-zMVrNi4B`(EmaAl zHBJ1gj+gk%=?KSJrE>MntV<78<#f`IyV_B8e?zB4tSP^ZUzn0EWoGyIXUqTm*GB;U z!2$Bm0eJsGp#Lfd?|%xse<6UsC%(h#{lq`zW{%60Q}oZz<(bC@izqY&wT*@VG}*ZO9K7hFgV}tTWU1{ z&_5Q?exCUV_tEw2rgi*oHEFV6F6m_O1F0HfB*BYj*k8` zO3-LNv?BLg$p~hN{32<%2Q@cmN0m66JC(001!DF=kV1Ze4>HXk>ztCxfI!;P9Bp0` zw?0+X8OL@dd%hLt6yb|{zc+a*iEpb-9-79e`oUFgae;eaA_aWXHMg9lSHHMS=v4dF zE4s1#oz<*9K<@7aqH}F4r zG^mqLuPpXLSt}}wk}RO}&u8ixSvxD~M;Q7*1WSrg?F7C9C_^$le zacgD{aVS#B9bZ?_l}89>o@J3QiC697S*^Z}nkxOLzpsA%sSC@y$<9P_B2@DIwQqof zoj^P^d1|p}k~_6ZlkrK}M4g78a%K#ZeUGrn0Hmgy(~YGsyz-gQ4$xl<#;0Gv6drKG zw^xLlsN2SzL-oWR+|rqu)g|6LyI-==yM*o#v%@`G{shh=1iqfS!A+Dhztx&FV?cO0di&W7F$n-R=+twU}7__rHhB}}(V zi{Odo1J#ysemts*zkSF_W#k6@Q-QwUy92A*+xl#F z(hQUa*|+5s)k}FY&VG}`Q1-8SX8SpkMx_)UAOCjiO3?jeiOQwo+cC?lZIm88#kizx zbReGoXfx){@YSx)^|N5Y>$8<({Gjw8#?~iQkG#;L6RkWBh$L|Jc40cmxdCbFnq0M{ zW2Sp7D`*QymU=+{To3Y(8i+q7kbgu${+T(I&2ZGjp1F^|RS%XPP{N*`_zj4lPAAJkuCb+j%uF*Es zY)^Wont6+5MIGQT9~1P@k9IO$c^I*+QYeup3wdRIUL6&0+w>Doqe?=b=i99oD7+!j z!cdtQ*jV%utuj?$iz0kh!nFKa$0a>!9@f(90>fn|y^d)x;9AleC0Qdo`5=9ae{tbB zVl()jdhJV2iPBYGqgi>D8;6zn{L(sEXtdhvgp=K{)u6dJA+}<@>Cy$8yx?T#s8rkW zk%2&yDvJ2t)BwKfOr1mtL*@Z%d-0ad&!4=xZ~8;rAPAv?Q@(~}Q2*k>j#y{T^;&}NJ+lrt+vXtaL_b+u@l$bQQJ`FLr3c%@N= zDoT5n7NRBPkj$0ekvCi8o8m+IBu;G>cjjFpe7dI6V|j-p=XbQJW3O9CcGW}`Ww}uD zz5c9I&@lUCzMZvzk@|Zw<>2-7t#e8T@|Y%+j7kbm@;ZzPpP-Nu_)j(U!Zl^h41Mb0 z{bZ}9dx^~nbc07L^*&Eqyukj6wm?VP+p0KqsGIjX(Q!@9Uo(SL4?yn`V&e?eNs~wF zdAD4rz1%sbX6o84Z@#bk5tllDiVT@vt1x~`k7Zmc)AbMFpI6bX4gJss_ygcycb4rt zbB;>HU@`&!XV8B&gZDpI*ei2JRH`w1MugP-sIoLT2=AVt8Pjw_dA;do#*3bq0)1P89 ztX?xNJu_m=%m)0E8-pNMJZL|AETI_YZ$n6jQ=5Qtl@K`w!Qi>Ql{3H}q#U(H7-I z$eI52!?trQz@~~ejm&a-p*LCgf`gGqcNixbV_4OZWQsDot|94WPft<{7tg!=@uk=@xvM4BFfYi4>w!oRyWF4ath4`j!`5|kn zc{2Z8a70$?px-(%@c%u=4^PG2XHi)!dd53a-8em0zvw5nRAud>>sDeZHJ9_;1vbvS zLN-SsRbFiQEy_DZtrGtnFJYqxJ`|wPi(o*BO|9VfxY`=@U77!mC*FC8S)|rbD4-)T z&?f3Ku~Tp9Es#btHZl{(ID_+iMqs%;-tO1=`#@LKwPZ{}l&_Ox+}^1#q1>~)BcZ1b zAq7imbOBPXUCnKf0flHf;b>Kj@B9-iqaUzvE!9X0E_!uRubLF@_YXW1N}$0lDS0+^ z?3kn<$RiUl9tpmG9&fDri`3+md5ko@8$^NrJ;=29pmckWjw6MhxWy9wrn;*?Fm~@# zth(h>WtIHotgs>La2@Fb2uz%hwjixdPv=RQYPG*#1eW#IuN%A&Q>;nQz)2KQ7dta` zPCQa*Q+0UNXeiZqPDv^mQ0o_&+#&s1!ZLmIaEN%6sF|c)Bu$|r4TbxrCs5DpJGo}) zV}QR{c+znr^T*`kG}kW&(KiDAPrX6ejPVPrV3C44)L&-i4e`*mui~KpO9TBMW`nuE z$#OMPviQCKpb*esecEB^CItB>AIx920RQE_{u2iCH+e9BlK}nC9_WAW_y0xLaBpL?)wQVa=RXSo{}2QIN6mfghA@fL z#O1+monV0f6DL?L^j4A|2g@yy3kI@`=wMe16s(84%lSNTNm75?CjZAlz?sH8rETG- zV`iv%rfs6Qp)J~P4?+T>9|%fCw>3-6^BZ=1`3iQ>(du8+r6YQo#GHioLdpbhKbyC`JiAf@<_NHSJ=4iA2`7M7pY zkDpeNsK-7{!5Ggnps7)nS8lXW4pJV>!=&`7j}7po7R6xrbHQ-Yc$0E&hDhPR4juVW zx-)UJ!{GCUXNcs&VG0-cp8)-pDXX&)S4EMm>m=ZRxC|=Q#{KKR86Oj63IhB=@7t4k zmptva(^RQ8t7}hU)rK@MP}D7HRus>EOP20U`ZkMcrV?hRJkDDz^@F@K`F=)tAOD^j zx`$Jd4+zg4ha8_wT@e2c|&Ab)bC*{}L?yxN0i&&WMb_;hhN5I3?A!Br;22 z!A^kdgXw8iuU%*X#t5dS?#pE~r(sb4&*DT(9WHgm>%3k)waPXeQdFing-IhVR4A+L zcQHO@i=0Zf0Q=7=l-RgZVa-~}UTL1s=L=^lX~6lOOW0NIeR|9^W6sGiC@U;i=e%90 z7@he0sjLlk8^_{AB-8QV$%Q73`1eJ-z<=fzy#F9Df8+)A*ZupK3XMd`VlZKE0{xFP z!2hOz{!kyhe-X)JZbLBtTm$c)1kAtg`S*_i{&2s4P94m@wgLX|0L;HTv5>+u0sgQB z>OVNhe;UC5MiJD1k3s(X3+A8R_xckMf3+b0iGcIf%m3T|91ZXXl`vZJtEZ7D+c0my zf9QCf#V;AG@DKkY!Egyapu6{9m%4b`vI_c71?<7-eCjmvDn~mU$L?3cLyY+&Os{f4 z{e!IAD6p+@Ae$-I*7=~%yW+CFCrn;c79&eljZb`2;a~r=Tkx92-{anYZJ=N$zA~!- zk2b0<_S%`19G?MxmkRoiRIq;t!Kyu)Orp(a72TEh0pPzrHX#ukx#Dd1`-d`nUHG9^4U1ZO_aM^Pl^?YwJ*P;IRN}gj^o|9 zFyl4;duH3R4iwX}vWynO_HJ}H3@#G|ebyu~m;6S?>KjEPd+y8f{nzW8WZ?IEvp>Sm zf9Pl*t)M2uF@$6|!{8C9ge>Lzl}4@U-NU^Uqcn3o9i-1!AKwcne@P?06R%M7F97%> zG`k6WYVPlmCzE2WTd2h^4ZqEm5`U3nvx4}v80$>gPq2Yu3EJY30QdgQ#JjRR|gtv zi;mN&GBO@wue^3#FT35ODde!XmorQbG2~VxUznn$;G%T}cHT7`@yfY*vr`h(5_dR+ zrFx9G+6b}DGDrplIsah9q1M|t2l4MQs9KtW{AK+Ul|Hrcm7Eapzh`+gwvefs{RI;) zS{wD&-aPvZLG~hqjo{-cd9N?pLKQka8Nh!KE#_NWI*=63d;d3c;J^C03he*lVB)5- zeN%lw`mFP|`VCZ@p#YBezMkg#CQ6}N7TJ-UkMTCyv|+lc-igg`sfgU_FhnpA@P8)& z|Bhuu1`Am+KwH6oi?|RG%Sr(Jr#303{gfzX9(ddY@k#vHkdded`!`(qlN=Yt=Srmd z-^B0K=|)?Udps80oj$7io|g*z56sS!SFHB}TW)Kk)XR1tm%bw*n#Y*pwnm3S#q1&O znAfhhVE!C>&p&aty4nH$dvhieBSawnh(Z370r~G3qS2w`_ z?Lho10sKQ8O)#DM>&s79E_y74{eD?e4eZPN}Dta7J zw~_Eqf5^bI{LlY^i!^vFdqYoHbSf>M;n|*E*l@u4^K-6HW=x;D34|-ct|%)KTpplU_LVNdWx? zgK$k^AfrTCY%R2gB2@Xd*JrU>0X|4E3R<5)%GU!&JP}wtDq-SbE8$xqFEnU?LhelT_q1OA<6&1Ox{ENTPnycQCB8U*nV0) z|6WRhc_Gskm7r_T;@b{!Dx#dtYPikj`$|ue{Cs7k9f&`vrxPMy6pZst9qOVJr^XRh!>}ip`WgK1HAux{i76k|62fm zzxRKGJ2~Vo1N?CV;E(A5f0Um-%OL-uf&7;O z@Q-NF|G9wt8wcu7(f{Ee_x_v7_x|%>|MM*9|L8&fZ2U z+A>&K{^mvCjZ2`K#gEC?kxVrVBSu(ArX4{qkkYJp8b&(-n%VW2(dRjQE z;^wK0`~K(jF+qHq!vVLkAPxWf7d-|#vta*2pf_ALAldD?0p7fGUysiKML93kc&Y7H9=#PolK&8?FYWUXXK2w#HfE!AbS28(I`!Ye>QbZH1|vv#l-go zQjhWPPSGM!iUI!m5Y!)Ap#DGx_$wBuKN7+3R|Wt7Tk!wC_n%hCfRm6|BB!@Wa4f8r zYjjsUARQAl(tD3SDII>gZf;rxq2O!$8uFo`E-fkE0(0x=Ky8=TGV<%OKeUeu?VTcw zhv-R(t@urLfbU~|llfx`qY1%mB^r`v>8~aimvuR#t=qNt0RETq#+a6LifED9=g(cB zjvxG*vE&gGx^aA*Xe#lNS>Ft-ac8dng7#^yjQJ41l*jt3J{`#qzn7JMZ{<08`B@-* z9y%v>zj(Ft|C;&^e>l6YYdr+fqKz`TQG#e;bP+w;VASY6dX3%*qL=6;NFxjhLUd6Q zQG!t>gi&ri%INL8CeQsm@Ant1-#TaSwe~*Ob zS%2)6mk~W|-5q6YoS3@I{%T^S{Ba$PCS8VYZT0#{>I@>WPjhvO*CHw-t?rOxZ#C ztEo=I{(S?wF#1y^X~G)W2#;W!=zK{5=nnfFpu_EAO`^xX@nDDuNh;Im2oA!#n{PRF#~%M!4Bn_Xfu!fEgjNvo(PWpnUtrChyEUu)aE;))yR>sW7qc)1ah zLk8}R7EU{Wnk<7f;R%Q9^|+neEO#D#8N4jfa6+pAgP|neyLnY*uQZC@H!H=A!wTJ& zr-~_`Wk-&`y($pxEwD@D9r5pr)@5RDWPF&n%a6GZz_4DqJNv4Mre~SlvhI3j8I6nV z=EW}-Kh&;!NjxntGR#e>!H(C{`K@N^X8s?+F23P*gfv@DmxEfb5*z3ZJ%a-0$&Ot6 zXZyuc8C^S~R}T=$-%n9N+JpVF{JZ7`=m%G=0|cb_LBf zt$%dPAEJs=jKx=EGa$9MBHTSb<-vexm+X5w=*kya-gl~cOhTa(P~KLPByXzHQ3g@t zM0|7@j8A{6#;S5~JvOFal-1YNchZwlTBy0O{&VMxJUs|9KG~C_#h@1cCWqN>U>3Qw z6+WjinJD_ldzoR*FcdiOB5Ie0IP^V4=c>ky& ztZgAE`^IT6Ah}dN-MPJ8y%J$-jY?;h-_e@o^D=Xf;%yXiy8;Qk-;Dcwzd{#b<4-k( zshX;H32H{z#Q^VN=dfy!Z}HO)2NN6X|IRY6?-Z(zmBC}&<#N@l^CHRdV2YlKzAd`? z2tqMSVfDU`E;g$4F<28vZE8-;Nw^o$*fPz}38VfwkS4=pZ=3}~q~|$EENrfwKNHm* zdU0pdcTMJZ+Os>WCHMrg=}!w?G%x2^Tt__hQ+73uVI3Cmq!OO)(G(fsEVWC=dBfd(@$sl5+KR)cHLBRKSxFPq~oA~%5GiFzO;6y^?x#0Weul3DP zDX-%-=qCNro}H(CXn6wM1T9ofA$8#LE17d!WYG+mKT@@(5v#+~qGRI;UF&t7>a3|^fle}P^LoPAy?bbu<^}vRB(sQ;V0S}bTMXYWd<$unoXNpxkN|(54Yz)didt?7y{9RhEWIPV zq&7nnUX9iv7?we}7I?Cq7cq?u9>IOqQ}%G1*`FxoRSvqwDe)%g>Ub>v!|%q`pl# zHnpS~7{*9lKFa2MkEgC+sK3uNH{VWDi?)kW_?;}nW)~SQ1H>Hof*@o$0vEoA+p3Y- zwBSfCSUi*v%~YVL6K~^aa_&Zv-RF=f6B1IoDhzw+(5N@S_#i8?FY>1NEQ^N3vUcoJ zd$p)=#&OFODz=+&Sk!TzHy%mibkP` zz9`%w5>Ltb)ZspH*>G<0olQ`M)c&yi(7vrEhq_k5R-Bt?UMc~-s&TK;=w5Z<#%ByS z*NL!6X;|L={63F6?nH&@+`So%pH9GAu>oSR&3K$OoSH#R;Z&7yr6vA}b#{J-#MZ0c znhHbp>?-T0BMFNdVT~HdWa4%1MeS-O`RfW=l{X@Pb%CoXaQ;hW7LU?EERv>#ZbO*8X8cV-16& z?|r_t(x6nqN6C+q17Q$*>a~hqIgUd+cPE@(1k7N|>b+#>*0Z&?pj_^Wpbe1+UzeRk zW^V(RN!T^pf%%I=m;mvV*?r{%ctq%7_RyV=GDflYWS*!d4-wRNV&Yg}lME#^P zB3s}1013>$YGC%rK(&&{_5<$^j1V*X;!^>42&(-8uVk(i939~tnWz~e>lAuMIQiTj zhhT}ovbIbJG^wr(mn^^E53d&@YjMeRj4YUB$;!WoKYqFEfW zx>NY;4PgD>UA&^a;UK4&X&I6Q)_;lEh5rG7Uk|Lm7qpdO-qW0gR{W|&?{Q~#pB_ge zlfxwHul~iy6an}Dlr6HVn66#9PXyZ(_#lk#FQ=1%`5y)ptV9zCYipDzfK8@L{W=W?g8W8!-R%^R*6o2*9s7s#0!pvZ9!5DW>l>^jX3U%J{7k*s-Tg#&so_j{h=*0@%}En;k&NlmeQ7)U{4$ct z=AZpuj}G;xsX+I*T;HX!5=>=&RV7^d4?ff9u9nhB6J}9mF-#lRrJynJ{@)|u{)wf0 zW^xyB|75gNJzD^{e>qAD@b}-q#@}z>Sp~%s;Qc?NpLuQ+!2K_u1N2Zfj%!8QIKgjP z(V&yK8p=vT<5)H(e!R3v{NLl7aY{zXe2p}Gu20pYt3;*RKOJ#Ueh&tfZ#)k(I_hhv zuXYdw;vYGBsqY90_iTwhJbzRF7P3gfcPun)n>*ISvXe?%&rIW z4_N=PybB7xVc?gTL&;z){zlkjxa6@oMnYAU^l?2VnI`y~ovUroukZijCo>gb`Cn)k zs9S9}Fc2Qd^eG(4lU*Qi7E5*+u;1UDKZ)@Q_m>sQW`h0lJt71p);@Wn2iDfOTw2Lq z`r7(}MbX)$;OY|xsQxH`(~Ac{;ri~^syMZkxKd0h9d zT74S1qj|*#DAirC!YM=6yaR zu9I=00T@voMSy4i(K1K+Ma+g5=Ld7-ttTL2Z=EQMXYp}eh8&yPuJaez_{YuY9`jOX zH>cuj_CdJt0`X4;4hgi&M7FBU&*Fvw_nTs@OS@&8NwD$fC)nZN1%B};Lh+hW`yFVE zyFP=uU$}k+3nlrEZPuV?BnisDjW_Dg=j#%ts1A^8aWq0Lvfnw-kGe@?%M=wjkw zb%@aAuRD~lSKM6E3pmt4@verGvi_b0?h)}d>bbXqgELT%p7Oj-8XF$dTUJ!^sWb*!&sq{8rRMx*dF{;ydEv0sTYx7!=89>{WiX1N4vRVJI7yC;121FO=*Jf76y;mf3FrKj9%uX0Pz2eys?ApXyNjwpckeGQnq%{SMr%6h{tnj?@c+f%{0I0;VEH$L zR))HjpIybSDyIvvsaBr66HWoEM235Di1qEc*0*#6{!+dr#lel=&`jM0=7awSbpy62W)MQkqF`gaW8?Ppb3)|10O9_jKI-sJ`FX zkFXc|Kvu$Q?ydU_kqg$i7>g2hZYI8)QPpVZJ{o!UZHm$8k(^%Mt~U}Uc_@31Yiz^n zRyu*v5g0PJa3PsLh)-d29@g%6?T|a)hyeewf+@z1TU!?h6=?^}X-%ey)Hsxp zO+J*nRB_Q0>bo>fleWYXF=*>@h(^;i1SEUnW7PO3 zRW$^N*FV|YPk3%IKvG#(!;C8ygRh|41PI zITqhl1=c^!u(qAFUV7*|2NlBaux;Pdo+k@TK$+vs-prUxu1!o9Rn;QloVu@DnVC&B#1KyH}hDSj?!OAz4dX!A+@_IZP z;P1-tpZe!C5?lZIim@aA_P<|3fcoc6p7L5!43Ph@C;BQy`)q85!mr3e=hP>ki|+C+ zs&tEhBkT+bmn1Ws5gy_LpGtT>odN#Wda2vwRCiLMfZONC#J;O4V(p zZ40q@?|;|!_8ifn>7<7P z)E{EWOgyU%18&&;Z>b-u#p+)HY7K54*jYqJe}oLX?)jn2m4o_Z;PCY{DcQOP8-K_; zg$u5TR{zG{DG^>MzelqAJz)P$)SMsVl$mFNwSA{Gkx2^6^UUh=1TkvMu-i+brS{F4 zdl3>PtcY$?b*%n3mA)d)Je25*W#-#Ze&FQ|ve*@ufzEqLd}1tSr!%)BKN>Te3`Qo9 z@dNvxi|R0a2|bU-u74;Q6%sa#5e(FcYLnt&v*Mr4Icclt`dKcZp55U2bn@wPedNqH zWZ>{N{~ygcBCq;C&PROT-aFOX;-4ZIcfNMJ%J2oh2*=jn`KLp&k>Cn${#(9|>veW5 z!2WwdRaXi)vGs39Asywx?mikF_MiIG;pJ*-hoSU_J0cz+G6 z|NmG2J+(M>J$_HQ&AqHO|3CeAs~@Q`r#j~t>Nf@I-|NSkg%QF{^dz#$cZD`o#ht5( zA~n;0$5#bPG*IRWux7RCXM9Aj9E_*l=07sx)t4y}|;ku|Z2&7UETo2$&YKbiK1O7|l)w%4qLHO5y2{0Yhf9ua7V;1Em zxUeoV@wh99shVAg$TPbp?n&nE5k+KLfR7IU0|p08%p9YG6OK?`ZeM zOE#;QYPRgJ|F)ZhNr;=#$edVR{y|H#<~JWR6eF2Di^TlKlxI`+$OyZhN-svVY+H~o zJz7uJyCaCofTH_Hu<^eiZL9|HpB@r_0qDPyoUSU!LNguPf60BK%oRRw1o{uZYlfrQ z=ePL}j0U}d{v(#>IzBSXg2oGfU$U+qGo05D{P6(~n+bQ552;!Oo2aF^YF@pa$8;J# z;J@!AlOMcte?w5MU{%_SS$z)5bLwy)1o{v3P}GNuoem)WoJ?>^Zh-#hbpi1I8Q}kQ z4uJla`^77p0Q}8i;Z51BFGX{eqS5XD?SC?MR<3c(HH7t+l6Wcq>A4qn9>zz`b?Z~} zshV9B4KtlOqURAl>dAOSXg+byD9JW+B}Ji9MC!QH{a?@us~8Kpi#^ST+zNS~gvo57 z4H9S|dU{*qITcTwj2XUaMmOuk^!GY1qhH}W${xP1`q@kJatWwpyvK#I=9szyPnG55 z>go+kI$vJ#y;SN6I_(#nsD}ndaFth=>rN_lY*23ArQZbZ_ zN6h9z9fu4LnA4eEUQYUE*9=>zrHz)d=h8x-9+q^P0{96sMr5kFqbyTD){s=%ziG31 zLwO{qGZvpdE2`RdGv3pK{L?-aM)`JOYi-|4n&=J_vdcKrin`x25lm)j20>o!u`gc#GbAM+U_-P&rDr2>I*a)Ub5!$a20cQP5y85&-(-yPOQqg zAET&ZB}tb+cDlk9?_8HRvln%tJEqgVGO+N6z>j$D2Zdc)Pv=RV&5ySR;S4XtBS&fJ zX^K&66tgi%2c=xe#QZJjQ;)OvG;R22K-xd z7+34G2OAL@>*DA(oHg!`cPH+vCl>?fFCuvg>-JK^QTCH(`xa`gXRq)txM?)|u7;d{ zQSofK=_ox!=78&$`j5pzFx11g8boyBZP_xRzYbTuIX*DD{JuD#hD2lHt53tF={ap1 zhegKKEn^-h8<;_u+~WE_h;l@+Qo*TEE24^-0vp`_csiU+C7?u zS2#8IF^1K>-PAOdmlu?W;uMNAl_`?3Rz5YvOdJyB!1`|`TTi_ zqK8!=pTYKH(e;)}6WYyM%LVaxY9?!Vv z2B8$%vnrW3pY&_!mOtO8es;ED5e#b&v*1D>Xno^5BUf=juV1c_r(D(5DMg1cEh-q# z6F!x9H!AU>4#rb7 zQ{vo*lhKau&8tpt2*$>pFSIPmnm1qfJ^B5gA?Qw>d8!%J9WmYRX={lM(n^aFE1A(Y zp`T}+wtlm%UEWcQ9#R!oS7aX@sDB2?m>Z0xnngaxqz9|i3%;Wgx3yJ{FK3lYIIR?= zOeEv@*x4FHwT@~+Y!K0z^N6CqGhUMz#xu5ghS)eV9R8C`@Acf;$ww|b##$4lnQLph z9`tHnWJ~ZHaTAVNN`jwk54ego-Ggs%3W`Fna5@dOP6qr`BjaD59*X!1ckRaYkWu}( zD!telw;~%*0RQd_qNk8O`KYP*Gj3AJ=884+S8)Mw{`P)gd{ECy_A$J4owC^udLz{K zEW`{g=zDb+1RpEXCSY^%0>KI`#7L>mx)XDX806?7Uk&|Z!!frlSfL9gN> z32tv}cicg%(W{Pk4n+)0;*W>vcs@jCflCUG(+Qzx+9h_TIOY-u{j3(%g#&or9mJ5S zv=b(k{@Q`5Ss?%KiN8vtz&MLuOZ^EZp@;jW&%gJyN%RTgu*p7vC|-k>ZwnPO9nbjI zx-F7pV6xY>z=%!VJjkgIUuuTvz?VP1qFt@cl!uZLp+~u|4R-vM{+_?}$Nh_csfh}J z%87#~KL!ORw5;OUG_bm7ygXuLUwg5NK9Kikv8T#e^h1y_&eJS_b=5eu8!`v+ZL)B~ zXxuBKDTGjh%@o4Pu7}sGLwau{XZfvu#B*6E>NNADv$(&Q1PyL9iakg{#VN1ykZ3lY zEHfX68^;Rk>PjRaDbgeRSEQW_%*O*C!a_JPQ)WsB#}j58^Q=z4OIpL&vuon}`xw<> z-Y&;!l#@2_e!@0)Z(<+#Y4f!jUL3$*{o|?>!2gE}$qYm4d*4^i^*BX_(9UKu?sxuk zGM54-9SE!X!c+pa&dUzvNn(+Zq3G9!I}r~%cnnDKVn&==JF^#MBQCU1yyjqf{qu1( zt%JxBoq#Va?itskzDmc#hf`ntU5t6C@`qI>S(P$%lgU94N2=}WmN5D~16g_K$pR(g z1#{j#;#%qB4>&VnJF2rbbUz|x{L`V$I+13E7a0$Fw)btpEA{)FziDNy*HSl(Hr>@; z@LK6|e_YngNjtdG11Aag^Haj04814b&dC6Oyfg(<#C4L3>>8@6xexFk+n~x}t5_rW z8h7DiZPUP8Yt<7@xAq(f&6KlysAxOzBe^Wvcs`#RB|G3~}Zir5~KmQMT??hz) literal 59422 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 LwV%b0ZhHSe24xZD diff --git a/radio.c b/radio.c index d13b161..a8aadde 100644 --- a/radio.c +++ b/radio.c @@ -259,7 +259,7 @@ void RADIO_configure_channel(const unsigned int VFO, const unsigned int configur EEPROM_ReadBuffer(Base, &m_channel, sizeof(m_channel)); p_vfo->freq_config_rx.frequency = m_channel.frequency; - p_vfo->tx_offset_freq = (m_channel.offset <= 100000000) ? m_channel.offset : 1000000; + p_vfo->tx_offset_freq = (m_channel.offset < 100000000) ? m_channel.offset : 0; p_vfo->tx_offset_freq_dir = (m_channel.tx_offset_dir <= TX_OFFSET_FREQ_DIR_SUB) ? m_channel.tx_offset_dir : TX_OFFSET_FREQ_DIR_OFF; p_vfo->am_mode = m_channel.am_mode; p_vfo->step_setting = (m_channel.step_setting < ARRAY_SIZE(STEP_FREQ_TABLE)) ? m_channel.step_setting : STEP_12_5kHz; @@ -356,7 +356,7 @@ void RADIO_configure_channel(const unsigned int VFO, const unsigned int configur else if (Channel > USER_CHANNEL_LAST) { - p_vfo->tx_offset_freq = FREQUENCY_floor_to_step(p_vfo->tx_offset_freq, p_vfo->step_freq, 0, p_vfo->tx_offset_freq); + p_vfo->tx_offset_freq = FREQUENCY_floor_to_step(p_vfo->tx_offset_freq + (p_vfo->step_freq / 2), p_vfo->step_freq, 0, p_vfo->tx_offset_freq + p_vfo->step_freq); } RADIO_ApplyOffset(p_vfo); diff --git a/ui/inputbox.c b/ui/inputbox.c index 6513902..52dde33 100644 --- a/ui/inputbox.c +++ b/ui/inputbox.c @@ -16,6 +16,7 @@ #include +#include "misc.h" #include "ui/inputbox.h" char g_input_box[8]; @@ -24,6 +25,9 @@ uint8_t g_input_box_index; uint32_t INPUTBOX_value(void) { int i = g_input_box_index; + if (i > (int)ARRAY_SIZE(g_input_box)) + i = ARRAY_SIZE(g_input_box); + uint32_t val = 0; uint32_t mul = 1; while (--i >= 0) @@ -34,6 +38,7 @@ uint32_t INPUTBOX_value(void) mul *= 10; } } + return val; } diff --git a/ui/menu.c b/ui/menu.c index e41b14b..5fd35ec 100644 --- a/ui/menu.c +++ b/ui/menu.c @@ -661,25 +661,29 @@ void UI_DisplayMenu(void) if (!g_in_sub_menu || g_input_box_index == 0) { sprintf(str, "%d.%05u", g_sub_menu_selection / 100000, abs(g_sub_menu_selection) % 100000); + #ifdef ENABLE_TRIM_TRAILING_ZEROS + NUMBER_trim_trailing_zeros(str); + #endif UI_PrintString(str, sub_menu_x1, sub_menu_x2, 1, 8); } else { - for (i = 0; i < 3; i++) - str[i + 0] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0'; - str[3] = '.'; - for (i = 3; i < 6; i++) - str[i + 1] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0'; - str[ 7] = '-'; - str[ 8] = '-'; - str[ 9] = 0; - str[10] = 0; - str[11] = 0; + memset(str, 0, sizeof(str)); + i = 0; + while (i < 3) + { + str[i] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0'; + i++; + } + str[i] = '.'; + while (i < 8) + { + str[1 + i] = (g_input_box[i] == 10) ? '-' : g_input_box[i] + '0'; + i++; + } UI_PrintString(str, sub_menu_x1, sub_menu_x2, 1, 8); } - UI_PrintString("MHz", sub_menu_x1, sub_menu_x2, 3, 8); - already_printed = true; break; @@ -847,6 +851,10 @@ void UI_DisplayMenu(void) { // show the frequency so that the user knows the channels frequency const uint32_t frequency = BOARD_fetchChannelFrequency(g_sub_menu_selection); sprintf(str + strlen(str), "\n%u.%05u", frequency / 100000, frequency % 100000); + + #ifdef ENABLE_TRIM_TRAILING_ZEROS + NUMBER_trim_trailing_zeros(str); + #endif } break; @@ -1060,14 +1068,14 @@ void UI_DisplayMenu(void) g_usb_current); break; -#ifdef ENABLE_SIDE_BUTT_MENU - case MENU_SIDE1_SHORT: - case MENU_SIDE1_LONG: - case MENU_SIDE2_SHORT: - case MENU_SIDE2_LONG: - strcpy(str, g_sub_menu_side_butt[g_sub_menu_selection]); - break; -#endif + #ifdef ENABLE_SIDE_BUTT_MENU + case MENU_SIDE1_SHORT: + case MENU_SIDE1_LONG: + case MENU_SIDE2_SHORT: + case MENU_SIDE2_LONG: + strcpy(str, g_sub_menu_side_butt[g_sub_menu_selection]); + break; + #endif case MENU_VERSION: { // show the version string on multiple lines - if need be @@ -1135,11 +1143,11 @@ void UI_DisplayMenu(void) case FREQ_LOCK_446: strcpy(str, "446.00625\n~\n446.19375"); break; -#ifdef ENABLE_TX_UNLOCK + #ifdef ENABLE_TX_UNLOCK case FREQ_LOCK_TX_UNLOCK: sprintf(str, "UNLOCKED\n%u~%u", BX4819_BAND1.lower / 100000, BX4819_BAND2.upper / 100000); break; -#endif + #endif } break; @@ -1151,9 +1159,15 @@ void UI_DisplayMenu(void) writeXtalFreqCal(g_sub_menu_selection, false); - sprintf(str, "%d\n%u.%06u\nMHz", + sprintf(str, "%d\n%u.%06u", g_sub_menu_selection, xtal_Hz / 1000000, xtal_Hz % 1000000); + + #ifdef ENABLE_TRIM_TRAILING_ZEROS + NUMBER_trim_trailing_zeros(str); + #endif + + strcat(str, "\nMHz"); } break; #endif