From 7618946759888ab7cf1d39f5a724876efcfc3035 Mon Sep 17 00:00:00 2001 From: VoxelTek <53562267+VoxelTek@users.noreply.github.com> Date: Sat, 6 May 2023 13:50:49 +1000 Subject: [PATCH] Moved files and folders around, added Raylib Linux Relocated files and folders, so that the Linux directory more closely matches that of the Windows directory. Additionally modified the source code for the Raylib version to allow it to compile on Linux, which it fails to in a way that I'd also expect to happen on Windows, but I can't test that. At the very least, the code has now been fixed to compile and function on Linux. --- linux/raylib/Makefile | 408 ++++++++++++++++++++ linux/raylib/Terri-Fried | Bin 0 -> 26760 bytes linux/raylib/main.cpp | 362 +++++++++++++++++ linux/raylib/platform.cpp | 78 ++++ linux/raylib/platform.h | 27 ++ linux/raylib/player.cpp | 94 +++++ linux/raylib/player.h | 30 ++ linux/{ => raylib}/resources/click.wav | Bin linux/{ => raylib}/resources/coin.png | Bin linux/{ => raylib}/resources/coin.wav | Bin linux/{ => raylib}/resources/die.wav | Bin linux/{ => raylib}/resources/egg.png | Bin linux/{ => raylib}/resources/font.otf | Bin linux/{ => raylib}/resources/launch.wav | Bin linux/{ => raylib}/resources/lava.png | Bin linux/{ => raylib}/resources/logo.png | Bin linux/{ => raylib}/resources/platform.png | Bin linux/{ => raylib}/resources/scorebox.png | Bin linux/{ => raylib}/resources/select.wav | Bin linux/{ => raylib}/resources/splash.wav | Bin linux/{ => raylib}/resources/splash_egg.png | Bin linux/raylib/storage.data | Bin 0 -> 4 bytes linux/{ => sdl2}/Makefile | 0 linux/{ => sdl2}/main.cpp | 0 linux/{ => sdl2}/platform.cpp | 0 linux/{ => sdl2}/platform.h | 0 linux/{ => sdl2}/player.cpp | 0 linux/{ => sdl2}/player.h | 0 linux/sdl2/resources/click.wav | Bin 0 -> 29196 bytes linux/sdl2/resources/coin.png | Bin 0 -> 908 bytes linux/sdl2/resources/coin.wav | Bin 0 -> 31756 bytes linux/sdl2/resources/die.wav | Bin 0 -> 26062 bytes linux/sdl2/resources/egg.png | Bin 0 -> 1033 bytes linux/sdl2/resources/font.otf | Bin 0 -> 42704 bytes linux/sdl2/resources/launch.wav | Bin 0 -> 15126 bytes linux/sdl2/resources/lava.png | Bin 0 -> 14627 bytes linux/sdl2/resources/logo.png | Bin 0 -> 19476 bytes linux/sdl2/resources/platform.png | Bin 0 -> 846 bytes linux/sdl2/resources/scorebox.png | Bin 0 -> 637 bytes linux/sdl2/resources/select.wav | Bin 0 -> 4846 bytes linux/sdl2/resources/splash.wav | Bin 0 -> 25068 bytes linux/sdl2/resources/splash_egg.png | Bin 0 -> 1335 bytes linux/{ => sdl2}/winres/TF-icon.ico | Bin linux/{ => sdl2}/winres/TF-icon.rc | 0 linux/{ => sdl2}/winres/TF-icon.res | Bin 45 files changed, 999 insertions(+) create mode 100644 linux/raylib/Makefile create mode 100755 linux/raylib/Terri-Fried create mode 100644 linux/raylib/main.cpp create mode 100644 linux/raylib/platform.cpp create mode 100644 linux/raylib/platform.h create mode 100644 linux/raylib/player.cpp create mode 100644 linux/raylib/player.h rename linux/{ => raylib}/resources/click.wav (100%) rename linux/{ => raylib}/resources/coin.png (100%) rename linux/{ => raylib}/resources/coin.wav (100%) rename linux/{ => raylib}/resources/die.wav (100%) rename linux/{ => raylib}/resources/egg.png (100%) rename linux/{ => raylib}/resources/font.otf (100%) rename linux/{ => raylib}/resources/launch.wav (100%) rename linux/{ => raylib}/resources/lava.png (100%) rename linux/{ => raylib}/resources/logo.png (100%) rename linux/{ => raylib}/resources/platform.png (100%) rename linux/{ => raylib}/resources/scorebox.png (100%) rename linux/{ => raylib}/resources/select.wav (100%) rename linux/{ => raylib}/resources/splash.wav (100%) rename linux/{ => raylib}/resources/splash_egg.png (100%) create mode 100644 linux/raylib/storage.data rename linux/{ => sdl2}/Makefile (100%) rename linux/{ => sdl2}/main.cpp (100%) rename linux/{ => sdl2}/platform.cpp (100%) rename linux/{ => sdl2}/platform.h (100%) rename linux/{ => sdl2}/player.cpp (100%) rename linux/{ => sdl2}/player.h (100%) create mode 100644 linux/sdl2/resources/click.wav create mode 100644 linux/sdl2/resources/coin.png create mode 100644 linux/sdl2/resources/coin.wav create mode 100644 linux/sdl2/resources/die.wav create mode 100644 linux/sdl2/resources/egg.png create mode 100644 linux/sdl2/resources/font.otf create mode 100644 linux/sdl2/resources/launch.wav create mode 100644 linux/sdl2/resources/lava.png create mode 100644 linux/sdl2/resources/logo.png create mode 100644 linux/sdl2/resources/platform.png create mode 100644 linux/sdl2/resources/scorebox.png create mode 100644 linux/sdl2/resources/select.wav create mode 100644 linux/sdl2/resources/splash.wav create mode 100644 linux/sdl2/resources/splash_egg.png rename linux/{ => sdl2}/winres/TF-icon.ico (100%) rename linux/{ => sdl2}/winres/TF-icon.rc (100%) rename linux/{ => sdl2}/winres/TF-icon.res (100%) diff --git a/linux/raylib/Makefile b/linux/raylib/Makefile new file mode 100644 index 0000000..3b746c6 --- /dev/null +++ b/linux/raylib/Makefile @@ -0,0 +1,408 @@ +#************************************************************************************************** +# +# raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 +# +# Copyright (c) 2013-2020 Ramon Santamaria (@raysan5) +# +# This software is provided "as-is", without any express or implied warranty. In no event +# will the authors be held liable for any damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, including commercial +# applications, and to alter it and redistribute it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim that you +# wrote the original software. If you use this software in a product, an acknowledgment +# in the product documentation would be appreciated but is not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be misrepresented +# as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution. +# +#************************************************************************************************** + +.PHONY: all clean + +# Define required raylib variables +PROJECT_NAME ?= Terri-Fried +RAYLIB_VERSION ?= 3.0.0 +RAYLIB_API_VERSION ?= 3 +RAYLIB_PATH ?= ../.. + +# Define default options + +# One of PLATFORM_DESKTOP, PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB +PLATFORM ?= PLATFORM_DESKTOP + +# Locations of your newly installed library and associated headers. See ../src/Makefile +# On Linux, if you have installed raylib but cannot compile the examples, check that +# the *_INSTALL_PATH values here are the same as those in src/Makefile or point to known locations. +# To enable system-wide compile-time and runtime linking to libraylib.so, run ../src/$ sudo make install RAYLIB_LIBTYPE_SHARED. +# To enable compile-time linking to a special version of libraylib.so, change these variables here. +# To enable runtime linking to a special version of libraylib.so, see EXAMPLE_RUNTIME_PATH below. +# If there is a libraylib in both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, at runtime, +# the library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over the one at RAYLIB_INSTALL_PATH. +# RAYLIB_INSTALL_PATH should be the desired full path to libraylib. No relative paths. +DESTDIR ?= /usr/local +RAYLIB_INSTALL_PATH ?= $(DESTDIR)/lib +# RAYLIB_H_INSTALL_PATH locates the installed raylib header and associated source files. +RAYLIB_H_INSTALL_PATH ?= $(DESTDIR)/include + +# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll) +RAYLIB_LIBTYPE ?= STATIC + +# Build mode for project: DEBUG or RELEASE +BUILD_MODE ?= RELEASE + +# Use external GLFW library instead of rglfw module +# TODO: Review usage on Linux. Target version of choice. Switch on -lglfw or -lglfw3 +USE_EXTERNAL_GLFW ?= FALSE + +# Use Wayland display server protocol on Linux desktop +# by default it uses X11 windowing system +USE_WAYLAND_DISPLAY ?= FALSE + +# Determine PLATFORM_OS in case PLATFORM_DESKTOP selected +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + # No uname.exe on MinGW!, but OS=Windows_NT on Windows! + # ifeq ($(UNAME),Msys) -> Windows + ifeq ($(OS),Windows_NT) + PLATFORM_OS=WINDOWS + else + UNAMEOS=$(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS=LINUX + endif + ifeq ($(UNAMEOS),FreeBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),OpenBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),NetBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),DragonFly) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),Darwin) + PLATFORM_OS=OSX + endif + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + UNAMEOS=$(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS=LINUX + endif +endif + +# RAYLIB_PATH adjustment for different platforms. +# If using GNU make, we can get the full path to the top of the tree. Windows? BSD? +# Required for ldconfig or other tools that do not perform path expansion. +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),LINUX) + RAYLIB_PREFIX ?= .. + RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX)) + endif +endif +# Default path for raylib on Raspberry Pi, if installed in different path, update it! +# This is not currently used by src/Makefile. Not sure of its origin or usage. Refer to wiki. +# TODO: update install: target in src/Makefile for RPI, consider relation to LINUX. +ifeq ($(PLATFORM),PLATFORM_RPI) + RAYLIB_PATH ?= /home/pi/raylib +endif + +ifeq ($(PLATFORM),PLATFORM_WEB) + # Emscripten required variables + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/fastcomp/emscripten + CLANG_PATH = $(EMSDK_PATH)/fastcomp/bin + PYTHON_PATH = $(EMSDK_PATH)/python/3.7.4_64bit + NODE_PATH = $(EMSDK_PATH)/node/12.9.1_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) +endif + +# Define raylib release directory for compiled library. +# RAYLIB_RELEASE_PATH points to provided binaries or your freshly built version +RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src + +# EXAMPLE_RUNTIME_PATH embeds a custom runtime location of libraylib.so or other desired libraries +# into each example binary compiled with RAYLIB_LIBTYPE=SHARED. It defaults to RAYLIB_RELEASE_PATH +# so that these examples link at runtime with your version of libraylib.so in ../release/libs/linux +# without formal installation from ../src/Makefile. It aids portability and is useful if you have +# multiple versions of raylib, have raylib installed to a non-standard location, or want to +# bundle libraylib.so with your game. Change it to your liking. +# NOTE: If, at runtime, there is a libraylib.so at both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, +# The library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over RAYLIB_INSTALL_PATH, +# Implemented for LINUX below with CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH) +# To see the result, run readelf -d core/core_basic_window; looking at the RPATH or RUNPATH attribute. +# To see which libraries a built example is linking to, ldd core/core_basic_window; +# Look for libraylib.so.1 => $(RAYLIB_INSTALL_PATH)/libraylib.so.1 or similar listing. +EXAMPLE_RUNTIME_PATH ?= $(RAYLIB_RELEASE_PATH) + +# Define default C compiler: gcc +# NOTE: define g++ compiler if using C++ +CC = g++ + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),OSX) + # OSX default compiler + CC = clang + endif + ifeq ($(PLATFORM_OS),BSD) + # FreeBSD, OpenBSD, NetBSD, DragonFly default compiler + CC = clang + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + ifeq ($(USE_RPI_CROSS_COMPILER),TRUE) + # Define RPI cross-compiler + #CC = armv6j-hardfloat-linux-gnueabi-gcc + CC = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-gcc + endif +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # HTML5 emscripten compiler + # WARNING: To compile to HTML5, code must be redesigned + # to use emscripten.h and emscripten_set_main_loop() + CC = emcc +endif + +# Define default make program: Mingw32-make +MAKE = mingw32-make + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),LINUX) + MAKE = make + endif +endif + +# Define compiler flags: +# -O1 defines optimization level +# -g include debug information on compilation +# -s strip unnecessary data from build +# -Wall turns on most, but not all, compiler warnings +# -std=c99 defines C language mode (standard C from 1999 revision) +# -std=gnu99 defines C language mode (GNU C from 1999 revision) +# -Wno-missing-braces ignore invalid warning (GCC bug 53119) +# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec +CFLAGS += -Wall -Wno-missing-braces + +ifeq ($(BUILD_MODE),DEBUG) + CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif +endif + +# Additional flags for compiler (if desired) +#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),LINUX) + ifeq ($(RAYLIB_LIBTYPE),STATIC) + CFLAGS += -D_DEFAULT_SOURCE + endif + ifeq ($(RAYLIB_LIBTYPE),SHARED) + # Explicitly enable runtime link to libraylib.so + CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH) + endif + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + CFLAGS += -std=gnu99 +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # -Os # size optimization + # -O2 # optimization level 2, if used, also set --memory-init-file 0 + # -s USE_GLFW=3 # Use glfw3 library (context/input management) + # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! + # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) + # -s USE_PTHREADS=1 # multithreading support + # -s WASM=0 # disable Web Assembly, emitted by default + # -s EMTERPRETIFY=1 # enable emscripten code interpreter (very slow) + # -s EMTERPRETIFY_ASYNC=1 # support synchronous loops by emterpreter + # -s FORCE_FILESYSTEM=1 # force filesystem to load/save files data + # -s ASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # --profiling # include information for code profiling + # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) + # --preload-file resources # specify a resources folder for data compilation + CFLAGS += -s USE_GLFW=3 -s TOTAL_MEMORY=16777216 + #-s + #EMTERPRETIFY=1 -s EMTERPRETIFY_ASYNC=1 + + # NOTE: Simple raylib examples are compiled to be interpreter by emterpreter, that way, + # we can compile same code for ALL platforms with no change required, but, working on bigger + # projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw + # logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference. + + # Define a custom shell .html and output extension + CFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html + EXT = .html +endif + +# Define include paths for required headers +# NOTE: Several external required libraries (stb and others) +INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external + +# Define additional directories containing required header files +ifeq ($(PLATFORM),PLATFORM_RPI) + # RPI required libraries + INCLUDE_PATHS += -I/opt/vc/include + INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux + INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads +endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),BSD) + # Consider -L$(RAYLIB_H_INSTALL_PATH) + INCLUDE_PATHS += -I/usr/local/include + endif + ifeq ($(PLATFORM_OS),LINUX) + # Reset everything. + # Precedence: immediately local, installed version, raysan5 provided libs -I$(RAYLIB_H_INSTALL_PATH) -I$(RAYLIB_PATH)/release/include + INCLUDE_PATHS = -I$(RAYLIB_H_INSTALL_PATH) -isystem. -isystem$(RAYLIB_PATH)/src -isystem$(RAYLIB_PATH)/release/include -isystem$(RAYLIB_PATH)/src/external + endif +endif + +# Define library paths containing required libs. +LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif + ifeq ($(PLATFORM_OS),BSD) + # Consider -L$(RAYLIB_INSTALL_PATH) + LDFLAGS += -L. -Lsrc -L/usr/local/lib + endif + ifeq ($(PLATFORM_OS),LINUX) + # Reset everything. + # Precedence: immediately local, installed version, raysan5 provided libs + LDFLAGS = -L. -L$(RAYLIB_INSTALL_PATH) -L$(RAYLIB_RELEASE_PATH) + endif +endif + +ifeq ($(PLATFORM),PLATFORM_RPI) + LDFLAGS += -L/opt/vc/lib +endif + +# Define any libraries required on linking +# if you want to link libraries (libname.so or libname.a), use the -lname +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + # NOTE: WinMM library required to set high-res timer resolution + LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm + # Required for physac examples + LDLIBS += -static -lpthread + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt + + # On X11 requires also below libraries + LDLIBS += -lX11 + # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them + #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + + # On Wayland windowing system, additional libraries requires + ifeq ($(USE_WAYLAND_DISPLAY),TRUE) + LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon + endif + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for OSX 10.9 desktop compiling + # NOTE: Required packages: libopenal-dev libegl1-mesa-dev + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo + endif + ifeq ($(PLATFORM_OS),BSD) + # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling + # NOTE: Required packages: mesa-libs + LDLIBS = -lraylib -lGL -lpthread -lm + + # On XWindow requires also below libraries + LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + endif + ifeq ($(USE_EXTERNAL_GLFW),TRUE) + # NOTE: It could require additional packages installed: libglfw3-dev + LDLIBS += -lglfw + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + # Libraries for Raspberry Pi compiling + # NOTE: Required packages: libasound2-dev (ALSA) + LDLIBS = -lraylib -lbrcmGLESv2 -lbrcmEGL -lpthread -lrt -lm -lbcm_host -ldl +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # Libraries for web (HTML5) compiling + LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.bc +endif + +# Define all source files required +PROJECT_SOURCE_FILES ?= main.cpp player.cpp platform.cpp + +# Define all object files from source files +OBJS = $(patsubst %.c, %.o, $(PROJECT_SOURCE_FILES)) + +# For Android platform we call a custom Makefile.Android +ifeq ($(PLATFORM),PLATFORM_ANDROID) + MAKEFILE_PARAMS = -f Makefile.Android + export PROJECT_NAME + export PROJECT_SOURCE_FILES +else + MAKEFILE_PARAMS = $(PROJECT_NAME) +endif + +# Default target entry +# NOTE: We call this Makefile target or Makefile.Android target +all: + $(MAKE) $(MAKEFILE_PARAMS) + +# Project target defined by PROJECT_NAME +$(PROJECT_NAME): $(OBJS) + $(CC) -o $(PROJECT_NAME)$(EXT) $(OBJS) $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +# Compile source files +# NOTE: This pattern will compile every module defined on $(OBJS) +%.o: %.c + $(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_PATHS) -D$(PLATFORM) + +# Clean everything +clean: +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + del *.o *.exe /s + endif + ifeq ($(PLATFORM_OS),LINUX) + find -type f -executable | xargs file -i | grep -E 'x-object|x-archive|x-sharedlib|x-executable|x-pie-executable' | rev | cut -d ':' -f 2- | rev | xargs rm -fv + endif + ifeq ($(PLATFORM_OS),OSX) + find . -type f -perm +ugo+x -delete + rm -f *.o + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + find . -type f -executable -delete + rm -fv *.o +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + del *.o *.html *.js +endif + @echo Cleaning done + diff --git a/linux/raylib/Terri-Fried b/linux/raylib/Terri-Fried new file mode 100755 index 0000000000000000000000000000000000000000..68cdf512648d1ea09106a95e7b1d25130f0b257e GIT binary patch literal 26760 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 I$-pZA4ygQ5@c;k- literal 0 HcmV?d00001 diff --git a/linux/raylib/main.cpp b/linux/raylib/main.cpp new file mode 100644 index 0000000..1fb7173 --- /dev/null +++ b/linux/raylib/main.cpp @@ -0,0 +1,362 @@ +#include "raylib.h" +#include +#include +#include +#include "player.h" +#include "platform.h" + +#define STORAGE_DATA_FILE "storage.data" + +const double pi = 3.1415926535897; + + +const int gravity = 1; + + +// NOTE: Storage positions must start with 0, directly related to file memory layout + + +// Persistent storage functions +static bool SaveStorageValue(unsigned int position, int value); +static int LoadStorageValue(unsigned int position); + + + +Platform platforms[4] = {{0}, {1}, {2}, {3}}; +Player player(platforms[0].getX() + platforms[0].getWidth()/2 - 26/2, platforms[0].getY() - player.getHeight(), 26, 32); + +int scoreInt = 0; +int highscoreInt = LoadStorageValue(0); +char score[32]; +char highscore[32]; + +bool titleScreen = true; +bool playCoinFX = false; + +void addScore(int amount) +{ + scoreInt += amount; + if (scoreInt < 10) + { + sprintf(score, "00%d", scoreInt); + } else if (scoreInt < 100) + { + sprintf(score, "0%d", scoreInt); + } else { + sprintf(score, "%d", scoreInt); + } + if (scoreInt > highscoreInt) + { + highscoreInt = scoreInt; + sprintf(highscore, "BEST: %d", highscoreInt); + } +} +void resetScore() +{ + scoreInt = 0; + sprintf(score, "00%d", scoreInt); + SaveStorageValue(0, highscoreInt); +} +void resetGame() +{ + resetScore(); + for (int i = 0; i < 4; i++) + { + platforms[i] = Platform(i); + } + player.setVelocity(0, 0); + player.setX(platforms[0].getX() + platforms[0].getWidth()/2 - 26/2); + player.setY(platforms[0].getY() - player.getHeight()); +} + + +void checkPlayerCollision() +{ + bool onPlatform = false; + for (int i = 0; i < 4; i++) + { + if (platforms[i].getHasCoin() && player.getX() + player.getWidth() - 3 > platforms[i].getCoinX() && player.getX() + 3 < platforms[i].getCoinX() + 24 && player.getY() + player.getHeight() - 3 > platforms[i].getCoinY() && player.getY() + 3 < platforms[i].getCoinY() + 24) + { + addScore(1); + platforms[i].setHasCoin(false); + playCoinFX = true; + } + if (player.getX() + 1 < platforms[i].getX() + platforms[i].getWidth() && player.getX() + player.getWidth() > platforms[i].getX() && player.getY() + player.getHeight() >= platforms[i].getY() && player.getY() < platforms[i].getY() + platforms[i].getHeight()) + { + if (player.getY() > platforms[i].getY() + platforms[i].getHeight()/2) + { + player.setVelocity(player.getVelocity().x, 5); + } + else if (player.getY() + player.getHeight() < platforms[i].getY() + platforms[i].getHeight()) + { + onPlatform = true; + player.setY(platforms[i].getY() - player.getHeight()); + player.setY(player.getY() + 1); + } + } + + } + player.setOnPlatform(onPlatform); +} + + +int main(void) +{ + srand (time(NULL)); + resetScore(); + sprintf(highscore, "BEST: %d", highscoreInt); + const int screenWidth = 800; + const int screenHeight = 450; + + int mouseDownX = 0; + int mouseDownY = 0; + double lavaY = screenHeight - 32; + double timer = 0; + double splashTimer = 0; + bool firstTime = true; + bool playedSplash = false; + bool playedSelect = false; + Image egg = LoadImage("resources/egg.png"); + InitWindow(screenWidth, screenHeight, "Terri-Fried"); + SetWindowIcon(egg); + InitAudioDevice(); + SetMasterVolume(0.3f); + + Texture2D playerSprite = LoadTexture("resources/egg.png"); + Texture2D lavaSprite = LoadTexture("resources/lava.png"); + Texture2D platformSprite = LoadTexture("resources/platform.png"); + Texture2D coinSprite = LoadTexture("resources/coin.png"); + Texture2D scoreBoxSprite = LoadTexture("resources/scorebox.png"); + Texture2D logo = LoadTexture("resources/logo.png"); + Texture2D splashEggSprite = LoadTexture("resources/splash_egg.png"); + + Sound fxLaunch = LoadSound("resources/launch.wav"); + Sound fxClick = LoadSound("resources/click.wav"); + Sound fxDeath = LoadSound("resources/die.wav"); + Sound fxCoin = LoadSound("resources/coin.wav"); + Sound fxSplash = LoadSound("resources/splash.wav"); + Sound fxSelect = LoadSound("resources/select.wav"); + Font font = LoadFontEx("resources/font.otf", 64, 0, NULL); + SetTargetFPS(60); + while (!WindowShouldClose()) + { + if (titleScreen) + { if (splashTimer > 120) + { + if (!playedSelect) + { + PlaySound(fxSelect); + playedSelect = true; + } + BeginDrawing(); + ClearBackground(ColorFromNormalized((Vector4){0.933, 0.894, 0.882, 1.0})); + DrawTexture(logo, screenWidth/2 - 200, screenHeight/2 - 45 - 30, WHITE); + DrawTextEx(font, highscore,Vector2{screenWidth/2 - 37, screenHeight/2 + 10}, 32, 0, BLACK); + DrawTextEx(font, "CLICK ANYWHERE TO BEGIN",Vector2{screenWidth/2 - 134, screenHeight/2 + 50}, 32, 0, ColorFromNormalized((Vector4){.698, .588, .49, 0.4})); + EndDrawing(); + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + PlaySound(fxSelect); + titleScreen = false; + mouseDownX = GetMouseX(); + mouseDownY = GetMouseY(); + } + } else { + if (!playedSplash) + { + PlaySound(fxSplash); + playedSplash = true; + } + BeginDrawing(); + ClearBackground(ColorFromNormalized((Vector4){0.933, 0.894, 0.882, 1.0})); + DrawTextEx(font, "POLYMARS",Vector2{screenWidth/2 - 54, screenHeight/2 + 3}, 32, 0, ColorFromNormalized((Vector4){.835, .502, .353, 1.0})); + DrawTexture(splashEggSprite, screenWidth/2 - 16, screenHeight/2 - 16 - 23, WHITE); + EndDrawing(); + splashTimer += 1; + } + } + else + { + + + if (playCoinFX) + { + PlaySound(fxCoin); + playCoinFX = false; + } + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && player.isOnGround()) + { + PlaySound(fxClick); + mouseDownX = GetMouseX(); + mouseDownY = GetMouseY(); + } + if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON) && player.isOnGround()) + { + if (firstTime) + { + firstTime = false; + } else { + PlaySound(fxLaunch); + if (player.isOnPlatform()) + { + player.setY(player.getY() - 1); + } + int velocityX = GetMouseX() - mouseDownX; + + int velocityY = GetMouseY() - mouseDownY; + + player.setVelocity((double)velocityX*.08, (double)velocityY*.08); + } + } + checkPlayerCollision(); + player.updatePosition(); + if (player.getY() > screenHeight) + { + PlaySound(fxDeath); + resetGame(); + } + for (int i = 0; i < 4; i++) + { + platforms[i].updatePosition(); + } + + lavaY = screenHeight - 43 - sin(timer) * 5; + timer += 0.05; + BeginDrawing(); + + ClearBackground(ColorFromNormalized((Vector4){0.933, 0.894, 0.882, 1.0})); + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON) && player.isOnGround()) + { + DrawLineEx((Vector2){static_cast(mouseDownX + (player.getX() - mouseDownX) + (player.getWidth()/2)), static_cast(mouseDownY + (player.getY() - mouseDownY) + (player.getHeight()/2))}, (Vector2){static_cast(GetMouseX() + (player.getX() - mouseDownX) + (player.getWidth()/2)), static_cast(GetMouseY() + (player.getY() - mouseDownY) + (player.getHeight()/2))}, 3.0f, ColorFromNormalized((Vector4){.906, .847, .788, 1.0})); + } + //DrawRectangle(player.getX(), player.getY(), player.getWidth(), player.getHeight(), WHITE); + for (int i = 0; i < 4; i++) + { + DrawTexture(platformSprite, platforms[i].getX(), platforms[i].getY(), ColorFromNormalized((Vector4){.698, .588, .49, 1.0})); + if (platforms[i].getHasCoin()) + { + DrawTexture(coinSprite, platforms[i].getCoinX(), platforms[i].getCoinY(), WHITE); + } + } + DrawTexture(playerSprite, player.getX(), player.getY(), WHITE); + DrawTexture(lavaSprite, 0, lavaY, WHITE); + DrawTexture(scoreBoxSprite, 17, 17, WHITE); + DrawTextEx(font, score,Vector2{28, 20},64, 0, BLACK); + DrawTextEx(font, highscore,Vector2{17, 90}, 32, 0, BLACK); + + EndDrawing(); + } + + } + + UnloadTexture(playerSprite); + UnloadTexture(lavaSprite); + UnloadTexture(platformSprite); + UnloadTexture(coinSprite); + UnloadTexture(scoreBoxSprite); + UnloadTexture(logo); + UnloadTexture(splashEggSprite); + UnloadSound(fxClick); + UnloadSound(fxLaunch); + UnloadSound(fxDeath); + UnloadSound(fxCoin); + UnloadSound(fxSplash); + UnloadSound(fxSelect); + UnloadFont(font); + CloseAudioDevice(); + CloseWindow(); + + return 0; +} + + +bool SaveStorageValue(unsigned int position, int value) +{ + bool success = false; + unsigned int dataSize = 0; + unsigned int newDataSize = 0; + unsigned char *fileData = LoadFileData(STORAGE_DATA_FILE, &dataSize); + unsigned char *newFileData = NULL; + + if (fileData != NULL) + { + if (dataSize <= (position*sizeof(int))) + { + // Increase data size up to position and store value + newDataSize = (position + 1)*sizeof(int); + newFileData = (unsigned char *)RL_REALLOC(fileData, newDataSize); + + if (newFileData != NULL) + { + // RL_REALLOC succeded + int *dataPtr = (int *)newFileData; + dataPtr[position] = value; + } + else + { + // RL_REALLOC failed + TraceLog(LOG_WARNING, "FILEIO: [%s] Failed to realloc data (%u), position in bytes (%u) bigger than actual file size", STORAGE_DATA_FILE, dataSize, position*sizeof(int)); + + // We store the old size of the file + newFileData = fileData; + newDataSize = dataSize; + } + } + else + { + // Store the old size of the file + newFileData = fileData; + newDataSize = dataSize; + + // Replace value on selected position + int *dataPtr = (int *)newFileData; + dataPtr[position] = value; + } + + success = SaveFileData(STORAGE_DATA_FILE, newFileData, newDataSize); + RL_FREE(newFileData); + + TraceLog(LOG_INFO, "FILEIO: [%s] Saved storage value: %i", STORAGE_DATA_FILE, value); + } + else + { + TraceLog(LOG_INFO, "FILEIO: [%s] File created successfully", STORAGE_DATA_FILE); + + dataSize = (position + 1)*sizeof(int); + fileData = (unsigned char *)RL_MALLOC(dataSize); + int *dataPtr = (int *)fileData; + dataPtr[position] = value; + + success = SaveFileData(STORAGE_DATA_FILE, fileData, dataSize); + UnloadFileData(fileData); + + TraceLog(LOG_INFO, "FILEIO: [%s] Saved storage value: %i", STORAGE_DATA_FILE, value); + } + + return success; +} + +// Load integer value from storage file (from defined position) +// NOTE: If requested position could not be found, value 0 is returned +int LoadStorageValue(unsigned int position) +{ + int value = 0; + unsigned int dataSize = 0; + unsigned char *fileData = LoadFileData(STORAGE_DATA_FILE, &dataSize); + + if (fileData != NULL) + { + if (dataSize < (position*4)) TraceLog(LOG_WARNING, "FILEIO: [%s] Failed to find storage position: %i", STORAGE_DATA_FILE, position); + else + { + int *dataPtr = (int *)fileData; + value = dataPtr[position]; + } + + UnloadFileData(fileData); + + TraceLog(LOG_INFO, "FILEIO: [%s] Loaded storage value: %i", STORAGE_DATA_FILE, value); + } + + return value; +} diff --git a/linux/raylib/platform.cpp b/linux/raylib/platform.cpp new file mode 100644 index 0000000..abb418b --- /dev/null +++ b/linux/raylib/platform.cpp @@ -0,0 +1,78 @@ +#include "raylib.h" +#include "platform.h" +#include +const int screenWidth = 800; +const int screenHeight = 450; +Platform::Platform(int index) +{ + width = 100; + height = 32; + x = rand()% 660 + 20; + y = 0 - height - (index * 100); + int coinInt = rand()% 4; + if (coinInt == 0 || index == 0) + { + hasCoin = false; + } else { + hasCoin = true; + } + coinX = x + width/2 - 24/2; + coinY = y - 24 - 5; + +} + +double Platform::getX() +{ + return x; +} + +double Platform::getY() +{ + return y; +} + +int Platform::getWidth() +{ + return width; +} + +int Platform::getHeight() +{ + return height; +} + +bool Platform::getHasCoin() +{ + return hasCoin; +} +void Platform::setHasCoin(bool value) +{ + hasCoin = value; +} +int Platform::getCoinX() +{ + return coinX; +} +int Platform::getCoinY() +{ + return coinY; +} + +void Platform::updatePosition() +{ + y+=1; + coinX = x + width/2 - 24/2; + coinY = y - 24 - 5; + if (y > screenHeight) + { + x = rand()% 660 + 20; + y = 0 - height; + int coinInt = rand()% 4; + if (coinInt == 0) + { + hasCoin = false; + } else { + hasCoin = true; + } + } +} \ No newline at end of file diff --git a/linux/raylib/platform.h b/linux/raylib/platform.h new file mode 100644 index 0000000..b25bc1d --- /dev/null +++ b/linux/raylib/platform.h @@ -0,0 +1,27 @@ +#ifndef PLATFORM_H +#define PLATFORM_H +class Platform +{ + private: + double x; + double y; + int width; + int height; + bool hasCoin; + int coinX; + int coinY; + + public: + Platform(int index); + double getX(); + double getY(); + int getWidth(); + int getHeight(); + bool getHasCoin(); + void setHasCoin(bool value); + int getCoinX(); + int getCoinY(); + void updatePosition(); + +}; +#endif \ No newline at end of file diff --git a/linux/raylib/player.cpp b/linux/raylib/player.cpp new file mode 100644 index 0000000..baf1e21 --- /dev/null +++ b/linux/raylib/player.cpp @@ -0,0 +1,94 @@ +#include "raylib.h" +#include "player.h" +#include +#include + +const double pi = 3.1415926535897; +const int gravity = 1; +const int screenWidth = 800; +const int screenHeight = 450; + +Player::Player(double x, double y, int width, int height) +{ + this->x = x; + this->y = y; + this->width = width; + this->height = height; + onPlatform = false; +} + +double Player::getX() +{ + return x; +} + +double Player::getY() +{ + return y; +} + +void Player::setX(int x) +{ + this->x = x; +} + +void Player::setY(int y) +{ + this->y = y; +} + +int Player::getWidth() +{ + return width; +} + +int Player::getHeight() +{ + return height; +} + +bool Player::isOnGround() +{ + return onPlatform; +} +bool Player::isOnPlatform() +{ + return onPlatform; +} + +void Player::setOnPlatform(bool result) +{ + onPlatform = result; +} + +void Player::setVelocity(double x, double y) +{ + velocity = (Vector2){static_cast(x), static_cast(y)}; +} + +Vector2 Player::getVelocity() +{ + return velocity; +} + +void Player::updatePosition() +{ + x += velocity.x; + y += velocity.y; + if (!isOnGround()) + { + velocity.y += gravity; + } else + { + velocity = (Vector2){0, 0}; + } + if (x < 0) + { + velocity.x *= -1; + } + if (x + width > 800) + { + velocity.x *= -1; + } +} + diff --git a/linux/raylib/player.h b/linux/raylib/player.h new file mode 100644 index 0000000..116699a --- /dev/null +++ b/linux/raylib/player.h @@ -0,0 +1,30 @@ +#ifndef PLAYER_H +#define PLAYER_H +#include +class Player +{ + private: + double x; + double y; + int width; + int height; + bool onPlatform; + Vector2 velocity; + + public: + Player(double x, double y, int width, int height); + double getX(); + double getY(); + void setX(int x); + void setY(int y); + int getWidth(); + int getHeight(); + bool isOnGround(); + bool isOnPlatform(); + void setOnPlatform(bool result); + void setVelocity(double x, double y); + Vector2 getVelocity(); + void updatePosition(); + +}; +#endif \ No newline at end of file diff --git a/linux/resources/click.wav b/linux/raylib/resources/click.wav similarity index 100% rename from linux/resources/click.wav rename to linux/raylib/resources/click.wav diff --git a/linux/resources/coin.png b/linux/raylib/resources/coin.png similarity index 100% rename from linux/resources/coin.png rename to linux/raylib/resources/coin.png diff --git a/linux/resources/coin.wav b/linux/raylib/resources/coin.wav similarity index 100% rename from linux/resources/coin.wav rename to linux/raylib/resources/coin.wav diff --git a/linux/resources/die.wav b/linux/raylib/resources/die.wav similarity index 100% rename from linux/resources/die.wav rename to linux/raylib/resources/die.wav diff --git a/linux/resources/egg.png b/linux/raylib/resources/egg.png similarity index 100% rename from linux/resources/egg.png rename to linux/raylib/resources/egg.png diff --git a/linux/resources/font.otf b/linux/raylib/resources/font.otf similarity index 100% rename from linux/resources/font.otf rename to linux/raylib/resources/font.otf diff --git a/linux/resources/launch.wav b/linux/raylib/resources/launch.wav similarity index 100% rename from linux/resources/launch.wav rename to linux/raylib/resources/launch.wav diff --git a/linux/resources/lava.png b/linux/raylib/resources/lava.png similarity index 100% rename from linux/resources/lava.png rename to linux/raylib/resources/lava.png diff --git a/linux/resources/logo.png b/linux/raylib/resources/logo.png similarity index 100% rename from linux/resources/logo.png rename to linux/raylib/resources/logo.png diff --git a/linux/resources/platform.png b/linux/raylib/resources/platform.png similarity index 100% rename from linux/resources/platform.png rename to linux/raylib/resources/platform.png diff --git a/linux/resources/scorebox.png b/linux/raylib/resources/scorebox.png similarity index 100% rename from linux/resources/scorebox.png rename to linux/raylib/resources/scorebox.png diff --git a/linux/resources/select.wav b/linux/raylib/resources/select.wav similarity index 100% rename from linux/resources/select.wav rename to linux/raylib/resources/select.wav diff --git a/linux/resources/splash.wav b/linux/raylib/resources/splash.wav similarity index 100% rename from linux/resources/splash.wav rename to linux/raylib/resources/splash.wav diff --git a/linux/resources/splash_egg.png b/linux/raylib/resources/splash_egg.png similarity index 100% rename from linux/resources/splash_egg.png rename to linux/raylib/resources/splash_egg.png diff --git a/linux/raylib/storage.data b/linux/raylib/storage.data new file mode 100644 index 0000000000000000000000000000000000000000..593f4708db84ac8fd0f5cc47c634f38c013fe9e4 GIT binary patch literal 4 LcmZQzU|;|M00aO5 literal 0 HcmV?d00001 diff --git a/linux/Makefile b/linux/sdl2/Makefile similarity index 100% rename from linux/Makefile rename to linux/sdl2/Makefile diff --git a/linux/main.cpp b/linux/sdl2/main.cpp similarity index 100% rename from linux/main.cpp rename to linux/sdl2/main.cpp diff --git a/linux/platform.cpp b/linux/sdl2/platform.cpp similarity index 100% rename from linux/platform.cpp rename to linux/sdl2/platform.cpp diff --git a/linux/platform.h b/linux/sdl2/platform.h similarity index 100% rename from linux/platform.h rename to linux/sdl2/platform.h diff --git a/linux/player.cpp b/linux/sdl2/player.cpp similarity index 100% rename from linux/player.cpp rename to linux/sdl2/player.cpp diff --git a/linux/player.h b/linux/sdl2/player.h similarity index 100% rename from linux/player.h rename to linux/sdl2/player.h diff --git a/linux/sdl2/resources/click.wav b/linux/sdl2/resources/click.wav new file mode 100644 index 0000000000000000000000000000000000000000..09a31243e2e4b947b0082839c7c701c5d79cfdf4 GIT binary patch literal 29196 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

tpL} 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 literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/coin.png b/linux/sdl2/resources/coin.png new file mode 100644 index 0000000000000000000000000000000000000000..2ac238eb3331127e19ee64406c9f15997837fc6c GIT binary patch literal 908 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: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 literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/die.wav b/linux/sdl2/resources/die.wav new file mode 100644 index 0000000000000000000000000000000000000000..63cf89b8768a4cbb09abd63eb33c4cc5634da5ce GIT binary patch literal 26062 zcmb5$cUV&YA3yw-4bq}LwbOy>7+8lqRM-w|fE6}4Scw(T-h1!8_r!)^$vG(46tEIn zP+}pKhlT_VPg%CKX?4Hj`>k(%KKFfJzaNi(yRNRQj&I(t=ks+O+`mtstLh3B@Lsam zu~TM4%nB7MR0KqZ3KiDND^{pffmuN{diLlP@Mo@f=pEl9zH59;e5ZIUzC(Qb_^9}{ z@onN;#l!JXe0Y4*_{Q-K;_JpU##fIIiLV@AA^yActMrrfgY>=hjkH8sETyH- zq>rV3X`%GK)GNI!y)AW1^Q5^_r}V1yveYKMD9x6drRSulr6;9EsX*-J~(n&QiX#gY+ivBIBnELFXAiWd~UqR)!_W%=jrQ z=p5sxvq5JVKb;Ob#rWwYkQroR{A3KuVEmLGWMKS61`&*(^gvqB3C2&ygHjnk>4LP3 zpHhO3F@8E4bcFHKVIVn3!}#e?P@&@oQHcy8tAW2NjAW8^$p&O&vKbjpLL`f9O(G`V41HQkGKm~Rs>yNWL~;r_ot#O|A?K5e z$R*@*auvCjTu*Kyw~{-^UF2T!0C|W!Odcb3!@;G^ad0)9m-b>zH z-bLP7&X-5aQF)ZSt-Ot#EpI7rA#W~kB5x?KCuhpTm*Q{n z61*6v@n`sB{1N^TzlRs#xAA=ZCZ3Bs@vHbHJO{skTk$OX41N+f;^{bnpTKqaG5j!o z2tR=D#dqP`@h$j9d_BGfUx_cn7vl@?x%g~+20j&^gpbG7xDp?QC*s3#93P6u06T~k#tMUh zmO)S$6xITW2nr7i4{HuI3u+qHG^`2GIH*xrqp*fS4Z<3P)d%VY)eWl~RtI1P)efs2 zRtxygCp0WHtR}z+su5NrtU6FFsA^c%un?e1Q01`7VU>W%6s5hdE!6t8Pqana7ur|a zH`@2w58BV#a_tXoC0&TFx~`_KmadMjzOIq3sV-ax=~%kfx=0;Y*Iw5_$Jce%b+Grx=N`bsnt_!rq)WWlUhHuQEJoF@Kh+3mD)O0cDSCV zp{9u@TmxxXn%0`OnkWsbiPm(|#Av!{dTKTW~pX{W{qaOW|L;CW~XM4X20f;=7=Umld4J67&J!BNzECJS(B}~sIhCV zXq=i{%}q_d=B~!8d7$xW9&4Uyo@-ue-e}%yK4?B`zG*5XS5B^)Tq8LwnVDQKxnXkC z)?v~s$S(My2S)4o|IX-!4GM+pnQd0vdD}&s&34&#)#k8Wx8>UMY`1Lrw%fM5Hp+I-_P|zXdt?jPp4gt*Xxj_h zOIwNUjqRPS)b_#l$@axoZu@SlV6S8ku~)O#u-CMQ*=yVD*z4IF*c;iK*qhnI?Jevr z?JRpMdmDSConw!(x3}}`(RRMQlU-o%V((_}Vee%Z+GFi~?fvZ%`vChOd%S&!eV84$ zC)h{W6YWX%(RQVMtbM$FqJ6S`s(reBrhT@3uD!|iV{}w;RB^lF_5fPU13DB(7h?dw zxFgW1xHBLqjsdz9cLll?cL#bD_XK(s_bwI!qT*PfPjO$MUvYmxTr2_NiU$A#iw6PH z;&@(1wc7zv02kl@ZGlJt0onkqfmQ$;U;!}D5`cgfKm-sDGzXdiO@SsrW1tbx5NH6@ z2kHTJfjR&a`1z>?fMcU}C{Pn%05yQ>KsBH$5E4|Sc9q(dfl5F{paSrt){k1>fp0)L z@D=z1d{^%wPa{T01Ke?#xm-_m>ZclBQV1HDi0*FVu0 z>0jty>EGzz>C5z=^k4Pg^%aRKL{*{&5lYl1>JklzMnqF0oPY=x(V9RA4$+R_5g5^l z5D;C79z<^;d&DLJj z+O=1-4($zXp4P3stu4^r(>~Nb(mvKc`#<_dZK-4H+UVNqqI9S(TGvr0&~?@I(Dl~E z>iX#%oBl7pPxEwc z-ECcg?w;fqF2sq)kjsfyImsjAd*sS{JD zq)tzroqF`d<14isOh;WueMdt_V@Fd*Ge@|ig`=f| zCx^h%#nH{t!_mvp+aYrFarASD9dV8UjzNxi#}LOb2kuC440nulC>*04V;m}n+A+>C z!7<4(#WBq>!!gq_+cDQM-?7lK*s;X1%(23;%CW|=&auI<(XrXF)v?{N)3MvJ$Fa|G zz;Vct>^R~$=16hq9LF7L4#Ht@q&tj`Ovfq58OJ$Cmc!!6c3g1eIP8wgjw_C94yWUW z!{xZ?xaG)q+;-e`P>y?!`;LbWpTqBX?0D*U=Aa!f94{RujyI0Cj`xl-$4AF!$5%(W z?{fPdQIJ&pNZ57H78eyz`>d z=Dg&*;=Jl~IIlZ%oq5h%PPem8AoU2iyl901tsezy~}6{6GMB z3_Jmz0?&XVfCioeFMwj;CGZL;0bT2s0GNGnuQ%6&0Qx{WrQ%{r7 z)W_7%Bry#%NlimcGLzgi!lW>bGAT`CO%qI$OjAuWOtVaLO$$tmOiN8GOsh<5O&d&` zOj}JmOuI~bO$SVeOovU!Oj^@%lioy{GEAAKQ>L>fv&m|@V6vGmnXa0grW>X_liTDm z-8Fel_f3T+zv;2*nd!Ny*i>SAYkF_`VESzOYWi-fm{~cqYG#ehnwhmS>txo;Y?#?3 zvsq?DX3I=gX6sBOlatvl^R#tR!uSMr!kC1lgpmme39^JC3DSfC3F3sl38I8v3EdOA zBy>*TCv-??pTJFsOlY0JN`Ml=6PhM8N~oVuC!tnC&4lU+AqkZde#pz^pXDFq@8xgg zujDV}Me-+dzr0X>Urx#I$n)hl<+*aF{HpwtJV$cq*QPAHg+$r4sA#)qkWCv+(Ko6nr8+4p-r$aRojCm*d0m!M`&J5#9@A5?%1l zI3MqTx5v47B;Fcl;Se5yWvJx=5(6Xnp zfXpX*AoI%Z$~-c+EKhbr=8#>H*<}}H*)p^2tn8G`BukeOvJ*0$EJb!irjZ?x?Un74 zLB%AIL1YrAiF1U7I8WpdcH#=*AZ`$Og!{j@#0P|r2>id^5`QLN)ybN{qe&G=y(W;8$!Wh+uciM@y*7}W z$!+9LayPk;JV+*!M@elk^CHQN-|7Kne@&=hlx=9atm-LbkNFNyhiB}Q%f_(Ll z#H)&-nt@>mHPklLH8e0ZHZ(It7$5`7(Ap4b;2PQ+cm~YS$q-}cX6R`U8e$Fo3=+dY zL%dl5;fbNh z@WSv4d|AFTlo>u5z8bz8Dx_CVubN&XJv6;`dY$z8>5bBxriZ7uNQcu~r6cK_^mgfJ zdUSfnbU}L8^zP}s(naZg)5Yln(g&pvP9K&oPalz9jd%sVj^C$!Nc)^tp7tZHl0HOV z9R#9bdZxafzM;N}zPY}I9{$G^6{GK_@2MB+`{?`Yb?Gh{S(&U#)*wU4T4WuvKG}$D`a2Dd{BIik zpUJ5k*^?BKeLxm0AqW1>f)mM6q>>yVVwIRB zXCFfieHF} z#81Tm@gwm=@jWpmz9aUCZ;A87H^dI{Rq-XUO?*L|EjEkKicgC(#YV9~Oo&g2Q^hIb zBjRN7LGga^9`P>mcJUVRCh>alTJb9J3h`3$V(|j;T=8u24DmGaWbs7tII&thMw}#0 z6b~26#lyry#8UATW4(8SjO0@V=IsSp)OZ{QkSXUs!P-_)J5vY>PPAaYOnf^I$xcq zzM;ORzO2qspI4jJXVoXwMm4EUQ|r{n)XD0D>b>e+>TT-H>hJ{px>V@ig>RIaP z>dEQ}YPEWdTA?1H#??dBQuP3Je{~;qZ*>oK7jZFQRp{giVq^h+FR<%$yQ#DrASJhF4sTitis>-Sgs&eIL zWtsAwvP4;|EK)vE`jror_mp>)9_3ACuF|QzqO>b7D6PtK%F{}dGF?e1k1MsxBT9{O zzjBXqhjOcOlX9JMwQ{*~iE@E*u5y-gnsTyoyi%e)3Z=rR+7y$jOVy+5Qw^y`R1>Nx)r<Oys;x>G%KxN=(I31E_(Nl!~VYQ$wj? z6i&&h1Zo5|l1ikKs8Q4yN=d1xvD7$fJT;M;L`|lqQq!mz)J$p?HHVr@&7&4j3#rA_ z5^5>6oLWJxq*haFsCCqOY6G>2+DvVswo%)u9n>yrH?^1ANA0H$QimuFb(lIr9ivhx zEtN_gr%q6Mil9g;oywq0R3>$jI!&FS&Qe*FnX*#Z)OqS6l|$L6OVnlR3U!TgP)_Ow zl}qJOH>q1xKINfqQ+KHXilXjO_o)X|A?2g|RDgO+J*A#eMbvZZ1yxMFqDrXO)LZHu zRZ7))t>&qCV|b%@NxVef2wnnD&Xe(m@`mu@d4qTZcyT;2uOF{3FP10d_2Tv9b?0^E zb>Rtkop^j6#_PaCdF^>oJPt3ChwxhS*gO`mC9ef9oY$P!l-HQoh}VEuk5`w+=o2)6K0*u8 zhvBlzL`X8b1nM*If+di*+k zCchRxl+WN-=U3%d;aBEYDcB@z0yZ8Si>a_N*eFbaC1NA61PsT9VMDROm=qg`#bIKsKh_tE#e`TdtOwQ| z>x#u-ow1G>hDBpMtUVTmaj>=+g0;rj7>q$!3oIOKhBd(&VGXeQSY3>X)xtutnph32 z8Ww_8#wubJuuPk^#U#U{DEIWhjX+84L^o zhL#KiWF??HE|CKXCBuOcz{rwBKv9wei~>fNi~*D-Dgb;*mW(YK2aE?MluQIBl}rYv z08>k*0nuyYzDRfTT8Y9+e>x;JAqv#yMaBx-jaR5e&9gKLEun{21o`DmmC3(0>?@~ zEMB550p(~(Dsa5y1ds;kOThKB1Qh!vhLUt3qr?b+!M`N4(~GOg^WELnC?whzqA+htp18)fTct7R)> zOJ$2>^JQ~nGiB3clVuZRV`WNNl5C_bK_-(8kx69(WMWxgnMl@4)?L;`)>+1v!7%~n zhMdhgTXVMO?9ADdvoGgB&Y_&cIY)C+a&$Q-a`ZW5PI`_p=VZ?5oU=JuIo6!>ITv$m zIhS*;<~VY$=eTli=D2e_Id^lYoO?MBa(p@doX0s&bLgBGIWKcca^B{=&ne6KnDaTO zJm-5(1zROsh^?BfhOMTpmW^qvYpZW-WNTt;W(&8qu)#LAt+frYacohx_BNgkvvss} zw#C@G+IrY}*@U)OTR)rF7H1o1liG&ZhS_jif^DQtVH;%|V^i72*(TT~*{0a0+h*Ek z+veKl+ZNfD*p}H=*jCxr+Sc1P+BVy^*>>1=1-t8mHjVAD?dTuPb%xDkJ83&@JNvu0 zw*T&}UACJxx6Na_^Sib7+aBAV+KOz?|LCkg+CJO9+P>L-*ecnp*sI#B|It`Cv^Tal zwKum%{O+q~7Fk0rfH^2DG%NHRa27ZdbUO5O=qcbNkO`QAKu{T)0f6y46vPGq80|tq zofisf$j~(4M9}fj&`qHmfepa=pmm|^Le~OofYm{(LRW>Z1Xcjc zfn`BULzjjw0Tu&`f)<7@3|#=s2j&IM4V@c02bc}a3Yr-@Gjs+pJ!o3!w9u)*6ku}D zq|iyB6M@6k>VEs5df)!3{-(e*3pZ-~O%fw|{E#?cbVy`?qG_{;B!5e+&Qi zPZ8h#t;M&0gTDP+%WwY#fBQGqw|`@Q`_nSoYTQliCk_#ZiDQKBuh!R0WD^%bn)koX z_YOf3_lZKnPdp)th!?~wP|f_O@%=NksQr6~ErM+MSCaR$?fqY75eN3y{+Z+bXM1hd z@5JKg?%J;uZx6Zu_vYFOk|5Jb6M2d}OPYgwYnRBYq?61ge{HSZCkshG`Q)zz?=x9W z{vazELJZXnH4U|b8*7aWO%36H<#!znd_!kL7efz2@4wPJ+%VjbXc%Qs8pawX7$zI0 z8D<*h80P<#-EA>!H|#R(H5@Q#3`g6nOInq*JZW*#f~2`gGn1wzO-dS{q)Hl{l$bO; z2~Qf5Bu$D->Yo&w)H|trQkSGoNmvpuDJrRLQtKpEQj4VKNllU(B-Kr-l~gmST2hsy zib>xTUlbn{?-j2VFBQ)fPZa@0q2j)RQruR!6)wef#Z|>6MUEm{VOE?`oKzSUq#{kB zQyfzyD-J65DRwEgD>f@ODAp=gDwZi0DdsC?D`qIBDkdt%DU^y)ibO?%LZ%q37^H|( z^i#wtdMUaqx+pp+Fa@fJQba0RD_Dvaisp*OiUx|hidu@AifW1~ii(PFiC+>wB)(64 zllU_6dE&FgK%y`4ej=54C()glmv}w#TH@uzoW%2q=ESp!rxJ~chQzeQ)Wnp;!-y8?abx1z#8rvQ6Bj2gNSu>6GjUqtq{Q)ws>IQWip1fGc;b*mY2tvyJs)>i zc3JjX_FE2Fk}XFqDV9{r2@7E{Sd5lT%W2D5i`ineT(IO=E?KTv9G2@Am*u7<-*U%N zV7X^`VDVY}mM4~HmgkmYO9`k2-&@KopDbT2-z+~Ym8?~))vPtFq1IZ~I@WsDhStW` zX4Y^kWQDD*tZl4qtz2t+E6<8qJ6Z+SF4peWo>rkX*4oc1whpikvJSQmwaTms))7{P zb(B?URa?hfCt9air&(uOXItl47g!ftms(d?S6SCu*IPGPw^+AZcUt#Y_gN2GHP$26 zV^*E@xK(c@tr=F6^_2CDHOp$Tp0{4K+O3zZ*Q`$K4QrnDmepguW2LP3tPia|Yry)% zT4a50eQ7PRzO}x$ez1PBezktH{;*ccu996XyGC|scCG9>+4Zs;W;f1mmK~lAWy9I6 zvfE@2we`xQZr!`};MT)izFYoVfm=^*J-bEUdVZ_;)~j13pxk_StMpdct&g`p-}-W^ z{MPqd72FlwmE9rks_yD;hC9?9=C19o~7+2<_>p9xFI*}X1QCr+qfg$ zZQWdVJ9m3G&mHaNyF0o&yJOs4+}+$g+&$gB-6D4%cVBmZx5ORi9_W_32fK&3hq-aL z+&$bq(w*o|a*uW^-75E3_jvaN_ayfe_f+?E_e}R}_Z;^;_X77q_hR=__cHei_bT@q z_geRQ_eS?7_ZIgy_jdPA_ip!I_dfRl_aV2&eb{}}eax+Or@BwL)7*sH;7)fN-I?x_ z?$hqG?sIOl+v+~=zTnPr+ufJkSKQa!4)=9;uG{6l>2|yG-M8I$-34y1`@Z|3yU_i} z9dJK(KXn(mFFu(3Zhz_i(gQ&UOAnSF3euEnN|S-ZK}SlDlpYN_R(h-ytfc^204yk$ zrUo4^JzjbuD6KTDR1XkAWGPu{2ud$aF9ii?sWHe@YAVePI$3(M^i4nmZK{=&4rC@ol)E;!H^it{Npev*DJEeDn3Q7w~K}b?MCJCC)97~i1wREuXEuAbemTs0FmfjYTrLU#GCC)O)5^ou5 zky#QfBPlt(6Yp`%(Bw5+Op2F(X!dH&9cL?8=N!; zz)5o$oHSa?aZ8$ow4_^1mXnq$XIovebadsz>%d|834 zCs{>VFS1@{z0P_I9*B=wpR>xdzGqc5S20&L*8tbpTIM?Ddgg}aCgx`52s316nOmC? zGsoP{jGCj(d~;`W7jrjrPjhc`tht|AY#v~ing^SQnQ`-QbD}xPJjSdtk26m+Pc~08 z&os|A&oeJDFE%eTuQ0DRuQhKlZ#Hi=?=bH&?=>GVA2J^{A2n;u$IWSG(wuHKnNOL| zn6u1Q^LcZQ*>1jKc9^f5UFMtSeDiH{f%%^Kf!SyFo1d7A%+Jj)%_Ziy;Bo$7{%rng z{%)>lscflgscxxh39~RQ^(+l6jV(lPw7g#q@~j7Skn05Ys6Ji|G)9#A^y6bYUR z9t$1`3Iz`Y_XL#SuHd%7Ex0Lg32q3Sf@^}y0=pnba6ynQun4jQX9TANnF6CAT|f%- zg5v_6AVqLga9E%b92D#m>=En|>=0}dY!Pe{Y!Iv!tQM>kEEg;lEEX&j%oEHJ%o5BH zOcP8IOcG2Gj1{N^V+5lF3c*OhZ~-nDCKw`!7Yq^%5J&|51$_h}L2p4%L3cq{L5!fY zprasKz!S6=Ls@M58@&|Y|{@N(hR!fS<& zLTBNP!rVevVP4^_LU&<)p{MY6;oZW5LaNYPc)##L;lskh!bgSv!a(8U!l#AL3X2Nq z!sms>g)a+V6_$Y2m$!xQ3f~u&6@DoESoo>%bK%#*^1^S0-wP}FD*7t}eNn!4zV<$zuY)hzhxt1CI{7;L1ilzwS6??@cV7=*FJEt;&?oZs@%8of^Y!{wI6`4h6 zMW;oXBBRJ4(u+=rbfOf|5mB<}plF|Hk7%c8yJ(AOlW4tYjcAoQqG6)JqCuhoBC)8SC{`pC^%Qj%brE$IbreO5c%pV9 zt|(H}M#L7i6txgF7c~_%5;YLj6){C&qMD-Wq7YGKQ3cU=;aA~j;Rj)<@GXeoUJ9QJ zi-b>v0ijR$P2v%=HDOrcR|5E8-@!c<|3 z@Tf3Zcu2TkxJS54xLvqaxJkG{xK_AYxI(y0xLCMQI8QiRI8!)HI7K*7I9{k0Duttj z3gHN0f>0(LB8(Rf6vher3;PO1!rsCj!fwJCVP_#<7%fDF?Svd*q_DM+C4A4R5jH4f zP{_dF288?)7xIfFEU4u2MZ27elV z3V#xR0)HG|%~$eA^ON|A{1N;FKF%M;AHt9458@BtOZffyefhC`A-@;DJHIPGhToar zk&p2^@KJs{K9}E?kMLXb+5G=x`OW!F`HlGv`StmA|B>WZ;#c5*$I7uU|H$!QU^Mm& zdx8b9M}MXG`PeNi56i`_V~)Qvd<&L^oyAULCo$7s34RK86g!M*u!H}|?>A!Wv9;K0 zY~?@F`&n&#Z7ADN zwlQc^*`~71L0ihUlx+>#R<^Bdd(e)u9c4R%c9rca+a0v0Y){$VpnYZg%Jv5xC_7Mg zFz8U(p)yTSa#?cO;h-aBN6L-{9V!w9FP{FSD0j3c6f&x$H{N)v~K)*Mh*3FW>~O2i+*UQTF7Ev+8H&XXYp7N8kgq z3@By32j2Z$tYp3cUNcL8SIn0{G4loRoJj*k%xAz;;0g0F5McU&M@;Zl$t+|(1RgN& z1NQ(g6I8p*0_I)d4)ZqPVdevF<}KhRkjHcZxy&2DbtYIjW;&SHfUC?az-8bP(+=2} zIlx8c1>ih08?XWvrWwd$o&(M@&j6>Hr+||{CKD_;GL6g(Af0Idz{`zHf(aIem}$%t zz;Py6A!q8CU@@PW0vux=1&%Ne1IbJcaEN&jH~{Qt?gRER_W-+@yMUd*4(4`X8*?kL zg}E8n1Z-q(0M;|t0c)9SfYrb%=1O1%b2)QurR}dYR5ECZkN$3n(?Cm1QU=fw8$m~W z3UtJ0sdJzqw)}30?VusPLS6l^1B;;`A0KcMt!6{ zQD3O9)HmuoRl!@)TiIL1Th&|5Tf@unhI+%iwY^MlU2i>a18+lbV{a30GjDTmgtvva zr5EtHo#LJ5o$j6K zo#mb5o$HCiN23N#s-1Wkm-L*t;akQ!1#W1!K{C`bV% zLL;H!Py!@}aA+7b6dD2zhNRFSXdpBIl0agpKhzKE1I0ojNC@?UdO|&*?od~#3lswh zpiWRnh!0^<2Z#ruP&+6J;zArK5<;LhP-}<{u^<>~3AKPCpm3-;)D&t0HHI2N4WRl^ zJ*Y0k1h0nG0cXn5H7q)=inca!a zXJhORY#tkBw_``KIqbGh4qQ`k@bO9%6iXw%X-6l&3eUp$$G(h z&MIO(V?AX(W(8P}SUy%E>jCRN%gdrz1*|))+pK(+n{|to$8xc5u&%S5tZS^RtjnxR zEITWQb&++RmCdrU%&aWdS=JfWY1T^!%G%7@#M;PO&sxV?!&=Q+#ah8y&RWV^!dlE)$XdXf z$C}HU!YOW*qdTwrRUhb{j{M_5QcXO%Sd$|vC z3v(ak26CU|KFg(ZU*x{bEdehayaN%-hulxOUvkTHzvotPRdQ8vRdv;H)pUiqYP;&V z>bV-Y8o8Rdnz_PVEnF>KELSU68&{-@%ckx`&F21XiOW^9_>gMX<>g5u;VqJY* z{aq5*0M{T_ylaSSm$K~vE6ZhZWxFo8a$I)TW!F`g!*$)2>&kQ8a^<^jyY9Lu*FDz*SE1{XE8u$Kdgh{C zFI+EOCE#U?cOYK+;QHkH;wpE2cU8!%lvg<~B(GXtjl7z9VR^Ol>g3hSYmnC{uSs6B zyzsmhc`fr;d9Cu=cx za3mDjA~HO(d1TYb#*vL88${NNtQ*M$FIz9OHI zPsj(P40(^dMcyDK$Sb56d5+M?Gvo>K81W;IkV51Eav$*`6ml22jd&0@audlza*-Q| z6S;<5MJ^+D#D-i%E+E;61u-M%kh92X z*^lf)_8_~Foyc}%8?pu2jBG^KBkPbg$SPzdvK(24EI}3_3z7NAJY)_s3z>;bN2VcD zkV(iyWIQq!Q6oxZ3^EE)Ac@EbWH=&6WXLdN2r?LvA_I{Dhy)QM{g6ILEFwgDBR!Gs zNH?Sl5`%O`IwE`|8tH(bNIN77;UH}h1Zj=5LRbilKu81B8`!TNCTuEQWs$& zwZQA{H4z3<9ck10DZ2`*GOHr10_!^{r^?|k@MriV`~fb5-^1_VH}Gq?1bzt@!_Q$F zE`p!JPv8LThabU(@I&|kd=K`*1@K+?4(x&R;al)cI1kQ+Z@^C20bhf!z?We=Y=d*) z3-Eb38@9k^_#Au|J_DbEPr@eH2xq_sn1l&94L$*S z2ls(vVG-OL?gjUNyTje!E^rJifIGn*VGNFjJHRO19&QJ7VGbM#BXAqI70iZNa7!41 zTfpIPbGRwo1a1sBgd4#1;ks}g@CtA(@Jj@0!VI_uTn(-YhrpHLN^k}EN6YUmkGJSo zdw=CU<$v2-{-=HAf7)OErvv4GJ6QgwL*;+cl>aTc{7;9=|8%7MZ%51jbgcYODdm6D zmj4O7;QyD@@;@Cf|I>-`zkx;eKY&H?zkrum{{V`^KN!mYmR|lR@RHJBjO9PQeOd2m zR=y?Qntwk3V!kc^QvQ|vtND)n>-o9)dHJ{U-T9vUJNX6q-u(Od5AqB1ALR$~pX5Kw zFUo(OU!4Cc|8@S`{C6N$|B(MF|4aVY{BQX`@+*2OdqO-_J=Hx7PpGGshv})~spo0n zY2<0*Y36C}iSR%k*u(a;^0e_pdN`gaPkRsQ>EOXU9X*{r0#6rDH%|{wFHdie$kWHu z&m;E4c?Ng}dEz}oJi|OPkK8ldGt#5*BzZ=AlpeKboM*geqGz&as%N@qre~ICj%S`{ zfoG9tv1h4gxo4$kwP%fIoo9n*lV^)(t7p4sr)RfkuVl8m)RW@Td5(M1 zJcNhzqOwTFLY0p_tmdE1B_MG=z^w>O?JXbtdJr2)xPp&7=bJOGYcszGJ1s=+C z&-1`j=y~Mvdmek9dWt;HJuf^jJtdwuo_C)2o-)rz&u7n9Pr2v2r^4+@w=3Tcxn1pc zjoUSEhu*FQhM&5(>)&p0yV30?x0~G#za4QKx}E!A^`o~%?~2|Rl@^s1eJJ`^^r`4` z(U+pHMdd}`ioO^9D5^kLq$|;t=_+&xU6rmzSEp;x47w&AN{4}0(rbf(tPWk5u1D9W z8_*5uMs#Dk3Eh-#MmML!fe5+<4bd%Wm}b#zx)t4;ZbKt zqNQ{^J(wOs52c6EG8(7lbOJq`9zlkJ88J6k1E` z=v4YReS%J-^)x|~w1G~iGiW1i0y627^eOr@eTF_upQGQtJp4JT%1XvhD}d#|vY@4m zrHm!O;-E#0MT~{Of}r_~`HXqM+@Lv(IgHuBEMR8P48{z`bYNQ0RK`@sl%UCs$&5+B z#Gna`35@Z;xFE1J&j4%c3{{Ylp=68!MhA^zjAA4Kil9VBB4Z>lB4{{cI3od&2jL8y zAp?d54P^{v3;_lQ#WUg=QeaTfK*m7E03a?%!jLe;K>whAjDC#1K%bykMl3@VBxDE~ zy@6gqJsCY2J%H{(-5A{%U4bq^F^m|70O%aliP4GCF$gTYGB6-Ir~{(|g9m_>S)e`8 zE+~o-#oz**ptg**3~*IqAPh58-)w*DHc_pjSWzvbT116MHIHf<)i|nQRQ;&BQOu}X zQDIRvqiRG|1L0xisEScPxZkcw}|_c`o5Q`p&E{ITX6`xe8SW`=CfCSK=Nh;K zH;sFotK+6{k8+Q2leveu2e|vVd$_x}JGtArTe+LL8@cPb>$q#UtGFw;%eYIpi?|E9 z^SN`mv$-?5)45Z*Q@E436S(8JYOazyhC7O@;Ev=D=gPS z`*20v-rSzt?%ZzNE?fb(6PM48=62ws+;&_pw=Eapw&u3tvbZg|Ex6&_X56OS#@vS7 z`rNu)Cbu>>j9ZgigIf*6sFk^uxD~kHIpv%$oKKvOoHEXP&RfoF&MVGK&I=CBdB%Cd z32^)zALk+GKF7-`;N0ch=Hzp3aq>91oEsb`=Njh<=Mu-p$>Ch!WOFQ>EY3O38O|wA zCdbH0=NLEyCyjHQqvND-j&Y7~k~xPs2RQpUdpWx~J2~4qP|XJwr~0S+XZUCOXZz>) z=lbXQ7x)+Y7x@?am-?6am-|=xSNT`_*Z9}@*ZVj4H~BaFxA?dExBGYaclvkv_xShv z_xTU_5Bd-JHU7i?BmSfQV}7k)=TG&Y@Td9pe!_3?r~5PfMt`RNr2mxvjQ_0voIlHN z@mu}b{`3Be{v5x}f60H@f5m^*@9;bQ*ZnvAE`Of?rr+()_j~-e{dfHZe#-Cl-}gW8 zKlB&+ANl?Mfd8@ossEY3$p75`!e8uv=`ZoW1}|5?^}qL*`pf(u{Ga@v{a^fF{onlG z{XhH_1C;`m162Z51Jwf612qCQ1EGPiK&=2XP$y6~P%qFR&@j*_&^XXE&@9kA5D{n* zfC4Q8tN=UED$qKB1R?`%1Drrqpk1JS01b2qL1Brp8z^K6Jz?gt4 zpbm@;j0;Q%Obkp4Ob$#9Obbj8%m~a1%nr;6%ni&BEC?(NED9_MEDbCREDx*LL+KMFd}M1REww@5fV`)qEbY~hzb$k!NOa4 z_}B3Nr>y(%i{f}6IBu_8Of)mr*&!O+?iqWD-tO946nk&6#I8{+h#kd>hz%=Nf{49g z@5=32*jc+qXVicibOyzSSbrnt^)=@AdjAW@Ywwb#x6~MVHYfbP*9`qeOH8okM4l4_PPy zok6G3DRcrIN5{|+bQm2%2ho1C55=RsXgAu0cA_0<8`_Gtpv`C#ibWey42nh@(0a5M ztwF0%6k3T^pyg;8ibPA$VzdY?KoMv@3P)jRE}Da8qnT(13PsaV2%3tfpvh<=nt;Zm zaVQ9lMPtw?6o^Km5okCXhK8acXb>8R2B7|^AL@(xpx&q#>WO-w?x-v3f;yv4r~_(` z+M%|nHEM+dP)qa+YL1$rrl>J$gc_m-s2-||Ok^Mrs)K5ypHWRz164=WP!&`eRYDa} z1>{B=Qc*cn7L`GzQ7Kds{eb+Df)FZ!ilgtd-ANmLag%q8cbj*ocegj*yWe}zd&GOp zd(wN_>-GA)=e>zu$9u_p#e3a*(|g;?y!X6G-Ur^ly^p-Y`^5W9zU-0i&G5eSe(+|o zvRgT=JXSu-WfiarTHjmHDryzC6wBW#WtFzdTB_x?Dq5ATYE})amQ}~nt-4lytC7{j zYG$>t0<1PxJFBDB+3ITbuzFd2tbW!2Ymha>8g7lSMpyd%nYGf2vesDZt!QhbwaMCIZL@Y*yRE&}e(Ruh*g9sNuufYEmd`q8U9gCC z(Yj(?vu;?oENb1g{<7{{53Ll7Td7u>^<0kNUt4di_tr-%t1pKymoKj`zt5G~8v(w; zzM{SoJ|(j?QYN!BQo&a-volg7vod1%>dMAQBVUuu!bm`7U!;g@-VX;@+7kx^2+zx_r~|$_tBRvvl;Ta z81n7eq^tEF7kWM1HB1^R4RH;Y21x^510;F==lV_R=jto*CQa7oq z)Wy|V>LhiPI=I?P?WDG@Hd1S;l@#D=DYcM(k(#@jNlm3DQe#&mNiL9G4P5o5dQx4< zbQzK^d89h7+S1QbEvcrfhE!dWiz`=ER~4zU^r^M?rL*V$Ut{lcVeeC4?@L|p-(|fo zRlUzmy-!8GfA{o0xAeZ0^!{DZ`%=*JbNRXQ|EHao>tEfx&&|B7uB@&s(nr4!(tGKh z^w#f4}u;CnPRCmL5qde)8vr-$Utvbl)#oN|NMb z%kQ4wT}i$y;m0H@-S)dB{VB(Vvpsw961`Cay#S+rJ}M^#pt%gso0kr`oz zn{&-sW~dorPBAB%!RA|nMvTbV7*=4KPKp;_NF zO^^ArS<|d$RyKb!HM6`~#w=y}n~GW7EMfw)p!u!ol3zk|%Qbg4^P}<3cw?j+FN`#K z%)^Zo%rvGOQ;kW+1Y?{r#t1Y<7{iRg#sK3tqmR+c=x%f|IvMSa zHb#Ka!f0kRHX0c948y2n)G}%qRgFqU1w%8+8KsSqhQEP~Vn$&D7zK?2@&lUB$Zg~> zvKb%scY21NuD{UJ^i-YeDf$CFS-+<<{g!@HzouW-9o^Q?>ptD9pVm+4NA<({0X<&d zt?$&g>6`UUdW^n7U#qXySL)03CHf*gLZ7G4)o1CUdWb$npQs1xLHcNYq&{39st?lp z>;3fJdQZKZ-bL@Ix6|9`0s1d`Q@yd?K(DLodL6x%UR|%MSJEr!s$Nbnt(VmOb)*;5 zi|9Zvs27lbSo!qa@@fZyS__zixI z)A39E0zboP_$f}s0zbx&a0-5iAK+x1gzw?I_ztG{HvSXe#MkjPd=+2Dm#~8gw($jg z9-qZN?8OQA3_gWV;^X)jK8g?HL-+vRkK^%Pya(^XJMnhB4R6JpaU71t8*vPd#vAZD zycVy6J9ERuO*?1P7fkW|h9D=9f$#@c;h{xk#9E8W> zF?bXX#3S(Uco-gvhu}eYAnuQU!~Jj{+#C18J#i1*4R^(zaVOjnx5w>p8{8VV!Yy$N z+#ENtw~2sgm>ab0X;1AA~C{4=hFYvSs-8m@vX<4X7^TmfrX#pQ8XTn7J$OW~5( zA7iZG61X@nii_aF7~t=5LHr&57Jnntq4{w>oEPWDxo{4g9cRN?@JD%I@J@NFWGJtd zbmgV;LV2d7DNmJDMJSJzM@owFP<%3bA-LY3RfE#;uUOA_nRV>A;Bq*nqQ_2bDxN=N6q8wHZDhHJPO1!dH*`w@Ib}HMIZOT?m>=Os`7!A@ zKfzD(Q~WeP!xJPgx44g=<>&Z$F4sFek=vYbhhOBEq|5vYzsj%i>-+}4DgDWB@!Ono z#_#aE(mnncPvXh^K7YU;N`Lbd{)j*3oC_(HKjBY#8h^&0^B2-f{)(sb*F1y2k>2um z{5}7`Kk_UhtCUS-7db>ukxS&3@`$`5pU5vCIxg`ky;wkeE4~v2MIrIM1Oya?MG;X{ z6cfdz5&{WDVBs%*kV=YD;zvE@UP`v=A*tfM_LJi#AeQ(N44% z9YjYVj|4?$(M5C>-9&fML+UAdiC;x;(MR-^`ib8}e=$G|6oaI}Vu%@P6UhbVuCbLOcImD6fso_5!1wU5h`YgnNr`ZEnPK=7WjWtjQ8%h z?hJQ&<_zPhJJrqIkKBK|AGnjhnqd5Qev#ll?LO%~?mp^1oH@PN>)!3&>E8aI*~J=n zlzXLnxqGRcTr6})xWnCH?m7RNTLim<++*CM+#}`GVyJttd!W0&yWf9i7VX__-L2gL z?iT+{EE>4$xy`TU6_wo;-4)!LyS%&XSJR53?!y1fD!y_1$+1r!cP@91uO=0*v=`bl z?Wvaf)tutXl;Wy(S-YqaE%B=v#c}PZc33<3)r4Y;7N^B(F#lXxI%^%Z z_F7x5wHBbY(3)#awZ>XQt-e-QGc=D@TdSp2*Q#ojwTfB=P1DM2Wwp{;DeVUhYe*}u z71auBKr5tuCsV90Ex(pm%Pn7W%dTbBKC184w`zu(uD(>Ct7+;JRj7~E6!oEcUrkc) zsdrSW-coO>*VU`)W%Z&;)I{~XdRDd61ogCfQa!F7RS&BN)%|L`x<}om?ohX>Thur; zR*g}k)%EIHb+x)mU7;>hBh|&~LN!7SSHsjf>MV7JI$aG>r>K+E32Lw!q>fQXsUy|j z)qo$@`MZ@%@FH{|fi_Hp7vOn#4xWV;^uh#q2A+ne;7ND_9*4)^QFsI%hKJxmxF7C= z@o+EP19!t+a3|aWx5I64E8GG%!#KDJZiF%L4;T$M!1Zt)TnpF0)i4UKf-B()xEwBn zk#GrI3>U$LZ~=^f^It z7LI|VVIUj{N5J3Va5xMOg+t(AI0z1e17Lsn8|(-B!and<*bDZAJz#g(4R(cHU}x9~ zc7z>Zd)N-Pg>7JK*a`-~7VsC?95#bZVH4OGHi8Xd16Uu{gLR<^4X8s8tOIMqTCgUp z0jtAmuqvzqE5k~#BK!$ffNrQk6_$tPU|CoOmWHKZN%#ZwhZrgl!4j}IEC!3hBCs%o z5Ww$YAy^Q82fu{{pbPrJ{4gKP3-iF-Fc-`TbHMB{8_Wu`z>naAJV$&7-hwwE1H1<5 z;1zfQo`YvHmG=}p0jWR$4jzL?AO-vl9)btpK1c>h;4g3w+y!?40~Fi_e}bFf2DlEc zfveyOxC}0Vi@*T{*dP&H0O!Fua2EK01-u{uoB^l7DR2@T2gkrsa0DC%hrmH_0PF|* zKs?wB_JG}B7uX4QfbC!#*b26Q%^(hJ0XbYfj}@4m$}`qWLL4P*){E-ZI5l(b?pXrBfE*++-_mFvfJ40?2dM4yQ|&9 z?q&C}``P{NLG}=PxIMxSw8z*%cCbCso@|HM)9o4dYM5i@n|6Y45hGp~z?UOFP}pu;1Aq?5rd^$w~5%e8i6wAm5Qf1d<}87(oP+lH^BHhLk57 zsX!``Dx?~zNq#1Eh(YR-2BZ;bLYk8nB!ILb?MMgGnRF%HNiWiy^d{jK$On?e z$?oKIay$7PKj$0gJExEXoWf2qr-Y+8KRBhF(oQ)?b=*!xr?OMkso~UeYCF1PI`y1} zPGhI3^NZ8cY2~za+B+ScE>1V6httdHP&M& zomtKtC(N1eEN~V%kJR6DQ4i?!0ndJGrmG>qV|trPXN-T8q}E z9;#E5)}!@lL)w@&rOoIsv?UFot!Z1@j&`7(XlL4$cBegQFWQ^-rTu7sI*<;cL+CI% zoQ|M@bTl19gJ>`vPbbpJbP5fj(`hK3NoUi!G>nGR2)ckSqDyEbT}D^Xl{AX3p=;@S z8ck#9M!Jb^rd#MXx`XbdyXjsUPxsS<^bkElkJ01wBt1s z>2-RO{z-3BM(@yjG>InD2lQ{6LLXB>pU|iD8GS)t(sY_Z-_UpT1N}&|vg|Ae%f<4r zyevO+v2WP7tRO4I04vOjuwtwPLkzPYSV{IHE5pjN@=RlH_7khbDzmDrI;+8IvD&N- z)0xTYvihtcYs8wcW~@1D!2(z-)`qoX?O8|GnRQ{^SP#~d{mS~VzU((PfDL4W*-$o& z{mw?RKsK6MO<)t*WHyzBu<2|Do5^Ogxh#x@vk10;Enre3EhjQ>TN3`cY#DGT=iTVL_3qud zH|ek9Ne7cUCBIBwe82Jo@?hA*d~#daI3+nHe zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00VJJL_t(o!@ZZ!OJi3Q$3Lmj zkVcV!0Ue`sQwD{u)Q#ZKjbNd4CD>M736A~&F5I;sNa&2EE6w0$K&HEHx)K7jh{1(T zs4MMsVR(>fc!vCX$W8L1x10Cm`b=VewO_b!?tS;1^SS5V`(EOref0y+Ej!Nts8>J= zkdF2j@WX$Z_)Fk@jl|CO-kRI>>sWHKp3p^y`zqch9dCFged ze7@h?ff)37Jnz&%TU%RF2=OF9KA)FsYisv@Znygu__>wjJ-}Qr7_0ztU|>M5uC7W= z(`2){yu5q>;c~eI@NKgI&)jbJiS0Z;KQGVE&t)sRyStOoXw-Qi|7;fEd0$_j0Aw&2 zlsh{+(lkxks!Y?AhlhtMz%B4~GXNpmX=!OmUR_g@%XmwK_SI$#e{Gb8{n?mzPz5w~e;o z8{1f4U#GvnzvK6KPfrii)6?qEi$(yS+Q!1dLf5`zlarHbx33YvGus#&8>3RGbez0W zsW3D&R5M4tTL3_zP@q&Qbqr7{mB?f=b)P!{gl*({lZ%TBwzs#P@&2|J6mJ$l zg&4NC!`8;e26Jri_v500000NkvXXu0mjf Dtr+D6 literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/font.otf b/linux/sdl2/resources/font.otf new file mode 100644 index 0000000000000000000000000000000000000000..5fc070609b5795f0eb89980fcb8dfdfb79f153ab GIT binary patch literal 42704 zcmeIb3w#{Kl`mY?-P1jiM$(KldRPx@9(vf)$d+gH9Be#DvW>9;`2p4lVI*6|n5Qv@ zI9V197?wBz%**V}5&{N{A%Sh#m`4zTC4?xs371X0e2``Ne7SoGVYA%ady~DpjxBxv zbE-!g$+9sdAK#bXj~S_^ruuYsokyK>>eT5TA%zh6C=AiixoYVWe8ZQ$BlvVL>0Go} zc*Xl@nvd^=OS;ZoHP(^ajPI+3&>vi~>b&;L@7{VBPW~;92hLqJH`@NguRkJ$%Zu-Q z>#ykFT>JCNSMhx_;A_`kw>6OY&Cu&YJYeJaSr>2Kc*R4_c|XPXqeA2qZ0x@VaJZs) zU>`o+8!!Lr#rx}C3ZnX;5Z8X|k`4U>h4+8sM?&1tisQ|fpdsfB^RMxp&a1rSimlsz z{afGD_jL-@5#&_5F8V^0g0y*!3Q87`~!^+h$``=w%`9 zLH{CfW&af$7CzpWf$u{?XdiCA>YA;6pZps5-2WK9>zlW1*nH{BZ)0qG{ea(3loIHf zUmAb=CoZWyQ_K_*AusRWdZloKx_FI^siQP5v@xa8VhD}vZlTFyf|Pr;`_OL|oip8Q z?3J;1j&DcnE62Cus=pe$bnL;ggJWCA-W+>VL5#JJ6;N%A@TSkJoX>+}3&w64dw`Cl zj`8uWW8dY^H^&a**fiG}`-M8L`bm|k>!~YYBse?unmCqfNqwqokAdzu?^k2L0)2`^ zCEh|*iyBaDwx|`ln2WbdMDaF7Bi@#1!P_m`L|kNuPO%siJX0(aIigGSh&<6NE)?Zr zE8Z32MzKQ##BF$2i@Wfy5qFFG#Vqjv-u2=;;!!b2JT9IRF=2~?=<#{+idZP##rsT* zriMo&c{CbEGaI9+#arVs89XM9$E5L?Ts$TdW9q~x7hz;>^m8W4rFdtEv+%Ys(q(Ar z601xYw*qx-FRCf2~4tpNiWI^@wONri}8_+kH+|DjE~0nXpE1=__!G# zH}H8LS9w9agdT?Q&Jr)-TQfhW;8gYl7!j{$5JLuv^h zgYj`OK883OZxi^eKwm5IHh|fAsGpCwo3V1GVWo)+@U|E?Z3=F;f(pbX7h_^DCWiQ~ zcn0t`-j)~ymkh?rNW)5Fe6%!t44#3Rq71Wh>fBV~r|W%k7p^2+-*Uw;7faQr{`cZy zEe~3N4y9gtszRSD2oH;9MD_r%|dF*#4JlH0T&X}{Fo({Bj)10{i(fl#12&=80RIs;n+ z-wTF9d7*;P3}_j8m7|x3#UtWrVdLDDIQI?h9X>ZdP#h==1o+&xczez92)T1V%;>lj>OdV8oK>{sETLvU3 z3pzC$+8`HK^Fbfv3%@83h0raY&f-p%>=RFjC!wFd zhgtA6=79}sG$;;W7Cb9n#0>a8X7-!nDzRP+h)cv<;#%<#D151STU;YHq3>Iv8H6CK zDa6IlArr65#8>gUZ-^g>|15qgM#PWBbATHb z?}$UfE+XC@l#C75);%DNY#7*MsV!PNW{z`mP+#&81-w^kRdvV6y;y;ORiND7D zd{z7q{C`dSK)f!#!q@yelx0+NZFOx0uPQ*tb3m_4L6rx9{mYP*-$+B|%3@g|tL3@! zJMu~Ss(ep=qPaA$R;ER@(<;_4vopK8&v+4}?gH_bff0+qm@~kl)4{Gd7}p90HiMBd zuyh`n8xeJ2cMTX{2_e9w6uO)tb@8tl<`78yq}UAvz7E!02!Zlp(uSp1{0Go{4h-1~ zR^0()H-U{Fh@A;UB}6VmjDaEF20ILhW3JT1N8$r8l#IVyJ}4LCvr1ITd*r#ORf~YU zPhKFCatR?xnD~E=c4?d zQu@7LO8@8L!5^>t^S+e+&qet^rS#{2DgB>|2YcKNscyl+r)rOX>eyJosa!|H}pM=Lj|Y$pk++@mgkQbaf{Vh^op!Wz`lDs164< z*U0LM%IeJ#IlCehp1oy`42Hs?;FcEI*c^>DZb=|+s3Y97siU~Cpgr4iosnU5&MYl5 ze5T>sSeB=m`B_>m1yhO{L;rHfvGEKLZ>)t4|xw5iKtGpDknozJJw5h(Xc9s!d zB8Ca6v4(}QO`<`{hNNg{ko`h7$Q6j3 zAZC?#c4Fw2f$AInY{rhLPvRv}W@eaW8QcGaIONGMjQj|i{MnK}=g*(~h@2#bK3#$; zW{0+awkiAtiVz|XiGwGW{?9)4FH-$r@t%13WDKadfpzF-$Kng*09L<==cePp=N|kQ z$pWk(|NL2iCD@-a3$Tp&^Jf9p0e{9Un1#^~e>O!F-hOKC+!v^c8i2(sld%YFhetZ$ z)*Y{s{(px?;?>WGL33kt`^g>aFNzZrYXh#G@u+5Mru;j+AI3X?w<%q`A59r5$T85G zv_`F3tI}p_<$(3_zemfGqw<*io&4YOxAK3;PvpO%hxhpZE%~PWvHX#IS-v1``M2ox zN&G({_sU1*-^jm~-;iIIx5``OU&^n^ZSpH}i@Zu+CO66ra=pAr_R4N~o;*jMEzgom zWQROME|BwOt89`n8I=)PhY?oue@F&pnJkfovOwlZpUjdO(uJLHQ|5@@i{FX=DLxVJ zVL$yJuw(yY?9cy5yn&td*N_$PJaPrTi{1UluB6{?B06h&J?HBF5bII*!N zRAd##qAiWC!Xh)=SSQVb!dP>xsK5+YH#HZR1%lMYli%B{jv0aB-jkSU+D65V%-lESl;u>hi~$n`q=!MHp&zQ&B+_G^vsPB6ax? zpiL`OP~FtnQXMwSCE?qgk86Z1v|Fy4rWQIsWHq&@Mvx%d)C{OXT#P#@05#F15XqH( z979*(Pz`9`1R`2B%}sP}foYkbB+d!6geyTl8aN{gq#4Z`MJS5~TrLUUP)&=!s5ypi z8f)kZ1tE|yS`hZfEKnfaf=)~#75C5xxH@S8l~|OS1XRH-VnD1Z+!Sqbt_JokkTFn( z;5B~?7}kVM?coL)|K$4D-y0JRqi;}U^z{dfg2j8Ec(Hi&CqHk}s*FIHtF)|)5|)Z7 zX^E7#Bd&8m?GRy5YJpN+0yujaTc#GZs z89L7Qy5(hMZVv!v8SctiZsW|}uEsLAd$hI8UuL*vz`$i640w({++bzQ^0>Xd%Y1IH zKYw;-?u7%DWtWut{Pnqc=USxM$^Ndx4{sQE3GuRGGg{o;t@X0bQ(WxrJnSys?5zZ}yYY#jr}cKj@T`tR zDvjbSSMfe+dChA7z~!F#vwTHWH5J*#?%k#*((!i<_dT5O{>JFU;M`tmVIZCeaYI_} zGLIL-G~8AOn2YZjI9d$k+#bINkZv%-1L^YyKz6VI2O@y>;xMGrV|d)fo?_E9DCdo` z>W(0fP)9~vMWRe-ntqYcb>G=SN@N=eq_mym^ZC4nRZF0|b8KKvJv7FA=Khmn5 z^NSLG4bd)nkuIh5O`Mk>_QfRrah{BfjOZW9U89?k59wTAUy1We5#(B)SnAR>>B}`S z8YwpBc(ZlOlc@ne_eMi%n(u5FrHs6cbIOp!RaQ|}F|!;emX^#YE`mnR$2iq1&#I`) z_hGa?=UsrSB|-%mhM~(~*$kJV>H2cyE+GL^M;?)ezZ*am4cV!{_#zNZ zJ2$^Lznn-4OXM%gC+#Y|RZX!1!xwI>@fkj^3%ah-2Xo-7lxs1@fq_vEjW0rDrNJE< z85liee5dw~J8F;Zqf$O1d**)o+jB?v-cdXHHGGWjrLVFFhi;pTlsDqFYccaG3wE{? z<6oLsoFO$UOEX-WvB@LdZqaXog*_K8jb$p*;LK7?a1wN z7s9T40!T!!h|PP9gH=O&EM zFm+?2a9Nfs3AC(>gypi%&G&_Zp7h_s?rCm*)-09Fc5%Yrw`x}BW6G-4h@i) z;193eyQu^dED#vX8A;Ken(-pqt1;^zIrA$&fqM`zIWVzkZg@4TxQ=E9W(Ca%#;;Yr zW+sqR8cI|UEYkls;T8d1OVYgThal-Id=PVzoP2K(Hq_^j6$E@yxeJ%vY}oX9w3vve z=#}0d*s4n;vgzn5i7Br2qib!Vzs7J=V21Pto1#re(81{D5yPflj~1gk!u@I8`dN@4 zpQuiRecs%hY)^(8u7IH<0anW8Y3LRE2tAOni9E8FB8YYi`BGYFc^=Tp&4M)Z}?E?IOP$gSpDgBb>;0(yXtE}BCw?OdMgUehY8lfi-@CU>wY z=!?-b=J^3e=>f2ad8YbB2K5nmuDU2r6oB4Bu5q-S6z3|26e)%f0VxHsTVDzJItjeQ zHT9K859kygs&XWQ67(@&4F8*3h5<#`PL_?h-Q+g*0lG-?MSWJPn4y zt6MW5#UOl`goZ@s$nA_9kRZKYAg)|yQ|P-2_?bd(L7`(pZi0dzAGu+;E&^ZkT<4S~ zsui4xiF`7^WTHTdd>_eRrrR{2Wea41Tj3f8l0I)RRL*kY4U#GXwhC3Cc=WIusZuu} z107+eFupwQGI86%3~5?&xf(w1x`Bnn@S$5=#un5~!!kFz)39*4^mU5bha+n}lgHn<1)D-Rp>SxMpdhUQB@N61MWB z@JuR2r)*DF29v5-789u)>R_<|%?))>5G-hp1$+fw`I;I&G;QG6zE#&MeghvUh>t@! zHj1Qm_JtUqd{Hj0J(w*`BgOqHs7lBfxG$jYOej&E_SGcYNzqTT%&1f=I0I}y86XR9 zSxHfWHz$iUsDYd1@=178lQRqq%CRow!GqxnB|^g)I^jU`m1LKgLipVVOdtouariW8 z{4vGML@6|dTsCzA=cx%yTC6~Zwe83D>w(eDKPScihb{oa-*I?s;f{t1_IEtETLrq_ z1wR3ijZMNZG!S5l2Fd_;E6Ph}_;TGv8AUGg=PYM-vi#}+UrM0a@-oYCgtZcIQUX0N zpnL&U($L7%GKyq!8Ee+1$MeoG(|BjV+L7WhG}G7wMWZ+d=7Ejtz(%+@qredk7E3MDCl&{NAA5@Qb)FLq7#y9SqhfMtM>Dp=YS4T|gz%n}vRwn{?$I^5#-z8lp zscn~Oxi+~WuSP#am(6C1n%E;JONATK($0YvJNZe_^$ZVP&lmZ$6Oxc1m%)lYJCi1V zp{vm6&49ZU1P66!E>iOaY2`JOzx4K!`j8Q=pEVE#cBO zO?L`bw)z^(7y{RgbCZcuDQagS-aL~uS)Ml+*kGcEWGIWw7A822Ug0uZ767Lv^#!pY znjJhj$idb=k-MVNQ4h%y`EJKLwIOZj$W^DW-=CT&#)YKd+{ADIj%Y(sZRl91dvx=; z=Q;+7r%aj*nDA2T60?Lr_!TJ8q|wPc@|{fv559|KSw72`hsBE5g2l@Z`p9a`z&aJ9 zq>m$PI$7UhT;Rd6&e20^?RvBr%fSiVn2Bo@i>5>rGNwT_A^?mbj05oGtT}VTaj;fe*u{PpLst^YkKhp%fsb9_|{^B;D7_7n_s> zhhcaPjhq#*YcpBf)T&O`UF%Yw7CbV7GGMH9sJJMEhJ(_0ovczm?bh=m1U`9+_CB=w|43R-So21yBZo@u(rPHD6@7O+g#uNTi zQJRm8g$?+IQR^Q7-asVgTm^St-QIn{oEe;GvLy(5XO5q2jYX&QWq-jED<7&MiF8iFoU1 zK%X z8#(+1J;RpG<^_E|p6`r5i8P#Rxb*nih@}&~;L^asR-{nQP0HCxqqmEFca{iD zojzbh$_y8A2^R$hit8xk6)cFNE7!I^bUCtXd;ppiD_$8e4JL$E_S16HcQ#^fJW|~0 zn-?N&SdK^^BqEAL1zn^vARq`~VXt%w~bHN{zHnFbQE&2HuOMh14l+7it^ zY`4LBAYP>#8z>4lv9M=jjpeZvGbqrRms;GjCZ4jmhg2aZ#3nXvjsIZu($W9E%IBjf z(Ug_`k+rQOKbEAPC)v+JF)uME7c-jzJ84!_g@-4sXrWb57|aVPYo-t<^9e#sk#A+t zc+rIskesK?8JM0vpJ#|0#~0lc)Pp{>uy(|>M&wSn$a@j}w0s035XN4Ya$m6MCUAK0 zfVW%-A)NFCUP-2w+)fZ-hMd8RZbw1-u>vEfMJ>A7X>n}axHk{QsMMsRAtAnmXgWR? z%>k19RPcmt1r#IC0bYDTEmDLL4)q}pyJ7V;VIO!7(fPm^Zj2LTNX?;qC=#VlXryoy zm9BPeqd=h2Sj=1Q&nST&Fhwvi6Pg2@#ZrP5c1nxD#m{3c!tvag6D3ajt^Hkf>EVP5N{{VGP(z9>qF8ksd9AB z^5t@E8a+xW@|Ev`4@>J%wmh3AS)Nc~UZ@aL5|P1lHH(P?ErviZHNx-Q$tqVVUPtGQ zuP=cwq%yV2r1?6*53j(g#tj3k%jFJRpx`Jl2CEnH`#C;KSN6Ja!Ag#!@Z~rz3H~Vk zh8Xd&N3@F&KxQQ|`5GCdtAP~4^V;NPJMYgR$mhf2owpEp@ecQ;NxSaY5L}lbt@G$% zTEde6@VLiX8PZb|h%vLQ*u9yF=WYoT2a$Y%j>jz=-8``bfnp zeF+46g}fD~UZ;YluCR=0pCCv%f+!`?Y0~vhw(5kFA>ru=CXPKDdAIEP^HBuUK{Q%MjqCVpSB;ENXaPo(76xQU z<*rcZ4_zTd7C@*8yGG-fpJ>A(597eqF^RAe9Je?;7QNr`#igLVwTXE0Y(&9w8 z3A$w~x?#zLa26bJ>^V^c&@j~U3PZr&1hW$^8S&7U3$sGoBiS;W={CVP?6h#qi*>hr zEyX+)=`!rl$471_zR}wm(vK#12)Y@FtZ!9TvRddS_H?#@sV7YL!5-N%Gx} z9%eO~Lc;MywVe=wZ1S5ejN64sF{vZW=YC+w^u!cEHCtr!;=$*JB3Ij8&L(b?TAM3H z3Vli|w$xn11X#&)twLO%$jpbm%p`q*UIY#B>n+IWZu+5HriL1C1P{i8(@as-jgZud!U1rnIrf%!iHEW0ZNrb4Bi=87p^z z{h-|5xj(PH1LzPX!SuZj|7i{b2)Z~mZ$Q6XvJY9%8RRjl?RpMq`Oi+d*obYUV)>2( zALDR1Mf35ZNlIaaqlaDFCittZSlx!8~Z^pjddV%ao} zDTiIBWn`KS2S)l1-ua_N6K(p9da$PKbguVV)|AEvz-!vIlK+odE9ooMTIuLB`pVtA zRXITqTvM%;NF>412}U|=CG5#Kd?Y_lagk=0Vj@DYP!vSpbbB*-j}ZKHI{$oogcI5v zBC6Cm6eO-UhII^&zeuzv7Ft*hLkJDFD_Y9DrL<%o4Z>+fUg9)b(lI6^tfVE`TO`a= zS~9is5&GD*E##OLW$i{B9qEjR>>S23p###U`?$5kc(8HD*3M50tmCcS31)J5>I{Ym z9yfF0EwioDszIL&^1CqxT2Ya@gF6F3S1JeIoZ8lJ#^OyU={~ach0%YIm~fYOj*Py2 ztQ{Ss<_@a7Mxy&curYbkH4-lH+15ytPWY3pkziT(?B2b5bPr|Kpd#18rFUpU_CUq! zNRydxtPvEX1tx})ilI!7Bw>3JnSil^7=(h9861tH#bj~d@J{#^L z6BEgC&YQ3pAc;l?hJExf>0~_s^98HI{TU^o`IL1N>8Mj#H=)Dp^&PyQrurJ!FKO#0 zrSSf!brY`h%n4o+-uo($G>B6Su@mW5_6huxrJ}Q<%$v!jSHo~m#hN@|5g3JyK7&fb&LpLs6dLw8K zB}Bf$fJ1xQ1H`pYlEae9d9mEYtMsw@5i=!S1*1ZlLs&VwH0 zg`3aW!#=Fh@B*I({_reapX}I!h{yRkGj3<1z%n#Tc#s|!%*O8jj6%(&8%{PzEx3lQ z71~xbZv%ZaXe;D`SQh)RtZpXuS?UNFl1}@Bp9Y;wc+1Nu%?|P6%KW@w1_e&Yb!>?t zSd832%Il{6mQalqMkIqXdx~T=c8gZGM@M>kM&#)4XI2xD)pv-7lvy*$J@8%o^MPS+ z&at~K9OW-qZH#XA=4e-0z@K#!$0Lix*VM{lmSbBoq)uW>S#%V7quoK@*)a1i^P<$2 z#B2qsZ~s(S-Z-Qnrph48%5-Ay*qd-R4psJpvmwI^-59pgf5$Oray)3u8F`y3>~;kH zCB$g$2-XC|L+RIVHU{9AhQ*nQMS+>+S((UEoKakeeGqIQYs)L}^t!W(e44ftX(_P9 zIwTuSM?lRrgXNaI2z>{IH0k%jOoI8Xx)G*WsS(&*(cAx*ya zJKAe&QFPyQQ+HZj-$AnW(D4TtD4q5J@s;O_VF9yf`<8AtuYqX<2e)AJ7OOc}oJ%Z; z+aH)4iV>KJoH;d%AVro03r-H2OyptHwzQ~FEw6ljp9cxEDqsbZs*?F}BLpYg$C@Sw zum}-)k*2}yVMlQ9+&1h`L+M9H+Q!3K>=!z^#}WL!edU@pjvs=lxn>PH_)Kp2B_*i< zspCMYeHeDD5JBBdi!0FF^`5qq<5ZTY;wV=MwxfvLv@0bpf+DA6M<>|F;VSUig?|v5 zuH||U*F#sZ7?dyk6nrxa-eypINWH05bPHwX8Jtz&GB*o1MUvcNQx?=NZ6%XcgLbek z70A}+d6m&msfhFtf>LG>pKg*u{A}kZ+SHZ#RAkoOaO&4a+C>FrB?Xa|gvB}qH#}LH z?im>~)I9fK%}(TyD&p^T1@gnySapCc3#A55c{!H>E~EAdXDVQSSY9xPSL}Dx{(R2p z<7C$;bKzL$u}-+VDxcwZuyfegTQ9LD1uv1%z{eG@#E7&1bHcb_a3U@knkFvjo|4-+ z5nnn!E(p`h1{XY@8W+U&{3pm0azTMqCW09-`dFe+fe0}^5F#cSlIJ3Kffp&IGN$K; zRmoPA63+0_hRExq)wlX2n*!&Ga%f%RbY)WtdDdNxLz9w_N|BL^Fbx^gN$tsl5LHSt zrEL;lSlfxnQUDqOxPXTA2-1{{7U3zo)nYx%d^g-oq$5&n2^r$Z$VnGb6M>yg5NboW zAgWVDltiSuGDP~3w%TAcCKA|=7ZIA*<=8;SW*_38l0IV5Ag#|Q%SoiUS?wjz{RT%5 zPb($l2hrUKv;j-DsaIe*4-ErhggvXB3l5ZIj07?kpbWBcr; zIy3@C$*w;wcL56|?A1+8+l2@_`Msf&=l4zmIsw{h`i$T-3eff{aa7rqDH*{NW`r|>vEClH9=p_j8_5>Mlnfjm9K+TBDw;P5$Xd=JMElMDkjMb zHMM8J0dQV@Qw%({{HEBBT7I*v3EsEN=KBF4kmznZ=CaAKGg9~_9|u9Kp(OwpNtOXUcU0|SP$(eWVhY0~-F6DN65 z$FE^Y7(YICDbAWWu8UVO`_g(~8W7BD<9%Q)o`O-MV7ib$@*KyAi$pBZ01M-`Xg^Y5 zPV&uQls<~=WG67^@py_nMUZ{O1(8>c016bikCR7{WQ$EBPAA0;p|}N9ISu3&(+etI z>sBfG^hw`QPVj_fb{^A0$?Q0;ByYGclxTq(bj``pPyqMUW?iepuS-7^>* zvJITO&gv=1pbqpVlI_Yc3*~y zMXPLMx<8A&7D{PA;yRK;RjOtXsp=u*u3{b`Bts6Tay&7qILnbg!XcIHNb3r$VQ8_F z+LWP@(D&3NOVe?PRfO<+CeD0e+pNhK#%;VB>jVsF_o*oPMmw>!^`OoRwQBcE~msemI0RaIF# ztFpeT9!uDA?2AzPUC^6D@x356QLzN17=gMk4tX13AqSIjqb?^Cjpvf;E6Hu3J0;|$OkJ7?IS+hR0Kv2#rGGfzPV6wJwG zK*5|)2GXuI4S$urW0+Uec<`HHQ~gfTs%z6=u7M_*0;B9+8Vu~-v@oxw!NBe*n3TLZ zdV%a-F7)lf#C&AfW2Hf1JZIel>!)rHP`hSyKNBa96&L3Fa96ClGdox2a>_s0jx0N@ zh%keXOFn`eW8#kAZDYe#0q@C0bXL_od&lRAc_Vnaf@$WhQ zfv*bY8DQcqJFmV9z%vWpZZaI z0y8K?EaYam<%swsDJG+>17kF7s}yti_}1eO@x3>652UWq1_AB0@%WuZY|KxACJIZA zmJ|8plwiN~OUzFN0Ya`KoIMZ=8}%6Wm7NuBe-DV*~Gg}zefAnu`_{c{S> zCiyI|uwP_AaJB#9iev zao&hVSxhh>bPp)}>62tJQ5xfT7Sj&O6mn8$*jML1^XcAFc!bWbE)slG8^Guoz4QJr zs`+B#5lC752qfwo!&Pxmwos|{0RpYdIYkGq8>dUMw}xxNecK6MXYqYzG_PoLfmZ`k zV0QtJ{J~9fIwqy3y9I2fFtr6#)b7}qLkGMa%f0-(NT2=LmoeKCVf{bwIB6a z&d=vqr6N=M`B;tRz`p3tb5MN9vz1ca<(P_&$LMJ-F8|1p-_YZXoN>eWlMfdbk1FrK z6{|#$VT*8^mgU}(Ep_ZwQEEk&bY)7@?J`x8MGj~W-da}1I>FDpqTOje6^SG`*K}Lk zPyOU%A}mEPfCpwFSs4$a_p3*zj3-}&WjL33sy3wg!6~%6l3F0(-feJ)|Gjv?4zY%W zhXqJQ7HJ1bC1lX84;*g9UENg05{Y!L)@^P99V`)W?t#F)Zg_4PR+{>4JXs)Vocf3S z61Rq!x>$jo+7c{ZLKKDbW|@eXG_$6n2H6Khy`Yz~JH}Ukpc<#_rxI{^S)O zc>1>{nYUUBwb z(x0ibk#bkD`62|KRHmM(<1VeMI>9q_KxAi;g{>&OETW(F5bK)MbK2_g)0sVqHQBgd zBFpQ}h4+dq3!n6OQps3&R4bm>X6ZRljZjMU5%tKnd2=JN`dHoUnyM2%ye;np4{vjw z+QZ!R9jQmS9lbtPJK1C1*kq;_nhNjKH{cGPNB;{J?|J*8-1)y3*>0kUc&DlBIsR<< z?OS7)jy75kS$X)5T^VY{3!hg0XrnmK`t{g~u?MYN$B(GvLcEXXZ1GDT1vvdL5;L@` z#SH!1>L1U};5xTw;~4(+`zP86j*jVVs*R63=cf9Y`bqG7&J;M;?^PdD;nTlQJE{?5#EhwM@<}yj{_IhGaDB>{=-S#pOk9J<{*Mkk@R-^!!#ng#oj2X}iN@3yeHs@| zp~ufA`cGYdoHh=f>3gdG6n#?Tr|WUwL5E+26V3y#chf&ITBE6Rru$Ua8ap`km|Qe= zknvwMwgUAPSh$SK$y8YVjFTLjhQ{gV|4FX@Dc7LurRYyQAX@Tw;`K7{#E}_=?-W=E zp3b3vf+e}9e=~{ipo{tP1pb5% zcTn%)vX{#tE{9Q8Gh{VGR*NLys{u)6FPB4H4x_AL$Qp*MVaOVWtYOF+L69|qAZLqu zMCfLV&anqkF6Qz~E|-oSM9W!RKYMH|>RpHl&K4`UT*>XLxW1ap^SC^p%Qbv%H`kM6 zzrtBPTwcH}ysz_Ji{Zb+eLl?PBV6v`@=-1y=W;KXPjI=9%O|;fip%eEZ{Oqc zX)d4P(&loIVfJ%*fXipOJjmtqT)x1NFLL>PE??quh{rt4WjfClEn`>Vr?1<_+EK>2T#6p%iZxs&#|lvI;j)*@ySROb>%%DVt482g zl&=-#Yeo55QNC7`uNCEMH8Nx)LpCyGBSSVaWFtd1GGq(5zW_hZ-8ps(%Eers$>q|q z2hegB*Sj#17Vw?QmE5w5>#MmukIVD9T*GH|b3F;3w&1!{UcfEAT)&X(Te-Z8;lIOu zKFsAKT<+oWQ7#|naxa%paJi4mC%Jrz%kOe;-{bOWE}!Aj=5ml>_H%iF%V)Vf$mR1~ zV)p~%e38rVbNLdNLpB&av;JT+HQ}T%N@x&6hTwFKwV3 z!O(nZ6Et7i1kIN=aXxx(6EsuWKqV?^UbG3C7j5E3zRGqkZ{qT1E^py-2bZ^U`5o^6 zVJ;uxau1h}a``xyd%1jq%Y9rv$>mdA(%fkiGZ-+&UA}2-QrBQIMXf8bc-|H;)3WF7eu$XAiBi`(Jd~BZgD|$iwmM#ToB#j zg6I|(M7Ovgy2S<2EiQ;|aY1y83!+Z-+&UA}2-QrBQIMXdIh;DH~ zbc+k3TU-#`;)3WF7eu!>(=E<)i!%4Iap_@PdKi};#-)dG>0w-Y7?)ngrI&H( zWn6k0mtMxDmvQN3TzVOoUdE-Dap`4TdKs5q#-*2W>1AAc8JAwhrI&H(Wn6k0mtMxD zmvQN3TzVOoUdE-Dap`4TdKs5q#-*2W>1AAc8JAwhrI&HJkR@#^mp4K_UlBJ#KB**s z>_%8ID#;(a5!RDR^2fF_^JHb7EI9_DR;q>}u`yBP8=hP;a*?_$Wi81gQLyo(|4X2`o4 z@@|H_n<4LJ$h#TxZic*vA@5Q_hP;O%?_tP$81i0*yq6*GWypIO@?M6#mm%+E z$om-bK8C!HA@5_z`xx>*hP;mJ$h;_&i>yRPVAw#S~hFFITu?`tx9Wul^ zWQcXh5bKa3)*(ZzLxxy~46zOwVjVKXI%J4-$Pnw0A=V*7tV3SL_}>&SGuAIN)>zvC zqhZEwn6VpX?1mY;Va9Hlu^VRWh8eqI#%`Fg8)oc=8M|S|ZkVwfX6%L;yJ5y|n6VpX z?1mY;Va9Hlu^VRWh8eqI#%`Fg8)oc=8M|S|ZkVwfX6%L;yJ5!e73SBwjN`kEELdBxyI_A|PT}>1k0BXxYtina zkBe6qZ!P}oV!Qb5;@`};bjBwol_i&y43~UTT2k6sx~KHb(tj=smGzWuE8Ac8PPwBc>jSR^i-T)}!@*BNYeU}* z?Fqda`uA{7_{{L;@V@YGD_bkqR=!dB+p6NK)2p^sy-=M~-CBKJ^_|r}t^TOSQ}fN5 zPiCDp>)Ba{XJ0w{zS_>(+iRbz{jjdPZdcu&x}%ZXBKsom)SLA)>zCJGQvY!MTlF8* z|89;s=bLjLnq$v-b)ai4@0hZ ztZlfm;f96>8~)ckV_xCB>Uquc&YX9{yw~O(n)l(ne~)HH%c66lFGOFDz8(E2dL-tF z&5Sj~+GDF@55?@*Yq3MI4`ct{nAsR_+|{_J@!7^V8sBOB7^(A}O+8K5H$B{Rxanwf zV{=#YrOi81AH%d;)NY&p_e(%Rhm{Wf=7s4d!N$KCPjcvt*q zDjFf)*XAPw4majvXJVK5t+)f>=%$MG_(l=MOmPDu_;}n6>Ra)z>UdNIzNxx~J7ab_ zbzL;zcdt~t0T}vy0Xo-(U%qe-@M{>G{2h{edNS&d)Fx=LIr z0^$s0tzU)T%(_wx;Mz)%kN5BfSjA zQh3#ai|M`K=U^b~{2HsF`z@wtpWU5%K9s8}s#T?Aa2gVB+kM#1Gq z@U9uLh*qqb?Pw{Wv{hQb$p2n}-{RqEow+gLH!Z&6Y*cfPsPu~o8s4? z?k~h!_%*!01z&%Q-@AKT9Kx^TT_XNP{Hypne&KEtX66;3{FUNi@cU};Yzw$Xzk+ui z+T)#U-5f;?}>jB?~486fOrmm z#_Qr)cpg6#H{+N0{tCakH!NNeLr4t#ruZM?B{3*$@k?onH>_)~+|Mu0Qk*o_jdZH7(RjuUmH6w^$@8*K!GEiqd}0=77> zdr>kFSoVU*S+UGESM_w;jivUiWZ%Vso#%DiT2=pxZiv(R_2G4;!JsXYw&)0V?#FmK z`r7Ml8L7uVZb1Y5nqdRvbK1`g={0@2=K=XV79`q~FIe@FXZmEK`%9jmtmY)=@K zj{X7L=-Rd)d9>)p4sIw5QtSSl0@+>`KsDUHACIrbv9K+=x;G^E7fOPxw~dIc*VzRf z-E=*>u%p8PC=Cn*>{q*Nqq=AREScT0X#FDFT+|)3^{V8`3%UVZy0bfAcXgpDkt_|^ ztyF7GCIf>C8Y99p*n`fufZagH8wm2%uI>P+v9muwKg`~TmH-{gq*^o8n)^!o@SBpQ zpqB0FSZ|A!-L~LgaS!4lL0%isvE~ji7w7i>TN4xXLQuVk#3`loCViKq&^98YNg8?(bBW$Ued8b|ucj z$>XS{pOi!LA8tQ@pUl!1fkma^V6qlMoEyOnN{j4){?2;a8vzP|fSucM7GZ`8IAnY2 z+e&=%GQWK2$jd|tfClR^aNF0>7ueYsuzes~y`2|Xwz_-J80bt^+Swbz+v@H7$g&mP z%T}qz(jeONx!oTb6nP!zbr0s{b=b1M-S*Ydl!Ius59U(gMPbWA@ItTZ>K>$d2y(UW z1cz~1Z*4G)(^7TF10APRFq7$M5|}K(_?Mt{GP6#=!a-y!g+b&FTb#Zh2>>h)1raDP zZPDs(J1^WGSY+ow{IW5z`yh&bwDe&N&leX@M9o2Ht2WP+25!u4MENe zfowrtyQ2C6PgcK1(BmF8VBs44U*=9vQUgb7o}FO`jE!!3_GW zi-0VO5w_U}l7|CxY#GH>%kmz z5s98XuXfNS3l?=lI}#UTY2-N(Ok*U_#3OG)Z>pa~$LkBIp=n1;?V^yM{UbV054R3B z$^yc*8T0@G)1K3ZS<~NIZ?{C|6wR-&B(eo#0LC01w`0nC72tzxi2k7&2EI_fs;oD&WN=I=zGr%eV6%u)T> zCT4>J9kBaIxg=I}A20&0Kg|Q8t1UKi>NXB+zrk`kRVCWpX0YhBGD3cghE6Vr7Q)^eKlQ@Sl)8=62 zDTEeB1~XxFNcvgwKbuG|nNGkyj}#NVNsrABx0VLeIvI9`{c%9;3f8h*RS zp^JmfI0=@51O;l^!%e{q&!1yAW0s$Fg7#(TPWtoh7Qifz*lqYYo2a-5SwM%$hRNKVkqS~cAE~;I|s6Hi{t~dKkN0;2f8+jcR8<1suBrrn6V5zc^>?$X z62L90N&q_myKua}TlpLJcblpb_+P0if!~fZ7pnfguBrsEQ&kDz83%%o zZV^^buw}{iI@`U$)+@WVr3`vKq)K2hII literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/launch.wav b/linux/sdl2/resources/launch.wav new file mode 100644 index 0000000000000000000000000000000000000000..b85c1094fe1a01f23adb9fee2f26a75edd6a9095 GIT binary patch literal 15126 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 SK{$j#Xwd751f8#cAO8m(i7;dU literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/lava.png b/linux/sdl2/resources/lava.png new file mode 100644 index 0000000000000000000000000000000000000000..4e78ff21268a846212fc93f4eaf012154630f2d8 GIT binary patch literal 14627 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 literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/scorebox.png b/linux/sdl2/resources/scorebox.png new file mode 100644 index 0000000000000000000000000000000000000000..556eeae66b593049f922c2523b1a3cc6947c2b4f GIT binary patch literal 637 zcmeAS@N?(olHy`uVBq!ia0vp^X+Z48!3HGliXVmmDYhhUcNd03AlQ5TVHr?_v%n*= zn1Ml08H5=tmfC{^*-JcqUD=`Ki;O^-g5Z=fq&cML<)YHW=q~g}wyS90c9Aw%)UN>9x_;AK)QFcRh&-rQo2RV1J zhZpc`u<|Z4@N#TS(K5NQ%qt~(TZHhzM{nAv_-M>?pVid(>i=fn=M&dePnqJOr5ZVH za_BYV`YYD9hD-G0{TJM^^b5G}Wbg9*Qn}~KSI=)xjS_LyFO-Q+?$JGc>C*A^o{fbv zw>7%rq~6Usvig5blX19+>-x_>_nd8gz3yVhmt7G$dg*aLr)x|yk?VIXj5&OUdHuf9 zdq&4Jc$}9#-SGJ1ih~ISTg#b)r!8$#NQmNFy~=BC*z5BK*P_(EvR2M3|9UfB<-4T8 z0Rbpt;V}RsMrIx;az4NSMlcmXr5K8o8QK~c!DwN9+s(Y~K1U0EjrTWtUJmh`WT5M= z>bc0oH~(9-uf3fN->kD~ufA4E@wLAyvHDayuS!02-t${;%T9g%bGLlLy#pey3-h*X zXRqC)6Fe=|=hI~Eu1D|tH=Rv8yhP@@NpXBo=}yDBelw>$mP(6bog}AHYyJMs_v*FR zvs)8a)a_qiHrxDEz1#B3o~y5VO+M*z`st_d>*p_xKR%@(?{w|j?U$!p+-MJ;9`V1q msPFJ&8U6F0rTF`Qb6#87w#;hc165$EVDNPHb6Mw<&;$T}Z3n0T literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/select.wav b/linux/sdl2/resources/select.wav new file mode 100644 index 0000000000000000000000000000000000000000..b39de7ebb60991971d5d9030999ad7089f8b1daf GIT binary patch literal 4846 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 z

}=pTT?i4t!6(KR<$hzjek%{0janej~qw-_IZ8f90?6xA{l>-+U7f@)R%eN+C@! z3m)M$p^MNdqR!yLTC^o0wU0YC?tq#Q7>9Vmlzb=i(SQD zVqbBPI7}QRzAsJ?r-;+V+2TU6L|iVe63fM}#ZBT?ai>@*9uR*KkBeu-3*u$*ns`gR zD?Sh(i_gTbrM$M;Z9BGgw$-+k;^Fvz;~&Ofk3SQCApVE=b@9vM=f+Qo&yUZEe=EL2 zygS|)pA^q2AVq`XiQQ5fv#>5EYVA zN|g+fS#n5TDN|}Mb&5z0pIxd}(&PwN{OVV%BRq2LwOS&!HlO9Nqq{q@z>ACce hR4dg>jZ(7|mZB0MK@uwA5-HIVEAf&j$$xCc{SSs>`lA2< literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/splash.wav b/linux/sdl2/resources/splash.wav new file mode 100644 index 0000000000000000000000000000000000000000..56320a8f3eebc1da98c62be1c9658fdc687dbe6f GIT binary patch literal 25068 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 literal 0 HcmV?d00001 diff --git a/linux/sdl2/resources/splash_egg.png b/linux/sdl2/resources/splash_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..2de155797d0bc60eff684d5cfe83023bd593aa03 GIT binary patch literal 1335 zcmV-71<3k|P)e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00f^&L_t(o!?l-NP+LV9$M@{H za4tEyK_HMq=|tNRI~Ju+)(1jFIx^~1J32!N5Mag^J9avbqqMd1(2h^q>4TS%a%o_2 zrZw%o;_wW zv8OFM%DCCQ)rb&W4ut!UT$nhQk6kq1&FibnKVk@+%r%!GaMEgE4j!;qaNgPZnOyT> zJ^(fodpdpWjz93#PYb@Mep&Rj+*=7w=d-3D3BEqsI#*k2*q6)2nIyWm68s@oOk|Z{ zz|{y3H`ou^Eykl5gelOw{=mDL^!3ip&on=_L$n&0gUPWH9NlriZk@V1x3IJ&fB{z{ z#2{?gWifbJl1S!h_p8CvCU+I$QT0< zL2Okf-KA27(kI6_L5u~X;@i0-3q)h5cu7{0{R%x(VbM|N^Y*}itC1jatj%6-Y=Z~_ z5&!@}lGXbw!8bdHZ+)K&;OgAMl5>xZ(2>N`1d2ig0Kifum5$w2rI&uY|7}hWpb$P@ zUCN$Ck%zL&s+w3><32euIPqz|IU^#<{SVf|*HbnT1lY`MZ(b5W1XLJlQV#$CagYEZ zK?;Qh>C{%TTd!wY3GgxZaxjw8-9VL4iy*DMOjrJtcTy}@k|G|nzDO5 z(?LJSzoq@(EiB!e6ToU<_9xr28dqbo@Eoi}cbX)JWChSZGD3oMzE}Xf zBzrRLvFUY;Lb$6~05}Tw=k*>?;_+0Qz~H_j0@yR{@gIPYAVrexDxGP&NqVT$QNP{IhdLegCYq#^eMwQdtN?zFKbe*l#|Aqbm4$9T*x{(O8kn)o z_SgX68k!sxWF;k1jagr(Bk{gM0dyqZS7X-KX*?WHuOYDXMT=|P_#@?}HvHjL4yug0 z?vbvhYic}kyZhqQU-_OKg~(p5_OcpJEUt0mc|A&R9(!@oX4LJ}ymF#Gj{hk7Y9A=lGL)iWp=|2s{~(CYp3Dt%n*sZs(bJ zBC)E*6Sp_!4P-Aw5K9?LozS`+006?GB&Tbi^I7h3JKG<%ng&S>!;*4nJi_}p-kTP% zFPmtR(T>S#JP}hA<*qN#ovnV{v@Y=L()$R001#XQ4}>U`#Ao};m>Zg7qvR}bUR&TI;sx< t09cZ!Nvn>R003YuBAj&%PI~gS`43fw(%E{#kM{ro002ovPDHLkV1oZ3V{`xj literal 0 HcmV?d00001 diff --git a/linux/winres/TF-icon.ico b/linux/sdl2/winres/TF-icon.ico similarity index 100% rename from linux/winres/TF-icon.ico rename to linux/sdl2/winres/TF-icon.ico diff --git a/linux/winres/TF-icon.rc b/linux/sdl2/winres/TF-icon.rc similarity index 100% rename from linux/winres/TF-icon.rc rename to linux/sdl2/winres/TF-icon.rc diff --git a/linux/winres/TF-icon.res b/linux/sdl2/winres/TF-icon.res similarity index 100% rename from linux/winres/TF-icon.res rename to linux/sdl2/winres/TF-icon.res