From d31482c18bc22955192ccddfe60fe87ab1bfe7bf Mon Sep 17 00:00:00 2001 From: 3djc Date: Thu, 16 Sep 2021 10:50:24 +0200 Subject: [PATCH] Introduce T-pro and function switches handling --- companion/src/CMakeLists.txt | 2 + companion/src/companion.qrc | 4 + companion/src/constants.h | 1 + companion/src/firmwares/boards.cpp | 17 +- companion/src/firmwares/boards.h | 11 +- companion/src/firmwares/eepromimportexport.h | 2 +- companion/src/firmwares/eeprominterface.h | 3 +- companion/src/firmwares/modeldata.cpp | 12 + companion/src/firmwares/modeldata.h | 9 + .../src/firmwares/opentx/opentxeeprom.cpp | 30 +- companion/src/firmwares/opentx/opentxeeprom.h | 1 + .../src/firmwares/opentx/opentxinterface.cpp | 23 ++ .../images/simulator/JumperTPRO/bottom.png | Bin 0 -> 36753 bytes .../src/images/simulator/JumperTPRO/left.png | Bin 0 -> 97146 bytes .../src/images/simulator/JumperTPRO/right.png | Bin 0 -> 92836 bytes .../src/images/simulator/JumperTPRO/top.png | Bin 0 -> 21462 bytes companion/src/modeledit/CMakeLists.txt | 1 + companion/src/modeledit/setup.cpp | 170 ++++++++++++ companion/src/modeledit/setup.h | 28 ++ companion/src/modeledit/setup.ui | 5 +- .../src/modeledit/setup_function_switches.ui | 121 ++++++++ companion/src/simulation/CMakeLists.txt | 2 + companion/src/simulation/simulateduiwidget.h | 13 + .../simulateduiwidgetJumperTPRO.cpp | 54 ++++ .../simulation/simulateduiwidgetJumperTPRO.ui | 258 ++++++++++++++++++ companion/src/simulation/simulatorwidget.cpp | 3 + radio/src/dataconstants.h | 23 +- radio/src/datastructs.h | 3 + radio/src/datastructs_private.h | 15 +- radio/src/gui/128x64/model_setup.cpp | 76 +++++- radio/src/gui/128x64/radio_diagkeys.cpp | 25 +- radio/src/gui/128x64/view_main.cpp | 2 +- .../src/gui/common/stdlcd/radio_hardware.cpp | 6 + radio/src/hal/adc_driver.cpp | 2 + radio/src/lua/CMakeLists.txt | 1 + radio/src/lua/api_general.cpp | 2 + radio/src/mixer.cpp | 15 + radio/src/model_init.cpp | 7 + radio/src/myeeprom.h | 9 + radio/src/opentx.cpp | 11 +- radio/src/opentx_constants.h | 6 + radio/src/sdcard.h | 2 + radio/src/simu.cpp | 9 +- radio/src/storage/conversions/CMakeLists.txt | 7 +- .../conversions/conversions_219_220.cpp | 4 + .../conversions/conversions_220_221.cpp | 4 + .../conversions/yaml/dataconstants_220.h | 2 + .../conversions/yaml/datastructs_220.h | 3 + radio/src/strhelpers.cpp | 17 +- radio/src/switches.cpp | 120 +++++++- radio/src/targets/horus/board.h | 4 + radio/src/targets/nv14/board.h | 4 + radio/src/targets/sky9x/board.h | 4 + radio/src/targets/taranis/CMakeLists.txt | 14 + radio/src/targets/taranis/board.h | 54 +++- radio/src/targets/taranis/hal.h | 112 +++++++- radio/src/targets/taranis/keys_driver.cpp | 9 +- radio/src/targets/taranis/lcd_driver_spi.cpp | 2 +- radio/src/targets/taranis/led_driver.cpp | 24 ++ radio/src/translations.cpp | 1 + radio/src/translations.h | 1 + radio/src/translations/untranslated.h | 19 +- tools/build-jumper.py | 5 + 63 files changed, 1324 insertions(+), 70 deletions(-) create mode 100644 companion/src/images/simulator/JumperTPRO/bottom.png create mode 100644 companion/src/images/simulator/JumperTPRO/left.png create mode 100644 companion/src/images/simulator/JumperTPRO/right.png create mode 100644 companion/src/images/simulator/JumperTPRO/top.png create mode 100644 companion/src/modeledit/setup_function_switches.ui create mode 100644 companion/src/simulation/simulateduiwidgetJumperTPRO.cpp create mode 100644 companion/src/simulation/simulateduiwidgetJumperTPRO.ui diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 6914f667c..9c98e519d 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -323,6 +323,8 @@ elseif(PCB STREQUAL X7 AND PCBREV STREQUAL T12) set(FLAVOUR t12) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TLITE) set(FLAVOUR tlite) +elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TPRO) + set(FLAVOUR tpro) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL TX12) set(FLAVOUR tx12) elseif(PCB STREQUAL X7 AND PCBREV STREQUAL ZORRO) diff --git a/companion/src/companion.qrc b/companion/src/companion.qrc index c34fcd295..9bdbdee8b 100644 --- a/companion/src/companion.qrc +++ b/companion/src/companion.qrc @@ -188,6 +188,10 @@ images/simulator/JumperTLITE/right_top.png images/simulator/JumperTLITE/right_bottom.png images/simulator/JumperTLITE/top.png + images/simulator/JumperTPRO/bottom.png + images/simulator/JumperTPRO/left.png + images/simulator/JumperTPRO/right.png + images/simulator/JumperTPRO/top.png images/simulator/TX12/left.png images/simulator/TX12/left-pageup.png images/simulator/TX12/left-pagedn.png diff --git a/companion/src/constants.h b/companion/src/constants.h index 63ba0a9b1..b06792a91 100644 --- a/companion/src/constants.h +++ b/companion/src/constants.h @@ -43,6 +43,7 @@ #define CPN_MAX_POTS (CPN_MAX_KNOBS + CPN_MAX_SLIDERS) #define CPN_MAX_CYC 3 #define CPN_MAX_SWITCHES 32 +#define CPN_MAX_FUNCTION_SWITCHES 6 #define CPN_MAX_MOUSE_ANALOGS 2 #define CPN_MAX_GYRO_ANALOGS 2 #define CPN_MAX_ANALOGS (CPN_MAX_STICKS + CPN_MAX_POTS + CPN_MAX_MOUSE_ANALOGS + CPN_MAX_GYRO_ANALOGS) diff --git a/companion/src/firmwares/boards.cpp b/companion/src/firmwares/boards.cpp index 18605ea10..af164355c 100644 --- a/companion/src/firmwares/boards.cpp +++ b/companion/src/firmwares/boards.cpp @@ -82,6 +82,8 @@ uint32_t Boards::getFourCC(Type board) return 0x3D78746F; case BOARD_JUMPER_TLITE: return 0x4278746F; + case BOARD_JUMPER_TPRO: + return 0x4678746F; case BOARD_JUMPER_T16: return 0x3F78746F; case BOARD_JUMPER_T18: @@ -121,6 +123,7 @@ int Boards::getEEpromSize(Board::Type board) case BOARD_TARANIS_X9E: case BOARD_JUMPER_T12: case BOARD_JUMPER_TLITE: + case BOARD_JUMPER_TPRO: case BOARD_RADIOMASTER_TX12: case BOARD_RADIOMASTER_T8: case BOARD_RADIOMASTER_ZORRO: @@ -160,6 +163,7 @@ int Boards::getFlashSize(Type board) case BOARD_TARANIS_X9E: case BOARD_JUMPER_T12: case BOARD_JUMPER_TLITE: + case BOARD_JUMPER_TPRO: case BOARD_RADIOMASTER_TX12: case BOARD_RADIOMASTER_ZORRO: case BOARD_RADIOMASTER_T8: @@ -196,7 +200,7 @@ SwitchInfo Boards::getSwitchInfo(Board::Type board, int index) if (index < DIM(switches)) return switches[index]; } - else if (IS_TARANIS_XLITE(board) || IS_JUMPER_TLITE(board)) { + else if (IS_TARANIS_XLITE(board) || IS_JUMPER_TLITE(board) || IS_JUMPER_TPRO(board)) { const Board::SwitchInfo switches[] = { {SWITCH_3POS, "SA"}, {SWITCH_3POS, "SB"}, @@ -365,7 +369,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) return 1; else if (IS_JUMPER_TLITE(board)) return 0; - else if (IS_TARANIS_SMALL(board)) + else if (IS_TARANIS_SMALL(board) || IS_JUMPER_TPRO(board)) return 2; else if (IS_TARANIS_X9E(board)) return 4; @@ -427,7 +431,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) return 7; else if (board == BOARD_TARANIS_X7) return 8; - else if (board == BOARD_JUMPER_TLITE) + else if (board == BOARD_JUMPER_TLITE || board == BOARD_JUMPER_TPRO) return 4; else if (board == BOARD_FLYSKY_NV14) return 8; @@ -447,7 +451,7 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) case FactoryInstalledSwitches: if (IS_TARANIS_X9E(board)) return 8; - else if (IS_JUMPER_TLITE(board)) + else if (IS_JUMPER_TLITE(board) || IS_JUMPER_TPRO(board)) return 4; else if(IS_RADIOMASTER_ZORRO(board)) return 8; @@ -479,6 +483,9 @@ int Boards::getCapability(Board::Type board, Board::Capability capability) case HasColorLcd: return IS_FAMILY_HORUS_OR_T16(board); + case NumFunctionSwitches: + return IS_JUMPER_TPRO(board) ? 6 : 0; + default: return 0; } @@ -645,6 +652,8 @@ QString Boards::getBoardName(Board::Type board) return "Jumper T12"; case BOARD_JUMPER_TLITE: return "Jumper T-Lite"; + case BOARD_JUMPER_TPRO: + return "Jumper T-Pro"; case BOARD_JUMPER_T16: return "Jumper T16"; case BOARD_JUMPER_T18: diff --git a/companion/src/firmwares/boards.h b/companion/src/firmwares/boards.h index 2bc37a458..ea0476bda 100644 --- a/companion/src/firmwares/boards.h +++ b/companion/src/firmwares/boards.h @@ -63,6 +63,7 @@ namespace Board { BOARD_JUMPER_TLITE, BOARD_FLYSKY_NV14, BOARD_RADIOMASTER_ZORRO, + BOARD_JUMPER_TPRO, BOARD_TYPE_COUNT, BOARD_TYPE_MAX = BOARD_TYPE_COUNT - 1 }; @@ -143,7 +144,8 @@ namespace Board { NumTrims, NumTrimSwitches, HasRTC, - HasColorLcd + HasColorLcd, + NumFunctionSwitches }; struct SwitchInfo @@ -237,6 +239,11 @@ inline bool IS_JUMPER_TLITE(Board::Type board) return board == Board::BOARD_JUMPER_TLITE; } +inline bool IS_JUMPER_TPRO(Board::Type board) +{ + return board == Board::BOARD_JUMPER_TPRO; +} + inline bool IS_JUMPER_T16(Board::Type board) { return board == Board::BOARD_JUMPER_T16; @@ -335,7 +342,7 @@ inline bool IS_TARANIS_X9E(Board::Type board) inline bool IS_TARANIS_SMALL(Board::Type board) { - return IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board) || IS_TARANIS_X9LITE(board) || IS_FAMILY_T12(board); + return IS_TARANIS_X7(board) || IS_TARANIS_XLITE(board) || IS_TARANIS_X9LITE(board) || IS_FAMILY_T12(board) || IS_JUMPER_TPRO(board); } inline bool IS_TARANIS(Board::Type board) diff --git a/companion/src/firmwares/eepromimportexport.h b/companion/src/firmwares/eepromimportexport.h index 965810731..bcb66ab65 100644 --- a/companion/src/firmwares/eepromimportexport.h +++ b/companion/src/firmwares/eepromimportexport.h @@ -568,7 +568,7 @@ class TransformedField: public DataField { virtual void afterImport() = 0; - int dump(int level, int offset) override + int dump(int level=0, int offset=0) override { beforeExport(); return field.dump(level, offset); diff --git a/companion/src/firmwares/eeprominterface.h b/companion/src/firmwares/eeprominterface.h index 02ab4884d..099501c9d 100644 --- a/companion/src/firmwares/eeprominterface.h +++ b/companion/src/firmwares/eeprominterface.h @@ -162,7 +162,8 @@ enum Capability { HasAntennaChoice, HasADCJitterFilter, HasTelemetryBaudrate, - TopBarZones + TopBarZones, + FunctionSwitches }; class EEPROMInterface diff --git a/companion/src/firmwares/modeldata.cpp b/companion/src/firmwares/modeldata.cpp index e6b12ca5e..a5aa59b10 100644 --- a/companion/src/firmwares/modeldata.cpp +++ b/companion/src/firmwares/modeldata.cpp @@ -212,6 +212,17 @@ void ModelData::setDefaultMixes(const GeneralSettings & settings) } } +void ModelData::setDefaultFunctionSwitches(int functionSwitchCount) +{ + if (functionSwitchCount == 0) + return; + + for (int i = 0; i < functionSwitchCount; i++) { + functionSwitchConfig |= (Board::SWITCH_2POS << 2 * i); + functionSwitchGroup |= (1 << 2 * i); + } +} + void ModelData::setDefaultValues(unsigned int id, const GeneralSettings & settings) { clear(); @@ -221,6 +232,7 @@ void ModelData::setDefaultValues(unsigned int id, const GeneralSettings & settin moduleData[i].modelId = id + 1; } setDefaultMixes(settings); + setDefaultFunctionSwitches(getCurrentFirmware()->getCapability(FunctionSwitches)); } int ModelData::getTrimValue(int phaseIdx, int trimIdx) diff --git a/companion/src/firmwares/modeldata.h b/companion/src/firmwares/modeldata.h index fbdd8f9c7..454ab9d2e 100644 --- a/companion/src/firmwares/modeldata.h +++ b/companion/src/firmwares/modeldata.h @@ -145,6 +145,7 @@ class ModelData { bool potsWarnEnabled[CPN_MAX_POTS]; int potsWarnPosition[CPN_MAX_POTS]; bool displayChecklist; + GVarData gvarData[CPN_MAX_GVARS]; MavlinkData mavlink; unsigned int telemetryProtocol; @@ -170,10 +171,18 @@ class ModelData { char registrationId[8+1]; + // Function switches + unsigned int functionSwitchConfig; + unsigned int functionSwitchGroup; + unsigned int functionSwitchStartConfig; + unsigned int functionSwitchLogicalState; + char functionSwitchNames[CPN_MAX_FUNCTION_SWITCHES][HARDWARE_NAME_LEN + 1]; + void clear(); bool isEmpty() const; void setDefaultInputs(const GeneralSettings & settings); void setDefaultMixes(const GeneralSettings & settings); + void setDefaultFunctionSwitches(int functionSwitchCount); void setDefaultValues(unsigned int id, const GeneralSettings & settings); int getTrimValue(int phaseIdx, int trimIdx); diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index df8b9263a..421138999 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -51,6 +51,9 @@ inline int MAX_SWITCHES(Board::Type board, int version) if (IS_TARANIS_X7(board)) return 8; + if (IS_JUMPER_TPRO(board)) + return 10; + return Boards::getCapability(board, Board::Switches); } @@ -81,6 +84,13 @@ inline int MAX_POTS(Board::Type board, int version) return Boards::getCapability(board, Board::Pots); } +inline int MAX_FUNCTION_SWITCHES(Board::Type board, int version) +{ + if (IS_JUMPER_TPRO(board)) + return 6; + return 0; +} + inline int MAX_POTS_STORAGE(Board::Type board, int version) { if (version <= 218 && IS_FAMILY_HORUS_OR_T16(board)) @@ -2630,17 +2640,17 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, Board::Type board, unsig internalField.Append(new LimitField(this, modelData.limitData[i], board, version)); for (int i=0; i(this, modelData.thrTraceSrc, "Throttle Source")); @@ -2836,6 +2846,16 @@ OpenTxModelData::OpenTxModelData(ModelData & modelData, Board::Type board, unsig else if (version >= 219) { internalField.Append(new ZCharField<8>(this, modelData.registrationId, "ACCESS Registration ID")); } + + if (IS_JUMPER_TPRO(board)) { + internalField.Append(new UnsignedField<16>(this, modelData.functionSwitchConfig)); + internalField.Append(new UnsignedField<16>(this, modelData.functionSwitchGroup)); + internalField.Append(new UnsignedField<16>(this, modelData.functionSwitchStartConfig)); + internalField.Append(new UnsignedField<8>(this, modelData.functionSwitchLogicalState)); + for (int i=0; i < MAX_FUNCTION_SWITCHES(board, version); ++i) { + internalField.Append(new ZCharField<3>(this, modelData.functionSwitchNames[i], "Function switch name")); + } + } } void OpenTxModelData::beforeExport() diff --git a/companion/src/firmwares/opentx/opentxeeprom.h b/companion/src/firmwares/opentx/opentxeeprom.h index c3f188eea..5ad907871 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.h +++ b/companion/src/firmwares/opentx/opentxeeprom.h @@ -40,6 +40,7 @@ #define JUMPER_TLITE_VARIANT 0x4003 #define RADIOMASTER_T8_VARIANT 0x4004 #define RADIOMASTER_ZORRO_VARIANT 0x4006 +#define JUMPER_TPRO_VARIANT 0x4005 class OpenTxGeneralData: public TransformedField { public: diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 59c6bab33..940d57456 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -62,6 +62,8 @@ const char * OpenTxEepromInterface::getName() return "OpenTX for Jumper T12"; case BOARD_JUMPER_TLITE: return "OpenTX for Jumper T-Lite"; + case BOARD_JUMPER_TPRO: + return "OpenTX for Jumper T-Pro"; case BOARD_JUMPER_T16: return "OpenTX for Jumper T16"; case BOARD_JUMPER_T18: @@ -347,6 +349,9 @@ int OpenTxEepromInterface::save(uint8_t * eeprom, const RadioData & radioData, u else if (IS_JUMPER_TLITE(board)) { variant |= JUMPER_TLITE_VARIANT; } + else if (IS_JUMPER_TPRO(board)) { + variant |= JUMPER_TPRO_VARIANT; + } else if (IS_RADIOMASTER_TX12(board)) { variant |= RADIOMASTER_TX12_VARIANT; } @@ -752,6 +757,9 @@ int OpenTxFirmware::getCapability(::Capability capability) return IS_HORUS_OR_TARANIS(board) ? true : false; case TopBarZones: return getCapability(LcdWidth) > getCapability(LcdHeight) ? 4 : 2; + case FunctionSwitches: + return IS_JUMPER_TPRO(board) ? 6 : 0; + default: return 0; } @@ -1025,6 +1033,11 @@ bool OpenTxEepromInterface::checkVariant(unsigned int version, unsigned int vari variantError = true; } } + else if (IS_JUMPER_TPRO(board)) { + if (variant != JUMPER_TPRO_VARIANT) { + variantError = true; + } + } else if (IS_RADIOMASTER_TX12(board)) { if (variant != RADIOMASTER_TX12_VARIANT) { variantError = true; @@ -1371,6 +1384,16 @@ void registerOpenTxFirmwares() registerOpenTxFirmware(firmware); addOpenTxRfOptions(firmware, FLEX); + /* Jumper T-Pro board */ + firmware = new OpenTxFirmware("opentx-tpro", QCoreApplication::translate("Firmware", "Jumper T-Pro"), BOARD_JUMPER_TPRO); + addOpenTxCommonOptions(firmware); + firmware->addOption("noheli", Firmware::tr("Disable HELI menu and cyclic mix support")); + firmware->addOption("nogvars", Firmware::tr("Disable Global variables")); + firmware->addOption("lua", Firmware::tr("Enable Lua custom scripts screen")); + addOpenTxFontOptions(firmware); + registerOpenTxFirmware(firmware); + addOpenTxRfOptions(firmware, FLEX); + /* Jumper T16 board */ firmware = new OpenTxFirmware("opentx-t16", Firmware::tr("Jumper T16 / T16+ / T16 Pro"), BOARD_JUMPER_T16); addOpenTxFrskyOptions(firmware); diff --git a/companion/src/images/simulator/JumperTPRO/bottom.png b/companion/src/images/simulator/JumperTPRO/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..185b5ac3606f353291634671ce6e91feb8650da4 GIT binary patch literal 36753 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

irx^8Kx-845iw!2V@KO4X$khd`j3TeG* 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 JPDHLkV1j_hNeuu1 literal 0 HcmV?d00001 diff --git a/companion/src/images/simulator/JumperTPRO/left.png b/companion/src/images/simulator/JumperTPRO/left.png new file mode 100644 index 0000000000000000000000000000000000000000..efcfb5e980d2cfc7fba5abf822f259a05c78a952 GIT binary patch literal 97146 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%0A*#7xDL4%Eyj$_7@hk|Mce>IlKuC#rF`PHvl5S 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

temBe3oY}5k8QIajWNq| z>QP%nxQpk$tZJ5JU7yC<=NtUBttcp=cre%CG!NA@0kY>O0v8=AB;P z_*kvHrO%aj)G=w((070s>-+UQEq3IsdQQhhO%}rj#GH&v>;@1C5PB`m1;6;kFQ&V9 z?`?oTP;pudll5UwjoG#uUmT-wRCcv;Vw$|sW9niEfV9kUs$*IX=46ToX|&TVryg<+ zAvlO}nS5Y9=B&vptJWMq4cYaeW=$qf;fP^2CQ}Nb=xkim8j@a^Ov&2ecMMq?LAnTY zXcow=1mdBR12^0p$Olz*B6k*(U!1*g*EfWmhey=$);#aB9pjK$IUScmGrN6z!0y_; za|ee`r4z;%31u=}!}s6+ptP&WNWb^Jf9pA^*ByOBnOhH}3_^yg>z`WAsyxn(lsTqM z755NQ218jz9#7{YAV{C9W4N}V)H&~Sc^zZOttKijtM!7%rkn#J?ayhA={cy0Iu89V zLngEb1aoX+&tP@0e)h9}FH}W=Pr?m6^77-(fd{@enri9xI*g_hf9=7v!;($Ko2PZt zjm7c!w8VKnmNisV8g(tTKg>;bS5qJkRfDSBN8>5fys-A9D{t1uu6Eb8&7#${ylf*^ z4j6@u);n=(Xm?pa6vzlm=teo2T#Sd(6=hsoXUeG$f~uYj8I!3!KQ-d|XpZ-`JTB&J z5~03XOeQBP#X~=waupiR3L2hl2SE*t*F)rZ~48^2=CqPpxe}>K@}DYTzc~4 z^Yp#9K1kpFm+uxMednEb$|Cm~^=kDuHV)k!xV$n5LPL;YUaRBQqK9#&g|D_ayYjn`3wpd->C6px&uH!5+==k+_ zuRKh~rH$)=6yf8Ke^53eH73;Z$JOR|7vp57h9Vc{%v|$U>ad=-I(Z?rszB+`Y2_6i zr+2I|PpNQ@XY%7Q4=FWr3y$PeK&M($Kg?s$ILBNZU8)-^LsN*WFrV^;lRxU`UiD1|-QF^~qM-PVi+gqK8;nAmAAa(~^l$(AujzmN z(?6wu`R;cMnSt(gR^Xhj#ORtkL>37&h zG8npN^fzrHGO}o#ZnVk3Ii81tsEtKGu&cDO=(8bPP?Oa$=sEr9IN%%WwNNMBNS#O@ zy{zuXPk;K8^zp|ZrLTSMtF6Yo+Of(AZLqQpEEBmQ*I6u^^}O2PD<^Gu+&k1kVX}d&^m0tF!>*hIumrkp-*A+ELf9@!hYis1FHHD`CjbB- z07*naRIgOR(Z%C8(0liCXXY$@cUhYf!W?LX*%&+ST~ewEe<@}kw!3Thl5H`0j>pNC zolJeS*JB`8CruybPN1KfDAuW!uw3}u(bFPLse165YhUD?%g|w6kK6L3S69WWDb$r7 zukulm349I^=XW$25H>_DR!H*B6w?5)Ku*6RclswGCg}hK0>B^SS@dr$etA-8kMg4W z4&{90u6mt}RCGAVG|AA_Wn? z{<3zIm3(%~iRT^@RbJWHNhE7LbvjU*aG955pCQ6YPNnW7?{qpHH@m~p8rUmT4njJR zSuf{I))3CcXJ^C1SD~;m-ooo#PO>h?HdVp!BCrK3u#LVrURRR;dRW^S&C6~S*QeV3 zlY6ngZ4mAJzhpFi8Q^<2-MW2IX3NTpsg&{EfBBbUsBgdhb|(QO>kL^;Rbpx#QCh%A zf6{>N(E@#(OWQ-)9Y$Y=$` zUGxz0)RZFT*3wo}u)|?XMO=4?IC;9+HFWF<@u0$%0p`oPFTAJqydH`duT_va-D){) zZ4n&+Rx!WWKz=KfNYs1U3RlCE(!S=y`ye#&ll9XYy(!Vw7LchBo(wAvu<-Mimr*i`RVhPoYc8(Vp* z&FJeun%7oiSADf`h4WHIMpm|5H8|y)tf|fm$Wwae-ZMSoD>AR--Hi@eN;DbSqA>%x zq9iDjhv zr~o7CoDPh5>cDOZVjII<&Vj}X-DoeHaonT}Fod|)EEv5<1}9?_u%tYhoDgj%8MZtY z9A6Avi(3Y-zsq1iYIUr7Z4`-fZ<|A{o{)}qH@vvMgR&1ftFAAemwcT%E#Wi`0TFa^ zfX*L!p8F(q$7i0=b)I`^t!i5h45Y~5Ze|44x+5$nMCdgtWI9ycusV}xL=@Thz^u6< zELh%uRghniIKV?nn0aSVIfahl82tDO&_A#&3dOjfHr7wng!s5fLO-6X|PyqxL zYFYJmX;Z=}T*;MrF^76V!l35?D52>y46L3++8mR<7xb4L0NNeiy-?1Yx31jHx$SmW zjmtar977A`lTSV_<(7Z`=l{LQMYAz)CTk~5hSrj=5$?kFapZGtbU+9O+2*u3>Z`@9 zdvOQ@w)7fQ9B5%96cx`{MyS8xtq6@#deG(}F9^sagO$NkI@0@{pt1MJMo{5*eU^Th z@k$9vKOXLaBEyDaz3E!$-;@-+KI$nG*TJJ2t)HqD^+|f=l}F7R9g3F)xSWHa*&z2! zUBM$+#X&~3thwnLA2(q*2IT4EX=#cbs!+7Q6~L|Y22v>prehs{n%0rKW}|*aQ1uiP zIMG%*LZ7RY;wqa{<(Ad(E}+WY;idm&fR>x$~G z{X6QT60U0*q)t~Oq#NMXby}_%mOQ27m#13yoel*77Ef2?1?8dgq$1U8k$G;D4Eau0 z2c*r6aF-e=q3pJtFeG&-g-ph*(am*qIBn4O!PrU-B_>Z*c&o*)d{%j!{w;&S%gRXb z#59h}o5@i1T7J|d;5lw=H*+uRkq{5SCs1c}n>+;8_wyXh39%+iBY_*4*JItgdxZ0o zpZvI_C|~{R*V41k-s>edp|J&IRNH6+bRcQe^IQ9flDhWi-Z67pM*nIK4GB1!)WTFT zsPaV}OLJ((tj2!clS|uH z^GE;R?|!!!sJxOEOANJ=A%$Ex86yTt-=~MU(ZKyPPEFs3(gmd%a!VL2Zm7|-`c2j` z=ri!5lyIoEk|WX`Lo+!BtJmwj`q6tZa&lZ=8~8};9DshUpC^`15y=e*f0yc4dd zq4`WYHOH?PU+`{nTn|2;*3N=Z$YQWP~=)F~F5yX&=5uS;g@Pu98XN9U13xx}NQ zi!$o-s%vD8sfNwi$~>uxGEYs^52A#phhQ(0QAs_WD6cOA#B%M!JsirW?ZdptTd}vr zc+`jwI4GqOVrgJlL$kDpVv#b4F${!jkp5GvJI%fMcx~zugfZjf);3X&1^MNd*LEUH zqXQn>2>;4VI=0ZcmT-jrUN&OKbwQN1fYpYk5LY>L;-i;hr zMo;$)B_3uLO-6G}76Hsbf#kZ0hcg6=@RmMXA{2ly87>iqHdbcm=-=eh(ZkLgfrH^G zm)0+=%|@+-`ivX~sd){542PyPsj3G(*r`Q(TQYxYxQLq6a|=;tn>2v&om!+<$Q9J! zr#kZ~nI>7XdNM?zw22tkUU%=al$+w_fdz|fi0|wy5>ysyt&+t>llfe7LS~b8g_I5! zEsYd?(fj&x&V6je+S-nC>!zSlfJth6W|_D)%_SH3$!C=~@b0_slsc%qr*>G-(mk{@ z8Ysr;9@LZlYtw3W0ARMZI^WC~XCbN_2ruZU7Nr)c7OakwGEX$xWFZm@%4@ki5IsW} zP2VZ+Lf(qe=s5NLPL%LIRuE?yx}KNe(i9L4HHM^~&#rC8Fj6smJ~=7|i|Pao0WQ*} zYeoJ|uIa{#=SgW>VmvhOCA1hNN6$G=rs|(sPw--`o2hx^`dt@Y+h?_Y)~OBBDoyHZ zMNks;*VYfK@2O?1TedM&@U0c%mw z=)EUGwpg=*FIv0;n+6>*u$pAFjM#94&<3Gvr5`pXy1(PH!2wrq z@mowhux}74HxOy5YxnB9afGKn*lUm|j=i6}eCE{{_c_^=2!Wu&e6FsJT`K7Q{pY$| z(QHykrNnt`)9XCsU2U9!3mp4NGNifQFpLGaKG{OsF7T<#Ixe-xup`kmZxmVKXaD}Q z(!{MH!2*X=XVij%@A@>)3DS+Cfi5H^gb40j^=am56Y9^cMJ+PF+`DqYVPU0~`@`?m zg2Quz0z+2NVg|>b2lgZ@?Mx;PfYIqQ6yj=QbvBfamob$3p(g8MM zrgP-XDwnDBkSYawn0wE)iOFwx;&Dk?41Q4>G9t?mb&O!t&ZnEN=8(5vk>pxzt|^v+sn` zN-kqe+e_+T@{~+cX2{pe*q?myMR!QPk>TIj%DklvlzG{!RDr+jAp zeQo7SZ-_YswG^F45m0~g8*e^-^|e>i-Me=R6AArb__h&c^&3YGb<7T#?{z$uW0O&N@Ze#|W7VU2ZKE=0Q~O+u^W8(-dFmryXafaYO(~D{yKVNvUyUymNa9pN_v~J};Nes`78x{2j*;s{iH8yqIWH7Y_pK%2 zP*zx1pvRCXvuP*$7nMI9Agdn~bEy8rSucLz%zzt#3Wn!eti&uyIv*yv*swSVtK1sdh=EaUnfa z75Xck-hvLdk%)Tki!VM;fA@EPpZ?}={-!Lj7<$LuJT4fovvEOntXg#1ghaa&Swa8T zbL@n)ssT`4TwL5(lrhhBgJGv8#O1gNjR3LmXvp0xjdeo_MDHWF^PBGHxc68?p&c}q zbElbI$0RRXWmT$C6S9)C6aEsW5{b|aLrr$iXx&)-Ix#Cq=SMwO$3QraED@Wk&Y$n& znAg_#>vU63dHfpj{cN7P_b)$s)KnfuX=bq~hM#Dp9?cD{rg^h=mOeRfu%AjeJz1?R!gVl3Jpztay z!%ePvZ0*b$&B5{n|MP$TeL;g=_n5zvv%1U+bxXf-I(FTpU;Wiz?bFnt?#)db$w!W` z!0~c4?JqlA*=WEicv-xYcRNisApuauhZv*TOYIIXGX*`Sb4C&uSZaBy&WlkT0=8)G z#@p#TIVQdnWE*dWPLn>D=h>vsT@T+>F(4?M5Jpz3C#KdkfX7D)hvs)u64DOe5Km#e zhJQB(KzhSH>Fc+(z?F5-rm%A@kEhypSq7&~<34M>gXP4HE7qcyb=;HOh4hEFOy+3Z zP(2cejtYD0A@Q4UzWG>Qh+KjX!z-}MP$vQfo|@pdN<71@r*6z^oAzCQwv)UtOpzb{ z;UE5?)K`-c0w5m{Mqb;9N3-QrC%!Vp-kYNJQzOV4Biog_Kj)J ztH%Y20b+cP>Uu7VmxbE6wxT+@EHzcU>^ZRMT!_q~Mcp5;i5jbWJN=zd6fc`vNR8YK z*Hp($`7^Ib{EcsXSmGY#-Peu$*#hal@m)RC1P6%~#vbHc!1K zJB;XdnYi{(|MdTqTB~mo7dFNEXi}#zvSOY|Xi3=X<0q04_%T{G0=yD6Tla8ounw^F z-P&fKu&CfN^IDqnsR#4jcxKp9c$p|Zw`UxFlYO_=^BjkeZ5^LBE^=E8Lf^?I#YUxL zfUK_vb=us7yY;ulTI&25Bj}Wjr~v2%n<}?nYyF&>6iy1@6Ql_u1;TRQ5YHJci(Ky$ zW+9K1TQBP5VhByZeXQRtlH5-6MhUQn#^bdoQ&K7G^;B!~YNulcY+l!1bE~nGDq*@VkV+XGq3}&1@|2Q=1A`-(EKkrB z@XGsrw_j-9kBp38n7zkp8a$8{KymRXxzQ0>pco)U{M=MCVtZRU<867K<7Kh??nzF1 zE|=xI^?&lab6)n`dHYSp%X;HDBn{@krshrAq{t~#LutLlgJM6b5)jw-@>c)1KgV(C zm{fn&ed2q$ZX65fuuIJ7hjU8S5fk;rQjq4+|6zX>KyMueH!k(E1;7MR+b9{osIrRp<4MT z+D@J?xYB$|!(T`jz!l<&ry@5o(uRiTW|Jh zXB?x4#d@!BjVd(0&G&NH}PRK}LBS4WBEVX4b;p*49;*W+hD``ntYx5@Je5e^&UjEig!{?Ba;w>Q2=#Loo@x2@`p1~zu*zgGJ zY36=fE-M4dJ2lt6hlkA^8wfO{1TXQBQ)+Y3{~dhdd59g*6ftrHzvG4(jn(tqY`ki{ zpK&3i2-IZte-t}(9mtzW6SzkH*=wj<`*-VHbWRG3UwGj`$vdlYU2lxjJzd;vc#Yrp zB@FrY^o?tRPFEEHZw&)^?&VJZE|6rL3Wk4aBS9`pDtMW0-?^P0K6p6FI=VQMkwe;gy9Lul{s_pS>ExHvu*ts77dh+#V8bz`W;z^lCykFJZC zc#x&R%c35E*Q4u)lFKV~a~p%vkt@nqbU&V5Ha%wxfq+7sgy>DW)(T{qGd+p;T@w3X`$ zG1kw?=8^8@vhm@GI~SPNx!Go;x>i*uVz(O{OCGlxw>brLc<&K&S&-*sUY7KMy02?C zX(8(v-OExVO~H$vLyIF2%g7VWIX$$3D)zNf?TTOLr0rQg?y^e=?kOUvS#?)Qr3C+aElU?gHf{ZPJ7BLeF3G_ zPIyhrafqia%f8ZHJ=t-gbz$VaVIaxNa-(LO!hNtY@_YTEJlJe>E{K_N^XXaC=Mowd z&VrJ{dv)+9?S%AuAOyKAo`9~N9N16pW!dl`&3l--m&>NGK}BO`V}x+8^OV8q-^yk6 zH`FdXcL(rFEsdZa3Rp#tD&W(eamH)o*9$NZU1Y8UHCg9ZW8B;`h!qY#<3l%1djJ#pN1#$5%v^JF{*Y z<1ceq;|@gW|1SYL>7?{#>TOQbTWqitGM>Yuo%#%&Zoq|1UHb=ffd6wJgay)8ceXo) z*l;I(`pKt73=L#=GKmlOva!Sv^A{Eg1$huz$n35Tf#DNMvY6ZhpL_T*5ME*UzEe)7 z5{ahM9n+^J3UE@qhvpFki>PJ_o?vOSZ@k1KgMHElF+bDV&p^oW`Z_kQ1MQ4-8tHSP zF?y|e&+EsiN7quHp>tJu?lswqHu)bBZNMk`W&xzA$vXJtVR2jsq(HT~|K)}!oEiYN z767O?q^2fueZ1a8a4{d}n$LmLUOeeEko_8JR}9G6Q9d1G4)n-UacMPIZ)^0ZLD!^^ z{}mE{^{Zbk7nC}n6Q=oKFIg}FtaRbj$+<1(txW(JYux$j$vBYI!s9iiyLavuYNOi2 zbW@#OjTH1tv3i@Xl^ca?Zf@K| z=RFEnypeonolsue_z2%V|NLh~kI9j<$%M2#M>%Im90TfndM^gy%?;$MTp$SNTEuw4 zcMX;7JFAyyUVM{_Yv-8i)+e%~eR~B_4$%L!VSO%J1ls@a5uTr;?4qPmnj!q7mVs5|)e5Z{0}`hML{G&1z@YtJ z=m7}kv`sByNF;1lh`X_Atkx&%UN)`;t_}UlO8Fi>e5pl%Ye~f-9^#u%4_%oRo7?Qx zu4NV`uD2BM*d|RBiQl4MwgsfH4;Q^p0nl>9ng$%MUkQl?I>}&l!#pXb8^OUBhqTN5 zl67f3s>q?3kYuPmEGIC{JyYI0RmxFtwtyzEcWtNZs;%qZ3wpMhtKvV?;Mcp zrS+PsM^<66>X{WS9-}_J3Q*TG^u?)Da;J5%9_3CQxr$d z)*akpjp~4yaNs%4f=7J&+qEASRFinwcYfqLsa@s3ca5?zH*en3c*U{tI1dGiW$oQ7 zGFpXA2zmJ~v`1NtJA5*rz!%%vR2Dp>!^>XSa4kw0Q=6TFmyH!=c}xHRAOJ~3K~$TL zdy*U&TCk258>YnTIVbPrVY7fzx#wm7|2!Og(&wU;#DqCYDAaLNhdFjRp6v+~gT=H&p~l zIC2u62f*%FjrkPe>0!{RQ?=HvZwxVG)GB}Slg~N;|1 zp)BUsDn}^?q63Q+&*NTh59o@E)WI7Eop>){xp(sTu8J2yp4D@nr-j7HJQ`k>Rztd( z=#^zNprJflHw_y&URIySur7VBdtXmk;wF}@#KW~@bO)U|cvMPoq$429Y+x9+%k$)* z+z`Dzc*V;vKT3~Yd8G{Hej?^uV?)t)m#QXOs^YtACss^s)Jv_6Oc%9fu11=vpSS0q zok3-7p==1S?$~J167$FrgIzk-a+&Vky;nV~>adFMbs>Bq;MH!o1X*w90DM=Sx+>xp zO^XXUzRx`s#_XGg>ar4LmN$^6b)dn$tTRX4U}u{G7AcE_Rn(nnU-DcQ01D5uM_JtS zC@Ik1@aD5gZ94i#NXTZfHjXjx^V(!YWzT_OUi>E?)en4PeYQelN;Y|?bA~dAds)4n zIX#qkTrM_lB+-D^byNeW$vQ=nS+d>`z=lFimTBwGx;j~7d)i6K)}n9qe0uGT*V8?9 z3K{t)o66?eUOP3$6E)kp&5%oPxI5o1qlPL&&0oszWep1UfJ%4}NIql`LsYM~4_i;U4 z`)O^3b`aiki19h2-7^|pAC5s@Ru652Iu;oKHC9>#y^DvYa!Ne(%BI$mN4~vR?u!5B zb#x`^nDE|2RYW)0#%r#vV<(EV5kBVtLdNeT2Y>yw*VA*)-Y*8llsm?vvdJf7%y}u% zs}F0K_E<&LhNwAeA`US5+VCh8L54YKIL$$lRj(^$9SpX3(N<7iiwv#b~T?abmC-AdBk|l<3)AqnAB3L28Hs&VKS}C7q#YCflJoUcyL_V3$LULT%nF z3vdOI0tHF{A)Zem6^Yl!AAIMNrs3?UIcgM;HbD3R<47U6KE5frSMu*AEm96!o7(4& z2D3I;H%s6q_aV@xSaE2`@j^;wiWr`Y@_C*w&u2!t64sLvc*qRZu^24fIwd4tm>{=y zs@BxP1pi_P0AnY}sSmMCJ15=CJq|!^nK`~g!%05qCaRQhJf`>GdoO+R=_i}l`Yw00 z@fvYwC%*vnfNJNB0of>vt`!UjL_QgF*}X-|bKD?uSzvq5`)FNcA+n?6WuXY-Wj)XF z4Pq~^b)yC-np>~z$>dPwbukL+qkujDS8#i|hTbd7F`hF}_g;(j$?84SWNAO7mpRJk zP?OaI5AXNR@r-ycc>dwT2dUyUxB8?C9*&Fj2AEcF)zYn6PveJ$>Y&vUG@er66K5Mz z?(3Ln(Q|G{6}(^TQb>0}iBX*3ixi(9$`IzMpk@M^*fmb3o9YzCnEX4WKQ11N>!w$7 zgYCJgcG;H0{p6>gl}7i-fTFgQER=~GK-%%LppwqqnXPAa4uh`9tIp-Jdz(ZyjFRX~TN?sm@0f>@tpl7+mw$vZVw zU$60g!F+OV00!=0mabJniSe*b{^vkZF08esDlVSPb3m?`tdG_&!q#|ilGxW!%S|bn zu5oTf=*x8HZVkgViU9_c?@||G+(o=Nyp{`0+nA2s8v_VqnJ$1gqZT;o#M?5@o=0(j z%)M-Cx$G$jkK<*%?h80ZpRl*W?E!pltQ=D>?pr{vL5A7bv&_G zb_%SabS7-4Cd({eN=FVp@tjjBUAx$M+YUg+wV14_T?VVrl8w{XQDryHz55eGZL6rQ zsj=zc1wHTdbx+!e$Mg^wBh5CnS>+;4-YIKKk!oWC@?8aVf|^K(;?3TDOllHIRl}*8h&wh_j#E%X-6k^s;*(TYO|It>6t67VBIT zk~)16Hdr>$2cb5kW0xj}>aBX@zk8ck#3@+Z)Z4u#%ZA9gPi^oQ^ipR20v-}I#IQIX z0}+6XRUJGonCDbizb})i8_I+Z^AHwv(9?5eY$wVaWt(p2|0d0x+DOYpIceUq+q5Q2 zSw|jLpc4xu(h}V`7weRdJj}@m7Xyfbc9l9ro*RL}E@!(?RfQtn+e08<#lz~{KpMlTD)2J(4o$Q@;#*=Be8j2h<2#?Ux^U$TB#jDgU{2_c-1 zd)Z{o^@Q!w%eujy%Vm90ajstCk!iu)@~+zh9bxay zd@pT&k0&y<8ki_v&)t8v#}SXaBSf~M=$F}dM-TnMM8;ZX}z*K7sg9^8y#gFz$b5NpzPvu zsP29Da{4LgBcMR9y{sG`LqTW(r<)Ebc9xF>j0-tz&&oz1WrDpv5Z&luK{2 zv&}Y?*NxOK7CS4<9df2~TE^}L-OIYs#Jo8g4@OHK$#*ythMdOPPoB$y#xnZSLu>!u zbKx=H<0T#$f{aZYAO@5gKt;|D!-$Oy9+1o5r@JQ5Tb)G0Trk3A&pX_SW z3bM(?P|u}2$N5Le7QS;B?5pX)gBQE1KmFV?)*2;NN#C>+xlGoZ?cuYpgV_`j-MIZ8 zMLSE$i9=0KD%Uo^?8^UN|N7S-S2@VL8@G$MQar`IU24HHuRm z+xL{4_wybYZk_h79Uq?Y`vruGERjQ)!?G80urX1hKxHxZdXmdh=2^}(2JCG_jvR8M zonwsW@P&YvC71QOETNzG%kHtC(hl(Ck8B-Ddapc<7C5Sv)K~$#E`l5?9YBZ;j-hRg665Bvn84d?GnITJSc0NPC;uylrGfoq!d5Km)e6A?NXcgB#27wpa)O$> zF3rmh{_r+Gh$l1|DccQDFH-{o;?xo#_XTn;H1_ZCo3}Le2jo1-Q+=wsBgUS~LL!Lm zZ#QxgGa`0p7T9WhU#^RLSsztN$%XR;5Q+?$bH?hMak9n)j8RCfj)^h~T2qTDWVjqE zgb660!90pA4W$As5@AXFH<@V1JalYg1G#u6<2?PUgAL(Qm5nMo!hbb^BI9(c~2b zK%H!|dMxwob#Y{?rAD(g%Q~UrFAsG`V-Z{YILT!Z9d$V|sVd7ofFyb*RrgBM5mcd!jHFJ}@ zSsQ(kO^R+I7+LV8Ip1@@P(|Yzm7Qd5(am-X=`-VhK6XX(4B$-?B~dmRAsO#;ACYyQ!rSBf_s zuXP79W+7AE@G?xYa!@2|cx1TP&}SHd_4TLG5!5HY*LFHA!W~hs!zv_pU1Guty4`&t zy4u4UisYvzDh2gS9x&5a?ZSdmN#ect-|JEuyq=4; zgw`uxENlR|F>feqz+3gAH6bCM8{`(laxz0iL*oX8m&HqgAaiqF#|IBGnNS=dx&J+x zev*H8G-SUHEPD9CI&XPdN<6sj=SGu63bcE|g zHL;ZzqvzII?&SYB-uOxpt0EqUh%g16R4+3`2^9{Ud~fOUs7vQz);#JwF+7IJ*~$UF z`1DUoE4rTFfA{<8lTUuQ*+ljLsJLMH8}&aLw0#=D(uacG+2}u!;}I6_dD#>^Ezfgo z-VKD8^+@y8Ggto6-T&uJEgAd80{Uuf#)5nQoocnWYFwgx4^=oY&NIc_b%KRTjeK;5Z&)9E-8oOo4c$Bb9jOsxXrtu479i77G#i*GW@qLV4& z0^)Z{SXyw90q~&YMHel;!81l`d&6Uynpv#FGH zgZ25a$>McaPUMHUJ~oX<&lwBA!(i7NfYZ%9Cx?Hhej-iQ#RiV5g0Onp6=}9Py-26C~XRl{)n z8iMSe5}`HyTe)m%EotP7kUgjY=LTGXs$ZB6G)fzL6YpaF$}th%>wF!2Vv{7yB%h{F zmM$n)6M+{V!6&{~r5t_cYp=ag(AWAp^2lN6UM@_wneJ`ItCi;H8dn!=E*WS%%# zD#L4!P5itY>~H+WZ*VLW^obaIyd4d^)+a?doK`G92Ef4*wXB`dgIYUECX2`?K z#vRK~Cg!rK(AjR6oABOy@0XkHAxG?)!+8*L;bqyey#3u znbR5FFgM&7ImPuAfzudaI4Og**a;}@K0SE&U`(%ryLqxv0xWa~a3ExRSUj8Z11C3G z*FyEWk>@+)XlOFn8fHr4oQFOvQZ!rSF1G4LNZj>jSa(j?z#Kvl~*36yLaz2?)%!b ziHAzWFe!_NTV$ z;hKA>xWkYzCyUj$J4-SzI&NNEMCiVz?vXixLusb>@2$rTL+3Jm^wEcfXS^6+lThA0 zsT=AxzgafgMJ#4O4_Al4%lcd%{uUqcS|#(ckP)JnC87aIb;Q^?#^iRM%dSB;dN0-B zJ76j4Gx3mg(2(0ct&0cnDcMXTjNFCVw)c4Z`(oO~^O-(bHmcm}-)yR0lZC*+{W^tt zIPTSSuSB4zVsAD4+@ut_G;^0`a>x~%Qe!!RwXpcgT(=fZ>-9N}^Xm6u8bqfezMpT_ z?cH1RUfuITocPV({LMm~AV-KHi(9>eOm55`uTMt5OO|}+PQ0i@eub~~^Qv*~d!u#p z|M917oi;UT52;gBaj!2*3!bBtlgY`fVTMT#-B1k2ZLssLfqJ* z;j)=PWSFd}f@_a(Hk~ts(s)@AV?tQZW%rELcYgln6YpgB@=`Kdx_ELUQbaGiS{Dx+ zhY(m8N!}|P@9}CiNB+)c;C-?He%=tk1_e5-AL`c7I5Ct+qF}x1y_Kf;V!dYae5v(s z=Qf#QK2!yWbxCxT^>u~UF7Ly^)Yr|^&FHFd61oWgseDqzR2;+bNUTqIwF?-_XZ=)Z<%2F6+C`I5`Zkgt?_NXf0zAbX-69!N+Aj zkL&In!i4KJlt1`AHU_`~LotH9DmDht1w&5hxorH7xL~=C?q&N;HZP0rQ4~FAGl}8q zO;B(9-O-arIaDw4#4a8uQV{;S9I6l8+MC6*_d5(P&}n&D>aT!Lu<8zNa2EGR$38bD z3lMBlqexE3rb6-X#TSd0RnKXz2bXB$E)(v`9NDRgiLZmIhy%uGPs^B1Rg@JwNrH2% zKxt~4$4h7d-GEPN@a|dbWm6GKEcA)pD)#Nt6g|@v^w%n#BM1qisJR&_rKqH#?i|rD}6*DAq6r8jR9^Lqz*nCXKCW& zPFZv>n|3@ck8`=K@3s*kWwQeGBA1O`_S|FL2oTi8MO~T30$o4-;B`U87gN6=ouc)S zeql;H=s^KiMuYW#uU3=Q=jwfQHWAgVjjFhYK3RY>NR-Z=~kGIi1u_@{hDX6{Tf$25g6KdPrygW65Zm4VRHCfUDDi_`-OBazh z1i;ctJN(~N)?#JMi9qq-;lpBAi#0BIzPbeYAusuqYr2k7*<@-fxv95MEkSJGTj@MX zopzXkolC6gb-(zFzu3tKPuc{rQWv{*+49kpuD%pH{A2?t9ZzHajta;Zhph%{vc#FN zkKGY3wO128x2Sx<`2|Ipf?-<kuzhca}zJzqQ|EleJFQ&93!1^+CWQLM4}Xcp1p~8Yp6?lSnM-l8Jy*66f9&)L32}Z z^gdZ4k5d>)$#?ObX79*o!E)9#09e&yX^$J9k(~DC>s(Wf`9|939uz}oO(u)> za<78SWpY6wP6%{T|EfIZMO%R0FwTOekj#$LqjNLP6eKgaAx^~_Xf6GO`<)!;LdYCI zF^-ckX=zd)Qh3)zR*C1Mk3QP;Xr2p=bEsRACTKy>^NE)wZE(bx&t%c#g)p4BIDHdJ zM!m%Ne53PCB-UjkVmw(Znj^;1!}`M)F@|4u^?5Gf6S*x0=zY25vV_#$M;j;JEoX$< z;{63c(`U-d0yGiPzzLuxtJhOrV~Cj7WPL63AQZiK?`|1MsqUS!R*$F6F*^3LtuFBQ zW@M`2Ud%n}!~5=moDPI~gtrD3VJ>B@+lAm!a#$HGMQP77sc-5#2q%g$Hp*1dDn3;2 zTIOa3Pvr{@BlWOR@4wtkd1vR^ug#vj$?I-gRE+@cKX<>}#JAplt1qIw)6ElA+>?dI zglLc{SkOK(z*QELwZW0k;T6v3;OD(8;2y{AUe*N$u5BQ+d!9H%D~A57)oWQiY#4az zD2JMw1{OK9_vN}Gh0CGpp3}v1Gp*UC39L1Jx9*YN#|Fl=CK^bs_KP+b^<<)NI(c9}&8;zfk7FDo2|u36R5jMt)iRkJDx*%Q+dBAkVRLb*gYR|m#8BKf z5I+`FHwd*)O)-LV_J#md6ult;;EGLb37s;l346;R&^H^$ffm-F4LV4qbvsR4aH<`A z4T(e476Gg^@EekWW4<;IO(kRg#y9Kqy4#nx`b-glNR9-1_?g-QrX^^#;X#WDDZ6*g zmSFFdIFhlRYKXD*J~52jzAuuxhnGKISH_9L9euATi|841fn(3CFCa(kkfxErQeTW- z7KMZhn-K5Q?*M_K(ZuwD<63RZqEj8&4BX3}%Vh~G86E1^Y6*?*5jSArWAyTJIv$LJ zYruxY_fY!bZ_I?HS2oI_@||&=EoTO2d00$Yi<+!A1W*t5<4j?5b}y^<%U~IC>AVD{ zDke+)q9bw#uop=sYO8HLIe+8pZ$5tG_18-y_^jkwyZbcP@{I(e z2Rg<|N2-!Dr!i{LeV%efSujziE)br29W>&AOJ~3K~$j-ZVb}I)7da7cvlZy z`YxyqBvn4NW`aKZ?ESLf-g)Qk9v)3bTbzsrwg-ZdJGvGx$Sgq0MHmd7LX$g%|Atxr$5QIBm1a_!!!vv&wZyP=tZ$MQ~e z9KIeg(zW%^&L)8xfk0p1ab4<*`^>b4rPeAt127M1>OlLyJ_J_2Fe_z;?>!l6g<>re0q&7T-%v`)!KTd%z=3bV@ z0P;W$zW~qUwD>$!qb@szi2-vPpU81}?zXpRFKng_+RzS;xtApz&kcNYFH2q0hZ9F5 zO<@z{{GCXl?-5$8=TN91S6{846+DCz&#Cp%l1?!4gA&!AvHGS4y9?ES$p2slFz~!4 zOKA-7iQ^#}JOz`<-5vNuitP6x8-o*zqZuXt(qBJ91fXa-U5G#I=mw z8%9I*hu3APue#^K>*L+bm)iiIB2V8_wIy^Ib%SLBy9ByN`%pELGG)3gU`JDR!BInCfzLbB zrOSfV!L7AEMQW-|;M54xV{-e=Hm15GooDAHa^JFxRS&(MX^byOZz;Q6rXPGPJ>&N` zQA3oI@f+be7Ns2BSRX7LwTvN5up>KwBSvFIm z7&a^bKmE=|y@Wnl)`*NAh^MJN+JC96eI#tem!)q z-C%#=7rvVA->*AZY776eNvm*h*EZ=3whFX77pr2iU)Th%VyknlQ7tCtnYy<=SqPlW zqu!L>@I}6E8Us9xUQ3sSyz07+3w>LK{1=`p-=}V#&p!J}|Gdd&^Q=2U)I8Xv_EZ+3 z-Z}eewz)ap&B8)UJ08~m%`velcn_|7*^4$r3r={lmOmz^1IlFUCw|(4;~>1$XUk}H zETVl<>PjtV^e!HBm?-h^H@%+l7LVtTxN+g(2yIVIq>Y*^>(8$P-_Lh&?%oh^3KJNU zp|P*L@@i#0T^!oXs4Eu5&|!iwu@*+r zh)nRZd-=RCa271|P+bRVvN{(KaMBW}ihKv%Mh6>My@sklzA;0#(iBCY@P{|U^c)q$ zw>dnFjqaY@`Nh~w-b9Wu^(ya~hF(-z!GbWQORSq+i4$75bGo=Zlo5|{ zaU|2A;lvMN>>^fFcCqF?rv?s{Jn%G(AzN=@3i&`pGb1<>Pk!h@4Z&zGE&xsO01dWR zV}KUk8peOvFDda5vbq|hx4`X18Js8KHu}T#$0Z(5uF8nT_?EGWMUFO~A+?DTrIxPO z+#7XPo92k2`^MPc?7V1;(b4BJhW@F@RPJc^nH+Lm`N6M%(Z9Hel zjYNf1vw(vPDRh?9UzsSD&n)b9W1w_HU^Ml(tL%ru{Nr^+Tc3I6*>WQl8auz0_vE0K z7dH+(Gt@hFZ&)?t9p1aTHtATWEV`EQUTGj1D2At_oZ~l_$cIstF_*=dsFz-ZseAs2 z;Ta_!x_D%8x;Am*UG%c#k^onP<}k+eUKt)G9$&aAgpeK<>vx6Z0BWqo)tVy+i^=~} zi-?kyd?GJ^O9jAtANzeFcUUtv3dzl9>i$O)oBIs=nTE=^G zdG>NRjDKp9E78kF#MpD$Q)~7{^^nq1)G?0N(Y+g+DQ$J+!ZI4Vc)WD7Sg$PkB_*C~ zn|Qa^D?3eF+MZwUsWk*30mF9@%}h-imQt6FiEE~Fr?jOF0x`D;9Z9pEoP0a#Ov*O zS!cZXBdRPyBycagm&+nrwpwFA4y>o>W!XqPm)&c_THBO2ye!_)b6J|vUCPHlC;pIw zQKr#xXp_?Co|8kx8^$gk%0E#K^~uh}JHHMb6DY9v$pZ3meZ2Mzy9$9hP;Jn2XBGKc z*Zq`Tu;HXsC)(8?rqF3azwXoTl6lcJ@YAPF7tWS1@8NR12fU_-#Hzz`VAnPe76T@~ zaHh?cvNdn=C_l(b*Sp=rFW+%|M_c+Z=)>lO$0FLcMMV%OF1i%Ls`|4Ql13deT|Yw# z16tTxbjoMFH`dEMp6kUhjXX*>7#f_jY7Qog>QM>kZKN#5yggYO!Tb6ASeJE0LHDvt z>mB7g9ZB8uvhm?)CBPb!>mgF?m3Sahu;^WMT+hqP&P}G2P(Ri*W3&NtOMhcRK(*qAZdJU#dot3hQqBhn*UE8F0a}x`ktrokDDn~?@ zdx$+5i2`<1(Iswctf0gy>!6y*34pk}Vb)xG`_bJ?uE! z-S*rreDiPQ4ylDMxyz@nrhcd$QlYUHpL>*1OS@UK%SMt%DG@RS#=&M6DT|)V5lg8X?#!(B+|yDv5dFK)hn2xnw~8U5Uoh`y)deY1 zFV_`8D+k^tczHc`wc>CxqIE3XJ7v+sU;f`OLTg6IojA32Q0k_K;{Q``f#P{kX90V+ zZr>?}{L#lBl}2|D-ANB(P7;ll{0ezbLc?>EMK>UQE~@o&5Ki;RC0pY?s4W|U11FFX z@UpHq#YRH@?CdAMc6)})d4mRfiARP*o!3KWa!woq;V&NeX%p|Z_i{vHv-QbRlO>fS z8YH>_{K{=`maa8JumS%TYx;1EMIpPUVyJOs3nH~jN(p<%IFJfVxiebZzvrUbl0!?W z+g1*oWX_w<*7JQ-htRNWbvNb0wU|o9zu=O z)alk-U%|DM#s>D4A{L-kzREEQR-N?OmoaKG`4-|G2i3S^4d>Ea8C1%lVeO~sF0 z+!14!XLSaX=dy9J`U1vFdoJsFKiC5k^?Z|n{p2#CAk|CYP{&Op*~B~dvUKt2|2lW- zpL;@W5GnA$G78E>$fPEVw&FG57}<<4bQfuZXyP?lU5hwRmQB^$L-`)McVru-1hpIs z{xO+|pqO;(wbtf;YHEwH_NGl)b3}smUcnz=E$+|sEyvSH8Jmz;NMq^4VD8A>@^Z)p_7$@usKHE4#GbR2WFm9b*?yOa=UUtWENink?GI zI1A1d@CmXAHQA|+#!M{~M|i+sd$a~urU~4Y>RP- zr_hZsS^FAPMj5A?2Ikfrur}Qdipef0zUL8QQr}*=3D0W?Q#XLR6W4OV+i$4Dra`{nkfpZfBsF7|J4{n|#p?b3RJ_r9CF^0V1IkL~fp~S*Q@ies9 zb1{G-&`aGrdD$G~P$}_X*i)l%LZrB86Z7_ZW!=mAHFxky_l*sJO%Xzm18|Tyye8{| zvz%L;EZWn#DJ*81;i+kmc_dQnw2i`BI^9}7cF{LZ#VL$+M4yyywN%=17J)N@+yTa&L!0!4v0S?aVvJTnfjSeP+#zHG6H&6Zd;<48{r)2E~ z>tqw~Vl%)tNALwdz^XxNpnP>aUiCViZmP;W&>3@(pFD-J4{_5$9RLK>DU0;X#=12V z10YlEH3sm1_p%rcJF+vyJePI7DF#B5%Yvr5myMxu^s;N~;?Xst#3Mxr=!;(B;TSxZ zCHGuRdPm>yJ+$%MV=fE$#5F)RhqVi!q~GB@6ZHT{aqVM60QXtP_LZ-^Uh>$Hqc*QM z=h9H3b$WfgZX3i>jg=@bQ{|W{*VqhnZyouj+!5qBdnJ>tVp`|f?Z|uB#jQ}_2b*7CcOii3^9(v1Hbr+--rUjtm zk-6xFP2khl+gli04`-~zw;)0UIVh~{g``;b}}g*yo85pcv*5g9S@75sHlYD)YFM2^-C1jqbjX zvr!fyQ$X1x1SQpQWr}R=ce)0EBGZN)vlU$Tjn$<*J(o=ehS6-`%@B?ld)SzQNA(TR zz3dX?P<1SH@c?GAF*qfX$N*3-odN6inlF-t#i^mdUX!IZ4Y-G+pzRONH#J%PfO-=N za$ip-&Q?dVN|*Z7x#{Q?$NWEU=!Ygb6QztP zaEzy&ep&KJM~tH)1i5Uyw|iceYwHSy^va5W!sn%yXVVAlgSr^_>?Iyr_2`v7m)bb^ zZ%ugQdn%2P)MzQ?9bezub+MLllqnAo z*RN^hBlsF}=hY2XC^1Pj2YhjPv02P&U#{HaF-S0yKTu9O;1MNWni1{WOmkQ2xK99Qcak-^fL zvPW5r69e$X{g4bnTVQ~!{V;>ztT^89<@8sF@u6}Qlh237_NjnqoPe4-$WD~Gup*${;WM5!a0#PpUUT{8-}Cn_S$Q&m+1hhV+bS7 za(XUNq93c5CgYFW(HaB_3*b6e0G72>rq{{C0>G&4O$MqR;p)q)-ekV^!u{OB$nBsj zLMf8>9GD$=@Y&{+fazh4dYsQ``zAPXy2825LQ#)oI=gpOHN*wjk)Y)n_%u< zHg2BLU{mvyI&R7*DznIV_DVd2`;>U_vXr&FRgZGlxp0x=AhdnbX3+v@B3uBDa$yq! zhk0=#^w6zx_?2DHZ7iUD&e8>Jwe%h;oZ6{TTOY*N)Eer1I;$|oE?7&I#4Ni zzP(V0f_3eXr4^|$hSzlCJ;PvAqbR0cu+9yA13cj0L5ZooN`&@J!5F>xoiyA zAWWcTyfy|9WwOa;o_Z+)1AzG8B$Q~Z$-FEe(AvO|#iV87={oxOL61C zXvx2)M$goF3$RPA>&3fxB9Vd;6QG&r{VqlxH$=bA-Y4sWv+%Nu(MP=@fYKck13ntE>fohpto%Dy(Lk-f<8rL|s*!v=dedf5 zJnV1%)^C-NnEI-F5yIlBlN{2f$-U>C(_rV!hanp}Hk(gJj@v;NL!0}Sg6qq;T z7;5)_b+0v{kGb@^LJ3PIA9J%;w&cR{S;OKj zO%W$DN}p--e)ps}C!xt}>-mO5T~=WAJqaq(hPT!fO#WGeKo zK2Z;D>f_PWzPk;eX|v!P;|YO^ zZ0KD@z^ioYZH1+G?i7x(I(kNLKlc_t9_eIL$p0{D6 z!^;xEtcG60(~Vx%RVh-_M8eDR-ndz~@#LnFtoJjqPXAU^GPQ|!7zpw>c-hH_6l@qi z@hDFZ(OQFT{?)TqKKQ#afDx3pQezAETUMggYYa0x`n#v+!HU>bc#wm+?=fUq7 zH4Wjea^S}j5o0~)p5HZ*lGWDZV+n+LXoWh@izbJv^Pt8Xa1e}@7MXN;W2qD%#cGZ zc@O_sL&Hqj5DwBMewgOp`JLY>{jih~)R@}~yi;XoKeuDW;sCO;|31oE{4DUo##A--h;+Yk?ZJE9;uXhbnZX=!4GaU zx;xJ}Li6XmYz~b9Q&3r)Oz{xw8iIu3#&%xzVae3*FQ1XSPxpfEB418zD{ypb4oNoilZ4 zS_8c%%i4VQ+2=}+tnMS_qPo79Wa5qP=cr${|Q{Ss=rSJ4%SaISVP3PV# z%fvf<7T^aRP^n(%UGX<`SWc1?0hs|D2 zwt1xzonE#9=g9z6k1l<4Pa$2547x1{D{A6{H2>+J{^?_qb)fIbln|Xm>zv>eP^`W3 zhyy&?rvaG$@I-BO$MfY-v?rwF`?lpH7SUvl?TZPMv*2##KkOWM@WVWJM0{OSYcQ|I zq=f*_m<4ocgPh&_#`-fLl2aDPfR`}qgNJ(+evgT^H>bPTg(<>g3rMwahw$4DJasYe+`{Lj)f(5{kuy#>h3<$k z{$sn~a{C+kGD!Ai*-5XjRYSa2YO?~MKK$^54T23&7rkr>IKUxHa>EmnhhebpWxf3l zkC;M);ER|r*UKfoz}a{y8=>t)F6&)3AjUZ;B*X`wP2>RBr1yyV1d#%zMAw#zy|RF9 zE{7T?-o@}Zf=^G{@MxS6;1jti=jO;gVLGKXXD#u68O`gjzgG0XMg%n?kjpj>CYyRh zU8i%882z^STAg-C7W`dfW**95fA|0R-N#GeT8>Fz>>Px(vki+vX~L01&)uAh>WOpA zAA!EJp=o~cmuAShAwh+j7(fSJAH%*;%2~}gbLSw(o6SWZADYsnLO8XxvVm2PaR0ey z(~~D(r0>7`?j}#X2(x+CP&0MlP74Yz>ne+QYo{!pY}P6sgxX@P|MER-kTk2Owi)_8 z^SZ1f)E=6qh8R-|_UpbE`g0%2y#bq)$Lcxq;-{5(;>0@uEN1E)gHT&Mf67*Rko!*7 zeU?meh40pN(K)A9lO-%h*9^l$8RWIsUr*0J_k3|C;wvocSpOBRKXkmn@g6*^ma%(Q zPdD-gP#q04!jOuG{m=jTcORdt2jcPEh#^*U0S1$wt6##2!k z(7CHCWeWR2BYHh@sNThM4t$!L<}{%##_xTyY@FU! zNFA9Cj9lB zzxv!PhHSkKu3uPqcRQ%!i9cYCjb+g~B}tpd15O&UEv*_aHg&t?nMmbvV?o={=P9r#MtZY=jyV2=Q(fdUKXw{y|VgDhD&>i2QMCl+W2n9 zTDnq&Z$7@!uO`xlk$X+{qD@e6sv;#PZ4}gGp;LlYI1cgf;fsYtLHEw_Bu`p50U^Sd zHivgFos8H{3K6OQZJMjy6l$V8tWaVmisKDq((8O*PS%aicN8z>@IFU&CzChj0%U6% zm~C!}Hxfjk%S%U03p=%`>oa|XLHQ!LIh`w9#(Mc~>~iG2=*wznEajy}-cVjEikhb1 z0YGuVU9>IMWu0$5?Wio`Wh>k2PHz$8`mlh=)Arzh52rwkeS)1Y8g~B}T{&V*nPm?# zj%kh?Eu|H@cytU3QSq8-r;CRH9h%Po03ZNKL_t)EcZ9!?Ea>9Fb3aX}jmXezvKT+? zI`ViAi&G1sk3pmj@X5>PPXdD-J zGLbYbRJBY|?jY>VHkXIcm|WH;24FzvP-Ctg#=~O4LlGh2ii6?v;2TQml=f5xaO|Se#lE!gb|1Xtr?5tc$dHpDe7Y z*e6@Tx?AbdqgTqk%Q-c1`XQ!vD5a#@8p&|;CD3eh9zbU$UQ}nmXZZTT4oV&NkN)V7 z9+MA_+zG<|sf@BnX&8=&#D0N%m+;-r>rg4=K6qen8MpZdfA9y7U9x5BP35&-HRy8H^Qd3+-~at*b(U;nlFTMf z<_E=&6kClrf!X>9V||snnumSsPAxEprr^bd-pF3-kfEETaesKI=y1IoJO7tAt&8HK zgvUZbMX11A%_bEaHy@7qWR2z8sc8?x%X00VvZx0wdU)9=>#|)8V}c)_jpy~88iX44 z269>W!HB&15Uo8Th5z4`Fs9base9}b@9=7oNHH}<3@DZ?R!9+hT|6n=!`TGwJSXo17Z2OO%LlKL7j+#mk~mwKkCjG59lB2^)%CqiQFqI|8Nyu)aK^bXyXa zxezD*=#T&CaVaLRm44XsfL2a9HC6L$TvYvjM@aGQTSeNmEYvhO!k}Yb5-JA)1+dW_ z%jca2wF}R_1*HhfbLS2FE)|V++Q?A0q<=m2I53-bt zsHSGUMvd+=T!;6)&)0X(JueG0$lLGmvM%icD5KX9Ht#hCB+K_f;$4x!U+?|0K9fiH z(7h~(t}9{0{EP?BWAHAAs?Q@rA=Ibb73EN=LF;)!YbRLvHRX4l2Z%bx&wBK!?SM}Z zIG)%j67Mp4V$<%Feu??^#_MmCk(6rnJT)GDZrp%dx5n(9FP}W=rO*+rQPXa2#drsC zgRlRtt%~!XeCIolg+LwJFrI$mhE{Q6fFXbxY7?Tl*27_TliUEQaZ~FE4#;|Lq?Nmg&{C*3Ya7jF(AfTMCFY@W=B*Uo452!x2>-o07|_~}n8 z0}6G-$wbm(*~@_l77Szx@;5K@xc<{>QZgr#o^=C?9tXCX*JUws&WCy>UYozu;7((_ z=duwkc5j=FNP!%xysZ8$WIbDn$B7zv+1#4>y^$f7c%mF?L|rk&)JXpN9PSI7&b5u` z)K6}N6J2}IX~t6?y9CU!L|29N^ypEI5}7;~g!T`nDB5$orw^$5cpTHyy=>#Vc0`2BqFuMct`u4?3?M39_qlsr(6xh4 z7P!F`-hvH0=ixMU+~S$q1nq<8ui5k4!IG-%t2KE+D8lUnx?j?54a1&tdhh$+FDxh` zgt==)O&c96KV}wz>pwYV5iYE2Jb@VRH3meZ#VE?R*=iRlJ$Udiz4m%-oLQC;q`@)1Y-)-+KagfWR<6kCgIQHY!4O3{WY25O%&VceJ z{Zo*;$vY~Gco5ezb}tJML5Ty(BJ{qPOY&g12aV1))xo_ih;5us;JK{R34IfdzjICT z(ipoIzYyb#CSpD{5jl|ar%k+*!Ft`)yLkME;~=HLD|4*@23Mnu;@!!;smT(a!~Ek% z1}^c30#Kcf4UnqsohmXM%s#M#*w|i&up<92Co4Y)Sh}k6FY3V~ z|4Hqp^8s_~>RB6mhYL3cMZrOUUN+J&t-Q1eXT2fZIme6jU5;Se;;0h@0i-JsCGM4M~`Ll;ljkHVn6;Jd=HPl z_BNG^Dt1`<#En1C<~IM~AO7Lv3zJAG3;cBKCqx&%hk@BT5>~6l`eQalMc;Y7ER?Ow z0&;fV%pDos`ID*IPu3Y!2@W^)dp&0yIm9+^-9xtH;@kea&is_IPAv!LGiw>4@=}Eu z3xIN?_1!!L()Zfxp>xxJ(v1OJBA2BxfHF^Nh_Mq4p!azW>5JICEbJ#XSih%uS@)uQ zUe?P>ex3Yxt}Ey^tU8?=6YuCRg%0Tx?*OhKap-Tf>Jeo`In;PBIhS)HZKNx{5plef z&p3ZxOS&S1Re49he<^#gYcQLN%F#5-_*HgAK z4}+myWpU5Tl7Er!;$<(xfMz!$cIt>2`*9Ejd1y)w?#BaS?BtDehRdv#e{mRzgT%%9=!fTZF!t*aw51X0>-9vp4508uc!lrXY9t-4RYF26eD8nxl}Sq7=GYOmQA45 zY10|rW$KLr``SjeEaM*dP+lvtM-62T-I%?O8yELE!%fEQN)|;33%Iy-nVx;_*>bHM zfXYqn|6n?~@w+e<8Hvag-mB@9MF*g$V>*%EbIWY?NsnmsJ{F|szT9iPEQsx7vNa&s zgtNX8#Rt#LO}P-S-nak0)*79wijoAiyh#GB={W zw|M!3`+!#gwDQ)u9QtJm2`A$iBUI)Ji>uK^_a5#kFKyzTa#@HGUgC*fHfm1k{q8lN zm~ON`ScgO=2m&NS&tZ0@=8d_A&eTF0l{|ig#m}U#eC3T|P~HVb1PJJut-Z2toX`-r zqh>~0s2?yOm31DZ`H%njj~^!sQMqX($m~um{=;Fbz3K&dy{z-BeUoG1K*!5XWzi{%F4*SbCSKOHjAKs6eWF}}p}T=o5`zWg zby>o603vTdPZllgZ4}GS#5*tX_{6)(l=?4h;yj#aqLAFiO?vvVm&*dA;jPKly(W8V z&F)U>pdo-}0=z6CuCBL`;+I}}xvYaK0Zd)BMysR^u3#Zva$WDqi0To#dS-(W%6V_g>EaSSgG(Ta$1 zJV(e7lz3#E+SsTyuC0xZe4d;VW9NA3mGv$j=NCsWO9-#OJG$&tMIs^2X=#x62n%Yx$SZ!Nx0&IsFKEbJv zFm>D|c9i+?Q=^~%;?Mu$arF>WS!C1}>+t5hA-)qj%wg(VYQzCIs#8!?JXufR945R^ zohU!|T}EMqD>p=tXcKC;?_fAr42u!TcBz?q4!nP|-EcIx$I#oO0AKv<-fCLzJ9VjP zS1A78-FpQM)le-W6mr>oW;PGG?A+un0b~Gt$cKH*M`~mWWK_ui;zs8ise4&!?tYD( zR1gtkK&z7tOy0|7-Q#i$E{7^3l6RCL>UW=bM~TOY6yC+dEFN0nyjRva0^BP?__Yng za`c^ZClw$>XM+JBNKN=0Y^U}o-zf$w`50Zjt1qvs&s6(dQd9d-)?`hev?-sKUdAEU zO@a7BiKxq*>II({7yo4&H?tOUel6VQF6Ql>_nx;#1NB`MkLICkL|BL6-89B2C^tC3 z#p7f=WcU7r95AJL{|I46X-GKlvXO{MjetCw0^B>rov@GLBsw6)Xna=PSZP2h^m8H! zJY#1-@#AC)l|e4r6gWT`&t=`q!jJ+P^|DKhOjtxvAw4DXx-4GS#o@>`$z@TJm_nmQ zOpmf5+mrRmDwoxRCIO$~cTT7cj_v=~*t;lMmRwbW?tad_5t%BLBq&Lg(4+J~NT62< z^gz%cjM3OMqOk$%Vfu6OKlq=<3=9JUMluWp(x7@EiC0rqnGyFK_p!BoFZXqJ+>}kw z*{O<*xc8oOe81LSdu=*2o#Khv5bwM8WSLp4qIklyrCMift?L)`L<5;RIW18~g#Cj*{KF^K{zzR?)NZn)QnRi-rfXUY zVbTB}w(h!?gLP8hnR#<_YZ3F=->bT56m$(VIJi`lhi}b))ZG( z?xNA#M9Y|M9!*!PD+B7r0R8MuR4GVKV04L*K1sVnC$}_BC#8@MB06w>(V&?vaPzyi zcsOc!O%8Prayc+6_Hl`pZz6{pfgJW^bxyX3RBZ&G$aTj1@q7FXjI#J|448lT!yonm zf_tCZNn@llmWE8J6JgH4fU@m&c@DH#g#GXT{r`GG>XSu47{<-n4jqv~orGTkZ`gpL zx*zHQ{4NimMpRDxC@Fsu8|t`ty|6_@*|b(f!y1OF<9IoY*YRKxfG+sZsU>hgu zSihEXyw+vhVNw3^;{{k8PZKl+i?@mgju%I46P;Poh(LfJjVRTgz5 zjv}q*3AzzL50eKc%gGb> zUJBxh=f$YW53C-o$X*(Lzzcw(zy_h=F^bQA);ewmQ@ku>c1@M(EO-;`S}TX$^B69E zo{?Vr`=O2&^2Ga@B;95!3K4R3p*H?ETRbE=Fv{YyG5sZw$0(bg zGsTl6vg3QPCmXZ4UFL%s*_onK$%5Dj(_{SJ%P+rdn#C-+wDenp3@+DsSP#EEJWtta zu-WYeOQo0p^AG;u$*}m^wRf=+o(L&Z;w0P8*q5iSWMOpS_0PnAVQIr$p8{ciOYjv8g-U_gwviWqatfEqYI z13AW=i4@eTiViS2NJ^5w z0#&gmy9SXqydT>`)%BuDB;oiVda@V>P_c*JHaupj@$5$IhPY1l?9Jw3fB(PzwulSz*>0M~%0C@dE{EEdUXWijhT=}9OQbGN3Tf7x z#m|7U2mmSz^Jsan(0U#;MmP=zG*R`hA|=Bpn`Or={-%+Y$U>7tq8wumb*qu-7V}uk zDq^g)YznP5HC{R+M!2}~js~c5s7j=uVKM^azHn%QGqmx&lYmc5yY)2`y=P{mJy|*e zULWo)i4>flMIFmJm*<@e*_5Hj`=GV#NksRPP+)P6j5q<5_(;fa1I?wEU4mdWZ$d=9 zj_IQxguuJavT~1;4=0iF9K?o`Bg(}!WG~wxYO0sk)(WGtrkIP5w>4J+w8JQy3bekR zYIaA!ZML$QA+*7T=9zARRg^~EHV-HOC>((QeCsWflwtj}%5vyyqHVj3I%<@q5<&^% zcZ{->QYo(2L^4JEVst6K)HrgCSx)@4zO0h-nbJNFF;3DuXIjdX7e)bt_3q29 zImOeQn@rSPhY=Wkb;u&7n*{6V*yyAby~iIFpJN8XR9WYQaqajS80Q4ugkRBINkjO!^HKq|-A87ilJ!75o)IoerP3vL$WD+dc=23BSHC8>4onkow z7mVb+_?{QdF}(gm08sz@fFu$DD84Qo8Yzp#dAB4B&@nMJ)+npvcS{&LpU=Gf)F|6z zH49&hQIzZ_Mzw1Tp|5=vA$(-lEyDYA1qvc24MpWpS(B6Dq*FY)@s6X3YN&h`On0@G z=DAexNrxQxy4iuT?945_cC>e3w0$J6Pw!04Vq!aGWNRGTZ0%^Q`kZi%I@9S7|L_ST zWbCiTdNX=Pr3n_F^2x5xM82@5c{B(;Dys=z;J5sT<;ZfA-|pgPIt7SnxV8c>M%21xL0d*_?Gg(zhBsMOgz82Y= ztP|0VcepM_T?)@N-wsb_LAs)b96W)E( z0qWSkd*{eySjyCsqHU0YM@=VfO)~qUGqM48t-JKb#=ox-7-C8~ULz3l`5__=&x~(G z>e+)jolj=CR+w+B1tt*1)R?_YdVi+3${*&J)z?ns(ArtoJEp;XZ3oS$oVC?+y}#G5 zp^e%XKQ|F;=R+HdY_Y-TM~@$+pZxeI>5Vtu7-=n?M-vvAW-=OOks7o2$Qjj$80Vid zey1%KK1Y5Af>wOZYxVTCD64&0Jz4&2+$YP=&9s<3S@v&9OsS%;1*e18M1+N^VjBb=2PP8@_?X!!07V1G}t~Q49`6Y55)bQ zPYRu#n4R*3!2^JypM&0Ll_k>r8d2otJlH`Bv-2j^p}~`6v-^y$Ll!2*e^Uo0b-bg5 z{d#+p#0x)u)RENJUi+Z|Et(paAdRX4zJOdeu4~DF z?=vzhn8WvHik-bDOXH51LJo_wNdKh38&hJu7ycU&7MlTB`*T#3nU_Y_-NpLVsb~OX z5VMr{fBV+AO!=P_D~4x|577%MeNGK!L;zv-R2evrO>=wb)w-S5XT38msePoxJBj(| zVWpX3>y!{*i)O0@x;h#~U)8v5)0jsM0$GRpvt-{yws;MC1kxJo*}=Ec8{MaPT9%&^ z0*RIwsAsWM3lASrmPGpJMOnTF4F(4&QWj&BWv#A*=M?OYC@}vwKLbH4?aT7e(>YvY zKk@MLGe&x(zMqy<1g;n*@j5WtQ;N%sR372*$2ecXye8v7(Gln)c6C4rTqtq#* z5hE}Sld2QiH0SSgWGZE<<0n}b?KNK}mGPQf>O-EfqSska@?KNE%jSaLc;of-=9_OE zbaQojB&KtbvPk2ijL%8*pO`i1^|GH?!dRoGsaaNsWZ`vZ*-FSLs{|XBwb3Yh?Msbz z_knuWfp|S+9(X3CFS1Tveu^9_5ml-&l1R})D~s>VbeHe1;FFT^wI{3KlMV#T#n6u| zEq>qoe%8RGK|u^#9C`0|8IaL)(*+)S+tE^DC{8G-plyLjPGF5lVnPI=lC*G?c&{n6 zMWjUx6jKZ=viG@S<5~?0f%APBSJzO=(t1#>97{D!+qGDv1BH^S5!85bt^KgAmd5rv z_hLUg>3p+xWt3==MKqyIUPFwl&@`1r(?9z7is(5FE=gKkM7x+wE~eY;$>JWf#nb7XNQ+;#Eq5SHuw~liVva!Q z67-?%o{+~d6joeF{M+CD_LF_+(3Fu9E2D)EJvp#I@2ZiP##)00(*X@0W4dYFkfj`r zQqf-Zg3Z_YnX%U6sFtRVk?X8IFetd5tt!Mp;J4bOkL|(2@=!xuOJKi!C1f zH(NZacEMdgOn+Hg;ODi)Ln@~lDzBHb#c^@g|KFZ0oi0cJ@SgAgzz0q13BxblSb6{C zJj$So%JQ;X0lWu4kDo0kSvIe+$EO3+8g;MH0QFGSuvM;x4P7Y| z+gn&sIS+f+nCk74+22!6u@>pthG-&RvpW$3I}(bsk?eEvXA=jwFN0{&H`uL$WcL|j z%3A)k$eJYGY$CbC+6J%N_p|Kj%{Sh#x{cQp+dQ#-MOq#nrcxFOOvQ}>L{3RrWaQIB ztjI-TUHR|N3r#E5z`{Zu(rrvFUs8Hu@zhY~XUH*N7~_K^kU ze;)W$L{*WtP@I6G{agG#SyMWb3+^~J+`aI^yGMwuQo!a@C5$E{r_j-6k!T^ofxO@V#6Ua07{QZ7 zS=DgTT9?nAeOaE1Ci`UxbWu%0pSgbV+6a&_4a9qJiU(1XARD8%4(eZwWSx6N`%ofu0gBme*Ix4->_ zQFN&6hmGf?Rz>f`!?4Iw=H11m@Q3LlxXBzf>c&=wUJ}Xl=?Xxj7d4CWH1wBvSQVgA zPt6EXayb~3_KPoO*qa&f+3W@75do9zElIaIcIbYWPQh0Oe%y1}*6E#YK(|!HcN-@r#B*2%BDfPUf$+Euaq$%r;JQRlyk*R^K4~CIp z6K!N|jpRrb^d(+Jw2IN|Evxrz=UA*q_KV*SuFlMZh1H#09W`w!Wn8DCxm2>)h1tcZ zO^RA~aLFWP;NSp2AtGd%Akk9d;B-9YX9~!}N#>0r#xzVuqD{8ntzj`V|K>ShrVVp_7m}ph#2c64_ygw@O7D%>c%@F%uH8f`rl+j zKz0>I?v&DQ1sx{mWSM=iCp)ET{@sKM=Jd|vwC`lsO`BT7NGR{e79?;Hbl!&u`_-?0 z^@&Gp7YoMe*gi7jIW7FB$*PZ_>_{*lFKtS3vZE0HDZ5h$wj&JbP;- zb?00T?`ekhK;@#3BTiyR=aJ%lz<#>9J*R*Dm!FuV47jMP%u&WZHzO5E`BYhqBW8@U ze2$Dz96nISQbbbu{!I6FA3IAzdLZF|wX8-YO)(i|kF2sI`)HAkcldn@hNH!U_kqFc zUfB}lQ299-W!d5>K5fG&JB%UhlhsY^d)Oz-bEP6}*XCsV`@Ca)c4$5I39F95a2Ny< zsM?Mk2J7PZ%nY+FL0{5KXzP6Md*6HVmw)+}>979kuhMtF``z@9|M-vQ$yopB;-zbo z4>Y8S^mTBi4QY{{0L|UIv z2n#z>x})i&>mDgDGnF@`fFzW~IX4XMXdhfYZm83HmO}ZaD?{+wU_il$fApgt*&${0 z((%JsYZ5=ep*1wo74el!L4##2`%KnWur8xhrtwtaTW47ar9h>YMASsqy|^5`i^>rZ zXwfspNQvKLTZjm(ws>e%Z1Hd^D-PAG94fClg_b1CEA6wgV-k7Zi;VgyvaKy2M05Py zhkpL$^nnk)-#|_TGX%gaPC^-Z)mOgMU7WJbn>#h}>C>lA@WLFb{@(Y#XU6*%fAJUT zAO7JV?1u3om@?4-ICNelmDagTf)bkU7SUMJh|MqcwE7_R&})j4uC#(;^vR-D!Go*x zJ$-K~NA~S>yQH8qV)Uts-RjUD5vHhH3ypDo?fEs;8Bal87JdS4o)_Nzf*m^U=P5ou zw}>RHBJV9M)55`F-&K_Xm1oR)Pd5g{`@t_BS}HxnzAWEA*0NdHPb4pp{iK5+dSH1E ztIxIKzqu2Z8}B&9!&zA+HE4^6J7+n?Lu6OMr+A&51fp|FfvU(ep*>lhlhyPa_XG|U z?Hw$ftFADCz?KA5N|HHh@M*%7Ge>+not~&c@CEP-Fyg=c+rLfU`ObH26C1q>(<*-H z0pgo6Ix|A*0a!)OF&Zb|UwebGI8TActWY?)nfCKYPmT0{G1ZGj1iX2z7hj`z9I>Os zYp*xf(^Lwu{_IGrM zVS5;etT;G0%+g?9!U)_pwxH*O5ieJi45QagA$5s{uEdWb6w6-g~J`6Qy9emF&)Yi)aW5sNBL zn=_yyWl;@>(Ui&*7ZDdvjwMjA?Q~@?4+qnEKO*R-^=}nQC!aO%DS<53vO4IULug068EzN&h2{#k+oVG_RO64dAP!m3Q&DEdZL6aJtkxIDWv@F|Ndh#6|i>4FA# zgZT5w>)AAb0Syt>RL4IZ3cq|RrmIk0Z7e=(tjWNRdyJtuCeXu@e4gg1ptLV1a=s?loqN+i!VeJ98ji> zq%1Nurj{}PoeG3eWl_KQtVnLCPKxJq+Fb-Mdw(?cWoZD(0UA2}7W%TU?HuJh8rRzI7f-6l7%a z{j^q%0IuG9yuQ`2Ip-%Sq?mdL59p>C18&ZnZ@y{iiPi^d>^wlbh*22_87!j991d7~ z#hdg_|61JGR@<6=V?+k?biU(rt4`P-;^oIw zK6}fEqHam*SM8s+q47kc?fZRL6AxmEzs|cJzmVSh9`qrfrPp42-BtU_*!~{dJV}^m zI2_b}qQ(&$|2&X7ey36P+V(p=JoyU8_*!3MtqqlVw5%Hx6|zZalVk;kA?%m4wt_hq6qH zm+J8*k=o>LO*LSxRiD?xYtnSyWVvq>$<^t_`#i4w?7cIXd^p_693arB(4*Qe4Jfq5Sll=Z?31N4;B{)0EwY)Ob+Pj6S<@rBe)OXsNsr(4 zLU-5}mvQIAE4I^u9 z(g;DIs0WFaWO_~aHUc=)IlZ1`aI&Y)@f_LP#~2mfyCc4x<_X7g^Qfx?zWL_s>EHhK zUo6sVUoh6Pe0I1O@a~ig)iJX;7@*TG&)ekQgd?6sIe!hC3$N9(bk0PK8D+T;T7O>y z#v)TZ&09S98Ex^fW@KGW<`Y{ys_@S<-kf($=TX9(Dl-HEb2MzFdh(hmCayhxI&^%t zkAC!{>6MSYl5QW}TDF!#siA=Qn?}$&JSOtxlZp^MOs5W;vz!|YE0{46MGkkYjal4qtRxF z@VnkcMi-sZ*$foZ63`c3e9?5ui;+TUbi228kU;>2#?SRQew^H4`zJmeP4hc~%&De+ zPcZrMqR)r^@HO;i-yZC-Bz3Ez{Ys`#$rMHl?U~a-bE<`{5Y;kHQf6o^%W*O~$s%F^ zL{gRgM36{XO6<#OCc^jPeNj17ye8h4EgshD+Qwm&jn{?WSA>}ai`Xe)&wgbuS}Z;r?CHZF{)iEAw##KejrKE0jZ+tGICdCBFAZE`)UY4@=toBliyO)9 zYM=ScXVO=`@)av|SwO4OU^K?vr}gnV=ohik&EB9YKSX`uRmS3y)X9qsrXSwd`j-oc zBM*Qw%?e^Y%l~HD%mM64qPVf%E%?y?3n0zYu4IphYZPFTw_W}vc{X3z z|9cgVGgE%1=l$Pu*#0h5(KA7)%UHol0BZL=rfl=D44^aJWhV|PiyCEl_^$2c(RtH3 z6mcCfW~!~xsff;WM2t5V9%s~IT1(P~W>cD}>Bc*puifQPlLKr7L{;g6QC3?#d_Ss8 zD7i#~QTE9k{Gn`;5^uCrOHz{XIWr(3x_*beU ze!@`BaXP#K3>I$&ts%}PuD$>$O207D_O$ZppvSQ;YOdm zC-3#D9ICcxIK{*0$p~2jNk@ems#6z92#MfO66O*E;CtWmp7i-Id?9`6Q=bG&$l{n6gC)@VOY1I?qQ`u=|B=b(cQC7 z!@QviMPeQ7ijkgTFJp1D%PwxpolDtR7xCC{U?&wshvb_a6Dji7D;-gvAw2IR#9mJHAGV> zyr#9Re(`@++XO7;=%^p+O^p)dw5IpJ^!{nEq`rOflb=kV_{1lS4)^DO{^yo@ z5fx+2)O^i`dZZ)}{JpQ8r*>rv+3ex8Q9AJjCGh~^xf6f=eM zd9l{d<^D1lFZjH#zxKN68WSL)At<_YU<rxbPD^U zm^tVOUkmCVbd22*-kAW~Z~Vq@q%VH)OC~6eOpJYa`XWYJy`N1KSN0*k*O^YHn)uR7 zFFoNxCDfk3_=~@2|NF21`mc=~(PSMVFN9jKywRGf(wOlEoaHgumzAz&6N; zTdwR{)-#<4P}@tRl_G3E^D{qV28$1b=!y%*h~3}+{oju?AdA$C8ZW6>CCH@EDDYa^ zn@v|Z!BxiR6fDtc6pf-9eKaK>hdB`BvuISsbdJm<*0LkYlLm=Cu=j(h+nfX;AGe z%3Z#)vXX>#4uR9jX*8lCs07S%Md6Q!k5QJjF|UoN{u-8OWgi&efI{|(A)S}i)R@nk z&V*4id212ZNbrhhle}P}y=q`oWCU;pg%8&4e8$R$R)@;$fD9@Gr7wT^%jvg&`?u3K zzVT~jw7Dz>URLk#kJR?Cy^d$(I4ZixjwcguTe6j6hC#gh-S2+FXoxlrF8uHQ?(fD8 zVc~n01yX#t3ZqAL3S2mD)X%;Aa+jfW$Xg>w5{VPmm0H_seHx=~5qjdalvfWEBMe`+ zJD;0zeRkk5_sX$4>B;f^70zc=W?7K)Y~A$Vo4r*dek{k~3bv8h0#N;@IY2P?^<-Dt z>q7!JqZizF>pV-ZzYclS{}|4+U0L%{$2Nn0$dOi8A78`a&N6<-C>vQqOlfl%3`m|v zDk!vu*=A-Y>J;c))NybM=UOeRSqoEJMn6vAaO8~+hbSqvP-}k=v zJ;BAmSn-;R~ zFcgsnO>sV`=A(Gc_u}e&EpY%MmXGWJ;<@24on@hOoMNh?vWO^)Ya+XeHG13_Kq(pW zbanhr4T{g{8e**PU1Y*VqbzG#{5whgOW%V=l0Fe0Aw```ak zT3&hOl_#ia@PUyQV9_vc9xf2=9RN`HAUF^dbY?U?+d92x;|Ayl+`Og& z3H)&M{QH#%TmthX)~wpD$uc-luJy-UkNC*i>dThbwT#7AjJ}M_@Ni5utwH|uot`So z_0l1boy6DT!^u9}zKODXKa9t0fGNAKlWla=Vbae@<`Odx1hZfL)n84&`J2C)zWBv2THOnW-1W=Y)|)NP{uox9@w2W_vbZpTEp+As$IL4U)ttbA0e}Dd-ycn9)-yC*_Py9|n;*D) zcSP8aee7ey<1z9jA*u6q>7_NYtzpGvlK!vWpgxF0S(o`a=seI{-DT*TwFGW74-9K| z>P!IL1L;r@`mhJwzX%U zbK@#VkR2d4w>#ne?Bi{jbF)H$grP7Suol<()`;6kqn`m_7~AW6AJ%AzsSm~5L(5#B zpAVitH4Z)$(TGapA(KT(0rhEob)?smE@x1cLZu^ zggPXy&ubAy500*_LA`>XhfYEHxFp%LmgRNvxvLXqHbl*0lm#R=6cH0-wm>JwtbtAl zzl%S(Mnuk6zx?I&Tfg;N>1$vAx}m%;_#k_4KW^qo30C&YCVnz?#5CH@GKVT8$vOmN zyCD$37?IWS9w~*FufYNQg_+CzDo5{aJ^Mv8lbIu_>~?}teGE5Gt9>6^d( z+v(ST9H) zG%VDy2>UQTQr`H7Z43e{B$MNN=mTmkr?n>2F9IFemHL>PaD2;prTdoF-1S$JA8<1o znf6hG*Z0v{McX`V&8Pw$BRv>GtWP#%kKr z?rS&9P_p-2GkL;2Gq~K}iSx23r+dlp2Urb;8 z;;T+1csdB`RmBO8t0FC~esOz|V0+jS;H}DTWh5 z_#D(Zq7%jIv0cRXVEWA|8d4+iKB%*)Ou^4iy(G+I;~Mb4*@M+(Zj9Xc4EQW0cEHe) z?tc2ypSE(1z>#gcc>AqGAkaVYoDpEMt^i6rnZnWX?bu81*_ILhT>_UNZE_4D1}L6e z%OsQcEAbylUGX=JmOV2<`C6;dcwv0FQ1on>N=KxNDKFDX)`?nIsE6*x(|pxDBK&c& zbS%mvir8ebM;%F$dV%`Gy^bwCbzNI3E1LY95hChA6RKEirnzYN;)CwpXqJKg!N^&! z+JnUX7%3AK7u!HTi}abZC@5-O)1wlZFUZ?W!LdM4tJ(ZV9 z0o;tn77bBbX55xhJhRiY7*lz3-rOxE0ZBhQ&xW#|>|ARKi3bIM34gK^4zvxUQI@?e zJX8($T1@K);myTsvdCxp#9E{YiaXmQvrVMAy^%9K?Xbb|())&3NvXh>wiS3IsBl1s zv2u&v){H0o==O2iw@bReAo7FNpFB$USy}Bl_nIdADv!B1%nWJk3#*|W1tSMPc@-%f zeUMf7(V9glD~nOpgvjlg6*K0`-LrI`@6!t}zB_&5Q=dw&e)&}!!2@ma6n670G7y3P zro1f7M?W>8b6PJhfz^cUl~9=Tx=b|DDhe+(buB-A)Nv#g`B~q zyqn9}001BWNkl$#oqxQYu4gTArNGP9g=eMsVXl^~q0mZadnB zbx+SE)3JS0EM06-ck2teT~;V|C-}@zuFOD@`W6U8&=8fApu+s>(nJKHX4F=kA@;iM ztkaUY3W0SDrz!M9&JVhe9xHCLs!Qk>p?<>dDhRHKuzCNw%WE`8X1g%CiS4h>1o0iS z_WMiUd6Qf%eL*_8PX26>NfrWJh^nYpJ371@G><=wl0A*;L*sXMUF;lVcSt$SfOhav z?*UHGp&G|qRY`U6rNSxB6Gs1HIxTD5>kO1GmAD|6)+V(VR zNo}tNl6?MipG*Jnz3-*}`9J?;3~q3Cl}IoTI-Wa#Dm+UV7>t(VbucIx3FlQc%EBmc zUPyJ+=T9dHW5;U}6XCOHPF|^^fyC^B#09*j3Y|0CGkP(Fqyc8Ec?T?)YY|& zjTmrcn4tq|c%L?g+j(tiq)m%Y`_$mkr(_6H;3}I1J4o`>)eSzDzV@}Rr+@mV9~x^7 z&k@gRm!)R9dIE+Aqh(sml^EPnqqQsy0Fe*1EQ}d{RAwg03^c_MG%|7o6W2i26wzm% z6-MXS-q5s_>G$Sa;9=nC`QzGg4REr&XBY26p!6?r>eaQp+VQMX;iH2>{Y>qmnZ@(0 zWsGK(*Um4$G=1iCRQurjtRi>1$(DQC-tv);eB=oX6=??^8dc`;@HiDh>L7bq1Pbtd zJPh3M6h_@R<$-zuo{k4b>rY%-^1bS*zAPz=>@p}o!}CC}QR_)w>*hO-$Rr}Mq6Au~8mdxR@p+NTfAyw>$F^>gYxX!0OrbBNNL*ga5hM0r@ldG|8$SeI3%`d!cmN05*5Sh- zVWFe5ZPt=WrZbi~t<##0rX3IN;;Bt)^9Jh0FCtOH8*UE3L8rQR1M2)^@`UA>W=X@$eZ zG`sjJ3#Qt-o>EmInAYw=lQ+p4i)f@^;&J^X7Ke4+E@8kCTXChzCZmtDH;oJo4s~~t zz0I9{bBUhgE?(`0FF`Or8s{)dZ>ICn)&s+@xQP5wkE_ZQ8=jrj>_i0NS%Jo}5skm$ zo$+rlT1?$A1!+OaUDKHv0lJDnPfuLtiXfX;N_BX$CVPB#(aV`>Ocn;v9Nvzk z0lT>lEF{|!w|d*Bj@6g|tcy~G*ETP;#>dd)fZpI$+QekY$tf4wVB^luItH1h{^u`;#{c)1T zU%Lpm(OAGC2V#uWlC>=Uu+Pa_mcS6chwKWkjkAOIqwX%8IMQ*-*-(0jTE)aQl=a38 zqYc6K?nKaIMh62C^kp9=;qzvF+(ZQ=2imHgw=%`xx!?>D6-KTjo{MiO%tF}Vd0j=b zN*ziK`9igq`GUJY2l*$wjzZ z-wX!D!^>FU`^b#WM(XaL^)`;D+pTRQMXz;|FGk9=bx;idA5v2TJZ$;&X78)0CcSh= znTw_3R?N!-t^57>J=1R9w-H6mpoix31nh7)@3u>N{K8`!pawnxgW_t4rSv4Y4j9kgmXvCo(S*1`Ig@y|o%o6k^yYV+CIvl5YQm7LUX;EXM z<&tg5(ArbceGUw>hQYtzj%%y-a|Q;PTuU1o#P_~6p!!0qBAWrYQ2;-9>&k>YOs&oK z3{hci<#4_hlRiX~5oNou8%u-Y(RLpo7!PqiFX_V{`AGWu*S}#4qQCpy|7Q$tN3evg zHGoNI^B~nkc7*55D9fIz)~eh=gDA>{%dB0APAh1s&z58bvZp@qf%m6ZUio-><>Mbu zAN=6YnNkCK%@;%Xd$~cy$vOruXdu(MH=*=tR#+(-zwk5Ydek(^mL;ff@--ENC6{_; zNQ*o4`5O4TcSV(6Ry^vjbN|d7dkK16MTX*&kTVo;Tges0LqTc-qeYE?|HgwO(VvD* zz=0%bExwz~vcfw9aN;JfCfZF!Ci*QN$;>B<|AC4vb3j~CIoxyrKgYT@&t6*4wKed} z=MP(HV_7bHVf`jk46YxLE}pi!SMBvpPoX=B;?9Q+n8pHNvMCKymgoZqTC+#gJc1cW z0sDjVF~oD1qiJmps%2JAA0QeqK@L%|aUof^696W%$PSM=b zTLxy%PJosoC{4OESRNp`dKMLcRIsRL78C{SD9HIeRG9A zcxa?F_+5&&=>zO3Nw4v8%F@F+4x?X>u4RzoSp$%m-$a?d9VlV_Mj$fYJ-hFz@M#%o zOHXm@IGCN*cb0l_O1~I*lU7S}P0Pt!L$-dQb*7WHU=)y3n&2Yyp4|}Oh35lipVr-i zr^v@zsmOe;QUDDNx2SMuM)0LCebF57pZ@8ejzh1~p3Hg}Nst;Vy)R1nWMKovX(~+> z380W832ua6zwZ~5yW#zw9RcsZSKqL(E+e|-Ji8N|t=@w8-s}V%KVu%7 z1gUZ|qbF;9j@g|ot$$$vf0WjNLr;m>%5=aQ#2Be_%W2K41&gip3{No~-d7IBFfHcy zjXbo-gauL_cvpZ9@OUsz=sFR~hoMq1yon-&ra0N>2O*ryu`ezX(u3QT3bzqmsdv*K zz-f5tp7PE5VG-@&-DOeC%UWMEnXVFAGs`+Ro%06R!+>)dOQiaa6WAFtOnTy8XJt`w z*T#3X=^nPY@P4NBpQhqH`k_@s(sitGlkMr+uDF-Iwwkr5VQ)ycnrk3Cy3NC>7=ao* zc*p1SR3)GaFm5Pwu-C|jY)qlh1wT4d~9dL zGp-l=?ELC{>gwlof}V3mdakM|zJrOJ0*$0vYOtiDj&aYrPHCl4F*+i`Vpts-HTZ+n z7U?k%L_}Z?08hYV@^x`o0Tw_y14i4N{Lea9Q{mp~xY!!`UYBJ%Tun&NWsEQ#_vkR1 zR8iz38KbXUbuO}x*j=dVzVt(~U-mx5<8mtW%KA{LWJnacxhNXn*Lb{%g8+4;!bp!u zeN-?Zi8{Y}-y*{m4>Ah&@?ekzPCOe>2dTAs1n!VR|Hps)FNFmv zesC4aXYXkrwR?FM)p^9%<&;bkf`_KkjM6k3ZbYCHrXeYK*d1*)(6F`18CS>F2H|Bc zhc2S7qR&s!^E6so9h+E@o)8u0ig|9O0|13Lz(WSoh={8>w%!;DeBn?~I)fL@2(BUD z4ll_JJ@G$y@g?lyR3N}uDy2smHo+GWLQ@0em>3`0J-`dp$aSWYiwq(dFWDD9gWW{x zpE?{M%7v^dlSSRq{oZTd45YVq+FJ_CjdGYzjff)=)M0dtl4G7Sjh1?G|s+iF5!aTN85o! z3QN1rr-2e<{0}Cz?FlvU6o!i!wR_NqEtkd3C^Z>nX9OWq1)pRMa{6 zo8F)ByuN7@S{sZNnm3>Q%x4Cu#Ghdbp~hMcED>X3`%OQt&}VOSppCijAi<=0MH`y6 z!se}vr3~Z1iP(i5)Y~G(dZWXOqdvO$0KKc!;crBMW6DxG|2Ov$H(tAWZ*RzB0W%;X z99kPLAZHYV3ts;unIdXe#HfqV1-nC8hC%_Zm~*+sQ@h0}chxC(%?AcLd#0zv+2u># zdHS}s7QXQLFBqbYi1D58d}p*(ipZ2CA$Rcp!Lg%P55VY`e(AHO`2`9j92}h0+i$-! zMi!C!j%Q+A?;|BrNiChv-N(+bh6JrX0*NCFDzkQFDw_nfDS>swGkX%rTRTfWt#vw| zM>k^0on2=e7HaZ)o)36~l3befj~V%RJ-d$=#?LZ3DAmQ`0cfV(l{$|id>R4b zlW0$_8Zjj`M*pg%!(gy^c>kgjpk@Y$1UATizA+F32WB`ZT>F|+yT`-4_xkZPR%&Q8 zBnZ*lU-#)90AgduYaU3rI!BFMyx;RM(EG1LcM8s@FeL_s?tbr%Ae1Md*4^E~=!*!I z_iW&ux1XAU{PHhL}^k;weC68kJLF=j; z;qGatr=h1wRb>jv>pRJ&hh8^69ph?rI6SPl_a+^>dTE5(xy{--X9We199$Z9lJdlq zDAzt^W$#(?XvZjbxRj|>Ndr{kK2vpe7Lo&&%ubHaglk%QcGqx-Tk^faOF!2`5px@) z7-Sf@$0%nE%zFIzaofWx$>_0ifT*>w{?w;_A^pzp{EpSF=wtDNM>Yt@_0(%UG}uYY z()U&)WB&J$5dpGfTtH0NTM}n!(1@LXk#&(=1J8)EZEegFY)D`z$Sm0q}U8T3iN( z!rLk2_}cQ(zxj2|Y2>k+l{f7;?o@?jZ$Q`OGDhd<0b#8~il+xgz2%)xpql$O4ojcG zT@GoZdiLTINCw5HHbAlBj>u|2r$a_yf_=O;raW3tgHkb2rVCuO!H0#z0_Dx7#MVfbkAqW}@lWmj>mDghhk1@Q?dJO{pqWH0 zAq60^1;P9j>T!M_&j+Q*dK*aT(J+dTs0l&)V%07X?*WpMV75Sof z(hsJ2f0iDgejfd|&bd8GORA&c&swy+?<*oHb7NZwU>tIjczw+$JgUi(QXTOo<&`N| zu{KNf2@LW_i_3!|itUIV_gmWUFFk4?!$40`9uN&f|5kvmR)^!3xdq^|_wl@yg!wuZ zAvtE(r+TKoaclQR+w0OY6a7>`q{>pVm}w;eqo$F~B~8g&PP@}G2^tchx?JwYdmb~Q z-6H9_mXX0IrO%>es_ABBKeFFvb?_S5IkB_LU<2PXUN57&s&OcqT*A&LeO?RzeD9NN z!KdMCz@o7!!%uBXjXEO4yk4FeGj=`T@hj(Jiip(c3t#v``r6mNW>FO$?WT!2a6_naOkj8vbL9d%7&dm%!5@GMo7W>qZ!OAM>biOqp8Ih%8VryI2d~w1 zUiqLm8(`>W$qjpx8rPgqQC&8*xOxR^+EU1Znh}_Xgp4QU$5v50+(jz3V+sU9h$th) zKaWU`77ocGBU1<(NvzGAPucLau_Q!Pbm-SOvqEWXOge<@LCuYMifPjiWC^V zSrEQQL~6aQL0wffRyNYF)v87MYb^*>EnzA`J!3w!d5#{bif|ddSsz~M(aQRP&z`2s z-8O2C>B%lbJgdkG5FD1p)e`qGOzj`cYDDwe@TkMfrgQ^t@v?TbI3*)?@BuVmwLw-4 zC16_OijH0|GiunqHNb*B*nP-l_8Pq--Xqg!i__?I#b@?wY@^3Z7TGH5hdk8V?uLum z-pqgRyzI~8sIv7PXzAV$|wH8+FMoWrV;_-L13$g@t7QVJFAM48Cu_Jvw3&1F0zNR7>eGwEEl4gfEv4c?;O+t z>}CPUg{Rtf1A}z2@MSD>J{D^Xsd8!o2xP?Gidy~OStO#j4{Kh5nEbMcCgpe za3*Hh*gyaSL><1&DUZXU%G?@W$ACb;583M67|jXr>HX4cMU8BF$rue>l1D1`I60!W zdt0u*KTyze*w1?$kJMhdW=49@)fk)1MC%`|ne~~g@vGx*0zMUCAT47h%N!!mbF+uR z0y}5nxo}qqkarD?6%ig;L#&jYD3n?!sg+K;DEqmX4-#1W6 zn=)8>TA6*hlQyDxF>0(@gYpB=n<*79Uy=CK6eCXaiqUUm0x(_#of`}9yUh8#|7z-Jn;qnx>RM0oG*Cp%0i6K;LEmm|*hjF>L6 zFPtZ7r4KGtH~wy@c#pj1(Pm>dll?wDdv-ZEG>tNhFijRxQ@mScOSLB5!iM>nhH7+* zWt1A!@tU>=jv|7l*UGkdRyCd1G9sSM8psv#zt!RM^&dZa+{Zcp_>cd%(U?@kSW^r} zNrFzA-&c|K)Mz!0X3Dr|3q(I$tlfB_YB=hdXoPw*(gAIqzfX@2!a$F34qU8rQf6Id zP0gse`7&UnB5ACMoauS5kqPskOij^@%2gi8nmQAr_jIa9jx~z?9jUkNAP#ElWgdysW(kNJ2-4c7x*4@??yRV&)dM5tJyGs2K>!>& zY-c|&H--j-;e(&Q1p=MAB*?lP>!RvSaSY7kVP33`-F+inPAm16w$7JDgdM^Fxuw(j zWPgkl@$9J&(-$|IGRPUphyIZUTP^H}F14{RXu%d(-x_d#h@|Rhs|b_z+0oWzZ!EiT zie{KWreP4@K))F^zJYW=W|!_%aD9w!S`KNd+(Kud23{_spc>ma2j-A^n=aFt<>^FX zwB%PT&6>2g>KGm$IOG65rZtYxm%11o-<%Z}`GuA4@mB#qb4n1s%{YH`i>ixTgN z9&Vy%OYS6harTimPmG*AP{L5O-Wc_)Oj+a2SA)t2dRIE66-jCorMfY?CZFyx@4fc) za(7}x-w*3iy2|VOVeSjGdR_JOoj!sHU0ZuEux{Lgqb4@y6jI01dy3no%bCC!S0}_9 z$aZ^^7LP8~B}!}!h~LN7sIV{{b^|ta=-OxYgZ@P}tAyQar02`Z@HS(gh@jePRUqT(WR^d48%J?#V~`aDG_B(s9Qx zW^IZH>)9-_-F;OJFVZ3Lx>jQBP7lpv-6tugnynQf5M4WCn$_u9<=M_v=%uLd)3MJw zr^tH7a?fr2GNc~Uc+D!|GAj-nsYwoc-LRTi3hYjO4$S znzBXWp7vRK?SsbXw;I!FEoN+&r0mhYes_q&BlOlvzef z8`=~t4gNJ(>yvg^eMwex$8~b~lg9BxU&ge^a<3*xzNTuub#w1^_jw#vI&VGj)%&Mb zQ;Slm&W|dQp7W+H^n0@)@m1)C{L(Zv%gE=5noG~JEt$8CxKvx)4kE+1T7W92I zMJ<6Pqp7L#IC-O+3=*ue%SSbT={Y0nrZ*&oK3D{vdL7oA{9rF>WY(HRJ?GJjCf9iK zo5!B>-TjE3_;GIIQ((dl?Q-h-XHTmg>ORF|vor{IgGYStQ8VSv1S-O$S#v*(w#V!= z4+rYrx_4b(`;0I|WJfknn~a1}(tI}ExV=8ZGs%;bung@ZZry8#L%51cr5Y}H)Lk&G zE9fs|@#JHw$5t3Xy|b4FTr$n`z(~WMzt+~tX)KJCIX~R(M6Ky@-&T&~l`*Q;WHeMk zE_M8x>1m*-2U*nVY&65j0rf4B+pH=Vz%V38>iZueEIk)K<~y2SNlm#G)s|noO zM8f?%(0*W7sY7FQjYzI~DUEzp04II0N$P2G|)D0puU;qG!b+gd<>JnCcJ001BWNkl%+pU+~54LDe3=f>MeIrPT)T)@-Kp{>W7nPd{p=GvGeUdL8H zH7uT)kr|FzUlKTugW>GQ#~L*U;)ABfi_C;;bmjMS$V1QlHA8HEo^4*(HI+w3lx7Xh z&$7Pw;(I!*;-Cu1?vOj)Z7lB2SN$I^k{)bXXW_3Ass{GbE<8|8w??G&52XeFxOwYo zOwm;KBDsqufB{Wf5p^`~XJlveDD;wTu5Hj8Y8eCtsnW3q_R zuqAF8vQ&NPL-%Z}_^(_oeYISA(2`=(<$ZD-UBxy!ur+SWe%>S>V^xtj}L^@jaauj70wN2Qv;>5B+@ zjk@-Vq5{8|QZ4JGcWFc%H>-BxvFyYLd*8H=-l3ATdEk0vT)XjL+NRD2Is~+r#Ra`e zA2|~*sJhA9{l(@-L0~v!Bfdt`w!EL6h2(~^pyhJvU=ku275!mM?|xU`T#kv8x1K)j z?G|htDANFt37E4%O6-)+;h9q(0sw;wk@xKSON%daitP|yFXd`Y{o%4bWH~vJ;tmo{0c$6e*nq4GF+T^k z5e-C*tOk;U_Lqm0sqp4C-Hl)qYj2IZ8l`s;4dfRMdq0SnKcr+Dr`R)CyZ$tHTG?xu zC>e?Fj_~$CF=~fQQ}i?P%QjM zO@YsPrVMJYzYg_{PlT+?QN6K0+`gxVsJHQS3EKO0S0~F`E5b#*m)uDK7d$Amuxw>V zPxZ4!5R%i^5lJ{BJA~l4?72{xFk72O4_otrTstrrE-3S0#OT8R=Ha3t-Ft-LLM}}w ztMr@ozQ$UP2aTyed$k&wPp)yy!>iliwS-XzF;h)d?&m!?8mR(M)D^BebLzyBCM5f_ zh^+0xp{4=zxftq?e)Zlnt0ebS>rk!hH6rIwvZXYocr`c;hvetvh63-NCL<^jJanW{+NMbXG30w5 zA^PcU_47Ax;XpL4_{2{qAb@&#w%WlwZN0y`x07OA(D~V%on&$?NhXg7i20LhK9pQV zQq)qp+9gp~!`n0w%949ZaZdJ+8VWbRKf3MmK6nj{bXs3(n|X zs>jG~-8moWR1>^8?iwk9C8Y)xYso6~L4C+ow!e)@n%X@aQ$Bt8@diZbzl2^IKS$Ga zV~9^*Y<)*ATiTv&4sLZ4Jx1e7sg{n-{#_gEF>~$Ye`PB)vjNM8Gq`iEl}?y^Q2nWD?fI;f|L}brRw+i8szr&^!PNc z-%p9twduc3%8!%nT5cKUaVJ?3E#rlf~v(f^!#eMlt? zO0VXzG<)I?i_A7_s;B@CfyaH@59g&y8&JzBBGXfGqPNM=zusLX1OcEs*KJHt-QLc+ zy@m~URoGE9R)RoW`5B2FGo7xMjdczxzY zr%a~2_m!JVmj|`hSlj)OuLB%Xz(q?JO>?IsV~gqRHTkSHBT~By7oCg6ckf4Q8mY^+ zPd<{U3LjNiR3};7l_V8c0F{}Eo*kaq-YUwzy+8R<=;JMq~-?tFIlTk?>-^lrJ9xVk}u&lA(iD_SxbRZjI%( zyQcC(uv4RY3lvZi{~Hxl+|k`S6D$dTVWmOshdIINB{)%FyJ|%Jp7p1_h)@$1;K`x? zN+XPEZIc0Keioe`8mm3T`)hi#i=2(lS>gd{)N8I0WP4g{G|W{E;T?Utq^ljKbS|fK z$;C5(H1>y*;)VyMEenk%+Wtt+-#vNsFvqm_w2(Ykwmi%M;=R0|tf0y!N*{VJv{t5& z88Zn5la?z(`b8$2vEmh4pqlIBMS0 zSeu$6gpByH^wWVEVo|$vW z=@IJHu>fnXL1apbo7p#lPjI0H$o}kymFa%dAqE>_@7J1rc~#w6GR!tX5~Oj0F};7= zbE2B|yO}CRgj~T5Mfz8tIO-*UBjKe>z2KR%WrWCUXsNL8l`m8Oxx8S0H)dW)uy|5k8`Tc?*}Dl zab8LgeBkGarBVyb!10{+Uen9r?azy=AbE59`o6dQ7gv`nc{r!X8%d9+?2RnL$SKsO zltCqMK%-~cgr7Nj!YLuz0y9KwvTM#ErdEtJ)y2+w|Jb2-MB3J~3qx{&TDw<#_SRE5 zB*n@7J^N@!9>gqK5X7^=xVjh}Xh1vWd!~1-jj*C$ems(_dnJ!i$Qv+v&=-Xzi}@eOwuCJh^{lW>L8Q~#`K4tlzUo`L7;d<&B!$vM3Acw9OzcLeGU@$ zpG`27v)7x|c%O@)!=t?dV=sMzBpqmY*nBsQ_l5HdBfaXEcx-XZ2_}*)N_yAhcMYjf zRnMT)q7j1Q{OswS(M@{_d2;<8ugyeVu*!A;Fu3kKt=9|!EhS6s)+sNF!)b*6u;;dC zW}*Fe4I*gqU}tGRRpAC)d>+}ThQK1Wo?6-%AvwoF`dNIJQ+K$h{V zaC>0uZMIx2UlCUrwRdY{dW(*bpBX8B7KzgsrIXzEWNp3Ti_Q9bQBT{>NOK^h21PrK zrW24@Mr%a@BZ{yQOv*ubiO~{9$MjY6_Z+5bwC?23D1}Tnd#Tov8oi>yyx0pL6oC=b z)$eJs0hL|vVHlder#TFFP-jmK={aqll~OX2j%ANr)FB2fa9JjUOV>N}$luZ($nh@g zvM4}PyAcms=SuazQz!NB^FDAylF{^H!v{So+jyUFr#Zl}QzDcZLOCjP&@s{&Zy!JE zPC(oYMR0f4HC<@5iiyy;&<;9D_-@ z^TaW04A9gD9hN?bujw#YQtALUKO>5j(0DJheXz(-iGJ2yhFvsm-el&r1_IDP_17+% zr=<_iiYZnQs*aF%7Idshdw`K{63(YOqShEpl^AJL7+cbIj@BYckhr7KF&$|KgV!0# z*j_4;(`@SWKvO{hgtzq}0^bi)=>287BFRL_Xc@qRIv7G?2Pup5I=Z3R)YIKFI|MyD z=yRh=cT%^wcUG0;l-U)Iy~#_(HgZS z0YMz}jmyS7T2MSb`BYPO0XnRev|w>A!#b{`~IDKX%zpHHneh}3sW~AMQlHpW) z-~p!BI`q3hn7{Aq^-nGzO42~d6Exd{A|7vqUehANXhpoJeSY8OPQ;OifuA4Ve3h{< z8gh~zHvjGtpHIgDJD+-w^8UW3WxFtlBIsxL9*&^7x}g&)`sNNc+}YY-HgY-~kdZDr znAL|7sw-p^L;V5tL0D4EJgG* zpDO)XByf^Ut{_4^yT40M@80R9#cA$aDZ;O1yQl*}UD7nmV8H}p2w?R!Bb^&N)eeX8 zD|gq?%U`~0!(c!g%v`DVzjq{h-A*{}koS#_zlmQMUqX4oRqKQWu4<5s|_ zTv>aeWDgA#+F2-qn%6-1QOB+Tral+mb6$%*8#l(Yw*pzhSo{|Jrv#+F%J9D8I0|6x zf$*}4bTG=1HTJXkf+&=WEcJ=rF-aY}3yC>Pt7ZwLW(A5!M(7;g-pa5=%wA8;mV+CB zr)g%SQXebgca037kvfN#LzTe}HE0v8}`3A#%#UZMoLk>pTEB zNmM5ZTDix|4Srijqh{ff6h2&!c5mxhU)m>Sh9B=+PR-j*_< z{3Z=*zCK6Z7TKts$h&nl#LXW7>0-)*)Zx=2uTWADwT2L@lBj9s0hk^P|i15~;^KB4n zbo{rt&N7Q=d-nY?{GwrNWNosdvxdGU?_D)Pgw^}VGbKHu!o>v`X7^x_YA*9W(ZSQu zHKmR8M5Uf8l6>SdOeer=*C?z;t(4J-C#{;ND{{+zRzzK^syhTZ7Jb0H394DFAzz1x z73cvl(P>_7kSz43X{s4LZ51x8jas!jS_bz7G2Fn2juSvJX35DPGKAEgJxy;z#ua_g z^KCjmKKuJj{bGuV;r$@UZa3ef-?kqk`@L%?u?1pC=02G~x{|QDrg1WE@r{$fdmp#? zgEMMia&KMq*&UJjp4vANz&_dfdEMgO*elB~Yy)^>_L?XOs&>3E3ncJ148O_4Iy4e5eU; zU=1>^YDX zoBIBi6}VxI`p>u0Wf2nRjk}ddUVS=Z+hJVH6c$gLj)#;foTe~D4Y9n6-njaD#q+6* zO?SyT$FrcbBNo8>)kM%s58gF2HXbzPzOpyZ z9%o{d70xvyy%KEbptasrhM4WVZO7G(b9LpcJM|pKbE&Pqh-aw5alW~fiI7*B5=zcV z?)T+k_NJhvVjj^6sH4=NqXwFpE{kc*^4|37oZ|j2H$Sb=r+hS_` z)9Y3%BDpKJIvWW;qdP`(P}3kgNlTAKbdU{^_QMj9L#?fO*!3ElZ>j^2jqD}dZnTjQ zRr}}Y*Z%0ykvXFWRLd8Q6jgff__sTkzqL_5R~do!*M7P8F}69Zt`UMIK@*hppg2-H za6|2_=4(EiPz`zZme7|yI3c{wrI$dQ`PFiXpM%@=dP#EeQNiP~@i{O;9pfWtbrSvH zi!7~5G6S3h_es*q(SWF*Pb02gZ*FDKHCJUWDOFIRcfI-amBdR z0XZdN+P2aY#*Ke;b8CFt;yOKP6U9YI8#Ds(LD$d{Ai2XPTkd0$^F%t6)cbQ>4ebitx6w#`s>Rv4^)S$M*<*@6W5a z>R=s!N%C}g4|APtVGZz0(oyujyGs9_?zejrP%l30!9BH`J5)Ufybr7Jh+81V)aMKz z4C4#}M2w_r;8ddHn_om4QfCCUzU2W@*&2IY zqNd^;(}!)9&U}QKrOQrGxXs7at<$qTtm8;Be?VfOvE)OqJOy$M;dbu*H=f z#Io$7_1>d#tXcBd3~x2Zg;B6Y(oO~3XdpnjmpuEGc8Fc>6^ygk9#k?zbjZ6*?I;SZ zxJr@UZaf<%!cb;rHs5QOhgpElH0t&l43;oVp=Dw`Z)%X5iSjE3GM$Ff*IMy_^d@j5 z2;W0%rv;{svQx6a*N>tupU^^IZ&V8Dq!#%n zSwGK*agyCHN|3;x`%CXZg1t2Qs#Z_-ruHSQQ`9tP3F;3;dV75EbZk|~3Ij{Wgn+Z-s*QnRr%|WNt|4iV8==S3443lgkWXj6=Ei_s1JrP8P>Pt2t#3?70~jRAdjy~&XgX2(sIuP& zL7MLuO5P&Vx<933H$dAp5hN?2-(F?HC+#@bqI z#pxiI!!yaFy>gu7V(mIoZ#Xmrl)WAtK$8)|?0oK0ro&)nrN*e|GmD}lqoGTuvAn^^J-Q+mJf1XoY2Edk9Q)MKXs+C+JmWk|)0$kE-b5!m|>zY2x9_L6vLKG2hhd~159t%f4> zL`zXIbdMI3Xd@xYTbWR8*Q9fDd8nF;b!}ZC!|Jld>d)90oM~6;%qS>6-rXDR^FHT+ zmU0O-h8383=)q#Ib8q_?*;Aw7R|Hv7sO$LE+EL!6NN@jIdKwS6rmb7hs%ilRpAp{| zb~$THqx&?{N!sWL{KFaFXk^zuZx*C|M9ML&@Nfy3elOO|tJX_;BbU%H-ef(bM$#-) zJVqA%Q2N?U+A-=$n`l1q25&NEr2ts*q4UoASjTHzjH;KdW+Qi1ja?Zv>J=63D`9h+ zF^(KTHqE3{ah)e6lk}*@l$M(ZC{m{>nAWZQ47`^_n(^O{Zyt~Pxw(E7x0aWIC}*#; zcYFW-3~nAUd^Fllpr>aD5X#QY)i+cz19PuW?>h(AS8nqDn4D_qgcNHxth05-`@4tv zQw5IHpc6MW_*XRi-6@jAQRys1f+T=XlaaX;>Rg@~B_nA4xCH4R&0Ms9TpY8oZ4682 zva50HXRq9zUyg$A>d1!k@I6PVPGt){qx=jkUyMu41~S<$$=U#q1}MP~#+!nFqfpu& z^o^8&L1RkNgF1YN5S{B4)4yUqw_Wn=NekWNlA~f z4YtB;L-32U?*U_jy76YfFno5>+D9qOUj2;m!MOE42p;2k^3pp2FR6d|+GcCz7 zbQ}*i55+|`qjP$PKYNh{TKpZ-2sOHwad`WI>(OwkG`2uvOEQzF#-z1!H?(JCcGM1E zZl;iz^W|{e8a=3Q)ttn>`C=_?u;WWX9@}(h!vLy@)t?2*lwGKV6Zl(v;$*XQ_;NY! zcF||S`=lwDMmjnLD{Fibia5f>56$9R->Hbd`c7QU79t=N>$@7KfkKa8ojBgB^1S3J z?x*K03;Csrih}}wnu^A>I2vdQ8Gz~nM+0%jZtCe)9^+NC7v8EPjt2L<;e6Be2d(IEK7aXrT(bDIk3GfGrX1C_0#D;mz{ zNj3+X3Xjj)@7m$fEPyvAf*M*w;br^x*dINvT~H@RWIcr;`sBSqKCn`>EwOpMoQ*Kj zBkNH-Z4RvWdi>&>@3XWvX2js!Y4^su4X#KZxJX-K@OedEmWO*ms)p1qd;4sZ24}n9 zAez`S6W~y1lhtuNFLl&^JJgXbj%R%7HY2odU+9Amy;rK}G@Y(KcYZ~q*Rn+&OYWS+ zp~)5N@g|Hh4nBY=wRvS-FOge zfpE*W0!T?x(JZvRP1aUu9oih3ruR_&ohsAzJbXMz^j6&&JR1*NJzfz4f~MRh^a&X$ zlr+EtKkvz%fjk_(jx`WT5Sxr2YN}m?NZz9y)hUXLl}*NA{r~_8=Sf6CRM*k#9jU%V z)0oaPQWK>_q*l3^B1D0ctTa^T#Cm9WZ6UqzbK-kF9osx=OsZk?@u4Mb>gVUw)={i0 z)nF8n<#kt47irQNn9(TvijCbhr}7~}X%J~)gZeJS2>ls;kAo9AJ*;(;r1Z)kVCgv1 zX2C+5D|xg&snr6w7PC$5e5lPNZ&ledj7S$RO4C!VYq}@CdEg}#$<@?B4-o%o8pGG6 z7??6YiliiVKz*1yhp{RJ7@D+p+H;`u_;8D~SX!X7VU33x{VM7KCs|Qw@8c0kA1G^c z)|~s!E#BFQ3}r;_C6LooNEtO{QiN19q$KKs+E&WaqKiFZY8~^salpWALMHX-@#9J5 z6I?+*3k@*h4_QVIt1!;AzAd38qGzLuw$mmPUq$-b`hHrb@b~rkYXsIn!n49!T;E#_ zdl$h${;r+Pt=E`XPIkN8j;p+49y5O*^rPVGg$Q>ClQ)c3i}WfpEYSm z%WTV*^vN`p$b#k-;p_5eIEuy(xX3WPrkQHwR83@!z61!o3Zp2dJ<+>rO`tbRZiUSDs*m}~my!UVW&sNizx4J?*B8ab{VQa*p(_D}=KhM*Zy`98zS^m!j* zZhG(3ImMDI8hCALs2<6ePC6+iKge`=O~Wa!r?E*8frnFEs@=4N`B#2Fc2Z)EuYu2g zUQ>|d@)_5n6-VB5Zc>rCYkebC4oK2>RF4S*KeqOUoL2rxBiK40^^ zdVth>Q~Zi`bP9?IgS`dz&}o^%ZezjKL|vCKn|WLeMF-$S56@6IoG`KrsZCQrK6fGW zkNPvLok&7L(QDpB3~rI3eMAjN+%TH1dvBwuqm2dvCvNn_(9=vpu2GVUIvhQ38uhYh z`S#3Vs$-PF&FvAGdSi5IMOueR(BWN1{!o)AcetzVL?$5B6*cs%D-M!^98A1MjpRkz zcjY)h0o`xH+>^b}&Z8j_CC*?sXE z?9uJ5fg5{JYrKrL8+DLb6ai=Ledr&HfLsoQ{3PJUHU#cmI|)u>b3I;PFuXb)G0Ag? z#>i`5WcMttYmu=v-m^tGxbZ92b$s?o#1tYumX4FpSMSd*l))n60z98)%vI)oy~mne zVUwHq_!)4ob&PJPK*;zhQ2iL?^_tWe_3PTtYR1IZTvI?t6&g>{8`GZDMO6Ql;2sfY z-o%*R48E=#3~nTsL~*GvInEbRV$=t!p1y>(!4?)Sbq~vWTK1}l_H9Iz^-mMULZwY+ z@sMhWTCdPp79pAtL}T<`U1)CgT`!4Q1qc!6n?aUnjSH!!!DxEB2r(lG$W(-db1fSg zX)6K4)7i)q08DIz@aEAtS`oA{a==M2g6fKY<#_O7AONH(2X6pV3yN}U zZK|o(I+PwJ_>!g3o8%Nk=1HPpk{Y-Q zPr8@^FtT~Zx*5|ky1ukTPN5XtMCOde@1#m~coF~r5sC%+HN7zWs+kH-}% zcFlvn*Vk!)Nu~ViO*E0z`{TO$-k;SFQmnd!6TG|J`(Bqx9b|u7(>n65@kb<(P4kyT zdAlE}e=l>)PFgkkO!N@z{ZWJExl>9jzW1O1`JW>*)4sim&YMH>owgibixD>kd_d2M zc0W=e2yx6*owG8$6l5x4@LlU!I$2$?WNM(71rUyq<`B1#~QbFV8Mh4v*iDi_!8=|(;CJRY6lKlsnJNF(#Kxh?^;;sTHoJvHU{P9pEyx17=Bs`gwZs4u1; zghs8?IVljS^=H|L*BX`5s!38X^+q`~+aobT4N==3NmLsyq5>Ho%)aYv?L+63EY*+O z&-&CyE`3Axh)9AQR-t+J|8@>->D$)(5PGj&XXZkb5)lCFE%uT6S-Lz@$vi~FYn`kc zMi^f2Ds#w8??_ll4yYjbEv{hS8kc7+K2uu{&nC;TLruMGpelk95S$Ex8oWv$vR~Ka z32Rog2w|W{;{G{oc6yrztkI8W%T}U{;q;@R`X0y|T00t}Oa=XL?fY>;?2wg+cs$SO zpd{+BzyrydspzuGSSrgL8m9hljlxvYSP?Z+K({tu!#`InO!c^kW))HAD*|7qE4jP< z`}s&8)MmOGevw|OPWUitlVMVY%BN|1tWgdg3lk_Yd3Z1TBB*2%P%zyO%Df0 z_k5Gq$Njo5*r))J1w>D%pugc*0y;;}vI1GCnqt&c$yB4Xd1+ZenRlp8oFawEso`t6F zs>%p=|Lr~DPsEd7dsZpR!YVV;!~LA^eDgT`{_p?(_CNpgKkf1Hv5n){=6UY#X`0%$ zZEaoG_WJef{`33qzu!N9_3BmsJ=YDx(DKU94-XIh=Ve*?|M^?KpV#Sh>i>WE;dlD| zPN#={eXhy9^6dP7KA-z{ay|FETrU0pJUg#klWX(NTJrZ?o4;orUUNRr|JfhE=UKTn z-^;c6EZ@uD^U7y$-n{952L|jR-^=&2$2=piPkiDN{cpK0*XMhAUe=lYy?pty|DWsg zJ>Z+4Su-#LPPq@y%PY^!J#yVQzxmDnj1NBepszj8;k$gFbIB`v`PR3-)xY!Jd++t{ zvEF=^d*+(!xt!XkKJ}>^>{$zE!=Cc@eCNXtKkV!O^rt_4!x{FH`*S^T$> z0GF%}*a8F2Hs8xT_sny1|6HHH<>!1af8%_?nHMi!^v{3`XJgp&UG|p$v%h>V&+wY_ z{j4kJ%9_9*a5cZ@m1}cv)&wm0KhMlHS!2#6pK}kc;rzjU{%)9NEqTsIAAQt+XU*UY zYY&|Atnd52?`v~_oOc$GP3I2~5XjE~0oXhUf(n50Ab<$*8W|x*5G=2kFXtOk0DKV9 z$Zo*GOdz7H^)sLO%ndo&ORmr7xnF>hdjzl`B=4+^=j09YUe|X8X7&gY=iYf{_M886 z4KM*Y@_U}2=dmxI3(*^4Ky3D(pMe?A1!;gQ$P6I_t}r!_jK6WutTlUK?I2HnXa8o7 z5F=}0FPuAPlk0O0=g56Pc-G2y%=ofy@XL%BWHxbTFWw^zEZ4%6a=+_$PW#$UH`u`p zVD|Yg!~nqqm)tAQ3=_=r!)PE-a26uXGdV}jw88+I$QpQq)8GE~xBIlXNf`p&^%fb|LONC=%e}HkzR#g? za2ziC2VO9v%DK5uo|XFsrr8VHRG!B{0k3=yDcJXWI<;+wLB5}BP4F~cL_yP;gwoBM)Y+Kvfx~y&8 z)+dAq^F#Q-e5~DpgPc3svzc>nHs9x*tRVwmv?lg%p@tylzWrP*SpX02)Z2 zL(75!L^KAt4r*BzYcqm}Th#+ds9S!HiD1fG_ebTnY8-A2(!e+%2sD|zt>HkZR!`x? zxp#nSZ6|-{z92LN$bMKuez$f3vxG3Yr=JIN0fEpCK;jQ}b<@l-*91ZGJL~2A&}3}N zd9OStX9ePbSb2vr1>R^qZ@SuiX)oV)32^0in-efz zm=&sS2rX;Q|9K{`<_uUX&(1ZGz^sXLK#G3P_k7O{Pgq~>5qRhI{s-^3dE6P?y4*A+ zh?{kpQCqWyp`ktS%Kb6#z%iIe)|K;M{Z$(QC+-Y1XK~er&~Bz*|Mg%0U8@UO80tB| zsN5F&85IZhE)U~?t4fGU4w7*QAU8ne^IV&sb6=#@t6kkUF@VSb$0~Z(Qi(jT90sNe zT-JMK9cVFmn;TZ@9Wj8CkLAEh1jscfh`>W{CFkM^K$MI z$A}FPAjx1*wuwQ0BcZQ>Xpz!3C;Gl}-*su1^Oc~_J3gSYqDh6IuraNAf;*h8g%1qN zb}iqz34xt3a|YlV-!((2->K>_b~{?AO&R-WkoGoNpqYOD^Qpah{p#imK-zo1He>BS z00wBzFbw-BV07LW`$PaB{OC`^h5z+(&fGS4| zFzn3Xpiu321_xkH$F*#ZzXOnAx_)oj);68y_EPp75*-3ZwPar)F$}{1F@k%2e3yGx zha)hE<^xl*=ESprrR{VWs5J;+k zVF5Ek2-}BL9mk#c4N!=}UQ2t0K~@mQ8^ZI>HQ2C`nn+)y8c2x~u6jt};8|A)3ln1+ z#ylu4gEr=Xx)iz}ijm2-6C4=?!{HIhl~n1_XVbobU>(R z0(KM!&M;4VrHQV9_-I5h2-I6}iZkX6&|K`8wg551#`&1DZ@by(GlFRN-NFzv)tX_& zJx7{?voK?>wJndZfO){A@r7i+?92&)*XE z%lBXiNMjRm4WBtO0mHL!z#)}u?6UzLHo*+bFn5S%+{0?Q&Y?$$C;NsF^4$;zFoG$8 zr}^$TzVVHlqZ1s!G|B(?S!|-&yAI5J4!o*b4_@8ybl($>%O-ZXm_4-|D&ABiB!tBM?3luahx@|)aoUX~ z7V5>Cu;Bg>R#SKeFQ}!5z4Znp5{+;met_HqsUAYfeb7>Pt|gr9#+wAtnJ}7o|!`e=~;gmMfQ{X zjS6}BzSer|ud#%Pqi){M9|FcZ4P%4>SUPg{Mq&#K@F%b%H^R&U!m~Qcx?s*Q2;*1V zO+*N;hdbr*wx*JMIr$0=m%ZC8*c6&Y^=1uD00X}q7RJ7|Sz&xdV8N_8!)PORpaUP9 zdAV<3*mj?pUz2h}`aWdN*$l!52h3n39fz?EZQnr%o5E56z>xr?uB9`!9-BcO%;K?! zkL*(p(@vUAv2qT}b`r>F@29071QGS%K42xi)3^V?Av_!3sMF9A); zM2RGd29WQ)D1_@UC(;Xv)f57>xe2c1S!hr&G2lls5n2G@GRy$ZEzitZpy`3%&P3fx zcoe^d6XUEUStF^8>+XHOhko;XhgE}fmiA^aoTH;5;G>xjOci0(c7M~1D#SuLpb#w{ z`Yb440{J17e2%0rq5>R{2ml{tAlZxR!>oP?+gsIBZ70;MG+j8Kp9O(C0R=nMPB0J< zTho%z8Ulc1uhlbeX$hCES#CbGRT*fNaLo|Ml2&TX#|O`~Tgk0(JUd@c+}^h9R`LOS zPw&C|gn_lE|ou+z)k zONfdD2gXLtmvR2tCgru2=m6K7OE<-w0if-%O<@xg3ycG=w&V6q8EWRRXdI;a!l2-O zMkv;ZRAsGjY1WE_wbaSaK{Qfoww;IAMHT zi?{u*G387jKE^Q2Xni&?4(cjkc;s=g?^UU@4)1Y>R(ox_O?w`M9lxA4z6wkgv?+cD zFF8M8V4qLSoyT1QL*O_oaVSQxT~rHUuR4Te6Vm<|!)I2~7f~y42SEf50&^sF+tq!p zMT4;b0RIta3IEPJy*$2y!Opos)M3;S4mUu+nPczzq=E^u_uyPC802?@KAs`|mPW;$Z0A)wzst}!>ayH9wW+C0K%<1(Gr|c>BU%NJd_Ja*g=3v#H z#uD?+UWh>0RK$B9Uk?!wn2@EV_XjQ!+eX^LbXv&`0LD+8$n$O=FP9eYr_Xy)x+|uE zg^P(4V%(GwiiUyIML6XDtif7=)pi_^XmDtHL#ab>ftdXz2*g3jOwie7$H(_%MmrLR zRx{gHv(so$nytO-s9jEUu=g2mU2Puc7FUF9Qr~P6*ai*3zj*J(4KPObv#Q#v9cTox zQ;xscTaSb%228?4p5fvSd*55J?~r^TlnKOKoIC?ph#|f3!LY{aP@I(NJ18Q(u3IG0Z)#?Kr>fU7w-7+k?_(2?-L$A}(*+ylOia)reFrb5*_x{|}0& zfTx6vahMINati~%l!M`*l?}?k#M96Hp#_IHEd(Gegr%zufsrFoJdbOT;yB)KT8iv> zM+#tan<8x|6=B)uVGYOrgE?F};VdH(A+G$4qmD1nO6grn0!>vfAt)BHDST&@_^cum zJNdrz;dgqmL|5Bi?wtQ}=d?{}mzzQ`SvNKjPDTR}&go~fPIL1~*->_~oK+8DZq5Ei zW$`&~402sc5ex@w8?WtN|5f2KGg-8XL5V>Q9YUnl3An247`WJn5a*w@E{9(&VNuPS zOaq6CF##sU%2^{SEPfg^m1-U~d8Yl`Ma4hXD$Rhc(0EW4Xs0vh#9ED;n=%{oS)Tv(uYbM&PI49J6q@gJ z17ZQ>w%eDM)=edad4;ejgfPLm9-w+;O?kSPCY?*}$Obobf`V;a+i`3X zW@6wBO12mkYyargt6n_P9bAzV=PPjy?V93>J>>{PQyS%@LIx6)P}Q8hN37iDfx|!s zXjAo7&Bn8%2RH^fta8EtT{mv6p=NQ}L1)6TlL!O>L3t(-8S?&-GC0a|rpunkj}r|^ z$@BOeN0UQ-*z)$avp$Fm{K3A3K@Lii!n+M&pqY`S27GG0ff=xyZ#0>ZoF%4>i^RY) z!mPn3%rYkt*;{XIvlf^6T)@fKk_ZxqPLAe*#4iIp@Kl90$Uny3O(lDNH?#=+69sl!k<*n;gDS0 zGbR7`fB&~L*G=Wmz|K}<5eyTPCC~ZK|NPIJ zfVS3ThH5j@8c0(#+kgDWe?0N3+Ag-Ic`FrHLun*o24P~O zrh8Bf*D9|WC;uZ!n_}eFS}N>wkAL}>f4RZ;2Y>Jf+xLI}_dkhs=hBCVE3s!y_zRF| zz#i!f>=!kEz$pnMrr8B$%`jTWo&#&(96!;f1f=KoV&tqE;vmns;k%Xk4a2M2;`J=I zlJZ>7C@+$Gc!%Kt=fH}{)}q=DG?Oq;=a>*l>1EBk!|@Xze9*S+J!|UgZ0*w49>rSs zz89m4<~Aks{Nq3VWBb>C{nuNn`J`MD)8e~mw&MEyPyh5!?ce_G-<|;PUBGT7eK7)m!@4)@rZbv#pZdFl;oo@LoXZ$yR^EX}6&nho=|HHbk zqrF$=U*T>T`?@OKe6J&6b@alH4h~@s#@-L{Mk7vf(2xAck94MrAIXdhbFUNbwzjsm zUVN6Q!s|C7?4`YY@$#nbZ|V+&_JVK1j?0|efB*M?_j8Vejy>jQGFCT5e423fh>2F* z>vsi78ROB# z&q*%>aZ*A}7WxnW@DJ^CpZi>Y|MNfpbKg+30DyoU4T0l)LV|-pmOhVa8i`%Hs(n;L=p{`*Bu zE9@7jd#?LC`n^i==V1QbXs6G;>b+OR_lX>Y_=3YBdi-KP_G3SG^J_IVQ{9w4jqk@L z!@!xWLmbU#^r#COpW4J*n(;Q`qdJ?yK2Do<|~102lKkhn9m1$IRbX zB_|#2^*IgTT?kYW)Ca=fEAdyP^=GZv#t!?z?7{@FHN)t#uP}hNOKRYZN8B-ZXJg`s z!?EUY5NBbhSKyfE5kev}5r*Q3fcLLZ*i+e102BnJV#%fep_rkhaN4PJQPYX0tg8?` z$x7jrSdn;3I&WIlc{cNB8g^>mdT8>@DY% zuESiPeZ?U)?5)J2;m~)$`3TCpW@mU>SAwY_SKv--bq>0t2T3H8zhY0e2fR*Rv(86RQp|Y-D{^eh8zwisc zaO*Vdv`xRBlQ#95b|5*7pwBt`j$TLV=WyViMJmMp%wB^uVR&I~A-L=wf{Wq#+*$Zc zjx^Y#v%`*#-{{Z({Lecc2d{qUhkmHTB~mzW&pYQ3xX=o{<~cZlj6D-(CIXhk>yJi^pM%#jczd&IwzeNzVx)3vGO^F@2&44wJsby+I_q4SKq z>A)034AaRy!))`OOQ+4Q&P9liG6C{eCxE=Aa15 z%;t}{G0!UejwJls?hBp; zheCKw^A2#}k@=Z@6NMtJoqf8RbyGqUg<{Tf1+N1`dMlFH6M~PLPmN98`w^`k39}{v z=6gIz(K_PD^=9vSu~~?E(VQ@BAQE?+9_y^KMdgv?J(IRdswlbcI6pYJ%e_&-lT5Ap zIzqN1r<{MTYU|t7&*#jFBUnBM*Loe#ylCc~_r0jk9SCz2J*heVt+Y*V$~Py!m12YOkFeVx2f`P(@wVoGjy&T^*Qca5%)PwAwY>!3Mo`mERjZd zon3f=7ax0m)aWnA=>c}GC6$zC`1y`Nw8H(4kgy#P^4pN+IYfIKjM@RxAKiZ_HZ#{{ zUy%^Y-bu+Rt-!%!yfBYIAXf;|LhPtqm5?8qXJpy|XYwdW)`~N#6$GvD`EJxwUPtEH zyUy+i{uP!-43)ptj6l?HwAWMV*Ix&IxDX5n>bB>#aCTg~sMjFjMd)Bq|2~|7F6c2{ zR8##(NI%C&=O#pc4$+TpG8Cs2+$*YnJeK4=Z|a@4DtF#>;e%RZZF`&=$JM3^r6zlN zlP%k%Ze8>FzupluzsJiTHF;83;UksF2zx}7N58)f(cgxgJj44xT8}?R;~~^W4td_B zK@Tb!=C!Eb;kr);BF}=eu)k$gr`%1kYu6 zTJPn**O2bJG*|u}IK=T6-wINH)#Raiy|euIoSObw9f2?Ew$v06@cCeRK}*49@-Sj% zk>65b^PJlM9PV|T8dcHuoSOff)aQlz9imUVXAtz3ldm>T4(C-h|D>T9#4v4>n$w{* z09>l`@;e=4$zK?D-#{;9*foKQbXB?>NhZf?n$xy0vJ*}Q6dXu7GZ4s{gJ zgWKb`J(P2}Kcv!hXISCjImmY*>CxZqoeV+-Xjy!`qqLun zG+@vmj<`*8{zx;;W~jGcG~RhtPB{m7(!^ZipV{k=QIunoXZ<-9|499R?%5Sl+n$gS_~xB!;sm1hoK|3Y#|h`cKEwMQBq0XVDuM8aaoB*U> zn0h2*z8iHkap*iFFotj{VOMpv!u`8}X%#@v-S=&0_uTVb^%w?=%Ae1(M@#pn_S?=I zIjdEdwJdjrc8B9la|$5%+#?aQZO?-V9w)6h_l&a6R4xqejk4O4aSQA9Z1K>Uk1g$meG@3w~Y>Jg`YRyGB%Q@*Be7>8*qM9tvNfJu# zOQBKL66WKEBX2{Hqt7e%d>gzff<5=y+rE!VOYL~1Zq)w3m;C-9MkG?C!-K|jCJ$sape)rSx)q4yJy+3x01q zyCb;P?;S~fK7ZV2_(f0*dn$8a8Tuf5lAa1SRR{IKoYj@uIVvtHqsb~+uI_t~&qCnP z4^_8ez*KRrdrG@A2#;QG(=2j1tOuogezKXR&GtbAQBKLwdp}hsxkxqF| z*7V1J{KwrV0mJuLtRv)mZr|;hoPZ-ZKZp27=7eGW95W%2DXMiOaP}F^H3T162Cpz_ z!w|y=>)=$Y;rx!1wVJ)7W-p)-lb3>1H_r@w|Kv~pr2iiwM;EIj)A0xnN3hPGhF|-& zU)yqM&)wi%60RvVG>Zm6aQz?u@gKjL1CN?bhPQbrz*PN2(~>?#OZ(_S>S8c)oc;4wJokSYy1hrPxkFV4ixPim7=&gG)%Q9O@SZUkTO znCQc#PFv5JNk{uNEP_MBZ~fM9ZMkU$T(uLP3j-pVa5@3RaF$4XH`hesxD}R(vZ;rj z9e&uUi`q%Mnrba=zHS)(bR$pZEH}gr%8=et)7}eYr3E2Em1&YJxP z<96dsw}ZQAEF17eh+-B8c9HgBs`$Wy!$cX5;9B=tHFtjRJvV;mcYfyy@mGKzec3;o zS%g?a^x-P`zwIr#EO|z?(Q0zKO=Tq2Srb@X=YQ7NZ=MVDaBsj|7l}_3gtJ<7+nKnO z3AZNxx4n)CwtAk8uoc0pX7DzX0Y*sUMN&(F2_a3liFP`)5f-1vMH7|=wQOI@5RO|W z-!}Ays;?ej^`8kX!YGIu!C+U_78nkO!Ftf*jGv#2pggCxuO-#`=v5_U#e+qIWn$ih zK!V3;N3(~V3RYI%2bouc8g{VXr3{BP19GiBnnkV)@kcu+=5Lr8zV&s)NO|=-jHu;7 zCMVvwsihlYn(JCJLHOjG&t(MIRK`ZZDa~wL2?pVFpq7#lIt~`Ag3b-ddLkL47RN@T zUtjG4Yo9_ZvF%k2JbA69k%AdOO_{AssuKG}6K{dzsNyB^9SEn*Wj+D9`oxG`Mr(D` z%_vP+)bJDDb0`qlI_}(me>gpPE|Ho@%rJdwIB?{WQaq?sn>9?DxnQPw6stF^DzP6W z*;s;d-%0Ze28F68b^6Wcfp_*ZX%gQ$q5sno>gxq+F9dVvC}pni(_^_C<5@Y7P9R>bRwhAiHP^ zE4G_MY`|mI00|?^sKKMwjNB#pQu^uF^$#l2LG28};0L%N=6Gd3Z}$Fs?kH@pwUdQd zQzhu73{W9wz{z9N-r8!@XsJ=nS}vM8w56j}pFx>wW;7>FG+7Ti^$;WH zyVaktsY4DX27Tl4SWoIT5AZCt@TgB}FShK}UJn|p4I?u$Et)XQ+FiCeX)^0rT9b3l ztfr`L7tVYGw5%IKfeA85_Nkdq8RrMbHA@^d| z_%=)M@nCw7P2TD=V*fUghf@6IYx_Px825dvYA7}|QqHuW^2SruMX5s0(^03e<@AQ}eyg=5kYhvz|1HDW-ju`}n$QbapI>mgaD z+F+jeGH5~zp;7jT)2PXrx2k^pP6X|Vq;j&!s_p6O8BHy!HU^{OY=M(a475x?k30wG&%1&Y+_cHE zXsp<%%t~klldNgzCyabji@K@-4T^#p{xC7j1fB`4kR@nM(;5U!?2!@O5SFDoiyc%f zV(&aQXVWy1RfQpz{+8x+JVh-wlCB!s(bUHKy!ZO|S|P&fARN_Eh0#l9C|mIW8=38q zt&TGz`=a8aMSa}O@iSYnbK15eb(mc$nKBsSU zi^gybD)WZ1P8t;BGie%7GM_X;t2$obun-iSi;Y;7X46(7*&|$bvpf#`-70DeSFh=FzMHl9%(+SHk%Sm=V{OCE9mv!k@`BMA@9sD;AK_u zT;|nnnkZDmKt4z$jVI4c8vixy4OXlH42qCA!N<}JIBarGS^^<;XN|M6BY0Ndh3R1W zvZcMxDJMAvZvx9@KY!WvO=cgG&gU~|#1>w6J7K{Ak5Gf*fhV34gc^-MhxJ-B*%Th- zwJJpJ2n+Cl*)$atZECzyO#$!%Et4`~)Cw28jLbT!#dDM7ick^MRIB&Qge*?g_?arEahK6Hv zWK@0psPG$WxiPXZ!}FzWA+}-d_H|~&pXNJ*Se5_HXE*6SX13eCb^(*Y(#9~GH0Xr$ z^LaS80tx-7xp`=E)lbu8uXA?zPt15BT-Ip2l`|mn(XJctyiYw4ehk3FIg2jcB^bN=BD|FXiHXyJ=bnkk`w!cSxg$!mS~L61iV6{;^zM@68VNr`4&&GxD#fqyen%Q^RBiSvV4ShKF>%lm;6S z`T2LzXl@R{wrp3;UtXnVq@E9~4$HK}g*iTyDYx`_N8*I2a$noQFbVE6sTpOH*<)?V z8G%-{7uEcm!DVe+V-2ekBKPb6w%u{Iwe}{Om`05+%0L`70JRE+d2d8Yw&%8&9ivUr zIva*&Cnt$j4;lixXjWq@j&T@A+kFvK1F}Zvpfu%vG&wziImt$xy?tg#cEfDhhv}~S z#9kQdCNIAkGBh;%KwPK*BCI9D&uT4=BjNgRc^2wC06Q?8d4>ky(3@3V)PFdm9fl@6 z-XJo_x~L8KR^shubd%=I!yGPZh2_wmk?ys|l8?$7TuLV0rg-mInvphzqHYpmyf;5V zm984vsM>owQ`eG&GH76gZE@7W+UW@oD_zvz61yud)oOblVbmT-b!wPnX64<7zj?qCM~QfoQ&DA zDk%u`)Xi1_HV5;@T|bK9R^~|eeBlv+&E91NN}15%`Bf3>oq6l zp4jwu(4c}^qX1|i3MrT7wv}<^zT{T7T@9yQciUAYq&*Tpf1|(sQH}M@aXC-B=`(hl zbdB`c{SS7=z(AQoD$Whl`K5mwxjhMNj zQqOyS%BY+Nd<8Z?&wHzL2yalb6gZU_`=FS96>5W$lLb%0pD=+W0>K#bj3d8*X{W==wwb-Pt6FZ^{)RIW3gh4}xh{yOP?))(5y&Qk zk#8!q^wyFCU@z~mCtAQk4P*{&Rk9HKY${=$%3OVO#X;SMt`KZ(8@FzYPGoDrmFL|{ z+wR_fALde0I=TNz6^6hJ24Jae+kM@hIt+)B`fBZiGXrs|rn8m$gheBt-5IFKj&Cvt zYuFYfy{%Quc_9`{v)S%vp$?{*vz(%L-~oDWMcDHoLP%9 zP@5dLP7(qyz{QLD>A?_~wa>XeXiyCBvqs`5!>P1NGai}%xvzWrt;$_Nz}e{x971Oq z>75j7v{a%_FoZ=zZa9ZQ?b|S~dvw6wPA4EdsK2=FYuh3K@1(X`my)-fpHYFglBiNW z%VY6ky8-B|v{w+6Jm*19x>0Gf0K`NzD|OV)x05E@kUSB_aZ3tnJMo>mD7t>H6Z89R zn#T5cer&@s^v`CM;#xX^=rt?RQgu)U7O=KPw5aOQj!#Q07#HziGXiHEx~T`u2v0Uy ze)iN`YZ*)0GMRBF%~|kSoJ#vJa0W9e&w&v+`?4~5Rc=y+B1%>FL>kE;I%xR2Mo zlY3%;W9_y@**FKlL0e_*%wt{piurzWeq17}H;FheiONO-#y@AN7JC=55WxEnnTb@=!!jwi%i?WGh=ZAw;x*szhEW8mz@L7^*m5_ZB^lfB7n zQPPy73~e`47R?NF4832Us={x->Wmoe0L?SFMk7;4aD1NDW-P>-63V<+OL5~KT92bx zO%W_K*hTdNFnt_$lft*afNocI0HS$t&xeP*pzXq>{(}j{k5;PKmF4`y|sOcb1`kve*Wiw{#MfL;tNZU$1*zX zq=Ju0JqRXE->Hc)-3Z=3UMgFih&ZwwE3Qr}*5C{`n;g6$1mn%9T8UAq)OP$~FFR@i z6S8z%RP03LA^id}KQGN#Q!$w5rX=+jfAJS@y#u{p9F?u)e}Kaf4`*No;qlv}sz*m< z@@=Icj7SPjHfs(;i7ZWOX5&m*QtabYbaK?Bs>G(mu%+bcL-1&Ywa@=ndUEtN{l;(n z#_w7>aVSkvXDo#Yc8){^X}iOZjI6GcD2Lmg>RF9EE@cWYKpKj-b1Uh)HO?Q#llQz6 zkYk)6EB557P!UJ~v4h-}K&X|hEr*l;(^lz^{^*bT=jmM+B+M&}AkU#+VBlk~?N;Ej zsD<`W!mNh-s6GgT99wqmSV9E(YqHOv#vTy5GdykAj~Xv!Ctg+EM@28DgIsj(KPpVf zGfrg)#;B+hFi4+(Kl`&k>&-$_hMGQh@oa}7q|0uek>-{p*?^ZdjTd~XU54z8bq-4P zaZDvFS+$!@5iOeum0&Te?XMV16pI%$vnbcZT9=>eXImq2?afJrasAAH`?r7lckOs^ zvX3R?P*Ob2&2B&%cJKdo_vB9+*0HIKbC82^RVgh5Ix6BYDJu#f+z>9CjS827hn)jE z(+Ly6UfHJB%7Z+@YbghH_LPT$roB?yD2EXQ8L9ndG<6U*zh8$~-1FecX-BQ(ASR_s zZ>8Z01wO7ov!+nJ*QolVDlLx~>!>0WBy>~VyuHJ-YSHa!_BySxpf$J(&>GaEI@u0; z#+*}GPpS(1+rRzW-jF2(pZ~#$; zC^B<(bjSh}&D2b>Iuh*<*c27Az3=sz9{QdyOQ*Z}^fa7jvlj+1?P2wKD+wBQpwLgB zq#Kaoq83DUB6Q>!#x~4PyVhWHP>29RP-p@&o>dcVqI4?e3r$3&MDsfQ^F^1k0YdEH zZdQ!<3_Ux#Yyw!-o|M#dQiYu*D<0vjgTy8u80s}DHumtMWEmu?O{~fgnryZ~A*hpT zxvhdv^0EV?RiRcp-qwFPYhaz2U6b;~I?ti%=c5>^N;Xcofw8u%=c>t)!+qV*y zTKD*Co|XGmzX-3JZ$KIppPgiqG}&FFLPFMRxXxLMt8x`=gI`K-1Co0P$3Cj#Q7d&6 zV+l!_=@6+|6@RwmIdbOt+%Kh`AI4gJ2g4q2wT3q+9Lie#stkw}ZkU>-t9@GR_pBkB zr!p;yBpDK%Mn!-Ym7trUKd2+ps$3B!9AVc3f1)ajGC@DJn=Zi6p}FdG59FqpRM9Ml zdqdViMQqbvQjgki)2a(u=K)*Nc=4lR?fyG}aooJx=cm2kV$tBj2ld`}&a>5$>XDz6 zTKVS9V}D->D$HQ**iyv@|J|>JKWX_=grwCV@={Oc2i9JjaU@xDTPmk(dF_ds*TemiiLp#0P`wT2kI|y;D zaml9K^qar=o4?DZ%m7XY_41SEl#|nL4=$>SbC(Atf^4Pq(`uQK(>7W4AhZ+R~FA};3-I9ba0yodVk z#SC_^*|uovRANrIsnMeyNt22wrjqu!l+sXh-?4=H>C&CI3Eoud-KHpyaOgrhuzLd6~SbQ9idR)FVN zip-YfX}h+*-l)&0PL{@&P;jy)yJ=Aqi5w2K)b?mk8uU1-n`3BisfkDUFY5>qT?+Y*0@O*Ttx zGyxn?AueasaXwySy%&yQ_ZaXQJEwnAJFBX}WbHrv!(VKl{p{!3H^2Fft^wfed;k3p zp4jsye1wg|!Z-z+LZUa{O+VFZ&Psd8`0DBAjI)N7M5CCPVGKFesl@b~w8knF?Ki{U zbyf$cD+8T-n4ILLMXk)}X+c3xhw1z8_1+J0Zu>rKNx8OQxs?NRAd~XGUHN7&F^&yF z7o)1}OgN5-TJ1#Qj%v_o6?`aZqeF@P+R1a3Ojl04sj@3?>@^ei&B2#_gu};14B+?H zTDGN~ir^{Z4S!mBgK z_a538KKX_Ah3yNyzT(Q9?|vX0yYIdC^42R6rf|_joG#=h`Yc=>s)1)WW%op#Fz#)S z+`#xK4>n$fQJhLW$y%CuY$e~sG_h(PKScTF&7B!K>1t5j1a#N&?ajHJUVc1eZqwI} zP2Rf}dJpkA{>p=Dc+A?sr0g@0*`WnzvDy2IUE+*2vhSvkEDHd>9^lx22NUNhmmO=Yq6y23ml-c-nau*d3s;G;@Yk49YQZQQ#8#PuGTIIyJoF@0u+ZC&NA->5fHG8URIUJf<(Dd0D~QY zLxR#!98eB(fSe$-8yXCIj1oj}x$dBr*|xJPaZh{WP(nla0+0$XU*63UH+URM?t-PB z!#57a*oM25K6Y(S(6KG%*gL8?>Y!U#+j)mnwHmmVFq2KOD`MZfALDR+tsx{ldzHF) zDIJ8GTA4WlQhgPb$smm>AFh56q?Esh<_3f0bBM-1qp=h*v6oF@+D&yE;LW0TSQk~N zo>X68QwafsHd{L~POZp)000w(Nkl41QCdK6^T;sm)xj z0eKUK>~ka{*D+GhEyBrtn3ctd5OV4?`0QGhE--v(AT9(us1RgRZ+hFpw)c(TY-Uo= zGwe1a4+vuC73#VjH_jy(OF|3Gg_kq=4D`;x=IiH4syJ&H1Ca`(Tsw#pTQZny=l3}M zHWgTy6HlcPs1r!e8Y$&UF<_guxvv3|2sICc!8?3~dyx7rwFecc)IGt}9S*Wn&rEvJ zxU{BfHs`y$v#}YOO|&{xWmcD(x%6b1RPBjBX)9^PgE9}-y;E{$2rWq&ogm?VDN=TQ@!U<rBBgIF}<&HH}mDpkwB)kytdI%Xaw{CfCHM)9K-cKzs+rlYP_8Xi@t0q>|F1 zc&aC5oec*`T=v+X)M%rrRQIHs5o-Z%?BRRCFe)?ZjyH`~8&6klug_IDUv3`#o7r-{ zBt4{EE=zl}zHaMogOBQuPl+yPW>tMG%~yO5TdB=36A5$4d)k5<@r_(QX7)mdPU~%I z*$!QrFg(*1iz3fOI0L8u|AtugR=SBKE3H-CRy(MB<#z1xO-AN@TY8h3%yPGEGKoL zx@o1mhPdogo_nUElKJ|XH+kZ>QWuQ0$F{gAPR zR@v<e6k}LC!n<^`%vh{*R)zIUE=H%gAM7yyTVU255lwnf?8RH}N z^P~Fi(ILphxF}Jq?{|J$)iQK(b{#IC3N?u1^^Po@S0xg{V0hd4`>9O+aaykHCmz&Z8ZF40 zh@~{DeV&<$J>t`ju&jz;p!&MjeNlr~t{F(vRaC_0N-H`3CO%)YDRSW1{ow7Q6zAaH zsH#1y<5dWC{Jd48US~hp-(e>p&Sz^PG$RH7dMGg(;dFIwa=tdv85FxHxBtdSvgmw? zQCwC%u%G-z2qaJ;kDX*Qu7Y0 zgV>o)BGveH^#1_p3km8dpe}Tk{aYOfvl=SK<#>=S?!Akg`U-& zXw*D4fIjWgxUUscA;h*lRYlEcT&Q6iu_@82F^xFmnpgwjM54e;`@BiH43IcCM%9c`x`KsMwPNx9}ura$vZYn z2BoxL1=`%*fvXCW2;*8~a`K#W81R=gX~@+PyeQA%mfP>nqbCg>Xo^)&u8NZ#1yY&g zZz|BaGJ*i_u_I>dD#-doV;B|Fy@s5gW&*k#_fqlr4vv6Y6dYBMhT|!Xan;ES4c2c|SMdi0m;h$ko=E&!t{N#Ng zsnt_Q73`PsGn`|Y-!FeN|s`OezB)Z?|!;hX6E;%gf z-_fYBX+iXJ8OsiXf?2uGUzi!sv37)JV^bI*Kp4`vG^oQBM0+j`VbGwE=-uD&_@--X z>#h6I_ymtmrOzY#0Ix8!tzC^u`~nVq*N)TfJF%MT!)&Fv0fKuhbMvh_)kB$|^xcDK zw(f|U=WA!%>OZ)Y_E%1>xu~bQzvB&hq_O=9M-xy$s6`!AJM+rAw!5ETR;scSWk_i@ zApnPEPo?Dh_)12_l0hI#7MRzlyaub$*!pM=95(p~Q^`O?<9Sp=Ra8?usO*@V4^pwM zI_V1$- zkcJXAwWjF%Hkl=h#)q9WWOh)r#OJ}8buBJJajz#H6z&6VFx_fSS_|J){=6yL(VmI! za6Ypomp$R;X4oMeK#x}>{lo{KxP?4?h*O!ubKQK1=2{RFJ2Z~H^btS}X{Bvb)WB^Y zr`&csibNC~l%qQHE^5#T5}!3J#9m!q5U~5ZH;+|n*R@t}H5rMPz?$6)J#C^ zc{}%(l65zh@XoEu^5O2l98?yYwVZWklMr^3ciWC9GnA{3<>|1GL6d#_ENc^v{x|}I z*5Z4aA3Wo7x1+}rD!$&=Q+@7(TYW9-aE9Wb@Te2g9MwotPC{jQ zMyBN~hPTdq+zI!FFT*viABX0!&yHv^1>4>`V0uuCuFKPAEa2CJLd-BJ1l^+X+(chs zR>pUS)NiJP57X*{)uu_)RzYlDv`mf~iyi4hzK7-3Tg-VZU0~PJDP~p|VLxkC_{mcE zD3(lBn>pd8c4ULXDC`#iKkn)%we&7Raoxe9sz!Un*&hiei^em<6yIpx{z&De8@2WOAHz^jrgo)kBfx_E#+m-bjbcz|$L&GcAWAvxqR*dt%O<4rO1 zi>mP^70OVoQPp*8BBwIA1F3|K3X`*~Yee?mtK+Yq^0JYPs)`CCW8xk zGVt`=ddRY`duwePrXFSK=kwyOg+=pu_4-veA)~2f3*n?L_R*{=ra{nH z+p`3%=FL`;p&r!n*N(WRaQCW^s%glQ-`WcmjldTHIVtx8Uxdy1MfDBsuKC{UyX~M^ z6^1*h`sl1yTztoK_08QZovZCKs0Q9P{8nO;+nyVbn#;AeLy;(?4_jL?qOK~_yr@uU z&=8D^iZ9r+4{|EC|7aIit>b)aD(V;C0}=bkue~v3^2{kiHOB`A)&w#ia8MTAS>w0H z(gDY|Ecb{_d3ntFUDep@9xgXi1g*wRT{cB2meM%1BWhQRx86bL>oK};%_lamD2_TCGV<~>3H7uB4sDtSdHu#W7d-!omBE_*5VOo+DK z%Evb)X{{<8vO|!u^WKZ4zxTgs4#1?4upNF^T)#5yJpL+#)+dn*XZUTmaOJh_+|}W} zbq0B3Tz~Kff3Q)0yOyMvr*`|(qzxaY9W7@yPP9tDmP(}IAXnVddr*jCEwk=yB3Lt6 zlz?I9)KGL4!`>1f8aPcBPr- z?Rk5dc&`r;ORxFRHa@2VIS(gF+_@D&xA< zd9TgiZN(91dNR&jN)L>{EQEiJ4%`cg#%J;(5=y*gdET|>h@^fA@*bozPJsQ2m#!kPT0IA_YQ+U z{KG%ozVVH3_Cs(RDrYZQ5}UhQ%3>ee=7W)Rgbfn!Qg%bq3{Qt>+Lm$>1M1YO3a^iI zRWu5?{`Ta6N5()YfBVWr0{pwAXg7z|)A7>wqFb|A_C%yB%pR^qM9V$t;!!rW?-ORz zVYMedt@{*~O&NbT$J?&n#YDJkLA%|zUb+P6-CGCDsW&%i+Tl50JHmF2L3IX0NkkeH zI$Tup`=Gvx_Gg%gx=C=_8%ZwL^X>kNw%sz!cv%|@!@ZvO-RA)Eo^}b`iLT1$i%sn5R(*L7!-BI_Tjg39EY8B@Zp;a*ed}A_yk>u8@hWU+rIoVPlcsPP2Zq$K zdXn3O7|=wVED~pu6HFFmMAa(32Teb*&K4lss8EHQ`#|oH@nE{L? zSHzl6Qwa2lSsEtXdqdovX7&Nu2A~IssHFf?cQ)g zUVp!9#qDFv^~yk?Is7+Wc>Uh*{oajOst%YdwQudZt+(~U*0dUCm2)lKTDbN~&~!<; z?6&^ZzPk1c*nKEvXo6vBQ;TQ8SmwRNc2ySL^ z0&87n_M>VM?#KqrMT|SVsR^h~(u>l-ZU3(7WOFw?34>jwXEeO)->*)rZSUI`e+Ir5 z_prAaFqi&^&d`LQD&a(9vsetupUi(this); + + lock = true; + + QRegExp rx(CHAR_FOR_NAMES_REGEX); + + switchcnt = Boards::getCapability(firmware->getBoard(), Board::NumFunctionSwitches); + + for (int i = 0; i < switchcnt; i++) { + QLabel * lblSwitchId = new QLabel(this); + lblSwitchId->setText(tr("SW%1").arg(i + 1)); + + AutoLineEdit * aleName = new AutoLineEdit(this); + aleName->setProperty("index", i); + aleName->setValidator(new QRegExpValidator(rx, this)); + aleName->setField((char *)model.functionSwitchNames[i], 3); + + // TODO itemmodel + QComboBox * cboConfig = new QComboBox(this); + cboConfig->setProperty("index", i); + cboConfig->addItem(tr("NONE")); + cboConfig->addItem(tr("TOGGLE")); + cboConfig->addItem(tr("2POS")); + + // TODO itemmodel + QComboBox * cboStartPosn = new QComboBox(this); + cboStartPosn->setProperty("index", i); + cboStartPosn->addItem(CPN_STR_SW_INDICATOR_UP); + cboStartPosn->addItem(CPN_STR_SW_INDICATOR_DN); + cboStartPosn->addItem("="); + + QSpinBox * sbGroup = new QSpinBox(this); + sbGroup->setProperty("index", i); + sbGroup->setMaximum(3); + + int row = 0; + int coloffset = 1; + ui->gridSwitches->addWidget(lblSwitchId, row++, i + coloffset); + ui->gridSwitches->addWidget(aleName, row++, i + coloffset); + ui->gridSwitches->addWidget(cboConfig, row++, i + coloffset); + ui->gridSwitches->addWidget(cboStartPosn, row++, i + coloffset); + ui->gridSwitches->addWidget(sbGroup, row++, i + coloffset); + + connect(cboConfig, QOverload::of(&QComboBox::currentIndexChanged), this, &FunctionSwitchesPanel::on_configCurrentIndexChanged); + connect(cboStartPosn, QOverload::of(&QComboBox::currentIndexChanged), this, &FunctionSwitchesPanel::on_startPosnCurrentIndexChanged); + connect(sbGroup, QOverload::of(&QSpinBox::valueChanged), this, &FunctionSwitchesPanel::on_groupChanged); + + aleNames << aleName; + cboConfigs << cboConfig; + cboStartupPosns << cboStartPosn; + sbGroups << sbGroup; + } + + update(); + + lock = false; +} + +FunctionSwitchesPanel::~FunctionSwitchesPanel() +{ + delete ui; +} + +void FunctionSwitchesPanel::update() +{ + for (int i = 0; i < switchcnt; i++) { + update(i); + } +} + +void FunctionSwitchesPanel::update(int index) +{ + lock = true; + + for (int i = 0; i < switchcnt; i++) { + aleNames[i]->update(); + cboConfigs[i]->setCurrentIndex((model->functionSwitchConfig >> (2 * i)) & 0x03); + cboStartupPosns[i]->setCurrentIndex((model->functionSwitchStartConfig >> (2 * i)) & 0x03); + sbGroups[i]->setValue((model->functionSwitchGroup >> (2 * i)) & 0x03); + + if (cboConfigs[i]->currentIndex() < 2) + cboStartupPosns[i]->setEnabled(false); + else + cboStartupPosns[i]->setEnabled(true); + + if (cboConfigs[i]->currentIndex() < 1) + sbGroups[i]->setEnabled(false); + else + sbGroups[i]->setEnabled(true); + } + + lock = false; +} + +void FunctionSwitchesPanel::on_configCurrentIndexChanged(int index) +{ + if (!sender()) + return; + + QComboBox * cb = qobject_cast(sender()); + + if (cb && !lock) { + lock = true; + bool ok = false; + int i = sender()->property("index").toInt(&ok); + if (ok && ((model->functionSwitchConfig >> (2 * i)) & 0x03) != (unsigned int)index) { + unsigned int mask = ((unsigned int) 0x03 << (2 * i)); + model->functionSwitchConfig = (model->functionSwitchConfig & ~ mask) | ((unsigned int) index << (2 * i)); + if (index < 2) + model->functionSwitchStartConfig = (model->functionSwitchStartConfig & ~ mask) | ((unsigned int) 0 << (2 * i)); + if (index < 1) + model->functionSwitchGroup = (model->functionSwitchGroup & ~ mask) | ((unsigned int) 0 << (2 * i)); + update(i); + emit modified(); + } + lock = false; + } +} + +void FunctionSwitchesPanel::on_startPosnCurrentIndexChanged(int index) +{ + if (!sender()) + return; + + QComboBox * cb = qobject_cast(sender()); + + if (cb && !lock) { + lock = true; + bool ok = false; + int i = sender()->property("index").toInt(&ok); + if (ok && ((model->functionSwitchStartConfig >> (2 * i)) & 0x03) != (unsigned int)index) { + unsigned int mask = ((unsigned int) 0x03 << (2 * i)); + model->functionSwitchStartConfig = (model->functionSwitchStartConfig & ~ mask) | ((unsigned int) index << (2 * i)); + emit modified(); + } + lock = false; + } +} + +void FunctionSwitchesPanel::on_groupChanged(int value) +{ + if (!sender()) + return; + + QSpinBox * sb = qobject_cast(sender()); + + if (sb && !lock) { + lock = true; + bool ok = false; + int i = sender()->property("index").toInt(&ok); + if (ok && ((model->functionSwitchGroup >> (2 * i)) & 0x03) != (unsigned int)value) { + unsigned int mask = ((unsigned int) 0x03 << (2 * i)); + model->functionSwitchGroup = (model->functionSwitchGroup & ~ mask) | ((unsigned int) value << (2 * i)); + emit modified(); + } + lock = false; + } +} + /******************************************************************************/ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware, @@ -1221,6 +1386,11 @@ SetupPanel::SetupPanel(QWidget * parent, ModelData & model, GeneralSettings & ge ui->trimsDisplay->setField(model.trimsDisplay, this); + if (Boards::getCapability(firmware->getBoard(), Board::NumFunctionSwitches) > 0) + ui->functionSwitchesLayout->addWidget(new FunctionSwitchesPanel(this, model, generalSettings, firmware)); + //else + // ui->functionSwitchesLayout->hide(); + for (int i = firmware->getCapability(NumFirstUsableModule); i < firmware->getCapability(NumModules); i++) { modules[i] = new ModulePanel(this, model, model.moduleData[i], generalSettings, firmware, i); ui->modulesLayout->addWidget(modules[i]); diff --git a/companion/src/modeledit/setup.h b/companion/src/modeledit/setup.h index 824b28acb..c63932237 100644 --- a/companion/src/modeledit/setup.h +++ b/companion/src/modeledit/setup.h @@ -31,8 +31,11 @@ namespace Ui { class Setup; class Timer; class Module; + class FunctionSwitches; } +class AutoLineEdit; + class TimerPanel : public ModelPanel { Q_OBJECT @@ -128,6 +131,31 @@ class ModulePanel : public ModelPanel void updateFailsafeUI(unsigned channel, quint8 updtSb); }; +class FunctionSwitchesPanel : public ModelPanel +{ + Q_OBJECT + + public: + FunctionSwitchesPanel(QWidget * parent, ModelData & model, GeneralSettings & generalSettings, Firmware * firmware); + virtual ~FunctionSwitchesPanel(); + + virtual void update(); + void update(int index); + + private slots: + void on_configCurrentIndexChanged(int index); + void on_startPosnCurrentIndexChanged(int index); + void on_groupChanged(int value); + + private: + Ui::FunctionSwitches * ui; + QVector aleNames; + QVector cboConfigs; + QVector cboStartupPosns; + QVector sbGroups; + int switchcnt; +}; + class SetupPanel : public ModelPanel { Q_OBJECT diff --git a/companion/src/modeledit/setup.ui b/companion/src/modeledit/setup.ui index ee0ec28a3..51aae4f1e 100644 --- a/companion/src/modeledit/setup.ui +++ b/companion/src/modeledit/setup.ui @@ -7,7 +7,7 @@ 0 0 1007 - 405 + 435 @@ -630,6 +630,9 @@ If this is checked the throttle will be reversed. Idle will be forward, trim wi + + + diff --git a/companion/src/modeledit/setup_function_switches.ui b/companion/src/modeledit/setup_function_switches.ui new file mode 100644 index 000000000..acfd88e5d --- /dev/null +++ b/companion/src/modeledit/setup_function_switches.ui @@ -0,0 +1,121 @@ + + + FunctionSwitches + + + + 0 + 0 + 231 + 140 + + + + Form + + + + 0 + + + 0 + + + 0 + + + 0 + + + + + Qt::Horizontal + + + + + + + + + + 75 + true + + + + Function Switches + + + Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop + + + + + + + QLayout::SetMinimumSize + + + + + Type + + + + + + + + 0 + 0 + + + + Group + + + + + + + Start + + + + + + + Name + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + diff --git a/companion/src/simulation/CMakeLists.txt b/companion/src/simulation/CMakeLists.txt index cc605abbb..091867696 100644 --- a/companion/src/simulation/CMakeLists.txt +++ b/companion/src/simulation/CMakeLists.txt @@ -14,6 +14,7 @@ set(simulation_SRCS simulateduiwidgetX12.cpp simulateduiwidgetJumperT12.cpp simulateduiwidgetJumperTLITE.cpp + simulateduiwidgetJumperTPRO.cpp simulateduiwidgetJumperT16.cpp simulateduiwidgetJumperT18.cpp simulateduiwidgetTX12.cpp @@ -46,6 +47,7 @@ set(simulation_UIS simulateduiwidgetX12.ui simulateduiwidgetJumperT12.ui simulateduiwidgetJumperTLITE.ui + simulateduiwidgetJumperTPRO.ui simulateduiwidgetJumperT16.ui simulateduiwidgetJumperT18.ui simulateduiwidgetTX12.ui diff --git a/companion/src/simulation/simulateduiwidget.h b/companion/src/simulation/simulateduiwidget.h index 579ad567f..187a60660 100644 --- a/companion/src/simulation/simulateduiwidget.h +++ b/companion/src/simulation/simulateduiwidget.h @@ -113,6 +113,7 @@ namespace Ui { class SimulatedUIWidgetX12; class SimulatedUIWidgetJumperT12; class SimulatedUIWidgetJumperTLITE; + class SimulatedUIWidgetJumperTPRO; class SimulatedUIWidgetJumperT16; class SimulatedUIWidgetJumperT18; class SimulatedUIWidgetTX16S; @@ -258,6 +259,18 @@ class SimulatedUIWidgetJumperTLITE: public SimulatedUIWidget Ui::SimulatedUIWidgetJumperTLITE * ui; }; +class SimulatedUIWidgetJumperTPRO: public SimulatedUIWidget +{ + Q_OBJECT + + public: + explicit SimulatedUIWidgetJumperTPRO(SimulatorInterface * simulator, QWidget * parent = NULL); + virtual ~SimulatedUIWidgetJumperTPRO(); + + private: + Ui::SimulatedUIWidgetJumperTPRO * ui; +}; + class SimulatedUIWidgetJumperT16: public SimulatedUIWidget { Q_OBJECT diff --git a/companion/src/simulation/simulateduiwidgetJumperTPRO.cpp b/companion/src/simulation/simulateduiwidgetJumperTPRO.cpp new file mode 100644 index 000000000..e46c7fbad --- /dev/null +++ b/companion/src/simulation/simulateduiwidgetJumperTPRO.cpp @@ -0,0 +1,54 @@ +#include "simulateduiwidget.h" +#include "ui_simulateduiwidgetJumperTPRO.h" + +// NOTE: RadioUiAction(NUMBER,...): NUMBER relates to enum EnumKeys in the specific board.h + +SimulatedUIWidgetJumperTPRO::SimulatedUIWidgetJumperTPRO(SimulatorInterface *simulator, QWidget * parent): + SimulatedUIWidget(simulator, parent), + ui(new Ui::SimulatedUIWidgetJumperTPRO) +{ + RadioUiAction * act; + + ui->setupUi(this); + + act = new RadioUiAction(0, QList() << Qt::Key_PageUp << Qt::Key_Up, SIMU_STR_HLP_KEYS_GO_UP, SIMU_STR_HLP_ACT_MENU_ICN); + addRadioWidget(ui->leftbuttons->addArea(QRect(70, 85, 110, 90), "JumperTPRO/left.png", act)); + + act = new RadioUiAction(3, QList() << Qt::Key_PageDown << Qt::Key_Down, SIMU_STR_HLP_KEYS_GO_DN, SIMU_STR_HLP_ACT_PAGE); + addRadioWidget(ui->leftbuttons->addArea(QRect(53, 174, 110, 90), "JumperTPRO/left.png", act)); + + act = new RadioUiAction(1, QList() << Qt::Key_Delete << Qt::Key_Escape << Qt::Key_Backspace, SIMU_STR_HLP_KEYS_EXIT, SIMU_STR_HLP_ACT_EXIT); + addRadioWidget(ui->leftbuttons->addArea(QRect(11, 257, 110, 90), "JumperTPRO/left.png", act)); + + m_mouseMidClickAction = new RadioUiAction(2, QList() << Qt::Key_Enter << Qt::Key_Return, SIMU_STR_HLP_KEYS_ACTIVATE, SIMU_STR_HLP_ACT_ROT_DN); + addRadioWidget(ui->rightbuttons->addArea(QRect(10, 96, 200, 220), "JumperTPRO/right.png", m_mouseMidClickAction)); + + //addRadioWidget(ui->leftbuttons->addArea(QRect(10, 65, 70, 50), "JumperTPRO/left_scrnshot.png", m_screenshotAction)); + + m_backlightColors << QColor(215, 243, 255); // X7 Blue + m_backlightColors << QColor(166,247,159); + m_backlightColors << QColor(247,159,166); + m_backlightColors << QColor(255,195,151); + m_backlightColors << QColor(247,242,159); + + setLcd(ui->lcd); + + QString css = "#radioUiWidget {" + "background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1," + "stop:0 rgba(255, 255, 255, 255)," + "stop:0.757062 rgba(241, 238, 238, 255)," + "stop:1 rgba(247, 245, 245, 255));" + "}"; + + QTimer * tim = new QTimer(this); + tim->setSingleShot(true); + connect(tim, &QTimer::timeout, [this, css]() { + emit customStyleRequest(css); + }); + tim->start(100); +} + +SimulatedUIWidgetJumperTPRO::~SimulatedUIWidgetJumperTPRO() +{ + delete ui; +} diff --git a/companion/src/simulation/simulateduiwidgetJumperTPRO.ui b/companion/src/simulation/simulateduiwidgetJumperTPRO.ui new file mode 100644 index 000000000..5a77f11ff --- /dev/null +++ b/companion/src/simulation/simulateduiwidgetJumperTPRO.ui @@ -0,0 +1,258 @@ + + + SimulatedUIWidgetJumperTPRO + + + + 0 + 0 + 725 + 389 + + + + + 0 + 0 + + + + + 725 + 389 + + + + + 501 + 310 + + + + Jumper T-Pro Simulator + + + background-color: qlineargradient(spread:reflect, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(255, 255, 255, 255), stop:0.757062 rgba(241, 238, 238, 255), stop:1 rgba(247, 245, 245, 255)); + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + + 0 + 0 + + + + + 234 + 368 + + + + + 234 + 368 + + + + background:url(:/images/simulator/JumperTPRO/left.png); + + + + + + + + 0 + 0 + + + + + 256 + 231 + + + + + 256 + 231 + + + + background-color: rgb(215, 243, 255); + + + + + + + + 0 + 0 + + + + + 236 + 368 + + + + + 236 + 368 + + + + background:url(:/images/simulator/JumperTPRO/right.png) + + + + + + + + 0 + 0 + + + + + 255 + 85 + + + + + 255 + 85 + + + + background:url(:/images/simulator/JumperTPRO/top.png) + + + + + + + + 0 + 0 + + + + + 255 + 131 + + + + + 255 + 131 + + + + background:url(:/images/simulator/JumperTPRO/bottom.png) + + + + + + + + 0 + 0 + + + + + 0 + 10 + + + + + 16777215 + 12 + + + + + 0 + 12 + + + + background-color: rgb(255, 255, 255); + + + + + + + + + + + 0 + 0 + + + + + 0 + 10 + + + + + 16777215 + 10 + + + + background-color: rgb(247, 245, 245); + + + + + + + + + + + LcdWidget + QWidget +

lcdwidget.h
+ 1 + + + ButtonsWidget + QWidget +
buttonswidget.h
+ 1 +
+ + + + diff --git a/companion/src/simulation/simulatorwidget.cpp b/companion/src/simulation/simulatorwidget.cpp index b087c7055..8f3ef08c2 100644 --- a/companion/src/simulation/simulatorwidget.cpp +++ b/companion/src/simulation/simulatorwidget.cpp @@ -94,6 +94,9 @@ SimulatorWidget::SimulatorWidget(QWidget * parent, SimulatorInterface * simulato case Board::BOARD_JUMPER_TLITE: radioUiWidget = new SimulatedUIWidgetJumperTLITE(simulator, this); break; + case Board::BOARD_JUMPER_TPRO: + radioUiWidget = new SimulatedUIWidgetJumperTPRO(simulator, this); + break; case Board::BOARD_JUMPER_T16: radioUiWidget = new SimulatedUIWidgetJumperT16(simulator, this); break; diff --git a/radio/src/dataconstants.h b/radio/src/dataconstants.h index fd108bf56..268dcb9a5 100644 --- a/radio/src/dataconstants.h +++ b/radio/src/dataconstants.h @@ -419,7 +419,12 @@ enum SwitchSources { SWSRC_SD2, #endif -#if defined(STORAGE_SWITCH_E) +#if defined(FUNCTION_SWITCHES) && defined(RADIO_TPRO) + SWSRC_FIRST_FUNCTION_SWITCH, + SWSRC_SE0 = SWSRC_FIRST_FUNCTION_SWITCH, + SWSRC_SE1, + SWSRC_SE2, +#elif defined(STORAGE_SWITCH_E) SWSRC_SE0, SWSRC_SE1, SWSRC_SE2, @@ -569,7 +574,7 @@ enum SwitchSources { SWSRC_INVERT SKIP = SWSRC_COUNT+1, }; -#if NUM_SWITCHES >= 8 +#if NUM_SWITCHES - NUM_FUNCTIONS_SWITCHES >= 8 #define SWSRC_TRAINER SWSRC_SH2 #else #define SWSRC_TRAINER SWSRC_LAST_SWITCH, @@ -786,11 +791,15 @@ enum MixSources { static_assert(MIXSRC_FIRST_LOGICAL_SWITCH == MIXSRC_FIRST_SWITCH + STORAGE_NUM_SWITCHES, "Wrong switches definition in MIXSRC list"); #endif -#define MIXSRC_FIRST (MIXSRC_NONE + 1) -#define MIXSRC_LAST MIXSRC_LAST_CH -#define MIXSRC_LAST_SWITCH (MIXSRC_FIRST_SWITCH + STORAGE_NUM_SWITCHES - 1) -#define INPUTSRC_FIRST MIXSRC_Rud -#define INPUTSRC_LAST MIXSRC_LAST_TELEM +#define MIXSRC_FIRST (MIXSRC_NONE + 1) +#define MIXSRC_LAST MIXSRC_LAST_CH +#define MIXSRC_LAST_SWITCH (MIXSRC_FIRST_SWITCH + STORAGE_NUM_SWITCHES - 1) +#define INPUTSRC_FIRST MIXSRC_Rud +#define INPUTSRC_LAST MIXSRC_LAST_TELEM +#if defined(FUNCTION_SWITCHES) +#define MIXSRC_LAST_REGULAR_SWITCH (MIXSRC_FIRST_SWITCH + NUM_REGULAR_SWITCHES - 1) +#define MIXSRC_FIRST_FS_SWITCH (MIXSRC_LAST_REGULAR_SWITCH + 1) +#endif enum BacklightMode { e_backlight_mode_off = 0, diff --git a/radio/src/datastructs.h b/radio/src/datastructs.h index 5cc4c4319..8da911cf5 100644 --- a/radio/src/datastructs.h +++ b/radio/src/datastructs.h @@ -121,6 +121,9 @@ static inline void check_struct() #elif defined(PCBXLITE) CHKSIZE(RadioData, 858); CHKSIZE(ModelData, 6159); +#elif defined(RADIO_TPRO) + CHKSIZE(RadioData, 841); + CHKSIZE(ModelData, 6184); #elif defined(PCBX7) CHKSIZE(RadioData, 864); CHKSIZE(ModelData, 6159); diff --git a/radio/src/datastructs_private.h b/radio/src/datastructs_private.h index e062e926d..c4453ee69 100644 --- a/radio/src/datastructs_private.h +++ b/radio/src/datastructs_private.h @@ -616,6 +616,17 @@ PACK(struct CustomScreenData { #define SCRIPT_DATA #endif +#if defined(FUNCTION_SWITCHES) && NUM_FUNCTIONS_SWITCHES < 8 + #define FUNCTION_SWITCHS_FIELDS \ + uint16_t functionSwitchConfig; \ + uint16_t functionSwitchGroup; \ + uint16_t functionSwitchStartConfig; \ + uint8_t functionSwitchLogicalState; \ + char switchNames[NUM_FUNCTIONS_SWITCHES][LEN_SWITCH_NAME]; +#else + #define FUNCTION_SWITCHS_FIELDS +#endif + PACK(struct PartialModel { ModelHeader header; TimerData timers[MAX_TIMERS]; @@ -683,6 +694,8 @@ PACK(struct ModelData { char modelRegistrationID[PXX2_LEN_REGISTRATION_ID]; + FUNCTION_SWITCHS_FIELDS + bool isTrainerTraineeEnable() const { #if defined(PCBNV14) @@ -794,7 +807,7 @@ PACK(struct TrainerData { uint8_t backlightColor; \ CUST_ARRAY(sticksConfig, struct_sticksConfig, stick_name_valid); \ swconfig_t switchConfig ARRAY(2,struct_switchConfig,nullptr); \ - char switchNames[STORAGE_NUM_SWITCHES][LEN_SWITCH_NAME] SKIP; \ + char switchNames[STORAGE_NUM_SWITCHES - NUM_FUNCTIONS_SWITCHES][LEN_SWITCH_NAME] SKIP; \ char anaNames[NUM_STICKS+STORAGE_NUM_POTS+STORAGE_NUM_SLIDERS][LEN_ANA_NAME] SKIP; \ BLUETOOTH_FIELDS #else diff --git a/radio/src/gui/128x64/model_setup.cpp b/radio/src/gui/128x64/model_setup.cpp index f6a6c6160..9460b4a74 100644 --- a/radio/src/gui/128x64/model_setup.cpp +++ b/radio/src/gui/128x64/model_setup.cpp @@ -39,7 +39,7 @@ uint8_t g_moduleIdx; uint8_t getSwitchWarningsCount() { uint8_t count = 0; - for (int i=0; ipersistent = editChoice(MODEL_SETUP_2ND_COLUMN, y, STR_PERSISTENT, STR_VPERSISTENT, timer->persistent, 0, 2, attr, event); break; } +#if defined(FUNCTION_SWITCHES) + case ITEM_MODEL_SETUP_LABEL: + lcdDrawTextAlignedLeft(y, "Function Switches"); + break; + + case ITEM_MODEL_SETUP_SW1: + case ITEM_MODEL_SETUP_SW2: + case ITEM_MODEL_SETUP_SW3: + case ITEM_MODEL_SETUP_SW4: + case ITEM_MODEL_SETUP_SW5: + case ITEM_MODEL_SETUP_SW6: + { + int index = k - ITEM_MODEL_SETUP_SW1; + int config = FSWITCH_CONFIG(index); + lcdDrawTextAtIndex(INDENT_WIDTH, y, STR_VSRCRAW, MIXSRC_FIRST_SWITCH + NUM_REGULAR_SWITCHES - MIXSRC_Rud + index + 1, menuHorizontalPosition < 0 ? attr : 0); + if (ZEXIST(g_model.switchNames[index]) || (attr && s_editMode > 0 && menuHorizontalPosition == 0)) + editName(35, y, g_model.switchNames[index], LEN_SWITCH_NAME, event, true, menuHorizontalPosition == 0 ? attr : 0, old_editMode); + else + lcdDrawMMM(35, y, menuHorizontalPosition == 0 ? attr : 0); + config = editChoice(30 + 5*FW, y, "", STR_SWTYPES, config, SWITCH_NONE, SWITCH_2POS, menuHorizontalPosition == 1 ? attr : 0, event); + if (attr && checkIncDec_Ret) { + swconfig_t mask = (swconfig_t)0x03 << (2*index); + g_model.functionSwitchConfig = (g_model.functionSwitchConfig & ~mask) | ((swconfig_t(config) & 0x03) << (2*index)); + } + + config = FSWITCH_GROUP(index); + config = editChoice(30 + 15*FW, y, "", STR_FSGROUPS, config, 0, 3, menuHorizontalPosition == 2 ? attr : 0, event); + if (attr && checkIncDec_Ret && menuHorizontalPosition == 2) { + swconfig_t mask = (swconfig_t) 0x03 << (2 * index); + g_model.functionSwitchGroup = (g_model.functionSwitchGroup & ~mask) | ((swconfig_t(config) & 0x03) << (2 * index)); + } + break; + } + + case ITEM_MODEL_SETUP_FS_STARTUP: + { + char c; + lcdDrawText(0, y, INDENT "Start", menuHorizontalPosition < 0 ? attr : 0); + for (uint8_t i = 0; i < NUM_FUNCTIONS_SWITCHES; i++) { + uint8_t startPos = (g_model.functionSwitchStartConfig >> 2 * i) & 0x03; + c = "\300\301="[(g_model.functionSwitchStartConfig >> 2 * i) & 0x03]; + lcdDrawNumber(MODEL_SETUP_2ND_COLUMN - (2 + FW) + i * 2 * FW, y, i + 1, 0); + lcdDrawChar(lcdNextPos, y, c, attr && (menuHorizontalPosition == i) ? (s_editMode ? INVERS + BLINK : INVERS) : 0); + if (attr && menuHorizontalPosition == i) { + CHECK_INCDEC_MODELVAR(event, startPos, 0, 2); + } + if (attr && checkIncDec_Ret) { + swconfig_t mask = (swconfig_t)0x03 << (2*i); + g_model.functionSwitchStartConfig = (g_model.functionSwitchStartConfig & ~mask) | ((swconfig_t(startPos) & 0x03) << (2*i)); + storageDirty(EE_MODEL); + } + } + break; + } +#endif case ITEM_MODEL_SETUP_EXTENDED_LIMITS: g_model.extendedLimits = editCheckBox(g_model.extendedLimits, MODEL_SETUP_2ND_COLUMN, y, STR_ELIMITS, attr, event); break; @@ -724,7 +796,7 @@ void menuModelSetup(event_t event) } int current = 0; - for (int i = 0; i < NUM_SWITCHES; i++) { + for (int i = 0; i < NUM_SWITCHES - NUM_FUNCTIONS_SWITCHES; i++) { if (SWITCH_WARNING_ALLOWED(i)) { div_t qr = div(current, MAX_SWITCH_PER_LINE); if (!READ_ONLY() && event == EVT_KEY_BREAK(KEY_ENTER) && attr && diff --git a/radio/src/gui/128x64/radio_diagkeys.cpp b/radio/src/gui/128x64/radio_diagkeys.cpp index 02f9b4b86..2452b900b 100644 --- a/radio/src/gui/128x64/radio_diagkeys.cpp +++ b/radio/src/gui/128x64/radio_diagkeys.cpp @@ -41,7 +41,7 @@ void menuRadioDiagKeys(event_t event) lcdDrawText(14*FW, MENU_HEADER_HEIGHT + 1, STR_VTRIM); - for (uint8_t i=0; i<9; i++) { + for (uint8_t i=0; i<10; i++) { coord_t y; if (i < NUM_TRIMS_KEYS) { @@ -69,10 +69,19 @@ void menuRadioDiagKeys(event_t event) drawSwitch(8*FW, y, i+1, 0); displaySwitchState(11*FW+2, y, i); } +#elif (NUM_SWITCHES > 6) + if (i < NUM_SWITCHES) { + if (SWITCH_EXISTS(i)) { + y = (i > 4) ? FH*(i-4) : MENU_HEADER_HEIGHT + FH*i; + getvalue_t val = getValue(MIXSRC_FIRST_SWITCH+i); + getvalue_t sw = ((val < 0) ? 3*i+1 : ((val == 0) ? 3*i+2 : 3*i+3)); + drawSwitch(i > 4 ? 11*FW-5: 8*FW-9, y, sw, 0, false); + } + } #else if (i < NUM_SWITCHES) { if (SWITCH_EXISTS(i)) { - y = (NUM_SWITCHES > 6 ? 0 : MENU_HEADER_HEIGHT) + FH*i; + y = (NUM_SWITCHES - NUM_FUNCTIONS_SWITCHES > 6 ? 0 : MENU_HEADER_HEIGHT) + FH*i; getvalue_t val = getValue(MIXSRC_FIRST_SWITCH+i); getvalue_t sw = ((val < 0) ? 3*i+1 : ((val == 0) ? 3*i+2 : 3*i+3)); drawSwitch(8*FW+4, y, sw, 0); @@ -81,8 +90,18 @@ void menuRadioDiagKeys(event_t event) #endif } +#if defined(FUNCTION_SWITCHES) && defined(DEBUG) + lcdDrawText(LCD_W / 2 , LCD_H - 2 * FH, "Phys"); + lcdDrawText(LCD_W / 2 , LCD_H - 1 * FH, "Log"); + + for (uint8_t i = 0; i < NUM_FUNCTIONS_SWITCHES; i++) { + lcdDrawNumber(LCD_W / 2 + 20 + (i + 1) * FW , LCD_H - 2 * FH, getFSPhysicalState(i)); + lcdDrawNumber(LCD_W / 2 + 20 + (i + 1) * FW , LCD_H - 1 * FH, getFSLogicalState(i)); + } +#endif + #if defined(ROTARY_ENCODER_NAVIGATION) - coord_t y = MENU_HEADER_HEIGHT + 1 + FH*KEY_COUNT; + coord_t y = LCD_H - FH - 1; lcdDrawText(0, y, STR_ROTARY_ENCODER); lcdDrawNumber(5*FW+FWNUM+2, y, rotencValue / ROTARY_ENCODER_GRANULARITY, RIGHT); #endif diff --git a/radio/src/gui/128x64/view_main.cpp b/radio/src/gui/128x64/view_main.cpp index 471dc7168..35039c4a7 100644 --- a/radio/src/gui/128x64/view_main.cpp +++ b/radio/src/gui/128x64/view_main.cpp @@ -660,7 +660,7 @@ void menuMainView(event_t event) } } #elif defined(PCBTARANIS) - uint8_t switches = min(NUM_SWITCHES, 6); + uint8_t switches = min(NUM_SWITCHES- NUM_FUNCTIONS_SWITCHES, 6); for (int i = 0; i < switches; ++i) { if (SWITCH_EXISTS(i)) { uint8_t x = 2 * FW - 2, y = 4 * FH + i * FH + 1; diff --git a/radio/src/gui/common/stdlcd/radio_hardware.cpp b/radio/src/gui/common/stdlcd/radio_hardware.cpp index 48bb47246..67de15c46 100644 --- a/radio/src/gui/common/stdlcd/radio_hardware.cpp +++ b/radio/src/gui/common/stdlcd/radio_hardware.cpp @@ -55,6 +55,7 @@ enum { ITEM_RADIO_HARDWARE_SB, ITEM_RADIO_HARDWARE_SC, ITEM_RADIO_HARDWARE_SD, +#if !defined(RADIO_TPRO) #if defined(HARDWARE_SWITCH_E) ITEM_RADIO_HARDWARE_SE, #endif @@ -73,6 +74,7 @@ enum { #if defined(HARDWARE_SWITCH_J) ITEM_RADIO_HARDWARE_SJ, #endif +#endif #if defined(HARDWARE_SWITCH_K) ITEM_RADIO_HARDWARE_SK, ITEM_RADIO_HARDWARE_SL, @@ -154,6 +156,8 @@ enum { #if defined(PCBX9E) #define SWITCHES_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 +#elif defined(RADIO_TPRO) + #define SWITCHES_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1 #elif defined(RADIO_T12) #define SWITCHES_ROWS NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|1, NAVIGATION_LINE_BY_LINE|HIDDEN_ROW, NAVIGATION_LINE_BY_LINE|HIDDEN_ROW #elif NUM_SWITCHES == 9 @@ -432,6 +436,7 @@ void menuRadioHardware(event_t event) case ITEM_RADIO_HARDWARE_SB: case ITEM_RADIO_HARDWARE_SC: case ITEM_RADIO_HARDWARE_SD: +#if !defined(RADIO_TPRO) #if defined(HARDWARE_SWITCH_E) case ITEM_RADIO_HARDWARE_SE: #endif @@ -450,6 +455,7 @@ void menuRadioHardware(event_t event) #if defined(HARDWARE_SWITCH_J) case ITEM_RADIO_HARDWARE_SJ: #endif +#endif #if defined(HARDWARE_SWITCH_K) case ITEM_RADIO_HARDWARE_SK: case ITEM_RADIO_HARDWARE_SL: diff --git a/radio/src/hal/adc_driver.cpp b/radio/src/hal/adc_driver.cpp index a7e5dc6c9..a02c3a78b 100644 --- a/radio/src/hal/adc_driver.cpp +++ b/radio/src/hal/adc_driver.cpp @@ -59,6 +59,8 @@ const etx_hal_adc_driver_t* etx_hal_adc_driver = nullptr; const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, -1,-1, 1, 1}; #elif defined(RADIO_ZORRO) const int8_t adcDirection[NUM_ANALOGS] = {-1, 1, 1, -1, -1, 1, 1, 1}; +#elif defined(RADIO_TPRO) + const int8_t adcDirection[NUM_ANALOGS] = {1,-1,1,-1, 1,1, 1, 1}; #elif defined(PCBX7) const int8_t adcDirection[NUM_ANALOGS] = {-1,1,-1,1, 1,1, 1, 1}; #elif defined(PCBX9LITE) diff --git a/radio/src/lua/CMakeLists.txt b/radio/src/lua/CMakeLists.txt index 8a75d379c..685778108 100644 --- a/radio/src/lua/CMakeLists.txt +++ b/radio/src/lua/CMakeLists.txt @@ -30,6 +30,7 @@ if(PYTHONINTERP_FOUND) add_lua_export_target(x12s ${LUA_INCLUDES} -DPCBHORUS -DPCBX12S) add_lua_export_target(t12 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_T12) add_lua_export_target(tlite ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_TLITE) + add_lua_export_target(tpro ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_TPRO) add_lua_export_target(tx12 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_TX12) add_lua_export_target(zorro ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_ZORRO) add_lua_export_target(t8 ${LUA_INCLUDES} -DPCBTARANIS -DPCBX7 -DRADIO_T8) diff --git a/radio/src/lua/api_general.cpp b/radio/src/lua/api_general.cpp index 8ac29f153..354cdd1c8 100644 --- a/radio/src/lua/api_general.cpp +++ b/radio/src/lua/api_general.cpp @@ -50,6 +50,8 @@ #include "lua/lua_exports_t12.inc" #elif defined(RADIO_TLITE) #include "lua/lua_exports_tlite.inc" +#elif defined(RADIO_TPRO) + #include "lua/lua_exports_tpro.inc" #elif defined(RADIO_TX12) #include "lua/lua_exports_tx12.inc" #elif defined(RADIO_ZORRO) diff --git a/radio/src/mixer.cpp b/radio/src/mixer.cpp index 92214f605..cdb90e6df 100644 --- a/radio/src/mixer.cpp +++ b/radio/src/mixer.cpp @@ -348,6 +348,20 @@ getvalue_t getValue(mixsrc_t i) // TODO : find a better define #if defined(PCBFRSKY) || defined(PCBFLYSKY) +#if defined(FUNCTION_SWITCHES) + else if (i >= MIXSRC_FIRST_SWITCH && i <= MIXSRC_LAST_REGULAR_SWITCH) { + mixsrc_t sw = i - MIXSRC_FIRST_SWITCH; + if (SWITCH_EXISTS(sw)) { + return (switchState(3*sw) ? -1024 : (IS_CONFIG_3POS(sw) && switchState(3*sw+1) ? 0 : 1024)); + } + else { + return 0; + } + } + else if (i >= MIXSRC_FIRST_FS_SWITCH && i <= MIXSRC_LAST_SWITCH) { + return getFSLogicalState(i - MIXSRC_FIRST_SWITCH - NUM_REGULAR_SWITCHES) ? +1024 : -1024; + } +#else else if (i >= MIXSRC_FIRST_SWITCH && i <= MIXSRC_LAST_SWITCH) { mixsrc_t sw = i - MIXSRC_FIRST_SWITCH; if (SWITCH_EXISTS(sw)) { @@ -357,6 +371,7 @@ getvalue_t getValue(mixsrc_t i) return 0; } } +#endif #else else if (i == MIXSRC_3POS) { return (getSwitch(SW_ID0+1) ? -1024 : (getSwitch(SW_ID1+1) ? 0 : 1024)); diff --git a/radio/src/model_init.cpp b/radio/src/model_init.cpp index 492ccb190..ce3b3cf7b 100644 --- a/radio/src/model_init.cpp +++ b/radio/src/model_init.cpp @@ -114,6 +114,13 @@ void applyDefaultTemplate() setDefaultModelRegistrationID(); +#if defined(FUNCTION_SWITCHES) + g_model.functionSwitchConfig = DEFAULT_FS_CONFIG; + g_model.functionSwitchGroup = DEFAULT_FS_GROUPS; + g_model.functionSwitchStartConfig = DEFAULT_FS_STARTUP_CONFIG; + g_model.functionSwitchLogicalState = 0; +#endif + #if defined(COLORLCD) //TODO: not sure yet we need it here loadDefaultLayout(); diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 958e529a3..a8117e792 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -83,9 +83,18 @@ #if defined(PCBFRSKY) || defined(PCBNV14) #define SWITCH_CONFIG(x) (bfGet(g_eeGeneral.switchConfig, 2*(x), 2)) +#if defined(FUNCTION_SWITCHES) + #define FSWITCH_CONFIG(x) (bfGet(g_model.functionSwitchConfig, 2*(x), 2)) + #define FSWITCH_GROUP(x) (bfGet(g_model.functionSwitchGroup, 2*(x), 2)) + #define IS_SWITCH_FS(x) (x >= NUM_REGULAR_SWITCHES) + #define SWITCH_EXISTS(x) (IS_SWITCH_FS(x) ? true : (FSWITCH_CONFIG(x) != SWITCH_NONE)) + #define IS_CONFIG_3POS(x) (IS_SWITCH_FS(x) ? (FSWITCH_CONFIG(x - NUM_REGULAR_SWITCHES) == SWITCH_3POS) : (SWITCH_CONFIG(x) == SWITCH_3POS)) + #define IS_CONFIG_TOGGLE(x) (IS_SWITCH_FS(x) ? (FSWITCH_CONFIG(x - NUM_REGULAR_SWITCHES) == SWITCH_TOGGLE) : (SWITCH_CONFIG(x) == SWITCH_TOGGLE)) +#else #define SWITCH_EXISTS(x) (SWITCH_CONFIG(x) != SWITCH_NONE) #define IS_CONFIG_3POS(x) (SWITCH_CONFIG(x) == SWITCH_3POS) #define IS_CONFIG_TOGGLE(x) (SWITCH_CONFIG(x) == SWITCH_TOGGLE) +#endif #define SWITCH_WARNING_ALLOWED(x) (SWITCH_EXISTS(x) && !IS_CONFIG_TOGGLE(x)) #else #define IS_CONFIG_3POS(x) IS_3POS(x) diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index f358af4a4..16895d2c6 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -171,6 +171,10 @@ void per10ms() readKeysAndTrims(); +#if defined(FUNCTION_SWITCHES) + evalFunctionSwitches(); +#endif + #if defined(ROTARY_ENCODER_NAVIGATION) if (IS_ROTARY_ENCODER_NAVIGATION_ENABLE()) { static rotenc_t rePreviousValue; @@ -372,7 +376,6 @@ uint16_t evalChkSum() return sum; } - bool isInputRecursive(int index) { ExpoData * line = expoAddress(0); @@ -1414,6 +1417,12 @@ void opentxStart(const uint8_t startOptions = OPENTX_START_DEFAULT_ARGS) ALERT(STR_TEST_WARNING, TR_TEST_NOTSAFE, AU_ERROR); #endif +#if defined(FUNCTION_SWITCHES) + if (!UNEXPECTED_SHUTDOWN()) { + setFSStartupPosition(); + } +#endif + #if defined(GUI) if (calibration_needed) { #if defined(LIBOPENUI) diff --git a/radio/src/opentx_constants.h b/radio/src/opentx_constants.h index 4b6559a65..bcb934df5 100644 --- a/radio/src/opentx_constants.h +++ b/radio/src/opentx_constants.h @@ -41,6 +41,12 @@ enum SliderConfig { SLIDER_WITH_DETENT, }; +enum fsStartPositionType { + FS_START_UP, + FS_START_DOWN, + FS_START_PREVIOUS +}; + enum CalibrationState { CALIB_START, CALIB_SET_MIDPOINT, diff --git a/radio/src/sdcard.h b/radio/src/sdcard.h index 2ac4f5dc6..43896b690 100644 --- a/radio/src/sdcard.h +++ b/radio/src/sdcard.h @@ -152,6 +152,8 @@ const char * getBasename(const char * path); #define OTX_FOURCC 0x3D78746F // otx for Jumper T12 #elif defined(RADIO_TLITE) #define OTX_FOURCC 0x4278746F // otx for Jumper TLite +#elif defined(RADIO_TPRO) + #define OTX_FOURCC 0x4678746F // otx for Jumper TPro #elif defined(RADIO_TX12) #define OTX_FOURCC 0x4178746F // otx for Radiomaster TX12 #elif defined(RADIO_ZORRO) diff --git a/radio/src/simu.cpp b/radio/src/simu.cpp index 53410cb2e..e88309434 100644 --- a/radio/src/simu.cpp +++ b/radio/src/simu.cpp @@ -445,7 +445,14 @@ void OpenTxSim::updateKeysAndSwitches(bool start) SWITCH_KEY(C, 2, 3); SWITCH_KEY(D, 3, 3); - #if defined(HARDWARE_SWITCH_G) && defined(HARDWARE_SWITCH_H) + #if defined(RADIO_TPRO) + SWITCH_KEY(1, 4, 2); + SWITCH_KEY(2, 5, 2); + SWITCH_KEY(3, 6, 2); + SWITCH_KEY(4, 7, 2); + SWITCH_KEY(5, 8, 2); + SWITCH_KEY(6, 9, 2); + #elif defined(HARDWARE_SWITCH_G) && defined(HARDWARE_SWITCH_H) SWITCH_KEY(E, 4, 3); SWITCH_KEY(F, 5, 2); SWITCH_KEY(G, 6, 3); diff --git a/radio/src/storage/conversions/CMakeLists.txt b/radio/src/storage/conversions/CMakeLists.txt index 601482530..75ec49ad2 100644 --- a/radio/src/storage/conversions/CMakeLists.txt +++ b/radio/src/storage/conversions/CMakeLists.txt @@ -1,8 +1,11 @@ set(STORAGE_CONVERSIONS 219) -if(PCB STREQUAL X7 AND PCBREV STREQUAL ZORRO) - set(STORAGE_CONVERSIONS 221) +if(PCB STREQUAL X7) + if(PCBREV STREQUAL ZORRO OR PCBREV STREQUAL TPRO) + set(STORAGE_CONVERSIONS 221) + endif() endif() +message("Storage conversion: ${STORAGE_CONVERSIONS}") if(STORAGE_CONVERSIONS) add_definitions(-DSTORAGE_CONVERSIONS=${STORAGE_CONVERSIONS}) diff --git a/radio/src/storage/conversions/conversions_219_220.cpp b/radio/src/storage/conversions/conversions_219_220.cpp index d65d528af..efbaaa7c7 100644 --- a/radio/src/storage/conversions/conversions_219_220.cpp +++ b/radio/src/storage/conversions/conversions_219_220.cpp @@ -35,6 +35,8 @@ #include #endif +#if STORAGE_CONVERSIONS < 220 + // // Summary of all changes between 219 & 220 // @@ -349,3 +351,5 @@ const char* convertRadioData_219_to_220() return nullptr; } #endif + +#endif diff --git a/radio/src/storage/conversions/conversions_220_221.cpp b/radio/src/storage/conversions/conversions_220_221.cpp index 634f8b960..7a1981c82 100644 --- a/radio/src/storage/conversions/conversions_220_221.cpp +++ b/radio/src/storage/conversions/conversions_220_221.cpp @@ -44,6 +44,8 @@ namespace yaml_conv_220 { const YamlNode* get_partialmodel_nodes(); }; +#if STORAGE_CONVERSIONS < 221 + #if defined(STORAGE_MODELSLIST) void patchFilenameToYaml(char* str); @@ -184,3 +186,5 @@ const char* convertRadioData_220_to_221() } #endif + +#endif diff --git a/radio/src/storage/conversions/yaml/dataconstants_220.h b/radio/src/storage/conversions/yaml/dataconstants_220.h index aefde174c..a520dd2d2 100644 --- a/radio/src/storage/conversions/yaml/dataconstants_220.h +++ b/radio/src/storage/conversions/yaml/dataconstants_220.h @@ -92,6 +92,8 @@ #if defined(PCBXLITES) || defined(PCBXLITE) #define STORAGE_NUM_SWITCHES 6 +#elif defined(RADIO_TPRO) +#define STORAGE_NUM_SWITCHES 10 #elif defined(RADIO_TLITE) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_T8) || defined(PCBX7ACCESS) || defined(PCBX7) #define STORAGE_NUM_SWITCHES 8 #elif defined(PCBX9LITES) diff --git a/radio/src/storage/conversions/yaml/datastructs_220.h b/radio/src/storage/conversions/yaml/datastructs_220.h index 2e5392317..b99edaf6e 100644 --- a/radio/src/storage/conversions/yaml/datastructs_220.h +++ b/radio/src/storage/conversions/yaml/datastructs_220.h @@ -999,6 +999,9 @@ static inline void check_struct() #elif defined(PCBXLITE) CHKSIZE(RadioData, 859); CHKSIZE(ModelData, 6157); +#elif defined(RADIO_TPRO) + CHKSIZE(RadioData, 860); + CHKSIZE(ModelData, 6157); #elif defined(PCBX7) CHKSIZE(RadioData, 865); CHKSIZE(ModelData, 6157); diff --git a/radio/src/strhelpers.cpp b/radio/src/strhelpers.cpp index 291e109ae..885201f86 100644 --- a/radio/src/strhelpers.cpp +++ b/radio/src/strhelpers.cpp @@ -444,20 +444,20 @@ int getRawSwitchIdx(char sw) char getRawSwitchFromIdx(int idx) { -#if defined(PCBX7) && !defined(RADIO_TX12) && !defined(RADIO_ZORRO) +#if defined(PCBX7) && !defined(RADIO_TX12) && !defined(RADIO_ZORRO) && !defined(RADIO_TPRO) if (idx >= 5) return 'H' + idx - 5; else if (idx == 4) -#if defined(RADIO_T12) + #if defined(RADIO_T12) return 'G'; -#else + #else return 'F'; -#endif + #endif else return 'A' + idx; #else return 'A' + idx; -#endif +#endif } char *getSwitchName(char *dest, swsrc_t idx) @@ -467,6 +467,13 @@ char *getSwitchName(char *dest, swsrc_t idx) dest = strAppend(dest, g_eeGeneral.switchNames[swinfo.quot], LEN_SWITCH_NAME); } else { +#if defined(FUNCTIONS_SWITCHES) + if (swinfo.quot >= NUM_REGULAR_SWITCHES) { + *dest++ = 'W'; + *dest++ = '1' + swinfo.quot - 4; + return dest; + } +#endif *dest++ = 'S'; *dest++ = getRawSwitchFromIdx(swinfo.quot); } diff --git a/radio/src/switches.cpp b/radio/src/switches.cpp index 5d77bb168..3d9ccad3f 100644 --- a/radio/src/switches.cpp +++ b/radio/src/switches.cpp @@ -70,6 +70,85 @@ uint8_t potsPos[NUM_XPOTS]; #define SWITCH_POSITION(sw) (switchesPos & ((MASK_CFN_TYPE)1<<(sw))) #define POT_POSITION(sw) ((potsPos[(sw)/XPOTS_MULTIPOS_COUNT] & 0x0f) == ((sw) % XPOTS_MULTIPOS_COUNT)) +#if defined(FUNCTION_SWITCHES) +// Non pushed : SWSRC_Sx0 = -1024 = Sx(up) = state 0 +// Pushed : SWSRC_Sx2 = +1024 = Sx(down) = state 1 + +uint8_t fsPreviousState = 0; + +void setFSStartupPosition() +{ + for (uint8_t i = 0; i < NUM_FUNCTIONS_SWITCHES; i++) { + uint8_t startPos = (g_model.functionSwitchStartConfig >> 2 * i) & 0x03; + switch(startPos) { + case FS_START_DOWN: + g_model.functionSwitchLogicalState &= ~(1 << i); // clear state + break; + + case FS_START_UP: + g_model.functionSwitchLogicalState |= 1 << i; + break; + + case FS_START_PREVIOUS: + default: + // Do nothing, use existing g_model.functionSwitchLogicalState value + break; + } + } +} + +uint8_t getFSLogicalState(uint8_t index) +{ + return (uint8_t )(bfSingleBitGet(g_model.functionSwitchLogicalState, index) >> (index)); +} + +uint8_t getFSPhysicalState(uint8_t index) +{ + return switchState(((index + NUM_REGULAR_SWITCHES) * 3) + 2) ? 1 : 0; +} + +uint8_t getFSPreviousPhysicalState(uint8_t index) +{ + return (uint8_t )(bfSingleBitGet(fsPreviousState, index) >> (index)); +} + +void evalFunctionSwitches() +{ + for (uint8_t i = 0; i < NUM_FUNCTIONS_SWITCHES; i++) { + if (FSWITCH_CONFIG(i) == SWITCH_NONE) { + fsLedOff(i); + continue; + } + + uint8_t physicalState = getFSPhysicalState(i); + if (physicalState != getFSPreviousPhysicalState(i)) { // FS was moved + if (FSWITCH_CONFIG(i) == SWITCH_2POS && physicalState == 1) { + g_model.functionSwitchLogicalState ^= 1 << i; // Toggle bit + } + else if (FSWITCH_CONFIG(i) == SWITCH_TOGGLE) { + g_model.functionSwitchLogicalState ^= (physicalState ^ g_model.functionSwitchLogicalState) & (1 << i); // Set bit to switch value + } + if (FSWITCH_GROUP(i) && physicalState == 1) { // switch is in a group, other in group need to be turned off + for (uint8_t j = 0; j < NUM_FUNCTIONS_SWITCHES; j++) { + if (i == j) + continue; + if (FSWITCH_GROUP(j) == FSWITCH_GROUP(i)) { + g_model.functionSwitchLogicalState &= ~(1 << j); // clear state + } + } + } + fsPreviousState ^= 1 << i; // Toggle state + storageDirty(EE_MODEL); + } + + if (getFSLogicalState(i)) + fsLedOn(i); + else + fsLedOff(i); + } +} +#endif + div_t switchInfo(int switchPosition) { return div(switchPosition-SWSRC_FIRST_SWITCH, 3); @@ -133,6 +212,11 @@ void getSwitchesPosition(bool startup) CHECK_2POS(SW_SA); CHECK_3POS(0, SW_SB); CHECK_3POS(1, SW_SC); +#elif defined(RADIO_TPRO) + CHECK_3POS(0, SW_SA); + CHECK_3POS(1, SW_SB); + CHECK_2POS(SW_SC); + CHECK_2POS(SW_SD); #else CHECK_3POS(0, SW_SA); CHECK_3POS(1, SW_SB); @@ -165,6 +249,13 @@ void getSwitchesPosition(bool startup) CHECK_2POS(SW_SD); CHECK_3POS(2, SW_SE); CHECK_3POS(3, SW_SF); +#elif defined(RADIO_TPRO) + CHECK_2POS(SW_SE); + CHECK_2POS(SW_SF); + CHECK_2POS(SW_SG); + CHECK_2POS(SW_SH); + CHECK_2POS(SW_SI); + CHECK_2POS(SW_SJ); #elif defined(PCBX7) CHECK_3POS(3, SW_SD); #if defined(RADIO_T12) @@ -456,8 +547,8 @@ bool getSwitch(swsrc_t swtch, uint8_t flags) result = latencyToggleSwitch; } #endif - else if (cs_idx <= SWSRC_LAST_SWITCH) { -#if defined(PCBFRSKY) + else if (cs_idx <= (SWSRC_LAST_SWITCH - 3 * NUM_FUNCTIONS_SWITCHES)) { +#if defined(PCBFRSKY) || defined(PCBFLYSKY) if (flags & GETSWITCH_MIDPOS_DELAY) result = SWITCH_POSITION(cs_idx-SWSRC_FIRST_SWITCH); else @@ -465,8 +556,14 @@ bool getSwitch(swsrc_t swtch, uint8_t flags) #else result = switchState(cs_idx-SWSRC_FIRST_SWITCH); #endif - } +#if defined(FUNCTION_SWITCHES) + else if (cs_idx <= SWSRC_LAST_SWITCH) { + div_t qr = div(cs_idx - 3 * NUM_FUNCTIONS_SWITCHES, 3); + auto value = getFSLogicalState(qr.quot + 1); + result = qr.rem == -2 ? 1 - value : value; + } +#endif #if NUM_XPOTS > 0 else if (cs_idx <= SWSRC_LAST_MULTIPOS_SWITCH) { result = POT_POSITION(cs_idx-SWSRC_FIRST_MULTIPOS_SWITCH); @@ -526,13 +623,14 @@ void evalLogicalSwitches(bool isCurrentFlightmode) } swarnstate_t switches_states = 0; +uint8_t fsswitches_states = 0; swsrc_t getMovedSwitch() { static tmr10ms_t s_move_last_time = 0; swsrc_t result = 0; // Switches - for (int i = 0; i < NUM_SWITCHES; i++) { + for (int i = 0; i < NUM_SWITCHES - NUM_FUNCTIONS_SWITCHES; i++) { if (SWITCH_EXISTS(i)) { swarnstate_t mask = ((swarnstate_t) 0x07 << (i * 3)); uint8_t prev = (switches_states & mask) >> (i * 3); @@ -544,6 +642,20 @@ swsrc_t getMovedSwitch() } } } + +#if defined(FUNCTION_SWITCHES) + for (int i = 0; i < NUM_FUNCTIONS_SWITCHES; i++) { + if (FSWITCH_CONFIG(i) != SWITCH_NONE) { + auto prev = (uint8_t )(bfSingleBitGet(fsswitches_states, i) >> (i)); + uint8_t next = getFSLogicalState(i); + if (prev != next) { + switches_states ^= (-next ^ switches_states) & (1 << i); + result = 2 + (3 * (i + NUM_REGULAR_SWITCHES)) + next; + } + } + } +#endif + // Multipos for (int i = 0; i < NUM_XPOTS; i++) { if (IS_POT_MULTIPOS(POT1 + i)) { diff --git a/radio/src/targets/horus/board.h b/radio/src/targets/horus/board.h index f9e1873f3..7450b124a 100644 --- a/radio/src/targets/horus/board.h +++ b/radio/src/targets/horus/board.h @@ -304,6 +304,10 @@ enum EnumSwitchesPositions #define STORAGE_NUM_SWITCHES_POSITIONS (STORAGE_NUM_SWITCHES * 3) +#if !defined(NUM_FUNCTIONS_SWITCHES) +#define NUM_FUNCTIONS_SWITCHES 0 +#endif + void keysInit(); uint32_t switchState(uint8_t index); uint32_t readKeys(); diff --git a/radio/src/targets/nv14/board.h b/radio/src/targets/nv14/board.h index c70100315..0677593b3 100644 --- a/radio/src/targets/nv14/board.h +++ b/radio/src/targets/nv14/board.h @@ -235,6 +235,10 @@ enum EnumSwitchesPositions #define STORAGE_NUM_SWITCHES_POSITIONS (STORAGE_NUM_SWITCHES * 3) +#if !defined(NUM_FUNCTIONS_SWITCHES) +#define NUM_FUNCTIONS_SWITCHES 0 +#endif + void monitorInit(); void keysInit(); uint8_t keyState(uint8_t index); diff --git a/radio/src/targets/sky9x/board.h b/radio/src/targets/sky9x/board.h index e12be5f6d..7ac83b00b 100644 --- a/radio/src/targets/sky9x/board.h +++ b/radio/src/targets/sky9x/board.h @@ -57,6 +57,10 @@ void rotaryEncoderEnd(); #define STORAGE_NUM_SWITCHES NUM_SWITCHES #define NUM_SWITCHES_POSITIONS 9 +#if !defined(NUM_FUNCTIONS_SWITCHES) +#define NUM_FUNCTIONS_SWITCHES 0 +#endif + enum EnumKeys { KEY_MENU, diff --git a/radio/src/targets/taranis/CMakeLists.txt b/radio/src/targets/taranis/CMakeLists.txt index 15ff14c05..599d77188 100644 --- a/radio/src/targets/taranis/CMakeLists.txt +++ b/radio/src/targets/taranis/CMakeLists.txt @@ -138,6 +138,20 @@ elseif(PCB STREQUAL X7) add_definitions(-DRADIO_FAMILY_JUMPER_T12) add_definitions(-DEEPROM_VARIANT=0x4001) add_definitions(-DMANUFACTURER_JUMPER) + elseif(PCBREV STREQUAL TPRO) + set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") + set(INTERNAL_MODULE_SERIAL YES) + set(FLAVOUR tpro) + set(NAVIGATION_TYPE x7) + set(CPU_TYPE STM32F2) + set(ROTARY_ENCODER YES) + set(CPU_TYPE_FULL STM32F205xE) # for size report + set(LINKER_SCRIPT targets/taranis/stm32f2_flash.ld) + set(LUA_EXPORT lua_export_tpro) + add_definitions(-DFUNCTION_SWITCHES) + add_definitions(-DRADIO_TPRO) + add_definitions(-DEEPROM_VARIANT=0x4005) + add_definitions(-DMANUFACTURER_JUMPER) elseif(PCBREV STREQUAL TLITE) set(DEFAULT_INTERNAL_MODULE MULTIMODULE CACHE STRING "Default internal module") set(INTERNAL_MODULE_SERIAL YES) diff --git a/radio/src/targets/taranis/board.h b/radio/src/targets/taranis/board.h index 01df37927..2b7c918f8 100644 --- a/radio/src/targets/taranis/board.h +++ b/radio/src/targets/taranis/board.h @@ -38,7 +38,7 @@ void rotaryEncoderInit(); void rotaryEncoderCheck(); #endif -#if defined(RADIO_ZORRO) +#if defined(RADIO_ZORRO) || defined(RADIO_TPRO) #define ROTARY_ENCODER_INVERT #endif @@ -330,7 +330,16 @@ enum EnumSwitches SW_SE, SW_SF, SW_SG, - SW_SH + SW_SH, + SW_SI, + SW_SJ, + SW_SK, + SW_SL, + SW_SM, + SW_SO, + SW_SP, + SW_SQ, + SW_SR, }; #if defined(RADIO_TX12) #define IS_3POS(x) ((x) != SW_SA && (x) != SW_SD) @@ -353,22 +362,22 @@ enum EnumSwitchesPositions SW_SD0, SW_SD1, SW_SD2, -#if defined(PCBX9) || defined(PCBXLITES) || defined(PCBX9LITES) || defined(RADIO_TX12) || defined(RADIO_ZORRO) +#if defined(HARDWARE_SWITCH_E) SW_SE0, SW_SE1, SW_SE2, #endif -#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || (defined(PCBX7) && !defined(RADIO_T12)) || defined(PCBXLITES) || defined(PCBX9LITES) || defined(RADIO_T8) || defined(RADIO_ZORRO) +#if defined(HARDWARE_SWITCH_F) SW_SF0, SW_SF1, SW_SF2, #endif -#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || defined(PCBX9LITES) || defined(RADIO_T12) || defined(RADIO_ZORRO) +#if defined(HARDWARE_SWITCH_G) SW_SG0, SW_SG1, SW_SG2, #endif -#if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) || (defined(PCBX7) && !defined(RADIO_TX12)) || defined(RADIO_T8) || defined(RADIO_ZORRO) +#if defined(HARDWARE_SWITCH_H) SW_SH0, SW_SH1, SW_SH2, @@ -440,6 +449,16 @@ enum EnumSwitchesPositions #define STORAGE_NUM_SWITCHES 8 #define DEFAULT_SWITCH_CONFIG (SWITCH_2POS << 6) + (SWITCH_2POS << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0); #define DEFAULT_POTS_CONFIG (0) +#elif defined(RADIO_TPRO) + #define NUM_SWITCHES 10 + #define NUM_FUNCTIONS_SWITCHES 6 + #define NUM_REGULAR_SWITCHES (NUM_SWITCHES - NUM_FUNCTIONS_SWITCHES) + #define STORAGE_NUM_SWITCHES 10 + #define DEFAULT_SWITCH_CONFIG (SWITCH_TOGGLE << 6) + (SWITCH_TOGGLE << 4) + (SWITCH_3POS << 2) + (SWITCH_3POS << 0); + #define DEFAULT_FS_CONFIG (SWITCH_2POS << 10) + (SWITCH_2POS << 8) + (SWITCH_2POS << 6) + (SWITCH_2POS << 4) + (SWITCH_2POS << 2) + (SWITCH_2POS << 0) + #define DEFAULT_FS_GROUPS (1 << 10) + (1 << 8) + (1 << 6) + (1 << 4) + (1 << 2) + (1 << 0) // Set all FS to group 1 to act like a 6pos + #define DEFAULT_FS_STARTUP_CONFIG ((FS_START_PREVIOUS << 10) + (FS_START_PREVIOUS << 8) + (FS_START_PREVIOUS << 6) + (FS_START_PREVIOUS << 4) + (FS_START_PREVIOUS << 2) + (FS_START_PREVIOUS << 0)) // keep last state by default + #define DEFAULT_POTS_CONFIG (POT_WITHOUT_DETENT << 0) + (POT_WITH_DETENT << 2); // S1 = pot without detent, S2 = pot with detent #elif defined(RADIO_FAMILY_JUMPER_T12) #define NUM_SWITCHES 8 #define STORAGE_NUM_SWITCHES NUM_SWITCHES @@ -500,17 +519,24 @@ enum EnumSwitchesPositions #define DEFAULT_SLIDERS_CONFIG (SLIDER_WITH_DETENT << 1) + (SLIDER_WITH_DETENT << 0) #endif +#if !defined(NUM_FUNCTIONS_SWITCHES) + #define NUM_FUNCTIONS_SWITCHES 0 +#endif + #define STORAGE_NUM_SWITCHES_POSITIONS (STORAGE_NUM_SWITCHES * 3) void keysInit(); uint32_t switchState(uint8_t index); -#if defined(RADIO_ZORRO) -static const uint8_t switchReOrder[] = {1, 0, 4, 2, 3, 5}; -#else -static const uint8_t switchReOrder[] = {0, 1, 2, 3, 4, 5}; -#endif uint32_t readKeys(); uint32_t readTrims(); +#if defined(FUNCTION_SWITCHES) +extern uint8_t fsPreviousState; +void evalFunctionSwitches(); +void setFSStartupPosition(); +uint8_t getFSLogicalState(uint8_t index); +uint8_t getFSPhysicalState(uint8_t index); +#endif + #define TRIMS_PRESSED() (readTrims()) #define KEYS_PRESSED() (readKeys()) @@ -926,6 +952,10 @@ void ledOff(); void ledRed(); void ledGreen(); void ledBlue(); +#if defined(FUNCTION_SWITCHES) +void fsLedOff(uint8_t); +void fsLedOn(uint8_t); +#endif // LCD driver #if defined(PCBX9D) || defined(PCBX9DP) || defined(PCBX9E) @@ -942,7 +972,7 @@ void ledBlue(); #define IS_LCD_RESET_NEEDED() true #define LCD_CONTRAST_MIN 10 #define LCD_CONTRAST_MAX 30 -#if defined(RADIO_TX12) || defined(RADIO_FAMILY_JUMPER_T12) +#if defined(RADIO_TX12) || defined(RADIO_TPRO) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TPRO) #define LCD_CONTRAST_DEFAULT 25 #else #define LCD_CONTRAST_DEFAULT 15 diff --git a/radio/src/targets/taranis/hal.h b/radio/src/targets/taranis/hal.h index 4db84712d..ea2bec79b 100644 --- a/radio/src/targets/taranis/hal.h +++ b/radio/src/targets/taranis/hal.h @@ -53,7 +53,7 @@ #define KEYS_GPIO_PIN_LEFT GPIO_Pin_12 // PE.12 #define KEYS_GPIO_REG_RIGHT GPIOE->IDR #define KEYS_GPIO_PIN_RIGHT GPIO_Pin_13 // PE.13 -#elif defined(RADIO_FAMILY_JUMPER_T12) +#elif defined(RADIO_FAMILY_JUMPER_T12) && !defined(RADIO_TPRO) #define KEYS_GPIO_REG_EXIT GPIOD->IDR #define KEYS_GPIO_PIN_EXIT GPIO_Pin_2 // PD.02 #define KEYS_GPIO_REG_ENTER GPIOE->IDR @@ -174,7 +174,7 @@ #define ROTARY_ENCODER_EXTI_PortSource EXTI_PortSourceGPIOE #define ROTARY_ENCODER_EXTI_PinSource1 EXTI_PinSource10 #define ROTARY_ENCODER_EXTI_PinSource2 EXTI_PinSource11 -#elif defined(RADIO_X7) || defined(RADIO_X7ACCESS) +#elif defined(RADIO_X7) || defined(RADIO_X7ACCESS) || defined(RADIO_TPRO) #define ROTARY_ENCODER_NAVIGATION #define ROTARY_ENCODER_GPIO GPIOE #define ROTARY_ENCODER_GPIO_PIN_A GPIO_Pin_9 // PE.09 @@ -368,6 +368,13 @@ #define HARDWARE_SWITCH_A #define SWITCHES_GPIO_REG_A GPIOE->IDR #define SWITCHES_GPIO_PIN_A GPIO_Pin_14 // PE.14 +#elif defined(RADIO_TPRO) + #define STORAGE_SWITCH_A + #define HARDWARE_SWITCH_A + #define SWITCHES_GPIO_REG_A_L GPIOE->IDR + #define SWITCHES_GPIO_PIN_A_L GPIO_Pin_13 // PE.13 + #define SWITCHES_GPIO_REG_A_H GPIOE->IDR + #define SWITCHES_GPIO_PIN_A_H GPIO_Pin_7 // PE.07 #elif defined(PCBX7) #define STORAGE_SWITCH_A #define HARDWARE_SWITCH_A @@ -405,7 +412,7 @@ #define SWITCHES_GPIO_PIN_B_L GPIO_Pin_7 // PE.07 #define SWITCHES_GPIO_REG_B_H GPIOE->IDR #define SWITCHES_GPIO_PIN_B_H GPIO_Pin_13 // PE.13 -#elif defined(RADIO_TLITE) +#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) #define STORAGE_SWITCH_B #define HARDWARE_SWITCH_B #define SWITCHES_GPIO_REG_B_L GPIOE->IDR @@ -470,7 +477,7 @@ #define SWITCHES_GPIO_PIN_C_L GPIO_Pin_2 // PE.02 #define SWITCHES_GPIO_REG_C_H GPIOE->IDR #define SWITCHES_GPIO_PIN_C_H GPIO_Pin_1 // PE.01 -#elif defined(RADIO_TLITE) +#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) #define STORAGE_SWITCH_C #define HARDWARE_SWITCH_C #define SWITCHES_GPIO_REG_C GPIOE->IDR @@ -527,7 +534,7 @@ #define HARDWARE_SWITCH_D #define SWITCHES_GPIO_REG_D GPIOE->IDR #define SWITCHES_GPIO_PIN_D GPIO_Pin_8 // PE.08 -#elif defined(RADIO_TLITE) +#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) #define STORAGE_SWITCH_D #define HARDWARE_SWITCH_D #define SWITCHES_GPIO_REG_D GPIOD->IDR @@ -585,6 +592,12 @@ #define SWITCHES_GPIO_PIN_E_H GPIO_Pin_13 // PE.13 #define SWITCHES_GPIO_REG_E_L GPIOE->IDR #define SWITCHES_GPIO_PIN_E_L GPIO_Pin_7 // PE.07 +#elif defined(RADIO_TPRO) + // SW1 + #define STORAGE_SWITCH_E + #define HARDWARE_SWITCH_E + #define SWITCHES_GPIO_REG_E GPIOG->IDR + #define SWITCHES_GPIO_PIN_E GPIO_Pin_7 // PG.07 #elif defined(PCBX7) // no SWE #else @@ -628,7 +641,13 @@ #define SWITCHES_GPIO_PIN_F_L GPIO_Pin_1 // PE.01 #define SWITCHES_GPIO_REG_F_H GPIOE->IDR #define SWITCHES_GPIO_PIN_F_H GPIO_Pin_2 // PE.02 -#elif defined(RADIO_T8) || defined(RADIO_TLITE) +#elif defined(RADIO_TPRO) + // SW2 + #define STORAGE_SWITCH_F + #define HARDWARE_SWITCH_F + #define SWITCHES_GPIO_REG_F GPIOG->IDR + #define SWITCHES_GPIO_PIN_F GPIO_Pin_6 // PG.06 +#elif defined(RADIO_T8) || defined(RADIO_TLITE) || defined(RADIO_TPRO) // no SWF #define STORAGE_SWITCH_F #elif defined(RADIO_T12) @@ -662,6 +681,12 @@ #define HARDWARE_SWITCH_G #define SWITCHES_GPIO_REG_G GPIOE->IDR #define SWITCHES_GPIO_PIN_G GPIO_Pin_14 // PE.14 +#elif defined(RADIO_TPRO) + // SW3 + #define STORAGE_SWITCH_G + #define HARDWARE_SWITCH_G + #define SWITCHES_GPIO_REG_G GPIOG->IDR + #define SWITCHES_GPIO_PIN_G GPIO_Pin_5 // PG.05 #elif defined(PCBX7) || defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_T8) // no SWG #else @@ -689,7 +714,13 @@ #define STORAGE_SWITCH_H // no SWH #elif defined(RADIO_TX12) -#elif defined(RADIO_TLITE) +#elif defined(RADIO_TPRO) + // SW4 + #define STORAGE_SWITCH_H + #define HARDWARE_SWITCH_H + #define SWITCHES_GPIO_REG_H GPIOG->IDR + #define SWITCHES_GPIO_PIN_H GPIO_Pin_4 // PG.04 +#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) // no SWH #define STORAGE_SWITCH_H #elif defined(PCBX7) @@ -740,6 +771,17 @@ #define STORAGE_SWITCH_J #elif defined(RADIO_ZORRO) // No I/J +#elif defined(RADIO_TPRO) + // SW5 + #define STORAGE_SWITCH_I + #define HARDWARE_SWITCH_I + #define SWITCHES_GPIO_REG_I GPIOG->IDR + #define SWITCHES_GPIO_PIN_I GPIO_Pin_3 // PG.03 + // SW6 + #define STORAGE_SWITCH_J + #define HARDWARE_SWITCH_J + #define SWITCHES_GPIO_REG_J GPIOG->IDR + #define SWITCHES_GPIO_PIN_J GPIO_Pin_2 // PG.02 #elif defined(PCBX7) #define STORAGE_SWITCH_I #define HARDWARE_SWITCH_I @@ -849,6 +891,13 @@ #define KEYS_GPIOB_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_4 | GPIO_Pin_5) #define KEYS_GPIOC_PINS (GPIO_Pin_4 | GPIO_Pin_5) #define KEYS_GPIOE_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14) +#elif defined(RADIO_TPRO) + #define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOG) + #define KEYS_GPIOA_PINS (GPIO_Pin_5) + #define KEYS_GPIOC_PINS (GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3) + #define KEYS_GPIOD_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_7 | GPIO_Pin_11 | GPIO_Pin_14 | GPIO_Pin_15) + #define KEYS_GPIOE_PINS (GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_9 | GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15) + #define KEYS_GPIOG_PINS (GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7) #elif defined(RADIO_FAMILY_JUMPER_T12) #define KEYS_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOD | RCC_AHB1Periph_GPIOE) #define KEYS_GPIOA_PINS GPIO_Pin_5 @@ -1067,6 +1116,30 @@ #define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT #define ADC_CHANNEL_BATT ADC_Channel_10 #define ADC_VREF_PREC2 330 +#elif defined(RADIO_TPRO) + #define HARDWARE_POT1 + #define HARDWARE_POT2 + #define ADC_RCC_AHB1Periph (RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_DMA2) + #define ADC_RCC_APB1Periph 0 + #define ADC_RCC_APB2Periph RCC_APB2Periph_ADC1 + #define ADC_GPIO_PIN_STICK_RV GPIO_Pin_0 // PA.00 + #define ADC_GPIO_PIN_STICK_RH GPIO_Pin_1 // PA.01 + #define ADC_GPIO_PIN_STICK_LV GPIO_Pin_2 // PA.02 + #define ADC_GPIO_PIN_STICK_LH GPIO_Pin_3 // PA.03 + #define ADC_CHANNEL_STICK_RV ADC_Channel_0 // ADC1_IN0 + #define ADC_CHANNEL_STICK_RH ADC_Channel_1 // ADC1_IN1 + #define ADC_CHANNEL_STICK_LV ADC_Channel_2 // ADC1_IN2 + #define ADC_CHANNEL_STICK_LH ADC_Channel_3 // ADC1_IN3 + #define ADC_GPIO_PIN_POT1 GPIO_Pin_0 // PB.00 + #define ADC_GPIO_PIN_POT2 GPIO_Pin_6 // PA.06 + #define ADC_GPIO_PIN_BATT GPIO_Pin_0 // PC.00 + #define ADC_GPIOA_PINS (ADC_GPIO_PIN_STICK_RV | ADC_GPIO_PIN_STICK_RH | ADC_GPIO_PIN_STICK_LH | ADC_GPIO_PIN_STICK_LV | ADC_GPIO_PIN_POT2) + #define ADC_GPIOB_PINS ADC_GPIO_PIN_POT1 + #define ADC_GPIOC_PINS ADC_GPIO_PIN_BATT + #define ADC_CHANNEL_POT1 ADC_Channel_6 + #define ADC_CHANNEL_POT2 ADC_Channel_8 + #define ADC_CHANNEL_BATT ADC_Channel_10 + #define ADC_VREF_PREC2 330 #elif defined(PCBX7) #define HARDWARE_POT1 #define HARDWARE_POT2 @@ -1244,6 +1317,19 @@ #define LED_BLUE_GPIO_PIN GPIO_Pin_6 // PE.06 #endif +#if defined(FUNCTION_SWITCHES) + #define FS_RCC_AHB1Periph RCC_AHB1Periph_GPIOF + #define GPIO_FSLED_GPIO_ON GPIO_SetBits + #define GPIO_FSLED_GPIO_OFF GPIO_ResetBits + #define FSLED_GPIO GPIOF + #define FSLED_GPIO_PIN_1 GPIO_Pin_5 + #define FSLED_GPIO_PIN_2 GPIO_Pin_4 + #define FSLED_GPIO_PIN_3 GPIO_Pin_3 + #define FSLED_GPIO_PIN_4 GPIO_Pin_2 + #define FSLED_GPIO_PIN_5 GPIO_Pin_1 + #define FSLED_GPIO_PIN_6 GPIO_Pin_0 +#endif + // Internal Module #if defined(PCBXLITE) #define EXTERNAL_ANTENNA @@ -1362,7 +1448,7 @@ #define INTMODULE_DMA_STREAM_IRQHandler DMA2_Stream5_IRQHandler #define INTMODULE_DMA_FLAG_TC DMA_IT_TCIF5 #define INTMODULE_TIMER_FREQ (PERI2_FREQUENCY * TIMER_MULT_APB2) -#elif (defined(RADIO_FAMILY_JUMPER_T12) && defined(HARDWARE_INTERNAL_MODULE)) || defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_T8) +#elif (defined(RADIO_FAMILY_JUMPER_T12) && defined(HARDWARE_INTERNAL_MODULE)) || defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_TPRO) #define INTMODULE_RCC_AHB1Periph (RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB | RCC_AHB1Periph_DMA1) #define INTMODULE_RCC_APB1Periph (RCC_APB1Periph_USART3 | RCC_APB1Periph_TIM2) #define INTMODULE_RCC_APB2Periph 0 @@ -1612,7 +1698,7 @@ #define TELEMETRY_EXTI_IRQn EXTI9_5_IRQn #define TELEMETRY_EXTI_TRIGGER EXTI_Trigger_Rising -#if defined(RADIO_X7) || defined(RADIO_X7ACCESS) || defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_T8) +#if defined(RADIO_X7) || defined(RADIO_X7ACCESS) || defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_TPRO) #define TELEMETRY_EXTI_REUSE_INTERRUPT_ROTARY_ENCODER #elif defined(PCBXLITE) || defined(PCBX9LITE) || defined(RADIO_X9DP2019) #define TELEMETRY_EXTI_IRQHandler EXTI9_5_IRQHandler @@ -1724,7 +1810,7 @@ #define INTMODULE_HEARTBEAT_EXTI_IRQHandler EXTI1_IRQHandler #elif defined(RADIO_ZORRO) #define INTMODULE_HEARTBEAT_RCC_AHB1Periph 0 -#elif defined(RADIO_X7) || defined(RADIO_TX12) +#elif defined(RADIO_X7) || defined(RADIO_TX12) || defined(RADIO_TPRO) #define INTMODULE_HEARTBEAT #define INTMODULE_HEARTBEAT_REUSE_INTERRUPT_ROTARY_ENCODER #define INTMODULE_HEARTBEAT_RCC_AHB1Periph RCC_AHB1Periph_GPIOC @@ -1912,7 +1998,7 @@ #define KEYS_BACKLIGHT_RCC_AHB1Periph 0 // LCD driver -#if defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) +#if defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_T8) || defined(RADIO_TPRO) #define LCD_VERTICAL_INVERT #endif #if defined(PCBX9E) @@ -2116,12 +2202,12 @@ #define AUDIO_SPEAKER_ENABLE_GPIO_PIN GPIO_Pin_14 // PD.14 #define HEADPHONE_TRAINER_SWITCH_GPIO GPIOD #define HEADPHONE_TRAINER_SWITCH_GPIO_PIN GPIO_Pin_9 // PD.09 -#elif defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_TLITE) +#elif defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_TLITE) || defined(RADIO_TPRO) #define AUDIO_RCC_AHB1Periph (RCC_AHB1Periph_GPIOE | RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_DMA1) #define AUDIO_MUTE_GPIO GPIOE #define AUDIO_MUTE_GPIO_PIN GPIO_Pin_12 // PE.12 #define AUDIO_MUTE_DELAY 500 // ms -#if defined(RADIO_TLITE) +#if defined(RADIO_TLITE) || defined(RADIO_TPRO) #define AUDIO_UNMUTE_DELAY 250 // ms #else #define AUDIO_UNMUTE_DELAY 150 // ms diff --git a/radio/src/targets/taranis/keys_driver.cpp b/radio/src/targets/taranis/keys_driver.cpp index 3dc4260eb..1d5d3fccf 100644 --- a/radio/src/targets/taranis/keys_driver.cpp +++ b/radio/src/targets/taranis/keys_driver.cpp @@ -210,7 +210,7 @@ uint32_t switchState(uint8_t index) ADD_2POS_CASE(A); ADD_3POS_CASE(B, 1); ADD_3POS_CASE(C, 2); -#elif defined(RADIO_TLITE) +#elif defined(RADIO_TLITE) || defined(RADIO_TPRO) ADD_3POS_CASE(A, 0); ADD_3POS_CASE(B, 1); ADD_2POS_CASE(C); @@ -256,6 +256,13 @@ uint32_t switchState(uint8_t index) ADD_2POS_CASE(D); #elif defined(RADIO_TLITE) // Only 4 switches +#elif defined(RADIO_TPRO) + ADD_2POS_CASE(E); + ADD_2POS_CASE(F); + ADD_2POS_CASE(G); + ADD_2POS_CASE(H); + ADD_2POS_CASE(I); + ADD_2POS_CASE(J); #elif defined(PCBX7) ADD_3POS_CASE(D, 3); #if defined(RADIO_T12) diff --git a/radio/src/targets/taranis/lcd_driver_spi.cpp b/radio/src/targets/taranis/lcd_driver_spi.cpp index 53ac9ac25..e3f9069c8 100644 --- a/radio/src/targets/taranis/lcd_driver_spi.cpp +++ b/radio/src/targets/taranis/lcd_driver_spi.cpp @@ -21,7 +21,7 @@ #include "opentx.h" -#if defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_T8) +#if defined(RADIO_FAMILY_JUMPER_T12) || defined(RADIO_TX12) || defined(RADIO_ZORRO) || defined(RADIO_T8) || defined(RADIO_TPRO) #define LCD_CONTRAST_OFFSET -10 #else #define LCD_CONTRAST_OFFSET 160 diff --git a/radio/src/targets/taranis/led_driver.cpp b/radio/src/targets/taranis/led_driver.cpp index 04033c655..0b6824cf0 100644 --- a/radio/src/targets/taranis/led_driver.cpp +++ b/radio/src/targets/taranis/led_driver.cpp @@ -43,8 +43,32 @@ void ledInit() GPIO_InitStructure.GPIO_Pin = LED_BLUE_GPIO_PIN; GPIO_Init(LED_BLUE_GPIO, &GPIO_InitStructure); #endif + +#if defined(FUNCTION_SWITCHES) + RCC_AHB1PeriphClockCmd(FS_RCC_AHB1Periph, ENABLE); + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz; + GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; + GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; + GPIO_InitStructure.GPIO_Pin = FSLED_GPIO_PIN_1 | FSLED_GPIO_PIN_2 | FSLED_GPIO_PIN_3 | FSLED_GPIO_PIN_4 | FSLED_GPIO_PIN_5 | FSLED_GPIO_PIN_6; + GPIO_Init(FSLED_GPIO, &GPIO_InitStructure); +#endif } +#if defined(FUNCTION_SWITCHES) +constexpr uint32_t fsLeds[] = {FSLED_GPIO_PIN_1, FSLED_GPIO_PIN_2, FSLED_GPIO_PIN_3, FSLED_GPIO_PIN_4, FSLED_GPIO_PIN_5, FSLED_GPIO_PIN_6}; + +void fsLedOff(uint8_t index) +{ + GPIO_FSLED_GPIO_OFF(FSLED_GPIO, fsLeds[index]); +} + +void fsLedOn(uint8_t index) +{ + GPIO_FSLED_GPIO_ON(FSLED_GPIO, fsLeds[index]); +} +#endif + void ledOff() { #if defined(LED_RED_GPIO) diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index 418d4b639..d54529847 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -94,6 +94,7 @@ ISTR(CRSF_BAUDRATE); ISTR(PPM_POL); ISTR(SBUS_INVERSION_VALUES); ISTR(SPORT_MODES); +ISTR(FSGROUPS); #if defined(PCBSKY9X) && defined(REVX) ISTR(VOUTPUT_TYPE); diff --git a/radio/src/translations.h b/radio/src/translations.h index f1c16e9a2..e37110dbb 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -178,6 +178,7 @@ extern const char STR_MULTI_POWER[]; extern const char STR_MULTI_TELEMETRY_MODE[]; extern const char STR_MULTI_WBUS_MODE[]; extern const char STR_SPORT_MODES[]; +extern const char STR_FSGROUPS[]; extern const char STR_AFHDS3_ONE_TO_ONE_TELEMETRY[]; extern const char STR_AFHDS3_ONE_TO_MANY[]; diff --git a/radio/src/translations/untranslated.h b/radio/src/translations/untranslated.h index fca9c7ecd..2d3936df5 100644 --- a/radio/src/translations/untranslated.h +++ b/radio/src/translations/untranslated.h @@ -40,9 +40,20 @@ #elif defined(PCBXLITE) #define TR_POTS_VSRCRAW STR_CHAR_POT"S1\0" STR_CHAR_POT"S2\0" #define TR_SW_VSRCRAW STR_CHAR_SWITCH"SA\0" STR_CHAR_SWITCH"SB\0" STR_CHAR_SWITCH"SC\0" STR_CHAR_SWITCH"SD\0" STR_CHAR_SWITCH"SE\0" STR_CHAR_SWITCH"SF\0" -#elif defined(RADIO_FAMILY_JUMPER_T12) +#elif defined(RADIO_TPRO) #define TR_POTS_VSRCRAW STR_CHAR_POT"S1\0" STR_CHAR_POT"S2\0" - #define TR_SW_VSRCRAW STR_CHAR_SWITCH"SA\0" STR_CHAR_SWITCH"SB\0" STR_CHAR_SWITCH"SC\0" STR_CHAR_SWITCH"SD\0" STR_CHAR_SWITCH"SG\0" STR_CHAR_SWITCH"SH\0" STR_CHAR_SWITCH"SI\0" STR_CHAR_SWITCH"SJ\0" +#define TR_SW_VSRCRAW \ + STR_CHAR_SWITCH \ + "SA\0" STR_CHAR_SWITCH "SB\0" STR_CHAR_SWITCH "SC\0" STR_CHAR_SWITCH \ + "SD\0" STR_CHAR_SWITCH "SW1" STR_CHAR_SWITCH "SW2" STR_CHAR_SWITCH \ + "SW3" STR_CHAR_SWITCH "SW4" STR_CHAR_SWITCH "SW5" STR_CHAR_SWITCH "SW6" +#elif defined(RADIO_FAMILY_JUMPER_T12) +#define TR_POTS_VSRCRAW STR_CHAR_POT "S1\0" STR_CHAR_POT "S2\0" +#define TR_SW_VSRCRAW \ + STR_CHAR_SWITCH "SA\0" STR_CHAR_SWITCH "SB\0" STR_CHAR_SWITCH \ + "SC\0" STR_CHAR_SWITCH "SD\0" STR_CHAR_SWITCH \ + "SG\0" STR_CHAR_SWITCH "SH\0" STR_CHAR_SWITCH \ + "SI\0" STR_CHAR_SWITCH "SJ\0" #elif defined(RADIO_TX12) #define TR_POTS_VSRCRAW STR_CHAR_POT "S1\0" STR_CHAR_POT "S2\0" #define TR_SW_VSRCRAW STR_CHAR_SWITCH "SA\0" STR_CHAR_SWITCH "SB\0" STR_CHAR_SWITCH "SC\0" STR_CHAR_SWITCH "SD\0" STR_CHAR_SWITCH "SE\0" STR_CHAR_SWITCH "SF\0" STR_CHAR_SWITCH "SI\0" STR_CHAR_SWITCH "SJ\0" @@ -372,3 +383,7 @@ #define TR_EDIT_THEME "EDIT THEME" #define TR_DETAILS "Details" #define TR_THEME_EDITOR "THEMES" + +#define LEN_FSGROUPS "\001" +#define TR_FSGROUPS "-""1""2""3" + diff --git a/tools/build-jumper.py b/tools/build-jumper.py index cfce0920c..8e7d9e171 100755 --- a/tools/build-jumper.py +++ b/tools/build-jumper.py @@ -14,6 +14,11 @@ boards = { "PCBREV": "TLITE", "DEFAULT_MODE": "2", }, + "TPRO": { + "PCB": "X7", + "PCBREV": "TPRO", + "DEFAULT_MODE": "2", + }, "T12": { "PCB": "X7", "PCBREV": "T12",