From c4da6ff3a7b6860f42a12629d9093578495709a9 Mon Sep 17 00:00:00 2001 From: Fl_GUI Date: Fri, 9 Jan 2026 22:51:54 +0100 Subject: [PATCH] initial commit --- .gitignore | 2 + include/README | 37 +++++++ lib/README | 46 ++++++++ platformio.ini | 20 ++++ src/main.cc | 138 ++++++++++++++++++++++++ src/sprites.h | 271 ++++++++++++++++++++++++++++++++++++++++++++++++ src/sprites.xcf | Bin 0 -> 107448 bytes test/README | 11 ++ 8 files changed, 525 insertions(+) create mode 100644 .gitignore create mode 100644 include/README create mode 100644 lib/README create mode 100644 platformio.ini create mode 100644 src/main.cc create mode 100644 src/sprites.h create mode 100644 src/sprites.xcf create mode 100644 test/README diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fed1372 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.pio +*.png diff --git a/include/README b/include/README new file mode 100644 index 0000000..49819c0 --- /dev/null +++ b/include/README @@ -0,0 +1,37 @@ + +This directory is intended for project header files. + +A header file is a file containing C declarations and macro definitions +to be shared between several project source files. You request the use of a +header file in your project source file (C, C++, etc) located in `src` folder +by including it, with the C preprocessing directive `#include'. + +```src/main.c + +#include "header.h" + +int main (void) +{ + ... +} +``` + +Including a header file produces the same results as copying the header file +into each source file that needs it. Such copying would be time-consuming +and error-prone. With a header file, the related declarations appear +in only one place. If they need to be changed, they can be changed in one +place, and programs that include the header file will automatically use the +new version when next recompiled. The header file eliminates the labor of +finding and changing all the copies as well as the risk that a failure to +find one copy will result in inconsistencies within a program. + +In C, the convention is to give header files names that end with `.h'. + +Read more about using header files in official GCC documentation: + +* Include Syntax +* Include Operation +* Once-Only Headers +* Computed Includes + +https://gcc.gnu.org/onlinedocs/cpp/Header-Files.html diff --git a/lib/README b/lib/README new file mode 100644 index 0000000..9379397 --- /dev/null +++ b/lib/README @@ -0,0 +1,46 @@ + +This directory is intended for project specific (private) libraries. +PlatformIO will compile them to static libraries and link into the executable file. + +The source code of each library should be placed in a separate directory +("lib/your_library_name/[Code]"). + +For example, see the structure of the following example libraries `Foo` and `Bar`: + +|--lib +| | +| |--Bar +| | |--docs +| | |--examples +| | |--src +| | |- Bar.c +| | |- Bar.h +| | |- library.json (optional. for custom build options, etc) https://docs.platformio.org/page/librarymanager/config.html +| | +| |--Foo +| | |- Foo.c +| | |- Foo.h +| | +| |- README --> THIS FILE +| +|- platformio.ini +|--src + |- main.c + +Example contents of `src/main.c` using Foo and Bar: +``` +#include +#include + +int main (void) +{ + ... +} + +``` + +The PlatformIO Library Dependency Finder will find automatically dependent +libraries by scanning project source files. + +More information about PlatformIO Library Dependency Finder +- https://docs.platformio.org/page/librarymanager/ldf.html diff --git a/platformio.ini b/platformio.ini new file mode 100644 index 0000000..9fb383f --- /dev/null +++ b/platformio.ini @@ -0,0 +1,20 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; https://docs.platformio.org/page/projectconf.html + +[platformio] +name = unitime +description = see all of time at once + +[env:dev] +platform = espressif32 +board = esp32-c3-devkitm-1 +framework = arduino +lib_deps = + adafruit/Adafruit SSD1306@^2.5.16 diff --git a/src/main.cc b/src/main.cc new file mode 100644 index 0000000..4408775 --- /dev/null +++ b/src/main.cc @@ -0,0 +1,138 @@ +#include +#include +#include +#include "sprites.h" + +#define SCREEN_WIDTH 128 +#define SCREEN_HEIGHT 32 +#define SCREEN_ADDRS 0x3C + +// Coordinate system is origin top left, x going right, y going down + +typedef struct { + // in pixels + int x; + int y; + int w; + int h; +} t_swatch; + +#define S_COUNT 24 +static t_swatch swatches[S_COUNT] = +{ + // 0-9 + t_swatch{0, 0, 8, 16}, + t_swatch{8, 0, 8, 16}, + t_swatch{16, 0, 8, 16}, + t_swatch{24, 0, 8, 16}, + t_swatch{32, 0, 8, 16}, + t_swatch{40, 0, 8, 16}, + t_swatch{48, 0, 8, 16}, + t_swatch{56, 0, 8, 16}, + t_swatch{64, 0, 8, 16}, + t_swatch{72, 0, 8, 16}, + // small 0-9 + t_swatch{80, 0, 4, 8}, + t_swatch{80, 8, 4, 8}, + t_swatch{84, 0, 4, 8}, + t_swatch{84, 8, 4, 8}, + t_swatch{88, 0, 4, 8}, + t_swatch{88, 8, 4, 8}, + t_swatch{92, 0, 4, 8}, + t_swatch{92, 8, 4, 8}, + t_swatch{96, 0, 4, 8}, + t_swatch{96, 8, 4, 8}, + // gmt, +, - + t_swatch{100, 0, 16, 8}, + t_swatch{100, 8, 4, 4}, + t_swatch{100, 12, 4, 4}, + // : + t_swatch{116, 0, 4, 16}, +}; + +#define S_ZERO 0 +#define S_ONE 1 +#define S_TWO 2 +#define S_THREE 3 +#define S_FOUR 4 +#define S_FIVE 5 +#define S_SIX 6 +#define S_SEVEN 7 +#define S_EIGHT 8 +#define S_NINE 9 +#define S_ZERO_SM 10 +#define S_ONE_SM 11 +#define S_TWO_SM 12 +#define S_THREE_SM 13 +#define S_FOUR_SM 14 +#define S_FIVE_SM 15 +#define S_SIX_SM 16 +#define S_SEVEN_SM 17 +#define S_EIGHT_SM 18 +#define S_NINE_SM 19 +#define S_GMT 20 +#define S_PLUS 21 +#define S_MINUS 22 +#define S_COLON 23 + +void drawSwatch(int x, int y, t_swatch swatch); +void drawSwatchLine(int x, int y, int count, t_swatch *swatches); + +Adafruit_SSD1306 display; + +void setup() { + Wire.setPins(7,6); + display = Adafruit_SSD1306(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1); + Serial.begin(9600); + // wait for display + delay(100); + + if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRS)) { + while (true) { + Serial.println("dead"); + delay(100); + } + } + + display.clearDisplay(); + display.display(); + delay(100); +} + +void loop() { + + t_swatch mainLine[5] = {swatches[S_TWO], swatches[S_TWO], swatches[S_COLON], swatches[S_FOUR], swatches[S_SIX]}; + drawSwatchLine(40, 8, 5, mainLine); + + t_swatch timezone[3] = {swatches[S_GMT], swatches[S_PLUS], swatches[S_ONE_SM]}; + drawSwatch(68, 20, timezone[0]); + drawSwatch(84, 22, timezone[1]); + drawSwatch(88, 20, timezone[2]); + + display.display(); + delay(1000); +} + +void drawSwatch(int x, int y, t_swatch swatch) { + char* image; + int pixel[3] = {}; + int maxx = x+swatch.w; + int maxy = y+swatch.h; + for (int dy = 0; dy < swatch.h; dy++) { + image = header_data + 4*(dy*width + swatch.x + swatch.y*width); + for (int dx = x; dx < maxx; dx++) { + HEADER_PIXEL(image, pixel); + if (pixel[0]) + display.drawPixel(dx, y+dy, SSD1306_WHITE); + else + display.drawPixel(dx, y+dy, SSD1306_BLACK); + } + } +} + +void drawSwatchLine(int x, int y, int count, t_swatch *swatches) { + for (int i = 0; i < count ; i++) { + drawSwatch(x, y, swatches[i]); + x += swatches[i].w; + } +} diff --git a/src/sprites.h b/src/sprites.h new file mode 100644 index 0000000..de1ae1a --- /dev/null +++ b/src/sprites.h @@ -0,0 +1,271 @@ +/* GIMP header image file format (RGB): /home/Fl_GUI/repos/unitime/src/sprites.h */ + +static unsigned int width = 128; +static unsigned int height = 32; + +/* Call this macro repeatedly. After each use, the pixel data can be extracted */ + +#define HEADER_PIXEL(data,pixel) {\ +pixel[0] = (((data[0] - 33) << 2) | ((data[1] - 33) >> 4)); \ +pixel[1] = ((((data[1] - 33) & 0xF) << 4) | ((data[2] - 33) >> 2)); \ +pixel[2] = ((((data[2] - 33) & 0x3) << 6) | ((data[3] - 33))); \ +data += 4; \ +} +static char *header_data = + "!!!!!!!!````````````````!!!!!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!!!!!````````````````!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````````````````````!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!````````````````````````!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!!!!!````````````````!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````````````````````!!!!!!!!!!!!!!!!````````````!!!!!!!!" + "!!!!````````````````````````!!!!!!!!````````````````````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````````````````````!!!!" + "!!!!````````````````````````!!!!!!!!````````````````````````!!!!" + "!!!!````````````````````````!!!!!!!!````````````````````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````!!!!````!!!!````````````" + "!!!!````````!!!!!!!!_@HZ_@HZ````````!!!!````!!!!!!!!_@HZ!!!!_@HZ" + "_@HZ_@HZ_@HZ_@HZ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!````````````````!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!" + "!!!!````!!!!````!!!!!!!!!!!!````!!!!````!!!!````!!!!````!!!!!!!!" + "!!!!````!!!!````!!!!_@HZ!!!!!!!!!!!!!!!!````````_@HZ_@HZ!!!!!!!!" + "!!!!_@HZ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````````````````!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!" + "!!!!````!!!!````!!!!!!!!!!!!````!!!!````!!!!````!!!!````!!!!!!!!" + "!!!!````!!!!````!!!!_@HZ!!!!!!!!!!!!!!!!````!!!!!!!!_@HZ!!!!!!!!" + "!!!!_@HZ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!````````!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````" + "!!!!````````````````````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!" + "!!!!````!!!!````!!!!````````!!!!!!!!````````````!!!!````````````" + "!!!!````````````!!!!_@HZ!!!!````````!!!!````!!!!!!!!_@HZ!!!!!!!!" + "!!!!_@HZ!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````" + "!!!!````````````````````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!" + "!!!!````!!!!````!!!!````!!!!!!!!!!!!!!!!!!!!````!!!!````!!!!````" + "!!!!````!!!!````!!!!_@HZ!!!!!!!!_@HZ!!!!````!!!!!!!!_@HZ!!!!!!!!" + "!!!!_@HZ!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!!!!!!!!!!!!!````````````!!!!!!!!!!!!!!!!!!!!!!!!````````````" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!````````````````!!!!!!!!!!!!" + "!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!!!!!````````!!!!" + "!!!!````!!!!````!!!!````!!!!!!!!!!!!!!!!!!!!````!!!!````!!!!````" + "!!!!````!!!!````!!!!_@HZ!!!!!!!!_@HZ!!!!````!!!!!!!!_@HZ!!!!!!!!" + "!!!!_@HZ!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!!!!!!!!!````````````!!!!!!!!!!!!!!!!!!!!````````````````!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!````````````````````!!!!!!!!" + "!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!````````````````````````!!!!" + "!!!!````````````!!!!````````````!!!!!!!!!!!!````!!!!````````!!!!" + "!!!!````````!!!!!!!!_@HZ_@HZ_@HZ_@HZ!!!!````!!!!!!!!_@HZ!!!!!!!!" + "!!!!_@HZ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!````````````````!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!````````````!!!!!!!!" + "!!!!````````````````````!!!!!!!!!!!!!!!!!!!!````````````!!!!!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!!!!!````````````````!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````````!!!!" + "!!!!````````````````````````!!!!!!!!!!!!````````````!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!!!!!````!!!!!!!!````````!!!!!!!!````````````!!!!````````````" + "!!!!````````#!A)!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!````````!!!!!!!!!!!!!!!!````!!!!````!!!!!!!!!!!!!!!!!!!!````" + "!!!!````!!!!````!!!!````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!" + "!!!!!!!!````!!!!!!!!!!!!!!!!````!!!!````!!!!!!!!!!!!!!!!!!!!````" + "!!!!````!!!!````!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````````!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!" + "!!!!!!!!````!!!!!!!!````````!!!!!!!!!!!!````````!!!!!!!!````!!!!" + "!!!!````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!" + "!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!````````!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!````````````!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!" + "!!!!````````!!!!!!!!````````!!!!!!!!!!!!````````````!!!!!!!!!!!!" + "!!!!!!!!````!!!!!!!!!!!!!!!!````!!!!!!!!!!!!````!!!!!!!!````!!!!" + "!!!!!!!!!!!!````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!````````````````````````!!!!!!!!!!!!````````````````````!!!!" + "!!!!````````````````````!!!!!!!!!!!!````````````````````````!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!````````````````````!!!!!!!!" + "!!!!````````````````````````!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!" + "!!!!````````````````````````!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!" + "!!!!!!!!````!!!!!!!!!!!!!!!!````!!!!!!!!!!!!````!!!!!!!!````!!!!" + "!!!!!!!!!!!!````!!!!````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!````````````````````````!!!!" + "!!!!````````````````````````!!!!!!!!!!!!````````````````!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!````````!!!!!!!!````````````````!!!!!!!!!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!" + "!!!!!!!!````````````````!!!!!!!!!!!!!!!!````````!!!!!!!!!!!!!!!!" + "!!!!!!!!````!!!!!!!!````````````!!!!````````!!!!!!!!!!!!````!!!!" + "!!!!````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" + ""; diff --git a/src/sprites.xcf b/src/sprites.xcf new file mode 100644 index 0000000000000000000000000000000000000000..20ad822d89252bca45bbdccb28ff2f2fd4787a38 GIT binary patch literal 107448 zcmeFa1yq#H`!_yw?=BsJi9sVEEn09*k8is%CX z;5Gn21^@sd0AL^hKxF1^0MH)*U=RR+4FHe?01P3YQM|zb2;W4%+t@km)UkAOaIkiC zK?zWx>`Z5Ca~EqX#eH@zwu*D-FJ6X1^yb<*>|EyTWNB@+$Ju(OljAl!n-zN;b+*~r zTkF_bn_F2s>sasK>E!I9V{g8@FEf-O(Eev>EgW|Ky@bXZdv;svINMt*Iyz~JY3y^h zbFtR3bh3AH*4e$&+>-q4Y-6Fb&B@up+(l6teKs0zq^v21n~s}i=U{GQt>a+rVs2&b zVoqAfu`)K@?_jUE*V=ivos*-9x`D2~x}vqCrIVGNqm7CBs+DteCaRlG6*J~1oGPZM zXzXHcqv&YvU~Qs2d%xW_-T5eM-5GW+yO&uzo0&W8w6|8CI#F?=;zVOT7jv6`oMe`{ zi}gx72W#c2WA(?5pR8{%S$~q^SpCUkCrvi|chfF)wzIKwG`Ihs7Z-w=4C;L4vc216~9PM0`r~a$l*ZxkRJk?NNU(euQRA=44 zpJ17-lZ%t?Ok^@<$YPYI{^QJb#d7_ zSx?V#x30OBlZCaerIUkRUmQIHU41>}sm6MJ`TXVKSnIG;w=XtEfpkHP{&n;Xbo3{! z9qa_m1+?cX!5zfFwHu^%o>fAt3##(KXyOw`v7=+_6^INMo~{ujz= z>~=X|Z>_l7$==RNQ%qx<4er>*6crT}HSkA8BLtlojyGjga3IlaTIeWqy|)m5e6Xa3ZM-zM@;RG$Co_rE@su$bROEwF?EhlxB# zB%1O700Vr9e1;|d*OvzXK#oZd6kC}v4Wu^!fCj1)l4S0sp-sLMI5cLF?|8xlfW}7h z-Iho^D*`}+K?7)9BER1y@;;HTi2OukG?8gU77|%YWG5pviS9KAknc#>002!5BF7Oq zjmSkrt|by15dfMy$#+J7K$FoQ&}8%nG#UK?O`<=|5EB18kx4}65m`wj(I+w`^luEZ z9VCYliEIIV*C*1L$azGrByuZ}_C)R{@)VKRi1Z}#F_FPUekC%F$SfjDiEJdYmyuco ze=UN)7QtVO;IBpS*CP095&X3X{#pcoErP!m!C#BuuSM|JBKT_&{Iv-FS_FSBg1;8Q zUyIa z*CzOD6a2La{@Mh8ZGyiJqgJ3p@Yf;u>k#~P2>v<*e;tCq4#8iC;IBjQ*CF`p5d3ur z{yGGI9fH3O!C!~quS4+HA^7VM{B;QaIs|`Rg1;`oUzgyoOYqkv`0Enk|BR3I4hSe_evVF2P@y;IB*Y*CqJt5&ZQC{(1y|J%Ya;!C#Ny zuSf7VBKXbfW`J2m>SdnHd^i6^WEGKZjI_WncK}$RejiCWB2oX2zT=lw04z+%_xVJw zA`-ul0bt=kz8@g+G?CYd^dd5l$hSm>6B$orHj!mSHWA5Xq}4%2?h9q)ZDL1nhZsZOLJk)}j0BytUrmP9%cd5FlfM7j~_L*!E; z-xC=@WFnEdL{<>lLL?ef0RZ0}8JSIR?Ih1BkFf^`7(0c4u~P^bJB8TKfP4Z>ItUm$ zg@CbB2pBtsfU#2u7(0c4u~P^bJB5I;QwSJ4g^;mR2pKztkg-z;85|%a^@5C@Lde)D zgiJpLA=6Jm$n;YXl5rlAaUPO!9+Gi>kSuOL)MWGl=SeZ&=M5)vG?8P8oJ!;ZB3Bbh z<`wf8eZqN+J;8ZrNcasRy@`B60T6Z>&z#yRND^pnt?d48ZfGtNPGW}JiW%s2<# znQ;z!;OYSA!HjdzgBjjgc=|4P4 z|KUmc4^Ps6c#{6Zlk^{6r2p_D{f8InKfFl);YIonFVcT_5&XRf{$2!sFM_`p!QYGE z??v$UBKUg|{JjYNUIc$Hg1;BR-;3byMet|30RX)T{@w(CZ-T!!!QY$U?@jRcCir_3 z{JjbO-UNSdg1w0< ze;}r!;O|H9_apfG5&ZoK{(c01KZ3s>!QYSI??>?WBl!Cf{QU_2eguC%g1;ZZ z-;dz$NAUL}`1=w3{Rsa41b=^mzdym>pWyFL@b@S9`xE^A3I6^Be}96%Kf&Lh;O|fH z_b2%K6a4)N{{94ie}cb1!QY?Y?@#a#AovFm`~wL70R;a5f`0(PKY-vLK=2PB_y;if zqag;cXbylh3$XAX1t1OaABUy@i>3gFhJZt}0M+-I2}kjmFh(-zm^A!6{#K&0ey8vM zncY{m5P)U3C0UpO|C7_~$M09vwNBlw*Y3u~ASx|!-zG=hNNQlw@!p!*^* zdiqOFOr#!MB2p7XIRc6vNos^908Az{O<@#h7NF^oed8?3zh4j!sb7wavK*2bnjul7 zkYf^~@Hi{5Ej~{CIS~A}EK*=w%nVLoTY`S;|8~E1Yyc4a33MQ^0f7w&Y(QWG0vq_B z*noHlfDlr>Y#}kJv7iM~EVhuCq|D%9@`|HJ11^gVSpdRD7F$?cdf?CziYl5q2ID7B z9Stf*3>2auiz6y2J9LDSnx>xNMB{057A#(|S`C!z8LAB%Fkq0Jyo!dd;Y5?^a~CaL zxpt$u^>#;9P&ReVd}9MGO>KkmQ>M*XxOC;ZO%^uxJ9qCp?0Q-Sl#X^QdXFoo)jAu z@%78+PoKj0p&41(c?Ctqr3#?%dsAIiSy6s=Mrv|mLVSEeLQ+b4R!&|)QAufeWmQd` zJZOF0+1}DrUsG9DQkYNW)#v8rBcF$dwQr|ic9eXHu6MZ zBLW){^dtXmKO#H@K**)ooC%;4Qfy%f>A`a2KpVvtkr+61q_UcpzCLJzEMW=Rq4LU_ zdgCTdojG3{)Ik&DQpd4i_HE6i9hTep!GZ!pdz1hOnargcsC(d3_0i}>FA~|@3@)(0jrn48XTyJjU zu=~K#Q|B(cRT|g zKM#5z`XwSdCLtv~Gw0VpkOnD^xXds`b=?W3vlp%0U}?8&|IyQzZrt_0ANVr(!{=|2 zIBITwVR3220FVq>LgKP=N}Bo;O=mA&wb5$Ft^=-TFT1(>Jb3!*?Z+?QqvMiNGjs9_ zi_0piYU&y!K>}n6OAbVunP571$*N7(_PY-rKYQhthu@=Tuitk@vv)ao{M^-Bp8k)XzX|#DEixuCH8bZ|QAv3v z8o8QV+S)rhyV&3Yq&UJ7GJ{7ckI^4*GIPQ5wOec)Tn?Q)fAzMPf8fhEAz=|waY<=e zx%ow<6;-wMjZI9-?(Uu*NO43YWd;u)rK+hne)9BrOIB{Mu-m!!2-2L_{lFK&AHyP| zp;G8#mE-#@q$VR;@R;w%@h)@QHI*Zo2zCc=q~T=+_@V z6H+pAeifFKBdy}*qHO#`Xi{ZdQ&oUeibsU z?W=HaFPF>VvFYUXTP$tuckVgJ*s7=B!zZuae)#+?DmF1KGY2WDy0*TtxfN*_Rh8nh zc_MV0^WK9;PoBAW_10aK;$`srPhY=B$0Z}ZGOGDY5^*~7+@-5G?|S&&fBfuKaLA{x z5mB*;DH&LmmDP0(O)aDd)FL)diq7&xQC|kV`xqAfJt{UKB^_gio6pCLv_gi?ef8$u z$Io9QB7epuq8U+sVF?C^u?t2~TrQh8m@W$c9{DpiF*yyH9N$QPS3y5jIbru0#oI>l+%I$fOBb7^8J1x}N_#Rx2?9 z4o{Wt!t<}rE~=ZxlOzsLgYHEZM)km67MH^tLqi@4VsV9dV`vVK;tCT<_i}jJG@D1^ zxfbXa^ooLBQP3+2dPPC6DCiXhb49^iQ7~6TGhV@55zQI@X0FI7!rs~r7Mmj^EFvl@ zMu`haP~tseqM{_}RaAsjp-Q*1lA?nANGU+U zVv5BP5|xmW88~Fv2zfEea+ zDCi36C>BRpOme`$!NW$#E2*k$=^Bh1j}pzEw`lRQ6)V@Q+puY~xrL?mHd|Y}?b~~XJ;Uh5es;XpGBSx_sr@^_#X@ZnNFt zVgsy?nuFlF5v@^A{~Q zTeE(Xxy3d+d#7D4`wkv)J#qT%h09m2yWPHf&%?{d*U$g{!-tO^2L@74sHgA=42*g7 z@P2@w_u^%%)@?Gkvfb{mYY&s`+=a{6+-}{u=jr1Y@ZeG4)8{W<1-%J=`#$8uhmWD5 z!k=P8KYj>#|MtymD_eV~-TMw5J$~x!h0E7&+`8-G<>PlBrFaz-{OVJg{z=8aSUQd!8x!;MXLRI`i133)Pn`KD_Tp7gFisTy?R#X@ z&zRWwgrub8)U>qpjLb|bi{DQ*5qN3trRtYTSm6TE?usE@(u;5o-0CKp$dH3N{*w={f zk83u{uVtEwu>--dibFOktP@rlXk z#SXgyXC8d*)OX5kiAb9z%_L;a8FnD`_V8)c4M=={ia^$m@U zO-;=$Ev>D{ zSBN)^mf#6<#qkTVG%e2KaM``=9(FgYi|U3wG&gW%W`$up5%t z^=+*!EzQkMjSUU;^>wwiHPzKr6|8KmuBkwbkSYNwO(jQ0MHp!_IQk+7*jtn@-RjtuRQO4Yfh- zxl_lF>~pra*|K)UJoNiWSy4(0RD0aHdF|pE*MrVGEZ47?Z)!9~afl=vYJ#d4PaXw$ z-*dZs=ICArtM$w0Owm;xE+qstKxJ5HNbswt4}9)kJLkH`-hA}}Q-jgNWrUzQsECh^ z`u;Wa-K#*qd)Ln#-fgpf$qXYLHX2mqWTq!4#C#76c^&9`=hBINJ2ow!X*7Dc6niu% zFDowmm6MSY7x^XR{}C4a#MkZILHjMs zXBemq5re9rthKqRp{}~3I6o^nCj9;LfZOK|+HYDiRYy^ltqMvzJKEdOF0qQ@y!80* zA6^FBK6`Ncx&@OpM~G1>0QQu3qy1q`_0?thnTbC>zVvrHy?5KH+2hm(u~h)t%vI6T zjUv=m6lNv<`0(84>T&0-%ckncOF(6SHicF8_H=i)HP=-XWhH!nALw!M;Er|k#;eJ) zmC;Ee9^_W{_H?zk)KwH@#(#Zt|JLc))gwFB z%{Eezrj*ceBwh`-r>niGwlp{C`@2VX&g?c{YCL8LTL}o$5QnujRuyH$hQ0K;e8_gy z4E>R!P!WjGkXPH=)6r5__AB}OyN5SVIBlFaPDv6f0#Uk#$L;NEZ>lOv{~7wspSttbZ>bO0fEp=r%3E{8(t{k#iIZbN_TM>vcY1$ep^HYDkd+6qBzjl`1aABwb z#88^v?vCc_qKu!RPwt-HwQ=s)Q6f+Qh|{$^lv!;_c3jvC&+~iD7mimH=Lht5wbqyC zCVqYGb7{Zjl8MTa6iNYk^}XF~4VAx=Bi{I3Ibgkfva0m&fcD19g47>x1FjvmU16*? zfFHo^?r5qiOpAQ~;KorqGvm=RERq!ps4h&8djII=F}sx}>c0beI-07B(xXC9fSHN9 zY+s5V+>q#yM{Y;Ao0+J~^eY3kFgoO++fh3+lhJ*J_o6b2(xcu#ym8cKxv^UR>f&0x zdvN{8wq=u4Byr1e1NrT^deCag1SN^zDna^9`ToZ5@_vg&Mhaq30UQ%_3xaMz&@BkM z1wpqUm@Noq3xe6gKc6l9PY$m9Z%rdi16tn%@bqGh0aqtHeG2Fu^ENtaGU!o%{NY2$ zB+#vL_wl1g4<~`{1GjFvx!srux@=Fl9zAm8@C4AgX8U$KTib2c<3Y!)m1ZkeEMK-{ zu@PuDFflg9OT9+p04-0cLX{r8R%{4pF_r`+-isEPk8uF_-(CE0K*tN=r7xjg$VH25 z!aO-Z2aC}nJen)UW7ER`9XtTNInivMC_NM%zEPuxATgRA0_b>kdN82lHRwTr4%Vax z0y=mMEsKK3&@xD9(F2gsrUw8zUWb+jbi6hVc~XE5)}?8lB%p(}X% zZm$^sGpd^?`l3TqJaj-v6wvXykIl>S1-$T~uceK88fKHn%Y=qFr6xXl0S&4WfH_0KBHUU?+u^>Cie|b5kSL zz^kvL>RZs!C}uNvPcN6^4Wz4qVSXE02kcuztf{W7DCd+lmE(==c;&GhXDvfljm;*j zll)b`;==r2xjC$CnA4PpcTv|hHZx0=6mI}snNn4Wmm^Dx(ZY6aPF7}GN>XBcEEQ7| z8=sh*mYG*riq|GP@!BL$nudi{%=#l*eoReHjF0^p`Tg6M&!Hcwkh;*%U%&rMNX^bK zsjO>kZAUAj6imPD)IOkB#{m^&=wu%cqa;gI~XR^7tWjzxH9^^Vjb`e~(Sc z$}g>|Z*J@CMu{ZoxTwe<5#PeUgnbJA@cwPks~1lnKk)bVxO4ORmCKi|y4~>#c=9GR zA}%ersG_#1wWABIo$|!#*!S;(-vqsS@$6~fqx=58UhXKtg)=9P9oo0oWzT^lr!U|3 zeG(iNm6TObUenlu>&WAY(J}Y^{d|4AJnr4O?RM?TrSqpx9y`2$&n|mg>#dvCuis?3 zW1s7#y8$mgd{4;uRa)J^Pbf;qUb}Mn(uH$pPMvT)a%lga-8=1Vtt~dMU%ho^r=%O z80zb2s45H}GC)#dprXF%(yhCWUUq*N6c(MFT~vWrcd?2%^p8ag7tEbKbH+52$rHyL zVlS4`D7hgrQer|Z3IevYypHkWO%8`I-nswkQ)FURL0L^BQZQN^X49493=Q;kw8p5b zDJ#m47&c_!07-EX4vT_9pp23jsWoN6hV2K=-txz)$}i)qisDgp-N+Gg!-fo!9Uvtk zCd~NMpadv`qC?du%w1!<|CF2Wv-jWP(y^LITOr*cO#E+fC@6wLL)6C2T50Wa;<{Jh z+pjUHIYckGZL~5dVGmRpJ9D|ku49+oAH6}1FT{;!s;>e{Sp($tOqXnSI(p&mgIAv- zu^sT?R0U-$$x+%<7HzaYch7*(KH2h>C1K`LXXFWP*V^nob;I}BdvttO zc#!J2S!PyyPF(kXVhCCxM^@Qj+H#9su2(&bKs!rXQO|VA7RRF($Ab<^VuZHwqK)=w zSf<2=YfhZMe)~kw1x1G;v;{+rV5kucHG-i=Fw_W!8o^Lgu1%xmD#2Tg;H^gRRwH<; z5xmv>Kl)aqhYvn?@~LRhi9d#OrW0)?L>xAnXo657Hus}jrBN6URFj*!p|RHKfQnRB5*LNLSavL7v|wX zb*n5ZF38JHPl}I@`10}XtEUhBJZ{V2Gd;O~G@=?u%t}j&i;4&fdGjJL!0YafOJ|Qu z&_eixcs8@uy{}=#1-V&iNwJaNKEHqS{E@%s?Q0iK9^SWWyD%+GPLyZzHOX&nZf0s? zY-ISSkf3Le{M>I|IdlAwi^I09>sC-W4YL_P9kmZ{MnMfM!a9ig5&r4j>t_#r+}$pn zb=|*fyVa)EOXp2DMkkY4z454KXeWIuQVUXgai3m7-@ShNz~|nL%cqa-+hu35!EDiN z(}@O}s%Q*H3`6M9fGc=~wzuHasL;})U%6T7NpVQv60`xLV{mD3Glvq{o<)3d!1~}*R5DE zV~UZ^X!)T7#DrK7lO-{h*4R*2Q(akJiZ}11CCC5#5&r3Y(DTPwsV5Hab+j>GyL|qP zDTZ3ABL_>1awtfFD70UuqrIiMv97kdvb3bAATK);rH%X+hGF(~zjfv8i9;@q+qSG- zwqVAjvDzvl21y9Bpb&`Z>FVrgZEmcqu0SwmXQU>@#Y9GY34I^*JTSof-i=FVT@N_h zTW?ykbl&vIhFT<{D2VUw>S$|jU?`>1lj46yhKGf|3wrV7fv?A{s~1il*|*Eia^tGS zbEZu)&{P>dNK%*uB|uVlXM0OyT~%3OUS@J!6mDDK17DBZH!huVJ?!FSYrfuW(d?pyxR*;z(`6=kJ=e3jjc5GU;VA`Z{ zI_iqU1|n^a1clsQymP6tI4>ocWzx~s;?x&fyw~#_!-nz z6lJ3f9(i0j=4`QI`dDRIA*h5{lzC-+)yPea`TF*W_qCHQRx4*2sSXx~is;4$evJC6 zlDxFIZ||S^+&I10cFo)g>cd2#0=f$V#Xy^^8mdcwWh8w6@ZA5_*#q0x&!4C{T#S-O zw<<6(I$9fR$_uiRB12!@zkB|${l-Pc+9M>WQHT+o2e}nUzm31!a`C9+mL;Zoiqfo+ zK&Y=C2!NcFm@mPPJ+8X$vRFRNKv|XphXdih7)(uL!{0sezJ6klmD#Lus)K}~91!`l zrs;7J@1ObJIJMVi&D@C^a$?jlyr&AcrK6>xrYt`r;m3y;ez(q{woDo`Qi?Sc@04O< z@Z0j~)%`mc4moUGWUMnvnmq(a;8F-IMGP$NmySAZT{g`?X`m1s1SI=virbQk+TwZj z_-;$HnTBdZMBqRm)fahtRd_bwelCS;%_ zBLt-Y%|nqGGeXrxc8IEb<+!tj+01b&gN30apm;LBD_mDuoSPc^6)7K8cG2UE&wOv5*}r|={E1^mh_l2&4|ejRBKaoOSM@vRkinSfjFMuB zfo{gx+ZPcxpdc$L>eK6ocP}1w+PZYQfwC-H6m${ye_ty)(OyEP6^}fwx;k5$%`j9Q zEChu?H{#Q~kaz50FCMUP5Zer5vN@Ob;eLHkXMjCJIt*=*3kEOp=o5)>N)*oV$1 z2AwTSP4yIIIFJG@c!`7Wxo6s#!8g5}lxWmrTz1`Mu>!SG7y^)xfj!T}S1wCaymb8d zBSS=}y$$rbcG6|rs@X=Phl)`kA}+oEQV5EliQ*&tO7hZCXW;90dY|2zxf3+x#98kc zcljU6$^31CsB3uPf9veQ?dum#(HbFz9M~y*?><@*LJdem@zKLoR*;E1iaQq$J8WKT zqAPz7d)1M%zp0fuNcWc(lRnV>GSdg1zkB~xXk-#`!}AS>-(tp2W4;6jqDRkS#Z0`S z@$m=J5PwAj6+l}2yHmjr;EZj~oZ4^u! z1=B{sv{5i^6igfO6j(5A6igeLnUrAKD3~@1ri}t`qrlrJ@HPs(jmYtXJud=pqrlrJ z@HPs(jRJ4uf9`E`gw%|W}aNj@R!IM`Z-{R8q%WIq4 zyD-HVTG~cyi&+_|$qDf>(UIT3eMRYTvcN|V0{px^J?`DP>2~A#)hkzTdfb2UF)}5$ zw5ExqN6X(CsY&s%(LW--hJ}83_vZDBXMvCI`}ufz+`V<<`qfM4&z?Sc9C0KbIB@vn z<$I6bMkMBxkn}X2o{YE zT)%qdie*a{Em*jG(~cuo{er?1bIWRx{t!ppyEiYMJoNK&zkU7kg|jD)9X_ykx0Ah{ zjpf!&>({Pav24-&IcQ7&^2X?ysZfAIH|UlsMOojsUi?!K?bo$Hs*oj!JG zA4+I#zInsiRV$V*oIhu#sqy3q&Ec1dkBhM%Hy54!B!VYOx5s$~o3%`!EfXk?%>Mng?mVWb>$96*T8q99~}S`ozw zORNuG4M4RoC$*>OGV9H2RxF%1!+3(B?wHZa3M1r(43v?Q5EbGenhjAw?FkyU^-48!f2T3XdAM(0uPj z@0VW^vP%fqY?{lVpfado4H{#*+TQin!}pP?`FtqYv?{2E;tJyynD4#l_3}%67T?Hl zPz`&qw&`m76E{(!U*-7u;qf@M3aEw>N)r}a?7QgwDl9ImxVotwL4$*8gyeK*u5&tZ z`w>ahiHt^wRtD9SjOyg2R{Jk|qmud(3DHWR8j6h4pS5A${4LIB?gf5`N@H5p%j1clAkI)N)0NwgT=NSGPw0De zcp|g{sD@I?MhmvOoW1un^k;fOWdmcDqO?3Z%`i-7+Ugz0-0r`PNJ3yRPb>hiFeOgl9t>)PN9fPlxcjX8vroi)_&V;!nUoI#HI$U<Z2rLJrdp zadAGKOl^v@27(&)AkArOP_sj#P%p$hI;gNtl2NKGYPrI=`CD;M6rcUO!tZBo4L*Y@c>!Msc`FB8nmh`&qVFBAC71pYFCzYMtu1^zODzf9mS6Zp&i z*Za%F={n>OZEL9bmGtek_r*P17Z{EdQ3UvRX|k*B0ZAn&K*mL)@yEe?$ z874#m7`Ez+pC2FJK5mc7W}^V62!>qy{`JE)%Mk0f66O#`bl|P^<#|cruYE4=Ghb*V zF9w+qlvi_2NmlIV=k8~AZJ4bmC!`ES_<2%3|1*x^EI_#h$EmWuoo#D;!s$I7XivJ?tI)aqC-j4OAa#iH?w zVo(jRm^xz*cUpAF<2xsv*3Hx%#u*J*{4}+tIf>z@0@ll>s7X_!0mXQFQJTW^pP^6P z&p2mktL}NaXtqveR5q5rmdggx4Wy=C1MR5uRF|}){E6Yv( z9(@1Cu^p?YYY*XQfGV2DV;ts%8L^+9dtTVHbD^-CP~k&d`+;9)o`G>1=DLD$Iz%MOZAJ zs3Jv;0X4|^-Hhn%BS-CfEH?J-|4UPTIOfjShs1}^~kUq8BI^)&6F z9BojC79uJN(xX2ntv^x(>Vn3m zYUHJV<#Tzz6@EK@=K*mR~86?;qWA-LcwKQ<^v4bN^-NkHkM%+JEzH zFpMNIU*85w3?DOj{yM}s?)Uspa(0HQr9UG{?6-H6xSYoLxod3pp1$Gz^!+zX;N8ba z(yz%4)uo7$1VE9YYDTkGTJ1i5)iV$?k`PXBe5rU}0zyfW2mln4RWg{q%p8%gGi=-a z`Nx?icl6ORQJ@&I2Po*8EZ$7$zatYf3lRNxKT47geC7$!>##u?B{@o)PYM1agz%HM z5P}iJH`B>KA;ke@n7@188k>EHC;UC1fSxd`qsU!^jYJ3(LlK5qefNoLm^}P%!R=-u z3xi@zDL!Ml#m-}w_`ECl{_x+p_F$qG5l{>{G75TAmuzx4j2TycBxd&K-DmW{>**E) zC2Xltn0|ae17$oSm#OFT>?7!T++J}|hPlt@t+CyE`noqms$cvYLDVLi%W%r8ji0sB za`y?$pZ~LuQIXFiBMFMp!(}jyfr_xlFt?x+bEbJx7#>AklO-6QfL8>bexy1BKnW!| zQp*^#-rr;>&_SZZyuYGQDWuIM2 z(Stxa; zP=*>aao$?H{b${LpOZ%gG5uqeQM3ZSd0_PT*{iMhoVtz}C;#jXAgu_BpfFOqnWf9| zYs@_i3?mU?7^0Psfy*kR#-IxanA;Zk&jQ-zsRBwVX$4)=#hV=tBc}bn=bK@kQbl(r z3`ch+>^OM#j|&G7V~`pshoW+t6Xve9-FF&2!QW!j&^-|R3kRUkQ1$V1R#}tIiRiJF zxp06pP}y+Ca`RosE+OOY>w3|J0~{Gey{W{ciR!BV=E4EL=OGaceG$5FKoY5P&9=Q* zQQ@&^xh3er0T#M&fb@=JK+pm8l*nLo;ea{Q>wk($&O#Rs2+1nyODfR2NYn>S zY{?P0^WJ~vChEM=g#)O2p0nC!&nfh9;|m7{tB#v#X5ozP!N3;|$S9%_1$D1Rp#Aq< z75Ksda{I&t(8<430$n)3Tp2ML^x&%@rhr~_1%xr+vLr{D03Icd$5c2?FcSXmNBagg zOxq_I3I8(95sZZVj;wF^kQI!Cf{{=#5~874FcPARss!(Z3{9oroe*8jh9(q(cS1rp zD|jaqyb}uE3ICsXC+ys@VZjuw;fSiahLTjCu-M`NpJsqL1CGvpR*_9Q=|4XP-aX}X z*kQ|JQ(XmVij7bEBF=%Ee{f%5271m4U(#P*Q5f%WcrH)P7_OC{+^PELQO= z<;UCmH;&qwJ@vVMYR|Scb1>H?d#LWL^*c}Bd)kj`L6S}&M_)^_;?ZuGJzE!ic4_FQ;KK+ z2*p4mV}N+g^YQ_!MdOvkA-QoNH#Ii={maJ>A3b~fgcZ_7QD#i&Q?!3_ zmd+41_)WqS|Ks!f;I|=PqLXtDv}WJd9cg!Gm~S!hlhWUPRuN* zsBgi0+$HFEY=J}7+0xEh#Q8J{kG_8X58o@qTuJwiDhuzGLN7 zbr}i(Uf*2^l_mK(nHibc=(1V#1T!kc+d|RP_$|oq@_x%jM)JZGzW<<-c+;!Piwg@1 zib@e(J0|Lo;BP~$Db7NMaoTC!46Q*d3g3xPg;Js0DXJ^W%PXtvkWUVI15pL>7R82& z{M5+z4{jW_SvE;U0#bM*Vhz)_=7zf3+Pa1&G+W@3>Y>exb!9n;Utf7&*t2D>-Y^ae z?|1A(_kDD>x3*AC-7T%i3yZGK#T!QvOc^mB1Mi%0SY@gyL$Sy`3eCOUUHEe1_727q ziYkTL-`Y^|E9HA|z_o+hmP}9(VdGmB(44Kii|T}3-OP+0;Ys#|=EQ$_>2=O|;~c%A zEH=Jj0iwH@d#LW-o?he*CN;sU%F!PY9A?Jq(vS^A@oi`9UdV;$9_GFp)K~mU{{F`A z>H*6|Mx#VHK#XSb*jyIoeCWR!^{n%TS-L}593Vl9@T8gcGNpt(zIAN7nTe_d2IN4^WVdeCaoIC)VKK=G95dLFmCqp7Me^?Q)dh20xx=?>+H;2RPY`VtkS zM!fbqvvZB9`T$CV+>3y2vu?mUi3?J`zxF)suyTr$I27UEhA;}VA9Qy#R~M%Jc;kJ} zY1I@J2`JKc2f|3Ed1w=KM)W)X%X>D?)WY-yoz2+0&*P0mn(66mtt-ur4Sno(WZTlo znsQ>45a=K)6+GSuyqA^Pk{$li^Zf43i>7FeK%-|n<3dAE!Em$}7Pq}9Ju2kk&Ernw zA`dobFD$QRZaK!Ws>u%E#ILV>ul>Hxg92@t1vnz|u@9$n_}voP!s>&^MCMix0OHY= z22E|aQ$e?S=i+X;{8vikhi5+hZubD;ap}LxY6%OE9L|#2(3<=M4}E>Nd<1`uNzdnV z&G55qYpgELPKpeD+3&WGhe2Or(+eu<(X-FPG4p!6J6jv7igWM)caMMV$DR8@Ut%-) zq#{gnx;t9x(M=}!It_CB$JyKW5rIz$83j?L%P~6fYlLc7hi#`FDe8o0#o5araqRLSA`88=}HM zmRCUfS^o7PUL$m7ZrXFj|6O!Oacy%)4;R~SA-DIB>p{du87;Fraqne#a(-naY65x& z3j2*L2|qr<0b^!wIdJ`PXk1QNeJd&tMS|QCvQUlg1p(r!Q`haf;QKZzy||_s8H)l< z@k+ROX&PUz1H_c3nC&>}{_Urd`VX z8#>SedN~kNnz-2N(DjEOerA@|;(93K1z4sG!8}ti&t&FSf_Wx05f;od1@lbIP$igW z3g(%Dc_uS;70fg5T@uVQ1@lbAxG3;vGOk^LKa+7X3jCP@eCQ{c}; zltBW2X5U4@0)OWJ6@O;W`dPZeIFmuovdOAa)MU^*M}LIy6wqs;F2kAvddJC&!YP0| zW)RC5aFryWG2jj5m;jzMWddj+v>|&cpy4r5Q$Vw)0`5Q|XbgJM?blO455D7iGU#Tm zvYrGwH!U{NL048!03AEGE=AXy3&HWA{kSu_*%;kHZ3Nn`pLE%_dXCZPVTgO7)z|IJ zK0D0MEJhiEmKOoH&mP*be!t7tc(2UM4T|DBrWyv%Hl_8P_Vy=LP{qWaLxNKW9 z&)7giRY_S%N%=qdA6hPc;eY4+(VdoS7tc1GGG+4QDU<(${}p5&z&`G%7k%xqm@PulH|alpy6*i7Rs)Ao2`|V z#pccHRxe*TfBKa1IvR>YrPy#V5Y+qsvcCVz!^wj50Mr68#qo$$G03kV@>Ez;&^g_G`fXCCIA+H8-hGrz%IcWAMl|Vaz>-!rTCjQd8TY53Vls>Iay=I% z0Z@FD!R)mT$C+D>_+)RVOXp>T=fo=|_AS z46|~jPD4;dNh%u7S!eHh<9_frd>s(85o$CFgTlkLP0g$iTtxQ){k}$MG);jjmaN)@ z1sivsy!jwFA~Cz9hU~ghqbX1c#pHFTt+Y9C!Sm_IsMKF&wal$tJXM+nD%pe7CM?{% z^Z50Epf7Qmg_Xo9!c(DHpbARJ>rG!}v;W-P$L}H%vx}=5@Ww2(>4pu;Sp(H3%->*t z?26a3kCDkaB~^W=uoY=GsDPrwwWlsM-+j`}|JA4Hl)Msrm=vFTm8UtNoHannVAiT_ z`_A0D9~Aa8CAXxCoXh4?ypgmJC=(t$dcyqmI}V<|`ydD%)+|Pw$?$P}s{)$!=%dk=#?MJ8tE zmsX(-X8cHlX<<-+PT1<1E;n~NdhzaqS0BH}r{xw^)HF1=;=FKXva|@uheCr@45lsL z>UjA4ZU5&X;W5cs`6ZRL4b5%son5$84o`{}1$j^yMO?Po;ow;}@4z>of5fF`7nD}k zG&Hrgb#!(2Fcp-f#Xv5OYPw|O_I)R>+`IoGPSx|Ve zlK#|%YptD+p1^1lMPv3kDkBU#p z$jL7%!%0w$a7(dHXj%#+Lbk+ERlO;5%r@J(96jsi?*AkxBk)-PB z<;s8*REo0pgc*z1m~VGEa^}h%ulrA5zYG2P<7a$QYDR8eVF|y29i3f013?XdVi(D30_n6`k=@=Pp}kVY_Sp z(bJc%-}dmm|M=<4pm!g`BBJAx7*OOu4&+D{oI8Kf(iJP$Y&5rZK6K`q z2RcSgam1tt4_8#t)YdmNnl#14bo$&StIh2XoJQxNDVC6!)WD&`jMf>6vgUh3lCD!pEd>bqVwIxfJ;dXHvv2- ziYLabuYyrRFiHqU3Bf2K7$pRwgkY42OclIK5NaC1yM*9fLhvq8E_j#t58fr}8f(gn za?;|ye-3^Y;C=hb`O~LQQm*jCzxu0bYp$;@E6hoYkNW!I&GSe8-k$gF-e%pQ|LGrf zr>3i;wW+?ktSC1lDK;|v)B88CUOam`=1Da=et|+NO7e3uQW9dKBEr9feb)ShJYU^i z9j(m`wN>TC1$o&SsmX~6adEM+ajaPSAO2CXkXOwlZEI<2sI9InLpRFj<>ut5XVWyr ztLOIi_H=c2w6!!h*4NckRh5@hrP(E=B_*Z*`hOHYW!8Xd*4feC*4o_E*ic_zS2wzr zO|y8A3wv98y1P(Vds|y;>*y9?n#H5Iuow1F-Bj1;PBEIzV{zHNqkE)i5uQ4C5Iu%B znAYSSW2w=@c}lbhZxC0B=I}UNnO+5&jnh&+tZu0;$Qwn9=;*G$y zg1ycBYPB>sH8nPhHNajJEQf;&aiwvc8|vz6YN{%$Dk>`~D$)P2UxwlhqbYo1u)7QE zuCAu4qO7E-upmEQ=vNox=iySkAvE<{!;SUTm1V^Rc{!QsX{jlkGb;)#8ZHaEN;Bd=Rl zVOdQhGh9=cxPl)aomEYY{Pg;v$F-CDc5FFx{?=~_Mn1t^f99;3vVzRS$k100?p-{( z%VOK!6W6`@+W2 z&LrG+409nqlZecyojJ`_S6Q6P0%dkzWHu=K3lkn<&qNrb%o!U( zCv|aqIiR>dLEhgZp2QcAV|)=WCqtaK$^P*9JD5KZQ=+!^(+osCXh*9EDCr~A_tr!MLdsvG^h+A<*$A`k0>IS+uJRMXekG)j>9yX*SruzY-)ccASE-LoCpkt z1M!N-<2QZ2?cc4ZxssrSEv=wyvSf?nkxTa;y#5^hCqX63ObV1x5{TY(M36 z#SE>?P$3vj|1Kx2U^qqO;)3B+Fq{hBP6cnLT%O?V6ur(0-cJAEctOOS1(^UbJF$T9w$4C^{W=nn5d^de1H&?1=3Hbz_Q1W9^Ci$^}2V*?ee)3hh6Ng zH<&Fj9Y02KkO(CMq(8w>__6H6`*;6edsiM-)7ti*wf3%dyIGnC4ML$r0}W(MA)zBG zLrHOD3K1fN63RSALUN2n6iTO3B9W2?&Eww9gOY0R@4BD0cRJ_%^?ld-{_(!wa$T-s z-TPVhde*b{x}W?0-M`<{xJUQz-j2L-F6_v@otr#e7tOX9udBpn$Rggaj4ty%@vb`S zZDvM#YD!XKeC+)@krz(|@89veyOW*OgprDp3>hR@#4IGfRu_E9|D2nXot2*Y>UnHT z)WxvFySI8e&zm-Jq>>~<8nyf*n_Ep*5f!y%rQZr63;8A`;ql$;=Z@{)?(MQ*nz61T zo0LLwO++KXt>!d9-m|o%;B$6H^7DtcE}uBK!`pS9wUO3v79ojbJDDBTkoawGY^bd) zE6mGIe-#&VH9Tm$w~M{iSPeN5NhI@w*YktXLv+`C@9OMmYv$Hhm45x0`TFVIh*Jl* zc`day(^HWmCD8Cb@+Z+-`=jT3S9=R&$go~6XcTn^p4(QTfkzPc2Hjg)wdfjUgvhWVKC-z7h}b^gds@84!m(oqm4#E}}0 z7-+yLowmlB(!95?9z~uC+_K8S%0N|u6i2E!L(B!{p*C)HaqgSvcQ1$dd;d1ec!ZpY zI0Bw8%s~2c|IK z7o%if8$on6?#8Ko8=PlP)Rtkekd{!u7E{+H#GDV>y3)=}PoBv_z-5M2ZySNT=E2ot zJ3SX#>MM${kdA;ctfj8x?H%=9VP~qv9{m5V=GtPQ5DM9`dY+kd1Pe*w>~$;VD5K<){X7=nBjN+1_^Z6N|L6C%`qJFgxX93* zYaAwPvssAU&lq6vWGRNV@2w4Gxv5VgPwetoU=BX8dWoMzAJI5F7o(J_jx87EEW=JCEL2&I{{w^KtYlx z^-JVBH#H7KuI(nOi?I+F*8&>qIh@Ak){f5ZAJlI4mpNQqM9B7)wi8rDScq9ll(m;v z0z$C06SH&kgtnm9oRb1fey+0(m6$9flH2w9jG!NETwm5^=3h6Oz*2 z1!*Ab_)7S66%*-pRZ>2EOzw9gWGoRl+wR_FHiE5(ah~u%^&2@!`kKf^Q zx8u`44RVW8Qsh6o+c@QU8Syty?sA_yL5V4jI7=PuX3ueO{e2I`8Y{$L4@#FelzmQr z5*g~Za`yP)q&VU_&9ye2WWB(BN66JjDLF!W$svm%E$&*#HrJU3a)dbIu6CSZGTy}2 z&G+a(%=_?-{q*PKh~O>DY(`6i`BwKu)6Fex-F$;19;JK)IyYz!#TSct@oGzQQXXD8 zvU#cXNJ%#025$3QVmrrS)%K8UkN^Dit)8M!6PkB6*B0lzesC#hqmz{mn~k`qg8aN) zoR+WkJ9aHLHMdj%ME_-8Q~V+6{)K}ZmRM-9*ob@M>{0)XYdtsaIT0C`mW%Nr{e#Z* zbT-u#Wheb{K5+fw$s@$ri2LZ~g<}DJzJ3Qz-F%Y%`Jd+Sy>R#Ze(#0mnqZz38-4l2 z;lKmOE=0$t=K&1=*XURY9F*SA?e}&t)evPPF7TvAoIQEs^wqlw8F}R#V3QL%Gq}#q z1b8`^s)ISMi9|(QzIyA?%d9WuzzEk*ElXfvgk_nP7=3#0+65+RU|w4AA?-!%A9tef zKYjhapz@#Q1z8Evr}qfWahWOUd0gz%muVjgs|4(Pf;HI#yq<3pqEGGdoIeSV-dI;r znENg*`BhSCR&H_iU(JCA^vm0X+o$%dnMavJ187NpPF6-nRt|6;0(ySXcWj>d{C4t$Dc^Bbq`jG2Ut3*M$AJRNU(GAPneg2n_7hb_ z*@zfu0(QNQ)+R28!)B1-`aD@BxveGm6{7nt*!a22bwy|tyerL_a1*dgW}Fz;}w z9`?p6qHIKhbUm(@cC@!+WWA8$Rj>vM-X_32+8e8gu(1Gq3lwUgs@o+XU;Q;Pz`B{0 z7=3Dwz?=>Op}tQCfxxjz2Z3}D*bMBDI9jBGKspGdgFre6q=P^@2&6NCbS99_1k#y6 z3=O6;fpjL2&II;Q6#_aFNM{27J2HVZ;|}_l&Vd}NB}5fRn#^`uyA7k-Q~s((DZ?Lz zst6HzZIH0v8hGML%#-9S3eMjpXxWhF%Y%vR2&1VBS8Wamy>vVFRpzI^ARnao!%-E% zkkK4(HQ&u=ckua}pm`5kWvxO`r6gYw)sj-`05M#*>&O}0lu$qc@j=*#vyd4HTS~j&2I&&*W=>uPS3E+d6yg2s(BB9{4)6U4X&YL{)^?@R267mUwOt9Mnm! z$MR^nF@)rgKox|@FdbtXNB1rJPF%Vjmz4Rb5Em8&4G(<2HmYLCXcAJ@C>O&nUkA zLN9?#L~OYBL>tG|TlR-uhRMW@40tj}p?X3D=s*^%*hI}E@bggjd^Bnx7}DxvE$m%3 z44FZ0Ye%;};*t_7qhaR!{xWk0s1Z-t%q5=Ns0pJQOU9xmn579ei`=)s9gV}?6m{cK z3qxjv;nW2yeD)j@Hj5adR#H;cz{1YucmJb;h6y9o_V*5u38LQIJONOfkfr@gT?`mt>;(+vQz27tt7>P!GGxqWKyT2N{w zK;2cKv)fo*l%4$G^5M5Jvj(boe!ta3Sa*CqIk`-Q~H+ zT38vcC|H>f5}XMGpw{X)s-QUusd3t4`Q4>oh@~xpVFV+1kC9SBXw~C zLTYN20`{~DYr)lE&Ee2pYaK216_`Vi=34xULH$I~rat1k!p=-fYH0s6pj#^icQQZY zdGy&pALp5ds$WV$30lzTCa}TsLb+*iH%{*Ha(eEcee&=2r< zBfy5bKY1C?Zk-PB`diPl;AG|SEMdVD5GD>1balh_OL%F33ogfQgZz2ijpN%6hC!H* zcfTzif(g*zmxAziPe)TNsP0}9?116&D)F`xuL^-xcY9L}NR>OR+)VX!VXghnW~`i(xw>+-eHoXjsa4a5Th}*PS>6s8V5T{3`QPQDp<3w4rA0 z2r*Fal2O6!`281V;0 zAeAv3Hp_Tpe>*lQEAQK&h%tC2ifRdwVOrFdFy#Er$1gKK54GU)#8554lu;jxlMsi` z-gx*T7Pof0p0;)EAypM zJwsB>U&eig!};>40XRLUEm*bX!0DS$QbBTA@KJgGaMVCb zs*bg^ciRjc!++)!RdWUU(!=-)sDThy(Kny#vT^^ZsMwU8qAG41B|a_3S40g2&|=sw z+Yo?BlnbeY{XCv5UkNo}3XEAx*9C+{#=g$}TFGgpz9(e(%5V@E7M#}YIdT0_GKfVB z4odS?P(4sv7*1R43D&T7wC9_ju$9-K{{R#Mjv#%K*tMoygbJbj96&5iW{W!LLrLB>w7^r?mglt4XQDa_ zR6l_bVA~42Nt%+N`k9^lFyh#b)%K=3(xCcTnEm?kwc|TI7EIBTV@^cvRfQj3$3}+j z_H?uwJzSKSfZ8Y)gs8B+-cHjDlv#ukYHe?$b+l1Nkh~EY0#37>Cd9i z9on>fwy~xpIUY6lc6T(@e#^~Bh`D%ptJ_?Y5i;aB)YRYG)6ra4ng_%SN4Kw@Z$46% zITiuuLQiK)ec6|{FCSbD1(!z2F$@qFr(!!>8!8IkzkYQ6`QBLa9TW1e$TsG54MU)tYNH_)?+V;kpl27U2 z*%r6ClSW7}^biB{LiABy=Vd0|yAra)!@**df+(qrm=vW1_+DT3CF|A0YbSSmFR?My zkYWpedt-G;Zbst$E1|pBEuCqirzFYHK;rl?cB`%|KP&lh$h2xMk#IsK6cDgQ2!?O01)7h?QD+bNdN|q` zY0HZc@<@(4E*w55HU7?}VE=VXXPb;tW;2E%dBNv`9fH81W*oY=R~)!t&9hO7u7 zi-0J3$oN^wu{X~g^7U9WeUhHC1Sx~)2aJBe=m!kbF5~Bye!%EA82twOk9vdsi=p5D z-^bHH4J1oJ&wSphZAUNvks#1c#no1Ez9y6><#kN$+_nT=yz~4`ZV6Ds;Dao_7UD3a zM@*dKviZ=t=x1rT)cU;_N|$1MZNwoZ)s1E@+lWgxMo*q#KTuvU&;mx zmn44_s%OaQO5j3MQ2{uuC7bK-25%|Yky zKq(sPx){-*kGKR|-EfApPvDu`Q1PweQuqWwV6&7Bra7(qbpcR61q8O(@G;hoUb|0T zf0X?0OF2dZfM%o!i0r3#gsl6K@*fKh1^I_WWCT8FYIY2ulN0`iY-E#PR^s}^_ zqACtRu-O_DXD#1&@XW2alck zpzorJV=Ns!b_8FDd1i{b8N+nV?N@9$c;==V>S0K0O`Pq#VPCj8`aw#lkGEO8b{8P9 z#gz0d9aaGXTTaK+77*By8b(%VfMBZt0$U6#Sh7;+zvg1n2W)?);rsp8)(Xj5K>5q+TQlU?iyGwVf!1f$!)&%1RVu7DT$Q%1PHFf?j5$* zSxK=`XAb$USu)FfjJhj7s_l_JHErtk{do9fF8vQsD; z&!uzB_0?qCI}UgpaO5hwTgxY=76sL3!Hh`^{wVgMM_I&gC2)x+yy0Y0vFQ}mT3ND^0P zfSI!z(kGoQ_2pl(k{(_^8L+`+uK8$X0B{1zin0)q_(AzPNWeWarw&Hijc)7!<@42C1YnRn2v!pEI7vTsY#pa)G73iZ~&BpKJ50 z!J@mPsiyd2>XWF``+b(%n(7T>2rzV{0C@>$L2lL8cgYW~9^18c$<*;05~a0+fWkop zC!kd`o=2ZMxOs)0*+}`^l4`CHCn&J#>1?hk&UyVP;`lDF#Z$+tr{)v_tdC-J8^JHb z-n4Vd^E01EpF6P0#nyCW?CbYm$}oBnV;nWX2q-TBbNcXVh~FAVD}!qfUS{Tgs}TeT z0C5CRCGeP*eNKBC6~5QoX~u*QN?pDZ$nS9cgyE8XKY-)yZNi;%2R6FQnY8uL*;{cb z@4pD(f&Bv*uUFdN+tmWZhxc)MaLV!x`@*k31Rdep#x?=|RFzNgzV-j?Zmll`gl6c@ zH4CRsU*fgv*yXzk>7R;)qV_zVD!-UF@Uy#}Q-&!<{k;}X)3;c#YFp5`+fP!m3o7a{ z>T`g{Q{fl#2Ksv1Ipv?zpGJl4UH9Ac;ku@_E-4@2&a*^hMogIQb)0ls9QndTNU{QVB5hh&jVaf^rHXi(5QdnD17IeocN9c`{(bvN>jAsE!2a zBcNnM>XIr->~=i)q9C= zJ{48gH-QY>&%S(v| zpa1cL(aQzZzP6^i@~=7R&+lCe3*55Gahj11AVNikX&FshxOz)q__g~9soD9(6}6nE z*7lB0Mi&=^78H(MN`)s{Z7;&g*s_J`;KG+3SoCpTCxr zRaRBk)KpcKe=E%Ukoo%Ay~uOHdp53IG}C01nzRh!l5FMCrn8r<@eMqF@z#T9N$FWR zx%mZTA?IsB-pB0Bl*HJWYiEM@ZeIP{oXG|w;^Q8~L|r)(8o1NP-D$3+k*=~7b2w^d$Y_i)o3+Tzd;7ki6X!2qzj-HyyxVx^ z){Te@r$P_;Z(YB_(bj5$u8OP(p@6=U5-PgJR(4BPuHU*V@JMLbnRDkaTsU_+Ec9@o zzwhtv&JHuD80xCXLYBLTU=15#U}7`xH@CGuzJ7ZH4;%^#I=FwY|MrdR++7^)Y)r;# zD@%(KDyW2D$|&oMH@C5ObYAJU>p^Ed{;RSc`