From 94e74fc5576ff0418b093086cb12d014ac54915e Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Sun, 8 Apr 2018 12:01:06 +0300 Subject: [PATCH] * update SDL to 2.0.8 https://www.libsdl.org/ https://www.libsdl.org/release/SDL2-2.0.8.tar.gz ./configure --disable-shared --- sdl/include/SDL.h | 11 +- sdl/include/SDL_assert.h | 20 ++- sdl/include/SDL_atomic.h | 25 ++- sdl/include/SDL_audio.h | 175 ++++++++++++++++++-- sdl/include/SDL_bits.h | 25 ++- sdl/include/SDL_blendmode.h | 67 +++++++- sdl/include/SDL_clipboard.h | 8 +- sdl/include/SDL_config.h | 132 ++++++++++----- sdl/include/SDL_cpuinfo.h | 42 +++-- sdl/include/SDL_egl.h | 6 +- sdl/include/SDL_endian.h | 29 +++- sdl/include/SDL_error.h | 8 +- sdl/include/SDL_events.h | 62 +++---- sdl/include/SDL_filesystem.h | 8 +- sdl/include/SDL_gamecontroller.h | 65 ++++++-- sdl/include/SDL_gesture.h | 8 +- sdl/include/SDL_haptic.h | 44 ++--- sdl/include/SDL_hints.h | 267 +++++++++++++++++++++++++++--- sdl/include/SDL_joystick.h | 131 +++++++++++++-- sdl/include/SDL_keyboard.h | 8 +- sdl/include/SDL_keycode.h | 18 +- sdl/include/SDL_loadso.h | 8 +- sdl/include/SDL_log.h | 10 +- sdl/include/SDL_main.h | 19 ++- sdl/include/SDL_messagebox.h | 8 +- sdl/include/SDL_mouse.h | 10 +- sdl/include/SDL_mutex.h | 8 +- sdl/include/SDL_name.h | 8 +- sdl/include/SDL_opengl.h | 15 +- sdl/include/SDL_opengles.h | 2 +- sdl/include/SDL_opengles2.h | 2 +- sdl/include/SDL_pixels.h | 12 +- sdl/include/SDL_platform.h | 43 +++-- sdl/include/SDL_power.h | 8 +- sdl/include/SDL_quit.h | 8 +- sdl/include/SDL_rect.h | 8 +- sdl/include/SDL_render.h | 38 ++++- sdl/include/SDL_revision.h | 4 +- sdl/include/SDL_rwops.h | 43 +++-- sdl/include/SDL_scancode.h | 22 ++- sdl/include/SDL_shape.h | 17 +- sdl/include/SDL_stdinc.h | 94 +++++++++-- sdl/include/SDL_surface.h | 45 ++++- sdl/include/SDL_system.h | 49 +++++- sdl/include/SDL_syswm.h | 31 ++-- sdl/include/SDL_thread.h | 51 ++++-- sdl/include/SDL_timer.h | 8 +- sdl/include/SDL_touch.h | 8 +- sdl/include/SDL_types.h | 2 +- sdl/include/SDL_version.h | 10 +- sdl/include/SDL_video.h | 63 +++++-- sdl/include/SDL_vulkan.h | 273 +++++++++++++++++++++++++++++++ sdl/include/begin_code.h | 25 ++- sdl/include/close_code.h | 4 +- sdl/lib/libSDL2.a | Bin 2110416 -> 2613816 bytes 55 files changed, 1702 insertions(+), 413 deletions(-) create mode 100644 sdl/include/SDL_vulkan.h diff --git a/sdl/include/SDL.h b/sdl/include/SDL.h index 1a3fa285..d48d9d4a 100644 --- a/sdl/include/SDL.h +++ b/sdl/include/SDL.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -26,8 +26,8 @@ */ -#ifndef _SDL_H -#define _SDL_H +#ifndef SDL_h_ +#define SDL_h_ #include "SDL_main.h" #include "SDL_stdinc.h" @@ -40,10 +40,10 @@ #include "SDL_error.h" #include "SDL_events.h" #include "SDL_filesystem.h" -#include "SDL_joystick.h" #include "SDL_gamecontroller.h" #include "SDL_haptic.h" #include "SDL_hints.h" +#include "SDL_joystick.h" #include "SDL_loadso.h" #include "SDL_log.h" #include "SDL_messagebox.h" @@ -51,6 +51,7 @@ #include "SDL_power.h" #include "SDL_render.h" #include "SDL_rwops.h" +#include "SDL_shape.h" #include "SDL_system.h" #include "SDL_thread.h" #include "SDL_timer.h" @@ -127,6 +128,6 @@ extern DECLSPEC void SDLCALL SDL_Quit(void); #endif #include "close_code.h" -#endif /* _SDL_H */ +#endif /* SDL_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_assert.h b/sdl/include/SDL_assert.h index 402981f9..b38f928a 100644 --- a/sdl/include/SDL_assert.h +++ b/sdl/include/SDL_assert.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_assert_h -#define _SDL_assert_h +#ifndef SDL_assert_h_ +#define SDL_assert_h_ #include "SDL_config.h" @@ -51,9 +51,11 @@ assert can have unique static variables associated with it. /* Don't include intrin.h here because it contains C++ code */ extern void __cdecl __debugbreak(void); #define SDL_TriggerBreakpoint() __debugbreak() -#elif (!defined(__NACL__) && defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))) +#elif ( (!defined(__NACL__)) && ((defined(__GNUC__) || defined(__clang__)) && (defined(__i386__) || defined(__x86_64__))) ) #define SDL_TriggerBreakpoint() __asm__ __volatile__ ( "int $3\n\t" ) -#elif defined(HAVE_SIGNAL_H) +#elif defined(__386__) && defined(__WATCOMC__) + #define SDL_TriggerBreakpoint() { _asm { int 0x03 } } +#elif defined(HAVE_SIGNAL_H) && !defined(__WATCOMC__) #include #define SDL_TriggerBreakpoint() raise(SIGTRAP) #else @@ -63,7 +65,7 @@ assert can have unique static variables associated with it. #if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 supports __func__ as a standard. */ # define SDL_FUNCTION __func__ -#elif ((__GNUC__ >= 2) || defined(_MSC_VER)) +#elif ((__GNUC__ >= 2) || defined(_MSC_VER) || defined (__WATCOMC__)) # define SDL_FUNCTION __FUNCTION__ #else # define SDL_FUNCTION "???" @@ -201,7 +203,7 @@ typedef SDL_AssertState (SDLCALL *SDL_AssertionHandler)( * * This callback is NOT reset to SDL's internal handler upon SDL_Quit()! * - * \return SDL_AssertState value of how to handle the assertion failure. + * Return SDL_AssertState value of how to handle the assertion failure. * * \param handler Callback function, called when an assertion fails. * \param userdata A pointer passed to the callback as-is. @@ -250,7 +252,7 @@ extern DECLSPEC SDL_AssertionHandler SDLCALL SDL_GetAssertionHandler(void **puse * * const SDL_AssertData *item = SDL_GetAssertionReport(); * while (item) { - * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\n", + * printf("'%s', %s (%s:%d), triggered %u times, always ignore: %s.\\n", * item->condition, item->function, item->filename, * item->linenum, item->trigger_count, * item->always_ignore ? "yes" : "no"); @@ -284,6 +286,6 @@ extern DECLSPEC void SDLCALL SDL_ResetAssertionReport(void); #endif #include "close_code.h" -#endif /* _SDL_assert_h */ +#endif /* SDL_assert_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_atomic.h b/sdl/include/SDL_atomic.h index 56aa81df..b2287748 100644 --- a/sdl/include/SDL_atomic.h +++ b/sdl/include/SDL_atomic.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -56,8 +56,8 @@ * All of the atomic operations that modify memory are full memory barriers. */ -#ifndef _SDL_atomic_h_ -#define _SDL_atomic_h_ +#ifndef SDL_atomic_h_ +#define SDL_atomic_h_ #include "SDL_stdinc.h" #include "SDL_platform.h" @@ -118,13 +118,16 @@ extern DECLSPEC void SDLCALL SDL_AtomicUnlock(SDL_SpinLock *lock); * The compiler barrier prevents the compiler from reordering * reads and writes to globally visible variables across the call. */ -#if defined(_MSC_VER) && (_MSC_VER > 1200) +#if defined(_MSC_VER) && (_MSC_VER > 1200) && !defined(__clang__) void _ReadWriteBarrier(void); #pragma intrinsic(_ReadWriteBarrier) #define SDL_CompilerBarrier() _ReadWriteBarrier() #elif (defined(__GNUC__) && !defined(__EMSCRIPTEN__)) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x5120)) /* This is correct for all CPUs when using GCC or Solaris Studio 12.1+. */ #define SDL_CompilerBarrier() __asm__ __volatile__ ("" : : : "memory") +#elif defined(__WATCOMC__) +extern _inline void SDL_CompilerBarrier (void); +#pragma aux SDL_CompilerBarrier = "" parm [] modify exact []; #else #define SDL_CompilerBarrier() \ { SDL_SpinLock _tmp = 0; SDL_AtomicLock(&_tmp); SDL_AtomicUnlock(&_tmp); } @@ -149,18 +152,24 @@ void _ReadWriteBarrier(void); * For more information on these semantics, take a look at the blog post: * http://preshing.com/20120913/acquire-and-release-semantics */ +extern DECLSPEC void SDLCALL SDL_MemoryBarrierReleaseFunction(void); +extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquireFunction(void); + #if defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__)) #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("lwsync" : : : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("lwsync" : : : "memory") +#elif defined(__GNUC__) && defined(__aarch64__) +#define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") +#define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") #elif defined(__GNUC__) && defined(__arm__) #if defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7EM__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("dmb ish" : : : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("dmb ish" : : : "memory") -#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) +#elif defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_5TE__) #ifdef __thumb__ /* The mcr instruction isn't available in thumb mode, use real functions */ -extern DECLSPEC void SDLCALL SDL_MemoryBarrierRelease(); -extern DECLSPEC void SDLCALL SDL_MemoryBarrierAcquire(); +#define SDL_MemoryBarrierRelease() SDL_MemoryBarrierReleaseFunction() +#define SDL_MemoryBarrierAcquire() SDL_MemoryBarrierAcquireFunction() #else #define SDL_MemoryBarrierRelease() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") #define SDL_MemoryBarrierAcquire() __asm__ __volatile__ ("mcr p15, 0, %0, c7, c10, 5" : : "r"(0) : "memory") @@ -263,6 +272,6 @@ extern DECLSPEC void* SDLCALL SDL_AtomicGetPtr(void **a); #include "close_code.h" -#endif /* _SDL_atomic_h_ */ +#endif /* SDL_atomic_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_audio.h b/sdl/include/SDL_audio.h index d51f0d1c..d6ea6895 100644 --- a/sdl/include/SDL_audio.h +++ b/sdl/include/SDL_audio.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Access to the raw audio mixing buffer for the SDL library. */ -#ifndef _SDL_audio_h -#define _SDL_audio_h +#ifndef SDL_audio_h_ +#define SDL_audio_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -164,6 +164,15 @@ typedef void (SDLCALL * SDL_AudioCallback) (void *userdata, Uint8 * stream, /** * The calculated values in this structure are calculated by SDL_OpenAudio(). + * + * For multi-channel audio, the default SDL channel mapping is: + * 2: FL FR (stereo) + * 3: FL FR LFE (2.1 surround) + * 4: FL FR BL BR (quad) + * 5: FL FR FC BL BR (quad + center) + * 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) + * 7: FL FR FC LFE BC SL SR (6.1 surround) + * 8: FL FR FC LFE BL BR SL SR (7.1 surround) */ typedef struct SDL_AudioSpec { @@ -171,7 +180,7 @@ typedef struct SDL_AudioSpec SDL_AudioFormat format; /**< Audio data format */ Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */ Uint8 silence; /**< Audio buffer silence value (calculated) */ - Uint16 samples; /**< Audio buffer size in samples (power of 2) */ + Uint16 samples; /**< Audio buffer size in sample FRAMES (total samples divided by channel count) */ Uint16 padding; /**< Necessary for some compile environments */ Uint32 size; /**< Audio buffer size in bytes (calculated) */ SDL_AudioCallback callback; /**< Callback that feeds the audio device (NULL to use SDL_QueueAudio()). */ @@ -184,7 +193,23 @@ typedef void (SDLCALL * SDL_AudioFilter) (struct SDL_AudioCVT * cvt, SDL_AudioFormat format); /** - * A structure to hold a set of audio conversion filters and buffers. + * \brief Upper limit of filters in SDL_AudioCVT + * + * The maximum number of SDL_AudioFilter functions in SDL_AudioCVT is + * currently limited to 9. The SDL_AudioCVT.filters array has 10 pointers, + * one of which is the terminating NULL pointer. + */ +#define SDL_AUDIOCVT_MAX_FILTERS 9 + +/** + * \struct SDL_AudioCVT + * \brief A structure to hold a set of audio conversion filters and buffers. + * + * Note that various parts of the conversion pipeline can take advantage + * of SIMD operations (like SSE2, for example). SDL_AudioCVT doesn't require + * you to pass it aligned data, but can possibly run much faster if you + * set both its (buf) field to a pointer that is aligned to 16 bytes, and its + * (len) field to something that's a multiple of 16, if possible. */ #ifdef __GNUC__ /* This structure is 84 bytes on 32-bit architectures, make sure GCC doesn't @@ -208,7 +233,7 @@ typedef struct SDL_AudioCVT int len_cvt; /**< Length of converted audio buffer */ int len_mult; /**< buffer must be len*len_mult big */ double len_ratio; /**< Given len, final size is len*len_ratio */ - SDL_AudioFilter filters[10]; /**< Filter list */ + SDL_AudioFilter filters[SDL_AUDIOCVT_MAX_FILTERS + 1]; /**< NULL-terminated list of filter functions */ int filter_index; /**< Current audio conversion function */ } SDL_AUDIOCVT_PACKED SDL_AudioCVT; @@ -434,10 +459,10 @@ extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf); * This function takes a source format and rate and a destination format * and rate, and initializes the \c cvt structure with information needed * by SDL_ConvertAudio() to convert a buffer of audio data from one format - * to the other. + * to the other. An unsupported format causes an error and -1 will be returned. * - * \return -1 if the format conversion is not supported, 0 if there's - * no conversion needed, or 1 if the audio filter is set up. + * \return 0 if no conversion is needed, 1 if the audio filter is set up, + * or -1 on error. */ extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, SDL_AudioFormat src_format, @@ -456,9 +481,137 @@ extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt, * The data conversion may expand the size of the audio data, so the buffer * \c cvt->buf should be allocated after the \c cvt structure is initialized by * SDL_BuildAudioCVT(), and should be \c cvt->len*cvt->len_mult bytes long. + * + * \return 0 on success or -1 if \c cvt->buf is NULL. */ extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt); +/* SDL_AudioStream is a new audio conversion interface. + The benefits vs SDL_AudioCVT: + - it can handle resampling data in chunks without generating + artifacts, when it doesn't have the complete buffer available. + - it can handle incoming data in any variable size. + - You push data as you have it, and pull it when you need it + */ +/* this is opaque to the outside world. */ +struct _SDL_AudioStream; +typedef struct _SDL_AudioStream SDL_AudioStream; + +/** + * Create a new audio stream + * + * \param src_format The format of the source audio + * \param src_channels The number of channels of the source audio + * \param src_rate The sampling rate of the source audio + * \param dst_format The format of the desired audio output + * \param dst_channels The number of channels of the desired audio output + * \param dst_rate The sampling rate of the desired audio output + * \return 0 on success, or -1 on error. + * + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC SDL_AudioStream * SDLCALL SDL_NewAudioStream(const SDL_AudioFormat src_format, + const Uint8 src_channels, + const int src_rate, + const SDL_AudioFormat dst_format, + const Uint8 dst_channels, + const int dst_rate); + +/** + * Add data to be converted/resampled to the stream + * + * \param stream The stream the audio data is being added to + * \param buf A pointer to the audio data to add + * \param len The number of bytes to write to the stream + * \return 0 on success, or -1 on error. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamPut(SDL_AudioStream *stream, const void *buf, int len); + +/** + * Get converted/resampled data from the stream + * + * \param stream The stream the audio is being requested from + * \param buf A buffer to fill with audio data + * \param len The maximum number of bytes to fill + * \return The number of bytes read from the stream, or -1 on error + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamGet(SDL_AudioStream *stream, void *buf, int len); + +/** + * Get the number of converted/resampled bytes available. The stream may be + * buffering data behind the scenes until it has enough to resample + * correctly, so this number might be lower than what you expect, or even + * be zero. Add more data or flush the stream if you need the data now. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamAvailable(SDL_AudioStream *stream); + +/** + * Tell the stream that you're done sending data, and anything being buffered + * should be converted/resampled and made available immediately. + * + * It is legal to add more data to a stream after flushing, but there will + * be audio gaps in the output. Generally this is intended to signal the + * end of input, so the complete output becomes available. + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamClear + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC int SDLCALL SDL_AudioStreamFlush(SDL_AudioStream *stream); + +/** + * Clear any pending data in the stream without converting it + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_FreeAudioStream + */ +extern DECLSPEC void SDLCALL SDL_AudioStreamClear(SDL_AudioStream *stream); + +/** + * Free an audio stream + * + * \sa SDL_NewAudioStream + * \sa SDL_AudioStreamPut + * \sa SDL_AudioStreamGet + * \sa SDL_AudioStreamAvailable + * \sa SDL_AudioStreamFlush + * \sa SDL_AudioStreamClear + */ +extern DECLSPEC void SDLCALL SDL_FreeAudioStream(SDL_AudioStream *stream); + #define SDL_MIX_MAXVOLUME 128 /** * This takes two audio buffers of the playing audio format and mixes @@ -514,7 +667,7 @@ extern DECLSPEC void SDLCALL SDL_MixAudioFormat(Uint8 * dst, * \param dev The device ID to which we will queue audio. * \param data The data to queue to the device for later playback. * \param len The number of bytes (not samples!) to which (data) points. - * \return zero on success, -1 on error. + * \return 0 on success, or -1 on error. * * \sa SDL_GetQueuedAudioSize * \sa SDL_ClearQueuedAudio @@ -667,6 +820,6 @@ extern DECLSPEC void SDLCALL SDL_CloseAudioDevice(SDL_AudioDeviceID dev); #endif #include "close_code.h" -#endif /* _SDL_audio_h */ +#endif /* SDL_audio_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_bits.h b/sdl/include/SDL_bits.h index 528da2ea..eb8322f0 100644 --- a/sdl/include/SDL_bits.h +++ b/sdl/include/SDL_bits.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Functions for fiddling with bits and bitmasks. */ -#ifndef _SDL_bits_h -#define _SDL_bits_h +#ifndef SDL_bits_h_ +#define SDL_bits_h_ #include "SDL_stdinc.h" @@ -47,10 +47,20 @@ extern "C" { * * \return Index of the most significant bit, or -1 if the value is 0. */ +#if defined(__WATCOMC__) && defined(__386__) +extern _inline int _SDL_clz_watcom (Uint32); +#pragma aux _SDL_clz_watcom = \ + "bsr eax, eax" \ + "xor eax, 31" \ + parm [eax] nomemory \ + value [eax] \ + modify exact [eax] nomemory; +#endif + SDL_FORCE_INLINE int SDL_MostSignificantBitIndex32(Uint32 x) { -#if defined(__GNUC__) && __GNUC__ >= 4 +#if defined(__GNUC__) && (__GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) /* Count Leading Zeroes builtin in GCC. * http://gcc.gnu.org/onlinedocs/gcc-4.3.4/gcc/Other-Builtins.html */ @@ -58,6 +68,11 @@ SDL_MostSignificantBitIndex32(Uint32 x) return -1; } return 31 - __builtin_clz(x); +#elif defined(__WATCOMC__) && defined(__386__) + if (x == 0) { + return -1; + } + return 31 - _SDL_clz_watcom(x); #else /* Based off of Bit Twiddling Hacks by Sean Eron Anderson * , released in the public domain. @@ -92,6 +107,6 @@ SDL_MostSignificantBitIndex32(Uint32 x) #endif #include "close_code.h" -#endif /* _SDL_bits_h */ +#endif /* SDL_bits_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_blendmode.h b/sdl/include/SDL_blendmode.h index 56d8ad66..36a5ea76 100644 --- a/sdl/include/SDL_blendmode.h +++ b/sdl/include/SDL_blendmode.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header file declaring the SDL_BlendMode enumeration */ -#ifndef _SDL_blendmode_h -#define _SDL_blendmode_h +#ifndef SDL_blendmode_h_ +#define SDL_blendmode_h_ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -47,17 +47,74 @@ typedef enum SDL_BLENDMODE_ADD = 0x00000002, /**< additive blending dstRGB = (srcRGB * srcA) + dstRGB dstA = dstA */ - SDL_BLENDMODE_MOD = 0x00000004 /**< color modulate + SDL_BLENDMODE_MOD = 0x00000004, /**< color modulate dstRGB = srcRGB * dstRGB dstA = dstA */ + SDL_BLENDMODE_INVALID = 0x7FFFFFFF + + /* Additional custom blend modes can be returned by SDL_ComposeCustomBlendMode() */ + } SDL_BlendMode; +/** + * \brief The blend operation used when combining source and destination pixel components + */ +typedef enum +{ + SDL_BLENDOPERATION_ADD = 0x1, /**< dst + src: supported by all renderers */ + SDL_BLENDOPERATION_SUBTRACT = 0x2, /**< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES */ + SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, /**< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES */ + SDL_BLENDOPERATION_MINIMUM = 0x4, /**< min(dst, src) : supported by D3D11 */ + SDL_BLENDOPERATION_MAXIMUM = 0x5 /**< max(dst, src) : supported by D3D11 */ + +} SDL_BlendOperation; + +/** + * \brief The normalized factor used to multiply pixel components + */ +typedef enum +{ + SDL_BLENDFACTOR_ZERO = 0x1, /**< 0, 0, 0, 0 */ + SDL_BLENDFACTOR_ONE = 0x2, /**< 1, 1, 1, 1 */ + SDL_BLENDFACTOR_SRC_COLOR = 0x3, /**< srcR, srcG, srcB, srcA */ + SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, /**< 1-srcR, 1-srcG, 1-srcB, 1-srcA */ + SDL_BLENDFACTOR_SRC_ALPHA = 0x5, /**< srcA, srcA, srcA, srcA */ + SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, /**< 1-srcA, 1-srcA, 1-srcA, 1-srcA */ + SDL_BLENDFACTOR_DST_COLOR = 0x7, /**< dstR, dstG, dstB, dstA */ + SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, /**< 1-dstR, 1-dstG, 1-dstB, 1-dstA */ + SDL_BLENDFACTOR_DST_ALPHA = 0x9, /**< dstA, dstA, dstA, dstA */ + SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA /**< 1-dstA, 1-dstA, 1-dstA, 1-dstA */ + +} SDL_BlendFactor; + +/** + * \brief Create a custom blend mode, which may or may not be supported by a given renderer + * + * \param srcColorFactor + * \param dstColorFactor + * \param colorOperation + * \param srcAlphaFactor + * \param dstAlphaFactor + * \param alphaOperation + * + * The result of the blend mode operation will be: + * dstRGB = dstRGB * dstColorFactor colorOperation srcRGB * srcColorFactor + * and + * dstA = dstA * dstAlphaFactor alphaOperation srcA * srcAlphaFactor + */ +extern DECLSPEC SDL_BlendMode SDLCALL SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor, + SDL_BlendFactor dstColorFactor, + SDL_BlendOperation colorOperation, + SDL_BlendFactor srcAlphaFactor, + SDL_BlendFactor dstAlphaFactor, + SDL_BlendOperation alphaOperation); + /* Ends C function definitions when using C++ */ #ifdef __cplusplus } #endif #include "close_code.h" -#endif /* _SDL_blendmode_h */ +#endif /* SDL_blendmode_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_clipboard.h b/sdl/include/SDL_clipboard.h index a5556f21..f28751eb 100644 --- a/sdl/include/SDL_clipboard.h +++ b/sdl/include/SDL_clipboard.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL clipboard handling */ -#ifndef _SDL_clipboard_h -#define _SDL_clipboard_h +#ifndef SDL_clipboard_h_ +#define SDL_clipboard_h_ #include "SDL_stdinc.h" @@ -66,6 +66,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasClipboardText(void); #endif #include "close_code.h" -#endif /* _SDL_clipboard_h */ +#endif /* SDL_clipboard_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_config.h b/sdl/include/SDL_config.h index 82905cea..93b0ff0d 100644 --- a/sdl/include/SDL_config.h +++ b/sdl/include/SDL_config.h @@ -1,7 +1,7 @@ /* include/SDL_config.h. Generated from SDL_config.h.in by configure. */ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -20,8 +20,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_config_h -#define _SDL_config_h +#ifndef SDL_config_h_ +#define SDL_config_h_ /** * \file SDL_config.h.in @@ -51,39 +51,32 @@ #define HAVE_GCC_ATOMICS 1 /* #undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET */ -/* #undef HAVE_DDRAW_H */ -/* #undef HAVE_DINPUT_H */ -/* #undef HAVE_DSOUND_H */ -/* #undef HAVE_DXGI_H */ -/* #undef HAVE_XINPUT_H */ - /* Comment this if you want to build without any C library requirements */ #define HAVE_LIBC 1 #if HAVE_LIBC /* Useful headers */ -#define HAVE_ALLOCA_H 1 -#define HAVE_SYS_TYPES_H 1 -#define HAVE_STDIO_H 1 #define STDC_HEADERS 1 -#define HAVE_STDLIB_H 1 -#define HAVE_STDARG_H 1 -/* #undef HAVE_MALLOC_H */ -#define HAVE_MEMORY_H 1 -#define HAVE_STRING_H 1 -#define HAVE_STRINGS_H 1 -#define HAVE_INTTYPES_H 1 -#define HAVE_STDINT_H 1 +#define HAVE_ALLOCA_H 1 #define HAVE_CTYPE_H 1 -#define HAVE_MATH_H 1 +#define HAVE_FLOAT_H 1 #define HAVE_ICONV_H 1 +#define HAVE_INTTYPES_H 1 +#define HAVE_LIMITS_H 1 +/* #undef HAVE_MALLOC_H */ +#define HAVE_MATH_H 1 +#define HAVE_MEMORY_H 1 #define HAVE_SIGNAL_H 1 -/* #undef HAVE_ALTIVEC_H */ +#define HAVE_STDARG_H 1 +#define HAVE_STDINT_H 1 +#define HAVE_STDIO_H 1 +#define HAVE_STDLIB_H 1 +#define HAVE_STRINGS_H 1 +#define HAVE_STRING_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_WCHAR_H 1 /* #undef HAVE_PTHREAD_NP_H */ -/* #undef HAVE_LIBUDEV_H */ -/* #undef HAVE_DBUS_DBUS_H */ -/* #undef HAVE_IBUS_IBUS_H */ -/* #undef HAVE_FCITX_FRONTEND_H */ +#define HAVE_LIBUNWIND_H 1 /* C library functions */ #define HAVE_MALLOC 1 @@ -104,10 +97,13 @@ #define HAVE_MEMCPY 1 #define HAVE_MEMMOVE 1 #define HAVE_MEMCMP 1 +#define HAVE_WCSLEN 1 +/* #undef HAVE_WCSLCPY */ +/* #undef HAVE_WCSLCAT */ +#define HAVE_WCSCMP 1 #define HAVE_STRLEN 1 #define HAVE_STRLCPY 1 #define HAVE_STRLCAT 1 -#define HAVE_STRDUP 1 /* #undef HAVE__STRREV */ /* #undef HAVE__STRUPR */ /* #undef HAVE__STRLWR */ @@ -140,25 +136,41 @@ /* #undef HAVE_SNPRINTF */ #define HAVE_VSNPRINTF 1 #define HAVE_M_PI /**/ -#define HAVE_ATAN 1 -#define HAVE_ATAN2 1 #define HAVE_ACOS 1 +#define HAVE_ACOSF 1 #define HAVE_ASIN 1 +#define HAVE_ASINF 1 +#define HAVE_ATAN 1 +#define HAVE_ATANF 1 +#define HAVE_ATAN2 1 +#define HAVE_ATAN2F 1 #define HAVE_CEIL 1 +#define HAVE_CEILF 1 #define HAVE_COPYSIGN 1 +#define HAVE_COPYSIGNF 1 #define HAVE_COS 1 #define HAVE_COSF 1 #define HAVE_FABS 1 +#define HAVE_FABSF 1 #define HAVE_FLOOR 1 +#define HAVE_FLOORF 1 +#define HAVE_FMOD 1 +#define HAVE_FMODF 1 #define HAVE_LOG 1 +#define HAVE_LOGF 1 +#define HAVE_LOG10 1 +#define HAVE_LOG10F 1 #define HAVE_POW 1 +#define HAVE_POWF 1 #define HAVE_SCALBN 1 +#define HAVE_SCALBNF 1 #define HAVE_SIN 1 #define HAVE_SINF 1 #define HAVE_SQRT 1 #define HAVE_SQRTF 1 #define HAVE_TAN 1 #define HAVE_TANF 1 +/* #undef HAVE_FOPEN64 */ #define HAVE_FSEEKO 1 /* #undef HAVE_FSEEKO64 */ #define HAVE_SIGACTION 1 @@ -174,6 +186,8 @@ #define HAVE_PTHREAD_SETNAME_NP 1 /* #undef HAVE_PTHREAD_SET_NAME_NP */ /* #undef HAVE_SEM_TIMEDWAIT */ +/* #undef HAVE_GETAUXVAL */ +#define HAVE_POLL 1 #else #define HAVE_STDARG_H 1 @@ -181,6 +195,22 @@ #define HAVE_STDINT_H 1 #endif /* HAVE_LIBC */ +/* #undef HAVE_ALTIVEC_H */ +/* #undef HAVE_DBUS_DBUS_H */ +/* #undef HAVE_FCITX_FRONTEND_H */ +/* #undef HAVE_IBUS_IBUS_H */ +#define HAVE_IMMINTRIN_H 1 +/* #undef HAVE_LIBSAMPLERATE_H */ +/* #undef HAVE_LIBUDEV_H */ + +/* #undef HAVE_DDRAW_H */ +/* #undef HAVE_DINPUT_H */ +/* #undef HAVE_DSOUND_H */ +/* #undef HAVE_DXGI_H */ +/* #undef HAVE_XINPUT_H */ +/* #undef HAVE_XINPUT_GAMEPAD_EX */ +/* #undef HAVE_XINPUT_STATE_EX */ + /* SDL internal assertion support */ /* #undef SDL_DEFAULT_ASSERT_LEVEL */ @@ -203,34 +233,36 @@ /* Enable various audio drivers */ /* #undef SDL_AUDIO_DRIVER_ALSA */ /* #undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC */ +/* #undef SDL_AUDIO_DRIVER_ANDROID */ /* #undef SDL_AUDIO_DRIVER_ARTS */ /* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO */ -/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_HAIKU */ -/* #undef SDL_AUDIO_DRIVER_BSD */ #define SDL_AUDIO_DRIVER_COREAUDIO 1 #define SDL_AUDIO_DRIVER_DISK 1 -#define SDL_AUDIO_DRIVER_DUMMY 1 -/* #undef SDL_AUDIO_DRIVER_ANDROID */ -/* #undef SDL_AUDIO_DRIVER_XAUDIO2 */ /* #undef SDL_AUDIO_DRIVER_DSOUND */ +#define SDL_AUDIO_DRIVER_DUMMY 1 +/* #undef SDL_AUDIO_DRIVER_EMSCRIPTEN */ /* #undef SDL_AUDIO_DRIVER_ESD */ /* #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC */ +/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND */ +/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC */ +/* #undef SDL_AUDIO_DRIVER_HAIKU */ +/* #undef SDL_AUDIO_DRIVER_JACK */ +/* #undef SDL_AUDIO_DRIVER_JACK_DYNAMIC */ /* #undef SDL_AUDIO_DRIVER_NACL */ /* #undef SDL_AUDIO_DRIVER_NAS */ /* #undef SDL_AUDIO_DRIVER_NAS_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_SNDIO */ -/* #undef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC */ +/* #undef SDL_AUDIO_DRIVER_NETBSD */ /* #undef SDL_AUDIO_DRIVER_OSS */ /* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */ /* #undef SDL_AUDIO_DRIVER_PAUDIO */ +/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO */ +/* #undef SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC */ /* #undef SDL_AUDIO_DRIVER_QSA */ +/* #undef SDL_AUDIO_DRIVER_SNDIO */ +/* #undef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC */ /* #undef SDL_AUDIO_DRIVER_SUNAUDIO */ +/* #undef SDL_AUDIO_DRIVER_WASAPI */ /* #undef SDL_AUDIO_DRIVER_WINMM */ -/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND */ -/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC */ -/* #undef SDL_AUDIO_DRIVER_EMSCRIPTEN */ /* Enable various input drivers */ /* #undef SDL_INPUT_LINUXEV */ @@ -248,13 +280,13 @@ /* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */ /* #undef SDL_JOYSTICK_EMSCRIPTEN */ /* #undef SDL_HAPTIC_DUMMY */ +/* #undef SDL_HAPTIC_ANDROID */ /* #undef SDL_HAPTIC_LINUX */ #define SDL_HAPTIC_IOKIT 1 /* #undef SDL_HAPTIC_DINPUT */ /* #undef SDL_HAPTIC_XINPUT */ /* Enable various shared object loading systems */ -/* #undef SDL_LOADSO_HAIKU */ #define SDL_LOADSO_DLOPEN 1 /* #undef SDL_LOADSO_DUMMY */ /* #undef SDL_LOADSO_LDG */ @@ -290,6 +322,9 @@ /* #undef SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON */ /* #undef SDL_VIDEO_DRIVER_X11 */ /* #undef SDL_VIDEO_DRIVER_RPI */ +/* #undef SDL_VIDEO_DRIVER_KMSDRM */ +/* #undef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC */ +/* #undef SDL_VIDEO_DRIVER_KMSDRM_DYNAMIC_GBM */ /* #undef SDL_VIDEO_DRIVER_ANDROID */ /* #undef SDL_VIDEO_DRIVER_EMSCRIPTEN */ /* #undef SDL_VIDEO_DRIVER_X11_DYNAMIC */ @@ -315,6 +350,7 @@ /* #undef SDL_VIDEO_DRIVER_NACL */ /* #undef SDL_VIDEO_DRIVER_VIVANTE */ /* #undef SDL_VIDEO_DRIVER_VIVANTE_VDK */ +/* #undef SDL_VIDEO_DRIVER_QNX */ /* #undef SDL_VIDEO_RENDER_D3D */ /* #undef SDL_VIDEO_RENDER_D3D11 */ @@ -322,6 +358,7 @@ /* #undef SDL_VIDEO_RENDER_OGL_ES */ /* #undef SDL_VIDEO_RENDER_OGL_ES2 */ /* #undef SDL_VIDEO_RENDER_DIRECTFB */ +/* #undef SDL_VIDEO_RENDER_METAL */ /* Enable OpenGL support */ #define SDL_VIDEO_OPENGL 1 @@ -335,6 +372,9 @@ /* #undef SDL_VIDEO_OPENGL_OSMESA */ /* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */ +/* Enable Vulkan support */ +/* #undef SDL_VIDEO_VULKAN */ + /* Enable system power support */ /* #undef SDL_POWER_LINUX */ /* #undef SDL_POWER_WINDOWS */ @@ -361,4 +401,10 @@ /* Enable ime support */ /* #undef SDL_USE_IME */ -#endif /* _SDL_config_h */ +/* Enable dynamic udev support */ +/* #undef SDL_UDEV_DYNAMIC */ + +/* Enable dynamic libsamplerate support */ +/* #undef SDL_LIBSAMPLERATE_DYNAMIC */ + +#endif /* SDL_config_h_ */ diff --git a/sdl/include/SDL_cpuinfo.h b/sdl/include/SDL_cpuinfo.h index d0ba47bf..08127053 100644 --- a/sdl/include/SDL_cpuinfo.h +++ b/sdl/include/SDL_cpuinfo.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,14 +25,20 @@ * CPU feature detection for SDL. */ -#ifndef _SDL_cpuinfo_h -#define _SDL_cpuinfo_h +#ifndef SDL_cpuinfo_h_ +#define SDL_cpuinfo_h_ #include "SDL_stdinc.h" /* Need to do this here because intrin.h has C++ code in it */ /* Visual Studio 2005 has a bug where intrin.h conflicts with winnt.h */ #if defined(_MSC_VER) && (_MSC_VER >= 1500) && (defined(_M_IX86) || defined(_M_X64)) +#ifdef __clang__ +/* Many of the intrinsics SDL uses are not implemented by clang with Visual Studio */ +#undef __MMX__ +#undef __SSE__ +#undef __SSE2__ +#else #include #ifndef _WIN64 #define __MMX__ @@ -40,28 +46,37 @@ #endif #define __SSE__ #define __SSE2__ +#endif /* __clang__ */ #elif defined(__MINGW64_VERSION_MAJOR) #include #else #ifdef __ALTIVEC__ -#if HAVE_ALTIVEC_H && !defined(__APPLE_ALTIVEC__) +#if HAVE_ALTIVEC_H && !defined(__APPLE_ALTIVEC__) && !defined(SDL_DISABLE_ALTIVEC_H) #include #undef pixel +#undef bool #endif #endif -#ifdef __MMX__ -#include -#endif -#ifdef __3dNOW__ +#if defined(__3dNOW__) && !defined(SDL_DISABLE_MM3DNOW_H) #include #endif -#ifdef __SSE__ +#if HAVE_IMMINTRIN_H && !defined(SDL_DISABLE_IMMINTRIN_H) +#include +#else +#if defined(__MMX__) && !defined(SDL_DISABLE_MMINTRIN_H) +#include +#endif +#if defined(__SSE__) && !defined(SDL_DISABLE_XMMINTRIN_H) #include #endif -#ifdef __SSE2__ +#if defined(__SSE2__) && !defined(SDL_DISABLE_EMMINTRIN_H) #include #endif +#if defined(__SSE3__) && !defined(SDL_DISABLE_PMMINTRIN_H) +#include #endif +#endif /* HAVE_IMMINTRIN_H */ +#endif /* compiler version */ #include "begin_code.h" /* Set up for C function definitions, even when using C++ */ @@ -144,6 +159,11 @@ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX(void); */ extern DECLSPEC SDL_bool SDLCALL SDL_HasAVX2(void); +/** + * This function returns true if the CPU has NEON (ARM SIMD) features. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_HasNEON(void); + /** * This function returns the amount of RAM configured in the system, in MB. */ @@ -156,6 +176,6 @@ extern DECLSPEC int SDLCALL SDL_GetSystemRAM(void); #endif #include "close_code.h" -#endif /* _SDL_cpuinfo_h */ +#endif /* SDL_cpuinfo_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_egl.h b/sdl/include/SDL_egl.h index bea2a6c0..d65ed437 100644 --- a/sdl/include/SDL_egl.h +++ b/sdl/include/SDL_egl.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -24,7 +24,7 @@ * * This is a simple file to encapsulate the EGL API headers. */ -#ifndef _MSC_VER +#if !defined(_MSC_VER) && !defined(__ANDROID__) #include #include @@ -132,7 +132,7 @@ *------------------------------------------------------------------------- * This precedes the return type of the function in the function prototype. */ -#if defined(_WIN32) && !defined(__SCITECH_SNAP__) +#if defined(_WIN32) && !defined(__SCITECH_SNAP__) && !defined(SDL_VIDEO_STATIC_ANGLE) # define KHRONOS_APICALL __declspec(dllimport) #elif defined (__SYMBIAN32__) # define KHRONOS_APICALL IMPORT_C diff --git a/sdl/include/SDL_endian.h b/sdl/include/SDL_endian.h index 9100b103..ed0bf5ba 100644 --- a/sdl/include/SDL_endian.h +++ b/sdl/include/SDL_endian.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Functions for reading and writing endian-specific values */ -#ifndef _SDL_endian_h -#define _SDL_endian_h +#ifndef SDL_endian_h_ +#define SDL_endian_h_ #include "SDL_stdinc.h" @@ -96,6 +96,12 @@ SDL_Swap16(Uint16 x) __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc"); return x; } +#elif defined(__WATCOMC__) && defined(__386__) +extern _inline Uint16 SDL_Swap16(Uint16); +#pragma aux SDL_Swap16 = \ + "xchg al, ah" \ + parm [ax] \ + modify [ax]; #else SDL_FORCE_INLINE Uint16 SDL_Swap16(Uint16 x) @@ -136,6 +142,21 @@ SDL_Swap32(Uint32 x) __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc"); return x; } +#elif defined(__WATCOMC__) && defined(__386__) +extern _inline Uint32 SDL_Swap32(Uint32); +#ifndef __SW_3 /* 486+ */ +#pragma aux SDL_Swap32 = \ + "bswap eax" \ + parm [eax] \ + modify [eax]; +#else /* 386-only */ +#pragma aux SDL_Swap32 = \ + "xchg al, ah" \ + "ror eax, 16" \ + "xchg al, ah" \ + parm [eax] \ + modify [eax]; +#endif #else SDL_FORCE_INLINE Uint32 SDL_Swap32(Uint32 x) @@ -234,6 +255,6 @@ SDL_SwapFloat(float x) #endif #include "close_code.h" -#endif /* _SDL_endian_h */ +#endif /* SDL_endian_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_error.h b/sdl/include/SDL_error.h index 2f3b4b50..c0e46298 100644 --- a/sdl/include/SDL_error.h +++ b/sdl/include/SDL_error.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Simple error message routines for SDL. */ -#ifndef _SDL_error_h -#define _SDL_error_h +#ifndef SDL_error_h_ +#define SDL_error_h_ #include "SDL_stdinc.h" @@ -71,6 +71,6 @@ extern DECLSPEC int SDLCALL SDL_Error(SDL_errorcode code); #endif #include "close_code.h" -#endif /* _SDL_error_h */ +#endif /* SDL_error_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_events.h b/sdl/include/SDL_events.h index edb89ef4..3d39e6a7 100644 --- a/sdl/include/SDL_events.h +++ b/sdl/include/SDL_events.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL event handling. */ -#ifndef _SDL_events_h -#define _SDL_events_h +#ifndef SDL_events_h_ +#define SDL_events_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -165,7 +165,7 @@ typedef enum typedef struct SDL_CommonEvent { Uint32 type; - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ } SDL_CommonEvent; /** @@ -174,7 +174,7 @@ typedef struct SDL_CommonEvent typedef struct SDL_WindowEvent { Uint32 type; /**< ::SDL_WINDOWEVENT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The associated window */ Uint8 event; /**< ::SDL_WindowEventID */ Uint8 padding1; @@ -190,7 +190,7 @@ typedef struct SDL_WindowEvent typedef struct SDL_KeyboardEvent { Uint32 type; /**< ::SDL_KEYDOWN or ::SDL_KEYUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with keyboard focus, if any */ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ Uint8 repeat; /**< Non-zero if this is a key repeat */ @@ -206,7 +206,7 @@ typedef struct SDL_KeyboardEvent typedef struct SDL_TextEditingEvent { Uint32 type; /**< ::SDL_TEXTEDITING */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with keyboard focus, if any */ char text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; /**< The editing text */ Sint32 start; /**< The start cursor of selected editing text */ @@ -221,7 +221,7 @@ typedef struct SDL_TextEditingEvent typedef struct SDL_TextInputEvent { Uint32 type; /**< ::SDL_TEXTINPUT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with keyboard focus, if any */ char text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; /**< The input text */ } SDL_TextInputEvent; @@ -232,7 +232,7 @@ typedef struct SDL_TextInputEvent typedef struct SDL_MouseMotionEvent { Uint32 type; /**< ::SDL_MOUSEMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with mouse focus, if any */ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ Uint32 state; /**< The current button state */ @@ -248,7 +248,7 @@ typedef struct SDL_MouseMotionEvent typedef struct SDL_MouseButtonEvent { Uint32 type; /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with mouse focus, if any */ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ Uint8 button; /**< The mouse button index */ @@ -265,7 +265,7 @@ typedef struct SDL_MouseButtonEvent typedef struct SDL_MouseWheelEvent { Uint32 type; /**< ::SDL_MOUSEWHEEL */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The window with mouse focus, if any */ Uint32 which; /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ Sint32 x; /**< The amount scrolled horizontally, positive to the right and negative to the left */ @@ -279,7 +279,7 @@ typedef struct SDL_MouseWheelEvent typedef struct SDL_JoyAxisEvent { Uint32 type; /**< ::SDL_JOYAXISMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 axis; /**< The joystick axis index */ Uint8 padding1; @@ -295,7 +295,7 @@ typedef struct SDL_JoyAxisEvent typedef struct SDL_JoyBallEvent { Uint32 type; /**< ::SDL_JOYBALLMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 ball; /**< The joystick trackball index */ Uint8 padding1; @@ -311,7 +311,7 @@ typedef struct SDL_JoyBallEvent typedef struct SDL_JoyHatEvent { Uint32 type; /**< ::SDL_JOYHATMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 hat; /**< The joystick hat index */ Uint8 value; /**< The hat position value. @@ -331,7 +331,7 @@ typedef struct SDL_JoyHatEvent typedef struct SDL_JoyButtonEvent { Uint32 type; /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 button; /**< The joystick button index */ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ @@ -345,7 +345,7 @@ typedef struct SDL_JoyButtonEvent typedef struct SDL_JoyDeviceEvent { Uint32 type; /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ } SDL_JoyDeviceEvent; @@ -356,7 +356,7 @@ typedef struct SDL_JoyDeviceEvent typedef struct SDL_ControllerAxisEvent { Uint32 type; /**< ::SDL_CONTROLLERAXISMOTION */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 axis; /**< The controller axis (SDL_GameControllerAxis) */ Uint8 padding1; @@ -373,7 +373,7 @@ typedef struct SDL_ControllerAxisEvent typedef struct SDL_ControllerButtonEvent { Uint32 type; /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_JoystickID which; /**< The joystick instance id */ Uint8 button; /**< The controller button (SDL_GameControllerButton) */ Uint8 state; /**< ::SDL_PRESSED or ::SDL_RELEASED */ @@ -388,7 +388,7 @@ typedef struct SDL_ControllerButtonEvent typedef struct SDL_ControllerDeviceEvent { Uint32 type; /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Sint32 which; /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ } SDL_ControllerDeviceEvent; @@ -398,7 +398,7 @@ typedef struct SDL_ControllerDeviceEvent typedef struct SDL_AudioDeviceEvent { Uint32 type; /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 which; /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ Uint8 iscapture; /**< zero if an output device, non-zero if a capture device. */ Uint8 padding1; @@ -413,7 +413,7 @@ typedef struct SDL_AudioDeviceEvent typedef struct SDL_TouchFingerEvent { Uint32 type; /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_TouchID touchId; /**< The touch device id */ SDL_FingerID fingerId; float x; /**< Normalized in the range 0...1 */ @@ -430,8 +430,8 @@ typedef struct SDL_TouchFingerEvent typedef struct SDL_MultiGestureEvent { Uint32 type; /**< ::SDL_MULTIGESTURE */ - Uint32 timestamp; - SDL_TouchID touchId; /**< The touch device index */ + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ + SDL_TouchID touchId; /**< The touch device id */ float dTheta; float dDist; float x; @@ -447,7 +447,7 @@ typedef struct SDL_MultiGestureEvent typedef struct SDL_DollarGestureEvent { Uint32 type; /**< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_TouchID touchId; /**< The touch device id */ SDL_GestureID gestureId; Uint32 numFingers; @@ -465,7 +465,7 @@ typedef struct SDL_DollarGestureEvent typedef struct SDL_DropEvent { Uint32 type; /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ char *file; /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ Uint32 windowID; /**< The window that was dropped on, if any */ } SDL_DropEvent; @@ -477,7 +477,7 @@ typedef struct SDL_DropEvent typedef struct SDL_QuitEvent { Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ } SDL_QuitEvent; /** @@ -486,7 +486,7 @@ typedef struct SDL_QuitEvent typedef struct SDL_OSEvent { Uint32 type; /**< ::SDL_QUIT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ } SDL_OSEvent; /** @@ -495,7 +495,7 @@ typedef struct SDL_OSEvent typedef struct SDL_UserEvent { Uint32 type; /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ Uint32 windowID; /**< The associated window if any */ Sint32 code; /**< User defined event code */ void *data1; /**< User defined data pointer */ @@ -515,7 +515,7 @@ typedef struct SDL_SysWMmsg SDL_SysWMmsg; typedef struct SDL_SysWMEvent { Uint32 type; /**< ::SDL_SYSWMEVENT */ - Uint32 timestamp; + Uint32 timestamp; /**< In milliseconds, populated using SDL_GetTicks() */ SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */ } SDL_SysWMEvent; @@ -724,7 +724,7 @@ extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter, /** * This function allows you to set the state of processing certain events. * - If \c state is set to ::SDL_IGNORE, that event will be automatically - * dropped from the event queue and will not event be filtered. + * dropped from the event queue and will not be filtered. * - If \c state is set to ::SDL_ENABLE, that event will be processed * normally. * - If \c state is set to ::SDL_QUERY, SDL_EventState() will return the @@ -749,6 +749,6 @@ extern DECLSPEC Uint32 SDLCALL SDL_RegisterEvents(int numevents); #endif #include "close_code.h" -#endif /* _SDL_events_h */ +#endif /* SDL_events_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_filesystem.h b/sdl/include/SDL_filesystem.h index 02999ed2..fa6a1fa6 100644 --- a/sdl/include/SDL_filesystem.h +++ b/sdl/include/SDL_filesystem.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * \brief Include file for filesystem SDL API functions */ -#ifndef _SDL_filesystem_h -#define _SDL_filesystem_h +#ifndef SDL_filesystem_h_ +#define SDL_filesystem_h_ #include "SDL_stdinc.h" @@ -131,6 +131,6 @@ extern DECLSPEC char *SDLCALL SDL_GetPrefPath(const char *org, const char *app); #endif #include "close_code.h" -#endif /* _SDL_filesystem_h */ +#endif /* SDL_filesystem_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_gamecontroller.h b/sdl/include/SDL_gamecontroller.h index e67fd9fd..2e024be6 100644 --- a/sdl/include/SDL_gamecontroller.h +++ b/sdl/include/SDL_gamecontroller.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL game controller event handling */ -#ifndef _SDL_gamecontroller_h -#define _SDL_gamecontroller_h +#ifndef SDL_gamecontroller_h_ +#define SDL_gamecontroller_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -51,7 +51,9 @@ extern "C" { * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS */ -/* The gamecontroller structure used to identify an SDL game controller */ +/** + * The gamecontroller structure used to identify an SDL game controller + */ struct _SDL_GameController; typedef struct _SDL_GameController SDL_GameController; @@ -87,8 +89,8 @@ typedef struct SDL_GameControllerButtonBind * To count the number of game controllers in the system for the following: * int nJoysticks = SDL_NumJoysticks(); * int nGameControllers = 0; - * for ( int i = 0; i < nJoysticks; i++ ) { - * if ( SDL_IsGameController(i) ) { + * for (int i = 0; i < nJoysticks; i++) { + * if (SDL_IsGameController(i)) { * nGameControllers++; * } * } @@ -105,7 +107,7 @@ typedef struct SDL_GameControllerButtonBind * Buttons can be used as a controller axis and vice versa. * * This string shows an example of a valid mapping for a controller - * "341a3608000000000000504944564944,Afterglow PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", + * "03000000341a00003608000000000000,PS3 Controller,a:b1,b:b2,y:b3,x:b0,start:b9,guide:b12,back:b8,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,leftshoulder:b4,rightshoulder:b5,leftstick:b10,rightstick:b11,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:b6,righttrigger:b7", * */ @@ -117,7 +119,7 @@ typedef struct SDL_GameControllerButtonBind * * \return number of mappings added, -1 on error */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW( SDL_RWops * rw, int freerw ); +extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW(SDL_RWops * rw, int freerw); /** * Load a set of mappings from a file, filtered by the current SDL_GetPlatform() @@ -131,28 +133,41 @@ extern DECLSPEC int SDLCALL SDL_GameControllerAddMappingsFromRW( SDL_RWops * rw, * * \return 1 if mapping is added, 0 if updated, -1 on error */ -extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping( const char* mappingString ); +extern DECLSPEC int SDLCALL SDL_GameControllerAddMapping(const char* mappingString); + +/** + * Get the number of mappings installed + * + * \return the number of mappings + */ +extern DECLSPEC int SDLCALL SDL_GameControllerNumMappings(void); + +/** + * Get the mapping at a particular index. + * + * \return the mapping string. Must be freed with SDL_free(). Returns NULL if the index is out of range. + */ +extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForIndex(int mapping_index); /** * Get a mapping string for a GUID * * \return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID( SDL_JoystickGUID guid ); +extern DECLSPEC char * SDLCALL SDL_GameControllerMappingForGUID(SDL_JoystickGUID guid); /** * Get a mapping string for an open GameController * * \return the mapping string. Must be freed with SDL_free(). Returns NULL if no mapping is available */ -extern DECLSPEC char * SDLCALL SDL_GameControllerMapping( SDL_GameController * gamecontroller ); +extern DECLSPEC char * SDLCALL SDL_GameControllerMapping(SDL_GameController * gamecontroller); /** * Is the joystick on this index supported by the game controller interface? */ extern DECLSPEC SDL_bool SDLCALL SDL_IsGameController(int joystick_index); - /** * Get the implementation dependent name of a game controller. * This can be called before any controllers are opened. @@ -181,6 +196,24 @@ extern DECLSPEC SDL_GameController *SDLCALL SDL_GameControllerFromInstanceID(SDL */ extern DECLSPEC const char *SDLCALL SDL_GameControllerName(SDL_GameController *gamecontroller); +/** + * Get the USB vendor ID of an opened controller, if available. + * If the vendor ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetVendor(SDL_GameController * gamecontroller); + +/** + * Get the USB product ID of an opened controller, if available. + * If the product ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProduct(SDL_GameController * gamecontroller); + +/** + * Get the product version of an opened controller, if available. + * If the product version isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_GameControllerGetProductVersion(SDL_GameController * gamecontroller); + /** * Returns SDL_TRUE if the controller has been opened and currently connected, * or SDL_FALSE if it has not. @@ -214,6 +247,12 @@ extern DECLSPEC void SDLCALL SDL_GameControllerUpdate(void); /** * The list of axes available from a controller + * + * Thumbstick axis values range from SDL_JOYSTICK_AXIS_MIN to SDL_JOYSTICK_AXIS_MAX, + * and are centered within ~8000 of zero, though advanced UI will allow users to set + * or autodetect the dead zone, which varies between controllers. + * + * Trigger axis values range from 0 to SDL_JOYSTICK_AXIS_MAX. */ typedef enum { @@ -318,6 +357,6 @@ extern DECLSPEC void SDLCALL SDL_GameControllerClose(SDL_GameController *gamecon #endif #include "close_code.h" -#endif /* _SDL_gamecontroller_h */ +#endif /* SDL_gamecontroller_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_gesture.h b/sdl/include/SDL_gesture.h index 3c29ca7a..b223d80d 100644 --- a/sdl/include/SDL_gesture.h +++ b/sdl/include/SDL_gesture.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL gesture event handling. */ -#ifndef _SDL_gesture_h -#define _SDL_gesture_h +#ifndef SDL_gesture_h_ +#define SDL_gesture_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -82,6 +82,6 @@ extern DECLSPEC int SDLCALL SDL_LoadDollarTemplates(SDL_TouchID touchId, SDL_RWo #endif #include "close_code.h" -#endif /* _SDL_gesture_h */ +#endif /* SDL_gesture_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_haptic.h b/sdl/include/SDL_haptic.h index 9421c8f1..e3a2bca5 100644 --- a/sdl/include/SDL_haptic.h +++ b/sdl/include/SDL_haptic.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -22,12 +22,12 @@ /** * \file SDL_haptic.h * - * \brief The SDL Haptic subsystem allows you to control haptic (force feedback) + * \brief The SDL haptic subsystem allows you to control haptic (force feedback) * devices. * * The basic usage is as follows: - * - Initialize the Subsystem (::SDL_INIT_HAPTIC). - * - Open a Haptic Device. + * - Initialize the subsystem (::SDL_INIT_HAPTIC). + * - Open a haptic device. * - SDL_HapticOpen() to open from index. * - SDL_HapticOpenFromJoystick() to open from an existing joystick. * - Create an effect (::SDL_HapticEffect). @@ -104,8 +104,8 @@ * \endcode */ -#ifndef _SDL_haptic_h -#define _SDL_haptic_h +#ifndef SDL_haptic_h_ +#define SDL_haptic_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -282,7 +282,7 @@ typedef struct _SDL_Haptic SDL_Haptic; /** * \brief Device can be queried for effect status. * - * Device can be queried for effect status. + * Device supports querying effect status. * * \sa SDL_HapticGetEffectStatus */ @@ -291,6 +291,8 @@ typedef struct _SDL_Haptic SDL_Haptic; /** * \brief Device can be paused. * + * Devices supports being paused. + * * \sa SDL_HapticPause * \sa SDL_HapticUnpause */ @@ -444,7 +446,7 @@ typedef struct SDL_HapticDirection /** * \brief A structure containing a template for a Constant effect. * - * The struct is exclusive to the ::SDL_HAPTIC_CONSTANT effect. + * This struct is exclusively for the ::SDL_HAPTIC_CONSTANT effect. * * A constant effect applies a constant force in the specified direction * to the joystick. @@ -676,6 +678,8 @@ typedef struct SDL_HapticLeftRight /** * \brief A structure containing a template for the ::SDL_HAPTIC_CUSTOM effect. * + * This struct is exclusively for the ::SDL_HAPTIC_CUSTOM effect. + * * A custom force feedback effect is much like a periodic effect, where the * application can define its exact shape. You will have to allocate the * data yourself. Data should consist of channels * samples Uint16 samples. @@ -804,7 +808,7 @@ typedef union SDL_HapticEffect extern DECLSPEC int SDLCALL SDL_NumHaptics(void); /** - * \brief Get the implementation dependent name of a Haptic device. + * \brief Get the implementation dependent name of a haptic device. * * This can be called before any joysticks are opened. * If no name can be found, this function returns NULL. @@ -817,9 +821,9 @@ extern DECLSPEC int SDLCALL SDL_NumHaptics(void); extern DECLSPEC const char *SDLCALL SDL_HapticName(int device_index); /** - * \brief Opens a Haptic device for usage. + * \brief Opens a haptic device for use. * - * The index passed as an argument refers to the N'th Haptic device on this + * The index passed as an argument refers to the N'th haptic device on this * system. * * When opening a haptic device, its gain will be set to maximum and @@ -885,15 +889,15 @@ extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromMouse(void); * \brief Checks to see if a joystick has haptic features. * * \param joystick Joystick to test for haptic capabilities. - * \return 1 if the joystick is haptic, 0 if it isn't - * or -1 if an error ocurred. + * \return SDL_TRUE if the joystick is haptic, SDL_FALSE if it isn't + * or -1 if an error occurred. * * \sa SDL_HapticOpenFromJoystick */ extern DECLSPEC int SDLCALL SDL_JoystickIsHaptic(SDL_Joystick * joystick); /** - * \brief Opens a Haptic device for usage from a Joystick device. + * \brief Opens a haptic device for use from a joystick device. * * You must still close the haptic device separately. It will not be closed * with the joystick. @@ -913,7 +917,7 @@ extern DECLSPEC SDL_Haptic *SDLCALL SDL_HapticOpenFromJoystick(SDL_Joystick * joystick); /** - * \brief Closes a Haptic device previously opened with SDL_HapticOpen(). + * \brief Closes a haptic device previously opened with SDL_HapticOpen(). * * \param haptic Haptic device to close. */ @@ -957,7 +961,7 @@ extern DECLSPEC int SDLCALL SDL_HapticNumEffectsPlaying(SDL_Haptic * haptic); * Example: * \code * if (SDL_HapticQuery(haptic) & SDL_HAPTIC_CONSTANT) { - * printf("We have constant haptic effect!"); + * printf("We have constant haptic effect!\n"); * } * \endcode * @@ -996,7 +1000,7 @@ extern DECLSPEC int SDLCALL SDL_HapticEffectSupported(SDL_Haptic * haptic, * * \param haptic Haptic device to create the effect on. * \param effect Properties of the effect to create. - * \return The id of the effect on success or -1 on error. + * \return The identifier of the effect on success or -1 on error. * * \sa SDL_HapticUpdateEffect * \sa SDL_HapticRunEffect @@ -1008,13 +1012,13 @@ extern DECLSPEC int SDLCALL SDL_HapticNewEffect(SDL_Haptic * haptic, /** * \brief Updates the properties of an effect. * - * Can be used dynamically, although behaviour when dynamically changing + * Can be used dynamically, although behavior when dynamically changing * direction may be strange. Specifically the effect may reupload itself * and start playing from the start. You cannot change the type either when * running SDL_HapticUpdateEffect(). * * \param haptic Haptic device that has the effect. - * \param effect Effect to update. + * \param effect Identifier of the effect to update. * \param data New effect properties to use. * \return 0 on success or -1 on error. * @@ -1218,6 +1222,6 @@ extern DECLSPEC int SDLCALL SDL_HapticRumbleStop(SDL_Haptic * haptic); #endif #include "close_code.h" -#endif /* _SDL_haptic_h */ +#endif /* SDL_haptic_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_hints.h b/sdl/include/SDL_hints.h index dd154643..3834640f 100644 --- a/sdl/include/SDL_hints.h +++ b/sdl/include/SDL_hints.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -36,8 +36,8 @@ * to how they would like the library to work. */ -#ifndef _SDL_hints_h -#define _SDL_hints_h +#ifndef SDL_hints_h_ +#define SDL_hints_h_ #include "SDL_stdinc.h" @@ -76,6 +76,7 @@ extern "C" { * "opengl" * "opengles2" * "opengles" + * "metal" * "software" * * The default varies by platform, but it's the first one in the list that @@ -118,6 +119,17 @@ extern "C" { */ #define SDL_HINT_RENDER_DIRECT3D11_DEBUG "SDL_RENDER_DIRECT3D11_DEBUG" +/** + * \brief A variable controlling the scaling policy for SDL_RenderSetLogicalSize. + * + * This variable can be set to the following values: + * "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen + * "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen + * + * By default letterbox is used + */ +#define SDL_HINT_RENDER_LOGICAL_SIZE_MODE "SDL_RENDER_LOGICAL_SIZE_MODE" + /** * \brief A variable controlling the scaling quality * @@ -199,6 +211,18 @@ extern "C" { */ #define SDL_HINT_VIDEO_X11_NET_WM_PING "SDL_VIDEO_X11_NET_WM_PING" +/** + * \brief A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used. + * + * This variable can be set to the following values: + * "0" - Disable _NET_WM_BYPASS_COMPOSITOR + * "1" - Enable _NET_WM_BYPASS_COMPOSITOR + * + * By default SDL will use _NET_WM_BYPASS_COMPOSITOR + * + */ +#define SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR" + /** * \brief A variable controlling whether the window frame and title bar are interactive when the cursor is hidden * @@ -210,6 +234,12 @@ extern "C" { */ #define SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN" +/** + * \brief A variable to specify custom icon resource id from RC file on Windows platform + */ +#define SDL_HINT_WINDOWS_INTRESOURCE_ICON "SDL_WINDOWS_INTRESOURCE_ICON" +#define SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL "SDL_WINDOWS_INTRESOURCE_ICON_SMALL" + /** * \brief A variable controlling whether the windows message loop is processed by SDL * @@ -232,6 +262,16 @@ extern "C" { */ #define SDL_HINT_GRAB_KEYBOARD "SDL_GRAB_KEYBOARD" +/** + * \brief A variable setting the speed scale for mouse motion, in floating point, when the mouse is not in relative mode + */ +#define SDL_HINT_MOUSE_NORMAL_SPEED_SCALE "SDL_MOUSE_NORMAL_SPEED_SCALE" + +/** + * \brief A variable setting the scale for mouse motion, in floating point, when the mouse is in relative mode + */ +#define SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE "SDL_MOUSE_RELATIVE_SPEED_SCALE" + /** * \brief A variable controlling whether relative mouse mode is implemented using mouse warping * @@ -254,6 +294,17 @@ extern "C" { */ #define SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH "SDL_MOUSE_FOCUS_CLICKTHROUGH" +/** + * \brief A variable controlling whether touch events should generate synthetic mouse events + * + * This variable can be set to the following values: + * "0" - Touch events will not generate mouse events + * "1" - Touch events will generate mouse events + * + * By default SDL will generate mouse events for touch events + */ +#define SDL_HINT_TOUCH_MOUSE_EVENTS "SDL_TOUCH_MOUSE_EVENTS" + /** * \brief Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to true. * @@ -317,16 +368,35 @@ extern "C" { #define SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION" /** - * \brief A variable controlling whether the Android / iOS built-in - * accelerometer should be listed as a joystick device, rather than listing - * actual joysticks only. + * \brief A variable controlling whether the home indicator bar on iPhone X + * should be hidden. * * This variable can be set to the following values: - * "0" - List only real joysticks and accept input from them - * "1" - List real joysticks along with the accelerometer as if it were a 3 axis joystick (the default). + * "0" - The indicator bar is not hidden (default for windowed applications) + * "1" - The indicator bar is hidden and is shown when the screen is touched (useful for movie playback applications) + * "2" - The indicator bar is dim and the first swipe makes it visible and the second swipe performs the "home" action (default for fullscreen applications) + */ +#define SDL_HINT_IOS_HIDE_HOME_INDICATOR "SDL_IOS_HIDE_HOME_INDICATOR" + +/** + * \brief A variable controlling whether the Android / iOS built-in + * accelerometer should be listed as a joystick device. + * + * This variable can be set to the following values: + * "0" - The accelerometer is not listed as a joystick + * "1" - The accelerometer is available as a 3 axis joystick (the default). */ #define SDL_HINT_ACCELEROMETER_AS_JOYSTICK "SDL_ACCELEROMETER_AS_JOYSTICK" +/** + * \brief A variable controlling whether the Android / tvOS remotes + * should be listed as joystick devices, instead of sending keyboard events. + * + * This variable can be set to the following values: + * "0" - Remotes send enter/escape/arrow key events + * "1" - Remotes are available as 2 axis, 2 button joysticks (the default). + */ +#define SDL_HINT_TV_REMOTE_AS_JOYSTICK "SDL_TV_REMOTE_AS_JOYSTICK" /** * \brief A variable that lets you disable the detection and use of Xinput gamepad devices @@ -337,7 +407,6 @@ extern "C" { */ #define SDL_HINT_XINPUT_ENABLED "SDL_XINPUT_ENABLED" - /** * \brief A variable that causes SDL to use the old axis and button mapping for XInput devices. * @@ -347,9 +416,8 @@ extern "C" { */ #define SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING" - /** - * \brief A variable that lets you manually hint extra gamecontroller db entries + * \brief A variable that lets you manually hint extra gamecontroller db entries. * * The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h * @@ -358,6 +426,31 @@ extern "C" { */ #define SDL_HINT_GAMECONTROLLERCONFIG "SDL_GAMECONTROLLERCONFIG" +/** + * \brief A variable containing a list of devices to skip when scanning for game controllers. + * + * The format of the string is a comma separated list of USB VID/PID pairs + * in hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named + * file will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES "SDL_GAMECONTROLLER_IGNORE_DEVICES" + +/** + * \brief If set, all devices will be skipped when scanning for game controllers except for the ones listed in this variable. + * + * The format of the string is a comma separated list of USB VID/PID pairs + * in hexadecimal form, e.g. + * + * 0xAAAA/0xBBBB,0xCCCC/0xDDDD + * + * The variable can also take the form of @file, in which case the named + * file will be loaded and interpreted as the value of the variable. + */ +#define SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT" /** * \brief A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. @@ -372,7 +465,6 @@ extern "C" { */ #define SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS" - /** * \brief If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it. * This is a debugging aid for developers and not expected to be used by end users. The default is "1" @@ -383,7 +475,6 @@ extern "C" { */ #define SDL_HINT_ALLOW_TOPMOST "SDL_ALLOW_TOPMOST" - /** * \brief A variable that controls the timer resolution, in milliseconds. * @@ -401,6 +492,33 @@ extern "C" { #define SDL_HINT_TIMER_RESOLUTION "SDL_TIMER_RESOLUTION" +/** + * \brief A variable describing the content orientation on QtWayland-based platforms. + * + * On QtWayland platforms, windows are rotated client-side to allow for custom + * transitions. In order to correctly position overlays (e.g. volume bar) and + * gestures (e.g. events view, close/minimize gestures), the system needs to + * know in which orientation the application is currently drawing its contents. + * + * This does not cause the window to be rotated or resized, the application + * needs to take care of drawing the content in the right orientation (the + * framebuffer is always in portrait mode). + * + * This variable can be one of the following values: + * "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape" + */ +#define SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION "SDL_QTWAYLAND_CONTENT_ORIENTATION" + +/** + * \brief Flags to set on QtWayland windows to integrate with the native window manager. + * + * On QtWayland platforms, this hint controls the flags to set on the windows. + * For example, on Sailfish OS "OverridesSystemGestures" disables swipe gestures. + * + * This variable is a space-separated list of the following values (empty = no flags): + * "OverridesSystemGestures", "StaysOnTop", "BypassWindowManager" + */ +#define SDL_HINT_QTWAYLAND_WINDOW_FLAGS "SDL_QTWAYLAND_WINDOW_FLAGS" /** * \brief A string specifying SDL's threads stack size in bytes or "0" for the backend's default size @@ -634,6 +752,18 @@ extern "C" { */ #define SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH" + /** + * \brief A variable to control whether the return key on the soft keyboard + * should hide the soft keyboard on Android and iOS. + * + * The variable can be set to the following values: + * "0" - The return key will be handled as a key event. This is the behaviour of SDL <= 2.0.3. (default) + * "1" - The return key will hide the keyboard. + * + * The value of this hint is used at runtime, so it can be changed at any time. + */ +#define SDL_HINT_RETURN_KEY_HIDES_IME "SDL_RETURN_KEY_HIDES_IME" + /** * \brief override the binding element for keyboard inputs for Emscripten builds * @@ -667,7 +797,7 @@ extern "C" { * "0" - SDL will generate a window-close event when it sees Alt+F4. * "1" - SDL will only do normal key handling for Alt+F4. */ -#define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" +#define SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4" /** * \brief Prevent SDL from using version 4 of the bitmap header when saving BMPs. @@ -689,13 +819,18 @@ extern "C" { #define SDL_HINT_BMP_SAVE_LEGACY_FORMAT "SDL_BMP_SAVE_LEGACY_FORMAT" /** - * \brief Tell SDL not to name threads on Windows. + * \brief Tell SDL not to name threads on Windows with the 0x406D1388 Exception. + * The 0x406D1388 Exception is a trick used to inform Visual Studio of a + * thread's name, but it tends to cause problems with other debuggers, + * and the .NET runtime. Note that SDL 2.0.6 and later will still use + * the (safer) SetThreadDescription API, introduced in the Windows 10 + * Creators Update, if available. * * The variable can be set to the following values: * "0" - SDL will raise the 0x406D1388 Exception to name threads. - * This is the default behavior of SDL <= 2.0.4. (default) - * "1" - SDL will not raise this exception, and threads will be unnamed. - * For .NET languages this is required when running under a debugger. + * This is the default behavior of SDL <= 2.0.4. + * "1" - SDL will not raise this exception, and threads will be unnamed. (default) + * This is necessary with .NET languages or debuggers that aren't Visual Studio. */ #define SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING "SDL_WINDOWS_DISABLE_THREAD_NAMING" @@ -707,6 +842,94 @@ extern "C" { */ #define SDL_HINT_RPI_VIDEO_LAYER "SDL_RPI_VIDEO_LAYER" +/** + * \brief Tell the video driver that we only want a double buffer. + * + * By default, most lowlevel 2D APIs will use a triple buffer scheme that + * wastes no CPU time on waiting for vsync after issuing a flip, but + * introduces a frame of latency. On the other hand, using a double buffer + * scheme instead is recommended for cases where low latency is an important + * factor because we save a whole frame of latency. + * We do so by waiting for vsync immediately after issuing a flip, usually just + * after eglSwapBuffers call in the backend's *_SwapWindow function. + * + * Since it's driver-specific, it's only supported where possible and + * implemented. Currently supported the following drivers: + * - KMSDRM (kmsdrm) + * - Raspberry Pi (raspberrypi) + */ +#define SDL_HINT_VIDEO_DOUBLE_BUFFER "SDL_VIDEO_DOUBLE_BUFFER" + +/** + * \brief A variable controlling what driver to use for OpenGL ES contexts. + * + * On some platforms, currently Windows and X11, OpenGL drivers may support + * creating contexts with an OpenGL ES profile. By default SDL uses these + * profiles, when available, otherwise it attempts to load an OpenGL ES + * library, e.g. that provided by the ANGLE project. This variable controls + * whether SDL follows this default behaviour or will always load an + * OpenGL ES library. + * + * Circumstances where this is useful include + * - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, + * or emulator, e.g. those from ARM, Imagination or Qualcomm. + * - Resolving OpenGL ES function addresses at link time by linking with + * the OpenGL ES library instead of querying them at run time with + * SDL_GL_GetProcAddress(). + * + * Caution: for an application to work with the default behaviour across + * different OpenGL drivers it must query the OpenGL ES function + * addresses at run time using SDL_GL_GetProcAddress(). + * + * This variable is ignored on most platforms because OpenGL ES is native + * or not supported. + * + * This variable can be set to the following values: + * "0" - Use ES profile of OpenGL, if available. (Default when not set.) + * "1" - Load OpenGL ES library using the default library names. + * + */ +#define SDL_HINT_OPENGL_ES_DRIVER "SDL_OPENGL_ES_DRIVER" + +/** + * \brief A variable controlling speed/quality tradeoff of audio resampling. + * + * If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ ) + * to handle audio resampling. There are different resampling modes available + * that produce different levels of quality, using more CPU. + * + * If this hint isn't specified to a valid setting, or libsamplerate isn't + * available, SDL will use the default, internal resampling algorithm. + * + * Note that this is currently only applicable to resampling audio that is + * being written to a device for playback or audio being read from a device + * for capture. SDL_AudioCVT always uses the default resampler (although this + * might change for SDL 2.1). + * + * This hint is currently only checked at audio subsystem initialization. + * + * This variable can be set to the following values: + * + * "0" or "default" - Use SDL's internal resampling (Default when not set - low quality, fast) + * "1" or "fast" - Use fast, slightly higher quality resampling, if available + * "2" or "medium" - Use medium quality resampling, if available + * "3" or "best" - Use high quality resampling, if available + */ +#define SDL_HINT_AUDIO_RESAMPLING_MODE "SDL_AUDIO_RESAMPLING_MODE" + +/** + * \brief A variable controlling the audio category on iOS and Mac OS X + * + * This variable can be set to the following values: + * + * "ambient" - Use the AVAudioSessionCategoryAmbient audio category, will be muted by the phone mute switch (default) + * "playback" - Use the AVAudioSessionCategoryPlayback category + * + * For more information, see Apple's documentation: + * https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html + */ +#define SDL_HINT_AUDIO_CATEGORY "SDL_AUDIO_CATEGORY" + /** * \brief An enumeration of hint priorities */ @@ -753,6 +976,11 @@ extern DECLSPEC const char * SDLCALL SDL_GetHint(const char *name); */ extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool default_value); +/** + * \brief type definition of the hint callback function. + */ +typedef void (SDLCALL *SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); + /** * \brief Add a function to watch a particular hint * @@ -760,7 +988,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GetHintBoolean(const char *name, SDL_bool d * \param callback The function to call when the hint value changes * \param userdata A pointer to pass to the callback function */ -typedef void (*SDL_HintCallback)(void *userdata, const char *name, const char *oldValue, const char *newValue); extern DECLSPEC void SDLCALL SDL_AddHintCallback(const char *name, SDL_HintCallback callback, void *userdata); @@ -790,6 +1017,6 @@ extern DECLSPEC void SDLCALL SDL_ClearHints(void); #endif #include "close_code.h" -#endif /* _SDL_hints_h */ +#endif /* SDL_hints_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_joystick.h b/sdl/include/SDL_joystick.h index f5dbc948..f67772d7 100644 --- a/sdl/include/SDL_joystick.h +++ b/sdl/include/SDL_joystick.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -36,8 +36,8 @@ * */ -#ifndef _SDL_joystick_h -#define _SDL_joystick_h +#ifndef SDL_joystick_h_ +#define SDL_joystick_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -60,7 +60,9 @@ extern "C" { * SDL_Init(): SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS */ -/* The joystick structure used to identify an SDL joystick */ +/** + * The joystick structure used to identify an SDL joystick + */ struct _SDL_Joystick; typedef struct _SDL_Joystick SDL_Joystick; @@ -69,8 +71,29 @@ typedef struct { Uint8 data[16]; } SDL_JoystickGUID; +/** + * This is a unique ID for a joystick for the time it is connected to the system, + * and is never reused for the lifetime of the application. If the joystick is + * disconnected and reconnected, it will get a new ID. + * + * The ID value starts at 0 and increments from there. The value -1 is an invalid ID. + */ typedef Sint32 SDL_JoystickID; +typedef enum +{ + SDL_JOYSTICK_TYPE_UNKNOWN, + SDL_JOYSTICK_TYPE_GAMECONTROLLER, + SDL_JOYSTICK_TYPE_WHEEL, + SDL_JOYSTICK_TYPE_ARCADE_STICK, + SDL_JOYSTICK_TYPE_FLIGHT_STICK, + SDL_JOYSTICK_TYPE_DANCE_PAD, + SDL_JOYSTICK_TYPE_GUITAR, + SDL_JOYSTICK_TYPE_DRUM_KIT, + SDL_JOYSTICK_TYPE_ARCADE_PAD, + SDL_JOYSTICK_TYPE_THROTTLE +} SDL_JoystickType; + typedef enum { SDL_JOYSTICK_POWER_UNKNOWN = -1, @@ -83,6 +106,20 @@ typedef enum } SDL_JoystickPowerLevel; /* Function prototypes */ + +/** + * Locking for multi-threaded access to the joystick API + * + * If you are using the joystick API or handling events from multiple threads + * you should use these locking functions to protect access to the joysticks. + * + * In particular, you are guaranteed that the joystick list won't change, so + * the API functions that take a joystick index will be valid, and joystick + * and game controller events will not be delivered. + */ +extern DECLSPEC void SDLCALL SDL_LockJoysticks(void); +extern DECLSPEC void SDLCALL SDL_UnlockJoysticks(void); + /** * Count the number of joysticks attached to the system right now */ @@ -95,6 +132,46 @@ extern DECLSPEC int SDLCALL SDL_NumJoysticks(void); */ extern DECLSPEC const char *SDLCALL SDL_JoystickNameForIndex(int device_index); +/** + * Return the GUID for the joystick at this index + * This can be called before any joysticks are opened. + */ +extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); + +/** + * Get the USB vendor ID of a joystick, if available. + * This can be called before any joysticks are opened. + * If the vendor ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceVendor(int device_index); + +/** + * Get the USB product ID of a joystick, if available. + * This can be called before any joysticks are opened. + * If the product ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProduct(int device_index); + +/** + * Get the product version of a joystick, if available. + * This can be called before any joysticks are opened. + * If the product version isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetDeviceProductVersion(int device_index); + +/** + * Get the type of a joystick, if available. + * This can be called before any joysticks are opened. + */ +extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetDeviceType(int device_index); + +/** + * Get the instance ID of a joystick. + * This can be called before any joysticks are opened. + * If the index is out of range, this function will return -1. + */ +extern DECLSPEC SDL_JoystickID SDLCALL SDL_JoystickGetDeviceInstanceID(int device_index); + /** * Open a joystick for use. * The index passed as an argument refers to the N'th joystick on the system. @@ -117,16 +194,34 @@ extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickFromInstanceID(SDL_JoystickID */ extern DECLSPEC const char *SDLCALL SDL_JoystickName(SDL_Joystick * joystick); -/** - * Return the GUID for the joystick at this index - */ -extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetDeviceGUID(int device_index); - /** * Return the GUID for this opened joystick */ extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick * joystick); +/** + * Get the USB vendor ID of an opened joystick, if available. + * If the vendor ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetVendor(SDL_Joystick * joystick); + +/** + * Get the USB product ID of an opened joystick, if available. + * If the product ID isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProduct(SDL_Joystick * joystick); + +/** + * Get the product version of an opened joystick, if available. + * If the product version isn't available this function returns 0. + */ +extern DECLSPEC Uint16 SDLCALL SDL_JoystickGetProductVersion(SDL_Joystick * joystick); + +/** + * Get the type of an opened joystick. + */ +extern DECLSPEC SDL_JoystickType SDLCALL SDL_JoystickGetType(SDL_Joystick * joystick); + /** * Return a string representation for this guid. pszGUID must point to at least 33 bytes * (32 for the string plus a NULL terminator). @@ -134,7 +229,7 @@ extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUID(SDL_Joystick * joys extern DECLSPEC void SDLCALL SDL_JoystickGetGUIDString(SDL_JoystickGUID guid, char *pszGUID, int cbGUID); /** - * convert a string into a joystick formatted guid + * Convert a string into a joystick guid */ extern DECLSPEC SDL_JoystickGUID SDLCALL SDL_JoystickGetGUIDFromString(const char *pchGUID); @@ -190,6 +285,8 @@ extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void); */ extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); +#define SDL_JOYSTICK_AXIS_MAX 32767 +#define SDL_JOYSTICK_AXIS_MIN -32768 /** * Get the current state of an axis control on a joystick. * @@ -200,6 +297,18 @@ extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state); extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick, int axis); +/** + * Get the initial state of an axis control on a joystick. + * + * The state is a value ranging from -32768 to 32767. + * + * The axis indices start at index 0. + * + * \return SDL_TRUE if this axis has any initial value, or SDL_FALSE if not. + */ +extern DECLSPEC SDL_bool SDLCALL SDL_JoystickGetAxisInitialState(SDL_Joystick * joystick, + int axis, Sint16 *state); + /** * \name Hat positions */ @@ -268,6 +377,6 @@ extern DECLSPEC SDL_JoystickPowerLevel SDLCALL SDL_JoystickCurrentPowerLevel(SDL #endif #include "close_code.h" -#endif /* _SDL_joystick_h */ +#endif /* SDL_joystick_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_keyboard.h b/sdl/include/SDL_keyboard.h index f80b6d2d..87482317 100644 --- a/sdl/include/SDL_keyboard.h +++ b/sdl/include/SDL_keyboard.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL keyboard event handling */ -#ifndef _SDL_keyboard_h -#define _SDL_keyboard_h +#ifndef SDL_keyboard_h_ +#define SDL_keyboard_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -212,6 +212,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IsScreenKeyboardShown(SDL_Window *window); #endif #include "close_code.h" -#endif /* _SDL_keyboard_h */ +#endif /* SDL_keyboard_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_keycode.h b/sdl/include/SDL_keycode.h index 7be96357..d7d5b1db 100644 --- a/sdl/include/SDL_keycode.h +++ b/sdl/include/SDL_keycode.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Defines constants which identify keyboard keys and modifiers. */ -#ifndef _SDL_keycode_h -#define _SDL_keycode_h +#ifndef SDL_keycode_h_ +#define SDL_keycode_h_ #include "SDL_stdinc.h" #include "SDL_scancode.h" @@ -38,6 +38,9 @@ * layout of the keyboard. These values include Unicode values representing * the unmodified character that would be generated by pressing the key, or * an SDLK_* constant for those keys that do not generate characters. + * + * A special exception is the number keys at the top of the keyboard which + * always map to SDLK_0...SDLK_9, regardless of layout. */ typedef Sint32 SDL_Keycode; @@ -308,7 +311,12 @@ enum SDLK_KBDILLUMDOWN = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMDOWN), SDLK_KBDILLUMUP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_KBDILLUMUP), SDLK_EJECT = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_EJECT), - SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP) + SDLK_SLEEP = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_SLEEP), + SDLK_APP1 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP1), + SDLK_APP2 = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_APP2), + + SDLK_AUDIOREWIND = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOREWIND), + SDLK_AUDIOFASTFORWARD = SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_AUDIOFASTFORWARD) }; /** @@ -336,6 +344,6 @@ typedef enum #define KMOD_ALT (KMOD_LALT|KMOD_RALT) #define KMOD_GUI (KMOD_LGUI|KMOD_RGUI) -#endif /* _SDL_keycode_h */ +#endif /* SDL_keycode_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_loadso.h b/sdl/include/SDL_loadso.h index 3d540bd7..da56fb45 100644 --- a/sdl/include/SDL_loadso.h +++ b/sdl/include/SDL_loadso.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -38,8 +38,8 @@ * the results you expect. :) */ -#ifndef _SDL_loadso_h -#define _SDL_loadso_h +#ifndef SDL_loadso_h_ +#define SDL_loadso_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -76,6 +76,6 @@ extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle); #endif #include "close_code.h" -#endif /* _SDL_loadso_h */ +#endif /* SDL_loadso_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_log.h b/sdl/include/SDL_log.h index 09be1104..e12b6588 100644 --- a/sdl/include/SDL_log.h +++ b/sdl/include/SDL_log.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -34,8 +34,8 @@ * Others: standard error output (stderr) */ -#ifndef _SDL_log_h -#define _SDL_log_h +#ifndef SDL_log_h_ +#define SDL_log_h_ #include "SDL_stdinc.h" @@ -186,7 +186,7 @@ extern DECLSPEC void SDLCALL SDL_LogMessageV(int category, /** * \brief The prototype for the log output function */ -typedef void (*SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); +typedef void (SDLCALL *SDL_LogOutputFunction)(void *userdata, int category, SDL_LogPriority priority, const char *message); /** * \brief Get the current log output function. @@ -206,6 +206,6 @@ extern DECLSPEC void SDLCALL SDL_LogSetOutputFunction(SDL_LogOutputFunction call #endif #include "close_code.h" -#endif /* _SDL_log_h */ +#endif /* SDL_log_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_main.h b/sdl/include/SDL_main.h index 67afea5e..98558217 100644 --- a/sdl/include/SDL_main.h +++ b/sdl/include/SDL_main.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_main_h -#define _SDL_main_h +#ifndef SDL_main_h_ +#define SDL_main_h_ #include "SDL_stdinc.h" @@ -63,10 +63,13 @@ /* On Android SDL provides a Java class in SDLActivity.java that is the main activity entry point. - See README-android.md for more details on extending that class. + See docs/README-android.md for more details on extending that class. */ #define SDL_MAIN_NEEDED +/* We need to export SDL_main so it can be launched from Java */ +#define SDLMAIN_DECLSPEC DECLSPEC + #elif defined(__NACL__) /* On NACL we use ppapi_simple to set up the application helper code, then wait for the first PSE_INSTANCE_DIDCHANGEVIEW event before @@ -85,6 +88,10 @@ #define C_LINKAGE #endif /* __cplusplus */ +#ifndef SDLMAIN_DECLSPEC +#define SDLMAIN_DECLSPEC +#endif + /** * \file SDL_main.h * @@ -107,7 +114,7 @@ /** * The prototype for the application's main() function */ -extern C_LINKAGE int SDL_main(int argc, char *argv[]); +extern C_LINKAGE SDLMAIN_DECLSPEC int SDL_main(int argc, char *argv[]); #include "begin_code.h" @@ -156,6 +163,6 @@ extern DECLSPEC int SDLCALL SDL_WinRTRunApp(int (*mainFunction)(int, char **), v #endif #include "close_code.h" -#endif /* _SDL_main_h */ +#endif /* SDL_main_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_messagebox.h b/sdl/include/SDL_messagebox.h index ec370dbb..b7be59d8 100644 --- a/sdl/include/SDL_messagebox.h +++ b/sdl/include/SDL_messagebox.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_messagebox_h -#define _SDL_messagebox_h +#ifndef SDL_messagebox_h_ +#define SDL_messagebox_h_ #include "SDL_stdinc.h" #include "SDL_video.h" /* For SDL_Window */ @@ -139,6 +139,6 @@ extern DECLSPEC int SDLCALL SDL_ShowSimpleMessageBox(Uint32 flags, const char *t #endif #include "close_code.h" -#endif /* _SDL_messagebox_h */ +#endif /* SDL_messagebox_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_mouse.h b/sdl/include/SDL_mouse.h index 46f046d0..d3c9f615 100644 --- a/sdl/include/SDL_mouse.h +++ b/sdl/include/SDL_mouse.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL mouse event handling. */ -#ifndef _SDL_mouse_h -#define _SDL_mouse_h +#ifndef SDL_mouse_h_ +#define SDL_mouse_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -38,7 +38,7 @@ extern "C" { #endif -typedef struct SDL_Cursor SDL_Cursor; /* Implementation dependent */ +typedef struct SDL_Cursor SDL_Cursor; /**< Implementation dependent */ /** * \brief Cursor types for SDL_CreateSystemCursor(). @@ -297,6 +297,6 @@ extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle); #endif #include "close_code.h" -#endif /* _SDL_mouse_h */ +#endif /* SDL_mouse_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_mutex.h b/sdl/include/SDL_mutex.h index b7e39734..ba4247ce 100644 --- a/sdl/include/SDL_mutex.h +++ b/sdl/include/SDL_mutex.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_mutex_h -#define _SDL_mutex_h +#ifndef SDL_mutex_h_ +#define SDL_mutex_h_ /** * \file SDL_mutex.h @@ -246,6 +246,6 @@ extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond, #endif #include "close_code.h" -#endif /* _SDL_mutex_h */ +#endif /* SDL_mutex_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_name.h b/sdl/include/SDL_name.h index 06cd4a5e..ecd863f4 100644 --- a/sdl/include/SDL_name.h +++ b/sdl/include/SDL_name.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDLname_h_ -#define _SDLname_h_ +#ifndef SDLname_h_ +#define SDLname_h_ #if defined(__STDC__) || defined(__cplusplus) #define NeedFunctionPrototypes 1 @@ -28,6 +28,6 @@ #define SDL_NAME(X) SDL_##X -#endif /* _SDLname_h_ */ +#endif /* SDLname_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_opengl.h b/sdl/include/SDL_opengl.h index 780919bc..253d9c93 100644 --- a/sdl/include/SDL_opengl.h +++ b/sdl/include/SDL_opengl.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -32,8 +32,8 @@ * version included in SDL_opengl.h. */ -#ifndef _SDL_opengl_h -#define _SDL_opengl_h +#ifndef SDL_opengl_h_ +#define SDL_opengl_h_ #include "SDL_config.h" @@ -97,6 +97,13 @@ #elif defined(__CYGWIN__) && defined(USE_OPENGL32) /* use native windows opengl32 */ # define GLAPI extern # define GLAPIENTRY __stdcall +#elif defined(__OS2__) || defined(__EMX__) /* native os/2 opengl */ +# define GLAPI extern +# define GLAPIENTRY _System +# define APIENTRY _System +# if defined(__GNUC__) && !defined(_System) +# define _System +# endif #elif (defined(__GNUC__) && __GNUC__ >= 4) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) # define GLAPI __attribute__((visibility("default"))) # define GLAPIENTRY @@ -2171,6 +2178,6 @@ typedef void (APIENTRYP PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC) (GLenum t #endif /* !__IPHONEOS__ */ -#endif /* _SDL_opengl_h */ +#endif /* SDL_opengl_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_opengles.h b/sdl/include/SDL_opengles.h index 15abee79..18dd984b 100644 --- a/sdl/include/SDL_opengles.h +++ b/sdl/include/SDL_opengles.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages diff --git a/sdl/include/SDL_opengles2.h b/sdl/include/SDL_opengles2.h index c961f0f7..6ccecf21 100644 --- a/sdl/include/SDL_opengles2.h +++ b/sdl/include/SDL_opengles2.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages diff --git a/sdl/include/SDL_pixels.h b/sdl/include/SDL_pixels.h index cf6a33f0..0b4364b1 100644 --- a/sdl/include/SDL_pixels.h +++ b/sdl/include/SDL_pixels.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header for the enumerated pixel format definitions. */ -#ifndef _SDL_pixels_h -#define _SDL_pixels_h +#ifndef SDL_pixels_h_ +#define SDL_pixels_h_ #include "SDL_stdinc.h" #include "SDL_endian.h" @@ -287,7 +287,9 @@ enum SDL_PIXELFORMAT_NV12 = /**< Planar mode: Y + U/V interleaved (2 planes) */ SDL_DEFINE_PIXELFOURCC('N', 'V', '1', '2'), SDL_PIXELFORMAT_NV21 = /**< Planar mode: Y + V/U interleaved (2 planes) */ - SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1') + SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1'), + SDL_PIXELFORMAT_EXTERNAL_OES = /**< Android video texture format */ + SDL_DEFINE_PIXELFOURCC('O', 'E', 'S', ' ') }; typedef struct SDL_Color @@ -463,6 +465,6 @@ extern DECLSPEC void SDLCALL SDL_CalculateGammaRamp(float gamma, Uint16 * ramp); #endif #include "close_code.h" -#endif /* _SDL_pixels_h */ +#endif /* SDL_pixels_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_platform.h b/sdl/include/SDL_platform.h index 03cf1706..7dea4ce9 100644 --- a/sdl/include/SDL_platform.h +++ b/sdl/include/SDL_platform.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Try to get a standard set of platform defines. */ -#ifndef _SDL_platform_h -#define _SDL_platform_h +#ifndef SDL_platform_h_ +#define SDL_platform_h_ #if defined(_AIX) #undef __AIX__ @@ -97,7 +97,7 @@ #undef __OPENBSD__ #define __OPENBSD__ 1 #endif -#if defined(__OS2__) +#if defined(__OS2__) || defined(__EMX__) #undef __OS2__ #define __OS2__ 1 #endif @@ -120,21 +120,34 @@ #if defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) /* Try to find out if we're compiling for WinRT or non-WinRT */ -/* If _USING_V110_SDK71_ is defined it means we are using the v110_xp or v120_xp toolset. */ -#if (defined(_MSC_VER) && (_MSC_VER >= 1700) && !_USING_V110_SDK71_) /* _MSC_VER==1700 for MSVC 2012 */ +#if defined(_MSC_VER) && defined(__has_include) +#if __has_include() +#define HAVE_WINAPIFAMILY_H 1 +#else +#define HAVE_WINAPIFAMILY_H 0 +#endif + +/* If _USING_V110_SDK71_ is defined it means we are using the Windows XP toolset. */ +#elif defined(_MSC_VER) && (_MSC_VER >= 1700 && !_USING_V110_SDK71_) /* _MSC_VER == 1700 for Visual Studio 2012 */ +#define HAVE_WINAPIFAMILY_H 1 +#else +#define HAVE_WINAPIFAMILY_H 0 +#endif + +#if HAVE_WINAPIFAMILY_H #include -#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) -#undef __WINDOWS__ -#define __WINDOWS__ 1 -/* See if we're compiling for WinRT: */ -#elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) +#define WINAPI_FAMILY_WINRT (!WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)) +#else +#define WINAPI_FAMILY_WINRT 0 +#endif /* HAVE_WINAPIFAMILY_H */ + +#if WINAPI_FAMILY_WINRT #undef __WINRT__ #define __WINRT__ 1 -#endif #else #undef __WINDOWS__ -#define __WINDOWS__ 1 -#endif /* _MSC_VER < 1700 */ +#define __WINDOWS__ 1 +#endif #endif /* defined(WIN32) || defined(_WIN32) || defined(__CYGWIN__) */ #if defined(__WINDOWS__) @@ -180,6 +193,6 @@ extern DECLSPEC const char * SDLCALL SDL_GetPlatform (void); #endif #include "close_code.h" -#endif /* _SDL_platform_h */ +#endif /* SDL_platform_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_power.h b/sdl/include/SDL_power.h index 24c05011..a4fe8a93 100644 --- a/sdl/include/SDL_power.h +++ b/sdl/include/SDL_power.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_power_h -#define _SDL_power_h +#ifndef SDL_power_h_ +#define SDL_power_h_ /** * \file SDL_power.h @@ -70,6 +70,6 @@ extern DECLSPEC SDL_PowerState SDLCALL SDL_GetPowerInfo(int *secs, int *pct); #endif #include "close_code.h" -#endif /* _SDL_power_h */ +#endif /* SDL_power_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_quit.h b/sdl/include/SDL_quit.h index cc06f28d..fea56a8d 100644 --- a/sdl/include/SDL_quit.h +++ b/sdl/include/SDL_quit.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL quit event handling. */ -#ifndef _SDL_quit_h -#define _SDL_quit_h +#ifndef SDL_quit_h_ +#define SDL_quit_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -55,4 +55,4 @@ #define SDL_QuitRequested() \ (SDL_PumpEvents(), (SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUIT,SDL_QUIT) > 0)) -#endif /* _SDL_quit_h */ +#endif /* SDL_quit_h_ */ diff --git a/sdl/include/SDL_rect.h b/sdl/include/SDL_rect.h index bbcb9a3b..543bb618 100644 --- a/sdl/include/SDL_rect.h +++ b/sdl/include/SDL_rect.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header file for SDL_rect definition and management functions. */ -#ifndef _SDL_rect_h -#define _SDL_rect_h +#ifndef SDL_rect_h_ +#define SDL_rect_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -143,6 +143,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_IntersectRectAndLine(const SDL_Rect * #endif #include "close_code.h" -#endif /* _SDL_rect_h */ +#endif /* SDL_rect_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_render.h b/sdl/include/SDL_render.h index 60c87b66..d3361929 100644 --- a/sdl/include/SDL_render.h +++ b/sdl/include/SDL_render.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -45,8 +45,8 @@ * See this bug for details: http://bugzilla.libsdl.org/show_bug.cgi?id=1995 */ -#ifndef _SDL_render_h -#define _SDL_render_h +#ifndef SDL_render_h_ +#define SDL_render_h_ #include "SDL_stdinc.h" #include "SDL_rect.h" @@ -233,6 +233,8 @@ extern DECLSPEC int SDLCALL SDL_GetRendererOutputSize(SDL_Renderer * renderer, * active, the format was unsupported, or the width or height were out * of range. * + * \note The contents of the texture are not defined at creation. + * * \sa SDL_QueryTexture() * \sa SDL_UpdateTexture() * \sa SDL_DestroyTexture() @@ -370,9 +372,12 @@ extern DECLSPEC int SDLCALL SDL_GetTextureBlendMode(SDL_Texture * texture, * \param texture The texture to update * \param rect A pointer to the rectangle of pixels to update, or NULL to * update the entire texture. - * \param pixels The raw pixel data. + * \param pixels The raw pixel data in the format of the texture. * \param pitch The number of bytes in a row of pixel data, including padding between lines. * + * The pixel data must be in the format of the texture. The pixel format can be + * queried with SDL_QueryTexture. + * * \return 0 on success, or -1 if the texture is not valid. * * \note This is a fairly slow function. @@ -816,7 +821,7 @@ extern DECLSPEC int SDLCALL SDL_RenderCopy(SDL_Renderer * renderer, * texture. * \param dstrect A pointer to the destination rectangle, or NULL for the * entire rendering target. - * \param angle An angle in degrees that indicates the rotation that will be applied to dstrect + * \param angle An angle in degrees that indicates the rotation that will be applied to dstrect, rotating it in a clockwise direction * \param center A pointer to a point indicating the point around which dstrect will be rotated (if NULL, rotation will be done around dstrect.w/2, dstrect.h/2). * \param flip An SDL_RendererFlip value stating which flipping actions should be performed on the texture * @@ -893,6 +898,27 @@ extern DECLSPEC int SDLCALL SDL_GL_BindTexture(SDL_Texture *texture, float *texw */ extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture); +/** + * \brief Get the CAMetalLayer associated with the given Metal renderer + * + * \param renderer The renderer to query + * + * \return CAMetalLayer* on success, or NULL if the renderer isn't a Metal renderer + * + * \sa SDL_RenderGetMetalCommandEncoder() + */ +extern DECLSPEC void *SDLCALL SDL_RenderGetMetalLayer(SDL_Renderer * renderer); + +/** + * \brief Get the Metal command encoder for the current frame + * + * \param renderer The renderer to query + * + * \return id on success, or NULL if the renderer isn't a Metal renderer + * + * \sa SDL_RenderGetMetalLayer() + */ +extern DECLSPEC void *SDLCALL SDL_RenderGetMetalCommandEncoder(SDL_Renderer * renderer); /* Ends C function definitions when using C++ */ #ifdef __cplusplus @@ -900,6 +926,6 @@ extern DECLSPEC int SDLCALL SDL_GL_UnbindTexture(SDL_Texture *texture); #endif #include "close_code.h" -#endif /* _SDL_render_h */ +#endif /* SDL_render_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_revision.h b/sdl/include/SDL_revision.h index 341dc5cc..dbe9b97d 100644 --- a/sdl/include/SDL_revision.h +++ b/sdl/include/SDL_revision.h @@ -1,2 +1,2 @@ -#define SDL_REVISION "hg-10556:007dfe83abf8" -#define SDL_REVISION_NUMBER 10556 +#define SDL_REVISION "hg-11914:f1084c419f33" +#define SDL_REVISION_NUMBER 11914 diff --git a/sdl/include/SDL_rwops.h b/sdl/include/SDL_rwops.h index 1ad3ac40..0960699d 100644 --- a/sdl/include/SDL_rwops.h +++ b/sdl/include/SDL_rwops.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -26,8 +26,8 @@ * data streams. It can easily be extended to files, memory, etc. */ -#ifndef _SDL_rwops_h -#define _SDL_rwops_h +#ifndef SDL_rwops_h_ +#define SDL_rwops_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -39,12 +39,12 @@ extern "C" { #endif /* RWops Types */ -#define SDL_RWOPS_UNKNOWN 0U /* Unknown stream type */ -#define SDL_RWOPS_WINFILE 1U /* Win32 file */ -#define SDL_RWOPS_STDFILE 2U /* Stdio file */ -#define SDL_RWOPS_JNIFILE 3U /* Android asset */ -#define SDL_RWOPS_MEMORY 4U /* Memory stream */ -#define SDL_RWOPS_MEMORY_RO 5U /* Read-Only memory stream */ +#define SDL_RWOPS_UNKNOWN 0U /**< Unknown stream type */ +#define SDL_RWOPS_WINFILE 1U /**< Win32 file */ +#define SDL_RWOPS_STDFILE 2U /**< Stdio file */ +#define SDL_RWOPS_JNIFILE 3U /**< Android asset */ +#define SDL_RWOPS_MEMORY 4U /**< Memory stream */ +#define SDL_RWOPS_MEMORY_RO 5U /**< Read-Only memory stream */ /** * This is the read/write operation structure -- very basic. @@ -190,6 +190,29 @@ extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area); /* @} *//* Read/write macros */ +/** + * Load all the data from an SDL data stream. + * + * The data is allocated with a zero byte at the end (null terminated) + * + * If \c datasize is not NULL, it is filled with the size of the data read. + * + * If \c freesrc is non-zero, the stream will be closed after being read. + * + * The data should be freed with SDL_free(). + * + * \return the data, or NULL if there was an error. + */ +extern DECLSPEC void *SDLCALL SDL_LoadFile_RW(SDL_RWops * src, size_t *datasize, + int freesrc); + +/** + * Load an entire file. + * + * Convenience macro. + */ +#define SDL_LoadFile(file, datasize) SDL_LoadFile_RW(SDL_RWFromFile(file, "rb"), datasize, 1) + /** * \name Read endian functions * @@ -226,6 +249,6 @@ extern DECLSPEC size_t SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value); #endif #include "close_code.h" -#endif /* _SDL_rwops_h */ +#endif /* SDL_rwops_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_scancode.h b/sdl/include/SDL_scancode.h index 0af1dd59..63871aa3 100644 --- a/sdl/include/SDL_scancode.h +++ b/sdl/include/SDL_scancode.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Defines keyboard scancodes. */ -#ifndef _SDL_scancode_h -#define _SDL_scancode_h +#ifndef SDL_scancode_h_ +#define SDL_scancode_h_ #include "SDL_stdinc.h" @@ -38,7 +38,7 @@ * SDL_Event structure. * * The values in this enumeration are based on the USB usage page standard: - * http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf + * http://www.usb.org/developers/hidpage/Hut1_12v2.pdf */ typedef enum { @@ -390,12 +390,24 @@ typedef enum /* @} *//* Walther keys */ + /** + * \name Usage page 0x0C (additional media keys) + * + * These values are mapped from usage page 0x0C (USB consumer page). + */ + /* @{ */ + + SDL_SCANCODE_AUDIOREWIND = 285, + SDL_SCANCODE_AUDIOFASTFORWARD = 286, + + /* @} *//* Usage page 0x0C (additional media keys) */ + /* Add any other keys here. */ SDL_NUM_SCANCODES = 512 /**< not a key, just marks the number of scancodes for array bounds */ } SDL_Scancode; -#endif /* _SDL_scancode_h */ +#endif /* SDL_scancode_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_shape.h b/sdl/include/SDL_shape.h index db10a8f0..40a6baaa 100644 --- a/sdl/include/SDL_shape.h +++ b/sdl/include/SDL_shape.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_shape_h -#define _SDL_shape_h +#ifndef SDL_shape_h_ +#define SDL_shape_h_ #include "SDL_stdinc.h" #include "SDL_pixels.h" @@ -71,6 +71,7 @@ extern DECLSPEC SDL_Window * SDLCALL SDL_CreateShapedWindow(const char *title,un * \param window The window to query for being shaped. * * \return SDL_TRUE if the window is a window that can be shaped, SDL_FALSE if the window is unshaped or NULL. + * * \sa SDL_CreateShapedWindow */ extern DECLSPEC SDL_bool SDLCALL SDL_IsShapedWindow(const SDL_Window *window); @@ -91,7 +92,7 @@ typedef enum { /** \brief A union containing parameters for shaped windows. */ typedef union { - /** \brief a cutoff alpha value for binarization of the window shape's alpha channel. */ + /** \brief A cutoff alpha value for binarization of the window shape's alpha channel. */ Uint8 binarizationCutoff; SDL_Color colorKey; } SDL_WindowShapeParams; @@ -111,8 +112,8 @@ typedef struct SDL_WindowShapeMode { * \param shape A surface encoding the desired shape for the window. * \param shape_mode The parameters to set for the shaped window. * - * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on invalid an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW - * if the SDL_Window* given does not reference a valid shaped window. + * \return 0 on success, SDL_INVALID_SHAPE_ARGUMENT on an invalid shape argument, or SDL_NONSHAPEABLE_WINDOW + * if the SDL_Window given does not reference a valid shaped window. * * \sa SDL_WindowShapeMode * \sa SDL_GetShapedWindowMode. @@ -127,7 +128,7 @@ extern DECLSPEC int SDLCALL SDL_SetWindowShape(SDL_Window *window,SDL_Surface *s * * \return 0 if the window has a shape and, provided shape_mode was not NULL, shape_mode has been filled with the mode * data, SDL_NONSHAPEABLE_WINDOW if the SDL_Window given is not a shaped window, or SDL_WINDOW_LACKS_SHAPE if - * the SDL_Window* given is a shapeable window currently lacking a shape. + * the SDL_Window given is a shapeable window currently lacking a shape. * * \sa SDL_WindowShapeMode * \sa SDL_SetWindowShape @@ -140,4 +141,4 @@ extern DECLSPEC int SDLCALL SDL_GetShapedWindowMode(SDL_Window *window,SDL_Windo #endif #include "close_code.h" -#endif /* _SDL_shape_h */ +#endif /* SDL_shape_h_ */ diff --git a/sdl/include/SDL_stdinc.h b/sdl/include/SDL_stdinc.h index fdf96415..111a0645 100644 --- a/sdl/include/SDL_stdinc.h +++ b/sdl/include/SDL_stdinc.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * This is a general header that includes C language support. */ -#ifndef _SDL_stdinc_h -#define _SDL_stdinc_h +#ifndef SDL_stdinc_h_ +#define SDL_stdinc_h_ #include "SDL_config.h" @@ -62,6 +62,9 @@ #ifdef HAVE_STRINGS_H # include #endif +#ifdef HAVE_WCHAR_H +# include +#endif #if defined(HAVE_INTTYPES_H) # include #elif defined(HAVE_STDINT_H) @@ -127,44 +130,67 @@ */ /* @{ */ +#ifdef __CC_ARM +/* ARM's compiler throws warnings if we use an enum: like "SDL_bool x = a < b;" */ +#define SDL_FALSE 0 +#define SDL_TRUE 1 +typedef int SDL_bool; +#else typedef enum { SDL_FALSE = 0, SDL_TRUE = 1 } SDL_bool; +#endif /** * \brief A signed 8-bit integer type. */ +#define SDL_MAX_SINT8 ((Sint8)0x7F) /* 127 */ +#define SDL_MIN_SINT8 ((Sint8)(~0x7F)) /* -128 */ typedef int8_t Sint8; /** * \brief An unsigned 8-bit integer type. */ +#define SDL_MAX_UINT8 ((Uint8)0xFF) /* 255 */ +#define SDL_MIN_UINT8 ((Uint8)0x00) /* 0 */ typedef uint8_t Uint8; /** * \brief A signed 16-bit integer type. */ +#define SDL_MAX_SINT16 ((Sint16)0x7FFF) /* 32767 */ +#define SDL_MIN_SINT16 ((Sint16)(~0x7FFF)) /* -32768 */ typedef int16_t Sint16; /** * \brief An unsigned 16-bit integer type. */ +#define SDL_MAX_UINT16 ((Uint16)0xFFFF) /* 65535 */ +#define SDL_MIN_UINT16 ((Uint16)0x0000) /* 0 */ typedef uint16_t Uint16; /** * \brief A signed 32-bit integer type. */ +#define SDL_MAX_SINT32 ((Sint32)0x7FFFFFFF) /* 2147483647 */ +#define SDL_MIN_SINT32 ((Sint32)(~0x7FFFFFFF)) /* -2147483648 */ typedef int32_t Sint32; /** * \brief An unsigned 32-bit integer type. */ +#define SDL_MAX_UINT32 ((Uint32)0xFFFFFFFFu) /* 4294967295 */ +#define SDL_MIN_UINT32 ((Uint32)0x00000000) /* 0 */ typedef uint32_t Uint32; /** * \brief A signed 64-bit integer type. */ +#define SDL_MAX_SINT64 ((Sint64)0x7FFFFFFFFFFFFFFFll) /* 9223372036854775807 */ +#define SDL_MIN_SINT64 ((Sint64)(~0x7FFFFFFFFFFFFFFFll)) /* -9223372036854775808 */ typedef int64_t Sint64; /** * \brief An unsigned 64-bit integer type. */ +#define SDL_MAX_UINT64 ((Uint64)0xFFFFFFFFFFFFFFFFull) /* 18446744073709551615 */ +#define SDL_MIN_UINT64 ((Uint64)(0x0000000000000000ull)) /* 0 */ typedef uint64_t Uint64; /* @} *//* Basic data types */ @@ -262,7 +288,7 @@ typedef uint64_t Uint64; #endif /* SDL_DISABLE_ANALYZE_MACROS */ #define SDL_COMPILE_TIME_ASSERT(name, x) \ - typedef int SDL_dummy_ ## name[(x) * 2 - 1] + typedef int SDL_compile_time_assert_ ## name[(x) * 2 - 1] /** \cond */ #ifndef DOXYGEN_SHOULD_IGNORE_THIS SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1); @@ -337,6 +363,37 @@ extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size); extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size); extern DECLSPEC void SDLCALL SDL_free(void *mem); +typedef void *(SDLCALL *SDL_malloc_func)(size_t size); +typedef void *(SDLCALL *SDL_calloc_func)(size_t nmemb, size_t size); +typedef void *(SDLCALL *SDL_realloc_func)(void *mem, size_t size); +typedef void (SDLCALL *SDL_free_func)(void *mem); + +/** + * \brief Get the current set of SDL memory functions + */ +extern DECLSPEC void SDLCALL SDL_GetMemoryFunctions(SDL_malloc_func *malloc_func, + SDL_calloc_func *calloc_func, + SDL_realloc_func *realloc_func, + SDL_free_func *free_func); + +/** + * \brief Replace SDL's memory allocation functions with a custom set + * + * \note If you are replacing SDL's memory functions, you should call + * SDL_GetNumAllocations() and be very careful if it returns non-zero. + * That means that your free function will be called with memory + * allocated by the previous memory allocation functions. + */ +extern DECLSPEC int SDLCALL SDL_SetMemoryFunctions(SDL_malloc_func malloc_func, + SDL_calloc_func calloc_func, + SDL_realloc_func realloc_func, + SDL_free_func free_func); + +/** + * \brief Get the number of outstanding (unfreed) allocations + */ +extern DECLSPEC int SDLCALL SDL_GetNumAllocations(void); + extern DECLSPEC char *SDLCALL SDL_getenv(const char *name); extern DECLSPEC int SDLCALL SDL_setenv(const char *name, const char *value, int overwrite); @@ -379,10 +436,10 @@ SDL_FORCE_INLINE void SDL_memset4(void *dst, Uint32 val, size_t dwords) return; switch (dwords % 4) { - case 0: do { *_p++ = _val; - case 3: *_p++ = _val; - case 2: *_p++ = _val; - case 1: *_p++ = _val; + case 0: do { *_p++ = _val; /* fallthrough */ + case 3: *_p++ = _val; /* fallthrough */ + case 2: *_p++ = _val; /* fallthrough */ + case 1: *_p++ = _val; /* fallthrough */ } while ( --_n ); } #endif @@ -397,6 +454,7 @@ extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t le extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr); extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen); +extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2); extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str); extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen); @@ -409,6 +467,7 @@ extern DECLSPEC char *SDLCALL SDL_strlwr(char *str); extern DECLSPEC char *SDLCALL SDL_strchr(const char *str, int c); extern DECLSPEC char *SDLCALL SDL_strrchr(const char *str, int c); extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack, const char *needle); +extern DECLSPEC size_t SDLCALL SDL_utf8strlen(const char *str); extern DECLSPEC char *SDLCALL SDL_itoa(int value, char *str, int radix); extern DECLSPEC char *SDLCALL SDL_uitoa(unsigned int value, char *str, int radix); @@ -437,23 +496,38 @@ extern DECLSPEC int SDLCALL SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size #ifndef HAVE_M_PI #ifndef M_PI -#define M_PI 3.14159265358979323846264338327950288 /* pi */ +#define M_PI 3.14159265358979323846264338327950288 /**< pi */ #endif #endif extern DECLSPEC double SDLCALL SDL_acos(double x); +extern DECLSPEC float SDLCALL SDL_acosf(float x); extern DECLSPEC double SDLCALL SDL_asin(double x); +extern DECLSPEC float SDLCALL SDL_asinf(float x); extern DECLSPEC double SDLCALL SDL_atan(double x); +extern DECLSPEC float SDLCALL SDL_atanf(float x); extern DECLSPEC double SDLCALL SDL_atan2(double x, double y); +extern DECLSPEC float SDLCALL SDL_atan2f(float x, float y); extern DECLSPEC double SDLCALL SDL_ceil(double x); +extern DECLSPEC float SDLCALL SDL_ceilf(float x); extern DECLSPEC double SDLCALL SDL_copysign(double x, double y); +extern DECLSPEC float SDLCALL SDL_copysignf(float x, float y); extern DECLSPEC double SDLCALL SDL_cos(double x); extern DECLSPEC float SDLCALL SDL_cosf(float x); extern DECLSPEC double SDLCALL SDL_fabs(double x); +extern DECLSPEC float SDLCALL SDL_fabsf(float x); extern DECLSPEC double SDLCALL SDL_floor(double x); +extern DECLSPEC float SDLCALL SDL_floorf(float x); +extern DECLSPEC double SDLCALL SDL_fmod(double x, double y); +extern DECLSPEC float SDLCALL SDL_fmodf(float x, float y); extern DECLSPEC double SDLCALL SDL_log(double x); +extern DECLSPEC float SDLCALL SDL_logf(float x); +extern DECLSPEC double SDLCALL SDL_log10(double x); +extern DECLSPEC float SDLCALL SDL_log10f(float x); extern DECLSPEC double SDLCALL SDL_pow(double x, double y); +extern DECLSPEC float SDLCALL SDL_powf(float x, float y); extern DECLSPEC double SDLCALL SDL_scalbn(double x, int n); +extern DECLSPEC float SDLCALL SDL_scalbnf(float x, int n); extern DECLSPEC double SDLCALL SDL_sin(double x); extern DECLSPEC float SDLCALL SDL_sinf(float x); extern DECLSPEC double SDLCALL SDL_sqrt(double x); @@ -526,6 +600,6 @@ SDL_FORCE_INLINE void *SDL_memcpy4(SDL_OUT_BYTECAP(dwords*4) void *dst, SDL_IN_B #endif #include "close_code.h" -#endif /* _SDL_stdinc_h */ +#endif /* SDL_stdinc_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_surface.h b/sdl/include/SDL_surface.h index e4a06a20..45e5366f 100644 --- a/sdl/include/SDL_surface.h +++ b/sdl/include/SDL_surface.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header file for ::SDL_Surface definition and management functions. */ -#ifndef _SDL_surface_h -#define _SDL_surface_h +#ifndef SDL_surface_h_ +#define SDL_surface_h_ #include "SDL_stdinc.h" #include "SDL_pixels.h" @@ -94,8 +94,19 @@ typedef struct SDL_Surface /** * \brief The type of function used for surface blitting functions. */ -typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, - struct SDL_Surface * dst, SDL_Rect * dstrect); +typedef int (SDLCALL *SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, + struct SDL_Surface * dst, SDL_Rect * dstrect); + +/** + * \brief The formula used for converting between YUV and RGB + */ +typedef enum +{ + SDL_YUV_CONVERSION_JPEG, /**< Full range JPEG */ + SDL_YUV_CONVERSION_BT601, /**< BT.601 (the default) */ + SDL_YUV_CONVERSION_BT709, /**< BT.709 */ + SDL_YUV_CONVERSION_AUTOMATIC /**< BT.601 for SD content, BT.709 for HD content */ +} SDL_YUV_CONVERSION_MODE; /** * Allocate and free an RGB surface. @@ -118,8 +129,11 @@ typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect, extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface (Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask); + +/* !!! FIXME for 2.1: why does this ask for depth? Format provides that. */ extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceWithFormat (Uint32 flags, int width, int height, int depth, Uint32 format); + extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels, int width, int height, @@ -356,6 +370,11 @@ extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface * surface, extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface, SDL_Rect * rect); +/* + * Creates a new surface identical to the existing surface + */ +extern DECLSPEC SDL_Surface *SDLCALL SDL_DuplicateSurface(SDL_Surface * surface); + /** * Creates a new surface of the specified format, and then copies and maps * the given surface to it so the blit of the converted surface will be as @@ -501,6 +520,20 @@ extern DECLSPEC int SDLCALL SDL_LowerBlitScaled (SDL_Surface * src, SDL_Rect * srcrect, SDL_Surface * dst, SDL_Rect * dstrect); +/** + * \brief Set the YUV conversion mode + */ +extern DECLSPEC void SDLCALL SDL_SetYUVConversionMode(SDL_YUV_CONVERSION_MODE mode); + +/** + * \brief Get the YUV conversion mode + */ +extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionMode(void); + +/** + * \brief Get the YUV conversion mode, returning the correct mode for the resolution when the current conversion mode is SDL_YUV_CONVERSION_AUTOMATIC + */ +extern DECLSPEC SDL_YUV_CONVERSION_MODE SDLCALL SDL_GetYUVConversionModeForResolution(int width, int height); /* Ends C function definitions when using C++ */ #ifdef __cplusplus @@ -508,6 +541,6 @@ extern DECLSPEC int SDLCALL SDL_LowerBlitScaled #endif #include "close_code.h" -#endif /* _SDL_surface_h */ +#endif /* SDL_surface_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_system.h b/sdl/include/SDL_system.h index 5da9adb4..7b776fdf 100644 --- a/sdl/include/SDL_system.h +++ b/sdl/include/SDL_system.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for platform specific SDL API functions */ -#ifndef _SDL_system_h -#define _SDL_system_h +#ifndef SDL_system_h_ +#define SDL_system_h_ #include "SDL_stdinc.h" #include "SDL_keyboard.h" @@ -96,7 +96,7 @@ extern DECLSPEC void SDLCALL SDL_iPhoneSetEventPump(SDL_bool enabled); This returns JNIEnv*, but the prototype is void* so we don't need jni.h */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(); +extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(void); /** \brief Get the SDL Activity object for the application @@ -106,7 +106,12 @@ extern DECLSPEC void * SDLCALL SDL_AndroidGetJNIEnv(); It is the caller's responsibility to properly release it (using env->Push/PopLocalFrame or manually with env->DeleteLocalRef) */ -extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(); +extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(void); + +/** + \brief Return true if the application is running on Android TV + */ +extern DECLSPEC SDL_bool SDLCALL SDL_IsAndroidTV(void); /** See the official Android developer guide for more information: @@ -121,7 +126,7 @@ extern DECLSPEC void * SDLCALL SDL_AndroidGetActivity(); This path is unique to your application and cannot be written to by other applications. */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(); +extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(void); /** \brief Get the current state of external storage, a bitmask of these values: @@ -130,7 +135,7 @@ extern DECLSPEC const char * SDLCALL SDL_AndroidGetInternalStoragePath(); If external storage is currently unavailable, this will return 0. */ -extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(); +extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(void); /** \brief Get the path used for external storage for this application. @@ -138,7 +143,7 @@ extern DECLSPEC int SDLCALL SDL_AndroidGetExternalStorageState(); This path is unique to your application, but is public and can be written to by other applications. */ -extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(); +extern DECLSPEC const char * SDLCALL SDL_AndroidGetExternalStoragePath(void); #endif /* __ANDROID__ */ @@ -169,6 +174,25 @@ typedef enum } SDL_WinRT_Path; +/** + * \brief WinRT Device Family + */ +typedef enum +{ + /** \brief Unknown family */ + SDL_WINRT_DEVICEFAMILY_UNKNOWN, + + /** \brief Desktop family*/ + SDL_WINRT_DEVICEFAMILY_DESKTOP, + + /** \brief Mobile family (for example smartphone) */ + SDL_WINRT_DEVICEFAMILY_MOBILE, + + /** \brief XBox family */ + SDL_WINRT_DEVICEFAMILY_XBOX, +} SDL_WinRT_DeviceFamily; + + /** * \brief Retrieves a WinRT defined path on the local file system * @@ -203,6 +227,13 @@ extern DECLSPEC const wchar_t * SDLCALL SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path */ extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathType); +/** + * \brief Detects the device family of WinRT plattform on runtime + * + * \return Device family + */ +extern DECLSPEC SDL_WinRT_DeviceFamily SDLCALL SDL_WinRTGetDeviceFamily(); + #endif /* __WINRT__ */ /* Ends C function definitions when using C++ */ @@ -211,6 +242,6 @@ extern DECLSPEC const char * SDLCALL SDL_WinRTGetFSPathUTF8(SDL_WinRT_Path pathT #endif #include "close_code.h" -#endif /* _SDL_system_h */ +#endif /* SDL_system_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_syswm.h b/sdl/include/SDL_syswm.h index 71ba5f1f..8aa4a39e 100644 --- a/sdl/include/SDL_syswm.h +++ b/sdl/include/SDL_syswm.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL custom system window manager hooks. */ -#ifndef _SDL_syswm_h -#define _SDL_syswm_h +#ifndef SDL_syswm_h_ +#define SDL_syswm_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -125,7 +125,8 @@ typedef enum SDL_SYSWM_MIR, SDL_SYSWM_WINRT, SDL_SYSWM_ANDROID, - SDL_SYSWM_VIVANTE + SDL_SYSWM_VIVANTE, + SDL_SYSWM_OS2 } SDL_SYSWM_TYPE; /** @@ -201,6 +202,7 @@ struct SDL_SysWMinfo { HWND window; /**< The window handle */ HDC hdc; /**< The window device context */ + HINSTANCE hinstance; /**< The instance handle */ } win; #endif #if defined(SDL_VIDEO_DRIVER_WINRT) @@ -228,9 +230,9 @@ struct SDL_SysWMinfo struct { #if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc) - NSWindow __unsafe_unretained *window; /* The Cocoa window */ + NSWindow __unsafe_unretained *window; /**< The Cocoa window */ #else - NSWindow *window; /* The Cocoa window */ + NSWindow *window; /**< The Cocoa window */ #endif } cocoa; #endif @@ -238,13 +240,13 @@ struct SDL_SysWMinfo struct { #if defined(__OBJC__) && defined(__has_feature) && __has_feature(objc_arc) - UIWindow __unsafe_unretained *window; /* The UIKit window */ + UIWindow __unsafe_unretained *window; /**< The UIKit window */ #else - UIWindow *window; /* The UIKit window */ + UIWindow *window; /**< The UIKit window */ #endif - GLuint framebuffer; /* The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ - GLuint colorbuffer; /* The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ - GLuint resolveFramebuffer; /* The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ + GLuint framebuffer; /**< The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. */ + GLuint colorbuffer; /**< The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. */ + GLuint resolveFramebuffer; /**< The Framebuffer Object which holds the resolve color Renderbuffer, when MSAA is used. */ } uikit; #endif #if defined(SDL_VIDEO_DRIVER_WAYLAND) @@ -279,8 +281,9 @@ struct SDL_SysWMinfo } vivante; #endif - /* Can't have an empty union */ - int dummy; + /* Make sure this union is always 64 bytes (8 64-bit pointers). */ + /* Be careful not to overflow this if you add a new target! */ + Uint8 dummy[64]; } info; }; @@ -316,6 +319,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, #endif #include "close_code.h" -#endif /* _SDL_syswm_h */ +#endif /* SDL_syswm_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_thread.h b/sdl/include/SDL_thread.h index 377e6c73..82a43fc0 100644 --- a/sdl/include/SDL_thread.h +++ b/sdl/include/SDL_thread.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_thread_h -#define _SDL_thread_h +#ifndef SDL_thread_h_ +#define SDL_thread_h_ /** * \file SDL_thread.h @@ -74,15 +74,15 @@ typedef int (SDLCALL * SDL_ThreadFunction) (void *data); * * We compile SDL into a DLL. This means, that it's the DLL which * creates a new thread for the calling process with the SDL_CreateThread() - * API. There is a problem with this, that only the RTL of the SDL.DLL will + * API. There is a problem with this, that only the RTL of the SDL2.DLL will * be initialized for those threads, and not the RTL of the calling * application! * * To solve this, we make a little hack here. * * We'll always use the caller's _beginthread() and _endthread() APIs to - * start a new thread. This way, if it's the SDL.DLL which uses this API, - * then the RTL of SDL.DLL will be used to create the new thread, and if it's + * start a new thread. This way, if it's the SDL2.DLL which uses this API, + * then the RTL of SDL2.DLL will be used to create the new thread, and if it's * the application, then the RTL of the application will be used. * * So, in short: @@ -90,14 +90,11 @@ typedef int (SDLCALL * SDL_ThreadFunction) (void *data); * library! */ #define SDL_PASSED_BEGINTHREAD_ENDTHREAD -#include /* This has _beginthread() and _endthread() defined! */ +#include /* _beginthreadex() and _endthreadex() */ -typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned, - unsigned (__stdcall * - func) (void - *), - void *arg, unsigned, - unsigned *threadID); +typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) + (void *, unsigned, unsigned (__stdcall *func)(void *), + void * /*arg*/, unsigned, unsigned * /* threadID */); typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code); /** @@ -118,6 +115,30 @@ SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, #define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthreadex, (pfnSDL_CurrentEndThread)_endthreadex) #endif +#elif defined(__OS2__) +/* + * just like the windows case above: We compile SDL2 + * into a dll with Watcom's runtime statically linked. + */ +#define SDL_PASSED_BEGINTHREAD_ENDTHREAD +#ifndef __EMX__ +#include +#else +#include +#endif +typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void * /*arg*/); +typedef void (*pfnSDL_CurrentEndThread)(void); +extern DECLSPEC SDL_Thread *SDLCALL +SDL_CreateThread(SDL_ThreadFunction fn, const char *name, void *data, + pfnSDL_CurrentBeginThread pfnBeginThread, + pfnSDL_CurrentEndThread pfnEndThread); +#if defined(SDL_CreateThread) && SDL_DYNAMIC_API +#undef SDL_CreateThread +#define SDL_CreateThread(fn, name, data) SDL_CreateThread_REAL(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthread, (pfnSDL_CurrentEndThread)_endthread) +#else +#define SDL_CreateThread(fn, name, data) SDL_CreateThread(fn, name, data, (pfnSDL_CurrentBeginThread)_beginthread, (pfnSDL_CurrentEndThread)_endthread) +#endif + #else /** @@ -273,7 +294,7 @@ extern DECLSPEC void * SDLCALL SDL_TLSGet(SDL_TLSID id); * \sa SDL_TLSCreate() * \sa SDL_TLSGet() */ -extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (*destructor)(void*)); +extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (SDLCALL *destructor)(void*)); /* Ends C function definitions when using C++ */ @@ -282,6 +303,6 @@ extern DECLSPEC int SDLCALL SDL_TLSSet(SDL_TLSID id, const void *value, void (*d #endif #include "close_code.h" -#endif /* _SDL_thread_h */ +#endif /* SDL_thread_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_timer.h b/sdl/include/SDL_timer.h index e0d3785e..5600618f 100644 --- a/sdl/include/SDL_timer.h +++ b/sdl/include/SDL_timer.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -19,8 +19,8 @@ 3. This notice may not be removed or altered from any source distribution. */ -#ifndef _SDL_timer_h -#define _SDL_timer_h +#ifndef SDL_timer_h_ +#define SDL_timer_h_ /** * \file SDL_timer.h @@ -110,6 +110,6 @@ extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID id); #endif #include "close_code.h" -#endif /* _SDL_timer_h */ +#endif /* SDL_timer_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_touch.h b/sdl/include/SDL_touch.h index 2643e367..f4075e79 100644 --- a/sdl/include/SDL_touch.h +++ b/sdl/include/SDL_touch.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Include file for SDL touch event handling. */ -#ifndef _SDL_touch_h -#define _SDL_touch_h +#ifndef SDL_touch_h_ +#define SDL_touch_h_ #include "SDL_stdinc.h" #include "SDL_error.h" @@ -81,6 +81,6 @@ extern DECLSPEC SDL_Finger * SDLCALL SDL_GetTouchFinger(SDL_TouchID touchID, int #endif #include "close_code.h" -#endif /* _SDL_touch_h */ +#endif /* SDL_touch_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_types.h b/sdl/include/SDL_types.h index 5118af21..4ac248c8 100644 --- a/sdl/include/SDL_types.h +++ b/sdl/include/SDL_types.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages diff --git a/sdl/include/SDL_version.h b/sdl/include/SDL_version.h index 1700efdd..584b48c7 100644 --- a/sdl/include/SDL_version.h +++ b/sdl/include/SDL_version.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * This header defines the current SDL version. */ -#ifndef _SDL_version_h -#define _SDL_version_h +#ifndef SDL_version_h_ +#define SDL_version_h_ #include "SDL_stdinc.h" @@ -59,7 +59,7 @@ typedef struct SDL_version */ #define SDL_MAJOR_VERSION 2 #define SDL_MINOR_VERSION 0 -#define SDL_PATCHLEVEL 5 +#define SDL_PATCHLEVEL 8 /** * \brief Macro to determine SDL version program was compiled against. @@ -157,6 +157,6 @@ extern DECLSPEC int SDLCALL SDL_GetRevisionNumber(void); #endif #include "close_code.h" -#endif /* _SDL_version_h */ +#endif /* SDL_version_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_video.h b/sdl/include/SDL_video.h index 73c33eb3..83f49faa 100644 --- a/sdl/include/SDL_video.h +++ b/sdl/include/SDL_video.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -25,8 +25,8 @@ * Header file for SDL video functions. */ -#ifndef _SDL_video_h -#define _SDL_video_h +#ifndef SDL_video_h_ +#define SDL_video_h_ #include "SDL_stdinc.h" #include "SDL_pixels.h" @@ -110,13 +110,16 @@ typedef enum SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */ SDL_WINDOW_FULLSCREEN_DESKTOP = ( SDL_WINDOW_FULLSCREEN | 0x00001000 ), SDL_WINDOW_FOREIGN = 0x00000800, /**< window not created by SDL */ - SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported */ + SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /**< window should be created in high-DPI mode if supported. + On macOS NSHighResolutionCapable must be set true in the + application's Info.plist for this to have any effect. */ SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /**< window has mouse captured (unrelated to INPUT_GRABBED) */ SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, /**< window should always be above others */ SDL_WINDOW_SKIP_TASKBAR = 0x00010000, /**< window should not be added to the taskbar */ SDL_WINDOW_UTILITY = 0x00020000, /**< window should be treated as a utility window */ SDL_WINDOW_TOOLTIP = 0x00040000, /**< window should be treated as a tooltip */ - SDL_WINDOW_POPUP_MENU = 0x00080000 /**< window should be treated as a popup menu */ + SDL_WINDOW_POPUP_MENU = 0x00080000, /**< window should be treated as a popup menu */ + SDL_WINDOW_VULKAN = 0x10000000 /**< window usable for Vulkan surface */ } SDL_WindowFlags; /** @@ -200,14 +203,16 @@ typedef enum SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_SHARE_WITH_CURRENT_CONTEXT, SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR + SDL_GL_CONTEXT_RELEASE_BEHAVIOR, + SDL_GL_CONTEXT_RESET_NOTIFICATION, + SDL_GL_CONTEXT_NO_ERROR } SDL_GLattr; typedef enum { SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, - SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /* GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ + SDL_GL_CONTEXT_PROFILE_ES = 0x0004 /**< GLX_CONTEXT_ES2_PROFILE_BIT_EXT */ } SDL_GLprofile; typedef enum @@ -224,6 +229,11 @@ typedef enum SDL_GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH = 0x0001 } SDL_GLcontextReleaseFlag; +typedef enum +{ + SDL_GL_CONTEXT_RESET_NO_NOTIFICATION = 0x0000, + SDL_GL_CONTEXT_RESET_LOSE_CONTEXT = 0x0001 +} SDL_GLContextResetNotification; /* Function prototypes */ @@ -448,17 +458,32 @@ extern DECLSPEC Uint32 SDLCALL SDL_GetWindowPixelFormat(SDL_Window * window); * ::SDL_WINDOW_HIDDEN, ::SDL_WINDOW_BORDERLESS, * ::SDL_WINDOW_RESIZABLE, ::SDL_WINDOW_MAXIMIZED, * ::SDL_WINDOW_MINIMIZED, ::SDL_WINDOW_INPUT_GRABBED, - * ::SDL_WINDOW_ALLOW_HIGHDPI. + * ::SDL_WINDOW_ALLOW_HIGHDPI, ::SDL_WINDOW_VULKAN. * * \return The created window, or NULL if window creation failed. * * If the window is created with the SDL_WINDOW_ALLOW_HIGHDPI flag, its size * in pixels may differ from its size in screen coordinates on platforms with * high-DPI support (e.g. iOS and Mac OS X). Use SDL_GetWindowSize() to query - * the client area's size in screen coordinates, and SDL_GL_GetDrawableSize() - * or SDL_GetRendererOutputSize() to query the drawable size in pixels. + * the client area's size in screen coordinates, and SDL_GL_GetDrawableSize(), + * SDL_Vulkan_GetDrawableSize(), or SDL_GetRendererOutputSize() to query the + * drawable size in pixels. + * + * If the window is created with any of the SDL_WINDOW_OPENGL or + * SDL_WINDOW_VULKAN flags, then the corresponding LoadLibrary function + * (SDL_GL_LoadLibrary or SDL_Vulkan_LoadLibrary) is called and the + * corresponding UnloadLibrary function is called by SDL_DestroyWindow(). + * + * If SDL_WINDOW_VULKAN is specified and there isn't a working Vulkan driver, + * SDL_CreateWindow() will fail because SDL_Vulkan_LoadLibrary() will fail. + * + * \note On non-Apple devices, SDL requires you to either not link to the + * Vulkan loader or link to a dynamic library version. This limitation + * may be removed in a future version of SDL. * * \sa SDL_DestroyWindow() + * \sa SDL_GL_LoadLibrary() + * \sa SDL_Vulkan_LoadLibrary() */ extern DECLSPEC SDL_Window * SDLCALL SDL_CreateWindow(const char *title, int x, int y, int w, @@ -581,8 +606,8 @@ extern DECLSPEC void SDLCALL SDL_GetWindowPosition(SDL_Window * window, * \param w The width of the window, in screen coordinates. Must be >0. * \param h The height of the window, in screen coordinates. Must be >0. * - * \note You can't change the size of a fullscreen window, it automatically - * matches the size of the display mode. + * \note Fullscreen windows automatically match the size of the display mode, + * and you should use SDL_SetWindowDisplayMode() to change their size. * * The window size in screen coordinates may differ from the size in pixels, if * the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a platform with @@ -590,6 +615,7 @@ extern DECLSPEC void SDLCALL SDL_GetWindowPosition(SDL_Window * window, * SDL_GetRendererOutputSize() to get the real client area size in pixels. * * \sa SDL_GetWindowSize() + * \sa SDL_SetWindowDisplayMode() */ extern DECLSPEC void SDLCALL SDL_SetWindowSize(SDL_Window * window, int w, int h); @@ -870,7 +896,7 @@ extern DECLSPEC float SDLCALL SDL_GetWindowBrightness(SDL_Window * window); * \param window The window which will be made transparent or opaque * \param opacity Opacity (0.0f - transparent, 1.0f - opaque) This will be * clamped internally between 0.0f and 1.0f. - * + * * \return 0 on success, or -1 if setting the opacity isn't supported. * * \sa SDL_GetWindowOpacity() @@ -897,7 +923,7 @@ extern DECLSPEC int SDLCALL SDL_GetWindowOpacity(SDL_Window * window, float * ou * * \param modal_window The window that should be modal * \param parent_window The parent window - * + * * \return 0 on success, or -1 otherwise. */ extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL_Window * parent_window); @@ -910,7 +936,7 @@ extern DECLSPEC int SDLCALL SDL_SetWindowModalFor(SDL_Window * modal_window, SDL * obscured by other windows. * * \param window The window that should get the input focus - * + * * \return 0 on success, or -1 otherwise. * \sa SDL_RaiseWindow() */ @@ -1110,11 +1136,16 @@ extern DECLSPEC void SDLCALL SDL_GL_ResetAttributes(void); /** * \brief Set an OpenGL window attribute before window creation. + * + * \return 0 on success, or -1 if the attribute could not be set. */ extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value); /** * \brief Get the actual value for an attribute from the current context. + * + * \return 0 on success, or -1 if the attribute could not be retrieved. + * The integer at \c value will be modified in either case. */ extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value); @@ -1213,6 +1244,6 @@ extern DECLSPEC void SDLCALL SDL_GL_DeleteContext(SDL_GLContext context); #endif #include "close_code.h" -#endif /* _SDL_video_h */ +#endif /* SDL_video_h_ */ /* vi: set ts=4 sw=4 expandtab: */ diff --git a/sdl/include/SDL_vulkan.h b/sdl/include/SDL_vulkan.h new file mode 100644 index 00000000..f04c21ad --- /dev/null +++ b/sdl/include/SDL_vulkan.h @@ -0,0 +1,273 @@ +/* + Simple DirectMedia Layer + Copyright (C) 2017, Mark Callow + + 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. +*/ + +/** + * \file SDL_vulkan.h + * + * Header file for functions to creating Vulkan surfaces on SDL windows. + */ + +#ifndef SDL_vulkan_h_ +#define SDL_vulkan_h_ + +#include "SDL_video.h" + +#include "begin_code.h" +/* Set up for C function definitions, even when using C++ */ +#ifdef __cplusplus +extern "C" { +#endif + +/* Avoid including vulkan.h, don't define VkInstance if it's already included */ +#ifdef VULKAN_H_ +#define NO_SDL_VULKAN_TYPEDEFS +#endif +#ifndef NO_SDL_VULKAN_TYPEDEFS +#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; + +#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) +#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; +#else +#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; +#endif + +VK_DEFINE_HANDLE(VkInstance) +VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) + +#endif /* !NO_SDL_VULKAN_TYPEDEFS */ + +typedef VkInstance SDL_vulkanInstance; +typedef VkSurfaceKHR SDL_vulkanSurface; /* for compatibility with Tizen */ + +/** + * \name Vulkan support functions + * + * \note SDL_Vulkan_GetInstanceExtensions & SDL_Vulkan_CreateSurface API + * is compatable with Tizen's implementation of Vulkan in SDL. + */ +/* @{ */ + +/** + * \brief Dynamically load a Vulkan loader library. + * + * \param [in] path The platform dependent Vulkan loader library name, or + * \c NULL. + * + * \return \c 0 on success, or \c -1 if the library couldn't be loaded. + * + * If \a path is NULL SDL will use the value of the environment variable + * \c SDL_VULKAN_LIBRARY, if set, otherwise it loads the default Vulkan + * loader library. + * + * This should be called after initializing the video driver, but before + * creating any Vulkan windows. If no Vulkan loader library is loaded, the + * default library will be loaded upon creation of the first Vulkan window. + * + * \note It is fairly common for Vulkan applications to link with \a libvulkan + * instead of explicitly loading it at run time. This will work with + * SDL provided the application links to a dynamic library and both it + * and SDL use the same search path. + * + * \note If you specify a non-NULL \c path, an application should retrieve all + * of the Vulkan functions it uses from the dynamic library using + * \c SDL_Vulkan_GetVkGetInstanceProcAddr() unless you can guarantee + * \c path points to the same vulkan loader library the application + * linked to. + * + * \note On Apple devices, if \a path is NULL, SDL will attempt to find + * the vkGetInstanceProcAddr address within all the mach-o images of + * the current process. This is because it is fairly common for Vulkan + * applications to link with libvulkan (and historically MoltenVK was + * provided as a static library). If it is not found then, on macOS, SDL + * will attempt to load \c vulkan.framework/vulkan, \c libvulkan.1.dylib, + * \c MoltenVK.framework/MoltenVK and \c libMoltenVK.dylib in that order. + * On iOS SDL will attempt to load \c libMoltenVK.dylib. Applications + * using a dynamic framework or .dylib must ensure it is included in its + * application bundle. + * + * \note On non-Apple devices, application linking with a static libvulkan is + * not supported. Either do not link to the Vulkan loader or link to a + * dynamic library version. + * + * \note This function will fail if there are no working Vulkan drivers + * installed. + * + * \sa SDL_Vulkan_GetVkGetInstanceProcAddr() + * \sa SDL_Vulkan_UnloadLibrary() + */ +extern DECLSPEC int SDLCALL SDL_Vulkan_LoadLibrary(const char *path); + +/** + * \brief Get the address of the \c vkGetInstanceProcAddr function. + * + * \note This should be called after either calling SDL_Vulkan_LoadLibrary + * or creating an SDL_Window with the SDL_WINDOW_VULKAN flag. + */ +extern DECLSPEC void *SDLCALL SDL_Vulkan_GetVkGetInstanceProcAddr(void); + +/** + * \brief Unload the Vulkan loader library previously loaded by + * \c SDL_Vulkan_LoadLibrary(). + * + * \sa SDL_Vulkan_LoadLibrary() + */ +extern DECLSPEC void SDLCALL SDL_Vulkan_UnloadLibrary(void); + +/** + * \brief Get the names of the Vulkan instance extensions needed to create + * a surface with \c SDL_Vulkan_CreateSurface(). + * + * \param [in] window Window for which the required Vulkan instance + * extensions should be retrieved + * \param [in,out] count pointer to an \c unsigned related to the number of + * required Vulkan instance extensions + * \param [out] names \c NULL or a pointer to an array to be filled with the + * required Vulkan instance extensions + * + * \return \c SDL_TRUE on success, \c SDL_FALSE on error. + * + * If \a pNames is \c NULL, then the number of required Vulkan instance + * extensions is returned in pCount. Otherwise, \a pCount must point to a + * variable set to the number of elements in the \a pNames array, and on + * return the variable is overwritten with the number of names actually + * written to \a pNames. If \a pCount is less than the number of required + * extensions, at most \a pCount structures will be written. If \a pCount + * is smaller than the number of required extensions, \c SDL_FALSE will be + * returned instead of \c SDL_TRUE, to indicate that not all the required + * extensions were returned. + * + * \note The returned list of extensions will contain \c VK_KHR_surface + * and zero or more platform specific extensions + * + * \note The extension names queried here must be enabled when calling + * VkCreateInstance, otherwise surface creation will fail. + * + * \note \c window should have been created with the \c SDL_WINDOW_VULKAN flag. + * + * \code + * unsigned int count; + * // get count of required extensions + * if(!SDL_Vulkan_GetInstanceExtensions(window, &count, NULL)) + * handle_error(); + * + * static const char *const additionalExtensions[] = + * { + * VK_EXT_DEBUG_REPORT_EXTENSION_NAME, // example additional extension + * }; + * size_t additionalExtensionsCount = sizeof(additionalExtensions) / sizeof(additionalExtensions[0]); + * size_t extensionCount = count + additionalExtensionsCount; + * const char **names = malloc(sizeof(const char *) * extensionCount); + * if(!names) + * handle_error(); + * + * // get names of required extensions + * if(!SDL_Vulkan_GetInstanceExtensions(window, &count, names)) + * handle_error(); + * + * // copy additional extensions after required extensions + * for(size_t i = 0; i < additionalExtensionsCount; i++) + * names[i + count] = additionalExtensions[i]; + * + * VkInstanceCreateInfo instanceCreateInfo = {}; + * instanceCreateInfo.enabledExtensionCount = extensionCount; + * instanceCreateInfo.ppEnabledExtensionNames = names; + * // fill in rest of instanceCreateInfo + * + * VkInstance instance; + * // create the Vulkan instance + * VkResult result = vkCreateInstance(&instanceCreateInfo, NULL, &instance); + * free(names); + * \endcode + * + * \sa SDL_Vulkan_CreateSurface() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_GetInstanceExtensions( + SDL_Window *window, + unsigned int *pCount, + const char **pNames); + +/** + * \brief Create a Vulkan rendering surface for a window. + * + * \param [in] window SDL_Window to which to attach the rendering surface. + * \param [in] instance handle to the Vulkan instance to use. + * \param [out] surface pointer to a VkSurfaceKHR handle to receive the + * handle of the newly created surface. + * + * \return \c SDL_TRUE on success, \c SDL_FALSE on error. + * + * \code + * VkInstance instance; + * SDL_Window *window; + * + * // create instance and window + * + * // create the Vulkan surface + * VkSurfaceKHR surface; + * if(!SDL_Vulkan_CreateSurface(window, instance, &surface)) + * handle_error(); + * \endcode + * + * \note \a window should have been created with the \c SDL_WINDOW_VULKAN flag. + * + * \note \a instance should have been created with the extensions returned + * by \c SDL_Vulkan_CreateSurface() enabled. + * + * \sa SDL_Vulkan_GetInstanceExtensions() + */ +extern DECLSPEC SDL_bool SDLCALL SDL_Vulkan_CreateSurface( + SDL_Window *window, + VkInstance instance, + VkSurfaceKHR* surface); + +/** + * \brief Get the size of a window's underlying drawable in pixels (for use + * with setting viewport, scissor & etc). + * + * \param window SDL_Window from which the drawable size should be queried + * \param w Pointer to variable for storing the width in pixels, + * may be NULL + * \param h Pointer to variable for storing the height in pixels, + * may be NULL + * + * This may differ from SDL_GetWindowSize() if we're rendering to a high-DPI + * drawable, i.e. the window was created with SDL_WINDOW_ALLOW_HIGHDPI on a + * platform with high-DPI support (Apple calls this "Retina"), and not disabled + * by the \c SDL_HINT_VIDEO_HIGHDPI_DISABLED hint. + * + * \note On macOS high-DPI support must be enabled for an application by + * setting NSHighResolutionCapable to true in its Info.plist. + * + * \sa SDL_GetWindowSize() + * \sa SDL_CreateWindow() + */ +extern DECLSPEC void SDLCALL SDL_Vulkan_GetDrawableSize(SDL_Window * window, + int *w, int *h); + +/* @} *//* Vulkan support functions */ + +/* Ends C function definitions when using C++ */ +#ifdef __cplusplus +} +#endif +#include "close_code.h" + +#endif /* SDL_vulkan_h_ */ diff --git a/sdl/include/begin_code.h b/sdl/include/begin_code.h index 04e78c64..6c210624 100644 --- a/sdl/include/begin_code.h +++ b/sdl/include/begin_code.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -61,6 +61,12 @@ # else # define DECLSPEC __declspec(dllexport) # endif +# elif defined(__OS2__) +# ifdef BUILD_SDL +# define DECLSPEC __declspec(dllexport) +# else +# define DECLSPEC +# endif # else # if defined(__GNUC__) && __GNUC__ >= 4 # define DECLSPEC __attribute__ ((visibility("default"))) @@ -74,6 +80,11 @@ #ifndef SDLCALL #if (defined(__WIN32__) || defined(__WINRT__)) && !defined(__GNUC__) #define SDLCALL __cdecl +#elif defined(__OS2__) || defined(__EMX__) +#define SDLCALL _System +# if defined (__GNUC__) && !defined(_System) +# define _System /* for old EMX/GCC compat. */ +# endif #else #define SDLCALL #endif @@ -111,7 +122,7 @@ #elif defined(_MSC_VER) || defined(__BORLANDC__) || \ defined(__DMC__) || defined(__SC__) || \ defined(__WATCOMC__) || defined(__LCC__) || \ - defined(__DECC) + defined(__DECC) || defined(__CC_ARM) #define SDL_INLINE __inline #ifndef __inline__ #define __inline__ __inline @@ -134,6 +145,16 @@ #endif #endif /* SDL_FORCE_INLINE not defined */ +#ifndef SDL_NORETURN +#if defined(__GNUC__) +#define SDL_NORETURN __attribute__((noreturn)) +#elif defined(_MSC_VER) +#define SDL_NORETURN __declspec(noreturn) +#else +#define SDL_NORETURN +#endif +#endif /* SDL_NORETURN not defined */ + /* Apparently this is needed by several Windows compilers */ #if !defined(__MACH__) #ifndef NULL diff --git a/sdl/include/close_code.h b/sdl/include/close_code.h index d908b00e..b3b70a4c 100644 --- a/sdl/include/close_code.h +++ b/sdl/include/close_code.h @@ -1,6 +1,6 @@ /* Simple DirectMedia Layer - Copyright (C) 1997-2016 Sam Lantinga + Copyright (C) 1997-2018 Sam Lantinga This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -29,7 +29,7 @@ #undef _begin_code_h /* Reset structure packing at previous byte alignment */ -#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__) +#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__) #ifdef __BORLANDC__ #pragma nopackwarning #endif diff --git a/sdl/lib/libSDL2.a b/sdl/lib/libSDL2.a index 3bb64611dbfb5a72a69fd5f7b15e50aec5aa05eb..005cbbe2d42e4236640270c14203930cc180648f 100644 GIT binary patch literal 2613816 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⪚kVkhx)#0Q8^ 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

    C2_sehIT6)`_#$~kObew2z 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%0DcgN=J>2q;6|7W6~n-f z!aVvu!S4a-{v|bs)%;5|7^J%w*aoZvlJC_(^4*Pb-g{x*3B-`R=wjdvz|(;r3xyU> z0#1YZ8@OPW{{8_-f1A}@t>(EvT)k5C9>uo;>8}anOxk}?@e&~Uo(5z%FJqia^Ur`a zFn>nzeTtW;`^iAkKaX3CNdGT-`ah`VZz|rQ_B(-;Tbr5_YF?@4#X#mq0g&?g)diByXMs%Dy+F$K zW5COSn}KH|D(9+sikk18F7@ckz%bmu0BivLXVl!I*a6%I`z^pTL6-oM?!#(cr5FdU zfc*!6XMnC0$aI#deIf9zjECC43m6CenZUQfeiD#;Uq>Y;9#Z@d;9KB+Q1Ma4`vtfD z1F#WDNI1xxbd(RjA3b2y=f%M-2 zB)?gxw3N^DsI0_0fOOxkxCTf*y=?tclS+^$os2U0HUfUIu|fSZ6v|3div8c6z=fTa5m zAnEo4Nyo>gDX&igNmmd25bz4MUjZcjY#{01uJ)$^6EIHzo{Vz#^Rv)r!~D-c^1B0A z2kZtiJ=dyz1Caizf%JDZuo~tSigSQfFux5*xxG9^)4*^*p$`$7dZk+_Y z9{yfJpydA(U^&eHtmX%SD`EZ=5d6080D{lf%|PZuC6M73srjA2NeCwo*be)ns4V3B z5|HMfs`;RrA6N4~0#AYaZ9wwf7N&g)n<@j|V>3V=y z0zVGC2Dnk(tALc}RY1mT6_E1$fa1kK%Jbbo@_i~_^656kDj>ssACT^0Ac|1YL?HW- zdm$twz2HtD%{Ky<0apT%^+mrqL)^a)M3xnGs(C#SSy41e&0j;~L;kyf46jAaR{_a) zK9GE;0U7_d0ha?O1L^NKr%OBaBOszybUzSDD)?(Pe+-By6|4l3|4bnLT?o7s=5v6E zO2IpTlvBRizXgaO3PNiC`e`BlEP4re0q{9sE$|0G`uk@f{uSMfKc~XqCx9oxJQv9D zW~%)J-~!n5<;^X?Dj?g@WkAO793biQfK4#}6orNSp9Ee8^FH8aU>~pz$jkhRjf(Za zt6(kz;$P8u_(Ohg<_Z5{AkCi#l7Bmp{A+;Ze>sr+X9LOi9f~I@zK+O}{~(a@{}vEV z1%C^~zk*xwhx{)G(!CT&_w#`GSCEH4Oy|!g3*8Ta_*bwWe^{SB2Al}@4ZsFq8E`GI z5O^){JwV1cPt8Z+iRLjN%ll8&{FGqPgKB@D+V55T7?AO-2Qr^xK*sCcYJVD#;Xj7R zOb31ocpdO_z*gX5U^DO>Am#KSX8h(?5EZ_Y zOBK1kg77C7Dn=BiD&{NZDN<;pKZ5XxV~Tv?l;#n|VMXqv(w?`d68jbRDehI=qu8go zTajzd^w*=amA=&p<+aFs$#xko+7}+ zBZ_*9Bu|bgvNF>=f_g~oSL{>lRIFBvDn=ATiX*6J#=l~pVy9xYVpK7r7*ZTTy)*t5 z`xHABs}-Y)5yg<=2!w3>EA}aNDpo5-6(fov#Szp4<6p5)u~V^HF{&6*3@MJlv+=Lk zr`V}jtr%5|D25bAkU#i2xnHqQu~V^HF{&6*1Q>sH$ndivjAk%7196JHpDt)K@SEmp zH8(gZan~ac`x6m_zD5 zQ~6o_gp)KrBO0IAXa*0fU+~}XO0(TB`~i5;Z1oHNLCsd5AgbXY_+3v?KxBO-Z{VV{(xBHpX)ok}KZ-X1%?SADh zjlbQWOewwHPy7YOFMNHe5^>_!dAgWc{`vjYX=1KEU(DyL+3r{OD}6K~?x(6bq~_Vm zUtB|>ooG)Op4C_QrJDPdz7Gu=-R*w-ht)sZeSY)R-Rd*kfpHV*t^UEI>TdN3et>k* z-Rd7aqT!7gZWt3-dgZ?j?Ir20zQbdnquJ`OJdfWrTYZ|JX?pV!4}K91uM>Ru{foxm z>gUAO-Ri46s`9k@7k{DQTYaK;X!@-F$Tz@~;ah!!hc!M{zu+3>XZ1zyM)@SY)o=N( z^0)dl95>Lt8j}Qm??!w{Zohv+_-^ybKKFi~`$xdvO}`xRahpHnqu&X6xZT$yK5lcH zkN)dEew-(`>AAPyHeZeWb(_zCJly7_FFpU{GoR(-_ll3-5nudw`O?4D=RU`mo*R7W z`A1)RT7BU!^_ge-%wO<@_o9zK)9y|`$Nz5g2Yvhw`{LW^i{Ed2{J-G~zuZsn3-7mR z-`wFJ@cI9+&wsuzywiR8ahH$(u+Pl4*B##FzVw~z*`iYQ?h370b$Dw;b1N$8nR0 zxK%bcTnCRlcbZ{{+q+v5G0_1PGOzm;Z4K((YrkR}?c=zXaZAGLp2lkeNf{@`qDA;` zMEDu~Q?=xs@7E{ls=;2RAnNOu{FiQTr;x5q|VDBC>Kn&udBgL zFu0lBWHgGD6+3TIU$L#eF=z5cYgqgR3cwP0MPO~Ks!()mH&@ke+FVs%)37B}wYI4a z1<6FJ1%j6Hyc+lNUsnTHQ)&~fSt(!Mum$(ww{G%AB#02jR;8tP#~YqD>TVw^QJ7fD zkCU9DItF=m?Z_kqzv>${+Bl&U%2jL{_%YMvAz-Z#2|M1wFy`EV@7PkDHtC+otxnW8 zCt5Zgo3N~|&LMJV=Ek;~<~q$U4`(TslC3SV_S!^K>(Wg%+cqYSP3@t>Qw_CE+f7R) z!L+nCZ}HlA%f3bvWy-XUE}vdHlkM3=wnpS|Mx9|hTKL;_P$D^650P$0A&U7cG#T0>aic)@>b;}(~NHxlqAzj}U=V1Z6)jdC_F9sQE)H3gl52sqHf>0z?FF;=`Dn7-z2Rw{%^9Cex8ovd z+17-j*jn$h@^UpI$&7HN-w3qy`jat*yemV?*d(k+cGGMJX2tT(^C*B5&jS6Hjp zQRW=rxGd2-yNzB3$cD03468O_Y|D|nH}GKBt>$GU7dc)&;#)~Bn_9nxH`Gj)m;$wW zoy#i+B$5KRt=B(O>C9x7xjcKxGTk_fnv2W|7wMDHh0ooNbKFBbFEf#o(q)o^rj4vZ zRV`Jx(yLK^yGKsJ9GQ(}+v+mp{ubX&aDK^qXB9^>U&-8AvrFbJm_Kh`Br>)p#B%- zm+K?HtxYu;F1BsE9>b%ms`6!S+PsU!G=lXReuY^7ru>Q#zxl?7I~AF)sw%Oms-BN< ziJd=wqs3ys7waAT^5zIXF_}H`P4+i&8vb+7DfAXBkl|zUXdYc|_Ki*8%-b=T8-Se^ zSX0JY4gOJY#e7rnm;Yzt{}TMa5dTl~)Axw;<6VoXz=}xDE}m5Z{UT( zd_L(63I4A1hLsH@89OX59E)wzR7$+z*?|VWG`*2sa_5&Xpykw*}7yhUvzzk{|C|0G`L=3CTwOBFAoj^JI~5hR@K z@Vw)Qc`39c+)Y6YOkz;1Oljtm81VxSv}WGdHu3bzCz9+q+|_XyQG!wk;&M0{8#82h zjef!Y@XqP5mBjZhzUu-A`4N4#GOp3*JJ?KXs^hTG@gZyT7^Qgv+yDM`6yd?^Fnr+U zPfxf*8t#xk+&RJFK9N3(k}rYk^To-Sl~K7nN~wyGMR+lo#g1~rOR0D7s1Q)-`WhN57ooFh>|fCGlw>*YdtamjNS`96$%XAa?=(P1GrPrhE7XN1qx#0R2zAYjx- z@i=-Yd@EzMk99Tq2%hl7>(JZt)hi6ivZ+EDv6PZDrHr^K`3Na^;&D;o$#5K=#cs+{ zp^REe56`HZGM+CCM@T<0W$QFA#K!f~PF$k@0XOW_FBK21I&fQHSOz&4I& zQCX5TkN8+?GIqd3N8)5N>z~xmK(vlEmxPAEJdMkC8IRrKFDlAG3TjbVez><#{os|> zsd$0=ARbelh!?n#9ZWqa@lq_`vK<7&wDD}K3OFRoK14>Tvh}1YTkkw4&KiH&CX*XU zY+X17T_Yq8c&b~fS`^jXeE#~Dk0wN#9I4-EYor*aDh{)rv3VB}^e%qlJZ7ubZ*9BK z9HiNlr#g-pGIvwO0R7=b%=^zKM0w2oJP1JoKuk@IJBk|D^*S<$4V7_9{}#WTc0FVL zBCL@G5;A|p2QD>ziZ=TQYYdHvus5%*@3_WzK@-G>(Ys9%FfXg`I7=MHkV`7nvQ23% zKae7;x@q0hP}*a$L8EJ03GqNNe9jaIwr=ftPKr#XYb7>$k!mk=JC@oSu8#4Hqo?Y3 znbtB`o``}zf*rnZaQ}07kGEqiS@DA51e?^_7fyMMJp`<~K9PTt^jOG07Qggr{27QH z!e2ffeh6=npA_zzM^mp!FA870cI}}>r|&^z!Rj;a2ahXKtDv@Ga9s-ZFh( zj`~D;sr0iMhMhet>k11i8t_Dd&Q3Jd{|_>}_n!=3{7;7WF4yiO+6fGORC{q4%LVBK-Stme=kc_MIXxV_?%V_`p zgNvg6mls9+huypUhfyvlWcTqto1ev&pGbK;ohL08MDI#q!yT$fk|~igP@C>Xj8trDWVFI4Z~4^e9nNX+YKY#}`EiGCiYZ`H^z10mbuvXYZrWoqwYd*TeoJuEd2- zM!oJ9?4Y%|H;FN?8<*c){z`&9Dfl0i>log;y;Kbc?R+A*>d zByB2<)11zcbW3Q9oesz>j@A`xIwAHGqktiov!`;o4|$bUUvuZTFD<_V+4=n#^4;*^ z8*F~}EiWX2tfa{zaQ0=kzVsa)!tY3e2@#I+)0=CueNdlP5ijCZdJ)qDakPf8-O>D+ zK@2O7fmJb8@jMAG3H$}ibV>g1#Dj>};Hi=V8o27ckNzSD|I{9=wr;gWww`?OX7vY* znnZob>d!sGknNkd#Lhf&=84sc`+J3U>S0o8wuCY)oA)~t{&*`d`i^hZpyM;CNU_{Uq*CCS`di(iNSCkq z^|>Z=FzTAiN)oBx-WJ6^x&=#cCfp{*8>L~%iZXwfN~*F%I}Rl8)*LG1wMA>ndR>?jrG z8(moL7~Q)r89t-S>JlaeZ=;H#ZRJYA(MZ9Mk%A8Yowoz4U$UomsbV)vP&Ya=X>(su zboh971#)OL_|3t>qDb9vX8W9Veq?_Rgi=&N_byNOS%;4tiTGQk3do@4Mk3f6p@QQI zMvs{rK?y+S%%RYk1E~Ya^Aidckvta{r{`rG0;TG^GgFv%yN22Pa8%3b%x`AMh>`8* zM@F{8>nB@0abQ2o0n{B)%JPInWVxKt2C9O}k|1R{Z&XWWpC5lBXY6S;UF$#-W) z{t@n|cF6zW_L-%=^!(pxJZ)VL^j(*~0nAiMrRp+Turs!$KoeF)8lqL+>jELaUJ_OWlc z?|(Y_J2*=+*hh%$8hW2kIc*sm<^racL+8DyiY-xtcw{x_Lq&MfvO9w7ruMBVmVH+R}wsgur9*~LlMB^{+ta zkhfoc=C=4V_+c}7bbt(rCu5GAm?2Y4knH^Er+m`NWp$5G!19wcFzKpoNs97k=1=43 zK&(KCJFAbXum`Lrallbd&h^oZ^0Bf3%GN(Z@2qi$w}L);{A6@i*oj ziiaz4k9lVb6F)HT`F#JTdB@Y0ScgZTrThid>iCpcX(R@jkLs-1=Ki(+h4#1y(kvLC zGrAMgi_!W6lA#X8*)T`>oy$`=Jh=}~${d}+K8RPy-GezYALD!?LWUyqZEgGuy0lmD ze;fZ1klSwjkJbOD088{wH~XFoPJ@3AeXuOOexp3QkTa(3FzsQk!B6>zSr*)l+(Qd{ zQgVi^AH|DI#6oiodL`tM9Y!HU?)UGrv#&jc;1l>DarM4vY|elE+X8?`Ir9q0WVJ? z$DU8;hZ4f@14h#1RBk5vmQ%U(`+@j@#OjY9WK2qK{ww&&kY7l;qr8&!!_gGc_Coas zQ1LhbQEfpdvg4sORp`KtBs<`cWCwCIrv0`tVKv;*<7AG9viU=mWf7IfBS8qk`Z!{w zmM%^lFm$yw1VV5`=KDee91E+5<7T>hN<{?*U5A08Q4@C4QrOdESL5b7Al z9BeM2Z|HAs>&ra~&@bEJ8;m!5&?k$gw?9#ZR*z0Q4$+xa!;`a${q@Inj$j;zpz3z` z_fjcIHuE%H26a7#2+_^QsX4^7VTxkYhFRt92-=}6XBWD6;B9w5c&=Gmb>H9H{$HHhgEQ2h2Uisgi`2J9 z-j?Vw)fKI89sRbi86$;YTk|k52&E`C9DHoYJ0wmFIp=RnTw}6}JXo0q`9?*H3Rjl0 zRlXIWHYKIkCZKLbZL?E9S?v=HG-I9Y!TQ6YBbbzs0qukS!=c_8?v0e3Zd$sFo7oY?b|*zByho`s(Jh;x4r7XKrw z-@?ul6mDOa-({ojsBJOB(fKk-fpas_PGMczhN8H z28SFCr~-2pmG~>yPX8l zn=@t*!B3~`=@5tw{&mE_vuUbs0PA+7X8ev0sm*|a|i837gt_(`GvDT zS6w=H?!{MDpIWoQ zaOT`2=Nu_NxXeXUJZ0*%GtWBvoar;>U%g;q?IPovdUC!ChOH>gu<6nCfWTD27B z^x@y5{<1!ri@$smurL3*0sQU0OzNY4ZaT*JpJhU3h411NC(M*S{5`VBgR{E&@Za=t6aKM2{A;LJ z!aQL>R{X`>zXvm+kML#O*aq{k0a@X_?5$x!24wkfSO0Z=`1_7C9(|RsJ-;N{NBFV{ z#$!z%{Cm0k8|Fs_WbtRuKWXX1zs74kZtcUrX8`|(6HLG@eT4U(XgogF2mij4jQ{LD z{5NsV1?D>j7%cNH&*F*3!d)CNS^j0}-{q;(`pIYB=h6Dy!1Q>ZN3Y^(|C}>k-sj=j zZ|G@1ofD7uc}!9~mFGF}c!p$y;+6K34&LXnP4SYFD@T3deI5;eF#Ksho-^K01Fuu@ zv_H>@$NN0Ie>C*8U(boh`#dK7+2Cpao)eGvdH9|;c-qhB#M=wJioX~NrR1e6Bw-k82il_QOPCVY{(R$F(3-wdJJAjw} zlEG8`ASbT$H-sjP#c&d-&q{sU_HvPBZPxX?V zc)ZV}Q}I;)$ce}MJY26Ddi~+?K9A`G;63>%bB^>1Knx8gxB)TuIU#n6Ij{H^fS<$p zw%-PXxL+0pyax8`02kw&+-m?YhW+CTcT6<)p90c+`D+Ix z-Z$007O(>Ld4NoB37`*fvik4&cZ2^!K!&de#E`G325>CkY(NY_i%tb(d|#Yk@IDL3 zcurCKQGh|%-@tf=`SE8!1S#U4eA3+xNc@P}>j6n`9w6~Pr|xG163?yn5rD*d9OEeB z{T7h)z7I&eHELf9NW58q#G9<{#{d%Vzc7wtxGumeVZRrU`SESQYQV1nj=*`%>j0<2 zev`s40y5l%fTVM}+DkBQr281a&%*sZj59xidh&BX+V52RC4i-{&jq{!a0(!Xv_)e8 z5#IzJrl03>wY&=faSq&n2Y4P}GvF-10N`f;pT{_N9^k`(47UrAbngdb_@Ao%`^LWP zc0kg*6_9+-2PD7e1D3%)9*}%K0%kBpQp9s3>Hh&Tk@yDyY2OJ*{96Hue>@=ZU&6SZ z{_TLoZ&iCEAn|#=KJh<5BPV_K;qpFNIafjPrOBd7s5Ud5T@k{KtJr4 z82g0T1}-}na1Pw30S-g{e;SbWWg_4ua6cB1lluK+?S%ko2wtB;LhF~C#dJ`8X&;2+`0bpIZ30pKGFcPON8 zLHF+~+^BFNAm~o;DEt7KSq{9{07>sfK<4j$weJLEK864<1EkJJ{uTg|zbe4#u+LRE z29WJ?I3VfqoJz*`vce|;gK)nI5Wk{IJcvgfoAo0Acmd!;2y`{zcNAWy@Use!2CRku zTf@zLC4T`Voj(FDV0geU0^Y6ecLI{`2EeNU=c)TSfXBn`1q8_np9ExjM*=dP?+r8Q zFAC%5Mi-U;{x!1aK{3jrd0;mzv5RG}a6D){ppUXW}#L1DYg+`DoY;9U5B7w~+* z&456e&;m$$w*kUTSc}JO_}7WmwQLDs0QS!V)&O2;+$YR5a2aI2-1lLp^H7~>mZ6%F z?x+~bAMuQ8RoI}gMxjrkSD{N`9OcSzF@>!P8x+Xt~B3OdfU{W^_=IG*Fose93p-E?RhUti4Pn*A9x*b#D0pP zvk#H;y6t%`dCH%ipDokyc0Q1E01R*E|9I~N?RLKJAmlC2pzTq9ct3^2ce07^^U807 z`roAX`_%pmweL_n7sPpfvz_n${%B)wMI1C=M?;~%oew=-{q6ku1>lGNc0J+~YWJdF zp{Y^)20)s}kofSOOYC+%g<~V3rww(F(zEmJ?04v2to;2$@$G#1!*Hj+onL=S zqE2Uh#JQSp93%{%f256O8{< z#kce8zlSsVtufxNYc#$Z&A(cuXV(K?xBQ{sr{Vo73~$%lmZ;sXpUqXfT`!xe_F@V^ z7_X*31{yR!!=Lo*`p|6}pIuM+m4+8&JUGTDzE8tHjru6zq2JK(J`>vQdJyk{rQNRY zoT2vOi3a}}#kcD_N8n6+yIyp?(zokR6>7KZk>9cDGvr)dNT0GME*B#|o%Z`P{Mojg z{wJcmoc7G~o^JxbPX8}t*tst4^#24bPJ2y8{B;@e&CK9uLI%C24F5m|y|xT`6Ojwf z_%|T`oc32y9!~pzW#IFEBd331hJ9BCK5?D+uV&=Ww=(>n&4_<;2EIEpJsIhzUg(VP zEVL)5o%by{?OQX#M>E2olaZejGWhdnJ!B6(lQ_W{FQzWDkTt5z+oJ$;qFWQMRjm0};yY%q&G zLJLb*eF5hLp3cJps~4zSW;mN@Wte&BJc~E&D8f`6_NejnBN2yoZn(1$v$-}A;|xU` zDbFu7CxA0xMwyy3L9?qBPgl*Eg!56xIOHzt)bCuh=dVI;-Z&R^Ko9=TT>}PlWVp@k zY94EB7|Y%qB?p0L#o?$q+37Ure`dSO0iVV>BP%bzv98v5WW{9bnyY&GlB>C)EG?fL z2Wn>&!WHwEF44oYGkoOObbGM2vzglCK@BIis7u-Y&QG>J5g9Af4&Bb6k25kYbxVVF z@${7omsZbTxw7{9Rpz)v$=NxzIEit^jltD8G175tr#Wgm)0M|eXS&VCk)*3?GhJ=O zDqlsiI>_fbg*)raZA$}X)$eKBMtJv&0x9Q+9RxpDd*jtBa2EOnD;BJF9zmV+IBv@b zL;(mn(H%af(e>rYy@3u6oI=InJoE#;EdxkW#(~?`2T@U;IAWQ9wbM3;Gqx=$M3Qxa zw!_bqLl#En0jmy9Q1#M})OJwII*$6%T3-K9DiwI>$4@&br`4Cf53?TVENZr?%T`}~ z*^Mh#)h=@+id}FncLxWQw~i3jXZGsruSdsJhI=ut7XjJW_7{UWBs%K= zXiG!H&Y%uywjs1iGCP*cUz!=zVr8AxY&|khW47)fOKI)M8i$W5+CKa#iyXl+4r_K$ zv2xgfoOQ~wMep-`WQ&mV@MPk=kk;*}HtIJsO$ha-NUOJ1<>c`kM2R zo1Fs$7*|9$w< z3m+EYqo*k`e2CQeSHTH(MuU5!<$EUk_l(}%{_^popK5#uvp8$rU*(K7F*~E>vB~~e zy6N1s+)j z4S0mtAS>PLITObCl1{LQmr3;#DE7wsy^^`%LezuC`c7kMk_eGfezYEXc|;)6QU{8G z$d<(<{MBms;|si>fj}T?yzKYMWS>_%nkcT7H&5QKq)Vl`{3z-2S#^mfUCzQ=Vr@1L zHHL=@;Q?zacW|B9`d~lAQ(A z2AuXp$F0Iv(z`ctp&^@BZ{XOU8CZ^Js-D7sw~6jVMY}@LZp%RH0$O=5>GlR1_fRPD z8?3iKIC5kpz61X_{*&-u0Q+kEzl#6u_yf%~zG%+n@0~C@rqD+>n1-iMn6~!jKMap4 z^cnxeE`=oqzEg5k)wpS={O5n1tM*+cxXbke)3Kl+(+%YhO<((ux4nxzhtcquDE_GD zw&AnKqT3R43+SQ-7Jgabl?pFbcn72bA}#tBAn=Oj8CW<>;X80-_%4MHD&#sS-7isC zqOeHeu?p9LI9>~HRmeTRv|prfH`9iA$t>U~?q&3%(>@7y&R1K*s_wALyVGt|pw$bO zF1dOEE<(Fnr-jsk`b!#yC^V!Ey=cl*qv*(UzIg+i3>6k0Gw~DDr5i2W8SQKIS=)e$}J&yc)>rF>%nehEr?(2y{U8E+8FHHAW7yYOIe-Pv2s7sslN7suMwx zG8LRuQm^v_`9?MGs&*rnk49-B>Y4rn?u`||)^|C%GV0$m(;st(u+hj;p_20l)DHCu zd*P*@@mHFP(|MK%^$lHbI8t+iNh|9v?HPPzdBoaMg}sddC$VL307^ zMx43;P294?BNz-zU52Gt2JtRo2^wz>mbwf}2eMhp9m>JdffP$!jrIFT$i1EeC2)(< zcXLys2mHnp3*gvB|H=M+I8!-PfADzs#xv>YC3-N9gU%zt&5@^~<(r>*A-WnW_`yi~ zGp~+*1BW|Ag9nkz&!AfENf_#T;1o)D=@jqq?*R#0RFWFY1gl_@i33h1aL`RQ6R3z_ zViTFzL?)o=Cz&`POvD&tOqsxNz%p?F2kRx7Kn<9Tb0qv=8o@*DM{u4ymH4Lb0R=fT z*?&Nkd!#WY#{`5?*&FfSDJ`^>vIGwZ zxx^y~rj=3a!ML=_xJT;2de(#W&%7L6jS^!$_!}!DYaS>+(~B4qWguj#GF1*+m5Ci} zjk~DNZYs#6$srjd+E3VPmr(AlLbhKVD z0z*Bkzj>!Jt1oEBYwcFgGRfz>(BSl}>okBD^!Uns2iW>cO9O#51L;|7lny&Anyt`7 zOc5BndK(L#1L{Q@z^frV;EVLUA675YeDf*2Vx_0n0q32V-PDUFY5daxS!bPkk)_2t zmQ}&6=Kzp;QCWH`YmWNYNBpg5+n9#Y(_A`gvX zaWvjS2;y$Rc6T$F7Uiaj8qQUnKnnII{tNlb#{N2>oa%ZuBw3DD-w^dTfgcs7-~+Q& z>zNmn8K9S(kNTz%YPCJ~2>+cT8p*8NB`IpnTUb5XHPLk0GGeBLkx3gQDjK|_@pX_d zfp87qjK+@$k`p>W^yG0)3Fj#z216WfOi`7jC=L=h#YbWb^^S12ypl?Le3AR~PIvfX zx~#hp&rtoH&}g7M*r|rz#B(TfMl!|Z%UAZ z_)6Y6w*)v=VWGka3MVQoQg{|&+a+zI7-&{81J6OBg0qVHI9{*nz@xyw{|)zP^~{EP zB;HdGYb75A^ zQg;R7seGTvZ9uCy@^!Y}W3 z1IHSukqg^MMU`bcXZ=8M9vZwS-_du2nyYL!pKNm9D5rU;r1BdlZa(?Kr%Rq6@z^&P zUeHl8=hE~3a?IdulAlJCO(%-`=KncIiOyk^GCKH%hU^|LGqy*7fx1qKbj`( z_b9wd;d(gIeXYV96s}Nsjlyb$S1P<%;U^Tj6+VuX;I;4}h2K&54TYyG3?T!Ehdu8C znIG^HJtbW);SL#{4uU#CypO;PbzKa{;FxPeac^iXcEemVrMTa9F=U%C=JN7oVEx34 z#L#3ybhjUBU2F?7gNF3Tiw_T(;uxZSvQ_C&>8EK!x#O2KlFp=UVErU!`O+|PrB??+ z>ZLhh5C&Qoi)$dCtGrsFa~ezJtmZcJrpB& zK+MW8gYyps)FQl@ng4!N6yCzYVBG0016Qah zka$@Glb8%*_9d7u;iE4V<<~%H;}A}k!NxTv_&y@IALm%(gvQ3d!n=X`{(U(sjOejB2r zKQ%8x#tyGh1%OU@2RGY}h=K;0A^$S$Q;L)Fa7gpvXHT2%m=CX8aYH}jw4uz0%isWP z+xc*7w{lR2BZD5Nt)Nn`^w6|jbr_^^rD>?+v^u3@GdGR`N0m<+(sr7G=ELhgX0Va{ zV&W*#Od9GXV4!gyzZ0eL$`b+v=_G&SA>3FeU?|>_W+1s5Q+hrPQLOYVfx*gEFXCs} zZ33(Sbjnro$3OXF+MW3c>!6J8FW3$mDlv3_0VPFvI$B&*mM0@&t_MfOB_a!~jXUW= zoy{FS4snHca@iH*3O6hi5+ZAQ6YrskMJ2Qh79+Y^Yj!Y%i-qc$ct*mP%R61nGHO&@ zG}K)2v-cSRCwlj&>_MB!!^WXVxui&DHYi!jg0V_ zcl(NrVfu{>l+Dba^pdGZl7X)}vuCY4{Cn~uwFc#d9VSxy(k2}4MFyJ!;Z?fH;zrh% zB5Y_UD;6$8(Apw}7j8x>ZTAgKelU@7_0~4D3Zc?Uoi$ZT{Y0gQ099t-%r{PP znB}s#>;MYwWB^>ra{|!Q3oV{mXu5+#(#<3bE4_(Qa3*d>e6@EUkD2)~(qz&YL55ec zj2u&2I$l45ujp(k$4lKC*ppj(&usUGpMf`%RY#7zR^r|`2liwJQAc4dXqODa>{Le0 z5<75+B%Y>bMI}y^fM^0vnj0+5WlFOygQnOmObAJWdHO&LAvy zOPCfz_<8haj=HkJNi)f846y?}T$4dl?3N}ihUPlZWWK#_;8=x)3MVL>sIW-kSxXFl zJ&W@&NYyuk%4$3+`S8$MxeSjgEFg2bsOm3(ZvydGb*O20FNbGAc>~^p#0?u~nG|eU zBPg;-tRgv=xD8}EJyQ^#1n&-c+Vs!`KJ>Pej~-6^RdMT?nGb4B_@K^pgsXtcU^XMU zT3P}-LguZ<_h#V5G`{^&!3}kv6_FQ4&sG`kMdn4r@8fB@XRY)+aeaUkU8Y) z(VakI{yJSN=qi#$%S{TgGFgb57&9IP;qgMnqp%>{jaWP6$)o^H-Yur~JNX*Oz=Ci* z$$oq9FyyGqi!#nfXG|X3|9T7-M#Bd+S;QqdrIB|p76%Z`ScQcOCn%h#ut?!qgu0B1 zV3kq*c9$W~a-rx>M>h=Vu!jphc36snix>!_Uf@<}AU)xzt@L zggk~&J#wv*kAj_EC2e4(v6CBdAUXT8#lC!3aerl?na=$)r*mKA#O^-6{gH2v@$D(T z?dBUwv+^CpS-%x&Zc$dYn6j%VCrg;~tO&xlfDcU{l4no~3@7di!x|=hiD`>KVL^Dm zls%ue?D_7%%o`519^@sCEv5uzI^85trhN-qTqa+%N>y6&+-vFy8{Vy>N0BRoNP~>k zo%J;(bYckV$D<(JB|P$JdE`5Ma8H7{RXre^AjxK46tiD|V-*%E{H|06x2F~qt7;qY zz`R7kyf$QGIh+d0yYLpoTP3F?DmnuTM0LgM(b#ub5JYL5rn0EO-%QpJpaNIT*hX1_ z3J3>y8ChuLWv8&tr)8b*f|IJyT+~pR*_@;&jl3#|SX78Iam&%h7%;ZYEd3156#zWAQR0d^G;WpZ35{40a4NS>$*$RD91o+txa znP*a1qUeZX5^e*HZSKTg?&&JDu)ZEju%E2D=%-QoV${nM~1fC37t*Sz~)TGx&0L ztHi;ALWz6BTVNi78)E=$!;o=QRO)kR_pnGy6^r4iXL_Ss_%>{JWD7el(}hWF=`pZY zG`DeTkI8Cg_1TVa(H04%BfJWw8R|I_-9pO=AbTGm!U(#dV#aF>XeJ9AA0dZ22yD5W zMA|W&2E=v_)2B)gjs6!3Klb}i7RQuY0CqfVwq{8)qb}0ZFuV;EJHmW|3ezF)!V@fc zABVmRIQAX`3l&aKI8kAd!m||45(ud;d*9icjOD&rig0LFSP4WQ4aZ;`pU}F{O+nb8 zi+L0eR^v)2YjfNcPvTKvRj>L6v?bGbLHNhPR;nY5lLUmS?dj@}kw73;B_Bo?l%+@} zoN>!j;`Yo#eu$1Z*giB)?V2Gjt?;2j1ZkrW=bqo|@Ocu6_d>xPw1_;Jmur%G!7^vE|Zy6y3j*FNvRXwof@mV7YcGY3X@ zyjt@2VP6~%g7DKORtwN2rS0N^%yPll=$_I1F zuQk3AZ7(GKbsm-~a++bor|D~-yY~=^3dYXkX3m?B!!R6Tyl5Ln?Py|!-&goeg&P#! zrtlVpUskwW;Ua}sDSQlKh4eNnf1*3jO(T35 zOc9bfq<0kOiMWr<&VQGweUr{NbH0=Q4QgkFajtKi2s_=Z;l4tr9TS>q_O$g6EK{V} zS6+9$9<7n~0m0RE=~(!(^lE%Yu&}Ng=PBU17;y}B{dn56V#j*P^|i~Y>z1r=d|H`n zf7?*jP1;QPC)Z7^9mOv5?_j^xf89v0 z)+^*d$_%t_vPS9oG)TA7vlKvfv3(~z8Gncz6p|4DjEwo*14Nb`&#_tq2y1dZnmGKE zKl0jN`r)0^=(QFMK(cNXTpDf~U!d^C`fcl#o z>zm&@A%WSyi9(D4cwd}s$-)(T0)6=%{sUwru@^NFA@I$V&)rgkB!udlu+wNe{17nj zEqDuor0OQ*-zjl7O;;2%eo^ht#=|f%W2wq#SoH|xC%+y0xgkAPA%}NH9}$jevw=XM zFKS2zvptb#h~@E&bB=Mkm}#*juM|s6&IEYNP@uwcSCB~@V@i`pV3k#q!A2>o1|qDK z#NY{mOLm%xYE%v3X-27gV+3^u#PtSWyp3H8Z@@x@6BJG~P{xIowHWSUM#BB+J@{%B zgIzuf{H-L!fnYh_%-46@VB=u0AlMeFU+;CdP}J*SHX3Zk25sEh7+CPe%%iuvn{@Q&X-|y9 z7y@kv%R~OHq57>J_XchYLcl!kUIHAekcw+TIg_D`!!HPH6*P0C1HP4#QsV}zco>Zp z7%BD)`%d<1$db%?4aD9Q_lB#r*pFBC6#k3ZOCT0AloZwtw^hiGR0;U3I4ZvGd6WPF3DAsJ4sTbUE6PQ%?TrH1FcbHEf@1}8X9 z!;Fv2xy^k%j(}+GVyzOZnVCT3Tjl=Ht%+Y5@@8hFr^COAVjSc0sDBfdXaWnE*$8Pi z+fqe#uY=x+{M!_YA-S6pT_8{@tD$qv6c;W$kK^9u&S?1^(cq?TAR~e6|Hn#`y|5`w zd@|;^Ycgssyf$AE%Sw7w-Z6lRA&B1Eh&N;EN~bKi`rqc?*M)sHK73#Mj*b`NC85qo zmK9eYELmAM;`DW&{NYUWgo4+8p?Bi9LtmMJ@ak?TF)Y5%_1*l3V|?$O@JZiIUpgM| zC;EQ-!9>_k^?l}oPs8mDU)5))z-)m~S->mt z&Ar73+*03C&-uVV-?#n;vk_*F@9s1G2&_*ew?fOyt`a~KkHW4oZp`Ax+Br#y6==aSLrR)u4lhC!*y9` zhU<>EX1Jo&O|D7r>~!@WKhyR6k#D)&Tk~86XT0Y6$QPonWyddbJ$cL7uF;Qu%5}lT zzjl3ZQ3(#`uXg?BQ>$Gsz0%>D^_ACMZ_hZ&_4P~Fx!$|>W!LdPuXg3nYjG8ixWe_7 z_b+hu{PbFvcgK^iv)}r*>%|{Wa9uV3Yp(ob|K+q*OMoyFCaAqo;aG)v3O@i*kSO|3KsXhC zPvJER0}9^*G5Wu$@V5#nHR#T93Hb#epR!Mt;~cBco(^}~%c%6h%*Wq3?xFsNa7pv| z3_EwQIQ`LJ((E`JjRTJA#pxp;^Tl-bv2v?!SW&&=%eB{Il!C2Rj#KCKG_~sLYiqAx zj`IWUNQPKTYHMrHIqS@n8+aJ%ch*y;+ihsvXUhSa*;tlqe8h}(dGUw&B>r|xAPyOi zR#XxiFT=oCJF}aA^&a%Tva=lY_!>juqWDOtfxw!9zWC#t4dB%fHA-(kpwjynK?x zj<1vp=r`Lt+T(ECk>EXQxH=q&XZqvrjfROXaXbJ=e6oBhb{!)VI`KiRe9zlY+`ww*_p68`qBA8$ zajnEn-$Asf#Cg2}%|`5CwMc!Z^$@&;6$;N)h%BJo6Mewh->1(&a-Q zke7Loc?ea>j~wNjM8_wF-$foshG050c}iEiWDF)B5~tuzvHhJZA^e=eqZA%Nbael!!nF!-P`EH!U^Mam2$&tpo@r$LI9o~1BYc|Hm8v+TA4)&V-@IT_-g{E^rG(hu*PM%Q~7zKz=F zT-ovLnj59I>|?f5POFK@pS39qNmPCl`ZhwEP* z;zW+3;k)4+Z4s3AVb?w~p3}06=_WXn!z3OFuM!u&j|h_!Y$L<7BfJJrLx*oO#nrtL z4H^5>83qxuVq4P$Naz&1d`m}g{Xbc-Z= z3llhb3!MWC@YQ3bVGF&WkV+?+;)|mjCW+BGlN5tJBT0!1B$+0AH^bkV9@WP7^;&?L7kVKEAP|g9garpj#3=_97Q_a#@ z^zvV|MxLB3h>@0a;U0O1Uox%1TU4GSwlJcIJdI0qC-F4QJ2)$Ar_g&1s|;^PZ~j&5 zsn135#3xw5O2sl+ni@X80(CN&sB~}`{&!fSVF@9*A4O@j_kIE!4~cpze32=64?u?5 zVl;zF)5M8HaVCn6Jn*3y+>rD;AmXBuS5i@#mX2@({a~E6jwzlg9JpK7!cS{(bZ)p6 z>uvB1?UZ2d@KpHP8rbB8r49dKhAIW>WNCbkYL$==%}_6LcmW^$G4f=4PpklHvh3Cf z0_zda|Ak1H&exVR@pLyG4^K%iK0_o490VLL7N3*obB=^f&sAvIYhA4Da)4`Qp2N4q z_#!A$DLLy7UjhpYz=!-st(3}bYqHIkrcWu-u|SHZ)qHJtsXCe}C=r*Y5}UQDhmnQu zbum0sLM+Lp6^N#=nwZk{lM$_>u*OJXnIf|pi?+!SiQh@avM}+bWQ9ag2MY@=DzbiZ zn0Bm|g>G(X1rDe4G=J$KMZ}lHFA-(L$^lo$if)0tKW|djZq?j1Ykn zSb(jIryad1DxI2jV}oBWy+A7Y%;_@HmWuU%Muv}(JYYgcNV|#1Gcg6{fJmNY7422b zi**%}+gd427;HZVl~DJ1(;uTW#rx(k%YZf6W;F_uJ{kCOE?nYi;7y5H*{R~DBPo1a zpbOb5Ymrdn+TFJ{A|NaGwSwUpYv7PO5i({v5n-Oy!oh1y(}o^LJ4mT0(h#BGfq_p; ztI{q{+~F*YJ&GCbv<9WsLF8^^C#zjZp7^4ZJv$Tgp9ljeJzugjKJD^wD>|M>lMbkA zreC#PqOE8`6AQzp-Fz=u+l@mqwu6XGirIwgkmf_Sr^K4EyP9=lX1E#8=9V+?)R|Oq zHw|U7GzB!2@9l2hLX>r3KDS{ij^mBQ#dzqB59AE#AyHIR$l!=Abg(LlNl2=%E`y(8 zA=PYakq{8j*2LnOEGd-r@q(tuYh*8Pdg9%Z_&b5i!>lI(x|_HbrgDJ}M><9Fo=m@6 z_ow@Xx}m3fCDgg-qY`&P*LGx?so5FXdL~nCl|oO`Lu4yk`$}hX7uc}9o=mFRbh6Tq zNBjxO=d{m0B^xro{1jY%&0l-|npsse&~ zW9qd{cTQw>>Sc`6D8tS`HneRuQtdRVKAKE5vLl<>VebF4%=TNahr8GR(+$#xQnD2> zRj%T+m}Ql0XTE%*Nl~QSJc*@QZI?xy)^>3j!FH)V1;a>!Wc%m#7qr#2q zawvXOj_o)j;bRWAh=%!&?KqqX$lQ+O@-pQxu@VFA{GOfft1C6`b>~rm2L+jnK<7n+ zeK7AxxS~0$_#HsQ)(d*i1+2Mb?;48WhS0G+Gl=J%c++&+PrUWTvjMSbeaTsbG&&E( zhMs0HEh47R?*v{$Erzl4Sef&P<1yMtA64`!R&K%Xtff$U5y^z_jW+Xus{tYFi@v1x zKja(trxfy2Q>3}@E8l80-G)(Rf zLB|^Gj?^E7)HO?5SUkrvF&6aq=#ti+#`--jS<*TY8l2*o^kC9+S1TQG%<-r0t zR$-yS2?{4FT*ieXJ_?p`y@n69avDk8R?`EYvb!s5@uJR_?$`>beocGEd zlh^(2r7t{q^Y5Sh!e{>Q(yR;3cWJx80F3QtuD+9wWFF7&$-TJ#%#NHQX z*N3d#$}^7FXa>7JRDyO%W7mg1>^*Bfr8CKpb8SbbH;_E*Z+(d0TGK2xz{P!L>ZC5| zU?BOpUjutJ*gt!3Td&gdDZQcI+r}avk3YXtVm>tko($-ekEoYP*+_iahiY_vXcNMr zRf}Xy7n9rM8WHTK+pc2rzQ+3daE~8W{(m5WteD&go0W@3!fwUJcR9iOzA^qgd6a&; zJ(9pHAya2GdB*NVBJmM1L=5E=ZzqC`!~DWA784$FFpb>oK&kh26GEcWBWpYgx$WR` zcndpVchcsUaG+2w?EG@+0w(dFZ-LKZ(PJjmHIagwntqvb5} z4`>dC&I{1S%@8r}ei&OptDk2xm}5&S-bR$Kf)yVBgKk9*h2~KqoW$hk7s7>SEPG#A z_<59Pg4bATX(=i;mesV(^3lQ#7>vy`woI)EhR6$RXhr1mK|499=tZpH0H2t~I!W>`G7XOA)Cr_WlLdOI545xr zP>%-5yoG2iZEP@@-3>x1z=G1UD^l8-f{ce5Q7O5>5~x@P->Zyo5_82@aWP0-Hsn!J~)b5ApQUEOKv($eWAVNaOp3P{mp;; zwB(#;M>V~*@S7#yXj-0l@swLjCXKk_krS6KD=7@c4|o3Q%93HVZ@jU8&g_!Ko|b=m z`;_96|NQzntNg+Uchjy_b*H_T{2pEVuPo6xkY3TP z=VaUdFH^7RLHmcyO@43C3k&W1{uyQh&$%Y_DV(D4WQ9Ecn*JYA__X10!tWIRO5rwz zJP(`r8x;Bg5wvi+!r#D?_GX0*24c67(OY3wS z{{zrYS8t#hZHxG!4(*k%3N~`--dbd-JOo84zu-gto(3W+lV zIB80X_+{uRRgM7p2q5tvz=p=TmKiS;wP_j&m){ZDSaZ)tMX*N}b8oXmKYkXGIGD}n_ zYE9juHTmcVD|8uZO`=2%O>2sSs;Eh0(Lf}c*TCkJdqj8ZtLG)m)O)HB?3 zwg)QnDTbD`6*JKQ4l1beQspt9M)xMdz_JU0`hDtx@;zX6Bnn-MRIcdIaQIXfetNJO zO36^cN$H}*@}BV9@%vyW%*Coroz3SdKw*PY1C9}F( z7mfXS$+tgv{?el7f41wDv0py0? zH;`VFuiq=!{w-6lS;+PPJ%bVo#3xYDqD4)39S_2T3ZGN>sKOS7wFHnfg3G<{Yp0tl}xq zp{B|`Xj6)d&ps17iO;d0ap3-umH3XM?#7i%uCbFv;4#<;5R{(vCV}U#3ev zx)jISt=@zz5;NHOq9qP`nw7>SYyP|c?-}cqj#r@%g-%{t0hLv}rOZHjiPi^~PlMDb zJxgJ*ddW78pWon9*gEwRON;#VljRmIC$#g`kYMQWM2u0O;Ul(#5&t1)&xGNle2mte zbYvKQn|4T)muRrN@vn%ZVKmOe*q0QNMl`02MPO;UWwAYwJmHZGG`8F`qOeN35pcJh2BwvYb4a~ev!aG`u@Y`d`b58E!jtvO42Y!_Xq%%d5> z5Zgto((y7ZOdaU3U5p1&^-|8o8}q#V-+vs_Kt6-++NAW<%KE+7z7w8|zlSdw=N5Sp zKZYW%20#YruU+U+jZ_A0tiGQ6&>}XL&SVugT0FkHjHwnMYpjo%ql#4dlWDJDXE&o~ zquHO}LJhD)lTRKn53K@clNf}9f(lK8CvHeUvv?GWkH8?n-Ncc$w8W_YKKWo1r`=3V zbHlffce|S|quVV?EDoN7-3~VBv5Q5*#5jCYnoyP!l>82J(D=-RT#-mZ8S#F{xlqwy zZ(s)U7TT6O%u*#nt5L0laX2}Q)^n{@DUX5Vh*#HfY&*%6Bi{r?RIQ@x08xKt)c~TZ z7EK03g)e#!QPKWqK-xJQ4X>gr)c#RGh6AAcD2{oY{rjcHo!(-AL%gIpKEux9cKTB> zbK1EcuG1y_j>viYj@XmFTs=x#J2%VfIakwj9JDZ0d3m;-ei40w6FYs+zYIlQZquBy z^3vKrth}7#poel#nIX!{fQIxc9FNLDdASBq%L{KQGmyMotf)SP)0Lj3Fj#rnpz&`4 zWZURZURv5ifet+aBOx~5ZYTy3|63xX*oMUsdc|8RBxPkBBFB!N(p3a4kF+XIeg!?jeY3{)22D*8)ajQuCy}d-1@Wh^SJIz4r zqZO7f4YWq-^#FdDcC<$6`IO$)4E_e&j(RnIewY0}*^WdN$3qlsTvm4oM?gfRP2m`i zi9B{rkI6WQWuI~G7S5UB4HFrZ7`kY91UZFS6FcvAq2L_Ce(;ast;64qC%_?s#HaAE zs{9xn!@%>;*@=mN&o0H5)@&X(!Ltq9{cys^LAm=Jp-hQ@C&oR~EvG(ogLnC&JY#n99$+iu+l5XtJ8NMzj9)BoD26a|4EeyldG};wRU8MNm*ez}12eI>t4D5V0LS>srW?$e0aq&LMXut&6nKdaD#}u- zzN8PhGUu7Jy=xN!S84{5tBbLllg7%6Ou5Q0s?fv=Uj#kEphA*|*8uWX_W#-SouSFw zv+Z&a=PS&%L8rjYHD56ldFxdnX63E5e^_~Yxs_{xsIV>{|O@t;+x;Wm)bab6iE zZ4b_(?M?~`Ol&~zLScd2MRPR=I>{MI6uA&Jm7t9li(`Lym%x#=di_O){P-=n0?oWv z1nTsDs_f-yb5n*qU?80*8gad;9$K|TrBHfGX8m_g9sdWoQq8* z@qE}YixrA7JCkf;te(l{4tlmp1;AV0MTUy@7WC6wT;0ddak;d7@KkB({`0TNqTcJ^TUvv!k!LN|#tPt)ou;@2xzf+<114Um~JIB1l|Ac`> zywj0(c4vftHL&P8wJ%ZV1q7z)CCkUs8%eq#Fq#fo`hNfO<*iD`%djy2 z|GXeobqZI}$@s?O(y-$jf-!qu@K|Ko6n@k7zce$*wQJEJWwy}F4Dy>9`Gly?xw*uR zKp~THJksV3Yv7S9Sikdzle4MyhtG&V^vs~vbFHO_Sj|9k)6NUpc9JPKw}K+tP0>m~ zs3f!WoS>p(VMkN4>xD%J5g+Ye1B6#mh1xUc1-W2I8EMTx^Mcea9O$m0&I_i`13Kj4 z|MI-xlwz(n(ok>je?R(Aev6|I?BHz z-lV*NaP_1urjYS|7gH$yxQ;@R(j}VO15A*rs7AWs!yKIVh;vMFaai_N!GU{YDa~)zzhQDLoLAGf+B#PLb>k30zX&CCh1?*o)$`kT{ zD|l+JcT5EQv-1FxG*i6VO0C_>727rjJMX&FWOwqry?~ViS#o6|wsR;lKy~$;(#uOz z_L#orD~zigD6{lZsPZ<@JV2-7dlg!_@?qtaG$hdSDLrl)#4l+EI}boP#c-SOV4Zc! zDHe_Wvv~MERHJgL7*hb423XyVU%I2XC?<){P92pa|NOL?v&F3I3dhF zMvD`chq>j}XNa8rc6-`_;J!d~B<^5Y-GhrPx{q|p3@ej?gJvWC_YcOsQ-P)onq&Jlg?taer09FKys&7<&LeNnR2Jfke@(+ zyry^&xx$D(3WpdSU?$`5)N77`J&l>_CCloT)-J1EzH0ueB`cQelI3S>SCz5lUbuYG zit6C}1s7jdVMc9f9+&z{x!+XxgAZxGaB32}<|C973#TnyHh7{6Rc0$@OOFn zF#DUfn%91xwjEg{D<^Co3|3Cq@R{`B-eCO*PsZQ5PhzO@^XzHGXUj$~=wr;6>uZ-U zbPCYSe4)Jau|azAhv6DOb(+4+FMefw*p6wotKH@cn-N(h^6KjT`-@g82r$JTG0=s|OrGLTntku;ngrF= zSFc=|v}N}{wj4A0ut98nxAuYhpRVs2Ot11+`~#DJtxvgJml&_Ks0PxLd!+F~E*)(G zm))IS9)s=8@yUS!DHFk#cmG!S1=7 z!w&Y&!Sa5zyk~CY$;iW4ftD&7hpNS{9Oq{?U?AayF z@34^Qgt+4*9#C1ApPMMJ!x=kFDCdTuD zehhcJf(CwZ2QPWQ z+wtD!c;CTy(LtNmk_Bl7Ydk3XI$B#+-xp{p-!9Hkp9iHJH~M9mY7)G6z?-+<#RJhc z#w|&H6PN7mz$19yo9?UHEenj6K5g{b?(`uOrs!>J2%#}@p8)F#!*?_UfPqNWd%lb-LU3 z%B0~&Nf73@q7Cqw_q#Y@wSy7Zq z|1DH*Sn(}7GjeaL{+qlvwSa1TM%+!*$q`c*Xlu5pfaJA!Q$Y-@W608UAMqe?P{4#e zZ@Md`629sFLQMFv44MQ1J-$;wgN}2tNAV{DR$`6vE<*H?WIOT%1TYA>?++XudS{e7%w|PjQ(bWv3W{<+ zLQ~6}5<}9gAGQXQTBvO zlR;T&l0jK3l;OopJsI9+TZqjXlcB5kYb(1m0p*RMG-HRm!z#HD9kUoeSK|IO95lm8 z;-H(bLvbJLk8JcY31&c=#2P$O#E;5J{Ngm6(YAmrNBLQ?<@XhvMA_$K8pI`eX`D{& z-W~Re5|dUnJIQ{sqP%OWB^(`f^(C#VkQCDH7=qHm^btl#M9aqEW~Z`o#_u#KHjBp| z<4qMN(X#Qx8xKE7oYQ<7z|*`9NE)Eo5WcG228slTCio19$UV&z6Bge@;KUdDp*6>0 zFT^d#9TEg~kR(cvW8y#}Vxr`GWyBF>*NiUrhOstO#NV3uw1hScAhcniFNPz*)~LUg zkwr?6ORU$R!b=Mm(qzxsP74F< z9Np3M%9)9`N^dUjmA8_j3GKNEp{qK9c@dhw!8FN(F-i&MdaF;#p_fiov#R#bOIm=r?l_FZO|Ma&Jh<5swd~{N2%JdYZI8qDnTn zDe#R?u*>EEViAT`%x7^m8C*t!>C_MvsnI6~wd0c1#yhATXX-rS(b}JU!(GgwJ#|o> zt-j+;SCq}XH>Sdy&O;b#9^^Cz>6V;X;C#SG*ucPdqY7GiHyNhmXiQ-+ZHP_g7<_hL z)xTQb{xXx@QrHaeKr8Y{HGzMnzFh;_+4}ZGJOkf=Yhq98G{`7&|{Ff zpq-f~T?y{}GNo?SM$VL>7Ks!HM1RvM2<6>#WjOalAX455r5%;2Q_JoB#3Rf>sW~bA zl~$v-QY}Ybmt*+LnXfyN$fCER+MaA(%sAMh3wbSJCNT1aZ_)(iy?b?IDy2Y#8# zHyl_1ebeOIlQMSO-&el1%nBi}W=wK;;d8XNwDQKp+I~!|b!C?OV||wUW9$5n^;zy^ z(o73)z5)FI1pS@n>D~|y6iF-hy?yaN;Mj9Sj&k3VxQ3Z-#-7x!SbWhyK0tRQAMSCK zOUj+Y!MM0ni%+?G;J#nnIpvjdr-IlO$xmxd$Wh05O(*}bO?D0^wZMTKM30zzT+P8} z`pnE{*7=|5Gc&utES2F5fCv7bstkI)s-qEMEpVs@PJJdVO-SjzlZy(lJf2gv&a%!_5^@q#);!<9DMWwiq z7%{G>EO&2?!3kAKHc9+H_P#$p&Z63T3#A5)ZqR}i;j%!1@*|Lz9~Mh-(`M-w6D+hT zKcu7~NogT%LViffrINS_=E*i1rD)NrL8?S8HfVtqt4*MifK>vw7jv~&1Gg8lS}|g; z1Ye}@_j~3%&p!L?vq{S>_mB6z`)PBYnRDjM%$YN1&df72&l6CU0IuGTJZly0l64&{ zqxFph&Nzs8J(J2Ak(T^dOj1w3r z?0LQ{md`vW9X6>7-HA`iN;8!W859j+jWJ%#adpUAlm$P?JY~m=Q3uB5a7j&`*lC8I z4u|+o8Sqqvrzt$05Vn*o^Jkdn#$Kt0L{&>vtcOu5C^DiHqH#+It^Acvl+|R?t{aWl zn>QD-YIunhTWog-Gj$}bA2Q39?I#Foote1XHBQ_JO-%5jGeZs8*6+vo*cG+n5=qr_rkt2;Ws)*+V3zPfN z$u|clwki*%Srx>1t;&OKkq6VP%BFOy!r80YqV-(7XmfDuK& zMT1+>(q;N$22oLKURbLc&R9*pcS?@#@+4{O)nm8+YhE1bu`>);XgHXH1K<$EJ1p(h zMI+X;@%0@v!E=iC2V1i7fYFFuBXJ`C;6EfeB6~VU5|6?~NDfwf!PZCu9j`+4x7|b3 z7>1}ndWR^SkT+}1e{75VG2;;RDGc=RSJqcyi256*YC7JVQNr!#?aw?!!LT={t~E>E z&C-S1=Y9yUo*Z{(Um{?-&=~Z82CUa81dC@V@0=#OcEJ|cdZlSLvqCziF9C(#bTi3R zl1ofrmIEHkmk3eiD2kEdRkuD{#ty~CK-(gZ%0NZ^)l7_sICTw}poY6bnIQ!ir zYtaza?!;;}_DJ4hv&LktcFZ)1q zp8FD0#poQ}8o|4e^U%C0(UT?mcyIK3B>HVHlPrmT712gmY+CtP5Iqeoacj}b!Iqx^ z;VR;Lg3Vk}b;V=_oB8_46@x|Ab5mp98*EO=z*O#ilEE^Nrc?y=d&$_b%id*#*q{hvwR#hw3NQ2Q!)>8sBGpEI{J$e-U}v~ z#RPHxF4(+kTpDOLXjquce4yr_In}qo#w;8Y4sLil+*<#;w#e^VBfoEp{2tP8iwuj_ z&nem$Y{_KH&Hz`BEgQz(5Q!4;=xm2C=REsUn)Y|HNV;SqDO}4X4|#_&=aub4ZIOpE z4x<}afo1#gk(C%muSNgTVRV<=Q|KN>cV!+%M+3fjH|vb#WbjU#7j!0`fM;*!&GzK# ze3T`Pa8u$-BozMyFA?>nqpbCdtDEwIP+lh)7iBM$Igo&3fKg~K{u<>|>F&{;ujN&D6&%rK3~KQaajWmWKSy($`bXQaTOH5@_6J zDV+vp2{dlAluiS)1e&B-N)b_Nryue&OJ8%FrS!U{n5A@didjlWrHbu+luiS)1RA$lN~eKY0!`8^xeJ_XmhNwh+}|4cT3h66kbYa_>uQ$v zy3JBDwN?!+w$|8Gk!rJz*RkYVTM*YNhoZz;ipR`4Ol5vcRz_q{_^*|}csC(c!n&L!u#MbRV zV`6l$m-KfW{urg(ie_NCqC*d+uc+ri>@`VT0F8jk3?mn%dmePyWVJ6z&XxH0fX=*M zP_pkEvR$cU!zihac<1o3J<{7B>BSRDHIHS#B~p8PhWp8U2g z^4pAhQVRuvo~$i_p7bVtnIrk?Cx9%xda@_++f*qHqqqLK>CJHJO1lT*5(a!?LEqeTryP z^LEL2PHzDZW3DH0R(SRs=7n3a{IG7cHS*^p)Py5wJ2c^An5b_5fY z-$zLJ58fogzw|~3pRTal*(2G1deN}y!r$N#K84_3OqcH#?VJoMEz(;F^g}L#P}}UnK6_%B>-uHbJ-+e%rC0Fp@O9gZkT|ry_XY@lD5>>FMIsvSpi|3eU2c;&WNd{8rzyX1hbPr0SY0cSOQ`YZI(8s$f_ z>*2)h3x1A`dtC$U6b)EE0 zoLy)y+JCzNrip`etoLFdhXo5ldm)Oe~Y+fz7gI~(4H#DhPF&k`Jn`K_Ke>K>AmOIwG zY)7owmK_;vYRED#+@XqJZHs(0?bTR^{W8O37QjtoU}zO}#3LPXl*N8AW)*eQ(TvZ_ z#!Ip8XxSiIrwjeBD-gU#WQZ4{rh-F>k&EJVH zn%UsdtKrP4#^Tz=w&@L#@ z0D{T6#CQs{*>3y>qcqjrm@+CVWSn^f2MdfY4L~BhqSoZ;1=f=3SuRD|Vif6Wo0sf* zQAO%H3`N4yrH>*Z)=!bRnwh3Zof#CVGaf;+b-5I&H>pUyMv-(;;2x2sGuOvy0w_{< zx+2|5k+Yv2g5~jrDd&9_N1OI<1Zg}ntuS7k z1J`5(c5E13V+boc*jY7DfGsVBR&fWk)@|TNFmlAbGprH&rE9z`63;lpdUFZ&?f4I0 z0|Wp2q=DZYTelgKa?QjyXP$|VK)>bvryio?5)NMY+6R2Tx!7gk515&FbK--@4DA8O z!=8yRkfL1N1fb&quVelLEHQ28?{F|iM)(tTan?MkwH z-jI>2i(Q>zmy@LXo}oLKtPD$6DD0*s$v$VuexFKq2H8Qy#D314WqOB3EWEyWY0!Q_ z{lnCBe_}^8%N4r5(A6L5GTO9-0B-U~oa+lPr+mWt!Zxfg41@P@%K8FA$@PT;Oq%G> zUasp47YjR{=z+>{!va(eOG7vjy9?ZMp!m~L6<_KP9-@izhcyB>%z*CeYy8VW{QFxU z)JC-E3bNOua_tv?4*CYQ>%`m8?OB)xNH>A0H zOc@_*GCqqLzc-ojrr5eoXhg}Fw^$&UIb+SId7elt(t~nD(cJ-!SAnJ&!tx2kS0t9U zFup7&zHAzYphD}$=~?)n!zuXzSsHN9f)3z3GS=W|1U{WU-q1d<@yE9hG>7W%phSEY zf5+RVTBt(nr0FaZtV*M6xzXjHNRLfiO$~0396|LvsOo3Ny++Eiy|@$O-X@HDod{yw z+eDzE9Tpu)D;PJTiQXB<3Dv|scH%eia+4cO#%1A1I*sfk++8%@(AzEe9F zQiIKRNg2R3#eG_VSb5>tW4li+wL;DXHU}Xdlp>}oAD0u=&LnMu_l|(=T$|O^X3g97 zrUVt2#oM?kW74hKh$bI4Zq-IJ8g{^dbil2ON%rgX&?VuFmeQ>Bfzr_V1JO*B7$hYQeO zxr*v`eCU%f1Gz~va3mL?A1ZW46!?;;zAQlh&WP7|d$!d-8KrRspSKcEkR~SA^&Ix9 zvb|a?gP_@@h^FK|%Az4@4!X{mak0;k7Pi`q)0t?g&O)2IUc3m+I*0}zH72HL7-I!? zLxQ`RmS$Kl4xv4<^$5v$y@7?p<@|n1eC=#EE2B0s9<@kapY%=3+1;$Db$cO<9^NKj zy~MCw7)HrP?o5%!>^>gBdXVGU zGS*Cy5UZZ;n5%aeaYwedUl;ARJzJBR-KmRq<7VZV&%}%O1h)=agK|c8C_3p48C0yx z0mkB2L;;4aDb|1t4nFHKB46oZx{=_&u^(?6ItTj5TMN)f>XLorNbbjrEp#dVzJ$J1 z9FrlzT&b|ksNa}6DP|g_=in3JB$9fZij=(yW=Gx(xJ1wr{tsUV#RaU#HaO!qh@RQ+ zyTW*7hA$XFH`|N$iLT<%eKdY|p4cJX`h>f-kTHg*K?C*>fbCd(K@Rso%hObxVrN#O z%ra_;bMY~fG7l*kO{`4PjK{DS9>WOCDmMNn=l7#lWVhWTun3pB|8n^RWn@{RvHn7k zNx4uJ^b33$EsA~-LBEKiU-U&M^-E+H<2dwzyw@t)aTxsqcG#z1Al9#6@ZDfqzu1vsgVj#{HuKg><J|)%_apBt^wrNAVPU zDT{B*?|ZWGW$dTJ5e2g?$ksojXIQ^urjF|Ptd{?k(E=x zMAzMhfpf;RML}oIIPRqoKY~DE82)2E48#3N!*E!Ov=hu3Z;d#H!5KXFI;UP?;c-Dh z{tRc@bSX;Y8bDvv=@#q=j$-KE-*76;kCaBoK#I=D6WihOf>vz<2jS)|PUGr1u$Hgc zF??4S|I%_gk5)&u_>k603CYa?q7sIt(a@Mlm(^-$HcARufbLFxvbuF42Ykufoc*?1 zyB$g%#3Wy9Bk}wkMp{i$XU;(Laa4m5l~N9rp{dW*++0!07+Eola;RT_o% z*l7dHX%~~u>Xvl&9RQ%T+ra9!+a=zuZGaY%BGN3#0SjKz;hMjQPnZx7&yZBJg?vcf z0};8FBjpN3d4Hvs!bIbrA3(Y26QrysMPvKLo|wy|+?}5X$BXwkNg!vhGYj1XS{tigN?6!WdJfUZ{@KA}_xkEi=3-HIb>Tja#O-L;% zb?=vRiC#x-iwq$`+&`&;3YhxDO>Fj?NMWjW))JnMWp;dByn;xv-(Aa6hu8-r&Ej9-n zC*X%qp==oxYRLpCPo=}P5Z?UaF2{BR_uL3HMbvQhZ(Fbtj);&u;yEl zABx-){27MdnPxvd76-S36zyqtgRyJ2Q**I7k&jHI61d=imx(!dIpw^6_QwN(6~Xfdg7;j2g0O!hPqQ-s50)t~ zFHu1aUA?h0LFIA@<_}1XUC&s^tHu*~sM?+*_Yd$I1L4sh*$q7I>KQ@7GmC{)98WaP zRRNn4w`qR+m78dQE58Ag-+oJO7NSTS{YC1^Zx7b;&Mn@fP2m>i#zcBe|7UXE;MDYg zMzS5!y^?=SXUU=N=IC}f$BwV(LPXQ9Mum{RUdLVh*uhKSyce3)RGX{ix$qk0Bthuu@gcbJsgRHOUzq`)=jWwbl!BnHp zLwI?#ef>ME^8~uz4c?CK?@N3Il~&!4^AWmF^J%<&KHsEH%6S9Y8{5~U%8MZH`;+oM ztf}_|Iu-`+q>h<&>%EC=*4x;XCym%~n<3|K_$Rgn@*~7pmhpB*Guz_jTjxx8J7Y8R zgUKQ-g+CtORu^ryO=}v*@hVgsTGxYCuCDjYaak4qWS*BgXT@^BAh}`^r!zFS=bySB zcclAQE36&*SHmo{_YacoeONYSg8sD#yeIBo+IHjgFKscQNbMO;|I&s^XCnJd5PeP~ z+Xuq-;o{rBj->tm7>p}qojnt>=4T|;RXr?OPtdpaoK5&sD?V|{KJGeW`40V@>tQ1yvX{<> z$bOv^*^%^fwu86V3=hkeQTzBn(;x(5pCD*@UIOM2LDLHoz#IUl44VE0fs`pa90Pm3 zB1{?Cn`30>_qn=0N&WM7%(S_fi@Eak$49+&e~0sr%V5A!_rh~f zcYY7`T^PTngSWTt`^24M-D5pb)E%898-KO(a-k!U@SYl|L9RUloS=BlABC{TXhdEO za-cKcYls))s|_P~nQ!s3C=P#5>&@7<$BiXvJ;K(9Aq04tb57<-YWM;KjFiV1`f z?R#l*bkczMOG&|H5J{3)=4R9d+aVK?x$vBi3EnMI7d|^F*utb>*`(;c)R03G>@Hid z*r{#{HqCy9WzD&;o%@fDM+SkS_y@6-ksW`?s^5bJY^!K@0amWDn-#l_a2-2tu!$G# z#wTE~ITKe9qD1g{ex)CGh{oXyvzV8Np}F*J+!q*ZITlg)+M+oGH9`XCzS(!(-t@uZ z!rt659rmXC-LW^H0`EhyH=jxxf0w;E>K)jd#ivomzA_NGgS+wWi}u+$V6!*Tiyb8WkSKt!-z21A<% zVsOGCVaLUbw#53t?D=@%;AC@<$cl7gW&?)BTjB-J!@w6g3}2jsh~O9O#8N0>xIPm@ zye3$WGaF#i9mm_MCu2`e;!&is(P-Z*u%0;BUesf9tKY(5=Pw8hV%V|oitd4V<;~zy zCP5ghSVTlV3x~)YH+6m%E(<(2(uuJL>3VH`?qu1C|1+V~TI4PRTWUU%Z~u^}meVv= zajU(>Y9J}qY*@tBc%&6)RZtQm)XCT;>6Yo_=YwBJW7eF3S#vznjB7r?A+ta!FJ_k} zNK*unbirR#c-J?%MT1d$!?}@-9^rAd7HLK17@myG-N~}$1`)X%7Vq(fZH;A%QfFBZ zT{k{XPEUxs0&7M~L6aTYlsBwG$JcF%^+PS6^W`w&CGlZ{p@-{=jcNb}4-Ot3*^H|z z#Zi?%=x5@eY)Q0XuZWWCFp8A*-SOfsJC&T*X*VyTH*?W8PG);?iGz>N(r6E@jjo~9 z_df6HH2AYs&}EcfIMWY$9ok;|@X>>~Kr^E=eHKO@3~pb;X65Ze$-!;&;T%5d zO>?FtZ~Ki&4R||)+inU5ojvg^dxp6==5#)qds2F3Y-b?V-m%8K+lq9MJ9gt|nHRS> z5&)CLSH_6q-=m{hFpF45ktiY|elL>B$CM^Pwj`iV30rE87fDSKy~8^@Zso|`e*DiribnmfWTPI* zI|sf2-cFXWv?>qKUP|8OCPr8^HN9)TMAEDreW=MK;8-JXNA z*0Y7}*jcQNRcQ5VZr(O~hu0O1g`~}nLs_@yz=%jqurb~oypsu@xnlnv+zyTo2z{8# zSG3+X+no?$nl{sph_0g>DbU-7^j0_f!Z$1wJpn7M^4GJ}&f6F)y?OO}QJVc4L2n*D za_a#vo+6U_^)yIsdQx&nay?)xcsr7F)&uV4h?lY+P>!M~9sTnf5TvgMn0Mn5dxvZbl?layt?I&Y=vQ)O; zMy$RiJ;})e|hN_Jg;h=W5lP6W1T5=F@HJxPTY)`W(&z zUaTz=%jk35a*|Z!Oje{QS&>fH$x~zMGM+p&Z^31X;aR{7QTyBHK8)eVQxUnyEz!>Y zC2OIc{p)L!U7Q0|h0=LC>04kQNU+~J7X$2O6qOQJ`5B)CPgCiWh-r|k?XaXe0HX@U z!7`Kih^1^}bg$C>m7IlFdwq{%ft?F1b_mLR!;dQ@FwLY&9<)d~@$g+z;H60vPLa%> z(DN*QITd}!oH%3F66B@yybjIWc+kap0T{dA_8%9K*d2DP?S*qPCOk*ou6s9QcX?^I zF#_Foqh!mWo1cu;aieJ$I~`vpddJ`Vr95%l4J^9k6FGnp>tCYn%Q_0%>pRgUA<=q_ z$;E@H<-qHh8T8`qSr5+WZ!5IkVE_D0q4kaBv>MhouA}GKvIKv%qqZ}Kef3dBM&tL9 z(0CB*wgrMMpF(!8V{P_A9H0R#>U}+U6EZok@Acq0fH}pC7{oToXM-&qI)iO8(3;Dp zAbOMvb2uHy_a}I^UmDomjfMlQ?Te9Zu$lWrli%kYR`2~jBHLQ{*VUg`vgAqbb1|;N zFuaIjZf|w^lN?Ts{gh`|Q5SI_TJdaRGVlEwPIKm^D9s_0<#&*Y)3Nr0A4JL(#>6DQ z+6|$0p9I!hyCJ)FM7Fi?Z^qgcp<|+UV`%*CR|=B1O*y7+^vab67OrOQ0QyljDa;oDHWeua1%lAkvEq z8n)4x?dOZvrd>2wpU%I@&z|8t$a340z)m5%w zQJgCsN-(0LtNaoZ(d|z=UFC@0>G>V-cKW}12;B)eyhH;Z>*+#?p!VoU0r#~EZzY=0 z8s?kDx{fvK{<1VSQ9`J{BqUfGRKA;B`D0lg?c_Ik*)ow10_C8io1}$>+vFjc@32 z=#mQPhfVf5-x)}LE@_{+#c6Bu!zTO8@npnsd7x?CKId~uTiYUA(~e+v>4#0g-2Plr z7Z*i2CKsVJJ#k!q!*ZSw-1;P!NM(7{+?j`ND{_O1vK1hVQTdRMxeCJ>ZDYHZd-orY zxfPImQUB^yK)h))-w*j~TjZ}96>tpA4h1a4TgmMsNd-I*TX(>=(#Eqpkl92}u#agv zc)JYgSyE9PnYAZVGSFd=LiKr}ZX-J*B*9N^#N;@;cRwz?pY-pir0soh>Obz@hqJW) z??wGToaId7k7)hD+o}KF#Id6Jb5TiCVO^Av$~#|M`l^kMn@=*)-4p4^=a|GnF++n) zt#BK_9Qkq(kI24$@NZ9|twgG+#%2zLjJ95WEb4knvab6~AD0AMV9F89(AJ4-f!2bC zQ4RECOrOE?;`_l4XHIzb5ly(ANGT*b$+{oO#hO1tu3kgCJMnp`t8C?%LGuJ@!05WJkRYldj}`*{ z=kUmwUeqZLqnSKlJ1bQM!*$O9#T0Bl!;XnJG6uZ`e3REoh~Y@PCr7vRW5LI>e}w%h zZ9h#~e{u%2ar@J0L6P%YQy}MXQqFE2Gxj8tj$wS5V9FZM5tzRWa;ATubLllMHF1K zaB1Y4!2GKE%JMa5)rD4ob!c^IUD?W2Yihe{!w_SiD%*vg0e%|@BFQ~04yTI^aY>9b1 zzswP+orjnEr|Rpf>+2S;y0gOMk;g)wwq)h1+EDFEiY&CI0+I=>EUm7tSaVvkMarux zYAMdz`s(Vcn!3>K^%XU1DbXt77^($J$;^mkNkv0leT`;fw{o3{46UfDL4yPql~z{N z)gfJZNHMjc(wd6Unkpxoit>PR3YD)~U9qNiRn?l>P+2KU0%&53kW^Qh)br+udH5Knju{}E}3p#C3*+axg?Uz z&<9yuT@LL}snDWQC~HL>H0Z1|YR?KmtyY;X9;jZ`P*GV6fSxGzG^ue1X9|Pst1C;_ zR0OU!bj2oAY(h&-XsHQlGSw!vG;2fGFP%Ay{g}6V22QOrDwlitn$kLSd8cpYUY=5T z(o(*KRb{uO6vq=eC4obh^eb%pLDvhP0GHJLdF6viCnj&7$#%>{K(?PB}?+JSrAzwg)vzo@4_k=pVG=? zzh^RoMGKFEMcRdH>MCxjs9B8kF2!&XkB3I;rK>9LputG$u#++q3aRE-uByJKqRcN< zCe*@OVj^owZ?3Fx^%zG4nab~pN9HC;K~3o$(gBktho~~*QquYKm6WtTc*A&pWkqRC zGQ(tUi>g+wsjJP5p<*s_nW$=^cPRm@Q@CnPg)a|591;t^Mj>m)`?3~U17u8hM zR;+QUY(WJ~LshE5XTQ^UJ8Q!ShAMRGT&Kh5UXBQkphip!3QOj}_fRX4%o*{;Yi{<# z81B%zqKdlG%EHpM6=`~9Bj;DGUR}DTJhG+?rr%9vJgmY`Em$}|zp!NS!W$wbMV~5& z1ghX6)M5}0l&@k-URW+Z-vocY9iM=}gFamPtJZrMOb|R={)bB+Z=aw59`ygxdj#SM zzT5K2{h}ws34)g&CjGlz{=?;excdCR^y4eU|H|io<>QvX|8M&6Zrh)CoB!dq*SlSw zU*GH2riq^qw>*bSf4K5FTzb6V<&Vq9DL=e(lV7U=Y4}bPkJWYgrQvx67k@`{nc0W` za=x>~51Z%tOH1FO_#oG>eej)l;mzM`Spw42YXvF=oz6eNx7PS^GXs8U>2vt12*1}d z-~-$biJ#UpE&U?Cxx(*quCV*?@8H%S{8kx|mOj9>aQvRjkpCdxbK$qr$SEy-n0w^# z`&NehhtD?n4`q;V;5>ux&y;_z!QYhuzld+<@T<;%@69v#i!$H?d_#bryz%gnU*JN6 z*Xf7hVxr`4hvGA(@8CNz{K_-cpKosQi)6qr!o^hlO@)3>3QS7Nzgl()1OhK3y&ryg zSds^x%25Bjc?Pe=NawHk<1(c0m~YZ^i#vX4=?4o8{(At1{%DQ)JR-XTXQ9GWaiM$iMp{=W=JD_`#t zgLowazPs2UR%PHHy4K(m8SpvRkDtEr27}L(fAyyg{`d_1J8m?19;(F8{54VXm!CQ1 zkLM@wOT&jsBtG!r4EXSJgFj$ETKaIQLGZ)V_@&_&-E8o43`oOwD8BtDAxOiADonzq z8TdD@F!;}A;2*ffATsgqP{W;{LBEDqoAkfVkbiHL!G9?Oe);VN|FI1C&KiUNc82;d zsyF!0VW%*DhKq@kzrzhC@FdEAsyzz2@ZIZ7AXELrjRyZW1Jd}1n+#$oL-|87gXca& z{L<2QG#h+z2K;D?!3Q(o1D_uspQDbAc9XRHs}=tl!zK+ss`xW9;6s){+?oO3q4-Sc zdndq;PJj=!nT#{>Uo-(;-J8IqJFf{$YRH+Cll`8o4oG1-*wQr_U5d>(_^JOG2;_et z=boeH^Bx}gk*)y$hm=mm@H-99^7AR* zJ|KFOPW?<@ejH;uml=NQZ~D^Fmsz>O(5c_)OGlg9t#s;t`qJ@+!Hu_QzIe`55AMlc zzRJ+qez#wH@TR8LTMeE1rM~&T1-i~^L$^w^_2V}kwr51?)KB&0$Bzbf)EIv1ulmyQ zBZNbD7&`S^ed#uVZqa8Ao%*l7bh|(oZ8UW1$NJLk2i<6sp;Ld>mu@O-X*6c&)UWlW zy9{(4&4y0>TVJ|z&~>#KI`vb1>DGg;@g75`{;n_GHqebI-FW==g0A=ThM)SszWgRn z4g|8=44wMHzI5k-E^ob|qd%OYr_mU4Gj?MMa5Fj#9sOeY+5OT*cNgeJzijB#KlaUc zGw3#MFm&oC`_kGrdHKQwge&->C%%?bo&^E0LRsbB9)cNyq%x(%KB_r7%8(LJVg>gW5? zttUU;A%LIyqrP<8K-chNL#KYfFWp|yb#F6t>i_%FO+FU#d(_a4m+yI?tA53qPK z-xAPm{E4B{d4Vt8U7%a^Q$wfo17Et$pd0v^q0@PSFWqj?4evB`I$!XmI{>gi{fNKR0xoKgiFv<5$Kee*qSMIwA`|*YK>N8&7_fpc~$8=yX2eo9_nD_59M% z>Ab?1ZU^Y9pEGnizwo8oM}C8bPUjiEblGrnN1r!zI^Xc6y9jhcFHB5#Bj|en#n9>e z!Oj|X2y~l3*E<1SNgKwFKp^)5g$FGYeoo=H6dr6f@uh$ZK>yRv2Le9;d<+n(ef+lp z;SQf%4!9ZdH)#A~g@u4u0DmSR=^nnvr2j4;(|;L|@k;=i{z{FXukbR!2=FHWlI~wy z0)a1qt_YCjxB`%TW&y%%oqV9#@c9EEV9pGfpKMP3w zdce)Ve@^57Sz#UEeBiGFB;9MD!%zdd-vBaw2O!hkqv5+1HUQ28{X)P+z)u700L%tF z3i1DFGUfOiAo;uu$og&uB)_j|{Jjd-1Lgz20&o)3H)?u7Ne{^Q&47|#J42$1r*3y^ZI2PEH8K+>NMNWLG@_zx<4A0RecpZuR#A0b`Y zU4g(Iqyr@XZU1ceJq$>G>owe>;Ttr(Si_$Hq@2faEf4d14Up+xRX7ZIIq=&6Np}~Z zlvnYkfGo#}fJ~pG@y9AW3J^=tC%?GX&~*W>1l=mYqmj?GfImTaj>7j~U8ob`mryCz z>k0f}y@~;u?^S>--{~4YNyAxyEZ?&*R4hj?AnCR%{1M<~z^?}+-3@@`w^;F?0AxKT z0W$p?SifTWQH2S>Ilw;!NV@L;vfN)*csXDX!v6%g9aVm-*0k@}0GZFdfaF)B;oCHP zEg<=Q1d#a#H9kw>B*2dY|68oLk?se8vKFHmJV~bfI0bn2axHSHM~y4s{onqTtM+C4@TwF9BQ*2zzn-T!nwX#gyx>fGpPw z8vccb9|vUqYXMo#Dve*MuoUoO;O796?tOqP$KO|&a{L=0!!H0*9vd`VqxfqyTwYu&IJBeK+=5xkoEsRcrS1~;4mQh{Tm?5^K(GbeIAhf z)@l4_6jlM|0lyHCbnQ2p^!ETVeGMSvF9Kxxb2R>Rg(m@C0Q}#U8M>8#%)b5DWz z2*~uuX#CqZ8vGl8=Og{|fXwG&K&C%m@h58h-cOtKF94G7FBI+q%tg9y0y6zvK&HP$ z@uzA0z8g&X-vBcGzbM=dcplPy7m(?nzuu&O7Lat00W!V;kmX;a@wX^k4tOr`9|t7e ztJehr+d%hyz^#CvRd@~HBM6_V@TF@_KEDBEK2HNOeJddI`K-p@p|Be89N@16B;D;x zP5N5_nSLoC$nJ80e%*A)qr;cE(E090~-Fft4;VGK;la@e1eAmyvX3&0g1m6@Mx4{ z31BzEmuh@AAo&h`%D|O?%=c8lqd@=Hs{(;X5&k0}>#+~;K7^ms_@_0#6Y#5u|GI|n z21M7({dJL%!yq8j?*L?beio2&sMGk>3ReK00el#cbO#Gfd;AiR<$4^D<=P6!dX)iE z&Nl**e-x1E-U~?n0gZq2lLr4f;B?@31Cnmem4@GifZIU7J!<&<2$1~l)9@EGyh6hz z8vZ0;7Wlj$kog_0@%-vL)BhLX>A*h+NV*2VFM+NCuo3XDR|NQKDfd;tcEE1}mIGEr zOne#OcMv`Ykn!IrkUcKBjew^jTm;DaUjaB7`ON}kJ_qKT^85ji@&BQ4FJK7x#{fyU zY#!!ZNdHoPAaDxcqk#VexCD@VivXGaYz?2L;ST^Z{b1PS^E4pob}H-vJQ@GK3`n|* z0e=L3X9BhYW&^Tb&ws+m<0pVWM)(((n|kj6B)$%?9Pqbu1A*@YE&`vOEI{ z`v5-z{MP|VcQzp9elj5CJ_V3^_S9@6$Ai7vV3C~ntHqj$oN+k4g*dD z{s}8-p6j{_uKF9z)v(ESkbe!#D2_-?=r2v-6&16~if5pW^kJ%DEeehu&_z(s%uW&{HF z0*(N-0`>uZ8E_lm7XUW`lCBYOJ>W{fR=@>-4+GB8@J9i^jqvkl;Ts5m<UsHH5;0J(T4M@75!zlg;bek1^74RX1|9TRR zwFCYXkoi3Z$o#$yn1yuZfaHIJ#xGV_2>5>B&jcjhjUP4jy$tY&pszpCgo^>c%kW1` zI1HGL@P{@02XwagA$%Di`J4ereGdYX&wg|!mg{*yma9g?w`n-6;Y&3-9Jw>ADqu5AeOf#{fz9OLQLcdm4~*KLTVq>j0VlR*f%Hcq8Dk zz+VDLy4TQonEq8jrr!q0bl=zTg9n=d@ zsnPh`6qW-{0seA8(!GYx_5|qq0LkYGK=S!6An_{!$>%1GzgFQQz+-?v2at4sL}$Gl zbWZ^?yaSN_&;x*vA%3}rKdA5zP`(nx{{Twz4ZzzVRKgDeZUW?*KjBS))W3%zEY^ED zAj+3JACU290WJd^gm9St7C`dN2HXlbjLH&j1AGLqRpHfutnZb8tnVd&EH}Tt#rnPm z$oN+k4g($yJnsu9T?63PL3f+tKMwdH!ZS3?cc*cL-wy~moIC}P^7$_?-2(WZfaL!O z{;-}^fUMsTG9mxx0V%)l0^)b_7XevbzGY^*y8y38xKd%E;vO~VfYE=Rac<6|1X29V|XDBzWVdy)AU z0hhSfI`{} zNw2U|VWYz33d0IR3Ihs<(I}E$VW+}Ih07I&6^0ZB6b?f_B)!5;g^dcAD-0_PDGVqa zhWN!^0Xr4gLf1Iro|L?O9i&%uMg*EGCb!&5Zet6|>0NBR&37ycqDU;F&Pf#VH+k>bCp;YJNVr}gjF zaEaE>K0ok=&2OIJ|B%uTEB!*Hx6cFoPU-Fa|0CM|IU7y-H?@7k8s25gSM_6t@~>9> z2`aBn4PT+*K@D$E{&|{y4*DtOv0THqXt+beA7y!g@73_1Z25i7l#l0zh+m}PpK7>K z!=KUoyEXifhKDu0R_m7oCx*WrntxcspFkY-#ok}OLitxK{szU{`@=t|={ptws)h$O ze6NP-?C^J-^2^ikNh+V^8s4q#-=X1r#rJBsPVu7}o}>Ii+CO@gevyVbUQ=G(8eX93 zhc#TS^3D0CDPKgxVGaMmuD^!)jY#tA)Nq^j4|_lL0~!ulhTreuZ=V8r=Cqpdd6;xE zZ0}=@Xt)FZF@Lr2?}-neZoRG;HtJ-fV}pzCVMXPkQ_JGnGepxruo| z%Wt2@_>I<2#SySDDP(&4Jk6Nm?elE|ASB*C&vt_1m!pmNyK1WDKg)#wN#$#wpL#>X z_Ia%}Dxc+HLw}|%Pw?SytMU(*n(#LCSLSb@H?TBppHDbi>uaCKn4$Hx&tIIV^|Q}| zRH?k|^B)f?-ac>9rg-~&MYe|R^AwvkY@eSP)%5mxn>AV<`+U!Pw0`z^p;lYIpEvdU znU>c+k8rW3x6j|at@X9f19hpq?ejZVX#U|w!|#BW&pv;#NAdP~p{wljEjIKc+P?OA zsgo3MpO1Q3^S94aw%YBzz@-0%(uXiP63sWQ4HCV?$au$t&=;ut|%?5tEx%IFRm#Y7mxIELEbp& zQ}Ne2g_R2>OK>5RT`?2E3!fHWTjIU!ZV_&|E7byeZ=!SK+?A7(f2z8o23Ofttx2z( zl+1-MDXFb1ExWCxY~^hwD@s>YniQsZ6*ZC1;IgV~c`s%_OXs=<&X5+n@3OnfT%ac+ zcU_a`j!vnF8vz06rB})8{!A9YkeN@kxvkL$;T5GLh{Y>$&zz$QPIO__np<44E>(2J zq8uheTRhNQy&f`9;uhpB^`$lC0ljb&w`G|-JWKSpE<2dKUeCFJ?EKpD$`anthP&`^ zZDOe@pUKX3BiVRlxMMEm&b;wxp*V+3>%O_npQm%Xo$LBSe@a{X&6RL+Q`vZgV4QNH z-*~iQUtISBjz?=>5I11~k_PCINX0@;NNMM8?yVcIoSy6C#v^s?;W*hl?L^|_?S=kq zAA51;pWYN3;&vI$ zaoWYH<)M+MT@>qI2%ifE{RvYH`8dUN+4XU#jG=VjMVKMiwCiF0>3lCS%t-3J2hpF< zJ4lRE9j7UiH-Y-|bQw+dbu-*jZ;OZAJ8luN&@7d?RzNHV1F3Y zDeB|BhS^_0$>NBavadGwCr*~;5QvkUQ!YlHi1Q&38*NFymDZniN)P32#9lwkiA!;^ zoLG~a<7_z2kBH!t6?zA%Fin!$m!L|tX%=(Cxu}xcL4lZ3ya_iB^3I5JMpqX{&_{8Z ztt-Zq$nAv~{+M9Y+IJ;O8Bq*F>vBV!s%F5LXci=S!>ll4XRE2j{iU9GlK@$zI3}JN zXT;eO6%}cb`IWdvIxRL?7x#U@u2!|HsTbzDFm}1z7!>TP z`qeg5&R5*n`BiHWQ|G?y*2T}`xHzp~YI;Rw=`C(vb{;8r5DT{zr8m0?A@)d3O_kn4 zD-_=Fipr`KyrUGXeA10^N|emoi!>NW!Q<07N$1zs)L@phbX9ppRe^jmz}0SkK8};p zu(og0m3pMkFIgVbsSzl)u^asAi;K{)Cz;~eKnn|8 zDY(#tJLTDxs;*fu&lJFKDDnD<=U;S*AvSdxXUXXNi!L&hhcpQ~|3als@|EJI=YQd0 zah+wTAtA%KqQ+xc(=wPji!WPFpLxNoyioEt^Ws?-&b;K(k6rSyQ0U^knLrry%)Goy zF1jcbntf^BY(u^Lyu_T~Da@}#KFeW;l5pLJ%`^G2EDa~i z`5y)vlT_FvSyG09nV%IgKQBL<&kKtG6D#8SX>pyH60_>)3K!(_tcLwtG|fCM*NEN| zWj|%0`=4Z=qfO>Oln>Ss>+B`_J{>KNC*Jf4p)*BVnTpe#}gYbc*cn4^)S6 zP92eWjmCZ6@*@rZvwTd2S6GMrD~?+KiI11}BB8bJfK@+g74MJZt86bey>`{oSu?HT zT~>W>u$gb|6J(AL)8<}WcPzhTgD=1a<-@ZMEk8ADMYaW-7o^f&Uu;FX zgUvJDvHS*(71hFmXJUxQH{LVAJc)e~I-&vzh&(sgBI|(}zZAci89KZ)XhpkEc+iz|qk?$xXE+4qiUhBn!Pg~FTy>^QAMtj|*lb(M&-|Edj*lYFW_l=xVVD+~b zAaV?m1;MRP<8yaI_%1HKsN5eJWXX`H^<>i@MBb52R`JGQa~Gmj0-IFc8-mSWcE=id zccjRBQ?8Ns`e5^QskD@LYp{8qJJ!g%IYr)^a*ezjgUyg`Ad!bZ@yOnzBSZLyFPkRT zO2nSN;iDM3&5Pzf9@9v8U?UlD@wIs0iH{bp1lYb9andAKWOr=cZZrt3Qi3;+AeiYx ztiq^l-Joeqe!t#Ykb^HRqEQ=iz~gif;QNEag7>zre0MwXJ@gg|yRRuB!j{i;TkUno zIN1CsRK|#0qK(w$Q`^Dj`#m_3y?nbq*j&%Dvv6^fPFkRaUw98TpO%&m?a)##xG5f- zv_{Kv!JX>iDQ(hnqu_o;9IwUV7TrL+Xmo}3EWU&~yuw;KjWGE5Rnua9ldP8OKrUY~ z=ffLsuCV$I*=J8QWLHd!^-jW9&69|eh=|5NlT!$>F0`sc8V)g>AACGKEx0wZzp$*g zaMIICGDAsb*d!<7JLCKFr2tEiZvjg1#+wE4b_oQx4iuI3B~#}mxF^i6h$LEMmzoc6 zya_#9fp2A_T~}Clpnm+I`Q2K+hEU=;h`>&sNe+cJM?R3_q-2dn6o*;kL?#`t#XE55 zcr(Cub`#a{0r{4_TgL~+)p4pcz9=dm5pCMl3r6^2r04s!IryF^J~7I#MmApv3L%a+ zW10wKsXt&`pvU^ijww!X0LFA@yFMP`AJ@+zJ_g&@CghCAHNc!FCMYptDlQc z{eC6Jk1(3i%>*CkWWxA+tpRi-j3e!Lu@$6;1e<@3{;pky(c0BaH~gLlXS!N7$WpqR zq%&QuQg9E#c)NM>3+9$~!_RwgrmLB5=;~_1({we{4L`+nd*L=gyrZ$%FfvaWS&zmV zCL{EyhT_pIHo%-{RWd~c@5hq%T!2_~g3$w*f9~X_quLe=kSa9prU{Ewx z5YNxfN2j!;s~1?k)_v@|_ZP$^BL9ssD6b)0n3dYcfOB=SxOD!4NdwWcfvEMYX>Y3~ z3TBCVxHTvlK0z;EW=46!C{NL7{OZY0S<0S`A}u1LWykW#e9{`Ba2B3>`y;ziBbd_N zq?wbS9c(X@YOfna&4$qOy^>{Iv|va+RR213ic}0V;3a^=Of<2bZK^R7?FuTa|knb zaU(7Fq1nX_klJ>!u|Klj$bG#dceRTks|VNOMwi?-Iua&E?P7-$*#WT+pwRf3GgM~QNQg$TexSHzAhLS(< zewudCe_8fa@RWeghr5A|N2V3Vi*r0~O(BL&e5`yA>VhG(7^9@POF77VG=3HOa6N{i zt1uM(B|7PKMn=mn;geO|%j!qVuE7vm+}$79!4ec&#a&ipb3C%c(U^sZhMx=SdNS{J zX$*#Q;i}o1k+j!|gc}#x2v(vlI}*H!71}w3STKr=HO;2q6KpwCGH?_;#R)M3KZf|k zO`x)k)mY}SmWo@GO?`@Npfc5OpfO(uXJi396prT|(pqn0nCrmow|5~M7=Yr4IQ? zhvtK)8Dt`Bw}c5~ZVZ{(vOON9Z=KR4;!&$zkU6f`YkJ2GBhz9jez{~yuW8)onKo|o zTn8rOHxC<7IzKzROtA_ArvJzGhtcat;d-%)539!s*O1FPO(SNZW={dU;*@o*J-Sk} zJ7ryKPp(<18Aw@Y*^_HlUv>ps)*ySaM3~QwU_N)f=wxI>CLEX80hw^j(2$vMjLL)q z8?9k4A|vr=Hpikl(QLDHgSD6QF@MnoGAr^{f{V=VjOLh>qZsKz=tLuC1~3|Y{C2n? zFGlT2z)1YKzL#Oqbxr_rOiEz)HZ!%8GLFIE<59E<7K*a^BX5BOHuSA%Y*(13wV7cf zU(8+I@?MMyWUCO<*h1v>!&dQLxcQLqoMVTE1@#3C>__A&BW!(kV)aeD*jnlL6KL>+`od~jD5EfZVF9sAwd9dzOH!vrTDGk|LC(cpFONDoSL77GoKTF@Lre zgW0%?@e^d3EJi#GI%u!4un<>xc04-GDuT2kBk>003s5Z$8JDI8OwW=+#IUfUt!`=$)1WOW%PsBooink#izXV5#y<|N?Ls>ZTLW5=*%-ir(IhSs$E%CUs)bn zQ-Pf=p<62ILMtn3Dnc{LO6zY~Sr;n38DBO&`!xC5v$G+bZ|cmam;)Cqt*WeFT~T`h z-cppWs=e(3ylR{`eePKK%ZUxg36J>2p3L@d17BlZLORdBKk_Gw@5pH!7az z%l*E8rs#~{m&tpDo%P^Bm5=Ye*VN^nKN`A4QVjgD?;+RlbihjdA67b*moME0(2Xgb z%FUOK9&e{~r-KJoe!g`3K-Vy4%4fen^D7^}snGqVp;LMK^5eHeHYy$EDnGlv`u&WX zp|4oC&HWG{c;$WpZ$Dsma&G`cljpt%5bxe{U%(3th6m9QI0BWs5AA&%;J*Wc_3>N5 z1f;n+h$MUv#Dw1fG2!iaNk{lLm=nGUri8~STzjkuUl09b{3{qv2>%AXMwYp9ZW!?2 z5oZ2_8ovw>BT?>RK$fFWVFVD>KlwL^MAo_g0yr7)$0Pz=3&?a;fQ(wHuoMu#lR1hr z-7A2oVlEdzSzop#>1P`_h1~_=DZ_xsZ%VJiPKAvMmn#e_3@HSVbWZ?&0Da4Tzk33h zGTbOHLqUVEoZHooKugN7{kvSlwjH=#!*;(UsnBab=W8;C?SA=yhHX25*RO)N`~3lg zUD*Y0MZg{AxbF^!J>egE!qj0mJ`H$K8;1P0`S|!0UfG_1A=D}GUi=PsAIvOg*NoW*W1Nwa@(at&UKsB_7<7By-x&ym z_{Z#n*=Qce{X5{n(mUsWbPM?%>OL4H4|w?@zR|`Ja@^#Mz~09}x#)%;+4eKh{-9Y7 zwUJBh%F=Rfban(o-uV5me7t%yb7pcE)&B?bfl~SHFB?aHQUvt>lK%Mazsn$>i!Yw_ zu}h>Urs&Ttm8v{mxxjr2EQ0^xwmSnfMj3vcKQxGHronHchHbl(Wugyx|DAn54f(-u z3uOH$5O|yUr|rM1T!jN7rIi<%47~f%Y(DBX1@bz@Uo*t`tHpJ~B_+y_4jz79enXo~ zyx2NCMmtk^u&nOiMEe6rlppU?pv zZmzAh1ArwZsrwD>cC_1%q;8qnc$M-Gy*XA$HFV0`Wb-)oY=)uGU%SuI?v92;;)$i($h_L!2oruTU zny5;DM23HCYO;RCM1h@{mT)nu6YmmC1g2t)*o2*L62Vn5E7B~_*ijgdbj5~`;!005 zHx$O!ZJr!#X8(w->paSAH;k>@G%478Gvao#Of&z6Tv^*>hCidAtcZE9x05;kj0Bc! zICFB1*LTH!b(DE$Ad#}Z#HLCNL8!8xWp7y=M*8HI#U3mQ_h1Q(oOM&1B@6wDZy}+b zW-KL5H_~(?4YyIE&OMT&lbBm+5;r4pv|V&18tcv4ejUsFY_$DiKp zH&yMF0KmxvQ3DE1fpzj4WAD zWKc?BMZ-!gMYN((4NCc~=pqeD<*ev+8eGKet>|(MUT1MIumsl)XriKS^8x{y%k^F?Y=Br5H}M!u zB)hKRmM2N1|D=-f%b6fE?@N8~yb%|>mt(_|rOQ*BccK)gFIz3#Ly@4yIvpioSBmss zz~Toh&=YTE?PAYNw&YC59(SMzokLdViRAp~_>dAqz&QT~f|X zd{xUJ)D0$b#E#rq@HwQx`mtfbngS)tNh#5dEK&R1 zpdCq7iCUkh1r?FSdiaRKaTMG6G7HB>YwSiW5keGiWH}+f?r2kAFOyR4rgrUfpZ+lmi0oVKI&luJ1GvutP;X@h=@f$a;~l++J|Ka;s&55(;Hq4|Lzr@O6!@o(4u2euN7{RvB{fR`=hBWayVmo?AGJ4Pz zy)zk2qhwPX-oj+qiKfV{rV)f$=6J^_a*aKkWyu4gy78JZia4OvT1nlwGkzIK*KI^o zeG*UNKE&%cOK#$+#Nnv4yoJpyCW_;G9IlG&v@&IqcX(ZvY;lqpOLi|s_0#}z8pNw4 zVm_UJWB#)IoAOKWO39q(pvp$ApEhvZh%4C1>LRk5kud=%T>?%(G%h;=#Q1XeG9o06 z=6a)Wkqr-OiC{t+4Yx=u%F!wYt%dGHVzVS?R5rNRIU#J(Z!SfsKZ34B1KA7>Y@L&z z6Kp?SiSYJrTC}VPh|A2t5HD_yJvqrLZcgy)rOZf3>=+xnnROWgP_aU-+%-64$fBEI7r$1Op_>sHIpKh4II0 zM;IYklHz+=i}&XUxHyX-exIm-g)O7pG=yC@*m!gk3=kR;riSCO-H=`CW+S%Cv?pFs zpt(5A1QK^*vSTo8R^GO2LTuJq2=zxgNf(cFqFKA7S)&L;s4qaMczX|N75CyTG&YAa z<1V&jVOde@aOK(tq0y&oSX|+Tn9exYG{H)T;fM2ko#n%6Bykwg1}} zF?xaQL9AaA8MxJkxc13n zjVhF=VRzJ}5@q(*DAkz~HRPtE`H!#L{_}7x5|SvM}D>luE>KkM}E2lN4G6O(WBz5Q-9#PMhUP={ehQE zfHmq5+!6!rEpFOlAxk7Qv>Gt9lQ2(Ah*h!qUhU?)9d$uML;C~*vcs;wWi~QG27v_k zH<%#xB=%E51Y5)|#apCp8nR52x6i$5J-As<+gtxkYrYgpt`{u=4`+?3Wdt>cLr4I1 zp#SI0fkh7aFStDLl)0=1vm7ywliUyB;QW4Jb`irx+Vo9&sy!9 zfJ&IHfkr%0lq1me62)n-@fOm=O_8_46S|KQz-Bu+G}lK5n(w&fIAuEKO;#*s&P1?Wmft_e7Q$a)X1!v3iNth+~<%Z)H|=ymZ>OpkrYW z?G%vM%>EpI3co|>=Q{DVq`Prpd+ug@l}J5=Uu2KPB0=3x?D9eP>@rr*NgSy?K7G;q zV6!BF?&xhGY>Kb62(Ez_~|KchNPq)uG#e-1CK)*Udy6b z&>R0Zkc6*4RTw)waoW@z^7sSH$vXa`T<3G(Yg)(Z0LJ+q#U|!C=dvW381g3$=X!hx zO|HM%b49tX0=TjkAWnOu^rW^10Gv(7FP!%IMB;Ps8*b)R?~+qj27Po4Hz!n-TLQ>T5V@YV)+>a(Q!XoV&! z?BqDc=cY~aoWYEMO@en@kCdM(#B4gM%MjdJ67$1rF=gR9D8OJDtbHlWzjbjr)K{J{~py!`c02!2&JQde;gxjUJ#<2*I_>uTc8^=hnacrdUeB+q#bQ~KYya(7awLXNW<5;fneB+q#bQ~KlJl{Ab zJRQe!gy$Q_gs0=!VBz`3G2!Vr780I+9Q%Bu7;8St?~P-h^N|qb2=y5s$;L6il#OG4 zDI3QQ_eHdE>@Xk6#xXz1#xWlW0#qDbhL_+_^Q@Q-6&AH;Np zCw%`nMvmSs(6mlQj&Pzd#P05M1Z@>dDQ?3^^WYS>Zm>z7Q=qJ`=QKPmdGYmGA?6g# z28APJQ$s!)?F=OGZa8To%QF%%jZtvK)%F6s4!%mk>5wAoQ%BJVY)#lCdl6L8O;i+Z44W3BqJ@E; z--;Fn9m}w2LH>(!@gv53H~b}>dXYyK7_A5fOv;R)3=0~N8E&1mOEX5h@Vrxes~=aN z-idcAk@XyNomFBbc?NTD9NhOJQd7>PS@viKvKJcL_u>-+#?Y)LjE}9S*Qjkgi{hTqNx>)fD43@Glk`}V4~$%U3CH_jmbE!zT6;Ln#e1js zQ7wEjWMJ0^c>NfTzXHMaKSyG+r^T|?*UI;Hl!tW0t$`xG)8x;I1+VjpZ;lEe9= zmuaouf!}a*i{vBqh`yJlg5OJ|>`Mj8>u0He%;jWGrr3>FpTn+xQz|41N=s9UP}hMi8n#VGXZ{!-8OcY zV)q_)4fh^)2oo)FCyjJgZ)F-!JI}fahA@400z{q8$yf+LsL0t+>>N3o=lCYOt4W#c z)Q!gFNUJGV)c1CixCfur? zYDtUVO^x1$GUDx3i@d#R!73#R?Y+H1?)k2U|Gl?YSaFJO_PL|mm6=d%P1&+{yOO5R>Q<-NT^V*Ur`=;oxii5F|0t9cC6$zaWF1pUlz z6i%4><9~bAYEEXfxoK%La%*p|)*{FT0BvhM$I@PubfOW$B5MPt#am$~x)t}$i37P3 z_Cxz>XZuRrjbHSDRwD7+@SFDbiUe~YTZHFxAcdz6WV7(@^@{0=qC9mV8->>v;Hd+7 zlkk2N;Hd-IAUxmOD@jis$U5Qq-d+i>ppkE{s)biioxtfD{uT&~(&fFqO5)ck|92i= z{1QARd-%o5f78RyR=mr@Pf~olhks7-fAeswly1Y(>?a_Iw^v>AntruZgew){YDKtO z5vk`~ZTwEW3Z?SDy}Au|Ni;3(z-ihr67{)w)3KtRnwa`uNxc@`-FrUf@U*E=b`+(C zk`5L|2UxreKSy^$VK}39br$S_T1Fd)6zco(Bv+jb-&o{v3gKjUWG{5XIhf+r%kZ?P zdjRG?befm37om^Hp(uE%;60~T_M#%AT53mUo}^=g>%lnnU>xVDUWDNRGx2OxSFzLS zv|WV&?qRYiiCjENE0Z^5t=6%>jblHi07^TnXA1v!#TfkE1chTxA||wFa8W|kdCiSe z#5-8+pARU;`QRSS>y@)GN9h##)xpW&;=;aPo2^amF4{WD|LR~f_OH#@dz126yB|>` z==0zD6_V-mIk_jqCf5>I=FrJHhZb=XZA;Dca^FrdZPDwr6$0XlFLyO3f8m@X9MTfv z39ME#$0f$<3E&nxPs7HHDb{Y27>V(MzsP$<@m3iKUgP5z2FH>Q1I43rQdW2F83P*J zf~48+YDYKmnNwzH`e}Q7x6p+;Nbivo_SD_9N2WUC|A_AP#4x;CTF;ky(Si`Ci;GI&IBtp>V`cDg6o=_06xVrPrfb|eCNL)ATO3q?&&qSuX7F6qv?5rVu5SB$dG z>RiFm7TPrQ5;QXcdR~sOUem@v=}m)2Gneqfa+uLnLvZh*tgriJX$OfRCLIs$+6OV~hF@DkLI5?BwUv+FS zmbdDteBY|066g-;+mk|z;Kmukz()c9s^evvY00hI#%#I?W)t4IWsxz|mrGEG-<^vy ztNcU1Lr7K~8NgOySkGH^oDT}Bw1vPm;FY*hi3C13?>Q~KQhlqAN?_@*LW7y|CPbs9 zTnV9c6!5P)5?9ABLD`h=*G5!U9U1Ue9h2gzRY#JNeqdY#JXi2Iq-?IBFoNFT9^RhN zrsfdF&tXp1@fYQ?wSsW@O-O|!c(X5DdG869feoWNT;zwc>Yz#mDh=}R=^70s^brQB*da? zdB2Zzy^{P=w(97YvQ@{seG$iN#JhZ?qccfXi9RX#lik^@fU-nsTM4@KB9{ zp<7B#rM${yA9Ui6L%_f4$li$qHKLHej;tPHNfTjgi{)OKD|JikT>Pc&CzA6< zNtND?z6x?E+}1I^4;v}sLr}jxQ>Bv6#V?xDX*Z!NF(EuSAGaKT5956|>AI~D+fpR9 zMq7ojQu?{>7z+;7kP!t4#}JOW>&-u)L3tsSvu+GR&Z{u41mfIDC@X;~&y_%VujGCe zD}fq1z3)Z;`jk{x-|ez&#U&i5(zp&ua8jZ0&RtS+=jpx|3*Ji!v_JsOl9}P+AcAZi zMJ|a9MctT3jJmiD6|;;`ufPqdZ5rzeEXYVO>eh@vknPIZh$b@G~LL>=&5`VV)i{(!(WCrmO-5M5me80JO*}szyhH-Of;GKLfob+ zh1SbkkrlEbH6MU2lG{q`nn1ZT7_$r?g;*YU39PK48wzps;b=Ar%;lmWs}vrX3f>Fk znP$bZttgZQTw1Nz#U8a>25ocKioUH;;oVa zZ%=ki(>m5s(XyNOxsqW1eW)Z<<$hGso5-3~5`$@#flBHUcJ@lznvG|bv?YzVr%GZ9 z4l9Z3P)VHMxv-YEj8$jgj0Z=;CTX_;;+eJX%_0?@oaQ- z7CvRH&BjALkoRaBk1g0)w@PSu5J{+3Jo2|u2aLZ`STEv9gc0FxwF5+*EwF#^5yZWR zyclnt!$T+|$|I*1v9Vpo5^tE1tqgg_qXTG%?`eT< zr;>b&!VpL;3O}xyd>onV@GlBOlN@OPBe^L2I0wVh$Gt^i6-ho1;9~dWahi^-i^3hj z$AE4WPS=B(i=I5ZZL+5Z@92%5gl<}Q6C^Q<9mMxhO-olHn5#uw<$3>y5KjzQJsUty zr=%Gek3rCY3n6h)qB#1k(vsR*0GvcKe$nz8h{Wsgo3=Vkf;sxt!t*)$!c#}TN_h9O zAo$Ohtc<6Q{(RxJ1$gS{&k^2_0z7r}XA94_IxITX(Z5P~zSUvjsiQwjcvyu^t`4s+ z6T58jR)>=~+;Q5i!{cA6`2X?nixq#`!_QWHqlcfQ_){MKImI`5xYf(EhQpixEP_}a z-lBDa9w~L-jBKJJiNp@L!Af18~{tjPoR$oMZE!M@aeW zvmxR}Be<3scQ;<0yAQ5A<^mmE?8KDk!E?|xj|UfU(u1EM6!A!loqNUuo9wiWVVe_| z)4Ws}olv~=x zCpeF+*Grp6$Zsa3SoRT(9K@%aA}r<#%HX0&>QQ$JEU=nw0~43(f89;c`@`~>L==aw z$iXeNvg;4infidTyc&WCmsjPDD@vNxOp$#sQ{jG^>3#GcF%tv+Lc>hEK}r_btY>E0 znT2I$>h-g-nyDVW?H*MQ8&MS&?j@GEvTCDl5X45}-Es+<6u*s9&7d7aj8#Mtp4(`q z#1R)<1!Cf~ORyM$3nh*x=Kg?l{bXn9s>x2}%E?YW=lXXsZ{yzdR*V8G(IWXs4%D0L zL2W5&x{+rBKbpz@aOCI1PWErY0tY7hJxunSXYJc$zXgWG(o82?RN{I3VzQ^(t4?m( zWdAtGHrcO5Fzq0t@N}|&RCxEIA=+dwJe}-U3C}m#3r{EehlJ;w?1iV3{Yv5aCVS!O zWdDHhe3QNKbh4*YY+pBOM20Y#zjT?{B{|tAahvRa?eT50-{Rpm*}vxDHrfAQ54Xww zRS&nx{&f$x$^N&7W3tafFm1Azy1<(^WZKobaJ4QnC;Pi0lYO%1OrD(V1M72XX9b;- zE`D+W-fgc=)bcf+P97SJxnpC_4Wsqu)r@{|+;!P~Sb+$P+U>Am*u9)*hfKK;<2*4KSAZN22 zjts76#`L~=JzpsYDi_0{sfT^=zv=1G2zN=?T@2$a?Q$=Kah7(6AHEQ$n&h(uBpwV} zZ_~{*PJJgn!?Yj9c`mDQK+R^H=axsG%P`JU{TSyd>~?WWp2w$KoXuD?<5}kcuONeH z4>(V%heuJik}Y@!>&6OPL{}rDJV}aM=jXP{eF%1b)NIll^Nvf>EK7UMv#alF`f4!_ zmUf2YpOQ{^Zr9AziAY?Z|0tY-3GAc7T459iz4=bmuDtKL&0~UvIw(Y4 z$d|T|SR>__U9{5}u0_WcEY$Ku7vkVWB6WFBuXL~Fi(FgWp(dtDbwdRngO)9Q`TrtT z@~;0QOVcuYFfx&L2R{y#hL5uIxXX6*vMkQhR+JzA?PiFjEiw08Fpxt$%$_~LJEppV zw4PhA77RvftZD6LWC1Ck<%znDE45s$?l0M~QNmXDXLG#J?eo2mQ-u%~q-HZ_qP{tn zC~Xv-?%G0dtS0y*Z5m5k-N&dA576klttTy4r3_IOY3?^weSK@O`!y1s7qAx%CL8c+ z$uO>f*lii@^X~0vZCcAnD8o8sfxxIBJYK8B*~Yw{yBW2 zLFfWY`;v-EPdpuODz!RG+DPO|_U`3fgoCqDMzKoWk_TqhFD zbt)9zPtd^3JrbU}PJBfaZoW6bQ`d>l4|WJQvTf@ zZm!e!J=`kgKEvTU{TV|?>JA902z~#fpF_oBtyF~1Z+Za5u>}YJF1iOWgYdH|{Jhf& zER}Hh_KoK{zhOS)oahbanC6!5Zd%{2!y1Ry^@k0IY4~ZgA&nfpv@iAABg7C1WX$4EZyq7>XvTB5T!=Pw;L1u zQU;PpAL&yG;5$;wHG$IZLBsIP5{Q@XE^^+KY1yQN3jX3}o=; z1{OEG=5}7agEI~r5%&{0i2H8%@(m!rsN|P`z6kUsMPCQ{8qi-W`Ya+TI##{E}gb1x)o}$(6;sL=#Fp#?O9IRd(BommI<<*=@Q8lfSYwS2482 zrwoQe_iM1j%l{=MREQQEZShGJcMcB6IroQ`{}8|Hu}lp`GK=?3o8~TUZrar6EN#|9 zIpEn5oU^0N;Y0;cBs}DO?3u7QDI2xKD%$FhVV{{iQqod#M~fOumMLK`Ir2l3>1Cf^ zmm+I+#Be=>Q3dO<65^$ZT<$S*Wgj|ooPaHJ4DLhb*pfWc(J*gZkj$pfFf{5PQAe-( zO_L<1j59x#K7)8KWXi=581XMh*9NyZ+?iHg^3#54W-Fj~;Gg*PlJy#;(5@j;NNHL%2=;mwj-A# z3)kP^-(qE^5pQ7|I3Qr*3@?}UNyOe*m$cXmYK}cgx0eC5q!xXO?+)RQmz>%+3s*q2 zucz)HxQG}!Fr>(chJg!y>S1z2LyA;LU)}B!Oo}DhvkG&_zDm;e*z}$)Jgaax`8w1` z8}WD~11n$*XU4w-|Nk)CLMvk{vOtBG3oXTqHo6!(qm6@NV4jEr=Je!!8aS6DNgI7t z18LNtJV{!;dd9?AbWNM{zb_^-d%4`=!I;WJ+A%&2AaQV0i6>RWvZx@9DvVbR6b?8N zVhA$_R|HX3D`u|De&Vlb^N|Ek@$;(MXTFG5nK+{I9D>uX29Qluc=LdlJy_){ z?Z7>?-~L#qy%U+2^syPOV&y)qQPRCU;Ih+x87})%_ zWfz{h?1P2pTcZ@7y6hq0`CayR&lIC1r@bU@)80;xZ`0miJ=~_fzj?S#d+&L;O?$gN z+@`&M_i&r`J}?~9-V_8=)1FjBmJ6D)xa{xq-EQEXTK^g)r?}*O>AZw6vcnE%Y2$iU>~#6;3_!javVlQi9o&6yF?V&<&Q zhho^3^?~$tP9}|+Qr_NX_53UvNTUYj^*5_?i14K?vpQ*vsl2_;>SMB~AdM=FHw$QA zYXt2$eA!D#jyUG_RuHhKuR(-!2V$X0nn8+m5j?6{vY)W8Q(qj8`pY#G`+}TK4n3_-gL{ z+pZ*c9Zi&m(&JA~+fxXq-LAeF1iM|GnDn;py$_ zx}|bKfTy>s>y}Eq^G=JWx2vxbomZ3Bj33x^KJuNsU7ZC>-mcDa+3o6c{IYhTy2=`& zvU0on1i$PhjgpAU+U@EpE4QoTML4!cK?eDOf5M0L?Oa*V8?d5*^x3F*NO8*?j~6SKp@mpk&1u@(q@ie_vQXBZLLTwQ&+8QAZHd0~aypYJ9e^9(($) z=7zI_uuO>!{420?e^qKfzjvV_!~KGV`uC-{HM|y3y@?=I2A+=vGC` zt`v*l@;Pxd{^#82c7pHlUhqb@96h$Tha25K7z4BJ?MAoRY>wEA#y$s-vLzMq1!{K_(#jJ*P9=XvC{TN+ZDg*n`kZbHm!!P%v0i@h7c4XYEi1v;e z8Vy#@w$#DB)Xi>^xGN)nH`28!kFk2H*=_>3H|D$@J7HJMc^~ZVG>tg3rk@Yc6Yb81 zrVZ#ZTOcE!vb&$vi>t;oPA@@)@Hg3&ugT#if5`MqWc9N(cs1RC=|$(L>fvsixV(CwJLVc1 z4|9z;|O)qR0xFWFehhYWmNO-aZ`;Cz91{=&Dp zt{W2#+JhX&=)$U{IZI7TyP#;RU9ZwA*~EwJCScK#M-S|BHSTn7R3^6Nbz-)|r|ftW z2>0D*%9L~kuRruD5N4rWe8??)$t$>lqz-`h;?(zSXvaAReuc`Or_#=s@cUgjlYtW5wO5O9=4lC zyU3H>iiJFbb4uENMQ{JDelrbr@itfXQ~%gz+4R-%(gd1IeKzP$+JIHxE?K~cy#(*f zyz=i!#LB)0k>qyEVE)j*&dRN064s z!-E>%fQZ-8S?c+waehGKO{($H42>NaYox$lsecgASZx}s0~$|Mjf*ohE(~hCGN7@+ zG&Te@ZaG>?eR77zBZC@0m9FvDMrm)XoV5%F^fs#AZ3Jo7d9@ zcPd2udRIZ0>18mWw_5dn7Ln5RJ~}L5hY&>kde=gi>18mWcckiljv&nrR|WO{6e51T z9VxvG2K07(9tsnuEy>V3IH-3{K=0<1UIqht=d0dRGxR<*G+>8M2lRHP^fDOGo2z=a z6QtQ;W>D|HK*Vo{Eh)VW2K25SC3aYmq4)iqKz^G7db?7384T#1t$L?q=zSol_l$sE z=H1$Z6eE46$x*!nGxSal>is<=MFAWwjN-TUrt~rx$nPqw;-WpQq53rY?!b)$WH#8t=2L=OrL#p?f486rcy$1*Ma?Q-_%V0q7N<6*6 z4lhxCnjLmvStiX6>mcH{uk2xy$$Tw?0lm{yZ%c;WJA!&|2vy$I) zGW4Dk)O%b&ZzN?01_OHARc|k|oo0tO@d_c$4zEMRZ-+4{y$lBQ##HYQGW6aS)Y}@+ zo1fClU_fv0XT%OyX6PLs)Ef=x<^mZ;cMU}R_Fa+E%V0ongX&$Dq4#l!rsa1*KyQ0WFM|QS5!E|BL+_lR z-cbR)D^q$I4CvjA7hGr$-86HW9ry}R@|$)|0vB~M_G>ro;B#=Uv-EwZez#M)(<$jK zcA`5b^KKHiBo`3(Pn2va(e)6Zoy(T)o_q^a#FtOvbw~;EJMl#_xdrffBHUMsuZy&G-;&$t~@&&s+AODw4d`01qs#BTdU(FIl#ui@ePHC%k5e+b0eV z$8`9}PrP+MqDZIkP)}hA+oheWX&1dG6|Y1^^V&*fCJNjb8GUH7PBU7y9~kq7Ckx@c`LuK2Du?Ggovr!TI!BQEU{1>xz7D>nDEJww9N7gy{RX=e(BSJ24! z{S$;&&%6MqQKnx%W$^vG91~`;ElSVV0*>|P=L_|k>vUs1Q97;WPFElx{;5*ojm1Ic^NE7zRO^N{hsI6O9aM}l9kWHR|1wx; z;&f92M)ES)9da4$4(~Ep74f|bNL>cY*8*@p&^(Ue4@1mZzn8&oii!<*{gJ#!2&|Xm z)e2sP^!>`&-So$yXl1?5(jDPjZ==@4kZ*}{UL`Q1B{pDV-*)d>rCKl$<_zC6Ps1U) zwrqivj)2yL4wu^sR6_7c|suH#U--UD6wF+t^b2 z*7E3EEz!4^N8e6<5y0M#;4MXAE@zXT`%!d#s}iq*hP7-hUQ^<1qc2=0gDNks+~`iU z&~9e{mk$`=-V}MEw3$;XU)VKm%z;lNZ;O!qNiiWh7v)kMVZ3a+DCV_9HnRx(wB2vT zmxhUR?;Gm*wWtE*pclR51T9{#+&P>dZpI@E8r^BF5QUw3lU>*Dj(k6Ke9G1X5Jqc2 zT5u8r_U8D3Y|3lGEi3|GrzGF^$u%M+yO+xiA}na(@}Ke65C)5vFXN3N5)7|-wy>rC zkHyXl%S-!}c5r{AK8iaDe57-_qS@Pdz8xd@Zbq7iB~G@W^c=SPMu{vI|ECo&oEKH^IW$ zyJtar546`1ejVYzAiNFX?Mx8i7ZL8nR`~Fk=kUUc95)>oBl+_co zEoXV&DU=56)T68M1-AD-vkNFl@;-YD!ob(4<(6*2C(rn4vHC51wVD2ImzTXDePjg@ zIRvj5)d_RoJYHApXQWS{==@vx0 zm&YOkrX5XCxV-up!s76n4d}G5;szr0*ySa!hSxj;TH&!`YI#6f+hsB9WcoYSK?c(rAL(px-`-+;b+il2otL;0Ev|7Ya16Mwv3Eu zPBPbQ4mYnS?bE7A6Or#PJ%Py%DVZN4(gg1c zl|YrF%lo7_2WKkhJeJCUD98I49|=gPhjYIggiT9wMHea+F}w1dG#ODY{$;W-;D>s! zGJrYY++t+c9&7m`8;g3O9*Kf=qf|+3@Es)~u0RMys(&#RnRUR8BXdBt@Q^Q7x4 z8|vz7D$5owT3A-S=*yKgWsByP)qQzUkY7_-QCE&sD#?h>npx&WOk*(p>+7rP78n=l z7gf|PSX?<%lVQR$iYJ#%k4`C$PA{7}Ejk72X2gns%?M3JIWC+WshwXwr?RH@tjKY- zq3D#N^Cw4(L&cM3XuwjRTT^~L3O08xGkndp$Q+WouyWxADS9n(Ddn%KtgFnV`zV&V zvBetW`~?f=__#`(IKQ&uIv;gLU3p!-BoR9G(nVGE*H_k_inQk}sJ-q~lyGd`*i-UP znQ&@tO~t7-l?zdxQ?-`JEK^F^ysA?wXwKrw+Pa!WOQwrlWliWfDSKqhadS?f5om{b zl?y9t7F1+mMaJYe95?F(>X|g<(xSZ zg0hlm$<*nWlQ3m!S#*iA(!wYK5uffoR5NxHz0TNwk)ab%FK+*ku@h_~bi`LXg zf(TApSXVi(vW95_o3>~Ha1WbNSF>Q@JaAYEmo1o6H=kixVbYw+g&4|~04*tpP(ulA zJg;hMP2K!OfRd3Jb&F~$7Z9V;84GTt#I!}#8iV2b+WARjdU-7pp0=oVETga*&X+;V zkYv$V`83P)MHpw$e7q28Gb$F;)=I% z+=38K4=LrN`8}q6|MX0QOY!2YA>0}Vr+)akGnMh_ ze(Ep(3gtgSXE96udcUOn-hSeDS(Cn=zFwC2(-vy{vxdXQp@A9sZ@p3ZrzptacNqV- z{qWnrqKqT@v0ukc%3sq@{Kloq_@uVejP%=YQ+~7`{k;k0xAbGb#&0UWvcLG>QhtB= z>%2qx4GJ>yH?2(>;uUAJ|F@Mtzn}OW#($t6e)V^h@k~Gb!WGJRqaS|$oyxFgn34Zh zfc`G~^D*9e!{Q-?p9%`jPlwco|l{@aK(Fp`t@`zcz5X zo&s;J$=NuUHQgPMYn`X*a=ep2FWt#aQWln*Z;;n6S2>P*X>wDV4!SK_YPC}_`;&sGN?DqKH)KyvvD@7+{ut@XAzYad@cP8KpE}G-d#@(#? zxFe?B>f>r^=#@3PA6gj~1D*|?ll?#RKYkAGEtHa=&S zgBnS1jzJ$_;rQfH@L#!>3}T% zae#*ch5-uzUxB}M0pN3hjQ<$mg}@&+{4Bufz=s1)1FX4C)0+=S`Er9-0Ag`4Zvx;r zz;QyAm!H@{xgFQ0#d#Okoud9el6g|z-JqNxxwjx zl+OpG{7FVX9Pnb`Iff4~__yUMzXg!;zXlY008)OH;Xg8XA0YKN0#g1fM!yD-^0N%T z#Nb7Mlpg~~`D2Yf43P36!~g1Nx_<_wd?z5~pELT;0V%)I@Ouq@7m)G|fRwK_`W1kb zpJwaA@Et(PZw93NlSY3Kkn-(@-)ZohfRwKWr2KV8 zpAJa*nBheR&jO_UNI=Se(&&G?RpomDSsy(Hw*ykX1Ca9nZ1np8segsxw;NmzNcs7I zl&>)QMSzqqH2h41V*x3j3rP7xjQ;1ZseCse^Rvz1>wuJB3rP7#jQ(9f>TfmNF?b6g zmZfRrC(^mpPa-v!A0yk_tvK+3NIr2LPK{!KvYZ!vtC z!5aZ7KMRoZGmL%~Am#H7Kf&NJfRqmbQvTnYHT~^?l;2|biw2(sr2I-i%HMDF<$#oL zG<=D{8bHcV1El=LMjs1E`7wqcZSb>zl;7Q?^6vr;hCN;fqc7kA zw*XSU!SEXlUJFS17$D^*8vR5-%0~?UjKRYJDc^gG%Ksja`FRPD@|z9cVDK?O%C7*V z{%;xmMnK9}8@|BcHGq^a1f=}gMn49S@*@pD%-}FU%6BhQ`8NQWpJxFn-(mPK4gMUE z@~wc>?;5=Zkn-~lFE@AvAmt|jQhuD#KMP3tT*HSN90*AHu11yr4IuNg5s>n04gZ?LSB!oQAmwKneu=@00M7&c6hO+KVDwx-${%ES-&Zx=-GJwTz7>%2 zuNwUcK*~RA_)iS}5RmfA0Vy9hdKDn$uQB{egEIjsKLL>PQyvAJ0C=zA zUjv*0{3<~B!sku|WV}4UlK{WDBovwoc!R-d20Op3a(4nUp9=t)?=KmgV(^OwPcis; zgNGXYV6n#ggTdb!e5PLM69Ji@;|#8-)AaDtMbhIdU#7d=;BO2LuEAO?;{EFlvbK=- zB;XX_tEx5r4*?nP`+(EI`)lPbxM3GC-DV zvB9|pFEx09!P5;MZ}3wF4>I`P9M!X}LgAHwB}nI7gR8F5^p*oMy&(oaC|7)!!3)bY zpW^|U&oy7Ncz}#|v%y6M%M4C6c%H#i4IX7MY_RWY)$`6(3g-YapZrKL;V-Y$^u7hi z^bR$6u)&bQtFH)!j)DB&E?4;%04e{Z!AA_6T;BP%;1Fv&oKA}gP%6o7gc?=fXI3tUdjvHTx{t9GQH0j zJlx!Ncjg1e%Ih~gEtzy*5DNeFEV(R!4nN0{zcXIwR1IJ^9}yy z97_+7>E#(b-r!LN2cNF_d-AkU2&T;YB_QR0Zt%x|N25MIGhX$*Jx=+r8GPE{BL>?I zCJf$aaGt@L28#@iK&3Oi#RZ!GsRrBfHNC3=$zOS@!g~#V*Wi;UsN8n|DR-N}n+#SN zyvpEYgXb7L+2D}|ha24W1=V*0AnSdG!KaVc^x6TL-bjOo864(8bj}Fk72${d^I$;g z*?pA4`vKV=ZUCg73WL)Oo@?+#gFGxwxxohi^m)a9XYe_L-y5ZLE($Td*N#+p6d==k z8=Z!F#u_}y;An%t`K-$Q2#|7j8Ei4gbCslDV{od$a}1tf@KXi{8GL1=#^Z5E=Ibzn zmwj5(I|`6`ul_F$zt-TDfTsXI&F~?B%>QeLYCc~u_=Lfq8vLHY zuN(ZT!G#9DWN?bXGe4pF9vQCbw;9Xbu488pE$M{7S=T8eVMp zxrXN%J__(u=<7XL^&Jlw13uL7fd>EmAmzUaI0pPz01E-1H+nrF^Hpv5Y(VP0((o6C zDE11H_P>_j$vqED!&l8-%^lfM3R7gswJf0U)~6s4D@{g+`SCjsQFl z@RNWAfQJJf3y3Z<>IgtI;ZX+zqG^u$D-uVO8ufcXG^tU)1w<1X^$H-G%BWufqA85x z{(V&Ws11Oql2MNV!t|pa0fY%hJp_m%kNN>1vO4N}fcQ7+JNQACNAcY%k{tC_z%Kw+ z0iKL<@O=pWo^!b3a^JNAvFi1M`a}e?@ z5P*M&HiC#G4w`MS&|t)1$Y2*TPq_|*?FJhS&Nf(RFk&!dunUEj_y*ezHX595u+U({ zV8~z>B1?RO?FJhS&Nf(RFk&!dunUDn@SqNZ?FJhS&Nf(RFk%ou;;p=c{b_J$4Dxd* z6nTGr2ov|-k6(rI68H8+EHvEPN5SJd!oN{9JOx19+ov(X)3;Fh=p(}S_JN=c3-0Y3 zIo#yEeI{%_)aUI>`45x#_OV=H`LCX?`rk3Ww@>C?!@YequXyn3jP?5LEozD*s!?M~Cmc zU-3U$d~e^!(I)Th!`No|_x63XS^C~SkFzblx3A+5kUt9gt4+THeawURSB-!lpM>~+ zobNvU_!Q{!y@{eV2b0p(Bs)PVfi0Y2Xq`{iSS z`rjDf9}&Qh!DQu+-x)}+FMuBv$Zu{S{-S{XF9q<&1NHGZ+Pgn}_y}ous0@2!XH=9| zRbEnGUd4^CWyu}Gvi+FojLN$DYQ?UvyuJdPlGBB->$ptzT~}7fR_)8MX?W3>l{T@y zrUqMTCoaP7+lD%cXnWsfCu@zLp&Pw3>AF8Vxe1ktYZB4LQ0>diH0<#9D9E(#i=HWa z(M3uXO{`i_&CRyHh_c6+n|W(}#MF*#rpVpF+?&j;&weT2zUq`!Qv18bFtD*~o#wvX z;#wF3Tc9r}ufR59HIkn{qo!hye8exRs-9oIhxloHtv}s}?av@iXdrcPgGUialM@`+ z->VihL9L!N5{#_XC7NbnLwALrpt8CnoDD5~|9FOJB$GHHfSu&rU!K92a{2gWWwmuU z+EP|A|GF~nxtB~JnW=IRM)qZEiIdxvi6YOe9_;_tEzCX}U~e=}#)zKMg;k3xuJcnS z2k`WB2~?AQkU%I4ukr1mC&j;`o_MT$;hd^U|B)TDWva<2L61??CL2H1aoH-Z@YJEH? zMuV@@-S$2@B4{}-s4Ac5kAP+(hY8YUgQUre<^@SX90z^o)K~k|fKX9hTUl|vp9n>h z7S3Jd6GP5W8=7w(_u$}h!J?Y!m9;o~#17(-ekAo*aN5{$1*e~R#_1Cxk<;=Ez)*HUe*Wp>$44Rs?9wfy4+>HPC>=;ZS< zpONLSOb+oG0#H^qlZV|h{typ zv0td;M8!Icn2*H{*1;<1gKNgWv@DjDRn9M)%i}c443@X?B&FwAUGM3G zX!#Q7QjwC1>=t;qv}qpAm&PoQ_HQY<*-DeL7tN>fV{$3{vsM+jh&u=8pZ__9^5&O^QYeqC z-;+WkK);?s#{j)Kh2{h0LgyhSAKI{>qJ zHxb4a-`4~j+*5+ff}HxT_)Kx^Vj)&|c@rfaQ80Q(UM|xXg$RwsEUr|AfX(QJcxQvZU-kbrVWLhMaU?&HWSHYd1 z!z1wE;L3t(giAYO716D+4PAp{1Mn5?p(&$SmKe3?Tx4lIH+p7OiF_tiB3!yQP30u* ze`09APF5<_;eH3?gSXP1so;hj{d7SlBR9#2S&SrMev+^$$`vj&mq!PO6LSz+%W>Cv z8ke%2LE9yk{=qGI)Xwe467_#Tj**G!g(w9wah?-h+4mBzXlq)!DipqrBe&&pmb-M7 zTmL97y8{j9`5%==@n{b(_$lbXg?y;3zDt;quD-)q+&eZlZXXa{vk@%^S0wlv1TUk( z=Ov;KgyTa+)dRRzW43)&B5+SkF7H~|6y3=*aW@GXHs%{-i5JJ95o)X6nQYZMz~f2} z$=uGKXSBtl0dCTv!tSC;-g^_Fe%yni8gEASRV%LiaQ@_}b6%XT!Pv}-wMMhiNkxD_Q) zimM0l{tYja+|S{AQ0!W0*Y)VpXv@GJRPD4I6c36P}GZFN3?%qUBSiTfYj;ZYAz-SpilnA|gAj$XSczth5Cm#ad7A z1Xm5+%2|*d6$L_smDY4OMYqxlcCXV`4jnFfvi~C{+RB>4@f=|`$DAG3$lx&ZRtGNF ze6;sOsMl+^H^@<9rb8+`$g(P2Hc^jr{AF;OdCZtRKC@Len7ix|;eXA$9_u_FSq^y1 zV;7Dv<7uJ1V*XUQAOaddnFtRM2l92H!bq}Cg(t;%aOKiug`uK;x<0u2DR?m90~;QO zR3&g_r%qchPI5{YF5p!MSV54b4W;Ak`E`~BC1|oU7S-2OR4T>d6)Z?c=NejDnNft$ zv2!Zt;!t~}w*30)s>+(N#i_NT&Erm>KQDa39cOR;FGRFceXWyRPrG#4*qnQ2+c zKcRmE^qc#7ZLz7w!)B7-U#a{SgB*tq+{VEeC;KvZ0xIjn+q0h>MNU06a(QG}R&K%B z@7gQ|37*(65Zn|)^qQ;FWI5~ozm7fo_k%Cjk=Z}R7U)mQ2g^~8S z@#7H-finum7o>}y9~6hqGtL<6rNQiFb~HAaNL>Ycy7eBGdP)7_lOr|ru0a$wF_a3U zTcmD&B`m$TysEx3B6N)>odi{F&7Khu|C9#MgH1sroNx*|eL!((1nZ!YOI1CLMz-lc z@!W`i$kBWaW%R6(&DgJQ6WPt40n@ggaq3`&tY-ipB?TXO<6k(17~)}R@H zc}}T;<~fV%#(;ftMC%r2X1e6g^K-Q_ecWsOT&+7+5hKIiGv}ArMZR2K8>uX>U2;m~ ztP?aJ=-U3S#&L8Ek~$exo&VpyccE41pFZ}C@uwB!7o3sax6(1%X+L|~DFs-D^SXj` zx6{r%9eVojZWe=m?#zM-l7R^YBVM**k6A*fZ1P^xO3c3dSZoI-(qy^VAVLFz1PL?DIy?&h9hj zi&wZ8kMh(5UgLjXuQ9_P^t+AaDIe^BLrDKOwT{5YxsSYae7tkd0jEzN<37~W)`5QG zTeSK+_;dR;seHWs=77)UEr1;8Isbr55c}104lLsRV=dzCX<8}wtrQ+`#}2q-xL^Ii z8l0|bFFDX}4!C2<_f!X#(C}7jUtb&jFYP(p5Ype@V%>fk`jf%&hp6PA4SIMpH)-L| z!?)WxK@YzYhkyP2S8P+R$A6bw^zi55C&^}=6kZt-c9MU~vFZ3@$1CprUdv6efg?>M zR4Y9cPPD`!@@D#&%drgB!^ta5iiE{7kU!(S1?^5@;x zY$(%x9RKr8&dQ%v-^AR>6=KU2LIuFH_2U`KL>n-mYKvdlkzl9x1 z=Q&0+#k}39H&ksN&&M;~w*bjM8W2r0?~{Ox=MEN_R|W{ z8NS%?MTTEv_?3oFG5kWq&oX?R;XJ2H{YM$jbIQaIG5iA*g7_{#rvH1x-!%MR4gVD& zOrOUs!jyl^@YRO@!0>j%TMchEe1YL}44-NERKw3R9CuuZ{!as9$jMu)_(7`-t~A(g zaD_pphkPB>VzAL*gTZQp^9{~6ILqKPgE51J1}7NIH#o*%#NbGSxdz(-VcLTl4bC=L zXfR?BK;)Poo@@5TrB>o>TPNZ_{wCr-`QEs}te*A?1er!OVJ4*fX+XDDk1Nip?xEvze?}MJ{2ME*l?S;H^in>Y8_PvG5 z(u9&!|H(K#8CWX^Zpvz9b6wV>b3B%#=boS@%L%e9N4;tnR^#kT-CW<q+amq8j<26pj^D*6P6`)C>QD=ZnyXLMzFL@JG)VtVrX z7%Suqiq}^5^?Z@1Ca4eeMvq508vohnLUule=dQdG(@6gb`;7G)=zx8K=h7-`{RaA< zWS{*xw>LI<$}g>dRo7N$KezY4rC*JoFm8hOL$wP|buOGU7oRYz!RB0F#|pL^_*9`> z8YzPR_~YY1i#K=(CH-d$9S{8FGYvQdS)RT% zs?SoPFFW5069&iG6F}p*+l}<|0hu^`ppiH%#z(*{fVt2OJ;`&4bUpZ=vdptrHwf??SC5y}cR8h7@m=BH;Jd=Fw?to)k3hFvy(t`*6IzLL zA4lCLzqq-x=VsWCCsKG)D7+??+w|9*aKc1?mM+RKh(KKz4wjvTtm25rW}L&oArZuG z>L`ra$w=QRCHhC9o+BAA5yk0}Xjc!-l8O=S!r3i+)1A-L2n`I!XCNe>ZpF8We}fMo z=Y}7C7RS7t%>^&vP|B`96}CK$55IyF#g~kig1f1p&-t522QB(q7W!-cB0A4Dy%Tmy z9(PLDrhUux@uu!vC;Di(xrMpLe;ft@ErNqg;pR6;dk}T$X>wyDmi2^g!m+55hr;n` zUKCgawv_J=FOU9adCBX=%cHO1)3lpgN`8zlN-vN8m`HI;^uegJxp;Z$gZRGmvmjla zTkIS;x|^vw(VacrNU5hVBe~s74o9B$CAs@0x%(}-`!u=xvM0BM$-RiQ(@PiXLvnYA z<3CB2PFqS-15P={FO~@XmiI2nz+IMs?`j6Vn>_<47}D-n)t#d1PE)l)RjtUbN;1n4 zRI1P`&_3n(JCe+IESYa>GT+Xg%msVSahs@WGgWt}syni(;>V+#o@%%<{rl!KV#{{4 zqFMr79Ot3xyPeWE(Z%0D7vJ6z-G-i$`&b{cbHcOe`)0=n!Bnjl+Vwo8fS$G#Sg z#S$KYeTdeKxtE|!^&R0~d~w;^?C2Z%hQ%s&h1Z-j)>*nXjoXD0ZbRRYBo{~DCea>< zdsfriN5v}eed==#b8z-?>DKVWOV>K_3C!SbjA`o_+O-SqB>G12fDW8O#R)VR=uw>2 zD|R+2XS;A7Rn96uXPac zsBwCvC%!-!?5;&Srl()i%w_Y4mf{HjToOocoz#9-+F?mZXK6(=F7v z7Yos&=;(9si-GMM%l^HuPe)yjkvMZ((HYyY9fRVFIL6x1v-5Ap?)e*5T}2T66Qgd9 zlW2fh6&da%>J-T~3dgI#bLID>I3qdnDv=J1$Rg4IpuC!2P;}!=NQY)gQ%2`%OdYPO z&OSgVu41f=F*?FZiyw*K@U26k17mbPiit6roGfE>%;l^Off&ZtHfAXNi?PezlA-wn z49%~E*Ni{RSv?Dkpp1+|A7FqsnVBNPIV+)h3Yy-+F#Q5FwGHa##s^_yCrDtWuI&oW7L3MgElJ`nf`262(H?U zx}4SgUAB(D{_-Vpu^BZwasDn_$6vo>5*M3MyA$W{vUU9ROM18)r*_X~jGwX@Wj<<~ zO@Pk5*=)SX^k=htaMfni<*erKvUU9RmoJHn&8QKxq)77DFPX%}X4H;pLnQg@m-KKq zPVJt}7(Zn*%6!x|8v~ttv)O2o>Ca{naMfni<*erKvUU9RmoJHn&8X3d^LN=g{`w`8 zxY&%^oj8A&t>dp>(!$DJJU7nYlj4lz#D|M?a8{ti9%h9Q*lwH&*{r~z%nIXW zRuI+w%nI*w{Lh#ba%EN+F0;bFsOLTm#l%2OPL^50@42fRv6{Kc=C!ZeO%>vwrep#x z>bjjGL-)N+_4qybb-m!aqDMUTqVU7Jop=t2>dZ5=YnKyeLT;R@D7GD99iA)U2-%HO z6Per6nUa9S*A`Z+YSO$6iJRtVB$!q8-{TD0G{B%Vko_@IH!`+2BfTjy{TZnXTz4Jy z_>43ds2YhO8i@jKoT{=IiDWlUO<9a22}t~;ktm;TBntiAjI;&H_hzJ*MW#O^b%N`z zqaL4;LO|6>4ADpwaN|^!#YiN(acat9BuPNxCyhk;bR$vd?`EXUP`)=KJtZ>z8L0zY zcOCWkjP(A0ct&D~MxuZlr>ZPQBH4{oQx+ph0un!IB+927i9-8oBsb1+O-6PJaAcpE z8rgM}mF}80vP)0>d2(bQh6RQ6k$o++CP(&170EiXuL94F^Y^4UBRTPhL^?RKQ(_Mz zdpp=}oC(>;&Y+C!{BX9bs{0w)?`Euwk-eAI7Tlw?qhtqHaO)dZV0 zgajKkgamIw$cBv^$I9kl>+AXxoVCC7^_A@G>-)^ReSIhI=PTgt%9l?%!A*7-sABL5i_HUSf!1YxchU=?7!+bRBs{zBT*rQ?o0oPY)7_P7S z4D*q#uLf+x_0|3x%|Gn=DlNqIRiA|ptgmLi0Q-Bdud*?HfT1~keHHB~wFWB#^ncIw z)kD1X)qx-7`f9*tF+P*Ku|3+XSY-NJ_bLSUA7*_OHe+r#^msO7?tDJsY@qwUCLOTZ z1Sr{?&BlvNe>UR^=0D8(Ds0BwrfkOCebhGN%H-Z`#uZEK_UY%{M+Dq|nDtfIOxIVv zcE;T8i_H$KuR4kM@vxKm6rM|J{G(c5P4_dr^;HaWzV+2~-~AtKeHAW-tjDH#86WZb zYQRX{r~&oI`Zv;>BGcchSQoe-=lUv*#2lp?iMaqJwS(k8wFn(B(iSlQo!0)1^s>nG zXQWPWKhE`48i_edHxhI4cQevvF~FXU^pwc-XQU2rKhE`48i_edHxhHPuSPnszUm~n zoR&GVe;n(pn2_&4;wdMlRj}k{gm$1G>G~=XY)(tCasLzCuk}?VsOzhq%Tc}m3GUbW zDiWNNR>Il)nBal+Rp0(qej(HrmS@6#P2I`;tG5mXXMAw~)JL>`bzs{5Rl&0CU+uu# zoDaW$bv|O_T}c%V8sJ??Axf9!U5UKlO>SH*>2MEQwmpRH+Z*1=#Wr{DEfWg%Gi-P# z$B}O{2!$IQoYGZpDfXO}dizp4u`hM?1SGWUJ?y1_W5Djzu2k7NZln z-Ka@wE~&B;wJX70_R4Iz=9c57-u%fi@xhS?dG*A>Q zSO$uMMM{5BTD2(N-cKn?ep*qyouA3$nno>6i|y8w(wv-Dnij2s=41|~G|ftFOj4yZzCD^r1`CwjpUE;c zTbUX&%apzk^Ox^?uciF^FwvcLALhv(yXP?+Uy)%(U&a1?_hDumT=uXJ^A7Hk|4;72 z%+nn=z1Z`Qu_l7*$uid1Rzo*u*)|zsdUBn_ELl{LeTPElK+^;B%uJ_CAC(=9IJEG_ zAc>}t|4a5)qLJw4%56DAHy5_$nO|<59X)a0E!t070Yo5^@`TZ~1@yNo< za-0^P`T8)0*Y&n!A(MsIHMS&O3$IISEIgw*^7~)1b&-Xabu}$K^RNW1Er6gBPH2rHxCgdMktbXM@uev`?psy>&O`rHB2bDSCQA9 zxVjCppB*iGUrYOedTBqz(ayc@Rg{GizlYYgn%^Y1{Uv*sO>1cNGd_aPYDd<;>mI}g!7WSvguPgxGL+|gh2b{KM8 zq*0|>ZHHm122gC>mAj{=7iZ zM6K@4W6>yQMI&bqMa#BEbd%@9xwg|;s!ewu*@z`=`Ss+8^#V4hrH@!^C0QG>9#tgk zh_wp5{o8|=b;N2HHB2bD2XD+rum^90?!g=VQSQM*J?R3G&Md8Bqc)a994ZF%Suf6@ zSa&}+-7$q`#ND7NG*Y9xFDW!Ya-VkDF@?HR3f23Z!u(_kb2QZ7wmPOj5i7&&J*SXu zorh7xdRg|-S!)&pKhgg_x@)m_E`&~T92)#Z*h?4L+1GdEuD<`z-ur-Od0cm*!XmAR zX+F6RZIvyl)tDqWvQwPmlmvGJslG&ZQ5GlQkQUdt#$0@tI@Ct3(n2F$^d)-z@-^DM zsHM-vUF|Jt*)FZMUF6U%N<>O4HRZNS;5ur;b1SFR;mf6|lKRG^>nFOu-#Ihy%)Ec} z2V*b}dSJeJ=g&FkojK>snR(C5OyB(N>FGDZpY9NR=wAD+>FIaFzi!vm^fVnee+1fo z2&g}Z|LJ=xudF}aaN&B-z1W>qdkhEe1+sfZ*L!}L_QWOcSN@Dz5);^R4IQ_J%u%pk zIau$(N{<<8?0OF@2%CZp$^KkimR{nUPJF#7+IZy3tobUyw^*w3wf`%@5-zZ?UUC#U|#Q% z){4A0G;2lP8>ZKa+#B}qrr9pblUHQvNEVRfZF|kz&UqE-p~S?n7d4(ZOOHo~0hJdclausQimLUnIWnS9K zRhQMmadwxjv7D(KYyVHO7pwV7?y}9*)|{B;@3QT>3@cZ!S8d&f1v+T!#(ZrZF7LRp zJY2bQBYN@56>!M=i1pcj0q9<~wJZWB_lRGbj^;0IS<8Fx^K2*gD%R5OKj)|0wVz2p zk!ETCS)|0WHkK@zEJV`fS?D5gd2bSF-kWq?@|u_T-dv%|dv7j0CF%CP$NfZk?^8&5 z*;c^_T;7{Rn)fDMm%Je6y*HPylK1oY{G^|5-+RPQl=nW4l$ULZjKJl+Nu+si(sk*p zWeqPT>kEsae9VhySIf3pZCd-+SMX}thRd*8_D{N6_JPZ^TDH%0S@i%TY9{WNsC}6X{+ia0-cgVI%RGM)MqBFc%-pblaRGG`l z+J7uuSu5RKH+B*0WDt#E7!iMgb+*@HU+Vo>SNj>PtKIti^z=Bn7cw!xqoHlqc)jrzf=Dw41lHeG8DGg=%dals56&fc-}1Jo+6RcO(TUUFh`t@+oWYgviaHLXEm-$WtUJsC0P&@Dar@xf z(x>mh@A%qVez{40OHbc@E32-JzWE+her?o&WihGzW#}ZLi#$2RaKL82*~@;bW=qzMYnySv;pY$^+*Xcm0*ejm zzW?%|aK3*u%4pfRYR#>`y0ZO+#XGORSYRIgg>}A5=&wHQFSv>E8<+MMV}5_ZQH;G} zj|lYo3(jK9u}1`Y{RM|H=GY?wz5b%pm~Hk$08MF6#}t zj0NV=Wmvepgf8pSF2jQ6j-<;N^Si89o8O*X=ye%9;@C0vp3e9@VDcq4mT7AyRGJ&lsBs6KzTchcP| zC~RhK&k7P-;u1PHE+63`9|(EE$3>VvYEf{oZXfi|_Gllh{d=2TyJtzt5U6g)%RoJg zEl}O659jq@;lLbFw<-x+Dy*c3sAWt8DN$@4$T5#`g^1Kf5S(Hr?5CNapz|#SS!&K2 z3+u@Um30V9pSWF(h1cI9#sYJ4jD_S#%XSR%_b!WI94sEgo~QL7s`P0b>ew-U%YCpB zI*|PvG!fPi!*@=9J^Etw%(}S3$F-%Wm#m2T+oZu*@V+-i&$PuWr`G9NkuVf)lJ33b zUe8bfgtgHZU??nkUDV&|>b{wE7fz*VSgJI<|E-EzQLZ7CPjCE6y&zW-W^`rza=o1P zIEOPI|E^w6dz{;ukKi-B_T6B8)h74Aa)^iYrKle6dDH1{n4DWrKeuQq9wOx?<;_Xn zTbaky8{gBsEgHqdf!(kzdKcD388gQPF)AEB@6KBlb{-#1=dBWYF0J#pQmnmm-+Vf6 z1*&Q15qZ?la7I^5bRJR7;qXax9-+_e@X7qn)0fKcJi@;6owp+FJU*JvSx$J%#a3=Jzh9@#!VOXdc>xL-NQudmrR~<_eH&&=^07b zJxok~N&BqMuKAs(FO}bUtp8FvFRrWu1UV8+A~YDDzi17H%4PvC+XH;FK@w^ou;prv z-X;uLLZ~)KMPoTE)Q4Qlp$>WKzuHn^rASWegYaVH@D>%+!?kc-VQ30#G;xK9jODY*!JoEjm$>x>Ii)mziJ=kD!X<{G z^B~AT&{YPOQ8T*A7oB~fVd$I#kyz5{x&_M(L;N-p3lXxsfYVT?a6SP@(3vb_q0=vm zec3xS6~3j!?+y$7yD(D_i1V*Cax*qE>)XtH8<{|CiCJxAd39ZEP~T~}P(h-ZC5L(R zU0t^C^lJ=-)vOS)%>4R}A4m)l^X|KGw)+r?@cQmWEPQI;F&26?=ky)%yE9BveJ2RS zyV*8=rtetaX6E-Df!GpPtM8`J6e+pm$C^OySZ02GchZ5Fci)YmZahRHyuQ1T^c`dD zI~H(9tES|R_}$T}slF2gQr|XyrtetaX6E-Df!GpPtM4YWeRm9G1%1ad^Xt2#4#d3s zZV+|jArj&B-Pxq?7-QeDfS%!+BX`8FKI+U&^_?J)`nK^ieaHGXGr#W$#Fls|eHT|a zW{TAyk#L#8jNqbk1FK;Qm1_4TR>PO!R%@nhG!(Em@h}P`>kWtWA=hdcKwc~!>n#;l z!uJ3vowgcSZie-SJ^@2S#%f?xtOnkr94qJot6?8&WscMxXO~w_AuN63|KgX)>TCY0 zS*!-;nngS`MO7r3YZy`}rr_<{OBtqr9J;S9iI*nda4O37uCnX6Dt5N(U*C zop@9tcWDen?$lUtDsDcJtW!iJp_sgvO5}DW2rao)V<2*i#)6Y{^ND1gA|eUpG7-5+ z2?CKDGzKEqYYarLLk!oAAj~I{b&7~2l$SzeEax|iWRt;V0da%;)>?ri{)|2c@3{U z`{CE86-S%AwwZ3U>O-#LSc5z)(jjb-+tl<*vg~w&B~)=3|1a|yQ=X!s6#|BcjN)Ka z6vtio*ou2kOirG+?rqG=D2_qA9zM(RB|q_h>q6xkeDFnMGbcxJ_|uJ1xwI#5@qSn+ z&HJ=D0I(_hXE`WS<}tP_%a}2gaMs4NeBT^e<{-EsG^|=Q>u5$*UBV|BQ0Ty|Mk{0f z563$ zTC505^T;kv#>{3cMn#OmZeEP!`E_$&wws%X#{VeFGV|)@B@V)TySWinwVO!>zGx@i z%$VQJ%-3!tI=>sWo0+Qlgz4vNHwz}|X11E2uiea4EW04I{gmluqOh6y-Ap95#O3Q| z?$DfHH+N;bxdEgF-OMuc>gI(G!hE~A4pp_ANd`WIC*91L-_6X|ZX`Oto3xvms`-TJ z=W90$Ch2CjnxC)T%+y#egt7gU>1Lv^nfcvJB(}um>t=4?n_oBY%y#od013L8W#-k* z&pQb7?Pi{Errk_3@bNt9X2$$(X1;bK(fQq^-ON$`i{4s2I~%AWID>Syklul2LSYieXXB^qs(oX=G0KsNs zR4klMSx^e2A7W3ss_u(|PeJZ?*b&sy4+=yb^)u`qW=MIr9~6>j`Jg~dQH5dm zFhjp&@+=<|2tBGW>>g(5m$c8YoRO11fgm(h8QJ+F>zlm%sTe-O^7Un}6eGr9VbpM} zx!*AL0o`vi|ND7c*lT<=y>?7UNqq<+nAv;nsH-}UUK>O$?KPr~`Wbc)GxS?Hd6r%y zrl`WOdzhhLGI^F>BlM`kuzQ%HU(!CqLlZgqy+&w7y~g@iwAa>zy~an=YlnrDOX{^l zuIfB`Z2+~j*N8gmXV^W=&~M@7S$d6_q6)+AVTOLmT;bR#)`3L0aM}oWbkUr#8L6w| z#30Kn#yVg^?NMt*)FycWJjM~M4w!}0UZKgXfAr`>u659bytu-!rNT`>MxQ2f-Q8Vb!8lk1ePg50M1#yTMWrpi3W& z@w)*Fz%kAgOMUZUGVU5SnW^svf$Am4pE1ThV}ZCrJUQQbm<%5_lbPx> zK_K;Qqi6bz^=)Q;pAm>Hapn80F572qASmcFmYG+dwK@p%?Xxwg8V`{Kug_k@W+3xj z95MD83&a)T$>}pDW9`^vrus|}NPXMrnLcBEo0;Ed1Y%2E`97OMBcycWDi9R(8OzM8 z&sI7J^X;=0sESjM5qf=gA?Y*5*k>#dSBNL4&zKxn2#J}gJ`)5|-!^)t&sg7P=Jy$a z*b#J7$xwG#z5e>#z5dH#NrCey-aU-S6D;>`}vf+7C(#gAnMN3;E&4B$K~g7_bT_H^6u5C=clJ{ zf+*Y%HSk}spY?MW00ig5{p8g2^d9VK9sh^v=_hK_)4%t%>FMMDI6eIgkbDMfjc>qz z>Xo%$!riTBk@n^3=^OqI3iWSL_ssP4uY7TO`cKEFr~m9Pr>7_W8fVabetP;NW7E^` z`}^tX)z3~(|JLO6^fwVN-P}XE>g@j5!w}M!xmpmRqB;1Iyh?IA&xc1T~%BT(ZlHa^p^r5aOFX?St@VV))IyUkx?&Ji2@lN#i zcg49gC7=qefz;O5W)x6U09#*Y`!bxn^EIhdFgxlPP&s_;E#7w7q*AjTbz8#SvIpgZ z1b55wL#~-eA?AIJC?A$j4X^awve;{T(7xnbyv?*N$!6NYwVZ3o{#jnvFpvGSxqaT4 z?elQ^EDOxN&+~TACf!%m=eX`b_;X%;zEArcJ8t<^SNohXzt69Y9k=N7eJ{1oXV`f&^^#eD`%t;+X_|F5Z9j!33t1q$nU`he%mqbzd1qq;*~)tOc%Uyq@HYz6qU35agGFNrJ zT%bFCh4<#c1xtZYxqwu^I(9h6Lwu_%!v)7eF5si#f+p9M^W_5F8!TNpUoL2LSm(h7 zi&0CtfK&8DWCJeGdVanHM9R zaS+^>OA_i9JBt`$+*O?~Bb-9j%m(g#2_rB@M&Rq|wNyEbK+3P`25v9{-{Z;~s28`TJmkrDWMuiV|>UUwH%DV_qaqx$lGsz(ppe@ zw;XH>>gK@GVnXeWwp{JU@EJ9JuP@JxRBzB2 zs9vuzP`wVZ%fCfE9wOX%Q=PYGy%F3moRhO>U6;6Z&-$Y;nsQQj7N-k3H^AxQZk!$d z2;8%_K(l-Z=ZAj<{uSTCnc)}yX?ps(|95)&e}iwtW6!}~;@tG~uYVN+4jg}o7keHw z{aZ@v&1;Om#NG>?>MYUv#QjZA+~3$1?XjncN9_}>y&J#OTYjc(v^+=`3*0TopSHbw z&cnsx{{Py0{~wkrShI%A|MW*e*SHAR0nEP5v% z_wJckQ0l=geT>~us(cVJF~o6p`Ij)+Zz?_Y`KWv-8pFZU?T23Y=9=EWT+`cuobofc zAQZWya^t&6M_RctC%w_9i07Y|qV|Dkl5W?TAye~r~OsA^z;b+{}pBx8=G3ACCjGAagHod?j2cx!`^Ej!&(47BN;!W zy(c>%59=R%{PBmkHot%4x^>N4AAWq-Bac3~>yeK<+WdIOW7{5l=;68#wyt~NJv$zL zbnAN`*|FmT4?nbP`K|A2-uUR_9Xoe^+`NwCez;`r%6Bzs! z)Gff(5aHh>()stJKa`)p21iQFlt1t`&Hp`|KamH&Z;j^v0CqIy2}&d*;VDxj|J6vQ+jx2^mp`s(cc@l>2Li*`upAo^*4Gze^1@7zr#PLzY9OC zzZ*WJzlS#J??2qCzn@vIzrXVq{oVCu{r&%L(ccqq)Zgll>+gq~_4hSDroR^;3~Z;< zaQx%%pZy#C-3tNY^Dlt^`1{Tu)ZZoGTR!){PJbW7YAv5{$8sirzk^QZ@2Ak2{N0DG zOZBC z=qo;Vf`7X3djb5)=YK)H*8$-qi09wm;Xj|P{`@`jZ1v@^dG1?-2>!q}S|9NF7vn$c zTm8rA%?!*Rx<#I?{@aRYFT3uYsporB&tR9JeBA??(I_YBaZP);bLWGPZhhbvKf3E- zO}P8fT@OF@I7TpzVh?QMf9f5pnw#%jaR)Lq z`;HYW-m!9JbMrgzc*i@m{Fc|UC4Z6Q`i@5)efVu3A-KA~{nvl`E<|7f*@OKAUKhr# zYi6Xb?)CWJ>vy1}dcgyl*?faZGtYoo$NvHkzYjdH>)}o^llgn#feqzN8|;(&z4zxG zJl1V~a6#RAW-qMk;*b4%;DLu8-}Trdk5bO~mxgEIaIE6rFW(=&ge6yVS^uGr{L;<` z!6hA!{^}!Oq6gNs+C2U?Zr1v1444(auz>oYZs4H>lz09GARl<(;q4D>d+fnqdRQ~l z^sP7a3>tVl(QZaWr2=%&cCD%5GW;|$`u&QH$e;@9rhp%+u5Ntmg1Y5^g?idv_=Sp- z|18T|Y|r`r(NBEsht}Tr!8Xi&o+vMGePUy?oBT{f9cQAA<5Bym)~Gzz%KL{fBdP1X z|I?TYJ&j4vP;dEYGU-`>zD*`Q=W1U8EwF1R+TzZJ^P~&*_%YN!2IJSved@v*7<*ws zcbtJ0J>FJrKeet}ru+8gK-7hqVQrcDjw8owKsH6Y;`MjB~uFK4W2 zv~^iCp|6Yg9LAh$?ev!n;<$XSjrR81Us(IV{eSNJ-DB2>L-O}b;m)F)u&z|QAu3;p z+RvAIC~P(S$CTj$FOn*sEA?Ppt*d<&0bX>fyK@O=Pw83A#oF(C1uo_lfcfA}b1v38 zyb72xl`0rd1jXJ?%#wP@YHn6^vG(57^E+lNO~&+VlMyj124RBZ;{AWV&2JC#*V+vq zZ0o)NBgpJVa6C4SOS#6PjVGh_5ir$fd&{2zkBoCh{oB3w|5m~(3qI^I*V)=@!1QRb zai6&kpyC0?T&WtT(Tk&H;gq<1Y<2l$sd_7tz;8#vZ-d~sBjC5g06K!_L2K{OG}eiFpZqSusKU)(t-bv($j_7C#*bZ~IfDh74+Fhjpuwzt z<8m(0$ObZ5qp5Ne*bCo`%HvpyX~K1;$p6bbz8!swX{V6ZoJt!*+VZG;vbGd}xqM@) zn$pn4rT}hlyOUnUQF#Qb4y(%(rOJPTG{)sKR6Mwmj$7AoSdq~CP83x2BgwKWM|P9- z(Ao`huq#J)m-YNK29?@=7|-ZHU5UqPMtnC`vF^PIceDcT@5Dp=dEvXz?$C)`3i;#~ zU}6QVcQwcDlclGinIHN>+lj9(Xj?E2-acoeSP|O0X9W}z?MifIOZgmGPIijbsO2?H z6LbR^S3Q1t7Wik=@GFD`ijs@Xe5~hM%4Y>DccB@qOp7W^z*k*_#0n6g=eT|TX2cckTV!&20~1aqq61qCJP=JtL*3_8if@bwWk zrnnQ(P=niAqeXs$*1ifIQF}uXr*H!xIE6pt6zu&d;*muDF+Rw928FZ1`>r++F}j^ z;Ep!-a9`=uZ|{CixZ}Iv4lLHLyeaC~7vu_ed>7nda(f|HsEak$Pv5ckIdI3{pjJcF z(Suu%>O1zKdiNf=rmysI+UVxaJ{Uyx<=&{=+r6ik>}fOQ0qVKF+yk}Ry{E^|lm~2q zQMQQNdr#ErPdxjYMNsBFh%Or27JUvp-nT7+&viLzwAy#c4J9ZKq-OQT2-*qUz#njf z*#Mvn@rX2yr#h;gSPm-S3Avanmo1J1bifu&z{hWd_?`xcwXWF_Ip%PPDp-iXOG$#V zh|4otEa8%4jtJE!Owda|4H1Ba(`iYM@=BFaVV57xQ!J`8WJ^Y#QW@UCrV_p4%A{1w z@OCLf?b5#!(NMt*a~UxfI8Za=I7kZ=tD0f#g%|Kyk0s>hFDR8$R@2}}6iH`&q>s6D zfhe`CYLTLWc9AQ_0tHhgZK`9^O)b_)?Z4A@%j2y<&>aPXBQLV0U5U>V+G zRCo((gl4$MpdlB|KsVs94dg=)=-p$y7gjD9Q?E)R|5cVrR6w;=pNtleZ6TrvGM9nv zLP1e}wI5r?K~!YDGPa0uYpNU~>2hamuz{G#VyYZOq||f5nJStCQ{{lrPAkSxuiI(!DSPy*wZPe8k$5|vBf|Nx_n_&?~ zg+(^zsh?4~_sW?zLqwgch;Ad1s)&*@X+^YL%7`M;GQOoVybQTw>jf2A18()Oq3NNhsuieLuEz!sjO!1 zq}qSrp!hdMCQ=XH3mnQHa%dA^8k;_cLz!E|p^eDP<OA&8&`=x;LtQd35V`>1Sy9y0pp<~NI8_W84hJsIP^W1Lj!xNpSbc&D&ta4o6D6+ z8CF9Lq+Dz(d5O@x8d`{4T37-qlCXPtF%s2a;u73w#Xi&8G8bqOYWFZhzo31l<)s&8 zN!UG1G=4$*jI%6|VHGi}J4MVg&Kw(JBR~<`OU&|nq;`nx`0gSbtrML9cH|G)@gfQr zvm#`nVP-!Srn`Nb&>719W;aI z_(PtXK;dGZV{Q@8jUz9Y=e7cLz;jH%Nqz{i{glLI2kAK>GCU_`<0|n7Dlkn@!gE_3 zLCSMX!0CaGAmusIW_XTK;W>O8_UyP*NESP8Od=TQPD%vB+6W`!0&dj@%Q*GHf}Z*y zv7$a^dYjsIC>gcs%J^stn~uvU@NB8lRpE}2xcyv9``KGT#%A}5YN|2;`*9eyPqwsA z?EOw140SxZx=d!>4X&;>4-;^TAHyoEyz@k@m zsX4GCTP0^V?a0?*6)o3}T!S)TQT~uckFjNSGI6QJRuj<;&m7`TrAmOm!1Msa{xs>Q^v5NmwwA(YLBY88fCPv(%m>FlRKv)MSEY5t7RS`wD0=HTgO&3o^+B zb;3^cECGdjmi0qDOZrvM&eSJrYW`HwWN4K#F@MO!2S`dG6EnAniThYHU}BaQCT7Gi zv8JJA8Nv6w7S4_iGC#}2ED~Vzm{_s-OstT>V~pfs^O;yc7hINv*Ow_0sq&dvp2@^Q zt}-#BhKVJcOk7}%lHy!zbRRNwjjul`leR{Cr3_d4#5Xo&jrJf{tWkoBh8T7aGxTjo z`z+Qd;px?8-NTIg1?{s~qXextpLGv2?iaMr>f~#O6IOS_3CnoH313i#lbJd|t36_a|1^4*m6B<28xuWg)JE|jG}2^ zOGYePZf1U#Em^Vw1%gKHSc!{)Q4fW}U0!7#4h+BmTiu!b#3mCu&)Otutq zl`R=HY$@4f%h0A>hZ4FrDG`jQtrEfbxrPzh_+XV#8&aGSVnI&{kv366GZF9Ev^!wL zIGb`gxwN_rVPI1-S!~K?$$2ZZmsrHOtxR%YQ!bU92AGp_OuT;249w)SE$!!M>NcUI znVRtHmL^~dk7PX~Q9C@SJJHfU$+}BiT^(JS5KD4YSt%{G3gK#rm-f*+1Z!1D5e{1+ z1z7CF+FkCMs&8q z33N6$%BX=%SW%^sEGdf&j2Q!&S!x9nm@{=@ATvR;2+3uEaRsy($b21_1p#LQ_7WmY z^g02BdY$z{y-xb6*QJg34&R1H%t=>EKah#*Obgg!9jlNJg zMLAQId=pkB*9BEk)AYWu{9VYeeFGHN7Qv5i234@wiLqI^}rb`({>$fz8CM-s7d7SF5YIVtL<*QSYGLF!6qFmoqFV}r(ZyLELUx!u4GF8bAK~>k)!rvE=Ut2)o=RIpP z$o)bmyDIlgz)>(Fy9WSe2Dz_ubye<}5LX!L9X)!#&T6@@$I3ln3W^ zKM^y>Jbs_LE@-fTBG9DiD!-NL`=nUhe`#Fu-v zqsToYqm_dQl^GaYEjJ*Qs$a~?J>jI~o=AMT--2h~1Tcd-lXD0D%>t8NW{gK^ok9! z?^kFAOm7hJg`4dt!p+ENWgS9g2F6y)O*HCMo*L8%CoSAW;tO{pp5Zc%1G6OptGPiU zu#p!^1Qu}}BT~Q)h%DmBZ0M1ph!BKtd$88&>quz>9owphJf%o0hc*N@ce?I98x znPK;YRoTE{Rd!EM)ismw2HUIl7nB)hqyo5ecflPN8!K?1g6vPZ?!S#eJXmn1n7%Rb(5C-(W8&RC3A^qU7o|`EP?ejCZ$i$1A{p`$qBKzTvw6_AADJJ5(yxe;b_R`EQ4+!~u8;dcVPl-|5=d1^vV=>`-#eX}ci0A>W29ERb zPT4ra%cYDg9jrh!wUJ~QlCHY{HkB30#A1S{tVmk8yg>T(TktBxik$4P`)?bAo31h< zGP|9~sQU~PE|>pyXi{1KZH$ec|2D@)XINb`{@YN*>c4Fj@pb=geBzwKf`E>r+*6K~ zF+4*SnH+e(B<0fVxHHX;Ot`H6+bK19K`7)raEL_7Dr{O!o|iJBCbdkk!g>z5FRTAH zRUk`qkel{UjOZs4m~0~Dmru!(OeyRSjvbF)iQw&J%rq= z?!QevOEN<}OVUC;OZrvM9zzVm$%H^SnQ+~I8(*jnpdoyFfX`^KzI1~z0Uvl^l&YJy z)GV}gZc}j*8zMu>zGj+gq z|7~z=CtAwqSU!Veck;*Ivdsj`vAb;@!?E&w+5ERt%65kkB+8aFmQ1j0x!Kk+Y$?w# zqyIM7CV|o^p;mcHln`kXB{UQ9o=tn*e;W;U-G3X6aLxH|r*!s;Bt`6N7$+xbD9#-e*}?uT$WiSDXKKYMOCGU*nqci z1LCXNf4c#jqvv@3HjX#P8Hpcjz(M+B<}B`i##go8C%=IZ8z2$lEbgz#&y&yLXZEwW zCs~vCrBxZ@x!Wgkgm(HY?h&M=&*DC=M{OVT&f=D;IC7h%aWJ$gfaB85S=>jlh$3fk zj|2x3oh1#`38B|Ji<`;f%S~_PQqQE_AB@YJC1;@?_FU@u-+3@mchSK_r%)IN6Y&Q} z5%7+%q7#;n1jhonLkMu$Ti#jRV}Ka!TVaAdVR2ybReiacU{6>clyL;ddF$x`?StGj)AOJ0wkm&<)M&Ynn>65yi!;;RCFXkuN}uKx z=3}?~>Jt9oeEIh+#}Nj{fF-=byyKv$tC!TWfL>DDKCl)?vfu{Qv9-7SGH)**TU&bi z?psg$SCDrcFqM=0X@gq4uUcxoHLSHChx?bF>Nsf5-<<;A4jl#J7rrg$bRUdy>&8>% z17^E45=Z1nZ6@w_iN|qCpO)-%iN|oHbzDAZ5$mPnLc{XYlW-e9U~|lk2>%@71KY~cP1xj~^mFZJu^LnR1NiLZo~$*97X$2Gx7_QoEvm1LzVIGYd|lMv z=_F%G`77>E{+r z#Y3!b^7MjS=Dn49Oug|v&D(HsW4y6zTl6llZPMqpcaxdFTy$R1L39F`nLj)jhG*qj zettyMkv#>N$HXzWfTb&2keAEV2LL+YY9?ThFG4+}JLeSY3?j$d4v{^DnwX6jbDD^R z$@e=Vl*yTZd8i{o_*{+d~^rHx?qGys=-ehs_|$n=xJrP69DwLI_noVzn~9 z&`3J#BmKBb7l=|z1XelQMnz#uRhyElvnvE*OU$aaC3rlz$P~#abwXdPua`kr? z-VrR%AF_NKU#almb>Z;o1SarklBu!ZU_aO~N^MgI^LNfHAJ&gP~_S;IzG3>x(L<;09 zv{lGgM!zSc&st!vB?DrQ02g zzCB_0;R(;YeHpi&LGOiGk%Yw8CXj;Gj$jcR+R)7u!hY47mLWsTVq%eDc@|+ME!I83YmH2~~PZN{~&KgIM z3Jw$E3PVGX3Jz&Ag2Si?4iBOhxhgQYhln-T=3Yhc&gSN$vAJKwAgSiDv$^GU=3sVT zbafN6JES4k@_ruG#PTNYsGni?Fhk!?w$EaD6Oo?j-aX8?U(h~_B=E>-|^AQw!CD-87v_8hsG6CxuQQWmRMLYp_BqzOvo;xVTXqq!mJ?2BxoLF&&fYkI&bAc$etd7qN5v*!6^M?omu_b07 zBKWR4M9jnuwdE*Q<2UnMQE0;ZLKOHzQ5ZwvVo_jjktmEHFIN}MCS(nx?J_1ify_Y@@&!c`&eQ_6l~9xNLbV^oJ}Q{+Md$J_cFm$Q z87Al{gWkFP4M=o{8QF9B7rMIIq)gD0%J5YKah}Wn?#0A!rwnySjjB92Dwr}bS*8p; z2&vTb>u$=RIhZo=n4?n9K~5R|Vo?EGPoWIhnm=Ug!|aX1Bh8sx#MT3>8Jxt+(&9tT zh&dZq)1cZJ(M`lrZmz7Bcj61$MAg8-w3^Cg?>GX=AXJ`~NJRS;+XaBv=-k{S*UqHr)Au#6cF2xtz& z!2t)t4F{>ZMZ>{<)YVx935hD_fL(_J#>}jOSvspADmOpCtbz%eMMy3S3PC{2tb#4& zvY;ZE5X(vOR_AAi3<9>9`9lWb+Y+-68Eg+7GG<~GomIp|vx-Ty31o{ul&xOAMxksm zH{f>nfvM8Pnt^Pww8$1ChTAm_y~2ol`mWJOxY50Rkj#4vL)G+tyw1?M3Ou4m>{RRi3cC;Vm}F$uL9o0gK*|B z@#u7Q-NYlHA$Q`j3)OVV9}z71BgB$FLVucIpJn1fM7mD`Oa7^X_F0$wr63V>4>R;3 z+Gi~NAt!&h)i=tYc(DE)hFiYB47W3Jf=)cv7fn3QsOa#AqO%+Flt0cvMD-qo0||*{$MnQu1F0=n@OiXH(?q3*#LQS7>qVK5Nb^X?1uNb-h~qS#X%zc;vf-zabQFW2=0iFT~&1D3|N3MoPkU5;?IoFs3LXl06UWwR7uF>&!@I!+|@ z6U{{hQXNN|YDqn!-d(aVT4_KArv5l>y$&%l#;Ba3&opyHE3tS;4X74@Y>_7Ln@|`_ z(g?MH9MQT2kBU?ggh&-Vx2-T{z8`shxr~%Aqa4x72#&5rND{H`h1hC2=)Y9`ZR=u1B_x;eRtX0z99+Rb zB>oYtQ^4*oh>glI?u2g!k7d!fFlxYAW0*zrho1rPLu&ZBfWiiXezj&9GyD*cH-vcp z8ory+(0K>K4L_;6MZ?cI)YZ8V3BeX>a;z+kF=pmM%+d)DQMp+S=0Z%+EJAWw&@KX6 z=0cM}7W54h^fY`s#$<*l0=Aj?LloiL60;9cY!41mq7U~DQ@Ro-WU_g^2%MDw@@Ks; znqfB)C|uQwbmcp9ATEU=tV(tctCDeps*Wi|63Lyl51~-)epxdq)KCY|C4q)w0=z!h zXL?6Mv4-03>Z*of0-QCZ?inD*@+ZR86~?WGVv3MBE(Mq+8j9(W-1mURQB5@WC&*)q zfD&bK61nc~htbM0JgbTrM2rnFDu?`g8j1itq{JminQoDqM2nP3RoaS#Me-4N6}D>jLM}1$_!`m zyjr%jl&Zgy)lh_!)=)&^Yp4M!V{V2BeaD8Fmph~EW&gVwB_GX<@}PhV-N&kgGlv=F z0aw?}C<7XDXO#O_b}sr zLHmr=8RXvCs~*c#C0_*Ul63 z%HC4dypQsbR!2#xNqFIT%K54ums| zQgw?AqgK?7he(9Z%Xg7a#V}%w^K$0t{RQE?oLF_kPUy}j5T%y2S~5lttJ=(bqlZ9j ziP?=FzN=^SP+k(9LwTugoBcTm-_ znaI{Y~M8e=P)6zFx2}ka1S0J;AT98 zR_8E9NL)eSk|pBLba-R=iI^8AkGL5RaS{Jzh~Q>CgevMyNvshuRSAntn$bBVz(Z<4 z;o>`_TcinmMaoAlkV2{mLZnKFMVi$)Bo;U02}st&gcD&_=kNt^GoF+qG<#(QbWXEY zz^oJzU+1tLMdvVroAD4TGcbmm@er1(_k%(i8r`&vaMC)5NPL}Bhv%598!z$`Bz?Xv zN(A$d=Ou#K#uOt`Ab)IU4KsdcRyPR5hs_c}oDmww!&bg|tX@#HI#(JO_Go*!GfZH~>GfQsUDBWE5y?5Wn z&G_o&K2l#mXGhiZ2!mB7Cd(?*Im!7EJ33+pD>(}>p_QET{CwSnFV(s0n`co5>zn++ z`eyl<5yDSyLBAwS-;ON-?Z0QCT5axlK> z#Mc|UzskpGBQDp_lm?q}SX1odAzPp++Bgtz94S4u@rZ7di^jQGY8-@cSr5Uzv0&Dj$ZHK+++bG!~T)Y0`jAIvJG*;_|?W$)GzWktM)q+?B2YCqFb=VOqZhD52~l7?RT_VU)*q_*4X{5^mY3_ zo6=xYdNsv9_SgbVQF~Y1K3?CxFKXY{y=Ncmmp+c^O5JE#9(es=xfffhDBpHmVtX?UvvX0uq{&iad!1N$T?Ea z$2@nV9gB!}H(;mMO;P^{nu4D&@WW3SohWR3`w>veId4v#V9Et0i9g*vKhsf@NAZC4AmzUlJam*2+EWm`g!q5-_8nEn2ddxQoMuiui zM~*OwnJH9>(3k)I9i#x~=9zS>1^T!9=|&gyZ}k&Te7z~^-@Qi)KeAw7m^7!{^@)H01+lC}=XdM~&{a7kLLL|_H3VMIc9 zSCu7IsP*m(k!vZ9qdQ3{rMr@%zDB_m7OkCmBh3Td0`qf=d{f~Nh}X@RfvLb`F%=FX zQtCP2Oa;w>sc=AY{)L~aRu}Dt-H$S03I32JR`IQj&rMd3Ft>;$Rv^!33C@DVEbIel z!xB0(V#1v7yU183vS&#U8Q(M^Dy|a0e%3@4-V&cCC~?!==Lk}tLMFr&hPqiwdPKKH z8TPn~FURkkx7oRa+7*>%WKhdPCW$Z5F1I1UOHZ`RazEW_mt}sUXcvMOlcS%2u;@kl zM7uDiR)_4^5tBkTFIlSsxB3x@W)QN?00Z+;Gl;-ufT0DSgra|l)aW0=GWy3OGg^Qt zEpp5&X4<~?XVgVek&W7emjL7Ohm6+*NX3lD+#<$nL|!iAbpdq1cuc@DAVPe6L9HDB z;5i{Oj3;H|D)9#|pC%|_yxooeT71h>Lo@E<1s3Xx7;!wvzfQMj1tm|MhjQ^?C@x?KPrFdY-(3PY?MkhrW<`kW9MrjxS%Wfex-r3p%yZl@zi znT`o_ysV(Sl;0 z-Ynr;Py~;g;-#Lmp!ghD2val|s~Qc)@ zxR{xkTf|J`$jfD>tpFV`6BFVJL)}P{!%TBRWSB|H`u8>%W=a#3Fw+)CkTMe!>~_|( zY%SGbj2aEbsA#ZX3oNTsNEXX#Od=SVPD%s=(Fh|FicVljqZ3%x=meIAP9UY!2{XM( zZ3k3|5LSES^Pd0B)X4IcBjGyS67>c32>TYSY;LNRCsQY zZ`rL!YE)f^FtF^HES6oH4(b%5HTBFkv!xo8Ju-Y2$AIaE$RM;Ju}#{v&)vr6W*`hy8S`7!Uc0q8JHUjXwf{ zS&Cj%#mJa3{+Okv9HClM4#poJHG`0C24swnnn46M12QN0Box(2$VPP%mQkG^nN*!K zHMJUl-zqZxRw-}thrD?}$da?Ha&AXqZon;WnNqhp1iZ=8!kdg3ZqYO}BO{hK4>CW? zn=BGw^LVq5)!TjERLI~>M)I)vyeXjlizN(i3RuINq{`<_dFCRhkgM92QKMZYn-de? zJ`{M~+E;ZSD!>l3>4|;V>!(}$u*Xk4QG)*~=ZfsZmCBd= zAzyX^aIwy0ZonxXU+!ehfG=5E_>vLBDVl}`V8rs}ZsuqCl0^b+9$zXppDz_M*oKij zY(8HKX#e^M!DYyISR#R^E z6Lk>|DOiL|% z)PplMpPGB?60h$JWW5n{?X69%4 zjYR@%9=|CzpWhTR*nyEeY(BpUX#ZXa!*2rC@EfV}`Awe5Z$hr}8>5EbB%AyeTAAxm zLf7vk!u30eV8mO)h=ih9SkkWFNtEmIQkv^`NTFt#iEz)#{O;>~D{na&vbqdmVC6Ac zth{E)S-@2~eJ#y_mA6!K{sIPG?N{VfoI-caCX_T21zoFW0%pnxv8Km2Eq2#j;_B-9 z924v|YVq3_2=H70oWyehapA5N1TIOo)^h7l)5>l!aB?$Ci5f5-+`S0$VYIOhbR z@tqgv`qkn`ZzcRZ8c|4`LQ5l|xCJt#9OPMs=Lop{#RPQ=LB&KKH9Hwo~N5|3O!s)SgiS*azlQI#RKqY6%jS*hgOYI7z`BK{`RKhK2u|#0w zHb?|E?LvvbhOJ{nLK)>)(u{H}Yd?P?icya6l2ML*oyf~7Jk(3~+x}o{)r-3`c3dMK ziw|&pg>=IO0HLvA$q!*wHf~szT@zGgFUGRHK=@)E!TlBGg&C;;e!pFiBJum(w(V`D zn|oO3d(i*)Z!wLZum5ko`}A`G!};FxSQMByka(($u zX&>{4ef&M>>-%Zj$7mn;`gT7n{aR~;*KU%+eyue`?P*`%m(9O-AG>u%zur69t;etX z^;*+u-hRDbvi)vt;+<&G_$DXUpUeBE{T1T4PIXbN#KdC2m`++26pnLe72zwTc45zy4t{`kj}8D`~Tu(jt9x@dNP z-CuV@J1fZ0egKhD&!6&3z`3F?=lf9xLpy)S2djh+^vn4ppo_fY{Qj96e8cg+7_C5_ zeqdRGdS<4=4=jBE9XK5^;ac_AEm_;$tbfzVmD3!obF%>gt#KO?{B&az^m82c(pf#~ zU&h+p5OhVob4jA;71Cs;)1<_ZH>*qTmuRK87V%b(@)m!{Tl8KtodW*=J;AbN-xjUFN%L)5H}we?`C+VLV=XS?zXf595I-h-Q61#ZL%a>*GJ4adO|tI!9A1*YqC_(^cUeVr?&(sEB9++3nt`Jj zOUpVgBgS=0)6jN|=-j|~pk^J#SR}yaIf^MZ-%(5|*%)jHDJ@8&&hBW|DChsf1%k0oBw=p@f*bP@%P&NrLYCswStw?qBqt~{(% z*5eOZuM-f9S&z8^Gk7!3ovazK9!m@BF=CiO)4+O+Sk~Lk{4DFSNPx{_J;mm;oWa%Ok)Q7aw4LON^}`-$#%-!s0hf96(K?BU5T)z{VgLhvHKSwolAv2m$*twDJ)OjiZ_ zJQAEniV0QBnOG>tO)Tr zJbq8Ovp$^_;*-L{;R)#DNb_B12BnN~XLa9o#Q_!OH?!q?FQpb=cdLiP@*=g>Lo7wJ z{0Jgf!+Di>WsoI#W{@RO7-abdi7(GtJR|}gLF1CTU<75k-?dmn-!D7y40bo2WF@i5$hr>?iD35P;c7djZlPel3D)xruH@I9QmqqY8+uFx za}^@$PW$R{O8qxk!CZ#dObg};wt**@jcf`WS2?>=>SEU9XMzR+A=@DrB8t(AK$6kx zE<7Yc!j=x*NpF)Bl5wRxQO{6FWTzsn4r7XEcVRM62}ceBql>`DE$o za#QK)4&?vk9p8?=#k3KmHK)>!BW*c+J8Me;81Y6^)s)6@tfoL*K6a<*((+NW$Wl2h zGi-ZdD&0h*>V(kyP5?7gb0*6M)iaW_%uU)g2fnD|lJf>w3bjp(3YHI3eu_t|*U}bX z3cOX?j|5A3ZsD*zperKkry@J#=%+FUBpuYID-Y`OO#7htCHSJu*0fCzyx!^Ca{vf2JGTMUn8GJbe(Oh;Gz!@O1Wmixf?yb9(w$oB()>)jc{M|%q?J{G2LA#Lwk8{Z^- zb<4dT>wi7^;@ap7?iIT#jKn{1+SjR{XxB5uHIXsXWHV0Q^20k+^nR$ zzvVP4Mb7}$il|@QQa7Hg@86BOxV01^ZY@Pf!MD37?K8GG*UKrs_&gy68Ttk7v))>Y zyr@E&aBFF*pncXuakZWAhIFX--n0DlBo4qs9rK(yhhE=QZZu7uLmvKJmj%c?Q4{ui{OFW&$3;3 zaSSQ^q5QP*eF`1InOh`3Ymk>KKf3`skRK-4<4V_|R*w8+5P9;GAhPnq1oOg4URr)S z9T6%&Ou(5t2yrhCiBS1r)W{E`B0tFn5xKVGE+j+CTAyiL+p$tocqu6(6&A=>m#ZX4 zRANS55{OZR8FfjxCNHBd`}xXpD0HeBYCnMtd8^w0xQzp;9t!;ja$%pf*>~~%t2+?} zhsrQnZ1x?J^C@SuYYuGo?UHkWHv79VJIUp(ttbQD;tzRiIS8`fXS2GQxkbFyj69#W z9lWE{#MliJ2I&_D9t4e^oSTXhTCm z3i(4RYyi??DP(Su6xJaxR|;DJI*>vp;6gEkSRq2K94VX=A|r)T7GGI~HqU)9O;93* zYaBr;g-pOHU5+4?LegfWkWrDsB~}UxW*9@nnm5T@Hb7vbQ)f>Nim~p?L zeU{k<3Bo~42)l#@r$Sn?zo&fUN-NK){#~R~YKi);R(;CqzcTq%77Bg*H#X(gY;} zcAFze1&j%}wb~J+0(Joqjes#K0(PSnFn^dcV^gw#HB8jGgIhCjqz1RMq}!j4u#6ep z2xs=eZNfotgIieD6SH7Ca>iA4gIid&XmA@xRcxcPre#!Q3Lb8bMyJTrC0UK(3fz&n!HJS~+qxCqzcBq-bg5-qYkN2l_wbm(IQeOFd(5nxr|H zCh<6)QqSAzk9fFfnlyzn;B)?v&kv)eET3nc@|j!2=L4)6ct*3dd~aaH_$q4}_=yqg z8GVHLSLJ4F;z?#!rNtFt&y0OYL=Y2x1 ziUOlX6eOFcw-(H#`cO1?CM7uYKA4)} z@2a}NCahXC*zo0bCdD_vfsG(r2OGxBOo~}LCnAwy9Zf@5F=7REAM>+<$|3v?B#c7C!By3fgBZ!XhW%2++33pKR&N7JS+fh?18z0@xrl0%l?FzgWCbISO%FJNQEbZTUav~ELmD)kP#ylnuaE4#LD0f=4WM)MFMP|3@SE% zuvEwp5k~T``7$V=;Z`OXya}3sH8M!5d>NEy%Ak;|GRUZrLCK~J&TT#>nDU0mG4w=g zh}=vv{UMTN?B^lm%|1kKauD1QNfKODPZERq*albC4Uu8hq9JlUs^aqyLY3^hlL2dh$%s6LMAb7&W3N*%ZBS%61n@ z=$9pl@XL}!_+^O^In6y^TdzXCnR;cWYy@KRGE+9fHF;TW%{QdBo~Z@ADcjHfpg(0g zPT8p*Ll{h%m@HGKqmuJFsChG`)f`Nj1|{b+Fv4oTCcDB44>Lc4l4km@#~m{PUMmRA zZ2`sC6&!YT^~(_xU>!=`Wq5O}xg%U%VcZ^^$`oPKW+}id@#AJX?pg2?&7uBM9S4qT zNjg8+qm>u2D#A2#a4NBQNDZhKfozc`@S9LrDc1txxVi+1 zic}GVNEN+BYQ7VC#~3e0ZQSOFutmtlCj=r<$@j|f1#k(Zlp{3UQ-~1o@I6H<;KWiy zRJe3P$99y%%o)Mit_VpYRuU0gEvM&~s^{#2AyNCeOW^f}MH$r*7L%|4j-a&AK zTUfPda69L!y1^~1S~R##qN>jS_y*X9PfnM`M#jwik6AjCBav<b&IET}0a zXcm#UEGRC)Du>kD@hLL^60pt89{>s8mdGCfiN==59{{D15|@06YT|87nW-1)wcW)}Eq{JminQoDqM2nPgUr^>KJ$i;nuh-cLuUm&V7Y>`*MqLh?_x*O37SaLuJ9MPpRKRr^q4Z<$bd3W%s*TG#||@`k+ATfCJ@y zZ=#m|I_hWGJak2!GI&tcF|SDMS>)G# zg2B7wD9b`k)&oWhG#L}(3PZF1t=Mqua&=XcF#%`)N!=bG$MOQg)pE&$)nrT&61$`T zi-}TUI_{qH6S2CIJhliZQ7XHT=x(AIt!&4$s*){;u^~p~iUXz@O-3vpQsNS%Ot(l) zqD9Kb7NIanv5?H$(FSic?EM<0}Z#GS|O@z zMa0)+Y)8>#jEu?_Mv@pyY;}dHrRvjJO-49rO-3ZXCR>kZ-*8hw@XR$9$TinG!2~ID zZJi?I?g%y4SjL!ZgfqLj*5)8Mb1kgu>9fGnYjstfxfWI}GS}9iYCJ^hbuD5S`CH62 z#<&*2Jl&2Ku0@buINwN3e=UM3dfdLXlrp9mtJ=(bQ;a}tiF{LxgxeDNrkFH9Vv14t z5(P%ls~35+0z&q!7d|xHSlJ>eTM;T-8U;oH4Xcvd!>W{(df{bL)$yzd>OSPxRx$V} zzU9rZJ8~!bAW&dTz-{R4qzVDdV2bTiz9QwL z77zut43COb5rjyU5Q{Xcz(_1E$`g>Ri8(dGtODZ;;G#S!M`(6iA{1D&R=~s?5nq9^ z9YujLf{XGHDl;&Ki}Dbbs*i#~S)On+Pr^wnFe334SRJ0lSNKJKS*9D}MTual^t?nc zF`8ne!UFl018W!yAY(ZYh{?;W=n$^S%UTX3EU_HOG>PD`_i*3`^9?t#*>MS-q%edR zf~2qkv^kC7v5&*5?4__OdjWT zaRW+SdwUg~o}OVxB0qH2{sG-Z{Tr`of(4B4I(Ijep1${{sJ{!13`>JQ@|l_KP{`_S zY~XygU0H)XG5O7Az=YLz19YIdnQ$%bNc=yok$iP_BqmC%c=KT^+Fs50-@G+ho2ncL z4h-3aR-b+I;d%hR5(md%H+&K-oFt|gD+D3MwA3En`xTPm92wW+}HhXT_u zqrfn?NMP!U1g14DFif~s_X(b~0#jgB2V3oY!+I57+WY9n$IHJ@khXO|L9TiIJQ(6t zwb{>&Ok~1Y_w~Jz0`c7x}j{+alNgZpN#p?C-N|Q{Vn(8DoDFjx(Z*Tx}*C1ZRJTRg3KJGbHqy+nnc( z3G$k=Zo#7mVC{bv+2T!TaEJhZC<0?_lR^<-ZjlI#ATL)0mH>1h0!+A8x8VJ8V3!}4 z*23!lF^ORH|ENT;`aj6XW#5A5v>%&$*4=iipd!^q|Hn6ojega3+bs(YC8+}k%)Z<1 zaW^ku1(_E-k8fzDo+{@Be_S*#m_iw_G=Ip_howt&UT}T4osrS`?Y1kJI`pAs`AyAe zaJRL4fK8sa1alsJk{SXIqHHh(u#6c32xs;o;DCeRhJdhY(Gakogm&N%!6B0IYT7dA z4HME7vu=!&sY7Sc)L~L(ia(U8Ubb7|&H&~X4HI3g8SD&TX_;*^Vtn;A4IRRW-5Ict z`PrQTED~Vzb_OUme`kO~hT}dXdD!$5@{fV7XWqqx*KgrPETl@uJ(VeWp2NntS!WkQ z`_)Xp-ZQIK}X+5G6Z;|V6oY2$tt;Cc545qULi=W-?w-#ziaK81%w z^Nisk+6T94-$zy7g6?$Yloap%^xxBbeqa@f+&%Gr&lMAwjE!<|w)B!#_sr8Zgp z|LnaFeBEVrKYr7e5}SW1IM>5`bHw4*dJO`xce zbT@%~dK(Q}yHy8Ue%iUHb;Pew;#TB_RT8m32vV_X-2!%)>$(}BgW!;U-|zFB=W{>z zbN?j8zuVW(E4k-$o^zh_{Qvto=XrV%R%-3 z+`N5F0Qhgl$SOUaGY;-}PU9)Jjr}&*Q|-j6MOHb!AFn;t4OP{(S8i}zj<@x+R$}1)zzW3jhkCHY^rbF(6lMExvgbgeM4g)%R|kk&27!iO)ahPrA(o9 zO)a<8w`THgK4IzNqkwpPgt1Q)b*R2*CVn%Y73y-bfm!rAjB|Wi0q34JD~mpc4J1B~ zh691K12eMdeHRs`*VP&NmoLffzvM3s{l7}{&>u7OyDrF0?>%bhAHjutx#Cyy4in|d zJmK>$JU&GqT^T6aQc_eh=j7sEcv%QHUI^IxS=1ps%wKsb-&%6_jH})<`Rfp2+9 z;ZF_xP_KdCNf@~F9s~cm!@zjEflEGW;Q6fvp8633pS{h%?duKvbfbYk{IG#rK4jp> zK44(m4F-NIX5hT{8MrEH;2&IN;N2AlrmisXPfjz2K)gQpw#IL=0+`{EJKr?5g{NFjju zs|0*21lWH18O3eC`-tMUpM4v6$zN9o0-nFaKXKcSe#+vHks1j69RH--ev%`h@N2)w z?i*F!eejJz@H!-x4@n+!pxKA7@!@Ct@Ib9QUan}`u&LF9bHLqf@Ww68^_$k#e)!JT zMjwMgud3hJ(6+I@wb31^uWsAaU}!fqwnkc7np$dCMk=d~(>0q~8(TIvHngt9f2A4P zJ!Dr%?aKFFxpe7LUy!wx#yQI!&X-(ziJzOUm*jH2I0t8CE=QKZx#jP?s4SFz$}hR- zUFDZ9yX?|sq0l8|&9 zKzk@cotN@M8;}Yd2=OHl_*AeoX zZfmY@XsvDAbjJqNvD)e?mx!0L3l-D6Sb=mi&qm)B2te6~Plm|a+Q#*@>ssn>YcxcE z{K_;wtF63pBhPS4U!z@%aajm}E)kiEUJnlgn~(pJi-k9k1RMj7J}R&R|9sHD$v=4+ zN5=O=AKu%1Lo|MLeO32Jr28@4*gSvR8sBZr-8Dbxj(k5FZyyg-b+7qe_nJe&t}_r& zwC9Qz6z4!-oS{0AW2wgw1^svg8@6ak{I%j>kFws9$@*7dg*6*3-j-KZ1h-!a5%{2O z@T%Z;HU_09uCJi;%U^`WeACmHVG^uv8v!hKl7-D|?#TOi!~ z5oGE|NOWd;1IH2WK(Omkn?;r!-x3N0yV#dZkpmA%Odimf{DXV@bM?z2 z^UEr8kCC~jfJ}-0NpCt0Uy|^?q~U$hg!jb);k|$AeEEXN{DR8tH!}P4%S=R$MdSO| ze`w7=uakS-**}E*{lkRQcGRgEcVb7Xx@&&a9eEzDYW_b`&2{k;PR(KHF0wJ;O85Kk zz)ZgT{@d{j8%O@`+=$z;~` zSk2ZfMSRjwFpT?)5OYZ5s_f{Ks2=%*Hl!{M2Z}tHHgO zU*xnOh$cMLF@!gC{3Mq;0ux>Mt%2Wn$A5fQwBft(HP>n1pJ+cEe4zaRZev7bok{d7 za+&O_uOjOsKdLIiUEBxoNdc!+jp*5+LU~>&BZjiyODPe`enYXBu!^7gLP;hf2ZqLH z4vn3P8@5L(@me`Fb`oyX2D+apUe{GRL+B+(*Ht;ENUo*!FcX=*XkpXJzd_fsE6Q{a z1|Pm?>kE=+Zy?WbJM+bJowf&~2@h5B><#3ZQU_2@@QaS+;qv$k$g?NmtJrDV6WrVO zqnT|F!vEIx2U#$|yE(5Iju>Qbgk@{{9xqi89K>q! zCJ`GLO3fU4?xa&j60tpaJ!NE_^B4+$aGi68$rATSlj&wjpSMbBZRyKdm+s4;`s>mz ztxNEmQI~ck+V7KEQyF|<66esl6^d`KzA87p?;^wVU~p@O-1WYL&Lx@7xb6Kux1#LI ztSCD&D@tFwqQp@UCsa|oSUtMB<#JXg9D}P=3b@xZCDD00s73DY6AE8vx zA8D!lmiI?<^UjZ+A>}jE8{cR6=111Wt?bIaJmr;yp z_v&Jc5pCVLm}1V!i|QYIX)ms?#8P+;D6YTiz(*=L@UdP8*U(Jg3r{wq&V@pG}Jh9^zP25!+b=pTWwl~nk=<@!#+~b&mJ&uzRt?v70;};jd@K^2& z4|bkqGa=DMXR*7O#24CNXND<70@JF%yd=E3x#4Ue;*kxgX&v6{9%o<(kFM zc#jEhLz9+(T??@cU$hSsUl(NhdN9#;0B3{4Walt~GiQVI?bTPf68?eglPs%Z zkn=6m;ht$|*Le@P2o4|Tig4*RD;My(0!Ps zY;C{KOBEy$K^m9~*PyIS4Z9Xag(Z+8=3HqoT)X(07fzW-w4qOBJ-pT&D$TbGNT4gu ztX$^|cU?zT39BJs7g?dsRGH8N;h>zzhh>sHU{ zw&wMfudQ_^+O|up!v4~P)3u+~Mh@fW8xG@-Y)?eGrEz&Spy1q%eIGiPWIA^yBHL|y z$ZAO4mXf<6bz1V&4XHQXkiKa)S(=qO<~4ZYKvnx7HyY?&q%m#9)#hN0Ka*o_+Yu*kq@(j3a|W zxxm)iM37p;)?q-;n&uBe{+!_EHP(`kw7d* zfkuN1j#xrgX*zYs^v0faRfxiOp5f;q(!}b;HvsKo)}{v_qIwt{Ptf#_K|K^>ZeT*u z=NpCOR8Idulo5kmL($I5AzMbHoebKM->r}E-3%@KLOWCC@mq~v@^ZtYuXDL(T5lX&v3S#l~9H=zVU7u zGMK|8vj;VElxi0xWe;uQjO!agv`sFn#WMPqn7hSNw&f_?VkOmfpXD2k-y4(p`Aqv(cQ zRTF-r-nyTwIDV$iUf&%8?=QH%+xFhMOJ-qhcMIaweg8WCb~WNR*!2#4fRXG?kGbqH zot~RX?)0qP=qzI{M}=VLyKQ^J;kZJ3}b0gDRyX9<;>;^L1qi^X( z26yS^j+CDH{*)^>*HfN0$WO+y+;gvl!g9~`#2XG|ZB&}M+8c0Jd+Z}kYvr3~G>-hw zSnXl0IA9a07etu^yNki3I|l##368;${yYP4TYs+6cPX4D$(CUvjCSuL# zdh*nUj3px$U0jad=w5i3j%r9(jHR9{5o&h*4_GlK+OQcXOG$GF5$F7+x|Hm<9o@HV zuQ1I~I5NfhF=u<{_~2{rnaf8qxXVYk73OR2xmJ&^Cr=4ybP}Ce?Y(#E_TG`X;^cs8 z8a>~Bdsdui%pHXrbFbT&zmLJ`gofuWNa}BH4Vrjpz0{4|^;lM=wkjiGQ;pdinMIeQ zgUm*sW9!jwyl0KqQKxMTx@1o55H@7L+Z}l}iv3CY8jkECuqvrv>R$6jS0(jd(V9Fe zss9XA+f|lIDz&0Lth>M(Z$IQJjUMtTjY7>!l}2|PrP1A1ITVx#)DE(gL*X`UrO`eI zdthFr(LPZc-4*PNBB?svfE$!XcLX~d==LD!hBq zO~drX&_^O#0aaUlBbXVDavwc5V%(~n820JOS7oTxLfwz=W(X7eCCTN`#p|JU73gEp zhFCH&Z^WtD=VGfyW;r#3iJE=OQT4Yk6i@q>Lyz}U^W}YTIachVcZ^-%<c-g0?el(?l_~pt)fI4 z^3Vs03)3q&)5r4wnr1Hf6Rc!-UdczFXXxL7oLv4#&oT5bU<#j$-f@AUUy?_@iqC5& zI53JL!^8ZM$J*6J;*e2HiA&{y{Y+jfN#qW4IlGOo*eS_k?@@1 zWB$pLgYO6khmIIN=3@q5G@Xt)DE;1-3?K6|AK%5`oBuPz$9&Dj_r)c~PU|y($dUyO zfM8v410cHP1#bg{m<2y772gYH0iFW8te>O2KtKI^fW*J8cq1UHTKMbdiyhe&KRnOC z;d2fA3hDvr%R>gg87G;Z3cIr#&ouB8Ff$vrx5-c5`)+9HGudF{}&>SzwoX2LAt^(;|EU|=6#ZmKLrHo^s5zr zkK$v1V4a;**r%{VVV%MXg&~Ci;_q=l+I`t}`heoLUEZa*ZHF|=CBJQVH(Fd90^>=# zZC7~BX-8(;71Ki=`@p;=13$-ydu*rtc4LC)GaSod4d%BF6Z0<-Li;a&Ky<6j<(O$G zX8h-{6mtbm7_0>IW(xpKit3 zy!nqhEYEc9y^0qae#)cY{zZYn+v#+I_Fh)bpb-~Xr14UeZ6)KG%HAuf@k*+%F~~!^ z3{)&OHdT1d5IL2-R|onRJ}?KCrw{!O<=F?_#(Mis$lzrt^VxefBYf}%LKg%A2LSoL z0{?uNfBa{}X5*iejT3!1--bEI3aB)AEI6FV7-ma{F`u5mluQk_zIU!?cKmwkO9%=x zBYXtiVr+;oryPZk(X@~6X8O33K6=`YMtf?;qdl=B)jhQDf`oXoBI*o}GwwWzvuh4s zh9j>NPgUV(keSF0M$Dk_HTEdf7qGlKQUz6pD(EXkF~!4DHsXxHlx29992JAlF) zLE-I((6L1O!T3*$svDlVGI99`^kRH&AIFrL<};D8>W0`s!^8QwqC%#e@vKT9+1G+l z2Z|D$!q;F%-ga>LoR_*I4+pz23?pjr32l~!nuE)$o}N_^+)0DIhqpx@URV^|I|6Gt z_<{-vXWgTT*a6g;5!9Les56JE5^IuCr>5U|!mT-+c}Ej#`j0<@G|PnhVCoI|0)bQ( zOS)To4h)VQMkvc8M}wbQZIS^_>IT7R3hmw)N;T9RQ+ug+dr2Uumjxaz zjU1C>d72?f&swCL`3i0{8qq3J8w$uh>Xj?a9Z^Q-kt|{-;tlOsDVmuaah(p0Zston zE{BIRLPH^s!WI%$VN5bJYHY4jXP_2oLc4I%L++g6EPM+TZOfF}^@t%GK)OB;`g3;x z@n0T8-G8fO!60)mGMGBWVyICNCq)<8m%1fGAd4$4P%AP79$g+gR#2eS6fMy~l<0t4 zqR<|bGK=gpwaLU|pTugP7TrEAx_wziH^8EUz#0hDq8l(p7sSK>qZHe#x9E;xR!AJFvLo(e{*Wd?2tTg&6jqDa_ zMgnxt`{CkB6aTI>k?l&;9^sQEU@A{KL#46p*!C)obc(U z_G|#}-E%IAx8H|G77{UV{j85qvd@bdml52i}@umV9mWUJ{Zvqe+?D}JHvbklAH?L#pMEfMj7;owjYG(VC z@n-1xA`S{1bM)0W5=cGfNI-qrjCxClggA5D;flGC{G)#P-tlKf-tmXJwHm7F=;)9z zI=ToIfg;1kw3UuYD>cP*WF75oYev^OrxHZtk0Fqn(bSVHlY20q*V@>{qh506XvlO(h%*Nb95v+0Nq3yeFTabUgJ--F&irH6 zcsh79X3-%b%FFr2EUcmsfM#hDS?U?JhF(AoG9%YFn78l1ehcz8-^g_&9l9w{IwZQ} zH$8GuVL5x`qBgN+oQXLd5~6OL5G81iTsV;`cX=KHGs=^I<>`)GH)Z5EXJRtYSFoo^On)RZW$lh+ZdsrBXqHi^15&8&c;*)BKuQX=8Ve*WK_0*o&3~Vzk}9MEeo+u65%B+uZ&dEX1t@Q z9Sld)9?f7#heQ{D@nHtWjLY$PX8Q-E-tLm_7(>Sn8NPOjb}Zjz+}TkY*(L9t>2YsZ z)J;*5FcxyYjTgLe(o470O8h{Y6-)1>ksTt|i0VcJ;Nlf)MDPn@TC91qV(svVtxq!q ziut1>zoil(Yr1WQ$}}INXbyEKH8XShl>xJZ1E#3MddJLO88dr_Blj^{FiKw@=?(V$ zt-Nb1H-n}s(q@jE9Y`0(&2CKf4E>pCqj zGh}AO@G>JZcr|j8&-bNjKu&!fD+^RSsbE;G2fGdyu3!h!^~6*#IwZRIYYww0FyR_W z`!#ip4hgw*(yVh5ava8TQ6dU%Z(}Zqi}dnb*BJdGRu6HvD-tRlv2GZ3Q}J#X#F10^ zVVRDb`oXETdEHqh*f z$`yno%Alp9GU>=KsvZ|~pG;R&Ccx?8Z>b~!*Sz4J6;;+MQdcYBV(My8(#Cvbbrr4K z;VymyXA~3iwp?6;J>R5@9iX)8Qjl-TC!rv{w)Q@V8 z2+C~Rt7e+IRJ^jxGQBbbGrcmY8D8O2lObitl%>w&&lGiff4W|pI!%X!F#_l+gMb2c znmXnga}PQg)pM(5NeRnEW75`Xx=0ikQMiz#dePnSXjn>33b{O`5*cwk6OO~8uxP4M z32^gPj5lV)aMvt#(>lEbs3%Z{C4ti22C9xumkE?;sg0h~l@8PdkQt~6-Ugaor{^)8 z9{!e!4yMt>%&yZ+fYZa@Qb~d%zfz~?!%^z=9K3kzH1kpFG+&0hF2*mTh{KohwpFrb($G7Q;Nvu8B;W~i=G_$O^7z>OwleiI;L8unSGgFnSq&J znSB{v)5(ysV|q-TCPAj_z8@@zxau(rq6>p(b&^r^QBG(*^lr$=Ig3Bx_0Wv;dPrV> z+3O*d&&gkgeD8W_)-Q8Cgrh&%H*zE2DdKN5K7;^bqp5GRbecVDA)MZtI~TbKI-#{t zb}s&M*FyQ^XRn38`Ac03;p2*CXA*bGrFRLXI3=XiH<_<*{|&E$a3XK+vOM8+PsGwh>>77QL9L>0rxmc*&Vn{_9)~-NZg- zv~XSe-Qwr}iN()1{IxW_@^NeF&T7<`bVdE`Tlg$yeMUk8Q&sBUt$yrG{(trAC#zDY zmpj-AMDCtm(36pAhDwC_5}@K8WFQ^MyZ z12EO}J?iq=JoEvj|0iHB{og)({^s*xDp+NzCW=D|Cf9ss8ok)8@IzEo!81;srX2pK z(jTt-KDr}3n!c?2Ll#0PRiu{w!0>50bMkEjUsCy)UU_op`%-_nTlI%E-8tp$1K;S6 zOt_l=*x!hM*bt~!}nr>foX4;_cxpZ zcrqaVPJhv)BYYT;?%x5V`#pg0y5J6jFSrE|e+#xFE|jwtko>%-fc)@Pz@Xf;7q6ldNZi&_ zl04)xz4^5Rh+ZZuli+E%2mVQ?E?n#z8`VD6m@mMeYb!flPWZEkG!+^CR4 z>voDe7~b31N<~|b3>%EzkYLe^GUHZ`be)RlMD=GcD!bHNmk=`dC9FkGG^eji$ht29 zE2uyTDn=lLe>}gB|3ddA96~+jQ${~{ERH(k&TP88~$)@hT5_?Y}xr8>l{Q8FfnC6VWsEXnT+^u9eyA zsXsyU#D*a>P%E+w(*7)y^<7|vLJzjiCOmf}j2qm&BSGlqj)aMfI}(J^+>ro+=Z=Ke znY`3@@Z*Wd+~ePLM&hZN*a1A`#101U`3KT_PWne-iyewK%F9&+m4@Zh!ce?7%}G|VO<{9`2yRbmOxor~2R zbypV|s=sA&Ui1wZhW-ryU&TK^D0}svp-wyQ)Esf3QktRo%(2B&U=J23u%BnLI?5`h zX@{A)cq6c;X$Os46-*lS%}|YL+URiP0FsOJ9#{_D;~thj=;JU=J0PZMBQ7SUX*hUw zWI4`W-Okp49l_<1gVr={|MJKoYnq1lQ8i6_28;|*E1###2XU^cTjoy)8`TlqG9UAn z`F?+ykNC@c%xJ-Andjm!Q07-ka>iKCO_{6zbeWI1Wu5{rGmN|b&|w+EesM-MfCl(g zDEAipe-8f-;eR^ja~yVLgq();oXb01<2l5bmtf#Azw&B+?6`j{4}GfnV>9kQ=cDqo z=3T5Q><1@bH+&jS7GDfK5&FdNZ2aIg%#UVxJ^crO#HlMz{3Zj#HIPYnY5~&y0>#f& zJOl_<^y&uo0VzSxyc?bfffk$x`R#;4Mh<@Uk^80Gl1NV$q!86gD97}~V-)nJ<`dx( zj;Bt3Q74v|`NWE)QlHc{4W^o(1Xuy_RG@zGX;yi4kjL**crv0m)%>J_6MZ~(-ZOx4 zNkxnMRPz%C#`#FuvOwS}z`82}f$bar(xn z&QWd*Uj?{wwI(MiK@#m&i=JxK_{Vh%96ixdP+sK+DsQZ;sa(Z#Q~O0$`v_!>K$h4< z^jvWZqN*b%B#$ycC-PwG`$&n{@;JkTW2ofL<2Eiy_)o$=SIgzcjjQW%Aoc%wJaRUd z_Gs-`LU2XmlHxT>!k$zuBw+Fat^mvoiodoRFU}Luo=e1~2e}WMAw#e3VI}}O-GBuI z(H;TS#zVFBaGqh2$`CdFsD)-jg6dfMwKx6Roqp|bUq!PjjWwe~PGjpcu(}Lvbq2PA z7(WLZ1$(>>;yh2Y6DyiAQKwkwxO^q*RPsF;P4tL2Cu&iV=|oGEDgiptkfIVBC%Q;c ziK-JVQ*;Ys;6#@iG}eLl3VrX!`wD&U#rtY~--Y)&^KPQ*MAs9ocGfo=ShvN%!48&& zkOsQ-HR|l@bzOJua$kG<+}G}Y_qAg{U!%_8p!+(Iw67x#r-|Zw0pD632~i!A{dfL=GjSc8sGoNk8Io$3e1Cg)X)xeC+3N zH{6|=YiOqc3hD?HBo7+1Jeiw!fX(e+Xydjz+7p4T8Lk)TiS387XA;Vu`w-DXi0CL% zJDT_ebUsZVLWOHfg5f$-1OutEq6vLL;}94JyC z^x)p+b4`XyNLlqeZ+P)foH@fJi_wm6Idc|F=<+5q(R`*Sl;BxzdXRtGCLJtDv4X6E zg`KWfKtmq^b(g9{QDuB=Mx_`BuV6j30^eX^rVa?uAL76<1lqha+HH8S!L}@{XJ?RLroONpPK=TuVCjX z-sH)JO?B>lO+bCQRgFCc#0oX>8aKDN(nFZA^t~3jP=hnZAGmh@HMEn%$<=f=<`jvQ z#W*fy<=hBvZ*-~1Nl=;NyqFD#tvIK6<}WsMbcAyMgT;{z8U3kj0*KWk(uTOP7l@&B zi&9hwWoEN#s#|%|O&_{0)1RUrP519$W=nYwLbEe3(|*nF%ek(|r4rgnbsTE6chjC! ztTt)JoY`L@yb4J}_IP5#gK@3&+<#-jn2Znhv2zJ_HqoI+@*XL_w?l%gITTGe+|y(| zM(QRLUtwHkwjFZXKqAhYyJxl?cG_6SC!<@3Ok|%ze51}|rit{BxqTdcyjJni6eqLV zUra_b5@_u`q^4A$U^4XYO!|2XPuq+OtlCaL>P@{q|}P%7w>x<{D`zV$w>Zx!1H zzOApQHbbx%eyYlO9DUWc*i$%x2W}nDfG$xk|EBY#_HfmS_g7R)GrlW|td^9yJWNso z`$mxwoAObU^8JFlg_ksg9h2wpkL#idGdE2j*D>LCT;py^GGf!_^`_n&lYV~zC$Ec`YVR<*4|t1Mo-wa((TSL-Zl{n1>fMeSmpl>?(pRl&Sbu1HGiNl^(|(L@uc zpy!;7E_)i&h+tPSVgeJvsB?79Ka01F@$7f?(aESczpIbG$@g<$c^pR=iij1Dpa<5_452=o*n%XILTmQGk^~M^t=7OWqMP& z)bCA7zb2(WD=C;~oNzAf_KM!EqIYMB_T+E2^0D*_J z36Eeh1XM`mR+2PW(DtRcrD+_O6dPW6T@syTW>oSH_oT8!=Qy$bcppndiHXdA_(IFZ*gk3-6wk8*#Pd%ICi zE$wy-Z+S#CUkc8}g+^FT;*%v>cDp&d26NUvL=qW|H4-;HhsACUvBA!=90tPIVKHDc zZ`24jZ?t7JZ&aw{8;Yn8b23vzW_RNvOkbHp{vv`yW)UGj-6Be+i>RBPNzx)B$rjOe zTSRbV5s{a#ETZl99qzsM9YwSQ@7>tdjTKNpO@hONxE zc?iaG;Z(Q`i}@=W9Fs62t)h!I?8< zgJ37=C>$b@D^_;fZ>y^l^0abv;MGQ|>p~NAsS_p(&P>P5Y?pPJ^so&vc-JeH`QndA(+YOo1El=; z*Fpf5gS_gr@@x1B$PFIU>o}fh>&59+69Ppyypx`tuJu-`G1ATOW$w_yml*k2GAstqkZnv6l`|oYOhVD@foV8o2D`q0 z3No@s?rMql^i(0V>K-v_t?uce>1LuG$D((>6fDv0=C7mcX3jG(aW%&(efrfmsuJcF zo31*^no&5RPw!d{Eb2V60sxW6uf!tJwkQ5V5o*Mq%J}m$suK4{8P@#_A5weD4BW{W zATWA{v&gE#mA{nrP!zva&MQ@kM<}(*`I$3Rg~;F?hxPHuwe*%dGLVAej}V|JOpRtW z;p0}AZ!l@L+I2n*tUUQOO)smYNw2xrrmKpPKq6l=Cq?1ZBRWjbK|Y2VXMbW4L*aYq za*6Zf&SSWNhaP*D@^`4x!A%TE$4;Ws(ZcVfjJrr@mzr@WhExF3A~EU`zYF@ zJRJ#+Ks5sxfi5a~(R{f}a3B(=mRWSW+$2-%bJsq&S%4)6KbY6S;gj_e+c4*qe;s zA@!#{y zNYrbuI1_v0NO2@m+#(}pD0ug(jM$VEi06E-U>i?5Qm}z@yGqFPewAsWR3hj9WTxFl zw%9AvMwX70X`qowoU&gEE=ih6rf_I8n*=2@05&Y4xJwzHG2Dj*p2 z*29Bul1HZkle~inTSix>YZR|IWbSc{=`xWq;?UI_#RD^qNPP`6B+fz1YQyR3LrGvB zi^)z`zr4yABO<}p(_`r3NKsDLfpmx*P2G`n6$K|X5e`N zAJI^mP7}aLo&f$6dBgyE4C|dCeNB7>J2&E(xE_lcC0~Otme-V2n*&uMSn}ZFL3)fO zt|^Wru9;Vz*lEy}KtBkoi&iE+c&438V6MvU1*cB#x3NM-?P5m7A0fz|$gFGkz4SbffP9eP=A|@qsjQ5DT>l6J@haLVYf?1~;GA z7++MoajvDdQ)i7xqL{xkMQ>sl}F!tE}z102@!pA-Q0j1AZ{h3(5(LPz(7M zqNi#h*q2Dfjdx6{xePR$Aw)u`Y2)To@Cd&I>zST(wvA@y6p7nFtdWCgD^I%yFJJ z^_zOGcp98GG{l8RiFaz{mR~zw667z`j*DPRrQUyZzbnB+3J2r({8@IH!wKP)VZS}1I+DWdATvruY zS$o4(mDQ2j>uV~juUU0dU{fPvv$-{}s%1mt+E8l~0;*q2p_@0XZ45Q7vw}k(Zfe`K zmM8LMJXU}96u1`Se^%(yGiHTu$N$y%zx#|?^UuKljc3d#IsNn*!MBTQVupYzkoOrn z^DyICp;$S-dpy1Rq%3+b-1$)78c!B|ROyjC^bofI@Hhr!`5#a^zpB(1&CH^gh=zE8 zXZZ2SqW3C&T^_n9MT2&89(o;?UVOqva<+UH1|IGN;mM+xu)y$eZwXHpJ*4zl9(uFV zH{_v@DgC>7=t(Y;@jPolR``9V8NzlhkaNVZOe3C;o|LgPVDAUXl0T*f2$hDCMK9wy zx_JHt`zkrh_Z@~_p2zg4l}xL*FrSwcTaOCEtDcpHMz+ ze>wT~gKz$`MxKLrd2INKQr=PgcPJm*qdb=Hnz+P~eDgpX{H~Fw?J{S$mxHh5km1wz znUjxu@~f3k+i6Zdo)F!ueA-@f@;wN?U3yQFw%eS1wCkEsK5Yg$`DUT*98x}Q$2s|y zu#Ks`wzlV-e5=40RX%OkIr%ymZtx8%pSI(idw#1Xb6?4ssIeXLeFnFKA}{61!B+*o{(m#_*bijzRj2FKM)1}Bm*La?AZI#u zfN#qyhEMy2oP7Jh*Q)0=`|!_gRfzuJq2Ch5UQfgsc5Umb?ehpIm|Ap7Gl8>9|gl&KrlfsW-UO{|o zvB}2^0WSys*^}{uzm=S3hZ z7t{eqmMx%NBeHA($3`+*zutH%-VL;&+Jd1yYeF{4i)+ww|7*ZHeIEHB9b#_u=pTZ7> zbqXsKh7s4|G)U~#XkHspS+Ly=v#d9*ZJZ%*N5NZ!`YvDfxq^5x|!#T1=9BP_jmE3sahDMwL)6yzV zAK0*IZPOi*+Z#6-+=yC%y&mfVD{|wws=noxM#E(UUA1vT^UB5suSeG+T}{yac={4b zGT4}3yl}Rm+Ck8(Sm-RoK*O zX}Z&-P~9pUS~uK|jLLAlO19uKoD6c+Mr@72z`J&HYkkA5wGHcUtzB2YVI!nhRo}91 zOKnS2Ytu)Ynr^$nY}MVc;iHY%M7u>oM`6BS_T}j6jn68xEhkPjn>IEz-0F3y_TeUO zUJg@0UKbRjqLL-CrnM%(%yeDd)S~h9#vgg%x_Z-jOIv-*T8U#?`c+LEn_3{<=Uln5 zd40Wc#ulTgq@GidkP*=ho4jW$)igIZwp@uS?%~QfT*>2(&~07xxY`<&!)dd}?W(3t zs0^*9UU}Tb0r`P#(a5H@+g3Hj>Nnr&^@vbC$0^8x41OGStD$~#W5aFD9>JR9@4Zs< z^y-$T+dSlTEsc#H6rm`eTW%gIdjnIi@=#6tRvwQ>Q$g}lrOIXdV#UjLy&5sjcJ(LI z6L>mJwzhbP=_KVKrhVE9mD6VqqFbM&_gw4ohTaqn%;S&_WF>aMS4JwUr7_gT>YLMt zcfGmuxXR0yU377Xk2#MEodX(|z0EfJK3fbwCv+ay_(C()u;+1E9CLY@QepU$XS(NS zY&ysA+w-{QpC1U^NvEvyGtg2STk1DrQOc*bc2#8cD)Y|YW|b3Cr#{3JL#6xJcv*+3 z&b#PUd3JJ;RC!|;nC}aagON1-Om*Hx@41F|wN5sY=VitZYo+yRY1#MLV$IHVS0Ges z!e`)Ex(5~k$9gWX3yacm$c7wuZpkSv|H;egu-!Vs>$D%y58rx}N37tx|6A6agHI9d zuRCp%P-VauGPTyF{VC1+z!I5wDflPQTv~$TyAD8sDT1Gp8ah4=Er-W~T}gx;-1d+7 z9b}=vk{tR1&d8?|vCdatb7~I6+YbbSJ)Hi_DMYhi+Q^r&A~E}|q(A22*SL=q{6LZh zS&6oB=Zr+n>v$P+&cN>>#BO#1vS7+lMK!7<91**@vr|~42jFdx-l-T6F#bdUB|(6A z3>c62E-KRA>I(Q*EO(KllRkJh;Z02M+(<7|-a8I){J6)E$fGW*To+-i_yrEibBq%G zCGla=gASU|N@i2AFbsHI2I-~W#KgnX=XDXDT?~BSrQqs_Q8xw}1A21|gt?*y5nN`)0I!h?;fZL}X0pR6+2D zPTYhZ&lS2i;&nc+#0y4zH5l?moHRznGzlfSOvR9<0#zxUrN#?IP+6gH z+BN5+VDzS)xJkfWsEQJtHw16mD|}vw7fkz7Fyu=+X^c2w;fQOYm4VS4apKb~v_(Fz z#0y3|1crPOCyfy|aIV~Yk~*qIDNMk$*r&WxTP|op&PJEihNF6+{SKbR_C|ePi5E=!2pICEois+AuyDk+?IpqJjX3dX z7TTcCEAfI69{@wXh?B;M8#q^V=T5ND`c;I1b43$x8X~-HuTMn~x^2(tx(}$RS{lPl zgQGLYRZJw|Iy*!?(#PJlU%i#YfZiPIX9es9k2jBrXJ%A}*STVI<7O1)xMB^B8PyFT znI+tpH6%*t9lp?sXO?hA=-!BL@p&a)FyhT%$QNNjTeeo z4^f5Ft~p-^MsLm&Hwm!KGH=>f`@9k_nD!N5$d`7~7;(bF5npYpOcadXh!dY?p;h?2 z5-%9>rC`VxancxZ164shyDu$NXk{wGKv+O9xT!^W>pZXGhQfy zUJIvP+a6WWy=fYulqbx;J#< z(=0TqjC;KjFBoy^X6Gw3(wO50&h4Uh^9dFjy-#K0n*j|+`UpgK6(ew!Q`7A`F7r}s0YrP+V7>2E zUgc&I{Bm_(o^;PihI;aqCGpAP?$|xXwoS~OcP6_d_iT&Yv#=<*cLZlH$J-x-M(@Q8 zRyBHYidsqhwUBEFD{8*R3KUY)YNGHEF!*s3~AkkKmsF{ze$#JBe*tWs&lZFV+7ahsj|9G$-CUUY_`q))rv z*FUc3g8UkNw;Z)n?-xcvV(mv^VHs{b={N4&is z#SBdYWMe-oO6r5g6;{XZ!<(4oMrb=hh4nj&ebyOHgjLQB&KthD-dMwH=IRULteGji zw3*2c6OyTM;hI+JQ2ZUYMS9j-BieFzCBPhVLQg5^(FBX&SxKr4vht(GbI6o@%H^F$B@f1 zk1SvgJ`hE0z{8{ZM%l84BZt6+{`U~O>gAR5f<3IBIF$!CfZ{}%E-E1)QivEMinBTz zDv%HaWzUj>l}EH;CET7z@HNOk{AaoizzzSAJ~=ZCLLdxh^)*}rPtOH-bfUwZM>sE! z^and-a%h+ax6SQFH!>2)PB^p34mlAQggAX8NlqZjJcwD*`EmPzw+ZmFN8!1q(RL?*Gmg33? zoCX;|d=Qh^Xwk^b2)4=hqgtTW(Pc4QMsP;iaO5z8f}g`iMoF-TTkAL>XlN2=nBjcb zq`W{FGkJ1(Wl1o;Q8-v)z~=?yHv^YjjXODAKq*g}8e1AWh-MIPpN}3TO<_eX#TB$X zL{qBCq#iXnnP{0Gd;mwwHayE(&`@)*V%z0&E4r8BIF^}_{SyBpGb1=uEs3Dr>VddR zX&+8qiqhtZY9!{U402*de1CK9_Rfz9Z>qh|_?5Qz8NclIjsY%Dd!Lb`y(9Rn_D;8g z?H$*p7HIE@xlT#G_KqXMekJX_ED;G|@`(xPni4S`n@*dDwOUr2PiD3G2eaBd+d2CW z)N?0>d4dQLq>oMC3X%FBpp z*yelM?oxIm_{7E*ZJhc_*^hwh!13TGzlZr6hAzB4g*VetPbRJ}iT|W%*(iDzaU5a4 z0lQOm{5v?xe1*=LJ;8|E6C5y?WIv7bJJw6S8ROM*bePtBRqnF(Q+p+>kIZ+vRxuAJ zaCJ3bUVX#*YM8``jr#hUPcrA0mM1>+dN#G&M_sKW6|eevFJ?me&f0v`HDu-w%9xP2Q%iP_s>3e6Le>Vi|V@veAmppK%<^ z%~W4bW6nIU7@d7JI{Rwv?47n_PR)c9JBs<;IMfWr;y8`D+F3JNEr+T_lEF?a*~L&k zHd$IZA4Qyk&bdxx=5tyXLAf7}w;x5fS1hchkz;bU>x6@IexHcOe}a3uFzdiPE_lzA z^xJb1O=!$i#J#lX81OOfm2kGjj*)oqfw_xE@lt|~lSC{uT*T!l-sYRP)I%B|{fK9g zBFB(V;%M@D9?$BqwzmhN_K>O9R_laI@UfeFLM^vYx9 zMdFxk7^Dm+zT3W+6uzryVbZ&i4`!b<=d?~vj@L}KahGYUVUaE-#N z6rQ8-IV7I^-%z+);WmXE6fRQuZ^&%&e^X(IXv{=Tj7UWL~wyh!0(g|DJ=lK)wSI~Crk zaJ9leR(K8|qh1rI{yt#UZwqY^&j@4n>TFo1k%vBVWS64>w)J{uGf_0q8g)(Y_0g* z8uSHpSkt%Oum=vQJViOTuq1I>h+j-8kO>$t@h~t> zeVY+Jh8(eXTnz|+uD&^5`|j+KT3I5GI`J4>0sb^q6TQ`7=*u=KFX7Co_`4IEIu3u)i6YX~{de>zanI6j6(QIgd z6<503`GxPbpG2nfv34{TxBZTiF)X&iQqS=6*KhY?DfT{kYe%yPf~5Us_dCd{4V!LJ zkA8Vpjubd}e$jjFlc+>|I^-AU#h{YWsUPvvG_tF3pQ-w>3iULoKAI6x4MJR|>cd?em=FhI-wAQzhBE@6i2vkd92Dr( zU?VLI_Y}k89V6psU@I-y$u^yKyBQm&!A{J<1F7@z!<%o}7s1cGDeCx-Q0tos5*q8Rx0S#@=IDTv@<^z4Y52o?U8s`^6XchkZl~3cDlaF%&D^KH_ zlWzz3qHN)KG~QW!yblUV3tt7u`Nc~}A8}q~jjlVa{=zo_C;fb-2LaK5!aR!%ui?)b zczTDzYIWaPRonI_kyw?!|GIQ3lR=mX{u=l^F@<1GSAU zEloHdK=9h8=EhC-yGx9^Mesmd07@+O%)a9LhMF`9hYnNcXtj=C^Xjc?M~_ z=M$cPEn9Y}cm8Fhrzc=f{p>&9K)Dy8_#|IYR|3>o4TSKIhvk1LBg4em{W*ln#;2Kn z@K~HmH#3fzN8(~*Jc+!I_FVEDfagf)FHxLX4zpXq(ZZiMeBa3AiyJ;f#LD}G;rl`+--iqz zrW=;;M#J~XOg_#VF~%a{Qt9xDq-u6x$aXXXFmgL5G0A$-t2v{%3@P{Dv)*Im#FHUh z9X<{pGH!S9#j|gKDJ9EA?&stjltu5BPy6KY(WsdR@;qe@gP8G90;UfkqX+EX6@C;^ z#*C4tG-t@?xzncXSco)z^i^|xV1pe1zvd7IAfBx@!CA} zspg4Gb^fR6&zi5Xf33oQukvX=(pXN_a zc}KuEp?sQ8Ir;c~II7=$HNUd>uE1b}mJ?oL2Au^wiw)0$|3Ep={je#I1z%D4r|Qo6 zD*2Wv{3*gB|G$_LTfpyCr2hpVhNdvT4-v0ZSflV-h3`?w?=Bd^!sh`ZDyRRE!ddG6 za|ogPD+&(-lK(r3KdJCRb^o&BpI3MrAf5%Q6fReIjzadsbMPsP-3P|6w<1j(OF5MB zyYyR=fQZWMK7}0$>l9Wf3@HQ-hj{%oH%#XHoE@gluL8GfR;Z9ls$ zZpte#tazXLKcu*APhSP@365vVX5jbw@Uwh4^TF$%8REsy@Zs3U4@h8`Jp3BOXn(4lN=lRHH z93YpT?q}_{&O&|y3@I#z9L9y~2#qS<($7@$>D9_wp>UDPvl7sj z*V}i(h4^P%_s^%dz#jwVcc=M)oan5;zxQGM?7!E2I`3KYDLbdueNpUPVk0g#Hcnw? z9+V+g^Ix+lO`4~#`M#TUb54TCmY-i=XfgalXqaLEXS3aV`>Cw-)=Et^t895Sjrc_C z|I*7Y$yo1hZe6=^!-vxiAlG_V3Mj;wn)=_Jl^ce}-(8w9Ar`6!xAmWOn9p>-H(WrE zcqos42hjn(lMY$+U(f9-zm!zS&pfxQOy$%G6?F`QrHu=nWZ+R6!Bp$hUX{mnGas%C z*`CT!i7ylv$u;wa->KTu3JiLDqAIr;i%i>B(0#h?sSh30`@!G)NBD;TZ+oI>{-2M3 z#_??YpXj6Qsf1>#ldvm{Oxl(MwaVaGc725V(dR~9e;M@GbJNxT+!$xW-b{C?5&y(#~>@+P?G^sk_*tqcC(3B2w#uaB(@ z{`*k&`ZZTx!PC8I|9@G~KkVLqq5MndeQ?oRmYbjuO?Q2nt{b42X48Ms@IC(jx7V*< zZTg({W70Yk?Z-T=m={T1n6rIi&p=wIRk}6{@tpkWI^vN$&Hf|p_od+V$-MO+eb37| z>7M%WrrIa{<8Z=6duHF(!4AvzS5wgkIr_j@+%IPO{wsbV|5*VC&pM&_7xE7pZDr%_ zuj67lj%!=-hB-rUJ64b|pTK2nsWQCT&9a8r>xos}mph};bGZ#R8K?;Ee7vILmE-3B zg`$e!-e+NXn}{5h!p>3uLK>zm6H(i_Vi{xaDt0k|#uCo2>Gb=oPmxXXA&HaZvY2JUJX?`E=F8Gy) z8?Jb=W@aIA#zNe{EP92~IVZrAMQ=9lGH1v|?^Aj{`N=8hV^h#=jPl73X^ivHE2f~= zDg9y-kF50fO+g=Vm)O_KG zbP}77UNHr|ZVGyb((}cCU<&$}($CG4|0U?A`Q)QlC_P{L>ZYJ~C|#FL+4XM`2lGye{PZ_70J zUI*WF@{f1ROs9OS!DsVN$BUftYXzT;Um?Exz&D-z+Yi3!9O>ZH-Gtqb3{3{f075JjlD36Wc zt57~2&vLep9pGC!4ZeNgD^tFZDUF=+sN1|~8uI2~tO-p+-o@aXKMi>|gRf*7e4XGc zo(A6@@CBy9cMyD&FLK#({CItVe0d#wwmjU0Opf}z@MP>OYq&a&X65sLKo<6e!(Ro& z-sTmb1H@nW{fY+xvE~f_6lH&@Qr}zp2P11#1jqz zUIh3un6CqT1~3M=8L%4g2Eg|LE(W|7@HGg#2Jrs}i~`;d_+G%xfDynO0ILAs1$Z^! z+X1fv;TZCV{7Hp<3Of|mDXdT!QW#J;hI|tL3i}jxD6CUhp)jN{pl}SC zBmNckDeO>Kr?5g{NMS(X7(9!Ag?$P;6xJ!MP#97eP&kHs!|Uv%!aju^3hNYBC=4kC z5Pzt~V*knf<@0^~(@eZYrD&5XgS$?D^mA*)EHWog0_$S@YTbuAM-=&oQ zD#iQ2$LD>>7t)i01p;4D`k3Mgr8Dw;>QN5luMiA(rz&pu8D3KVN)B-SN&b*JP+wPY zxbgX^;uVTN2}pXK;$KvHpW?h1lJqgfKcsY)FCY37`HE8ygLsAF?Mkmx{G&?mP<*AP zr%&;>DsI=&2->qW92KpT6f!gM# zJD_O3dF_T902_ladd?!0P{uzgWs|*(z$MQ13T7=koXEStl_|{-wZ^NBzEp40VT-CU)zHMXcN?$F1l6%)EJY^EPP7RQo7bRBe9L9?2k zee0ETMT~1-Q5TZ=bq;+K80v23Xks3}zR3!evry?tOqg{Dv|cjcRQ46ED$n-CM>qlZ zJeqvhWh(uZEh?`=GiV(0I3-wdj@&y=IT<3S(qEZ`UJjp0oky-m!RZu3+^4I*GH|Y} zqXKo9n65>JdG%MAfBavJ|1kcc;&Q@|eqRkm)z*?mdOR@9IYLK#HiYQ;xl#v zG-!y8GaRV%kEOU@K?QU_0c!MP=93^lcV~ScM|f&Snhwt|#jF2M`wLijK>wdHGk4ET zAY2$Ww8Ns|yAqrOvrG5nW!fd~H^vOP!#B32Ua^wkvojOS@1B_{<_v`?&Z2me?AHhI zrZ=4ozYs}rp8WDgG%NHhdxa9oFYuX?lA{q^eG`7KpMqYIncw#G2U>iJLCf81B^PJ_ z3OgE{(HdPg5{&cPwke6oC=Z|_0_r$TMPVI{f0&5^BJW_9lR$Cd=vEjiM4cy1JmpBl znnT00?uBPoFqpbZJ*vQmZg2d{eDTwCGJft+6(+1P9GpEKj9*}4!;r^tvbLPGD@BXw zm(t<~k$A#ZYsPg9=Le^&kiR@l{;@u4S$Og}cYQyx@>}6cpX!21`j|#G&z~UEM>8@# z>Cf~e5|WfmAC7S48+bhO6zyhULe%*)lOsq$4Czc2ZJSrzUGrpcZ`+ew-$;TM+#cfZ z-pG?z9OKKU*h4}dnAP6*bC%x0m+haj=%al36det_mVdl`6v1l6VX&h%$aYiw-H&zG zJk`a{(9^wo@kD9ypdixM-pw>-|smy_ujpGS2p>*-|zMF`@H+vy)$#> z%$YMYXU@!>Id|>}cyS!S3EFrR${%G3ZyYgRg@1ep#VJhN%E77-J1scs?q;C=-eWG-OeGvjH zCjc1r35L7T0Idar4II9B6``-SzkB+OFOsnVaW1JgBoB@Gd0DEApd3q*8WpJ{+LXL< zKZ-Y^pmf9#=4#XeA|@ZiH%9t-|tU#)tQdF9X{t>O*6n1S_Ughgui8t;a1}kb#growh&pEfY|0J2+-RUWdzK z6`D3wqo`D<@fT9*C((l4xhLn;Lb0Pwx^tkMa(-yL{!wqvV&ZJX1e?lC8VdVc`na{H zqSaOF3C=fg0C|XE_AP7g)*$T{#cvUk)p;myQ~w;MS&p>JO`37%4Ftz;LK>X*k^fz)LmnK0 z0-}nnlE^(7t0Uw|(ITcJ@(d0hmf=vwG3pw5{NG*w|9`8`O54A!$fN5A=Qk&dPZY?P zs^{6{@!uQ1mhaT(PwyAsE3ZB;oOJy9f0zD_<9ubRZzR6tPz-%BzU06ZPDhC^`F2j6 z|2!eiH%G)7*e6bQP#pO}X39C#kI-@_+bd3HI~<%I(R|U1_SL9GP!<}2d>Af4J)0!@oK}|#$EAh!*2IryxJ6i-@M6?nUtd+Gj_9v zCmwv3at91+)e<^jI7~?B5E)(W%4a(9;gH;Nmve$xvwJSi6^9O^?(4xB<3C)Ul`s7+ zcW$i2Q96}yE5>e|i$#~%*cp|g&U%hQ5d+oC+(AsgTAospDfe8&Pp7Va1C_NBx#DvM ztfUNA!Cmp=92&OG=e{o;(R<(e{mIY&XM_LJ|~}ya22JWGLTa7m1Z^V4@;!qXX4F@ViEm1J}BW@q)t(MyNNHwKi>u8 z_1l`VD1D__2OLneqWFC#zP&_zrCIkYm4AbYUr{3cpoxFDM0^7mbaAz)Q^cQrAFot= z&ZNJvMEc4KjVKl0VB$;Ff0v1`EYw7@JBo2-c!J%o$-*tyKokIv@_m!3V5_L9yWN3W}!zr z;}L^r#+AtO($09?;2HfNiAOu*#A{kFM$bm#(ayNq;F<9v5|4Jq69#X#d}(J~{d3KC zHhQ!(o-lZ`^*7oXkDme_?TkkZ-fZQiow21i8y@Y9Eq}A&(a!kjDdbB#l za52`%_iKnZel}zn;jh4D_*RVPpGNq@aIw5z`#Rgn?llNcp-(ZsA1>5v?Vqwz;nFUS_QyBDy$LSu9&6yf0HjOdK4n}7F4HeDVcH9R z24UJI(vEo)F71kW#z-Ap+MD86yTpW_he*;6`S;*rgQ>O!F0NXnk#IZu08meFFmA%Q zG2`aIH{(Z)J80ZqxC!INjGIGZNpIXipb80D8?`~1f9m8EOtbzi~2DbJ~tF*GX>)x428Qx;gz8<#=wH~7)uJmJby4q{~MwBZ->HP z4~73E6s`@?ONHXU917z|yv~gsUHI4&EDtyMo>j0V#<}au+E#2?wQd8xQ*qt>+d5%S z3@rS_#dki$!YU)k*hk^w{@&t-?jz}inZ`2@Y%`o;4>wRA+RuX@77IS_~-^KUQP5mFU`iy z_jXz+68XVZ+cv}c8Fv^b-@6sYs+!!LW{9VB> zT(P``5TJ)3-P_hID~1BHrSsl^9jYmvf1bF|UKKQT7Ai%M`$C^+0ak!4Lfu^mRTBS2tLA`8=@z+nJnGz=<$P?Q1)zBKv`=n1F~qUaT*5*Z9YR44-gE5AMsDM8Sp zx#%oOSkyzL{S+umA)qK+7~Q?DFzg3^sdFfoc?VIdUG%oKII?r~>~_(E7>i;F{BeC4 zf1bHm>YBo&oY#oK8K&aL#bKI%Gd)1>J~g{&dp;fMVF-_H2mP&Z5$L63ueP?kw+h?< z!spIgK9-sBnrH!U!C1k#li5XEzU+EXWhGPjSGbDW+Gal&e+tiYyz116?E^jXSBVM_ zj$B%yQc z_aJ{fN5!gOKYs)bigb2wMf?ntb;{WV_`lyv>}axhBE*-|SZ|Z`!Tc^{*9to$W1L0P zHno^zmg$~1VNZrJ;5fb$UY|S?PbU#Y2DDC&`PDH-7D`0vlY#$1 z`bV*#g3V~%@)h$zPW55_$%U4DGyGB@Y5*Z$3a_}H4LeUDV7)0fEb$)o9Z;MkjDu>EoH1A ztre>bBD8!#%B~2ql2kwT(FD!cg zxq}TU`(8+L$`hwMk;DsphU^7o!;83>gim8H@${XOd|4rgf(CfmR8~}K>S${fNgKu= zGDV;`RFCXYB3)tRKW1Vz==d7E&^k{TDUi>BsI~cDRbZTeDB6x;)NQ6(Q;b@<`GNOh zKvu>=m=QxBkLAe>KB^^D_=zx>4;vd(wN3GIL$d)7ErEKEh6 z?5@(e+8etsl=HlP0Ow%;Jnn)Ok;@_)Czk`CY|3PfT_vhBm1$Td16V0a1)gIQW7^ZS5WP6`6@z?%@64}q-dh+uV^xxn%^e=aH> zaz#20*Z-j`a&~V}-D+{z@Y?5>bT+aIw7#HF+br5IkEnD{iIpmbMM?u}8_|w9Us=;h-66G-3&AwIqu{#=}fG@E#UrTnEkh zTJous+beQLm0dxYX=BvkG+*op+tr`++*q%C%Hu7PkM~+z55FZutxWoEsuIqWLy^H$ zA*6XwtO7BFIx#gYr80Kzm6D&%ggHgZ{{wDNh8)6_Y)I4T9M>?E-y4C35Ab02UKZ!h z73cBg@r+RJ)!>|XhL55cqn>2jNrmTs9gu+9(E$?E@s;2sl|AnsIN#yPAVwx}v@9w@ z$^H<^0l~6(hCDyxQ;G6viw56gu?>z2l#gsZ1R`TePU_8*$22DS=?(-3*N*-5vnZz5Xyl{vAuwEKr_*k z_A32-B7CBVANN?1!rDet+wChFum5b@?Kk~;GFF$ks+1CHHHLM z7Poa?B#D|jvC6o1g{(d3+Q{X1Y~Iklv2*L?_#D#ebz9e84%%1LUU6C7Wy>z#x~1cC zr9o($S+Zc=_?NsB=?72hJ6|!_b_G|$gf^>N6u-;F|FOmt#W!#`$8~0j_!cNTUfeIj zRg``oo{4#FED@hD3n-=N*KwYSYo9tr^m8Vj=gZ(Kif>`>!G*nMUPbY{O#G)x#7~&` zt4hRI@&O+gC+oP1=+~L}t`hNsCZ79$xQfzSd%IHQrvl|w>iZeiZo|k&(Y`*{HSkyz z8#Z^Zqt(5mRUIBZ8Pr+RR z_fN6-Q4RM_xOl>=ZH5cgao!Ea{WM&3wS`OIVm@8_7WxJDz-wQG`%$>G^MDN3{vKS? zebBfqa4$vp0=OT8I}9RqaPNmZ5AKz4iC+!(Lb$(T!d%89{6|2-Q%CLh;a&pw_u&%m z8utO?-T*fNc-(}`jr-#Y`EF?KI9#-S?SF;K^xrV>``}`FSKAJEA>2>Hy%O&ECLXU5 zOS%`J$3U{S7cTZ5Yj1(O2yQ)G*3$yGq|5Wf=>9YGChOw~U%ozSDT>LivGj0n2 z&%tH7=inlK<6pzYZ{zRab`j!f6NhO-?R{|39Tu*Ki~3r)(zrEn$^Tmbvff^W%lI!D zcO%@zfYW}0=|2aT^~U{t(ycXcepe3Oh5t8P;!nUO{!?&SKH5~`xA4zQm|yH_HUpQtKohR z?&WYFgA4x7+h<(#35h=kE_6dJ+KSgg$O!RH&w⊀iwS(73(EZ8vU%aTCUk88-(y z@SZ+m+(F~^8n@lJ4aQ9v7mlQxflGT9yN`i7knqU4#E8YZ@n`(F310+1!xJX_dnTUi z_Pjmn_AG zZ09FQ6Sm{|TZm(P1M=i$?J4Yh=~=)SZ|6t<)ugxck$*)aG2YHU)*5WxSn# z>^1n38E$bCP8h(e27i|c*IE9dH+d~U805U`_d?-cAbl|Y_d!1xrhQs4+#8CgeMvC> zA4BmYp)k+$4B~$)l)f_*UJ=6Q`FO$f_l3fgg<$+kp?Jmx<9Xg^F#PFI_-i40e;EoV zLi~+{>i3oq{(lI?^L*4`{(l|9?+eA#z9@*lDHPVj&u;&<+uQJsL49y(*|Ki)mUY`; z;=!kqdpb9DZdupSwqp71Z5z9>xv5|TuiwzQYEw5%IEZ#Vwp+J#DuJ6e;k&P!R>8=E zG5F{qzFl}-_nOPLZP<#l+&W-qp>QRPco1vCu~$a`EowgviuloXwF-U-A5%%Sg?J|PMDjozwxe=_QdqprUXBhML&W$abw+4+;z)lKg zI00(FVU-6UMYb)C@_9~_I)H>qDFi4I=ocat0+1y9`OR<`1`~y*Dz|lZ;Y*l}(m?nO zXn?%fRutHIC=*(30Yn9}-U7fvVYR{mnw#%Oovi9wyLn4z09|W1Duzug3l%rxL(PE{ zr|@A>U)TfbiX>Ed3yN|8yU3md9g3em4WMZ8uW!6P0P~o>sVM+8YR7{P zobodEBkMMHZt=}WBEMtW0^J)+=upY$uG!Ajn>OQX7t`RXHet@k_{W@9u2Z!ixfKry zyhsl!Keh+YSIY=^pY|h`j|rwV7lsJ$3XUBFp3Hv4@@3eIjhb>=f~NR3cv5?hc0*{y zq?iCb^0zWB&jW-OkUXiqhncrkn1b!Xb7ru-AivgRCC*~pE9nc_d-NlJ+Gg{82tHS{ zm@UM^MSA?RUD&pEZ3f;`zRY@Z!r#Nh+Bh~iP8$IUyYwvEX*mM2r!7E5VWHn{+2E)m zr;&RcSYekv4wTa~I@k}tzv}|b9YZ7{$iwtvF_;1^5WA~jEf(%Wglyjx^JDgLm%ha_ zXRvpL-BN7XPLd$~cK11rvyEg&Ut%m>TE+NuvGQw6i9ObW4dw(k0<8T>i>$ZX{Z6}? z=WmLj!UmbUw+_rbqTYQ1k{w{!K}Zk~?%i>7{~~%>7jEycc)5kvSPjroEyWH6vo!{Z zV2P{k!X=Uh#KAYxpcWdc*)Uk02gz>TQOR?e-P?RD;CCcIQW}`5A^!!)>sWGxi!D-X zx(|%T9UezCxc&eT4A+D(cej~)#krc)0&Y)c`NYGpn_5uQ{EX8)l7GQKghgqf9g-GE zSb9&`g2|Sw%Fkh>h~@c^MoLImfhx(l_e0XScl7zn8JOi9mMyNYECH4rwSZGK8mrvo zGvz#Yfq?~ub@3UJQ#*zVOIhs~u+3=?8v}K12P-2v6mdeh2(aoTAJ4yx!z3m_2V0rr z*m|o;J_DA(NPTi7{uM382&41tvw*wJBTGh69iW8<68U$#M+}AG{6Tz)e(4ByI$9ui z;r*wCaD!tWvZBDj684GkFY2a!P1-)#yMXlfVW}x5h?<{dw)83N^UL7%Oo-pvKR>}8{(`z^2D2hBI%CYT?KB+q-`Tq{d$_FS>#=&TSl1P0q zC9gA-ptQXbWUv%v7*b0eFvpHjsoaR^2|A2nPIVrA1t&+jgPE0DFGM>c(4!H~^HOeQ?S4nIQ<*ah>?QDKU6GKNxB||)| zo(R!1YR2Nb%Y*@RXxaZAt^*y*v`0OIwKc1<4L^|X{BKy6{7w;2oDim?G~J-yq3zH8 z?5wDET6Ek}DHYs&6kSvDU;0)#Yn%XdPchp_Sj&O$vF4q((TxOEI-c4f7+nd1+ID7C z@mL(m8}UH3NcRN`Fxx}B!+wu}j);FJsXSl2nd6+~DRzFDy<&