From c5cadce268f5ec5c8a149c6023c1ad365d5f44d3 Mon Sep 17 00:00:00 2001 From: rowa-hooge Date: Thu, 2 Jan 2025 11:56:00 +0100 Subject: [PATCH 01/12] Fix deprecated warning in main.cpp --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 4dff162..6daaa51 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -917,7 +917,7 @@ void setup() { logger.flush(); NMEA2000.SetMode(tNMEA2000::N2km_ListenAndNode, NodeAddress); NMEA2000.SetForwardOwnMessages(false); - NMEA2000.SetHeartbeatInterval(NMEA2000_HEARTBEAT_INTERVAL); + NMEA2000.SetHeartbeatIntervalAndOffset(NMEA2000_HEARTBEAT_INTERVAL); if (sendOutN2k){ // Set the information for other bus devices, which messages we support unsigned long *pgns=toN2KConverter->handledPgns(); From b640d1addab9c6c105c5f1d2692fbe1f52af0251 Mon Sep 17 00:00:00 2001 From: rowa-hooge Date: Thu, 2 Jan 2025 10:59:57 +0100 Subject: [PATCH 02/12] Fix warning GwSpiSensor.h --- lib/spitask/GwSpiSensor.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/spitask/GwSpiSensor.h b/lib/spitask/GwSpiSensor.h index 3491641..c12a410 100644 --- a/lib/spitask/GwSpiSensor.h +++ b/lib/spitask/GwSpiSensor.h @@ -112,7 +112,7 @@ class SSISensor : public SensorTemplate{ .flags = SPI_TRANS_USE_RXDATA, .cmd = 0, .addr = 0, - .length = bits+1, + .length = (size_t)bits+1, .rxlength = 0}; esp_err_t ret = spi_device_queue_trans(device->device(), &ta, portMAX_DELAY); if (ret != ESP_OK) return ret; @@ -138,4 +138,4 @@ class SSISensor : public SensorTemplate{ using SpiSensorList=SensorList; #define GWSPI1_HOST SPI2_HOST #define GWSPI2_HOST SPI3_HOST -#endif \ No newline at end of file +#endif From 756064a362b169210cfb1e3ad448b1f5fc97e1c9 Mon Sep 17 00:00:00 2001 From: rowa-hooge Date: Thu, 2 Jan 2025 10:57:05 +0100 Subject: [PATCH 03/12] Fix warning NMEA0183DataToN2K.cpp Also switch to more readable function names --- lib/nmea0183ton2k/NMEA0183DataToN2K.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp b/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp index cf335df..8fd2d7d 100644 --- a/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp +++ b/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp @@ -351,8 +351,8 @@ private: rmb.vmg ); send(n2kMsg,msg.sourceId); - SetN2kPGN129285(n2kMsg,sourceId,1,1,true,true,"default"); - AppendN2kPGN129285(n2kMsg,destinationId,rmb.destID,rmb.latitude,rmb.longitude); + SetN2kRouteWPInfo(n2kMsg,sourceId,1,1,N2kdir_forward,"default"); + AppendN2kRouteWPInfo(n2kMsg,destinationId,rmb.destID,rmb.latitude,rmb.longitude); send(n2kMsg,msg.sourceId); } } From a1f00dde82ae90ed926add1974e420ae19d76fb0 Mon Sep 17 00:00:00 2001 From: rowa-hooge Date: Thu, 2 Jan 2025 10:53:35 +0100 Subject: [PATCH 04/12] Fix warning extra_script.py --- extra_script.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extra_script.py b/extra_script.py index ed62c64..90470d0 100644 --- a/extra_script.py +++ b/extra_script.py @@ -274,9 +274,9 @@ class Grove: def _ss(self,z=False): if z: return self.name - return self.name if self.name is not 'Z' else '' + return self.name if self.name != 'Z' else '' def _suffix(self): - return '_'+self.name if self.name is not 'Z' else '' + return '_'+self.name if self.name != 'Z' else '' def replace(self,line): if line is None: return line From 036add6feb0d4879bce1d1bf10f7ce1ff1fa188d Mon Sep 17 00:00:00 2001 From: wellenvogel Date: Wed, 5 Mar 2025 19:49:46 +0100 Subject: [PATCH 05/12] #100: introduce extra_config, extra_js, extra_css as options in the environment --- extra_script.py | 55 ++++++++++++++----- lib/exampletask/{index.css => example.css} | 0 lib/exampletask/{index.js => example.js} | 0 .../{config.json => exampleConfig.json} | 0 lib/exampletask/platformio.ini | 3 + 5 files changed, 45 insertions(+), 13 deletions(-) rename lib/exampletask/{index.css => example.css} (100%) rename lib/exampletask/{index.js => example.js} (100%) rename lib/exampletask/{config.json => exampleConfig.json} (100%) diff --git a/extra_script.py b/extra_script.py index 90470d0..941909b 100644 --- a/extra_script.py +++ b/extra_script.py @@ -104,8 +104,7 @@ def writeFileIfChanged(fileName,data): return True def mergeConfig(base,other): - for bdir in other: - cname=os.path.join(bdir,"config.json") + for cname in other: if os.path.exists(cname): print("merge config %s"%cname) with open(cname,'rb') as ah: @@ -151,13 +150,25 @@ def expandConfig(config): rt.append(replaceTexts(c,replace)) return rt -def generateMergedConfig(inFile,outFile,addDirs=[]): +def createUserItemList(dirs,itemName,files): + rt=[] + for d in dirs: + iname=os.path.join(d,itemName) + if os.path.exists(iname): + rt.append(iname) + for f in files: + if not os.path.exists(f): + raise Exception("user item %s not found"%f) + rt.append(f) + return rt + +def generateMergedConfig(inFile,outFile,addFiles=[]): if not os.path.exists(inFile): raise Exception("unable to read cfg file %s"%inFile) data="" with open(inFile,'rb') as ch: config=json.load(ch) - config=mergeConfig(config,addDirs) + config=mergeConfig(config,addFiles) config=expandConfig(config) data=json.dumps(config,indent=2) writeFileIfChanged(outFile,data) @@ -377,12 +388,7 @@ def getLibs(): -def joinFiles(target,pattern,dirlist): - flist=[] - for dir in dirlist: - fn=os.path.join(dir,pattern) - if os.path.exists(fn): - flist.append(fn) +def joinFiles(target,flist): current=False if os.path.exists(target): current=True @@ -453,7 +459,26 @@ def handleDeps(env): ) env.AddBuildMiddleware(injectIncludes) +def getOption(env,name,toArray=True): + try: + opt=env.GetProjectOption(name) + if toArray: + if opt is None: + return [] + return opt.split(',') + return opt + except: + pass + if toArray: + return [] +def getFileList(files): + base=basePath() + rt=[] + for f in files: + if f is not None and f != "": + rt.append(os.path.join(base,f)) + return rt def prebuild(env): global userTaskDirs print("#prebuild running") @@ -463,14 +488,18 @@ def prebuild(env): if ldf_mode == 'off': print("##ldf off - own dependency handling") handleDeps(env) + extraConfigs=getOption(env,'extra_config',toArray=True) + extraJs=getOption(env,'extra_js',toArray=True) + extraCss=getOption(env,'extra_css',toArray=True) + userTaskDirs=getUserTaskDirs() mergedConfig=os.path.join(outPath(),os.path.basename(CFG_FILE)) - generateMergedConfig(os.path.join(basePath(),CFG_FILE),mergedConfig,userTaskDirs) + generateMergedConfig(os.path.join(basePath(),CFG_FILE),mergedConfig,createUserItemList(userTaskDirs,"config.json", getFileList(extraConfigs))) compressFile(mergedConfig,mergedConfig+".gz") generateCfg(mergedConfig,os.path.join(outPath(),CFG_INCLUDE),False) generateCfg(mergedConfig,os.path.join(outPath(),CFG_INCLUDE_IMPL),True) - joinFiles(os.path.join(outPath(),INDEXJS+".gz"),INDEXJS,["web"]+userTaskDirs) - joinFiles(os.path.join(outPath(),INDEXCSS+".gz"),INDEXCSS,["web"]+userTaskDirs) + joinFiles(os.path.join(outPath(),INDEXJS+".gz"),createUserItemList(["web"]+userTaskDirs,INDEXJS,getFileList(extraJs))) + joinFiles(os.path.join(outPath(),INDEXCSS+".gz"),createUserItemList(["web"]+userTaskDirs,INDEXCSS,getFileList(extraCss))) embedded=getEmbeddedFiles(env) filedefs=[] for ef in embedded: diff --git a/lib/exampletask/index.css b/lib/exampletask/example.css similarity index 100% rename from lib/exampletask/index.css rename to lib/exampletask/example.css diff --git a/lib/exampletask/index.js b/lib/exampletask/example.js similarity index 100% rename from lib/exampletask/index.js rename to lib/exampletask/example.js diff --git a/lib/exampletask/config.json b/lib/exampletask/exampleConfig.json similarity index 100% rename from lib/exampletask/config.json rename to lib/exampletask/exampleConfig.json diff --git a/lib/exampletask/platformio.ini b/lib/exampletask/platformio.ini index 096a7cd..d63dda8 100644 --- a/lib/exampletask/platformio.ini +++ b/lib/exampletask/platformio.ini @@ -10,5 +10,8 @@ lib_deps = build_flags= -D BOARD_TEST ${env.build_flags} +extra_config=lib/exampletask/exampleConfig.json, +extra_js=lib/exampletask/example.js +extra_css=lib/exampletask/example.css upload_port = /dev/esp32 upload_protocol = esptool \ No newline at end of file From 8c035c4ba18ba9e612ead5a94a8277d513620776 Mon Sep 17 00:00:00 2001 From: wellenvogel Date: Wed, 5 Mar 2025 20:48:29 +0100 Subject: [PATCH 06/12] #100: allow to set custom_config, custom_js, custom_css --- extra_script.py | 10 ++++++---- lib/exampletask/Readme.md | 18 ++++++++++++------ lib/exampletask/platformio.ini | 7 ++++--- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/extra_script.py b/extra_script.py index 941909b..218782f 100644 --- a/extra_script.py +++ b/extra_script.py @@ -465,7 +465,9 @@ def getOption(env,name,toArray=True): if toArray: if opt is None: return [] - return opt.split(',') + if isinstance(opt,list): + return opt + return opt.split("\n" if "\n" in opt else ",") return opt except: pass @@ -488,9 +490,9 @@ def prebuild(env): if ldf_mode == 'off': print("##ldf off - own dependency handling") handleDeps(env) - extraConfigs=getOption(env,'extra_config',toArray=True) - extraJs=getOption(env,'extra_js',toArray=True) - extraCss=getOption(env,'extra_css',toArray=True) + extraConfigs=getOption(env,'custom_config',toArray=True) + extraJs=getOption(env,'custom_js',toArray=True) + extraCss=getOption(env,'custom_css',toArray=True) userTaskDirs=getUserTaskDirs() mergedConfig=os.path.join(outPath(),os.path.basename(CFG_FILE)) diff --git a/lib/exampletask/Readme.md b/lib/exampletask/Readme.md index 4c51d92..f8aea49 100644 --- a/lib/exampletask/Readme.md +++ b/lib/exampletask/Readme.md @@ -14,7 +14,7 @@ Files * [platformio.ini](platformio.ini)
This file is completely optional. You only need this if you want to - extend the base configuration - we add a dummy library here and define one additional build environment (board) + extend the base configuration - we add a dummy library here and define additional build environments (boards) * [GwExampleTask.h](GwExampleTask.h) the name of this include must match the name of the directory (ignoring case) with a "gw" in front. This file includes our special hardware definitions and registers our task at the core.
This registration can be done statically using [DECLARE_USERTASK](https://github.com/wellenvogel/esp32-nmea2000/blob/9b955d135d74937a60f2926e8bfb9395585ff8cd/lib/api/GwApi.h#L202) in the header file.
As an alternative we just only register an [initialization function](https://github.com/wellenvogel/esp32-nmea2000/blob/9b955d135d74937a60f2926e8bfb9395585ff8cd/lib/exampletask/GwExampleTask.h#L19) using DECLARE_INITFUNCTION and later on register the task function itself via the [API](https://github.com/wellenvogel/esp32-nmea2000/blob/9b955d135d74937a60f2926e8bfb9395585ff8cd/lib/exampletask/GwExampleTask.cpp#L32).
@@ -28,11 +28,13 @@ Files * [GwExampleTaks.cpp](GwExampleTask.cpp) includes the implementation of our task. This tasks runs in an own thread - see the comments in the code. We can have as many cpp (and header files) as we need to structure our code. - * [config.json](config.json)
+ * [config.json](exampleConfig.json)
This file allows to add some config definitions that are needed for our task. For the possible options have a look at the global [config.json](../../web/config.json). Be careful not to overwrite config defitions from the global file. A good practice wood be to prefix the names of definitions with parts of the library name. Always put them in a separate category so that they do not interfere with the system ones. - The defined config items can later be accessed in the code (see the example in [GwExampleTask.cpp](GwExampleTask.cpp)). + The defined config items can later be accessed in the code (see the example in [GwExampleTask.cpp](GwExampleTask.cpp)).
+ + Starting from Version 202503xx you should normally not use this file name any more as those configs would be added for all build environments. Instead define a parameter _custom_config_ in your [platformio.ini](platformio.ini) for the environments you would like to add some configurations for. This parameter accepts a list of file names (relative to the project root, separated by ,). - * [index.js](index.js)
+ * [index.js](example.js)
You can add javascript code that will contribute to the UI of the system. The WebUI provides a small API that allows you to "hook" into some functions to include your own parts of the UI. This includes adding new tabs, modifying/replacing the data display items, modifying the status display or accessing the config items. For the API refer to [../../web/index.js](../../web/index.js#L2001). To start interacting just register for some events like api.EVENTS.init. You can check the capabilities you have defined to see if your task is active. @@ -46,10 +48,14 @@ Files tools/testServer.py nnn http://x.x.x.x/api ``` with nnn being the local port and x.x.x.x the address of a running system. Open `http://localhost:nnn` in your browser.
- After a change just start the compilation and reload the page. + After a change just start the compilation and reload the page.
+ + Starting from Version 202503xx you should normally not use this file name any more as those js code would be added for all build environments. Instead define a parameter _custom_js_ in your [platformio.ini](platformio.ini) for the environments you would like to add the js code for. This parameter accepts a list of file names (relative to the project root, separated by ,). This will also allow you to skip the check for capabilities in your code. * [index.css](index.css)
- You can add own css to influence the styling of the display. + You can add own css to influence the styling of the display.
+ + Starting from Version 202503xx you should normally not use this file name any more as those styles would be added for all build environments. Instead define a parameter _custom_css_ in your [platformio.ini](platformio.ini) for the environments you would like to add some styles for. This parameter accepts a list of file names (relative to the project root, separated by , or as multi line entry) Interfaces diff --git a/lib/exampletask/platformio.ini b/lib/exampletask/platformio.ini index d63dda8..348b36c 100644 --- a/lib/exampletask/platformio.ini +++ b/lib/exampletask/platformio.ini @@ -10,8 +10,9 @@ lib_deps = build_flags= -D BOARD_TEST ${env.build_flags} -extra_config=lib/exampletask/exampleConfig.json, -extra_js=lib/exampletask/example.js -extra_css=lib/exampletask/example.css +custom_config= + lib/exampletask/exampleConfig.json +custom_js=lib/exampletask/example.js +custom_css=lib/exampletask/example.css upload_port = /dev/esp32 upload_protocol = esptool \ No newline at end of file From 52a376c43a9caf67d3fecd2a439bee9b60d2fa14 Mon Sep 17 00:00:00 2001 From: wellenvogel Date: Wed, 5 Mar 2025 20:56:51 +0100 Subject: [PATCH 07/12] release docs for 20250305 --- Readme.md | 6 ++++++ doc/Conversions.odt | Bin 26103 -> 33335 bytes doc/Conversions.pdf | Bin 38259 -> 38307 bytes lib/exampletask/Readme.md | 6 +++--- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/Readme.md b/Readme.md index 4a05c6d..ecf9abc 100644 --- a/Readme.md +++ b/Readme.md @@ -170,6 +170,12 @@ For details refer to the [example description](lib/exampletask/Readme.md). Changelog --------- +[20250305](../../releases/tag/20250305) +********* +* better handling for reconnect to a raspberry pi after reset [#102](../../issues/102) +* introduce _custom_config_, _custom_js_, _custom_css_, refer to [extending the core](lib/exampletask/Readme.md) [#100](../../pull/100) +* create VWR [#103](../../issues/103) + [20241128](../../releases/tag/20241128) ********* * additional correction for: USB connection on S3 stops [#81](../../issues/81) diff --git a/doc/Conversions.odt b/doc/Conversions.odt index 9ca2adbc44e5f7c038bb02cadeb73559c7fe439b..793362d6295eb58427288770777b94530c4041bb 100644 GIT binary patch delta 31361 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 z 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
-|{!JWwAqPx2Ny{F|G&g%~- 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 diff --git a/doc/Conversions.pdf b/doc/Conversions.pdf index 3de736be458ce876b404e60dad7c020d55feb8b1..f5abdaa31e23e39b98628e1dd2f019470da1413b 100644 GIT binary patch delta 4032 zcmah~XH-+$x&=Zgp-UB_lmkc+Nl3Dj&>;yZ7^UbD=|~qsZz{5p4g%7fbdjov^dczI z6(pci1(Yg9M3AoVxaW;G-n)3mc>B-VYwr22`OW#QG4@6&-J>$PiYH8<)2tR}OaC(} z-tuvoaDpJiy@i^Jx(NXfCj1;!7v62YzHNAQLas*Z@u1(Z!1$x=l7(x}%8_#D!&3*8 zi`K^0;gaptF;#SMxX;(z-My|a3&I&7dzk8g|AD%�meM5%rBZ&c<36vRVkAsk1pp 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 RPC&%zI#EC|F}#5$@Lz#cv4sEt diff --git a/lib/exampletask/Readme.md b/lib/exampletask/Readme.md index f8aea49..7637ecf 100644 --- a/lib/exampletask/Readme.md +++ b/lib/exampletask/Readme.md @@ -32,7 +32,7 @@ Files This file allows to add some config definitions that are needed for our task. For the possible options have a look at the global [config.json](../../web/config.json). Be careful not to overwrite config defitions from the global file. A good practice wood be to prefix the names of definitions with parts of the library name. Always put them in a separate category so that they do not interfere with the system ones. The defined config items can later be accessed in the code (see the example in [GwExampleTask.cpp](GwExampleTask.cpp)).
- Starting from Version 202503xx you should normally not use this file name any more as those configs would be added for all build environments. Instead define a parameter _custom_config_ in your [platformio.ini](platformio.ini) for the environments you would like to add some configurations for. This parameter accepts a list of file names (relative to the project root, separated by ,). + Starting from Version 20250305 you should normally not use this file name any more as those configs would be added for all build environments. Instead define a parameter _custom_config_ in your [platformio.ini](platformio.ini) for the environments you would like to add some configurations for. This parameter accepts a list of file names (relative to the project root, separated by ,). * [index.js](example.js)
You can add javascript code that will contribute to the UI of the system. The WebUI provides a small API that allows you to "hook" into some functions to include your own parts of the UI. This includes adding new tabs, modifying/replacing the data display items, modifying the status display or accessing the config items. @@ -50,12 +50,12 @@ Files with nnn being the local port and x.x.x.x the address of a running system. Open `http://localhost:nnn` in your browser.
After a change just start the compilation and reload the page.
- Starting from Version 202503xx you should normally not use this file name any more as those js code would be added for all build environments. Instead define a parameter _custom_js_ in your [platformio.ini](platformio.ini) for the environments you would like to add the js code for. This parameter accepts a list of file names (relative to the project root, separated by ,). This will also allow you to skip the check for capabilities in your code. + Starting from Version 20250305 you should normally not use this file name any more as those js code would be added for all build environments. Instead define a parameter _custom_js_ in your [platformio.ini](platformio.ini) for the environments you would like to add the js code for. This parameter accepts a list of file names (relative to the project root, separated by ,). This will also allow you to skip the check for capabilities in your code. * [index.css](index.css)
You can add own css to influence the styling of the display.
- Starting from Version 202503xx you should normally not use this file name any more as those styles would be added for all build environments. Instead define a parameter _custom_css_ in your [platformio.ini](platformio.ini) for the environments you would like to add some styles for. This parameter accepts a list of file names (relative to the project root, separated by , or as multi line entry) + Starting from Version 20250305 you should normally not use this file name any more as those styles would be added for all build environments. Instead define a parameter _custom_css_ in your [platformio.ini](platformio.ini) for the environments you would like to add some styles for. This parameter accepts a list of file names (relative to the project root, separated by , or as multi line entry) Interfaces From 38d370dcfb072f17b01fc9bf2d4c6c45a0c336e5 Mon Sep 17 00:00:00 2001 From: andreas Date: Tue, 22 Apr 2025 19:35:57 +0200 Subject: [PATCH 08/12] #107: correctly handle DBT,DBS,DBK --- doc/Conversions.odt | Bin 26103 -> 26267 bytes doc/Conversions.pdf | Bin 38259 -> 38348 bytes lib/nmea0183ton2k/NMEA0183DataToN2K.cpp | 13 +++++----- lib/nmea2kto0183/N2kDataToNMEA0183.cpp | 32 +++++++++++++++--------- 4 files changed, 27 insertions(+), 18 deletions(-) diff --git a/doc/Conversions.odt b/doc/Conversions.odt index 9ca2adbc44e5f7c038bb02cadeb73559c7fe439b..d6c662c23ea119fbb79102c2384a36f4d44909f2 100644 GIT binary patch delta 22680 zcmZ6y1ymeO)GZ3Z3GNQTg1fszAUF)}5Zr?X=-|QKJp`S>HMj(K!a#7h!68V{$M@fR z*L(N%T3s#Gr@OkVPVIfpUVS?TpECiErJ;g=NB{?i3I{hBlWv%V^#SpJwn;Q8=N9M~ z|5sfS&;Qh=xWdz<1XyDH|0-!xsNwPc*98=BXj0Ivu>P+LUak24U-Mk6|Jyue9bWkV z*b4m5P6OzTC_M0ATj2gb%WE^?oNYc^aQHeq#c8W1EYlEl-0I1lnmYG*KL%6O80zX` z8#QTZSG0VCJDL_Thc_*I>AFL3^%jg&mgwQS+M7VoyUp-y_uE=RW$=NIHm}`GW?{5$ zcpG#o87c2()(xK9E-s|tm4D#P5D@bOR0PymFkSepPB?@NmM!2SEWSn1Yqi01hoRZQ z(WQr}hhU$D%5z8iNY^lcexZgk2z!RI4^(c?8g1Bek98FZC zD)xSfC>)dy9gz$&$(@efqHggGEYr)7h6%IKRQ6!X4=~-#I-~yPioY%Yh4zaneiSl1 z$`>k+Bs;E#cZ zX@p8aGqKo(_65$_dPFf9;qf6aNi`cUS1a}g?c7FzY$D)lLdiJL;Mdj$Qsbtwsh&eY zJPQhqETOw_XSGNu<2RDt4ja9a{`|B`Y z-_wjtD(q27NQj73ed;zV@a}G=)R#~ZtbKeS|DCJj0`k^Zec59vP`Pm*X8&cK6Z*)* z++Mwrc*IGuR|5h&`JXNLbZuV+BMWGKu<-(hIPg2@QgcBr91;cj#-_UKF^i_3Q5e08 zkBdD#3Vf|?$&m^u@~AQ>{)(R;I$hN|62IRkZvQ|%ITrwjdr!(|`%$eIVo$=#@O5M~ z4$6F7TFg#vIDz?D7g2up{m0Cz0qQ|E;T@h3B)PM=rp1vJ(SvjUpLrw8GfNtA(A-!+ z^*Ny9L5t{q&Hbbt)b|qIw|n{c*Tc3hA_3`G(lA$_^Wuaa8yz9M@4O@RIHDdjkW+kq zu=D-KPw-GOHCmC$adrQb^0HR#oP|o-QYoH2+k&iUhAAs+XVKi%n&m^Mi6L8~GI4C+ zLZW@nJ5*G5IrcbWF^ng2DIW85R_uBJfpqKf9a(SR4VR{Rn2dQ=z1z>wdQ9T=5Sy73 z3P4cu>%X8c5s4;B{G=++Xu1b9Lv@EFG7UYmzquWo!egL>ct)VT zbrx*%ZkdmIcw=ico9UM4S zbNenZEX^*zo=0o3=j~LmyO6S3r_eLW_s!W2Of#l^9X{P$RDBHD3H*nm($&B|W^@eO z+3svC+MAcc()R~amlR9pEaS;=(2h@+?(?;g64*r ziG*4lSD3x9-JBmgkOV7BC@s`vA3kU&2OjlT8Zk+Q0O)Id?J0{RTY+#r`;4;E{9kp! zEBU+!Hu%+97OD`{Kl4*` zqtut*FhW2~Dtc2H!bJObIK%&k@xT(|W-;XR(+`>^2eo#1^_9ssB}eh#g}v~_m7mov zhjoR_we|_947QYAA)vchb=%0y=|ohmD2)&Xt6|6Nurl)!;wB#mR_$ z7%A6L4K7{l#V68_qQ+4?Xf@i%R$>%UQt3$T6&4fLxmOio(R5rcfx9YnvFOvn*oe>aIk6BTBaa7&|4;?YUpZ+@A$11&oLddl!t z?d){xVQGFe=3qH#arE)l&pcLV58-~kX_xdePc<@eS*;W5nK)Iz)qE!MNr71n-bBt? zQGuB3*S`uQ0(@T7SFpI3@M)KsefD;JvkJ_6=}n{31jy?1MD$w>D@Jr-#h)Mo%YW*V zGbwgrjkzegCRbs*%;678biv;hzL^KnqOG#I<%AhXCzxI=H3~Q{ZVs-mvE?mltOp%c3ZmF0E7DvAEEYGFJuYCRfO z6ZFivd=siUl!4x2aZ}`zw#Y!&j@k3|NCkP`Av8ENMqSlf@?S4BtaAj>%fA96Pf|OE zGf@*+K#1-#iV@#}C4exRa^O3BI!HO%B)-O}NkcVV<0uah*ut$-RZlj$GblMLWXH}r z?=Vd82nOT#VNavKom-zPEg?gu6o}9h*?<3nN>VPImw5@Fomr2fkL$$J>rhs<-!vtf zZjNPrDh#qnMhza)emnfTLo1degJ6FVcYCmYmjMT$YIyhS$I4^7CpSa8`g#NYvG^jv z=-sy)j)n#RdCzEcq#EmyNlLla$g<&^c_}u@`7G_{ygWaP7MVgKH@}q8_=N2Fk|@$V zgGbNJ@JLMX*>j-=`~A`21n?igt~XS$^Ps@NJ#zmafc-zTaKT_9WQ7k7?!T4fm4fNm zc{y9USlByxa(@2byD3tb3J7v?aw$=mDyZkktpDKP__$M6Fv;OdQ|>U&;C)gKumk}~ z2x#qLjkEf*LM|w*E%)t@%C_@6PvH!=5nQVf|4w8-pQ4RNEOqIul*!rE)$|yVG2hT< z1GR!t2LhT5+)IByZ+p$JD=WsvAUN-!n1aL0(*6>j{j@@F+ubFa@{Fa9(mwJvfzWm0a^iy1}9`R%8b0%zCjh?c{rwO zK72-yY>{(Mo611DeyJ1ryB68a)k(>LJmT>E&<~>5vTNxaNHd2sIfdpB=>2vW7K5aI z=$rAwQ*dF}K2mtvapqn7`?+pg{*s*DNzLR|RZz;k_ZM$(Qs@nS@Y_h3|x7sZ+4$0xWtn8yF>5j=o zYosR=ZN87yM#xH$#Civ;y@8cxJ$j;i|M|tE#g(m%01Z%mJrBD|Fyf^K6BaM!GLvD?54IBF2Oc%9PF1u|~@nxu1}F>ujAN=29UN ztc4Pxh1_Mw8KLl2I&|U7vH~Q!0im&hc9MvM*fz1$Z8H7DrTgRzN&kg*vCPR6PK_5Rl0UW05E2aaam z!wGa(WPI1deYpmy^{UO-j8#KV5Kr$kqAkSNE6{%P#?6z%{)NBp<4W#O5a@1V09DX7 z%8Z(KcWks!_?s%-i0ZYbrn*mbVM2`4 zLO09O9=@yb#?&Lgqda5zM8!DHe{aH1&DOxwN_W){YhSgX%-bdVeR+-0K}?VjuTYg> zwiC)0jq5k)n3p+Tkwkl2hm4>5rdZtX>IIb6*`Cv5Bo9fzgiIfM8Cuz4IA$O=h1jG& z3vJtL7#jm4d3KOzV4af4yfx=UnHw96LEOIY1H3`Jw3eii2(c>8sLA@1m*ESxK9TK} zoJqHO`;pbv_dglZX;Jq)?vAc<>ZQdw2A?U$yEK4Q-?p0jK12kVsn|3o4O-h#l`I@)g!kyzFb1~= zFw#R zdwR3{96meU|05O!A-|Lq#v|Xu&s)fQ z;JoeG67khbR$tuT08;hn{(Q>a&hgqb{w+X*1KD!mriy4$EN>T>{{;)U#?8R%a}yy{ zUxxd{)gipPXstUX;a}1|@HX{W&%qcHvA6nppKINvgVb@D+fTR)Z_X`JqdkaghX66+ zCo5QwLCLBen*CGXu}yT%y{208`A9 z>2VGuL@X1vG6XR(?yyt@2`&=gb$HJtr!?|Hx{nPvpVGiv(b};6qmVkhz z+L13}6U(<7L7+UQE@!)e^NrW^T0(U)<;J`3TwYA?I_0G;tcKtDr_v818AXopsSLJP zlfTJ5p@FwdS|8-o{s@0xbXbX>AAv_JltNq`^MN@Lu7ZexHyU{*dTnuQwI`JAjUyRG z9-B=>_jXBSRjRE=bj|LV)KlzS{%ZTaY&~b&kI}t?SES+80xZ6))ET(_@9rQa;wcBIbMs#ZkX z@DqR|a_wIvzCOZZ+5UXW(TGo-+H`)w3c?}B$)38ITLBA1gW0QlC4nmj^=E$dYg9cA z>9R@+g7T`~syTCcqrG}|hN5{5RxhY?d}~A>OD~!=&S?1@;2nI@k$EDjEI45_5fF-I z1zK&A+Cd!coKYBt3(AUYm8!g}gq)Nc6FT54&|k6P%bKKUMqtwuc`z%V6Gkm{q+0cY z1s)lSp8VU2y^Kw1u&Sqz!yJ}PcGH25t>L*cIXJY2W0V1g;|gyn&LJ{|-kh|dlFt!2 zwV!ru`W=eS$?6;`UX}Vd;H17_%)uimUIdXqs;A6NG}oG{9e5EeF^u|62_$;9JON&b z2ik$`-1U3STt^8IetVJh0dr!_jYHD!RsWR07COwl&<4%cx`;W|5~8j&^0S<((m$3B zPj5_PZnSUoWi=mF)e{XQ$#cG9PhGMjM5>R?fq|5JY|5&qf1`^B3F=2?lbX+b7L0TF zuq?(ovp2A8ALYZhwvE_xECYehcYxYIdR*_(ZzsC^Gd{uof@k&ZHr7M7Y%^tHO95i# zx0YVSXdgW}2p3ZT>469gb4LO=1ESNqQfqw6NiKrVj$h7i=&>-*XjC7yif zW}lA*{3St0Hu{b0^OKc;=D_hRMe6dKh-|Q3A;Cm7WoaX!*wPlIujHZoE`X`;%Gd2! z{!CkLb!0QA$!eNY`aNylD01lwSPpSzH6?%-6dDr}5qcQpQ_dOM2EnS|X5ebYgf~nj z#j(N0AlpZJBdPk;jT}py9CzUilM_JmN>(0gWOTSo6R38N8vml1^?SaZrhfeLMBjNc zz4Y^55W`ALp?9k0q)&AXD$o=;r(wAwODXe9F`^|!pPfR+1S2kKhZCQM+lVagC;vKQ z&WQjBq?=}wA+Z^Kq1s6bj-;?6jp5nldPB{b1VuQ-(LNh1T2naFlv$tK*tLr!i^CKc z)h;}({ZY45u5WXKR7{8Kuv2$4_>(`X3q*83o8E;;%E~In!l`Xz3Up9{?Pu9lBPq89 zJ0WEtr?GDyq?x4bM)+%mCH*5mtp-HcjY2MHLF@ZG2b6V$MZc@7lo|usmVHGHp03k6 ztJbYx(1PBuEQmyrT+{ADZDMhw^W_o|PW`%y=sm0?LBQZ?7B776EPL^*+}o-@^yEvL zvPQF_%ZBY9I4}`oAP*8`5k*24>hrJ5jc;Ixo{20OX_i(uJPgLZ#HIQX)LkoQSJfQa zO-zXF6+kY1i|ODVM#dh^xTOE`0kqs@7KI~?5Q)6QI_Q;c4RS7K)+PsE55h1iFHw!= zl>r}*6!YNJzc~7e>24Om+tlBO;bkGC1RTZ@E>RB8E=Wp0$>M2)Bvopt1hWc}L1_|= z6Nk80cFd!bFgU31zIel+MOCZx_P+bn2K?D<3u;0NwCoUCN{K8T1ebN<4hqAUIyEh4 zRp8H-*ub%FBMzl5V<{w(coXW13rLnhBu2Qf;TxI9moa$YYW$@}MUd#;PCV+!6OyK} zfN$e|=3=$Se~1x%%>Km|K4@Kf0zKZE~Dr)niq8 zDD>Cg3{wu8m;8s7F3X2a({B=OcLZt(m4JYH&#s2NN8h`3+eYPkp$AfA0MwJ)?W(2A z3?~^$r0r>T1+*u(hE89^Aeg*M`*lOnC!p_L+EF)_UaS(t`zn7+bW>AW8%fUb^5=u} zXQxD|(pL*zhG93$V`8>`U+@2VQlVccYv`rt{%-!$3Tl{li~LzOrZaJ(&J?!wJPgZ_ z{Tz0mr~ia{advlx;)T=Y3y`ytDL2&`5|4{}nnH`n(sB)W^+X(Y=b7GCKb2ZKaKc-5 zRl{9~u`xKB{5HH2EI-MMi-d(4ynTjx@sE%7H9p1NHx@(I$YHkV2@7Fu=WTZ|n{pLt z9b5;3MNrLdVk_^`U9`rPM$+$b80UlGqxiFE7m=pFoK;Lwp@)b(5MJ}k{B5=MFN4}p z?GLuQ(O7LHc?E0>2y>i7^S6*7cZqh?#Ae>P>lZ2-3mcIrS#3~vk?9k>(al=5?jE1b z*_?N9!RJD1dc&N_bu}jSF155FOc5`{g&!zM$&Ky&D*tqU5nR(fzK#e~9Q%tn+t3y@ zVn-Ov=~95cO3Rr|zZkuB$J*o|`_e?MwN>uM`?; zW&k-Uwds;VUtrMAG#T>CVYjt@kl{3KLFpWj26em8!8)7ssK)#4E|;0Um}Nt|>yqQM z6@IRNJdFDb;}rW;BMwz~klc7_oM8m3FMxML2fZJ8B!iEyIOoSW-P8>N@xW&q4PTr{ zUD#)v0~&}_Y=F{x>+2B>>K|MyoLctrz~H+DfA=*dhF|Z-Mt>VM2M5>~1h(^k;M65G zC5l<{644)v7NB4lbC_|$zP@EYeD$&7pHU+C8KZPDY^Y&m&gqGM`V_L|tA+*E*H%4c zrh&9`r%n|YD|@VIoYkWq_)}?}7@u&DCRUv%DnXz%ov#5lo!Md&zuzx~Ryl*00m&1e zQm96JJ9XJZ!P$bl%_yveb;|m>Aem3$_jl^9>*6Xi@0Wm{+w0JO*N|>QqE2;*hcvq< z^UxruDQVU-sS4kd9`M1S%CyGP>KNgAeXalL6DB?82sl6YWQpjEodlg{B^Gd4s&ya# za%HWs)BtJJ)o1Xd2$qcXsn8|>Fb?y39Xfif^p|9RB~NnST8C08P*^cX!7r5_U?85k z@gvuCWei^xb$x;FPJrWWGy|uoxm@(D6F5Ld;K)fa&f4{*=cOB_azoQq*xC6_jmRp@ z`$D!hoBrmyN&dJODmDdi;f91*B$!5{T{QoU*7!#XF%?nGAmMX-V@M$j#Ll_(QX2>c z=W2y&S2Okn^&DW-Vhjlg2!=}3lne;00dEg?f-RVLKYbt~c zjS?%QdYJW-Su~k(`Y5?HFwFD*Jr%-=K5dbb4R$Ztp&m|^JvMfobGh7Z_Pnoc9>Zd4 zRK8^e#XV8iQ~ap#S~3)|spf8Ec@NFBkv&~6bkf`_(Ra^T)hlOOFg}4-^11HpIidMy z4N-|&7;O(?(**b6K7NuknRi%Q!8i<=XM+$M?JNNm&o}KZGm*(07@k5JOnxeFA)iA) z9}&KEnL0=JjWM~yYI0{%L+-D%*vuh|btq-pOAGD_!J_S80RJ{TVX2n~k()pSpJ-~o z&RAwuDZ=44BSqus67 z8v0q+gClY?J>J6rht4Ldg6leZbPsAjz3?q$DHAPG)PNQyw>7>K2sGTh`?{WsE$w)yI>YN36{(J&$z}#^*i;)D77>ra`*;!@nf z(|2~(UyFWDXTdi}xlOeCYAM{nSyb6Y6kmHB@Th|%k@)?hd;+gn)2ylOFpAp}A}*pg zv~kvd7lMG9Xn&MBbPwVQvq8S+(R#8XDi^1jG~@6$EY4VwU#0^fsu4Y33sRFD1qrL{ zQbozI!fvgvr<`dj{W&}wG+NKs+AS(dL>|(?cBB5#IiYvO7XBnG{EDYPe+ph-v)p9y zCsyda;yP)!*`jg_i<13O@UV3nfZQtk9Oca-Mr2nZJK8!!ckPr}B1%$6r0FR+$7kpy4rOzUNT$)s*tWh#+l?yMGMb7Q z8~w#!KN@r3L@?u4oDw6S(~7i)1am95#LoMtR8{X3@lC+dbpDlA*m_~{Af<_-aDT+< zDF!xok_pQNXMzo9qBY^`O3JN1d)i4bZ@K>72+(eS4_4>CY<8!_5b<$7SppYzen{SL zBJU^T6P_L|s#eUe_@b$h&EmY+T){4Z!dLD*3j6P6{bA4)Xw8U&&Lxjju{#r~!neAF z%U;$S1A{7s4$?xor1H(+;qvx>Vg^s>0Hhi{`SS!SS!JWQMO-*XDI^F9^uE#Zaw}Q` zt;pqj;h^CB2u#o1OS%#4rfbd566Zj!a`tGYcbrmB#@>^#aHf%lUQBN$s!whBhLL%=h<>O)kKV=2 z))yu|wz>3%TLTUR^d&v?^B^C}i!$gBOR{f+aASVu1wU*OKFWp((Io{Sa+(`CtJK!B z=zjmeQa{PFFey5(g>=?)fa6EZ{H={U9r+14s~2%Uc9xIf24{=1HFV7l0I(u`L;rk? zofXcmgbfIMs%1=%g34{b3n@j54X_Kv&aEs6g(C8+w(#kbVlR8V zn0j&RpPbrBkhkWZWaDafr9Z@Wv{1xGf9)tH9T+1)A(8#n&#OujfG(rbSIx&c8>6I6 z=vP@mEl|F#(3s8;7LrQ@EU}$>*0$ACg|Q3E3=GW@%;2kbv9Z#d)<%pAQR!JXjkCDP z;?F{)r8mcy^ea2q6+zg>E;*M!AlltKtw-C_UYZk&Fc_~8fzBLL)vj_%9%i4Tj0HPN zA#T0-%EnUZkLaXk3tY#6NN@l$sAcI(Ro*AWg(VFQY80+(5yNmGo(KO$bD`?T*LDKC za_g$;bClEtuLn^X6Zaw-k)4CUucw*&%^HIz!jM7QUT#sLYAXv76WsXlA9jevUeOF( zg)UbFGS3*0AhpqFAMKYLPqYiY_woPZ^O2W@TQ|IlTcRK*CyEjteirh?X5l4wyt!MY zf`VDYRBp*s7?AVXcc>aZ73vq9D2M+6gFIC+?>9rX{FYSn)Hsax8^@Zf1b(^`+vs+r z`Ow*~BKA}MN~v$h8*9b)A4;66DMxKT@yGRqTBGP;rr9>mk<4FGw!25k#>UE^V(EJ8 z4lWR5E;Qy*zhq4WoEj zc&(2OAAAUC)+4IBQy?5HUzk15f4;2%H}n^4gjVLj3bLToYE9WEQ02bPxY4Kxgird6;M;v1M=-})gO)sezE`?z`S76i^(lqS zYW}S?Q2)*1q$9I8a>KsT0Zl?+2D2dbQa=!yfbIWp5NNH zY?>1-={F^1hxMn~)%%aaI;#e1=)ou&>XMkOe+F@;VFK2WHNCdtY{Ca>-tR@2t@U}L zrhP@yMU_EMMFb?9ei|+Jl5~HxmK|==Az0=VTFLUHpw4Rz;zXhtjr5K+GlVqGjOW~$ zcaGS!DXwr2c;%j!n^Bv}x{|R2VuY{&!JxBE)-e1B4IiooMGj2ypL`Vg!OIbKT>9-b z)%QKw_{{%Eo>AOXt=@Hpi_XoZptId{UR5Io+wg+1F} z6;l~hFJpGo%=>XoH?9p1f(E$virkis9@&y(dm{+ykyT#|KUY+|nemxPW$ShK;J&hD zuD8-hF$ql+_F3KQ9P+SjoN9CW3ecL(Y$R9 zU$cppP}p9d4Zcj$55ypq9InI2%noIxB}&0HCO$cSA7OJ__^TmB0hHxY-B3%^*VO zn|8P2Pi@~)B~NM^j&)w96vla%G4Bg0>6RV05OFVxfoZ8FmSp{)s~Z;+ZJ-fZp~X!;8@ zv7B6!Fbb*jE_5O~jGQxiK_|=&Y!pdC%&Py?N%pV07U%U?r|ZXL3!+-#Mg zC4@t!EIz^U;tbKG_rR~zu{J7rChnAMlzozuE%n=4(^^_(o3yr&q_(>uc(n@mn%(fc8B>XU}dfO6Fu zY|%h85+j^gFyYmsXxY{Kh1$q(`(Bzyr@^mZ?&fpLM8{+weo>_*H-R8t#w)$h3rH9utmP%s|Qoun6A)BXomq31mKodF2Zs`W)Wgq zRF!^NK57@FntBgfPtxycNrW@0W3Q>cp=Im^WEpR2!$qSF#MGH^P^n-Qr%szex8mKzZ8C5D+l@+`J8lo3EELOhpKK|eaSFKz0-C>t;nwXf+P;u z6T*)e-8L)B#10795!{#3AF$sTYkY+;Krt$$D&156wrQL(f$KQ90UFQ?^UPh=|6r*0 zA(Y)`SaJ8t6zPd|N+ksfa3n}HY-_oY-@5aDd^(`Ghs=L(=x3k~L30q|)o+A8Xh5&B zZ(oV4<_*!hC(aD^3<7LAbcMf;F(wv>i&UpVI^Hjp0X!_2Vc)NC> zH9KT#WPh*nrIzBp5%L^Bk?nt-`buP}L!h1k|BZH=*F#Po3p^d_9wzZZ5bV=>+B}9d4m8AdA+qgjWLl%yczc+%^q4-b)p`lC?qBt8EFt>Ux3<@T z>y{rjoIhuWa?Q2)qS~;57#lzanO3?_1?mPNBBPDc&KYWJG0e>Hh+anc*jp0@n1|^r zM{ic*MCoT9T7t#?vMaD+0tZIcO@V0}q8R$dh(~GNkxLY0(k6b% z_k2g5`&|Q48VUXS-@hjGz{>mPTS!VQRM&3V>(#p2{B~SOU^=n&@sembA40*see51N z{u9PEZ_EG44Wd)u8#TOk_`wJ7Bc-o9KDPYV?1O&a_AczsJ_!mVGwN&ax zWU;;cM3$Z5^-r#qzQ7UJ1)vCyextv(xsgkZ^Of9+6z$a|I{vWH*<)_i1f2~z2nliH z)j+Nry$x)19gVZKTuva>LyJ>B<*o@G-tpe_#3%d)on?@Dbm%>TMAJO^(W4#k%AO#m zc5s!|cI`UzHW{i_2-AFWiKIF|`6(0o8L8=ICXn~Hb&-avA>MmHPAT=uCz;OoU{O|7 z$mn+zx|lvm%8z6`mEU?q_0o%XnHsdbE{aBec->Rf8)|;!hEN~u_3D$^k-yGSfRd!$ z^P^SA*$aGUTN(E?tj4M@zyc)ryK7>C`6k8fprPKsi1_b}R*~Ky>T4Lr04DZ8s@Ihr;=Cbsp#jbSMgTAAK9Mtd`=v=?~E+@7YS z3eWSOt8}xg3nX@)%GAP3DBAWU%65)F$y%tNo5^4T7oW)muR#}Ld;k*+QAs97SU!b ziII@P#770ZkbhFO(yPKi^uje@{P#}ZStEPqeAou!><1X+r90>)2@a8Rka3P!@SIBc znxr@TmeylHs{pslOl4@Hu%tXad{20=iZG;4q;1ag_bbTdr)-=kD0;(ev|K?1Rjp zKi^}3bUvy+cmLm_;F`8gNcV&8F5CZ z_BADm;!u#YnI`+!F~fwv3DM`+V#j=-1t*Hf_Jp}h3Y9gG5WFN}bA44vg~QK@VXdEI zR}U!TI^r*Z8mD9nl^ERg@X16XwRC4_tN*6OLB!IS!37tF<2&;$&=tk1rpA>~qDRyg zh0`WD2dMaO>3(U>Dhh1YIefHr1Zq{#nMS@VF*`p1;?;(SJ#-Wz5# z&Tv+b`nbNUUYZyE%ZEiH-AwoE_@CAnvUQ=xP@{StocuQPmB6lqhTS*6^JP%jXdDf zr#W!JfWv-US=Rs_)jbj6H9PGiO+073OyFlO6C=&yl6AdO&EB~PP? zeg?s0aMMhx%s;7f*C1=`>3R6bk0e)J%yR=YbAca0faG@50Xhb8^cnO4&w;6Elfx_! z);08XPT`6%OznpLnJi{VR(YH|^+x>f)+;!0PTiFjV5F3qieJN~dK}WU9 z{w^T?9|bp6oxqB-{Hh=WA8WIW@@8NDSK#G{*hy;AA9mD@0_~@(cd0XIk$H(plz|1Y z=W)QgH_MEv#sVdtF61;>17WdBF0cmg1j(zOpUebtKkF(n7A(I_7{XPl@bcTsK6{}X z`PyaF^x9EX_ot3db4h)lw%7*YrJ;e;KO<%KpR-?4jlqtS2HVI>2dybVuXp=cYe4)^jdO7fN>!N_q-!kvqZMc;+{NkCT#4?X6a3fps&tf}EZAHl^B0xd zg&o%GkitByn`|{N#_I{v_v=YS3Y8|J`D7GG<+a#O#$Y#TNJ=p(b+Or38aSdAV&H#? zMsbleal~v@7HJVBj7lM6g>T-*>?%7pec$nJdV=%%vUo`&Wtu%DKIa^XcY^9QE({E+ z!W4GwSO_BFyWIhKq^@5fOEy2&j4b(2#|fB=ezeJd%&Zw8X8v-rxjjR*edHSdh~@R= z-#YR&7NFSaADL@P3|oi4H!5sd*m7EY(Dti$e?Fs{QCxR!KF;fdiRv&>Z7(RnwUpsJ zJy-fF^StIBNn!K>NweJc#mP}%c|ZdBmOg2AuW&u3kdZE&xqoa_J2AKPeLfR}I>_FW z>EVNh9@!fMJoS%$jyMiqDj_b|tSQj0JZRGYichgSh$^1qk|J#js~%#Ud;B>B5a7P)*vM*dc`X1TKn<7W~} zsR!=n8}+1SZo2Kr!+8;G&7bGEg;-=C-!3g`mbAQ1w&TIZSz1=_w)!I-@-I&@9A4dx z6_uBIdDyIjo1n5a0U1UNlrO&{xTLcGs0p0md+EV@d^2)8`DM0)@3o(Jf$32?oW`2D z6Y%G&?D8Oeo^D#ysw_J*m0xsUyIB$Pm_R{!;0RckTITCc4oX3}TI?$skXF6o#9$te z4K9_6K`;<^;N~!BWJtnOEFXFoHfd}i8}!DZpXZf?B$;-XT8oha4&dX!;XD4T+YG4J zNq$Z;E*)`PTzw83+^9%xDxa#94He1gQ9DI3DxnSu+f6~fA|&DTq?uXlryQ2!GaSU* zZzYYU9_xfF^^4DI?nlu%^s>110uxO&?8M8+zEhCkPb2Y(JITp`LrvT~5YZN|S&Y1d&p=Wy(oAOxJwKsv3Ssr)4 zDNUT~z2qD4lZdtF%7`J+`}K9hq1(NFGiD4;10VaS013}ZDO`d+n(uMh7I=PO3 zzb)Z}3YE4BUHaLl{oc>@M8)IOC75A{GV_*35*p;FYnRgzE%{4Q^hh}eDDRb7clec# zdeAvVQaWw0kx#rkD05}9gv`42#@W}m`q=sc5kay)N!OR8{(>cJ%VbqkZZQ8!JJYay za6qu9Kwki|bWNI+npjrw&#^G{gTEwbY~%N|6DAm1&D_YBr?6FaIK=cxRH)O-*K@K#oKaRs+sg2Vj@+GN0d)(UoS*@Nz%(ESXp${Gn z!p%Qz(Oq5*!52G*>`?r!W5>Gq7H0(e?urfVRng+0_ytQHoX+E=qfeg&WP)iGt)O?* zI#$uXXi3tis_|yoQc5)v1k(nF8}QEZjZ-IPdTig}Q-eGku*DDItuwY!W%S8)vs&Vp zL{q0mU|ohupBbLmtLFVQGx^sdf5d5j=p5P}t&`i38$6=!(#3CbKqS${21$Nb62){_ z%t&m*pry$OyGqN|6P#NJK|i4^JRNrU^*bGUG(r3rIBgFzz)vxfRG0OWB*yKa=2xHLJiQbsW4(CvrIXW=&mR_+$nUjgYE-^?Ezani*bZ)FCp&kA2 z`1IXV+8+K&oEODX5_Bw)0N6U!)sOSqq>h3{=?%&AtflJSZH+6D8)?J8H5j2y`6~+| zi;5fiyg9TLn1bqfFAb`hETWky%LoYQkP;g-PK3m1%Q4z%cW3*ZAK;F)P0 zMf|NP3_eh<$yKikK9{te1MItAywvX&_!9TasD>n=$UKpXK|COGj81J!GeNp8Y_RRp z`;;hYz7%FGV!)NL;in%pIu4o zAx~leSJECS8Zx0kGx!6Kn#0Ipyi%gch$X`}O9$P=+{!dHz4Dh zq<>i_+>u}kZz0)2*5 zc3NjEPvvW?M!;m&G@x|011;5ml+(v{e`$yxDPZVcmiu-9xZ)gQ)DL=9e_G6B3ESsH z(KG!7#LV{=H5(JJ-QJV!xp`~uI3sXeIJ?_iEl;jVScnG8 zNKv3xVIfUM75oiS#8aF0t#l(T{en8|s$*x2f4C=)~NIR)Jjy`OpSsk)ibeVf#qRzv? zSn$>E`S#E%C7FksjCS~oPJ;HxXfJfygIYH}Z&I|=h80DtI0=FN58wU_O1G>F;&D8A z@~luXvmW)@GGck8;tlykTZ{zHFyr>`8Dg!k2<9p007Q5@vi)G{2LX(eT|$&3E?$lf z=qN#IMNw{B;w_06QZCg#??*@)|8-^EYER?AJ1k&LVV+AM%xr3%`-fZno;8pLX|XRi zXxlJ$vehdgIR66`xlYF;NgP^ zos~RNpwrs+0F>-8G&_9NcGemeB2)6oZSdCsGy8xbdJZRX?ZYEiciT@!y&2TE>;x2( zj-w||KR>+F7qo0b(X3-?8kv##b$3!)PC4>R0@;xeda-T7NBMq))Ql zg|wA!G69zLg__chiMc`J$_P~W6vfzRsrN0v15mqyzs6C4<$^V~$lDonV(%{7ioOM* zPbS$(a1*58N%&BL#1gz=MM{{ScJ86r@y2S%Q0vV;hZ~W~wI)U#ZLvOZ0mI2YX1|E& z0ll@LRSuV)cQu-bAI!@%W=3~ppAJ>{8H35r`e)!|jY*?ZVW>;AzMYI z98h*16k={BT7^1B(ctL>caja6w%Ld6Z z4;~ec;QaRYzfD<*NfLtSH)$V-^u`vwQaXKk`yMCd6>vkH6Wd&w&lNugbD>snhMWwi z^1X+At2^B2zv2rRQ$AT@o9}%`9Ok90Oi1vo!aHpm5#m2#PZD%9*h+-wiM~xJKnI{o zV2yH?Tdr$i(N)d8DAr{(TL7XLT&+K=NcA^5G`Ovs$R|h3d^8fn%wl6<@$W*@FqX+Daa~qV+9D9Vb&0U>%1Y+a zZ=87<#|~+=q2B{yz!ce_)VUui7PKfDqjfOdbvsd(bx zqYE2DPuD)t=M+nSI1G&RRCgUeW6jDtBGG@!Rpq}87c5keI`eRde@5chCCQkxzQs3K zO=GS-OV6bUF(wP&$*_hEeE5?Cj4dxtKk_QZQ`#(3(wik4cavlNRuqaht_PlZ!@m^| z!&d+V)eW}cN4qm3B$;0Zap2F@$*gcL}TSLOY!_J?G*_x^)RKL}5sb^Pg>ZHn{H5T>27fNaV(cMakuAc1|Tf zmIe(3A~?>7mwr8T@k#$;O%62q1r>AzHLFBat>p2!pM1FePC3N%)4H=N^tiCUT+%Z} zIY-z1{ws0l&cMSCm;w|z-z>bA`t)bb8RFR6@H{KvYEpf|rhb~gtdp0&$RC;od@vrL z92z(VD2N;MzQz2zyhVR2W+2YXHl7;O|K0W`+~UILgV`=52R~eu>KITH#&XL#k^9Vd zeKaX+a9Z3{!&Z+^sZy<7DzHSEZ0c%m?s1UQ7lgMT zWVnC3gbZ^n%9)HMr|<)bo3V}T=lcsBb?ij%moZ!r_bt^Md;@E5QO`BtbjzHjPC~6| z^c#X|Ke?JW^<>|M@&gE9qHS382CZ;qO&A3wk9ZTk$PWhSXycGf9Q>E< zZg4XW(b!x=VgO<>HDv^ZGV&8Uh*HVF2Y9g*MAwbj#=S#wQweFt6>sr(twkOlaJN(@ zn-Xb$cwPWkQ*~-Yy)CIkiAk)j;0<^7d%o_=Sl9Fhn={%xA~?+<8J>WFqZRfa>0yTl zjVT`Ot(`E(lH6IGT9@cXMge-q@rz|54y#TVDqRwq=4AfcgU`_~UhYB*QzB80-^o%- zw--;o*U{{xK<{zRe{#$+|36)vWn5I>*2n1@MnRBHX(Xh(LsFz$a)5yWM7kWhOF9Ik zVSu4QL2yuHq>+Z9Te^{c@OuBxz0b4XoORaPXRpuRZ_YaFe16~jrin)2WwC5DVj=|a z9jeQ^5-#8|neF8E+brJwXo@06d4_5WF>mmDxmzb2S?mHUEWusC8S{|Loo5|TyHRI0 z!o*67Fa(DQTA(p`Nf+6Q@p?IG()&I~S`gIW?YDf52I zc<==;Gf)WY?DQlT<7+wEqka7xo_u5Xm%An=Y;#cZv!yS8gn(o^I!&a2)JTTQz2T3cb z+gN4Aj!o((P&x`KcAm?v3=EnJj13HHmq<)zo5oR5O|^|KR*7EC)P4MvnOYX}_wXDV z)uzSUz+CWV)=PDvlSG!o(3kRx^wcphEt&L=1ZhK)5{tIGvsk{Ya+?wDxHf zXe;mwp3b%b^2U*(8#$8VoRjM~{w#X0OWC$jEre%U?!2 zr$5~iqxougE5uLjv66o*)tmInQCNtxnXf@l-vSxOtNfkm9F8upHuE(L@?w(E!B;Zr zG%#<20B;XTCWFY&*ryC)F*@A&k#S|NFz``qOT$%$Zl%btNXR z=63jM_6v0-q^+UORU6=`Mp=U4%&aK`dZFbZ#e&}~5S}=)gAJ`g1d*^<(Pz3+><@o8JPzujR%+kj-U^4Iy~n$9Vy5vSD|hs26s&2^OpXzDA61EN9Tn!Z4> zD$g%`C=U57BGw^|UT$LeBTam^&iH#!0_g(RY3sE?$lCcEBAY8PQWTd#{Z;l=lQyPHcXegx7uN3yv^~td|9Gso2AW?~E?db0SWUadNNf!zSwOPSQAj z7Wm5{OnG6TYVAyzR0Q0&TW@U>9$^oxe;>9SPaI*HKqXLxv>x=)aUNqDGD7OAG~|2& z$|rt`nvT^zUO)-B_d!`3M4P_wK|)v1%&(EI4nB1$ZJJ-ZK348ww4KvQ2z%63Cp?wR zUt?c{PHypA8^`n=NuHTsw5fd0=VXmymv>GxqC1R*Ju@EtJ?zj|NZ|9vlYC-~BW{GU zRJWExtfk{?sOZJ(Gge+pEQdjj1p7>B7wZ>i?B?Xu9TPgm^ z_M%$Orck4_q6WV+FLJ|f#Zh6gaKpFKY|6;47zu0=X}mY;*4Le==b@Zo27>%`7a6T! zroLf4>>JI+yK6nYTxs+ym(8xb8R7oL#>5C`0qkp5^VJs;ChE*xi&?2l@R@)t$fRxY zx|}W2CAuYt5eRkTqE)4#m+Mx2{s`HbT|}HaE>FWN!Hrrr@@rW(;_N!CXIZ7?mW$7b zj|dV$$%9I_uD_8O>#2}YX<$UG+tdoFX=og#S|5WC(O=b;yuN+urVDhgdYZ}kl&+_8 z*WUG$&b+amVX$g51{Z;~Le)D}EV7mvb}KRw3iWi~3nJ*cnD}i{m<-SC4erxjld*au z0KQf&yHdH*jje1po{(5MKvdIbox04rgQdBS6!BS|B=2Iq=a8h3?A_t0xG}k9h?AT- z0{m5ALAo3eWH^DD7{RaAhEez$wvLQ9sisA=tCIv@**u+jY@euDj_WoAe)1a1Pka5l zoZTAjoCm6jwf9ixtLbcwsIiC&Jx3?hfUc+OLl{WvwEDPIf8`tLS#Z$}yO5}gF;a)} zc|~{6m>0!fT7({x_D2~NSNeGW68*%nv$B!NEQ1XvB>bfkZc&sG3l*F4(!^ zbP9qyKw*}RH%njKWaIf&8|KD&3Vh#`#?XK&iH0Hq`L`sn&UYsi2{T)K1&QxheN6wg zT_RW2tCxwkG~%HEbAoPYsNm}=#(-4E_iqVyw@|j8^&Uwt67=JvU%FxqMBcAGE~+9% z&tKm842IiZER~Jtl#Kgp)ktBPeO$$6S9}>ZcQ0A13o1lF<-9`woJR`y6^IKjo?#Cv zrumyYeHSRZ$aG2N@f)K>#J!M=0%%@Ty%%j_*(LPxXF4}Y6C$e5u88}X$uXFiZKsIa ziSgdpm@49Kr@IfeIyIIAGm)`Jd(KAjKWOm)jbSj&s1@y|Ew{5=&O5?haGsF}z5kW+ zbW}S1_XAfjTbh&z38JCrVflP-lw61Cl_eI-~}Pw!l_q|E(JgPB7o+ATa+ zP}{^PTF2T9%m(n}`usByP&4nmZ@!P2Q_f9qBo>v=^M*^OE)G96rmXnuQ*2%1ZP2KTD z)eG9K-paZ7yVcSIl$Rlvzy`H2kf@zdq?cHIPD`QI-}N$ouz2C~PX1?_fnA#ES4xH$ z)jE&cIkSuwSTVUr(#ZNTl%OI{KAqp$mBUnB4K+DEt@c)E$?JyakG4yAT+!u-IAt_; z^QSSVOpmA~cb#a;mG}EJae?^Fc9}CE+f9fhV-?sznG1kZ8a{^qL>#jsM2|Ke7+Cm1 zg!9^9{n4`v%A?DPHU$BS{FnX!ZGJ}5X`IW_;g0j8ZyJXnWV_6T1$2nSV{U07uw{Z` zFQchAuWjXp<2wD;+Tc)y?}UJ5xFR7r<7gVput(IR7q?sa z4-t$?u`weyh~qqG}a>KAhl+f=(;j>L!DTLd9FLC60e0^yEY$s^z`% zM0XbQ%DBgIEb%a@!S0Nu_f;-gE;obFJCU-A1a`W+=&5d?P-Ej2aM)c~l-B~tJF<>N zwNOHNO`Hrd$Ol?t){lAe~8&O*0;G1lOTK1b5`WJX@CG#*!WO@F^W4(=Ct zW}hl7!?9%;fuLbjRrH=>O~R!T6Lgr}EQsujW?tI$hbm{|9f$LZg_t-w#oO}EE3%d~ zV1H~(R~S(=eyVj;HQ`vGb$S1Okw%bqOj+io%5`PILOQYuqFPV1$J(ib(yu4l)N|5E zwOPi|3~tG$)bW86au>v&O$Jxoq-X20B?+T@p5UT2zz&G^g)?P5`$Tn?W8E$a60#+= z)vdt`HUB7~7L?!0Q0T6Y^hk&hZl(py9s0+_0!yt!!TGZl0M8R+cf^}kyBEwAu@o0` zPkAOVN&$XyPHA+YM;j^d3@MDT&CcTk8 zw`arqHFP8E7}>w#oIea5&`3R6HG)UZo8J{eFD zzz#bdeE!T=ls^5urgNNP%@uSX!r+sk4eJMfx0aaC$ zx795tH>ph4oV`~gz(9K(j%Z}IFiqNWur%U4M(drGhX@CZf6VqwAEcSB8~QNor0Hl6 zl^^m-a(RZ7UjJG%aMLWC@Ony?yd`53S5g3~{0-IDAIv9K#EJhbVrx-;#<`#>p2s!f zTgeXvDacA=TbgRC`lL|Hd&~TF17CO-r6A6?3&p^-AY4q^`o4!Vwv=4;d=norMO$+< zxRTFcd;W9yKQc05v{olz&?36?-`p~JlF5ex72}Z zIkAG|_TeR^wCCRDI`K|eW*gCqB=d`K+=G+6F1xeg4GrQ%? zWbb=+7fF)ir{^IY7m-CHU1z=vJ@4N&F+@%hp~yz@&pCZn+d{?q_eR$XjlA)~8I6gk zfL+eyT{~E{77=063U+JXquaMepp6_wPUH1Ivw+4jUn{v(8r!_3mijv$*rGXg;6HPr zX?W-_^2JIT>t&dp$ia@WO>Fq}@QW8^!OPzmFeNguNzdi#j8Q-(AFM+%Eaf&d8}x2P z1UmqD@&V&PL+t@h)GwKn-txQG7Ru)j_x)adnoS^djMOMlB^_qFF)oQ1ghTVcW$!EM z%;Xwxyg;GBe=7LiNfA};UJ<*P_>rrG*#X=$7SFdS2Zy=s$mZT8-IcC(E-V}kmtEoB z|E9z&r673wI#N7`s{z%e{O~%YKb!q?$2#8XBdT{)%03;NN9M=Vgffv8|fpPb=-tN zB>G_=y6X8E`~hRR1fG)lRWz8(mXP1^LHw5|jwI&j&K{Ac;Dn%_bw6zJV@{Iofr({t zg||=0%_#&%hmGHNH2S|2lYakY`s#jLH%0k_8)D2hiAV!R3QJbMBqnSB3oP~e8Y zb$_mOfIwma6X*#&^?e+q#Kjcts$Kk6PCTb(4aA#M0N+)Z^9^prD_5|tL^Ex~r2a}Z zl^$Ud+{#|AekbTmHwM;RHImSM9E&}A^lA6b$BtS==CKhVSV)ztmMpHx&UD@AO1yPZ zSS4{z$sF-CY}#ODmxb(JP#0c5GlLa8$6K1Ve_)8Q9?Jff`KfncZ76TV-Q|~XX;4RaxS4;^8V)pb#?lL-Nj!oydrQh0 zq(w?_K#SLLypI)dE7I2RDh~wjE~1P&@|!wQBHa3Nd;Eorctk-I88xDO;8MdEIKaLe zC&iN{EN6_DQtv@bFvfqzhV91%34Is}n%~e!yGCg0g z)mF}##P|ef+7gg6D%tFjATeLpA|&O7baKsl8BU(%b9SBe*Y>l?kMr@jE8HtkDchgz zr9%33Vp$T0nHGhaOldV$)3xchH_x($pJVD`&rv{|2`+pe>>_^M-V|Y&P=-#hXRTzq z6?lgDhY+ab;^{nWCp?*Sga7Jdi#P)9N!i*oG5H_-O2~_ni>|IG0?j7dSTPbc52sQk zz{48R4c~p5c55W|#AA1Jl(~sxSg31odt>8jkbrI0AeuD3qnJ|3(yVU zSiA9GBLEG!wC|D1KQ_luf|{|CS_ebDXP&yS@t?Ux?970@reD@&E8Phq9wF?m#3w69 za9u`n=~T7Y@qDezZCYTO)0Uw_Uu&HK)?pJF-U`zXwoCPI^C*K~7NuUzMM29-|K z0Fo=UdGCHvEr6Hmcl3mw?uroB4HD><80q?C7V-Lkc$BuQwV$(Xr$SATwgW|ceXYu5 zpv`V=lBTbj>SyRj8%BZ#zKel*9O%r`7)h7q+rgd(>B%w4*@&5?yx~ShT8>$?=Cdc6 z&UGCbuI(4xOxrWl?K#X++HC9g@Al6L-v>DGQ#iXwW)LS%F@(wu1^k?P>LCHmGGeZf zNIk-@mNd3jou{Ruwpg+m#Ih&lk5jQ!re=KND}^rRQVy+ zs>}RZbtP@$YJmyh0j~EGVMMXRDED_t`;{<4l;C}-H?e(ydZVQnlYDM^{1$ZEKH=#9 zrALt`26L{Pap~sT6$5EIoOJrzZoyFN{xjb~ilckV3R%c$9Udi}ihDrr z4?^_+M;&dTvUEZJ3$2Z_`ZpT)tCjp;51#eEjThF6e?95{cxJ7Y|9W0nQ>Dn-aQ?k< zvHADBW}CkV-jvz{~wFz^oy_kSU%DM_{*CVxEtO>HCmr#JhrYY8?QnmfqD z1MFh&{-;CxQXL(G6zzU5|Azhkf2!Mm9wr8+JOxsvaDxa9|D^cuelWp*X5Cv%^7kn` rd?BF!li;6j@qeG)pKkGg#$ZYki0bdo;2*Dj1pDNra2Zsg+x8|Cior}o-&Ej{Qdj?MV~;KL;?Rlgh`|blu1?QSpSRQtrgGz-(14te>YFsgctmuucQck z|IO3`5rpAE|6u{{|9RfHgLANSH)Zp7u#eH~ja{R}>$qj6Zqp&DArqF2)v2tgh^W*r zFJCZ_3G%QetKl#%1(`(0@V944(^7m*_qjR<9)BEf)e}XZSFH4e8%BeCH_KGkKJS@+ zKD0(W1A7$*`X{S=sL}%wjLBJHDcV2Hz+ zJw^-U=n>w$#`>=`xT4WG(wtCpAUQjMa*{ea+c(ZFWC>|ofO*colXb4+ zdoW+?JGRR9yU5$2rHZay^~b&O8@mg0PoI8oMhlSM=eBo6I{%3BMj8Qq<&EX!d$W;F zVj?U%JZw9AXOa~!u6K>2*dU*#HfmD+A`r$m)1PNzH+9<@Tv;MZB$|(cE!U`n>lIfx zhojLOuz1sT~^=BKC1;PAU*(Gp5TK|jOEl?$>`2iK6jEbho zlR3H%4+nRT2nY8+l8T0g_FqZ;f20HM{aeA!(%s$0(aP;VBGPHF>9!;AKCrvHu-`9D zYUSnY>KT%L({Cx$AjiX-Ng4!ykCW(Ayt{LC*Zj5OU*ov`>S6H;2`m8*H0?Sj1hpUm zUwDU>#HHe~(xf?@5rC|rTD5Xq(c*>d(fFi^jxE5p_`yTy{LDKErxdmxj zdQu97MhNq_mU3l+(DJpKD%|+vVVKi-m9XVXO4!!reH%|bUwPX2)&0}_)4!y-dDs2R z%es?5qs@wB-_8UJE2jg;s@&{_u@%tmQu}(dk%_%!v0p9pkiSZhbsh3t!}oe%YpHy5 zm~Id`$}bNd|8>&#z1k48%>laBw^?)R7P}%l$L6U?P*OTJIpOLx`JOmGr&{Uh;_0Ft z$o|c1mMnd_vQGWyXuwWFjsw2G?-#H!!N)*sf1$OP)s(3DD^Vk^?DBg!>Sz$R^;CLx z$jS@{Pzf%nm;|i3tS)cB*N{o_rvmNrmwGyfaFlqgp6i4q5=P{Pu$^Cgs};xAwJU#G zb5V>AFVM}EZ_v%-wRj??b8OJ3QQ~R8c>J&)Hn`GdhDm`T;NK)rYkaw;NWMq+u6Wyr zY6a7>@@MlqapB5E+eh@*0xgh;ltva6zve1|R56x8#R6Z7f_ZDk3iDA);T(yQCe_or32Q1_n~tq*Xg53!;rQ)Kr%RatnJ_LkgLI;S_G1j<^c@|-;`u(eq2XzO6wv0AV9^rcS%Z8FXs66 zuoCgJU7&V+t(JQ`SN`h*NQE2Q*Ri$W`%8IgBY4O|UwVp> zC!R9(F@$Q)kFKeH#ns>#r9h&!`2O~}eI<>ZlV=YW54UdNxeH}a2Dve1GN~c4gcltA zcm~YBaBkxvhjSm9sG{OLf&lYLX7`auqf4tF5VyFr%UhFh77P3}A#*)Wd z$2zO5u=sD9<4QK?kp+Hzj)^=(H9%``n8u7ip&zX#aQm>oT7er%oc54PHNX*?A|9I& z-Si$Zv(+gKPh&cr!FjJblv`gx`4dePs4V)W%G@F3?<}wld2xJ;+S~L~6p|WSmwl3SiT%L`JT6kBDy&{>0N&cBR&Y3`_g!q=GjnG1> zeqv7P4{6blpz^W>)!>qq-j95`KPW!P|7kJU%2c2eQc&(_=w6xo`#d(vsnfF|F3j3H&QP)v6ICO@-ZSw40R;`(&mNJ_2+ayqy()0<*Zj zyew=x@2a%ZrH))o*FxL;tulHzcKtneCLZ20K3bmPe zxxa3k>Bt~^DCb5}a7sRr(!@5^ae89^?inHIG&}g9WIlsUyh-h5aeCvlX!!LLcfz>f z&zQmw;~fGFJ@%CXx4_^!|75eg*1wL1 zJNj5RLnY%c@ARwXS|A7P?#njcgjjSHb-Tr0GYI~Zv)gEoz5|Dg^My_1NvT*%ZVi7% zz8ZT@L6jBo1v1xI4+?8xx-}P0NuN&9vIYzBSG(e0%ZGPkY8X%p^q38s&*V63|7gO( z^0XhYRxjhxr@_|@ge^i;PjHnrlFzD6`qp1(OwGNE-2!28LBW~xKNuIXYtJg4*tsZqv0GNit|6x%v{h2PtOmt-nO3)jsj3vaCe-^rZVwoVkZw{TGU=Q@b(pbzvK0H%RK}3e{AnaQD_@CDjeJ+=l`|6|JO?drZ0@- z^T5I7Coy1tMU z)tIG>rjWmA8+kvqW-GVsMRH1Z8i#iDUq=~;AX}=5MMbo;5_+Uwpgh-Si={vrB-lRh zU0+4|I`cAVT4zTY*y-pIs7M_`TpV#!>of z@ZLvAS@xwykj5i;zDo_3i~oPf0BNMb{$Q|7T%_H7-(42PLdCG zs7ow%8(;AW4ITM6IHfDLt7P-E{a_~BF%2ya@4p^|b2+Ng0kJtciU}{k5OAQao5n^} z{f2CW&CmKl!qwx~jR+ndpI!DH%a|i|meL3uvH1@ZZ%jUp4@~-;ScPpGMmxKu-d%Ho zG`k@0GefaC=>hK|OkG)L zpo>MjMLSF%;oG|2H2^KM+Q>e1Pu=GQLURtCH~#t99+vooJp2sp`s2kPI`3OF>Pd-p z8Lr!Dh)Rb8s|SxWCleA*%?q6R1_XhaF;Aw9DR1YCgRg6hD#yT$*@IUqfGAp{N;|Rk zjt+f};dYm!tyroCxEoiA&W;WRjw<#iD=Xg5)Tu54JuM62lt1=aOuPd;y;{HzxIQ3{ zz(25xJOeYvkgseJ-D2I0Bn!J=sKA7yY}`@-DXt|)NaL;tRJ(2nI=1aj3~C^*!dP(H z5?O^**)&PFXryZ{TZ?W2lNb$=zqH-VbfRtJO}MadL8WBsL=l0G;Ca#1>CrH%t@-;Us3fhUk>= zt}ZSv(ody|zE+2Xgtdm-SX+dID3?u2(iBbi$Y?oYpUa^8lw}uxq8c~~OSsuo+FM(g zo*#Bj=I+M9%9>T|Ys>T1zD^0RC(Cz^$Byj5GlN}& z#he(b3rDcj+n(q@1`s&P!3TfE*NM8|=n$1!Z>*&Q9)jaql0Ssc zmwT_GaD;A89!=4KeQ#!&*IAA8ExNz#n(^|Smk3APd+tu^O2>|lU!>%R3x8j|4y7uk ztvE7UJGy@-TM`4@3Y(Sr`Jt_q}7(9jUjWd&vn}N0Tf){lkM1&JQ8y262t7c zl_9-d+SJ$jL1|Cy+v&~@zHnXJXi5B5V^k{S#4Iv_mEuXcRtO`6cn34yS>-D(;#Vz8 zoI+)Sygf>}SsHa5+hH3R$|X@j74cE#{T&J~;?Rr&JA^R2hW}`&X_6ve?Lz>XJz82_ zEsmT1@aHmZNl-(#q*3%bXSKSVw8m1LN`o55Dq$@$BZ{Gm6a!`VnhDHutiks(8aXAAgmir^fD+yX~; z{_7tLM(!svc2WCckt9ujRudGM)vueA4N;23fLU5?zE=><0x01DV{JEfGUOxdf5`y| z-Gj9;Kqp(?p^|{7iQ@EG(#LNM?ZM`dp|gnVH*RHLE#X}=k;JE0qy@>;2)Z`UC68+5 zMc?1}3Aq5bJZsylBNG2j7SglN_j<*P7`8gCzV_c+O2;T4#o;}8iYyxvcw_XUL8v^{ zL_KqaGiW+B*qDBv3?!M?YB77r#QSJ<%2V2=Kd+1oKG}I@rQNt#jdmT5`uf35>tj(7 zt>f{o@H%|)VnQ`3usL;~ihceJnD;i|$QW9a>Wm^;uxqd9iRZM(^wU7)wAioV#m(po z;tfw<)dE^M3vZFzIxzWOQ6Yp#gEV^TiPVsX4St9`6fz)+$)vHZ(mcWGJJ~*a>8gqW z-Ajf8mIMEwd6<|={`z2RyL`nYA~ESAOhVx&ZEsYC(1W)T>!|Ooz1Dn8Z4WT0Ic>WN zKP)~6U~3dpOlEDAO9EcF0jPMSgO8>)ZDOGwdOk~86-L;R|7GnCE($a~d3O?pXXhGt zEbmfvud8|zj#5x6(X|SeRr5Mly;+atamSjH+a4nR!k?ml2XyRkYRWW=n!LgAW?fZZ zF~^j>;1`wr_H1vDASN>2{GL>dRkQj<7AEfAaC69PRU|G}2@;gQpZ}imKXw{~US_w! zSj?V1D+U1L-QI(Ch4+(WmKi@c=|E*Rkzwl{<7cS}WO=nRdAPP$7x^1eP$L?S$yO~3 z^%rD(60V?14LA$Emf_4q)kwj9z)a<7?^==oj}~!V@||nh0weJnf$8bHKmWQC?fmzlK36{9ij~pQ;KTqVi)a(=_BO zy&W=t0`;B9Y|krkah$!>FDG>|+1?Rjl{~J0F+uUrBeNJ*{_0GE(7?b=IY$18X9@!; zFcWT@kJOisx@wce_yre6lagwqy6~6T!EhHh)*K*^3Z`+k zfIj@)EMIOQw%`yKf#sN~x0o?C81*+*$wr!VXUs;?_pb8Z@mVZhViNo0Qi*j_Me|XO z+Obs(IeF@Z5%bd+H#^*bN|t}ctO4j;K%lplamg5{!&?|QZ>W=rCES!ksAVslH-w2j zX8)W208{^=>6NB63jesl{ss`w4cm&w&wtM3Gv${+jsHZV)VC#p~{ z#6g*4E)NQDa-jE8Qu*XitQ{3nU*H%lEd^ATvpC0bvLI1n{A^=!t?2o@ynFC^1z{7j zXYVLbRRD&1q7(+zN&UlCHCcZFLpC&lZVb3hFR@J47TiZP3uN`OiO~fEXZmo2^kA2 zVB_a+{Gd7^BvhU@+VAf;^Ccv6`gfUN)Z3;D=1)5RX|!0m319f$5<-QtAgw#BO(A+_ zvB|bjf>IZOf}keEQMT-&UGW>VAYyJ=`L4rSITDW!d65z9#bFBPcQ~k_>T4dgs_1n_p}39(yQt`iUc=M}U?ztt>dn-p5U~Q8K~P#&iDv6n*(GNs zg$IJjY325XR#*f|@+j=1k_9p8-(r5CwO78Y$t%(|wxWvOGfSuMZ;KFO-IRwJzEb&# zqGASNFrwCO&g}$oMB@%hOy00)C~AlDCbftfFt0=>%kvY`J-kKjaP2!axK_V{s!ves zhaldIT6PRa_9s#$Cci@0>6s#jkX_*s}5cVywqVQ+5QVR5O z$WRTXd5y{Y601wKApJj_-|sQnk#3oOnE>ScJ_CVR)%2dJEzju(*={B|w>Y8hq`sZi zD1|UJ#gmkT3E|W-k;Ctod$yIf6hQFS?Y+71{>PThdYNgEP?%WkIQHSiI^Fzf;?4L- z^tw`mdcut#Ym+GXVmQ(1)w21ZC$q+8xr|?J8-8BY745?u)0m>6{(En9bvtpEqeC+6 zaYq2Zg~#K*Wp2HQM8Ja}c9=J98ME?~je)%(SkJDd|M$FQ#la0do|Fs7;(DA)Na|S) z68Qbj>**F0Duiaz5rdCetgl;%agZxm4Fkj|O+hl4$r@ell987JH8>m7;5bcmg1pI7 z6C0~+Dv1h=(QW;#b_;||7ehcEMwnN191frYu~P={ZTLe*-!5+fTL)X0FA?m^2k2*T zrSUkGi&et~+RK=F)eaU*-rWh7}YZGIoTA--R2>+LDN4)r+M@o0GyU z^vBFSu+9)0(5It5tT6qV>3bH|M+fdoo-J|H%obQ*ytY{oX&^Rgdg zKKFg*ywNReJbF5Po9bgNpWpdwtGTYco3e6qXNxTRuhb=F6x(?aG1(x6C?^q;4v#in z&96FE_54&eDYoWB+C8-N$J8%>qU$R3HM1M}3Kw%?z^`y%uTUWhLnSQy)`6cU7t(^j zC7QyrYrqwmChw!P-b}X3n5K*d58KD6Ip%NJ`xNoeM_zu;*by!(W^TDRQ=LRa!3YYE zhol_#)N#sPC0ft|nTJz&*<7kSK;^yHReNoKB)$hSe`4_Kg8uoxGN|*{n7z# zbNZdWIy9*B^fZ__G>pRLuWj%1YstDN)FU6B#EMCXPpQx?MS)y!K&*01EJ41bw&ZF|Y1o@b5SWWMS-8_r)D4!U%>G8GJj z%A>05J$vqFKwdNxhphGg_20&U)Y-%-RK|OsV1KOGqBiLB-qd+ujbyiNb+pQBG;QV! zxce6bSgljbc@zBLbiN%}kCGU^r>#Ea=@4~G@E)1SaZ#MtVOijy(}(NxsUC2Z36dxh z+e0zbzQFh{+ZOz|+?uTB#Cb8Kz$0GxxSJ4%RG3vsBx#DWPg*U2Q~wd`2PBQIjM-yeCEraD`|x& zX~mavAL=GXe+s$UWf8*sV(6@o`2eX;s<8crEHBs%HFQOdTt5+Fm;^ z%id+xQw2Q!%{xW!*;)5)zY{t8NzMZtYs;2Zvw zr!IqHvy1}^Cby5FZ+~^@zS?kkP7ZoS2B*l=wcC#TVDu`i zS~NJm(4$Z;1X125cxf{@!Y$A?hW22M0Vdms#~Js(G~~!FeH>9RuxM_bEzs*gWAH>+=2HvVR#P&usu;YuQdj zTjbU#&;h$SG00Lc27t}q^hc>m3OZnY>`g-YmfTaNMqJdAkP>XCdRg?-m@D? zWJPXNHZdMs$E~A1D|DsVP*!shTrz}CggM_2C>L~{p6o1t+mh3eV3kf^7}O*K`rMq= z4Q!+bt21E#I6N0#j^iDiZ2DCYr)sudIQ0yA9*aYanVeMxv0?LWkAIS*re7`ptD9ep z#keaMw@`1IdiHfdUuN>{)Wo{>TB{yHq!glH6q^L4Po^(aau6k9WB#}_!o*%!uOZVP zqsB(yutVTYSk_NAJy}$bkxu;Ax$a4sb}q#f57wQ3IR`5gS2; z_(ce2${NFe4rctn3~ZM4-j{f)1M|%G9Cn31xu31BHtIl)$H9A)A#A%Gx8y5!;p})CZJ-TsoKkrc*eZxFUN-k)5y`*__lLb;aEb!)UNSlEtw{~f_0Vp&A6(-!bl!Ex!pw;)$Y|dC zt3Qbv!NK@qo19H1t{>V3)^ACt7V!w_4oQ1Dxg*dA{lkvsq4$deT(z0j zA~G{P!3o$7e}grz-D)!POVA@x>~>AzCN&Ywt{M82O&Z=U43B`>P{8YClU9gn^+w#( zV@s}i3Ad@C8aVM@JVo9_yKv@_-rgnXq3V*>ip#uTYda!&v=d4*A524q9A)hEq!>nQ z3MO~NP{GW{lFOjP&szR0syL#vd*gLdJIHn;(Yr3Pz;OryKM&O;F&^F&B&K+5&DG+% zXTOP2eN5>0AF-vnbVq7hJC8i8-9!yYUurObV`@pv&`8`Nr%P!=3=rAG3Cq0@>huePww zKsKru*Z}7>tX$_6K(6&W@Ib+T_-9N^kyeSECE^^Pys%ox1NqUFrhXLHLByAUB&_pg z-k>@mcF>1JYw91Sp_gTDZ8G%=q$4*OdPYdIgO8I|eTgx$K2IM`?s5bg20P{O(Gtjh z`)P@nCr>s?-%mhFaJ=JBwkirPqf?3d^}EdZ*<2zMG|+kr#?F3TS(jN6myYILHw1_P zZ}C0;d|tql%PDa?x;%q8#){O`1S@6#nI(w7eg@@lr~(OX$6XjCe%kOI#Ukvj&0KpW zLS-%4EwRMBs60G8z42@T9-7bG^$-2!!217cwLGXnl4Kqv5MS@vdhH=5jm@@H$Oy!^#3Y3|i1v5CgKDH~B*4 z%QqwgTZ74sL};+IQXNBoMKd`Jh%je{GnTmYXqSJvKbOZXWN|8Kaf$iW1i?d%MTFC^ z92QZVUMiJyK2$C0ALeXE0h=30 zU?3)8GHJcrjKm39B}3r}Kuxk^(gX$4%klxiaOf1S%H{ z>Bs_tKXHmu=AZQV)XBYt?APZDl~wU0yP`@g&|{OLGQ^b=$ohr;5PzR&mByJ%(j+;o zRgk^i`@20hMdbS}X_D&Yrm>8x%n?!S24Lw24~`hZ2uq-xhugFb9#Z{uSOnsoEP%7w zmw`811Gs#oq~e3f@~4|ze(g9NqC5Xra~9`jR3aW(A3R$W%2H%JnXsKQ`%SVTi|aFd={5I17dT4)!g%AW-xwTlwxOt$sdsXD7jKi^ z-6FCJs=V+}0d~JzxPLel)v@d%$V2r2;jvZ5?}kz}t=QwmipcfQf*kUAj_s~W=A>8) zVknjV1jpv*A_cq__4Xqp12;a5|0LDl!j7mSL>pf;ts$ew@Wxd4Mp{pS8m7bzz|2SP zBx5am7Dz2{3`TG@?7xg%%z6J%k`+3cdPIc$fRsM6%Vkv zap&*+1L)<>9m;ht=utSNt*$hGLmQZub&;Uk8K!(}(9!_N4~``P7yQO|T8)IrezRXY z8wo~hZ5XOI3(Y48<(JevC$HBZdmr}N1G8LqHMqxyU>!8-iQ4Z`{DA(@8J1PT7i7r3 z`gUg?FDx>}l&5B08!P%B?w>{xm0Ua4q&Y@(uDzliT>u|E

0M`NQNpJNSgwC>+%LI5@7H&qsj` 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 diff --git a/doc/Conversions.pdf b/doc/Conversions.pdf index 3de736be458ce876b404e60dad7c020d55feb8b1..06bf6f2d21a7fb9cae8383cf291c3a0ddac1f1a9 100644 GIT binary patch delta 4969 zcmai0XEa^iqD_txy+;W_3elZj2;peaMF{zV99`5TdOgBHbaC`9dY1^%YxLgb(_6G~ z^bo>zzc=2v+2dkuiEcz zpXbUJYkPuMCgZ%0D6=GcM2+n(UW8LkuL#zPyw-n0+YJB^Rk@Sd@L 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 diff --git a/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp b/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp index cf335df..0560375 100644 --- a/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp +++ b/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp @@ -638,8 +638,8 @@ private: for (int i=0;i< 3;i++){ if (msg.FieldLen(0)>0){ Depth=atof(msg.Field(0)); - char dt=msg.Field(i+1)[0]; - switch(dt){ + char du=msg.Field(i+1)[0]; + switch(du){ case 'f': Depth=Depth/mToFeet; break; @@ -662,8 +662,9 @@ private: //we can only send if we have a valid depth beloww tranducer //to compute the offset if (! boatData->DBT->isValid()) return; - double offset=Depth-boatData->DBT->getData(); - if (offset >= 0 && dt == DBT){ + double dbs=boatData->DBT->getData(); + double offset=Depth-dbs; + if (offset >= 0 && dt == DBK){ logger->logDebug(GwLog::DEBUG, "strange DBK - more depth then transducer %s", msg.line); return; } @@ -675,8 +676,8 @@ private: if (! boatData->DBS->update(Depth,msg.sourceId)) return; } tN2kMsg n2kMsg; - SetN2kWaterDepth(n2kMsg,1,Depth,offset); - send(n2kMsg,msg.sourceId,(n2kMsg.PGN)+String((offset != N2kDoubleNA)?1:0)); + SetN2kWaterDepth(n2kMsg,1,dbs,offset); //on the N2K side we always have depth below transducer + send(n2kMsg,msg.sourceId,(n2kMsg.PGN)+String((offset >=0)?1:0)); } } } diff --git a/lib/nmea2kto0183/N2kDataToNMEA0183.cpp b/lib/nmea2kto0183/N2kDataToNMEA0183.cpp index afafcd6..dbf6af5 100644 --- a/lib/nmea2kto0183/N2kDataToNMEA0183.cpp +++ b/lib/nmea2kto0183/N2kDataToNMEA0183.cpp @@ -267,21 +267,29 @@ private: double DepthBelowTransducer; double Offset; double Range; - double WaterDepth; if (ParseN2kWaterDepth(N2kMsg, SID, DepthBelowTransducer, Offset, Range)) { - - WaterDepth = DepthBelowTransducer + Offset; - updateDouble(boatData->DBS, WaterDepth); - updateDouble(boatData->DBT,DepthBelowTransducer); - tNMEA0183Msg NMEA0183Msg; - if (NMEA0183SetDPT(NMEA0183Msg, DepthBelowTransducer, Offset,talkerId)) + if (updateDouble(boatData->DBT, DepthBelowTransducer)) { - SendMessage(NMEA0183Msg); - } - if (NMEA0183SetDBx(NMEA0183Msg, DepthBelowTransducer, Offset,talkerId)) - { - SendMessage(NMEA0183Msg); + tNMEA0183Msg NMEA0183Msg; + bool offsetValid=true; + if (N2kIsNA(Offset)) { + Offset=NMEA0183DoubleNA; + offsetValid=false; + } + if (NMEA0183SetDPT(NMEA0183Msg, DepthBelowTransducer, Offset, talkerId)) + { + SendMessage(NMEA0183Msg); + } + if (offsetValid) + { + double WaterDepth = DepthBelowTransducer + Offset; + updateDouble(boatData->DBS, WaterDepth); + } + if (NMEA0183SetDBx(NMEA0183Msg, DepthBelowTransducer, Offset, talkerId)) + { + SendMessage(NMEA0183Msg); + } } } } From c02122f253ae09b0554be14acd488ff6e8baf33b Mon Sep 17 00:00:00 2001 From: andreas Date: Tue, 22 Apr 2025 19:43:23 +0200 Subject: [PATCH 09/12] #107: update doc --- doc/Conversions.odt | Bin 26267 -> 26253 bytes doc/Conversions.pdf | Bin 38348 -> 38386 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/Conversions.odt b/doc/Conversions.odt index d6c662c23ea119fbb79102c2384a36f4d44909f2..a44672b0fb4ff6cb0e502ef7d9ca216e493636a9 100644 GIT binary patch delta 10493 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 z zpd$i0iYLJRczM^DcsO642{Sk%@HB;YZ=-yKc z+k{sdbMVm<3;=8Czttz%N@?6L~s3^@Yau%x%+} zF^e}5FOGnuFP}Hz%OkoA`L^47V)8JqLfiAzCbY1iK>b$flELq+u$Rgp5#`g*m`%8df=X^)YyS0Hh2F_+eTP=zfgn2;#aY&eg4K;zTbERlB7 zJ+S@4QJHJ9{lWO-S)=1mw4+!Dzv-7v-Npsg{BHE0EE!#uGY^~nYDPPSA}p9;6K<>BOMJzZUQn{3;Up`gDW&F~`9sQ0KYHCcEA zYS^^w9)sajxlP}UC1*mrCSg4W6L)AKwk6t$+fb&4JiC8eivY{McT(^Wfuk@{m))6DF|petSHp zedhAKl7p&OvD}FjymZ3pKJxQ)xiIgGRGfW6(r}`@D!-W9Qbiw{Xz(5u@PsLIRiLkz z@T6uVe|@%Jo9BRHqW6oW3P_Y^LZ_=G=&OpRL^(Y@iW-VA*tfv0JY>Sl8|Pt?2#nTI zH@~KA1MVPy0s~6n4e>iY*jH3B5;xHkkntKj6w(*gMj;1y=n(n45!m5ltWIE zDwJh^5vtXtj7awZhntWuFhd_9iZ$#V{t$zQIAVwu&#>KzVW_)_C$>@a1HZ_;awzqL z&=A1tlc&q0KLg#19XS*`%5X9zyxEye1BSI%8#S)x{qchE92a; zeYL90%5}y3lrSB$N>1njeiGEClAAizK9sH>CS-T?x%lZZzzbGL`MnPI4f3_psoR&q zy9Na|yTj_a!7l2JEDwT$UrBGx@T($2r8R95MN`#0{=G3GH@mJk8qtgSZT9ip=0eS$ zFsHg#l|oHZdTF-&6QGVmE}arfk168=qh0KV+W^)V;+LT_%vaOy*RFL4`U=bTundDOkcceXXk z=Am7)tiHHy{WEKyH$o z00%^^%D0(R>{gmxdfXR7S2mKkMXg>hL>Zg~DPLrdgRbE7a9c%$R2HS%q@Z^QeB1i9 zU}=8z)D6BNFDGK@`;6>_jRwa>;6N2_NF zG4^IscoA6^a@Oo#-N3Q!G@rutA*Fym0n;Cj;2+8+L8T#O?nNBQf)iIM=cWQ3b(aeQ z`A;d9eht}-zTC%};3)146az5b)9a!(GU@S({Io4GYZcv^jm?)@5@6w@8qx|#)nMhF86LnXe03nh2?wF*f-0s(6us43Dl;dS-wJdXgXuBSm% z{ho842}p(3h8i8w?O=gldG%ZdUm6Zc)|xbP+&;!uB0eDgvL1?yFfbRc|FWL{ zuPFSKBL*6{?C~T8Y^jlOpb~E2t40YuUoyF`Xr>tGrB>Cddnoj{36oKVxg|eN@Iyw+@Ut1=r@Qj3TEj8YZ`VQjZh>zdQX!erer%J+Cb+Kl4{SO!I%lN%8C$>6T-e%b|Olbz{>$=ZSZGQSb*XR}x za+C^|Xi6fO&gbJ%t4W%FM;)%zz!Hj#*~AwF*!Ut1rrLPhH%N7M-HO;hMZQ(l8B&?_ zK&b`}FAO&GEkyR9gzYZZ7P08|=6$$AhXZT#*mXZz0w-p3_S#2C`GAPOfIS3LXB^(+<>6;K+NLVT@&2y-RWo@1!4wVf;yof@m)voc^fBLcXPZ@fq^-rU6j^RzC32)% z!x4*Vb#9fV?qP(TxD5Q#Ak5Tw$OR14E7vd-zzJbg#@j=sr8O(mIX7BAuJwvt--?}2 z2-Cwnz#4%(0T7-*q_9%wl>a;f?7-OJE&Z@{yBL7brOlj8qY{tUfdY5zDo-(b)Fo3dlQaU)HGYRp2DXRxvDebJ1 zH_}ZHJT$sCqC^+R$ZwWqNO;uHNUtpOFXc2>ff8tIN3cDCv^d6?hg(U`)-&1{$@Xhq z8AreY&tzX*)^;Iwa5)fszyV?iEu6S07=Y!XRW<%0Hux#Pgh`u2ib~lj63zXiN<%y1 z-ML7spL``(qdyK;tTMEn(~SFJL>#1Jg}nGUN=28SEx*NfHa7;9v%19L=`DIQyp^zsPKrnA}|QeYK>PEF&GId`m6 zq+S_-#==3|6{llr8cmIn_2U-%D$qXcmYDLPqC3tVO3i$X+`HlJjL~CUFJ@P^c2qM^ zLZmVZlP$h?SCV*W61a;8xMpJ}?iY|6xlFoxN%4I*rrd~@#nU6*VZ|zftt!n$k_P0H z!61Q`!2R$$*PrAbq)LTI_q6V3Hxl9x5N#x53&69)hmd!ow1VYP@H)u)lX^8SX>3K) zP>4?ge|Qq0U!k4}zTUxs+A7ra-N1#5LXeZ2Pu*<72zzx1vKBw-O0Rwk(8QdTqfuZmr0ifQfWpLVZ1X(Jzyv_~em@Eu^!Hp+$-ycn|cM8WyL3jWMA=3wd`3uhV3k?WA$*C6}hjWEsM}yo;;H-WQy>ploO4OLhoQ~-N8B}w{xC$ZM#^_=o$d{1-6g#=g%g_m{~zB zD+R-}484nk6N3$iw0<+ra0C1taU^H7I~BpC7HyM(mz#n(asW0niZJ`_4(g$4EzO8y zs?Khi+20ol6&`=`EjNKaEN;Ip%x!(mSSsySCx>StXQG4uWA&}y@nIcha@{69h}j3K zdXXIKXWp~%?54YrfwWQAZeADK)D+q(t+*aUlpaU?4zzHiFgUs`o!KAwu#Z6J}q>9zI(GdhT`ra9TC^hN!cLUp_w9q>V7RwZ7lpv z%403ki0DJl#trmxK4E^I&i;C*x>W;uQZF93UGH% zIouq|B@`yDEX4u9Q+X3TC+6 z?8Cnix2yq=CCvyQtZ6>N@l{IhB4y?>jD4?X3U%7R3-CJt%c2EN#Z)>ayON8R^ODK#i8Cd z2QW5QjB_zW1~bZoyEEV;+kdGn1RMpWzHWL;XQn`^P-=i_z7ws;!4WQruA;i9NV?*~ z^Rs_bm6AzlZ(O?Ny`MuaDUOB4I9*b2TDi986S*S-x&z8vnAXuLdzCa$W{b)Jd}99i zYw=-3UXZ)5fwV%#KdC*-MKS%C2x_w(GSFpq$s_|FqGRra6HjNpN7Of!Xkg+Up{;#e zI8dcK4w}Bc#~#)bE9X+#q7bM3POXipy6heMgi0rqz=Ly?z^x?X3clgihdfi_6&?=B zn|hiLe31F86*NLs*Rrj~j zwc@3LV>?kWzu|Z}`}5a}Y^h%7%fNv-?cbldgj)`FvmYUb-_|`3gMWtR!$>1+9AncqBd>IZadHzP(xW&w*m&?kOJro#C}ZjSB@cp; z19q?X+!K#wv}py?K1CGFtxS7w zjb(nlBZ<%=Uc;J)OQ7>s@CoFdBmy0fZF$0mk?Nq>a1PpI51v8R8a;=03!4l*0pq%E z`WtD#>n+yLh9OCO-ciA$_&LyF=u~V3!xp&M0uhTpayGO%;Hdo>9Al?~|M6T0a2xkJ zqo{Zow5!GpMV-cr@gP!XxQZn42)D}!8|#5QOb}ZasDfp4Bm+fIY_f-hGVgzaq4IEC z7fF=2dDrgZOaS+${7UH+BjG`=2-GwYuV4(tq^$j<1|_B=aJ)~=83+c)WwilInz;!Tn!nZ$N&0%)p3LqRQzp?u@avJ*`|9CAAoln@3M{NY zbgU$pcs-wqbAkbJbvsIGsWP&EO)p%SDIYu|Gt_h~Kk8Dxhgg4tEdmh_95^8sJX{X# z5=LXi^J%v%N`2#YR`YGv_%_O^J&L3N-?E&pTu=@V-*t_WThFv>BkewmfFKOhjkTW8 z!cN&#hZbdw7v~4mFrRs!9KSHLw?s-%TsOoGl21rbP;htoESui*#jS1wV;Bu*z=r|^=474{X-7k#^ zZvR!YVh<+*dWR zXSuh)N!wM@Wg^UI)aMhBYSE74HS$92tc>?|=^RY${NwZH1?~-`b*)n_sQd4zxcYs+ zVU(asHP+`7Mb`2jo^1_uWx=0|A_pfNTa#VrH&putkj!5l%3bx50!NbXuHZ+yoU`f(7QpBDNto1tADxd4=~ zr9hoK2_-d9ifo(q6c>mejQL0d6}yiEAC~WMU5u_|0W9mGiT}C95NybzVUQ<#5LTFo zeTn_~4sT1`4?A6N^HtVO`#~z6=KI~FV0A_KvnYxtth@pWAn+py zNWilJGz5v!o6q14y1rd&Tjh{4DIu4!i=32!g0J}$1iI`@Y4i>@)%ZO4=V0>gw=-~( zSLh}vhZ%WOd%#T)6iRoFWTo+)GDNcsKJb(y0?|tDZ-2m!6Y|<}Q{H3kYxi=>t!Q6t z9olBr`f;h{d*I?5){gj&G^>ZP++{%nt1oo!RhM}K!G?W@mIs{JLG$@{czt8g+6>KE7!^B6CUn-(rJw9b2;3KM)ud^+@$~_ zzuoKLH5 zU56x3G3v-0A`u}b(-`=StBllLxkZ;(T}Q2H{8SjS!pJOqtfHo5o>wblqj3<;e!<+k z8TzHO=+zJQCW(8eyj*g1AnF3|HvHLOkk}S`tdHq!Y=&k6L3?XI77;VA65%FmmhpJ5 zyicbL%=f}@b^CT@I-d^V3Bn1K@}x`Kwr*0wl%%g6W*I&)c_9cZo#hs4hyK3XTv#%q zuN(EJW7S!Vb1t6t_5f3(sh8?I3+n-<>d-E!dgto1;nh$d=&&bypiQWE7rg0$Ui#*r zBX?%P1Orbpgu`yGspX9Dpq@5{KZ?Ph$j481WS83?=2hmB<_0q21%_HsJDNVn8qqhx z*JU)^tgR1`!_&KA^WDKi@|kT3Ho5$KTI zr|)%AM*#xO()z41zCN)OC*{izI$Y9>*%Xt#~CH&W`bKQZhd4R%=>${mdWx zfQXO25XRh46jT(xI560RE%GA!yeRAR+{9i7PL<<8J558#ZEUuZFQZXfuM*LN^dMPC z;|-+WG|K3y;mF+F@?wJ`{Iv0t^!WFy62zg|O!D2M#bsJgcsQHhyK3y$foh2q$qT&F zw~xO?P6O+yz??t&Jvl`1|B+2KbQ(K>|GnB}GX0N;uiTUX6lhBG*HdmP{B8S!7DJ}|KFAU|{bzrYN00tf^o5F-*Ey|NrQ1O^xe*gsX-RNa5qYvKO~O$d55 w$L0S!!@oZl;eT=_<-ouIjt*|-4sL(7ga7+-kg^2<_;--K1r0Qs>0j9Y0bp_Ei2wiq delta 10485 zcmY*UED3W6Wm>cLvRbh;X#AD27-Ud`~Gfy_wFAv zv)!j>Yqq9p&UBx+Dah<8NE8(XXc%k=2m}a-;h4`T3Q&LA1j^68@BSHZ{b`dOASpi| zVE^k#CWHLzNhXA%O#WhyhV=hq|G;?u51l*$`4^tN4k`FAmhVs3qyZ%i2@J=i=|TM0 z^XIb=4wmkwET0_gdYYQ(`Ymee6>X6aCo=*jkVa*1 zJ-?xyJb5GJMf%uo_NSn=@6+8ny??GE(0D;co78V7G16KzAqSj`Mo2pw_g2mC6n!D) zlz!q&=Mi!P6nH)`qB?S!pRw@if=wa9O(Vmp)jA;ALlHkhP^E<`2cutvNV7+KiPzC+ z4I+fl@VkY8hAMYv^|!29@>a9%V{5ex>%e1?s(tz*(I{e=P%jOTg25t(MLW1Hz3qY5F~imtN*c7{q(75jq%GKZxjC-}qkQs)!* z2tT=oz|;~1q5O>Gm3^qvL-cpE4hVB>@%QC}h=cU;47HH-!;a zjL~|5=+nfKY^H&NxntfkTgL0x|j2N)MthgoDM{`y}Y+ zr`*prbqea}sX5Mm6bp^D8QY~Sx&TV4T zy{#lVA_~0q&rd{iIU0^yo;pfz`;7StcP^u#L5u8=XAXwW+O5PBR^t6Sttxw;izTm~ zotq#y9yK{j4`74^tBWcnN6V2#BtOr=<;y4@Xnj}NHit-J-yxfft5U1 zt$yBAA$7I%oelGnq+q%c6H|A={LO~hQ@5cWbF(~Ntp8G?O*RDr0!RuJhbM&cLL|mv zlE#GI2tX73e5N4mAGl*vRSuOf$!v7~8q$c0w;62ttyiG`KW#5Oh!^r?8$1O4t1d7?4n`XM3~IDDU3Bl+q1dV8d?=`p7m?ax*WC%+@3$0rlU5pj?gKQz0qVburJY3bz1A^L6vIBWdW7v2Ef_Ig{^pv-w=|05< zL#r^`Mb+*v#pErvA37nG*QPsU?SzAt_QO`zzScS(HGE;Hw@E;tu_oyW*7_Z*Y#os? zlZc=er4meIK5Ca0T88v>2p9dL(+>cHEvF`L`86ug6lA63F*5dJRUbm!g;@jgxI`)& zAY6@hsid2ycxPtWX95^MC$=|kgcMSIBW9PxNRNFQE7wp8D&6SE!qtf)!+3w#uD_Kf zODiC&(3R59FT}6$s3gFsY6mWXxcTB}I-s^)WGKI3kNCiWeUCkn(ZFk|h5}49&B3KB zvbII_qSB(D&isVA6Fm*uK1n>i-jzE${rT)SlCqDKhERw@n>xU|q<;O?wR?UR*A3oC z?0Lt>S>(u2fk7e6Oy5d4`g7skprH%Urt#2M_HO;-N6p6LRBv*VDk*Vcq{()74)cqr zFz-*P*VGa(brNxz?NiDb7&XAnVg}qh;&DXk-*~S|tAWU$wB!9+anlB!3iY&Vko7yb0Z72z!#H3M!O| zGzp+YTxWL94%HP;FuGc8=5bir9^Tww%$>h%=FYsAc$T*JW&GUOdrk&e4BIK>M}b5u zQk{5An*&0;1YZH!P{)OkMxbo?dMv5b)L>}bVm!1i;FT487os|nj?`v)SKyVpLPOPw z+821D0Jmrx5)=}ntYjhj(7zDcJqF|9Q-P8zsvg6ds0zo!M|B-Vi)G5_hZ9XQR0x@- zB_C}VUuWNuuU5@dek}J9#`lA#1TDiXd0_*=;*40=4Sm^@|GV@nm=k_i-BK~D|t+RAbkfZ}!+xDI#gw>}~;siS4sw&~Wnec0Ng zbW>P(t*-30$ddn_r>+!!EU}@oKxIADR=X^pHnBITB77o)qIq5ZsS8t>MTqQ4yJoq~ zSQ4jmUJxn6n@7lGe?=8&PWRCV2vWp2<{MHZ31CcG7 z41fJ?%i7tcpTjT_=3P9L%&sskHP%+-5%l7a03H6GNYC+t2O|z8Fs(U>G^(#!8@y6* zopWfY%)vsNANcY0{>VHziGz%ga@1ENL49nze__UzOfx=rTCm%a30|$}Gc@%w*TE0? zUP(uo(|Dq!S-v6$ZL$q8OnJonJEEzM7!i(9+MT%{cxr*rCdrr8{5uhyhu@2_k6A$? zg7|UqQdB@!32Zw&Am6ddSrX4DU#foj4f^xs;EhGQ4Y@1lD31lPNe(tYgONqfGQ032 zlRr7^%0N!Qj$Z6^yLGg39@AU3HJbd~GfmYSb2FO@TgTf&ei7?^_hJiy@l=PLaeb$Y zufT29=wZ0VS}sAih4rCUlIzIq=uO8(duXskiIwy4;1B}{7~)0BX2q+2dS>hG_)4q& z0|6O?O+0NkerEqwjzWjmtOZ`Rfxczzhs5CTv(j>su|W|yJDi299YZb>x-m*qX}T9@ z`6Xwx*ll8QbIl}dG>fYbvUi3iy3K223;gHs2KuZ0$lSK|YgijB6=;rV6DyqEF=sX| zlI=)8tErRlf!zdWUh3Thxe{2$pe=I(oV3(S*Y{me<|BG)PzNl|xC*~iQ5qtrCVmCN3gM}?oOPK zpu=o4C~s2UVVIAh6=!7t12idyl--<0exJ_D&7tuPxWfmE8rhIrt(x73>$N`@a<&l3 zXq*!yAN}sAX20|NbbOy%#up;A{d!YjEA+$laoO-rZ`IBSSzN(aX}zKKHS2cnp#17g z)e>Kg<=7;0I-KQ`gly!r#JV)6J_>%Q z3fADW(G)Ja>d1zpt#3D6eiQO%tIUi26nLQ?^71&?uL_(qM&ZFeQ#SYkcf;+t@7$1f zaCoQ?M9{|BiHs`w(#$s1(5PzW-(+kE>>5gZfCw+m$&E7X2qXt6zaWFj$jQPDq}}z2 zC@2$l^z3S()O&RK#xJC|(IG({y|`Z4Y9`|mD8{B+ODnfaEu(0LR>GQ0Zj=RDkQOEU z{A+6&t8*BO5_VnUA4cYegvu2ds9{Iz5S%U!T8Jhyi`cBu2JUyi(A&vaOY(w>g|BixjoCNG#Wb5HPfUUHPU@56Y%$cSCI+Qz@aa%8__T)L*3K5CPG_wgi_U=nKMB!gZew7K_u(FTpL zoMDkgqmUHGBwe7qUC_v|B~26|vaLzmf8?yx~x7*WdIy%j0BNd&aDMo(I;*&0FCP z$pqvKCZ|V+P61-PChf?WhwFPJWFcK)PUgv!m~VyFcVVViUUJ5J)!A5KN~EVB_|cp* z&!pVBew|DU8$iQY>uR%#a=yWN02MV_+DubnWWtTKM{PBOn@V7gbuRG1NUiaet?(g* z&y$ZX-3LyhpzrbOn=cb;g}6m>R3naUNgW${5fEzZq@(7~FDYW}JqpK(5?N%m?Cg_T z_P)@_auV!wj=`gBD^i9NNy*%a+p*1{%Y!AB1`sYC7{w9hz)ZR6lYjj^fN-e-p;_i2 zb{1kmuG17yZ{=jt(wB7~!VN%I!7gfw>S+HpbezMVJfc?P>hQjptak-1K%KObRfBo! z^-MsI{d#{5b}Q(M*QnKZ1@1ok8Uims@JR-?nGS*y&KgZLDp>2htu_mzQ~z29A#T$! zlBTxIBA-$i!)P1egyub@t0ZK&A0^K*XVw0V1iAMRkjVCHhnaqa$m|px1K)HSx(?leq5>-J{<;T=>RSv(9#W^>3FCBM%Cd9$Z4l>ny^J3% zvr2f}x1k06{yD6cHB#(YSy%$U2{-R9l)FJYCI6y8tpg2{kZF>!KOqf|wPLbamR!bQ z;gLP^PWCQe-X>d#XXLa!)b=noi+jZP;<@4hFU&u)*6#{=Lp8WgWpadCiUMBt2=l<(Sh8NaavhWGe(z4JJKjg z0@)0bz0ehG!p0;{B1vBd7CWrxR{006`^Wf)b_*sX(XGJA%B5ID z70X8LW~k#ZQ4@(l|DIWgAUre<@Xxh5%v4d}zD=OH3Q>`eA|r~fR2EI^i5Jn3eT zyNhAZEH|H3jcoupsX7b^h&oVv5!6n!MqX_3heu|U9kO$67ucfCdtOXtY&746dM^00 zc-su8(SQ{m)6>(@Svkr`)-_k!qLqx!j)Q&Vaio1?2wl^v<|>0747|0*CN^;yjPg%c zvKa~O% zpTORh`p0NSL&t5eznq_?tnjbv?W^nbLbLAj?y9sI*img+%TuqCmfg#T$5LEUKZdf~ zX%3oUv*I+fbrsw0_E7cTuP=C}IXUR3F$ZH;W<7WMnRDk#Yb0E>-ZG#-1e> z_wqn_x(@^3;V=4C25S(1&t+dDFueLnSJ$`p^UQ+fAdz(UDd;$?5+VooA$FP1UN_bg z)jX^6?JLpd=?T)NDYAD<^Z4NMkFci^F9&nKPGwW%yWurL6AKz46AMdJ&~J7>I#)Bm zc0E)09bt!kq7axbBeagMI5`a(C$U{ZAeRO9e9#$ir$-FE)pw1eIjP>OUmz48$i#Yp zKiPmORI%hj_L<@fw5gl$=dbqYWd}1zWMa^MR~!dn*1l6hr0b9SljFhOWd7ChtQEX> z?}}mmWHZ8NulaQO`R&N~sYOZ0-JTKGPEnJyncTf%iE)^t*>hg0vLjz%)J`;Cmpr`# znWzt#TBu|(R_wzqSG>&7z~)%2K4(35*6EQs=iIq9Khg_p7-A0!*NJEpvt*XFuH<>s zd4$Xk|8)bG`_ve^*l2Z|%J8GWSG-T3wbHUiHKS5Eyw-bIWACsw+#0npC-i3=X1GZ_ zA!qf7+4Lthhk2^+IwR_`P1#>jB@(_yuEeMUH=AHiw+Y%NzLs8g`;Z+7!{-sFkDnTn zJCz0o+pEr@I`2sZdE6Un;+cf<_vp8PrDF~=-ROyHp*zEePT8S+M%qYv35Qf2(yN$C zHr=`3Gan}kkv_S4;4RKG#Lg0ws@F5{xAhE!@I5%+(XyJre4JL?G#T^%I+c09VXpEF z%zPY2^+5b2-#iW{E$O)MD$G&UT~yE55~7n@)Z}yLiKjg*HOIprrX3(cCo?h_EeMMx zg5auP_S_GCAHo=_#l_L^kltZKH8GG%gcGWM_e#xSEU)*8@aExlpra*OJCXpj16Caj)|8Ar|s|Yi9L4uf7 z5Cs0IM5 z1!+`Y;{2-OqK@iN&6L5&L^@V=X6^J7(a7k33 zKgY2k%>CJ-6iP;$Hy7rgS#ih)x&?FPJjba>O2g4PspHi{Lb#l(Dg07wa{`dgj=>fl zjqZsb;x*%d$VP#|_)c4~%zM+&M?dOmiY>ztNm*=u(Aw2|iZ>$}RNkJ>8^!jHJmJLg15r z)hDjPMly%GZ5hyKMQR4MD3`EYE>%69C^a(!8#-hU=B^(J$aNbI7ls$m+2tTI9sbCC z7FTAqhFHXu=(6I0rLQ29Xo2Egx0o`{R+JCcJ*RZT%aG%Ui_GUj{UTYVJazPgYGpo_ zR`eEE1nql3nC>na+7E5g5iqM^DfR*fw@@8^{FHd@XX`@oGlg^OHc;=!Ec2Dx`$sU1 z)Tn*)Wqf=(^2tPd=It7%dBe>^^#_vU@v8N>x82f9u%|W*=K&E9Dn>U7?>MHyy0T=w zuhV1xbn#}_X?_>+)EV)Lk+e2cjT%ljW2Vj~Ei?$2O~svrlIErSdjDosUMc6Kt;FbI zdcH$~*D$kjeNw{W1SyWeD5`jtzXH9ie@!HGW=C8ub1|U=kBZo8m9c7RacD0@QEl^4 zh8Y>IG;AJ`QUJOlSc4=E)xYoqFXOY;{yVk@g6qe{PDxJud=+10RSpX56}ZRJnV$RW zZ;DrdagYkDP_x0^f|F%W^^YoVDyw05uw)$6a5FMDqDk)W@h7@79uK8{0qct`+g&SFn~;Vg9d zkYpTAHjkBaPFNnroNh4DCaps>;DnsEZY%#8P|r|Z4CFHI;+j3N%iwB+uzB4GqHZLQ zP#A~_`n)Dyhh&I$kblSH;&EXTDIie%&1X9)$-4qvK2aF?_^A?$jeJH}FnKT`@8wg( z0r`U%3OsLc_5y?=b>%yvxrf)|{Bp+yA-oNRo=e3qju4NsDTHUOq2bRK#Do=`NgM|F zfO_x!^!VZRqX2X@3L>Q7H;$RDYq%&i{lsK7;)p_92#IrWz_%*RW5N!e_cQTMU|>bY zLOsb6BSfGBR`BLWpN2SZc#VW-9^dI^UKwZs&IAFP$i|JL^beKA%>|Kjf95T#h^Hrg zi&`E=L*)EKq*P(D$V$kAI^P*0e;YAjM@Z2Cr z^+?wFqa{ABzMvs=5#^Ok!8VT{4vD4kMujntSm2Ri?kzR<52n~#_ok(0rqPgIJj^$F zK(1p=P_9bIm&U=1?P*>##@71y-&v>dh%y{&hxZXv$VquE(7CGnqb?T(*kMk`E39arBEdnYImQVEbU;SonBYk=3wWP(CofgS^m9bHqJ9oTrrpdHu>aItI1W zEW{>%tpeHOR@bf1wZrNIbwv#R!#WeoB9wTo^@Z1QLMw4@0Y~F?{;;7+K3Iqx5C)- z_vtpQw=oj&i!^#_MMwSB?-idI&U#=&e@(w<^X4N6c>K{shw%nt zd`-fh$8VuM%Oh=?c&*_(@MX&R@ic$QFLQC9&#IP#wqO6#lJbR8rV}r@1p#u0vsoyDi5ge_zYHc94Jz?%RWu z|6U+GG)dzG`llXBBY7#l{QCYTj{eD!&}4*C#;yR7+iEmG&EMCiv(a$f zZ;xc^ea55q%lD8bz$8bU_R!urp4pRGmn^y1^Qy-Q7L5BNad~4^DxnffP`?W6m)iZS z;YH{^q_oG1zVG2Wn%bri{Gfr=&x|CmKV?U(MBA_LgBczoie?Azyf?>kKDUrZEMb6g z=Me81z2!PX_$SZ*EKtV_A&f#7gAjGl0dMdWrrtO_R7BDW*c*!KKAvr6D6(5<{E>;O zD>_icEZf}aCA>Y^gJuC?*MrFBNZf?(%iC)z0;3YD!FzeCYaSE!JoDj0SQhoHusJCCB(3G)K+tK4?ch)YJW(2zX@YhpFLqZ>iOWwhFT%JrElGz z5KPa2tZ>&|6W>aA`!_eQXUd-7p)8P~OYxBcoFfFXnVZ0aGU(62lUej#J^Ki|?+8C< z%F(xyWIaONJoUFQyN!NfuYZ=Eky;R|#efx_4*Fz8325FM)M&ny)DDU9ZHOiQNaa+= zS;#Akiwiqb%K$}@&Q9R2*&f>43r<#k8EoVr_eGx1Me-2JuO^26X=497E|BB#))vbU z(!o9AmrZ=&*uD>}zzrkT$<*Rc0m%SLJVSiWxf$J@o@U?A{31EMC*Q0xjn^z3FG22i zmXR!6_JHo8y~iCT)>2OUH0KLP$HjW-6q4X3G^z*i%Nr+9nwcufNwqjYTp+t{&yqE} zp!Q61-8-lQp3Iblyg3S4U7CCkA%z`s>--Co3Xe zQ5+rQAZ|J4dfeC+EB$?)CxMPF9@&I-X~RCIP+&!C=ZprI9yzRWbrmLPowYRH8+wDt zjYsbyav18SWc^3xFmYvBe2c+~{Zy+Uh$L@4h^53ln$FX-P8!m{v^FeIS0T|LV;iyI z09h`4x*{l*z14o+OP}-Xbx)azuYHzprBRN1 zUvGMGF=r+DMj~frE*9Vue{!c?8UzzBn^HEbpjIF7M247qkxf44C#}ZCQ4I zpWC5nz~7zSW*;RW>mlD|DJVTw*bM)D1q^SFaT;H$x9FE#Ms^tULPoZiNoAGl2ZDW?&NuLS7L!do$b86j8E>rMfG8t8 zTZP`OF)<$HM) zpBE_}Rnv%Jxt3&ZN`cWjlR_9@8`=!1{rT&POEabi0=#Y?a^3dX$p6Bf1eXbLlFq!Cxo|x9AveL3Plquw>G#t zX|<>%(aO^V(<@SV07f~lil(s>d}?11{bd?b+k`Hj_%Y9v3j<7tvPIZ*lGGu?-m@!o z=aKvXqyB0!`=ZH%LDN#~0}fML(TCNm(Fs>c^)sCKg?dzx61&bYF`4~LoYQ~zgFjo~ z0u0^Of};1+Db3KyGuPp>R+SwQGS-v)hSwyYGP0-K5M=xqFkBH#dw_M!kG;Q?iMc-| z5UJ{9=Hp<|FIg9;`Vl{_v0iq`-~6mTQOVmtt_x^4r$B0Af0){U16G-$g&cprPLH9b zB}FG?^{sB_%`{VxFswne-ce>aH1wo9bw7ZpPF7dCv#Etu>GrKZU)-bQ_|hp{@{2xkjuJ(lwLYAR#0&-Zr0xvBu_zl{JweqM-ErgzS$L zON?otGXEPwoIkt+R)jA(G2Ji1b6anhXpivV%bLXI7d@HtngYy5G+)uubdSe)FPoU2 z_$nN|JkO6e#(kkrji zJh=qBDoaHt-Rs{3SiW{I+WPj6NwGvjuMbmfzdSoZjabYi{`zgTsjd9ynr|%3FuZI! zQpjlTg*N~4Pd)dPMOv-mk5X?G1@eF7Qcblc&X9lWx#VX5$n|o}h?8B-=>J-B%%uKy z9p=QzuV#$@T8NWn%>QvZo6G*|l=%;a)Z!nEyv1J?V6yX{s3r^Mzr$?{KE%Juy?+#2 z$&{8LvcGTtU0_D}FHIi=L`kxvCDGr&7)xSE%;a)Qx_<)xJ7tUXKLJ$9=avLIe<%I# zRU-cnW?BIP!raNx-O|zhuUb$=0TK!u0vqDrtZ$lLib4c3=#QF=1_lBG=YIn0lZ~zD K;mFPY8vh?N-~6Ef diff --git a/doc/Conversions.pdf b/doc/Conversions.pdf index 06bf6f2d21a7fb9cae8383cf291c3a0ddac1f1a9..3ed26e12f99dc9cde4f31bbe9916a6eb3ae92375 100644 GIT binary patch delta 5877 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 delta 5843 zcmai1bx@UEzoi?ALpLZ0NSqEj4k;}NywV{^cf&zIN(pHsq(L|!AtAgVAxNhP(v7sz z&E@;%yL0cWcjoSY_MSECx7XTxJv8?~{Wi%BJjgvnuP(Bf6KJg|mAv322?ih5&jwyvj>#R&FV1&Ci(p>1?M#17 zM?C#Ge1{!6e~rAnls_118@~T$i1SB2I)sXo)wYFAZo(^fBVss&HRFB6Liql|-db@- zF^e|iR1iiX>5eXs&9u|)49#<5dtyqvil1Dv^;bQQDzV^ecYCE3{A3a%act!1b45C$ z8ZWezR#d=zIK8&maAW|}1pJoW?Nx3_Q-~ka9pkkV8IVJp3oirq5)0ByvgUc@&=|fN zO7=UG;SE^~=V!M?2mkumF2GrWuE!6e(U56u7jxxYF!^!kD?T;NW0EU^HQT|ly0hOt&eZyCJdWTfsr}K=?&zFAk51)EXmIeZ9`42yDThL+Jjb-`Y zB!C(D!?hG78LaMHXe*Q5AJWv6#0^qR-N9|;C*$$%Rfw?u`XGLBzDkX_i~p+7VMF=G zj#9gAtFnP~q#f1}yrB@P^7t)%EVtFV3@zX(qN1m~I^N&ijRBNjTAa7d@Ken}NdWC8 zahFejLTR3G_N1+@f~<)WF2s(BZ8BL>8F0zWDQ0sawRMjg{V2StQ}rl9_%C)(5^3D7 z1knQ-$Cv~{|EfEd)&yMnvoAB0f_X225K%jvUWpE!`_w@L_i>db97!LlE;_U;OJvxO zl#k8h5jy~}AlcO}1DMAToyr)q;O=MnrXex$xC!rEFQcc#Dc=X3Hb>J~#y<^uzdq1m zweVLC?J)VI;&&K2OtBmN^>faF&O+f6Kuor|au$+u5`RkT$5u*-VTEB1GJbjXLhJqd z;nu!Z`h^P0vCFDOk@Jk{xr>tH&pT-6z?*)7=}?G`av`zTCGKN>%;pH^aVL>yiaaSd z<-EkV@xY-AN>%8T~_gbTh@O^B5^u1L~>emgeY7c1>ibKI$*6qZ1Gk|5O+oCvDtoodH zZ9JYkLS@DOPDfb07ls)LFwE4^^msetk>y$;E|Bh+6NEDpW+vLi{`92oGoxM@-}aA# zk7}#c-263m&vAloRJUw#>yE02DBb2Bx;ByV&Aap`X+Bb6HF%xZ_G~yhw#zNl)88iB zvQT&}nJ9^T?@ki?WvGm6*`ZSzsU>Z3xc`g3zR%Wmf^U#8wiXP$`K(Tjq=#dW<+|N@08n@?b>nDmN&i-=Zjl{VzT%hYcyNPdpxhq5c&jjgRUcULP!tMNUqIDJ| z1aZon=WJD0}y}7}mWpGw(b|5uc z>+x!tNvd_|ux1~+fvf!m%Pdr^w$A{21k=aW4B{3ZBqM62pl+c56#fVOmsPgG z`ir8vvfH-aIbqt3mO=_7YXioJdpM+e4OYOu)w_1kZ6j9e=ktW``+wp3074OMtncmU z+3WOjCpE_~4v3ZAEcjZ0v=HM;Pwu(5g$nUqk!#{}zj8C?ktgqsq6Lgk_kB!gOF)fr zWvU_%ZaBC_MB-9Oij!*#3#CMd)=9mM6z`XrKoyQNd@90$I7BJ^mI%LxQwZ<+z^fx? zmBvlu=)WH(o>yxwSN3-D1a)vkzk`*7fox4s)FXAak*z5H8`+aSiCuS0USQ3|$&slQ z#_pPU;%(%4qInd60?q~Ga<;G|1EC0*zrEPHdK_J2Y8JON;_~}d<%JPG zGiJL3PnSZS`g~4QrgIq2a4se*lusUDrR&U)V__T8I`cd_mk`_~T906U!)5K)j6*L^ zUXW$#p_AIo#3;^m=Ua1run`nYoc6sL}CSo6S%Rr#o1KcHyB3Zl7^FN+T=V`DnD)+JQb z(R6oD78+0PtE9ZX_fb>;0Wue+6CXW!KD!v-!WTPZxO& zpZHir-pKVL7-QI`81mlv%%P$F8HafuFKwUU+oRnd!1VGqNbLOcJ}Nfe472kJpy|<{ z)yQ^gX~IIz8IB^)rqGhr>%!ymJF(^sU!k=!)eKH`YVv6X@$a-BWHMz#IgfC5S@1q? zPt2`VJ(yQuslb{ts2S8^_|TRcffn(Ax))4>*$6s(yxPQk&su!y2@FTcO8ZZbEY6Ke zTb-R%l7eTQGj&126wal`ZcG_k_x$I4&=#WIutv?PJBu<`;3zlB5W6A zN0*cm;movtnHr5z7EF6srglgWa6W#J^=-P$pLP@>(BGf3o?MIx`bwLb)~!x(-+!)x zuf)>6AwI>FS>(g`czA-H@+wW({LWWx4f{*x_@byM;!9+%X_5n5?N)5}9k%IX-c>gP zzn^$gp~Ro?7cTjV7h)-BS&Wmt*Ni%gQ_1#zNggB}FlkD1{-75OCZPN<HcI`&xV^8 zyFi|h)Ix5;EBewVxWt=#>r*C}HQyglLHHZC?^jF-Ue(pre2X8iC|6|%zcH-lE}aEP z20XL>7|~H4F_ab+XXe<6-Igg>rGG>-RPOn@Q-rs(ZnRMOHR@iUkm`9bvDvQBO(MTu z*N+VqN;EzAf2& z8)<|M`mqMgoU;97J$)0@f8OC@n3 ziM>__$3bZDAALyKIiw1MPY_}y|X?p(>Oo5aQ@1s}-_#^PTjHv4Xwb8;fG-=DNv zFY~Q)%sE!(mlB3(T{xgcyLtwjCUz($!$bogTKa2IQqe6v95Dmj!@egC#Ux#!*1L^< z>BX8Y=rollF2G+sj!u#HF$g1On=J}ZOclz$Qozb|6{+l6Ihna)rEa~4r|24PAC*cAninZGp9Z-No*Z5bNtKf_7YK(yYfyE+t4SJHKt`kq?63eR6& ziRu(Jt~K)qhVZvTAMPvl2M0mgpd&bXi9=V%#Tb8uZ6Yg7x;& zosBdC6`_1#7KuV8j(I2OjO5Qbj|BEI5osps9_ml4d^NOSaTVUIBMxTX-yp6Xfflc| zW~e@DSV^^=JX|v`O;fgwI$RJ-eV0`*4?I=W+MhG--r2|MBYHM7Y02!vWZA}kL}tDH zq5iUtza45Mr!Hkw&u@V9DKo?h~rJa81ZdHwK{oD?oapf!`QRS3R6cL!)Y zot$YPY$59_btlT|*dg={i`wv4b?p>08Q403p8w!t!>JlyxqAjn4@&!Qu?RIQ*!t;S zLO~%jKS9|<;M?iL_3FTMq9OkLOVxDp~bv_RxjjefaP>YGd(T`KqFHGl8U- zciULAd%X@L0UCog|0EFK=}K0KEEGv(I5*qC8uf#OR^tMUH3Qsd@S7?&iKa7bX6w^k zdoxE$%m~X~_RbiH!I^HFw*-w@{4WY_v9m2k3 zKG}NPLp*W+9H&Y-1Sn4>u~|djs-Bg1Y`Q@aUcK4agjvdYSA@P>yY~_rci~x#t#UMZ zh#d0D+{V4`u}lb89rB z+0`@TneCyW=wInJ@*I8Xt$j3m1e5pPvG+ou^9LP~G$H|p+?>9VPRe5kZvkz8ap`uF zWDp57W0pr#Qd_rYd?t}39hmQU`&x~@z6wtxmy*FP@GsxnRISg*ks6dSKAz3Cwf_k;R^4t3I!2(%FP26r0zA)$G~8>NT?#q0 zv@z@gt^7p0HVx*(PCVrC;jZIRwy%@vICoTHgksl*LQVbS3ck4*UY40)@hL_{#mioL zYU-B_yf_+6QM`Q4HHbA>Xg!9h`As!j#J zL0jv4l`tA5^a&RRZeJ57h6Og8q)7fFQ_k7z7T1|853|0zzQF@qj1<>K_`ITVD`33ic-v2?qXF z42Hphzni(mz`vgu3`2tcA#$q$hC}}_1BN3}nA@i9A6El`!XST~4hs9jAOwnl{lSBQ zV85G&z@Wh2&D>(J|3qT)Ke@yI4`Dd$k4PYJ#2?=W1OfUZCI|uyMkVqkOJX2UMHB)E zM9CrKVPFs#0)e1WP#_WwRYb!fvS64LnZ*A~;W8!@MLS!{+ge-NyL&oviOR#|6@ao3 zdBp9-f{;iE7!C%@qQJ=8FyTOiJe*8Qip<@^+|9#>+RgeY83X|ZLdke}6*Lve{tNWp BQhWda From 44c9e998c9c81eabde9bc8f0c6619f0cfc56f83e Mon Sep 17 00:00:00 2001 From: andreas Date: Mon, 28 Apr 2025 18:42:16 +0200 Subject: [PATCH 10/12] rename dbs to dbt in convertDBKx for more code clearity --- lib/nmea0183ton2k/NMEA0183DataToN2K.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp b/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp index 7b2d902..ef17866 100644 --- a/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp +++ b/lib/nmea0183ton2k/NMEA0183DataToN2K.cpp @@ -662,8 +662,8 @@ private: //we can only send if we have a valid depth beloww tranducer //to compute the offset if (! boatData->DBT->isValid()) return; - double dbs=boatData->DBT->getData(); - double offset=Depth-dbs; + double dbt=boatData->DBT->getData(); + double offset=Depth-dbt; if (offset >= 0 && dt == DBK){ logger->logDebug(GwLog::DEBUG, "strange DBK - more depth then transducer %s", msg.line); return; @@ -676,7 +676,7 @@ private: if (! boatData->DBS->update(Depth,msg.sourceId)) return; } tN2kMsg n2kMsg; - SetN2kWaterDepth(n2kMsg,1,dbs,offset); //on the N2K side we always have depth below transducer + SetN2kWaterDepth(n2kMsg,1,dbt,offset); //on the N2K side we always have depth below transducer send(n2kMsg,msg.sourceId,(n2kMsg.PGN)+String((offset >=0)?1:0)); } } From 417fe3db081c5964654c82cebc71c37d48057f8a Mon Sep 17 00:00:00 2001 From: wellenvogel Date: Fri, 2 May 2025 17:57:26 +0200 Subject: [PATCH 11/12] update link to the newer version of the web installer --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index ecf9abc..36010dc 100644 --- a/Readme.md +++ b/Readme.md @@ -68,7 +68,7 @@ Initial Flash __Browser__ If you run a system with a modern Chrome or Edge Browser you can directly flash your device from within the browser. -Just go to the [Flash Page](https://wellenvogel.github.io/esp32-nmea2000/install.html) and select the "Initial" flash for your Hardware. This will install the most current software to your device. +Just go to the [Flash Page](https://wellenvogel.de/software/esp32/install.html) and select the "Initial" flash for your Hardware. This will install the most current software to your device. If you are using a forked project (like OBP60) refer to the documentation of the fork. You can just install any flash binary from your local computer with the browser based installation using the "upload" button.
If you are on Windows you will need to have the correct driver installed before (see below at [windows users](#windows) - only install the driver, not the flashtool). You can also install an update from the flash page but normally it is easier to do this from the Web Gui of the device (see [below](#update)). From d228f3846186bbc910eece82db5955881f5bf091 Mon Sep 17 00:00:00 2001 From: wellenvogel Date: Fri, 2 May 2025 17:58:26 +0200 Subject: [PATCH 12/12] update link to the newer version of the web installer --- Readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Readme.md b/Readme.md index 36010dc..a9a305f 100644 --- a/Readme.md +++ b/Readme.md @@ -73,7 +73,7 @@ If you are on Windows you will need to have the correct driver installed before You can also install an update from the flash page but normally it is easier to do this from the Web Gui of the device (see [below](#update)). -The [Flash Page](https://wellenvogel.github.io/esp32-nmea2000/install.html) will also allow you to open a console window to your ESP32. +The [Flash Page](https://wellenvogel.de/software/esp32/install.html) will also allow you to open a console window to your ESP32. __Tool based__