From d1860b5f73fd8da03d34d1a4e5ebbb5de4b35719 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 8 Dec 2024 10:02:08 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20bluerobo?= =?UTF-8?q?tics/BlueOS-Extensions-Repository@1435754382bb172d0ec13d0dbc26b?= =?UTF-8?q?54a05163d9b=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manifest.json | 120 +++++------------ manifest.json.gz | Bin 4951605 -> 4864663 bytes manifest.log | 334 +++++++++++++++++++++++------------------------ 3 files changed, 200 insertions(+), 254 deletions(-) diff --git a/manifest.json b/manifest.json index 60e6bf0..8c446b8 100644 --- a/manifest.json +++ b/manifest.json @@ -122,7 +122,7 @@ } }, "repo_info": { - "downloads": 3101, + "downloads": 3107, "last_updated": "2024-02-02T17:20:22.289289Z", "date_registered": "2023-10-04T23:07:17.135228Z" } @@ -185,7 +185,7 @@ } }, "repo_info": { - "downloads": 118, + "downloads": 122, "last_updated": "2024-11-18T15:06:56.257201Z", "date_registered": "2024-11-10T22:07:32.150637Z" } @@ -416,7 +416,7 @@ } }, "repo_info": { - "downloads": 1040, + "downloads": 1052, "last_updated": "2024-08-14T23:11:15.514761Z", "date_registered": "2024-08-07T21:20:39.693471Z" } @@ -1797,7 +1797,7 @@ } }, "repo_info": { - "downloads": 33697, + "downloads": 33791, "last_updated": "2024-11-21T16:39:23.692963Z", "date_registered": "2023-02-09T18:16:56.606258Z" } @@ -2119,7 +2119,7 @@ } }, "repo_info": { - "downloads": 15346, + "downloads": 15372, "last_updated": "2023-05-17T18:58:43.418901Z", "date_registered": "2023-01-17T21:41:45.289578Z" } @@ -2238,7 +2238,7 @@ } }, "repo_info": { - "downloads": 4627, + "downloads": 4633, "last_updated": "2023-03-15T20:41:07.344116Z", "date_registered": "2023-03-02T18:19:41.09439Z" } @@ -2484,7 +2484,7 @@ } }, "repo_info": { - "downloads": 4194, + "downloads": 4206, "last_updated": "2024-10-16T08:28:28.588962Z", "date_registered": "2023-04-18T13:14:56.444696Z" } @@ -2557,7 +2557,7 @@ } }, "repo_info": { - "downloads": 1661, + "downloads": 1663, "last_updated": "2023-09-01T21:07:26.318216Z", "date_registered": "2023-09-01T20:11:40.559943Z" } @@ -4149,7 +4149,7 @@ } }, "repo_info": { - "downloads": 58599, + "downloads": 58693, "last_updated": "2024-12-07T00:14:04.664746Z", "date_registered": "2023-01-30T01:40:41.340441Z" } @@ -4217,7 +4217,7 @@ } }, "repo_info": { - "downloads": 858, + "downloads": 860, "last_updated": "2024-02-05T22:10:02.139431Z", "date_registered": "2024-01-22T15:06:39.735884Z" } @@ -4401,7 +4401,7 @@ } }, "repo_info": { - "downloads": 2629, + "downloads": 2641, "last_updated": "2024-11-02T19:51:27.122486Z", "date_registered": "2023-09-20T20:30:01.66808Z" } @@ -4520,7 +4520,7 @@ } }, "repo_info": { - "downloads": 2587, + "downloads": 2594, "last_updated": "2024-02-05T11:45:01.761497Z", "date_registered": "2023-09-13T06:14:36.827307Z" } @@ -4836,7 +4836,7 @@ } }, "repo_info": { - "downloads": 7324, + "downloads": 7342, "last_updated": "2024-07-29T21:22:46.380269Z", "date_registered": "2023-08-29T20:22:57.798237Z" } @@ -5492,7 +5492,7 @@ } }, "repo_info": { - "downloads": 20249, + "downloads": 20292, "last_updated": "2023-09-06T01:24:53.238154Z", "date_registered": "2023-07-06T13:38:30.979513Z" } @@ -5933,7 +5933,7 @@ } }, "repo_info": { - "downloads": 233422, + "downloads": 233453, "last_updated": "2024-11-27T15:41:37.907923Z", "date_registered": "2022-06-01T23:43:43.19026Z" } @@ -5997,7 +5997,7 @@ } }, "repo_info": { - "downloads": 981, + "downloads": 983, "last_updated": "2023-11-07T01:34:15.374584Z", "date_registered": "2023-11-05T01:19:48.269227Z" } @@ -6275,7 +6275,7 @@ } }, "repo_info": { - "downloads": 4379, + "downloads": 4393, "last_updated": "2024-11-26T18:07:23.087771Z", "date_registered": "2023-09-06T15:06:24.58823Z" } @@ -6403,7 +6403,7 @@ } }, "repo_info": { - "downloads": 1009, + "downloads": 1015, "last_updated": "2024-06-23T16:01:49.148109Z", "date_registered": "2024-06-08T17:31:16.936347Z" } @@ -7782,7 +7782,7 @@ } }, "repo_info": { - "downloads": 12883, + "downloads": 12923, "last_updated": "2024-09-16T12:54:32.088839Z", "date_registered": "2023-05-02T08:49:43.621656Z" } @@ -8405,7 +8405,7 @@ } }, "repo_info": { - "downloads": 1359, + "downloads": 1389, "last_updated": "2024-11-18T15:39:45.438984Z", "date_registered": "2024-09-16T13:23:53.464854Z" } @@ -8575,7 +8575,7 @@ } }, "repo_info": { - "downloads": 41018, + "downloads": 41028, "last_updated": "2024-03-04T19:11:38.707894Z", "date_registered": "2022-09-07T02:56:18.778263Z" } @@ -8724,7 +8724,7 @@ } }, "repo_info": { - "downloads": 132817, + "downloads": 132827, "last_updated": "2023-05-18T15:14:34.292175Z", "date_registered": "2022-09-07T07:17:20.147217Z" } @@ -8845,7 +8845,7 @@ } }, "repo_info": { - "downloads": 84925, + "downloads": 84931, "last_updated": "2023-05-02T10:58:10.407395Z", "date_registered": "2022-09-19T20:25:33.201236Z" } @@ -8972,7 +8972,7 @@ } }, "repo_info": { - "downloads": 82658, + "downloads": 82664, "last_updated": "2023-05-02T10:59:21.807562Z", "date_registered": "2022-09-19T20:13:46.735725Z" } @@ -9264,7 +9264,7 @@ } }, "repo_info": { - "downloads": 7310, + "downloads": 7332, "last_updated": "2024-05-05T03:21:37.27099Z", "date_registered": "2023-05-28T18:03:17.343281Z" } @@ -9421,7 +9421,7 @@ } }, "repo_info": { - "downloads": 1488, + "downloads": 1496, "last_updated": "2024-06-28T11:53:31.838581Z", "date_registered": "2024-04-02T12:56:46.518809Z" } @@ -9740,7 +9740,7 @@ } }, "repo_info": { - "downloads": 3719, + "downloads": 3741, "last_updated": "2024-06-11T00:39:37.973367Z", "date_registered": "2024-05-23T03:16:55.205832Z" } @@ -9861,7 +9861,7 @@ } }, "repo_info": { - "downloads": 87960, + "downloads": 87966, "last_updated": "2023-05-02T10:58:42.102603Z", "date_registered": "2022-09-19T20:24:45.273155Z" } @@ -10046,7 +10046,7 @@ } }, "repo_info": { - "downloads": 2268, + "downloads": 2282, "last_updated": "2024-09-10T14:56:14.35577Z", "date_registered": "2024-05-05T23:27:05.667297Z" } @@ -10441,7 +10441,7 @@ } }, "repo_info": { - "downloads": 44359, + "downloads": 44383, "last_updated": "2024-11-03T23:04:33.620179Z", "date_registered": "2022-06-08T02:20:40.875088Z" } @@ -10571,7 +10571,7 @@ } }, "repo_info": { - "downloads": 80051, + "downloads": 80057, "last_updated": "2023-05-02T10:57:42.905818Z", "date_registered": "2022-09-20T18:15:02.068256Z" } @@ -10702,7 +10702,7 @@ } }, "repo_info": { - "downloads": 3724, + "downloads": 3730, "last_updated": "2023-05-02T11:19:18.145903Z", "date_registered": "2022-10-12T18:15:01.290841Z" } @@ -11070,60 +11070,6 @@ } } }, - "0.0.8": { - "identifier": "c6069a89-a287-5ab5-a68e-4a8b83d48d04", - "type": "other", - "website": "https://github.com/nortekgroup/nucleus_driver/tree/main/blueos_extension", - "images": [ - { - "expanded_size": 67134028, - "platform": { - "architecture": "arm", - "variant": "v7", - "os": "linux" - }, - "digest": "sha256:f435a931ca002a48fac05f49210a5fde5f4149230f0cc28eaa6620d07c783d02" - } - ], - "authors": [ - { - "name": "Martin Bergene Johansen", - "email": "martin.johansen@nortekgroup.com" - } - ], - "filter_tags": [], - "extra_links": {}, - "tag": "0.0.8", - "docs": null, - "readme": "
This is a Nucleus extension for the BlueOS software running on BlueROV2.
\nIt works by wrapping the Nucleus Driver in a docker image, with a script that feeds velocity data from the Nucleus device into the ArduSub control system through mavlink commands.
\nThis allows the user to utilize the \"position hold\" functionality in the ROV
\nTo mount the Nucleus unto the BlueROV2 and connect it to its network, refer Nortek's Nucleus integration guide.
\nBlueOS needs to be of version 1.1.0-beta18 or newer in order to support the adding of third party extensions.
\nArduSub needs to be of version 4.1.0 or newer for it to support the VISUAL_POSITION_DELTA packets used to send velocity data to the ROV.
\nThis extension assumes that the Nucleus is connected to the network of the ROV through an ethernet connection. It is therefore necessary to set a static IP in the Nucleus.
\nThe network prefix of the BlueROV2 is 192.168.2.0, with a netmask of 255.255.255.0. The Nucleus' static IP must therefore be set to a fitting value, i.e. 192.168.2.201.
\nIn the GUI that comes with the extension the user must specify this IP address to establish a connection with the Nucleus device. The user is therefore not limited to using this IP address, but is at the same time responsible of selecting an IP address that is not already in use on the network.
\nThe extension can be added to the BlueROV2 either through the BlueOS software, or by creating the docker image on the onboard computer and running the docker container directly.
\nIt is recommended to add the extension through BlueOS as it is both easier and the intended way for this extension to be added. The two different approaches are covered in the following subsections.
\nThe extension can be added through BlueOS' extensions menu.
\nNavigate to Extensions > Extensions Manager.
\n\nLocate Nortek Nucleus under the tab \"STORE\" and open it.
\n\nWhen the Nortek Nucleus extension is opened the user will be presented with this README, as well as information about the extensions creator, a link to this github repository, the settings in the docker image of the extension and the option of installing the extension.
\nTo install the extension, select the newest available version in the drop down menu (the newest version should be the default) and push install. BlueOS will the pull the nucleus extension docker image and install it in its extensions.
\n\nAfter the installation has been completed. The extension can be located in Extensions > Extensions Manager, under the tab \"INSTALLED\".
\n\nHere the user have the option to edit sittings, uninstall, disable and restart the extension. It is also possible to view the output logs from the docker container that runs the extension which can serve as a good debugging tool.
\nThe extension itself can be opened in the menu by navigating to Extensions > Nucleus: Position hold.
\n\nOpening this will present the user with the GUI for the Nucleus extension which is covered in Using the extension
\nTo set this extension up manually, ssh into the Raspberry Pi on the BlueROV2 (or access via red-pill in BlueOS terminal).
\nN.B. The docker image available on dockerhub is set to use port 80 for its user interface which allows BlueOS to handle which port this user interface should be available at. For the manual approach it is therefore necessary to build the docker image with a different port if you wish to have access to the user interface.
\nN.B. In the current version of the extension it is necessary to have access to the GUI as it is required for establishing the connection to the Nucleus.
\nOn the onboard computer, clone this repo in your preferred path with the following command:
\ngit clone git@github.com:nortekgroup/nucleus_driver.git
Navigate to the blueos_extension folder (the folder containing the Dockerfile) and build the docker image with the following command:
\ndocker build . -t nucleus_driver
The GUI of the extension is by default on port 5000.
\nIf another port is preferred for the GUI the image can be build with the preferred port as an argument with the following command
\ndocker build . -t nucleus_driver --build-arg PORT=5000
with the value following \"PORT=
\" being your preferred port.
The docker container can be executed with the following command
\ndocker run --net=host --add-host=host.docker.internal:host-gateway -v /root/.config/blueos:/root/.config --name=nucleus_driver --restart=unless-stopped nucleus_driver
--net=host
allows the container to share the network of the ROV which is necessary for it to communicate with the ROV and make the GUI available
-v /root/.config/blueos:/root/.config
maps the volume \"/root/.config/blueos\" from the Raspberry Pi into \"/root/.config\" in the container. This allows the container the store configuration data in-between runs.
--name=Nucleus-Driver
is the preferred name of the container.
--restart=unless-stopped
allows the extension to automatically start when the ROV is powered up
With the docker container running, the GUI can be accessed in a browser by navigating to blueos.local:<port>
(or 192.168.2.2:<port>
), where <port>
is the specified port from the image creation. See Using the extension to learn about how to use the GUI.
N.B. In order for the extension to work it is necessary to change certain controller parameters. Refer to \"Controller parameters\" section for more info
\nN.B. In order for the \"position hold\" algorithm to perform well it might be necessary to change the ROV's PID parameters. Refer to \"PID parameters\" section for more info
\nWith the extension added, its user interface (GUI) can be found by navigating to Extensions -> Nucleus: Position hold in the BlueOS menu.
\nIn the case of a manual installation through docker, the GUI can be found y navigating to blueos.local:<port>
where <port>
is he port specified when the docker image was created.
The GUI presents the user with a home page and two pages for parametrization. These pages can be navigated in-between using the navigation banner at the top of the GUI
\nThe home screen presents the user with a status field which displays the results of various checks performed during the startup of the ROV. It is necessary for all of these checks to pass in order for extension to work. Some easy troubleshooting is presented in the home screen in case any of these checks were to fail
\nThe Nucleus hostname field is used to set the IP address used to connect to the Nucleus device. This IP address should be the same as the static IP configured on the Nucleus device.
\nIt is also a field which allows the user to decide whether the driver is enabled. The driver must be enabled for it to feed velocity data to the ROV. If it is not enabled the driver is still running and extracting data from the Nucleus, but the velocity is not sent to the ROV.
\nThe packet counter field displays how many velocity data packets has been handled by the extension. Sent packages refers to packages that has been sent to the ROV, Failed packets refers to packets that for some reason failed to be sent, and Skipped packets are packets that were in good condition and ready to be sent, but weren't due to the driver not being enabled.
\nN.B. Adjusting any of these parameters WILL change the behavior of the ROV
\nN.B. Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.
\nThe PID parameters page gives the user opportunity to modify selected PID parameters in the controller. Good parameterization is necessary for a good performance of the ROV. The correct parameters varies from vehicle to vehicle as the physical attributes of the ROV has an impact on its behavior. However, recommended parameters for a standard BlueROV2 with only the Nucleus being the third party installation is presented on this page.
\nN.B. Adjusting any of these parameters may change the behavior of the ROV
\nN.B. Neither the extension nor the ROV will remember the original values of these parameters in case they are changed. It is therefore the users responsibility to remember the original values in case they wish to revert back to the original parameterization.
\nIn order for the controller to accept and utilize the velocity packets sent from the Nucleus, certain parameters has to be changed. The parameters and their required values are presented on this page.
\nAfter these parameters has been changed it is necessary to power cycle the vehicle for these parameters to take effect
", - "support": "https://support.nortekgroup.com/", - "requirements": null, - "company": { - "about": "", - "name": "Nortek", - "email": "" - }, - "permissions": { - "ExposedPorts": { - "80/tcp": {} - }, - "HostConfig": { - "Binds": [ - "/root/.config:/root/.config" - ], - "ExtraHosts": [ - "host.docker.internal:host-gateway" - ], - "PortBindings": { - "80/tcp": [ - { - "HostPort": "" - } - ] - } - } - } - }, "0.0.7": { "identifier": "a2f79df4-7b59-549a-8d5e-7bcf276d92f1", "type": "other", @@ -11234,7 +11180,7 @@ } }, "repo_info": { - "downloads": 18109, + "downloads": 18143, "last_updated": "2023-07-31T13:20:08.25399Z", "date_registered": "2023-03-23T10:28:07.423732Z" } diff --git a/manifest.json.gz b/manifest.json.gz index 1455ba36af0ad80e71637d9fe12e92b6ef38f66b..85aad97486ad8580b72cce0c3f99ee5dfceb71c7 100644 GIT binary patch delta 2798613 zcmY(HQ*fRE+pXK!wr$(C)z~&0HF%=Nw$s?QZKtuFG`5p>fBTz%&z}F}nrrTZHS6%6 z)tp@emiAZ%22C6V0~6}_qaIoU5=gXT*Mvs5?p%rD&HRJ&Yn4-WHGdCi~3H-Y`oP{cUC|5tXB z`aQ{Y1t<+WicrUF{8js-Mbvy?AZm*CmT5X_Ph5W$FpA-~YUoxMw8r!J zdnxDKF;SMZH!7SbQ>eqi&f-XgOdFL3d@F;R>ol6fXL0K5`hE`uO#RokSe;7UKIS6i zYXs<1Jc^RTeTq})@=DE{z@(dH4oOjniox ogg? _iY>XI@?CC9yBsqP)I?HhEr_@Ln2%`Kct^FVdG?& zvR9@@e|JV;rA}g}qLI`Qa!R)OXYBRv3Yd(n4 B&<% zk~i1T2&^pb@X+9;?1+eD+5#7iX|^_;2U(IRl>5N%Gi6NBzekMWjU}a_%7GW#8#nHw zYQaI)6H_{PH3|`!e+O_%+Gg^}wlw<08y!sbe?#PNLdw5*{OwlwKq&9LW(UbtzGu`w zK==Ca>>4~~t;`34&dyrGKq&TnSJ@7JgG*Y^2P56YzIWA5|F}W^qt~FfJ}$#yr$0W8 zojt#RN(oXg;+@a4v(I;@K_VgjosJQ$$4`D@Zc<;+?b{i#De$f4QuDIM$Dr1KD+nDx z=Wy%t`8=MkHQN5dA^xPC_u^^WiuHIb0enI8aiDI0btC_~uCx`WPd>v}jt@!H-l}IW z|ILo+$zD+1pJxX@bVpZZSfd@`#;QZ&Yx9SLjq9VwE14bOLY@~py-KS#*594LX*7%( z`^1oN$Dq3lXz%&DVMB6AxO*0#trY(C%a3CHAx&7_=5|3*zv=OKFpYSpCqj)+Y<{~N zzVhWS!o%5Md)pi5j?de+gN>ZH@QemCgp4Y|@wtNY_Q3V35;O6kb#1Gc+q7g@If zJKuAIyu}A(*45a@46o>Y#JsQ1whsQZI8RTl+8QSy<6P-Um_BAh>IoZfjU4Z7?JsPr z-^szgy+Vq9B0*s!aUwmj?lDg$p0c)`>Bargv?Qm_jaYffBUY*K8C-V0U~>;x6fW|0 zq@i6YT${)utt9UfW(k5c)WABUUXmiGm8#;JMq|09`gBRAA}7GLbU3OK1D}6vB2Dj2 zpw<8o3E{>$` l*RDz*aFcfiyucyB+QHDGg!F~l45e3yE#0aV9 zvNmd >mv|0d0 zGGf^At+-}BntATiRK5#_!WI2Y*1h{~Q_LvwPnwcG%v$jZSLE?Nr 1{BcUQ(YHxS8R+=%^7sav3Q*1#CYx9J`jB#CMtwAjoF@@o`Pqj1k?pxkiC z-$<1#P$^@-Uz(ISzE}J~!(oX!82JYn;>CCS9WFv3AEiSQz8F5&hc_fHl`W6 iyiJ_D z(}?f*ShJXQdjYD7;=dCbSiU4wJnME77W82Us!}-A^eOA0(dl>wSWL2UDnck!HSiGf z5bE~+rw*mDk8R%*=R7wMIo6jK*CXnO@si&8f-Bn8XZ?FmhC~2(K)kr3@(S$F`y)n% zdNUf;vuA$Ry~kaH`BL$Mud;#-vD>yBWQWSrk_fRFNeDl`_JW^5)E46+C}e~iallIE z5`dL)Vr>RSp=}&eOS|tcB6dL^8Xbp@Mpm8xNBQ1K %j!f1kFBkC|@?cL;^Ss0U)5$D>Jq3Zg2 zXy2$7B9Oc-yM7J?(oH3Tt#1?mV9tuh`~$MXoLpflF?4ZU`votv^7(7ermd#x#Ps?* z)@&$W+rFP&6FeXK?z7!&=VPCC(Dtj&M7u^iBCZKrqL5 NktRD U+G6 zW<#>_h+1kzm&Q?C*~IyYGf!&?Y+=^U^(axkt&wLG GYMQV-i`u-7d_O7tCM1KC#DGHalwK?1Ser$zu7`vc!bSP z#h$Qke?e-fhz6 MySIzkutccFg; z-3_W{gx)(7!v0>qMUwQmLH-cu+l7$7v@0kgrkHqHP&wBtP&KVr6vGmdO-yChFH?4A zG70JY2%cS%s1 H2)82`5M#+kBel1-3CBg|+03VW zo7n|Cbwy@=`%9mm8U0;&c5%7B9NYEq_N-PewK=a* VlK@55p~EGD*gr~jyH=Ueb!8Y!%!oV@N1 zE$z`c!>v+kvo1Th@GE%kkCD>c*q%nQH24vFeEoa#qw=A8=Gt$qImw-LWSQD=aY9O} zxp>|Ux7@fvc!5kFEYA{Lz^7tb!|~gst-5yJw=NxJa*)I3xEurJTb~#%yAwVc4y1v% zsIMkrQjrlT!Ks{?nKicea=StYRBTPWSk2?D9_es9SoxhKsZ(hHNO6PR$ntx(o5s2# zy!~+5xZ5s>&&bzbYJc4pY!=0)a0U*zFyl5i%SLNR2&jEDHy$u@tC+ghSj(bE|E!9@ z+C$GtIc~*zqLhhj$isI!_%r~Urd&GpZg0aC9=y(K|J3p@W>YVpc<7a{p5~gv4BG=Z z_>{C_8xWft*^xB?m&zXqXdKPLjpf+8u@6O%?$0Ld0*6W`+zWrz`A;1Qo^%3K3FUfh zi+TPj@Ads$_!Cznn)1=){!+l_;)!bs7Gy#Xbt#i;m@#gWc 7B1iz z6I-ap{_^V6f0%VOsmfK6)_Vq(YDt=;T?y)U@3ehRk_8SofS&}b9f*07otV8bH^e7g zLW;(1lN+)en=9}+mw+SJc(yAi^NxhCOxlH7BbX!Qw-iBQ;BuepU05Xbcft2!N_?b; z{~+u1oJvL<9;~0i>%Bck(L33Px&geip4$cG?rZ)Gbc{Jd pE9PG>3xD^9h%D3by~{Qk z`j ?Atg zwx$mj=ytu)3t^|QkMq@+usErOdwpb6?22{AS9xOczkNu!XbPPypP#CXeY`1RWif1@ zHu7#+sAy~E!(rrYg@#9T^ig8LbbSV8vj}FlfDwW%@G@M8gfSZ;)-LmxUTpx#!qcto zwT>PDUvqssS39_4Uyz0~&JUU23?bq9l>-}-QN;MuJJc(;MX1-$9{X{(Gj~i3V9!g$ zVL2fE=UM#gnn7&ImbS;L6lF_@P%&biRY6EyuzJ=uxlgF9DGSWt`& z`0Z3!C#=-_zXBAKOqt+H#p0C?2;bQG91LTCbD2$V5)mWsj>{)MkZw&^0&rq-GAj%s zh@ M2jic3v!W3LExSnaWeQBp+3%W%HJDbja@x3p>VlkLxAE4wLd2S*X|` z>htItIDKhW%!zQxzmbF_U@+-VFP|Jd4D>stN3c)OM)B{y9m 1ZCr=3`3x*~8+PHxU z77BqaEa6 XPLC>Ib3FkZ$uy>zofsX|7Pru}M !~c!O0e*#YOe-CSi`}V| zh}mILkk>!0YO%7|@bmqAseM3+ltC `$QfsHe#?ZTVs$(?GXT-p<2jnyGrNn6vYL9mhLB=2h?d zYweUs#h83I)jtxVsw6*UOfJPibz*3GrvAU!xzJHf2!z!;wv4BBtc#FfKg6BmNhk*5 zp%Ks%XoysatnDR>k}(2N(I^27&6s-^5(+U<*;bJ6PoI~;yNer9 3sCK1H+dYuURvi$HI_e}Hs|9JL1?7S{& zm6oqAYLU0?ENUT^a%gN9822VAgG0+xBmek@egtpYUJFE1Mv_Nyq{d;|yg{2bmdlTa z=GxV@l7zD$k=1BZFe*xfphbw8z;b8XL>Gq##nT7lwnSP>hHx!*S4nbWeutIkdgtPL zN2RgQRGXkI)>oSlrZ2weR#5J^1lu=oiPXxPxQ#*b*S(h?7f73O8y5ggr=QTfzTSM9 zjfSuLkpQy3*oyjU{gjyh3jj6Uizva(U$(wR+SST!Y}SDlcaBB%#9<>jEC3h&;|H!A z44iNtYuGE!E6=9*JeUhWCyEgfKb6M{O&9*eV$f$#3PT@VuM&c+l)>J($RyJ9;3S{v z=KMMEnf&1HVbx^gq#-<>z>e}v*!a)ojI9@kzf50tdfq$9fQcLMNbpZ>zUGeF>^~98 zO$de#ag8ppvOWBxTi&O_^OFj-R1>E_R;(Z#-=18qcz|zDLCrC_1qR)*noCMWE+Ste z>)QU%8tHdbYvxfHcu3VvCW-9d-0aCs7e$WG$|ELU^y|+AuP$*|qw&s8I2;~vjIftZ zxM;7=(Wg^jiX#d5J(vAwK@6GKUwND9>KVWAl)y0YpQvF`Y!mesDk=OQ;`a^`Qp9h2 z7X{zKQf7k}`1J(9S+8jxC06gE`VT!PzQS|)KxWK>iW@CINQ(TOjIY-=n3T=G)(+#C zD@Z&lo$o4;xJ@a;04&GP22YRHqR)e+1IlU%i}eX_Q63~<@O42Gj(AUS-&K<-zD~?V zf+(@Y)r(uV&nqxr4h5$FbS2Ok5xyd88*UKW$*_Ys+$h+a`zrU_&1`Bm EwI!SV*eGO*GL zjeb9<937b$ZZpJMtW71Sd*%@@G6myU7Svc7gu4qSZ;wV^g~*G=mQR8Li522|l5`QP zPy{&mxF{nDS!{O*^6?T8G@tN|JVolAxUc&>8qBUMZ%?#AM{&9J;HT;M2-QmKY~EcO z?FlzampkeK5am~9;JXcZ&)0rwy+2-5{Aw0Y%)opnnDl3E5BSS}@2$;4+o<78<&oHa z>)gr!925JCN^|W?t7opmn48?l&k1|H1X1O3d8dN^`Ql>3)u};#JZ42Tny|is0U)bO z;Z#cL77x*jAJz^ds8Dl}BPF;^FxIHw`+k8{TZjk?*0WchndeMyfI@;B*4ta5^{XFY zJ;TDZ`FE&73j**GjPBi7--I~>Nid;h%^`$(Ibw!8$;P}{jnA4oMZep|z})AZY#{J= z_v~gzQ1eglyci_OOIo*oY>i&b0#CyC_syhICP>>zqDksCO>{n4s6ju+Uv&naOte{Y zRGw|MDgqNKMO$oJnZ-=1FaKS)By9hScwUNSS)3|XVrLMj)61B>1`T~F<9i>|DL?Zu zuH}Bas`b*q{g+qtGTsfvhvz_xdx9RG(#LPq2`4|Pe5p+l8!dA6^l0VJ3Md-%6h30! z)$FV6_tzj)Dj+p+FZ>49T+rN)jAjAX4dKRX>vWNj)zN`#F7aMvk2__ky|CVmx7t@% zhtxXVQ1AO4sGuhu@C z30Z;Z0dh
{MNLiA#O4!y=SjW*a {ImQUJzJgRqD}Ht645hFuAY+pH7)A=*1)FXAIFJyUn~hscBEcBsJh9_)7c4x> zlh%b&r^HbA#qST;R8nt(Y3}1+1*st&BBw@U6-y|Kp_VAmLVvH=AT%p8Fhh3z^q+Y? z;hj~{tvV=yaB};Q@ Oe>TJ&qm&4%Tkkph)DJFs0WUFm37xWLV||g)5FD?*xs%!4 td&Fv|& zFm8KqHfPh}5%>mNvYHDbV!scyGE9RV7O}CWaZrAtOQL&z5xRn=3jdC|l>73)bjGcK zCJJYjg+>7{Bh|&Z&)3z>o5|H)YJDvdEJU#=79)X}WU&I0ooVi0Dev6d79E0L1D%6p zqN}QL8dwCZDKc2i)pFsQ0gI8?elBnKr1I;k+u^=96nFea+c-dP=7%rxC{hnQ=-P_P zsM8Ov7%eUY>bA+0xg^>4jYUjW3R19bGIn2BaU2ldr-P}x{+5XO>bOghf$>#q1<^wO z;h3gXd;L!cc_aiW$XEaoKNN1LIUOBXZ?gUObm*`o-afejoGglK+VhTkA8>Sjfz*A% zqcM^;^vvm;5eB~(Rq&*WKgl`@zVTlGrcj}|U7&n>xsmM~A2rx%rFW4AUL*|l8_{C| zIe_?5+t#ED@gjPsi7pM)PyVGsq_TE-D-i~qNB6F)r#1Y `+WU&&~|-ro_@m9yCd+|C%=o yy}V{w^i zv4`Y}16}nOepC6;t4!Gcz8m?9WWa&T#VGF4j$G%#2yOp%nPV2)mo1tAWov2h#)CS& zx8x?Rlay`tt5xsL-y`YwM67}fA;{iCiFb5KT$3aZo!I=>!)fLVmyi>@S#U)947{}v zdKJloMUj0GboM!yiQ7JjFW;sBmF+q1{=ZrgVAx%3ccm$2lu;Q?ZWv$cR~ck+3>~jR zW?%R#wR!2rURwep8KL}Wtp=i0u`bx $yD1%FEf59# xFu$PX|Ka(Lj0KUSs%3|xqU4>~3dd)&ab!Xlw~;T} z>p5N-tzTQe%xhYk8!wcZhbKN}uwOE&$qJ-J_^JjC9QOQ__kM-)N%_>rPwYs8`)4H3 z _5)F!or0z~N1VAvh5dkjcE1MY?>Oqood4*(_{IsPk5m-Lb`r4DWRW;$ z0pYC)S;>isTRcK<(xypduUe@(ay6-M61k97F6@gqhWf!VexA$>Gu_|m_wUm<+~fvM zGCg|mexMK;pLbUKX*k@(hR=&`qJBQt#MDRAweBl@-{MdzZCsd|5eQShl}8r))j1UG zRGH3InkVTsKO@Jlyx%Q7|Eyymn5I2)*s8SNUP@muPX}&grL06%+5i1$MSxW)u*)MX zd4%)QFWHby;I2m%?qCvjwfATS9s6lnXrI2=J3C6uh>fDydG*?WEeMvC8?O|J>ElK2 zd6y(F$|P!UyK0LY8$gm_8}Z*ARm$J&YZOeXHn~V&S|JgCcWBh>sz9bCh8(O(c%Y(6 zl_ijKv(1- KN@X)S7O`?Nzh2SL(Z=ku*_J CB__poeVqU;Eq~I(;+yIG(aaZIgwpz9 zk`S~5e2Rm|OFyM=X1RS%QzSYnR$fOvw7IYR{u7wp0C*s_pj6upwbTW^PyLVbw0=## zXU9}&3n!uH@+)&Unl+EO FYWuD;r%L}`0aP;#U7n^#LK(#m+p_*yMYYhKG}#6)V%yp+Ctys%Rh-YJr)x6 z+V*-@(hy`3iFP}vFg6QXPuH3m?^}nWHMTBkz~noWr)y-x0cMgrM|pa$#ZjE4w~KAq zsMF^og!FKOf`*{~{Vn~<-@{Qd!rg^Y(P7;catvlE#|-)7(l1jS8tL1!V({`$*?QZR zo{BKmTgiW%<<9lkImUzMOfu{I*M4i3#O-Y*K{ABy-J-7e7hO`lB$PXjEvzBu_3i*T z@K0F)Ay1%XXCW@{IG5wt^CZExdfIEUl`4{(vod!2RUt7?ay%jRV*tl&E %lR0FAEZ>P*{$ns>)97) z>4BDK)+2NW?iK4sSBhfkW=FIZ7PAl?K=46cRv5H!Q5-kOrDb$6Jb5r}pEzVb%^-c2 zmUAD5$>m-Th23-3fHBc1a9dN5agYxS9{z(t!F4OTO!$NFuHut?N;a=PIn?ayPMorF zLxZp{K0}9+zGH}o#jKrMxkwi63z8s0*&QE~EX6a>2Le}wIBLb3XX?9bmQBeqz>Zrf z{(x+BulewDNqq6rS=$IHl(KrHdd8K6T3N3C$c`0ALGmdj__A7eM~z51J+q%Co#9kn zF6WZy+Dbt>V!P#pxls+_@3o_efR*^Wbcsau%8z}%;|SCV5Uh7oULGIZ?S-lJvkk;6 zoQ;cxKH0;b$cW0URqY*cM0@iC^isGY$*kr&7(Th@YU$(Rm_v=8VAJZ zw915s*(+yjRb1jrEs0;hgOxL8)p@#l0!DvB@3&e|WxS!%-?=AAWhI)d)E(UWW`+K7 zkO!yII*MIAbM;#fPgy7{hi9Cou?zz($XXCjzgqLgb<<>wynhu36Ud$b6eP?`-+ktc zcGSO6)8}2*u%>Z`H9Pn}7vrd+CAnFh>JGmb-<`7BS0S?Zi>x!(nzCP%=_Y~Wq>RG= zRlR?kA1p9=!!n44=!juo3ymNpjl+I~W7j5obqEL~sg<%JxhHh`q*D^AXhr2Y*66Db z#I-ggq5d_3d%ri)HqGq<(rVEqrJ~>S-+`D)u9I@wo0Qz?3uU3jC1LH+!UhCqv`wzU zfd+bIE?x$+FcxEmKQ|k^e5>=Z0@ZatHn_>gHLWT-$*}AeuA38U2V|?IlS3aQCWUWd zoy8N)qeEJJZNhr*3XX<)>+>Iq3(1z){`S2aSE+)SB+iYG#l1OzTjzjB1S|c!tNa_P zW!LWt#hO %8R%BO_k}YgDe|j7q=LX` z)F^#7Iq0H VKn@6K;?h+7uM zcb`9^7&u_st-uA`Hh%FVN=e>FT-=MUz{7ixP{zP&K2qu}SK)rbvsPL_VvP%{iN=qL z?T )$kg1$P^@<%}cXIU)-pWyOj zv;G`GOTER~*Fbd>Bsj)7|4w%FJKsZ>Xfw}l-GrW3*kzMI&JJE#hS|}KX4*;k$#}jZ zofzI!yJ8 @sU}C)Yuv*ve_QpMr7N;Gbu}mfY7Y4T)MMyP p&?wUX?$a{G<&E735U7W>FPGBYY1;hGKd#@R=1^`D3R z0rh4}pMNFHkzOX1GQTp7t JuhHB$c@(4>CqOBy5T zn~D)Ch2o?FU-!3Q-7AayfTU4`09hY=kUFMtLJfDu7W4H;>IsJEHlG%6Mx~%LF8#J6 z=_Loa$ah%t;G2U2O&E!1u|4lJy;bgH>n__dQj}GzWY@So$6et#Y4Q5+-3RB$Z1M6j z5`Ota-*GpFtWKj4rBKH$Wr$mD%qWtA8#FhgfEo6c*4h;AJN9hS3Bmq;v8lkgXA$q9 zcGQ9bUq_DmQK`VU^G|&&;632%wx#zE$<7zhx>-8{36~A^4YqLpE1@H7YE|HZ$L)8o zx`*PZ-$L?HK9nvKi`Aty0|*-`n1Jo)Co;8QJ$wo?2pXHmZ_skTY_JMe pvI#;h{E`6(l&2C|8`jpe(dYSLuVM<4hQ z-Dq^c(3@toqm6=bIrDJkn9e~ x+yP@i$1_n8m6QlYYR;0m55co*OnA|*<$ Sy4LqtFWKu~++(ji zJjiin7H|KYRU4W4mDEh6?6q+Q_HW_ {tk4hajidR}nm-Acs%>U=j#R6bS@ z+~O(M4H$-LN@{G4ZL_;w^>p%)OWm8{E`e lQ-#$l{%QCqGmn)?M@H3_~ej-@b$k{Aa-4S&8~nb|4}}3eq`$!2DX#{puGW8sS_y zRf6`9rPOh|b3tYT&r;w}ptzE%)r(v0k$tr#+#)D5obuUbEq8Rm0QN)jh8-Ec3E31z zq$ G-$39mB>DV03 j};k{9F(I52Au9{~oam$E=+fTR?q!7)K4t)cXA|55xzFLY$wLGG@)V0C3 z=H{J6B`!DczD?{ExJH=jpY_5&yKjU?Pew;Rha&sJ$#oYgQM)V>RL#s(Mo8006p%3i z@7Jw4#k7lKhH-8ZdNdyox*>8TulwOEX=p*UkKFWC&&>NB7qBlY{R!+Z{KAPu%4GU_ zxp3+hX|m^9Y~jWY8Dygzf-#fSh;#?f?cL5#mOu#POEsioZSj5~Eyc^HDeWtJi4|=f zh|7=SZrSMq-*Tzf-P;A1AS{IGe+}k }q=SGHB*J( QD~uR%4|a}^OpZ2T)b?Ppn&WkXQ$4D^cIaz z1ZnCFv&V8AF{qKsWkJAfngFO8N2|S^ ZH6--hJ$wKxm@Uwu2j{&(l z;X3qt3TpR bp?Xj*G9 F;U3KoKrO z@b8WOk9lu`ea1C|NDSJ}6vu-78hV!+R9pexYl#U0R7-ALh$rl#uOx9`15UVF&R2q( z+7IJSGO^p|Z|p0PLv%SZpBDflS^SSwAF3qe!LF}OBb*J3Q(?5B&ACb1;pf}eJ k1p<_KkyDB42TJLd^N&i&MzkM*m@}snIMs4E!$U* z<3VTW#V|9+3NbIHtHLW7vX5`wJH>h!;n)upKJZnOVzLPFF|PjQ*q6X4Q+{wc<|o5O z;?&~acWF*HDh(1t81AbA;lTVri5fNw;-9?|GLqzJRo+NH*YFjn^)!l&-X}!}oxCxq z;;37wBW`zk@AvfJ$dQn1N6W^(9(2b-&FY69!&I#hFt(g!e<|x1h>d^ZX#3&)t|!Lz zNQfb}-}eq&;c%G{ehvf14zI^pfRS{$T`#TbXeH1EB=EIP?Jvm6h0HZp>-sZnAsd{) zt>vBKw`{o!X+fjAvDH~uFjg%@1!H}fBS!n==MBi7P1qd_93EBD9AuX3zf$_8llQLW zhmF2k3s1aqAz+F0w`4TYy+gb 2|uwunt}xG3id%2 zTK;E@FG(;B&%Ni6H5V_ rR`?Bdovl_mP2+joU>yV33(txN+G>HCKpQ=u{&7>cP5PjVi!t z$VrKieo#^FEe*T+{v*!II}G~nh2hD;EwsJ)qp$|LrA`{L@-%+q4@A4Nq@_vwwMpLd zth@~Q!te``ra4FAT7`~c=(@vnpE sK#K|`otCZI)t5^~ z-XRkm7HwhdTv$<2La)^=HrCH~Vr`O;n2)g`@n7t> e?+3c4{ax&4(uXr~IHL z$r-8xbOC=(>TX4;?#un(h=rqxaIWfvN%le{wuR*s9=VLZP(m+)vEs8LnpuW`sVa{= z4U8 +lpwcVILGLMH}mfOdNt=ljqc!!_;x3U^dLC73N95N}i C#qBO6YS|cmwgc5$Xf1ijT zo|&gcV%}S1FkEu^-B=uf&9R{JbN&lGLyQr7*GVR+wAS!H0^*z*6+f16h~9FdOlQSl z1AyeJ6I(*Ek?&CCR#^f>_oMoP%iDtrJAe2Sc>frgF>p?it3FDHL_aCls7G?K4TnY; zrRiy%cYoh?d_%1Ef=$yk`cY-n+rFE@b;S0W$aT3ADXSWiNZ$W2f0-V 5@m zHxeRE@)Cokd@>6k)QCLxV4%+VQi@jWoV6&?IO@aP2r}gQJcy=#pKPzOBdMR z-FbiA? C)K@5R{?`SXhdZ7)!HyUH_e2l#sISdyZ04?ww$~ z`cbJ^RS_$@tVH5&5}1sMOeO<2W4vM@?=NOT*?Y;{ZS9VFB=^vDAdjC%S}K#F*0yBf z;DNjrr;Bk|cs5feCreU$|0X7h75KeTaD@M63&ry9q)-@Sdk)OVvy5q-1DCxw9 0S9y(kcd=qqi?o>VteZ)}d*UO{Ih_(UC{-;ul_ACGj)5o8y=jqFt4>C6 z)Fg{cR-i|Q&u3n oLzQw-OF{iB6z`@RvPu>m+omz;b6k*8?Ev$>BVO-Z@a)<1*CyP6abE+YS?&e9H|5 zEBenluR;VhF!}FbFdre?mA4iIoSFTWIpu4u)Q3A&7-)}v#7vz5Y{$G$qe$-`cBru^ zEJCwR#X~XknlGl3DI3^{eto!{V|HkFVegDyPT{-H7b{GQH%$$-n1>;n=jz)^Q0`)~ z|L`feJp!<7wjI|yi(-o?&tm!+QlUgJvPU5HMZGOQeO`;>yeGboDaQg^^#*-ym_1;9 zKq}HZllG!PO+?9h+>w~tKGfnvJA55a?fpyO!FOm?z*pw;{mUK7^lQbtVlU4ljsFKV z3DA9zkY>MnCVM}i_HPNq8m6(S1Pp^cTSjK}547tG&)ikkJ_X;SdEJ6}2%D`7_wX9y zTEz;EA~mzxWkp(C@&EH5SrCGUEXZ{1TE5%iksjXZJ^M2}N`N-*@Tt4 E7}sOQ?U6B<%mb?fu2&Qvd7zDX=d0^CtSX=Pk)qYc946C~5V*1G6`aIFLu+mda1 zsv9kP>!Vz}$CTKjSzjLBmqOy-he+9S_3j(v@OKEUEYPX+py7oV19|LZQlLs!jlKo8 zG<55P;zxAZseJA5ygj#dcPymktOg_^J2CcF`k5-NrB_5C5oAnAm9*EoN_T`911fP( zf+=yoUQ(ntZsc0l>0XlvH};eeATFVmf7_*;PgT|F_Q=ms%S@oZQ40WPSfGr?d;$F@ zV;CB!T! |gV0)50o!CQ9wKsr%D`P7JCI9GES*uH!SzQ*}CXH8A>K-J6zB z;2q?DYlq5H>TT^`!F wkUL1B$bj`;+>64;9fgU2Ke413m z%)m9fQ6t4TCOa9uO7mQw&;98LI!)^Z3tTY=9qXH$e=bfB7`xPT;k+=*1>eFqk^4KC zacQdp@!DL
u$SQDnE0Ez-wY( GE-nfrNOk8i#R`Mj;G|iM#`3f zGM~$7#!iiNceX>s8YtD}&hc-?PH!#C1Fs1(5!{@0Ao>tV-AZ2x(iMcMK@Dzt-J|;t zEA~NRmDd&TC(^GhPgf~vK Z^=-oG?5T2_NGh@K2o0gF)D^6e~`Q2Ix zkHBS!CBpw;Vh9JrDZ`}Z%aK7m)5ZVZ-NeOXa`ZgFKf){f#vjkefncf(t~j;N@lrhR zy@FBLiV5vwUNsNsCT0b`Ms$V`>`^&9WO+FctqdHw UzHa_3D#%!(k zcl85lVj|BOKK&g9LP~w%?XT&>$FWlu2Eym*1vkk92G=bWOC9oiYf@Bxt|8J=ASc1- z3zs;F)mZ-j08>D$zdt!S8|8ZZ2n?zF+HVYGM&_IgwK;tgX;p)7&~kOJ8c$BWzF!>D z$c-4^rs=g!CY$;dj-w#vuYZ}la?h3_&GlU&U7X{=bNnpz7xF6y80TN-oBtULt6}UW zrqmLFz!UkkcCQO4XFDrt%Y>$}$lwre4!2OD^{z#Sk6Z5XsFSG =lis*_Pq>;tXx3lJpemLcEP+457jH&=$-zcljx&v<+o4Us}u$$ysQ!t_M#A8Sec zrBx1QHnhrY8Q1KOpSAVXxOro9dXi+A&lG{U8LFSn@4!|>9-=%$y)3deGIV)n5WN&v z5u0>+!sYt)FWwNMzc5IQ4?TJHr4runZ&P9)CdnM|7k`9yBy|YUFw+Pb-!3$LOS3~n z7=vpRG`o5EH2*rH t`;=cLB8dU>!)MBw*x&CFHyQBn^~-Z| z{+@rf |?S!SL-SRPZaF-k+x1Y$8OA_O^e+7`}bcMn#Dm zmRPTmfWZw~c2$TTvk!oicttl~o%r#V29W2=lM_nA(QI`U(TJn{zt>XE>HMcXB?Ip- zA=_Gee)M~DKG0OsLKL0$Z;zhX!m1r$;Z~0;Y~HyWqlZTk0CuRc3}?#xuDtITlTaJ= zHiljGNh<+@a33G|YfOKR#Wq*K%pRG=^?$7YpYuOs@-DfR6SyYEAirX^QR#%#avtWy z&Zh|}yF5)WDVm?7A82anbk7?on2}k=M%iuJA1z(#;cc=&l{sx!suAu6*qA9?nK(v_ z$L}h=dH1J1qGCEjl`)tpmY-R`x$zHb|-l=*v>P}cR>4ZS4Zt9&LXCgt&O@4DH5OsVgx zmX5YInW|4^Udzp6do Cm(;_#H%U`_*=}sIf_x(#oJJD zwBV(i#$qns%G)kp@AKnepcEExxwl1Fpo7NpODYwYU3Mk{rIHeSFiQ^W3btpnqO8-M zFxC`!U7qHlDlJ>49AFH5oMI&c>V2PQgMVo<(mVO%^LX1whWy(5VQZB!#&IfwjI_TJ zLcia>RoH*uT@?K=)jtdPj5 3MSo^B5T8z-aAls59Tl8~p0j_<`b z5Deq87f3t&6!#vW^VNfQGQkdCnjsDe{HfRfuXp}P?`X>G(Z3eM{MKkZ$HcIF?XBz+ zdO?hsVTjlh9+1R0$md-cJb|+;gh_pf4peK0hW~$Ftm@lZ(>J{Rj;K|q`2hD9ee|ji zNqxyPVb8yG{$vs({8V-ZdfpK))pwW~P2k1O*Fr{uB*1C^{jSc-WPkiK#Kgbn&rsOR zig~y(`jU91 UGQUPCQCG_} aKWZ`wIDydH)}+e-A-j^@X<9)MCJWLphE=rvLx)IY-ETy|P5BW8lI{pm1;E8I|M zZp)YNp;H*oOW901d43+>JZp2l(ZdD7eNunHx|tac^smg+Dh^MjS>85t{pT#s&wSnu z^U^coCH&>R7=L6~B2Ykq;gCUFS+c9F_?4VYMTG!!`w3{Uk%5jY5!$f5bp+Ss y#c;8ZbHN1l(Ce1-=LcwJ zG9704)B}tTFStYSV^Z&H8h^W^Xl5GCHexl!;;5TTVGipXRxs|tbmR>UGThtjtdB!K zaQGb93X0N!8%Nm}lLat3%S_@=u91Hf{?*zAM6o(_ 8(utC-M$^>pR;i0;`tMEz{Bv7m|(Gfe9b`+nHP-nu j$D5c!V^;p z(_Z!2x+~_oaAKL<>hfYwvCnbKfdm+>_n+e)?l%bD)Oxcp!iZxiJM|+c1U+CJ7~2Nh zWy|aDbt)#n7&&-n*1@y%gK?PT $Z;2 M zQo4i$b;fqs>GF1V;&MNhExQD(jSNrw6<(F0&Mtuy` q%?v-+a>}#}4fHnn=Utc6fUCeAzNrfPzUx7BwbLjYJ{2$Vxa=zrWVHnth z>8mm&84jXh;@8>9Ki_k15Aj#unZNt~WaX$JNE2JEbJ}IzQ~qT0leJck&EJ@*vK2eQ z;*_VXFX$1goST0R>EigLWAknf!JD3`osW_buG!$3f34&Fs_)?snumU$>-_cJqV#}$ zo5^W;_zrO&Cqv+xU^}T>p6Mf-V2!bjkUpq4Bs41XDR`Oj>@@Wsee^YhoYv&>9ong= zY{YChJnNfZ>cunv71QGHn5KX2JN)RPab#)6bSQNkPilYIgnE6HUi)NLcsHGI=W0o) zEK8kQMjyVZB%A}Srcj|lsfck3y}sYBqPZcmDvnJ!`umvl?O;ALW>qe%)8+ABn&b31 zAtWKq7XN *z@DpeR6G-xnwFpe zja}Ogq~L$X*M! #Ne57UcRkaWObGAJU zMczaOK6~?}GVp46C^g83w*T;_Mg%PrcqCLWr(?6=(MI?X|7?fzwv_$%yT+of{=92E z+w0#t!G3Z(0iXGfg$gG ce0IoDwMoWAy~J?PZIKBS;aojp){y_2W-@4EV*Gm#TR{1v-fDLVrr1Dje7 z=ZAmkTD_rtvT876ZEn3{6l8CcT9EKKa9YY$D_uV%$pl(sDuC8z1#>3ZNq>;Z %Z^$;A!-bLQlC-|e5i*Z=f=l;oOwzaJm6_oD4k(K#C!&0%xWL;{yQ zWhWYcxSlRAt6)RSU{khFa0`xwyJVoZhxm`c+Sxqyga6W%o}@fEWJ&yQ|5Az%Co*PD z+5i@26)o!@*M!2rC bfR=s8KtbH_Uk` {VI?$b;j>+QGNyj{m+d=U056|LmQAg!+?ETg 41Ie@sln9Nna*@E0$i83V)~n#&YQR$p_Z?>nx65eg$LXje*ZtlNLFm+8( GE4DR`Qpp)I*|Hd@`3yVylKx1#2yq@08 $+7*jzWy1WPOGv;3SxSr zmymUjV4lN>p_wxAFM;0`!!4PWgP1HXC^i$p^8D8E&-=sw ot!ORvdBN6QX%!$T4Vki6 =Sf@EJ$rF-u`bMJS>5&)&JaosSxlS#15SODnGE25~7>Sp^Z%ZqdmXP!4R&wGI|yf z_O5&bi_k^aVP5UdI?M?rRjW@LBt$nOyQ+2#C6l=H`jJL{c~xB!w8=t|3=5@-*Kb4y z LQp?3X%VI?P{(`;^!ypyTNQ(!db17*K&3X=h# W-@1{% zn9y~8ziaY?4aZ3{*KNzOX?#lmk?T%g0y?V%>SN1ob`9B%`Pw>E)XnOPfRMGvW}Dl^ z5&FWsN`7P>X?iWa8o8MCg|!i5eEo3|5$Z4_d9i^G==?q!KQBbRl(^%d#r gw`>;TN5$y&s?-bj$&6v=v2Z9p zg9Sagd5i+N_2LhWZR{wDip9e6AhF;28$ro^HjMa4z*^u!L`&ICas~a*y_A36eP_&H z@4j |KNSjc|g&2S02buGh)cF?kal+` nk|9U>Jn gnz$VuM_|E9{zuqb>M%>`o#b4o&6xNnW4+^VJ=Un zWf-|0r2nBTA^lT!`X9@7|CC++r?RB*PuW%a-}ddx|MV@*H&*OZhA}z%f7`bReV*F_ zp|t(|+)DbN%69*Mlx_Y~Hv75T #jf9^%O+n+NF z`l<2Fjyu< ~ z$&LWxtC-9`5I-;iQ_A3*vH$g4{UCVajXnu>C|hf$PKgPhpF5E-rTFhQ{CC;P{--SX zKb1Y1zsst{|E_OFmN8r&kYoDd#h<$}kXIW24`t`@pR(=$RQButQ}+8mmEG)r%0lt~ zu5a#v{q#*TegN(FTxjI~wr|6)=i+r3|9 pm=G4F2A#KC{;Qr9B zjPo0_EMWczv+iGe(LXWz^Nk2Bj{+52X!_-- *@tY6Jum9YI#T=|rLO`!zf4=kUE+~do9Um8#RxQi& z|NKAyum9u!@m;Sje||XXY_0xZ{|^lMfBs+p2l)T_e szC NkO8+HKvA zokB!6JD(q2q|W|14W8*{8`3$50UAt*W+QQ;?6|(B(p=z`-qWS; v?XQJwy8(B9pbM3iWZ# ztj>j);I`~L3#8Aw5+sQzu_*Xbs~j$7hB(xCg#2&-WXDzbsu{`D@AhRgYm>YP{~J*; zeg^q6S8C%iyz*^NA>vE{<3#W61-8Pe-LU0K%}&j+K2qvzb=YYfL4O#h3w}}b6$_y` z6T<*(v9lNyezT#<^v~cJ3 HL~g@^ZyPf0Am-|~ua6l@ zuenqkX-4L{VjizL6U#IhWz~4I7JOj&W2~`xtjSyK%1?x<%c$vRYqIyOF>Y0VGe?Wx z;2o~P{=zZM<08+z*?+?qa~OQv@38o}-@-@tUH>%SPaF3zJZ?%=ar!(i=sEUK C|$AEn74xP}Ae^CBc@sy_c(oL=_3lGdOH0zQqsKoZQ12 zj(rBb8~M^q%Q|`w!WW|(u4Fk%)3G-SP{8vX*pj{T&H7<@27j;VW6G`4p6_~nab==y zh d-O~ApF=+EP#l-UU@d&b8ST(ZL z#|<&MjgpCNae14Ki@e_b_WtzS;<-lD^=$^5kyN~NMSt_l%lcv+c5#u^_xx+pkVt&{ z>BHuU64zxjv5p~1j5x7hGBi$UGvG7uqg9>jOAja;Qasy;rg;u|sfpQdY5RKHRV L%9hq87k4N?!Bke z5ZwoH(SN6ongVN^Ax|e@k1r_#mvi&FbDn;$U#L8}V|-PF$Q^Np0uCV{itdND^K$Rg zLw36h*!n2rvMD51@O)|fh9xqW$$L~4n-9%b)n 8OyI_4;PW+ zaM37r>pNo8=uvT6Aig$1hC}Y5eB(z03GCbVoPUxV;{X!hB~(*p_#pT)6TT1TZCuaF zHt>W;klV>Ps)#8w6FHDcY)v9Zb(0J8FrLgfziMT)p*2%aXpm3Yk&Tb)`*y&({FO<9 z0JksPQWdO{CI{mZZJvo)36-0b6jQNnPxu(Gy9%6|ykYh+{DSlRmKmf5(uvcp(kh iKJ`E&{=GC^Q2fJ3L$A@I80;Q=Ne?$RwNi$SR|llN|jkjAlbPE8HA+HFHSJ`^T) z-?@d^J}ZisL2?fie@kSSw-pWm5(!APIzmQ+SS>*ICtIlo2}1d0aI&&u%iuzQ_c^e7 z(olRAH?W`PdYM4fy9L_Er0|~9%Dcrxch|F8@VXfB<(ide8kNO)r1bn62O)(T NVxkWxHTnHqyHXT^GE=6w?xcP92e_-kBo5|^fb0vjsK6Bi; zJm*aMZh#``BDs!Dif+ld74wqB0vwCAN%g&h3bcb@I=IwUp%kG2YegZSfm}l=%XmB^ zi&Gn{&AF`qhDgw^8+#b@%++!5wbMdi>slJQN1@$b-^}f7XFN6U`RAJk_Mz0v$7Q)@ zW<{ XiE=g3OrWE!b!h5K|YL+!#8?o z)A7s?NrRmsgT-82%DZo@eBgRraM<)UqT(#^zg{jOl1~goFK1+O+<2v(Iidb&b>J zmy|~*T<%MLt$0x{1^C(f0lYkrRAn#)KzZ07?J(;te=rYwbr)y5I@oKm(6s0>jDuGE zOY8tei`u%*JkFZ!I_AOj-J4gz7 knaQpfEx#{ zUegrA$61R_!T`Jn2P)dlaCapLpj&Fac>=&DeoxXgBLn!-rgeMMlIy|VQUf52!voyI zc1wT;fBI(WDB3@Eyfwy>fa8~sG^AR@0YbcoYiq~De+VYM*ssnyZ`|gYr2T|ME%8q# zKAK4Kp8&OJ{~h*oIK$cgq_?gm=rEWbI?i|sL<8;3PvqS@P347`h15df_{aJ@G7o6> z(>x3{>*5sJ=?Q ^14yH?Wfk@j((l*7?%XruK~Q99Ao>&l 8XI7__F z@AU&I%710^z+GPi9HL876*y2 zWb61q`zyyQbbX|7O0PsT@dIihJ;}*UR1*L=-CwW?p5d{~@oj&Z@F2SzzdIT) z@8m;osTq7f`2E9~ZDJ$3p1t84*qw=7Kv1b>e}7b@dC@9@bQjCozj}8O^d;Gs*R|5- z=8bw~kZt0 NeS= z;l*C!uOU7Ty5GTouBlFdVi`uA)Vhp0UI2XFUWK`$hV)|4b@*POcKJGuE!Bbs$@F;; zXMYIxYEEsaySOd1UXzSiR2@)kxFwOAXDKil)eu_>b?%>j0S{O-EYRU>8ki{ecx&j6 zZrMSBK-yVgZ58Vd C*b$ay} zU_HY@a4+sF1*!CzQGmP&5(EfzC}5PLCx3{@uzi6E@P26^ s8c%l?Eb=`;X|ke#_=96~i8nr)P%FCxUt^Jniy=O@L~hu20MbKsatZlqjuo=} zSeeU(GmIMBAveh=I%|uD>Fo6a07k0dh7a#cNmNsDeT5c6E>mvhwM$7)giWI=yB>de z1LMjeo`AFal^XRiTQtujg>&=VFpHysbkXK3m+^Ne6My0EJU9#%0yrm* sC7b$EK-oV}$Ip!xW(3Z`_+qOJlA46s{4_?=MN5%3!*_pfnd zWblhwqXO62b?j)ea5Q>bAXT;0GSHSqasha0pwfbrTVODg0=IOcGS#NdBLZ&6P85*D zR+J*Wn}5V{vw%Pwk{Ft#x|)8B_ZND6*d@2XNRVT|_|~J8ICkwj47m3Pxt<(CoBDEd zJk1Sh(b{&o152lf!lVEZxNuu!0?V?#-yQ5Lp5(wCEaq_-;3}y(;PJK#qM-L2DGOc@ zZ^rk2e5Pg*^#iwxWUY8`KxI_Pc>KvIT4rDVzJE^PyA5X!=S<|Fi7a1<&y2U-YbPu< zz@J G;1oOzy(m;nJFq>KR wW;CBYg4*5mdnJuOTAN4V`GP4lyrSxNf(ihbc6Io-$WD8*e>ej@qZ;v zezaJ|EK>3Pe*W^-x(nme_(S72x~E>Yp;jp?p%=WnKs{1vsfp#5I3l$u;CLBLh;W=> z8ym7<*Pwn?@L?^GA@_iOX8cC4I02hi0=xkIe6TAtc8o==T{X1`0EaXG?$q{#3*fo1 zQ{Ws5cK59>(J%Z0uNOL71!(MrQ-2g-hJwL~QxyNEt|+H^XbZGKrh(<%;U=?C)~ta* z2Oe91f=9d?hmIIceB6x?^YUQOeFspOUSJJcP$NVE)NvP<;tgP(4&2T|5tj{~<-Z^Q z@)#J-jQ4O45bZ &9Nb#4Oa9Jbk-1rW1qWS0$f7(nH2L#aFO0~ zBwgz*S$a(~*Gzw}PMLi+zxOc8SxJjF6f>;mi?1}UB7P|xsU4;RDDc> zeZEtW{E#l&-3Y*wWN&ykg$V{ld^4~L7E+YKf5-SxA_`(%Kn2ES3rU_zJQ8tMkv{`s zh&$jU0DXeQn1ZV5*>RE*##_s uoDs$Jo*-N* zdN@DuSlFnMb 09pH=zdp%sOA)?MhhdNJYPnNPbho ze>m5>^bRH^NkHi%e~>lETW#^@B5_6*u+{opa!ajsC@(VQOD5~=e_i~%Khh374*k(s z4XVKiu|APzfGm8D&4d}R!h6IV-GTHQyg$xOa!>BP7La{#*#dixrT}`!w+JNjguFoz z9{|(yo@w`X@a yrTfRK5dtq zeGeNIl92>Go&|_O1s-Q0K0jKx0kJH38kfs`4 8hbGbE;lMM25mRY7!0D0qJ zTScJ!S@KQhSyEtkY*U&Ok4l#FrKoe0B;^WlCP2$0IamxuB=N_a`LLz`4ZkXE1Y{?Y zd`Eb|F5;wZWS*7gC(YayD%K}pJWP(qZaXMrIPS7h5AXcz&_toZnTCMMs|53~f6Uy& zU0{D{%Z)4*tZ?WyFCiTLc}Gi69a|U2XqSQDMxz=S!z7=9z+F&;sDacBj{6R-D}`_U z0H_9t7oez}xL@c!S{zvcGC5c#8So(H(-=qtwFd)G5_k+AL81*dh6PqTAebiP_ae#f z@O@B{EM$%Xi$j9rXDpW;e?QYzKTbG!TiP%i#`CDN_TXWRIzgYOnKIa0*03@ONIaTW zGHLQ`eqK<~R(vnol| rvYS7eOfc`W5? uJa_{@cYxgs;48gY};JkQU=x#k3kg{Zj&>`#b z_pSVVA0L(7I13J4YsqE;Zr*MUSpbR2e|x{bG>B*Rx*p&t$a%U4;6Oq(2|S@q?I4%= z-*W&d@X2{1GlyhZQuxW40zB^rS4}X>ut#J7-n)k*SBoyPF0TwV3$RrmVI855w0(mh zOM~K~;wN3GZ*&K&0`m(ndNkpO!FDqv!EavxTnkV@yA)Q#4?tvr`A}Q{NP=%r9uZ0M z_CJZ&Z#{&M@SczC4s79$AKOD#GH`W|SE4 &0KR` z5B4XB8b=7oWj{=>5BNPoJ36+Q5di2#XdeH9t3ZCa;77njFrz)N2&hDgHr&T?6|cSx z6c4vrDs}g$Tmd>$z?K6V!a8N7i`F_o!kqQU-%*`@_mWuoph7TtaKW$eqoiSD2%3yv z41zAA8kw%j5|~ot2|OQJdpK9yF8e4~zZ_|?ox(qsf+sS6`wyh^lzM~g7N!Lr6(He( zZJ&XZZiIMXhG7z3$H&I1)LOn~s?iG|JW&9GgO<~Dj8G(s?i-QaAXQtSXqgYgGZ%R? z l^bq8vBHxt-`{AbiOA9(GlcYH z8Oc6g!V^3z;7ep#{&d!|1Z`(=w)AE _2A`OAn^!uMgD({d@d;Rkn7;mn l(f0HUAl8q$qBf`Z6x<`1 zJbDv#5rs8n1xnQD{V2C8$P4adk3sVLM*|mfO`-Q>phu%jNp+Wa0k~*!kMskGpoRF4 zo&-Bt-ae1)!;}Ej9xM^J!n{yK+vvxrk@9j4DGbp0*bdh2KS=%*{n3B&-$yr0*%oYa zRby1i8Q;Xj@5uZbiHv^b4ct&5dSJa)VTe={+2Og}`wsK?#G@{P_Y==|v13F8Qr1q| zGDuvVT|=1tkmLjQ$LMF)epNThpXFw$Du9_Lr`HW1nJF?YJ&p93o9`C3z5y$_f4(I^ z!XJ;Lk>vGB;l&PteE)xTrrKQK4_YDu;?O4rR>~uj*K|ioIz_NY_)c(19$_e<(E8fu zsDGRjloh~T?>Pu1v9W!Sz Pxu@$- zXd-pj pk*Ux0PjlXG|2ZM6p2}rsa2JcprPhVWz^Dp zy-uomOFAMCFgh{GG8>XU8jmz{N^l>^BoBE4UM!4oNt_5%H3{1+F)gilta?MWX!_Fc z6bn;}ek$Ot6doXmg$p&SuoC92?^od8mvMzB7k_!8;BV!=QbWr=N}XhA5VZ=N3M^3Z zZxFc$#6uozI**=y2vWzj20UM$JvJn{xacrHgwJ~5qh2YrrE3JaCsYQoaCsx-efePe zfen~bu>ueQP`-r(G)S~?pD?yTO0%(^g>H>|^vL%OR!=-=p84gi;cj5Gu|P0Du}7~} z+kY2bAfLnW;(WYl0l;mKVbk)y3w+o>;C&pDlp2-SiLE597;VURVTN}H4o5|h_qt@@ zL*S=y(*TT *+Jdh&rRfX@BMt>}gJU;!VFMl8lw?662X3H3ej~)^SWEYQeEY0;#l)VpP zwI^dqk@+=CTR)rGN98!tdE2z*lLi4?x%ZYAI0znLsv4vte+>d_vz%CmpHuyK9f9i) zzDSSCBi7Yd;m3-Y)6X{)Z7RLue5MD*WX;H&s&wesC+I%@I2cTrM4;3t$_Kr!DSv(H zxpAJBw;giEX>@vL2xuL1k+DIrY7j)Jx!2?U*6nGN*4d@#((~|}U>F_E)#8TWc8m?q zZlh!BoR9LvmT036eC56jX;oj+PcV_qm+UDNSgj23)uj9Eq+9?St#+UM0YLBmNoIiW zy$?ZW3hERa$8l=52bY|n5=(*Zw0{Hnf>Qgu1HzaW>zB+;l9wNAl}-8&R@ETr7GQ 2%g_wm=KCk>{Q>_Cv@rhG+U|9Gsipx*iugF;?V*#cw+h^4fh*vlZJMCzgU*9pk6 z0x?GhcWfakjy_im`}P*~$Rol6_y8n2?+JAad;^C3bD?4wL(rgBHwZoc_J7{NPThB% z1kV`+a>=4D9i&D8`vAPCLlk`nQ1JLKSsrF4CbJ?Ovf(f`5DT8Cph)fjh#g!{8s!Zl zxn#M?Dsh;-EYF_K8~YAauN<&!?`Q9d!T~QO+OLYarKE|Ig};1iwecO9GPo#hKZpS; z@p1t@8JprC1(^zGlIPPN_ YbkwQrLMrjW7D{^EcNa2`oI|41XedFH?z?w7zj~ zik>Cb=W;%gX|EKUEh9vL%@hzy7To*!;eyCe#=3X}${p?CjNan=`47W?L^N3@d`K7h z{vlI8Z+Me630xz_G|c3AbEE`O^4(?)g1bu|DBCVxWlwZ=EI;6orB(Pj)mwe1a?{ z49I>gv49qr0|Ez4GnasgCkubh6J{7b{jAx)RQ}d;6vagnlv(x!2lL4YjTFIDZHECo z%DGG_das+0YTE%10Y(!>jayJ(Pt6tw;lWx{uF-~2zD}XGfKyS zNaZPiKGUtG94 _YHv@m_eEba=M0vRHbD9YmJJ2PuBdAu;<9sfz>NgJ2?iWTv=w0)U z50LUFX79KYN~AH=P@AY_`Fc0aR*Cs_r}TZ3Kn~QqrJVu>zGL32X|uf_!SDsma nf=-qYS ot*rwvSv>UU$zS~OFp2uUlrkb6#^NST*YFU%uodnUzM+v~F9D+8iAC#5zh zYJ}Tef*4+DZF~mcv?Kf-0?6C;)QwZ(o5A6Py9BLL;NgEgEK;&;JLk59@akRZHt9D= z$#_izszmC;G~77Z!LRPY ApD%h!2fV6gSN9&h!cW`eeS}Km7aj-CLYb0GeW8H8XfP>vecQtGr8{ z9D93FRE~dD3Bh?t1b~FI`Eo?Ua_))-mto+@AXbvK@86={T;83n(4 dAtz+=pY&Z^oOrT-F!8(3ecZmkiX&jrFLyOw4Sh*z6@(x zvRjL7WF;ItGq>S3B+cFyiSu4s&ut`R7*4-r2ogT7V9fKGaMN*sW@ATV)U00Xw&AO5 zM{r&~65-9(x)HHDWL~l?n8{~3?&65Mjc4Fm*y@w;lFNcUpiw@`o0mb2Cl-Ial~)`# zX!N;aomZ_-Xxr_a2?J+WqXc=v+pno$gi1{q*;#w#>VjE20l?V#;#h`yzgMSDuiy!8lKVjGyi! z>q+w${t#R4fU^AL>bV;J$*6x+bIj9@GXxmZTl!g*U3t-GW|7T&An?x@-x1Tf5B|6n zSRFhh6lm7CQS{Ofn~e^#_obxJWaFjMIT>!_qSrF8!BVjTvPLiHj088iW<~N9+g d; zLDrV`(c6-f^#!Iv2LI|Uv~<-_4Wh6P&L%n!0#)7*mZ!!G`{Zk#;MW(F$w?_uY0?Ob zmNR*dO!bV hIPa8RcX((N113R2xMCl}e8fN8KRA^(DCH88Y*!_@f<2{G(b}t$K=@%m5&sl*%|+ z0y`;?9$d@sZxnwfCs-3z9KSqhO-`h-d#Xx=72Ahd;Kxoy`La=`PXSy$VSR8LCbEz5 z0`ahW6<+RC2`5!!>!rtgh%VL69wEDWfHRS%7Fb8g5qhOoBGE_qSmWf^9HMyVM*4;u zc>0Fbo#b6a2QQWS&=)`TTVUh$ 8-ZNGi3wk0iqJ)m13)w6Mf@f2dcD;SK5ujegLl0o6XBV# z7%}URH3ItK P!YSaZ|`{c~axYhnX{2yrnz?LP_& C}<@&J1V>&YL(>bCSy~HnZ#Y*wfOg4T!lM;p|YFO?SGNKJv)D7l$ z!j|3I=v;ZyJp%F&{2i(>`icT1X-c=;7&`agn#O;v8ylb`gox@~*xsluWer;%@o2$% zPkE`n5GonuP;nhIHG}&5#02xz1_3w`-Di9Eqb^RUP($TTk}tguXJDmyT33NLl7MAs z_~T2TGp#fuPw+E;CF}}H#Ov^4%Vv#6)ka$2Q`|}tg}#D$s(o}08%Hk6dV-CSpBbs2 zCH;RLvveZW{3|qNeDxfiyCG7d3PK-Q*Ux-3dF$QiXj-D J%%35qe0gEFt>Um zmTcZs1>X}75qYZvnY>-Q5}OFIlgW`=?9_jf-WzScRwzK42U?`8!Pk2`>~FM3pEp1) zeZ7LTtGyaHU!)J6M1;2)$0eI5>J{%Pq8hn6z9?CIb~uWjG)2n21jdK&LVt7Kz(X$= zu{mV?j0qx `(G#fRIh)y z->h&*wh^RYL7&2Yd(1qfotuK(HBoyavfk-Xb!J 2N+LL=kE;m<(n3-DyAb k6zmkPW ;{XBm*=WxHM zwl NRM(XvIN5|275>4lmblvMM6390J=S_nAqKhY0~7Dte@AZI z-U(8_-!X{xRttDIB=I#+! vN1W0n21Jm zRHv3R4zPZO%*Nezx0TAAM7Q mIxB|OR=$awgt!eUQu+L69{_Y zh6ok10Sw(0Etikvl-+JOaA_jo2@IG% zO!gwjcDku!XJKgP=DMfiK*e_W_K2#bV02DZAxRR+=lpjAmtV_ZJFm0Q;J9c;VLcmh z>#yxckG_l%ud3YpsS$tf-o3XylvKC~Jt-__M0bX8{bjM8V_d{JAx`VV653i#@Npiq zMW1y*%sMdD_agAfGTIPiXS^eJ-H1ep&x@zd(@~C-eytoKs#)A!Ez^duXS*59vAn+$ z)Vx;rz}!r1e49@gQ^}`kv3rN|+*QS^;pbe;Qa`3n^g{x=^mx9gE+uo5lEu0%=!&!c1w#u7PkXl@WcBK&%M}| z(a|yr}J2Q}AQQm2#gX0LMW$Q}46B)2fK2!|F`&p*TT5k!_Tx0?3I;K?|x<_tgSY zH03ir4;Ege=f@6HB6aIZyEYqhlAfOJEtgT2Cl`P6F>Ez@qw4ofEnO5qi;Iy?6KVHM zu=%)PMjtQsvMRxQ^GG#nxZpi`>cNMdDr_Bt2N% YCy`@8eLh?jZ22I<=7I^i?4WV&(QDSAFs(pejx zfOdK$4mw@m!q6lYckA+ tn~#6l8!Dzws)W$U>^j8k#K;-ytX5UN;nS^+ z=EVE9Pv0-eHX!Njd_x+Ttwdgm?TM>>vg~#Ak&Yi^hLexvHsf?ucWH3!lxHR+EpMWE z0`*(5(ljc1BY&pxQ;dbLe`}Q(SHHFDWDhYnlotW6=6K>1#;U7#)$^ {WcfCLL|BEiitT#|diJ1Y0~+H? z`*gAz4l#Y*LZFOxGk%2;$?g|N-)gwW0!XutPf~(HOtVW^Dl8SB^wm-A025lon80Zo zqfaFQ!kmV}A-eKNIMI&>p273df(L)9Xg^=rw4ehwHH-yL7|AYEFbXxAJ;Ly68VrPA z-#`3v%mSF}cl*$-90nb%L;G1E-Zwz>E@b<9SZ`@Np41<g=93G}NW#IUKM(1u$bN zr@st*i-w1+!MB50dw)+ISHFmUjs<>cK2FlmNN-z_s_SXDT9klB^C_$)qV<2}YvS#D z4=Sv7hHZ4(H?AmoT{Xc~t)!c_+tnE%#eG2=os5r0{aBX6ga>OmJjZ+_UYIXi0QvLI zvXtAFqcCEFdLZ6C>r{XDuS_$EOVAzwsyCLe(MQJwP$_lX4i(jDvR+^lz1C$Va`MiX zHBg4EofqVk4*#8Ivg9By)NOx?0xCLm=b)UoBCK$lKvUhh`%OW~%_3bfo{3YeE4r56 z&g4@mbPOz1*$c}x2WDHZXm1_OhS4%b*dvH^v-p5hvusD|*zfthac5((WHU$)74z(5 zNj3tn0AZ+Ua%x@8OCE0;BzxYonw)Vdaw>MX>4!$hIysKly}{on+M<8-V}R*!#4a3p zgt?szv@;#rW*;`ziaUVe(l8#(vvSDBb|aY6dh$sgep!XjYQzS+JhTnLR}i<)D4Uye z(kfZcJK;xI+ER3sIea@T5D(Y-O+vMeo{vvT>oH%tPtPmfIY{%apHkt#jU~Yz07F2$ zztgIl XKVNQh-I6%YZ6(V=Er33ro)5VApRk10JKIw3w>cD~eh zcgH4`5)J?ILO$ruI*1$3s2bH&A_)c}RiVx`pMJswNa~A-IeTG`9oZS;eO7R1#aU_S z_ouj``xu7K>@khx`6@U`&UV|Dh`bCKh+8MH#aC8JFxTs&YYuItA >)SdA)~+>YFDR;3 gvrcOTB zy)Y8tyq67P-<*o>iy?-8Rn9qS4X{4CJh&AYw=7oiVFri22TNxn+Q;U1i9UpF-RswT zlknr@6!~*nuDCT c& LxX~0JiQ0W`b`i0EK%9=i>88_`G_nt@ z{-YXZ55U#R6(c?Iu)f6{7kA@^W^r~-6N1x=x$PM&6fkSHR+Jlic6rph-}W?! u#H6c9 0^w5S~=`^l0kB4@a4aI=$^(Nt9KC{$n+v3lTDj-)Xl&z;Lu0?34ZiRKc|n>x8KqH z!U|TSU)qa*Wskd(s0n 7nHf``u_XPZw*0B2 Dhv z7bmm=$HN2H!8>4t9PimU9{hOoQ#kOf^)X@rq?W5SrfsyAh~SX<5R>ev>mts}iz*EF zNv$^(MjvkqH}Nsf127UlTPw_~&M`Svx1{)tQNm*h9>tLYRARFlAJQsZSu67QfMg+U zHxJ5xv&nL62RwbyI4@!{e$Uq}z1GQp+_y_GpJ` u@gCkPUzh+sfF~VlwlaF_27M9!vjo zJ_G#{%+*vhAp&LOC5lQ!Qwmm9t;rFbudGym?jA-z*5WV}KY8MLp@9hl!#Z#>FTQDV za$8{KFHzhFH7q=YO_|0JG98i r6{x+?xVu_K<3JKBHhiCA>w8!H+QC+T z2SRwbbd0*T6W;OfftolTL+Sp$5g*FbFvG1!vSVaTEG{6h_L21ZHe*rLB%c*jxaklF zIWwlkMBiR&LR`@pU$QBMD0Qx~i*#&NJO)}nt=}t4mm@IdDPZx zo5@JxtNweoZ+qaHUc$Hdwiihvj9E~B1zTw8`e@AVHR6==Lc%xpoiK754c_;4ss yLY%Dw873E{8&wYYodDvB=3YPuM36olnJIa1 zSB|xeAjW0;R?4t^Er)RC?!w__mpwT ^ z6Z#qj;e4@;zFcKULx^-LbA}?lee(w^j(LCd?HaEkKdtM~lfGTEnru0jGT3WFY$?#I zY`oS;J@9BsUAj))2-^GUwmG8o>9R;SKKWt=h9 -naFvY* zoQ1ku*EC~#Pbi96H}kf0$Sab`PN`%8sx#`tsEl6aU66c>3E{)Rbu%Ttrj9lJ-+0yI~9i_H|CM7u4Cu+0G_K#Ypy`?S0+7@h}z7;b~lm$T!q z)Y^2G8_w$0&PM zfn1#mA6{pCEVYNFY1I@zX+1YD^zl6TxzPq)mc0#3lgw%hR+S+~KLaHl_n3B4%)gtA zRu8PO&4ea%+)#Bc{|G66{UrmPk_^ps*XgM0x6se8*UiAEorqz{&hwG;y!%ZS9dTOy z6GaXQV4DQedA%4~Y%eb|f$2dFcnS%Pmrw`e@~C*8&3f0kG8&vfZ@(mcsk|h%UPi3E zjSs9bo{S$iY${f|;6O1;1PV5%yv^*LO-siKH1EJLJfY5wliwnLi>O@!iueWeTQuFo zIg^2Sg-gPB8eM?AxOTIRtxfbwN?s|O>D3qj#@=1Ua8WksG>+M3$tL?NMkuFj{=XcZ z#j>1007XBD1#Zh3++BCLI}Gym;boCjMT!S>_r2%LAgq+(zCVg+UzPk(bC&q%k@=o5 zg_?DkV4o)n_Y^ySn%f>qH)g(qmIWz+H)3kd>6)2eZ%N)b7K1MbBc9~_c5lnVa|%nF zRPj#$QC5U mC9&9M`{uB zlTX*rNs@hpd33L41X^POsUy%w3>Ms9@vevX#cQfOY4 l`_iY>|g^#2T{+&o#T
;SEK ztLS(Iy`$AtH8;hNZnS5L sZz^KiWdbKPIZfYvK0OnvMV9A B$h$ cK z_xyw{PyO3beQj=oijwLQPeswTH-0?#jrL)$H>z&t$Eq!WtY;)TtzeYbBW<21_EUg= z6p`)&SyjYM8yVHg=hSeGxDA4s^~?+k+AajQR^MLC%%wS{kR?dIL$v$?^QoY>&A;kh zJ2L)DrW WR{}pEw6@ z!ze90^!jJ48GLf#s=+xvptzikjpF`)BqeHm rReoo9* zDw70TLs(dASG=kBblWr=-d{m-;gM?@Byhr{s6izeKLRjpsQ+6tw7zR4Ofx7=zDLrZ zce5x=cEwc0ekOk0%; H-! 1Tkxn1ED ~$YO=RbI5t^A-rTC;c0@Imr_y-G*JKn!aCmKFY8vh$-y*oRdr><4DC(3TCRJ*$=p zWnxhB(Y;5-db@Ba7?6A^e4lq_$l_Q|?$;2DCj44()mEbnvz;0gs_$rf6n^dAX6TyB zped3tS*U7ZQm&dIO!Yu~1-eydgM>@A>VAFZX&(`GKTQ#A^`U%5U0QX20-$b__1;AY zmXnd{2yuo_02xG%(}s*+Ro>D~;U-#}{slbdywe9GhGk|Dd-DZh35Ku{3DdtEuCT3# z?wwt8@=x2)5^%lJc|UqFT*veMBo_kZsZ9_V(dH-s_yi+mlKa)bypuH}F^ 2#Cdh#B?jT2)8R*YQm9@LaiCrAyL$NuSzB&-zURdwEBBEOM4el z6~! gC0=m9bz(T+Q?SOp?1`vU`b)=oq@B(9?QCf zt%HAu*LZ)|!T^~C ^!i)R4Z%TGw`M2iMPTG B=bSxH))?ra=Ia78+uNQ0O8 z81N9o7RTjw+>%H*;&yb}0r&*OS(_2%D@BN%S1B^UxO6dROVsLr!F0XLRelMx^B8Z! z-~2B&` -4c#&1q8=MK~ye#*FWOw0MEwSdJxBKJk~^zAT&L<+1A_ zOTv0Tr;#?XD?^i*>>4MuI695FM74x5u!;0slfEB%#)kh=lJNyAiDQ2bx E0{S9%Z&zz%%jrO`3-p=`lw{BF~0EiA;yi(?UW3a_&-2%g|p7>n4cY!z2TBXIm zI2Y Z Dt)mp(`*n!;EA12+GP-RVtL`ALV?l3 zC1_13uNmIhv7MI1D2?QYIw<2Y_=k&s$E}Q5V^{MJA(BbXp55GW)8MB?Z1@`xPq^_> znH+7GWIsagjPnKJ!f*G;%B3yZF18JMB9ED&C@QH!qak@Qh$jBEsFy!3n9C{VvhA2l zo#J_GR_8@%Fj%{kKC-xEi5H~8*2A5_7}}P%^Tz^8w1{0iddLSy2fH56WxCgYZt50; z9NLvxhBX50T>n+e!#Ap|-(Ci&xrLsgr60@s%f{{*H-WTlAs7~wzdEY`AHHe`P)=>+ zIr3|FN67`U1oA?=+%wl|pRXu(=s}HwVMA1&5wwKmL$4b)hGwO6$=?nzL)%1tpf<&6 zmnW^-0g&!YAe<-=D#BkKH}GeFFfrQ~`Wt2kBK5pDp+pX+A1Ht-_Hdo-hBhJ1f?#mD zlg$ay5J36;k?j46wW~Fly=#ij?t0)Omu=P66DP{ed3|qD7kxM2;3bHOW @`;ozx&h=ZNE>CZ@s`vh4~TSZT;Y$vT^h9@0=#tIX_wA(Lw z%J-`H6HUX(H7M(?1tTyGO_ti0NI7{EmS4hReEbq_zoB1L<$actOqTIcDru{&Yb=@H zA5SgYC8bV;SZpX4f=U<;QI>Z7aV2t3ASF>g$ei&i0R;irh7lQ66;+wt?B6nvcWd?c zL7L}hqknX^ZTI8$T$_=9?N?>1=8r>njr?# pMHgGMs7kMc_SsJ|r^r87UZ2@&G}4JWU9Bl@WBZ1jD+n zL{aKWa)W+8;5&+whqNTFo52$t>%xI{fM4OSqAxdv4GPY4b#?-OCOGi$1VWy$PywS_ zn|-Sx$J1q$j4dVGdgM7pZ3GC^Bh#vAd9ujJfo+^|3UCx#>E*?YzHsANwy|mtY1Ud9 zs=xB4sD-UVAbqXB&$F{K9WSm43mjtPt_|J6hlTk{@&pbaKA8O(J2DFDbnhSbe2so^ zUUWv^x>Xx3Ywuxy{Z5H{JFlM+c6@OjhUtx)m)W?ry+`is$uRZoHdw6;Bcb7Km*&r2 zm#A!p-TCO jq zvC-|GkAnG7VCU`HSx35mJ$CGb7{hjhusdR|KSAU7!4Xq`fE~MH_@T_jO?eMhRI3wC zQW|A6#JiL=Ibtid>JbpInWH!U8NTBBL)7~a8igBi6k%CAp;rB>w&tHSy1a_XM=z)D z-}Qx+6QS~#CLciZ_q~f)a|~%o_awEDQe;U7Ao=w_1^!ZvnD~-wscjmyyO_xe?|z)& zMG|dNH?#YH& !s`wX0@nsF*Zj^Fnb zB@fOF_P+f+niQtnnwTjwnvneOl_S>7ji3W+c5mp>jx?^`BaUsW<)qvvNEC_f(XuX% z8v{F`B9*Z+#{(>i)dKrZ)DaPJh?Xg{cwIkrq5YbFl`H!Qqi#-=Lb=P#&q;f)ospdx zRMlnl2OYu9rzX0MQYb7v)`LvEblU|Igmp*Kv5*ll`>bz6^n#MHKcHdl2zaC>3vH}c zFGO#X#OQgd#~%=6q{g?aN&Q_ZC_YH=_j1|t)%?nNk9SyS!47Kuon}QyhuBwq=Br^H z4_Os|gUgLzFAOD!!|AG_&F a&hhVUAU@=b=}aTxv<0AcM?k$tqf_ j zJmJd!(l9$v8Dqn+2+mf0;KH=IOO&|n;O4bu#`)$tBQ%(sS2#wo8VO*xRCoL@yhQmx z2P+dL7!W!i42O&8*MQ3w8!2M+`d06zc1~`8C<`uY{ccs-XKS{<;|8JFkRd;eSx=}q zCvOZ>UMjt57L1yAy< XMW+EZpK5Lm*7P=JOOz_-0?T@m{oDS3 zsKWDpD5YW#1Y7HeZ*Bh$2_1erS?%j0+9$Qj;-P&)W!N50)DgNyuBnASj_IC16$|m|RFOfgRk)K+BUxdS_BmFBO0br)~79P3%uGdeqtOWuO>|4Xe zP!49A0~7*wP!G!SV{8EyOfb$*bgb!k-ak4#v@cPQA4mBvpSl(a%WKsPUqTkDJ;5>N z0kfdQA-X~yLtOCpb8He006)>JFU(7SD3B1PRyM;vWA`~wL6D>$ea)ulWx7s(8cz6< zH*=7%OAQ=K!xp(4nAe!}mq4`9{&tSZZ7V&xUpyL`<%2|`dc)5WMn?B=f8TSdRQ<5O ztjlgu=@25zP^;NQNBOC#sDFii#MPp_T e=xG5WO$J+Pb4I5zNmJ%ri zMgGlNVPTHwrbAR1V!li+R!SRxcA?u_9}}dxQ8a2{sbcO{Q6&$v2H_ML%d@T5VkSUC zD;GW^GfKmmM|?}A_GuCcg^pUDhh?>9#NhGnk=%c!V<3z*>;=$%0;EpLX|>buqi^wI z)~vM!>^%sz5(^f^M2y%6D^Z!Z@M-P!+wc`ajA5K<_4ECr79o2zQ(}F8MO e_W GtjTIArBhlyK)6YL+1VF1eBq zJBW$E+#ybXSD5-fTPR(QMR(OY`;^UpO@=|d9Z(6PH7;HBxJ&PUGRi@QabRz@c!Jug zO8gT?1LSLO97Hy@EL`Nenmfe hn`Dr(LX3AB9%__FZioRHs1{DJ>(Ky<*D}elW>(BMSqOzXGhP8YhCn>4-?=wo%5$ zU%AgK$pMPx-7qJAlQPq&x@k9JSIw#&Sh6zCQNO`#FOGGG*p {Lpxa$gqWlKAIiA^%4`eF?z4U}Ia z^SjRuhP38OM?1!SbE&4P4B?C4=E;wXsw7BRxtP Jp?<>XOUhZBo1TJ=|<|qfCd0o=qi;B&_bfVuN{leH>LQ}SSaHav$ z#hhy?a&n1f8F`*>%W>5RiQHF+_(`0HL^R!Bvt_92e7z~T06d`~i*``Kzv}gt4s9RC z@!s(Vu2cAU`69&%2yoMHtbTERd&wkU?zM4Srmo9>mVlW7DO&7CDr8X&Zo7m>CA1J< z#_GtrCx$<1T-Ma+Z|uV$GNfephvlN(9Ocp@UT3MdhDWgLdQV!)%Oi3@-Y3ziPv;FQ zyxE~TFqh1EKC5g^9Sr2jT4iX`+nR^Az1Nq`z*Z&78 eAAmY z?^&dOr$vQw;G{?T<%I~9WDJpLHH9Xw7sb~J_e;_q)A|tRPKnr2e{04flB>LZ UhsSc6!`n*757dzZKDOV9=+@>)R}!YTx0)k)^+bBOD0 zD6_=y--p>0oukoEzs1fcXZYrJbTx)OT-~{PNQ|0nHq4zN*8$J@-#4FXcB+I}wemK9 zry&v762Q)iK%m>L@3T%s_% 3M@vy({%c>2q~`mF@d4ZguUB7Mt9-tvo;Bj0}qe@6OaQ_ zPqO%svi6jw8uJP)t#-d5Yf+3jZVPmO*)9nwkVXpQ?5;`fbq0bZw92mtVp3$c680wK z=AFE0Kath0@cXs4F b{4KF6O zgko%b^|5>GOI0T_$@@ph)lW>4!#=eQ`{G9;>f3vO$N+imVa`C2V%3bKeZJR!!o)xK z+q@GM5n5z(t1R?Im&jW5VqHu8IDPpEdLe_pWt|Y!^JX=)FctT`c0llMbD_1q xn}*j^EkrHL<}DH3PQXve zE5XUqmNcoeq1@-Yu(XEV{yGe_CsfI4+ zr=|}24^A?6opSY z@w#{hDItnW<_jRWbYf`<*clb*!+kmQ_T%$+jJo4Ns7h!VliBoD>DZuWQ4 mR)3iuE> #8*d?!@cVMH+(go&8WSvbu{GV%Jk1UQ*@r4KIcc@|)+==ugVBOJma_H>l z!Jkow{p~#ZH_II8M(!L0_TmEI!ltTk$g<3@a5WL9X^nJ$)1eo1HK9JNzLGzLY_1v< zfozzL`|7up*L^ 1^c%>gm`PQ-}!8YvNhmZlKnf<~* zosIjfzg9qheX9;;;NY`~+sl^}R!2087vmY7Lhd|)oa #-kSM-YQCkd&xTJl$6UNt0ru5KOU{#m2enZq1mwt;!YTYEz}s>NpAJp zs (Q%Izu}^nGqpn@Q_tnNvG3Y{%bsnUBY?~Vtk-|{k$$&@XukuI zim99(0Z7{MGE52Hf-dri^DhxRMH)uY2!g4k&nbM-4?F?9yoOy2d*PI%*+{6D@;yq* zJP6J$#nek4y^1uuIp(uB`79el^qb;FdR8)z$AuIiZ>1sZmo~qn$h=8Ld7MUJY{HEz z17P2OwUeufhTgRW*l~&-*&gdFF9G%OUW9Ub!k>;R`7_H(l$@uYe^9`G-@2rSz>9r9 z*uXUUdv|l}&7w&MQ&4B0cvZO Ic(9Jx|TM+ zo`Pt0uuj~z-JgTARndvx3}_xz(^D?)D9^%wp3UAgY7Q{QrS|p6PTplvKEYD?)%h&V zPlqLJr2CSkH$HbvvY}aNwLQma;OQ5h8QJhW;%=42Q;=1ab`gfE`bTCX`@1ImaRf^! zbOJB>x}!4hLXG@B_}y*_GZlp-5_gKR8Sg4{OS_EJg>&T&PiiYsuY-~(n_D{W-}B0U zJT@lllk)fjRWIJi$##me0^hta>=><+w|Q?mIq-NZ_B9F*Ehhs-zn2i53q2gqR-lzQ zI1%az7QaVEz4A4EnP4HagM$Os 2vFmnxNi;FB)21*z=><{pm}fZWDVfk7w=WUj6`WAqxN zdptf?KM5gG&f;JF&~NqUCClB#79@5DK1o%W&`P5S4)-j^VO_vWJD33lVrGlFhxd}f z6*4%t4?JHW80N#QJRP|p3?`8@m9@L)r_ojP=z`zFoCryf*+c919(nj0d@RF%@5ABN z?kB8MBS60pwGX*va?gW`MazdT%0*8hSG46*B`%d2Pbcg5Xi4dyw^^qViO6=7*K+NH zyO 9yGM%$$>2%nyVG_z5@Sum{@ z&PFlQGeH_aA1mQUw-9h>-2GjD=2ZNyRYgA& 3?S=yN-_(mU{RQX%Gt`kg@W_KZ zw^1i8v0^+qW}y6x1&>qsBo$xr6f+>tU6DUz8+bv9P7v1ws}v!Y(hXYAt1x9#zTXv5 z*ltgAu!F!X$Kr(AZSx`|gD+1;brO5a4J L776Ft`K}yWRlbbMQb%4^fBC6=IVn`T~Kxyd~df|x%PAKN`2Y% zjFkR7Tae~D|BxyG;<7(~hl2eOzYZoiC0!w#8o%eUhD8eWcaM=13m9P}^bnK(-j&Le zHn5|)ptbB>-HT)^unN4oyzuxz|Gi-3rpKFM_))(lgw&=6n`#_#oEWf= m zZ{V4!JY4KA0*Yg*F)KURfm1W{yR{=m3M;A+kl%tyvqr`atYF-GN>@Lq5=!gx9z-wS z_Io;Yi9lXuvReUUa4~|a4vN{A*e9ai%NvIX8V!{Kj<3&CmnM`TDscv8`Na6W=co&% zb@_p!a~n%=Z(06-+YYsnQ>5-;SPgvZc`i$3*| Kq3w)R-=!Y9okWi__|uNFn;q!JFz=|r|UF)wWFd#=c@`xdN9l* zy+k6dHmnRGU(nyB*`tT