From 0dc1fa6562554159d5f9300b5472b8fa4edeeaad Mon Sep 17 00:00:00 2001 From: Dustin Brunner Date: Mon, 8 Mar 2021 16:03:38 +0100 Subject: [PATCH] upload_1 --- Node_Red_Weatherdisplay_flow.json | 210 +++++++++++++++++ Nokia_5110_Case/Nokia_5110_case.stl | Bin 0 -> 98984 bytes Nokia_5110_Case/Nokia_5110_case_backplate.stl | Bin 0 -> 1484 bytes README.md | 48 ++++ .../Weatherdisplay_Nokia_5110.ino | 216 ++++++++++++++++++ Weatherdisplay_Nokia_5110/display.ino | 86 +++++++ Weatherdisplay_Nokia_5110/mqtt_callback.ino | 42 ++++ pictures/Case_back.jpg | Bin 0 -> 258916 bytes pictures/Display_1.jpg | Bin 0 -> 307885 bytes pictures/Display_2.jpg | Bin 0 -> 314479 bytes pictures/Node_Red_Flow.png | Bin 0 -> 31288 bytes pictures/Power_Consumption.png | Bin 0 -> 15168 bytes pictures/schematic.png | Bin 0 -> 41957 bytes 13 files changed, 602 insertions(+) create mode 100644 Node_Red_Weatherdisplay_flow.json create mode 100644 Nokia_5110_Case/Nokia_5110_case.stl create mode 100644 Nokia_5110_Case/Nokia_5110_case_backplate.stl create mode 100644 README.md create mode 100644 Weatherdisplay_Nokia_5110/Weatherdisplay_Nokia_5110.ino create mode 100644 Weatherdisplay_Nokia_5110/display.ino create mode 100644 Weatherdisplay_Nokia_5110/mqtt_callback.ino create mode 100644 pictures/Case_back.jpg create mode 100644 pictures/Display_1.jpg create mode 100644 pictures/Display_2.jpg create mode 100644 pictures/Node_Red_Flow.png create mode 100644 pictures/Power_Consumption.png create mode 100644 pictures/schematic.png diff --git a/Node_Red_Weatherdisplay_flow.json b/Node_Red_Weatherdisplay_flow.json new file mode 100644 index 0000000..c49c27e --- /dev/null +++ b/Node_Red_Weatherdisplay_flow.json @@ -0,0 +1,210 @@ +[ + { + "id": "5b547237.9a52bc", + "type": "tab", + "label": "Weather Display", + "disabled": false, + "info": "" + }, + { + "id": "a2ac16c5.ad4e58", + "type": "mqtt in", + "z": "5b547237.9a52bc", + "name": "", + "topic": "wetter_display/get", + "qos": "2", + "datatype": "auto", + "broker": "3bfdb428.8d8e3c", + "x": 170, + "y": 140, + "wires": [ + [ + "20125342.344d4c" + ] + ] + }, + { + "id": "72a13cf3.9527c4", + "type": "mqtt out", + "z": "5b547237.9a52bc", + "name": "", + "topic": "wetter_display/set", + "qos": "2", + "retain": "false", + "broker": "3bfdb428.8d8e3c", + "x": 1090, + "y": 140, + "wires": [] + }, + { + "id": "20125342.344d4c", + "type": "function", + "z": "5b547237.9a52bc", + "name": "Read Global Variables", + "func": "var output = {};\noutput.topic = \"Wetter_Display_out\";\n\noutput.payload = { \n \"Temp_2m\" : global.get(\"Temperatur_2m\"), \n \"Temp_0m\" : global.get(\"Temperatur_Boden\"),\n \"Pressure\" : global.get(\"Luftdruck\"),\n \"Humidity\" : global.get(\"Luftfeuchte_rel\"),\n \"Dewpoint\" : global.get(\"Taupunkt\"),\n \"Luminosity\" : global.get(\"Helligkeit_lux\"),\n \"Wind_kmh\" : global.get(\"Wind_kmh\"),\n \"Wind_r\" : global.get(\"Windr_wort\")\n};\n\nreturn output;", + "outputs": 1, + "noerr": 0, + "x": 600, + "y": 140, + "wires": [ + [ + "b9edddb6.383fa" + ] + ] + }, + { + "id": "12b19c78.f0786c", + "type": "inject", + "z": "5b547237.9a52bc", + "name": "", + "topic": "", + "payload": "1", + "payloadType": "str", + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "x": 210, + "y": 240, + "wires": [ + [ + "42d784a7.9a7da4" + ] + ] + }, + { + "id": "4c2cf417.9ae95c", + "type": "debug", + "z": "5b547237.9a52bc", + "name": "", + "active": false, + "tosidebar": true, + "console": false, + "tostatus": false, + "complete": "false", + "x": 1070, + "y": 200, + "wires": [] + }, + { + "id": "b9edddb6.383fa", + "type": "json", + "z": "5b547237.9a52bc", + "name": "", + "property": "payload", + "action": "", + "pretty": false, + "x": 790, + "y": 140, + "wires": [ + [ + "4c2cf417.9ae95c", + "72a13cf3.9527c4" + ] + ] + }, + { + "id": "42d784a7.9a7da4", + "type": "openweathermap", + "z": "5b547237.9a52bc", + "name": "Current Weather", + "wtype": "current", + "lon": "", + "lat": "", + "city": "Chemnitz", + "country": "Germany", + "language": "de", + "x": 390, + "y": 240, + "wires": [ + [ + "67d683df.1e7e6c" + ] + ] + }, + { + "id": "67d683df.1e7e6c", + "type": "function", + "z": "5b547237.9a52bc", + "name": "Processing", + "func": "var output = {};\noutput.topic = \"Wetter_Display_out\";\n\nvar degToCard = function(deg){\nif (deg>11.25 && deg<=33.75){\nreturn \"NNO\";\n }else if (deg>33.75 && deg<56.25){\nreturn \"NO\";\n }else if (deg>56.25 && deg<78.75){\nreturn \"OON\";\n }else if (deg>78.75 && deg<101.25){\nreturn \"O\";\n }else if (deg>101.25 && deg<123.75){\nreturn \"OOS\";\n }else if (deg>123.75 && deg<146.25){\nreturn \"SO\";\n }else if (deg>146.25 && deg<168.75){\nreturn \"SSO\";\n }else if (deg>168.75 && deg<191.25){\nreturn \"S\";\n }else if (deg>191.25 && deg<213.75){\nreturn \"SSW\";\n }else if (deg>213.75 && deg<236.25){\nreturn \"SW\";\n }else if (deg>236.25 && deg<258.75){\nreturn \"WWS\";\n }else if (deg>258.75 && deg<281.25){\nreturn \"W\";\n }else if (deg>281.25 && deg<303.75){\nreturn \"WWN\";\n }else if (deg>303.75 && deg<326.25){\nreturn \"NW\";\n }else if (deg>326.25 && deg<348.75){\nreturn \"NNW\";\n }else{\nreturn \"N\"; \n }\n}\n\n\noutput.payload = { \n \"Temp_2m\" : msg.payload.tempc, \n \"Temp_0m\" : \"0\",\n \"Pressure\" : msg.payload.pressure,\n \"Humidity\" : msg.payload.humidity,\n \"Dewpoint\" : \"0\",\n \"Luminosity\" : \"0\",\n \"Wind_kmh\" : msg.payload.windspeed,\n \"Wind_r\" : degToCard(msg.payload.winddirection)\n};\n\nreturn output;", + "outputs": 1, + "noerr": 0, + "x": 570, + "y": 240, + "wires": [ + [ + "951d81bf.31f23" + ] + ] + }, + { + "id": "129a08cd.8b738f", + "type": "comment", + "z": "5b547237.9a52bc", + "name": "Open Weather API Source", + "info": "Modified from:\nhttps://flows.nodered.org/flow/b5b7d5da14d24e71de447e6aa290937e/in/dbKdTXPTnHBx ", + "x": 410, + "y": 280, + "wires": [] + }, + { + "id": "cb2cc43f.e09de8", + "type": "inject", + "z": "5b547237.9a52bc", + "name": "", + "topic": "", + "payload": "1", + "payloadType": "str", + "repeat": "", + "crontab": "", + "once": false, + "onceDelay": 0.1, + "x": 390, + "y": 100, + "wires": [ + [ + "20125342.344d4c" + ] + ] + }, + { + "id": "951d81bf.31f23", + "type": "json", + "z": "5b547237.9a52bc", + "name": "", + "property": "payload", + "action": "", + "pretty": false, + "x": 790, + "y": 240, + "wires": [ + [ + "4c2cf417.9ae95c", + "72a13cf3.9527c4" + ] + ] + }, + { + "id": "3bfdb428.8d8e3c", + "type": "mqtt-broker", + "z": "", + "name": "MQTT_SERVER", + "broker": "192.168.123.456", + "port": "1883", + "clientid": "", + "usetls": false, + "compatmode": true, + "keepalive": "60", + "cleansession": true, + "birthTopic": "", + "birthQos": "0", + "birthPayload": "", + "closeTopic": "", + "closeQos": "0", + "closePayload": "", + "willTopic": "", + "willQos": "0", + "willPayload": "" + } +] \ No newline at end of file diff --git a/Nokia_5110_Case/Nokia_5110_case.stl b/Nokia_5110_Case/Nokia_5110_case.stl new file mode 100644 index 0000000000000000000000000000000000000000..6586a380c971bf8ea9d559e822a10a9595ca3604 GIT binary patch literal 98984 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 Ht7`fKE+R7` literal 0 HcmV?d00001 diff --git a/README.md b/README.md new file mode 100644 index 0000000..1ea2dd2 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# MQTT-Weather-display +Nokia 5110 MQTT Weather Display (Also works with Openweathermap) + +This is how to build a MQTT Weather Display based on the Nokia 5110 Display and an ESP8266 to show the current temperature and other weather data. + + + +# How it works +The display is sending a request via MQTT to the server, where this request is processed on Node Red. Node Red responds with an JSON message, which contains the weather data. This data is then displayed on the Nokia 5110 display. + +# Hardware +The schematic looks like this: + + +The whole system is mounted in a 3D-printed enclosure which I found on thingiverse (https://www.thingiverse.com/thing:3725377). I modified it a bit to fit my needs. You can find the stl files on github. +The Case is designed to fit for a WEMOS D1 Mini Board. + +The device also has a pushbutton with the following function: +- short press: activate LCD backlight for a defined time +- long press: show page two with additional measurements and activate LCD backlight +- double press: force the display to update the values + +# Software +You can find the software for the ESP on Github. It uses some external libraries which are linked to in the code. +
**!!!!! IMORTANT: I noticed that you have to increase the MQTT_MAX_PACKET_SIZE in the PubSubClient.h file to at least 1024** +
(Located on Windows at `C:\Users\*YOUR_USERNAME*\Documents\Arduino\libraries\pubsubclient-master\src\PubSubClient.h`). +
Otherwise the display won’t receive the messages because they are quiet long. + +The Node Red flow is quite simple: +
+
+You can import it using the given json file on Github. Notice that I get the weather data from my own weather station which is stored in global variables in Node Red. +I also included another flow which will make the display work getting the data from the Openweathermap API (Source: https://flows.nodered.org/flow/b5b7d5da14d24e71de447e6aa290937e/in/dbKdTXPTnHBx . This page also describes how to setup the API). You just need to delete the “Read global Variables” function and connect the Openweathermap function instead. Don’t forget to set your Location correctly. + +# Power Consumption +After a short time with now WLAN traffic the ESP goes into an auto sleep mode, where the power consumption is reduced to an average value of around 40mA. This mode is enabled by default. It wakes up every view milliseconds to check for incoming traffic. This looks like this: + + + +I also tried to switch off the WIFI completely while not receiving any messages but this didn’t work out and the ESP often crashes. + + +### I hope you like this project! + + +

This work by Dustin Brunner is licensed under CC BY 4.0

+ +Creative Commons Lizenzvertrag
Dieses Werk von Dustin Brunner ist lizenziert unter einer Creative Commons Namensnennung 4.0 International Lizenz. diff --git a/Weatherdisplay_Nokia_5110/Weatherdisplay_Nokia_5110.ino b/Weatherdisplay_Nokia_5110/Weatherdisplay_Nokia_5110.ino new file mode 100644 index 0000000..b4c9fa8 --- /dev/null +++ b/Weatherdisplay_Nokia_5110/Weatherdisplay_Nokia_5110.ino @@ -0,0 +1,216 @@ +/* + WARNING: + If you are not receiving the Json Messages you probably have to increase the + MQTT_MAX_PACKET_SIZE in the PubSubClient.h file to at least 1024 + (Located on Windows at C:\Users\*YOUR_USERNAME*\Documents\Arduino\libraries\pubsubclient-master\src\PubSubClient.h) +*/ + +#include +#include +#include // https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library +#include // https://github.com/adafruit/Adafruit-GFX-Library +#include // https://github.com/knolleary/pubsubclient +#include // https://github.com/mathertel/OneButton +#include // https://github.com/bblanchon/ArduinoJson + + + const char *ssid = "----WIFI_SSID_HERE----"; + const char *password = "----WIFI_PASSWORD_HERE----"; + + //MQTT Server + const char *mqtt_server = "----MQTT_SERVER_IP_HERE----"; + const char *mqtt_user = "----MQTT_USERNAME_HERE----"; + const char *mqtt_pass = "----MQTT_PASSWORD_HERE----"; + + +int contrast = 65; + +unsigned long display_light_max = 10000; // Values in ms +unsigned long display_2_max = 10000; +unsigned long update_time_max = 600000; // 600000 ms = 10 min + +const int buttonpin = D6; +const int backlightpin = D4; +Adafruit_PCD8544 display = Adafruit_PCD8544(D5, D7, D3, D2, D1); + +String update = "-"; +String temp_2m = "TT.T"; +String humidity = "FF.F"; +String pressure = "DDDD.D"; + +String temp_0m = "T0.T"; +String dewpoint = "tp.t"; +String luminosity = "HHHHH.H"; +String wind = "WW.W"; +String windr = "WRWR"; + +bool startup = true; +unsigned long update_time = 0; + +bool display_light = false; +unsigned long display_light_time = 0; + +bool display_2 = false; +unsigned long display_2_time = 0; + +int error = 0; + +WiFiClient espClient; +PubSubClient client(espClient); +StaticJsonBuffer<1024> jsonBuffer; + +OneButton button = OneButton( + buttonpin, // Input pin for the button + true, // Button is active LOW + true // Enable internal pull-up resistor + ); + +void setup() +{ + pinMode(backlightpin, OUTPUT); + digitalWrite(backlightpin, LOW); //LOW = Light on! + + button.attachClick(button_click); + button.attachLongPressStart(button_long); + button.attachDoubleClick(button_doubleclick); + + display.begin(); + display.setContrast(contrast); + + display.setTextSize(2); + display.clearDisplay(); + display.setTextColor(BLACK); + display.setCursor(5, 0); + display.print("Wetterstation"); + display.setTextSize(1); + display.setCursor(5, 35); + display.print("Starting ..."); + display.display(); + + delay(1000); + digitalWrite(backlightpin, HIGH); + delay(1000); + digitalWrite(backlightpin, LOW); + delay(1000); + digitalWrite(backlightpin, HIGH); + delay(1000); + digitalWrite(backlightpin, LOW); + + display.clearDisplay(); + display.setCursor(5, 0); + display.print("Wetterstation"); + display.setCursor(1, 10); + display.print("Connecting Wifi"); + display.setCursor(1, 20); + display.display(); + + WiFi.mode(WIFI_STA); + WiFi.begin(ssid, password); + while (WiFi.status() != WL_CONNECTED) { + display.print("."); + display.display(); + delay(500); + } + + client.setServer(mqtt_server, 1883); + client.setCallback(callback); + reconnect(); + + display.clearDisplay(); + display.setCursor(5, 0); + display.print("Wetterstation"); + display.setCursor(25, 10); + display.print("Wifi"); + display.setCursor(15, 30); + display.print("connected"); + display.display(); + delay(1000); + + digitalWrite(backlightpin, HIGH); +} + +void button_doubleclick() +{ + display.clearDisplay(); + display.setTextColor(BLACK); + display.setTextSize(1); + display.setCursor(5, 25); + display.print("Updating ..."); + display.display(); + + delay(100); + update_time = millis() + update_time_max + 1; +} + +void button_click() +{ + digitalWrite(backlightpin, LOW); + display_light_time = millis(); + display_light = true; +} + +void button_long() +{ + digitalWrite(backlightpin, LOW); + display_light_time = millis(); + display_light = true; + + display_page2(); + display_2_time = millis(); + display_2 = true; +} + +void loop() +{ + button.tick(); + + if (!client.connected()) + reconnect(); + + client.loop(); + + if (millis() - update_time > update_time_max || startup) + { + startup = false; + error = 3; + + display.setCursor(0, 10); + display.print("U"); + display.display(); + delay(300); + + client.publish("wetter_display/get", "1"); + update_time = millis(); + } + + if (error == 2) + { + display_error("Message decoding Error"); + error = 0; + } + else if (error == 1) + { + updatedisplay(); + error = 0; + } + else if (error == 3 && millis() - update_time > 5000) + { + display_error("No Response from MQTT server"); + error = 0; + } + + + if (display_light && (millis() - display_light_time > display_light_max)) + { + digitalWrite(backlightpin, HIGH); + display_light = false; + } + + if (display_2 && (millis() - display_2_time > display_2_max)) + { + updatedisplay(); + display_2 = false; + } + + delay(100); +} diff --git a/Weatherdisplay_Nokia_5110/display.ino b/Weatherdisplay_Nokia_5110/display.ino new file mode 100644 index 0000000..434dc06 --- /dev/null +++ b/Weatherdisplay_Nokia_5110/display.ino @@ -0,0 +1,86 @@ +void updatedisplay() +{ + if (update == "-") update = "--"; + else if (update == "--") update = "---"; + else if (update == "---") update = "----"; + else if (update == "----") update = "-----"; + else if (update == "-----") update = "-"; + + display.clearDisplay(); + display.setTextColor(BLACK); + display.setTextSize(1); + display.setCursor(0, 0); + display.print("Temp"); + display.setCursor(28, 0); + display.setTextSize(2); + display.print(temp_2m); //Temperature + + display.setTextSize(1); + display.setCursor(12, 10); + display.print("*C"); + + display.setCursor(0, 18); + display.print("Feu"); + display.setCursor(28, 18); + display.print(humidity); //Humidity + display.print(" %"); + + display.setCursor(0, 28); + display.print("Dr"); + display.setCursor(28, 28); + display.print(pressure); //Pressure + display.print("hPa"); + + display.setCursor(0, 38); + display.print("Wind"); + display.setCursor(28, 38); + display.print(wind); //Windspeed + display.print("km/h"); + + display.display(); +} + +void display_page2() +{ + display.clearDisplay(); + display.setTextColor(BLACK); + display.setTextSize(1); + display.setCursor(0, 0); + display.print("Windr"); + display.setCursor(32, 0); + display.print(windr); //Wind direction + + display.setCursor(0, 10); + display.print("TempB"); + display.setCursor(32, 10); + display.print(temp_0m); //Temperature 0m + display.print(" *C"); + + display.setCursor(0, 20); + display.print("Taup"); + display.setCursor(28, 20); + display.print(dewpoint); //Dewpoint + + display.setCursor(0, 30); + display.print("Hell"); + display.setCursor(28, 30); + display.print(luminosity); //Luminosity + + display.setCursor(0, 40); + display.print(update); //Windrichtung + + display.display(); +} + +void display_error(String error) +{ + display.clearDisplay(); + display.setTextSize(2); + display.setTextColor(BLACK); + display.setCursor(5, 0); + display.print("Error"); + display.setTextSize(1); + display.setCursor(0, 20); + display.print(error); + display.display(); +} diff --git a/Weatherdisplay_Nokia_5110/mqtt_callback.ino b/Weatherdisplay_Nokia_5110/mqtt_callback.ino new file mode 100644 index 0000000..37cdea6 --- /dev/null +++ b/Weatherdisplay_Nokia_5110/mqtt_callback.ino @@ -0,0 +1,42 @@ +void callback(String topic, byte* message, unsigned int length) +{ + String messageTemp; + for (int i = 0; i < length; i++) + messageTemp += (char)message[i]; + + if (topic == "wetter_display/set") + { + JsonObject& json = jsonBuffer.parseObject(messageTemp); + if (!json.success()) { + error = 2; + return; + } + + temp_2m = json["Temp_2m"].as(); + temp_0m = json["Temp_0m"].as(); + pressure = json["Pressure"].as(); + humidity = json["Humidity"].as(); + dewpoint = json["Dewpoint"].as(); + luminosity = json["Luminosity"].as(); + wind = json["Wind_kmh"].as(); + windr = json["Wind_r"].as(); + error = 1; + + jsonBuffer.clear(); + + } +} + +void reconnect() +{ + while (!client.connected()) + { + if (client.connect("WetterDisplay", mqtt_user, mqtt_pass)) + client.subscribe("wetter_display/set"); + else + { + display_error("MQTT Error"); + delay(5000); + } + } +} diff --git a/pictures/Case_back.jpg b/pictures/Case_back.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b9896aa10efb1906595771bee6c3362e8cc7acb1 GIT binary patch literal 258916 zcmeFac|26_|37?Y%rGW2Y7`=a$XLP{J2}P@vP?rrD$Cf{42hQa5R#fkdKhZmK0L!JV8NjML} zXBtin!ND2(DB_5s^CQU5n#@0kyw+qLJmd|btu&n9!-oNRDx9%K)A4`z6S0vX>c>D9 zK{T=_@@nb`qVyb(%%UI&73ychcb|w@Zd@{t#tx55jH5YlBNF2hXod#!4CWac7#JGP zGc++WVKWxz1BFfg((Fryh7 zTNpAe49yXS8I57Yq#20*%qGth-~Jr`aNrLI{&3(A2mWy24+s8m;137>aNrLI{&3(A z2mWy24+s7~&jE;ZASLM&agWq#2(o)JpALDo?1`8L7WbGtnO}#+I|LF40Zs-ChJl!1 zA_kHJ^$C;tJ&>nBUIOYIfxPTw{uJbK`D9V-q80M^{E2a|KwfOJychC>$@~!HiIa66 zL0%$%f*vvGS8_5BS%f@U=Q-5D3IC46;Dr;h7vWUse=>h^3XEGhQ3q=)_K!TFa)O@s z*tnDB3Q$M^~wI=BhsknQ#-;`9G`$^8?>`@?}h9Qeb5 zKOFeOfj=Dh!+}2>_``ue9Qeb5KOFeOf&YyI5MO}^3?BXv#2r3(got1f6<@d`MQpO% z0lpI^%j2OOOISn#i%e)tp4-U2c$76&6b-@3btlW?=}rh%PJ-$a@fWNaZZiKGYT@C2 z8f?VZ*oc$&)`-J*@qgsyCi7T59DbsoF{qE9%n#3o3y?^nzhD2nBM2iCM*MXfu|r7W z;u7LSl7xhWq$G(fMU|GCGDS*Z+VrVZWkr?Q%8E)#v^n$U($sX-m6Wth>AD7nOeRxh zuDP`t!)l%plYw=Dla!Q{nj$4HEiKPbRZ?aAAE#gE5LpuP8V8eAL-4XVF^jhrg zUur79J7FOH5joygDUyLq=xS#_UZw`2~eV+js0NE-A05tg5crS6g@FXydWt zCr&n?~Kl z>Aszh-(Q-kGAHk6&W9cE?$tS~O<|5n%>CNOSpCNH7qaJg#F*z#W`j-Wb=Q5d91_B-Gj)o=C7)ID2Q7A7HjNX6t!#U{ zuTJmL8vgAwH|VrasWpqGIbk(N5p%Wjh+ySqe_4E(vX$z8XWf^ttET2uf4!y4)AVTg z;M`B=STAb`R1Wdz+V$~j^j{4g-<~(`d_ntA^gSVB$dM`4E`8)sB+t>r@pc; zBOc@?9h|*l+TDvM^Bmch6 zB-NW)u4JrjpkIzC&|=1>bw zif(J-d+)H0xL(}d>AhZib;Y-(ely}bc15j6B+}QEJa|}ID}O*kr$y#e{E@z~lgE6L zq+HTQwReB4kKgzt)^J-|pSO2$;+zeEmsfXKM?Sq$yNOk!RP;5OS}@C-7PI`-yAONT zy<4R0^5AWV&8Pmw@jXrM1{N#b2pc-S({qmu6dZc8^{VmAy>y9Tn?|YA@ZnwG&Ij_acBnD;O)%h+z z?b%|}Xm{P`H$Ehd%xl+BeQepLV=(@$CCqcy3G1h6|x5*6P%DRzGKXnPB91GIy^0HSV7B)2hoP?<#dJ*=Q~t zudwRb6Ok?XsKAU`*`3N3FRR*D;^JZOC|&ZIgU>W2j^tFUZngHyQDT?<9)+);-LyA; z+Nr|aH6=Gc$fOQzTI=~v@@)T^^HYX(*2_%wezVAw8{ux%YxVqNa#K@^Z@%wvzEPgE zVU~lT`wjn*z?SN}DIBREhRd|i?vz{35?^hV)S#w7qUAhKyq&gEyw~xG(zhI+L&gb~ z+4s9F-x_vn?R$4W!e&dvic4pRJ3jNjUkVX;n0UxXmo4@kt26wYN=UNY? zXAY%4_{o&{zO{?LfOEfyaIl3oQ|z=%(VP$o@9W1L%}37`*ND&BsJ=B4X;N~!sJv16 z-7@NI`7P1qr&=_P3uB$WWsc9i*Yu=iY0wn0yqdhC(d9O$^Onu&ta;$5>eP1-b^3+a z6nW{ba~)Z??TT1=r_R#WyjLps0`6*W9vq5`*=itBy>ekCseYP{PSTwZYx73(FFqdc zvN7%voUJ=kZ7wb2bvAEy-E_t`YvgOm zhv_f;$2C?Z_HLSzK=P>^p)S&ke(AK9j_}q@m5@0UElgdwiC(wNf*oX zp7Qi8ucI?~nPX4a72f%(8~VzR7R%q+t>gI9bdOv?+%=2b#G09j3ww56RO-oDDPh%< zBd%#UV8*P-D=sg!SlQQ&56)|x_v*qxZz0~2Q*d96uM>sTA4t$dztu0>ny!C6o4LP5 z{JE>M)n6x9*<5Zpd%Zrv2l0r0yT?{(jpD@{Njh8f7dgugnFq$lPi0wlXY`zT?;r8$ zRUD%+dB&UcschSZ?eD+dU$VHxBmdRLudG#}Ki_`+RC{py^+%eeCvHkB%~s7^sjItc zv%uPBs9_$xy76TAJlO|(jItKU(|+h|uQyfpZtH$N4GTdxLCU1GZ<`G>uSrf(NfEhoV_tJ{|JM3d z23M4#C7uQj7>{(HAze!Ry6o2b^w$dF882Vcb;>>+N|{NtOse~ZWJWK)Fnmsf&CA^z z**0f`cgN;#1}|s%$^q)V9}#_7^CWmBi*m;*k+19pEn<|fK}U=?Pc?VAXgB?!|6i2) z=p2?2%1pSanENqVd-RRez65fq?6QlBU!$B3KmYjl?t=hVp>B>&>6shqyM}Ln&g(DL zomXa_E8&^?(rtr4J=ChWB4A*=~?_f9?xZzHFyV zrIe@D+o?#t^+};*&+&kLUs^m|UNz5pfS8WShJ8Gj? zW|Nb+>#wuPDk`ryvNdaxl(&?gU>u)jtn0S+S^aZPt zVqJbK`(AKh``AHk^c3v^`8c=dFbqnG4^=ftSC zT@ecqdxK6>GdkY4?3$y2IM1sg=GubS+n!4={J7n}$kJ#uMP&=CcVx~{Lu+Sdk8Ymn zZQHeDatdo_8@fh_r_>}wFVA|YZZ{lzJ>cZN$|i}vpJsKA%P;J$vVWiX?V|p-%V|3l zM{eMSDIL#meJweld1t*t@-HMYV11I6$&UAX@0Pb(qaEKnaS7Kf){S>o?l8E0+D=9H z0zxiRzQQ~&skg_hzITUP==M)OF5BuJWZ)KV{h0mar}4BYI&!D9EI;=XUw z=vJ(}+!a1&P8fN%`goRJPqO^s+n@GepW2qnBHv5}js1PwdzrtG?Lkc{*{QA1EN0ox zAPlHzeN^s@|F)!K@WscK3${G>n6=!Z71`uYCD#lUzUMhbRmtZv%X8@27Cj5x=~@Ug zYkL7zDl=ql0gj zCUQHLDSrBr!;@!=r}i_(jr(6F`-TzBluzH}xyo%>s;STFS-If0rafIL)2mdVy}>`# zQ|g*KQT0yC$6Jd{=xoc;bkFD!s2R{xf9d}Rt z*2gWqkzKu~ko4k=@~w3h%TfkI0$IG*QT-olU-{cyh+3hu@MKfS`FuCwSH8`~l2;#m zJ-ow@8&9EfmI@D&-u*oMB%7&Q9Tbk4k5AhN^Tk_sQ#JB-st{U0hg28 zakKA^#-0xzurdz$sEqGbK52=It9^2_LEGuEbXS=o#=hYA_qM&D(6Oo1C2_i4^~i- zZn{%VrrFoN^dZM}X|s}rRMNqm=Vw#~ckQKYa%#_X{vJit-4PK{u5xoz^U}RFB>S9Rg?q-?*2cU;9yYd0enhj0JRvB3B3ttCgipoi z;VTPY7_auxm+i8Sx|aMf=a6dJ6UCba%?^wG>??apLZ2J?Q7oClN4rp~k@rH$`7LXD z64<@e1|G4{P=t2LZ)zI?jZho410Zk|@l`YX&8zsCP~tP(6yBW{fO8-Fz94WKiuy0%6^2oz}X;Y35E6c4}Jo=_VBhCGNF`J~c z(%<+`UR$o6bLVb6S%2tVGiLaoK^*W|sU}mZ#PXNIr^_`jU1~ zPolHGFu7rvbx}#>T%U~G4(VLQ4!2gH1$H_4N3B+@ar~x4X|0r!UNv9yZEL&YaL@X{ zt6B{TC(hkoaV(h?89Dl>)L*$cN^OTRzC)mm-l~(;Vm4Kaxl^;O*FEby7x73ig?+`m zwvL{91HCd_d-BrY{9}nZ`we~}PM+SmPokeye44lJ`K`K-Vl$e?jk&$@J8Oceg`T)@ z^$n;(b@QQ%UTzHgsjSN-ZuvuwH_O&Ue>~0}65ClmYiHgswxxPDPy|D)xS&f*6@W*3lh67K5s*B|2;H2fvzUsUlX zJkH%OGU^TO!EoWL=)_K+g*&TNbOKwn?YfLM_(sPxT{L^L;Szf1-TALKbKmlc6y%)y z(rx87TWniW5KmKl-0b%7(D{b?8wYjy>&s6&E;nlYL9g<*zaW)Y+9P?=vdl%><=Q)E z^)<=k)G@*A@!PAnURW)i6j{8yfxrIPg-$WnZT^>aIz1VE{XG}V%oweuA3VhC7R-xG zij0wD#7CU#v#ov5SLj@l=d!xG1!NnnQi+7*xm5s6wQ%`8yY%KqrS5n&N zT`}YE4{b-Gd}yhs>>FL&OKtohvu!8hVP5C*#Drt)o7X_lG)2IhMRE%RSEK=5MyzE)!Jr z`Y9#s?~mjK-FlQ6J20GUK*($Rp7VOG(WACavie4I6o!0NiX*FXSILH-U@crd%wX)^ zFYt^_ncF=gp|aaKxZ+k6rQ^qT^<&{a^X9Dg{e`S(%@HKt-NacuW8b*m{D{~Fv7wH* zq+m6!$*V20@(;%E?pdd89emN`l&|U%Klcr1=ksN%n{TxG_#`W446QY_2}{1V^lmol zfs6~9+q0>wD4%^San@NuD?Da89y86RS!;`t%$WcCJcYJE_jc0D@ z_kH)=q{qE>YdM9;-Nt2)&F=49v3jf5yBYiP97nq3sEKj|wh!+v3TD49skX_$KLhx7ig$s0m7`3qT@I>~rGh@B1j)-xfbI8dUOZKJcJc=_B*TEE%Ws zpAHmt&Qo*mIbpZ;sh{^yg_H!bVEjOVVC5cqX12MKN~GJ|Cgi$0^nw-F%gFvp zJ|b~&Po<954j?^$asA6l9}82yM*$}1J`Hn87$M? zo4v1h#d4if?`CeaIx?_o|F@%8g+En(9$T3_qef%L8}e9fpQn%6TnTaQGm#;Y*L}3( zQ~NXWYs)nKrR~P{_0(Q`$7Wymt1(JsG`Y;P2#|c zhb;!m^K~wVKisBJv1XGD>&SyL57!5|dvtP+v=Gx5o*!?ha6Goo@s-}RmrD<9+!3_0 z&0Xh=RnhW>YY%o98<(Flk>Q_EytZS}b^U_f4`eqvTPIk0SMLg`dd9fBP@_y^AbbjK zamOfc>r;1MW1U%>8q1`T6I|uabnn$%SsH7-W=}?F!-6>F3VQsBPayrAlJaIH_l(&^WAF3sMey>{DC^DPps@q^`8Zhf%vTxK7z4}L}Z zRGlp^wclWVk+%7eX{}n*($jrI7t+o@;SD}244#u{eZGod@Zx0ZhR#_jDrWO9??l>d z)a5?bNRm`cuhGw%#M}D+R6B4!O7A=YcPJ^&ML)1A;mpOtS7^#BpMajhz^CW!z8hB& z3uS48WxKxJea;gY=F8}qyMLSIIO9%N%n?U-=h+p5RDX;mRPid@e^E%SL zQ`C*wcMQx4vd`|nt2^qeD=cgOZs0$UdlG?>`ax&{;s1} z9b51C`P30;xn&PB5`|Z6QB0!t_gpe#wlDheeBCWM^mXRj`@4M?wC@kk=x`numahLe zJ+Hd5(FxYG9Z#)-kC{Z1RzPD)*@qX)lQJWk48 z^~4hKO&~^84+qMfqIk$J>Zt0sGOXQ6$Ygyzm>P50vS7ctzQAzM&@Xkl@a6|C!Hlir za@16A`3kLzw||ftj@rH5eC_HSzDlSPdB-BPCjBO!$AGayrR);Ncc`O6n^gbMV4?3! z!^{NpHe>0$-O@Qh%nNxupW|8cx4g)c=Jo9x9w(h&U~ffK*GVgJ*gVqCsp(U+lm9ud z=A>Eev;}rqPuH~>7q3!MxS<^%;Z>{f?3LRRM*LlCp1YPje&e3cLUBQ^`|7y%8|8V< zB(JL{0xo>*-@ne}QP3<)&y(u)(RNZ4L>7O7cc-tZGD6)4GRQk1~%ujFHqx=|;d zAbEooZ&GDP*Lb@6zg~9b{>zfA+jsgM^fJ$PrN~!xd3^qbY*9^av-%O?ZJTRKc<02O z?;Cj1z{YM-nQS}YU)kxr%47E>=#vJSmn+?Ij_y;DPr~5k8i_<1$?pz6`N|DQ`*lu> zcG4_z(OhYdFz$swr#53f|0q@gs?50MtrS*eaPHl-Sv8;d`;Vl=SvcB>ue?D2nHW%p zJm@>Q#i^70e30Az^Zj3$#s%v=W|w}f*HtYDy)*q@Ns#t0L_M%&Dy?sDe{uejigbn5 z>T(xXZ)|1nFWx>w)-*}s_VSXtO1zhtOVFl)D4}Ye_JcdidKjOIia(5h$_iz#J$O&+ z)xD-KF~f}s`IoPb%Z-`T3YWZ$*k&R~5zA@a#X8(X49)ZpKH1Q|_>?)fzUfg@r;X*u z+=Lq1SD%WzpXa(fO>bWN3lZ~t_|{~5^N!+^N;59`)n$i24on%oV8!3@I3H)+9dU+w zrq7U>9hC7YuKB{VpT>i}qa`sF#JpaE&nhO2zl{7k@E66e7s{5BHI}q&VlQ*;)Mp*O z;gz!T`;Q@qj_Zf_e>j(4=Iw6nXjU7tuGH*K{@Isg+WWR?Vr2`~6MbrI~Htnny~4)Kot|b&?SLb$JhZ?u( zZKYnjx_%tMS!dS>BemPjyKH9L_&Mf|OA9>g+}h`gFsFH8ckFsG0Ixa7hW}C7ncx1W6opFGth%qZmeRcK_3a+Pz#Q|<75x;&01}e)a2yk zdC5le;u6C24b9EX^$i&M42B-m(Bq}VCI+t7i{+{R?!i8U7n~3gpBNDrOT&5$42nxi zv{r-hMTEhXV29OEFxfTsUDPozk*n_vUzjivsG!d%A@vr(A!@?qB;zhNwn!jstga1`0J}Dtube$Wl9}*oB1B3IRN5g;B zg?9g{{BOy}It7kc*vADYVa=WGt<|tmEx2*P5nKyVmT43i5@KW!s>d)g;_5NYj12Y6 zm}X49;NT!;U|@(zXsDUd?|z(Pd5M9s!68^b(DS?q=){;|Y-C^@9HeJrzzEV~h6aY} z1qB%e>zSGa83!5!G6RE*4S%=yNQeN)21fsr9;_cO^uskZVg|v0dW=wpu^yAlWaya( znFZ>F8kjJcrf|=Op;3?;4P&B(E!){zjWN$)@+&(!FflYPAqFI1;$Cv3^Nm^0mIzL{C7+5kOUsU5bI3zVih$SH`u}vx(WnbM8pJ!h3H4dhlGj9 zx3EhH351uoc*Vs5iApiFp)2`SG1iR}MUVFFf8&>}7& zWpXUfkd>3U=m?rfwk!gJF?Lw1@d8(caMdOYgTn)3!$Lq`0gflCMf@9BaScojgO~;( zdZ9+9=6Xy<2t&`zoEZuSQzN4gLvs_8Aja?ZytvTBZ_m*)Fw!$H^O|^j4uh#CS|UsxO-uumUJ#tWXNZZmg);^T&!qVH=!lSn zzo#u~`)@1!T{wxJ|Jdm7>!LPxaq%f2Ea8bB$+7=_sQ*zz)Xp^`I3$)A_iu^&$2EOy zrvFgHK$fTov^$plm$8^n`;-1~;137>aNrLI{&3(A2mb%Zfxow#A+g}ICBtU&*CYHP zXFIzUY>tPcv#SH#_6@ge3!{T$cm#OBJtj6WfwO=`gFBFE5>MeCa1tT|f8v3`ym&WH zN3Y-aLI2P5$D5*i&ygE?SYQA1`u|!Y&4q0x+&@i&T4->5LL%e?Aa9bK7?0(5LY@k) zCp<@wI{f zBBBT9SSaBk9JtQ<5A792?b*;O2wFuT!O+4Ui9=$LKv8=HTLY*A>2KchLXEJy{9)=+ zEO-UNyJ?`z~n%(d^houvIgKOAzq+$R; zynt7(od{A~f*_h<(6|48m^VCi@HgN7*E*B@6FnwCnIa`4MW)C|%S@A{OqbVEl%Fv} z-cVgbS%oKIJ%{w6nslP<=Ur}r@D6mFmVA6r0qH%HPzZ+L5YBABr z-$(K2PA;EP3FBhJ@o=AMw**z6cG*MNl|F;-i%aHY626g?tzn8$*=v ze9?qSBF4gj0xY&BO+le0kb|cQ|INUSpzr>dfpHk4fm>t@!z2QnfXO(Nz{Vyuk%R~d z<}M;V6G{l88N)h`3AKciUvc)p1)v!5odyI4xFA%%NP!69(HTAz|JOvyKe|K}sMmsy z$tZSh4t$6Nm@tk?!P!!AEC&QHU?YpLYyTx-gHL7QyRky7Yr=mW7n?sDApj`;)3~5& zuyIMEUMVP?*eJ{n<_yDPGdPAIhp>w<15pyfnJ&tW@kI=$K@;E_mP8Ez2{epy=miil z0a?%|q6*kSL(s`>NAQS{gta2!oH!_)a}W(RK3FLjhJ#P1W&+v3a1!}jU z3CDnD5j+3;z^rswD$!Kc*#C2698okfMGH^mQ(&RUGzzdw5>N&#*k|mu5Bi3g31MU+ zRydjPd=#ORp=;2Dy$D=@rN$5;nl1-hCM*GEY!;uyXA9F2Ha@#hR0yjBd>3MJL7{oO z_A%g@r~n!P!Kd3#AxYvXIW$?49gV{0Z+0rAD$5*?W>fL}LU@LYOu;#j0a-xi#H6)U zVJ(CpjgZC!*t?4{eqfY{2$*0zc2SFl0PJae7&iSk)KDDj9MC|TBIzY-w1mN-Xk~bX zs*=jZBI;=QAC|8y&{mZyhUt)SwobtG>VnYyXfK(~NyigwH#q3Ar8V?0Dh^@&V@Wg` z8-?6dXKa;!GX?1317~Q!3cwS{IEWfT28O9RAyWV&+UY3ZfbFyh(X&NZ6#cI4%3U{? zisN&O)AIGrI*Qr}M2oq8L)<6LA^d6=OiVEpK%!Bp2&Zoj3%^r*i+5V%t7X#)VJspA zp$J9S|8=k?(xA~l=$Txp|4I)+0ZTM2LvulJ0XXa{K%1z>7x!SEN!lo!>vu8WL5ob7+<6?y(-B3g=-ubZC`*8_ z3oB_z)-?e_CZXj3T|9zA=r{yJ1YiILfTJo(L`L`Aw)E~z7vNAfL8Q@H0vHX+1R(>m zMC1VN2w)PEMhb?GO&Gy=0w`n*Nr)B!(Gt_Scrj#k>CD_fwCYIxHnyI&OooB9A_LFC z7ak)>!ou-!B#y3Rx!_8xK#a!cV>E!iMKQA=4Fz~0u@a$Bgkoqree~$i?ibD|0ZafY z;sg<^4T&!V+eAVT5k`Oy+GXejsf9SOjDRCRGRAPa6HX@TioqG4fZ;&N+CovFvv83D zDwSFZqDsji(q!`+oH!Idh0-G+0e|s@{7j}Dkw_OHL`L*E@mv8VlZH)B70d>a2H@^r z{=!1D7D&JlOe8=?lqPt@$5_M1Il;9lfv8Bg;}Ou|n1)mB;3?%z=~z%@eVpZ(7dkW4 zwqR4vxh-PFu4x!od!S(^0YSZVxnkM|Ff~5E65&&`+EGuMm?O&c)O4c`qtXhX6!>_& zfTBo4Dpj2TC|C-A7S`iFz8^#%6D}ew5e@~Z!7`AhvVa}1jM~|39G)zMC8L6R<(GjL zK+tL1F0GyRWq`n(QDgr+del?Hd?#J1k6?nLY*1P#&Pfd#DG;WRVA&{md?CWkWQGru zJ!uL|F29FFBBOSW|1hZnyZ{IQ+Tf4cpL*kVn0+@81#%8{0)sjY)(p6TaKOYPWPl8< z4yc^4_5>mxp8=f3;k~x*9MCFCr`{?rMA)7*zL1}(MI+F(2n1Ov0sl%ijuZ|S6wGXR zCQVg9Vj(DW4C4SmF^JG%?GeztfDDjU@O1F_^xf0%hm{{MqzKs#8VKSb;*p3V0@h$E z3JL>kb^1O8<%W0lAvlmH|j0xB@( zP!U*qD!B#V#CA(Fv#ZE{xfd%ti*JojdHxNuvAaeJk1(v)k@ z_ju~Kpezbzd&wwU(Az4=P{lcgcaX?jghQo>g_1ZhwiW;=Qx#i~Ohm{>I3)}egb!6c zN?@`Cd?dUbfWpSvy3IY(vOPu%Mn=H{5U~{l6#{F<;@iQ}0iqxe!~&qy5N$q^jlH8^ zK>RTL-ML;%v#aRZ*fz6$=iL;|mGkwd39@oA4Z#OU!&As8OtGDA3mm6uA(-$3%&`81 zV7M{-Fj3smIZ#>ER+?Jv1k$1E1S1iV8m~_SYnWbCXfDDKW+)~wPNj^|C{#oUcn1@P zOhE}GAcul+j>Mn&U}X6cA;a?|BVZP@u&AP(TSYS~p?3zrO2H`b04wl>BBWFi;2~XT z%_{5w1lhv+gOa0@?a&O90DL+KA(9EUhy%06kx@^S&xf@@$zEdvO&0wwY;64q2qfrK z#28FNVN3g86Xp*VegBv=Qlg;RongXG)OHyPua0c9Bbp&00l*DJ)dj_zC<47gGfjYl z*5L~Dd}<|Vbdt0@Xl^FT5oC&|No}wf&-T;+ig2zaG&s5`sFF!+>B3vr+QqRh*q&8; zF5C#SuYxWnoqddyO6(wZ3PFUK6IvYm{ySxbe1CbLp3ZzvH6hZ0F933o z1t(TvPrjhXm8zgxo=)xApn=R1M-l!k8iP|zfEkfxo|RKyEx-88&lV-X@&gSbLkXaS zM6f2&5FwVs)T|IF1o&df>c)zBE2e$e&ZhO0Y4t{XXSno|8;46Ql)4sncOY5}tU3Tg z$OX5H&7$%VDbOQ)HUP;M3nNEa(CfDV*PqwZxZLXr{TO zz8v%JEd-s6BG3(hZBh!5mwb$n306S{1uSAIXvJ33hdYY5ap~pfs0|+XV;m; zft}|x3acnu+BfQ0yK|NH*SZRZ!iN(q8eH)u1T9r*N(Nn;lF49`$ZSvXY@98sDqwp$ zIswFJLSYZ0O2WC2ID!l!9TCqCZwF-Isg)o+2vG}6b|sQY1FqtFRHX~Y2I{&t!2|(M zn8yN&0+@#_u4N_00I-Lkaj_g>Vs#O7x3v)mb(>uWVHL>I7wO%byGKhqmf?98g&U_Y zESSSYQG`GQ9Rb@9Y7YrTMF0a7QZvCw(Me>E0^NlKUVpKcDh^k!EEAAPWN=_al%NF= zWwL+;nXtX?_spK1njbkY7aurHHY@Q`1GNPzY`Kpjd?nS5cKr4sX{2HNh#S z3vgsRdrW(VXAl8On02cR!24v7tnidU~iXgs4jFv%1z%#?) zoa|75JMaduXNyA!%xHN`Aron!NXRH`?#SWQBG(YKE{f4W@3B-c-(~Hcx<3M)fImnS z5R6exz~q1kH2qGZayEKa-Qq)Mip(kiEE(k#_DSzDXkpuVCo-DPI|bZIhecDM?qN#ZHJN4YTBUpcr@vs|u)s6uM%IY1azX zYn^;>*IfwV`^%N3HD{K2$~8W>OV8UR6Xsc5M5QRI;>h4q0Dt(Nb1-?$RE1?Fd7_mx zum~s}9BXhGM|t3;!gVH?aYR+RShbu=5h^lB(fkfjBG_mkMiq78i>>L;>#JZCysfhWNE&8r?~n zLc!u=*kIy$n{3^DPIc8D!ngym1-^(H>;R+z#Qu@M&fr`Rws$puSkBv4=xyu7N$2Cr zuewO@mI=Lq_V4amK&-x2+SR5enw&6G6=)Z?EeCA`atH*1wncG=&~QG5O3hR)u%`pb zpA_ty8!HU=bl&P=|R~U_el*1(su@{d3!81%ruoU`s{Y0lo-lK$O@KFkW!R z1a~6Ar0Ft7D`r|eX_l%qLfJSML|0m?Tfz?Ql}V~_v^`RqR#A*eKR&&X3VWhVBKQ%A zmKK9UrM7Dk!CZhAc42|~44*~MFTE1psuSAI&C&o>Yr;eLLU2)t3=-%sP`uc3#Sly) zTQ-(=R`U^{go0q93796ZQS1l`Vu6Uv1cD{JKu7`2HnN<4(0l_upACLCdkVf@Jgx6m zyXGjT@WX~vp2ZywbXyd3dj=D{R6c@oz^&(_Z1B}kaA^V2h1I!*)!8VT*|WjP)X(i^ z!D4g{xAmR>!ktGh5xmr*JEWljS&9$tZn*#xbP~e!jHtWy`sk5xP;B6dBXaO=VdxB) zfXLL^g0}=S`E9>Mf)cc1qw$sHas_ihn1xhSs7H6P+b7=R%S?0$c*GS}5wx^(Sn05T zg=UyD4eWqjC_;lJ7E-HJZEY)x$>FmLH_Dy&SlrdQ1l8lCtW5{PYNV3tZ`o>Gx7?Gg z5V{1m@8VA3JzzQ%hz2+^Xe7XHui$R7M@XWZh+(1w3X;L6KIi{74HH)|0nxwS`2|3@ zo7+w!s-jxD$P^dPfEsjqQhJevyg@*wcCUbvfe66{AzYwT2r3v99<=wghhWt#)qL1? zu~~%*Zu1I?#}2#+lfSf-Y2T6Afh(v^bzff^Rz)Zz>mCn%yk%r_XFwHEH6Q$RZV!or z7f{7QVQH18mq{xg4*K(}?_QiT~FwPAJF znazvB7Mkxgs|_q)*gW3+?Zb6cO*n;BRd2LAxajG1Us{I~iA)9@gOGtEgF}hTU3B-N z*GFqPd<2#rOIQeIf?7OZRPg&C?sGvuJ?g5w5u2Y$6K_Y^i>P|4F5!w6)lP}3I*!+> zomg6x2)_zM2UH*lyb*CXJfDT>VlqomNr2@bY9Yc~`HI@92fjLYti2qY#5L15ZhhaG zv!lmiRa7j13OU7?Cc7x9V zW*HcYsUix-UQ7XC>UUxen6IO{>EIT9$<+#~I3h{f!N?Y(gykhf6Yld81JAN+-dn0| z^C|drtsV$~sM-S7z!nNY(SdxBL6O2n2)6zk?3s3Dg79kh+VSX~%PXvR_->q)V%%n$ z(X?akS!;`tqZSuf4m37#2F_(yQ&-cM@vAdofolt%d$|^B30hR{Lmz za*p=bwJum+y6Snb#qc1%5@-+#?_RrU_4VPdG}jVUC(NW{&Kw_<7-yGzr3LKpmIyKM zO*pt17BEgvZu79O*ye@6IICjuL0`To4Nompbw;MJ(x_V0Zt?aciv_A-4x4nG2Rkly zkc4C`QdWrw`TR=Isst011s&lkGyv9~v`S`lm8zR8ed>W!+Xv=v2oK{lo8<@017DVm zj~v)-?Xz98`OAwU1Z~8F7*#j;C?#K*slb#<7ffs{fPI;&fRD0*#V!%!vc6TAbVz~{*@hFCv*EiKNBdb3(+Y+GgZ;V?xg#I#XW_cg`?b#d|eP6eGqOq%Qt~;iN zocW|wUH*uZjbV~JeU%&UVZ*d1s3#2%u7|2EkWxis#xS|J_RminYUBfbkg&}RA3-dH zqU{bvR3}4uznk9-;O=qP2W%76m$+D z(jXeF9Xb4B?~b*>G}x(u*Nnv=VcnEFHKW+pa<7hpb_0k^Bp?Pfv1kvAc`PDFDigu$ zORi@Q$e+(g5INvC6-O0nRWjMpS$UVGXE`si?c1m}&xyll0V@d54=_`ZiBPI@NF zbal()XozQKy*d`} z4o)`&)=}__!Fbqn1a(C5?C5T5arXsYQ&iov+(Tzjfl3I*fpsL(;7DYGw17RK2>C+l zC^v(?uaix-D_v#ix3xKS`c?n&yyW?-nomCa@N~Ru_lNT8CpSauV@ImGG>>X$cmXju zRBzYG4==KkuE8|;zy)9wf^$3R`5Bgg?Nz%D}=Kqkw5Bd?TaajUMjU6BzOfXx6`AJV`EvW+$whB<>@6CUM|@8ly^1d&4Dk~-_2eOcYPaK8tza2^$RFM8%ad_ee{Mwr(IXQxJ>9Pj|9gaA+huT8Zp z>hZ!>e+33st^xE59f)MQ6FYj)qVhnSORuMh`i;kq`lsUKMcL+y=sjeN#)!M>Ns3+_pD9#{i&O`dUZYGi>OZT##ar@ zQ+%k)uVTQ~fF|Ol7NR`e@k(qpk*Udh*R^Hc*PnlOe&Wq!A6sr;$-FK8>kAHUee8ZFc767Qu@K^`Uz@+#sKW

Y4~+*2}yaRal7 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